Pull to refresh

Sunduk или 10 секунд на название

Reading time4 min
Views17K
image

Давно собирался написать статью на хабр, да все никак не мог собраться. То темы достойной не было, то была, но слишком объемная, то лениво. А может, всегда было лениво. Но сейчас, во всяком случае, собрался.


Пролог


Не знаю как вы, а я подсел на хакатоны. Хожу на них при любой возможности. И очень расстраиваюсь, когда у меня по тем или иным причинам не получается сходить на очередные ночные посиделки программистов. За темой для проекта далеко ходить не нужно – идеи рождаются у меня в голове сами собой. Как правило, дурные, но зато прикольные. Шило в известном месте всегда заставляет меня написать какую-нить «прикольную штуку». И, как правило, шилу везет – папка Projects/4Fun пополняется новым проектом, иногда даже выходящим в паблик.

Завязка


Был у меня и опыт победы на хакатоне, и приз зрительских симпатий… Но сейчас не об этом. А о вполне рядовом участии, но, надеюсь, не о рядовом результате. Неделю назад, 17-18 мая в Минске проходил региональный этап хакатонов Qiwi Universe. Я и мой напарник решили пойти. Решаем пойти на хакатоны мы с ним часто, но ходим на них не всегда. Но в этот раз наши возможности совпали с нашими желаниями, и мы пожертвовали выходными ради… даже не знаю, как сказать… ради хорошего настроения, что-ли.

Развитие действия


Кто не знает что такое хакатон – добро пожаловать в википедию. Вкратце: собираются праздно шатающиеся программисты, дизайнеры и прочие около IT-шные персонажы, сидят 1 или 2 дня (в зависимости от формата хакатона), пьют кофе, иногда едят, и выдают в результате на суд жюри и других участников результаты своих потуг – веб сайты, мобильные приложения, программы для десктопов, иногда какие-нибудь железки или роботов. Кто на что горазд, в общем. Мы с напарником оказались горазды на мобильное приложение…

Наверное, в отличие от большинства участников хакатонов, многие из которых считают, или хотят считать себя стартаперами, я стараюсь за отведенное время сделать не сколько проект, имеющий потенциал захвата мира, а проект прикольный, обладающий вау эффектом, ну или хотя бы пытающийся удивить. Это и есть та самая «прикольная штука», которую периодически хочется мне сделать, а не очередная социальная сеть для собак, сервис обмена книгами или поиска попутчиков. Все это уже было, и не один раз. У меня даже на одном из хакатонов возникла идея сделать прогу для его участников, в которую бы они вбивали свои идеи/проекты, а другие участники бы их оценивали: «Боян», «100500-ый фейсбук», «Сервис краудфандлинга? Что, серьезно?». Я даже эту идею подарил для реализации всем желающим. Но, судя по всему, никто не оценил. Но я опять отвлекся.

Мобильное приложение, которое мы собирались сделать (и сделали), не должно было быть полезным, упрощающим жизнь его пользователю, или приносящим ему выгоду. Оно должно было служить одной цели – радовать глаз. И в первую очередь его создателям. Нам должно было быть приятно, что все получилось, работает так, как мы задумали. И выглядит неплохо. В итоге так все и получилось. Прогу мы назвали… Sunduk. Как выразился напарник – «это название, сгенеренное за 10 секунд». Нужно было срочно регистрировать команду в списке участников, и ничего не оставалось, как включить генератор названий проектов у себя в голове. И генератор выдал — «Sunduk». Пришлось с ним согласиться. Народная мудрость гласит: «Как лодку назовешь, так она и поплывает». Возможно, именно это название и сыграло роль в номере места, которое мы заняли. А заняли мы «никакое» место.

Тем не менее, проект получился. Идея заключалась в следующем – с помощью одновременного свайпа (swipe) по экранам телефонов, лежащих рядом друг с другом, законнектить их между собой, и передавать «деньги» жестами с одного телефона на другой. В качестве «денег» могли быть файлы, музыка или что-то подобное, но «qiwi -> e-commerce -> деньги». Писали мы все это на Unity3d – очень удобный движок для кросплатформенной разработки. Пришлось честно активировать 30-дневную Pro версию Unity3d, ведь в бесплатной не-Pro версии отсутствует возможность работы с сокетами под мобильными платформами. А сокеты как раз нам и были нужны – телефоны между собой связывались и общались по сети.

Кульминация


Техническая часть проекта представлялась нам простой. Но так всегда бывает, пока не приступишь непосредственно к ее реализации. Так получилось и в этот раз. Был момент ночью, когда все хотелось бросить. Ничего не работало. Точнее работало, но через раз. Между 2мя компами все ок: соединяются нормально, деньги передаются. А 2е мобилы (iPhone и Android) – ну никак. То видят друг друга, то нет. Мы и так, и эдак подходили к проблеме. Даже хотели найти стабильную последовательность действий (сначала тут включаем, потом здесь через 5 секунд...), при которой программа работала без сбоев – чтобы на демонстрации проектов не ударить в грязь лицом. И вроде ее нашли. А потом бац – и отработанная последовательность перестала работать…

Эта проблема и приближающийся дедлайн подбавляли адреналина. Тут никакие редбулы и бёрны не нужны, хотя на подобных мероприятиях они, наверное, являются самыми популярными напитками. Кто-то спал, храпя и нервируя неспящих участников. Кто-то мерно программил свой сервис для поиска банковских вкладов. А мы лихорадочно искали причину – «Почему, !#$@%, ничего не работает?!». И нашли ее!

Развязка


Причина всего этого безобразия нашлась спустя несколько часов после первых симптомов. Все дело было в установленном софте на Android телефоне – виновником была Opera Max. Это такая штука, которая должна сжимать мобильный (не wifi!) трафик, экономя пользователю деньги. Кому-то деньги, возможно, эта прога и экономит, но у нас она сожрала много нервов, сил и времени.

Почему-то wifi трафик шел через VPN, созданный Opera Max, и из-за этого терялись бродкаст пакеты – наш сервер не мог сообщить потенциальным клиентам, что он жив и находится на таком-то IP. Во всяком случае все резко заработало, как только я снес эту, безусловно, полезную (но не в нашем случае) прогу. А всего лишь нужно было захардкодить IP сервера в клиентскую часть Сундука и жить спокойно. Многие так и поступили бы, и были бы правы. Но «у нас свой путь» (с).

Зато счастья были полные штаны, когда телефоны наконец увидели друг друга и первые $50 передались с одного экрана на другой. Мы поняли, что не зря не спали эту ночь и пилили код. Задача была выполнена – проект сделан и работает, мы разобрались в новых для нас вещах, поняли, что нужно удалять весь beta-софт перед хакатоном. Но главное – мы бесплатно ели целых 2 дня!

Эпилог


А вот и Сундук, точнее его содержимое:
Tags:
Hubs:
+20
Comments17

Articles

Change theme settings