About

Jabberdict

Запустил новый проект Jabberdict. Это такой бот-словарь для Jabber/XMPP. Написан на Google App Engine.

До того момента у меня был простой бот-словарь с несколькими тысячами пользователей. Бот жил на сервере JB (спасибо, JB!). К сожалению, старый сервер JB каким-то образом заменили на новый с 256 Мб ОЗУ, а в такой ситуации не до ботов.

Я не хотел бросать словарь, в частности потому, что сам им пользуюсь. Чтобы не перегружать сервер xkcd.ru, я решил переписать словарь на App Engine. Для небольших нагрузок App Engine бесплатен. Стоит заметить, что ограничения по XMPP в бесплатной версии App Engine очень либеральные.

При переезде самой сложной частью оказался, как ни странно, процесс переноса словарей в Datastore. Главная проблема в том, что это довольно долгий процесс. В силу распределенности Datastore запись происходит намного медленнее чтения.

Грубо говоря, процесс был таким: StarDict → слегка модифицированный PyStarDict → csv → Datastore. Конец истории хороший, но более 85% бесплатной квоты (1 Гб) уже израсходовано, хотя все словари в формате csv занимали не более 400 Мб; и это при том, что от части словарей пришлось отказаться. Datastore хранилище универсальное, а значит имеет большой оверхед (нужно хранить названия и типы полей каждой записи, а не только их значения).

Следующим этапом была рассылка сообщений старым пользователям. Логично было бы сделать из старого бота простой автоответчик, но новый ejabberd забыл все подписки. В этом случае все видят бота офлайн (даже рассылка presence вручную не до конца решает проблему). Поэтому пришлось активно рассылать сообщения. Собственно говоря, на данный момент процесс рассылки все ещё не закончен (и не закончится ещё как минимум неделю).

Всех интересующихся приглашаю пользоваться. Отзывы отправляются командой «!feedback» любому из словарей.

Добавить пост в: Delicious Reddit Slashdot Digg Technorati Google
(уже: 2) Комментировать статью

Комментарии

16.04.2011 15:58 Rain

Привет. А чего для словарных ботов не использовать тот же домен, что и для сайта проекта — jabberdict.ru? Запоминалось бы проще.

18.04.2011 16:28 Iakov

В данный момент это ограничение самого Google App Engine. Мне кажется, нет легкого способа его преодолеть. Хотя я подумаю, спасибо.

18.04.2011 16:33 Rain

Туда ведь вроде как можно привязать произвольный домен — или это не то же самое, что использование гугловского Jabber-сервера через Google Apps для собственных нужд?

19.04.2011 10:48 Iakov

К сожалению, нет: «The use of Google Apps domains in XMPP addresses is not yet supported for apps». Но у меня уже есть несколько мыслей (сегодня опубликую пост об этом).

26.04.2011 23:16 Iakov

Во многом благодаря вашему комментарию перенес ботов на их домен jabberdict.ru. :)

Форма комментирования для «Jabberdict»

Обязательное поле. Не больше 30 символов.

Обязательное поле

26.04.2011 23:18 Rain

Вот и отлично :). Смотрю, на вики уже тоже поправил…

Комментировать статью