プロと読み解く Ruby 3.2 NEWS

技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 昨日 12/25 に、恒例のクリスマスリリース…

キャッシュによるRubyの正規表現のマッチングの高速化の紹介

9月からRuby開発チームにインターンシップとして参加している@makenowjustです。 総合研究大学院大学の学生で、普段は情報セキュリティに関する研究をしています。 インターンシップでは、キャッシュ (メモ化) を利用したRubyの正規表現の高速化を行いました…

Cookpad Code Puzzle for RubyKaigi 2022の解説(裏ステージ)

技術部の遠藤(@mametter)です。おまたせしました、RubyKaigi 2022で出題したクックパッドブースの企画、Cookpad Code Puzzle for RubyKaigi 2022の裏ステージの解説です。 このパズル自体の解説は前編の記事をごらんください。 techlife.cookpad.com さっ…

Cookpad Code Puzzle for RubyKaigi 2022の解説(表ステージ)

技術部の遠藤(@mametter)です。RubyKaigiお疲れ様でした! クックパッドはRubyKaigiで、Rubyを使ったパズルを出してました。この記事では、出題者が想定していた解き方を公開します。自力で遊びたい人は解いた後で読んでください。 Cookpad Code Puzzle fo…

【RubyKaigi発表予告】error_highlight: user-friendly error diagnostics

技術部の遠藤です。2日連続の投稿です。 今年のRubyKaigi 2022ではTRICKの発表をしますが、もうひとつ真面目な発表もします。Ruby 3.1の目玉機能であったerror_highlightについてです。 この発表内容について、あらすじを紹介したいと思います。 Ruby 3.1のe…

【RubyKaigi発表予告】超絶技巧コードコンテストTRICK 2022結果発表

技術部の遠藤です。CookpadのフルタイムRubyコミッタの1人です。RubyKaigiまであと1週間ですね! 今年のRubyKaigiでは、"TRICK"の発表をします。TRICKとは何か。まずはこのRubyコードを見てください。 ->\ &\ w{ a= ?a b= ?b c= ?, d= ?. e= ?e g= ?g h= ?/ …

プロと読み解く Ruby 3.1 NEWS

技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.1.0 がリリ…

Ruby 3.1はエラー表示をちょっと親切にします

こんにちは、ruby-devチームの遠藤(@mametter)です。 Among Usというゲームをやってるのですが、友達が少なくてあまり開催できないのが悩みです。 今日は、Ruby 3.1に導入される予定のerror_highlightという機能を紹介します。 どんな機能? NoMethodError…

emruby: ブラウザで動くMRI

こんにちは、フルタイムRubyコミッタの遠藤です。 Ruby 3.0が出てもう4ヶ月経ってしまいました。最近のTypeProfの開発ですが、vscode拡張として使えるようにするために、一生懸命Language Server Protocolをいじって遊んでるところです。 今日の成果です。RB…

プロと読み解く Ruby 3.0 NEWS

技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリ…

Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート

Ruby 3 は「静的型解析」を備えることが目標の 1 つになっています。TypeProf は Ruby 3 の静的型解析エコシステムの 1 つです。しかし Ruby 3 の静的解析というと、RBS、TypeProf、Steep、Sorbet などいろいろなツール名が出てきてよくわからない、という声…

Ruby 3 の静的解析ツール TypeProf の使い方

昨日、Ruby 3.0.0-preview2 がリリースされました。このリリースには、遠藤が開発している Ruby の静的型解析ツール TypeProf が初めて同梱されています。これの使い方をかんたんにご紹介したいと思います。

Rubyの開発を支える技術

こんにちは、遠藤(@mametter)です。RubyKaigi Takeout 2020お疲れさまでした。 今回は、遠藤が関わっている範囲で、「Ruby開発者会議を支える技術」「リモート議論を支える技術」「Rubyの品質を支える技術」についてざっと紹介してみます。

プロと読み解くRuby 2.7 NEWS

技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 去年の記事「プロと読み解く Ruby 2.6 NEW…

EuRuKo 2019 で発表してきました

技術部でフルタイム Ruby コミッタをしている遠藤(@mametter)です。フルタイムで Ruby を開発しています。 先日、オランダのロッテルダムで開催された EuRuKo 2019 で発表してきたので、簡単にレポートします。 EuRuKo は、毎年ヨーロッパのどこかで開催さ…

RubyKaigi 2019 Cookpad Daily Ruby Puzzles の正解と解説

Ruby 開発チームの遠藤です。RubyKaigi 2019 が無事に終わりました。すばらしい会議に関わったすべてのみなさんに感謝します。 開催前に記事を書いたとおり、クックパッドからはのべ 7 件くらいの発表を行い、一部メンバは会議運営にもオーガナイザとして貢…

RubyKaigi 2019 "A Type-level Ruby Interpreter for Testing and Understanding" の発表要旨

こんにちは、クックパッドで仕事で Ruby の開発をしている遠藤(@mametter)です。もうすぐ RubyKaigi ですね! クックパッドはいろんな形で RubyKaigi に参加していく予定なのでよろしくお願いします。詳しくは昨日の記事をごらんください。 さて、そういう…

Ruby 2.6 新機能:本番環境での利用を目指したコードカバレッジ計測機能

技術部の遠藤(mame)です。1 ヶ月くらい風邪が直らず、苦しみながらこれを書いています。 昨日は Ruby 2.6 の NEWS を裏話付きで解説する記事を書きました(プロと読み解く Ruby 2.6 NEWS ファイル)。今日と明日は、その中でクックパッドのフルタイムRuby…

プロと読み解く Ruby 2.6 NEWS ファイル

技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Interpreter、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 もうすぐ Ruby 2.6 がリリースされますね! R…

簡潔ビットベクトルでRubyをlog N倍速くした

技術部のフルタイムRubyコミッタの遠藤(@mametter)です。昨日の Hackarade #04 の開催報告に続き、2日連続で記事を投稿します。 今回は、ある条件下でのRubyの実行速度を高速化した話を紹介します。この改善はすでにMRIの先端にコミットされていて*1、年末…

Hackarade #04: Create Your Own Interpreter

技術部の遠藤(@mametter)です。Rubyの開発やってます。 クックパッドでは、Hackaradeという社内ハッカソンを定期的に開催しています。第1回はRubyインタプリタのハック(MRI Internal Challenge)、第2回は機械学習の体験(Machine Learning Challenge)、…

Ruby の NODE を GC から卒業させた

こんにちは、技術部のフルタイム Ruby コミッタの遠藤(@mametter)です。メリークリスマス。 本日 Ruby 2.5.0 がリリース予定です。いろいろな改善が含まれています。クックパッドからの主な貢献としては、「trace 命令の削除による高速化」や「分岐・メソ…

Ruby の脆弱性を見つけた話

こんにちは、技術部の遠藤(@mametter)です。フルタイム Ruby コミッタとして、クックパッドにあたらしく入社しました。よろしくお願いします。 最近、Ruby や RubyGems の脆弱性を発見して、その結果セキュリティリリースにつながるということを経験しまし…