社内ハッカソンに参加した

photo credit: Sebastiaan ter Burg via photopin cc

ここ最近MacBook ProやCentOSに様々なプログラミング言語をインストールする手順を書き残して来たが、それはすべて社内ハッカソンに参加したためだ。

ハッカソンと聞くと

ハッカソン 軟禁 – Google 検索

を想定される方も居られるだろうが、今回参加したハッカソンは

  • 期間は2週間
  • チーム毎に都合の良い時間にやる(=チーム内で自己組織化して対応する)

というものだった。

テーマも特に主催者側から指定されず、チーム内で相談して決めて良いというのだが、But、しかし、

  • チームメンバーの言語がバラバラ1

ということで、“チームメンバーの言語がバラバラなら、色々使えばいいんじゃない!!”というノリのもと、複数の言語でフィボナッチ数列の処理速度を比較することにした。

総数なんと33言語! その中には日本語ベースのプログラミング言語ひまわり、なでしこなんてのもあるYo!

当初は環境構築の時間が勿体無いという判断のもと、Codeevalで計測していた。しかし、“CodeevalだとGroovyに対応していない(からGroovyで計測できない)”というGroovy好きのメンバーからの意見に基づき、途中からAzureで仮想マシンを立ち上げ、仮想マシン上に自分たちで各言語の環境を構築し、処理時間を計測するという流れになった2

大事なこと

  • 馴染みのない言語なので、コードは最速になるようにチューニングしていない
  • 再帰で実装しているので、再帰を不得意な言語は異常に遅い
  • Measure-Command(Windows)またはTime(Linux)で時間を計測しているので、JVMの起動時間もカウントされるのでJava系はその分遅い

なぜこんな~言い訳~大事なことを書いているかというと、vimとemacsに代表されるエディタ戦争で分かるように各言語同士でゴニョゴニョ(以下略)のためである。

他のチームの内容

  • 自分たちにとって非常に重要なとある人の現在位置を把握できるシステム
  • 遅刻の言い訳をサジェストし、メールしてくれるシステム
  • 手のジェスチャーや声でPCを操作するChrome拡張
  • ニコニコ動画風スライドプレゼンターサービス

などで様々な内容で発表を聞いていてすごいなと思えるものばかりだった。

感想

本ハッカソンを通じて、

  • 仕事したことない人と交流
  • 仕事したことない技術に触れる
  • 業務ではできないことをする

といった面で色々と刺激になった。特にAzureで仮想マシンを設定する方法は知らなかったものの、GUIがよく出来ているので簡単にできることが肌で分かったし、各言語の環境構築手順を調べるのはなかなか良い刺激だったと思う。色々調整などが大変だろうけど、また参加したい。


  1. 共通言語は日本語くらい 
  2. AWSの本人確認ができないは仮想マシンを構築しようとしたらその前の段階で困った、という内容を記録したもの