窓ふき日記
Windows を試す日記。
- Goal 1: Chromebook と同程度に非コード作業をできるようにする。要するに不自由なく Chrome が動くようにする。
- Goal 2: Linux でのベーシックな開発作業をできるようにする。
- Non Goal: ファンシーな Windows 専用アプリを使う
- Non Goal: Windows native の開発をする
試すこと:
- DuckDB をビルドしてみる
- Android Studio を使ってみる
- Jupyter を使ってみる
- 起動時の SSH port forwarding を自動化
- XPS 15 にインストールしてみる
2022-03-10
ここまでにやったこと:
- Windows 10 の ISO image から Bootable USB を作成, インストール.
- イメージは Microsoft からダウンロードできる。
- Disk utility を使う。一部ファイルがでかすぎるため NTFS でフォーマットする必要あり。まあまあ時間かかる。
- XPS 13 に刺してインストール.
- Amazon で Windows 10 のライセンスを購入, activate.
- Windows Updates を全部適用… したら Windows 11 になっていた.
- Install Chrome
- Dell のサイトを探してドライバを入れる。
- セキュアじゃないかんじの謎のプログラムをインストールするとウェブサイトがデバイスを検出してドライバを列挙してくれるようになる。どうみても attack vector です。
- 必須といわれるものを入れてもいろいろ動かない。追加でどれが必要か自明ではないが、動かない機能に対応するやつを入れるかんじ: Audio, BT など.
- Caps lock を殺す: keyboard layout - Map capslock to control in Windows 10 - Super User
- 最初は AutoHotKey というのを使ってみたが、キー入力が激しく messed up だったで諦めで regedit.
- Google Japanese IME を入れたが、郷に従おうと思い直してアンインストールし MS IME でがんばってみる。
- WSL を設定: Install WSL | Microsoft Docs
- 結局本家のドキュメントが一番よくかけている印象。
- gcloud を入れる (code-server の VM に SSH するため。)
- code-server へのアクセスを確認
- VSCode 用にマシっぽいフォントを入れてみる - コーディングに最適な日本語対応の等幅フォントSource Han Code JPとは - ICS MEDIA
感想:
- Windows, なかなか速い. 7 年前の laptop (2 Core 4 HT の i5, 8gm ram) で全く問題なし。起動も速いのが印象的。再起動よくするからな・・・
- 一番のフラストレーションはキーボードショートカット類だが、これは完全になれなので頑張ります。フォントもいまいち好きじゃないが、これも慣れということで。
- こまごまとしたフラストレーションはあるが, Ubuntu で鍛えた身にはそよ風である。しかし Mac から来たらつらいかもな。てか regedit とか知らないと積んでしまうじゃん・・・。
- virtual desktop がデフォルトであるのもフルスクリーン志向の自分にはうれしい。最近は Mac にも CrOS にもあって、めでたいねえ。
- WSL の資源利用の少なさが謎. メモリとか全然使ってなさそうじゃん。
2022-03-11
- WunderMail という GMail クライアントを試してみた -> 遅すぎのため uninstall.
- Messenger desktop をインストール.
Building DuckDB
- 適当にビルドしてみると, Vmmem というプロセスがガンガンメモリを使い始める。知り合いはこれがいやで WSL を使うのをやめたといっていた。なんとかならんか調査してみる。
- Taking Back Memory From Vmmem/WSL | BlogLogBlog
- 解決策を示している、としているが・・・解決してねー。WSL の VM はデフォルトで 4GB 確保するらしい。ただ lazy にしかページを触らないのでちまちまさわっているうちは大丈夫。 でもビルドのような作業をするとファイルがキャッシュに乗ってページが汚れてしまう。そして guest のキャッシュは host にとっては単なる heap なのでメモリは使われる。 そして guest (Linux) 側で file cache を捨ててもそのメモリが host (Windows) に帰ってくることはない。
- XPS13 は 8GB しかないので厳しいな。このスレ によると 4GB というよりはシステムの物理メモリの半分ということらしいが。
- Linux VM が host にメモリを返せればいいが、そういう host-guest 通信は存在しないのかなあ。あるいは Linux ではなく Windows が file cache を持ってくれるか・・・
- とかいってる間にビルドが終わったので task manager を見ると VmMem のメモリ使用量が 3.5GB くらいから 700MB に減っていた。つまり guest が host にメモリを返すことはできるらしい。ただそういうやり取りが追い付かないのでメモリ消費が spike したり、やりとり自体のコストで CPU が busy になったりする、のかな?それとも CPU の負荷は単に guest での計算が VmMem プロセスに現れるだけなのだろうか。CPU については他にどのプロセスも動いてないので、VmMem が guest の proxy という理解でよさげ。
- 現実的には laptop のメモリをガンと増やすのがよいのだろうな。64GB… は $250 でちょい高し。32GB だと *$150. このくらいかな。
- なお duckdb のビルドはすっごい遅いね。これは XPS13 のせいな気がするが。
- あとビルドの負荷でシステムが遅くなってしまうので CPU を throttle する必要もあるげ。
.wslconfig
に proccessors というセクションがあるから、これを減らせばよい。
2022-03-14
- とりあえず
.wslcofig
でメモリと CPU を絞る. - Task Scheduler でログイン時の SSH Port Forwarding を設定。PowerShell のコマンドは以下のような感じ:
ssh -i "C:\Users\Hajime Morrita\.ssh\id_rsa" xxx@xxx.xxx.xxx.xxx -fNT -L 1313:localhost:1313 -L 8080:localhost:8080
- Task Scheduler への registration に GUI が必要なところがいまいちなので自動化したいが、また今度ね・・・。
2022-03-21
- XPS13 メモリ少なすぎで厳しいためしびれを切らし XPS15 にも Windows をインストール。しかし XPS13 の product key を削除し忘れたため activation にてこずる。最終的には電話越しになんかすることで解決。だりー。
- Google Drive アプリを入れてみる。あら便利だこと。Chromebook の sync は使い物にならなかったが、こいつはさすがにちゃんと動くと期待。
- code-server の設定かったりーな・・・とかお思っていたが、実は VS Code のリモートでいいのでは、と試してみたら、よかった。びっくりするほど快適だわ。ただ VS Code はコード書きにも使うはずなので、混ぜてしまうのが良いアイデアなのかはわからないな。
- code-server の VM の IP アドレス毎回コピペするのかったりーな・・・と思っていたがふと世の中には DNS というものがあったのを思い出し Route53 で適当に命名。
- XPS ではまだ WSL を設定していない・・・がこれは明日だな。
2022-03-22
- XPS 15 に WSL を入れる。
- 再び Duckdb をビルドしてみる。CPU core を 6/8 に throttle しているにもかかわらず CPU の utilization が 100% 近くになってしまうのはイマイチだな。host 側の IO subsystem が CPU を使ってしまうんだろうけれど。VmMem process 自体を cgroup 的に縛れないとちょっとイヤだな。こういうかんじか やはり PowerShell をマスターする必要があるなあ。なおビルドの所要時間は 5min でした。
- make clean してビルドしなおすと 100% まではいかないけど 90% は使われている。VM ってなんだかんだで overhead あるよなあ。あるいは HT というのがそういう性質なのかもしれないが。Duck 業をするなら速い laptop が必要。まあ、しばらくはいいです。メモリは現状 (16GB) で一応足りてるはいるが, 32GB あった方が安心げ。