Pull to refresh

Новый клон или сервис за 24 часа

Reading time 3 min
Views 40K
В один прекрасный момент (позавчера вечером) я и higher, уставшие от монотонных проектов, решили отвлечься от дел насущных и заняться чем-нибудь интересным или новым. «Стартапом!», смеясь сказали мы в один голос. А чем же еще сейчас занимаются все кому не лень? :-) Но так как основная работа при этом никуда не денется, было решено выделить на проект не более чем 24 часа. Если бы мы не уложились — этой статьи бы не было.

В итоге получился ЧатВдвоем.


Как это было?


Так как нашей целью не было создать уникальный продукт, а лишь проверить свои силы и размять пальцы, мы, не мудрствуя лукаво, пробежались по последним статьям дорогого Хабра и посмотрели на последние тренды в стартаперском движении. Выбрав идею попригляднее, запустили в дальнее странствие стрелки хронометров и открыли свои IDE. Выбор пал на omegle, кои клоны уже были здесь анонсированы.

Напомню, что идея сервиса заключается в том, что вы общаетесь со случайно выбранным человеком, ничего о нем не зная и полностью анонимно. Речь идет о присущем человеку «синдрому попутчика», когда он может обсуждать любые темы со своим попутчиком, зная что больше никогда его не увидит. Хотя, в случае заинтересованности, вам никто не мешает обменяться координатами.

Так как я занимаюсь серверным проектированием и программированием, а higher html-версткой и игрой на фортепиано, пришлось взять себе в нагрузку по новой области деятельности (мне клиентсайд, а higher'у дизайн). Мы не делали прототип, не писали ТЗ, не копались в вариантах решений. Оговаривая дальнейшую работу и показывая результаты предыдущей, мы пересекались в jabber'е каждые 5-6 часов. Наконец, спустя 23 с половиной часа непрерывной работы, результат была выгружен на хостинг и проведенные тесты показали удовлетворительный результат.

С момента появления идеи до окончательной реализации прошло 24 часа.

Как эта штука работает


Общение с сервером происходит при помощи довольно популярной техники длинных опросов. Одной из целей нашего действа, было на практике опробовать некоторые новые, но прекрасные инструменты. Так для висящих запросов используется dklab_multiplexor, его анонс был на Хабре всего четыре дня назад. На бекенде в качестве нереляционной БД и системы очередей используется Redis, относительно новый продукт, но это уже третий проект, где я его с успехом использую.

dklab_multiplexor на моей Ubuntu завелся с пол-пинка, а вот на freebsd'шном сервере пляски с бубном продолжались в общей сложности около восьми часов. Это не означает что все это время я смотрел на консоль, это суммарное время выполнения всех процессов на сервере с редкими моими вмешательствами. Основная проблема заключалась в том, что на Ubuntu стоял perl v5.8.8 а на сервере v5.8.9. Так и не заставив работать утилиту, пришлось выполнить downgrade перла, после чего проблема исчерпалась сама собой.

На текущий момент жива лишь делема с браузером Opera младше 10 версии. Дело в том, что он не генерирует событий onunload или onbeforeunload, а посему, если ваш собеседник ушел по-английски, нажав на крестик в браузере, то вы не узнаете об этом и будете полагать, что он все еще остается на связи. Но, так или иначе, мы решим эту проблему.

Вообще, если к теме появится интерес, то я опишу отдельным топиком как происходит полная работа сервиса: логика очередей, решение неоднозначностей (как помогают атомарные операции), борьба с отказами от чата на всех этапах и т.п.

Что дальше


За недолгий период работы родилось множество идей по тому как можно существенно расширить функционал сервиса, не убивая его главной идеи. Если продукт окажется хоть чуть востребованным, то нам будет интересно поработать над его функциональным обогащением :-)

Хочется понять на хабраудитории сколько может выдержать multiplexor (и проксирующий его nginx, а так же мой сервер).
Хочется получить фидбек и описания ошибок от искушенных пользователей.
И, наконец, хочется поделиться чувством глубокого удовлетворения от качественно выполненной работы, зажатой во временные рамки.

ЧатВдвоем

Антон Исайкин, Дмитрий Папуца,
специально для проекта Хабрахабр :-)
Tags:
Hubs:
+92
Comments 181
Comments Comments 181

Articles