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系の…

テストを実行してRubyの型情報を集めるやつを作った

イントロダクション 「テストを走らせて型情報を収集すればいいんじゃない?」そのアイデア自体は話題に上がることが多かったかと思われますが、観測範囲では前例がないように見えます。そこで、実際に作ってこそ見える世界があると思い動くものを実装してみ…

YARDタグからRBSを生成する

YARD YARDはドキュメンテーションツールです。 Rubyのコメントに # @param [String] a # @return [void] def foo(a) end みたいな記述を見たことがありませんか? この@paramがYARDのタグ名、[String]がタグのもつ型情報です。aは引数の名前ですね。 YARDで…

RubyKaigi2022で発表した

rubykaigi.org speakerdeck.com RubyKaigi2022で発表した。オンライン参加で、発表は録画だったので、発表したかどうかは奇妙な感じだけど、ともかくできるだけのことはやりきった。 僕にとって、RubyKaigiは2013が最初の参加だった。以来「いつかは発表を………

去年ブログを作っていた

Next.jsで作ったプロジェクトをvercelに乗せる形でブログを作っていた。2021年の3月に。 https://ksss.ink/ いろいろ手作り感があるけど、無料でお手軽に自分のサイトを作ってデプロイするという塩梅はおもしろい。 Next.jsは体験がよく、JS初心者にとっては…

2021年なにしたっけ

くらし 二人目の子供が大きくなっていき、それにつれて一人目の子供も刺激されて成長していくさまを見ながら一緒に暮らしていた。 子供のことは生活のほとんどを占めるが、プライベートの詳細には立ち入らないのであんまり書くことがない。 しいていうなら睡…

三体 / 劉慈欣

三体の感想を書くことは不可能だ。 単純に三部作で相当な分量があり、しかも一部毎にジャンルが違うと思うくらい多様な話が盛り込まれている。三体の感想を一言で述べるということは、言葉を原子に見立てるならば、原子を無限に圧縮することになるため途中で…

Rails MVCしか知らなかったバックエンド開発者が、最近のフロントエンド開発を学んで得た知見

これは、これまでRailsの古き良きMVCな開発体制しか知らなかったバックエンド開発者が、環境が変わってフロントエンド開発を学ばざるをえなくなった者の記録です。 歴史的に正しい事実を書いたものではなく、私個人の理解を整理するための妄想日記です。 私…

entrykitがM1 mac(Apple Silicone)で実行できないときの対処法

現状 M1 macでDockerのApple M1 Tech preview 7 *1 を動かしています。 golang:1.15 imageがたまたま手元で動いていたのでこれで試します。 entrykitはv0.4.0のバイナリを配布していますが、これを実行しようとすると以下のようにgoレベルで落ちてしまい実行…

プログラミングElixir / Dave Thomas

プログラミング Elixir(第2版) 作者:Thomas,Dave 発売日: 2020/12/01 メディア: 単行本 リンクは第2版ですが、読んだのは第1版です。。。 本を買ってから4年くらい積まれていたのですが、この度第2版が出版されたとのことで、あわてて手元の第1版を読みはじ…

株式会社MICINで働き始めました

micin.jp "すべての人が、 納得して生きて、 最期を迎えられる世界を。" をvisionにかかげる、MICINで医療系のプロダクトを作っていきます。 MICINって? 私は不勉強ながら、転職ドラフトでオファーがあるまでMICINの名前を知りませんでした(マイシンと読み…