フェリーハッカソン2019に参加してきた

f:id:ueponx:20190130133252p:plain

先日、日本一過酷と言われるハッカソン…フェリーハッカソンに参加してきました。

code4osaka.connpass.com

今夏は2回目で、前回のハッカソンの告知が出たときも、告知即応募終了という状況で大人気のイベントではありました。ただ、その後日談をブログで読んでみると 別府の地獄めぐりもびっくりという過酷な内容のイベントだとわかりました。

【参考】 code4.osaka qiita.com togetter.com

自分もハッカソンはよく参加してはいましたし、Code for Oosakaさんにもお世話になっているので今回は告知されてすぐにエントリーすることにしました。

このときの自分の気持ちを書くならこんな感じ

「せっかくだから、俺はこの赤の扉を選ぶぜ! f:id:ueponx:20190130132326p:plain

船上のハッカソンでネットワークにつながらないといっても、瀬戸内海ならなんとかなると鷹をくくっていたのです。

「みんな盛ってるんじゃね?」

ちなみに自分のハッカソンスタイルは随時ネットでググるタイプの開発スタイルなので、ネットワークにつながらない自分は「刺し身タンポポ技術者」程度のクソ雑魚です。 会場入りしてからわかったのですが、エンジニア枠で参加申し込みをしていたようです。いまから思えばなぜその選択肢を選んだ…馬鹿だ。

スケジュール

スケジュールはこんな感じでした。


DAY1 1月25日 (金)

  • 19:55 大阪港発
  • 20:15 船上でアイデアソン開始
  • 22:00 チームビルディング
  • 23:00 船上でハッカソン開始

DAY2 1月26 日(土)

  • 7:45 別府港
  • 8:30 別府の会場で開発
  • 19:35 別府港
  • 19:35 船上で開発

DAY3 1月27日 (日)

  • 7:35 大阪港着
  • 8:00 大阪の会場で開発
  • 11:00 ハッカソン終了。プレゼン開始
  • 14:00 審査発表

1日目

集合場所のODP大阪デザイン振興プラザまでは新幹線、地下鉄などを乗り継ぎようやく到着。仕事を休んで行きたかったけど 社長にいろいろ説明することがあったので、休めず早退して向かいました。

f:id:ueponx:20190130134736j:plain f:id:ueponx:20190130135941j:plain 【出港前の集合の様子】

開会の挨拶が終わったら、いよいよ出港となります。

以前さんふらわあに乗ったのって前はいつだろう…小さい頃に乗ったような気が

f:id:ueponx:20190130135451j:plain 【いよいよ出港】

他のハッカソンと大きく違ったのは、最初によくあるアイスブレイク&アイデアスケッチの作成をみんなでやらずに各部屋(抽選で選ばれたメンバー)で行うのが少し新鮮。 あと部屋が超微妙なところも・・・。

f:id:ueponx:20190130134930j:plain f:id:ueponx:20190130134633j:plain 【アイデアスケッチをもって食堂に集合】

イデアスケッチを個室で作成したものをもって、フェリー内の食堂に集合し、アイデアをみんなで見てチームビルディングをしていくことになります。 この時点でよる23:30を回っていますが、よくわからないテンションでアイデアのブラッシュアップをしていきます。

自分のチームはIoT系(IはInternetではなくIntranetの意味)なアイデアを実現しようという方向になり、今回はその中でもスマートロックっぽいものを実現するという方向性で進めることになりました。

この日は日本に大寒波が来ていることもあり、船も大揺れで船酔いもプラスされて、みんな生産性だだ下がり。ある程度アイデアが固まったら、チームごとに部屋を割り振り作業開始になります。

あとで聞いた話ですが、去年のチームビルディングの終了は26:00を超えたらしいです。おじいさんな自分には体力的にきつい…

f:id:ueponx:20190130135024j:plainカップ麺タワー】

割り当てられた部屋でアイデアをまとめて就寝。一日目が終わります。 自分の役割はRaspberryPiでスマートロックを作ることになりました。

フェリー乗船後わかりましたが、携帯のLTEなどはかなりの確率で接続できない様子。 キャリア次第というところもありますが、3Gでようやくつながるという感じでしょうか。

2日目

26時に就寝したものの明朝の7時には既に別府に到着。

f:id:ueponx:20190130140314j:plain

前日からの寒波別府でも吹雪くほどの雪が降っていました。(積もらないけど)

f:id:ueponx:20190130140421j:plain 【ここは北国?】

せっかく別府まできているので、朝イチで温泉に行くことにしました。開発の会場が鉄輪(かんなわ)温泉のすぐ近くのかんぽの宿だったので近くにあったひょうたん温泉にいきました。

www.hyotan-onsen.com

広い!でも眠い!そして外は雪!流石に露天風呂にはいけませんでしたが非常にいい温泉でした。 開発の前に温泉に入ったら眠くなるかと思っていたのですが、意外とそのあとは眠くなることもなく開発は進めることはできました。

構成したメンバーが名古屋、大垣、大阪という感じだったので、ひょうたん温泉の由来が秀吉公の千成瓢箪から来ているということもあり、今回のチーム名は「ひょうたん」となりました。

安定したネットワークが使える陸上開発ができるのは2日目がメインなので、ここである程度目処が建てられないと完成はできないなという感じ。結構頑張りました。

今回のハマりどころはまた別エントリーで紹介しますが、簡単にいうと以下の点です。

  • RaspberryPiの電源はちゃんとしたものを使おう(特にサーボモーターを使用するときには)
  • LEDなどをGPIOで使うときにはデフォルトでプルアップ機能のあるピンとないピンがあるので気をつけよう。
  • サーボモーターの制御は適当にやるとモーターが微妙に動きうるさいので、ちゃんと止めよう。
  • RaspberryPiに入っているpythonのVersionが3.5当たりだとワンライナーのhttpサーバーのサンプルが動かないのでその対応はしよう。

今回のプロダクトとしては、httpサーバーをRaspberryPiで作ってCGI経由でpythonのサーボ制御のプログラムを動作させるということで落ち着きました。

f:id:ueponx:20190130143036j:plain

フロントエンド側でQRコードを読み取り、アクセスしてもらうようにしています。RaspberryPiに接続するカメラがあったらRaspberryPiだけで完結したのかなと思いますが、カメラはなかった(共立電子さんの臨時ショップにはあったが、自分はみないことにしたw)ので、フロントエンド側にお願いしてしまいました。スマヌ。

夕方の段階で大体サーボもHTTP系もできるようになったのであとは、なんとかなるかなと。あとは夕方に大阪に向けて乗船となります。乗船前にダイソーによって工作道具などを購入していきました。

深夜、船上の工作でスマートロックのデモ用のドアを作っていました。

f:id:ueponx:20190130142928j:plain 【デモ用のドア】

可愛い感じできた感じです! いろいろやって大体27時ごろ就寝した感じでしょうか。途中寝落ちしてましたが…

3日目

大阪の到着も7:30ごろ。早い。温泉入りたいと思ってももうない… あとは発表資料などをまとめる感じで作業を進めていきました。

発表は各チーム3分で、発表後にタッチアンドトライをして審査へと進みます。

f:id:ueponx:20190130143744j:plain 【タッチアンドトライの展示の様子】

んで、発表の結果!

f:id:ueponx:20190130143632j:plain

ネットワークチーム賞を受賞しました! 頂いた商品はRaspberryPi Zeroです。あー、継続開発なのかも。

f:id:ueponx:20190130145337j:plain

フェリーハッカソンを終わってみて

前回が地獄だったんだな。今回は過酷ではあったもののそこまででもないのかなと。 これは一重に運営の方々や協力・協賛企業の方々の尽力のおかげなのかなと思いました。 特にネットワーク構築のご担当は参加者が移動するたびにネットワーク構築するという 非常に大変な作業を毎回されていたので、本当に頭の下がる思いです。

自分の中では非常に楽しいハッカソンだったなあーという印象でした。 他のハッカソンイベントに比べるとチーム内のコミュニケーションが多かったなあというイメージでしょうか。 「旅」が一つ大きなファクターになっていること、閉鎖空間であることなどが要因にあるのかななんて思いました。

フェリーハッカソンは大阪ー別府ルート以外でも宮蘭航路でもあったそうなので、また参加してみたいなと思いました。