寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

Googleのコンテナレジストリ(GCR)が3/18にシャットダウンされるので使ってるか調べる

Google CloudのコンテナレジストリはArtifact Registryという新しいやつに移行する必要があり、いよいよ3月18日にシャットダウンされるので現状使ってるものがあるか調べたのでメモ。

ちなみに3月18日以降何が起こるのか

ドキュメントに書かれていますが、シャットダウンには3つの段階があり、

  1. 2025/3/18 以降gcrへの書き込みができなくなる
  2. 2025/4/22 以降gcrからの読み取りができなくなる
  3. 2025/5/22 以降、gcr.ioでArtifact Registryの設定が済んでいる場合にはgcr.ioにプッシュするとArtifact Registryにイメージが保存され、Artifact Registryがgcr.ioで提供されます。Artifact Registryにコピーされていないイメージは利用できません。

調べかた

Organizationを取得する

事前にgcloudコマンドのインストールと利用しているアカウントへのログイン(gcloud auth login)が済んでいる前提です。

gclolud organizations list

コマンドを実行し、DISPLAY_NAME, ID, DIRECTORY_CUSTOMER_ID が表示されますが、IDの数字の値を利用します。

使用状況を確認する

プロジェクト単体で確認する場合には以下のコマンドを利用します

gloud container images list-gcr-usage --project={PROJECT}

{} の中の値は適宜自分の環境で置き換えてください

一括で確認したい場合には以下のコマンドを実行します

gcloud container images list-gcr-usage --organization={ORGANIZATION_ID} --filter="usage=ACTIVE"
gcloud container images list-gcr-usage --organization={ORGANIZATION_ID} --filter="usage!=REDIRECTED"

移行に関して

以降に関してはドキュメントを参考にしてください。(力尽きた)

https://cloud.google.com/artifact-registry/docs/transition/prepare-gcr-shutdown#identify-usage-choose-transition

ではでは。

参考資料

https://cloud.google.com/artifact-registry/docs/transition/prepare-gcr-shutdown

https://cloud.google.com/artifact-registry/docs/transition/check-gcr-usage

TypeScriptの `hoge || ""` と `hoge ?? ""` は一緒なの?

ボーっとコード書いていて、たまたまnull/undefinedをチェックしたいと思ってコードを書いていたらどちらでも書けるなと思ったのでちょっと調べてみた。

|| 論理和演算子の場合

hoge || "" と書いた場合には論理和演算子なので、左側にあるオペランド(この場合には hoge )が 真 と評価される場合にはその値がそのまま使われ、 偽 となる場合には右側のオペランド(この場合には "" )が返る。

TypeScript駆け出しの人に分かりづらいのは、いろいろ 真 と 偽 として評価されるものがあるということ。 具体的には

  • 0
  • "" (空文字)
  • null
  • undefined
  • NaN
  • false

は 偽 として評価され、それ以外のものは 真 と評価されます。

なんとなく値として成立しないものは 偽 となる、みたいなイメージでしょうか。

?? nullish合体演算子の場合

nullish合体演算子。そもそも名前が ?? って気持ちになります。

hoge ?? "" と書いた場合にはnullish合体演算子というもので、左側のオペランド(この場合には hoge )が null もしくは undefined の場合のみ右側のオペランド(この場合には "" )が返ります。

自分が書いていたコードの場合にはnull/undefinedのみ対処したかったのでこちらが最適そうです。

注意っぽい話

null/undefined などを考慮して書いた場合には見かけ上どちらも似たような振る舞いになりますが、論理和演算子の場合には "" (空文字) も含まれるので注意が必要そうです。
例で書いているものは右側のオペランドが "" なので結局振る舞いとしては同じに見えますが、後任者がうっかりコード修正をした際に期待しない挙動になることがありそうです。

勉強になりました。
ではでは。

onInputがInputEventではなく、Event型だったのでvalueを取ろうとするとエディタに怒られてハマった話

最近 TypeScript をわからないながらよちよち書いてますが、タイトルの通りで、 onInput イベントで処理を書きたいと思ったら、 event.target.value を触ろうとするとVSCodeに怒られて困っていたので調べた。

結論

結論としては以下に書かれているように、 onInput は InputEvent ではなく、 Event 型で返ってくるため、 value が型的に見えない(取れないわけじゃない)という理由っぽい

why the onInput is type 'Event' not 'InputEvent', can get e.target.value · Issue #234 · vuejs/babel-plugin-jsx · GitHub

対応方法

実際には event.target.value に値は入っているので、

(e.target as HTMLInputElement).value

などのように型を変換して触ってあげればVSCode様の逆鱗から逃れられるようだ。

TypeScriptはかっちりしているようでそうでもないみたいな雰囲気がなかなか馴染めなくて苦戦中。 またなにか覚えたら書きます。

IntelliJでコードフォーマットのショートカット久々で忘れたのでメモする

コマンドは

Option + Command + L

です!!

忘れないで!!自分!!

Whimsicalでオブジェクトをつなぐやつが出てこないので治した

Whimsicalでいろいろ図を書いている今日このごろですが、以前フローチャートを書いていたときに出てきていた「図を便利に配置したり、線で接続したりするツール(?)」が出てこなくなった事に気づいた。

実際にフローチャート的な図を書く際には、オブジェクトを複数配置したり線で接続したりするのがその機能がないと困るので調べた。

その機能なんて名前?

こちら のサイトに以下の図があり、「クリック!」って書かれているやつが出てこない。

この段階では機能名がわからずに検索がしづらかったので、新たにWhimsicalで新しいフローチャートのテンプレートを作成してみたところ「Quick Add」って名前っぽいことがわかった。

調べてみる

作業していた画面では、上に貼った画像の「quick add」のトグルするメニューすら出てきていなかったようで、結局有効化する方法がわからず、検索してみて出てきたのがキーボードショートカット。

こちら。
help.whimsical.com

つまり「Q」ボタンを押すと有効化できそう。

怪我の功名ではあるけど、「Option + 矢印」でオブジェクトをその方向につなぎながらコピーができるっぽくて、これはめちゃくちゃ捗りそう。

ではでは。

参考サイト

無料で簡単にワイヤーフレームやフローチャートを作成できるWebサービス「Whimsical」を使ってみた! - paiza times

Keyboard shortcuts - Whimsical Help Center

`Library not loaded: /opt/homebrew/opt/gettext/lib/libintl.8.dylib` と言われてgcloudコマンドが使えなくなったので直す

タイトルのとおりですが、久しくgcloudコマンドを使っていなかった & brew update brew upgrade をした、のいずれかの理由で(多分後者)、gcloudコマンドを実行すると以下のようなメッセージが出て困ってしまった。。

% gcloud
dyld[98537]: Library not loaded: /opt/homebrew/opt/gettext/lib/libintl.8.dylib
  Referenced from: <844055F6-40BF-32E1-BCE4-F6EA167E3129> /Users/~~~/.anyenv/envs/pyenv/versions/3.10.5/bin/python3.10
  Reason: tried: '/opt/homebrew/opt/gettext/lib/libintl.8.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/gettext/lib/libintl.8.dylib' (no such file), '/opt/homebrew/opt/gettext/lib/libintl.8.dylib' (no such file), '/usr/local/lib/libintl.8.dylib' (no such file), '/usr/lib/libintl.8.dylib' (no such file, not in dyld cache)
zsh: abort      gcloud

python と打っても同様に以下のようなメッセージ

dyld[57741]: Library not loaded: /opt/homebrew/opt/gettext/lib/libintl.8.dylib
  Referenced from: <844055F6-40BF-32E1-BCE4-F6EA167E3129> /Users/~~~/.anyenv/envs/pyenv/versions/3.10.5/bin/python3.10
  Reason: tried: '/opt/homebrew/opt/gettext/lib/libintl.8.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/gettext/lib/libintl.8.dylib' (no such file), '/opt/homebrew/opt/gettext/lib/libintl.8.dylib' (no such file), '/usr/local/lib/libintl.8.dylib' (no such file), '/usr/lib/libintl.8.dylib' (no such file, not in dyld cache)

まぁなんか壊れましたねーと思いながらサクッとインターネットを検索してみると、
多分 gettext が入ってないとだめっぽい。もしくは壊れてる。

そういうわけで、brew を利用してインストールする。

 % brew install gettext

自分の場合には実行しなかったけど、すでに入っている人はuninstallしてから実行すると良さそう

% brew uninstall --force gettext

これで解決した。

すっきり。

眼底検査のすゝめ

はじめに

皆さん、眼底検査って知ってますか?
目の奥にある網膜や視神経の状態を検査するものなのですが、眼底の以上は自覚症状がないものもあるようなので、最近では40歳を過ぎたら定期的に眼底検査しましょうね、という感じの広告も出ているようです。

自分の場合には、飛蚊症なども若干あったりしたので以前から数年おきに眼底検査をしていました。

眼底検査でわかる病気

緑内障: 視神経が障害され、視野が狭くなる病気
糖尿病網膜症: 糖尿病によって網膜の血管が障害される病気
加齢黄斑変性: 網膜の中心部にある黄斑が障害される病気
黄斑前膜: 網膜の表面に膜が張る病気
網膜剥離: 網膜が剥がれる病気

などがあるようです、医者じゃないのでわかりませんが、サラッと調べた感じこのようなものがありそうです。

知人が飛蚊症だと思って放置していたら網膜剥離だった、みたいな感じで視野が狭くなってしまったという話を聞いてから目のことは怖くて気にするようになりました。

眼底検査を受けるべき人

40歳以上の方 糖尿病や高血圧などの持病がある方 目の症状がある方

ということのようです、このあたり個人的には40歳ぐらいからは自覚症状がなくても眼底検査はしておくと良さそうです。

注意点としては、自分のやり方では瞳孔を薬で開いて、お医者さんがレンズでのぞくという方法のため、検査後も瞳孔が開きっぱなしになって帰り道(その後の仕事)が大変、というのがあります。
もしかすると仕事終わりに診察を受けると暗い道は逆に見やすくて便利かもしれません(冗談)

検査の流れ

  1. 検査前に瞳孔を開く薬を点眼します。自分の場合は数分おきに2回ぐらいやりました。
  2. 検査前に目に麻酔の目薬をします。
  3. 検査。お医者さんがレンズを目に直接当てて中を見ます。病院によっては映像を撮影したりしていると思います。

費用

保険利用で3000円しないぐらいでした。

まとめと注意点

眼底検査と大腸内視鏡検査は40を過ぎたら定期的に行った方が良いと誰かに聞いていたのもあり、実施するとある程度安心してその後の生活も送れるのでおすすめです。 いろいろな検査ができるのに、点眼するぐらいしかしないので、注射/採血をしたり、カメラを飲んだりするような他の診断よりかなり容易に行えると思います。

困ったことがあるとすれば、先にも書きましたが受診後は瞳孔が開きっぱなしになるので車や自転車の運転は難しいと思います。また、検査後数時間はディスプレイを見る仕事なども大変だと思います。 そのあたり調整できるのであれば簡単に受けれるのでおすすめです。

ちょっとおすすめコーナー

疲れ目には目を温めてあげると良い、ということなのですが、
めぐりズムとかも非常に良いのですが、毎日使うとなると少しコスト的にしんどい。そんなときにはこれがおすすめ。

Amazon | あずきのチカラ 目もと用 1個 (x 1) | あずきのチカラ | アイピロー・アイマスク

自分は寝る前に、レンジでこれを1分程度チンして寝室に持っていって目の上に乗せてそのまま寝ます。
そうすると次の日スッキリ。
興味あればどうぞ。

参考資料

眼底検査 | 公益社団法人 日本眼科医会: https://www.gankaikai.or.jp/info/detail/kensindaiji.html
眼底検査とは? | 参天製薬: https://www.santen.com/jp/healthcare/eye/products/brand/beauteye