大江戸Ruby会議 06 に行ってきた

元々行く予定は特になかったのだけど、ujihisa さんに誘われて前日に行くことを決定。枠に余裕があってよかった。

というわけで大江戸Ruby会議 06 に行ってきたよ。いつも通り雑にゆるい感想を。

Docker時代の分散RSpec環境の作り方 - @joker1007

資料: https://speakerdeck.com/joker1007/dockershi-dai-falsefen-san-rspechuan-jing-falsezuo-rifang

Docker で CI の時間を 1/3 にした話。実践的な内容で、すぐ試したくなる。

懇親会で気になっていた点を 2 点ほど聞いてみた。

カバレッジの集約をどうしているのか、という点は、カバレッジについても分割して統合する仕組みがすでにあるらしく、それでよしなにしているみたい。

もう 1 つ、どういう単位で分割をしているのか、という点については、今は適当にディレクトリ単位とかでやっているらしい。がんばれば過去の実績からいい感じで分割はできるはずだし実際そういうのもあるらしいのだけど、そこまでやらなくてもとりあえず成果が出たので今はそこまでやってないのだとか。実際そこまでやろうとするとコストも上がるだろうし、バランスってことでしょうね。参考になる。

My Open Source Journey - @JuanitoFatas

資料: https://speakerdeck.com/juanitofatas/my-open-source-journey

発表者の JuanitoFatas さんは台湾から最近日本に越してきたらしく、英語での発表。 せっかくなのでがんばって聞きとろうとしてみる(聞きとれるとは言っていない)。

内容は、たぶん、オープンソースとの関わり方、みたいな感じだったと思う。私自身オープンソースに関わる身として、関わる人もっと増えるといいなーと思った。ただ私はもっと英語なんとかしないとダメだな(しかしなんとかする気はあまりない)。

Text Editing in Ruby - @shugomaeda

資料: https://github.com/shugo/oedo06

Ruby で書かれたテキストエディタ Textbringer の話を、Textbringer 上で実装されたプレゼンツールで発表。

テキストエディタを作るのって、考慮しないといけないことが無限にあってとても大変そうというイメージがあって、実際に作っているのは本当にすごい(小並感)。

Ruby考古学II 1993-1997 - @keiju_ishitsuka

Ruby の名付け親、石塚さんの発表。当時の様子を知る人によって語られる貴重な Ruby の話。

初期の頃の Ruby は今と全然様相が違っていて、そこから今の形になっていったかと思うと感慨深い。

多相型、推論、Ruby - @soutaro

資料: https://speakerdeck.com/soutaro/duo-xiang-xing-tui-lun-ruby

今の Ruby に型を導入しようとした場合、どのようになるか、という考察。

あちらを立てるとこちらが立たず、という感じで、果たして Ruby の型は実際にはどうなっていくのか、興味深い。

esaRubyistと私 - @ken_c_lo

デザイナの方の発表。こういう方もコミュニティにいるんですね。懐の深さと広さを感じる。

デザイナとして Ruby エンジニアと関わっていった話で、発表者については私は全然存じ上げてなかったのだけど、発表から感謝の気持ちがとても伝わってきて、とてもいい話だった。

Rationalを(もうちょっと)最適化してみた - @tad

地道な最適化の話。毎回 Ruby の関数を呼んでいたところを、C 側で完結させることではやくしたらしい。

こういう地道な貢献がみんなの利便性を高めていると思うので、本当に有り難い。

フルタイムコミッター大戦

フルタイムコミッター4名による早押しクイズ大会。それぞれが問題を作り、残りのメンバーが早押しで答える形式。 早押しボタンに Nintendo Switch のジョイコンを使い、専用の Web アプリケーションで早押し制御する、すごい感じだった。

以下、雑なメモ。用語がマニアックなのと口頭だったのもあって、間違ってたらごめんなさい。出題者と回答者まではメモれなかった…。

  • Q1 RubyにはGCなどの設定を環境変数として渡すことができる。この数を答えよ
  • A1 14個

  • Q2 Ruby の BTS feature 10000 は何?

  • A2 format width and precision with symbol hash

  • Q3 Ruby2.4.0のParseにはいくつの非終端記号が定義されているか

  • A3 166個

  • Q4 yy.lex で読み込みが終了する条件は、ファイル終端、__END__ の他は何?

  • A5 C-z C-d NUL (想定回答)

  • Q5 make ruby make love make great make again 実際に使えないのはどれ?

  • A5 make again

  • Q6 Ruby 3 で導入を目指しているギルドでもっとも困難な問題は?

  • A6 名前付け

  • Q7 Git リポジトリ上で2番目に変更が多いファイルは?

  • A7 io.c

  • Q8 instance_variable_get はキャッシュヒット率が高いが、set_instance_variable のキャッシュヒット率は低い。なぜか?

  • A8 最初は必ず失敗するから

  • Q9 Forwardable で警告が出る件の修正Reject した理由は?

  • A9 respond_to_missing? を再定義していなかったから

  • Q10 Math クラスに一番最近追加されたメソッドは?

  • A10 cbrt

  • Q11 Ruby 2.4.0 のソースツリーの中に .rb ファイルはいくつある?

  • A11 2383 個

問題が濃すぎる…!実際正答が出ずにおまけで正解にしたりする問題が続出した。カオス。

高濃度雑談 - @ujm

資料: https://docs.google.com/presentation/d/1diEe7qYLjkHrjKoPNgyhlLItxV6ahnNgsfXdId0EmNI/edit

Ruby の話かと思いきや、ほぼほぼ Vim の話で、いつも通りすぎてさすがだなーという感じだった。

と思ったら今度は料理の話になって、残り1分コールの時点で残り半分くらいになって怒涛の追い上げで最後まで辿りつくすごい発表だった。すごかった。

Ruby 2.4 Internals - @ko1

Ruby 2.4 で行われた高速化手法についての解説。

Ruby 2.4 で Write Barrier 回りをすごくいい感じにしてとてもはやくなったらしい。すごい。

笹田さんはすごいことをやった。覚えた。

如何にして若き天才コミッタは生まれるのか - @rosylilly

Keynote の sorah さんとの思い出話。

天才ができるにはちゃんと才能を活かせる、育てられる環境が必要みたいな話で、sorah さんがどのような環境で育ってきたのかという話。

言ってしまえば概ね内輪話なのだけど、そこからちゃんと学びがあって、いい話だった。

Keynote - @sora_h

sorah さん自身による半生振り返り。珍しく自慢話します、とのことだったけど、実際自慢に足る内容だった。

全体的にすごかったけど、インターネットを始める話が完全にすごすぎて、なんかもうすごいという感想しか出てこなかった。この感想記事、全体的にすごいしか書いてない。

懇親会

懇親会の枠は、急遽参加を決めたこともあってすでに埋まっていたのだけど、当日枠があったのでなんとか参加できた。セーフ。

Ruby コミュニティのイベントに参加するのってもしかしたら実は多分初な気がして、普段インターネットで見かける Ruby 界隈のすごい人達と実際にお話しできてとても良かった。

個人的にはよく見かけて気になっていた @joker1007 さんとお話しできたのはとてもよかったし、他にも色々懐しい人なんかともお話しできたので本当に良かった。さっきから良かったしか書いてない。つまりまとめると良かった。

全体的な感想

この規模のイベントに参加したのは本当に久しぶりで、いい刺激になったように思う。

最近アウトプットが全然できていなくてとてもアレなので、ちゃんとやって行きたい。行きたい、なぁ…。