2021-01-01から1年間の記事一覧
RuboCop 1.24.0 がリリースされました。 github.com このリリースでは Ruby 3.1 のリリースに先行して、いくつかの Ruby 3.1 対応が入っています。 RuboCop の Ruby 3.1 対応の主だったものについて、ユーザー影響のありそうなものをピックアップして記して…
少し前に Offers さんより、キャリアをテーマにしたアドベントカレンダーというオファーをいただいて Offers Magazine に執筆した。ちょうど1年ぶりの文筆物。 offers.jp 昨今の自分のキャリア形成は「技術コミュニティ」と不可分なところがあるので、そのあ…
この記事は「ESM Advent Calendar 2021」の1日目の記事です。 adventar.org RuboCop のバックエンドでは、Ruby を解析して AST (抽象構文木) の Ruby オブジェクトとして扱えるようにする Parser gem を使っています。Parser gem のメンテナンスは、Ruby の …
先日、Ruby 3.1 で起きる each_cons と each_slice の非互換について記しましたが、RuboCop で非互換の影響を受ける部分とその対処について記しておきます。 koic.hatenablog.com 対象となる組み合わせは Ruby 3.1 と RuboCop 1.22.2 以下です。 RuboCop 1.2…
銀座Rails#39に登壇した。 主催者の morimorihoge さんからは、3年目あたりを経ったエンジニアに響くような話を題材にというオファーで頂いていた。 11/19の銀座Rails#39 @koic さん登壇テーマは僕が聞きたくてお願いしました。銀座Railsが始まったころに新…
2021年11月19日(金) に開催される「銀座Rails#39」に登壇します。 ginza-rails.connpass.com 銀座Rails#9 以来、30回ぶり2度目のゲスト登壇です。 テーマは、「動いた!」の先へ踏み出す、システムのメンテナビリティ向上の基礎技術です。 主催者の森さんか…
先日、RuboCop の ruby-head CI が落ちていたので、bugs.ruby-lang.org にフィードバックしていたイシューが以下。 bugs.ruby-lang.org osyo さんがコメントで教えてくれた PR が以下で、each_cons と each_slice の戻り値が nil から self に変わっていると…
勤務先で行っている今月のパッチ会で、Discord に Rails/OSS パッチ会のサーバーを立てていました。 これまでやりとりに使っていた Idobata の rails ルームが 11 月中旬に閉鎖されることになったためです。Idobata を情報チャンネルとしていた方は Discord …
勤務先で行っている今月のパッチ会で、yahonda さんに相談した Active Record Oracle enhanced adapter の発行しているスロークエリ対策について書き残しておきます。先に結論を書くと処理によっては、処理によってはパフォーマンスが3〜5倍ほど改善されまし…
XP祭り 2021に登壇した。 登壇中 2度の機材トラブルのなかサポートいただいたトラック司会の細澤さん、視聴いただいたみなさんに感謝します。講演序盤で2度の PC ハングに遭遇した際に「Keynote を諦めて PDF で発表する」という頂いたアドバイスが功を奏し…
今週末の 2020年9月18日(土) に開催される、XP祭り 2021 で『ソフトウェア見積りの公式』というタイトルで登壇します。 私の登壇は 15:00-15:45 の I Hall です。 https://confengine.com/conferences/xp2021/schedule eXtreme Programming のカンファレンス…
RubyKaigi Takeout 2021 に登壇した。 rubykaigi.org まず最初に。@yahonda さんには、昨年に引き続き事前に英文や構成レビューをしていただきました。多忙のおり、丁寧に見ていただいて本当にありがとうございました。 当日のスライドは以下です。 講演内容…
6年くらい前に浜松Ruby会議01でLT登壇した内容を、当時と組織メンバーの顔ぶれも変わっていることもあり社内向けに話した。 Reading 1st dRuby from Koichi ITO www.slideshare.net 現在 @9sako6 がすすめている PofEAA の社内読書会で登場する RPC や RMI, …
guard-rubocop 1.5.0 をリリースした。RuboCop の GitHub Discussions に投稿されたのがはじまり。 実質的にリリースした機能は以下。 github.com RuboCop 実行に対するコマンドが rubocop 固定だったものを、cmd オプションを使うことで bin スタブの bin/r…
Rails/OSS パッチ会だった。オンライン開催になって、それなりに回数も経ってきたところ。 自分は仕事で bin/rails db:schema:load の実行が遅いのが気にかかっていて、結構前に手元で試していた高速化のアイデアについて話したりしていた。 bin/rails db:sc…
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 リリース前の道のり…
はじめに テストのデータベースクリーニングをする gem としては、DatabaseCleaner と DatabaseRewinder がメジャーどころとしてあります。 github.com github.com 今回は DatabaseCleaner の話です。 クリーニング戦略を切り替えて計測する DatabaseCleaner…
2年くらい前に Rails Developers Meetup 2019 で登壇したときのスライドを使って社内向けに開催した。 コロナ禍でオフラインでのコミュニティ活動というものが休止の中で、オンラインでのあり方を再度模索するきっかけになっていればと思う。 いっぱい話した…
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 をリリースした。主な変更点は以下。 Ruby 2.4 のサポートを終了した Ruby 2.7 で追加された Enumerable#filter_map への Cop を追加した github.com 前者はそのままなので、後者について記す。 Enumerable#filter_map に対応づけ…
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 がリリースされた。安定版へのメンテナンス、リリースありがとうございます。 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…
先月のパッチ会で @osyo-manga さんが、Fukuoka.rb 200回 LT 大会 (だったと思う) あたりで話題に上がっていたらしい RuboCop のバグに関するパッチ話を持ってきてくれて、その流れで後日 PR を開いてくれた以下の修正パッチが目玉。 github.com 問題として…
5年くらい前にアジャイルジャパンの長崎サテライトで登壇した内容を、当時と組織メンバーの顔ぶれも変わっていることもあり社内向けに話した。 Gate of Agile Web Development from Koichi ITO www.slideshare.net 参加メンバーからは「保守はバグ修正ではな…
Downward assignments という名前で Ruby に提案された機能 (mame さん今年もありがとうございます) 。 p(2 * 3 * 7) #=> 42 ^^^^^var p var #=> 6 bugs.ruby-lang.org エイプリルフールということを失念していて「これは!」とおもしろく思った一方で思った…
最近、String#split と String#chars まわりの Cop をメンテナンスしたり実装した際の、それらメソッドに関する知見を書き残しておきます。 String#split の小咄 RuboCop Performance に string.split(/re/) より string.split('re') の方が速いので、Cop に…
Rails のテクニカルな話は、新機能がリリースされたり業務で困ったら調べたりなどで日頃から触れている一方で、そもそもの Rails の理念やコミュニティなどを焦点に触れるというのはあまりないのではと以前から思っていたので、勉強会という形で開催してみた…
ここ数日 CircleCI でトリガーが効かなくなって困っていたので問合せをサポートにリクエストをした。 今後、似た問題に当たった人が現れたとき自力解決は難しいと思うのと "CircleCI Maintenance" と検索しても、当然 CircleCI のメンテナンス情報しか出てこ…
RuboCop で直した「おっ」と思ったバグ。シェルのブレース展開 {...} を使って複数ディレクトリを一括で作成する手法がある。業務で連番でのディレクトリ作成とか必要だったりするときに使えたりする。 % mkdir {a,z} % ls a z % mkdir {a..c} % ls a b c % …
先日、移行アシスタントを使って MacBook Pro を移行したのだが、Web 会議や勉強会でオンライン画面共有できない問題が起きていた。 具体的に問題になった Web 会議ツールとしては Zoom アプリケーションと Google Chrome を使った Google Meet のふたつ。 W…