LINUX.ORG.RU

[reopened] просмотр только новых сообщений


0

0

Хотелось бы имет возможность просматривать только новые(пришедшие после указанного) сообщения в топике. Подобная фича сэкономит трафик при пользовании написанным мной клиентом tkLOR(http://code.google.com/p/tklor/) и снизит нагрузку на сервер при просмотре длинных тредов.

Например, вместо страницы http://www.linux.org.ru/view-message.jsp?msgid=2408762&lastmod=1200706291... хотелось бы набрать http://www.linux.org.ru/view-message.jsp?msgid=2408762&lastmod=1200706291... и увидеть только последние 10-20 комментариев, а не все 8 страниц.

Ещё, как вариант, отгружать по RSS не только последние 10(или сколько там сейчас?), но также сделать опцию "показать сообщения после заданного". Правда в таком случае для корректного построения дерева в тело RSS-сообщения придётся включать ещё и id сообщения, на которое был дан ответ(даже и не знаю, возможны ли произвольные теги в RSS).

Хотелось бы услышать официальное мнение по поводу данного запроса.

P.S. Вопрос поднимался тут, но ответа я так и не получил: http://www.linux.org.ru/view-message.jsp?msgid=2397097 .

★★

> снизит нагрузку на сервер

Ну да, серверу придется для каждого клиента персонально вычислять какие страницы для него новые, и это разумеется снизит нагрузку на него.

anonymous
()
Ответ на: комментарий от anonymous

> Ну да, серверу придется для каждого клиента персонально вычислять какие страницы для него новые, и это разумеется снизит нагрузку на него.

"Новые" в данном случае: id >= :specifiedId. Всего одно условие в select.

gaa ★★
() автор топика

Тянуть с page=-1 это не слишком хорошая идея, нельзя ли использовать разбиение на страницы?

maxcom ★★★★★
()

мнение неоффициальное :)

то что вы просите не имеет смыла иначе как в виде отдельного механизма для отгрузки сообщений в машинно-читаемом виде (остальные варианты бессмысленные костыли :)

нарисуйте алгоритм кеширования для такого механизма ;)

>Подобная фича ... снизит нагрузку на сервер

и как часто ваш клиент будет дергать сервер? ;)

ЗЫ: ИМХО, клиенты отличные от браузера и/или изменяющие содержимое - зло и неуважение к хозяину сайта, если он сам явно не разрешил такого (пользуюсь адблоком - чувствую себя виноватым :)))

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae

>ЗЫ: ИМХО, клиенты отличные от браузера и/или изменяющие содержимое - зло и неуважение к хозяину сайта,

Может поговорим, что важнее посетители ЛОРа или сферический ЛОР без посетителей?
Если все же посетители, то будьте гибче, вместо отдачи ему/мне/... page=-1, выдайте то что просят.
Я тоже просил при постинге сообщения добавить галочку, чтобы просто получить ответ "Сообщение принято" без редиректа на страницу с сообщениями. Макском даже не ответил, хотя не мог не видеть его, так как отвечал в соседние топики.

sdio ★★★★★
()

А что ты делаешь с удаленными сообщениями?
Тебе все-равно придется page=-1 тянуть и корректировать свою базу если были удаления на ЛОРе.

sdio ★★★★★
()
Ответ на: комментарий от maxcom

> Тянуть с page=-1 это не слишком хорошая идея, нельзя ли использовать разбиение на страницы?

Да, нехорошая, хотя бы по количеству трафика.

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

gaa ★★
() автор топика
Ответ на: комментарий от sdio

> А что ты делаешь с удаленными сообщениями?

Ничего. В любом случае, если я сообщение один раз увидел, никакое удаление его из моей памяти не сотрёт.

gaa ★★
() автор топика
Ответ на: комментарий от gaa

Хм, кто-нибудь кроме меня видит красную рамку вокруг только что добавленного сообщения? ;)

gaa ★★
() автор топика
Ответ на: комментарий от AcidumIrae

> ЗЫ: ИМХО, клиенты отличные от браузера и/или изменяющие содержимое - зло и неуважение к хозяину сайта, если он сам явно не разрешил такого (пользуюсь адблоком - чувствую себя виноватым :)))

Я считаю что пользователь имеет право защищать свой мозг от информационного насилия при помощи adblock - голова дороже :-) С сторонними клиетами вопрос более сложный.

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

> С сторонними клиетами вопрос более сложный.

Ну я думаю, что любую проблему можно решить, если как следует обсудить.

gaa ★★
() автор топика
Ответ на: комментарий от sdio

>А что ты делаешь с удаленными сообщениями? >Тебе все-равно придется page=-1 тянуть и корректировать свою базу если были удаления на ЛОРе.

Когда робаты победят, человеки ЛОРа будут вынуждены прекратить оголтелую цензуру на ресурсе :-)

anonymous
()
Ответ на: комментарий от maxcom

>С сторонними клиетами вопрос более сложный.

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

sdio ★★★★★
()
Ответ на: комментарий от sdio

>Клиент пользующийся http протоколом для доступа к сайту, сторонним быть не может по определением. Как этот клиент рендерит страницу его личное дело. Вас, пардон, это не касается.

вот об этом я и говорил - неуважение к хозяину сайта :)

AcidumIrae ★★★★★
()
Ответ на: комментарий от sdio

>Может поговорим, что важнее посетители ЛОРа или сферический ЛОР без посетителей?

читайте еще раз первую строчку поста на который отвечали. в цикле. пока не поймёте.

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae

Тебя на чем-то клинит?
Причем здесь хозяин сайта?
Макском на ЛОРе свои картины выкладывает, а мы их адблоком режем?
Подумай немного, а?

sdio ★★★★★
()
Ответ на: комментарий от AcidumIrae

> нарисуйте алгоритм кеширования для такого механизма ;)

мнээ... что-то вроде алгоритма двойняшек в пейджинге в выделении виртуальной памяти в ОС?

В пределе, каждый пост = отдельный XML, "движок"-читалка вытягивает нужные лично ему XMLи и кеширует.

> и как часто ваш клиент будет дергать сервер? ;)

а в чём собственно разница в вытягивании страницы "фиксированной длины" целиком и вытягивании "страниц" разных длин?

и алгоритм двойняшек по "размеру длины страницы"

скешировать тоже можно. Можно ограничить число вариантов "разных длин", в пределе -- вытягивать последнюю страницу. То есть чтобы по посту было видно, в какую страницу он попадает. Правда, когда топик будут резать, вся эта нумерация страниц будет съезжать.

anonymous
()
Ответ на: комментарий от anonymous

+всю эту подгрузку "только нужных новых постов" кажется можно сделать вообще через XSLT с включаемыми XMLями.

anonymous
()
Ответ на: комментарий от anonymous

> через XSLT с включаемыми XMLями

Не читайте с утра быдлокнижек. Xml тут избыточен.

Мне, например, для хранения кеша за глаза хватило формата mbox.

P.S. Подозреваю, что парой лет раньше мне бы посоветовали использовать для хранения реляционную БД :)

gaa ★★
() автор топика
Ответ на: комментарий от gaa

> Xml тут избыточен.

хорошо ложится на RSS-транспорт. XML RSS+CSS = тот же вкус, тот же вид :) что и сами вебстранички. Только новые "кусочки" успевай подгружать.

anonymous
()
Ответ на: комментарий от anonymous

>> Xml тут избыточен.

> хорошо ложится на RSS-транспорт. XML RSS+CSS = тот же вкус, тот же вид :) что и сами вебстранички. Только новые "кусочки" успевай подгружать.

$ grep -i rss tkLOR.tcl | wc -l
0

RSS мне не подходит. Хотя бы потому, что мне мало последних 10 записей(в общем случае). Да ещё из RSS-ленты не выковыряешь, на какое сообщение был дан ответ.

gaa ★★
() автор топика
Ответ на: комментарий от sdio

> А я тебе что официально что-то заявлял?

мое имхо было безотносительно к кнокретному ЛОРу

AcidumIrae ★★★★★
()
Ответ на: комментарий от sdio

>Тебя на чем-то клинит?

фи

>Причем здесь хозяин сайта?

Не надо шланговать. Обычно все прописано в правилах и соглашении посетителя, но вы пользуетесь добротой Макса :)

>Макском на ЛОРе свои картины выкладывает, а мы их адблоком режем?

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

>Подумай немного, а?

Заканчивам шланговать. Хозян сайта вам ничего не должен.

AcidumIrae ★★★★★
()
Ответ на: комментарий от gaa

> Хотя бы потому, что мне мало последних 10 записей(в общем случае)

даёшь XMLRPC API для ЛОРа? :) и выдачу в RSS для чтения браузером/RSS клиентом или в asciidoc/текстовом вроде mbox для чтения текстовым клиентом/NNTP :)

> Да ещё из RSS-ленты не выковыряешь, на какое сообщение был дан ответ.

RSS=XML , можно добавить свои поля. В крайнем случае, сделать отдельный XML с метаданными, какое сообщение follow-ups на какое. Опять изобретаем NNTP :)

anonymous
()
Ответ на: комментарий от anonymous

>> Хотя бы потому, что мне мало последних 10 записей(в общем случае)

> даёшь XMLRPC API для ЛОРа? :) и выдачу в RSS для чтения браузером/RSS клиентом или в asciidoc/текстовом вроде mbox для чтения текстовым клиентом/NNTP :)

И машинку для закатывания губ впридачу :)

>> Да ещё из RSS-ленты не выковыряешь, на какое сообщение был дан ответ.

> RSS=XML , можно добавить свои поля. В крайнем случае, сделать отдельный XML с метаданными, какое сообщение follow-ups на какое.

Поправлю: _сейчас_ в RSS-ленте подобных полей нет.

> Опять изобретаем NNTP :)

Дык... был бы nntp, не пришлось бы заниматься велосипедописательством.

gaa ★★
() автор топика
Ответ на: комментарий от anonymous

>> Хотя бы потому, что мне мало последних 10 записей(в общем случае)

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

Кстати, если вёрстка -- корректный XHTML то это может работать уже "из коробки".

anonymous
()
Ответ на: комментарий от anonymous

>> Хотя бы потому, что мне мало последних 10 записей(в общем случае)

> RSS содержит последние 10 или все посты последней страницы топика целиком, и содержит ссылки на предыдущие страницы топика (одну или все).

Этого сейчас нет.

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

И чем это лучше указания при запросе RSS "последнего прочитанного сообщения", чтоб грузилось только то, что новее? По-моему, только перерасход трафика вызовет.

> Кстати, если вёрстка -- корректный XHTML то это может работать уже "из коробки".

Нет, вёрстка никак не является съедобным xml-ем.

gaa ★★
() автор топика
Ответ на: комментарий от gaa

> И чем это лучше указания при запросе RSS "последнего прочитанного сообщения", чтоб грузилось только то, что новее? По-моему, только перерасход трафика вызовет.

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

Само разделение на страницы, однако, получается "виртуальным" -- если топик режут, нумерация будет съезжать.

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

Саму "гранулярность кеширования" можно делать динамической, по алгоритму двойняшек, кешировать однотипные выдачи размеров кратных степеням двойки.

anonymous
()
Ответ на: комментарий от gaa

В целом думаю можно сделать какое-нибудь API, лучше наверное попробовать глянуть на какие-нибудь стандартные варианты вроде Blogger API. Затачивать ориентированные на броузеры jsp-файлы и HTML под сторонние скрипты не хочется.

maxcom ★★★★★
()
Ответ на: комментарий от AcidumIrae

От хозяина сайта не требуют, а просят, причем для обоюдного удовлетворения.

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

sdio ★★★★★
()
Ответ на: комментарий от maxcom

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

То есть в целом одобряется? Хорошо.

Blogger API мельком просмотрел. Что-то мне кажется, что он не очень походит: например, там нет дерева ответов(или я не увидел).

Подозреваю, что наиболее адекватное API для этой задачи -- NNTP.

> Затачивать ориентированные на броузеры jsp-файлы и HTML под сторонние скрипты не хочется.

И менять regexp при смене дизайна тоже как-то неприятно.

gaa ★★
() автор топика
Ответ на: комментарий от gaa

> Подозреваю, что наиболее адекватное API для этой задачи -- NNTP.

NNTP -- протокол. Там есть: уникальные GUID-метки постов, follow-ups, ссылки на другие конкретные посты (в рамочке :). То есть мы получается изобретаем реализацию подмножества этого протокола поверх XMLRPC API.

> И менять regexp при смене дизайна тоже как-то неприятно.

поэтому и интересен CSS+XML :)

anonymous
()
Ответ на: комментарий от sdio

>От хозяина сайта не требуют, а просят, причем для обоюдного удовлетворения.

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

>С тобой разговаривать желания более не имеею, так считаю что или ты издеваешься или просто дурачок.

взаимно.

AcidumIrae ★★★★★
()
Ответ на: комментарий от anonymous

> NNTP -- протокол. Там есть: уникальные GUID-метки постов, follow-ups, ссылки на другие конкретные посты (в рамочке :). То есть мы получается изобретаем реализацию подмножества этого протокола поверх XMLRPC API.

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

А то мне надоело уже оспаривать архитектурный бред анонима.

gaa ★★
() автор топика
Ответ на: комментарий от AcidumIrae

А яркость, контрастность, цветопередачу, ... монитора тоже с автором сайта согласовывать? Кончай гнать пургу!

sdio ★★★★★
()
Ответ на: комментарий от sdio

> А яркость, контрастность, цветопередачу, ... монитора тоже с автором сайта согласовывать? Кончай гнать пургу!

Угу, а если я дальтоник, то мне нужно срочно написать провайдеру, чтобы меня лишили интернета совсем, так как я не смогу с должным уважением пользоваться созданными авторами шедеврами. ;)

А по теме топика и по программе, которая пишется товарисчем gaa. Чем разрабатывать приложение, которое, насколько я понимаю, при существенных изменениях в движке придется чуть ли не целиком переписывать заново, разве не проще реализовать нужный функционал в версии сайта для браузера?

CkuB
()
Ответ на: комментарий от gaa

гыы, gaa. Архитектурный бред это протокол с API путать. =)

anonymous
()
Ответ на: комментарий от sdio

>А яркость, контрастность, цветопередачу, ... монитора тоже с автором сайта согласовывать? Кончай гнать пургу!

это вы кончайте шланговать!

ну как бы вам объяснить, что бы без дестских кубиков, пестиков и тычинок? ;)))

Хозяин сайта может показать контент желтым на салатовом фоне и это его право, а у вас есть 3 варианта:

1) не смотреть
2) попросить хозяина изменить это
3) изменить контент на своей стороне

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

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae

оффтоп

> (3) без спроса я считаю по крайней мере невежливым (все это безотносительно к конкретной ситуации :)

Хм, а увеличить размер шрифта для того, чтобы читать было удобнее, тоже невежливо? Или поменять css, дабы сайт вписывался в текущую цветовую схему? (дефолтно чёрный дизайн сайта выедает лично мне глаза)

( Насколько часто Вы смотрите телефизор, что обладаете настолько промытым мозгом? ) ( А как быть тем, у кого браузер глючит и показывает не так, как хотел автор? )

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

Начитались ЖЖ юзера dolboeb? Помнится, ходила по инету ссылка на одно его заявление, где он резание баннеров поставил в один ряд с грабежом и насилием.

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

gaa ★★
() автор топика
Ответ на: оффтоп от gaa

>Хм, а увеличить размер шрифта для того, чтобы читать было удобнее, тоже невежливо? Или поменять css, дабы сайт вписывался в текущую цветовую схему? (дефолтно чёрный дизайн сайта выедает лично мне глаза)

не надо шланговать. я говорю об изменении контента. салатовый и желтый - просто пример.

> ( Насколько часто Вы смотрите телефизор, что обладаете настолько промытым мозгом? )

зачем же сразу оскорблять? далее идет опять шлангование и перекручивание.

> Вообще, я прихожу сюда за информацией

Да хоть по грибы. Здесь нет "соглашения пользователя". Никто вам ничего не запрещает - где я такое говорил?

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae

>> Хм, а увеличить размер шрифта для того, чтобы читать было удобнее, тоже невежливо? Или поменять css, дабы сайт вписывался в текущую цветовую схему? (дефолтно чёрный дизайн сайта выедает лично мне глаза)

> не надо шланговать. я говорю об изменении контента. салатовый и желтый - просто пример.

Ну а пример изменения контента можно привести? "s/корованы/[censored]/g" - это уже изменение контента?

> далее идет опять шлангование и перекручивание.

Ну а что вызвало у Вас _стыд_ за резку баннеров?

>> Вообще, я прихожу сюда за информацией

> Да хоть по грибы. Здесь нет "соглашения пользователя". Никто вам ничего не запрещает - где я такое говорил?

(Я не могу припомнить сайта, где подобное соглашение есть)

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

gaa ★★
() автор топика
Ответ на: комментарий от gaa

>Ну а пример изменения контента можно привести? "s/корованы/[censored]/g" - это уже изменение контента?

например вырезание всего, кроме сообщений вашей программой: вы же не показываете скролер от IBM и фразу "Разработка и поддержка - Максим Валянский 1998-2008" - они ж не от балды на странице? ;)))

>Ну а что вызвало у Вас _стыд_ за резку баннеров?

безотносительно к конкретному случаю: может бесплатный ресурс, который вы просматриваете сущетсвует за счет банеров? в голову такое не приходило? (риторический вопрос)

> (Я не могу припомнить сайта, где подобное соглашение есть)

вы просто не читаете - вот первый пример http://www.autotrader.com/visitor.jsp Программы подобные вашей там ЯВНО запрещены ;)

> И, кстати, это был пример того, как я, _изменяя_ отданный мне контент, только улучшил(для себя) воспринимаемость сайта.

да вам запрещает кто-то? :))) Я сказал своё имхо - без спросу разрешения хозяина невежливо ;)

AcidumIrae ★★★★★
()
Ответ на: комментарий от AcidumIrae

> например вырезание всего, кроме сообщений вашей программой: вы же не показываете скролер от IBM и фразу "Разработка и поддержка - Максим Валянский 1998-2008" - они ж не от балды на странице? ;)))

Кстати, да, надо добавить пункт меню "About LOR". Признаю упущение.

> вы просто не читаете - вот первый пример http://www.autotrader.com/visitor.jsp Программы подобные вашей там ЯВНО запрещены ;)

Не открылся. ЛОР-эффект?

> безотносительно к конкретному случаю: может бесплатный ресурс, который вы просматриваете сущетсвует за счет банеров? в голову такое не приходило? (риторический вопрос)

(риторический ответ в виде вопроса) И для этого я должен насиловать свой мозг ссылками на проституток/порносайты/казино?

gaa ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.