2025-01-01から1年間の記事一覧

OSS活動記 #5 - herb - HTML Spec にある Content Model に準拠しているかチェックする Linter ルールを作る

対象リポジトリ github.com 背景課題 herb のツールセットの中に HTML + ERB ファイルのチェックをしてくれる Linter が含まれる。 Herb Linter | Herb そのルールの1つに html-no-block-inside-inline というものがあるのだけど、 Linter Rule: No block el…

2025年12月のふりかえり

今年最後のふりかえり。1年のふりかえりは別で記事を書こうかな。書くかもしれないし書かないかもしれません。 前回はこれ: kozy4324.hatenablog.jp OSS活動 herb/reactionviewを触るのが楽しくなってきている。12月に作成したPRとIssueを並べてみる。 PR En…

OSS活動記 #4 - herb - デバッグモードのoverlay label表示を良しなにする

対象リポジトリ github.com 作成したPR(2つ) キリ番 999 と 1000 をゲットした。やったぜ github.com github.com 起きていた問題 reactionviewのデバッグモードで出力するoverlay labelというものがある。 DOMツリーに動的に要素を追加してくれるのだけど…

OSS活動記 #3 - reactionview - レンダリング時間を出力するPRがめちゃめちゃ良いのでさらに魔改造してクエリ発行数も追加してみた

対象リポジトリ github.com レンダリング時間を出力するPR github.com PRの内容と状況を見てみた reactionviewのデバッグモードを使うとviewテンプレートとかpartialテンプレートで出力されたHTML要素に枠線追加して可視化してくれる。PRはこの情報にレンダ…

OSS活動記 #2 - herb - head以下に出力するcontent_forへのdebug spanをなんとかする

対象リポジトリ github.com Issue github.com どういった問題が発生しているのか 個別のテンプレートとして models/index.html.erb がある。 <% content_for :title do %> <%= :title %> <% end %> レイアウトのテンプレート layouts/application.html.erb …

プラグインから始めるOSS開発

OSS

この記事は 東葛.dev Advent Calendar 2025 11日目の記事です。 昨日はponyoxaさんで「東葛.devのここが好き 3選」でした。 adventar.org はじめに こんにちは kozy4324 です。さっそくですが質問です。 みなさんOSS開発してますか?! こう書くと「ソフトウ…

OSS活動記 #1 - herb - javascript_tag内のerb出力にdebug spanが付与されるのをなんとかしたい

対象リポジトリ github.com 遭遇した事象 herbにはdebug modeがある。これをonにすることでerb出力が可視化されて便利。 debug modeがonになっている様子 とても便利なのだがどうやらjavascript_tagヘルパー内のerb出力にも作用して余計なspanタグを付与して…

2025年11月のふりかえり

12月になりましたね。12月が終わるとどうなる?知らんのか。2026年が...。 今年のふりかえりもあと2回ですね。11月をふりかえります。 前回はこれ: kozy4324.hatenablog.jp OSS活動 herbとかreactionviewを触って見つけたバグを報告していた。 Parser error …

Rubyと深掘る浮動小数点数

はじめに コンピューターサイエンスの基礎的なことをゆるく独学していきたいなぁということで「CSゆる独学」というカテゴリーで記事を書いていこうかとなりました。なおこのテーマを思い立って筆を取るまでにはや数週間経過しているぐらいのゆるさです。やっ…

素朴な再帰下降パーサをRubyで書いてみる その2

改めて書いてみて色々気付きがあったなという記事です。 kozy4324.hatenablog.jp 成果物リポジトリ github.com Lexerの改善 1トークン分を読み進めてトークンを取得する #advance を実装していましたが、自分で実装した割に呼び出した後にlexerがどういった…

2025年10月のふりかえり

今年も残り2ヶ月ですね。10月をふりかえろう。 前回はこれ: kozy4324.hatenablog.jp OSS 活動 これといったOSSコントリビューションはなかった。 Ruby処理系を理解したくてRubyのしくみに沿った内容を深掘りしている。その一環でまだ最初の構文解析器に取り…

素朴な再帰下降パーサをRubyで書いてみる

再帰下降パーサとは? Wikipediaを引用すると、 再帰下降構文解析 - Wikipedia 再帰下降構文解析(さいきかこうこうぶんかいせき、英語: Recursive Descent Parsing)は、相互再帰型の手続き(あるいは再帰的でない同等の手続き)で構成されるLL法のトップダ…

Raccが出力するコードをLLMに解説させたメモ

これの続き。 kozy4324.hatenablog.jp Racc (が出力するソースコード)を眺めてみたいと思います。 と書いてはみたものの、さっぱり分からなかったのでLLMに解説させたというメモ。 -v で出力されるoutput 文法はこれ(アクションは割愛)。 rule program: …

2025年9月のふりかえり

あっという間の9月が終わった。本当に1ヶ月経った?って感じで今回もふりかえります。 前回のふりかえりはこれ。 kozy4324.hatenablog.jp OSS 活動 そういえば Rails にコントリビューションする実績を解除した。 PR出したらシュッとマージされてた。Railsに…

Kaigi on Rails 2025 に参加した Kaigi Effect で ActiveRecord のコネクションを一定期間で再接続するだけの Gem を作った

タイトルが長い。そしてタイトルで全て語ってしまった。 経緯 Day 1 のこちらのセッションを拝聴させてもらいました。 kaigionrails.org 途中 X に投稿したポストの会話が以下。 話逸れるけど、たとえばRDSでfailoverしてwriter/readerが入れ替わった場合、…

LR parser に入門したメモ その4

前回からの続きです。 kozy4324.hatenablog.jp Canonical LR(1) parser Wikipedia では「正規LR法」という名前で載っている。 ja.wikipedia.org 終端記号1つを先読みする構文解析手法/構文解析器。 とのこと。 各アイテムが先読みによって比較される終端記号…

LR parser に入門したメモ その3

前回からの続きです。 kozy4324.hatenablog.jp SLR(1) parser SLR の S は Simple ということらしい。(1) は 1つ先の入力を用いることを表しています。 SLR(1) では LR(0) の Reduce アクションする項において、左辺にある非終端記号の FOLLOW 集合と次の入…

LR parser に入門したメモ その2

前回からの続きです。 kozy4324.hatenablog.jp 手書きで LR parser を構成してみる 以下の文法に対して、「LR parser 本:1.3 LR parser の構成方法」に記載されている内容に従って LR parser を構成してみます。 program → expr expr → expr '+' term expr …

LR parser に入門したメモ その1

lr-parser-101 に取り組みつつ「LR parser 入門」本を10回ぐらい読んでようやく LR parser について 2mm ぐらい理解できた気がしたので忘れないようにメモを書き残します。 lr-parser-101 とは github.com Rubyで書かれたLALR(1) パーサジェネレーター Racc…

2025年8月のふりかえり

夏休みが終わった。子供がいる親的には日常が戻ってきたということです。 前回のふりかえりはこれ。 kozy4324.hatenablog.jp OSS 活動 これといったコントリビューションとかできていない。GitHubに草が生えているのは主に自分が管理しているリポジトリのラ…

Kashiwa.rb #14「ワイガヤグループワーク会」やってきた

やってきました。 Kashiwa.rb #14 ワイガヤグループワーク会 - connpass 今回から数回は各自テーマを持ち寄って取り組む形式でやっていく試みです。個人でもくもく作業するのもいいけど、せっかくだからその場に集まった何人かで一緒に調べたり質問したりと…

RubyのParser周りを俯瞰する〜2025.夏〜

この記事は何? 来たる 8/18(月) にKashiwa.rbの勉強会が開催されます。 Kashiwa.rb #14 ワイガヤグループワーク会 - connpass 自分は「Parser や AST を触ってみる」あたりに取り組むつもり。なのだけど、パッと Parser を動かして AST を確認できるものが…

2025年7月のふりかえり

はや8月。あっという間だった7月をふりかえります。前回はこれ。 kozy4324.hatenablog.jp OSS活動 先月に引き続き gem_rbs_collection の rubocop-ast に型を追加していた。RuboCop Plugin を開発するにあたってあると嬉しい型定義情報(主に RuboCop::AST::…

Kashiwa.rb #13「「こんな勉強会やっていきたい」を共有&議論するワークショップ」やってきた

やってきました。 Kashiwa.rb #13 「こんな勉強会やっていきたい」を共有&議論するワークショップ - connpass 去年から月1ペースで毎月欠かさず13回目、つまり2年目の1回目ということになります。めでたい。2年目も頑張りすぎずにやっていきます。 今回のテ…

読書メモ:「結局、人生はアウトプットで決まる 自分の価値を最大化する武器としての勉強術」に書いてあった良いプレゼンとは何か?について

良いプレゼンとは何か?という話がけっこう自分に刺さったのでその部分だけの読書メモを残しておきます。 対象書籍 Amazon.co.jp: 結局、人生はアウトプットで決まる 自分の価値を最大化する武器としての勉強術 eBook : 中島 聡: 本 https://www.amazon.co.j…

2025年6月のふりかえり

ちょっと遅れたけどちゃんとふりかえります。前回はこれ。 kozy4324.hatenablog.jp OSS活動 gem_rbs_collectionにコミットするのを始めた。RuboCopのカスタムCopを書くにあたってAST周り(rubocop-ast, parser, ast あたり)の型定義が揃っているといいんじ…

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

前回記事の続編です。 kozy4324.hatenablog.jp が、ソフトウェアに関わる話は一切ありません。純粋な趣味日記をお届けします。 京都に行くもう一つの目的、それはクラフトビール 今日は京都に移動して麦酒が湧き出るパワースポット巡りをしたいと考えている—…

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

2025年6月28日(土)に京都の先斗町歌舞練場で開催された関西Ruby会議08に参加してきました。 regional.rubykaigi.org 前夜祭にも参加したかったので金曜日に京都に入り、前後を観光にして三日間京都を堪能してきたつもりなので記憶が新しいうちに書いておきま…

2025年5月のふりかえり

ふりかえります。前回はこれ。 kozy4324.hatenablog.jp OSS 活動 草 pic.twitter.com/xQ3BUp9j3y— Koji NAKAMURA (@kozy4324) 2025年6月1日 GitHub Activity pic.twitter.com/RhlWbiWbYg— Koji NAKAMURA (@kozy4324) 2025年6月1日 5月も毎日かかさずコードを…

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

懇親会付きチケット買ったけど2日目は子供達の小学校運動会と被ってしまったので 1日目のみの参加になりました。しゃーない! 2025.tskaigi.org 聴講したセッション The New Powerful ESLint Config with Type Safety | TSKaigi 2025 checker.tsに対して真剣…