2025-02-01から1ヶ月間の記事一覧
CPUなどのリソース監視をする際にノイジーアラートを抑制するために普段とっている基本的な方針のメモです。 ノイジーアラートは抑制しないといけない リソースの監視 CPUの監視 メモリの監視 ノイジーアラートを抑えたリソース監視 値はaverageかmedianを用…
C# 91から利用できるTarget-typed newは使い方によっては非常に便利です。 ただ、ライブラリのAPI設定次第で使いたいときに使えないというシーンもあるのでメモです。 暗黙的型変換を期待するAPIではTarget-typed Newは使えない Pulumi C#で頻出のAPIパター…
TerraformでAWSリソースを作成するときの定番がデフォルトタグです。Pulumiでもデフォルトタグを設定できるようになったのでメモです。 デフォルトタグは便利というレベルじゃない Pulumiのデフォルトタグはこれまで面倒だった Pulumiのスタックコンフィグで…
世の中Markdownライク1にかけるドキュメントサービスはたくさんあります2。 さて私もいろんなサービスでドキュメントを書いてきたのですが、その中でもBacklog Wikiは機能が貧弱で書き心地が決してよくありませんでした。そんな折、2024年9月にリアルタイム…
前回の記事でDatadogにCloudWatch Metric Streamを使ってメトリクスを送信するCloudFormation StackをPulumi/Terraformから呼び出す方法を書きました。今回は、CloudFormation StackでやっていることをPulumi C#にポートします。 なぜポートするのか Pulumi …
DatadogはAWSのCloudWatchメトリクスの取り込みをPull方式とPush方式の両方サポートしています。いわゆるDatadog AWS IntegrationはPull方式でCloudWatchメトリクスを10分程度のレイテンシーで取り込みます。一方で、AWS CloudWatch Metric StreamはPush方式…
隣接するIPv4のCIDRを集約表記にする処理を書いたのでメモです。 IPv4 CIDRをまとめるとは C#で隣接するIPv4 CIDRを集約表記にする アドレスがまとまる様子 Pythonならipaddress.collapse_addressesを使う まとめ IPv4 CIDRをまとめるとは CIDRはIPアドレス…
以前の記事でWindowsのコンテキストメニュー1からアイテムを消す方法を紹介しました。今回はWindows 11から導入された新コンテキストメニューのアイテムを消す方法です。 なお、レジストリを触るので自己責任でお願いします。 モチベーション 削除するClassI…
GitHub Actionsのsetup-dotnetアクションは、global.jsonを解釈して.NET SDKをインストールできます。ただ、global.jsonサポートは限定的でバージョン直指定かrollForwardlatestFeatureのみ対応しています。 気まぐれでC#でもサクッと同じものを用意したので…
.NETはglobal.jsonファイルを使って、利用する.NET SDKのバージョンの制限を表現できます。 あまりglobal.jsonを有効に機能させられるシーンはないと考えていたのですが、ワークアラウンドを見てなるほど思ったので.NET SDKのバージョンを固定することが有効…
GitHub Actionsが他CIと決定的に違うポイントの1つがカスタムアクションです。他のCIサービスにも類するものはありますが、圧倒的なボリュームと参照しやすさ、作りやすさが他のCIサービスと一線を画しています。1 今回はそんなカスタムアクションの豆知識で…
以前記事を書いたEphemeral Resourceに対応するにはAWS Providerの更新が必要。ということでAWS Provider 5.87.0に更新作業をしていたところ、2024年9月のS3 Lifecyce Transitionの変更に伴うaws_s3_bucket_lifecycle_configurationの破壊的変更がAWS Provid…
このブログも最終更新から日数が経過して古い情報があると時々感じます。 ということで、はてなブログで最終更新からn日経過した記事で警告を出すようにしたメモです。 見た目 事前作業 警告を出す処理 まとめ 参考 見た目 次のような表示になります。私は3…
S3のStorage LensはFree metricsだけでも割と便利なので、Terraformで展開したくなるのですがやったことなかったのでメモです。 うっかり展開するとすぐにAdvanced metricsが有効になるので罠っぽさありました。 Storage LensをFree metricsで展開する 失敗…
以前の記事でTerraform 1.10.0からEphemeral resourceが追加されたことを紹介しました。 Terraform 1.10時点ではData Sourceの置き換えとしてのEpehemeral Resourceであって、通常のリソースでパスワード的なものをStateを残さないようにはできません。これ…
非常に残念ですが、.NET SDK更新でdotnet formatのバグに出会うことがあります。先日リリースされた.NET SDK 9.0.200もそうです。さくっと見てみましょう。 2025/2/27 追記 2025/2/27に修正PR #77354が作られて解消されました。 Visual Studio 2022 17.13と1…
Visual StudioでC#コード中に日本語入れるとshift-jisになることは何度か触れてきました。.editorconfigを使ったchartsetを制御する記事も書いたのですが、2025/Feb/13に降ってきたVisual Studio 2022 17.13.0でデフォルトエンコーディングを設定できるよう…
Terraform 1.10.0からEphemeral resourceが追加されました。これは各プロバイダーが対応するEpheemeral resourceと組み合わせて使う安全なData Sourceと呼ぶべきものです。 今回はEphemeral resourceをどのように使うのか調べたメモです。 関連して、Terrafo…
dotnet/BenchmarkDotNetは.NETコードのベンチマークライブラリで、デファクトスタンダードとして使われています。クラスやアセンブリ単位に実行したり、ベンチマークの試行回数調整やパラメーターセットアップも容易で非常に使いやすく、私自身もよく使って…
TargetFrameworksを用いると複数のフレームワークに対応したライブラリを作成できます。今回は、このTargetFrameworksを指定しつつDockerビルドする方法を紹介します。 なお、コンテナで複数ランタイムを持つ意義はほぼないので、この記事はただの興味本位で…
Terraformのコードが一定のルールを守っているかチェックするためのツールとしてtflintがあります。tflintを使うといわゆるプログラミング言語のアナライザーのようにTerraformのコードを解析し、構文エラーやベストプラクティスに反している箇所を指摘しま…
.editorconfigは様々な言語でコードの設定を統一するための設定ファイルです。C#も.editorconfigを使うとコードフォーマットやアナライザーの設定できます。今回は私がこれまでC#で.editorconfigを使ってきておすすめ設定と避けたほうがいいと考えている設定…
前回の記事でラッパーコマンドの場合、ConsoleAppFramework v5へ移行する悩みを書きました。その後ConsoleAppFramework 5.4.0がリリースされ、ラッパーコマンドへの引数を渡しがサポートされました。これによってConsoleAppFramework v5でもラッパーコマンド…
ConsoleAppFrameworkはv4からv5で仕様が大きく変更されました。その中にはやりにくなったことやできなくなったこともありますが多くは改善されました。v5リリース後の改善状況は作者の記事やいくつかの記事で紹介されているのでそちらをどうぞ。 私も手元の…
以前の記事で、Docker Composeを使ってローカルマシンにRedis Clusterを構築しました。 今回は少し発展させて、Visual Studioで同Docker Composeにアプリケーションをコンテナ起動 & デバッグ実行する方法を紹介します。 接続図 Visual StudioのDocker Compo…
Terraformの課題の1つは、モジュールなどに実装を閉じ込めても、そのモジュールのvairables/outputsの型を判別するにはLSP1が脆弱なことです。 VS CodeのLSP機能を使ってF12でコードジャンプして実装を確認するのもいいのですが、GitHubでコードを眺めている…
同じスペックのPCなのにWindows 11開発環境が人によって不安定だったりすることがあります。 過去多かったのが高速スタートアップ由来だったので、今回はこれを無効(あるいは有効に戻す)方法メモです。 高速スタートアップが有効で不安定というのは割と悲し…
コマンドを並列に実行したいときxargsは便利です。今回はxargsなしだとコマンドが実行できるのに、xargsの中でコマンド実行するとinappropriate ioctl for deviceエラーが出たのでその原因と対処についてメモします。 inappropriate ioctl for deviceエラー …