<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>技術ブログだがね</title><link>https://blog.curegit.jp/</link><description>Recent content on 技術ブログだがね</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Thu, 05 Mar 2026 12:12:22 +0900</lastBuildDate><atom:link href="https://blog.curegit.jp/index.xml" rel="self" type="application/rss+xml"/><item><title>GitHub の PR で没案をクラウドに残す</title><link>https://blog.curegit.jp/posts/tools/github-scrapped/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/github-scrapped/</guid><description/></item><item><title>FLAC 音源ライブラリを Opus にミラーリングする CLI ツール Flacopyus を公開しました</title><link>https://blog.curegit.jp/posts/programming/python/flacopyus/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/flacopyus/</guid><description>&lt;p&gt;ロスレスの FLAC 音楽ライブラリをポータブルな Opus 版に変換する CLI ツール Flacopyus を PyPI に公開しました。
rsync ライクな差分同期で、大量のファイルも効率的に変換できます。&lt;/p&gt;</description></item><item><title>PHPer 向け Next.js 対照表的あんちょこ</title><link>https://blog.curegit.jp/posts/programming/js/nextjs-for-phper/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/js/nextjs-for-phper/</guid><description/></item><item><title>Python におけるリトライ抽象を再考する</title><link>https://blog.curegit.jp/posts/programming/python/retries-revisited/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/retries-revisited/</guid><description>&lt;p&gt;&lt;a href="https://blog.curegit.jp/posts/programming/python/kwops-decorator/"&gt;前回記事&lt;/a&gt;では、&lt;strong&gt;オプション引数をとるデコレータを楽に定義できるデコレータ&lt;/strong&gt;である &lt;code&gt;kwops_decorator&lt;/code&gt; を作成しました。&lt;/p&gt;
&lt;p&gt;今回は実演がてら、Python のリトライ処理記述ライブラリ &lt;a href="https://tenacity.readthedocs.io/"&gt;&lt;strong&gt;Tenacity&lt;/strong&gt;&lt;/a&gt; を題材に、よく使うリトライ表現を抽象化してみます。
Tenacity は基本的に、実行対象の関数にデコレータを付けることで、その関数はリトライされるべきであることを表現するのですが、関数内でリトライ回数をカウントするためには外のスコープに変数や、クラスにインスタンス変数を置いて自分で数える必要があり、カウントのリセットなども考慮すると微妙に面倒です。そこの改善を主目的に、&lt;code&gt;kwops_decorator&lt;/code&gt; を活用し Tenacity のデコレータをラップします。&lt;/p&gt;</description></item><item><title>オプション引数をとるデコレータを楽に定義できるデコレータ</title><link>https://blog.curegit.jp/posts/programming/python/kwops-decorator/</link><pubDate>Mon, 26 Jan 2026 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/kwops-decorator/</guid><description/></item><item><title>Debian 13 に Python 3.14 をソースからインストールする</title><link>https://blog.curegit.jp/posts/programming/python/make-python3.14-debian13/</link><pubDate>Tue, 09 Dec 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/make-python3.14-debian13/</guid><description/></item><item><title>Python の t-strings はコマンドラインの構成に使える</title><link>https://blog.curegit.jp/posts/programming/python/t-strings-cmdline/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/t-strings-cmdline/</guid><description/></item><item><title>ホームディレクトリのアクセス許可がフルコントロールでないと保護ビューで Microsoft Office ファイルが開けない</title><link>https://blog.curegit.jp/posts/os/windows/acl-and-protected-view-issue/</link><pubDate>Sat, 25 Oct 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/windows/acl-and-protected-view-issue/</guid><description/></item><item><title>Windows では読み取り専用属性が付いているファイルは本来消せない</title><link>https://blog.curegit.jp/posts/os/windows/readonly-flag-and-deletion/</link><pubDate>Wed, 22 Oct 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/windows/readonly-flag-and-deletion/</guid><description>&lt;p&gt;Windows を長年使い続けてきて今更知ったことなのですが、Windows ではファイルに読み取り専用 (Read-only) 属性が付いていると削除時に影響を及ぼします。エクスプローラーでは、ファイルに読み取り専用フラグが付いていても確認なしに削除できますが、本来は読み取り専用属性を解除してからでないと消せません&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;</description></item><item><title>Civilization IV: モジュラー XML 読み込み（翻訳）</title><link>https://blog.curegit.jp/posts/hobby/civ4-modular-xml/</link><pubDate>Wed, 15 Oct 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/hobby/civ4-modular-xml/</guid><description/></item><item><title>SCIP/PySCIPOpt で日能研の広告問題を解きなおす（非線形制約をそのまま書く）</title><link>https://blog.curegit.jp/posts/ai/mathopt/scip-entry/</link><pubDate>Wed, 10 Sep 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/mathopt/scip-entry/</guid><description/></item><item><title>PuLP での論理和と論理積の線形化</title><link>https://blog.curegit.jp/posts/ai/mathopt/pulp-and-or-linearization/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/mathopt/pulp-and-or-linearization/</guid><description>&lt;p&gt;&lt;a href="https://blog.curegit.jp/posts/ai/mathopt/pulp-entry/"&gt;前回の記事&lt;/a&gt;では補助変数を利用することで、論理包含のある一見すると非線形な制約を線形制約へ変形し、PuLP で整数制約問題を解くことができました。&lt;/p&gt;
&lt;p&gt;現実の問題を扱う際には、「ある特定の状況が望ましくないので、この条件を満たす場合にのみペナルティを足そう」というモデリングを行いたくなることが容易に想像できます。&lt;/p&gt;
&lt;p&gt;そこで、論理積の線形表現を PuLP で実現する抽象を導出してみました。論理和もついでにやっておきました。&lt;/p&gt;</description></item><item><title>整数計画問題へ入門するために PuLP/CBC で日能研の広告問題を解く</title><link>https://blog.curegit.jp/posts/ai/mathopt/pulp-entry/</link><pubDate>Fri, 15 Aug 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/mathopt/pulp-entry/</guid><description/></item><item><title>ずるい Git GUI クライアント Fork に乗り換えた</title><link>https://blog.curegit.jp/posts/tools/git-gui-fork/</link><pubDate>Thu, 14 Aug 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/git-gui-fork/</guid><description>&lt;p&gt;会社で &lt;a href="https://git-fork.com/"&gt;Fork&lt;/a&gt; という Git GUI クライアントが流行っており、ずっと使ってきた Sourcetree に進歩が見られないので思い切って乗り換えることにしました。&lt;/p&gt;
&lt;p&gt;ここのところの Sourcetree は割とモサモサしていたり、画面構成も v2 のころのほうが個人的に使いやすいと思っていたりで不満がありました。
CLI だけで Git を使っていくこともできますが、樹形図表示や行単位のステージ操作などには GUI が欲しくなります。&lt;/p&gt;
&lt;p&gt;Sourcetree に比べると知名度が全然の Fork ですが、非常に出来の良いソフトウェアでした。&lt;/p&gt;</description></item><item><title>Rclone でファイル名を暗号化するときの長さ</title><link>https://blog.curegit.jp/posts/data/file/rclone-crypt-filename-length/</link><pubDate>Thu, 03 Jul 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/data/file/rclone-crypt-filename-length/</guid><description/></item><item><title>macOS Sequoia で rsync が openrsync に置換され一部スクリプトが機能しなくなった件</title><link>https://blog.curegit.jp/posts/os/mac/openrsync-issue/</link><pubDate>Tue, 03 Jun 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/mac/openrsync-issue/</guid><description/></item><item><title>darktable で自動遠近補正する手順（台形補正）</title><link>https://blog.curegit.jp/posts/tools/image-processing/darktable-auto-perspective/</link><pubDate>Sat, 24 May 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/image-processing/darktable-auto-perspective/</guid><description/></item><item><title>GOG 版 SimCity 4 に旧日本語パッケージ版コンテンツを統合して移行</title><link>https://blog.curegit.jp/posts/hobby/simcity4-migration/</link><pubDate>Tue, 06 May 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/hobby/simcity4-migration/</guid><description>&lt;p&gt;GOG 版などのデジタルリリースされた SimCity 4 Deluxe では、プログラムの難読化が緩いらしく、コミュニティによる DLL ベースの MOD 開発はこれらデジタル版&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;のみを対象するように移行していく風潮です。&lt;/p&gt;
&lt;p&gt;発売から 20 年経過しても MOD コミュニティが活発であることが喜ばしい一方で、これらデジタルリリース版には日本語コンテンツが収録されていないので、英語テキストでのプレイを強制されます&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;幸い日本語版を所持していれば、デジタル版へのコンテンツの統合が簡単に行えるので、日本語版で DLL 時代を迎える方法をここに記します。ここでは、旧版がインストール済みの環境で GOG 版を追加購入して実行しています。
Steam 版&lt;sup id="fnref1:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;でも同じようにできると思いますが、GOG 版は DRM が無いので Steam 版よりもおすすめです。&lt;/p&gt;</description></item><item><title>sed で個人的によく使うコマンドまとめ</title><link>https://blog.curegit.jp/posts/os/linux/sed-snippets/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/linux/sed-snippets/</guid><description/></item><item><title>Windows: コマンドラインで優先度を指定しプロセスを起動する方法</title><link>https://blog.curegit.jp/posts/os/windows/scheduling-priorities/</link><pubDate>Sun, 23 Mar 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/windows/scheduling-priorities/</guid><description/></item><item><title>Hugo で数式を静的（ビルド時）にレンダリング</title><link>https://blog.curegit.jp/posts/programming/js/hugo-prerender-katex/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/js/hugo-prerender-katex/</guid><description>&lt;p&gt;このブログでもそうでしたが、Hugo で数式を表示するには、ブラウザで KaTeX か MathJax を使ってレンダリングする構成が一般的でした。&lt;/p&gt;
&lt;p&gt;Hugo v0.132.0 から、KaTeX 数式をビルド時に静的にレンダリングする関数 &lt;code&gt;transform.ToMath&lt;/code&gt; が追加され、これにより、WASM で動作する KaTeX を使って数式をレンダリングしたものを出力することができ、ブラウザ実行時の JavaScript ライブラリの読み込みが不要になりました。レンダリング結果が最初から入っているので、表示ラグも（ほぼ）発生しません&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;</description></item><item><title>fopen したファイルを unlink しても fread できるという話</title><link>https://blog.curegit.jp/posts/os/linux/fread-after-unlink/</link><pubDate>Thu, 13 Mar 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/linux/fread-after-unlink/</guid><description/></item><item><title>AMD Ryzen 機で謎のハングアップが発生したら C-State Control を切れ</title><link>https://blog.curegit.jp/posts/os/disable-c-state/</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/disable-c-state/</guid><description/></item><item><title>存在そのものがおそがいエクスプローラーの「元に戻す」機能を無効化する</title><link>https://blog.curegit.jp/posts/os/windows/disable-explorer-undo/</link><pubDate>Thu, 27 Feb 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/windows/disable-explorer-undo/</guid><description>&lt;p&gt;あの忌まわしいエクスプローラーの「元に戻す」機能を、レジストリを変更するだけで無効化できると知ったのでメモします。&lt;/p&gt;
&lt;p&gt;エクスプローラーの「元に戻す」は、コンテキストメニュー上で誤爆しやすい位置にあり、さらに確認ダイアログなしにサイレントに動作するため（こちらは &lt;kbd&gt;&lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;Z&lt;/kbd&gt;&lt;/kbd&gt; 誤爆時に特に致命的）ステルス性能も高く、日頃のファイル整理の努力をわやにするポテンシャルを秘めています。&lt;/p&gt;</description></item><item><title>線形回帰モデルの最小二乗解導出</title><link>https://blog.curegit.jp/posts/stats/linear-regression/</link><pubDate>Tue, 25 Feb 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/stats/linear-regression/</guid><description/></item><item><title>日本語 DeepSeek-R1 Qwen 蒸留 32B のローカル実行を試す</title><link>https://blog.curegit.jp/posts/ai/nlp/run-deepseek-r1-qwen/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/nlp/run-deepseek-r1-qwen/</guid><description/></item><item><title>動画編集用に素材を変換する FFmpeg コマンド集</title><link>https://blog.curegit.jp/posts/tools/image-processing/ffmpeg-media-proxy/</link><pubDate>Sat, 18 Jan 2025 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/image-processing/ffmpeg-media-proxy/</guid><description>&lt;p&gt;なぜか、年明けから DaVinci Resolve で動画編集の仕事をしています。&lt;/p&gt;
&lt;p&gt;DaVinci Resolve で編集中のシークが重かったり、素材の形式に起因する問題等が発生したりしたので、FFmpeg で先に素材を使いやすい形式に変換しておくコマンドをまとめてみました。&lt;/p&gt;
&lt;p&gt;この記事での処理内容は、DaVinci Resolve 重視で考えられていますので、ご留意ください。&lt;/p&gt;</description></item><item><title>プリキュア StyleGAN を作った話 〜 其の壱</title><link>https://blog.curegit.jp/posts/ai/cv/precure-stylegan-1/</link><pubDate>Fri, 08 Nov 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/cv/precure-stylegan-1/</guid><description>&lt;p&gt;画像生成の主戦場はすっかり拡散モデルですが、大学時代に作成していた「プリキュア StyleGAN」を紹介します。プロフィールアイコン程度に使える画像の生成を目標としていました。&lt;/p&gt;
&lt;p&gt;最終形態（この記事よりもさらに追加で改善を実施）のリポジトリは以下です。
Chainer で出来ているので、保守作業がやや面倒なことになっていますが、ちゃんと動くはずです。&lt;/p&gt;</description></item><item><title>2024 年でも使える Python 2 コードフォーマッター</title><link>https://blog.curegit.jp/posts/programming/python/format-python2/</link><pubDate>Thu, 24 Oct 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/format-python2/</guid><description>&lt;p&gt;Civilization IV の Mod 開発のため、Python 2 のコードを扱える自動フォーマッターを探していました。&lt;/p&gt;
&lt;p&gt;結論を言うと &lt;a href="https://pypi.org/project/black/"&gt;Black&lt;/a&gt; を使うと良いです。&lt;/p&gt;
&lt;p&gt;これ以外だと、まともなものは見つかりませんでした。&lt;/p&gt;
&lt;p&gt;ただし、Black は初安定版リリースと同時に Python 2 を陳腐化させたので、ちょっと前のプレリリース版を使うほかないです。&lt;/p&gt;</description></item><item><title>QPDF で個人的によく使うコマンドまとめ</title><link>https://blog.curegit.jp/posts/tools/qpdf/</link><pubDate>Tue, 08 Oct 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/qpdf/</guid><description/></item><item><title>デレステのレアアイドルは等確率で出現するか</title><link>https://blog.curegit.jp/posts/stats/idolmaster-chisquare/</link><pubDate>Sat, 21 Sep 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/stats/idolmaster-chisquare/</guid><description/></item><item><title>macOS Sonoma で m4 が使用できなかった件</title><link>https://blog.curegit.jp/posts/os/mac/m4-missing/</link><pubDate>Tue, 17 Sep 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/mac/m4-missing/</guid><description/></item><item><title>Gunicorn が systemd の Unix ドメインソケットをどのように取得しているか</title><link>https://blog.curegit.jp/posts/os/linux/listen-fds/</link><pubDate>Mon, 19 Aug 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/linux/listen-fds/</guid><description/></item><item><title>Grad-CAM を画像分類二項ロジスティック回帰に適用する変形</title><link>https://blog.curegit.jp/posts/ai/cv/logistic-gradcam/</link><pubDate>Sun, 28 Jul 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/cv/logistic-gradcam/</guid><description>&lt;p&gt;仕事上必要になり、OpenAI CLIP によるエンコーディングを使って画像分類をするロジスティック回帰モデルを作成していました。&lt;/p&gt;
&lt;p&gt;反応位置を見るために、Grad-CAM を適用できそうだなと考えていたのですが、Grad-CAM は One-Hot エンコーディングによる出力を想定しているように見えるので、スカラー値で出力をする二項のロジスティック回帰だと、どう計算すれば良いか自明ではありませんでした（少なくとも私には）。&lt;/p&gt;</description></item><item><title>ロジスティック回帰と 2 クラスソフトマックス関数の一致</title><link>https://blog.curegit.jp/posts/stats/logit-softmax/</link><pubDate>Sun, 23 Jun 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/stats/logit-softmax/</guid><description/></item><item><title>CSS @property を使うことで、ネストしたコンテナーでの相対値利用を柔軟に</title><link>https://blog.curegit.jp/posts/programming/css/container-nested-cqw/</link><pubDate>Sun, 16 Jun 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/css/container-nested-cqw/</guid><description/></item><item><title>ICC プロファイルのメディアの白色点について混乱した件</title><link>https://blog.curegit.jp/posts/graphics/icc-wtpt/</link><pubDate>Wed, 12 Jun 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/graphics/icc-wtpt/</guid><description>&lt;p&gt;D65 光源であるはずの sRGB の ICC v4 ディスプレイカラープロファイルを見たときに、メディアの白色点が D50 光源になっていたことが違和感でした。&lt;/p&gt;</description></item><item><title>scikit-learn のロジスティック回帰モデルを自動微分できるよう PyTorch モジュール化</title><link>https://blog.curegit.jp/posts/programming/python/sklearn-2-pytorch/</link><pubDate>Sun, 28 Apr 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/sklearn-2-pytorch/</guid><description>&lt;p&gt;scikit-learn で学習したロジスティック回帰モデルに対して、勾配を利用した操作を行いたかったので、PyTorch へのインポートをやってみました。&lt;/p&gt;</description></item><item><title>Python: 派生クラスをすべて取得できるクラス</title><link>https://blog.curegit.jp/posts/programming/python/inheritance-tracker/</link><pubDate>Thu, 25 Apr 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/inheritance-tracker/</guid><description/></item><item><title>.NET (C#) で複数オブジェクトをストリームに JSON シリアライズ</title><link>https://blog.curegit.jp/posts/programming/cs/json-serializer-multi/</link><pubDate>Sun, 21 Apr 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/cs/json-serializer-multi/</guid><description>&lt;p&gt;&lt;code&gt;BinaryFormatter&lt;/code&gt; が将来的に .NET から削除されるようです（つい最近まで知らなかった勢）。
Python の &lt;code&gt;pickle&lt;/code&gt; 同様、低レイヤ API としてあくまでリスクがあっても使えるようにしてあるし、これからもそうであろうと思っていたので驚きました。&lt;/p&gt;</description></item><item><title>Python でジェネリック型の型パラメータを実行時に取れるようにする Mixin 作った</title><link>https://blog.curegit.jp/posts/programming/python/reification/</link><pubDate>Tue, 16 Apr 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/reification/</guid><description>&lt;p&gt;Python でジェネリック型の型パラメータをランタイム時に取得できる抽象を提供するライブラリ &lt;strong&gt;Reification&lt;/strong&gt; を作りました。&lt;a href="https://blog.curegit.jp/posts/programming/python/reified-generics/"&gt;前回記事「Python のジェネリック型から実行時に型パラメータを取得する方法」&lt;/a&gt;の内容を綺麗に実装した感じです。&lt;/p&gt;
&lt;p&gt;このライブラリを使用すると、ジェネリックなクラスにランタイムでその型パラメータを認識させ、それに基づいた動作をさせることができます。具体的なユースケースとしては、コードの動的型検査の強化や、型パラメータを動作上の意味付けとして利用することなどが考えられます。&lt;/p&gt;</description></item><item><title>MacBook 内蔵ディスプレイ表示を回転させるやり方</title><link>https://blog.curegit.jp/posts/os/mac/rotate-display/</link><pubDate>Mon, 12 Feb 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/mac/rotate-display/</guid><description/></item><item><title>ELYZA Japanese LLaMA 2 13B を WEB デプロイ</title><link>https://blog.curegit.jp/posts/ai/nlp/elyza-jp-13b-server/</link><pubDate>Fri, 26 Jan 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/nlp/elyza-jp-13b-server/</guid><description>&lt;p&gt;ELYZA Japanese LLaMA 2 の 13B モデルがリリースされたのでお試しです。&lt;a href="https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-13b-fast-instruct-gguf"&gt;量子化済みモデル&lt;/a&gt;の中から &lt;code&gt;fast-instruct-q5_K_M&lt;/code&gt; を選びました。&lt;/p&gt;
&lt;p&gt;7B を扱った&lt;a href="https://blog.curegit.jp/posts/ai/nlp/llama-cpp-python-server/"&gt;先回記事&lt;/a&gt;とだいたい同じ内容を Ubuntu で行っています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ggerganov/llama.cpp"&gt;Llama.cpp&lt;/a&gt; の Python バインディング (CPU) である &lt;a href="https://github.com/abetlen/llama-cpp-python"&gt;&lt;code&gt;llama-cpp-python&lt;/code&gt;&lt;/a&gt; は OpenAI 互換の API サーバーを内蔵しているので、ここに &lt;a href="https://github.com/mckaywrigley/chatbot-ui"&gt;Chatbot UI&lt;/a&gt; (WEB フロントエンド) を接続することで、ChatGPT サービスのように WEB から ELYZA Japanese LLaMa 2 を使うことができます&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;</description></item><item><title>Python のジェネリック型から実行時に型パラメータを取得する方法</title><link>https://blog.curegit.jp/posts/programming/python/reified-generics/</link><pubDate>Sat, 20 Jan 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/reified-generics/</guid><description>&lt;p&gt;Python の型ヒントには、ジェネリック型も存在します。しかし、現在の Python の実装では、ジェネリック型のインスタンスやクラスには、実行時に型パラメータの情報は一切残っていない（型消去的動作）です。&lt;/p&gt;
&lt;p&gt;本記事では、Python のジェネリック型の型注釈で実行時に型パラメータを取れるようにする方法を紹介します。&lt;/p&gt;</description></item><item><title>ハーフトーン画像変換プログラムを PyPI に公開しました</title><link>https://blog.curegit.jp/posts/programming/python/halftone-converter/</link><pubDate>Wed, 17 Jan 2024 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/halftone-converter/</guid><description>&lt;p&gt;昨年は、自分の最初の PyPI パッケージを公開しました。名前は「halftone-converter」で、AM ハーフトーン画像を作成するための画像変換機能 (CLI) を提供しています。&lt;/p&gt;</description></item><item><title>DiffBIR: プリキュア StyleGAN の出力を修正してみる</title><link>https://blog.curegit.jp/posts/ai/cv/diffbir-precure/</link><pubDate>Wed, 20 Dec 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/cv/diffbir-precure/</guid><description>&lt;p&gt;&lt;strong&gt;DiffBIR&lt;/strong&gt; は、拡散過程に基づく画像復元モデルです。
Stable Diffusion の重みを利用しているようです。&lt;/p&gt;</description></item><item><title>Blender MMD Tools で MMD モデルデータを FBX へ変換する個人的ワークフロー</title><link>https://blog.curegit.jp/posts/tools/3d/mmd-tools/</link><pubDate>Sat, 16 Dec 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/3d/mmd-tools/</guid><description/></item><item><title>xargs コマンドを使用した複数プロセスによる並列処理</title><link>https://blog.curegit.jp/posts/os/linux/xargs-parallel/</link><pubDate>Thu, 14 Dec 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/linux/xargs-parallel/</guid><description>&lt;p&gt;大量のファイルを HTTP でダウンロードするときや、複数のタスクを並列に実行したいとき、プログラム自体を並列に書き直すのは手間がかかります。そこで、便利なのがシェルの &lt;code&gt;xargs&lt;/code&gt; コマンドです。
GNU 版 &lt;code&gt;xargs&lt;/code&gt; を使えば並列処理をお手軽に実現できます。&lt;/p&gt;</description></item><item><title>JavaScript: コールバック関数を Promise に変換する</title><link>https://blog.curegit.jp/posts/programming/js/callback-primise/</link><pubDate>Thu, 30 Nov 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/js/callback-primise/</guid><description>&lt;p&gt;WEB フロントエンドの JavaScript 開発では、非同期の操作を行う必要が多々あります。コールバック関数はそれらシナリオで頻繁に使われますが、複雑になりがちで、複数のコールバック関数が絡まる問題、通称「コールバック地獄」と呼ばれる状況を生成します。&lt;/p&gt;
&lt;p&gt;JavaScript は ES6 で Promise を導入し、ES7 では &lt;code&gt;async&lt;/code&gt;/&lt;code&gt;await&lt;/code&gt; 構文を提供しました。これらの新機能により、非同期コードをより一貫して読みやすい形式で表現することが可能です。この記事ではコールバック関数を Promise に変える方法を示します。&lt;/p&gt;</description></item><item><title>ELYZA Japanese LLaMA 2 (CPU) を Chatbot UI から遊ぶ</title><link>https://blog.curegit.jp/posts/ai/nlp/llama-cpp-python-server/</link><pubDate>Fri, 20 Oct 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/nlp/llama-cpp-python-server/</guid><description>&lt;p&gt;&lt;a href="https://blog.curegit.jp/posts/ai/nlp/run-japanese-llama-cpp/"&gt;先回記事&lt;/a&gt;の続きです。前回紹介した Elyza の日本語言語モデル &lt;strong&gt;ELYZA Japanese LLaMa 2&lt;/strong&gt; を &lt;a href="https://github.com/mckaywrigley/chatbot-ui"&gt;Chatbot UI&lt;/a&gt; から使えるようにしてみました。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ggerganov/llama.cpp"&gt;Llama.cpp&lt;/a&gt; の Python バインディングである &lt;a href="https://github.com/abetlen/llama-cpp-python"&gt;&lt;code&gt;llama-cpp-python&lt;/code&gt;&lt;/a&gt; は OpenAI 互換の API サーバーを内蔵しているので、ここに Chatbot UI を接続することで、ChatGPT のように WEB から ELYZA Japanese LLaMa 2 を使うことができます&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;</description></item><item><title>pip-licenses で Python プロジェクトの OSS ライセンスをまとめて確認</title><link>https://blog.curegit.jp/posts/programming/python/pip-licenses/</link><pubDate>Wed, 18 Oct 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/pip-licenses/</guid><description>&lt;p&gt;OSS を活用したクラウドサービス開発では、使用する OSS のライセンス管理が重要です。中でも、クラウド提供を頒布行為とみなす AGPL ライセンスの OSS が混入すると法律的な問題に発展する可能性があるため、これを確実に避ける必要があります。&lt;/p&gt;
&lt;p&gt;今回は Python 開発において、ライセンス管理を助けてくれるツール &lt;a href="https://pypi.org/project/pip-licenses/"&gt;pip-licenses&lt;/a&gt; について具体的な使用方法を紹介します。&lt;/p&gt;</description></item><item><title>Japanese StableLM Instruct Alpha 7B v2 のローカル GPU 実行を試す</title><link>https://blog.curegit.jp/posts/ai/nlp/run-japanese-stable-lm-v2/</link><pubDate>Sat, 14 Oct 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/nlp/run-japanese-stable-lm-v2/</guid><description>&lt;p&gt;Stability AI より &lt;strong&gt;&lt;a href="https://ja.stability.ai/blog/japanese-stablelm-instruct-alpha-7b-v2"&gt;Japanese StableLM Instruct Alpha 7B v2&lt;/a&gt;&lt;/strong&gt; がリリースされたので、期待を込めてサクッと試しました。&lt;/p&gt;</description></item><item><title>systemd を使用してログディレクトリ (/var/log/**) を自動生成する方法</title><link>https://blog.curegit.jp/posts/os/linux/systemd-var-log/</link><pubDate>Tue, 10 Oct 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/linux/systemd-var-log/</guid><description>&lt;p&gt;systemd のサービス設定には &lt;code&gt;RuntimeDirectory&lt;/code&gt; という、&lt;code&gt;/run&lt;/code&gt; 以下にプログラム実行用のディレクトリを自動的に作成してくれる素晴らしい項目があります。&lt;/p&gt;
&lt;p&gt;これの &lt;code&gt;/var/log&lt;/code&gt; 版はないものかと思っていたところ、&lt;code&gt;LogsDirectory&lt;/code&gt; というドンピシャなものが存在しました。私と同じことを思っていた方もいるかもしれませんし、インターネット上であまり情報が転がってなかったので、今回はこれを紹介します。&lt;/p&gt;</description></item><item><title>Unity でエディター拡張の設定をソースコードからオーバーライドする方法</title><link>https://blog.curegit.jp/posts/programming/cs/static-conf-override-by-source/</link><pubDate>Thu, 05 Oct 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/cs/static-conf-override-by-source/</guid><description>&lt;p&gt;Unity でエディター拡張パッケージを作成していて、パッケージ利用者がソースコードから設定（定数）を変更できる仕組みを考案しました。&lt;code&gt;partial&lt;/code&gt; クラスを用いて実現しています。&lt;/p&gt;
&lt;p&gt;純粋な C# スクリプトのみで動作するので、設定ファイルを読み込むロジック作成が不要になります。
Unity 以外でも、使い所はないかもしれないですが応用可能です。&lt;/p&gt;</description></item><item><title>Safari なら要素のスクリーンショットを背景透過で撮れる</title><link>https://blog.curegit.jp/posts/tools/browser/screenshot-transparent/</link><pubDate>Thu, 28 Sep 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/browser/screenshot-transparent/</guid><description>&lt;p&gt;HTML/CSS で作成したデザインをパーツごとにペイントソフトに持っていき画像編集したいという状況がありました。最近のブラウザーは要素ごとのスクリーンショット撮影機能があり、該当領域だけを正確に画像化できます。しかし、上位ノードの要素（背景）を含めずに、関係ない部分を透過で撮影する方法が分かりませんでした。&lt;/p&gt;
&lt;p&gt;この場合、Safari を使うと、簡単に要素のスクリーンショットを背景透過で撮れます。&lt;/p&gt;</description></item><item><title>PHP でスクリプトが直接実行されたか判定する方法</title><link>https://blog.curegit.jp/posts/programming/php/if-main/</link><pubDate>Mon, 18 Sep 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/php/if-main/</guid><description>&lt;p&gt;PHP で、そのスクリプトが直接実行されたのか判定し処理を変える方法を紹介します。この方法を使うと、Python の &lt;code&gt;if __name__ == &amp;quot;__main__&amp;quot;&lt;/code&gt; と同等の分岐が可能です。&lt;/p&gt;</description></item><item><title>LLaMA 2 日本語モデルを CPU 実行する</title><link>https://blog.curegit.jp/posts/ai/nlp/run-japanese-llama-cpp/</link><pubDate>Sat, 16 Sep 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/nlp/run-japanese-llama-cpp/</guid><description>&lt;p&gt;
 &lt;img src="./cover.png" alt="Elyza LLaMA 2 Japanese"&gt;

&lt;/p&gt;
&lt;p&gt;M2 MacBook Pro にて、&lt;a href="https://github.com/ggerganov/llama.cpp"&gt;Llama.cpp&lt;/a&gt; を使い量子化済みの LLaMA 2 派生モデルを実行することに成功したので手順をメモします。
Llama.cpp は言語モデルをネイティブコードによって CPU 実行するためのプログラムであり、Apple Silicon 最適化を謳っていることもあってか、かなり高速に動かせました。&lt;/p&gt;</description></item><item><title>ELYZA Japanese LLaMA 2 のローカル実行を試す</title><link>https://blog.curegit.jp/posts/ai/nlp/run-elyza-japanese-llama-2/</link><pubDate>Mon, 11 Sep 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/ai/nlp/run-elyza-japanese-llama-2/</guid><description>&lt;p&gt;仕事で使うかもしれないとなったので、GPU 搭載の Windows マシンで &lt;strong&gt;ELYZA Japanese LLaMa 2&lt;/strong&gt; をお試し動作させました。現時点での手順を簡潔にメモします。&lt;/p&gt;</description></item><item><title>Chrome にプロキシ設定をコマンドライン引数で一時的に適用する</title><link>https://blog.curegit.jp/posts/tools/browser/chrome-socks-cli/</link><pubDate>Sat, 21 Jan 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/browser/chrome-socks-cli/</guid><description>&lt;p&gt;SSH トンネリングで SOCKS プロキシを立てることで、社内ローカルページにアクセスする技は結構便利です。コロナ禍では、大学研究室内のページへアクセスするのにお世話になりました。&lt;/p&gt;
&lt;p&gt;しかし、GUI でブラウザのプロキシ設定を変更する必要があり、後で戻す作業がいちいち発生する点が面倒でした。&lt;/p&gt;
&lt;p&gt;Google Chrome (正確には Chromium)&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; にはコマンドラインでプロキシ設定を一時的に適用して起動するオプションがありましたので紹介します。&lt;/p&gt;</description></item><item><title>Mypy による型チェック入門</title><link>https://blog.curegit.jp/posts/programming/python/mypy/</link><pubDate>Fri, 20 Jan 2023 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/mypy/</guid><description>&lt;p&gt;元所属していた研究室の方が Mypy を使っているのを観測し、今はどの程度使えるようになっているのか、使用感などを体験してみることにしました。&lt;/p&gt;</description></item><item><title>FFmpeg で個人的によく使うコマンドまとめ</title><link>https://blog.curegit.jp/posts/tools/image-processing/ffmpeg-snippets/</link><pubDate>Thu, 29 Dec 2022 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/image-processing/ffmpeg-snippets/</guid><description/></item><item><title>autossh と systemd でリモートデスクトップ用のトンネルを永続化</title><link>https://blog.curegit.jp/posts/tools/autossh-daemon/</link><pubDate>Tue, 20 Dec 2022 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/tools/autossh-daemon/</guid><description>&lt;p&gt;外出先から家の PC を触りたいことがそこそこの頻度であり、autossh と systemd を使って SSH トンネルを永続化しました。インターネットに公開されている VPS に対して、自宅 LAN 内のラズパイから Windows PC へリモートデスクトップ用のトンネルを引き込み、外から PC を使えるようにしました。&lt;/p&gt;</description></item><item><title>Debian に Python をソースからインストールする</title><link>https://blog.curegit.jp/posts/programming/python/make-python/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/programming/python/make-python/</guid><description>&lt;p&gt;VPS の Debian に最新の Python をインストールする必要があり、初めて Python をソースからビルドしました。&lt;/p&gt;
&lt;p&gt;ビルド自体は非常に簡単で、既存の Python を壊さず共存インストールまでできるので良かったのですが、依存パッケージの選定にやや苦労したのでメモを残します。&lt;/p&gt;</description></item><item><title>Ubuntu とデュアルブートにした Windows の時計がずれる問題を直す</title><link>https://blog.curegit.jp/posts/os/linux/ubuntu-dual-time/</link><pubDate>Sun, 09 Oct 2022 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/linux/ubuntu-dual-time/</guid><description>&lt;p&gt;Ubuntu と Windows のデュアルブート環境ではシステム時刻の扱いに注意が必要です。なぜなら、Windows はシステム時刻をローカル時間で扱う一方、Ubuntu では UTC で扱っており、Ubuntu を起動したあとに Windows を起動すると時刻表示が 9 時間ずれます（日本時間の場合）。&lt;/p&gt;
&lt;p&gt;次のコマンドを Ubuntu のターミナルで実行することで、システム時刻の設定をローカル時間に変更することができます。&lt;/p&gt;</description></item><item><title>Steam のコントローラー誤認識に対処する</title><link>https://blog.curegit.jp/posts/hobby/reset-steam-controller/</link><pubDate>Wed, 15 Dec 2021 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/hobby/reset-steam-controller/</guid><description>&lt;p&gt;Steam でコントローラーの種類 (Xbox or PS3) が誤認識されることがあったので、対処法をメモします。&lt;/p&gt;</description></item><item><title>MDF (MDX) ファイルを ISO へ移行する</title><link>https://blog.curegit.jp/posts/data/file/iso/</link><pubDate>Mon, 08 Nov 2021 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/data/file/iso/</guid><description>&lt;p&gt;Windows 10 では、ISO や IMG ファイルといったディスクイメージファイルを直接 OS で扱えるようになりました。これは非常に便利な機能と言えるでしょう。&lt;/p&gt;
&lt;p&gt;しかし、私のようなユーザーには Daemon Tools で作成した MDF (Media Descriptor File) + MDS (Media Descriptor Sidecar file) 形式のイメージファイルも多く残っていることでしょう。これを ISO に移行しましょう。&lt;/p&gt;</description></item><item><title>Windows ディスクで所有者とアクセス許可をリセットする方法</title><link>https://blog.curegit.jp/posts/os/windows/takeown/</link><pubDate>Mon, 01 Nov 2021 00:00:00 +0900</pubDate><guid>https://blog.curegit.jp/posts/os/windows/takeown/</guid><description>&lt;p&gt;PC を新調した際に、Windows のディスクを移設したのですが、以前の無効なアカウント情報が残ってしまう状況に遭遇したので対処手順をメモします。&lt;/p&gt;</description></item></channel></rss>