NRIのOSS開発合宿に参加してきた

イベントレポートです。

開催要項

  • OSS開発合宿2014
  • 日程: 2014年6月20日-22日
  • 場所: 神奈川県 マホロバマインズ三浦 というホテル
  • 人数: 30人くらい?
  • やること: 1チーム4人前後で、20時間くらいで好きなものを作って発表するだけ

感想

WebRTCとか流行りの技術を使ったチームとか、パターン認識、フィルタなどを応用したチームが多くとてもレベルが高くて楽しかったです。具体的にどのようなチームがあったか、あとでThinkITで記事になるそうなので、そちらをご覧ください。

あと私は就職したことがないけれど、大企業のお仕事ってどんな感じなのか直接聞くことができたのはよかったと思います。

NRIの人々は、途中で投げ出さないで真剣に相手の話を聞き、検証する姿勢を全員持ってて、とても元気になれました。学生同士にはないスリルがありますね。

宿泊の関係上、参加費は安くないですが、また来年も行きたいと思ってます。

成果物

AWS上で動かしてたものです。


アプリのログからテスト生成するシステム

ishikuro/devcamp2014_teambeko · GitHub


別のWebアプリケーションサーバーを監視,管理するWebアプリケーションです。未完成。

帰宅後まだ再現できていないという。書きかけだけど自分でも使いたいものだったので暇をみつけて開発続行したいですね。

やったこと(日記帳)

写真をとり忘れたのでほとんど文字だけです。

OBの先輩に誘われて参加することができました。交通や現地でのコーディネートなどほとんどやっていただいてたので、とてもありがたいことです。

[20日昼]移動

会津から高速バスと電車で三浦まで行きました。神奈川は初めてでしたが、緑が多いし陽射しが明るくて過ごしやすそうなところでしたね。開催地のホテルには夕方ころ着いて、休んでました。

[21:00]開場

参加者まばらに集合です。NRI現職の方々がお仕事で半数くらい定刻に集合できなかったことが印象深いです。業務で忙しい上に合宿でがっつり作りますからね。むしろ凄い。

[23:00]開催

はじめ、前回のあらすじ、開催要項の説明の後、各チーム数分で作りたいもの発表を行いました。

チームについて

最初7人のチームに入れさせてもらってたのですが、準備段階からさらに2チーム(4:3)に分かれて別々なものを作ることになってました。
が、さらにそれから2分割(3:1)し、それがさらに2分割(2:1)になり、気づいたら、いとうたかゆきさんと私二人のチームになってました。これから徐々に合宿では仲間割れチームとして認知されていきます。

今回予定してたやつ: アプリのログからテスト生成するシステム

f:id:ishn:20140703134840p:plain
このようなやつです。作りたかったのは、別のWebアプリケーションサーバーを監視,管理するWebアプリケーションです。

  • Rails等の対象アプリケーションのログをfluentdで監視
  • MongoDBに放り込んでおく
  • MongoDBから当該テスト生成システムがデータを抽出して、視覚化
  • HTTPメソッド, パラメータ, それに対する応答を元にワンクリックで、負荷テストスクリプト生成, 簡単なRSpec生成ができる

[21日未明]環境構築

いとうさんがAWSを用意してくれたので、手分けして

  • デモ用Railsアプリ(ログ監視対象になる)
  • fluentdでRailsのログをパースする準備

などの環境構築をしていました。

主に私はデモ用Railsアプリを探してました。URL失念しましたが、Twitterクローンのようなものを使いました。最終的には負荷のログも必要なデータだったので、負荷テスト生成もしたかったのですが時間がなくてできませんでした。

この日はこの作業を終わらない限りは俺たちの朝は来ないというつもりでやってましたが、朝食の時間ころにやっと終わりました。ご飯の前の朝風呂が気持ちよかったです。

[7:30くらい]朝食、仮眠

ビュッフェ形式の朝ごはんを食べたあと、仮眠しました。どこで寝たのかは覚えていませんね。

[10:00くらい]再開

f:id:ishn:20140621125302j:plain

正規表現をOBの先輩にやってもらったおかげで、fluentd側からRailsのログをパースする仕組みが動き始めました。

Railsのログ -> fluentd -> 必要な情報を構造化してMongoDBに保存

ここまでできています。後半は、

MongoDB -> Node.jsでNVD3用にデータ加工 -> フロントエンドで受け取り描画

また、フロントエンドから"テスト実行"ボタンを押すと、対象Railsアプリへなんらかのアクセスを飛ばす部分も作ります。

[12:00]中間報告と昼食

チーム細分化の報告をここで改めてしました。

[13:00]大詰め

MongoDBからのJSONをパースしてNVD3が読めるような形に送り出す部分で久々にプログラミングしたなぁという気持ちになりました。伊藤さんにフロントエンドと仕上げとプレゼン作成してもらってました。

[19:00]開発終了, 宴会

宴会場にプレゼンを持っていって、およそ10組のチームがプレゼンしました。どのチームもレベルが高いし、見せ方もうまかったですね。とにかく笑いがあって腹筋が痛かった。その上技術的にも高度だったり、丁寧に作りこんだりしてました。

[夜]7人チーム再会しておしゃべり

ホテルのチーム別個室に戻りました。

この7人チーム、実は私以外はNRIの同期チームなのです。仕事や技術のことについてガチトークが何時間も続いていました。

部外者の私も快く輪に入れていただいて、少し打ち解けられました。

[21日10:00]結果発表

つれてきていただいたOBの先輩のプロジェクトが努力賞取れました。レッドブルTall * 24本セットだったのですが、彼はエナジードリンク飲まない派だったので分配してました。

[12:00]BBQ

あとは浜辺でBBQでした。いろいろな技術的バックグラウンドをもった方と話せて満足です。

[13:30]会津へ戻る

あとはまた高速バスで帰りました。会津着は23:00でした。

- おわり -