はじめてのThinkPad
某アドベントカレンダー1日目は、最近Macをやめて、ThinkPadを購入したという話をすることにします。技術っぽい話はそのうちすると思います。
もともと10年近くMacを使ってきました。初めて触ったMacはMac OS X 9とかで、自分のモノになったのはSnow Leopardとかその時だった気がします。実際それからWindowsはほとんど使ってません。主にその理由は、
- Homebrewが使える
- UNIXコマンドがそのまま使える
- 昔はWSLはなかったので...
- 安定している
- ハード選択で迷うことがない
などでした。もちろんちゃんとコンピュータを使うようになった大学生以降もMacBook Pro 15インチ (Mid 2015)を持ち歩いていましたが、最終学年にして主にSSDの容量不足(整理するのがだるかった)や、なんか他のも使いたいなと思ってきたので真面目にラップトップを検討しました。
ThinkPadを買ってみた
ということで、ThinkPad T490を購入しました。スペックはWQHD + メモリ32GB + SSD1TBです。便利な点がありました。
- 高コスパ(のように思える)
- メンテナンス性が良い
- LTEモジュールがつけられる
- まだまだMacでは道のりは長そう
- 拡張性
- 軽いのにWQHDにできる
- 15のRetinaモデルから来たのでWQHD以上は必須
と、色々と悪くはなかったです。キーボードもそれなりに打ちやすく、さすがThinkPadと感じました。
Windowsでいろいろやってみる
現状WSL 2がまだ安定していないこともありますが、筆者としてはWSL 2がリリースされてもあまり積極的に利用はしないと思っていました。理由はHyper-Vです。現状、Hyper-Vが有効になっていると他のハイパーバイザ(VirtualBox、VMwareなど)が利用できません(例外あり、後述します)が、たまに別の用件でVMを使うことがあるかもしれないので、できればVMを使えるようにしようと思っていました。
そこで、VirutalBox 6.0から実装されているHyper-V Fallbackを試してみることにします。Hyper-V Fallbackは、(推測ですが)VirtualBoxからHyper-Vを呼び出す機能で、実際に使えそうですが、筆者の環境では動作しませんでした。これについてはフォーラムや他の情報でもまだ例があまりないので発展途上ということでしょう。
ということで、Hyper-Vと他のハイパーバイザの共存が絶望的なので、今後を見据えてHyper-Vオンリーで構築することにしました。
Hyper-VはNested VMをサポートしており、仮想マシンの中で仮想マシンを起動することができます。これにより、VirtualBox on Hyper-Vのようなことができます。ここまでで、筆者のWindows環境は「Windows上のHyper-VでUbuntuゲストを起動して、必要に応じてゲスト上でVirtualBoxを起動する」となりました。Windows側ではWSL等は使わず、SSHクライアントで常にUbuntuに繋ぎに行って開発、ということをやっていました。
が、これがかなり不便でした。ファイル等はSambaでローカルに露出させていましたが、ホストにあるように見えてホストにあるわけではないので、IDE等がホストではまともに動きません。ので、vcxsrv等を利用してX ForwardingをしてIDEを使おうとしましたが、HiDPIなディスプレイにしてしまったため、スケーリングがおかしいことになり、マルチディスプレイではまず使えないという状態になりました。
Nested VMも、使えるは使えますがかなり低速になってしまい、あまり機会がないとは言えなかなか常用は厳しいと感じました。
Ubuntu に完全移行
ということで、Windowsを捨てて完全Ubuntuにしました。概ねインストールするだけで動作し、Linuxデスクトップの進化を感じました。
しかし、まず残念な所がいくつかありました。
- LTEモジュールが使えなくなる
- デバイスドライバが存在しませんでした。これから動かすプロジェクトもありそうなので期待...。
- 指紋センサーも使えなくなる
- なんで...
- トラックパッドが残念
- スケーリング問題
- マルチディスプレイ(メインWQHD + サブFullHD)みたいな構成だと画面がバグる
- 学校で発表するときとかに不便(ミラーでなんとかしのぐ)
- VPNが繋がらない
が、良い所もありました。ネイティブLinuxなので、Dockerを積極的に使いたくなります。Docker for MacはMacのハイパーバイザに引っ張られますが、常に動かすサーバ等と同じOSを使って居るのは気持ちが良いです。他にも、ネットワーク周り(システムコールに依存する)プログラムを書くときはLinuxで書きたいので便利です。逆に言うと、そのぐらいしかなかったということになります。
結論
ということで、来年になったら全部が良くなっていることを願っております。