名古屋出身ソフトウェアエンジニアのブログ

カテゴリ: Tips

2 / 3 ページ

存在そのものがおそがいエクスプローラーの「元に戻す」機能を無効化する

あの忌まわしいエクスプローラーの「元に戻す」機能を、レジストリを変更するだけで無効化できると知ったのでメモします。 エクスプローラーの「元に戻す」は、コンテキストメニュー上で誤爆しやすい位置にあり、さらに確認ダイアログなしにサイレントに動作するため(こちらは Ctrl + Z 誤爆時に特に致命的)ステルス性能も高く、日頃のファイル整理の努力をわやにするポテンシャルを秘めています。 …

2024 年でも使える Python 2 コードフォーマッター

Civilization IV の Mod 開発のため、Python 2 のコードを扱える自動フォーマッターを探していました。 結論を言うと Black を使うと良いです。 これ以外だと、まともなものは見つかりませんでした。 ただし、Black は初安定版リリースと同時に Python 2 を陳腐化させたので、ちょっと前のプレリリース版を使うほかないです。 …

Grad-CAM を画像分類二項ロジスティック回帰に適用する変形

Grad-CAM を画像分類二項ロジスティック回帰に適用する変形
仕事上必要になり、OpenAI CLIP によるエンコーディングを使って画像分類をするロジスティック回帰モデルを作成していました。 反応位置を見るために、Grad-CAM を適用できそうだなと考えていたのですが、Grad-CAM は One-Hot エンコーディングによる出力を想定しているように見えるので、スカラー値で出力をする二項のロジスティック回帰だと、どう計算すれば良いか自明ではありませんでした(少なくとも私には)。 …

xargs コマンドを使用した複数プロセスによる並列処理

大量のファイルを HTTP でダウンロードするときや、複数のタスクを並列に実行したいとき、プログラム自体を並列に書き直すのは手間がかかります。そこで、便利なのがシェルの xargs コマンドです。 GNU 版 xargs を使えば並列処理をお手軽に実現できます。 …

JavaScript: コールバック関数を Promise に変換する

WEB フロントエンドの JavaScript 開発では、非同期の操作を行う必要が多々あります。コールバック関数はそれらシナリオで頻繁に使われますが、複雑になりがちで、複数のコールバック関数が絡まる問題、通称「コールバック地獄」と呼ばれる状況を生成します。 JavaScript は ES6 で Promise を導入し、ES7 では async/await 構文を提供しました。これらの新機能により、非同期コードをより一貫して読みやすい形式で表現することが可能です。この記事ではコールバック関数を Promise に変える方法を示します。 …

pip-licenses で Python プロジェクトの OSS ライセンスをまとめて確認

OSS を活用したクラウドサービス開発では、使用する OSS のライセンス管理が重要です。中でも、クラウド提供を頒布行為とみなす AGPL ライセンスの OSS が混入すると法律的な問題に発展する可能性があるため、これを確実に避ける必要があります。 今回は Python 開発において、ライセンス管理を助けてくれるツール pip-licenses について具体的な使用方法を紹介します。 …

systemd を使用してログディレクトリ (/var/log/**) を自動生成する方法

systemd のサービス設定には RuntimeDirectory という、/run 以下にプログラム実行用のディレクトリを自動的に作成してくれる素晴らしい項目があります。 これの /var/log 版はないものかと思っていたところ、LogsDirectory というドンピシャなものが存在しました。私と同じことを思っていた方もいるかもしれませんし、インターネット上であまり情報が転がってなかったので、今回はこれを紹介します。 …