2 September 2013

Краткая история индонезийского джаббера

Instant Messaging
Всем привет! В этом сообщении я хочу рассказать одну историю, очень сильно повлиявшую на мою онлайновую жизнь. Началась эта история в теперь уже далёком 2008 году, а закончилась этим летом. Это история о свободной сети Jabber/XMPP в индонезийском сегменте и о моём вкладе в развитие джаббера в этой стране, и посвящена она всем джаббероводам, тратящим свои силы, а часто и деньги, на поддержку своих детищ лишь во имя существования и процветания свободной распределённой XML-сети.



Начало


Всё началось в 2008 году с малозаметной публикации о программе Bombus в одной из популярных индонезийских газет. Индонезия, как истинно азиатская страна, уже успела к этому времени телефонизироваться до зубов, поэтому заметка вызвала широкий общественный резонанс и резкий рост интереса к Jabber. Первые пользователи регистрировались и общались главным образом на российских серверах. Старожилы джаббера, возможно, помнят дни, когда от индонезийцев было воистину не протолкнуться. Такая тенденция не очень понравилась мобильному оператору Telkomsel, который решил запустить свой собственный Jabber-сервер. Сервер этот, вероятно, стал первым настоящим Jabber-сервером в Индонезии. Он работал по адресу messenger.plasa.com (сейчас не работает) и дополнял собой остальной функционал этого сайта, который тогда был чем-то вроде социальной сети (сейчас это интернет-магазин).

Со временем среди индонезийских пользователей Jabber появились люди с IT-образованием, самостоятельно разобравшиеся в принципах функционирования сети. И аудитория, наконец, созрела до создания собственных серверов. Тогда и родился первый в Индонезии сервер, поддерживаемый энтузиастом. Это был сервер jabberid.org, функционирующий и поныне. Whois-информация по этому домену всё ещё хранит в себе дату запуска сервера. Человеком, запустившим сервер, был бизнесмен из Джакарты — Setyo Wibowo. Аудитория сервера быстро росла. В команду сервера вскоре вошёл Java-программист Eddy Purwa. Он вызвался помочь популяризации сервера путём разработки собственного XMPP-мессенджера для мобильных устройств с поддержкой J2ME. Вскоре были предложены два названия для проекта — iMess и ACId. Смысл первого достаточно очевиден, второе же являлось аббревиатурой от «Aplikasi Chat Indonesia». Разработчику понравилось второе название, и оно было выбрано в качестве официального. Первое же было отложено «про запас» на случай возникновения каких-либо юридических проблем с выбранным именем.

Примерно в это же время частью сообщества стал я. Я был приглашён в конференцию разработчиков ACId человеком, с которым мы хорошо подружились за несколько месяцев до этого — я держал у себя на сервере Jabber-бота, которым этот мой друг пользовался. Имя этого моего друга, впоследствии ставшего моей опорой в Индонезии на долгие годы, — Wiecliff Reynardo, или просто Клифф.

Клифф был очень большим поклонником свободной сети. Его сознание будоражили мечты о том, что когда-нибудь в его стране все стали бы использовать Jabber для общения. Он пригласил меня в конференцию просто по той простой причине, что счёл мою личность потенциально полезной для будущего Jabber-клиента. И я начал постепенно вливаться в коллектив.

Участников в команде было достаточно много. Большинство из них, правда, предоставляли лишь моральную поддержку, так как не могли помочь проекту программированием, созданием графики или ещё чем-либо материальным. Среди этих людей выделялся ботовод Arnold Lapian. Отец на тот момент двоих детей, человек в глубине своей души весьма хитрый, он целенаправленно стал моим другом, заметив мои познания в области XMPP. И однажды он обратился ко мне примерно с такими словами: «Дружище, а почему бы нам не основать свой собственный Jabber-сервер и тоже позиционировать его как национальный? Смотри, jabberid.org падает всё чаще и чаще, а валяется дольше и дольше». И я почувствовал, что не могу отказать ему в своей помощи. Опережая будущее, позволю себе похвастаться, отметив, что именно этот момент можно считать рождением самого могущественного Jabber-сообщества в индонезийском сегменте — SmartCommunity.

Но тогда ещё мы с Арнольдом и не мечтали о каком-то будущем. Напротив, после того, как мы действительно запустили свой проект, на нас обрушилась волна гнева. Нас обвиняли в сепаратизме, грозили бритвой Оккама. Не понравилась наша деятельность и Клиффу. Однако, до окончательной ссоры дело не дошло, и здесь сыграл роль именно тот фактор, на который сослался Арнольд, когда аргументировал потребность в новом Jabber-сервере. JabberID.Org начал падать чаще и чаще, и в скором времени неожиданно для всех загнулся совсем. Как оказалось, его основатель не захотел развивать проект дальше. Умер и проект ACId: его разработчик, и так с самого начала испытывавший ко мне недоверие, окончательно пришёл для себя к выводу, что индонезийский Jabber поставлен на колени иностранцем и у него нет будущего.

Будущего индонезийского джаббера действительно было туманно. Платформа J2ME постепенно сходила на нет, так как обычные телефоны стремительно уступали своё место смартфонам, а для смартфонов нормальные клиенты либо не существовали, либо были неизвестны индонезийцам. В этих условиях команде SmartCommunity, состоявшей тогда из двух человек, удалось собрать под своей крышей больше пользователей, чем было у предшественника jabberid.org, а впоследствии и перехватить домен jabberid.org под свой контроль.

Серверы SmartCommunity функционировали достаточно стабильно. Со временем к команде примкнули новые участники, среди которых были и программисты — индонезиец Irfan Mahfudz Guntur и белорус Artem Sheremet. А раз появились новые программисты, то появились и новые проекты. Промежуток времени с 2010 по 2012 годы, несмотря на то, что большинство индонезийских пользователей уже покинули сервер, ознаменовался настоящим бумом программирования: было положено начало как минимум семи (!) проектам. Я кратко представлю каждый из них.

1. Lopbox

Индонезийский участник сообщества SmartCommunity и заодно веб-программист Irfan Mahfudz Guntur, известный в сообществе под ником ayes, под впечатлением от российского сервиса Juick, решил разработать индонезийский аналог, который он назвал Lopbox. Проект профункционировал на домене lopbox.com в течение года, после чего был признан своим автором бесперспективным и похоронен, несмотря на мои попытки его спасти. Любопытный факт: несмотря на то, что Lopbox должен был стать сервисом микроблоггинга, посты в нём чаще всего не были похожи на посты в Juick, и больше походили на общение в MUC, что лишь подчёркивало то, что для большинства пользователей назначение сервиса было загадкой.

2. PHP-Component

В рамках проекта Lopbox мной была разработана платформа на языке PHP для создания XMPP-компонентов, использующих протокол XEP-0114. Тут особо представлять нечего, так как я уже описывал этот проект на Jabber.Ru. Правда, ссылка на репозиторий потеряла актуальность в связи с моим переходом с SVN на git. С недавних пор код проекта размещён на github.

3. RSS-транспорт

Это простой RSS-транспорт, основанный на PHP-Component. Нет никакого смысла говорить о нём много, поэтому я ограничусь ссылкой на его страницу на github.

4. Cathy bot

Cathy — бот для джаббера, написанный Артёмом на языке Ruby. Насколько мне известно, заброшен разработчиком из-за отсутствия потребности.

5. acid-pc

Участники сообщества, бредившие мечтами об ACId на Java, были больны столь сильно, что уговорили меня попробовать взяться за разработку клиента заново. Так как у меня не было никакого опыта разработки под мобильные платформы, но был небольшой опыт с C++ вообще и Qt в частности, я решил попробовать. К тому времени уже активно велась разработка новой XMPP-библиотеки — qxmpp — и у меня чесались руки попробовать её в действии. С тонкими моментами в процессе разработки мне очень здорово помогал Артём, значительно более опытный в прикладном программировании. К сожалению, довести мессенджер до ума не удалось, но так как моя мотивация окончательно себя исчерпала, я решил не выбрасывать исходники и не оставлять их валяться на приватном SVN-сервере, а просто выложить на github. Так что если будут желающие сдвинуть развитие проекта с мёртвой точки, я готов принять pull request-ы. Впрочем, я также готов выслушать и критику за ненадобность, но критикующих хотел бы попросить обратить внимание на причину рождения проекта.

6. mukite

Mukite (Multiuser Kite) — сервер конференций для XMPP, рассчитанный на работу в условиях высоких нагрузок, разрабатывает его Артём. У этого проекта также есть своя страница на github.

7. mawar

Этот проект, являющийся реализацией XMPP-сервера, мы назвали в честь первой девушки на нашем сервере, которую звали Mawar Aryani. На самом деле это слово означает «роза». Главным разработчиком проекта был мой друг, в то время очень заинтересованный в развитии XMPP и просто интересовавшийся состоянием дел у SmartCommunity. Я лишь помогал кодом. Целями проекта были легковесность и низкое потребление ресурсов.

История mawar достаточно интересна. Сначала планировалось, что этот демон должен был послужить для функционирования сервисов SmartCommunity. Чуть позднее разработчик проекта выражал желание, чтобы демон функционировал в его фирме в качестве корпоративного сервера. Возможность сделать проект открытым первоначально не рассматривалась, хотя проект использовал многие библиотеки, требовавшие этого своим лицензионным соглашением. Точки над «и» расставились лишь летом 2013 года, когда главный разработчик проекта в ответ на мой интерес в достаточно грубой форме сказал, что ему надоел джаббер и джабберопроблемы, и он не заинтересован в дальнейшем развитии проекта. Таким образом, владельцем проекта стал я, и мне ничего больше не оставалось сделать, кроме как опубликовать его на github.

Highload


Сезон 2010-2012 выдался «урожайным» не только с точки зрения объёмов кода. В 2011 году начался резкий рост популярности свободной сети в Сирии. По какой-то причине арабы начали массово ломиться на тогда ещё достаточно мелкий и заурядный сервер jsmart.web.id. Нагрузка всё росла и росла, и мы были вынуждены постоянно наращивать мощности за свой счёт. Однажды, когда мы осознали, что этот рост не собирается прекращаться, мы решили проинформировать арабов о том, что они общаются за наш счёт, и должны покинуть сервер в течение определённого промежутка времени, в противном случае будут заблокированы по IP-адресам (благо, списки IP-сетей для любой страны можно легко найти). Однако, арабы оказались навязчивее, чем мы ожидали, и нам удалось найти человека, готового оплачивать хостинг для аудитории любых масштабов. Так неспешно мы пришли к пиковой отметке в 60 тысяч одновременно подключённых пользователей на всех доменах — втрое больше, чем у jabber.ru — и мы должны снять шляпу перед разработчиками ejabberd, давшими нам такую замечательную возможность одновременно обслужить такое количество реальных пользователей на одной физической машине.

Также летом 2011 года мне удалось побывать в Индонезии вживую и увидеться со многими людьми, внёсшими свой вклад в жизнь нашего сообщества, а также с основателем и администратором другого индонезийского Jabber-сервера, у которого была своя история и своё сообщество пользователей.



Летом 2013 года в команде случился раскол, в результате которого команда распалась как минимум на 2 части (белорусско-сирийскую и индонезийско-египетскую). Я не примкнул ни к одной из них, так как не вижу для себя никаких причин сделать это. Однако, я желаю обеим командам успешно продолжать начатое когда-то дело по поддерживанию своих скромных узлов свободной сети.
Tags:IMXMPPJabberобщениеИндонезия
Hubs: Instant Messaging
+43
12.3k 20
Comments 13