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

Procedural Programming w/ C# -アルゴリズムの威力

探索問題 配列 val[] に入っている 2 値の差がある定数 target0 に一致するか、という問題に直面し、まずは愚直にこんなコードを書いてみた。 // C# code long[] val = new long[n]; // val[0 .. n - 1] には単調増加な正値が入っている long target0 = ...;…

C# LINQ ~ 性能評価 (1) : ラムダ式とローカル関数

きっかけ いままで 10 年ほど C# を愛用してきて C# でコードを組むときは可読性や開発効率などアプリ層観点でしかロジックを眺めてこなかったが、競技プログラミングに C# が使えるのだろうかという疑問をふと抱いたため、30 年ぶりに C++ も書いてみたりし…

環境構築メモ ~ Visual Studio Code + WSL2 + Ubuntu + Docker のコンパイル環境構築時の注意

目的 VS Code での C# コンパイル環境を構築するにあたり、Build は Windows から、Run は Docker コンテナから実行するようにしたい。C# と C++ を混在開発するにあたり、C# の Build までの作業のみ Windows で、それ以外の作業はすべて Docker コンテナで…

環境構築メモ ~ Visual Studio Code + WSL2 + Ubuntu + Docker + LaTeX のコンパイル環境

目的 LaTeX コンパイル環境を構築したい。LaTeX はモジュールや文字フォント等で複雑な依存関係がありそう、ということで、構築失敗による環境汚染を避けるために Ubuntu Docker コンテナで実現したい。LaTeX の文書作成 & PDF 閲覧は Windows 上の Visual S…

Visual Studio Code へのエディタ移行

四半世紀の間、使い続けてきた emacs 系エディタから VS Code に移行しようかと思う。 第1の理由 ... Visual Studio の代替 もっさり重くて嫌いだが Nuget 利用や Roslyn 以降の C# コンパイルの場面で使わざるを得ない Visual Studio を代替したい。これが…

C# on Jupyter からの Numpy.NET 利用

Jupyter から C# で Numpy.NET ライブラリを利用できないかと思い、 #r "nuget: Numpy, 3.7.1.25" using Numpy; と記述するも、結論としては NG。このようなランタイムエラーが出る。 System.DllNotFoundException: Unable to load shared library 'python37…

FizzBuzz

学生時代に情報科学科の同級生たちと「FizzBuzz 問題というものがあるらしいが、この程度の基礎ができないプログラマなどいるはずがない」と会話していた。それから四半世紀。小学生にはプログラミングの授業があり、非 IT 企業の一般社員にも「Python 書い…

Training in Commercial Pilotage with FTD/FFS - Constant-Rate-and-Speed Climb / Descent, Lead Design for Level Off

羽田空港内某所で Flight Simulator による F/O 訓練。B737-Max で 2.0H。本日は N 教官。5 ヶ月ぶりの F/O 訓練。ブランクが長い上に、この間イメトレをまったくやっていない。さすがに技量は低下しているだろうと覚悟して訓練に臨む。 Acceleration / Dece…

Functional Programming w/ C# LINQ - with 初期化子の IQueryable<T> 対応版代替簡易記法

C# 9.0 / .NET 5.0 に長らく期待していたことの1つに record の with 初期化子がある。これは record の一部のプロパティを異なる値に置き換えるためのもので y = x with { Value = x.Value * 10 } と書くと x の Value プロパティだけを 10 倍にしたオブジ…

Functional Programming w/ C# LINQ - 左結合 Left Join の簡易記法

C# 9.0, .NET 5.0, .Entity Framework Core 5.0 を使って数ヶ月。当初抱いていた LINQ to Entities の機能向上への期待は打ち砕かれたが、それでも EF 6.0 や EF Core 2.0 に比べたら使いやすくなっているような気がする。本格的に使うにあたり、少し工夫を…

Docker on WSL2 環境構築メモ (6/x) - Jupyter Notebook への .NET Interactive 追加導入

前提 導入対象とするマシンは下記の通り。 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 環境…

Docker on WSL2 環境構築メモ (5/x) - Bitnami/Redmine 導入

前提 導入対象とするマシンは下記の通り。 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…

Docker on WSL2 環境構築メモ (4/x) - Tensorflow (CPU 版) 導入

前提 導入対象とするマシンは下記の通り。 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 版) …

Docker on WSL2 環境構築メモ (3/x) - ネットワーク設定

更新 2022.10.19 Windows 11 + WSLg preview 化に伴い、ポートフォワーディングを設定ファイル1つで実行できるようになり、バッチファイルは不要になった。後述 "Port Forwarding 設定の前提" 節、"Port Forwarding 設定" 節の作業の代わりに %UserProfile%…

Docker on WSL2 環境構築メモ (2/x) - 設計戦略

前提 導入対象とするマシンは下記の通り。 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 on WSL2 環境構築メモ (1/x) - Docker 基本操作

Docker 基本操作 (チートシート) Docker 操作の状態遷移 Docker の状態遷移がわかりづらい (にも関わらず図示した解説を見かけない) ため、誤っている可能性を恐れず、可視化してみた。(利用は自己責任で。) Docker レポジトリ (イメージ) の操作 レポジトリ…

Ubuntu 20.04 LTS on WSL2 環境構築メモ (4/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 環境構築メモ 3/4 を…

Ubuntu 20.04 LTS on WSL2 環境構築メモ (3/4) - 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 環境構築メモ 2/4 を…

Ubuntu 20.04 LTS on WSL2 環境構築メモ (2/4) - GUI 導入

更新 2022.10.09 導入保留としていた WSLg preview を Widows 11 が勝手にアップグレード導入し、VcXsrv と競合するようになってしまったため、泣く泣く VcXsrv を外すことにする。 具体的には XLaunch を起動しないようにし、~/.bash_profile の export DIS…

Ubuntu 20.04 LTS on WSL2 環境構築メモ (1/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 WSL2 と Ubuntu 20.04…