Junction, итоги хакатонного года и выгорание
В ноябре мы съездили на Junction — это такой крупный европейский хакатон, который ежегодно проходит в Хельсинки. Я не был там прежде, но слышал много восторженных отзывов, да и шумиха вокруг мероприятия приличная: многоступенчатый отбор, который не так то просто пройти.
Мы с Гришей даже прошли VK Tech Race, где получили специальный код, повышающий шансы быть выбранным. Вообще, в этом году ВКонтакте отлично сотрудничали с Junction, проводили по теме мероприятия, а впоследствии даже предоставили бесплатные автобусы из Санкт-Петербурга до Хельсинки и обратно, за что им огромный респект.



Подготовка
На Junction было 8 треков, в каждом из которых от 2 и более задач (челленджей). Было два направления оценки: во-первых, конкурс внутри трека, три глобальных призовых места на весь хакатон (€10000, €5000 и €3000 на команду соответственно). Во-вторых, конкурсы внутри каждого челленджа: призы везде разные и зависели от компании, которая предоставила челлендж. Где-то это просто наушники, а где-то €2000 на команду. Разрешалось участие в 5 челленджах одновременно, хотя по факту совместить задачи из разных челленджей не получилось почти ни у кого.
Мы с командой устроили многоступенчатое голосование, чтобы отобрать себе задачи. В итоге приоритетным кейсом взяли задачу компании Rovio: сделать игру на основе IoT, AR/VR или подобных технологий.
Прибытие и организация
Как я уже упомянул, ВКонтакте бесплатно довёз до места. Из Петербурга ехало три автобуса участников, и вообще на хакатоне было очень много русских.
Сам хакатон проводился в университете Aalto. Это здание в современном необычном стиле, состоящее из нескольких корпусов.





И вот тут у меня возник первый когнитивный диссонанс при наблюдении за уровнем организации. С одной стороны, нет сомнений в том, что во главе этого мероприятия стоят энтузиасты, действительно горящие своим делом. Что хакатон масштабный и престижный, к нему подходят с подобающим уровнем внимания, на него выделяется бюджет.
С другой стороны: главная сцена напоминала собой небольшую тусовку со свободным входом, вокруг которой как придётся толпились участники. Часть указателей были просто написаны фломастером на бумаге. В одном из коридоров аудитории были отгорожены какими-то дырявыми тряпками. Снэки нужно было получать у раздающего человека, который прекращал работу около часа ночи. Отсутствовали кулеры с водой. Всё это было очень странно и походило на в некотором роде организацию спустя рукава, без внимания к деталям.




Позже моя девушка — преподаватель финского языка — сказала, что это часть финского менталитета, и в целом такое отношение не стоит считать ленью или отсутствием внимания.
Размещение
Каждый трек размещался в своей области, и это создало очень большой разброс по удобству. Порой люди сидели в просторных залах, а порой в тесных аудиториях или даже в коридоре. У нас тоже была огорожена часть прохода, а некоторые люди вообще располагались вдоль перил.
Наша работа по смыслу подразумевала наличие стены, на которую мы выводили бы картинку с проектора. В той зоне, куда нас посадили, такой возможности не было даже близко, так что со временем вся команда «перетекла» в Hardware Lab — комнату с оборудованием и инструментами для работы с электроникой.



Кстати, с этой позиции хозяева площадки вообще без вопросов шли навстречу. Нам давали всё, что мы попросим, разрешали сидеть везде, где попросим, и вообще были предельно добры и вежливы.
Проект
Мы набрали с собой 10 мешков всякой электроники. На таком крупном хакатоне нужно было делать что-то выдающееся, заметное, что привлекало бы внимание. Решили не ограничиваться веб-приложение или мобильным приложением, нужно было выйти за пределы привычного, поэтому родилась концепция сделать игру, похожую на Angry Birds (мы ведь делали задачу от Rovio), только в реальном мире.




Идея такая: в плюшевую игрушку-птицу вшивается комплекс датчиков и радиомодуль. На стену проецируется игровая сцена. Игрок кидает птицу в стену и она продолжает своё движение в виртуальном мире. В зависимости от силы и направления броска игровое действие может быть в разной степени успешным.
Дополнительно был план часть игровых действий вынести в анализ поз, поскольку игрок стоит перед сценой в полный рост, но с этой задачей мы не справились — как это часто бывает с ML, черный ящик с готовыми решениями работал лишь на ограниченном множестве ситуаций.
Тем не менее, базово мы игру запустить смогли. Я взял себе задачу с игровым движком, но в какой-то момент мне пришлось делать ещё и клиент с нуля, поэтому я изолировался от остальной команды и сидел фигачил. В итоге получилась красивая процедурно-сгенерированная планета и простенький трёхмерный геймплей вокруг неё.



Железная часть тоже получилась — мы распороли птицу, засунули внутрь акселерометр, BLE-модуль, Arduino Nano, батарейный блок и светодиод. В итоге птица давала обратную связь о режиме, в котором находится, а момент удара передавался на компьютер. Вообще, в общей сложности проект состоял из шести репозиториев, а для его запуска потребовалось два ноутбука, проектор и две веб-камеры.



Долго ли коротко ли, к дедлайну утром в воскресенье всё работало и даже привлекательно выглядело на презентации.
Презентации проектов
Как я уже упоминал, параллельно шли два процесса оценки. Победители внутри трека оценивались с помощью голосования, и эта система показалась мне очень занимательной. Каждый участник хакатона получил себе в личный кабинет список из проектов, которые он должен был посетить (рекомендовалось не менее 5 проектов). Это очень правильно: можно было походить по площадке и пообщаться с другими участниками, вживую посмотреть их проекты, задавать вопросы. Такое знакомство очень полезно и качественно улучшает атмосферу хакатона.
Я с удовольствием посмотрел на пять других проектов, пообщался с их авторами. Забавно было общаться с другими на английском, а потом в какой-то момент понимать, что вы оба русские и можете перейти на русский :)
Затем по результатам голосования определялись победители. Наш проект тоже приходили смотреть, но есть подозрение, что из-за расположения в дальнем конце площадки в Hardware Lab, до нас дошло меньше людей, чем нужно. По крайней мере, первое место в треке мы не взяли.
В чате хакатонщиков было очень много комментариев про то, что наш проект бомба, и мы должны были выиграть. Но — увы — челлендж от Rovio мы тоже не выиграли. Впоследствии сотрудники компании подошли к нам и сказали, что у нас второе место из 34 команд, но у первого ещё круче, трекинг с фитнес-браслетов и всякая такая фигня. В целом ощущения несправедливости судейства не было, трек Gamedev был одним из самых конкурентных, выиграть его одним только скиллом нельзя, нужны ещё удача и хорошее стечение обстоятельств.




Победителей на сцене объявляли довольно сухо, а большинство слушателей при этом стояли и пытались разглядеть что-то через головы. Многие команды вообще не позвали на сцену, представители некоторых челленджей тоже не вышли и не объявили ничего, результаты просто показали таблицей на экране. На мой личный взгляд это ещё один минус к организации.
О том, что мы проиграли, узнали заранее, потому что в общем чате по челленджу организаторы спалили команду-победителя. Это было обидно, настроения смотреть финал не было, мы ушли с середины.
Хакатонное выгорание
Ещё в середине процесса я почувствовал, что перебрал с хакатонами в этом году. Знаю, что есть люди, которые ездят на них каждый месяц, но я, видимо, воспринимаю эти события близко к сердцу. Мне всегда хочется доделать проект до конца, мне всегда тяжело признавать, когда команда что-то не успевает. Я был раздражён и даже немного зол ещё до того, как узнал, что мы ничего не выиграли. В первый день ребята из команды хотели изучать площадку и собирать мерч, а я ругался на них за то, что мы ещё не начали работу. В общем, пора если не завязывать, то сделать большой перерыв.
Помимо денег я хожу на хакатоны за изучением новых технологий (в этот раз, кстати, я поближе пощупал Unity) и за чувством завершённости. Как у многих фрилансеров со свободным графиком и личными проектами, у меня есть проблема с тем, чтобы доделывать дела до конца. Хакатоны позволяют создать для себя самого вынуждающую силу, которая заставляет доводить работу до финала, и это важное свойство, которое я пытаюсь в себе простимулировать. Но всё хорошо в меру.
Итоги года
Чуть больше чем за год я посетил 5 хакатонов (если два этапа ЦП считать за один), о каждом из которых писал. Они были разные, и я для себя решил расположить на таком графике.
Я поставил JB невысоко по уровню организации не из-за того, что там было плохо (на самом деле было весьма хорошо). Но JB взяли за площадку уже готовый офис со столовой внутри и налаженными процессами. А то, что относилось именно к хакатону — презентация и оценка проектов — было организовано, на мой взгляд, с замечаниями. Про Junction же мы с вами уже выяснили, что секрет в разнице восприятия русским человеком особенностей финского мышления, хотя субъективно мои претензии всё ещё остаются.
По сумме организованности и масштаба на текущий момент мой лидер это хакатон ВКонтакте (речь идёт о том, на котором я был, в конце 2018го). Там не было серьёзных проблем на площадке, кроме отсутствия наклеек и некоторой тесноты, зато было и много людей, и крутая презентационная часть на сцене.
Наверное, в следующем году схожу на него и всё, хотя, посмотрим, куда заведёт меня жизнь. Возможно один хакатон в год это слишком мало для меня-наркомана.
На этом пока всё, stay tuned :)
