0 日目
永和システムマネジメントのクルーズに参加した。
ウィスキーをロックで頼んだらコップになみなみとウィスキーを注がれたのが面白かった
1 日目
The Year of Concurrency
matz
このあとのトーク群の予習をするのに良いセッションだった
Ruby 3 が去年より具現化しているということを感じた
Ruby 3 Progress Report
Matz & the Ruby Core Team
前から思ってたけど、記号とか予約語を「地上げする」っていう表現が好き過ぎる
Terminal Editors For Ruby Core Toolchain
@aycabta
irb に multiline editor を入れる話。
この人は、超巨大な yak shaving をコツコツやっている人で、本当に尊敬に値する。
この取り組みはもっと知られるべきだと思う。というか、Ruby 2.7 が出たらみんなが知ることになって、その時のみんなの驚く顔が楽しみというのがある。
Pragmatic Monadic Programing in Ruby
joker1007
Pure な Ruby だけを用いて、Ruby にモナドの機能を顕現させる降霊術を披露していて、控えめに言って黒ミサだった。
Asakusa.rb の隣の席で Joker さんが準備をしているとき、ずっとうんうん唸りながら黒魔術を練っていたのを見ていたけど、どうやら思い描いていたような発表が出来たようで、良かった。
Compiling Ruby to idiomatic code in static languages
聴いてたけどよく分からなかったす
Pattern matching – New feature in Ruby 2.7
パターンマッチ、もっともっと先の話になるかと思っていたら、すぐ目の前まできていて、マジか〜ってなった
case hoge in [_, String => a] end
みたいな AS パターンとか、Ruby でこういう風になるとは思ってなかったので意外だった(まだ確定はしてないけど)
Official Party
中洲川端商店街をジャックして酒を飲みまくるという異常な催しだった
食べ物の列が凄くてありつけなかった分、たくさんの酒を飲んだ
2日目
All bugfixes are incompatibilities
様々なパッチをバックポートをし続けるにあたっての判断基準がしっかりあって、安心感がすごかった
途中、わしが報告したバグのチケットのスクショが出てきて、うおっ!ってなった
Better CSV processing with Ruby 2.6
秒速さん、めっちゃ楽しそうだった
CSV には伸びしろが沢山あった(ある)んだな
Ovto: Frontend web framework for Rubyists
流石にちょっと使ってみたくなるくらい凄かった
ちょっとした早押しクイズアプリくらいなら、これで書いても何も問題無いのでは
RubyData Workshop
Red Data Tools の人達がみんな楽しそうで良かった
The fastest way to bootstrap Ruby on Rails
コンテナという概念に縛られず、プロセスを自在に操って管理していくという部分がしっかりしていてすごいなと思った
What is Domain Specific Language?
どのようなメタプロを用いれば、どのような内部 DSL が実現できるか、ということを聞いていた
Lightning Talks
全部面白かったんだけど、The TracePoint Bomb! を見た瞬間に全部吹き飛んでしまって、頭痛くなるまで笑った
コード懇親会
@hanachin_ さん達と一緒に Redmine のソースコードを動かしたり読んだりしていたら、なんかみんなテストが通らないという現象に遭遇して調べていた
@yancya さんと @watson1978 さんと @jimlock さんと #rubykaigi の2つかめのあとの @speee_pr さん提供のコード懇親会でもくもくしていて見つけた感じです。https://t.co/rODISb3AyE
時間内にバグレポ出来てなかったので今https://t.co/uLs49iin5xのアカウント登録したところ…です!
— はなちん (@hanachin_) April 22, 2019
3日目
Ruby Committers vs the World
みなさん、今の Ruby より、未来の Ruby に目を向けているなと感じた
識者同士の議論を見ていると、わしには思いも寄らない観点が沢山出てきて勉強になる
Running Ruby On The Apple II
まさか assembly で Ruby(nruby) の実装をやってくるとは思ってなくて、とにかく凄すぎるという感想しか無い
現代までのコンピューターの発展が早すぎて、レガシーなコンピューターは、すぐギャグになってしまう
Play with local vars
滅茶苦茶面白かった
ローカル変数へのバインド方法クイズ、正規表現の名前付きキャプチャを知ってたのに出てこなくて悔しかった
Vim で発表されてたんだけど、めちゃくちゃな速度でライブコーディングしてて、わしもちゃんと開発環境にこだわらないと、いつまで経っても効率が出ないなと思った
The send-pop optimisation
明らかに不要な処理を省いて手数を減らしていく、しかも自動で、という取り組みを、再帰的に発生する yak shaving をこなしながら進めていく偉大な話だった
途中で分からなくなって呟いてたら教えて貰った
& だからというよりは ->() が lambda タイプの Proc オブジェクトを作成するからです、たぶん。 https://t.co/5XkYm5uLLL や proc だとおそらく違うと思います
— nagachika (@nagachika) April 20, 2019
def hoge(x) x.times do |i| return 0 end end p hoge(42) #=> 0 def hoge(x) x.times &-> (i) do return 0 end end p hoge(42) #=> 42 def hoge(x) f = -> (i) do return 0 end x.times(&f) end p hoge(42) #=> 42 def hoge(x) f = Proc.new do |i| return 0 end x.times(&f) end p hoge(42) #=> 0
lambda と Proc の違い、引数の扱いの違いしか覚えてなかったけど、メソッドを抜けるかどうかというのもあるのか……
Optimization Techniques Used by the Benchmark Winners
とにかく最適化への執着がすごくて、freeze が出来るならしないと気が済まないみたいなのから始まり、しまいには謎の(謎では無いが)数字を使ったコードが出てきて、これで速くなるのは分かるな?って言われても、分かるけど分からなかった……
3日目の最後のセッションだったわけだけど、もうめちゃくちゃ眠くて、意識が飛びそうになるんだけど、数分に一回、衝撃的なスライドが出てきて強制的に覚醒させられる、みたいなのを繰り返して死ぬかと思った。
アフターパーティー
arm TresureData の提供で、良い感じのクラブを貸し切りにして楽しんだ
ウィスキーをロックで頼んだらコップになみなみとウィスキーを注がれたのが面白かった
やんちゃハウス
やんちゃハウスについては思うところがあるので、別のエントリで詳しく書くつもり
まとめ
Ruby 3 が顕現しそうという実感が出てきてワクワクする RubyKaigi だった