修論がいよいよ切羽詰まってきて昨日までは随分と焦っていたが、今日は起きてからずっと平穏な気持ちだ。修論の切迫感も友人との世間話もどこか遠くの世界のものに感じられた。奇妙だ。覚悟ができたとか諦めがついたとかそういう見方もできるだろうし、あまりにヤバすぎて脳が感情にストップをかけているという見方もある。今こうしてブログを書いている僕にしてみれば苦しみが和らいでいるという事実が大事で、理屈はどちらでもいい。

グラフをmatplotlibで作っている。ExcelやLibreOfficeなどのGUIソフトで作るのも直感的で悪くないが、様々な形式のデータに対してグラフのフォーマットを一定に保つという点ではmatplotlibが向いている。むしろGUIソフトはマウス捌き次第で違うものが出来上がってしまうという点で苦手だ。

さすがにもう実験はやらないので実験用にしていたディスプレイを防音室から出して作業用にした。このディスプレイはWQHDだが、普段使うノートPCの外部出力はFHDまでしか対応していないので以前は画面中央のFHD分だけ使われていた。今日久しぶりに接続したときにもそうなると思っていたら、なんとWQHDが全面使えた。不思議だ。調べてみるとノートPCの仕様書には外部出力はFHDまでと書いてあるが、iGPUのIntel HD Graphics 4000はWQHDに対応している。

むしろ酷いのはノートPCの内蔵液晶だ。1366x768では今どき大した作業はできない。2013年に使い始めた頃は不便に思ったことはなかったが、今では全く不十分だ。PC環境を整える上で最も優先すべきは人間と直接ふれあう部分、具体的にはマウス・キーボード・ディスプレイだと思う。ここのストレスは処理能力のストレスに比べて影響が大きいからだ。

ノートPCは大学入学時に入手したもので、スペックは以下のとおりだ。

  • Core i5-3210M
  • 16GB RAM(自分でフル増設した)
  • 128GB SSD(光学ドライブを抜いて増設した)
    • 幸いにも光学ドライブはSATA3接続だったのでSSDを刺してもボトルネックは生じない
  • 500GB HDD(最初に入っていたのが壊れたので取り替えた)

読んでわかるように相当の愛着がある。しかし前述のディスプレイの狭さに加えてバッテリーが経年劣化によりフル充電からでも30分程度しか保たない、重い(2.5kg)、デカい(リュックに入らない)などの欠点もある。来年には新しいノートPCを購入するだろう。メーカーに特にこだわりはないがThinkPadのキーボードは打ち心地が素晴らしいのでLenovoかなあ。

Ubuntu18.04へのアップグレードに伴うデバイス名の変化

Ubuntu16.04で液晶タブレット(UGEE HK1560)をデュアルディスプレイで使うとき、ペンタブレットの入力を片方のディスプレイのみにマッピングするためにはxinputの"Coordinate Transformation Matrix"プロパティを使う。

私の場合は左のディスプレイ(液晶タブレット)が1920x1080で右のディスプレイが2560x1440だ。つまり液晶タブレットの入力はそのままだと2つのディスプレイをつなげた4480x1440の長方形にマッピングされる。これを左のモニターのみにマッピングするためには、x座標0~4480を0~1920に、y座標0~1440を0~1080に写像するような変換行列を用いる(3行3列の1はたぶん筆圧は無変換っていう意味だったと思う)。

さて、これを実行するコマンドは
xinput set-prop "UC-Logic TABLET MONITOR Pen" --type=float "Coordinate Transformation Matrix" 0.428571 0 0 0 0.75 0 0 0 1
だっ。Ubuntu16.04では。

Ubuntu18.04にしてからこのままのコマンドでは以下のようなエラーを吐くようになった。

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Serial number of failed request:  19
  Current serial number in output stream:  2

なんだこれは?ググっても全然わからない。そもそもLinuxでペンタブレットを使おうという変態の絶対数が少ない。

xinputでデバイス名を確認したらこうなっていた

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ UC-Logic TABLET MONITOR Mouse           	id=10	[slave  pointer  (2)]
⎜   ↳ E-Signal COUGAR Minos X3                	id=11	[slave  pointer  (2)]
⎜   ↳ E-Signal COUGAR Minos X3                	id=12	[slave  pointer  (2)]
⎜   ↳ LingYao ShangHai Thumb Keyboard         	id=16	[slave  pointer  (2)]
⎜   ↳ UC-Logic TABLET MONITOR Pen Pen (0)     	id=18	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ UC-Logic TABLET MONITOR Pen             	id=9	[slave  keyboard (3)]
    ↳ Mistel MD600                            	id=13	[slave  keyboard (3)]
    ↳ Mistel MD600                            	id=14	[slave  keyboard (3)]
    ↳ LingYao ShangHai Thumb Keyboard         	id=15	[slave  keyboard (3)]
    ↳ E-Signal COUGAR Minos X3                	id=17	[slave  keyboard (3)]

理屈はわからないが、なぜかこれまで使っていたデバイス名"UC-Logic TABLET MONITOR Pen"はキーボード扱いになっていた。その代わりに"UC-Logic TABLET MONITOR Pen Pen (0)"という怪しげなデバイスが出現している。先ほどのコマンドのデバイス名をこちらに入れ替えたところ、成功した。

LinuxでHK1560は普通に使える。筆圧も取れる。ワコムの同サイズ製品は18万円するのに対してHK1560は現在4万円だ(こちらはFHDであちらは4Kだが)。ガラスの厚みによる視差は液タブの宿命として当然あるが、それはワコムだろうとゼロにはできない以上程度の問題でしかない。発色が悪いと言われている(おそらく1677万色ではない)が、僕はそもそもきちんとキャリブレーションされたモニターを一つも所有していないのでこれを問うのは無意味だ。ペン先の沈み込みもよく不安がられる要素だが、ワコムの飛び出したり引っ込んだり不安定なペン先よりは弾力のあるこちらのペンの方が描きやすく、筆圧も自然につけられる。ワコムはドライバが不安定だと言われるが、こちらはLinuxで幅広く使われているxinputで作業中のトラブルは一度もない。

描画ソフトにはKritaを使っている。非常に大きな特徴として消しゴムツールが存在しない(全てのブラシツールに消しゴムモードがあり、オンオフして使う)ことが挙げられるが、慣れればどうということはない。

実はメインマシンをUbuntuに変えるときにこの辺りの用途がきちんとこなせるか不安だったのだが、マッピングを解決するだけですぐに使えたことで僕の中でのUbuntuへの信頼が高まった。

今日のUI心理学

2.2 類同

見た目が似ているものはグループとして見える。当たり前だね。小学生がやるみたいにメニューの項目で1つずつ色を変えたりしてはいけないということだ。

Cooler Master Elite361というPCケースについて

http://apac.coolermaster.com/jp/case/mini-tower-elite-series/elite-361/
これ

ATXマザー対応でありながらコンパクトであり横置きも可能。設置スペースに制約がある場合は唯一無二のケースとなりうる。私も部屋が狭いので重宝している。一方で小さくて薄いのでパーツの制約がきつい。

幅が狭いのでCPUクーラーの高さは122mmまでと制限されているが、同様の理由でグラボを挿すと場合によっては側面ファンが設置できない。グラボの追加電源のケーブルも折り曲げることになる。具体的にはZOTAC GTX1050 LPなら側面ファンは設置できたが、ZOTAC GTX1060 AMP! Editionではダメだった。Elite361の公式ページにはグラボの長さの上限は記されているが、幅(高さ?とにかくマザーボードに対して垂直方向の寸法)の上限は記されていない。

ZOTAC GTX1050 LPの幅は70mmだが、ZOTAC GTX1060 AMP! Editionの幅は128mmである。この差で側面ファンが設置できなくなる。

Elite361に標準搭載されているファンは上部排気ファンのみである。最も近い後部のファン用の穴からの吸気が大部分を占めるだろう。となるとCPUには冷たい空気を供給できる一方で、グラボの周りには空気の流れが生じない。前述の通り側面ファン穴はグラボの真上にあるので、ここから自然吸気が行えるように、排気ファンを増設するのが妥当だろうか。あるいはグラボに冷たい空気を回すのは諦めて外排気型のグラボを買うべきだろうか。まあ問題が起きたら考える。

自作初心者は小さいケースを買うべきではない。パーツの性能上の相性以上に物理的な制約は見落としがちだからだ。

パソコン作った

  • CPU : i5-8400
  • グラフィックボード : GTX1050GTX1060(6GB)
  • メモリ : 16GB
  • SSD : 500GB
  • HDD : 1TB
  • ディスプレイ : ASUS VX24AH (24インチWQHD)
  • OS : ubuntu16.04
スペックよりもディスプレイの方が大事だと思って良いやつを買った。ドット抜けは許せないのでツクモで保証をつけた。1回交換してもらったら抜けがない個体を引けた。24インチWQHDの作業領域の広さもさることながら、この商品は発色が良い。暗い色がかなりよく区別できる。
キーボードも良いやつを買ったがまだ届いてない。液タブとのスペース問題は保留。
windowsからubuntuに変えた。ブラウザで何でも出来る時代なので特に支障なし。
CPUはi7にしても良かったのだが、昨今の脆弱性騒動やパッチによる性能低下の話を聞いて、ハイエンドにこだわるのがバカバカしくなったのでこうなった。
ゲームはDota2とかする。最高画質FHDで120Hz余裕。グラボ以上にCPUの性能が大事らしい。実際はディスプレイが60Hzなのでゲーム側で最高FPSを制限して使っている。人間の目の性能は高くないので高FPSディスプレイには価値を感じない。
opentoonzでアニメを描いたりもする。以前のPCよりも描画のカクつきが減った。詳しくないが多分グラボがopenGLをいい感じに処理してくれてるんだろう。使っている液タブ(UGEE HK1560)が安物なので若干の遅延はある。慣れればどうということはない。
液タブがubuntuで動くかどうかは心配していたが、全く問題なかった。つなぐだけで筆圧もちゃんと取れていた。
https://digimend.github.io/support/howto/drivers/evdev/
これに従ってマッピングの設定をしただけで使えた。
最近はvimの練習をしている。タイピング中に方向キーに手を伸ばすのが嫌だからだ。
 2018/2/8追記
YOLOで物体検出したくなってcuDNNで動かそうとしたらグラボのメモリが全然足りなくて詰んだので、ツクモの交換保証を発動して1060の6GBモデルを召喚した。予算オーバー。