Как мы выигрывали хакатон в Нью-Йорке

    победа
    24 часа спустя


    Пару месяцев назад коллеги с моей новой работы предложили присоединиться к ним и принять участие в крупном хакатоне в Нью-Йорке. Сначала я удивился, зачем лететь так далеко, но немного изучив тему, понял, что по-настоящему крупные хакатоны проходят не так уж и часто, и майский TechChrunch Disrupt является одним из наиболее уважаемых и крупных среди подобных мероприятий. У ребят к тому моменту уже было за плечами несколько побед в других хакатонах, и мне тоже захотелось проявить себя, поэтому недолго думая я зарегистрировался, купил билеты и с нетерпением стал ждать 12го мая...



    Правила хакатона


    До участия я лишь отдаленно представлял себе, что такое хакатон. Если коротко, то основные правила следующие:


    • Нужно за 24 часа сделать и показать рабочий продукт. Без слайдов и лишних слов
    • Собрать прототип и написать код необходимо за эти 24 часа с нуля. Можно использовать Open Source API, общедоступные библиотеки и сервисы
    • Продукт должен быть новым, расширить существующий нельзя
    • Размер команды ограничен пятью участниками
    • Необходимо продемонстрировать свою работу со сцены в течение одной минуты, за которую нужно убедить жюри, что именно вы достойны получить приз

    Особых ограничений на идею проекта нет. По ходу хакатона я украдкой смотрел, что делают другие команды (а их было почти 90): кто-то программировал дронов, делал 3D-модели соседних улиц, писал софт для распознавания чеков, и многое другое.


    Каждой команде в распоряжение предоставляется стол, 6 стульев, один пилот, неограниченные кола, кофе и энергетики, а также время от времени предлагают разнообразную еду.


    столы
    рабочее место хакера


    Идея


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


    идея
    замок на два велосипеда


    С технической точки зрения наскоро сделанный прототип — это конструкция из соплей и палок из пластиковых водопроводных труб, в которую встроена Arduino, умеющая открывать и закрывать замок. Она подключена к облаку и ожидает управляющих команд. Пользователь управляет замком, отправляя СМСки, либо через мобильное приложение. Это приложение также умеет находить ближайшую свободную парковку и строить до нее велосипедный маршрут.


    конструкция


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


    актуатор


    У нашего был запас хода в 5 сантиметров, и этого как раз хватало, чтобы зафиксировать велосипедное колесо между трубами. "Подружить" его с Arduino оказалось несложно: в Интернете легко нашлась соответствующая схема:


    схема


    Отбракованные фичи


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


    Проблемы


    В нашей команде не было человека, который бы профессионально занимался железками, ну или хотя бы имел к этому склонность. Сделать хороший дизайн — не вопрос, написать код под любую платформу и на любом языке программирования — с удовольствием, а вот паять или хотя бы иметь отдаленное представление, как собирать электронные схемы, — это не про нас. Разумеется, мы столкнулись с массой проблем с "железом", и ниже далеко не полный их список.


    GPRS модем


    В первоначальной схеме планировалось подключить Arduino к GPRS-модему для обмена данными с облаком. Этим мы бы убили сразу двух зайцев: спрятали бы все микросхемы и провода в трубы, что сделало бы нашу конструкцию визуально гораздо лучше, и смогли бы не использовать местный WiFi, который часто сбоит на таких мероприятиях. Однако, когда мы разложили микросхемы, то почти сразу же поняли, что на то, чтобы просто подключить их друг к другу и заставить работать, может потребоваться больше 24 часов без каких-либо гарантий на успех. Это пример "хорошей" проблемы, когда сразу очевидно, что ничего путного не выйдет и нет соблазна потратить драгоценное время напрасно.


    Arduino и WiFi


    В качестве замены GRPS мы бы с радостью воспользовались расширением Arudino WiFi Shield, если бы смогли его оперативно найти и купить, но увы. Однако, нашлась другая плата — WEMOS D1. Если коротко, то это Arduino с WiFi на борту. У меня ушло не больше получаса на то, чтобы с ее помощью сделать первый успешный HTTPS запрос, однако радость продолжалась недолго — после нескольких часов безуспешных попыток "научить" WeMOS управлять замком, выяснилось, что у этой платы не только отличается порядок входов и выходов от оригинальной Arduino (соответствие в Интернете нашлось за пару минут), но из-за поддержки WiFi набор доступных разработчику интерфейсов был урезан, и либо мы были обречены с самого начала, либо я оказался слишком криворуким. Другими словами, тут тоже ничего не вышло.


    Arduino и Arduino


    Хорошо: раз у нас есть Arduino, которая умеет управлять замком, и WEMOS, который умеет ходить в Интернет, буквально напрашивается решение их "подружить". На несколько неудачных попыток было потрачено еще минут 30. Итого за первые семь часов хакатона успехами мог похвастаться только дизайнер, который успел разработать и опубликовать лендинг, нарисовать экраны мобильного приложения и подготовить описание нашего проекта на сайте Дизрапта. Желание инженеров сделать все красиво и элегантно уступило стремлению сделать "хоть как-нибудь, лишь бы оно уже наконец-то заработало".


    Arduino и MacBook


    В итоге мы вернулись к самому простому и неизящному варианту: макбук поллит облачный сервис и отправляет Arduino управляющие команды через USB. Казалось бы, что может быть проще, но и тут словили граблей: через Arduino IDE команды отправлялись, а скриптом — нет. К счастью, баг получилось найти и исправить достаточно быстро, когда я догадался открыть исходники Arduino IDE на гитхабе и найти соответствующий фрагмент кода. Ура! За 8 часов собрали работающий прототип!


    Хрупкость


    Схема состояла из 11 проводов, и каждый из них мог стать точкой отказа. Вообще говоря, точек отказа у нас и так хватало с учетом использования стороннего облака, хакатонского WiFi и мобильного приложения, написанного на коленке за пару часов. Мы постарались по-максимуму укрепить конструкцию, поэтому следующие 3 часа паяли, изолировали и клеили. Думали, что обойдемся 30 минутами, но сильно недооценили свои "способности".


    процесс
    процесс


    Софт


    Работу с "железом" мы с горем пополам закончили к часу ночи. Хотя впереди нас ждало еще много работы, мы почуствовали огромное облегчение. Оба инженера нашей команды профессионально разрабатывают софт более 10 лет, поэтому за следующие 3 часа мы разработали и задеплоили в облако необходимые веб-сервисы и разработали мобильное приложения, можно сказать, не приходя в сознание. После нескольких успешных end-to-end тестов я все же пошел спать в 4 утра, а коллега решил заниматься шлифованием приложения "до упора".


    Демонстрация


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


    зал
    за 30 минут до начала


    Хотя нам и достался 33й номер, дополнительного времени это не давало: команды выстроились в блоки по 20 штук и бодро двигались по направлению к сцене. На самой сцене одновременно находилось сразу 5 команд: у каждой было по минуте на выступление, и, когда одна заканчивала, сразу же начинала другая. За эту минуту нужно представиться, рассказать и показать свой продукт. В процессе выступления можно использовать камеру, которая проецирует изображение с телефона или планшета на большой экран. С технической точки зрения организация показа была устроена выше всяких похвал, и я не могу вспомнить ни одного примера, когда у какой-либо команды возникла проблема с демонстрацией по вине организаторов.


    Хотя команды шли друг за другом достаточно бодро, путь до сцены показался мне вечностью — по пути я изо всех сил старался обезопасить наш прототип, чтобы не дай Бог никто его случайно не задел и не сломал — починить мы бы уже не успели. За минуту до нашего выступления я поставил конструкцию на сцену: замок по-ближе к краю, ноутбук — где-то в двух метрах, у ног ведущего, чтобы он был не так заметен. В самой демонстрации я непосредственного участия не принимал, поэтому мне лишь оставалось ждать за кулисами. Вообще говоря, актуатор — штука весьма шумная, и я думал, что услышу, заработал он или нет. Это был самый важный момент в этих 24 часах: если все сработает — у нас очень хорошие шансы на победу, если нет — можно сразу ехать домой. У фантазеров нет шансов на победу в таких конкурсах. Я так ничего и не расслышал: слишком много шума и звуков было вокруг сцены. Не ожидая ничего хорошего, я вернулся на сцену ровно через минуту, чтобы помочь убрать конструкцию, где и застал последние мгновения открывающегося замка — главное свидетельство нашего успеха!



    Не успели мы уйти со сцены, как к нам подошел журналист и попросил об интервью, — хороший знак, значит мы как минимум в шорт-листе!


    Победа


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


    Это был потрясающий опыт, и я надеюсь, когда-нибудь получится его повторить!


    Take aways


    • TechCrunch Disrupt Hackathon, New York, 13-14 мая 2017 года
    • 87 команд
    • $36,404 призовой фонд
    • 7 номинаций

    Репозиторий: https://github.com/yury-dymov/disrupt


    Статья про проект: https://techcrunch.com/2017/05/14/bikeparking-club-brings-connects-a-social-network-to-bike-locks-in-a-city/


    P.s. Как всегда, буду рад получить личное сообщение с найденными ошибками и опечатками.

    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 25
      +1

      Все конечно отлично, но дальше-то что:
      деньги на бочку — прототип на свалку?
      В чем полезность данного мероприятия, кроме отработки работы команды в стрессовой ситуации?

        +2
        И безмерная слава ;-) Мне нравится процесс придумывания идеи и воплощения ее в каком-то виде. Не всегда же только код писать, вот с железом поигрались чуть-чуть.
          0

          ну это отлично. а кто мешал командой собраться тут в России и сделать тоже самое?


          P.S.: Я без тени наезда. Тема хакатонов для меня темный лес. Часто слышу и читаю про них, но сути до сих пор не понял

            0

            Интереснее выступить на чемпионате мира, чем на чемпионате России, если есть такая возможность

              0

              не-не-не. Вопрос был не про чемпионат в целом. А в то, кто мешал придумать, реализовать и запустить проект с замками здесь в России

              0
              Мотивация (херачить код 24 часа в простой день — довольно сложная задача. А формат хакатона ставит в рамки). Шанс на полезные контакты (и разработчики, и инвесторы).
            0

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


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


            В-третьих, по статистике после хакатона лишь 2% проектов воплощается в жизнь, но это лишь вершина айзберга — этот опыт поможет кому-то начать свой собственный небольшой проект или сделать полноценный стартап. Также отличный способ посмотреть друг на друга в стрессовой ситуации и понять, имеет ли смысл делать совместно что-то более серьезное.


            В-четвертых, это отличная история для спонсоров и индустрии в целом: у Cloudflare до дизрапта было меньше 100 клиентов, после — 5000. Неплохо для одного дня, не так ли?

              0

              Т.е. в целом получается, что хакатон — "смотрины невест", куда съезжаются "женихи" (инвесторы, работодатели)

            0
            Замок только переднее колесо лочит? Снять колесо — дело пары секунд. Существуют специальные крепления для колеса предотвращающие быстрое снятие, но их не всегда можно найти.
            Если бы в замок был встроен хотя бы какой-то датчик вибрации с сигнализацией, еще куда ни шло, но я бы все равно не стал оставлять свой велосипед под такой сомнительной защитой.
              0

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

                0
                Ну, для меня, как для велосипедиста, это первое что я хочу услышать, когда речь идет про замок. От замка требуются не модные технологии, а качественное выполнение своего прямого предназначения — максимально усложнять жизнь вору. Взломать замок можно любой, но в этом случае взлом замка даже не нужен — он защищает только одну отдельную часть, которую от остального велосипеда можно без проблем отцепить.
                P.S. Это относится не только и не сколько к вам, но вообще к подобным мероприятиям. Как по мне у них всегда есть большая проблема, что в погоне за «модной» реализацией, о которой можно красиво рассказать со сцены, часто забывают об основных функциях того, что делают. Шашечки это замечательно, но оно и ехать должно :)
              0
              А почему бы приз давать не за саму разработку, а например, по прошествии года реализации ее на Родине, хотя бы в одном городе. А то разработок много, а где они все потом? Но все равно поздравляю! хоть где-то мы впереди планеты всей!
              0
              идея с клубными парковаками прикольная (напоминает правда с вай фаем), но вот реализация чет не очень

              колеса у велосипедов легкосъемные, инструмент не требуется, то есть устройство защиащет только одно переднее колесо, а не велосипед, который легкий и его быстро унесут

              без инструментов можно снять оба колеса и седушку, тут как минимум нужно три тросса с собой, плюс четвертый крепить самое дорогое — раму к парковочному месту
              0
              не совсем понял идею проекта.
              это сингл парковка на 2 места? или этих устройств может быть гораздо больше — велопаркинг?
              а почему нельзя придумать за год проект («в гараже и никому не показывать»), сделать работающий макет.
              а на хакатоне просто симулировать бурную деятельность собирая уже отработанный заранее проект?
              p.s. с помощью каких библиотек делался дизайн? приложение написано на джаве под андроид?
                0
                «а на хакатоне просто симулировать бурную деятельность собирая уже отработанный заранее проект?» — порой так и случается. Отличить довольно сложно — во многих хакатонах организаторы активно мониторят процесс разработки.
                  0
                  Тогда такие «конкурсы» с плавающими заданиями вызывают массу вопросов и подозрений.
                  Если бы давали набор определенных железок (список известен заранее) и задание (неизвестно заранее), что из них собрать (в соответствии с ТЗ организаторов), тогда это был бы честный конкурс.
                  Ну а далее оценивать в разных номинациях:
                  — кто быстрее
                  — у кого код красивее
                  — у кого багов меньше
                  — у кого дизайн симпатичнее
                  — у кого функциональность
                  — у кого практичность и удобность
                  и пр. и др.
                    0
                    Разные номинации обычно и оценивают. Но вот отсутствие наработок заранее очень сложно проверить.
                      0

                      Да, так и есть, номинации только выдают не по особенностям реализации, а по бизнес составляющей, например, "лучшее дополнение SmartCity", "развитие местных и региональных сообществ" и так далее. Баги и красивый код никому не интересны.


                      Этот конкурс куда ближе к фигурному катанию, где много субъективности, чем к бегу на 100 метров, где все делают одно и тоже, и надо понять, кто делает это лучше. От такого конкурса куда больше пользы: https://habrahabr.ru/post/329500/#comment_10236650


                      Дома имеет смысл придумать идею и подумать, что нужно для ее реализации — не больше.

                      0

                      Да, это уже как раз соревновательный процесс, как на личный зачет, так и на командный

                    0

                    1) На хакатоне мы не можем исходить из предположения, что "город, государство или компании купят у нас наш продукт", поэтому мы работаем с конечным потребителем. Мы можем обосновать два места, можем сделать модель на 3 и 4 (если вся семья на колесах), но вот больше — вряд ли
                    2) Можно прийти на хакатон со всем готовым, но, организаторы, жюри, журналисты и спонсоры ходят в процессе творения, смотрят, общаются, помогают, задают вопросы, — сложно будет их всех обмануть. Ну, и люди примерно представляют, что можно сделать за сутки, а что — домашняя работа. Да, и если честно, я смогу найти, как более выгодно время потратить :)
                    3) В статье есть ссылка на гитхаб, где лежит исходный код приложения, оно под iOS.

                      0
                      Юр, спасибо за ответ!
                      еще раз с победой!
                      в следующий раз посмотрите в сторону esp8266 или esp32
                    0
                    неплохой призовой фонд. Вы из Сан-Франциско летели?
                      0
                      Для ребят это важное событие, поддерживаю. Опыт лишним не бывает.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое