Недавно узнал про чудесное поделие разработчиков из Mozilla под названием Raindrop. Суть этой заманухи — сгребание в кучу всеразличных средств обмена сообщениями (на данный момент оно умеет собирать почту по IMAP (насчет POP3 я не в курсе, да и надо ли?), читать Twitter и RSS, что-то тянуть из Skype…) и таким образом избавление пользователя от необходимости клацать тысячу веб-страничек ежедневно.
В общем, захотелось и мне пощупать, что это и с чем его едят. Сказано — сделано! На виндах почему-то отказался ставиться какой-то из жизненно важных компонентов, что меня расстроило не слишком сильно. Я просто взял и подверг аццким пыткам VPS (а на нем FreeBSD). Аццкие — это вообще не то слово. На сайте Raindrop сказано, что сейчас основные усилия разработчиков направлены на облегчение процедуры установки. О, насколько это необходимо, я вкусил в полной мере. Ибо даже если делать все по инструкции — попадается куча подводных камней.
Шаг первый. Бэкендом у Raindrop работает сервер CouchDB. Написан он на Erlang, который на сервере пока не установлен. Ладно, собираем Erlang из портов. Не найдя толковой документации по установке CouchDB, действую методом тыка. Скачал tgz, распаковал. Стандартное
./configure && gmake && sudo gmake install |
отработало без ошибок, однако же сервер запускаться не хотел и как-то вяло и невнятно ругался. К моей радости, в вики CouchDB оказалась статья про troubleshooting (найти ее было непросто). Выяснилось, что первым делом надо запускать сценарий bootstrap. Однако же его в архиве не оказалось. «WTF?» — спросил я у жужжащего над ухом вентилятора. И вентилятор посоветовал мне получить сорцы из subversion. Так я и сделал:
svn co http://svn.apache.org/repos/asf/couchdb/trunk couchdb cd couchdb ./bootstrap |
О чудо! bootstrap на месте, но ругается на autoconf. Что-то про это было в вики, ага, касается именно фряхи. Только в вики было по поводу полного отсутствия, а у меня орет на несоответствие версий. Смотрю readme, написано, что хочет autoconf ≥ 2.59. У меня, как ни странно, 2.59. Ладно, дурное дело — не хитрое, иду в порты, ставлю 2.62 (меньше — только совсем меньше) — ноль эмоций. Снес тот, что поставил из портов, скачал сорцы, собрал — помогло! Теперь:
./bootstrap ./configure gmake sudo gmake install |
Еще немного ожидания, и… все собралось и даже делает вид, что запускается.
Шаг второй. Собственно, Raindrop. Первое и самое важное требование — наличие Python 2.5 или 2.6
which python /usr/local/bin/python python --version Python 2.5.4 |
Ну, хоть с этим повезло :) Дальше нужен mercurial, чтобы забрать код из репозитория. Он прекрасно ставится из портов. Делаю:
hg clone -r 0.1 http://hg.mozilla.org/labs/raindrop raindrop/server/python/check-raindrop.py |
А вот хренушки. setuptools ему подавай и еще какие-то мелочи. n-дцать раз запускаю
raindrop/server/python/check-raindrop.py --configure |
затем, наконец,
raindrop/server/python/check-raindrop.py |
и… Я ЗАБЫЛ ЗАПУСТИТЬ БЭКЕНД, ОСЁЛ!!!!!111eleven А в остальном все ништяк. Теперь пишем, какие аккаунты и где надо собирать в ~/.raindrop, запускаем бэкенд и непосредственно сбор:
couchdb & raindrop/server/python/run-raindrop.py sync-messages --max-age=5days |
ждем немножко (в это время консолька активно загаживается всяческими сообщениями относительно того, что происходит) и со вздохом облегчения открываем http://myserver:5984/raindrop/inflow/index.html. Ура, товарищи! Все работает.
После всей этой возни мне открылась истина, что Raindrop вовсе не является убийцей Google Wave. В то время, как Волна — средство для коллективной работы, Капля — приложение индвидуальное, собирающее множество личных информационных потоков в один. И Капля совсем не предназначена для работы на сервере, хоть и имеет столь ярко выраженную клиент-серверную архитектуру. Хотя, возможно, в будущем появятся и сервера для множества пользователей (мне это кажется вполне реализуемым), но смысл от этого не изменится.
Что ж, будем держать руку на пульсе.