5年ぶりに圧倒的高性能PCを組んで満足した
動機
- M75q-1 TinyのCPUパワー不足を解消したい
- メーカーやショップのBTOで、グッとくるものが見当たらない
- マネフォで自分の口座残高を見て、多少は散財してよいように思えた
部品を揃える
勢いで揃えた。約23万円。
大枠のところは、
- わかりやすく高性能なRyzen 9
- Ryzen 9が乗るMini ITXマザボ
- Ryzen 9に耐える電源と水冷が納まるMini ITXケース
あたりで組み合わせを模索した。
CPU: わかりやすく高性能
66000円。M75q-1はRyzen 5 3500GE (4コア8スレ)なので、わかりやすく高性能なものを狙ってRyzen 9 3900XT(12コア24スレ) にした。Threadripperも検討したが、Mini ITXなマザボが無さげなので、見送った。
ケース: めんどくさくなくて、邪魔じゃないやつ
49000円。NZXT H1 にした。電源と水冷がバンドルされているのが「めんどくさくない」。約19cm x 約19cm x 約40cmという、2個の立方体を重ねた外寸というのが「邪魔じゃない」基準でグッと来て選んだ。
マザボ: ASUSの高いやつ
40000円。そういやマザボに何万円も出したことねえな、どんなもんだろうと。さらに「ASUSのマザボは鉄板」という昔の信仰で選んだ。
メモリ: crucialの64GB
39000円。今回もcrucial。無邪気にnon-ECC。たっぷりあるのは正義。M75q-1とは規格が違うので、改めて購入した。
GPU: M75q-1のCPU内蔵GPU Vega 11よりは高速高性能なやつ
29000円。Geforce GTX1660 Super。最新最高速ではないけど、M75q-1のCPU内蔵GPU Vega 11よりは、ずっと速い(らしい)。
他は、家にあった部品を流用した
- SSD: M75q-1 から攫ってきた1TBのやつ
- シリコンパワー。 https://www.amazon.co.jp/gp/product/B07MV5FVMS/
- M75q-1には、もともとのWindows入った128GBのSSDを戻した。
- キーボード, マウス
- logi の K780, MX ERGO
- モニター、サウンドバー
- サウンドバーの音声寸断を金で解決した - sasasin’s blog に書いた機材そのまま
組み立て、使えるようにする
部品構成からして、圧倒的高性能は確信していたが、急いて雑に進めたら遠ざかったので、メモしておく。
素直にクリーンインストールしとけばよかった
M75q-1 からSSDをそのまま攫ってきて刺して、なんとかならないか試行錯誤してた。結果は何とかなりそうで、何ともならなかった。
- M75q-1 からSSDをそのまま攫ってきて刺した。モニタ(A)に映らない。これをモニタ(A)と称することにする。映らないので、何が起きているか、何も起きていないか不明。
- 何が起きてるか不明なので、バラして、再度組み立てて、まあやっぱりモニタ(A)に映らない。マザボのPOSTのLEDは、電源ONから各色に遷移した後に消灯しており、つまり異常なしと言ってる。イラァ.....初期不良かテメェ....。
- UbuntuでGRUBからリカバリモードで起動すると、これは映る。映るが、640x480なので、実用ではない。
- 別のモニタ(B)に刺したら映って、ふつうに使えた。この時点で、初期不良ではなく、見えてないだけで起動はしており、モニタ(A)と自作PCの間の何かがダメなんだな、まで確信した。
モニタ(A)と、今回の自作PCの間には、以下記事のとおり、HDMI中継するサウンドバーと、HDMIタコ足がはさまっているので、どっちのせいか切り分けを行なった。
- モニタ(A)に、HDMIで直で刺したら映って、ふつうに使えた。
- モニタ(A)、HDMIタコ足、自作PCでつないだら、映って、ふつうに使えた。
- モニタ(A)、サウンドバー、自作PCでつないだら、映らず、応答なし。
- モニタ(A)、サウンドバー、HDMIタコ足、自作PCでつないだら、映らず、応答なし。
サウンドバーーーーこの野郎まさかと思いサウンドバーのマニュアルを眺めると、HDCPがどーたらとかある。Ubuntu側に入れてあるGPUドライバは、OSSなnouveauなので、よく知らんが何か足りてないのかも。Nvidia謹製GPUドライバにしたら映った。
- モニタ(A)、サウンドバー、HDMIタコ足、自作PC(Nvidia謹製のGPUドライバ)でつないだら、映って、ふつうに使えた。
- 映るならもういいかなと思ったのも束の間、電源ON/OFF、再起動すると、映らず応答なしが頻発するようになった。
ここまで5時間くらい粘ったが、いよいよ面倒くさくなった。/home を丸ごとtar.gzに固めたバックアップ取って、SSDをフォーマットした更地にUbuntu20.04を入れなおした。追加のキッティングは、いつもの秘伝のシェルスクリプトとAnsibleで、一瞬で終わった。最後にバックアップから必要なものだけリカバリして、安定動作してくれた。
M75q-1の内蔵GPUは意外に高性能だった。きちんと比較すべきだった
最初は別の1枚を買ってた。6900円。GeForce GT710。Ubuntuにするし、ゲームもやらないので、マザボのオンボードのGPUか、CPU内蔵のGPUで全然OKだった。しかしRyzen 9はGPUを別で用意する必要がある。しぶしぶ、HDMIで4k出せて、ファンレスで、とにかく安いのを、として選んだ。もっと安価でファンあり空冷のがあったけど、ファンの耐用時間が短かそうな気がしたので、ファンレスがあるならファンレスを選びたかった。
ウキウキで組んでみたら、SSD横着とサウンドバーのせいで散々で、ようやく映ったと思ったら640x480で、Nvidia謹製ドライバ入れて4kで映ったと思ったら、もっさーカクカク。カクカクするの意味わからんぞと方々調べて、そもそもの性能が足りてないんじゃないかと、ベンチマークの参考値を探した。GeForce GT710は、M75q-1のRyzen 5 3400GEの内蔵GPU Vega 11 と比較して、だいぶ低い。くそっ。
6900円は sunk cost 埋没費用として忘れることにした。ファイナンスで勉強したやつ。
低性能を我慢する意味が皆無なので、ちゃんと性能あるやつを改めて買う。Vega 11と性能で同等以上を探すと、8000円以上になる。15000円くらいで買えるやつを選べば間違いなさそう。ただ、ちょっと待てよ、GPUに自腹で1万円以上を出したことがないのを思い出した。このままでは墓標に「生涯GPUに1万円以上を出さずに終わった男」と書かれかねない。これは道楽である。ここらで3万くらいのを使ってみてもバチは当たらんだろう。というか3万出すとどのくらい変わるのか体感する必要がある。などとGeForce GTX1660 Superの29000円(税込)を選んだ。消費税が入れば30000円越えるだろうと思ったら税込なのは誤算であった。ダサい。
ちゃんとスルスルサクサク動くようになって満足している。
memtest86は営利企業から無料版を落として使える
64GBの4passに、11時間かかった。運よくエラーは見つからず安堵した。
そういえばUbuntuのインストールメディアにmemtest86って同梱されなくなったなとググったら、memtest86の原著者がPassMark社に売却したとかの経緯があって https://www.memtest86.com が、あのような様子になってるらしい。
memtest86はFreeのをダウンロードして、unzipすると、取説PDFとUSBメモリ用のイメージファイルが出てくる。取説PDFを読み、USBメモリに書いて、刺して起動すれば使える。取説PDFを読め。ほっとくとシングルコアで動くので、いったん(C)で設定画面を出して、CPUはパラレルに設定してからmemtestする。
Unifying が不安定「になった」?
Unifyingで接続してるキーボードとマウスが、突如として切れる。頻発する。M75q-1で使って、まったくそんな感じはなかった。どこに原因があるか。よくわからない。
対症療法だが、キーボードもマウスも、UnifyingとBluetoothで接続できるので、Unifyingで切れたら、Bluetoothに切り替えて良しとしている。
設置
段々になるようモニターとPS4の間に置いてみた。黒家電の並びに馴染んでいる。
ゲーム向けを名乗る部品が多いけど、無闇に光らず好感がもてる。M75q-1では冷却ファンが唸っていたような負荷も、静かなまま捌いている。
12コア24スレ、メモリ64GBなタスクマネージャーの様子。暇そうにしている。
参考
部品はツクモとamazonから購入した。
- AMD エーエムディー Ryzen 9 3900XT W/O cooler (100-100000277WOF)|ツクモ公式通販サイト
- ASUS エイスース ROG Strix X570-I Gaming|ツクモ公式通販サイト
- Crucial クルーシャル CT2K32G4DFD8266 [デスクトップ用 / DDR4 SDRAM(288pin) / 64GB(32GB × 2枚組)セット / DDR4-2666 CL19-19-19]|ツクモ公式通販サイト
- https://www.amazon.co.jp/gp/product/B086TGKDN6/
- https://www.amazon.co.jp/gp/product/B07ZHDRNKL/
- https://www.amazon.co.jp/gp/product/B07MV5FVMS/
むすび
全部品を不満ない性能で選び、めんどくさいのは適度に金で解決しつつ、PC自作を満喫できた。
RailsでRDBデータをElasticsearchに超高速で全件登録したい気持ち(未検証)
Rails何もわからない民。RDBのデータ件数が猛烈に多く、Elasticsearchへの全件登録にXX時間かかるので、どうにかしようとしている。以下は妄想メモ。そのうち検証する。
現状から書き換えてみる
これがテーブル全件登録。現状これでXX時間かかっている。 __elasticsearch__
は elasticsearch-rails
というgemがモデルクラスに生やしてるオブジェクト。ここに import
とか index_document
などのメソッドが生えている。 import
の実装は https://github.com/elastic/elasticsearch-rails/blob/master/elasticsearch-model/lib/elasticsearch/model/importing.rb#L140-L185
Hoge.__elasticsearch__.import(index: new_index_name)
このような書き換えができる。一件登録の __elasticsearch__.index_document
というメソッドが存在してる。 index_document
の実装は https://github.com/elastic/elasticsearch-rails/blob/master/elasticsearch-model/lib/elasticsearch/model/indexing.rb#L370-L378
Hoge.find_each do |o| o.__elasticsearch__.index_document(index: new_index_name) end
find_each
は find_in_batch
をラップしたメソッドで、このように書き換えできる。
Hoge.find_in_batch do |records| records.each do |o| o.__elasticsearch__.index_document(index: new_index_name) end end
find_in_batch
でレコードを配列として持ってきたことで、Parallel に渡せるようになる。Parallel はマルチスレッド処理を簡易に使えるようにするgem。in_threads
は並列数。あまり無茶するとEC2インスタンスが爆散するので控えめにする。
Hoge.find_in_batch do |records| Parallel.each(records, in_threads: 4) do |o| ActiveRecord::Base.connection_pool.with_connection do o.__elasticsearch__.index_document(index: new_index_name) end end end
ところで Datadog でインポート中のメモリの動きを見ていると、スワップに手を付けそうになっている。ActiveRecord がメモリにクエリキャッシュを溜めるのをOFFってみる。これが効くかわからないが。
Hoge.uncached do Hoge.find_in_batch do |records| Parallel.each(records, in_threads: 4) do |o| ActiveRecord::Base.connection_pool.with_connection do o.__elasticsearch__.index_document(index: new_index_name) end end end end
という妄想を書き散らしたが、ほんとに効くのかわからない。そもそも動くのか不明。
こうなってほしいな
- RDBからは find_in_batch でバルクフェッチしてるので、現状比で、そんな酷いことにならないはず
__elasticsearch__.import
の内部でfind_in_batch
を呼んでいるので、ここで差は出ないと思いたい
- Parallelでマルチスレッドにしてるのは、けっこう効くんじゃないすか。ダメ?
- Elasticsearchに
.__elasticsearch__.index_document
で一件ずつ登録になってるのは改善の余地があるんじゃないか。バルクAPIとかあるんだし。__elasticsearch__.import
は、そのあたりをイイカンジやってるのかな。 find_in_batch
はorder by
しないらしいが、中断した処理の再開を実装したい。どうしたもんかな。- しょせんシングルノード。別途でSidekiqのEC2インスタンスをAutoScalingさせてるので、そっちに投げて非同期の分散処理させたほうが早いんじゃねと思ったりなど
参考文書
そもそもRailsバッチ処理の最適化ってどうやんの、の概観。
elasticsearch-rails
と使い方のサンプル。
find_each
と find_in_batch
Parallel と使い方サンプル。
ActiveRecord::QueryCache::uncached
と使い方サンプル。
Sidekiqがメモリ蕩尽するみたいな文脈でも、uncached しろって指南があった。
Elasticsearch のバルクAPI
サウンドバーの音声寸断を金で解決した
変更前
SoundCore Infini mini というのを使っていました。
音は値段相応、ぜんぜん悪くない。しかし、入力音量が一定以下になると省エネ寸断するらしく、一定以上になって1秒くらいは起動にかかるようで、つまり3秒くらいの寸断がわりと頻繁にありました。映画、アニメ、ゲームなど問わずで、これは厳しいなと。
機材選定
AVコンポとか、7.1chみたいな嵩張るのは見送りました。金額感も合わないし。沼すぎて無理。
やっぱサウンドバー。邪魔くさくない。配線簡単。2万円を超えると各社、わりとマジの製品を並べてます。困ったことにAUX接続が無くて、HDMIが当然だろみたいな圧を放ってます。
なぜ困るか。手元のモニター I-O DATA LCD-M4K491XDB は、音声出力がAUX接続しかない。HDMIのARCにも対応していない。
じゃあサウンドバーが、HDMI複数入力で、モニターに映像出力してるか。してない。どこもHDMIは1入力だけだったり、1入力1出力だけ。
HDMI切替機のようなものはあるか。ある。AVアンプという機材のうち、4万円以上程度の製品が、HDMI切替機として利用できるようです。ただまあ、AVコンポなどと同じで、金額感が合わない。沼すぎて無理。ということでAVアンプは見送りました。
すなおにHDMI切替機を探すと、価格帯や製品によって大きく機能が異なります。寡聞にして存じていない中華メーカー製品が大挙して並んでおり圧倒されます。4k60Hzと3入力1出力を必須条件として絞ると、サンワサプライの以下が出てきました。HDMIを束ねてサウンドバーに流し込むのは、これで大丈夫でしょう。
じゃあサウンドバーどれにしようかね。手元モニターがARCに対応していないので、HDMIを1本しか刺せないのは除外です。さよならBose。HDMI1入力1出力は多種多様にあります。4k60Hzをパススルーできるやつで絞るとどうか。ぜんぜん絞れないぞ。ここからイチャモンじみてきます。ホコリが絡まって積もりそうなのは無理。ごめんYAMAHA。音に関して好き嫌いが大きく別れてるのはやめておきたい。すみませんDENON。
変更後
Sony HT-X8500 というのにしました。消去法だったのは認める。買い替えるならちょっと高いのにしてみよう。ちょっと高いヤツなら寸断とかアホなことにならんだろう、という雑な目論見。
HDMI切替機は、サンワサプライの以下にしました。4入力に3台なので、1個あまってます。
配線はこのように。
変更してどうか
当初の課題であった音声の頻繁な寸断は皆無になりました。音はキレイです。
Dolbyのなんかすごいやつは全然使えてないです。音のプリセットが10個くらいあるようですが、違いがよくわからないです。Bluetooth入力モードにすると、スマホやiPadなどを音源にできますが、HDMI映像中継が切れるのは想定外でした。
HDMI切替機は立ち寄ってポチる必要があり、リモコンの類がほしいなあと早くも思いはじめています。なおオプション機器としてもリモコンは無いので、別のHDMI切替機を購入するしかなく、どのように運用でカバーするか悩ましいです。
ときどき読む記事
仕事の調子の良いとき、迷ったとき、悪いとき、様々なときに読み返す記事。
お仕事を、自分で作る
お仕事とは、わからないことを減らすこと
お仕事とは、最初に案を出すこと
お仕事とは、自分がいなくても、回る仕組みを作ること
お仕事とは、誰もが見向きもしなくなったときに、後片付けを果たすこと
お仕事とは、無能にされる場に留まらないこと
2020年版。SKKでGoogle日本語入力の辞書を使う
だいぶ時間経過してるけど、今の状況どうなんだと調べてみた。
SKKとGoogle日本語入力
日本語IMEは、連文節変換がフツーである。連文節変換は、文章を頭から文末までばーーーっと入力すると、文字や単語の区切り、「てにおは」や品詞の種類を解析して、単語は適宜で漢字やカタカナに変換してくれる仕組み。連文節変換の精度が、すなわちIMEの評価でもあった。WindwosのMS IMEとか、Google日本語入力、ATOK、Macのことえり、などなど多々ある。
SKKは日本語IMEのひとつ。SKKは、文字や単語の区切り、「てにおは」や品詞の種類の解析は人間にやらせて、ひらがなを漢字に変換する単語変換だけやるという、人と機械の責任分界点をズラしたことに設計上の特色がある。実装の元祖はEmacsのDDSKKで、Emacsの外では使えない制約がある。連文節変換をめちゃめちゃ頑張って変換精度を上げようとする数多のIMEと異なり、キーバーインドや操作性を再現させて、OSやプラットフォームの作法に従うだけで移植ができるため、 *nix, Windows, Mac に移植されている。(簡単に移植できるわけではない)
SKKの多くの実装では、SKK自体がローカルファイルを辞書として読むことによる変換だけでなく、SKK辞書サーバーというものを別途起動させて利用できるようになっている。
ところでGoogle日本語入力は、Googleが利用規約に則って収集した猛烈な量のデータを活用し、日本語としての行儀の良さとか正しさは放り投げて、インターネッツ的な実用に振り切った連文節変換を実現している。SKKを使っていると、流行り言葉はどうしても変換がダルくて、スパッと出るGoogle日本語入力が羨ましくなることが多々ある。
Googleは、Google日本語入力のために用意しているGoogle側のサーバーAPIを公開している。
www.google.co.jp internet.watch.impress.co.jp
話を繋げてると、SKK辞書サーバーを作り、その中身ではGoogleのAPIから変換結果を貰う実装が可能である。これをRubyで実現したのが以下であった。
というのが2011年までの話で、長かったが、2020年の今はどうだろう。
Mac & Windows なら Ruby の google-ime-skk
そこそこ年月が経過しているのに、今でもRubyインタプリタを手元に入れれば gem install で入るし、起動して利用できる。なので Mac や Windows では、これ使ったらよいですねという話である。
Ubuntu なら yaskkserv
C++で実装された yaskkserv というSKK辞書サーバーが存在してる。これもGoogleのAPIから変換結果を取ってきている。 *nix 向けに実装されてる。根性でmake installしてもよい。Ubuntuならaptに用意されている。他はわからないけど、パッケージマネージャーから簡単にインストールできそうな気がする。
Ubuntuなら yaskkserv を apt で入れて使うのが、現時点で最も簡単な、SKKでGoogle日本語入力の辞書を使う方法である。
$ sudo apt install yaskkserv
設定ファイルは /etc/default/yaskkserv
に置かれるので sudo vi などしてイジる。
起動停止は init スクリプト経由で操作できる。
$ sudo /etc/inti.d/yaskkserv status $ sudo /etc/inti.d/yaskkserv restart $ sudo /etc/inti.d/yaskkserv status
ansibleならこんな雰囲気でセットアップできる。
ibus-skk の設定画面で、SKKサーバーとして localhost:1178 を追加したら使えるようになる。
今後はどうなるだろう
fish shellの何がいいって、デフォが楽だし、ちょっと楽しいんですよ
手元のシェルを快適にするなら、bashを育てるより、fishで育てたほうがいい。
booth.pm fishshell.com fish.rubikitch.com
インストール
シェルまわり整備。
sudo apt install fish peco ripgrep golang micro xclip sudo snap install starship ghq get https://github.com/x-motemen/ghq curl https://git.io/fisher --create-dirs \ -sLo ~/.config/fish/functions/fisher.fish fisher add decors/fish-ghq fisher add oh-my-fish/plugin-peco fisher add oh-my-fish/plugin-balias
実際aptやsnapのパッケージはansibleで管理しています。fishのconfもちゃんとgithubに上げよう
設定
ログインシェルはbashのままで、bashrcの末尾からfishを呼んでます。bash側でrbenvとかnvmとか整備させて、fish側は操作性に専念します。
tail -n1 ~/.bashrc exec fish
たいして育ってない。派手に使い込んではいないので。
function fish_maintenance # fishのオートコンプリートの更新 fish_update_completions # fisher自体のアプデ fisher self-update # fisherで入れたプラグインのアプデ fisher end function fish_user_key_bindings bind \cr peco_select_history end set GHQ_SELECTOR peco # pip3 set PATH $HOME/.local/bin $PATH # go get set PATH $HOME/go/bin $PATH # sasasin origin shell scripts set PATH $HOME/scripts $PATH # https://micro-editor.github.io/ # viと比べて micro は長いしダルい、miなら右手だけで打てる balias mi "micro" # https://microk8s.io/docs balias mkctl "microk8s kubectl" # https://starship.rs/ # starship が面倒なく使えたんで starship init fish | source
操作
- ctrl+g でghq get してきたリポジトリを探す
- ctrl + r でhistory検索
- めんどくさくなったら fish_maintenance で気分を紛らわせる
- 補完が、あれこれ設定せずデフォの状態で、強力なのがいい。bash completionをせっせと集めたり、書いたりしなくとも、manpageから補完を生成してるらしい。IDEみたくtabキーでスパスパ出てくるの楽しすぎる
シェルスクリプト
~/.config/fish/functions
にいろいろ置くかというと、ぜんぜん置いてなくて、むしろ bash で書いて ~/scripts
に散らかしてます。シェルスクリプトにしようと思うのは、いくつかの環境で使いまわす気がする事柄なので、基本入ってないfishよりも、まあ、bashで書きますでしょう。
結論
いろいろ整備したローカルより、bashしか入ってないリモートやDockerコンテナ内で活動してることのほうが多いので、完全に自己満足ですね。だがそれが楽しい
Lenovo ThinkCentre M75q-1 Tinyに浮かれている
Lenovo ThinkCentre M75q-1 Tiny を買った。まさか据え置きPCを再び買うとは思ってなかった。Lenovo直販で 2020/05/10 に発注して、2020/05/21に到着した。
Macbook Pro 15を数年前から買い替えながら使ってて、MBP16にいまいち食指が動かない状況で、この同人誌にプッシュされた。
部品を揃える
Lenovo直販サイトでグレードを上げると、無駄に値上りする。他所で部品を集める前提で、極限まで絞って購入した。
本体, 35000円
アホほど安い。部品構成だけ見ると平凡。だけど、Mac Miniと同じくらい小型で、自作PCとして組むとくっそ面倒くさい、という補助線をひくと、この価格設定はヤバい。
135w ACアダプタ, 5000円
本体付属のACアダプタは 65w で、本気出すと電力不足から貧血みたいな症状を起こすとの記事を目撃していたので、追加購入した。
WIFI & Bluetooth & アンテナ, 4000円
Lenovo直販での購入時に、何を狂ったか付け忘れたので、仕方なくAmazonで追加購入した。ボードにアンテナを付けるのが一番ヤバかった。写真に定規を並べていますが、肉眼でみるともっと小さく見える。なんであんな小さいんだ。Uubntuは18.04だとドライバがカーネルに入ってないとかPPAで入れないととかマジめんどかったようですが、20.04ではカーネルにバンドルされたようで面倒がない。
メモリ 64GB, 40000円
32GBでいいんじゃねという気がした。しかしMacbook Proですら32GBが載るのに、いまさら32GBなんて、何が楽しいんですかね。あればあるほどよい、あればあるだけ使う、それがメモリ。上限積載量は32Gとカタログにあるけど、64GBも動くという情報に賭けた。チキンなので確実そうなCrucialにした。チキンなので99さんの交換保証を付けた。
SSD 1TB, 18000円
VMやDockerをワサワサ動かすつもりで、なんか1TBもあれば足りるだろ。とにかく速いやつにした。
キーボード, 7000円
Ubuntuにすることは決めていたが、Ubuntuに限らずLinuxでBluetoothをきちんと動作させられた記憶がなく、そうすると有線キーボードかあ、プラプラして邪魔だなあ。ていうかBIOS画面でBluetoothキーボード使えないでしょ。そんな我々のために、LogicoolがUnifying接続キーボードとマウスを作っている。ぶっちゃけダサいし、誰がこんなの買うんだろと思っていたけど、今このコンテキストに置いたことで、究極のキーボードとなった。
ところでマウスもLogicoolにしたので、どうせならUnifyingレシーバーを1個に集約できる。Windows, MacならLogicoolのアプリがあるが、LinuxならSolaarというOSSで管理できる。
家にあったトラックボールマウス
Logicoolの新型と歓喜して買ったものの、Macbookにはトラックパッドがあり、あまり使ってなかった。
家にあった49インチモニタ
私の眼に合っているのか長時間使える。アサクリをアホほどプレイしたモニタなので、眼は十分に慣らしてある。
Ubuntu 20.04 を入れる準備をする
Ubuntu のISOファイルをどっかから入手しておく。
WindwosでISOファイルをUSBに書き込む方法がパッとわからないので、Fedora Media Writerというのを使う。
UEFIに入る方法は、Lenovoが簡単なマニュアルを用意している。UEFIに入ったら、Secure Bootをdisableにする、ストレージの起動順序をUSBメモリ優先にするなど、Ubuntuのセットアップの支障になりそうなポイントを変更していく。
Ubuntu 20.04 を入れる
Fedoraも試そうとしたけど、日本語まわりとか、なんかいろいろのノウハウを移植するのダルかったので、Ubuntuを使うことにした。自前のシェルスクリプト & Ansibleをひさびさに動かしつつ調整して、ガッと入った。今般の情勢に鑑みて、SlackやZoomのアプリも入れたりしてみた。最初はsnapから入れてみたけど、ibus-skkが通らなかったり厳しさを感じた。debのは素直にIMEも動いたので、使うことにした。Bluetoothは予想どおり挙動不審である。Wifiは安定している。l2tpのVPNにサクッと接続できるようになっていて感動した。サスペンドは復帰が怪しくて電源ボタンでOFFってONすることが多く、めんどくさいのでサスペンドせず電源OFFしている。
github.com github.com github.com
Macで使っていたアプリは概ねそろっている。Firefox, Chrome, Slack, Zoom, VSCode, GitKraken, VirtualBox, Docker,,,,そうDockerがネイティブで本物のDockerが動くので、Docker for Macのファイルのやりとりで重い遅いとかないのが最高に良い。
完成
ThinkCentreは、モニタ左側のPS3とPS4の間に挟まっている。完成品をベースに自作PCっぽくイジってUbuntuにするのは大いに楽しかった。しばらくはこれをメインPCとして使ってみる。