将来 default gems から bundled gems になるぞ、もう bundled gems になってるぞ、というようなライブラリを require した時に LoadError を出して終わり、ではなくて何をすれば良いのか、というメッセージを出すようにしてみた。
https://bugs.ruby-lang.org/issues/19776
実際の動きは以下の通り。
$ cat Gemfile
# frozen_string_literal: true
source "https://rubygems.org"
gem "rss"
$ bundle exec irb
>> require "csv"
csv is not part of the default gems since Ruby 3.4.0. Add it to your Gemfile.
=> true
>> require "csv"
=> false
>> require "net-imap"
net-imap is not part of the default gems since Ruby 3.1.0. Add it to your Gemfile.
/Users/hsbt/.local/share/rbenv/versions/3.3.0-dev/lib/ruby/3.3.0+0/bundler/rubygems_integration.rb:264:in `require': cannot load such file -- net-imap (LoadError)
実装の本体は bundler にあるものの、Gem::BUNDLED_GEMS
という定数がある時だけ警告を出すようになっている。
https://github.com/rubygems/rubygems/pull/6831
今後は、require している場所はどこなのかというのを出しつつ、それが gem だったら Gemfile に追加しろ、に加えてその gem の gemspec に追加しろ、というところまで警告を出すようにしていきたい。ひとまず preview2 向けの梅レベルの実装としてはこんな感じで。
最近の X(Twitter) はホント厳しくて、DM があるからと、たまに見るようにはしてるけどモバイルアプリなどは全部消してしまったので緊急時の連絡にはどうせ使えないし、別のなにかに本格的に移行しないとな、という状況。
で、Threads はリリースされた当初に instagram からアカウントを作成して使っていて、前から X の方で見ていたアートや美術館関連のニュースなどは軒並みクロスポストのアカウントを持っているので片っ端からフォローしては、X の方では unfollow してしまった。instagram で強いアートや民芸、デザインなどは Threads でも積極的に情報を発信しているのでニュース収集用と割り切るとちょうどいい気がする。
そういえば、Oculus のアカウント分離のときに facebook, instagram, oculus でアカウントをすべて統合したら、facebook や instagram のアカウント名が oculus のアカウント名に強制的に変わってしまっておいおい〜となったのを思い出した。その後 instagram は hsbt
と同じ名前へ、facebook は hiroshi.sbt
に変更とすることでだいたい同じ状態にはできたけど、この辺がいきなり変わるのは勘弁してほしいよなあ。
instagram の アカウント名を hsbt
に戻せた後で Threads にサインアップしたおかげで Threads でも hsbt
を確保できたのは良かった。最近は bluesky, mastodon とあちこちに出没しているけど、現状の使い分けは以下のようになった。
見るものが増えるのはあれではあるけど、これはこれでコンテキストの切り分けができていいかもしれない。