diary

I like Hatena Star with a text selection.

2024-03-13

activerecord-originator という gem を作った。

github.com

pocke.hatenablog.com

dev.to

めっちゃArelの内部構造に依存しているのだけど、デバッグのヒントを得るツールとしては便利なのではないかと思っている。

ただ常時出しておくと鬱陶しい気もしていて、使いたいときだけピンポイントでインストールするような使い方が良いのかなあと思ったりする。でもそれだと存在を忘れるんだよなあ。

1,2時間ぐらいで仕様や実装方法を検討して最低限コメントが出るプロトタイプまで作った。 その時のコードがこれ https://gist.github.com/pocke/9167bcdb8c13f7550da4ab322b99c229

そのあとちまちまコードを書いてgemとして公開した。思い立ってから2日でリリースまでこぎつけた。

default_scopeで追加された条件が分かりづらい、というところからスタートしていたので、最初は「default_scopeで追加された条件があればそれを分かりやすくする」という仕様を考えていた。しかしそれならより汎用的に対応したほうがいいよなあと思って今の形にした。一応deafult_scopeを条件にコメントとかを差し込めないかもコードを眺めてはいたけれど、それを見つける前に方針転換してしまった。

実際流行るかというと、どうだろうねえ。わりと"発明"なんじゃないかと思っているし、ハマるケースでは確実にめちゃくちゃ便利だとは確信している。とはいえ結構ログがデカくなるのうざいし、正直真に理解が難しいようなクエリがどの程度あるのかは微妙なところだなあと思っている。クソデカ検索条件クラスとかと戦うときには便利そうだけど、シンプルなRailsアプリのふつーなCRUDアクションとかだと無駄にクエリが読みづらくなるだけかもしれない。

これがデバッグに有用な情報であるという点には100%の自信があるのだけど、今の見せ方が最適かというと全然そうは思っていない。もっとnoisyじゃなく見やすくて役立てやすい見せ方が実現したほうが嬉しいと思うけれど、あんまりアイディアはない。

ちなみに実アプリでは(動作確認で一通り動くことは見ているけど)導入はまだしてないです。導入してみるかなあ

お野菜とかによくある「私が作りました」をイメージして作っていた。そんな感じの名前にしたかったけど、いい名前が思いつかず、GPTにいくつか候補を聞いた中からいい感じだなと思ったoriginateという単語を使ってみた。

Twitter(現X)とか英語版記事とかに書いたのだけど、こういう「SQLの各部分に対するデバッグ情報を出す」ツールって今まであったのかなあっていうのが気になっている。なんか知っている人がいたら教えてください。

思いついたコンセプトを、自分ではめっちゃいいと思いこんで興奮しながら、シュッと実装するという行為を久々にできて楽しかった。こういうの大好き


github.com

irb に issue を立てた。ダークサイドに落ちた人しかハマらなさそうな問題を踏んでいた。


久しぶりにこの日記を書いた。引っ越しで環境が変わったりしたのもあって、日記を書く習慣が途切れていた。本来日記のpublishはラズパイで自動化されているのだけど、そのラズパイをまだセットアップしていないから手動でのpublishになってしまっている。

2023-06-26

twitter.com

FF16の体験版をプレイしていた。

ストーリーはちょっと気になるけど、ゲームシステム的にはあまり面白さを感じれなくて、「すぐに本編買うぞ!」という気持ちにはどうにもなれなかった。 セールで安くなってたら買ってもいいかなあ……

2023-06-22

ここ最近は引っ越しを考えて色々動いていたのだけど、ついに賃貸の審査が通って引っ越しが確定した。

引き続き県内ではあるけど、少し離れた地域に移る。

これから待っている山のような手続きを考えると心が死んでいく。

2023-06-02

しばらく前に東京に行っていた。

泊まった宿の家具の配置が少し不思議だった。

不思議な配置の部屋

ベッド脇の机に埋め込まれたラジオが古めかしくて良かった。音量つまみを最大にしても音がかすかにしか流れなかったのだけど、しばらく試した結果音量つまみをうまく接触がいい位置に合わせるとちゃんと音が出るということに気がついて無事ラジオを聞くことができた。

年季の入ったラジオ

2023-05-13

RubyKaigiだった。自分の登壇とそれ以外で感想を雑に書いていく。登壇に関してはそのうち真面目なブログ記事を書くかも知れない。

自分の登壇について

  • 自分にとっては初の英語でのトークだった。
    • 英語で登壇する、というのは数年前からの目標だったので、達成できて嬉しい。
    • (日本人にしか聞いてないけど)感想を聞く限り、伝わる英語になっていたっぽい
    • スピーカーノートをかなりしっかりと用意したのだけど、結局開始数分でスピーカーノートを読んでいる暇などないということがわかって何も見ずに喋っていた。半分ぐらいはこれを読めばなんとかなるかな、と思っていたので、嬉しい誤算
  • subtractとかparseとかマニアックな内容になるかなーと思いつつ話せることを話した。反応を聞く感じ思ったより受けが良かった。
  • 今回のデモではすんなりRBSを導入しているように見えているけど、これはだいぶずるい例。
    • ruby/rubyciは小さいし、何より依存ライブラリが少ないので「あの依存ライブラリがない、ああこれもない…」の地獄をせずに済む。
    • 一方会社で開発しているようなアプリケーションはもっと大きいので、依存ライブラリが多かったり、RBSが想定していないケースを踏んだりでまだまだ導入には障壁があるのを感じている。これをなんとかしたい。
  • 今回のスピーカーノートはcopilotを使って書いていたのだけど、英語をシュッと出してくれるのでかなり便利だった。

自分の登壇以外について

  • 前職や前々職や前々々職の同窓会をしていた。
  • day 1 のオフィシャルパーティーで、思ったよりたくさんのひとに話しかけてもらえてよかった。
    • 話しかけられすぎて、ご飯を食べる暇がなくてすきを探してなんとかご飯にありつく人になっていた。「やっと食べられる…!」と思ったら話かけられたりしていた
    • とはいえ話しかけないでほしいというわけではなく、自分から話しかけるのができない人間なのでガンガン話しかけてもらえるのは嬉しい。あまりこういうイベントのパーティではご飯にありつけるのを期待してなくて人と話すことを主目的にしているので、とてもよかった。
  • 会期中に、soutaroさんと一緒に相生さんのアプリケーションで型エラーが直せない問題の相談に乗っていた
    • soutaroさんと二人で悩みながらだいぶ時間をかけて解決する、という感じで、これをRBSのメンテナがいない環境でやらせるのはかなり酷だなあと感じる。つらい…。
    • ところで、ここ数年で「ガンガン色んなことに首を突っ込んでめっちゃ成長しててそのうちRubyKaigiで面白い話を聞けそうだなー」と思っていた人がRubyKaigiで毎回のように面白い話をしているのを複数人観測していて、相生さんもそうなっていきそうだなーと思っている
  • 岡山在住や岡山出身の人と話していて、岡山でRubyのコミュニティやりたい力が高まってきた
  • 懇親会とかで色んな人に話したのだけど、RBSのチェリー本がほしい
    • 近年言われている(要出典) RBSの入門が難しい問題に対して、「Rubyと他の静的型付け言語は知っているけどRBSは知らない人」向けに、RBSをアプリケーションに導入して動かすまでの道筋までを見せる本がほしい。
    • ただ、現状だとこの本を書ける人はおそらく世界に数人しかおらず、しかし書ける人を増やすにはこの本が欲しく、鶏卵状態。
    • matzのキーノートでもあったけど、自分でも本を書くのは不可能に近いと思うのだよなあ…。
    • OSS的な形で色んな人と分業してやるのは面白いかもね、と思っている、可能なのかな……。
  • ざざむしがわりと良かったので買って帰りたい