Ruby
github.com 発音と命名の由来 Object(オブジェクト) + Genealogist(ジーニーアーロジスト) -> オブジーニーアーロジスト という想定なのだけど、本当にそう発音していいかは知らない。造語です。 Genealogistは「家系、血縁関係、家系図を専門的に調査・研究…
対象リポジトリ github.com 作成したPR github.com 経緯 rbs_railsはRailsアプリケーションでのrbs(Rubyの型定義ファイル)作成を支援してくれるもの。ActiveRecordモデルはDBカラムから動的にメソッド群が生える。そういった動的に生えるメソッドをケアし…
はじめに コンピューターサイエンスの基礎的なことをゆるく独学していきたいなぁということで「CSゆる独学」というカテゴリーで記事を書いていこうかとなりました。なおこのテーマを思い立って筆を取るまでにはや数週間経過しているぐらいのゆるさです。やっ…
改めて書いてみて色々気付きがあったなという記事です。 kozy4324.hatenablog.jp 成果物リポジトリ github.com Lexerの改善 1トークン分を読み進めてトークンを取得する #advance を実装していましたが、自分で実装した割に呼び出した後にlexerがどういった…
再帰下降パーサとは? Wikipediaを引用すると、 再帰下降構文解析 - Wikipedia 再帰下降構文解析(さいきかこうこうぶんかいせき、英語: Recursive Descent Parsing)は、相互再帰型の手続き(あるいは再帰的でない同等の手続き)で構成されるLL法のトップダ…
これの続き。 kozy4324.hatenablog.jp Racc (が出力するソースコード)を眺めてみたいと思います。 と書いてはみたものの、さっぱり分からなかったのでLLMに解説させたというメモ。 -v で出力されるoutput 文法はこれ(アクションは割愛)。 rule program: …
タイトルが長い。そしてタイトルで全て語ってしまった。 経緯 Day 1 のこちらのセッションを拝聴させてもらいました。 kaigionrails.org 途中 X に投稿したポストの会話が以下。 話逸れるけど、たとえばRDSでfailoverしてwriter/readerが入れ替わった場合、…
やってきました。 Kashiwa.rb #14 ワイガヤグループワーク会 - connpass 今回から数回は各自テーマを持ち寄って取り組む形式でやっていく試みです。個人でもくもく作業するのもいいけど、せっかくだからその場に集まった何人かで一緒に調べたり質問したりと…
この記事は何? 来たる 8/18(月) にKashiwa.rbの勉強会が開催されます。 Kashiwa.rb #14 ワイガヤグループワーク会 - connpass 自分は「Parser や AST を触ってみる」あたりに取り組むつもり。なのだけど、パッと Parser を動かして AST を確認できるものが…
2025年6月28日(土)に京都の先斗町歌舞練場で開催された関西Ruby会議08に参加してきました。 regional.rubykaigi.org 前夜祭にも参加したかったので金曜日に京都に入り、前後を観光にして三日間京都を堪能してきたつもりなので記憶が新しいうちに書いておきま…
懇親会付きチケット買ったけど2日目は子供達の小学校運動会と被ってしまったので 1日目のみの参加になりました。しゃーない! 2025.tskaigi.org 聴講したセッション The New Powerful ESLint Config with Type Safety | TSKaigi 2025 checker.tsに対して真剣…
1本入魂でプロポーザルを送ってみたのですが結果は残念ながら不採択。この内容でどこかで発表はしたかったので資料の準備はやっていこうかと考えています。 Title (Publicly viewable title. Ideally catchy, interesting, essence of the talk. Limited to …
今月も地域Ruby勉強会の Kashiwa.rb をやってきました。 Kashiwa.rb #11 LT会 & Extreme Fish Bowl - connpass 前半 LT 会、後半はみんなでコードを書きながらワイワイしたいなってことで Extreme Fish Bowl を企画してみました。 LT 会 発表者は shilo さん…
https://github.com/kozy4324/logicuit From logic circuit to Logicuit — a playful portmanteau. A Ruby-based logic circuit simulator featuring an internal DSL for building circuits. を作ったよっていう話。 この gem は何ができるのか? 論理回路…
リクエストの振り分け RubyLsp::Server#process_message でリクエストの振り分けが書かれている。 https://github.com/Shopify/ruby-lsp/blob/v0.23.11/lib/ruby_lsp/server.rb#L13 今回見るのは textDocument/hover なので以下箇所から。 https://github.co…
VSCode 拡張のエントリーポイント VSCode 拡張としての実装は vscode ディレクトリ以下に格納されている。実装は TypeScript 。今インストールしている VSCode 拡張のバージョンが v0.9.7 なのでそのタグで確認していく。 https://github.com/Shopify/ruby-l…
Kashiwa.rb 第8回も無事に開催することができました。 Kashiwa.rb #8 OSS Gate風 OSS と仲良くなるためのワークショップ - connpass 自分は earthean さん、Hisakeyさん、私の3人チームで Ruby-LSP と仲良くなろうと試みました。 GitHub - Shopify/ruby-lsp:…
ちゃんとブログ書くところまでやる。 kashiwarb.connpass.com 12月師走ということで、今回の柏.rbは2024年をふりかえりつつ2025年に向けた話も含めてワイワイしたいなということでオープンスペーステクノロジーを企画してみました。 発表1: Ruby界隈を中心に…
ブログを書くまでが勉強会です。 kashiwarb.connpass.com もくもく会 今日の柏.rbではruby-lsp関連をもくもく作業しよう— Koji NAKAMURA (@kozy4324) 2024年11月18日 最近 Ruby LSP の Add-ons 関連で遊び始めたのだけど、実装の更新にドキュメントが全然追…
Rails の過去の脆弱性から勉強するシリーズ #5 github.com 脆弱性の概要 ActiveRecord のクエリメソッド #annotate #optimizer_hints および QueryLogs インターフェースにおいて SQL インジェクション脆弱性。SQL のコメントに対するサニタイズが不十分だっ…
Kaigi on Rails 2024 Day2 10:40 〜 10:55 「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇させてもらいました。大きな技術カンファレンスでの登壇は初だったのでふりかえり記事を書き残しておこうと思います。 参加したセ…
2024.10.25 (Fri.) - 26 (Sat.) の2日間、有明セントラルタワーホール & カンファレンスで開催された Kaigi on Rails 2024 に参加してきました。 kaigionrails.org Kaigi on Rails は初参加だったし、コロナ禍&家庭都合で大規模カンファレンス自体が数年ぶ…
Rails の過去の脆弱性から勉強するシリーズ #4 github.com 修正コミット github.com 脆弱性の概要 SafeBuffer#bytesplice に XSS 脆弱性の可能性がある。 html_safe と SafeBuffer 出力する文字列がすでに検査済みで、追加で HTML エスケープする必要がなく…
セミナー参加感想文です。 rubyassociation.doorkeeper.jp 基調講演「Better Ruby」 Rubyのパパ、まつもとさん (Matz) による講演。 CRuby 開発の近況報告という感じの内容だった。というか RubyKaigi2024 のキーノートとタイトル同じで(自分は RubyKaigi …
CVE-2023-23913: rails-ujs vulnerable to DOM Based Cross-site Scripting contenteditable HTML Elements
Rails の過去の脆弱性から勉強するシリーズ #3 github.com 修正コミット github.com 脆弱性の概要 contenteditable な要素に malicious HTML をペーストすることで DOM based XSS の可能性がある。 contenteditable に HTML そのままペーストできるの?レベ…
Rails の過去の脆弱性から勉強するシリーズ #2 github.com 修正コミット github.com 脆弱性の概要 HTTP header で利用できる文字種は RFC で定義されている。 RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing 修正前のアプ…
Rails の過去の脆弱性から勉強するシリーズ。 github.com 修正コミット github.com 脆弱性の概要 Rails には秘密鍵を credential ファイルへ編集・保存するための仕組みが含まれている。 railsguides.jp config/credentials.yml.encには暗号化された内容が書…
昨日の記事の続きです。 kozy4324.hatenablog.jp HANDLE_REG_TIMEOUT_IN_MATCH_AT が GitHub の全文検索でもヒットしなかったけど簡単な理由だったというオチ。 Bug #20653: Memory leak in String#start_with? when regexp times out Ruby 3.3.5 に含まれる…
github.com bugs.ruby-lang.org どんなバグ? 正規表現の capture group によって確保されたメモリが、正規表現処理でタイムアウトするとメモリリークするということらしい。 diffを眺める match_at 関数の末尾にあるラベル timeout: の処理が変わって ONIGE…
プログラミング初学者向けのモブプロ題材を考えていて、マインスイーパーあたりがちょうどいいんじゃないかと思って試しに書いてみた。 ゴールはオブジェクト指向の考え方も学べるようなものにしたいと考えている とはいえ、いきなり初学者にオブジェクト指…