10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RubyKaigi2023が始まりました!!!

待ちに待ったRubyKaigiがついに始まりました。
今年はRubyKaigiにオンライン参加として、オフィスでRubyKaigiを生中継しながらワイワイする会をやりました。
Qiitaとしてはスポンサーとして協賛、ブース出展しており、現地参加メンバーもいます。

1日目の参加レポートとして、メモ、感想等を投稿します。

Matz Keynote - RubyKaigi 2023

  • Rubyの歴史を振り返りながら、Matzの気づき、大事にしてきたことが話されました
  • 1993/2/24 Rubyという名前がついた (このときにはプログラムは無かった)
  • 公開前のAlpha Releaseのフィードバックで do/endのブロックが追加された
    • Communityに参加してフィードバックをしてくれる人がいる
  • 英語で本を書いてくれた、Conferenceが開催されて呼ばれた。人とのつながりが今のRubyにつながっている
  • Rails (主にDHH)により、マーケティングの大事さを知った
    • DHHは炎上しているとガソリンを持っていくw
    • DHHをネタとして扱っているところが面白かったw
  • Ruby1.9 互換性が大事
  • Ruby3x3 ビジョンを示すこと
  • 1番人気じゃなくても、Rubyは価値を提供し続けている
  • ChatGPTに型を推論させてみた。人間が型を書かなくても推論してくれると思っている
  • flat earth believer...つらい...w

学びの観点だけでなく、ネタもあり、色んな意味で面白かったです。
言語を実装した本人の言葉で歴史や想いが語られるので、響くものがありました。

Generating RBIs for dynamic mixins with Sorbet and Tapioca - RubyKaigi 2023

  • Tapiocaに追加された、gemのRBIを生成する内部実装についての説明
  • tapioca gem (gem名)
  • Tapiocaの内部処理としてはQueue -> Pipeline -> IRという流れで処理する。
    • PipelineはListerを組み合わせている
  • Gemのメソッドを呼び出すと、その型も一緒に生成されてしまう
    • 防ぐためにQueueとPipelineの間にCheckのレイヤーを作ってフィルタリングするようにした
    • Object.const_source_locationを用いて実装された場所を判定
  • Dynamic mixinsのものをフィルタするようにした
  • Dynamic mixin
    • include, prepend, extendのこと
    • これを行った時にも型が生成されるようにした
      • include, prepend, extendをoverrideして処理を挟んでいる
      • gemのmethedのdynamic mixinを検知
    • Trackers::Mixin#register オブジェクトでトラッキング
    • append_features, prepend_features, extend_objectの存在を初めて知った
  • Controllerのhelper_methodの場合はより複雑
    • このあたり分からなかったので、動画が公開されたらもう一度ちゃんと見る
    • Rails内部でdynamic mixinが発生。そのnamespace?
    • Foreign Constants Listenerでgem内部でmixinが起きているかチェック?

前提で知らないことも多く、ちゃんと理解できていない部分もあるので、試してみたいと思います。

Make Regexp#match much faster - RubyKaigi 2023

以前記事で説明されていた内容も含んでいました。

Regexp#matchの改善については社内勉強会でRuby3.2の変更について取り上げたことがありました。

  • Rubyの正規表現はパワフル
  • 大いなる力には大いなる責任が伴う
  • ReDoSについて
  • 正規表現を書くときに気をつければ起きない ← これをチェックするツールを開発中らしい
  • 正規表現マッチングの実装にメモ化を導入
  • VMベースの正規表現エンジン
    • stateと結果、プログラムカウンターとポジション
    • 同じ状態、同じ位置なら必ず失敗するのでスキップ
  • 未来: 正規表現エンジンをRubyで

参考で、 @WakameSun が以下の記事を投稿しています。

どういう正規表現を作るとReDoSが起きやすいか知らないなと思いました。
正規表現の大いなる力を感じました。

"Ractor" reconsidered - RubyKaigi 2023

別記事にて周辺の内容も調べながらまとめました。

以下は簡潔なメモのみ

  • Ractorがあまり使われていない
    • APIの難しさ、エコシステム、コード品質とパフォーマンス
  • パフォーマンスがthe biggest problem
  • 改善している点
    • Ractor.selectのコードを修正
    • ネイティブスレッド起因のパフォーマンス改善 M:N scheduler
  • 今後
    • Ractor local GCの改善

Power up your REPL life with types - RubyKaigi 2023

去年関連記事を投稿されていました。

@wataru86 が早速試してみたようです。

  • irbのメソッドチェーン補完が賢くない + 補完がでなくなった
  • katakata_irbは型を用いた補完
  • 不完全なコードを補完
  • メソッドチェーンをRBSで評価
    • 条件分岐なども
  • IRBで補完
  • 独自に補完と推論をやってる...すごい

デモを見て、最高!!!とテンションあがりました。
irbがどんどん便利になっていくのがワクワクします。

LT - RubyKaigi 2023

どれも勢いがあって面白かったです。
5分で、理解した気にさせようとされましたが、いや、そんな簡単じゃないでしょ!笑 と思うものがちらほら…

  • RubyVM::AbstructSyntaxTreeを使いながらRubyでVim拡張...!
  • BINGOはプレゼンがうますぎた
    • flock、Ruby WASMのハマったところとその解決策w
  • rubocop ruleの作り方興味ある
  • parse.y を5分で...パワーがすごい
  • rspec-daemonめちゃくちゃ良さそうなので調べて使いたい
  • RubyKaigi会場のネットワークの話も気になった

最後に

見たいのに見れないセッションが多すぎてつらい!!!
2日目も楽しみです!!!

10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?