GR хороший, но мелких проблем у него хватает. Когда натыкаешься на них по многу раз на дню, это начинает раздражать. Поэтому встречайте Open Google Reader с преферансом и гимназистками
работает он как юзерскрипт на домене GR, получая таким образом доступ к GR API. На всю полноту функций папочки не претендует, при необходимости даёт к нему доступ
некоторые фичи:
принудительное обновление всех фидов (если читать больше нечего)
пользовательские фильтры от нежелательных тем и криво оформленных постов (прощайте iPad и бессмысленные заголовки)
решена проблема «нажмите обновить, чтобы прочитать остальные 5 записей»
подтянутый интерфейс
настраиваемые хоткеи (даже в русской раскладке)
моментальная загрузка даже на слабых наладонниках
ссылки открываются в фоновых табах, чтобы реже переключаться туда-обратно
хоткей «открыть первую ссылку в записи» для новостных блогов
сейчас среди приверженцев html5 идёт тихий шум на тему того, что ютюб и вимео начали поддерживать тег video, но кодеки для этого они выбрали неправильно. На эту тему я хочу сказать, казалось бы, очевидные вещи, упоминания которых я ещё нигде не видел.
для начала: если кто-то вдруг этого ещё не знает, во флеш встроена поддержка кодека H.264. То есть, условно говоря, плеер для такого видео делается на флеше за пять минут. Этим пользуются ютюб и вимео, храня петабайты своего видео именно в этом формате. С их серверов эти готовые файлы напрямую отдаются флеш-плееру на вашем компьютере.
итак, очевидное: к этому моменту всё, что сделали ютюб и вимео — потратили один день программиста и неделю тестировщика, чтобы по желанию юзера вместо embed на странице оказывался тег video. Всё. Это вся «поддержка html5 video». Соотношение затрат и позитивной реакции на это событие очень впечатляет, так что шаг умный, не спорю. Меня удивляет скорее радость юзеров: чему тут радоваться?
естественно, перекодирование таких объёмов требует огромных ресурсов. Поэтому ютюб не будет этим заниматься сейчас. Нет, пока что они соберут хорошую карму за упоминание html 5 и потестируют фичу на широких массах юзеров. А вот через полгода-год, если не через два, возможно, начнётся конвертация. Если всё будет хорошо.
впрочем, спору нет, для сообщества веб-разработчиков и производителей браузеров это был очень полезный шаг. Заодно и patent awareness вырастет.
несколько лет назад опера научилась запускать в отдельных системных окнах маленькие приложения-виджеты, вроде тех, что сейчас часто можно видеть на стартовых экранах смартфонов. Конечно, так можно было запускать и приложения покрупнее, но этим мало кто занимался. Тем более, что эти приложения работали только до тех пор, пока работала опера. А использовать отдельный процесс оперы с отдельным профилем — хлопотно.
но вот недавно виджеты стали стандартом W3C, а опера кардинально улучшила их поддержку: теперь они работают как независимые программы, и так же независимо их можно устанавливать и удалять. Немедленно множество людей сообразило, что в таком виджете можно запускать уже существующие веб-приложения, достаточно одного ифрейма. Правда, с первых попыток у меня это не заработало, но я оставил себе заметку на будущее.
будущее наступило : ) И теперь достаточно нескольких кликов, чтобы превратить веб-приложение в «настольное»! Зайдите оперой на страничку Opera Prism: desktop web-applications, введите урл и нажмите Install. Или скачайте его на диск, чтобы поредактировать. Или отправьте конечную ссылку другу.
конечно, я не буду утверждать, что опера была первее всех — это очевидно даже из названия заметки. До неё таким трюкам научились Mozilla Prism и Хром. Однако у оперы есть преимущество: она ест заметно меньше памяти, и эти приложения более похожи системные (вплоть до автопакетирования в deb в убунте).
а иконок нет пока только из-за моей лени ; ) Вернее, я не знаю ещё нормального способа добывать их автоматически или вручную.
конец года выдался урожайным на приятные новости. Несколько модулей CSS3 наконец стали реальными стандартами, выйдя из стадии, где каждый браузер реализует тот предварительный вариант, который ему больше нравится (а их фанаты поплёвывают на оперу, ждущую хоть какой-то определённости).
следующий в спискеCSS3 Backgrounds and Borders, который сейчас стал Candidate Recommendation. Это этап, на котором разработчики спеки официально заявляют: «пришло время воплощать идеи в коде».
ну и последний модуль — CSS Multi-column Layout, который теперь тоже Candidate Recommendation.
подозреваю, что кто-то в опере уже включил флажок в мейкфайле, чтобы в Рождественском релизе Оперы оказался давно готовый у них код для реализации обоих этих модулей-кандидатов.
наверное, вначале стоит пояснить, что такое PubSubHubbub. Эта технология была придумана недавно как замена веб-пингам, позволяющим оповестить всех заинтересованных, что у вас в блоге появилась новая запись. Для этого при добавлении записи нужно было отправить http-запрос на один или несколько специализированных серверов, которые дальше сами рассылали уведомления всем подписавшимся. PubSubHubbub развивает эту идею дальше, добавляя в этот запрос само содержимое поста, так что заинтересованные сайты не ломятся все сразу в ваш блог, чтобы скачать фид и вынуть из него новый текст. Однако для большего нашего удобства работает и старый механизм: достаточно «пингануть» подходящий сервер, и он сам скачает фид, извлечёт из него пост, и разошлёт его подписчикам
кратко процесс можно описать так:
вы добавляете запись
ваш блог отправляет серверу сообщение «в таком-то фиде новое содержимое»
сервер скачивает фид и находит в нём новый пост
сервер отправляет всем подписанным на обновления этого фида новый пост
итак, что нужно сделать для подключения вашего блога на django к этой радости? Во-первых, выбрать PubSubHubbub-сервер. Я сам пока знаю только один: http://pubsubhubbub.appspot.com/. Пропишем его в настройках (settings.py):
после этого нужно в методе сохранения записи (тут я не могу давать конкретику, потому что не знаю внутренностей вашего блога) добавить собственно отправку оповещения:
from pubsubhubbub_publish import publish
publish(settings.PUSH_URL, u'http://your.blog/feed.url')
но это самый простой вариант, мне хочется оповещать ещё и об обновлениях в фидах тегов:
from pubsubhubbub_publish import publish
from django.core.urlresolvers import reverse as reverse
params = [settings.PUSH_URL, u'http://your.blog/feed.url']
params.extend(map(lambda tag: 'http://your.blog%s' % (reverse('tag_feed', args=[tag])), tags))
publish(*params)
теперь остался последний шаг: нужно добавить в сам фид информацию о том, за ним можно следить при помощи PuSH. Вообще-то это должно делаться очень просто — добавлением в него вот такой строчки:
но в django для фидов используется навороченный Syndication Framework, поэтому придётся унаследоваться от стандартного класса отрисовки фида Atom1Feed и добавить строчку вот таким образом:
после этого в определениях классов фидов нужно заменить feed_type = Atom1Feed на feed_type = PubSubHubbubEnabledFeed
всё, добавление PuSH завершено! Пройдёт некоторое время, пока заинтересованные сайты узнают, что ваши фиды транслируют обновления таким способом, и после этого новые записи будут появляться на них практически моментально
ну а если вам хочется свести код минимуму, то наверное link можно прописать в фиде вручную, и вместо вызова метода publish просто отправлять на сервер запрос с параметрами hub.mode=publish&hub.url=yourfeedurls