こんにちは!Housmartの宮永です。
弊社は普段Rubyで開発していることもあり、
9 / 8 - 9 / 10の3日間、京都で開催されたRubyKaigi2016に参加してきました!
京都での開催ということで前日入りして少しだけ観光もしちゃいました。(笑)
RubyKaigiセッションについて
本題のRubyKaigiに話を戻します。
RubyKaigiで気になったセッションについて概要と参加したエンジニア3人の所感をつらつらと述べていきます。
Isomorphic web programming in Ruby
Rubyベースの文法でJavaScriptにコンパイルできるOpalを使ったReactライクな仮想DOM実装を紹介されていました。
* Hyalite
set_state, component_did_mountなどReactに慣れている人であればお馴染みのcomponentライフサイクルで実装でき、 私もカウルでReactを結構触っていたので容易に理解でき書きやすい印象を受けました。
強みとしてクライアントサイド、サーバサイド間でモデルが共有できる点を挙げられていました。
この点についてはDRYになって単純に便利ってだけでなく、クライアントサイドからのアクセスに部分的制御をかけられるといったような、productionに出すWebアプリケーションとしての配慮がかなり丁寧になされている印象を受けました。
SciRuby Machine Learning Current Status and Future
発表スライド
現状では機械学習に関する作業はほとんどRubyで出来ないようです。(弊社でもPythonを使用) Rubyで機械学習に関する一連の作業(前処理〜学習〜利用)が出来るようにSciRubyとしてどうやって行くかという発表でした。 PythonのScikit-learnをRubyから呼び出せるようにしていくのが良いのではないか、と考えているようです。
質疑応答ではRubyの強みを使ってRubyならではのアプローチが出来ないか、という質問が多かったのですが、 私はScikit-learnを呼び出せるようにしていく方向性に賛成します。 機械学習自体の書き方はPythonと同じでも、前後の処理をRubyで書けるのはうれしいです。 また、機械学習系だと新しいアルゴリズムがどれだけ早くライブラリに実装されるかが重要ですので既存のコミュニティに乗れるのはメリットだと思います。
Recent Advances in HTTP and Controlling them using ruby
発表スライド
現状のHTTPが抱える問題と、それをHTTP/2ではどう解決しようとしているのか、またどこまで利用可能なのかといった動向についての発表でした。 発表では1つのセッションで複数のリクエストを返す「プッシュ」機能について多くの解説がありました。 HTTP/2をサポートするHTTPサーバのH2Oではmrubyを用いた拡張が可能で、アクセス制御やIPアドレスフィルタの実装例の紹介もありました。
プッシュを使うと、応答順の優先度付けをしたり、1つのセッション中に複数のリクエストを送り返すことができ表示速度を上げられるケースもあるとのことで是非試してみたいです。 プッシュは特定のロードバランサ配下では使えない(HTTPステータスの100に対応していない?)とのことでしたが、最近リリースされたAWSのALBではHTTP/2がサポートされているようなのでプッシュが使えることを期待。 HTTPサーバの拡張はC等の言語を使う必要あり敷居が高く感じていたので、H2Oのmrubyでの拡張もできるというのは魅力的な機能だと思いました。
最後に
京都という観光場所にかかわらず、ほとんど観光しなかったくらい(笑)イベントも参加者との交流も楽しかったので、次回もエンジニアのみんなで参加しようと思います。
デカ外人最高!
おわり