diary

I like Hatena Star with a text selection.

2025-06-28

関西Ruby会議08のキーノートとして発表した。

speakerdeck.com

なおSpeakerDeckにはリンクをクリックできないという致命的な問題があるので、Google Drive に上げたPDFのほうがおすすめ。 https://drive.google.com/file/d/1Z-nia28E8ppoE6FARNRKaL0GFBt8dC4w/view

以下、発表内容の補足や懇親会などで話したことなど。自分の発表の話だけでだいぶ長くなってしまった。


Q: なんでMajoっていう名前にしたの?
A: もともとmajor GCを生き残ったオブジェクトをカウントする、というつもりで作っていたので、MAJOrの最初の4文字を取った。魔女、というのは後付けだけどなんかいい感じの雰囲気なので気に入っている


open.spotify.com

出囃子として奥華子さんの魔法の人を選ばせていただいた。好きな曲でトークを始められるの本当に最高の体験でめちゃくちゃ良かった。手配をしていただいたスタッフの方には本当に感謝の気持ちしかない。

これのために同僚に「歩く様子を動画で撮って」って依頼をしていた。撮ってもらった動画は家宝にします。

奥華子さんは一番好きな歌手で、コンサートにも行けるだけ行っているぐらい好き。実は今日も奥華子さんの公演があったのだけど、仙台公演なので関西Ruby会議を選んで後悔はない(東北という地は岡山から国内で一番遠い地まである。飛行機の直通がないので)。これが岡山公演と被っていたりしたら、多分岡山公演を優先していた。岡山公演は来週なのでセーフ。

なおこれはこの日記で一番重要な情報なのですが、先に書いた通り奥華子さんは現在全国ライブツアー中です! https://dp20013827.lolipop.jp/20thAnniversary0503FTPok.html
まだまだチケットがある公演も多いので、今回出囃子を聞いて気になった人がいたら、ぜひ行っていただけると嬉しいです。私は 神戸(済)、福岡(済)、岡山、香川、広島、愛媛、京都、東京、大阪は行きます。横浜も行こうかちょっと悩み中……(別件で関東に行くかも知れなくて)。 (ただ、今回のツアーで魔法の人は今のところ聞いてない…。)

魔法の人を選んだのは、奥華子さんの曲の中でもかなり好きな曲の1つで、かつピアノのレッスンで練習する曲として選んで(多少は)弾けるため。候補を3曲上げてほしいと言われていて、全部ピアノで練習した曲から上げていた。
奥華子さんの曲の中でも魔法の人を選んだ理由は、ピアノで弾けるからというのもあるけど、明るい曲なのでという理由も大きい。初恋とかあなたに好きと言われたいとかのいわゆる"じっとりソング"で入場するのもなあと思って避けた(大好きだけど)。

第二候補、第三候補には海の見える街、パッヘルベルのカノンを上げていた(ピアノで弾ける曲という選曲で)。 実は魔法の人、海の見える街が魔女つながりになっているのは偶然。選曲してから気がついて、シナジーが生まれた感じがしていいなとなった。


登壇のテーマは、実は結構直近まで悩んでいた。社内で告知ブログを書くからテーマを教えてって言われるまで悩んでいた…。6月頭ぐらいかな。

悩んだ結果、ベースはテックトークにしようと決めた。そこからスライドを書き進めていくうちに、RubyKaigiが本当に楽しかった話を入れたいなと思ってまとめの位置にねじ込んだ。ちょっとねじ込み感が強かったのを自然にしきれなかったかなあというのは反省ポイント。

自分のプログラマー半生みたいな話をしてもいいかなあと考えていたりもしていたのだけど、普段そういう視点で登壇しないのもあって、うまくまとめることができなかった。でもそういう話もいつかしてみたいね。


スライドの最後に、最後に、ささださんの本屋に選書した本の紹介スライドを入れた。

当初「誰のためのデザイン?」と「Linuxプログラミングインターフェース」だけを紹介して、残りの「論理学」と「CODE」はタイトルだけをスライドに書いて終わりにしていた。 しかし朝にささださんと話したら選書した4冊全てが入荷したとのことで、筆がのって4冊全部のおすすめコメントを書いた。

おかげさまで4つすべてが完売していたようで本当に嬉しい。Linuxプログラミングインターフェースを買ってくれたうなすけさんありがとう……(頑張って運んで)。

論理学は、全然分野が違うし売れるんだろうかと正直不安だった。買っていただいて嬉しい。10年ぐらい前にこれで論理学がちょっとわかったような気になりました。

CODEはちょうど最近社内で「第2版が出たよ」という話を聞いて、もともと第1版を読んでとても良かった記憶があったので入れた。

しおいさんがじゃんけん大会の結果CODE本を手に入れていて、しおいさんに合いそうな本で読んでほしい人に本が行っていていいなと思った。 しおいさんに「ぽっけさんの知識のルーツを本の紹介という形で知れてよかった」みたいなことを言われて、本の紹介をちゃんと書いておいて良かったなあと思った。自分の"これまで"を伝える人間に寄った成分がテックトークからどうしても薄くなりがちだったけど、本屋さんという面からそこの話もできていたのだなあと後から気が付かされた。

自分にとって大きな影響があった本、かつRubyKaigiでは本屋に並んでいなかった本という基準で選んでいた。気がついたらRubyと関係ない本しか選んでいなかった(選んだあとに気がついた)。というかプログラミングにすら関係してなかったりする……。


今回のスライドは、Marpを使ってMarkdownで書いていた。図はDraw.ioを使っている。

MarkdownならAIを使いやすくて便利なのでは!?と思っていたけど、スライド作成って脳内を絞り出す作業なので、あんまり役立てることはできなかった……。せいぜいcopilotにちょっと補完してもらう程度。 Pull Requestを食わせて内容をまとめてもらったりしても良かったかも知れないけど、そこまでは手が回らなかった。

Markdownで書けるのは便利な半面、細かい調整とか図の挿入とかで苦労しがちだった。 styleタグを入れてレイアウトを整えるのはだいたいAIにやってもらって便利だったけれど、Google Slidesとかを使っていたらそもそもシュッとできる作業なわけで、うーん…。

なおスライド背景の魔法陣っぽいなにかはChatGPTに描いてもらった。いい感じに雰囲気が出ている。書かれている文字っぽいものに意味があるかは、わからない……。


majoとmemory_profilerの対比について。memory_profilerのretained objectsでもピーク時がコード中でどこかを探れば使えるのでは、という話をトークではしていた。

そうではあるのだけど、一方でmajoだけの利点としては、majoはピークの最初と最後でオブジェクトの傾向が違ってもそれに向き合いやすいという利点があるなとスライドを作っているときに気がついた。(トークでは話しそびれた)

つまり、memory_profilerのretained objectだと、計測終了時点のある1点の状態しかわからない。一方でmajoだと「ある期間の長生きしたオブジェクト」をまとめて取ってこれる。これはmajoの強みの1つかもしれないなあと考えていた。実装しているときにはなぜか気がついていなかったなあ。

CSVで出力すればrb_gc_count()の結果も出せるので、どの範囲で生存していたオブジェクトなのかも出すことができる。 これを利用して、オブジェクトのクラスごとに色分けとかして、時間軸を横軸にグラフを書いてみたりしても面白いかも知れない(これは今思いついた)。


みなさんからトーク良かったよと言っていただけて良かった(良かったと思っていない人はわざわざ話しかけて言ってこないだろうけど)。

IOの説明は、話していて説明が難しいなあと思っていたところだった。Twitterでも難しいよねというツイートがあって、わかる〜となっていた。 ここは最初説明に手を抜いていたのだけど、前日に同僚相手に発表練習をして、説明を手厚く更新したところだった。更新しておいてよかった。


登壇中、(例のご報告以外は)結構静かに登壇が進んでいたので話がうけているのかドキドキだった。蓋を開けてみればツイートがすごい数あって、感想もたくさんもらえて好評だったようで良かった。

笑いどころとかをもうちょっとうまく入れられたら良かったなあと思っている。むずかしいよね。


Majo.runは魔女が走っていて微妙なのでは?というのめちゃくちゃおもしろい指摘だったのでなんかaliasを足したい。今のところflyかlibraで考えているけど、どっちがいいかなあ…(両方?)


store.steampowered.com

発表でちらっと話していたC#の話は、ElinというゲームのModを最近作っていてそれにC#を使っているという話でした。

Elinはめっちゃ楽しくて無限に時間を吸われるのでおすすめです。人を選ぶかも知れないけど。

Modを作るのも楽しくて、C#とゲームプログラミングという全然今まで触れてこなかった領域を学ぶのは結構楽しい。Modを作るスイッチが入っちゃうとゲームプレイそっちのけでModを作るのに熱中することもある。Modを作るゲーム楽しい。(もちろんModなしでも楽しいよ)

AIに聞いたり書かせたりもしつつ、新しい要素を色々学びつつという感じ。余裕ができたらガッツリVibe CodingでなにかModを作ってみたい。

なおElinはゲームの作者がModを公認している、かつModのソースコードを公開することも公認していて、堂々とModを書けるのでとてもいい(他のゲームのModは使用も作成もしたことないから比較はできないのだけど)。


これはトークに入れようと思ってすっかり忘れていたのだけど、実はydahさんからキーノートのお誘いをいただいたのが私の誕生日(2月2日)だった。こんな誕生日プレゼントを貰えると思っていなかったのでびっくり。ydahさんは知っていたのだろうか。


関西Ruby会議関係ない話。和麺ぐり虎(ぐりこと読みます)が京都に店舗を出すっぽい。Google Mapによると2025年7月15日開店っぽい。 帰り道に前を通ったらもう看板が出ていた。

かなり好きなラーメン屋の1つなので、開店したら京都の人はぜひ行ってほしい。岡山のラーメンチェーンTier 1の1つだと思う。

ぐり虎はいくつか店舗のタイプがあるっぽいのだけど、ここは"和麺"がつく店。どこも美味しいけど、個人的には和麺のつけ麺が一押しです。


この日記は魔法の人を聞きながら書きました。