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

Rustでもメタプログラミングでto_stringしたい

はじめに Rustでは#[derive(Debug)]すれば勝手にDebugトレイトが生えますが、まぁ一回くらいは自分で実装してみてもいいんでね?という事で実装します。 C#やScalaでは実行時に型情報が手に入るので、その型情報を使用してインスタンスに対してリフレクショ…

Entity Frameworkを使ったプログラマの末路・・・

C#

はじめに 最近取り組んでいたEntity Framework Coreを使っているプロジェクトがひと段落したので、今後EFを使おうか検討している人向けに1つの事例として残しておこうと思います。 結論としてはキャッチーなタイトルとは裏腹に、今回のプロジェクトではメリ…

新任Git管理者のための歴史改変入門

この講義について 役割としてGit管理者をしていたり、もしくは特段評価に反映されないのに他に詳しい人がいないからという理由からGit管理者みたいなことをする羽目になった人向けの履歴改変入門です。 前提 ここでの歴史改変とは、Gitリポジトリの各コミッ…

Postgresでも複数のインデックスが使用可能な状況ならカーディナリティが高いカラムのが優先的に使われるんだよね その2

はじめに 前回に引き続き、Postgresのオプティマイザの挙動を確認しようの会です。 tablename attname avg_width n_distinct table1 c1 11 -1 table1 c2 8 -0.55219007 table1 c3 7 8332669 table1 c4 6 930908 table1 c5 5 98600 table1 c6 4 9990 table1 c…

Postgresでも複数のインデックスが使用可能な状況ならカーディナリティが高いカラムのが優先的に使われるんだよね

はじめに タイトル通りです。 挙動ベースのお話でソースを追ったわけではないのです。 環境 select version(); PostgreSQL 14.5, compiled by Visual C++ build 1914, 64-bit 環境構築 こんな感じにクラスタを作成して initdb --encoding=UTF8 --no-locale -…

できる Fedexを使用した海外への返品

はじめに 前にFS.comで買ったWifiのアクセスポイントなんですけど、初期不良を引いちゃいましてね。 jyuch.hatenablog.com 不良の切り分け作業とか返品手続きとかはかなりスムーズにいったのですが、Fedexの使い方がわかりずらかったのでそれについてです。 …

逸般の誤家庭でも10GbpsのLANを構築したい(配線・動作確認編)

はじめに 前回買った機材が関税の請求書を伴ってやってきたので、配線と動作テストを行います。 jyuch.hatenablog.com 配線 最終的に以下のような感じになるように配線を行います。 NICのインストール 今回買ったNICはIntel 82599EN(互換?)チップを積んで…

逸般の誤家庭でも10GbpsのLANを構築したい(機材選定・購入編)

はじめに 弊宅には一時秋葉原で激安で販売されていたアライドテレシスのAT-x510-28GTXが鎮座しており、日々爆音をまき散らしながらトラフィックを捌いています。 x510にはSFP+が4ポート備わっており、やろうと思えば10Gbpsを扱えます。 しかしまぁ、あまりや…

C#でも構文を最大限悪用してDSLを定義したい

C#

はじめに ディレクトリのような階層構造をC#で簡潔に表現できないかと構文を最大限悪用して試行錯誤した結果です。 作例 var result = await "C:\\aaa" with { _ = new _ { await "bbb" with { _ = new _ { "ddd" } }, await "ccc" with { _ = new _ { "eee"…

XigmaNASで運用しているZFSのディスクを交換したお話

はじめに 弊社*1ではXigmaNASとZFSを使用してファイルサーバを運用しているのですが、初期導入時に金をケチっていわゆるデスクトップ用HDD*2を使用していました。 今まで特にトラブルなく運用できていましたが、急に逝かれても困るので重い腰を上げてNAS用の…