Техническое: сортировка и новые комментарии в многостраничных темах

Аватар пользователя И-23

В настоящей реализации инвариантно используется древовидное представление обсуждения.
При просмотре новых комментариев (переходе по ссылке «новые») в случае многостраничной темы и распределения новых комментариев по нескольким страницам пользователь может просто и удобно идентифицировать только те из них, что попали на первую страницу (с новым комментарием).
Особенность движка давняя. Удобореализуемого общего решения мне не известно.
Стандартный workaround — ввод опции плоского списка (возможно с ещё одной опцией: прямой или обратной сортировки по времени).
Но оно не вполне согласуется со сложившейся на АШ культурой дискурса.
С другой стороны не вполне адекватно (ожидаемым образом) работающая фича тоже не есть хорошо.

Также мой опыт говорит, что в общем случае (даже без учёта особенностей реализации используемого движка) полное и при этом корректное решение задачи сокрытия активности забаненых пользователей скорее всего невозможно. По крайней мере с моими представлениями о приемлемом уровне ошибок false positives.

ЗЫ: Туда же (к привычным… особенностям движка): при получении двух личных сообщений в одной теме (и от одного отправителя) панель личного кабинета сообщает об одном личном сообщении. Оно конечно совсем не критично. Но явный ляп.

ЗЗЫ: Здесь же, чтоб два раза не вставать, про создание закладок. На странице подтверждения (с формой ввода комментария) выводится две кнопки «Сделать закладку», но работает только одна, нижняя. Если не предполагать возможности подвоха, возможен сюрприз.

Комментарии

Аватар пользователя Т55М
Т55М(9 лет 4 месяца)

культурой дискурса

дискуссии?

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Допустимый синоним.

Формализация и обоснование норм языка — эволюционно позднее явление. И занятие не из дешёвых.

Аватар пользователя alexsword
alexsword(12 лет 6 месяцев)

1.  От дерева комментов отказываться нельзя, как и от разбиения комментов по страницам.  Проблема в том, что движок сбрасывает счетчик непросмотренных при каждом обращении к странице, даже если комменты просмотрены не все.  Как вариант - можно подумать в таком направлении, когда страниц обсуждения много, счетчик непросмотренных комментов не сбрасывать пока пользователь сам это не скажет в явном виде (кнопка сброса счетчика).  Но будет ли это удобно?

В общем главная проблема с этим пунктом, в том, что непонятно каким должно быть оптимальное решение.

2. Если скрывать забаненного в черном списке, и все последующее обсуждение, в чем проблема?

3. Личная почта - стандартные модули Друпал, их мы не трогаем без явной необходимости. Это явно минорный дефект, про сравнению с пунктом 1, так как люди не пропустят сообщение.

4. Давайте поправим этот момент, изменили имя кнопки на "сохранить", чтобы не путать одинаковым именем.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

1. Аргументация понятна, но не безупречна. При разделении нитей обсуждения (больше одной и при числе реплик больше 3-4) искать кто/кому/на что отвечал часто неудобно.
Если бы у проблемы было универсальное решение, её бы скорее всего не было (в смысле её бы поправили на уровне апстрима).
Насколько сложным будет вариант с преобразованием списка непросмотренных в массив по страницам с подсветкой страниц с непросмотренными сообщениями и сбросом элемента массива при переходе на страницу?

2. В рамках общего решения есть ещё как минимум вопросы записей (блог/пульс) и комментарии в записях других пользователей.
Если здесь резать всё, то по моим ощущениям велик риск порезать лишнего.

3. Вместо цифры можно просто выводить флаг (new). И руками можно не лезть, а оформить в качестве бага апстриму.

4. По мне правильным было бы скрывать нерабочую (неиспользуемую) кнопку. Хотя переименование тоже выглядит логичным.

Аватар пользователя Omni
Omni(11 лет 8 месяцев)

Забаненных не надо резать, а надо текст им делать белым. По веткам надо либо делить страницы на целые ветки либо дать пользователям выбор количества коментариев на страницу потому как читающие всёравно все ответы запросят и быстрее им дать всё за раз, чем обрабатывать несколько запросов, тут нюанс как на многостраничность смотрят счётчики посещений.

Аватар пользователя alexsword
alexsword(12 лет 6 месяцев)

Счетчики посещений нам без разницы, приоритет - удобство людей, а вот нагрузка на базу если все будут подгружать все комменты будет приличная (статистика показывает, что ВСЕ комменты читают далеко не все открывшие запись).

В принципе проблему можно решить так - в дополнение к существующим ссылочкам, дать одну - читать новые комменты, подгружая все комментарии.

И разместить ее где-нибудь так, чтобы видна была:

а) только зарегенным (анонимам все равно этот функционал безраличен, у них нет счетчика новых комментов)

б) чуть-чуть в сторонке от этих, чтобы кликал только тот кому реально нужно и знает что делает 

 

Аватар пользователя Omni
Omni(11 лет 8 месяцев)

Да, отличное решение, только не читать новые комментарии, а типа "читать целиком" с правой стороны снизу (последнее место при нашей системе письма/чтения).

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Да, комментарии интересны не всегда.

Но в таком случае по мне логично смотрится например умолчательное открытие только записи. Вместе с информацией о количестве комментариев и кнопками вывода всех комментариев на одной странице, либо постраничного чтения комментариев.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

С точки зрения оптимизации нагрузки на базу, в режиме чтения комментариев собственно текст статьи можно и опускать.

Аватар пользователя Руслан
Руслан(11 лет 5 месяцев)

Иногда читаешь комментарии и возвращаешься к статье.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Бывает.
Но именно что «иногда». В смысле далеко не всегда.
Потому начинать правильно с ответа на вопрос «насколько часто» и исходя из этого подбирать решения.

Аватар пользователя ayvindov
ayvindov(10 лет 2 месяца)

п 1) А как, по задумке дизайнера древовидного отображения комментариев, для длинных веток решается вопрос установления, на какой комментарий дан ответ?

Прокрутку страницы и замирание на определённом месте на некоторое время, вроде бы довольно легко отследить средствами на JavaScript. Тогда по прошествии определённого времени (эмпирически рассчитываемого по довольно простым экспериментам, либо конфигурируемое в профиле пользователем), фронтэнд может на сервер отправить уведомление со списком идентификаторов комментариев, попавших в область, на которой остановился читатель.

UPD

Для достаточно быстрого определения, на какой комментарий дан ответ, делаю следующее. Ставлю курсор мыши на экране так, чтобы он был точно над линией, идущей от искомого комментария. Убираю руку с мыши, чтобы не сдвинуть курсор. Нажимаю клавишу "вверх", чтобы страница прокручивалась, и было легко видеть, когда линия закончится. Там и искомый комментарий.

Это можно было бы оптимизировать, если бы при наведении курсора на эту линию во всплывающем фрейме появлялся сам комментарий. И при наведении на него мыши и клика -- происходил переход, как по локальной ссылке на странице.

Аватар пользователя alexsword
alexsword(12 лет 6 месяцев)

Стрелочка назад - ссылка на комментарий-родитель, всплывающий текст - автор и дата:

26439ee74cf546ac6fd1077a69f00791.png

Аватар пользователя Офисный планктон

В настоящей реализации инвариантно используется древовидное представление обсуждения.

А можно не выражаться?!

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Разрешаю привести оригинальную альтернативу.

Аватар пользователя Офисный планктон

Какой смысл Вы вложили в это слово? Только пусть в Вашем объяснении будут только русские слова!

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Отсутствие возможности выбора предусмотренных используемым «движком» (RTFM на предмет «свободы» выбора терминологического базиса начиная с http://aftershock.news/?q=node/340931) вариантов представления [ленты комментариев].

Аватар пользователя Офисный планктон

Например "В настоящей реализации безальтернативно используется древовидное представление обсуждения". Или "без выбора", "без вариантов", "используется только".

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Например годится с точки зрения *описательной* гармонии языка.
В *созидательной* он будет в лучшем случае резать слух.
И помним, что надлежащая (хотя бы только в рамках конкретной задачи) формализация/обоснование терминологии сама по себе способна выжрать все наличные ресурсы и попросить добавки.
А «проблемы кодировок» (см. http://aftershock.news/?q=node/340931) многострадального русского языка не просто нет, её и не существовало.

Аватар пользователя Офисный планктон

Как-то Вы пишете ... немного не по-русски. Для Вас русский язык - родной?

 

На любом языке писать надо так, чтобы как можно больше носителей языка правильно поняли написанный текст. Использование малораспространённых заимствованных слов этому сильно вредит.

Аватар пользователя ayvindov
ayvindov(10 лет 2 месяца)

"Инвариантно" -- нормальное слово. Означает -- независимо от, устойчивая закономерность при меняющихся внешних факторах или системах координат. Что не так? Ну не по делу употреблено. Вы же не против лексического обогащения?

Аватар пользователя Офисный планктон

"Инвариантно" -- нормальное слово.

Ненормальное, т.к. его смысл понимает очень небольшая часть русскоговорящих людей.

Вы же не против лексического обогащения?

Я против массового использования в русском языке иностранных слов, если существуют более известные слова с тем же смыслом.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

То следствие успешного внедрения практики раннего изучения демократических языков.
И, кстати, Вас ведь конечно не затруднит привести правильный перевод сложившегося лингвистического термина «pidgin english»?

По второму пункту — не желаете ли для начала организовать крестовый поход против деятелей «культуры»? ☺ С целью оказания помощи в приложении сил к созиданию памятников культуры.
На всякий случай, если не в курсе: http://aftershock.news/?q=node/362856

ЗЫ: Помимо «известности» следует принимать во внимание «уместность». Или вы предпочитаете брать пример с персонажей Ильфа и Петрова?

Аватар пользователя ayvindov
ayvindov(10 лет 2 месяца)
  1. В своей этимологии это слово восходит к французскому. Пара однокоренных слов стали известны с 1794 и 1877 годов. А какое более известное слово в точности выражает значение слова "инвариантно" вместе со всем тем, что оно подразумевает?
  2. Значение этого слова мне известно с детства. В основном -- ввиду его частного употребления в русскоязычной научной литературе (помимо прочей). Пик его использования приходится на период с 1985 по 1993 года (согласно статистике по корпусу русскоязычных книг, по ссылке -- график встречаемости).
    Вы требуете следовать общемировому тренду упразднения слов, употребляемых в научной лексике исключительно потому что выбрали себе в критерии "большинство решает за меньшинство", тогда как развитие и достижение всегда сперва совершается меньшинством и единицами, а потом большинство приходится огромными усилиями подтягивать до нового уровня, чтобы не деградировало?
    Если так, то это атака на язык, людей и их развитие, как смысл жизни. Т.е. ваш выбор касательно слов, а значит и передаваемых ими смыслов вместе с оттенками звучит как "я не хочу, чтобы ваши сверстники и дети развивались, они не должны обладать богатством смыслов, чтобы они не могли ими думать и решать, и было проще и легче манипулировать недалёкими людьми". Не думаю, что вы готовы чем-либо ответить за эту вашу атаку.
  3. Узнавать новое для себя -- это нормально. Особенно -- в эпоху легкодоступных многочисленных материалов и поисков по ним. Не нормально -- отстаивать, как вы, "демократический" критерий большинства, ставящий во главу угла не развитие, а некое мифическое или иллюзорное личное представление о количество русскоговорящих людей, как понимающих сейчас смысл этого слова, так и способных забить его поиске и узнать для себя что-то новое, и этим обогатиться. Не нормально -- потакать слабости, которая оправдывается чем угодно, лишь бы не касаться чего-то нового для себя, требующего умственных и волевых усилий.
  4. Язык -- это особенный инструмент для мышления и обмена сведениями: каждый носитель языка обладает своим уникальным и неповторимым инструментом. И может его либо развивать, либо деградировать. Вся совокупность этих инструментов составляет текущее состояние языка. И никто не может никому препятствовать в использовании этого инструмента, как ты, по причинам, изложенным выше. Единственное требование к развитию языка -- сохранение его формы и структуры. Это достигается неизменными составляющими языка, типа звуковых сочетаний, сочетаний морфем и сочетаний значений. Поэтому насчёт языка не говори, что делать, и тебе не скажут, куда идти.
Аватар пользователя Офисный планктон

Вы требуете следовать общемировому тренду упразднения слов, употребляемых в научной лексике исключительно потому что выбрали себе в критерии "большинство решает за меньшинство", ...

Я настаиваю, что люди должны понимать, о чём идёт речь, а не расшифровывать каждое предложение, что быстро отобьёт интерес к чтению подобных текстов.

 

И, кстати, "краткость - сестра таланта". (это не я придумал)

Аватар пользователя ayvindov
ayvindov(10 лет 2 месяца)

Ещё раз обращаю ваше внимание на пункт 4. Одно из следствий -- в принципе невозможно знать, и, следовательно, учесть, язык каждого конкретного человека в общении с неизвестным читателем. И для преодоления этого в языке сделано множество приёмов и средств, основной из них -- равноимённость, благодаря которой один и тот же смысл может быть выражен разными словами и их сочетаниями. И вы, наверное, уже догадались, что для того и создаются словари лексики и тезаурусы: именно они являются пересечением совокупности своеобразных языковых инструментов неизвестных читателей. Т.е. фактически именно словари дают возможность в массовом порядке учесть язык неизвестного читателя и действовать на общем языковом поле, а не индивидуализированным под каждого конкретного человека, что абсурдно и невозможно в принципе. Но по совершенно надуманным причинам, вы отрицаете этот единственный способ выравнивания языковых инструментов.

Люди не подписывались, на то, что это они должны понимать. В этом смысле, никто никому ничего не должен. Наоборот, это читатель всегда поставлен перед выбором: понимать либо нет. Выбрав первое и видя недостающий смысловой пазл, читатель вполне легко может постичь недостающий смысл минимум двумя способами:

  1. забить слово в панели инструмента поиска в браузере и получить достаточный для понимания ответ;
  2. вычислив значение слова из контекста и проверив по смысловым тестам, построенным на нём.

Текст так и читается -- переводя обозначения в смыслы, как-либо представленные в собственной голове. Разница лишь в том, в какой момент читателю доступна связка обозначение-смысл. Т.е. чтение априори требует мыслительного процесса. Иначе оно бессмысленно. Если текст ничему не научил, то время на его прочтение было потрачено впустую.

Во-вторых, вы преувеличиваете сложность задачи во имя оправдания вашего личного нежелания разбираться, т.е. совершать несвойственные вам умственные усилия, но при этом почему-то перекладываете на других ваш образ выбора:

  1. далеко не каждое предложение содержит для читателя новые слова,
  2. освоив новое слово, принципиально и многократно сокращаешь количество предложений, содержащих новые для себя слова;
  3. язык конечен, активный словарь ещё меньше, тематический -- вообще кратно меньше второго -- кто разбирается, тот быстро и естественным образом постигает значения слов, а значит – может читать всё более богатые на язык и смыслы тексты, т.е. переходит на следующий уровень сложности, разнообразия и интересов.

Поэтому придуманной вами проблемы попросту не существует: это отголоски вашего личного страха, что читатели потеряют интерес к вашим текстам, а значит -- не будут оказывать вам внимание. Страх, который вы подспудно пытаетесь перенести на других. А без внимания, в вашей личной системе координат и пространства выбора, с вами что-то случится, как вам кажется. Например, вы чего-то лишитесь (доступа к телу?). На деле же, ничего проблемного и кардинального не произойдёт, мир не рухнет. Кто выбрал «не разбираться», не исчезнет, и с самим автором тоже ничего не произойдёт. Оба ничего не потеряют: на то он и читательский выбор. Ибо нефиг впаривать чтиво.

Да, и краткость -- она обычно нужна тем, кто не хочет читать, думать, понимать и разбираться (потому что типа нет времени, что само по себе -- ещё одно ложное оправдание собственного бессознательного выбора), но боится себе в этом признаться, т.к. это противоречит каким-то его собственным убеждениям и контексту текущих традиций его малой группы. Краткость нужна тем, кто использует тексты не по их назначению, а для прокачки собственных эмоций, т.е. пустопорожнего эмоционирования. И краткость, как раз, и достигается благодаря обширному активному словарю лексики и контексту перечисленными выше путям и способами: кто всё это понимает, не порет вашу чушь, т.е. для них даже незачем было бы оба моих ответа писать и разжёвывать каждую деталь с обоснованием и мотивацией.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Про «краткость сестра таланта» обычно любят петь наслаждающиеся острой формой недостаточности личного опыта извлечения ВСЕХ (!!!) смыслов из… минимально-избыточного (в тяжёлых случаях можно повторить с неизбыточным) текста.
При недостатке индивидуальных навыков самоконтроля — пригласить специалистов. Из ЧК или Святой Инквизиции.

Аватар пользователя Офисный планктон

Про «краткость сестра таланта» обычно любят петь ...

А отвергают эту истину любители "словесного поноса" и те, кто хочет запутать слушателя/читателя.

Аватар пользователя И-23
И-23(8 лет 7 месяцев)

Неупоминание во славу «краткости» ключевых моментов (которые *должны* бы быть известны читателю в случае, когда они по факту ему неизвестны) конечно же не запутывает.
Один из хрестоматийнейших примеров — теория эволюции Ч. Дарвина.

Краткость обычно любят требовать заочные идеалисты (в смысле — работающие с языком без угрозы практической поверки).
Но даже им хорошо помогает взыскание трудозатрат на воплощение хотелок.
Особенно прецеденты, когда на возмещение уходит ВЕСЬ произведённый ими продукт (на временном интервале в десятилетия) с нулевым выходом (аргументированным вердиктом типа: формулировка не оптимизируется).