sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

C# パフォーマンス高速化に関するメモ

パフォーマンスに影響の大きい絶対に守るべきこと コレクションの型あわせ ループ内の線形探索 コレクションの初期容量を指定 Result と Wait はやめる 環境 最速の開発/実行環境 構造体 構造体の優位性 構造体の欠点 参照渡し ref readonly/in の難しさ コ…

WinGet を利用した Python の更新(windows 編)

PC

更新の必要有無を確認 winget 更新 バージョンの固定 おまけ:インストールのバッチ化 参考 Windows 環境で Python を更新するときの流れを記録しました。 更新の必要有無を確認 とりあえず、デフォルトの Windows 環境で Python のチェック方法を記録します…

2024 年 会社勤めの買ってよかったモノ、まとめ

12月の風物詩。毎年やっているけど、買って損していないのかチェックみたいな気もする。 QOL 文具 レバーレスコントローラー作成 PC 関係、スマートフォン 運動 本 総括 履歴 QOL 文具 サーモス 真空断熱マグカップ 450ml HARIO 水出し珈琲ポット ブラック…

第一種衛生管理者試験の受験(合格)

第一種衛生管理者とは 受験した理由 勉強に使ったもの 学習期間 費用 参考 2024 年 10 月15 日 (火) に第一種衛生管理者試験を受けてきました。(試験範囲が狭い)第二種衛生管理者は受験していないので、上位資格といっていいだろう第一種だけ受験した形で…

C# Prism ライブラリ 9.0 更新とライセンス変更

GitHub Prism Prism は主に WPF などで利用できる、XAML アプリケーションを構築するためのフレームワークです。 Prism は Microsoft MVVM Toolkit と似た役割を担うことができるライブラリで、特徴として MVVM +α のような機能を提供しています。 これまで…

ID (UUID, GUID) の利用についての学習メモ

ランキング参加中プログラミング 冪等の例 UUID と GUID C# の GUID の生成 NanoID TODO 参考 特に SQL などで、利用するユニークな採番(各データに番号を割り当てるプロセス)で、いわゆる ID を利用することがあります。 一般的には(単純な DB では)pri…

WPF メインウィンドウ、子ウィンドウのインスタンス取得

WindowService の利用 使い方 ポイント 参考 ボタンなどの GUI イベントを実行したときに、メインウィンドウのインスタンス(ハンドル)が欲しいことがあります。 本来、MVVM で設計をするとこういうことは無いように設計するのかもしれませんが、現実的に V…

VisualStudio プロジェクトの場所変更(dev drive)

ランキング参加中プログラミング Dev Drive 「未割り当て」領域の作成 Dev Drive 「未割り当て」領域のドライブ化 Visual Studio のデフォルト プロジェクトの場所を変更 確認 おまけ 参考 Visual Studio をインストールしたあと、通常だとデフォルトのプロ…

System.Diagnostics.Debug と NLog の連携

NLog の定義ファイル (nlog.config) TraceListener を定義 テスト 応用編 Sample 参考 プログラムを作るときに、プロジェクトで(ログ出力をコントールするために)NLog を採用することがあります。 そこまではよいのですが、個人的なライブラリのプロジェク…

Gophish の使い方(標的型メールの訓練ツール)

PC

環境設定 メール送信までの初期設定 参考 標的型攻撃メールは 2024 年現在、「個人向け」「企業向け」ともに対策が必要な状態です。 IPA 情報セキュリティ10大脅威 多くの企業でもセキュリティ対策は実施済ですが、対策のひとつとして「メール訓練」というも…

C# EventLogEntry「システム時刻の変更」のバグ

C# の EventLogEntry を利用して「システム時刻の変更」の情報を取得すると「CVE の検出の可能性」としてメッセージが出力されます。 イベント ID: 1 タスクのカテゴリ: (5) ソース: Kernel-General たしかに、現在ではオンライン設定がデフォルトになってい…

.NET プログラムのバージョンを管理する例

バージョンの基本的な用途のポイント 個人的な最小要件のバージョン管理方法 プログラムからのバージョン参照 参考 .NET でアプリケーションを作成したとき、プログラムのバージョンを正しく管理し続けることが難しいプロジェクトが結構あると思います。.NET…

WPF UI(UI ライブラリ)の使い方(3)バージョン3対応

現在のリソース SnackBar XAML 変更点 (最適ではないけど)動作する最小サンプル Prism DI を使った例 そのほかのアップデートの注意点 参考 WPF UI のメジャーバージョンが「3」になりました。アップデートに伴って、旧バージョンになった「2」は NuGet …

WPF RadioButton と Enum 値の Binding

XAML View ViewModel Converter サンプル 参考 WPF の RadioButton の IsChecked プロパティに Enum 値を Binding させたいシーンが結構よくあります。地味に使うケースがあるんだけど、記述方法にひと手間あるんでその内容を記録しました。 この記事の内容…

Visual Studio Code の拡張機能の作成例

GW に気が向いたので Visual Studio Code の拡張機能を作成しました。 作成した拡張機能 どういう機能かというと、web 小説を書くときのためのシンプルな補助機能を追加します。 とくに、「なろう」と「カクヨム」に向けた拡張になっています。 TypeScript …

デジタル庁 デザインシステムの整理

デジタル庁が公開している「デザインシステム」の内容を自分用に整理しました。 デザインシステムとは? (手引き) カラースタイル デザイントークン キーカラー 共通カラー 機能カラー アクセントカラー セマンティックカラー ニュートラルカラー プリミテ…

C# CommunityToolkit.Mvvm 8.2 の確認

ランキング参加中 プログラミング .NET Community Toolkit 8.2! .NET Community Toolkit には何がありますか? (What’s in the .NET Community Toolkit? ) Custom attributes [RelayCommand] 新しい ObservableProperty の変更フック⚗️ MVVM Toolkit の Cod…

C# CommunityToolkit.Mvvm の学習9 collections

ランキング参加中 プログラミング ObservableGroup<TKey, TElement> and ReadOnlyObservableGroup<TKey, TElement> Sample ObservableGroup<TKey, TElement> features ObservableGroupedCollection<TKey, TElement> and ReadOnlyObservableGroupedCollection<TKey, TElement> ObservableGroupedCollection<TKey, TElement> features 参考 Obs…</tkey,></tkey,></tkey,></tkey,></tkey,></tkey,>

C# CommunityToolkit.Mvvm の学習8 IoC

ランキング参加中 プログラミング IoC (Inversion of control) サービスの構成と解決 (Configure and resolve services) コンストラクタの注入 (Constructor injection) Viewmodel は "constructor injection" て、どうなの? (What about viewmodels?) 参考…

C# CommunityToolkit.Mvvm の学習7 Messenger

ランキング参加中プログラミング Messenger どのように機能するか (How it works) 送信 - 送信と受信メッセージ (Sending messages - Sending and receiving messages) Sample リクエストメッセージの使用 (Request messages - Using request messages) Samp…

C# CommunityToolkit.Mvvm の学習6 RelayCommand

ランキング参加中プログラミング RelayCommands どのように機能するか (How it works) ICommand の働き (Working with ICommand) Sample AsyncCommands どのように機能するか (How it works) 非同期コマンドの働き (Working with asynchronous commands) Sam…

C# CommunityToolkit.Mvvm の学習5 ObservableValidator

ランキング参加中プログラミング ObservableValidator どのように機能するか (How it works) 単純な例 Sample カスタム検証のメソッド (Custom validation methods) カスタム検証の属性 (Custom validation attributes) 参考 ObservableValidator Observable…

C# CommunityToolkit.Mvvm の学習4 ObservableObject

ランキング参加中プログラミング どのように機能するか (How it works) 単純な例 サンプル non-observable モデルのラッピング Task の扱い (Handling Task properties) Sample 参考 ObservableObject は、INotifyPropertyChanged と INotifyPropertyChangin…

C# CommunityToolkit.Mvvm の学習3 RelayCommand + INotifyPropertyChanged

ランキング参加中プログラミング RelayCommand 属性 How it works(どのように機能するのか) Command パラメーター 非同期コマンド (Asynchronous commands) コマンドの有効化と無効化 (Enabling and disabling commands) コマンドの同時実行の処理 (Handli…

C# CommunityToolkit.Mvvm の学習2 ObservableProperty

ランキング参加中プログラミング ObservableProperty の属性 ObservableProperty の属性 How it works(どのように機能するのか) Running code upon changes(変化に応じた実行コード) Notifying dependent properties(依存プロパティの通知) Notifying …

C# CommunityToolkit.Mvvm の学習1

ランキング参加中プログラミング MVVM Toolkit のサンプルプログラム Introduction to the MVVM Toolkit で、MVVM Toolkit パッケージはいつ使うべきなの? MVVM Source generators 参考 WinUI3 でも利用できる MVVM として「MVVM Toolkit」の学習をはじめま…

Buffalo EasyMesh WiFi は1つの回線に複数設定しない(注意点)

PC

コントローラーの条件 トラブルの実例 対応策 参考 家の WiFi 環境を EasyMesh にするときの注意点を知ったのでメモ。(知っている人からすると当たり前のことだと思うのですが)基本的には、EasyMesh は1回線につき1つの EasyMesh のみを設定すること、と…

WPF JumpList の使い方について

JumpList 使い方の例 参考 WPF のアプリを作っているときに JumpList を使おうと思ったときに、システムトレイアイコンのメニューとの使い方の違いを再認識しました。その内容をメモ。 JumpList JumpList は Windows 7 から追加された windows の機能です。 …

WPF ToggleButton 注意点の整理

ToggleButton のデザイン ToggleButton のイベント コード上からの注意点 余談:添付プロパティで対応できるか? 参考 タイトルのとおり、WPF のコントール ToggleButton の使い方についてのメモです。ToggleButton は、通常のボタンに加えて IsChecked プロ…

C# TimeProvider の利用について (.NET8)

この記事は「Qiita - C# Advent Calendar 2023」に参加しています。 C# には、時間を表現するクラスに DateTime と DateTimeOffset があります。.NET 8 から TimeProvider クラスが新しく用意されました。 TimeProvider クラスは .NET8 の新機能のひとつ「時…