なつねこメモ

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

WPF で Binding 後に解決されたクラスとプロパティを取得したい

WPF で XAML 側に DataContext や ViewModel を代入した後、実際に Binding で解決された結果を使いたいケースがある (ほんとうに?)。 そういうときに使うテク。 例えば以下のような XAML があったとき:

System.Text.Json でフィールドもシリアライズ・デシリアライズしたい

C#

System.Text.Json は、デフォルトでは下記クラスメンバーのウチ、フィールドはシリアライズ対象とならない。 class ClassA { public int Field; public int Property { get; set; } } var json = JsonSerializer.Serialize(new ClassA { Field = 1, Property…

PowerShell で出力を無に葬り去りたい

PowerShell を使っているとき、例えば New-Item をしたときなど、別に必要ないのに丁寧な出力結果をしてくれることがある。 $ New-Item -ItemType Directory -Path ./dir Directory: C:\Users\natsuneko\dir Mode LastWriteTime Length Name ---- ----------…

Kubernetes で Pod から外部の名前解決ができない

k8s

なぜか Pod 内部から外部、つまりはインターネットへの名前解決が一切できなくなって困っていたのでメモ。 解決方法としては、 Pod を再起動すれば良かった。 $ kubectl -n kube-system rollout restart deployment coredns 参考: dns - Kubernetes: Pods Ca…

Tailscale を使っている状態で k3s クラスタを構築したい

k8s

k3s という軽量 Kubernetes があります。 これを Oracle Cloud 上にある、 Tailscale で接続している Compute Instance に構築しようとしていて、ハマってしまったので備忘録。 前提: Tailscale k3s ドキュメント通りに行くなら、マスターノードとなるイン…

Rust でバイト配列から数値に変換したい

[0x12, 0x34, 0x56, 0x78] みたいなバイト配列から数値へ変換したいケースがある。 その時、読み取り対象によってはビッグエンディアンだったりリトルエンディアンだったりするけど、自分で考えると面倒なので、それを良い感じにする方法。 といっても Rust …

Roslyn の IMethodSymbol で拡張メソッドを扱いたい

C# / VB.NET のコンパイラーである Roslyn はライブラリとして扱うこともでき、コード解析などを行うことができる。 その中でメソッドについての情報が格納されるのが IMethodSymbol だが、以下のような拡張メソッドの場合は、拡張メソッドそのものでは無く…

GitHub Actions の Problem Matcher でデフォルトの Severity を Warning にしたい

GitHub Actions には Problem Matcher といって、stdout やファイルなどに出力されたメッセージを Pull Request などで表示するための機能があります。 こういうの 多くの場合、エラーメッセージと一緒に Severity といって、このメッセージは警告なのかエラ…

AWS Route 53 で256文字以上の TXT レコードを設定したいときは

AWS

DNS の仕様として、 TXT レコードには単一の文字列として 255 文字が最大となっています。 AWS の Route 53 もその仕様に従っているんですが、 DKIM キーなどを設定する際、 256 文字以上になるケースがあるので、値を分割して設定することで、256 文字以上…

The inferred type of 'X' cannot be named without a reference to 'Y'. This is likely not portable. A type annotation is necessary.

pnpm 使って特定の tsconfig.json (Vite のデフォルトの tsconfig.json など) を参照した状態で tsc を走らせると、型エラーが出ることがある。 下記は、その例: The inferred type of 'default' cannot be named without a reference to '.pnpm/vite@5.0.1…