VC++ で NuGet パッケージ更新ができない、winrt/base.h が見つからない場合の対処

NuGet でパッケージをインストールしてビルドすると、 所定のディレクトリにヘッダファイルが生成されるが、 そのヘッダファイルが生成されない、あるいは更新されなくなることがある。 今回のネタは、この状態を解消する方法について。 エラーの解消 エラーの症状は幾つかあるが、だいたいは次のいずれか。 winrt/base.h が見つからない。 (base.h に限らず winrt/ 以下のファイルが見つからない) NuGet でインストールしたパッケージが見つからない NuGet でインストールした

自転車か原付か?

2024/11/1 に改正道路交通法が施行された。 ネットでは、自転車のながら運転が禁止されたことが大々的に宣伝されている。 また、モペッドのペダルによる走行も原付扱いになることが明記されたことが 一部で話題になっている。 今回は後者について触れる。 技術系のネタではないが、自転車乗りとして気になる内容であり、 調べた内容を残しておきたかったので、ここに載せておく。 モペッド モペッドは、原動機を持つ二輪車で、 かつ、ペダルも付いて

Windows のリモートデスクトップ接続先の日本語入力で US 配列を使う

自分は、キーボード入力に US 配列を使っている。 大学以前は日本語配列を利用していたが、 大学のキーボードが US 配列だったため、 それ以降は自宅でも職場でも US 配列を利用している。 まれに人の環境の日本語配列キーボードを打つこともあるが、 そのときは「くっ!!」と思いながら打っている。 まぁ、そういう状況では記号などはあまり使わないし配列が違っても大抵なんとかなる。 先日、いつも利用しているリモートデスクトップで、 日本

rye のインストール その 2

rye のバージョンが更新されて、インストール手順がだいぶ変ったので、 ここで再度まとめる。 なお、ここで扱う rye のバージョンは以下の通り。 $ rye 0.34.0 インストール 既に rye をインストール済みの場合は、 次のコマンドで一旦 rye をアンインストールしてから実行する。 $ rye self uninstall 次の URL から、環境にあったバイナリをダウンロードする。 <https://github.com/astral-sh/rye/releases> ダウンロードしたバイナリを実行すると、次のインストールステップが始まる。 パッケージインストール方式 uv pip

gymnasium と Stable-Baselines3 を使って機械学習で自前の環境を作成する

趣味で検討している DL モデルの loss 値が全く収束しないので、 DL 処理一発で問題を解くのを諦めて、 DL 処理と強化学習を組合せて対応するように方針を変えた。 そんな訳で、強化学習のフレームワークをいくつか調べ、 gymnasium を使うことにしてみた。 gymnasium は、 元々は OpenAI が開発していた gym が開発終了したことを機に gym から分岐して開発されているフレームワーク。 強化学習の要素 強化学習は、ある環境下で出来るだけ良い行動を取れるように学習する方法。

ブラウザの Ctrl-N ショートカットを変更する

emacs 使いとしては、ブラウザ内の textarea も emacs のキーバインドで操作をしたい。 しかし、 emacs の超基本的なキーバインドの一つ Ctrl-n は ブラウザのデフォル機能の「あたらしいウィンドウを開く」に バインドされていて、クライアントサイドの JavaScript では どうしても上書きできないっぽい。 そこで今回は、ブラウザの Ctrl-n の動作を変更する方法について話をしていく。 結論を最初に書いてしまうと、 限定的な変更はできたが、汎用的ではないので使い勝手が悪くオスス

Android 版 Firefox のアプリ切り替え時の処理

Android 版 Firefox は、 バックグラウンドに切り替えると android の省電力機能によって、 Web ページの状態が保持されず、 アプリをフォアクラウンドに切り替えた際に Web ページがリロードされることがあります。 静的な Web ページであれば、リロードするだけで画面を再構成されます。 セッション管理が必要な Web ページであれば、 Cookie を利用してセッションを復元できます。 Web Extension の場合、通常の Web ページとは異なる制御が必要になります。 省電力機能によって Web Extension のペー

Firefox の File System API (オリジンプライベートファイルシステム)

ブラウザ上で動作するウェブアプリ内のデータは、 基本的に RAM 上で管理されるだけで不揮発には保持されない。 不揮発にデータを保持するには、次の 3 つの方法がある。 Cookie データの本体をサーバ側で記録しておき、 サーバ側で管理しているデータへのアクセスキーをブラウザ側で不揮発に管理する方法。 Web Storage API Key-value 方式の簡易的な DB で、 比較的に小さいサイズのデータをブラウザ側で不揮発に管理する方法。 File System API ブラウザ側のファイルシステムを

ブラウザ(Firefox)の拡張機能で「出来ること」と「出来ないこと」

ブラウザ(Firefox)の拡張機能は、 通常の Web のクライアントサイドプログラム(JavaScript + wasm) では出来ないことが 実現可能になっている。 例えば、拡張機能は表示中の全てのタブ内の情報にアクセスできる。 とはいえ、何でも出来てしまうと、それはそれでセキュリティ上問題になる。 そのため、セキュリティ問題となるようなことはそもそも実現できない。 例えば、ブラウザを実行している環境内のネットワークへの TCP,UDP で

Firefox の拡張機能で additional review が必要な manifest.json の項目

Firefox の拡張機能をインストール可能な状態にするには署名が必要で、 この署名には addons.mozilla.org のレビューが必要になる。 レビューとはいえ基本的には機械的に処理され、 署名処理自体は数分程度で終了する。 しかし中には例外があり、機械的なレビューではなく、 追加レビュー(additional review)が必要なケースが存在する。 では、どんなときに additional review が必要になるか? それは、 manifest.json の項目に依存するらしい。 manifest.json の項目だけでなく、 JS コード