2023年3月26日日曜日

Install SSH Key v2.5.1を公開しました

 つい先日、github.comのRSA公開鍵を変更したというニュースが飛び込んできました。記事によると、秘密鍵を誤って公開リポジトリーに置いてしまったため、なりすましや中間者攻撃を防ぐために新しい鍵に置き換えたとのこと。ひえっ。

わざとじゃなくて操作ミスだとは思いますけど、何の操作をミスったんだろう。公開鍵と間違えたのかな。とりあえず、外部から侵入されたわけではないということで安心しました。世界中の開発インフラであるGitHubでもこういう初歩的なやらかしがあるんですね。

というわけで、みんな大好きInstall SSH Keyでもgithub.comの公開鍵を使っているので新しいものに置き換えました。変更部分はそれだけです。

2023年3月19日日曜日

AsyncLocalStorage + multerの落とし穴

 先日Async HooksとかAsyncLocalStorageの話をしましたが、ちょっとハマったところがあるのでメモ。

現象としては、Expressのファイルアップロードミドルウェアであるmulterを経由したときにAsyncLocalStorageが使えなくなる(getStore()がundefinedを返す)というものです。

この原因にたどり着くまでに切り分け等いろいろ苦労したんですが、まあそれは置いといて。

バグなのか仕様なのかよくわかっていませんが、どうもmulterを経由すると非同期コンテキスト(コールバックチェーンの親子関係)が切れてしまうようです。

解決方法は、ここにあるように非同期コンテキスト化するラッパー関数を作って、multerをラップしてやるとうまくいきました。

2023年3月12日日曜日

ChatGPTに回文を作ってもらった

 先日ChatGPTネタで記事を書きました。そのとき「ブログのネタに困ったらChatGPTに頼るかな」と書いたのですが、早速ネタに困ったので頼ってみました。

2023年3月5日日曜日

Node.jsのSingle Executable Application

 Node.js v19.7から、Node.jsファイルを単一の実行バイナリにできるようになったそうです。ElectronみたいにNode.js本体も同梱される感じなんでしょうか。

ただし現状では制約があり、OSはWindows/macOS/Linux、CPUはAMD64、そして単一のファイルのみとのこと。

単一のファイルのみということは、当面はnccとかのバンドラーで1ファイルにまとめてからバイナリ化という使い方を想定しているんでしょうかね。