2024年9月29日日曜日

Reactアプリケーションが驚きの白さになる問題(net::ERR_CONTENT_LENGTH_MISMATCH)

 Reactを使っていて、なぜか画面が真っ白になることがありました。驚きの白さです。

ブラウザーの開発者ツールでネットワークをモニターしたところ、CSSやJSなどの静的ファイルの読み込みに失敗していることがわかりました。

JSの読み込みに失敗したら驚きの白さになるというのはまあごもっともなんですが、問題は読み込みに失敗している原因がわからないこと。なにしろ、ローカルや開発環境では全く問題ないのに本番環境だけで問題が発生しています。そして読み込みに失敗している原因がnet::ERR_CONTENT_LENGTH_MISMATCHです。なんじゃこら。

色々原因を探っていたら、最終的に見つかったのがコンテンツ配信サーバーのディスクフル

配信サーバーのストレージが足りない→コンテンツのキャッシュができない→誤ったデータを返す(?)みたいな流れで起きるピタゴラスイッチのようです。

ディスクフルくらい監視して気づけや、というツッコミは勘弁してください。今回は色々事情があったんです。。。

2024年9月22日日曜日

Docker使っててストレージを圧迫してるやつはこれ実行しろ

 まじで実行しろ。びっくりするくらい空き容量できるから。

docker system prune


2024年9月15日日曜日

zedの公式Gentooパッケージが出た

 以前紹介したエディターのZedについて。

なんとかGentooでネイティブビルドするパッケージを作ろうとCargoのebuildパッケージ作成に挑戦していました。どうもうまくいかずモタモタしている間になんとGentooの公式からパッケージが登場しました!

https://packages.gentoo.org/packages/app-editors/zed

amdキーワードがマスクされているので、ACCEPT_KEYWORDSを設定しておいてください。

あと環境によってはファイルオープンダイアログが表示されないことがあります。そのときはxdg-desktop-portalをインストールして再ログインしてください。

使ってみましたが、やっぱり爆速ですね。後発であり、おそらくまだベータ版扱いだと思うので機能面ではさすがにVSCodeには劣りますが、簡単なコード編集には充分です。

応援の意味も込めてガンガン使ってます。みなさんもどんどん使ってください。MacとLinuxに対応しています。もうすぐWindows版も出るそうです。

2024年9月8日日曜日

サーバーにDockerをインストールするときの約束

 いいかい学生さん、Dockerをな、DockerをLinuxサーバーにインストールするときはな、一般ユーザーをdockerグループに追加するんだよ。

それが、root権限を使い過ぎもしない、ちょうどいいくらいってとこなんだ。

usermod -aG docker user

2024年9月1日日曜日

DockerfileでARGを1行に複数指定できた

 すでに知っている人にとっては何を今更と思うかもしれませんが、つい最近知りました。

公式のリファレンスの書式では1つしか指定できないように見えます。

ARG <name>[=<default value>]

使用例も1行に1つずつ指定する方法しか書いてありません。

FROM busybox
ARG user1
ARG buildno
# ...

でも試してみた結果、以下のように1行に複数のARGを指定できました。

ARG foo bar

ちなみにENVちゃんと1行に複数指定できることが明示されています

これで少しでもDockerイメージのレイヤーを減らせれば。。。

2024年8月25日日曜日

返信率が低いスカウトメール

 時々、知り合いの会社(複数)の人事の方から「エンジニア(IT開発者)にスカウトメールを送っているけど返信率が低い」という相談を受けることがあります。

話を聞いていると大体以下のどれかに当てはまっていることが多いのですが、他に思い当たる方はいないでしょうか。

2024年8月18日日曜日

GoのDTLSライブラリーの不具合

 GoでPion DTLSというライブラリーがあります。これはUDPの暗号化通信をするときに使われるライブラリーなので、特殊なプロトコルの実装以外ではそもそもそういうソフトウェアを開発する機会自体があまりないかもしれません。

このライブラリーにちょっとした不具合がありまして、コネクション切断後の再ハンドシェイクがDTLSの仕様どおりの挙動をしていないようです。

具体的には明示的なコネクション切断を行わずに同じ接続元(アドレス:ポート)からClientHello受け取ったとき、DLTSの仕様ではサーバーは新しいハンドシェイクを開始するべきなのですがこのライブラリーではClientHelloが無視されます。

1年近く前にその問題を報告したのですが、つい最近この問題が解消されたようです。

かなりニッチな情報ですが、個人的に結構嬉しかったのでここで報告。。。