RBSコミッターになった

これまで なぜかPRがmergeできるwrite権限を一昨年のクリスマスにもらっていた。 RBSリポジトリーのwrite権をRubyコミッター全員持っていた方がいいだろうという話題があがった時に、ついでにいただいた形だった。 この時点では、よくわからないけど貰えるも…

Vibe Coding時代に重要そうな基礎コーディング技術

Vibe Coding時代が気がついたら幕を上げてたのでとりあえず試してみた。 本記事では、基本的にAIエージェント用のチャット欄だけで全ての操作を行うことをVibe Codingと呼ぶことにする。 初めからプロダクトを作るのにもVibe Codingは適してそうだが、今回は…

コーヒーにハマっている

去年の2024年7月くらいからハンドドリップコーヒーにハマって、現在も続いているので現状を記録しておく。 ハンドドリップコーヒーとは 簡単に言うとコーヒーの粉にお湯を注いで抽出し、コーヒーを飲むという体験のこと。 店によってはフィルターコーヒーと…

型システムのしくみ / 遠藤侑介

型システムのしくみが発売されました。 本書の概要は著者の記事をご覧ください。 実は本書のレビューに参加していました。 今回は、発売前の本のレビューに参加したこと自体が初めての経験だったので、日記を書いておこうと思います。 献本もいただきました…

SteepにGitHub Actionsフォーマットを導入した

https://github.com/soutaro/steep/pull/1516 まあそれだけなんだけど rubocopには--format githubというオプションがある。 このオプションをつけると、指摘点が1行のシンプルなフォーマットのテキストで表示されると思う。 このフォーマットはGitHub Actio…

paranoia gem用の型を生成する

一言で言うと orthoses-paranoiaを作った。 背景 以下のようなARコードがあったとして、with_deletedの型が分からないので後のコードが全てuntypedになってしまう問題があった。 User.with_deleted.comments.where(...) # ↑ここはUser型 # ↑ここはUser::Acti…

2024年のrbsアップデートまとめ

ruby 3.4リリース Ruby 3.4が出て2月ほどが経ちましたね。 私は去年のRuby 3.3リリースに合わせたRBSの記事を書かせていただきました。 新機能ラッシュ! RBS最新情報をキャッチアップ | gihyo.jp 今年はこの企画自体がなかったので個人のブログで簡単に書い…

swiftgen的なものをRubyで書いてみたがイマイチだったので供養

SwiftGenを使うと、翻訳ファイル等の入力からテンプレートを通して型付きのコードが得られるというツールがある。 この考えを応用して、 I18n.t('foo.bar.baz') を L10n.foo.bar.baz と書けたら、 重複定義があったらRubyでエラーになるはずなので気付ける …

RuboCop on RBS on gem_rbs_collection

gem_rbs_collectionでもrubocop-on-rbsを使っていただけることになり、導入したので紹介します。 gem_rbs_collectionへPR送る方へ RBSを修正してPRを送るとCIから指摘を受けることがあります。 GitHub上でRBSに対してRuboCopが指摘を出している例 rubocop-on…

2024年なにしたっけ

1月 aws-sdkのrbsサポートがリリースされた。 ksss9.hatenablog.com あれからちょこっとPR送ったりレビューを頼まれたりしている。 2月 raapを作り始めた。今もrbsリポジトリのテストに一部組み込まれている。つまりruby/rubyのbundled_gemのテストで毎回走…

RuboCop on RBS on rbs

rbsリポジトリでrubocop-on-rbsが導入された。 Introduce rubocop-on-rbs by ksss · Pull Request #1899 · ruby/rbs · GitHub RuboCopはすでにrbsリポジトリで使われていて、rubyファイルに対しての指摘はすでに行われていた。この変更によってRBSファイルに…

RuboCop on RBS

rubocopをRBSファイルにも効かせたい - スペクトラム で作ってたものが大体できてきて、rbs v3.5もリリースされたので公開できるようになりました。 これでRuboCopをRBSファイルにも使用できるようになりました。 github.com 例えば class Foo def foo: () -…

raapがrbsで使われ始めた

RBSをテストコードにするツールraapがrbsリポジトリで使われ始めた。 Introduce RaaP for testing of signature by ksss · Pull Request #1810 · ruby/rbs · GitHub rbsのCIでraapを走らせている。 現状はSet classでしか使っていないが、これから範囲を広げ…

rubocopをRBSファイルにも効かせたい

背景 RBSも利用が増えてくると、細かい"こうしたほうがいい"が出てくることがあると予想される。 例えば、 インデント initializeの返り値はvoidを使う untyped?ではなくuntypedを使う メソッド引数にvoidを使わない などなど。 こうしたことを指摘するツー…

ブロック引数と返り値は似ている

RaaPを開発していて、ブロック引数の扱いについて解像度が上がったのでメモとして書いておく。 これまでの考え方 Array#mapを例に見てみる。 [1, 2, 3].map do |i| i.to_s end これまではこう考えていた。 メソッドの最終的な返り値のためには、iはぶっちゃ…

RubyKaigiで発表しないけどスライド書いた

speakerdeck.com RBSをテストコードにする - スペクトラム で紹介したRaaPがいい感じに育ってきた。 RubyKaigiごっことして紹介スライドを作った。とくにしゃべる予定はない。 Coverage 大きなアップデートとしては、Coverage機能を追加し、デフォルトで有効…

RBSのIntersection(&)について

自分向けのまとめです。 Intersection(&) RBSにはIntersection型があります。Object & _Each[Integer]のように&で繋げている型のことです。 その前にUnion(|)とは String | Symbolのように、|で繋いだ型をUnion型と言います。こちらは理解は簡単です。 「Str…

RBSがテストになるとおもしろいんじゃないか日記6

前回までのあらすじ RBSがテストになるとおもしろいんじゃないか日記1 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記2 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記3 - スペクトラム RBSがテストになるとおもしろいんじ…

RBSがテストになるとおもしろいんじゃないか日記5

前回までのあらすじ RBSがテストになるとおもしろいんじゃないか日記1 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記2 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記3 - スペクトラム RBSがテストになるとおもしろいんじ…

RBSをテストコードにする

DALL-Eより: Imagine a scene where the abstract concepts of Ruby programming and property-based testing blend harmoniously. Picture a large, glowing ruby crystal まいどお馴染み、作ってみたシリーズです。 今回は、RaaP(ラープ)というツールを作…

RBSがテストになるとおもしろいんじゃないか日記4

前回までのあらすじ RBSがテストになるとおもしろいんじゃないか日記1 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記2 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記3 - スペクトラム 間が開いた 結構間が開いてしまった…

RBSがテストになるとおもしろいんじゃないか日記3

前回までのあらすじ RBSがテストになるとおもしろいんじゃないか日記1 - スペクトラム RBSがテストになるとおもしろいんじゃないか日記2 - スペクトラム メソッド型 前回までで、1つの型について生成できる道筋をつけた。 今回の目標は(Integer) -> Integer…

RBSがテストになるとおもしろいんじゃないか日記2

前回 RBSがテストになるとおもしろいんじゃないか日記1 - スペクトラム 前回で型からランダムな値を作ってテストに使うと言うアイデアについて考えた。 では型からランダムな値を作るというパーツについて考えていこう。 型からインスタンスを作る作戦 例え…

RBSがテストになるとおもしろいんじゃないか日記1

class Foo def bar: (Integer) -> String end みたいなRBSがあったとして、このRBSを使って勝手にテストしてくれるツールがあるとおもしろいんじゃない? というアイデアでプロダクトを作ってみている。 プロジェクト名は適当にRaaP(RBS as a Property)とし…

aws-sdk-ruby配下すべてのgemにRBSが含まれた状態でリリースされました

みなさまに、RBSに関する重要なニュースを発表できることを嬉しく思います。 私の目標の一つにはRBSを当たり前の世界にするというものがあります。 この目標に対して大きなインパクトを残せたことに大変興奮しています。*1 aws-sdk-ruby配下すべてのgemにRBS…

RBS v3.3.0のリリースノートを読む

RBS v3.3.0がリリースされたのでリリースノートを読んでみたいと思います。 https://github.com/ruby/rbs/wiki/Release-Note-3.3 Add rbs diff command 新コマンド追加です。 https://github.com/ruby/rbs/issues/1448 にPR作者の意気込みが書かれていますね…

Kaigi on Rails 2023に登壇した。

kaigionrails.org 2日目の最初だったので、オープニング担当だなと勝手に解釈した。 多分100人ぐらいはいた?50人くらいかもしれない。分からないけど1人でもお客さんがいるならライブをやるとdir en greyの京も言ってたしがんばった。 客観的にどういう公演…

rakeのエラー表示がちょっとだけ便利になりました。

rake v13.1.0がリリースされました https://rubygems.org/gems/rake/versions/13.1.0 このリリースには私が実装した改善が含まれているので紹介します。 というか書かないと環境変数とか誰にも気づかれなさそう。 Support `#detailed_message` when task fa…

37歳Web系ソフトウェアエンジニアの転職活動ふりかえり

2023年4月中ごろから6月の今日までの2ヶ月と少しかけた転職活動が終了したので、記録ついでに振り返りたいと思う。 あくまで個人的な記録である。 応募手法 応募方法は、さまざまな方向から行った。 Twitterでの公開募集 エージェント経由 YOUTRUST経由 直接…

7月から無職なので求職します

(6/19現在)内定承諾したので現在は募集していません。 過去のアーカイブとしてこの記事は残していますが、募集はしていません。 プロフィール やってきたお仕事 ソシャゲ開発 ECサイト開発 マーケティングツール開発 新サービスの開発リード 等など、Web系の…