勤務先で『NO HARD WORK』の書籍紹介をした

勤務先の社内イベントにある『DE ラジオ』の『DE の手書きポップ』という書籍紹介コーナーで話すことになり、『NO HARD WORK』を題材にした話をしました。 NO HARD WORK! 無駄ゼロで結果を出すぼくらの働き方 (早川書房)作者:ジェイソン フリード,デイヴィッ…

CircleCIのGitHub連携でPermission denied (publickey)が起きたときの対処

CircleCI を使った GitHub リポジトリの CI で、ある日突然以下のようなエラーが起きるようになりました。 現象 CircleCI のログを見たところ、GitHub からソースコードをチェックアウトする際に、以下のようなエラーになっていました。 if [ "$existing_rep…

RubyKaigi 2022 に登壇した

RubyKaigi 2022 に登壇した。 rubykaigi.org 当日の発表スライドは以下です。 今回はリアルタイムでのリモート登壇でした。 本編 概ねサーバーモードなしの RuboCop のブートと、サーバーモードありの RuboCop のブートの違いと中身の概略について話せたかと…

RubyKaigi 2022 に登壇します

RubyKaigi 2022 に『Make RuboCop super fast』というタイトルで登壇します。 私の登壇は2日目である 2022年9月9日(金) の 11:30-12:00 です (昨年と同じ日時だった) 。 rubykaigi.org 最近 RuboCop に追加した server mode の話です。server mode 導入のは…

test-queue 0.5.0 をリリースした

前回の v0.4.2 のリリースが 2017年1月らしいので、5年越しのリリースになった。 rubygems.org 自分が欲しかったのは以下の警告を抑制するパッチだったけれど、前回リリースからの差分が他にもあったので、ざっと見ておいたことも書き残しておく。 rspec-que…

test-queue のコミッターになった

Ruby の parallel test runner である、test-queue のコミッターになった。 github.com 数年前に送った自分のパッチのリリースが欲しくて、RubyKaigi 2014 のクロージングキーノートスピーカーでもある @tmm1 とやりとりしたのがきっかけ。@tmm1 は現在使っ…

RuboCop 1.30 で非推奨になった自動修正オプション名

RuboCop 1.30 で、自動修正する際のオプションである --auto-correct と --auto-correct-all は非推奨になり、それぞれ --autocorrect と --autocorrect-all になりました。 変更対象のオプション名は long name のみで、short name である -a と -A に変更…

RuboCopの解析バージョンサポートを見直した

RuboCop は Ruby の EOL バージョンについて、EOL の 1年後までサポートしています。 RuboCop の Ruby バージョンサポートといった時に「ランタイムバージョン」と「解析バージョン」の 2 つがあり、このエントリを書いている時点の最新 RuboCop 1.30 リリー…

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…