2023年4月2日日曜日

レゴのGPL違反の件

 レゴがオープンソースのライブラリをコピペしてGPL違反をしていたことが判明

正確にはレゴじゃなくてレゴの子会社だということはさておき、ざっと読んだ感想としては「よくあるGPLの勘違いかなぁ?」です。

当該ライブラリはGPL(GNU General Public License)の元で公開されているものであるため、ソースコードが非公開の製品に使用することはライセンス違反であると指摘されています。

GPLは「製品を手に入れた人からソースコードを見せろと言われても拒否できない」というものであって、製品自体にソースコードをつける必要はありません。つまり「ライブラリをコピペして作った製品にソースコードをつけずに販売した」だけではGPL違反とは言えません。

GPL違反と断言するには、たとえば

  • 製品を購入した人からのソースコードの公開要請を拒否した
  • 製品自体がGPL以外のライセンスで提供されている(インストール時に表示されるライセンスがGPLではない等)
  • GPL非互換のソースコード(ライブラリなど)と一緒にビルドされている

などが必要ですが、記事を見る限りではそういった記述はありません。でもまあどれかに当てはまってそうですけど。特に2番目。

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ファイルにまとめてからバイナリ化という使い方を想定しているんでしょうかね。

2023年2月26日日曜日

ハイテンションなChatGPT

 史上最速で1億ユーザーを獲得したChatGPTですが、それも納得の精度。個人的にももちろん楽しく使わせてもらっています。

なんかテンションが上がってきたので、ChatGPTとハイテンションで会話してみました。といってもハイテンションなのはChatGPTだけです。

2023年2月19日日曜日

いまさら聞けないAsync Hooks

 Node.js v8あたりで追加されたAsync Hooksについて。タイトル通りいまさらなんですが、簡単な説明をします。

あまり詳しい説明はしません。