石巻ハッカソンに参加してきた
7/24(金)〜7/26(日)にかけて、石巻で開催されたハッカソンに参加してきました。帰宅してブログ書くまでがハッカソンらしいので、簡単にブログにまとめました。
石巻?ハッカソン?
石巻市とは:宮城県第2の都市。でも、地元の人からは、広域合併で人口が2番目になっただけ、という声も。
ハッカソンとは:プログラマーとかデザイナーとかが集まって、その場で即席でチームを組んで、期間内(1日〜数日が多い)に何かプログラムを作り上げるイベント。詳しくはWikipediaでもみてほしい。
参加した理由
- 普段使わない新しい技術とかを試してみるいい機会だと思った
- 関東圏以外のエンジニア、特にフリーのエンジニアと交流を持ちたかった
1に関して:仕事だと納期の関係とかもあり、割と慣れた技術を使うことが多いので、こういうイベントの時に使ったことない技術を試してみるというのは、まぁまぁよくやってる。
2に関して:自分自身はフリーのエンジニアで、最近は以下のテーマを掲げて、周りのフリーのエンジニア数名でリモート開発のチームを作って仕事をしてます。
- リモート開発チームに最適化した開発プロセスの確立
- それをサポートするツールの開発
なので、リモートで仕事をするというニーズが強いと思われる、東京から離れた地域のエンジニアの方々とつながりを作りたいと思った、というのが2つ目の理由。
とはいえ、石巻出身の高橋さんが、石巻ハッカソンに興味はあるもののぼっち参加は嫌だし一緒に出ない?と誘ってくれたのが直接のきっかけ。
お断り
あまり写真とか撮ってないので(新幹線を除く)、文章ばっかですみません。
Day 1
はやぶさ
15時開始なので、高橋さんと昼飯食って一息ついてから参加しようという話になり、9時過ぎに都内の自宅を出発。
「はやぶさ」だと東京駅から仙台駅まで1時間半くらいだし、仙台に11時過ぎくらいについて、石巻には12:30位に着くかなぁ。そんなふうに考えていた時期が俺にも・・・
東海道新幹線の「のぞみ」みたいに頻繁に走っていると思ってたのが最大の勘違いでした。はやぶさは1時間に大体2本で、しかも発車間際の便は平日の午前中にも関わらず満席が多い。
券売機の前で悩むこと1分くらい。
「はやぶさじゃないと、仙台に着くのが12時過ぎちゃって間に合わないなぁ。」
「グリーン車なら空いてるし、グリーン車にすっかなー。ん?このグリーン車の右側の変なアイコンなんだろ。押してみよう。」
「グランクラス?なんか豪華な車両ってのは聞いたことあるし、せっかくなんでこれにしてみよう。ポチ。」
駅のホームで缶ビールとポテチを買って、新幹線の写真とかポチポチ撮りつつ車内に入れるのを待ちます。
ちなみに、「はやぶさ」は「こまち」と連結している編成が多い。連結部分はこんな感じ。
いやー、新幹線っていいわ。
車内清掃も終わって中に入ってみたら・・・
広いー。広すぎて落ち着かん・・・
しかも、ビール買って入ったのに、飲み物飲み放題だったらしい・・・
たまにはこういう贅沢もいいなー。このまま快適に青森まで行きたいなぁとか思ってるうちに仙台到着。
仙台からさらに電車で1時間くらいで、石巻に到着。駅はこんな感じ。
昼飯
昼飯は石巻名物の焼きそばを食す。まぁ名物と言っても、B級グルメブームの時に、名物に仕立てあげられた数多の料理の内の1つなんだけど、でも結構美味い。だし醤油のあっさり味?値段も480円。いやー、地方は物価が安くていいわ。
アイディアピッチ〜チームビルディング
ここからは写真はあまり無し。
初日は、イベントの説明の後、アイディアがある人はアイディアを発表し(アイディアピッチ)、興味のある人同士でチームを組んでアイディアを磨く、という流れ。
5〜6人くらい発表して、色々面白そうな発表もあったんだけど、なんやかんや話しているうちに、結局自分たち(高橋・鹿島の2名)でチームを結成して進めることに。
Facebookと会場のホワイトボードで仲間を募ったら、Androidエンジニアが1名釣れたよ。
仲間が見つかって良かったー。参加してくれた池田さんありがとうございます。
懇親会
初日最後は、お待ちかねの懇親会。いやー、ようやく酒が飲める。
普通、こういうのって最終日にやるのが多いと思うけど、遠方から来ている人が多くて、日曜日だと参加できない人も多いので、毎回懇親会は初日の金曜日にやっているらしい。
でも、後から考えると、初日に懇親会をするとみんな仲良くなって、2日目以降やりやすくなるので、いいアイディアだと思った。
懇親会で思ったのは、運営のイトナブの方を除くと、地元の人がかなり少ない。感覚として4割が関東、3割が宮城以外の東北、で、石巻と仙台の人が2割位、残りの1割がそれ以外の県って感じだった。
懇親会では日本酒とかも沢山振る舞われて、大満足。
温泉〜2次会
懇親会後、近くの温泉?に風呂に入りにいって、その後、2次会で「復興バー」なる、地元のバーに。
関東出身の人間からすると、食べ物だけじゃなくてお酒が安いのも嬉しい。ウィスキー(ハーパーだったかな)のロックを頼んだら、結構沢山注いでもらって500円。安い!都内のバーだと、お酒の量が半分くらいで800円とかするよね。
Day 2
2日目の会場は石巻工業高校。いい年したおっさんが高校に足を踏み入れる機会なんてあまりないので、無駄にどきどきしたな。高校生は初々しくて眩しすぎて、直視不能。
さて、本題。2日目は黙々と作業。今回は、技術的に新しい取り組みとして以下の2つを行ってみた。
- Vagrant + Ansible で、Play! framework のアプリの開発環境・実行環境を一発で構築する。
- Play! で便利なライブラリも入った状態で、プロジェクトの雛形を作る。
- Play! framework 2.4 と Slick 3.0 に慣れる。
Vagrant + Ansible で環境構築を自動化
1番目は予想より時間がかかったけど大体出来た。ローカル開発環境は Vagrant で、本番環境は手持ちの VPS を使用したんだけど、コマンドラインの引数を変えるだけでどちらの環境設定も一発で出来上がるのは大変便利で美しい。
しかし、1回限りのイベントでこの仕組みが必要かと言われると、全くもって必要ない。
次回以降の仕事で使えるのでまぁよしとしよう。
で、この時点で夕方・・・
昼飯
ちなみに、昼飯はカレー。家庭っぽい味がありつつも、プロが作った感もあり、大変美味かったです。調子に乗って2皿食べた。
廊下で並んで食ってるのが、何か学生っぽくてイイ。
Slick 3.0…
さて、作業内容に戻る。
ぼちぼちプログラムを書き始めるかな、という状況になったのが夕方。今回はORMに Slick 3.0 を使ってみた。
DB定義からコード自動生成するのは 2.1 の時から使っていて便利だし、この部分の設定とかは比較的すぐ終わった。
で、あとは実際にコードを書くだけとなって・・・ここからがきつかった・・・
Reactive 何とかの世間的な流れに従って、API は全部ノンブロッキングになっていて、戻り値の型は全て Future になっている。まぁこれは分かるし仕方ないかなとも思うんだけど、相変わらずドキュメントがダメ。
普通 ORM を使う時って、このSQLって ORM を使うとどうやって書くんだろう?っていうのが一番よく調べる内容だと思う。Slick にもそれに関するドキュメントもあるんだけど、載っている例が簡単すぎて参考にならない。
で、それより詳しい情報は scaladoc しかなくて困る。上級者だったら、scaladoc とか型情報だけで何となく使い方が分かるんだろうけど、一般人は無理だろ。
夕飯
夕飯はチームメンバー3人で。池田さんが「ホヤ食いたいっす」と言っていたので、地元のお店に。和食のよさ気な居酒屋を2〜3軒回ったものの、まさかの予約で満席。
まぁそりゃ市外から数十人単位で人が来たら、みんな和食の店に行きますよね。
仕方ないので、大衆居酒屋っぽいところで食事。本当は飲みたいんだけど、進捗が悪いので1杯で我慢・・・
ホヤって独特の味だよね。美味しいけど、こないだ仙台で食べたところのほうが美味しかった気もする。
Day 3
引き続き Slick 3.0 …
4テーブルくらいにデータを出し入れする簡単なAPIを作るだけなのに、半日以上格闘することに。慣れてる環境なら1〜2時間で終わる作業に8時間以上は費やして、APIが完成したのが朝方・・・
池田さんもお疲れ。
最後の仕上げ
石巻工業高校に戻って、コンビニ弁当で軽く腹ごしらえ。
最後の仕上げ。APIは終わったので、Androidを少しお手伝い。と言っても、自分のAndroid力は戦闘力 5 程度なので、あまり貢献できず・・・無念。
出来上がったのはこちら。
http://ishinomaki4.hidebu.info/
ブラウザだと位置情報取得が結構もたついて、デモの時に問題がありそうだったので、チートして初期状態の位置情報は石巻工業高校を指すようになっている。
結果発表!
12時からは結果発表。後ろの方の席だったので(&眠かったので)写真はなし。
ITブートキャンプ部門
このイベントでは、ハッカソンと並行して、小中高生を対象にしたITブートキャンプがあり、そこでの成果発表がまず行われた。
子供たちにプログラムを作る楽しみを教えてあげるのはとてもいい取り組みだと思った。自分の時間に余裕ができたら、こういうのにもいずれ関わりたいなと思った。
子供たちは楽しそうに発表していて、未来は明るいと思った。
ハッカソン部門
初日のアイディアピッチでは5チームくらいだったのに、発表は全16チーム。(成果発表一覧のページとかがあればいいんだけど無いのかな?)
全体を通しての感想は、まずみんな発表が上手だなということ。本当に関心した。
そして、審査員の方(特に男の方)が、褒めたり質問するのがとても上手。どんな内容の発表に対しても、興味を持って質問して、いいところを発見して褒めちぎる。素晴らしい能力だと思った。
個別の発表で個人的に印象が強かったのをいくつか紹介。
チャンピオン
まずは前年のチャンピオン。発表がこなれていて、上手。技術的に高度なものと言う感じでは無いように見えたけど、着眼点が良く、デザイナーさんと一緒にしっかり完成まで持って行ったところが、流石前年のチャンピオンだと思った。
dis
スポンサーであるオリンパスさんの SDK を dis しまくっていた2人組の発表もかなり印象が強い。聞いている時に、
「あー、オリンパスさんはもう帰っちゃったのかー。でも、本人いないからって、ここまで酷評しなくてもいいのになー」
とか思ってたら、発表後に司会の人が
「オリンパスさんどうですか?」
みたいに話を振っていて、
「え?本人いるのにあれかよ!」
と衝撃を受けた。
優勝者
種牡蠣の飼育?に関する情報を集めて可視化したりするアプリが優勝。チームメンバーの従兄弟が漁師さんだそうで、その方のニーズを元にしたとのこと。
実用性があって素晴らしいと思った反面、なんかハッカソンっぽくないなと思ったのも事実。
帰宅
海の幸
帰りは、石巻出身の高橋さんが勧める白謙のかまぼこを駅近の販売店で購入。「はくけん」かと思ったら「しらけん」とのこと。タクシーの運ちゃん情報によると、震災で被災した工場を天皇陛下が見に来られたことがあるらしい。
かまぼこ美味いわー。
その後は仙台で知り合いと晩飯を食った。魚も日本酒も美味いし、宮城はいいとこだよ。また来たい。
食事後、はやぶさで帰京。帰りは当然普通席。
感想等
いやー、面白かった。食事も堪能した。
当初の目的はそこそこ達成できた?
当初の目的のうち、「新しい事を試す」というのは時間がかかりつつも達成したけど、「地元の人と知り合う」ってのはあまり出来なかった。進捗が悪すぎて2日目に飲みにいけなかったのがとにかく残念。もっと色んな人と交流したかったなー。
事前にもう少し準備しておけば、プログラム作成にすんなり入ることが出来たと思うので、次回以降に活かしたい。
地方開催のイベントの良さ
2日目の夜ご飯では、結局2〜3軒の居酒屋さんに断られたんだけど、裏を返せばみんな飯を食いに行ったってこと。違う地方から人が沢山来て、地元のお店に行ったりして金を落として帰ってくれるってのは、まぁ悪いことではないはず。
それに、一度来てみると、「いいとこだったー。また来たいな」って思う人も一定割合でいるだろうから、リピーターを増やすためにも、こういうイベントはちょくちょくあると良さそう。そもそも、こうしたきっかけが無ければ、石巻までわざわざ来る人なんて少ないだろうし。
来年も開催予定なので、都合がつけばまた来たいなと思った。
自分たちの仕事との関わり
最初の方に少し書いた通り、自分たちのミッションはかなりざっくり言うと
「開発チームのリモートワークを推進する」
ってことなんだけど、実際に大都市以外に住んでいる人たちと連携して、その世界を徐々に実現していきればいいなと改めて思った。
最後に
主催者の方々、色々大変だったかと思いますが、素晴らしい機会を提供してくださってありがとうございました。
参加者の皆さん、お疲れ様でした。来年またお会いできるといいですね。また、東京近郊の人は飲みに行きましょう!Facebook とかでメッセージもらえると嬉しいです。
初めまして、こんにちは。
宮城在住で、石巻ハッカソン行こうかと思ってたので、記事を見て、参考になりました。
普段はどんな環境使われているんですか?
このブログは不定期更新のため、コメントに気づかず2ヶ月も放置していてすみません。
> 普段はどんな環境使われているんですか?
開発環境の話でしょうか。であれば、MacBook Pro + ディスプレイという普通の環境ですね。
使っている言語・フレームワーク等は、
・Scala + Play! framework
・PHP (CakePHP, Zend Framework, オレオレフレームワーク)
・Ruby on Rails
・ReactJS
あたりでしょうか。アプリとかもやってます。
こんなんで回答になっているでしょうか(時間が経っちゃって、返信を読んでもらえるか定かではありませんが)。