Fukusanの日記らしきもの

なんとも言えない感じで更新したり、しなかったりするブログです

KOSENハッカソン feat.LINE に出てみた

はじめに

この記事は、Prolab Advent Calendar 2018の20日目の記事として書かれています。 adventar.org

本題

つい先週の12/15,16日にKOSENハッカソン feat.LINEに参加してきました。 今回は僕のハッカソン中の2日間を振り返って記事にしていきたいと思います。

0日目

ということで、前日の話です。
ハッカソン前日の14日は学校が終わったその足で東京まで行くというちょっと忙しい一日でした。 テーマが"IoT×生活"でLINEさんが協賛(というかタイトルに入ってる)とのことだったので、
授業で使っていたRaspberry PiとFaboのセンサーセット、部活にLINEハンズオンで来てくださったN0bisukeさん(LINE API Expertsのすごい人)から貸してもらったLINE Clovaをもって行きました。
なんだかんだ順調に見えた旅路も宿について早々問題が発生ます。
(写真がなかったので一緒に行った2人のうちの1人の宮野くんのツイートを貼ります)

何かのミスだったのでしょう。
僕はハッカソンの間、2年生のけーぶるくんと一緒に寝ることになりました。

1日目

いよいよハッカソン初日です。
会場に入ってまず目に入ったのがこれです。

LINE さん力入ってました。(Clova持ってこなくても良かったな…)
初日のスケジュールはこんな感じでした。

時間 内容
9:30 開鍵
10:00 オープニング、アイスブレイク、主催挨拶
10:30 テクニカルサポートインプット
11:00 イデア発想→チームビルディング
13:00 イデアソン&ランチ
14:30 作るもの宣言
15:00 ハッキングスタート
20:00 中間発表&懇親会
21:00 1日目終了

アイスブレイク

この時点でちょっとアイディアソンっぽい感じが出てきて、軽くアイディアを考えました。

テクニカルサポートインプット

LINEの色々なAPIの機能の説明があり、自分の考えたアイディアにLINEのAPIをどう使うか考えながら聞きました。この時点で僕はClovaに手書きレポートなど手書きで文章を書いているときに、熟語の書き方を声で聞くとLINEbotから漢字が送られてくるサービスを考えていました。

チームビルディング

自分のアイディアを一緒に実装する仲間を探したり、自分が実装したいアイディアを持った人を探したりしてチームを組みました。僕は自分のアイディアに興味を持ってくれた3人(宮野くんを含む)と4人チームを組み、 そのままそのチームで昼食を取りながらアイディアを深めるました。

作るもの宣言

ここででピンチが訪れます。
作るもの宣言では、自分たちのアイディアをスケッチブック1ページにまとめてこれから実装する機能などを説明します。
僕達のチームも自信ありげに漢字サジェストサービスの説明をしたのですが、その説明を聞いたLINEのメンターさんやN0bisukeさんからそのサービスの実装が現実的ではないと指摘されてしまいます。 というのも、LINE Clovaに音声認識をさせるには定型文(「{日付}の天気を教えて」など)を作成して、変化する部分の単語({日付}の部分)のリストを作成しておかなくてはならず、単語リストのサイズも最大2000単語(多くなると設定の適応に時間がかかるようになる)で膨大な熟語をすべてカバーできなかったのです。 そこからしばらく(多分30分から1時間)、打開策を検討したものの良い案が出なかったので、急きょ宮野くんの「駅の改札の情報を教えてくれるbot」というアイディアを深めて実装することになりました。

完成品(駅名とか駅の写真とかは適当だけど)
このアイディアは久留米などちょっと地方の駅で改札がIC限定になったときに切符を使おうとして列を詰まらせてしまう人がいたという宮野くんの実体験から生まれたものです。

実装開始

僕はbotの返答に使う画像を生成する(といっても画像に文字を載せるだけ)サーバーの実装に取り掛かりました。(割と単純なとこでつまずいたりして大変だった)
最初のアイディアで粘りすぎたのもありこの日の会場での進捗は実装全体の30~40%くらいという感じでした。

懇親会

初日の最後にはLINE本社で懇親会がありました。ほとんどピザを食べられなかったけど、他の高専の人と色々話ができました。

夜も実装祭り

宿に戻ると実装の続きをしました。チームメンバーと通話を繋いで話し合ったり無駄話をしたりしながら少し進捗を生やしました。
3時30分くらいまで掛かったので正直辛かったです。(同じチームの宮野くんはともかく、けーぶるくんは寝にくかっただろうと思う、申し訳ない)
というか夜の実装の話は時間的に二日目ではないか?寝るまでが今日

2日目

最終日になりました。
会場に着くとすでにそこそこ人が集まっており、流れで実装を始めました。

時間 内容
9:30 開場
10:00 オープニング、ハッキングタイム
12:00 ランチ
14:00 作業終了・ 各作品プレゼン
15:00 タッチ&トライ
15:30 表彰など
16:00 終了

ラストスパート

実装を10時ぐらいから始めて、14時の発表までの間にできる限り進めました。
13時過ぎあたりで一応動作するものができたのでそこからはプレゼンの流れを確認していきました。

プレゼン

急いで作ったスライドでプレゼンをしました。(喋りが苦手な僕はあまり喋っていません、もっと喋ればよかった)
プレゼン中にbotのともだち追加QRコードを出しておいたらプレゼン終了までにサーバーにリクエストが飛んできていてちょっと嬉しかったりしました。

表彰

最終的には僕達のチームはどの賞もとることができませんでしたが、けーぶるくんのチームがオーディエンス賞(参加者の投票で決まる賞)を取っていました。
けーぶるくん本人曰く、本人はあまり実装していないそうですが、受賞チームのメンバーならば受賞者です。

帰宅

家に帰ると月曜提出のレポートが待っていました。これもかなり辛かったです。
こんな感じで僕のKOSENハッカソン feat.LINE は終わりました。

感想

忙しい2日間でしたが楽しい週末でした。
結局ハッカソンでClovaを使わなかったので何かClovaを使うものを作ってみたいです。

まとめ

  • アイディア段階で実装可能かをちゃんチェックしておきましょう。
  • 簡単なところでミスってることがあるのでバグを探すときは気をつけよう。
  • LINEのAPIはかなり充実しているので一度使ってみると面白いと思う。
  • レポートは計画的にこなしましょう。