ながらRuby会議01に『365日のOSS活動を続ける舞台裏』というタイトルで登壇した。
自分の発表について
当日のスライドは以下です。
今回は、Ruby の OSS 活動での開発環境の話で、ここ 10 年間くらいの OSS 活動での知見について折り詰めしたものです。活動の中でアップデートしていった環境や振る舞いなどへの tips 集といった感じなので、何かひとつでも琴線に触れるものがあれば良いなというコンテンツになっています。とりわけ git のテンプレート機能 (GitHub のテンプレート機能ではない) は比較的知られていない可能性込みで入れたコンテンツだったので、共有の機会になってよかったです。
「git hooksで未完成のpush防止、wip_始まりのブランチはpushできないようgit hooksでブロックしている。これはリポジトリごとに設定すると手間なので、gitのtemplate機能を使って.git/hooksを提携配置している」 git template機能知らんかった、これは使おう #nagara01
— 黒曜@Leaner Technologies (@kokuyouwind) 2025年9月6日
giにテンプレート機能があったのか! #nagara01
— Ryo 登山系ITエンジニア (@RKTM) 2025年9月6日
git でいうと、自分の場合 OSS では git pull origin master
(あるいは git pull origin main
) でフォーク元のコードを取得して、git push upstream head
でフォーク先にブランチを push して PR にするというフォームがあります。
仕事のリポジトリではリポジトリをフォークしないので、origin
と upstream
を実質的なエイリアスとして OSS と同じフォームで PR を作る流れにしています。
形から入るという言葉がありますが、こういったフォームの共通化お仕事と OSS のコード書きでの地繋がりになっていくのでは仮説を持っていて、その一例です。
余談ですが、直前のブランチに移動する git checkout -
(自分は checkout
のエイリアスに co
をつけているので git co -
) 、あるいはいまどきだと git switch -
を併用すると、ブランチ名の入力低減が捗って便利です。
また、ソーシャルコーディングという面でのコミュニケーションの公用語は英語となりますが、このあたりは yahonda さんに教えてもらった『英語の品格』は考え方を知る良い書籍だったので、何か一冊というもので取り上げました。
あとで参照できるようなスライド構成にしたつもりですので、詳しくはスライドをご参照ください。
本編
自分以外の本編トークについてざっくりと。
refinementsのメソッド定義を4000倍速くした話
いちばんの驚きは、長い交流となっているアルパカ隊長の出身校が日本規模で言えば結構近かったということ。というのは、さておいて、自分が出来ることから OSS に参加していく姿勢の話や、AI 時代でのできることの増やし方が実践込みで話されていてとてもよかったです。Ruby 3.5 のパフォーマンス改善された Refinements は、tagomoris さんが絶賛実装中のRuby::Box
とあわせて楽しみですね。
知っているようで知らないrails newの世界
この発表では、rails new
は Generator とテンプレートで構成されている基礎を含めて伝えられていました。自分が使っている道具の中を知っておくのは大切なので、それを伝えられている良い発表でした。いずれ Rails に、新しいモジュールが足されたときの rails new
で何か問題を見つけた時、コントリビューションの機会として思い出せる話になっているかもしれませんね。
Ruby × iOSアプリ開発:共に歩んだエコシステムの物語
iOS アプリということで、一見異色のコマに見えつつ、すごく Ruby と密接していたトークでした。ライブラリの依存関係の解決に関して、実は Bundler の開発にも関わっていた Samuel Giddins (segiddins) が色々としていたことが述べられていて、作っている中の人の名前にメンションされている点もとても良いと思いました。自分のトークでは gem-src で依存ライブラリをローカルリポジトリに持ってくるというものがあったので、そのあたりでも勝手に似た題材が入っていると親近感を持って話を聞いていました。
Ruby Mini Language作成記 〜ハンズオンで学ぶインタプリタの世界〜
同僚の haruguchi メンバーのトーク。個人的に一番いいなと思ったのは、「言語デザインについて一貫性がないとメンテナンスが大変になる」というもので、ユーザービリティもそうだしソフトウェアでの一貫性は、至る所で重要になってくるというのがパーサーを通じても伝わってきたのが良かったです。今回のカンファレンス一番のモブプログラミングは会場全体を巻き込んでのハイライトに感じました。お疲れ様でした!
💡Ruby(ひかるびー) 川辺で灯すPicoRubyからの光
自分にとっては、PicoRuby の貴公子のような存在になりつつある、ご存知 bash さんのお話。その場に PicoRuby 作者の hasumikin さんがいらっしゃればまた感想を聞きたいところでしたが、物理的な飛び道具満載のトークは圧巻でした。懇親会時間に、キーボードを使ったデモなど Overflow していたあたりも、完全に PicoRuby での職人ぶりが冴え渡った bash さんといったトークでした。
おまけ
本題と関係ないところでは、今回 Killer というギター工房の T シャツを着ていて、takkanm と akitoshiga が、それに気づいてくれて流石でした (haruguchi 撮影) 。
OSS の開発工房の話なので工房の T シャツという意味と、RuboCop キラーの話をするというコンテンツへのユニフォームとしていたのですが、これはマニアックなネタ。こういったネタ仕込みも音楽性として出てきますね。脱線ついでに書くと、Killer ギターは高崎晃のラウドネスというバンドで有名で、楽曲としては『S.D.I.』と『In the Mirror』は広くおすすめ。『In the Mirror』はマイク・ヴェセーラ版のマスタリングが聴きやすいかもしれません (マイク・ヴェセーラはイングヴェイ・マルムスティーンの作品にも参加しているヴォーカリスト) 。古いベスト盤だけれど『MASTERS OF LOUDNESS』なんかは第4期までの楽曲で歴代ヴォーカリストの楽曲がまとめて入っているので、便利かもしれません (何が?) 。
おわりに
本編で話したように、今回は縁のある土地である岐阜県の地域Ruby会議で登壇の機会ができました。ありがとうございます。スタッフのみなさん、とりわけころちゃんにはプロポーザルへのお声掛けから、前乗りの有志飲み会から何までお世話になりました。本編当日の懇親会では空きっ腹に和らぎ水なしで日本酒を飲み過ぎて二次会に行けずという、おまえは何年酒飲みしてきたんだという体たらくとなってしまいましたが、翌日は事前情報の「冷やしたぬき天国」で美味しい冷やしたぬきを堪能して、とても良い岐阜滞在ができました。ありがとうございました!
オススメされている「冷やしたぬき天国」に行った。30分くらい並んだけれど、機会があればこれは食べておいた方が良い。「更科」にはしごしようと思ったけれど、それなりに満腹になったのでまたの機会に。 #nagara01https://t.co/c59Eh1xd6F pic.twitter.com/Hn5pJi2DOI
— Koichi ITO (@koic) 2025年9月7日
美しい岐阜の景色でのカンファレンス、とても良かったです!