なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

2022-01-01から1年間の記事一覧

ts-node で ESM Native な感じに実行したい

TypeScript を直接実行できる ts-node 便利ですよね。 ところで、最近 (ってほどでもないですが) Node.js 界隈 ESM へ移行する流れがあります。 Node.js 界隈で多くの OSS をリリースしておられる Sindre さんのパッケージも、多くが ESM Native になってお…

Git でとあるディレクトリ以下の履歴を引き継いだ状態で新しいリポジトリに切り出したい

Git

例えば、何らかの理由でリポジトリのこのディレクトリ以下の部分だけ別リポジトリで管理したいな~!って場合のやり方。 履歴を引き継がなくてもいい場合はそのまま新しいリポジトリがある場所にコピーすれば良いんだけど、履歴も引き継ぎたい場合。 やり方…

GitHub Actions で自前の LFS サーバーに向いているアセットもチェックアウトしたい

年末に何してるんっていう話なんですが、わたしは過去の記事にもあるように、 Git LFS サーバーを自前運用しています。 そこで困るのが、 GitHub Actions で with.lfs: true とした場合の挙動です。 通常の GitHub にすべてを任せているときと同じ感じでやる…

Blender アドオンで C++ で記述した DLL をロード・アンロードしたい

Blender アドオン作るときの小ネタ。 例えば、 Python では性能上厳しかったり、何らかの理由で Python から触れない何かを触りたい場合、 C++ で Blender のアドオンを書きたいケースがあります。 そういったことをやりたいときの方法をメモしておきます。 …

Blender アドオンの Operator に定義したメソッドを、プロパティを設定して呼び出したい

Blender アドオン作るときの小ネタ。 Blender アドオンを作っていて、何らかの処理をさせたい場合、通常は Operator を使用します。 import bpy from bpy.types import Context, Event, Operator from bpy.props import StringProperty class SomeOperator(O…

DirectX のテクスチャーを Bitmap として取り出したい

いつもは Unity みたいな高レイヤーですが、今回は比較的低レイヤーのお話です。 基本的に、最近の場合は DirectX を直に触るケースは少なくなってて、例えば Unity や Unreal Engine 等のような、ゲームエンジンを触ることがほとんどだと思います。 ただ、…

Unity のカスタムトラックで表示名を設定したい

比較的最近の Unity では、 Timeline 関連の API も公開されていて、ある程度自由にカスタマイズすることが出来ます。 今回はそのうち、 TrackAsset についてのお話です。 TrackAsset を継承したクラスを作ることで、 Timeline に任意のトラックを追加するこ…

@ant-design/plots で、特定条件を満たした場合だけラベルを表示したい

@ant-design/plots という、統計情報みたいなグラフを表示するための Alibaba グループの出しているライブラリがあります。 これは様々なカスタマイズができていろいろ便利なのですが、なにせドキュメントが英文化されていないのに加えて抜けがあるみたいな…

TypeScript で色を表現したい

TypeScript には、 Template Literal Types というものがあり、例えば、以下のような型を表現することが出来ます。 type Pixel = `${number}px`; const a: Pixel = "14px"; // valid const b: Pixel = "20pt"; // invalid TypeScript Playground これで、色…

Visual Studio をアップデート後に MSBuild 経由でビルドして C1853 エラーが発生したら

作業自動化などのために、コマンドラインから MSBuild.exe を叩いているときなどに起きるエラー。 たとえば、以下のようにしている場合: $ MSBuild.exe /t:Build /p:Configuration=Release /p:Platform=x64 src/example.vcxproj Visual Studio をアップデー…

React Hooks でフォームデータを送信したい

React Hooks でフォームデータ (multipart/form-data)を POST したいけど、いまいち参考例がなかったので、作ってみたというメモ。 といってもやり方は普通に useSWR や useFetch とかと同じ感じかな。 React Hooks 自体はこんな感じ import axios from "axi…

SWR で1回だけ fetch したい

React Hooks でデータフェッチングをするライブラリである SWR ですが、アプリケーションを通して 1 度だけ fetch したい、みたいな時もあると思います。 そのときの解決方法。 といっても、仕組みはすでに (v1.0 から) 用意されていて、以下にようにするだ…

マウスカーソルがやたらチカチカするのでなんとかしたい

なんかこんな感じでマウスカーソルがやたらチカチカしてる。 うざいのでなんとかする方法、といっても、わたしの場合なので、原因は人それぞれ。 わたしの場合は、 IPFS Companion が悪さしていました。 こいつがブラウザのバックグラウンドワーカーを起動さ…

git checkout で、直前にチェックアウトしていたブランチに戻りたい

Git

たとえば以下のような操作をした後、もともといたブランチに行きたい場合: $ git symbolic-ref --short HEAD main $ git checkout sub-branch $ git symbolic-ref --short HEAD sub-branch 次のような操作を行うことで、元いたブランチ、今回の場合は main …

Cloudflare Zero Trust で localhost で運営しているサーバーをインターネットに公開したい

Web

ngrok 2.0、便利ですよね。ただし、商用利用すると 20USD/mo となり、ちょっと個人では厳しいお値段です。 ということで、今回は Cloudflare Zero Trust を使って、同様のことを無料でやろうと思います。 Cloudflare の Zero Trust サービスは、使用ユーザー…

Recoil と Recoil Sync で LocalStorage にデータを保存したい

個人的に最近よく使っている React のステート管理ライブラリである Recoil と、外部ストレージ (DB や URL) などとステートを同期するライブラリ Recoil Sync を使って、 LocalStorage にデータを保存しようという記事です。 ということで、いつも通り準備…

CLIP STUDIO PAINT SDK で任意の座標情報から色情報を取得したい

C++

CLIP STUDIO PAINT EX ではプラグインが使えるんですが、プラグイン開発するには僅かな公式情報と、数件しかないインターネット上の情報に頼むしかなく、ハードルが高い状態です。 ということで、先陣の方にも倣って、わたしも今回のプラグイン開発で得た知…

CLIP STUDIO PAINT SDK でプロパティに文字列型を扱いたい

C++

CLIP STUDIO PAINT EX ではプラグインが使えるんですが、プラグイン開発するには僅かな公式情報と、数件しかないインターネット上の情報に頼むしかなく、ハードルが高い状態です。 ということで、先陣の方にも倣って、わたしも今回のプラグイン開発で得た知…

pybind11 で、 Console Application じゃないものでも print を stdout/err にリダイレクトしたい

C++ から Python を扱うことが出来る (その逆も出来る) pybind11 という C++ ライブラリがあるのですが、それで Python の print をリダイレクトする方法についてのメモです。 問題は、 Windows Desktop Application の場合の対処法。 Windows Desktop Appli…

Blender アドオンで、チェックボックスにチェックを入れたタイミングで、任意の処理を走らせたい

こういう動作をするのは Blender 的には、 UX 的にはあまり良くないのかもしれないですが、トグルボタンってある意味分かりにくいし......ということで、 Checkbox / ToggleBox にチェックを入れたタイミングで何らかの処理をする方法について。 これは、 Pr…

Blender アドオンで、任意のタイミングで Operator の invoke を呼び出したい

最近は Blender のアドオンを作ることもあるわたしですが、任意のタイミングで Operator の invoke が呼び出したくなったときの方法。 といってもカンタンで、以下のようにすれば良い。 import bpy bpy.ops.object.id_name("INVOKE_DEFAULT") ちなみに、引数…

jest で配列の要素の順番に関係なく比較を行いたい

例えば、下のようなコードが合った場合、 jest の toEqual を使うと、確率で落ちます。 const arr = []; const mockDbInsert = (elem: number) => { return new Resolve((resolve) => { setTimeout(() => { arr.push(elem); }, Math.random() * 10); }); }; …

CSS で親要素をはみ出して、画面幅いっぱいに要素を表示させたい

といっても背景限定ですが、 CSS にて親要素をはみ出して、画面幅いっぱいに表示させる方法。 よく見る下記のようなコードでは、 Windows では縦スクロールバーの分まで含まれてしまい、横スクロールが出来るようになってしまう。 .overflow { width: 100vw;…

Mock Service Worker を ASP.NET Core + Vite な環境でも使いたい

Mock サーバーを立てなくても Service Worker で働いてくれる API Mock ライブラリーである Mock Service Worker を、 ASP.NET Core + Vite な環境で使う方法についてのメモ。 といってもやり方は簡単で、わたしがとった方法は単純に mockServiceWorker.js …

ASP.NET Core + Vite で爆速フロントエンド開発を行いたい

TypeScript を使いたーい!しかもできるだけ早くコンパイルして欲しいー!みたいなとき、 Vite は設定も少なく爆速なので便利ですよね。 ということで、今回は Vite + ASP.NET Core を使った、爆速フロントエンド開発の紹介です。 なお、開発サーバーのみ Vi…

Visual Studio 2022 で Roslyn Analyzer をブレークポイントに反応させたい

VS2022 だと不具合というか仕様で、 Roslyn Analyzer を Experimental Instance で立ち上げても反応してくれません。 地味に困るので、そういうときはこうすればイイヨというメモです。 といってもカンタンで、設定から、 Text Editor > C# > Advanced から、 R…

JSON Schema を自作して、 VSCode で補完させたい

JSON Schema 使ったことありますか? 直接は使ったことはなくとも、 Node.js の package.json の補完などは JSON Schema の恩恵です。 ただ、自作アプリケーションなどで使用する JSON の場合、 JSON Schema は定義されていないので、自前で作成、設定する必…

バッチファイルで vswhere の場所を知りたい

Windows の .bat ファイルで、 vswhere.exe の場所を探したい場合、これで見つけられる。 set PF32=%ProgramFiles(x86)% if not exist "%PF32%" set PF32=%ProgramFiles% set VS_WHERE_PATH="%PF32%\Microsoft Visual Studio\Installer\vswhere.exe" if not …

Unity でスクリプトから Prefab Variant を作成したい

Prefab Variant 、便利ですよね。 今回はそれをスクリプト経由で作成する方法の紹介です。 といってもそれ専用のメソッドがあるわけでも無く、以下の処理で自動的に作成されます。 var go = (GameObject) PrefabUtility.InstantiatePrefab(_prefabPath); // …

Unity で GameObject の Duplicate を検出したい

Unity で Ctrl + D によるコピーを検出したい場合のやり方です。 といってもカンタンで、 hierarchyWindowItemOnGUI でヒエラルキーの OnGUI を受け取ってそこで処理してあげるだけ。 あとは、 delayCall で処理を遅延させないと activeGameObject がコピー…