ответы в поучаствованных темах™

, , , , comments: 7

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

Например, FriendFeed пытается объединить обсуждения в интерфейсе rss-читалки (очень неудобной читалки, на мой взгляд). Впрочем, до него несколько менее известных сервисов пробовали сделать то же самое. Disqus и IntenseDebate заходят с другой стороны, подключая к своей системе сами блоги авторов, а не читателей. Какой-то русский давно уже получил миллион долларов инвестиций под похожий скрипт комментирования, но у него вроде не было никакого api, и вообще он казался примитивным.

А другие программисты пока работают по старинке. На XPoint уже многие годы есть страничка «Поучаствованные темы» с благодарностями Давиду Мзареуляну и Алексею Волкову (кстати, я долгое время был уверен, что это Урбаншип, но сейчас вдруг засомневался). На этой страничке видны темы, в которых ты участвовал, если в них есть ещё не виденные тобой комментарии. Кажется, аналогичное было и в InvisionBoard, но не уверен.

Недавно я столкнулся с более интересным для меня вариантом — списком последних комментариев в темах, где ты оставлял комментарии. Правда, у Simon Willison и Болка это реализовано чуть по разному: в одном случае ты видишь даже свои ответы, а в другом — только чужие. Плюсы и минусы есть у обоих вариантов, я пока не знаю, который мне нравится больше. Но всё равно — это мой выбор, потому что для комментария должно быть достаточно одного только OpenID, и лишний раз отдавать свой емейл желания нет.

Впрочем, будет забавно, если фиды всё-таки дозреют до push-технологий, и мы получим фактически email-подписку, но с другого конца ; )

К чему я это всё пишу? Да просто прикрутил такую систему на свой уютный бложек™, и теперь моим редким комментаторам будет немного удобнее : )

Ну и ещё очень хочется сказать, что programming is fun again! Питон+джанго всё-таки жгут. Суть этой новой фишки делается двумя строчками:

userComments = Comment.objects.filter(user__exact=self.openid.user)
return Comment.objects.filter(object_id__in=[comment.object_id for comment in userComments]).order_by('-submit_date')[:25]

А как божественно просто было приделать оповещение меня по джабберу о новых комментах/пингах на блог — не устаю восторгаться! : )

comments

  1. Боюсь я всё-таки этой уличной магии. А ну как я 10000 комментов напишу? Как тогда “objectidin=[comment.objectid for comment in userComments]” работать будет?

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

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

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

    david_m,
  4. понятно

    не, небоскрёбов на джанго я тоже пока не планирую, как и нагрузки : )

    если буду планировать, буду серьезно смотреть на производительность, да. А пока что просто радуюсь, что можно писать коротко и выразительно : )

    arty,
  5. Я Джангу совсем незнаю, но там нельзя сделать так?

    Comment.objects.filter(user_exact=self.openid.user).orderby('-submit_date')[:25]

    david_m,
  6. можно, так найдутся все комментарии юзера, но для него это бесполезная информация

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

    arty,
  7. А, соори, значит я неправильно логику запроса понял.

    david_m,

Login with OpenId to leave comment