sh1’s diary

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

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

C# NLog の基本的な使い方2(Getting Start)

GettingStart 出力先を設定する NLog "targets" の概念 ログを出力する ログの layout と layoutrenderer について 高度な layout について (CSV, JSON など) target wrappers の概念 ベストプラクティス logger は各クラスで static 変数にする logger の文…

C# NLog の基本的な使い方1(NLog とは?)

NLog is なに? structured logging (構造化ログ) is なに? NLog の特徴を整理 更新頻度 はじめに (Getting started) の選択 参考 この記事は、NLog(ログを管理する機能)の使い方(基本)について調べたことを記事にしています。 2022 年 12 月現在、NLog…

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

12月の風物詩。毎年やっているけど、買って損していないのかチェックみたいな気もする。 運動系 ランニング 矯正 筋トレ 体重計 QOL 関係 センサーライト Anker Eufy (ユーフィ) HomeVac H11 Sound Blaster Play! 4 Fire HD 8 Plus タブレット 本 プログラ…

C# デバイスマネージャーを開く(.NET 6)

解決 プラスα 参考 .NET Framework 時代のデバイスマネージャーは、以下のようなコードで呼び出されていたと思います。 Process.Start("devmgmt.msc"); .NET6 や .NET7 が現れる現在だと上記のコードは例外が発生してエラーになります。 An error occurred t…

WPF カスタムコントロールの作り方(ToggleButton の例)

カスタムコントロールライブラリ ToggleControl のうごき サンプル 参考 WPF のカスタムコントロールの作り方……というか、基本的には設計者が設計したとおりに動作すればそれでいいような気もしますが、WPF にはいろんなカスタムコントロールの作り方があっ…

ダンジョンスクワッド 攻略ヒントのメモ

重要な情報 ディアブロ ケルベロス ヨルムンガンド タイタン ダークペガサス メドゥーサ ステノ クラケン ダンジョンメーカーで知られる GAME COASTER の新作スマートフォンゲーム DUNGEON SQUAD の個人的にプレイしてみた感じの攻略メモです。ちなみに squa…

複数の bool 値と byte 値を相互に変換する

byte to bool[8] bool[8] to byte サンプル 参考 DB を設計していると、ひとつの列で bool 値をまとめてしまおうという発想をすることがある。ほとんどのケースで、これは設計ミス(アンチパターン)となりやすいことで知られ、jaywalking(信号無視)パター…

Windows11 右クリックメニューを元の (Windows 10 相当) に戻す方法

PC

対応方法 右クリックメニューのカスタマイズ 「送る」の内容を編集 「新規作成」の内容を編集 右クリックメニューの編集 参考 Windows 11 に変更すると、右クリックメニューの内容が windows 11 のものになって、サードパーティが追加したメニュー項目が表示…

GitHub に間違って API キーをコミットしてしまったときの対応

問題の記録を確認する 対応方法 反映 参考 GitHub に API キーを間違ってコミットしてしまったら。 Git (GitHub) はコードを遡って調べることができる反面、API キーのような情報を修正しようとすると、遡って記録を訂正しなければいけません。思ったよりも…

C# init アクセサー (C#9.0) の使い方

これまでの流れ 一番の違いはオブジェクト初期化子 record 型専用の初期化 with 参考 C# 9.0 から init アクセサーが追加されています。比較的に使いやすいアクセサーですが、利用しているでしょうか。仕様を把握しているでしょうか。 これまでの流れ getter…

C# System.Text.Json コンバーターを利用する方法

C# .Net で Json 形式で書かれたファイルを扱う際は、2022 年現在だと System.Text.Json を利用するのがもっとも手軽だし、一般的だと思います。 このあたりと基本的な使い方については、以下の記事で記述しています。 C# System.Text.Json で非数値 NaN, In…

C# DI コンテナと CompositeDisposable の組み合わせ

使い方の例 参考 DI コンテナを利用しているプロジェクトで、リソースを破棄する処理をしようと思ったとき、CompositeDisposable を利用するという選択肢があります。 Window を閉じて終了するとき、Window の情報の〇〇を保存する アプリを終了するとき、ゲ…

Wi-Fi について基本的な整理

PC

通信規格の一覧 通信速度の一覧 ストリーム数 Mesh network 参考 amazon prime day 2022 にあわせて wifi 環境を更新した。更新のため、最近の通信規格を整理したのでメモ。 まず WIFI の通信規格は「IEEE802.11」です。 無線 LAN は、もうひとつ大きな括り…

C# 文字列の類似度を計算する N-gram

C# で実装する 参考 あいうえお あいうえの 上記のような文字列の類似度を計算するやり方には「n-gram」や「Jaro–Winkler distance」など色々なやり方があるみたいです。一番簡単と思ったやり方は「n-gram」でした。少し古いですが livedoor の技術ブログに…

C# .NET で試してみる CI/CD の CI (GitHub Actions)

GitHub Actions - workflows リポジトリーに Actions (workflow) を追加する シフト JIS で記述されたファイルはバグる バッジの追加 参考 プログラムを書く際や書いた後、CI/CD を利用/設定することは重要です。CI とは continuous integration(継続的イン…

GitHub markdown 書式の+α

GitHub にもドキュメントがあり、README.md のように記述しないといけない、したほうがよいものがあります。 ドキュメントですが、基本となる markdown の機能に加えて+α の便利な拡張機能があります。忘れがちですが押さえておくと、すこしリッチなドキュ…

Unity「2D game art, animation, and lighting for artists」を日本語で読む

2022年5月6日に Unity Blog より「過去最大ボリュームの e ブック:アーティストのための 2D ゲームアート、アニメーション、ライティング」の記事があがりました。 まだ内容はよくわかりませんが、面白そうなので読み進めていこうと思います。個人的に和訳…

C# Excel ファイルからセルのデータを読み込む(ClosedXML)

ClosedXML を使った読み込み サンプル 参考 C# で Excel ファイルを読み込んで利用する方法は、ライブラリーを利用したいくつかのやり方があると思います。おそらくよく検討に挙がりそうなのは以下のあたりだと思います。 COM 依存しない ClosedXML (MIT Lic…

Visual Studio ClickOnce 「項目 "xxx" の公開プロパティを適用できません」の対策

ClickOnce でアプリを発行する 発行の設定ファイル アプリケーションのインストール先 エラー:項目 "〇〇" 公開プロパティを適用できません 対策 参考 .NET (.NET Core) でも ClickOnce を利用したアプリケーションの公開(発行)ができると知ったのでテス…

IList から List<T>, IEnumerable<T> に変換する

IList to IList<T> global using ディレクティブ 参考 稀に IList 型のデータを受け取ることがあります。ObservableCollection の CollectionChanged のイベントなどは、IList で変更のあったデータのコレクションを返却します。 しかし、IList から IList<T> に変</t></t>…

LINQ 式のデータベースアクセスでクラス/インターフェースの型などを含めるとエラーになるときの対処

問題例 対応例 考察 参考 C# の LINQ 式によるデータベースアクセスの際に、クラス/インターフェースの値など、プリミティブ型ではない型を含めるとエラーになることがあります。 具体的なエラー内容 たとえば、次のようなコードが考えられます。 問題例 pub…

WPF トーストの表示

WPF (.NET6) でトースト表示をテストしてみた内容を記録します。 かつてのトースト表示は、アプリケーションをパッケージ化したり証明書が必要であったりしたため、利用には面倒がありました。 現在は、かなりの面倒がなくなっており、ちょっとした通知の実…

ソフトウェア開発のマニフェストを読んでみよう

ベタープログラマを読んでいて、ソフトウェア開発のためのマニフェストがあることを知りました。(37章 多くのマニフェスト) より良いコードを書こうと思っているコーダーが、どういったマニフェストを宣言しているのか、いくつか読んだものをまとめたいと…

PlanetScale - SELECT INSERT UPDATE を実行する (Entity Framework)

初期化 SELECT INSERT UPDATE サンプル 参考 PlanetScale (MySQL 互換) の基本的な DML (select, insert, update) を C# の環境で実行してみた。今回は、Entity Framework を介してデータ操作をしてみる。 なお、EF を使わないやり方はこっち PlanetScale - …

PlanetScale - SELECT INSERT UPDATE を実行する

SELECT INSERT UPDATE Transaction & Insert おまけ1 日付を取得する おまけ2 サンプル 参考 PlanetScale (MySQL 互換) の基本的な DML (select, insert, update) を C# の環境で実行してみた。 接続文字列のパラメーターは、NuGet から「DotNetEnv」を使…

PlanetScale と Navicat を接続する

Branches の development/production Navicat 参考 PlanetScale (MySQL 互換) と navicat をテスト接続する機会があったので、その内容をメモ。 特に理由がなければ Arctype が推奨みたいです。 planetscale.com - connection-strings Planetscale は MySQL …

PlanetScale のクイックスタートガイド

はじめに PlanetScale クイックスタートガイド Overview PlanetScale アプリケーション ダッシュボード(ブラウザ)による操作 アカウントを作成する データベースを作成する データベースにスキーマを追加する データを挿入する データベースのブランチを本…

C# PostcodeJP の API を利用して郵便番号から住所を取得する

郵便番号 JSON 対応クラスの例 テスト サンプル 参考 郵便番号から住所を取得するやり方のひとつに PostcodeJP がある。 郵便番号から住所を取得する API は、いくつか無料のものが公開されています。PostcodeJP も無料で利用できますが、ユーザー登録および…

C# RESAS API を利用する

都道府県コード JSON 対応クラスの例 テスト サンプル 参考 都道府県コードや産業分類など、地域の情報(地域経済分析システム)を取得するやり方のひとつに RESAS がある。 RESAS は、2015 年から内閣府の地方創生推進室が開始したサービスで、2016 年から …

C# Null 非参照型と許容参照型 (CS8600)

null を許容する例 補足 null 値を許容する(null-forgiving) アノテーション属性 値/参照型で null 参照型の実装は全然違う ジェネリクス まとめ 参考 C# 8.0 から「C の null 値を許容する参照型」という機能が実装されています。 もともと、C# の参照型…