RubyKaigi2014に参加してきた(2日目、3日目)
2日目
Coming soon…(Yukihiro "Matz” Matsumoto)
- 2001年にRuby2の話をしている
- VirtualMachineが入る
- 6年後
- 笹田さんがきちんと実装してくれた
- M17N
- Native thread
- Generational GC
- VirtualMachineが入る
- RubyConf 2005
- Stabby lambda ( -> )
- RubyConf 2006
- 22のアイデアのうち7つは入らなかった
- オープンソースコミュニティはサメのようなものなので泳ぎ続けないと死んでしまう
- 燃料を投下したい
- Ruby 3.0のアイデア
- 最近登場した言語はスクリプト言語でありながら静的な型を持っている
感想:Ruby3.0に導入されるかもしれない機能のお話。私はPythonのように、制約はないけどDocumentとして引数の型を書いておくという手法はアリかなと思う。けど、まつもとさんはとにかくコード量を減らしたい仕様にしたいみたい。コードの文脈からしてこのメソッドの引数にはintが入るであろうことは、言語が判断すべき。わざわざ型を指定しなくても、文脈で判断できるのが良いコードという認識なんだと思った。現在RubyMineとかのコード補完やチェックはかなりのレベル(ホント、どうやってるのか不思議なくらい)まで来ているので、言語側がサポートしてくれればより精度の高いコーディング補助が可能になると思う。今後Rubyがどのような進化をとげるのか楽しみ!
<%= link_to "bundle", "update" %> - Make "bundle update" more fun to review(Kensuke Nagae)
- bundle update
- Gemfile.lockが更新されるが、各Gemがどんな変更が行われているかを見たい。
- Compare Linker
- GithubからCompare Linkerがwebhookを受け取る
感想: bundle updateする→Gemfile.lockがなんか更新されてる→いつ更新してるんだろうとRubyGemsを見に行く→何が変わってるんだろうとGithubを見に行く... という流れは私もよく体験する。これを自動化してGithubに変更点のDiffを見ることができるリンクをpushする仕組みを作ったお話。3回同じことをやったら自動化しろとはよく聞くが、この複雑な処理を自動化したのは素晴らしい。
ServerEngine: a framework for multiprocess servers in Ruby(Masahiro Nakagawa)
- fruentd
- ログ収集ソフトウェアのメイン開発
- System programs
- Chef
- Serverspec
- Apache Deltacloud
- Network server
- starling
- unicorn
- Log Server
- Fluentd
- サーバープログラミングで考慮すべきこと
- マルチプロセス、マルチスレッド
- エラーハンドリング
- ログ
- ServerEngineを作った
- 何ができるか
- Unicornみたいなサーバーを簡単に作れる
- Worker moduleとServer moduleをユーザーが作る
- 3層構造
- USR2 signalでリロードできる
感想: 操作感はまさに慣れ親しんだunicornそのもの!webrickも非常に便利なWebサーバーだが、ServerEngineを使えば大規模アクセスにも対応したunicornライクなサーバーを作ることができそうだ。
3日目
おはようRails
- (あまりの面白さにメモ取ってなかった)
感想: tubolinksはみんな消してるんだなー、とか今の若い子は「Railsは業務で使うもの」だと思ってるとかなかなか刺激的な内容だった。正直、私はあまりサービス志向のプログラマじゃないので(社会人としてそれはどうなんだというのはさておき...)Rails使ってサービスを素早く立ち上げるって点はあまり興味ないかも。自分が楽しめる仕事をやっていきたいなーと思っております。
Speeding up Rails 4.2(Aaron Patterson)
- ManageIQ
- 仮想マシン管理ソフトウェア
- Rails no one commiter
- Rackはもう終わり。楽じゃない
- Rack 2.0
- the_metalはrack2.0のプロジェクト
- Rack 1.xの問題
- hashのkey
- ストリーミングの制御がめんどくさい
- Adequate Record
- URL PATHは短いほうが速い
- 配列的な構造を定数に変換することでスピードアップ
感想: たこ焼き仮面ことAaronの日本語での発表はとても楽しく聞くことができた。特にスライド内のジョークを日本人のセンスに合わせているところがGood! 発表内容としてはAaronさんの地道なRails高速化についてのお話がメイン。長く運用するシステムでは長期的に見ると細かい点が積み重なり問題を引き起こすことがあるので、このような改善はとてもありがたい。「存在しないコードが一番速い」というのは名言だと思った。
Everything is Broken: A Story of Hope(Jonan Scheffler)
- 公開鍵暗号方式を色で表現していたのがわかりやすかった
感想: あまりRubyに関係がある内容では無かったが、公開鍵暗号の仕組みを色の混ぜあわせで解説する方法はとてもわかりやすかった。私も他人に説明するときは使わせてもらおう。
以上が3日間でビビッときた発表でした。 RubyKaigiはいつもネット上でしか交わらない方とリアルでお話することができる素晴らしいイベントです。この3日間の熱を冷まさないように、岡山での活動につなげていかねばっ!と思いました。