鬼滅の刃 無限列車編 C#er は、鬼滅の刃 無限列車編 をこう見る。(下記コード部分にはネタバレを含みます。) NotImplemented はきちんと実装しないと使えませんよ。 using System; using System.Collections.Generic; using System.Linq; using ヒノカミ神楽…
はじめに Java の javadoc のように C# においても /// がドキュメントコメントになることは知っており VS Code にもそれ用の拡張機能を加えていた。しかし、これまできちんと運用したことがなかったため、ここらで導入してみることにした。(DoxFx は 2.61.0…
null 安全なジェネリクス記法 C# 9.0 からようやく null 安全なジェネリクスがまともに記述できるようになったため nullability について試行錯誤してみた。 C# 9.0 以降の nullable コンテクストはそれなりによくできているが、nullablity 解釈の柔軟さ・厳…
C# ソースの (フォルダ再帰的な) ステップカウンタ ソースコードのファイル数・行数を簡便に知りたい。 dir /b /s から find /v /c へ繋いでワンライナー的にやれば ... といつも思って検索をかけるものの、なかなかズバリの解が出てこないため、バッチファ…
備忘録 原因不明の不具合に悩まされ、調べたら C# 言語仕様だったということがあったためメモ。record の override method は class のそれと違う動作をする。 using System; public class Class1 { public string PropC1 = "PropC1"; public override strin…
備忘録 あるアセンブリに定義されているクラスを参照させつつ、その実体を別のアセンブリに転送したいと思い、TypeForwarding を調べてみた。ufcpp.net learn.microsoft.comが、なかなかうまくいかない。情報が少なすぎてよくわからなかったが、中国語で書か…
備忘録 C# 8.0 から class 型と class? 型が区別されるようになり Null 安全性が高まったが、ジェネリクスでの Nullable の扱いが難しく、特に C# 8.0 と C# 9.0 以降で大きな違いがあるため、後者のスタイルで記述するときのまとめを備忘として記録する。 …
気づき TypeScript と違って C# はラムダ式の出力の型から型推論できない!下記の定義 (2) のような、前項の結果を参照・利用する拡張メソッドを定義しようとしていて気づいた。 public static class ExtensionIEnumerable { // 定義 (1) ~ 一般形 public s…
気づき TypeScript と違って C# はラムダ式の出力の型から型推論できない! 下記のような、前項の結果を参照・利用する拡張メソッドを定義しようとしていて気づいた。 |cs| // 定義 static IEnumerable SelectPrevRef<TSource, TResult>(this IEnumerable source, Func<TResult, TSource, TResult> func) w</tresult,></tsource,>…
探索問題 配列 val[] に入っている 2 値の差がある定数 target0 に一致するか、という問題に直面し、まずは愚直にこんなコードを書いてみた。 // C# code long[] val = new long[n]; // val[0 .. n - 1] には単調増加な正値が入っている long target0 = ...;…
きっかけ いままで 10 年ほど C# を愛用してきて C# でコードを組むときは可読性や開発効率などアプリ層観点でしかロジックを眺めてこなかったが、競技プログラミングに C# が使えるのだろうかという疑問をふと抱いたため、30 年ぶりに C++ も書いてみたりし…
目的 VS Code での C# コンパイル環境を構築するにあたり、Build は Windows から、Run は Docker コンテナから実行するようにしたい。C# と C++ を混在開発するにあたり、C# の Build までの作業のみ Windows で、それ以外の作業はすべて Docker コンテナで…
目的 LaTeX コンパイル環境を構築したい。LaTeX はモジュールや文字フォント等で複雑な依存関係がありそう、ということで、構築失敗による環境汚染を避けるために Ubuntu Docker コンテナで実現したい。LaTeX の文書作成 & PDF 閲覧は Windows 上の Visual S…
四半世紀の間、使い続けてきた emacs 系エディタから VS Code に移行しようかと思う。 第1の理由 ... Visual Studio の代替 もっさり重くて嫌いだが Nuget 利用や Roslyn 以降の C# コンパイルの場面で使わざるを得ない Visual Studio を代替したい。これが…
Jupyter から C# で Numpy.NET ライブラリを利用できないかと思い、 #r "nuget: Numpy, 3.7.1.25" using Numpy; と記述するも、結論としては NG。このようなランタイムエラーが出る。 System.DllNotFoundException: Unable to load shared library 'python37…
学生時代に情報科学科の同級生たちと「FizzBuzz 問題というものがあるらしいが、この程度の基礎ができないプログラマなどいるはずがない」と会話していた。それから四半世紀。小学生にはプログラミングの授業があり、非 IT 企業の一般社員にも「Python 書い…
羽田空港内某所で Flight Simulator による F/O 訓練。B737-Max で 2.0H。本日は N 教官。5 ヶ月ぶりの F/O 訓練。ブランクが長い上に、この間イメトレをまったくやっていない。さすがに技量は低下しているだろうと覚悟して訓練に臨む。 Acceleration / Dece…
C# 9.0 / .NET 5.0 に長らく期待していたことの1つに record の with 初期化子がある。これは record の一部のプロパティを異なる値に置き換えるためのもので y = x with { Value = x.Value * 10 } と書くと x の Value プロパティだけを 10 倍にしたオブジ…
C# 9.0, .NET 5.0, .Entity Framework Core 5.0 を使って数ヶ月。当初抱いていた LINQ to Entities の機能向上への期待は打ち砕かれたが、それでも EF 6.0 や EF Core 2.0 に比べたら使いやすくなっているような気がする。本格的に使うにあたり、少し工夫を…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 Docker on WSL2 環境…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 Bitnami/Redmine + Ma…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 Tensorflow (CPU 版) …
更新 2022.10.19 Windows 11 + WSLg preview 化に伴い、ポートフォワーディングを設定ファイル1つで実行できるようになり、バッチファイルは不要になった。後述 "Port Forwarding 設定の前提" 節、"Port Forwarding 設定" 節の作業の代わりに %UserProfile%…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 環境構築メモ 3/3 を…
Docker 基本操作 (チートシート) Docker 操作の状態遷移 Docker の状態遷移がわかりづらい (にも関わらず図示した解説を見かけない) ため、誤っている可能性を恐れず、可視化してみた。(利用は自己責任で。) Docker レポジトリ (イメージ) の操作 レポジトリ…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 環境構築メモ 3/4 を…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 環境構築メモ 2/4 を…
更新 2022.10.09 導入保留としていた WSLg preview を Widows 11 が勝手にアップグレード導入し、VcXsrv と競合するようになってしまったため、泣く泣く VcXsrv を外すことにする。 具体的には XLaunch を起動しないようにし、~/.bash_profile の export DIS…
前提 導入対象とするマシンは下記の通り。 Hardware : CPU = i10900, GPU = GeForce RTX 2080Ti, Mem = 32GB, SSD 1 TB + HDD 2TB ベース OS : Windows 10 Pro バージョン 20H2 (ビルド 19042.685) 仮想 OS : Ubuntu 20.04 LTS on WSL2 WSL2 と Ubuntu 20.04…
.NET 5.0 および C# 9.0 リリースによって LINQ 周りの機能が飛躍的に向上するかと思いきやそうではなかった。期待していた record の with 構文は式木にならず *1 IQueryable や LINQ to Entities で利用できないため、生産性向上にいっさい寄与しない *2。…