tech.guitarrapc.cóm

Technical updates

pwshで予測機能を選択する

PowerShell 7.1にはPSReadLine 2.1が搭載されています。PSReadLineはこのバージョンから予測機能をサポートしており、シェルで次に入力する内容を予測してグレイアウト表示します。 こういうグレイアウトされたプレースホルダー表示、見たことないでしょうか…

External Secrets OperatorからAWS Secrets Store CSI Driver providerに切り替える

先日、EKS AddonにAWS Secrets Store CSI Driver providerを追加したというアナウンスがありました。これにより、Kubernetesで外部シークレット管理サービスを利用する方法として、External Secrets Operator(ESO)からSecrets Store CSI Driverへ切り替える…

EKS CapabilityでArgoCDを展開する

2025/11/30、EKS Capabilityが発表されました。 Capabilityで実行するコントローラーは、EKS AutoModeの拡張のような形でAWSの保持するEKSが管理する実行環境で実行されるため、ユーザー管理のEKSクラスターではPodが実行されません。 感覚的には、Configura…

KubesharkでKubernetesのトラフィックを見てみる

「ちょっとこのサーバーの通信がおかしそう、通信の中身を見たい」となったときに便利なのがWiresharkです。tcpdumpのようなコマンドラインツールもありますが、GUIでパケットの中身を見られるWiresharkは非常に便利です。 ではKubernetes環境で動いているPo…

.NET 10のファイルベースプログラムをパイプ入力やGitHub Actionsで使う

以前にも軽く紹介する記事を書いているのですが、.NET 10から、C#のファイルベースプログラム実行機能が追加されました。C#にファイルベースプログラムが来ても.csファイルを用意して実行することを考えがちでしたが、そういえばパイプ入力でコードを渡して…

Youtubeアクセスをブロックする

YouTubeへのアクセスをブロックするにはいくつかの方法があります。例えばプロキシサーバーを利用したり、ファイアウォールで制御するといった方法が古くから使われています。今回は、UniFi OSを使える環境においてYouTubeへのアクセスをブロックする方法の…

C# NativeAOTをDockerでビルドする

NativeAOTは、.NETアプリケーションをネイティブコードにコンパイルする技術です。 NativeAOTはJITではなくAOTでコンパイルすることで、いくつかのメリットがあります。スタートアップが速くなり、メモリ使用量も少なくなります。また、動作環境にランタイム…

Devtronを触ったメモ

Kubernetesはいわゆるコンテナオーケストレーターですが、素で使うことはほとんどなく様々なOSSやツールと組み合わせて運用されることが多いです。 私もHelmチャートを使って様々なコントローラーを導入しています。KEDAで水平スケールを管理し、ArgoCDを使…

DevtronにみるDexのサブパス統合がOIDC連携に生む制約

Kubernetesにおいて、Dexを使ってOIDC連携しているアプリケーションは多くあります。 今回はアプリケーションのDex組み込み方法によってOIDC連携に制約が生まれることをDevtronを例に見てみましょう。 Dexとは Dexの組み込み方法 DevtronとOIDC認証 ローカル…

(続) C#でCPUモデルを取得する

C#

以前の記事でC#からCPUモデルを取得する方法を紹介しましたが、ARM64環境に対する手当が不十分でした。今回はARM64環境も含めてC#でCPUモデルを取得する方法を紹介します。 アーキテクチャとOSごとのCPUモデル取得方法 C#での実装例 動作確認 まとめ 参考 ア…

EKSでAWS Load Balancer ControllerでALBを作ろうとしてSubnetのIPが足りなかった話

EKSでAWS Load Balancer Controllerを使ってALB(Application Load Balancer)を作ろうとしたときに、次のようなエラーが出てちょっと戸惑ったのでメモです。 発端 原因 まとめ 発端 AWS Load Balancer ControllerでingressからALBが作成できないため、ingress…

SkiaSharp.QrCodeをフルリファクタしてC#最速のQRコード生成ライブラリにした

C#

SkiaSharp.QrCodeはC#でQRコードを生成するためのライブラリです。コードは大きく「QRコードデータの生成処理」と「SkiaSharpによるレンダリング統合」の2要素で成り立っています。 今回、QRコードデータ生成部分をフルリファクタリングしてC#で最速のQRコー…

PulumiでIgnoreChangesを使う際の注意点

Terraformはリソースの特定のプロパティの変更を無視するのにignore_changes: [array]を用いますが、これと同様のことがPulumiのIgnoreChangesオプションで可能です。 PulumiのIgnoreChangesはドキュメントで解説されているのですが、Pulumiで入れ子のキーを…

HeadlampではじめるKubernetesダッシュボード

Kubernetesのダッシュボードは無数にありますが、Headlampというオープンソースのダッシュボードが手触りよかったので、備忘録を兼ねて紹介です。 OIDC認証に対応しているのでEKSならCognito連携もできて、Karpenterの状態もプラグインで詳細に追いかけるこ…

Trusted PublishingでNuGetパッケージ公開をトークンレスにする

NuGet Trusted Publishingが2025年9月22日にアナウンスされ、OpenID Connect (OIDC)を使ってトークンレスでCIからNuGetパッケージを公開できるようになりました。 今回は、NuGet Trusted Publishingを使ってGitHub ActionsからトークンレスでNuGetパッケージ…

C#サーバーをなぜLinuxで動かすのか

C#

C#は様々な用途に利用できる言語ですが、.NETになってからはサーバーサイドとしてはLinuxで動かすのが自然な選択肢になっています。なぜLinuxで動かすのか理由をいくつか挙げてみます。 もしかすると C#はWindows向けに開発された言語、.NET Framework (.NET…

コードと記事に集中できるはてなブログの新テーマ「CodeFocus」を公開しました

長い間テーマストアで公開されているテーマを使ってはてなブログを書いてきましたが、ここ2,3年は他の技術記事サービスに比べてスタイル的に読みにくいなぁと感じていました。そこで、自分にとって技術記事を読みやすいはてなブログテーマCodeFocusを作成し…

.NET10のdotnet run app.csでファイルベースプログラムを実行する

C#

現在プレビュー提供中の.NET 10から、dotnet runコマンドでファイルベースのプログラムを実行できるようになりました。これにより、dotnet run app.csのように、C#ファイルを直接実行できるようになります。 本日発表されたファイルベースプログラムの実行方…

CloudFrontでオリジンを書き換えるのにCloudFront Functionsを使う

AWS

これまではCloudFrontでオリジンを書き換えにLambda@Edgeを利用していましたが、CloudFront JavaScript runtime 2.0以降はCloudFront Functionsでもオリジンの書き換えが可能になりました。 今回は、CloudFront Functionsを利用してオリジンを書き換えるのが…

ArgoCDのOIDC認証とリフレッシュトークンチェック不具合

ArgoCDはOIDC認証をサポートしていますがリフレッシュトークンのチェックが機能していないため注意が必要です。 2025年4月の暫定対応メモです。 2025年5月7日追記 半年ぶりにPR進捗が出たのでマージが近いといいですね。 ArgoCDのJWT認証 CognitoをOIDCプロ…

はてなブログのみたままモード記事をMarkdownモード記事へ変換する

このブログの古い記事はWordPressからはてなブログにインポートしたもので、当時はHTMLを直書きしていました。 HTML直書きははてなブログの「みたままモード」に相当し、これらの記事はマークダウンなのにHTML構文が溢れてtextlintも効かない状況でした。 先…

AWSのmyApplicationをTerraformで構築する

AWSにはmyApplicationというサービスがあります。以前からTerraformでmyApplicationをどのように構築するのがいいかと悩んでいましたが、納得感のあるパターンが決まったのでメモです。 myApplicationとは myApplicationとAWSリソースの関係 TerraformでmyAp…

はてなブログワークフロー利用の課題と暫定対応

以前、GitHubとはてなブログを連動させている話を書きました。はてなブログ提供のボイラーテンプレートを今も使っていますが、はてなワークフローは運用していく中で直接使わないケースも出てきたのでメモです。 はてなブログのワークフロー想定と使い勝手 …

GitHub ActionsのCVE-2025-30066を受けたワークフローの変化

2025年3月28日にあったtj-actionやreviewdogのセキュリティインシデントCVE-2025-30066を受けて、GitHub Actionsワークフローの書き方が変えてしばらく経ちました。その対応メモを残します。 CVE-2025-30066の概要 CVE-2025-30066の影響を軽減するにはどうす…

NuGet Central Package Managementに移行するのにCopilotを使う

VS CodeのCopilotを使って、NuGet Central Package Managementに移行する体験がよかったのでメモです。 .NET Upgrade Assistantが機能しないケース Copilotで移行する Before After まとめ .NET Upgrade Assistantが機能しないケース 以前、.NETアップグレー…

Visual Studio 2022で使っている拡張機能 2025年版

以前Visual Studio 2022で使っている拡張機能を紹介しましたが、さすがにいろいろ変わりました。 2025年版です。 一覧 .NET Upgrade Assistant Copy Nice Git Diff Margin Solution Error Visualizer 2022 Time Stamp Margin 2022 VSColorOutput64 GitHub Co…

2025年4月以降もGitHub ActionsでUbuntu 20.04環境を継続利用する

GitHub ActionsにはLinuxホストランナーとしてUbuntuがありますが、Ubuntu 20ランナーイメージは2025/02/01-04/15まででサポート終了し、以降はubuntu-20.04ホストランナーを使えません。 とはいえUbuntu 20.04環境をCIとして利用したいケースもあるので、20…

Windows 11 24H2クリーンインストール時にオフラインユーザーで開始する

Windows 11 24H2のクリーンインストール時にオフラインユーザーで開始するメモです。 環境 動機 Windows 11 24H2のクリーンインストール oobe/BypassNRO.cmdがなくなるらしい まとめ 参考 環境 OS: Windows 11 24H2 Professional ネットワーク: LANケーブル…

Docker DesktopリソースセーバーとWSL2のautoMemoryReclaim=gradualは併用できない

WSL2は長年メモリリークがありましたが、.wslconfigのautoMemoryReclaim1を設定することでキャッシュされたメモリを自動解放できます。ただ、autoMemoryReclaim=gradualにしているとDocker DesktopのResource Saver(リソースセーバー)と併用できないようでト…

Unity Dream RouterでデュアルNATを回避する

以前、MAP-E方式のIPv4 over IPv6をUniFi Dream RouterやUniFi Dream Machineで利用する方法を紹介しましたが、いずれもホームゲートウェイ(HGW)と組み合わせる際にデュアルNATとなっていました。2024年7月リリースのファームウェアNetwork Appklication 8.3…