経験から思うログの設計・実装ポリシー

はじめに これまで様々な企業でシステムやWebアプリの設計開発や運用・保守を行ってきました。これらの経験を踏まえて思うログの設計・実装ポリシーについて説明します。 個人の感想や愚痴になっている個所も多々あるため、参考程度でご覧いただけると幸いです。 多くの現場では主に3つのチームに分かれてプロジェクトを進めていました。私が担当していた業務やアプリ基盤チームの目線での説明になります。 チーム名 担当 […]

HTML5文字実体参照をタブ区切りファイルに変換

概要 HTML5で定義されている文字実体参照を、タブ区切りファイル(TSV形式)に変換するサンプルコードを紹介します。 HTML5の文字実体参照はHTML Living Standardの13.5 Named character referencesで定義されています。このページからダウンロードできる文字実体参照の一覧(JSON形式)を変換元(入力ファイル)として使用します。(以後、「文字実体参照 […]

【100均】マグネット付きティッシュボックスケースの作り方

はじめに スコッティのティッシュボックスは専用のマグネットバーを差し込むだけで簡単にマグネットで留められるので愛用していました。 最近ではスコッティ以外の安めのティッシュボックスを使う場合があるのですが、マグネットバーを差し込む穴はありません。そのため、カッターで穴を開けたり、マグネットバーの端を無理やりグリグリ差し込んで穴を開ける、等、いつも面倒に感じていました。 リンク 市販のマグネット付きテ […]

HTML4, HTML5エスケープ(文字参照)

数値文字参照・文字実体参照 半角の不等号(<>等)などのHTML上で直接記述できない文字や記号を表記する方法が文字参照です。 HTMLやXMLの基になっているSGMLから提供されている手段です。 文字参照では、次の2種類の表記方法があります。 分類 説明 例 備考 数値文字参照 特定文字を数値で表記 &#1234;(10進数で指定)&#x04D2;(16進数で指定) 1 […]

エレコム EX-Gマウスのレビュー(M-XGL10DBBK)

量販店で手のフィット感が非常に良いEX-Gシリーズを見つけたので、購入して使ってみた感想です。 EX-Gマウスの紹介 エレコムのマウスは、通信方法やマウスの特徴・用途に合わせて、いくつものシリーズがあります。 (2021年9月現在のエレコムのマウス製品紹介に基づいています。この枠組みの他にゲーミングマウスシリーズもあります。) Bluetoothワイヤレス 2.4GHzワイヤレス 有線マウス ハー […]

【100均】Bluetoothの電波干渉を改善する

事象 LogicoolのBluetooth接続のキーボード(MX Keys)を使っています。 キーボードの接続先は、デスク下にPCです。キーボードに付属のUSBレシーバをPCに接続し、キーボードとBluetoothで接続しています。 キーボードとの距離はデスクの板を挟んでわずか50cm程だが、時々応答が遅延したり、応答が返ってこずBluetooth接続が切断される場合もあった。キーボードのバッテリ […]

C#: キー・値の順番を保持してJSONをデシリアライズ

はじめに キー・値形式のJSONを解析する場合、JsonSerializer.Deserialize<Dictionary<T, V>>()を使って簡単に実現できますが、キー・値の順番は保証されません。 ここでは、このキー・値の順番を保証する方法を紹介します。 次の環境を使用して動作確認しています。 OS Windows 10(64ビット) IDE Microsoft Vi […]

C#: サロゲートペアを考慮したUnicodeコードポイント変換

C#の文字列はUTF-16を使用しているので、UnicodeとUTF-16を中心とした話になります。 要約 Unicodeに関する前提知識 Unicodeでは各国で使用する文字一覧を定義(符号化文字集合)しており、U+01234等のコードポイントで文字を識別する。 Unicodeの文字をコンピュータで表現する方法(文字符号化方式)として、UTF-8, UTF-16, UTF-32等が決められている […]

Excel VBAで独自形式のCSVファイルを作成

概要 ExcelはRFC4180に準拠したCSV出力が可能ですが、逆にRFC4180に準拠しない独自形式のCSV出力はできません。 そのため、ここではExcel VBAを使って独自のCSVファイルを出力するサンプルを紹介します。 サンプルの内容を少々変更すれば、タブ区切りファイル(TSV)やSQLインサート文の作成等にも対応できます。このように応用する前提のサンプルであるため、可能な限りシンプルに […]

.NET Core(C#): List・HashSetのContains性能比較

対象データが処理対象かの判定、データのユニーク化等の用途で、コレクション内のデータ存在チェックを行いたい場合があります。これを実現するために、List/Dictionary等のコレクションクラスのContains()メソッドを使用することになります。 ここでは、各コレクションクラスにおけるContainsの性能測定を行いました。 要約 測定条件は次の通りです。 コレクションから文字列キーを検索する […]