победа
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. Как всегда, буду рад получить личное сообщение с найденными ошибками и опечатками.

Поделиться с друзьями
-->

Комментарии (24)


  1. shurupkirov
    26.05.2017 09:17
    +1

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


    1. asivura
      26.05.2017 10:18
      +2

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


      1. shurupkirov
        26.05.2017 12:48

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


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


        1. yury-dymov
          26.05.2017 17:56

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


          1. shurupkirov
            27.05.2017 08:01

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


        1. Anarions
          26.05.2017 18:05

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


    1. yury-dymov
      26.05.2017 18:32

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


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


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


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


      1. shurupkirov
        27.05.2017 08:03

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


  1. saroff
    26.05.2017 17:34

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


    1. yury-dymov
      26.05.2017 18:35

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


  1. decomeron
    26.05.2017 17:34

    А почему бы приз давать не за саму разработку, а например, по прошествии года реализации ее на Родине, хотя бы в одном городе. А то разработок много, а где они все потом? Но все равно поздравляю! хоть где-то мы впереди планеты всей!


    1. yury-dymov
      26.05.2017 18:37

      Спасибо за поздравления! Хакатоны и стартапы — это разные виды спорта :) Задачи, которые решает хакатон я описал выше: https://habrahabr.ru/post/329500/#comment_10236650


  1. MonstreekS
    26.05.2017 17:34

    идея с клубными парковаками прикольная (напоминает правда с вай фаем), но вот реализация чет не очень

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

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



  1. Legantmar
    26.05.2017 17:34

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


    1. Anarions
      26.05.2017 18:07

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


      1. Legantmar
        26.05.2017 18:12

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


        1. Anarions
          26.05.2017 18:14

          Разные номинации обычно и оценивают. Но вот отсутствие наработок заранее очень сложно проверить.


          1. yury-dymov
            26.05.2017 18:53

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


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


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


        1. shurupkirov
          27.05.2017 08:05

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


    1. yury-dymov
      26.05.2017 18:45

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


      1. Legantmar
        26.05.2017 19:44

        Юр, спасибо за ответ!
        еще раз с победой!
        в следующий раз посмотрите в сторону esp8266 или esp32


  1. ser-mk
    26.05.2017 18:53

    неплохой призовой фонд. Вы из Сан-Франциско летели?


  1. Ruddymetor
    31.05.2017 09:07

    Для ребят это важное событие, поддерживаю. Опыт лишним не бывает.