Byteflow-NFL готов
Для тех кто в теме: byteflow-nfl готов к вливанию в основную ветку разработки Byteflow.
Теперь для оставшихся 99.1% (посчитано точными научными методами с привлечением аппарата математической статистики) читателей расскажу подробнее.
Я отдельно не анонсировал смену движка сайта, так что немного предыстории. После переезда на отдельный домен я использовал наколенный блог-движок на Pylons и Schevo, потом Schevo был заменен на SQLAlchemy. Но в итоге, я устал от поддержки такого решения и принял решение присоединиться к существующему проекту. Таким проектом оказался Byteflow, так что я переехал именно на этот движок. Для сохранения обратной совместимости по урлам, пришлось несколько модифицировать его, так что я завел отдельную ветку byteflow-pyo, которую периодически обновляю с основного репозитория.
Еще во времена наколенного блог-движка у меня были кое-какие мысли по поводу, что же я хочу еще видеть на сайте кроме собственно блога. Проекты выросли сами собой и изначально не задумывались ;-) Зато хотелось френд-ленту и агрегатор личной активности (задумки этим не ограничиваются). Результат понравился не только мне, так что piranha и helge сподвигли меня на перенос friends и life в основную ветку byteflow. Для решения этой задачи я и завел ветку byteflow-nfl, которая сейчас и готова к вливанию в основной репозиторий byteflow.
Теперь чуть подробнее о том, что такое nebula, friends и life.
Nebula
nebula — это “движок” для фид-агрегаторов, какими и являются friends и life. Основан он на коде django-galaxy, отсюда и такое название. Позже стало ясно, что лучше бы с нуля написал, целее было бы. Но анти-nih синдром сработал, так что теперь есть то, что есть. В итоге, nebula предоставляет базовые модели, от которых удобно наследоваться и команду для сбора фидов, либо всех сразу, либо для отдельного приложения. Команда нужна для того чтобы можно было удобно обновлять фиды по cron’у. К примеру, у меня фид для friends по cron’у забирается раз в 3 часа, а фид life — каждые 30 минут.
Friends
friends — это блогролл, френд-лента, планета друзей, фидролл, называйте как угодно. Смысл в том, что это приложение, которое делает:
Т.е. вы указываете блоги, которые читаете, а friends делает всё остальное. Я, например, вместо подписки на десяток не сильно часто обновляемых фидов подписался на агрегированный фид, который получается при помощи friends, при этом сразу же получаю блогролл и меня не терзают “дай ссылки на python-блоги”, благо opml делается “бесплатно” :-)
В byteflow уже было приложение blogroll, но friends более “правильное”, так что blogroll считается устаревшим и есть инструмент для переноса данных из blogroll в friends.
Life
life — это агрегатор личной активности на публичных сервисах, где информация об активности пользователя отдается в виде фидов. Перед тем как начать, я, естественно, посмотрел уже существующие проекты, но они делают упор на использование нативных API разнородных сервисов. Я же предпочитаю использовать фиды. Это и плюс (однородный способ получения информации о событиях), это и минус (по API можно получить более подробную информацию, к примеру twitter в фиде не отдает, является ли текущий твит ответом на чью-то реплику, или нет). Таким образом, уже “из коробки” life умеет агрегировать информацию с любого сервиса, даже если нет специального адаптера, знающего как фильтровать и преобразовать фид для лучшей читаемости.
Как это попробовать
Если у вас есть возможность и желание, то было бы очень здорово получить фидбек.
Ниже инструкция, как опробовать friends и life на локальной машине
Прежде чем начать, следует удовлетворить зависимости Byteflow, плюс для NFL еще нужен feedparser.
Далее, нужно раздобыть byteflow-nfl:
$ hg clone http://bitbucket.org/j2a/byteflow-nfl/
или скачать zip-архив
Взяв за основу settings_local.py.template, написать локальный конфигурационный файл settings_local.py:
- указать имя БД в
DATABASE_NAME, например'dev.db' - в
STATIC_PAGESдобавить записи для ссылок на friends и life:('Life', '/life/', u'My activities'),для life('Friends', '/friends/', u'Blogs I\'m reading'),для friends
- раскомментировать
nebula,friendsиlifeвADDITIONAL_APPS
Дальше
$ python manage.py syncdb
и пробовать с dev-сервером ;-)
Если вы уже используете Byteflow и желаете попробовать friends и life в своем блоге, то скоро будет готова инструкция по обновлению ;-) Хотя можете начать уже сейчас, а вопросы по обновлению задавать в Jabber-конференции byteflow
P.S.Про точные научные методы — это шутка, я просто знаю количество людей, кому я рассказывал про NFL, а FeedBurner знает количество читателей ;-)

Комментарии
Ох, ребята, ну зачем же вы всё это в один проект тянете?
Ну указанные приложения не зависят от остальных частей Byteflow, так что, думаю, можно релизнуть и отдельно ;-)
В общем, пишите feature request, тогда буду что-то думать. Если выделять как отдельное приложение, чтобы было кому-то нужно и было кому тестировать ;-)
Во время отпуска я почти все интересное пропустил :) Надо будет пощупать на выходных.
Да щупай в основной ветке ;-) piranha уже смерджил…
Форма комментирования для «Byteflow-NFL готов»