RubyKaigi 2014に参加してきた
#rubykaigi へ。話しかけるとesaステッカーをdropします pic.twitter.com/ngE3qb8BIz
— fukayatsu (@fukayatsu) 2014, 9月 18
入社してまだ1ヶ月経ってないのですが、会社の方にRubyKaigi行ってきていいか聞いたら、速攻でおkと言われたので3日間楽しんできました。
今回の戦略
- できるだけtweetして後からまとめる
聞いてきたセッションの雑感
1日目
- CRuby Committers Who's Who in 2014
- 今回speakerをするCRuby Committerの一言紹介
- 今回どういう話をするかもあったので、どれを聞くか参考になった
- smalrubyとかreishとかはこの時知った
- Building the Ruby interpreter -- What is easy and what is difficult?
- Rubyを実装する上で何が大変かという話
- "Procが難しかった"
- "プログラマが幸せなまま並列実行処理を書けるようにするのが難しい"
- "パフォーマンスと開発しやすさのトレードオフに打ち勝つ"というのが印象的
- Symbol GC
- ある意味一番興味があったセッション
- RubyでString#to_symとかで作られるsymbolがRuby2.2からはGC対象になる
- define_methodしたときのsymbolとかはGCされない
- Symbol.all_symbols.sizeをチェックして、GCされているか調べる
- Continuous Delivery at GitHub
- Githubのテストコードとアプリのコードの量はほぼ1:1
- 素早く細かく頻繁にデプロイすることが重要
- What's wrong with your app?
- Non-Linear Pattern Matching against Unfree Data Types in Ruby (Egison Pattern Matching in Ruby)
- Inside RubyMotion for Android
- NDKが古いとか言われる時は、 Rakefileに
app.api_version = '19'
と書けばおk
- NDKが古いとか言われる時は、 Rakefileに
諸事情により後半のセッションはあまり聞けず & パーティは参加できず。残念(´・ω・`)
2日目
esaのTシャツを着てステッカーを配ったりしてた
- Coming soon...
- Ruby 3.0でやりたい3つのこと(みんなが飽きないように燃料投下)
- Concurrency
- JIT
- Static typing
- メソッドの集合を型で表して推論する感じ
- 一般的にイメージするような型推論とはちょっと違う
- Extreme Makeover: Rubygems Edition
- Rubygems.orgがどういうトラブルをどうやって乗り越えてきたか
- これからbundlerをどうやって高速化するか
- indexをplain textにしてCDNに置くようにする
- Archeology of Ruby: Removed Features (Ruby 考古学 機能編)
- Rubyにかつて存在したけど取り除かれた機能について
- <%= link_to "bundle", "update" %> - Make "bundle update" more fun to review
- 蔑ろにされがちな
bundle update
をどうやって自動化するか - tachikoma.io の話も
- 蔑ろにされがちな
- MRuby as Development Platform for Payments
- mrubyを決済プラットフォームで使う話
- web IDEで開発するらしい
- The Twelve-factor Ruby 「Ruby を良くするための12のポイント」
- rubyにどうやって貢献するか、どうやればよりうまく貢献できるか
- issueにクラッシュログを載せたり、trunkのRubyで試したり、期待する挙動と現実の挙動を併記したり等
- Scalable deployments - How we deploy Rails app to 100+ hosts in a minute
- serfを使ってデプロイする仕組みを構築
- assetsはCI時にビルド、bundle-gemsはmasterにマージされたタイミングで各appサーバ上で実行され、あとはstagingで確認が終わった段階でsymlinkを切り替えてサーバをreloadするだけ
- Resource Control Architecture scripting with mruby for a Web Server Separating Computer Resources Virtually at Each HTTP Request
- ngx_mruby, mod-mrubyの話。両者とも大体同じ感じで書けるらしい
- 最近ngx_luaを触っていたので発表聞くのが楽しかった
- OpenRestyのmruby版が欲しい。
- ServerEngine: a framework for multiprocess servers in Ruby
- Fluentd v11で使われているマルチプロセスサーバについて
- よさそう
- sidekiqみたいなやつも作れそうと思った
- Kids, Ruby, Fun!: Introduction of the Smalruby and the Ruby Programming Shounendan
- プログラミング教育向けにSmalrubyというビジュアルプログラミング環境を作った話
- ビジュアル <=> Rubyコードが相互に変更可能なのがすごい
- Lightning Talks
- アイデアの期待値の話が一番お気に入り
3日目
pplogのTシャツを着てステッカーを配ったりしてた
- Ohayō Rails (おはよう Rails)
- おっさんたちがRails最高!でもアレとかつらいよねという話
- Speeding up Rails 4.2
- どうやってviewのレンダリング速度を上げるかという話
- 計測、計測、計測!
- Practical meta-programming in Application
- Rubyらしいメタプログラミングの使いかた
- デザインパターンとか、メタプログラミングとかは、手段ではなく目的になってしまうとつらい
- Reish, an unix shell for rubyist.
- Rubyで動くshell
- irbみたいな感じだった。irbの作者なので当然かも。
- Fluentd Hacking Guide (Fluentd ソースコード完全解説)
- vimでソースコードを読む感じが参考になった
- 自分はctagsあまり使えてない
- このへんから眠さに耐えられなくなりつつあった
- vimでソースコードを読む感じが参考になった
- The role of ruby in the single page app.
- zendeskでどうやってSPAをrailsで作っているか
- 場合によってはRailsを使った方がSPAよりユーザ体験がよいこともある
- 最初に返すviewにユーザ情報のjson入れたりするのヨサソウ
- Walking around ruby forest more deeply
- どうやってCRubyのコードを読んでいくか
- その場でgithub.com/ruby/rubyをcloneして一緒に読んだ(st.cのあたり)
- Ruby Under the microscope(秋に日本語版がでるらしい)とRHGを読もう
- tending the ruby ecosystem
- 我々はRubygemsの恩恵を受けているのだから、Rubygemsを救おうという話
- そうすればきっと自分に返ってくる
- Three Ruby usages - High-level interface, Glue and Embedding - Inside Droonga
- Ruby 2.1 in Production
- Githubの開発で使われている便利ツールが五月雨式にでてきた
- どれも便利そうだし、地道に計測して改善しているのだなということが分かった
これからチェック
- Hypermedia API界隈
- ngx_mruby
- CRubyのコード
- RubyMotion for Android
- 視聴していないセッションのチェック
今回良かったこと
- 3日間最初のセッションから参加できた
- 知り合いの知り合いとたくさん話すことが出来た
- ngx_mrubyのモチベーションの高まり
- github.com/ruby/rubyのコードをちょっと読んだ。読み進めるモチベーションが出来た
- HerokuのappをRuby 2.1.3にしたらメモリ使用量が減ったっぽい
次回のTry
- 会社のステッカーを配ったりする
- なんか発表する
- 英語をもっと聞き取れるようになる