RubyKaigi 2014に行ってきた #rubykaigi
RubyKaigi 2014に行ってきた。楽しかった。
20140918
初日に聴いたセッション。
- Opening (Shintaro Kakutani)
- CRuby Committers Who's Who in 2014 [JA] Tomoyuki Chikanaga
- Building the Ruby interpreter -- What is easy and what is difficult? [JA] Koichi Sasada
- Symbol GC [JA] Narihiro Nakamura
- Continuous Delivery at GitHub [EN] Robert Sanheim
- What's wrong with your app? [EN] Keiko Oda
- Introduce Oracle enhanced adapter for ActiveRecord, another choice for your Rails database. [JA] Yasuo Honda
- Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails [JA] Toru Kawamura
- "Gem of this Week" - building culture and making gem [JA] Takumi Miura
- Ruby committers vs the World
気になったセッションなど。
Building the Ruby interpreter -- What is easy and what is difficult? [JA] Koichi Sasada
Rubyの開発で、なにが簡単で、何が難しいのか。そこまで突っ込んだ内容じゃなくて、VMやGCをどうやって作ってきたのか、またこれからどんなものを作っていきたいのか、と言ったお話だった。わかりやすくていい感じ。
「トレードオフを認識し、トレードオフに打ち勝つこと」、"over come trace off"、という言葉が印象的だった。
Symbol GC [JA] Narihiro Nakamura
このセッション、わかりやすかったし、興味のある分野だったので楽しかった。
シンボルはGCの対象じゃなかったけど、(一部の)シンボルをGCできるようにしたよってお話だった。Ruby 2.2(次のバージョン)に入ってくるみたい。
Symbole GCについてのあれこれ。
- CRubyのSymbol GC - Togetterまとめ
- Feature #9634: [PATCH]Symbol GC - ruby-trunk - Ruby Issue Tracking System
- CVE - CVE-2012-3424 
- JVNDB-2012-003515 - JVN iPedia - 脆弱性対策情報データベース
GCするにあたって、シンボルを2つの世界に分けて、対応されているそう。
- Mortal Symbol(Rubyの世界)
- Immortal Symbol(Cの世界)
具体的にはこんな感じ。詳細はセッション資料を。
Hypermedia: the Missing Element to Building Adaptable Web APIs in Rails [JA] Toru Kawamura
すてきなセッションだった。REST、奥深い。
どちらかと言えばWebよりな僕としては、ふつうのWebサイトであまり使われていないMicrodataが、Web APIで実際に使われるのかどうかが気になった。もしかしたらWeb APIで使われるようになって、ふつうのWebサイトで使われるようになるかもしれないけど。
MicrodataをWebAPIで活用するって考え方はいいね。そんな活用方法は全然思いつかなかった。
あわせて聴きたい。まだ聴いてないので、聴かなくては。
"Gem of this Week" - building culture and making gem [JA] Takumi Miura
今週のGem。面白かったし、参考になることが多かった。
Gem化を進めたり、Gemをちゃんと管理することで、システムやチームの健全性を保つようにしていった、という感じのお話だった。こういうことを、自分もやっていかなくては、と思った。
Official Party
ごちそうさまでした!
20140919
2日目に聴いたセッション。キーノートは諦めた。鎌倉から船堀は遠すぎる…。
- A Just in Time compiler for CRuby (CRuby言語処理系向けJITコンパイラ) [JA] Masahiro Ide
- Archeology of Ruby: Removed Features (Ruby 考古学 機能編) [JA] Kazuhiro NISHIYAMA
- <%= link_to "bundle", "update" %> - Make "bundle update" more fun to review [EN] Kensuke Nagae
- RailsGirls: Not Only For Girls [EN] Haruka Iwao
- The Twelve-factor Ruby 「Ruby を良くするための12のポイント」 [JA] Hiroshi SHIBATA
- Scalable deployments - How we deploy Rails app to 100+ hosts in a minute [JA] Shota Fukumori (sora_h)
- Write ruby code to change ruby code [EN] Richard Huang
- 7 years of Ruby & Rails with the same web site [EN] Zev Blut, Kevin Griffin
- Lightning Talks
気になったセッションなど。
The Twelve-factor Ruby 「Ruby を良くするための12のポイント」 [JA] Hiroshi SHIBATA
Rubyに効果的にコントリビュートしていくためのポイント。いろいろな方法があるので、僕も貢献していきたい。
<%= link_to "bundle", "update" %> - Make "bundle update" more fun to review [EN] Kensuke Nagae
bundle update(Gemの更新)はあれこれ大変で、それをどう改善していったのか、と言った内容。こういったこういった作業にはあまり携わってなかったので、興味深かった。
RailsGirls: Not Only For Girls [EN] Haruka Iwao
去年のRuby会議で、ジェンダーについての議論の元となったセッションを聴いていた。
その後、様々な議論があり、それを踏まえた上でこのセッションがあったのだと思う。議論があったおかげで、自分自身いろいろ考えるきっかけになったし、そして今年はこのセッションを聴くことができてよかった。
Haruka Iwao(Yuryu)さんの、このセッションについてのエントリもすてきな内容。
スライドで紹介されている動画がよかった。
もちろん、今回のセッションの内容もとてもよいものだった。セッションでは、この文章が印象的だった。
Respect everyone as individual professionals
僕も小中学生向けプログラミングイベントや、女性向け勉強会のお手伝いをしたことがある。RailsGirlsの活動から、学ぶところがたくさんある。
Scalable deployments - How we deploy Rails app to 100+ hosts in a minute [JA] Shota Fukumori (sora_h)
Cookpadでのデプロイについてのセッション。Capistranoで頑張っていたけど、あれこれ問題があったのでmamiyaというツールを作って、それでデプロイしている、という内容。
重たい処理は事前にCIで行っておいて、リリースはシンボリックリンクを切り替えるだけにして、高速化したとのこと。シンプルで効果的で、いいね。
Write ruby code to change ruby code [EN] Richard Huang
AST(抽象構文木)からコードを分析して、コードの書き換えを行ってくれるツールのお話。これ、すごかった。
ツールはこちら。
RSpec2からRSpec3、Rails 3.2からRails 4.0へ、コードを変換したりできる。もちろん全部うまく変換できるとは思わないけど、それでもRailsやRubyのバージョンがかなり楽になりそう。
7 years of Ruby & Rails with the same web site [EN] Zev Blut, Kevin Griffin
iknowが7年間Ruby/Railsアプリを運用してきたお話。たくさんの辛いことを乗り越えてきた歴史を聴くことができた。
楽しい未来のために、よいコードを書き続けなくてはと強く思った。
LT
万葉の大場さん(nay3)のLTに共感した。
- Keep Freedom on Ruby - A magical world, 'Diversity'
RSpecのバージョンアップに関するLTも面白かった。
- How the RSpec team and I built the smooth upgrade process for RSpec 3
- RSpec 2.9.9とtranspec
- Warningが出るようにして、変換する箇所をわかりやすくした
20140920
3日目に聴いたセッション。
- Ohayō Rails (おはよう Rails)
- Speeding up Rails 4.2 [JA] Aaron Patterson
- Practical meta-programming in Application [JA] Kyosuke MOROHASHI
- Everything is Broken: A Story of Hope [JA] Jonan Scheffler
- The role of ruby in the single page app. [EN] Matthew Werner
- Scaling is hard, let's go server shopping! Or, How we scaled Travis CI, and helped Open Source at the same time. [EN] Josh Kalderimis
- Make your own synchronization mechanism. [JA] Masatoshi SEKI
- Ruby 2.1 in Production [EN] Aman Gupta
気になったセッションなど。
Ohayō Rails (おはよう Rails)
会社の先輩が登壇していたので、頑張って早起きした。いろいろな企業での、Railsの楽しさや大変さを知ることができてよかった。
Speeding up Rails 4.2 [JA] Aaron Patterson
すてきな日本語でのセッション。何度も笑いをとっていた。すごい。
セッションの主な内容は、こちらのエントリに書いてあると思う。
計測するツールとしてallocation_tracerが紹介されていた。
パフォーマンスを向上させるために、しっかりと計測し、細かいところを直していく過程を知ることができた。小さなリファクタリングと、計測を繰り返し、それが積もって大きな改善につながっていく。
Practical meta-programming in Application [JA] Kyosuke MOROHASHI
実際のプロジェクトでメタプログラミングを使った話とか、参考になった。使いどころをちゃんと考えながら、楽しくRubyを書いていきたい。
The role of ruby in the single page app. [EN] Matthew Werner
SPA(Single Page Application)のお話。いろいろ参考になった。
サーバにキャッシュがあれば、それをView(ERBとかHTMLとか)で読み込んでおく。あとからJSでキャッシュを更新する。キャッシュがなければAjaxでGETする。
確かに、初期データを表示するなら、Rails側で作っちゃったほうが、リクエスト数も減るし速そうだし、いいこと多そう。Railsのいいところをうまく使いながら、SPAを作っていけばいいのかな。RailsとJSの適材適所を考える。設計がとても難しそうだけど。
Ruby 2.1 in Production [EN] Aman Gupta
クロージングキーノートセッション。GitHubで、Ruby 2.1にバージョンアップしたときのお話。最後には拍手の鳴り止まない、すてきなセッションだった。
tmm1さんは2011年にGitHubにJoin。2012年にProduction環境をRuby 1.8.7からRuby Enterprise Edtionに変更して、そこからRuby 1.9へのバージョンアップの挑戦が始まった。
非推奨となったGemの入れ替えや、シンタックスの変更への対応、コードの修正、marshalの互換性、エンコーディングの対応、これらを経て、Ruby 1.9.3にバージョンアップした。そしてRuby 2.1へバージョンアップしたら、GCにかかる時間が100msから15msになった!すごい。
またセッションではパフォーマンス計測のためのGemやツールがいくつか紹介されていた。使ってみたい。
計測を繰り返しながら、少しずつ改善し、Rubyをバージョンアップしていく話に共感した。
参考URLなど
Ustream、まとまってはいなかったけど、録画も見れる。
大量のtweetをきれいにまとめてくださってる方がいた。感謝。
- #rubykaigi day1 2014/09/18 - Togetterまとめ
- #rubykaigi day2 2014/09/19 - Togetterまとめ
- #rubykaigi day3 2014/09/20 - Togetterまとめ
- #rubykaigiA day1 まとめ 2014/09/18 - Togetterまとめ
- #rubykaigiB day1 まとめ 2014/09/18 - Togetterまとめ
- #rubykaigiA day2 まとめ 2014/09/19 - Togetterまとめ
- #rubykaigiB day2 まとめ 2014/09/19 - Togetterまとめ
- #rubykaigiA day3 まとめ 2014/09/20 - Togetterまとめ
- #rubykaigiB day3 まとめ 2014/09/20 - Togetterまとめ
すてきなエントリがたくさんある。たくさんblogが書かれるカンファレンスって、いいカンファレンスだよね。
- RubyKaigi 1日目まとめ #RubyKaigi - くりにっき
- RubyKaigi 2日目まとめ #rubykaigi - くりにっき
- RubyKaigi 3日目まとめ #rubykaigi - くりにっき
- RubyKaigi 2014 1日目 参加レポート by @mumoshu - CrowdWorks Engineer Blog
- RubyKaigi 2014 2日目 参加レポート by @mumoshu - CrowdWorks Engineer Blog
- RubyKaigi 2014 1日目まとめ #rubykaigi - Qiita
- RubyKaigi 2014 2日目まとめ #rubykaigi - Qiita
- RubyKaigi 2014 3日目まとめ #rubykaigi - Qiita
- RubyKaigi2014 速報(1) – CRuby Committers Who’s Whos in 2014 | Akatsuki Hackers Lab アカツキハッカーズラボ
- RubyKaigi2014 速報(2) – Building the Ruby Interpreter | Akatsuki Hackers Lab アカツキハッカーズラボ
- RubyKaigi2014 速報(3) – Symbol GC | Akatsuki Hackers Lab アカツキハッカーズラボ
- RubyKaigi2014 速報(4) – KeyNote: Coming soon… (Matz) | Akatsuki Hackers Lab アカツキハッカーズラボ
- RubyKaigi2014 速報(5) – おはよう Rails | Akatsuki Hackers Lab アカツキハッカーズラボ
まとめ
RubyKaigi2014、楽しかった!自分もカンファレンスを運営したりするけど、この規模のイベントを実施するのは、本当に大変なことだと思う。ありがとうございます。
普段はRailsしか触ってないから、それ以外のRubyの話を聞けて楽しい。GCの話とか、なかなか聞く機会ないし。
RubyKaigiでSPAやHTTP2.0というキーワードを聞いたりして、これからさらにいろいろなことが繋がりそう。いい感じ。あと、Cookpadクイズ解けた!遊び行きたい!
やっぱりRubyが好きだなと、あらためて思った3日間だった。