Отслеживать реакцию на свои действия в современном вебе не очень-то удобно, это один из минусов его распределённости. Комментарии всё-таки удобнее видеть в одном месте. Причем до недавних пор, пожалуй, единственным местом централизации был почтовый ящик, в который приходили письма с комментами. Сейчас разработчики ищут новые решения для этой проблемы. К сожалению, жизнеспособных вариантов пока мало, и идея у всех них одна — централизация на каком-то внешнем сервере.
Например, 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]
А как божественно просто было приделать оповещение меня по джабберу о новых комментах/пингах на блог — не устаю восторгаться! : )
безусловно, сейчас firebug — лучший друг веб-разработчика. К сожалению, он работает только в firefox. Но часто хочется выполнить пару-тройку команд в другом браузере, не прибегая к извращениям в адресной строке типа
javascript:void(alert(…))
самое простое решение в такой ситуации — использовать букмарклет jash aka javascript shell. Пока что это лучшая из всех консолей, которые мне приходилось видеть, с историей, автодополнением, каким-никаким DOM Inspection и другими мелкими плюшками. Рекомендую, в общем. А пишу я об этом потому, что в неплохом русскоязычном блоге о яваскрипте JSToolbox появилась заметка об очередной альтернативной консоли, которая мне кажется слишком примитивной.
наверное, любой веб-разработчик, хоть немного интересующийся происходящим в своей области, слышал об HTML 5. В этом могучем документе сотни, если не тысячи, людей пытаются во всех подробностях описать мощную платформу для будущего интернета. Интересно, что параллельно с этим постепенно вырисовывается и очередная версия яваскрипта. А ещё интересно, в процессе разработки обоих спецификаций не обходится без интриг.
нет, я честно скажу, что не взялся бы отслеживать список рассылки по html5 или будущему яваскрипту — это уже слишком много для меня : ) Поэтому о происходящем внутри я некомпетентно сужу только по доносящимся оттуда вскрикам. И вот что мне в них слышно.
не так давно микрософт отправил своего представителя в html5. Естественно, вначале все переполошились, но потом этот Крис Вилсон вроде бы проявил себя с хороших сторон, и его приняли в песочницу. Даже через какое-то время поставили на пост председателя — руководить собраниями и пр. И только спустя месяцы стало заметно, что микрософт всё-таки потихоньку разработку стандарта саботирует. Ну ещё бы — ведь новый стандарт не должен годиться в конкуренты очередному детищу монстра, Silverlight.
в яваскриптовом лагере ситуация похожая, но интереснее. Там есть известный специалист Дуглас Крокфорд — автор JSON и многих довольно интересных текстов про яваскрипт. Сейчас он в Yahoo, едва ли не руководит соответствующим отделом. Ну и, естественно, участвует в обсуждениях следующей версии языка. А вот что забавно — в них он занимает почти ту же самую позицию, что и воины микрософта. И снова эта позиция производит впечатление большого якоря для прогресса. Мне лично неясно, какие для этого мотивы у самого Крокфорда, но микрософт аналогично не очень горит желанием видеть сильного конкурента своему нью-флешу.
впрочем, микрософту я и без этого вообще не верю, так что новых выводов делать не буду. Просто нужно бдить.
сейчас опять потратил полчаса на дебаг из-за малоизвестной «фичи» firefox — тайного параметра lateness, и решил избавиться от проблемы насовсем, благо яваскрипт позволяет:
if (Prototype.Browser.Gecko) {
function handler(old, callback, time){
return old(function(){ callback() }, time);
}
window.setInterval = window.setInterval.wrap(handler);
window.setTimeout = window.setTimeout.wrap(handler);
};
теперь никакие левые параметры не будут переданы в сработавшую по таймеру функцию
Недавняя статья Юрия Артюха «G-club, микроформаты и дизайн» сподвигла меня оценить возможности Yahoo SearchMonkey — инициативы поисковика по улучшению результатов поиска. Точнее, улучшается не релевантность поиска, а отображение его результатов. Обычно гугл и яху показывают в основной ссылке содержимое title страницы, а сниппетом — meta description или кусок текста, окружающий искомые слова на странице. SearchMonkey позволяет увеличить число элементов, и показывать картинку, несколько релевантных ссылок, несколько пар ключ-значение для каждого результата поиска, как это видно на на примере у Юрия. Естественно, только на страницах самого Yahoo.
Этот результат достигается за два шага, не считая регистрации на Yahoo (что само по себе непростая задача, которую я решил только выбором ника mi4qcjho ;)
Первый шаг: создание для конкретного сайта или множества страниц нового Data Service — способа извлечь из страницы чистые данные. Если сайт делается прогрессивным разработчиком, и уже использует микроформаты типа hCard или XFN, то этот шаг можно пропустить, потому что для микроформатов есть готовые Data Service. В противном случае придётся немного напрячь мозги над несложным XSLT, извлекающим значимый текст. Для этого на странице Application Dashboard нужно кликнуть ссылку «Create a new data service», задать название сервиса и адреса тестовых страниц, и потом заняться собственно кодом. Поскольку у нас на mirtesen.ru hCard временно сломан, мне пришлось пойти сложным путём, и изобразить вот это:
Очевидно, что такой код извлекает из страницы имя человека, его ник, фото, день рождения, интересы и самоописание. Кстати, очень удобно в процессе работы использовать отладчик внизу страницы, даже несмотря на его серьёзные тормоза.
Второй шаг — это собственно настройка того, что вы хотите показывать в результатах поиска. Для этого на странице Application Dashboard нужно кликнуть ссылку «Create a New Application», ввести очевидные метаданные приложения, и опять ввести тестовые адреса. Затем нужно выбрать, какие Data Service вы собираетесь использовать в своём приложении. Яху предлагает несколько своих стандартных, включая и микроформаты, но мне пришлось нажать «Add More Data Services» и добавить только что созданный сервис. И на следующей странице я, наконец, взялся за оформление. Оно задаётся с помощью — сюрприз! — кода на PHP. Конечно, запустить шаловливые ручки в HTML не дадут, и PHP используется только для примитивной обработки данных. Тут я исследовал ещё не все возможности, потому что пошёл по стандартному пути, подсказанном примером кода. Я указал, что будет текстом ссылки, какая фотография релевантна этой странице, добавил несколько контекстных ссылок и отдельных полей. Соответствующие конкретному результату поиска данные предоставляются теми самыми Data Services, которые выбраны для этого приложения: их поля находятся справа от textarea, и простым кликом вставляются туда, где стоит курсор. Получается что-то вроде этого:
Опять-таки внизу страницы есть тормозной, но полезный отладчик. Правда, здесь он ещё и глючит, если параллельно редактировать Data Service и само приложение, но терпение и труд всё перетрут. Готовое приложение можно сохранить, добавить в общий каталог, и начать использовать самому. Вот приложение для mirtesen.ru, которое получилось у меня.
Пока что остаются непонятными несколько вещей. Во-первых, даже несмотря на то, что я вручную включил для себя это приложение, результаты поиска отображаются традиционным способом, а не как у LinkedIn. Для просмотра улучшенного варианта приходится кликать на кнопочку под каждым результатом. Во-вторых, пока неясно, как включить приложение для всех пользователей Yahoo, если я владею сайтом. Ну и последняя загадка — кому это нужно в рунете, учитывая популярность яхи здесь : )