2025年6月のふりかえり

ちょっと遅れたけどちゃんとふりかえります。前回はこれ。

kozy4324.hatenablog.jp

OSS活動

gem_rbs_collectionにコミットするのを始めた。RuboCopのカスタムCopを書くにあたってAST周り(rubocop-ast, parser, ast あたり)の型定義が揃っているといいんじゃないかと思ってやっている。

あとCoding Agentの練習としてシンプルなブラウザゲームをCopilotと作ってみている。これは自分では一切コーディングはしない縛りでやっている。ぼちぼちGitHub Pagesあたりにアップしておかないと。

https://github.com/kozy4324/mugen-reversi

型システムのしくみの写経もゆるゆると続けている。Steepのちょっとおかしそうな挙動を一つ発見しているのだった。ちゃんと追いかけたい。

英語学習

継続中。

読書

TAPL本をまだ読んでいるが最近の読むペースは思わしくない。読了したものはないので課題図書設定せねばだな。

関西Ruby会議08に参加して LR parser入門(物理本)を購入した。これはすぐ読もう。

あとソフトウェア関連じゃない本も何か1冊は読んでおきたいな。

ランニング

100km走破した。しかし暑い。ペースは上がらない。いのちだいじに7月も継続しよう。

体重

体重はまったく変わらず推移している。100km走れば普通痩せるものでは?月末に計測が途絶えているのは京都観光していたから。クラフトビール飲み過ぎやな。

勉強会関連

Kashiwa.rbで発表した資料はこれ。

speakerdeck.com

ブログ

ふりかえり記事しか書いてなかったな。猛省。

KPT

  • Keep
    • OSS 活動
    • 英語学習
    • ランニング
    • 体重
    • 勉強会関連
  • Problem
    • 読書
    • ブログ
  • Try
    • 読書
    • ブログ

京都観光記、もしくは京都で麦酒が湧き出るパワースポットを巡った記録

前回記事の続編です。

kozy4324.hatenablog.jp

が、ソフトウェアに関わる話は一切ありません。純粋な趣味日記をお届けします。

京都に行くもう一つの目的、それはクラフトビール

京都と言えばクラフトビールクラフトビールと言えば京都。(諸説あり)

BRUTUS特別編集号を手に取れば、京都の地には幾千数多のマイクロブルワリーとそのタップルームが軒を連ねていると書かれています。クラフトビールが好きになって早数年、子供が生まれてからの12年は一人気ままにビールを飲み歩く機会もなかなかありませんでした。まさに千載一遇とはこれのこと。ありがとう関西Ruby会議、ありがとう妻、京都のクラフトビールを存分に堪能すべく東京を出発しました。

(普通に10:00開店と思ってたので常陸野ネストビールは華麗にスルーした)

京都に降り立つ、なんか梅雨明けてない?

京都駅に到着。強い日差しの中、最初の目的地を目指して歩き始めます。

1件目「京都ビアラボ」

京都駅から徒歩20分ほど、下京区にある「京都ビアラボ」に行きました。

金曜日とはいえ平日なので空いているかなって思って入店しましたが海外からの旅行者らしき人たちで賑わっていました。暑い中歩いてきたのとお昼ご飯をまだ食べてなかったこともあり、ヤードマン・ラガーに鴨のローストをペアリングしていただきました。結局ヤードマン・ラガーとは何だったのかは未だ調べられていません...。

鴨川を北上する

土曜日に行われる関西Ruby会議08の会場は鴨川沿いにあります。予約したホテルもそちらの方向なのでそのまま鴨川沿いに移動して2件目を目指します。

鴨川の鴨です、サギ?もいた

2件目「京都嵐山ブルワリー」

2件目は会場近くにある「京都嵐山ブルワリー」に行きました。

タップ1〜6の6つはこのブルワリーで醸造している銘柄、こうなると3種類一気に注文できる飲み比べセットは嬉しいですね。1時間以上歩いた後に飲むクラフトビールは格別でした。

ホテル移動しつつカレーでお腹を満たす

ちゃんと食べておかないともたないなって思って、関西Ruby会議の公式ブログでもおすすめランチ情報として紹介されていた「カマル」に訪問してみました。

ほうれん草カレーの説明が「ほうれん草にスパイスをまぶした何かです」とあって注文せずにはいられなかった。めちゃくちゃ美味しかった。なおこのお店ではビールは我慢した。

3件目「スプリングバレーブルワリー京都」

ホテルから一番近いブルワリーだし絶対行こうと思っていて、前夜祭イベントまで1時間半ほどあったので行くっきゃない!となって訪問。

スプリングバレーってコンビニでも缶で買えるしねぇ...って思ってたのだけど、一口飲んでその考えが吹き飛びました。IPA、めちゃんこ美味しかったです。京都YOSANO IPA 2025 ってやつを頂いたのだけど、さすがLIMITEDや...、香りとか全然違って衝撃でした。

2日目、関西Ruby会議08本編

前回記事で書いてるので割愛。

4件目「刻シラズ」

ここはブルワリーではないのだけど、会社の同僚に「ベルギービールが揃っててオススメです」と教えてもらっていたので訪問。オフィシャル懇親会後に会社の後輩たちとここで飲んでました。

店内の雰囲気が好みな感じすぎて最高だった

3日目、ホテルをチェックアウトして南に向かう

前日はそれなりに飲みましたが普段通りに7時台に起床。ホテルをチェックアウトして行動開始。午前中とは思えないほど日差しが強い中、東寺方面に向かいました。もちろん徒歩で。

5件目「京都醸造

この京都旅行でどうしても行きたかったお店。新幹線予約してから日程とお店の営業時間を調べた結果、帰りの新幹線を2時間後ろにズラしてまでも行きたかったのが「京都醸造」です。

住宅地の中にいきなり現れる醸造所とか最高すぎる

タップルームで一期一会を飲みながら、お土産の缶ビールをどれにしようかと悩んでいる時間は至福でした。結局5本ほど購入して帰京しましたとさ。

まとめ

京都と言えばクラフトビールクラフトビールと言えば京都。諸説などありませんでした。

最高のクラフトビールを浴びた3日間でしたが、まだまだ訪問できなかったブルワリーもたくさんあります。また次回、京都に訪問できる機会を楽しみに待ちたいと思います。ありがとうございました!

関西Ruby会議08に参加してきた

2025年6月28日(土)に京都の先斗町歌舞練場で開催された関西Ruby会議08に参加してきました。

regional.rubykaigi.org

前夜祭にも参加したかったので金曜日に京都に入り、前後を観光にして三日間京都を堪能してきたつもりなので記憶が新しいうちに書いておきます。

前夜祭 RejectKaigi

株式会社はてなさんの京都オフィスでの開催でした。

関西Ruby会議08 前夜祭 RejectKaigi - connpass

Rubyでやりたい駆動開発 by Miyuki Koshiba さん

Rubyでやりたい」という衝動にかられて紆余曲折しながら作りきる個人開発事例×2なお話でした。

Rubyでやりたい駆動開発 / Ruby driven development - Speaker Deck

個人開発だからこそ許される「その技術要素が好きだから」から始まって、いろいろ壁にぶつかろうが全部学びに変えて突き進んでいく様は聞いてて圧巻だったしめちゃくちゃ面白かったです。電子工作でPicoRuby動かして気づいたらCを書いてて「Rubyで書きたいだけなのになぜCを書いているのか」はツボってしまった。"Rubyでやりたい"の力は偉大。

RubyGem開発で鍛えるソフトウェア設計力 by joker1007 さん

設計とは何か?またその設計力をrubygem開発で鍛えようというお話。

rubygem開発で鍛える設計力 - Speaker Deck

所属組織の教育観点でまとめた話ということで、確かにこれは自分が所属する組織のメンバーにも見てもらいたいなと感じる内容でした。gemを作ってリリースして運用することで得られる設計力ってたくさんあると思う。あと「人間、酒飲むと真面目な話をしがち」は首がもげるほど同意しながら爆笑してしまいました。OSS活動にも繋がる話でとても良かったです。

ruby.wasmで多人数リアルタイム通信ゲームを作ろう by lni_T / ルニ さん

ruby.wasm でリアルタイム通信を使った事例のお話。

ruby.wasmで多人数リアルタイム通信ゲームを作ろう - Speaker Deck

実際に作った多人数リアルタイム通信ゲームのデモをその場でやられたが、iOSだとMaximum call stack size exceededが出て動かず。「iOS、マジでwasm動かねぇ」とのことで既知の事象とのこと。

Safari WebAssembly: Maximum call stack size exceeded · Issue #532 · ruby/ruby.wasm · GitHub

でも Canvas + Web Audio API + 色々を使ってブラウザ上でデモが動くとやはりテンション上がりますね。みんなゲームに夢中になってその直後の発表聞いてない状態になってそれはそれでツボってしまいました。Rubyで作れるものが増えていくのは楽しさしかありません。自分もwasm触って何かやってみよう!って思える内容でした。

DJ on Ruby Ver.0.1 by クドウマサヤ さん

CFP駆動開発でDJソフトウェアを作ったお話。

250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」 - Speaker Deck

LLMの助けを借りながら Ruby + Rust で MacGUI アプリを作ってデモをされていました。音声ファイルの取り扱いや、DJというユースケースでは音が途切れてしまうことは絶対避けたい、ゆえに厳格なスループットを求めてGCのあるRubyではなくRustを技術選択した話などはなるほどなぁとなりました。自分の作りたいソフトウェアを作って学びに変えていくというスタンスが本当にかっこいいなって思いながら話を聞いていました。

本編 関西Ruby会議08

ここからは印象に残っているセッションに絞って書きます。

Schedule - 関西Ruby会議08

Witchcraft for Memory by pocke さん

Ruby / RBS コミッターでもある pocke さんの基調講演。

Witchcraft for Memory - Speaker Deck

自分も最近 RBS を書き始めて gem_rbs_collection にコントリビューションすることにも取り組んでいるのでとても楽しみにしていたセッション。RBSのメモリ削減がテーマで、Majoというmemory profilerを作った話とSteepにおけるRefork featureに関するお話でした。

Majoは生存期間が長いオブジェクトにフォーカスしたmemory profilerで、steep checkコマンドのピークのメモリ使用量が知りたいというモチベーションで作成された。自分のユースケースを満たすためにmemory profilerを自作して実際にメモリ使用量削減まで達成しているというのが本当に素晴らしいお話でした。

Refork featureは従来のforkする仕組みだとCopy on Write (CoW) の恩恵がうまく受けられず、それを解決するためにworkerプロセスからさらにworkerプロセスをforkする方式に変えたということ。親プロセス-子プロセス-孫プロセスと3層になったことでプロセス間通信の実装が難しくなったがUNIXSocket.pairを利用してうまく解決できたと。これについては他のやり方もあったが検討した結果採用せず、なぜそのやり方を採用しなかったのかという説明も丁寧にされていてめちゃくちゃ勉強になる内容でした。

テックイシューと丁寧に向き合われているなという印象を勝手に持たせてもらっており、それをとても分かりやすく説明されているので本当に参考になる内容でした。普段使っているSteepがこうやって改善されていったのかということを知ることができました。

「1ヶ月でWebサービスを作る会」で出会った rails new、そして今に至る rails new by 桐生あんず さん

所属組織の同僚です。あんずさんの登壇を応援しに行ったのが今回の参加目的の一つでした。

「1ヶ月でWebサービスを作る会」で出会った rails new, そして今に至る rails new - Speaker Deck

webサービスを自分の手で作り切ってリリースすることで語れる話があると思っていて、まさにそれをやり切ったあんずさんでしかお話できない内容になっていたなと思います。個人開発事例の話は本当に好きなテーマだし、そこから得た学びもめちゃくちゃ共感できる内容になっていて最高に最高でした。

Regional.rb and the Kyoto City

関西圏の地域Ruby勉強会オーガナイザーが一堂に会してのパネルディスカッション。自分自身も「柏.rb」を運営している立場として、関西圏ではどういったコミュニティがどんな活動しているのかなと興味深く話を聞かせてもらいました。

だいたい飲んでるって話ばかりで「飲みの話しかしとらんやんけ!」ってツッコミが入ってホッコリしました。柏.rbも周辺の飲み屋を開拓することを裏ミッションにしていたりします。会場からの質問コーナーで「運営を続けるために工夫してることは?」という問いかけは自分も気にしているところでした。柏.rbはこの6月でちょうど立ち上げから1年、長く続けていくことは目標の一つにしています。「頑張りすぎないこと」「1人で背負い込まないこと」というのは本当にそうだなぁと共感でした。いろいろなお話を聞いて「柏.rbも次の1年やっていくぞ!」という気持ちがしっかりと持てました。

会全体で感じたこと

歌舞練場という普通の技術カンファレンスではやらないような特別感のある会場がめちゃくちゃ良かったです。またその会場ならではな感じで参加者を楽しませようとさまざまな演出をやられていたなぁと今このブログ記事を書きながら思いおこしています。運営メンバーの方々みんながとても楽しそうに会を進行されていたようにも感じています。

そしてやはりクロージングの ydah さんの話がとても印象的でした。その熱い思いは事前に公開されたブログを読んでもらえれば伝わるでしょう。

関西Ruby会議の再開に寄せて|関西Ruby会議

僕自身もこれまで技術コミュニティからたくさん刺激をもらってここまで頑張れてこれたし、同じような経験をこれからコミュニティに入ってくるであろう人たちにもしてもらいたいなと思っています。それを再認識することができたという意味で、とても、とても良い関西Ruby会議で参加して本当に良かったなと感じています。コミュニティとそれに関わる全てのRubyistに感謝していきたいですね。

あと今回「参加してきていいし、せっかくだから京都観光も楽しんできなよ」と気持ちよく送り出してくれた妻にも感謝したいと思います。

ありがとうございました!

2025年5月のふりかえり

ふりかえります。前回はこれ。

kozy4324.hatenablog.jp

OSS 活動

5月も毎日かかさずコードを書いた。

型システムのしくみがとても勉強になっている。

型システムのしくみ ― TypeScriptで実装しながら学ぶ型とプログラミング言語 – 技術書出版と販売のラムダノート

これは写経せねば!となって ts-tapl-exercises というリポジトリを作ってそこでチクチク書いているんだけど書籍では TypeScript で書かれているものを Ruby + RBS + Steep でも書き直してみたりしている。そもそも型システムとして TypeScript と RBS + Steep では色々違ってて、触ってみてどう違うのかがちゃんと分かってきた感じ。まだ第3章までしか進めていないのだけどマイペースに6月も取り組んでみようと思う。

あと rubocop-oneoff_codemod というものを作った。

TSKaigi 2025 で Anthony Fu さんが招待講演で eslint-plugin-command を紹介してて、アイデアというか着眼点に感銘を受けて Ruby + RuboCop でも出来るのでは?と思って勢いで作ってみた。まだコマンド2つしかないのだけど Ruby でも便利に使えるユースケースを探したい。あと本家の使えそうなコマンドを移植するっていうのもアリだなと考えています。

Ruby の型システム周り (rbs, steep, etc...) が引き続き興味関心高めでやっていきます。

英語学習

ちゃんと続けている。

読書

先月課題図書に指定した「型システムのしくみ」と「プログラマーのためのCPU入門」は読了した。型システムのしくみは写経して味がしなくなるまで楽しむ予定。あとTAPL本も購入した。

https://www.amazon.co.jp/dp/B07CBB69SS

6月はTAPL本を頑張って読み進めたい。

ランニング

100kmまで残り3.3km残してからの月末雨で達成ならず。ちょっと悔しいけど目標にしていた100km近く走れたのでヨシとします。家のリフォームも終わったので6月はしっかり走って体重落として行きたい。

勉強会関連

久しぶりにカンファレンスにも参加してきた。Kashiwa.rbとShinjuku.rbで発表したLTはこれ。

6月は関西Ruby会議08にも参加予定だし、Kashiwa.rb に関しては発足してちょうど1年という区切りのよい開催。勉強会関連も引き続きやっていきです。

ブログ

5月の記事数は5本だった。もうちょっと雑に頻度高く書きたいなぁと思うなどした。

KPT

  • Keep
    • OSS 活動
    • 英語学習
    • ランニング
    • 勉強会関連
  • Problem
    • 体重
  • Try
    • 読書
      • TAPL本!
    • 体重
      • 落とすよ
    • ブログ
      • 書く頻度多くしよう

TSKaigi 2025 の 1日目だけ参加してきました

懇親会付きチケット買ったけど2日目は子供達の小学校運動会と被ってしまったので 1日目のみの参加になりました。しゃーない!

2025.tskaigi.org

聴講したセッション

どういうモチベーションで参加したか

最近は仕事もプライベートも Ruby しか書いていないという感じだけど、書籍「型システムのしくみ」を読んで TypeScript の写経はそういえばしていた。つまりは型システム・型検査器あたりが興味関心ごとになっていて、そこら辺をソフトウェアの堅牢性に寄与させる話が何かしら聞けるといいなと思って参加してみた。

実際参加してどうだったか

トピックの全体傾向としては以下な印象を受けた。

  • TypeScript/JavaScript 全体のエコシステムに関わる話
  • 型システムやそれにまつわる実装の話
  • TypeScript を導入している事例系の話

型理論みたいな話をもっと聞きたい感じはあったのだけど、とはいえどれもめちゃくちゃ参考になる話題ばかりだった。特に最近 Ruby ばかり書いているせいもあってエコシステムに関わる話は全然キャッチアップできていないなぁということを痛感しました。

eslint-plugin-command に感銘を受けて Rubocop plugin もどきをプロトタイプした

Anthony Fu さんが招待講演で紹介した eslint-plugin-command がカッコ良すぎたのですよ。

GitHub - antfu/eslint-plugin-command: Comment-as-command for one-off codemod with ESLint.

AST を操作すればこういうことができる事例という風に解釈した。つまり Ruby でも似たようなことできるのではと。んで AST を処理してコードを書き換えるツールはもうすでにたくさんあるのだけど、 Rubocop であれば plugin という形で実現できそうだよねってことで作ってみた。

PoC としては十分そうで、実際にこれが活用できそうなユースケースとか探って色々実装してみようと思う。

まとめ

TypeScript のカンファレンスに行って Rubocop の plugin 書いてました。自分でもちょっと意味が分からないけど、TypeScript 関連はちゃんと勉強になりました。次回はちゃんと懇親会まで参加したいです!運営の方々、スピーカーの皆様、ありがとうございました!!!

関西Ruby会議08で採択されなかったプロポーザル公開

1本入魂でプロポーザルを送ってみたのですが結果は残念ながら不採択。この内容でどこかで発表はしたかったので資料の準備はやっていこうかと考えています。

Title (Publicly viewable title. Ideally catchy, interesting, essence of the talk. Limited to 60 characters.)

Rubyで作る論理回路シミュレータ —— CPUを理解したくて内部DSLを創った話

Abstract (A concise, engaging description for the public program. Limited to 600 characters.)

書籍『CPUの創りかた』で紹介されるCPUの仕組みを理解するために、Ruby論理回路シミュレータ「logicuit」を作りました。 https://github.com/kozy4324/logicuit

この発表ではその過程で向き合った「論理回路モデリング」と「内部DSLの設計」について紹介します。

作ったものは小さくても、そこには「CPUという、プログラミングと現実世界をつなぐ装置の仕組みを理解したい」という強いモチベーションがありました。CPUを題材に「どうモデル化するか」「Rubyでどう表現するか」を考える中で意識した、設計の指針や工夫を共有します。

Rubyの表現力で、自分に最適化されたDSLを通じて構造を読み・書き・考える——そんな試行錯誤に興味がある方にぜひ聞いてほしい発表です。

Details (Provide an overview, expected outcomes, target audience, and any other relevant details.)

本発表では、書籍『CPUの創りかた』を読み進める中で自分なりに仕組みを理解したいという動機から生まれた、Ruby製の論理回路シミュレータ「logicuit」について紹介します。 https://github.com/kozy4324/logicuit

logicuitは、ANDやORといった基本的なゲートから始まり、D-FlipFlopや選択器(MUX)などの部品を組み合わせて、より複雑な回路を構築できる内部DSLとして実装しています。DSLの設計にあたっては「論理回路の表現に必要十分な機能を持っていること」「論理回路っぽく書けること」「思考をサポートすること」「Rubyらしい書き心地であること」といった、個人的な観点を重視しました。

本セッションでは、具体的なコード例を交えながら、以下のような点に触れます:

  • なぜ自作シミュレータを作ろうと思ったか(モチベーション)
  • Ruby論理回路をどうモデル化したか(クラス設計や表現)
  • DSLの構文をどう設計したか(構文と意味の対応)
  • 自作DSLで実現したCPUがどのように表現できたか(成果物として)

Rubyの柔軟な表現力を活かして「仕組みを理解したい」という欲求を形にするアプローチに興味のある方や、モデリングDSL設計、教育的な視点に関心のある方にぜひ聞いていただきたい発表です。

Pitch (Explain why your proposal should be accepted and why you are the right person to speak on this topic.)

Rubyで何かを作るとき、「好き」や「知りたい」が原動力になることがよくあります。今回の取り組みはまさにそれで、「CPUの仕組みを理解したい」というモチベーションから始まりました。ただ構築するのではなく自分の理解に寄り添うかたちでモデリングし、Rubyの内部DSLで表現を工夫した点にユニークさがあると考えています。

そして私は現在「柏.rb」という地域コミュニティを運営しており、これは RubyKaigi 2024 の KaigiEffect で立ち上がったコミュニティと言っても過言ではありません。そういった経緯から、私も今回の関西Ruby会議 08において機運が立ち上がることに寄与していきたく、本発表が “作る機運” に繋がる内容になるのではないかと考えました。次の誰かが「私も何か作ってみたい」と感じてもらえるような発表をぜひしてみたいと思います!

Your name (A publicly visible name or ID. This will be used as the name displayed on the official website.)

Koji NAKAMURA (kozy4324)

Speaker Bio (A short introduction about yourself, related to your talk. Limited to 500 characters.)

柏.rb 主催。千葉県柏市で地域Rubyコミュニティの活動を行いつつ、Classi株式会社で教育×エンジニアリングに携わっています。

「仕組みを理解すること」「抽象的なものを具体的にモデリングしていくこと」に興味があり、業務外ではRubyを使った個人開発などに取り組んでいます。

Kashiwa.rb #11「LT会 & Extreme Fish Bowl」やってきた

今月も地域Ruby勉強会の Kashiwa.rb をやってきました。

Kashiwa.rb #11 LT会 & Extreme Fish Bowl - connpass

前半 LT 会、後半はみんなでコードを書きながらワイワイしたいなってことで Extreme Fish Bowl を企画してみました。

LT 会

発表者は shilo さんと私の2名、私は最近触っている Steep について発表させてもらいました。

speakerdeck.com

この後にやる Extreme Fish Bowl でも Steep 動かせたりしたら面白いんじゃないかな〜という思惑が少しあったのですけど、そういえば結局 Steep はやらなかったなと今文章書いてて思い出しました。

とは言え、ちょっとした書き捨てのスクリプトでも Steep 使いたくなることもあるよな〜(本当か?)という想定でコピペもしやすいように README を書いたリポジトリもあるので共有しておきます。

GitHub - kozy4324/steep-getting-started

Extreme Fish Bowl

後半小一時間ほどは Extreme Fish Bowl でペアプロしながらコードを書きました。

Extreme Fish Bowl については以下ブログを参考に。

Repro様とExtreme Fish Bowl を開催しました - ESM アジャイル事業部 開発者ブログ

何のプログラムを書いたのかというと Project Euler というサイトのプログラミングクイズに取り組みました。

About - Project Euler

実際に書き上げたコードはリポジトリに push してあります。

GitHub - kashiwarb-meetup/2025-05-20_extreme_fish_bowl: Kashiwa.rb #11 https://kashiwarb.connpass.com/event/354820/ で実施した Extreme Fish Bowl の成果物

以下、やっている最中の感想などをつらつらと。

VSCode LiveShare でコード共有する Extreme Fish Bowl は快適だった

実は Extreme Fish Bowl は人生2回目、1回目は6年ほど前の Shinjuku.rb でやりました。説明しているブログ記事にもこう書いてあるのですが、

その場にいる全員の中でペアを組み、1台のマシンを使ってかわるがわるペアプログラミングをしていきます。

コード共有すれば1台のマシンでやる必要もないよねっていうことですね。

強制5分でペアプロメンバーが次々に入れ替わっていくのですが、常に自分のPC上のエディタでコードを開いているのでコンテキストスイッチの切り替えなくドライバーにスムーズに入っていけたな〜というのが気づきでした。

配列要素の足し込みは #sum で 1発だった

自分、よく #reduce を使いがちなのですが、

a.reduce(0) { |sum, it| sum + it }

#sum で1発なんだよなってのを他の人が書いているのをみて思い出しました。

a.sum

Array#sum (Ruby 3.4 リファレンスマニュアル)

Prime.prime_division 初めて使った

素因数分解 1発で求めるメソッドあったんだ...

Prime#prime_division (Ruby 3.4 リファレンスマニュアル)

こういった気づきがあるので「ペアプロ面白い」って毎回なります。

処理効率は一旦忘れてパッとロジックを考えるの楽しい

例えば「ある文字列が回文 (Palindrome) かどうかを判定するメソッド作ろう」となった時に、「 reverse してイコールなら回文では?」という誰かの発言を受けてできたメソッドがこれ。ほぼワンライナー

def kaibun?(s)
  s == s.reverse
end

やりたいことが簡潔にRubyらしく書けると気持ちいいポイントですよね。モブプロするとそういった視点が誰かしらから出てきてコーディングが進んでいくのでとても勉強になります。

次回の柏.rbは6月第3週ぐらいを予定しています

なんと次回で勉強会立ち上げてから丸1年経過します。少しでも興味を持ってもらえたならばご新規さんでもふらっと足を運んでもらえると喜びます(僕が)。引き続きよろしくお願いします。