2021年12月22日
朝散歩。
最近皆さん Advent Caldendar 書いとるなーと、K氏の日記で日本最初期のアドベントカレンダーの一つ、JPerl Advent Calendar見てそういえばあったなーとアドベントカレンダーの中身を見ていると自分も書いていた…。まったくもって書いた記憶がないのだけど、内容的に自分が書いたものなのだろうなぁ。当時も文章が下手だが、今も対して変わっていない。というか進化の無さがヤバい。
引き続き日記画像のGCS移行の趣味コード書き。GCSの特定バケットに画像を置くと、webp にリサイズしつつ変換して、各種適当なサイズの画像を作る、みたいな Cloud Functions を作る。5000枚ほどバケットに配置すると15分ぐらいで処理が終わってる。なかなか便利。cwebp で変換してる(metadataのxmpも含めたかったのでcwebp。imagemagickだとできないっぽい?)のだけど、Cloud Functions には cwebp コマンドは入っておらず、Cloud Run で動かすのも面倒だったので cwebp のバイナリも含める。Cloud Functions はデプロイ時に、カレントディレクトリ以下すべてを pack して deploy するという豪快仕様なので、linux-x86_64 で動けば問題なし。
そのうえで GCS をファイルシステムとしてマウントして、画像を置くと勝手にいい感じにやってくれて、最終的元ファイルを削除してくれる機能を作ったのだけど便利じゃん、自画自賛。Lightroom CC で現像するだけでアップロードが終わるし、元画像は勝手に削除される。
そして昔作った画像リストを http の API として返す Firebase Functions もこちらに差し替えようと思ったけど、Firebase Functions の操作方法をすっかり忘れていて、1からCloud Functionsで書く。といっても関数一つ作ってCORSつけて叩けるようにするだけなのですぐ終わったのだけど。こういうのは使い慣れている環境だとあっという間だなー。
最低限の物はできたので、早速日記画像を差し替える。
Elasticsearch でもベクトル検索できる機能が2019年頃に入っていて便利そう、しらなんだ。ESはML系機能のここ数年は充実しているのね。
embedding というと自然言語処理の分散表現、と思っていたが、画像の分散表現でも使えるし、NNの構造を考えると応用範囲が広いなー、と俄然興味が出てきた。
冬至なので夜は柚子風呂。