Yandex.Metrika Counter

30 ноября и 1 декабря в Челябинске прошли первые городские соревнования разработчиков ChelHack. Организаторами стали местные IT-компании: мы (fuse8), Интерсвязь, Napoleon IT, Xpage и АНО «Центр кластерного развития Челябинской области». 

Двое суток участники ChelHack решали интересные задачи по веб-разработке и машинному обучению, сражаясь за главный приз в 100 000 рублей в каждой из номинаций. 

Мне посчастливилось поучаствовать в хакатоне в роли организатора. И я хотел бы рассказать о ChelHack тем, кто по каким-то причинам пропустил его. Поскольку я имел отношение в основном к треку по web-разработке, впечатления по большей части относятся к нему.

Дебют

Народу было много: ChelHack собрал 110 участников. Это 33 команды: 22 в треке по web-разработке и 11 — в Machine Learning. Большинство участников — студенты (информационная поддержка со стороны ВУЗов была на высоте). Также была солидная прослойка из программистов. Побороться за главный приз пришёл даже один технический директор!

ChelHack проходил в СПА-отеле «Мелиот» сразу в трех залах. В первом и самом просторном разместились большинство участников хакатона. Мы оборудовали зал самым необходимым: рабочими столами и мягкой зоной с креслами-мешками. Негромко, чтобы не отвлекать хакатонщиков, играла музыка. Ещё два зала, поменьше, облюбовали команды, которые предпочитают кодить в полной тишине. 

Народ приступил к работе по-разному: одни сразу сели писать код, другие устроили небольшие брейнштормы внутри команд. Пожалуй, именно в начале хакатона у участников возникало больше всего вопросов — эксперты сновали между столами, неся мудрость в массы и стараясь не выдать лишнего. Параллельно в Телеграмме мы в режиме онлайн обновляли F.A.Q. для участников, стараясь выносить ответы на самые часто задаваемые вопросы на всеобщее обозрение.

К вечеру 30 ноября многие ребята уже выкатили вменяемые результаты, которые мы смогли протестировать на производительность и дать народу первые отзывы по работе их продуктов. Так что уже к концу дня сформировался первый (крайне предварительный) список лидеров.

Honorable mentions

  • Позитивный настрой. Периодически эксперты устраивали набеги на команды с вопросом «Ребята, как у вас дела?». Самый популярный ответ в первый день – «Дела супер, но пока нифига не работает».
  • На ночь остались около 40 человек, не пожелавших давать вдохновению ни малейшего шанса улизнуть. Особенно запомнились ребята, в команде которых из пяти человек четверо были несовершеннолетними. По правилам хакатона они не могли остаться на ночь. Поэтому они снабдили единственного обладателя взрослого статуса ценнейшими рекомендациями по подъёму линукса и уехали домой. А в 8 часов утра уже будили завернутого в плед товарища и требовали немедленно оживить сервер.
  • Неизвестные мне герои с ML-трека, соорудив прототип программы распознавания госзнаков автомобилей, совершили ночное паломничество по дорогам города с целью расширить имеющийся датасет грязных номеров.
  • В целом, первый день выглядел более продуктивным. На второй у кого-то выдалась бессонная ночь, а кто-то просто устал — популярность кресел-мешков стремительно росла. 

Миттельшпиль

Второй день начался с почти стихийного конкурса носков. Голосование за самые креативные пары проходило в телеграмм-канале. Победителями стали носки-Гомеры и носки-яичницы. Их хозяева получили фирменные флешки ChelHack. 

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

Приходящий и просыпающийся народ выглядел помятым, но не желающим сдаваться. За ночь накопились вопросы, участники и эксперты бодро втягивались в работу. Некоторые команды уже на этом этапе считали свои решения готовыми. Поэтому мы подсказали им, как можно расширить функционал и получить дополнительные баллы.

Страсти начали накаляться после обеда. Мы заранее отметили в расписании, что в 16:00 отключим доступ к серверам и возможность деплоя, чтобы начать плотное тестирование проектов. 

В 15:00 мы ещё раз прошлись по ребятам и попросили их выложить на серверы хоть какое-то решение — чтобы было понятно, что оно у них есть. В итоге у нас всё равно остались две команды, которые не успели к дедлайну и не предоставили работы к зачету. 

Honorable Mentions

  • Конкурс на лучшее фото на площадке. Совершенно неожиданно первое место по итогам голосования через гугл-форму занял весьма ординарный снимок. 
Ребята хакнули голосовалку за лучшее фото

Авторы, используя социальную инженерию и крайне скрытные методы, умудрились накрутить себе голосов. Памятуя, что у нас все-таки хакатон, мы наградили ребят за хитрость и смекалку. Также награду получили авторы самого неординарного снимка.

А это — законные победители конкурса фотографий. Спасаясь от перегрева мозгов и техники, ребята кодят прямо на улице
  • Кросстрековая помощь участникам. Иногда ребята задавали вопросы прямо в телеграмм-канале мероприятия, и некоторые советы по web-разработке давали ребята с Machine Learning. Все восхищались чувствами плеча и товарищества.
  • У нас были запланированы две сессии с ответами на вопросы участников хакатона. Но поскольку эксперты работали на площадке в режиме реал-тайм, необходимость таких консультаций была под вопросом. В итоге мы решили организовать «Экспертный диван» (не путать с диванными экспертами), где бурно обсуждались критерии приёмки работ по функционалу.

Эндшпиль

Ближе к 15:00 народ начал шлифовать свои решения. Было такое ощущение, что все хотели запихать в проект что-нибудь ещё, но дедлайн неумолимо приближался. Финалы на треках проходили немного по-разному. 

В треке по Machine Learning была своя сложная трехступенчатая система определения победителя. После второго этапа часть команд отсеялась. Жюри оценивали скорость обработки и корректности распознавания номеров автомобилей. На завершающем третьем этапе ребята защищали свои решения перед экспертами.

Machine Learning

В треке по Machine Learning мы взяли боевую задачу из проекта «Умный транспорт» — распознавание регистрационного номера автомобиля по изображению, полученному с обычной IP-камеры. Такие решения могут использоваться в создании новых парковочных пространств в «Умном городе» и автостоянок с автоматизированной системой контроля доступа.

Датасет содержал более 6 тысяч изображений разного разрешения с реальных камер в Челябинске, полученных в разных погодных условиях и в разное время суток. Единственным требованием к фотографиям была возможность правильно распознать номер человеком.

Команды на хакатоне предложили несколько способов решения этой задачи. В одном случае ребята пытались адаптировать модели распознавания из проекта Nomeroff Net к нашему датасету. Убедившись, что детектор работает корректно, разработчики пытались дообучить на наших данных сверточные сети, решающие задачу OCR. По этому пути шла команда победителей хакатона «Хурма» и несколько других команд (включая команду организаторов, которые участвовали в ChelHack вне зачета). Второй подход заключался в реализации собственной нейросетевой модели без использования готовых открытых решений. К сожалению двух дней оказалось недостаточно, чтобы такой авторский подход показал значимые результаты. Но нам как организаторам было интересно наблюдать за ходом мыслей ребят (среди которых были и школьники) в этом направлении. Третий подход выбрали новички в машинном обучении. Он заключался в попытке улучшить базовое решение (kernel), предложенное организаторами в начале соревнования. В этом подходе использовалась библиотека OpenCV без нейронных сетей. Ребята разобрались с библиотекой и смогли показать результат, который позволил им занять третье место в хакатоне. Для команды, участники которой познакомилась в первый день на площадке хакатона, это большой успех.
Дмитрий Ботов, куратор трека ML

Главный приз в треке Machine Learning забрала «Хурма» — команда центра математического моделирования анализа данных ЧТПЗ.

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

Web-разработка

Задача Web-трека выглядела обманчиво простой: нужно было поднять на линукс-сервере секцию «Черной пятницы» интернет-магазина, которая нормально работала бы под нагрузкой.

Мы предоставили участникам доступ к API, куда они могли делать запросы и получать информацию о товарах.

Чтобы усложнить задачу, мы немного «поломали» API. Вместо мгновенного ответа оно отвечало на запрос спустя 3 секунды, а каждый сотый ответ выдавало с ошибкой. Мы ждали, что участники, поняв принцип работы API, реализуют в своих решениях сохранение данных на своей стороне и сделают код устойчивым к ошибкам. Забегая вперед, скажу, что многие участники оправдали наши ожидания, реализовав кэширование.
Антон Воротынцев, куратор трека по Web-разработке

В треке по web-разработке доступ к серверам отключился в 16:00. В этот момент эксперты начали тестирование решений команд. Жюри оценивали решение в первую очередь со стороны функционала (возможность купить товар). Ведь если приложение не может выполнить свои основные функции, нет смысла оценивать его дизайн и скорость работы под нагрузкой.

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

Главным победителем в треке стала команда 4pt из Челябинского радиотехнического колледжа. Они не только хорошо реализовали функционал, но и прикрутили красивые заготовки для внешнего дизайна страниц.

Из моментов, на которые стоит обратить большинству участников — это деплой приложения на линукс-сервере. Было жаль ребят, которые не успели вовремя загрузить решения. Но дедлайн есть дедлайн.

Honorable Mentions

  • Третье место в треке Machine Learning заняла команда из людей, которые не были знакомы друг с другом до хакатона. Мне кажется, в этом и есть магия ChelHack – в объединении людей для решения сложной задачи. Думаю, у ребят теперь есть много поводов продолжить дружбу. Да и в целом, было здорово наблюдать за общением хакатонщиков в кофейной зоне за поглощением печенюх и пирожков.
  • Радует, что победителями трека по web-разработке стали студенты — ребята утерли нос уже состоявшимся программистам. У челябинского IT большое будущее! 
  • Интрига при объявлении победителей трека по web-разработке. Решения презентовали пять лучших команд, а призовых мест было три. И до последнего момента сохранялась мощнейшая интрига — кто же станет победителем? Презентации всех участников выглядели очень достойно. Наблюдая мандраж людей, по-настоящему понимаешь, сколько сил и надежд люди вкладывали в свои решения. 

Закончился ChelHack на позитивной ноте. Участники обсуждали решения победителей, организаторы рассказывали некоторые закулисные истории. После награждения участников ждали фотосессия и афтерпати.

Постскриптум

Это были чертовски насыщенные два дня. Несмотря на усталость и дух соперничества, атмосфера на хакатоне была просто невероятной. Мы физически ощущали свою причастность к созданию чего-то великолепного, нового и захватывающего. 

Интересно было почитать отзывы ребят и сравнить их впечатления от мероприятия с нашими. Забегая вперед, скажу, что в целом мы получили позитивный фидбэк. Но есть и моменты, над которыми стоит поработать.

Многие отметили получение новых скиллов: будь то деплой приложения на Линуксе или работа в команде с людьми, которых видишь первый раз в жизни.

Почти все оценили «мягкий» формат мероприятия — ковролин и приглушенный свет явно способствуют работоспособности и спокойной обстановке.

НУЖНО. БОЛЬШЕ. КРЕСЕЛ-МЕШКОВ!!! И яблок! И соков! И морсики. Морсики определенно нужно подвезти к следующему мероприятию.

Огромное спасибо организаторам, партнёрам и участникам ChelHack за одно из самых эмоционально-мощных событий всего челябинского IT-сообщества в этом году.

Кстати, большой фоторепортаж с ChelHack ищите на «Геометрии» и в официальной группе хакатона во «Вконтакте».


Организаторы: fuse8, Интерсвязь, Napoleon IT, Xpage и АНО «Центр кластерного развития Челябинской области». 

Образовательные партнеры: ЧелГУ, ЮУрГУ, МИДиС. 

IT-партнёры: школа «Корпус», компании UNIT6 и Intec, школа робототехники «Лига Роботов», компьютерная академия «Шаг», Lukevium, детский клуб образовательной и спортивной робототехники RoboSportClub.