チ。ー地球の運動についてー 読了

ちょっと安くなってる時に3冊だけ購入していたのを8巻まで一気見した。
冒頭は拷問から入るので、苦手な人はやめておいた方が良いかもしれないが、個人的には面白かった。

そもそもキリスト教による迫害なんてなかったという説もあるし、その辺はろくに調べてないので分からんけど 今ほど科学技術のない時代に、地動説というほぼ検証不可能な宇宙の真理に思いを馳せた人がいたことや、 その思想を紡いだ歴史は間違いなくあったのだ。
それだけでロマンだし、1つ1つの物語が繋がるのも非常に良かった。

RUBYOPT=-W:deprecated 環境変数を設定しておこう

古いruby2.7系のアプリを3.1.2に更新する作業をしていました。

rubyのでdeprecated warningについて

ruby2.7.1 でキーワード引数関係のdeprected warningが沢山出るようになったののを受けて ruby2.7.2 では、deprecated warningをデフォルト非表示にする対応が入っていました。

この辺かな。 Feature #16345: Don't emit deprecation warnings by default. - Ruby master - Ruby Issue Tracking System https://bugs.ruby-lang.org/issues/16345

とりあえず有効化しておこう

多くのライブラリは、ruby3への更新が行われ、現在は大量にwarningが出ることは無くなったので、有効化しておくのが良いでしょう。 当時も、ruby2.7.4に無事更新が終えたら、有効化していました。

RUBYOPT=-W:deprecated

ruby2.7がEOLになったら、デフォルト有効となる挙動に戻しても良いかもですね。

esbuildでお手軽にbookmarkletを作る

bookmarkletをnpm scriptで簡単に作成できないか検討してみました。

前提

即時関数化

メインの話とはずれますが、
bookmarkletはglobal汚染してしまうので、即時関数化が必要です。
これはJS側に書いておくことにします。
(※即時関数もbookmarklet生成時に追加することは可能ですが、今回やってませんよという話。)

ご参考) IIFE (即時実行関数式) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN

minify

esbuildはtsでの利用も可能で軽量なのと、minifyオプションが付いていて簡単に1liner化できます。
今回は、これを利用することにしました。

npm script

shellを書いてもよかったのですが、JSで完結したく、npm scriptでできないか検討しました。 当初 echo -n javascript: & esbuild ... で実施しようとしましたが、 npmでは複数コマンドを実行することができず、少しはまっていました。

最終的に

shell側でnestすることで対応しました。

  "scripts": {
    "bookmarkletize": "echo javascript:$(esbuild --bundle *.js --minify)"
  }