Ruby 3.2.0dev にマージされた Rust YJIT をビルドする

YJIT の Rust 実装がマージされました。いまのところ今年の Shopify からの代表作ではと見ています (YJIT 自体は Ruby 3.1 で C 実装導入されている機能です) 。 github.com そういうわけで、現在の Ruby 3.2.0dev で YJIT を有効にする場合は、Rust の処理…

【iCARE Dev Meetup #32】OSSとの向き合い方に登壇した

@ogijun からオファーをもらって、【iCARE Dev Meetup #32】OSSとの向き合い方に登壇しました。 icare.connpass.com @ogijun とはゼロ年代に Java の勉強会なんかでお互いによく遭遇していたのがはじまりで、かつて高橋会長のでかい文字のプレゼン本を深夜の…

『プログラミング言語Rust入門』を読んだ

Amazon の Kindle Unlimited で読めたので『プログラミング言語Rust入門』を読んでみた。いまのところ Kindle Unlimited で読める唯一の Rust 本っぽい。 プログラミング言語Rust入門作者:増田 智明日経BPAmazon 書評にもあるように、誤字脱字やコーディング…

株式会社永和システムマネジメントのエンジニアリングマネージャーをはじめていた

ちょうど先日 (2022-03-02) 、勤務先で岡島さんとエンジニアリングマネージャ職について社内ラジオ配信する機会があったので、かつて下書きしていたエントリを公開しておきます。 なので、これは勤務先を移籍したとかそういった話ではなく、昨今の社会背景に…

`Lint/InheritException` copにテコ入れした

Standard gem でのイシューについてジャスティンからメンションをもらったのがきっかけで、Lint/InheritException がいろいろとだったのでテコ入れした。対象となる以下の PR に書いていることのサマリーとなる。 https://github.com/rubocop/rubocop/pull/1…

mrubyにパッチを送ったきっかけ

作品を出せるアイデアが浮かぶかどうかは置いておいて、今年の TRICK に向けて『あなたの知らない超絶技巧プログラミングの世界』を読んでいます。それがきっかけで、巡り巡って mruby にパッチを送る機会があったのを書き残しておきます。新しいことを学ぶ…

ActiveRecord Oracle enhanced adapter 7.0.1 がリリースされた

ActiveRecord Oracle enhanced adapter 7.0.1 がリリースされた。yahonda さんありがとうございます。 rubygems.org Rails 7.0 系統に対応している ActiveRecord Oracle enhanced adapter のパッチバージョンとなる。 MySQL に対応する Mysql2Adapter は mys…

RuboCop 1.24.0 と Ruby 3.1 対応

RuboCop 1.24.0 がリリースされました。 github.com このリリースでは Ruby 3.1 のリリースに先行して、いくつかの Ruby 3.1 対応が入っています。 RuboCop の Ruby 3.1 対応の主だったものについて、ユーザー影響のありそうなものをピックアップして記して…

Offers Magazineに技術職のキャリアとコミュニティに関する記事を寄稿した

少し前に Offers さんより、キャリアをテーマにしたアドベントカレンダーというオファーをいただいて Offers Magazine に執筆した。ちょうど1年ぶりの文筆物。 offers.jp 昨今の自分のキャリア形成は「技術コミュニティ」と不可分なところがあるので、そのあ…

Ruby 3.1の構文アップデート

この記事は「ESM Advent Calendar 2021」の1日目の記事です。 adventar.org RuboCop のバックエンドでは、Ruby を解析して AST (抽象構文木) の Ruby オブジェクトとして扱えるようにする Parser gem を使っています。Parser gem のメンテナンスは、Ruby の …

Ruby 3.1を使ってRuboCopでエラーが起きた場合の対処

先日、Ruby 3.1 で起きる each_cons と each_slice の非互換について記しましたが、RuboCop で非互換の影響を受ける部分とその対処について記しておきます。 koic.hatenablog.com 対象となる組み合わせは Ruby 3.1 と RuboCop 1.22.2 以下です。 RuboCop 1.2…

銀座Rails#39に登壇した

銀座Rails#39に登壇した。 主催者の morimorihoge さんからは、3年目あたりを経ったエンジニアに響くような話を題材にというオファーで頂いていた。 11/19の銀座Rails#39 @koic さん登壇テーマは僕が聞きたくてお願いしました。銀座Railsが始まったころに新…

銀座Rails#39に登壇します

2021年11月19日(金) に開催される「銀座Rails#39」に登壇します。 ginza-rails.connpass.com 銀座Rails#9 以来、30回ぶり2度目のゲスト登壇です。 テーマは、「動いた!」の先へ踏み出す、システムのメンテナビリティ向上の基礎技術です。 主催者の森さんか…

Ruby 3.1 での each_cons と each_slice の (コーナーケース?) 非互換変更

先日、RuboCop の ruby-head CI が落ちていたので、bugs.ruby-lang.org にフィードバックしていたイシューが以下。 bugs.ruby-lang.org osyo さんがコメントで教えてくれた PR が以下で、each_cons と each_slice の戻り値が nil から self に変わっていると…

Rails/OSSパッチ会の会場をDiscordにした

勤務先で行っている今月のパッチ会で、Discord に Rails/OSS パッチ会のサーバーを立てていました。 これまでやりとりに使っていた Idobata の rails ルームが 11 月中旬に閉鎖されることになったためです。Idobata を情報チャンネルとしていた方は Discord …

Active Record x Oracle 12c (19c) における `ALL_SYNONYMS` のパフォーマンスリグレッション回避

勤務先で行っている今月のパッチ会で、yahonda さんに相談した Active Record Oracle enhanced adapter の発行しているスロークエリ対策について書き残しておきます。先に結論を書くと処理によっては、処理によってはパフォーマンスが3〜5倍ほど改善されまし…

XP祭り 2021 に登壇した

XP祭り 2021に登壇した。 登壇中 2度の機材トラブルのなかサポートいただいたトラック司会の細澤さん、視聴いただいたみなさんに感謝します。講演序盤で2度の PC ハングに遭遇した際に「Keynote を諦めて PDF で発表する」という頂いたアドバイスが功を奏し…

XP祭り 2021に登壇します

今週末の 2020年9月18日(土) に開催される、XP祭り 2021 で『ソフトウェア見積りの公式』というタイトルで登壇します。 私の登壇は 15:00-15:45 の I Hall です。 https://confengine.com/conferences/xp2021/schedule eXtreme Programming のカンファレンス…

RubyKaigi Takeout 2021に登壇した

RubyKaigi Takeout 2021 に登壇した。 rubykaigi.org まず最初に。@yahonda さんには、昨年に引き続き事前に英文や構成レビューをしていただきました。多忙のおり、丁寧に見ていただいて本当にありがとうございました。 当日のスライドは以下です。 講演内容…

社内向けに「dRubyによる分散オブジェクトプログラミング勉強会 」を行った

6年くらい前に浜松Ruby会議01でLT登壇した内容を、当時と組織メンバーの顔ぶれも変わっていることもあり社内向けに話した。 Reading 1st dRuby from Koichi ITO www.slideshare.net 現在 @9sako6 がすすめている PofEAA の社内読書会で登場する RPC や RMI, …

guard-rubocop 1.5.0 をリリースした

guard-rubocop 1.5.0 をリリースした。RuboCop の GitHub Discussions に投稿されたのがはじまり。 実質的にリリースした機能は以下。 github.com RuboCop 実行に対するコマンドが rubocop 固定だったものを、cmd オプションを使うことで bin スタブの bin/r…

Rails/OSSパッチ会 2021年8月

Rails/OSS パッチ会だった。オンライン開催になって、それなりに回数も経ってきたところ。 自分は仕事で bin/rails db:schema:load の実行が遅いのが気にかかっていて、結構前に手元で試していた高速化のアイデアについて話したりしていた。 bin/rails db:sc…

RubyKaigi Takeout 2021 に登壇します

RubyKaigi Takeout 2021 に『RuboCop in 2021: Stable and Beyond』というタイトルで登壇します。 私の登壇は1日目である 2020年9月9日(木) の 11:30-11:55 です。 rubykaigi.org 前回の RubyKaigi Takeout 2020 での講演が RuboCop 1.0 リリース前の道のり…

DatabaseCleanerを使ったテストを倍速にした設定の見直し

はじめに テストのデータベースクリーニングをする gem としては、DatabaseCleaner と DatabaseRewinder がメジャーどころとしてあります。 github.com github.com 今回は DatabaseCleaner の話です。 クリーニング戦略を切り替えて計測する DatabaseCleaner…

社内向けに「Rubyコミュニティの歩き方勉強会」を行った

2年くらい前に Rails Developers Meetup 2019 で登壇したときのスライドを使って社内向けに開催した。 コロナ禍でオフラインでのコミュニティ活動というものが休止の中で、オンラインでのあり方を再度模索するきっかけになっていればと思う。 いっぱい話した…

RuboCopファミリーと周辺の更新 (GW 2021編)

GW に更新のあった RuboCop 周辺のアップデートについてざっくりまとめておく。 Parser 3.0.1.1 github.com RuboCop が依存する Ruby の構文解析の Gem で、Ruby 3.0 で入った endless method definition のバグ修正と Ruby 3.1 (dev) のサポート追加をして…

RuboCop Performance 1.11 をリリースした

RuboCop Performance 1.11 をリリースした。主な変更点は以下。 Ruby 2.4 のサポートを終了した Ruby 2.7 で追加された Enumerable#filter_map への Cop を追加した github.com 前者はそのままなので、後者について記す。 Enumerable#filter_map に対応づけ…

RuboCop Oracleをリリースした

RuboCop Oracleを実装してリリースした。 github.com 長年 RDBMS に Oracle (Active Record Oracle enhanced adapter) を使った運用をしているが、これは無停止リリースを行うにあたってのマイグレーションの tip を cop にして含んでおいたもの。 最初の v0…

Ruby 3.0.1, 2.7.3, 2.6.7, 2.5.9 がリリースされた

Ruby 3.0.1, 2.7.3, 2.6.7, 2.5.9 がリリースされた。安定版へのメンテナンス、リリースありがとうございます。 https://www.ruby-lang.org/ja/news/2021/04/05/ruby-3-0-1-released/ https://www.ruby-lang.org/ja/news/2021/04/05/ruby-2-7-3-released/ ht…

RuboCop 1.12.1 がリリースされた

先月のパッチ会で @osyo-manga さんが、Fukuoka.rb 200回 LT 大会 (だったと思う) あたりで話題に上がっていたらしい RuboCop のバグに関するパッチ話を持ってきてくれて、その流れで後日 PR を開いてくれた以下の修正パッチが目玉。 github.com 問題として…