MacBook に接続できる外部モニタの枚数を調べる

仕様ページの「ビデオのサポート」に何枚のモニタを接続できるか記載があります。

以下スクショ

f:id:sasasin_net:20211011114611j:plain
MacBook Air (M1)

f:id:sasasin_net:20211011114628j:plain
MacBook Pro 13 (M1)

f:id:sasasin_net:20211011114650j:plain
MacBook Pro 16 (Intel)

自宅の執務環境が極まったので自慢します

こんな机でお仕事してます。

f:id:sasasin_net:20211010192028j:plain

5枚もあって何すんのか。たとえばペアオペする系の作業で、こんな使い方をしてます。

  • 私が画面共有するときに映す(MBP)
    • 私の画面を皆に共有するときに、MBPのモニタに出したのを共有しています
    • 私以外の方は、ふつうに横画面です。私の縦画面を共有すると、ちっさくなった縦画面と、その左右に縦の黒い虚無が映り、とてもつらい
  • 手順書&ウェブブラウザ(縦画面)
    • 今まさにワイワイしてる作業の手順書なんかを映してます
  • ビデオチャット(縦画面)
    • 今まさにワイワイしてる Google Meet や Zoom、Teams、Chime などを映します
  • Slack(縦画面)
    • Datadog や CloudWatch Alarm が雪崩れてくるチャンネルを映して視界に入るようにします
  • TwitteriPad
    • AWS 障害」なんかのツイッター検索結果を映して視界に入るようにします

個々の機材は以下。

机の広さは正義です。机だけで1畳は欲しい。長年の思いが在宅勤務で叶いました。机は木材を買って組みました。

奥のモニタが並んでるところは、元来は机というか棚で、下が本棚2段、上の天板にモニタを並べてます。幅145cm, 奥行30cm, 高さ81cm。

手前は普通に机で、幅174cm, 奥行40cm, 高さ74cm。

0.8畳くらいか。ほぼ1畳。だいたい1畳。もう1畳と言ってよいのではないか。

椅子

秦運動具工業のバランスボール(直径55cm)を愛用してます。他社製品と比べて、ベタツキと伸びが少ない固めの素材で、私の好むバランスボールです。昔は高いワーキングチェアを嗜んだりしましたが、腰の椎間板ヘルニアなどを経て、バランスボールに行き着きました。

MacBook Pro 16 (Intel)

社支給品です。16インチモデルは、外付けモニタ最大4枚の4k60Hzでイケるので、これはもうこれしかないなと。選定時点で ARM MacMBA も MBP13 も、外付けモニタを1枚しか挿せないので却下しました。ARM MBP16 はやく出してくれApple...!!

スタンド

いろいろ設営してくうちに下の空間がほしいと思い、Amazonで探して頑丈そうなのを選びました。ハブや長さの余ったケーブルを押し込んでます。

外付けモニタ3枚

  • 27インチ前後
  • 4k60Hzを出せる
  • 無闇に高価ではない。3枚も買うのだし

で選んだのがコレ。購入当時は1枚3.5万円でした。

DELLも近い価格帯で製品を出していて、しかも縦置きにできるスタンドだったのですが、アマゾンでもDELL直販でも毎回「次の入荷は未定です」「xx月xx日に入荷予定です」しか目撃できず、いつ入手できるか全く読めず見送りました。

EIZOは昔使っていて目に優しかった記憶があり探しましたが、今回の要求に価格帯がマッチせず見送りました。

モニタアーム

3枚あるので3本あります。あまり詳しくなく、エルゴトロンなら間違いないと聞いてエルゴトロンにしました。

  • 27インチモニタの重量に対応できる
  • 縦置きした高さに対応できる
  • 無闇に高価ではない
  • サクラチェッカで不穏なスコアが出ない

で他にも探したものの、これぞという製品を見つけられず、エルゴトロンなら間違いないんだなとの結論に至りました。

ケーブル類

  • MBP16の Type-C から直で HDMI に挿せる
  • 4k60Hz を出せる
  • 無闇に高価ではない

で選んだコレを2本で2枚と接続してます。

あと1枚分は、ドックを買っていて、

  • HDMI 4k60Hz を出せる
  • 100W PD給電に対応してる
  • あとは適当に何かポートが付いてる

こうすることで MBP の USB ポートを1個だけ空けておけます。空けておくとどうなるか。別に何もしないのですけど。将来何か挿せるだろ。

キーボード、マウス

Logi G913 TKL。無線接続で薄型赤軸で、と探して。キーを打鍵する毎に、いわゆるゲーミングな虹色に光らせてます。

Logi ERGO M575。トラックボールを何個か渡り歩いて。Logi には旧型のM570と上位のMX ERGOがありますが、手首の傾きが私にはM575が一番フィットしてるので使ってます。

Apple Magic Trackpad。トラックボールあるのに、トラックパッドも置いてます。使います。気分で使い分けてます。

マイク。元来モソモソ喋る人なので、せめてマイクはきちんとしないと一層モソモソするなあ、と思い、とはいえ勘所ないので「だいたい全部入り」な製品を探して。いわゆるゲーミングな虹色に光らせてます。

iPad Pro 12.9 (4 gen)

だいたい縦置きしてます。Mac の Sidecar にはしてない。MacでもiPadでもできるけど、MacのCPU,RAMを浪費させたくない感じのタスクを、iPadにやらせる感じです。音楽とか、YouTubeとか、ネトフリとか、Kindleとか。

置時計

視線を落すと入るようにしたかったので置いてます。時分秒、月日曜、気温、湿度が見えます。電波時計なので勝手に日時が整います。Amazonだと無闇に高いけどこんなだっけな。もっと安かった気がするけど。

ラズパイ製 CO2 & 湿度 & 気圧 センサー

左手のあたりに置いてます。写真だと、キーボードとコップの間にあるやつです。

ラズパイ Zero に、mh-z19 と bme280 で取ったデータを New Relic に投げつけて監視を組んで、換気を促します。これを作った当時は、何が測れてるか怪しげな激安CO2計測機か、業務用の高精度で高価なCO2計測器しかなく、もうちょっとこう、手頃なCO2計測器がほしくて作りました。最近はキングジムが市販したので、わざわざラズパイでなくともよさそうです。

BME280搭載 温湿度・気圧センサモジュール

BME280搭載 温湿度・気圧センサモジュール

  • スイッチサイエンス(Switch Science)
Amazon

些細な大事な話: Radeon を常時ONにする

4k60Hzで3枚も接続するので、CPU内蔵GPUを使わせてると激遅の激重です。MBP16 だと CPU とは別で AMD Radeon が搭載されてますが、out of the box では「macOSが必要と判断したとき限定で Radeon を局所的に使う」設定となってます。

「グラフィックスの自動切り替え」のチェックを外すと、問答無用で Radeon を使ってくれるようになります。どうせフル在宅勤務で、MBPを持ち運ぶことはないのだし、まあええでしょうと、こういう設定にしてます。

support.apple.com

いまどっちのGPU使ってるかは以下で確認できます。

support.apple.com

まとめ

好きな機材で仕事すると、単純に気分が上がって楽しいので、叱られが発生しない範囲で、みなさん好きな機材で仕事するといいと思います

ヘッドホンに満足しきった話

謎にイヤホン/ヘッドホンにやたら金を使っていることに気がつきました。そのうちで「これがいいんですよ」というのを書き散らしてみます。

AfterShokz Aeropex

もっとも利用時間の長いガジェットである、社支給 MacBook Pro 16 と、私物 iPad mini にペアリングして使っています。

現今のフルリモートワークになってしばらくしてから、丸一日イヤホンを耳に詰めていると蒸れる疲れる痛くなるのを解決したく、使い始めました。耳の穴を塞がないので何しろ楽です。蒸れないので何時間でも頭につけてられます。

おもしろいのはウレタン耳栓が付属しているところ。各社がノイキャン頑張ってるところに「ソ連は鉛筆」みたいな解決で気に入ってます。音質は独特で、ぶっちゃけ4000円くらいの有線イヤホンと大差ない気がします。仕事しながら音楽を流してながら聞きする程度であれば、私は全然このくらいの音質でよいなと割り切れます。

骨伝導ヘッドホンで音量デカくすると、骨導音で脳ミソの聴覚のキャパを使い切るのか、気導音は何も聴き取れなくなるのが新鮮な体験です。「耳をふさがないから外音を聴き取れる」は音量小さめで使ってる時だけですね。

外出時は、メガネ、マスク、AfterShokzの3個が耳にかかり渋滞。どれか外すと、3個とも絡まって外れてくるのは困ったものです。電車に乗ってると、音量MAXにしても、電車の轟音で何も聞こえなくなります。

今時のイヤホン、ヘッドホンは、専用のスマホアプリを用意して、何か色々やってますが、Aeropexにはそういうのないです。Bluetoothでペアリングして接続して利用できるだけ。潔い。面倒が起きない。

Apple AirPods Max

Apple 製品ぜんぶにペアリングしてあります。ぜんぶというのは、

こうやって複数台をきまぐれに使っているので、音を発した機材に勝手にペアリングが移ってくれるのが良いです。ただ、Slack通知のスッコココでもペアリングが移るのは邪魔くさく、最近は「このMacに前回接続していた場合」にしています。こうすると AirPods Mac を頭に被った状態で、MacBluetoothで「接続」ってやったときだけ、他から奪って接続するようになります。

稀にハングするようで、2個のボタン長押しで再起動すると復活するのが面白いです。そうかこんなナリでも再起動が必要な機材なんだなと。

イヤーパッドが磁石接続で、引っぱればヒュッと取れるのが新鮮です。手洗いですが洗える。春夏の境の、エアコンを使うか使わないか微妙な時期に使って汗かいた翌日とかは、嗅いだらヤバかった。みなさん洗いましょう。

音はキレイでフラットで、他社製品のような「低音が強調されて」とかの味付けがない。これで好きなのですが、Mac に接続しているときは Macイコライザー Boom 3D を挟んで味付けて使ってます。元がキレイでフラットなので、イコライザーで強烈に振っても音が割れたりせず、とても満足しています。

Boom3D: Volume Booster and EQ

Boom3D: Volume Booster and EQ

  • Global Delight Technologies Pvt. Ltd
  • ミュージック
  • ¥2,440
apps.apple.com

Sony IER-M9 + SHURE RMCE-TW2 + AZLA SednaEarfit Light

SHURE RMCE-TW2

いわゆる TWS というやつで、何社かの製品を渡り歩いて到達しました。

Sony IER-M9 は有線イヤホンなのですが、イヤホン部分とケーブルを分離できて、接続部分はMMCXという規格のコネクタです。SHURE RMCE-TW2 は、MMCXコネクタのイヤホンを接続して、Bluetoothな完全ワイヤレスイヤホンにしてしまう製品です。

MMCXコネクタは、端子部分は暗黙の業界標準になっているようですが、端子の周縁部分の形状は各社が好き放題しているようです。買ってみたら、おまえ合わんやつかーというのが何度かありました。今回のこの組合せに関してはセーフです。セーフというのは、アウトなんだけどヤスリがけしてセーフとか、0.0何ミリか緩いのでワッシャー噛ましてとか、そういうのではなく、out of the box でパチッと無理なく接続できるということです。

複数台への Bluetooth 接続が簡単で良い。さきほどのApple製品に加えてSwitchにもペアリングしてあります。

RMCE-TW2 を起動すると、最初は前回接続していた機材に接続します。これは普通ですね。この状態で、それとは別のさあ使うぞという機材の Bluetooth 画面で RMCE-TW2 を選ぶと、接続を奪ってきて接続します。これが良い。Sony WF-1000XM3 などと同じ挙動なのですが、この挙動を実現してる製品はどうやら少ないようです。だいたいは「イヤホンを起動する。イヤホンを電源OFFる。イヤホン側をペアリングモードにする。接続先機材のBluetooth画面で探して接続する」の複数ステップになり、まじダルいんですよね。

いわゆるアクティブノイキャンは付いてないです。きょうびそんなバカなと思われるでしょうが、本来はSHUREのほぼ耳栓なイヤーピースを使うイヤホンを接続する製品なので、ANCが付いてないという主張らしいです。というところに、そんなではない Sony のイヤホンを接続してるので、ノイキャン要素皆無です。たぶん電車とか騒々しいところでは無力。

TWSですが、MMCXコネクタ部分でクリッと回るのを利用して、ちょっと声かけられたときに、RMCE-TW2は耳にかけたまま、イヤホンだけ耳から抜いて会話に応じることができます。外音取込でもよいのですが、私の趣味で、耳から抜いた状態で会話したい気持ちがあるので。

他社製品はスマホアプリ側にイコライザー設定を持っているのがほとんどだと思います。この製品は、スマホアプリでイコライザー設定を作り、RMCE-TW2 のメモリに記録させる方式のようです。この意味するところは、スマホアプリを入れてない機材にペアリングしても、イコライザー設定が生きるということです。例えば iPhoneイコライザー設定を組んで、Switchに接続してもイコライザー設定が効くのです。これが良い。

Sony IER-M9

音は Sony IER-M9 が鳴らしてます。音楽関係者向けの製品で、どの音もキレイにフラットに鳴ります。例によって好みの味を付けたいので、RMCE-TW2 のイコライザーで調整してます。無茶をしても割れたりせずキッチリ鳴らしてきます。

なお有線イヤホンとして使ったときと聴き比べると、なるほどBluetoothにするとボヤけるとかいうのは、こういうことかと理解できました。

AZLA SednaEarfit Light

L サイズです。私やたら耳の穴が広いようで、何社かのLとかLLといってるやつを使うもののスカスカで収まりが悪く、きちんと寸法みて探そうと探して到達したのがコレ。黒くてしっかりしたのと、半透明で柔いのとで、柔いので、長いのと短かいので、長いのを、として、 AZLA SednaEarfit Light の L でございます。

総じて

ノイキャン性能は重視しなくなった

通勤の、くそやかましい電車に小一時間ゆられる耐え難い苦痛に耐えるため、ノイキャン性能がわずかでも高いイヤホン/ヘッドホンを追求していました。フルリモートワークになってからは、ノイキャン性能は生活音を抑止できれば十分で、なんならノイキャン機能無しでもまあいいかなと。生活様態が変化したことで、イヤホン/ヘッドホンの要件が変化したのですね。

外出しない、金を使わない、行き場を失した小銭の使い道となった

もともと外出はしない質でしたが、いよいよ「何日ぶりに外出した」が現実となりました。通勤してれば生活リズムとして一定の金銭を使うのですが、そういうのがなくなり小銭が浮き、そうした金の使い道として無闇に高価な音響機器に向かっていることが明らかになりました。

複数機器に簡単に接続変更できることを重視するようになった

通勤時代と比較して、Bluetooth音響機器の接続先としたい機材の頭数が増えて、「同時に2台と接続できます」の果てに「同時に16台と接続できます」が来るのかなあと夢想してましたが、現実的な状況として「1度に1台としか接続できませんが、複数機器に簡単に接続変更できます」のほうが私の感じる利便性は高いようです。

ぶっちゃけ3万円を越えると、音質の差異ってよくわからん

私に識別できるのは3万円くらいまでだったようです。いやまあ Sony IER-M9 を有線接続で使うと「なるほど、Bluetoothイヤホンは3万円程度で競ってるのは、あのくらいの感じだけど、有線イヤホンのコスト度外視な製品だと、こういうことになるのか」と体感しました。とてもよい。しかし、じゃあさらに上のグレードの製品を体感してみようとは、今のところは思わなかったです。無念。

自分のなかで、やりきった感がある

世の中にもっと様々な音響機器メーカーが鎬を削って上を目指していることは存じ上げているものの、とりあえず自分なりに満足できるまで金を使って聴きたいものを聴け感じがあるので、このあとは「借財をしてでも追求する」というより「気が向いたら嗜む範囲で愉しむ」程度でいいかなと。そんなところです。

年末年始に完全に理解したリスト

「完全に理解した」とは

チュートリアル、ハンズオンを完走して自信だけ最高潮になった状態を指す。

API Gateway を完全に理解した

10月頃にさわっていた。年末年始に計上するのはいかがなものか。気にしないことにした。

クラメソさんが REST のと HTTP の記事を用意してくださっていた。

dev.classmethod.jp

dev.classmethod.jp

API Gatewayのクォータ。Lambdaは15分も動かせるけど、API Gatewayは30秒でタイムアウトする。

docs.aws.amazon.com

API Gateway自体には凝ったメトリクスは無い。このメトリクスと、外形監視と、Lambdaなりを監視しとけば良さそう。

docs.aws.amazon.com

EKS を完全に理解した

11月末頃。年末年始に計上するのはいかがなものか。気にしないことにした。

入門書にて。ハンズオンの構成と、サンプルコードが秀逸。要所は手で打たせて、それ以外はgithubに置いたサンプルコードを実行させるだけにして、無駄な写経が最小限になってる。CloudFormationでVPC、RDS、CloudFrontなどを作らせるのは捗ってよかった。本書はEKS の k8s バージョン 1.14 だった頃のようで、まあ、もう 1.14 は立てられなくて、今日時点でパッと立つ 1.18 でハンズオンを進めても、何も問題なく進められた。

Kubernetes on AWS ~アプリケーションエンジニア 本番環境へ備える

Kubernetes on AWS ~アプリケーションエンジニア 本番環境へ備える

ハンズオンで利用するツール類は、 asdf-vm でホイホイ入りました。 eksctl, kubectl, nodejs, corret jvm

text.superbrothers.dev

fargatecli を完全に理解した

このあたりから12月下旬なので、大手を振って年末年始と言えよう。 nginx を ECS に fargatecli でガッと立てられるようになった。fargatecli は、ECSでコンテナ動かすのに必要となる、ECS以外の要素を完全に理解してれば、秒で立てられる最高のツールであるとの所感を得た。

zenn.dev

ECS を完全に理解した

その後、オシゴトで fargatecli でガッと立てようとしたが、思ったとおり立たず。ECS Cluster, Task def, Serviceを、AWSマネコンで試行錯誤する過程で完全に理解した。

理解度を試しがてら、Task defがゴミだらけに見えたので、掃除するシェルスクリプトを書いてみた。

github.com

ecspresso を完全に理解した

アプリケーションのCDパイプラインを構想すると、AWSマネコン手作業は言うまでもなく厳しいし、fargatecliはECS ServiceやTask defの細部に手を入れられず厳しい。そんな次第で ecspresso が筋が良いと伝え聞き、手を動かしてみた。実際ほしいところを完全にカバーできるツールで、神がかっている。

zenn.dev

CloudFormation を完全に理解した

AWS Black Belt。そもそもCloudFormationとはですね、から始めて、周辺ツール、スタック分割などベストプラクティス、他のスタック参照など、幅広いトピックのとっかかりを掴める。手を動かす感じではない。

www.youtube.com

クラメソさんによるハンズオン動画。あまり原理原則やプラクティスには立ち入らず、AWSマネコンから操作したり、手を動かす。

www.youtube.com

究極の学習用VPCを構築する CloudFormation テンプレ。さすクラ。なお出来上りのVPCは理解できるが、CloudFormationの構文はぜんぜんわからない。雰囲気で動かしている。

dev.classmethod.jp

ぜんぜん深入りしてないが、自信だけは最高潮であり、完全に理解したと言って差し支えない。

SAM, SAM CLI を完全に理解した

API GatewayとLambdaを楽して管理したいだけの気持ちで見始めたら、CFn拡張の話になり困惑しつつ、SAMの全体像とSAM CLIの関係含め完全理解した。

www.youtube.com

Black Belt 見た今は、クラメソさんのDockerfileでLambdaにSAM CLIする記事が、すごく明瞭に読める。

dev.classmethod.jp

クラメソさんの記事で ECR に docker push するの端折れるよと言及がありながら、具体的な手順は記載がなかった。以下記事で詳細に書かれている。

qiita.com

Terraform を完全に理解した

長らく積んであったのを消化した。ただし展開が早くて何をしたいのか理解が追い付かなかった。

イチから説明してほしかったので、いくらか探して、このあたり走ってから出戻った。

y-ohgi.com

あとはドキュメント読んだら、どうにかできるだろう。

www.terraform.io

providerのドキュメントは registry.terraform.io に移転していた。

https://registry.terraform.io/browse/providers

近年は世代の古めの技術で走ってきた。課題と現状理解から適切な手を打てていたと自負しており悔いはない。

tech.andpad.co.jp

しかし、ここから次に物事を進めるには、手札の弱さは否めなかった。いくつか仕込み始め、有意義な年末年始にできたように思う。

5年ぶりに圧倒的高性能PCを組んで満足した

動機

  • M75q-1 TinyのCPUパワー不足を解消したい
  • メーカーやショップのBTOで、グッとくるものが見当たらない
  • マネフォで自分の口座残高を見て、多少は散財してよいように思えた

部品を揃える

勢いで揃えた。約23万円。

f:id:sasasin_net:20200816203848j:plain

大枠のところは、

  • わかりやすく高性能な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なマザボが無さげなので、見送った。

www.amd.com

ケース: めんどくさくなくて、邪魔じゃないやつ

49000円。NZXT H1 にした。電源と水冷がバンドルされているのが「めんどくさくない」。約19cm x 約19cm x 約40cmという、2個の立方体を重ねた外寸というのが「邪魔じゃない」基準でグッと来て選んだ。

www.nzxt.com

マザボ: ASUSの高いやつ

40000円。そういやマザボに何万円も出したことねえな、どんなもんだろうと。さらに「ASUSマザボは鉄板」という昔の信仰で選んだ。

www.asus.com

メモリ: crucialの64GB

39000円。今回もcrucial。無邪気にnon-ECC。たっぷりあるのは正義。M75q-1とは規格が違うので、改めて購入した。

www.crucial.jp

GPU: M75q-1のCPU内蔵GPU Vega 11よりは高速高性能なやつ

29000円。Geforce GTX1660 Super。最新最高速ではないけど、M75q-1のCPU内蔵GPU Vega 11よりは、ずっと速い(らしい)。

www.zotac.com

他は、家にあった部品を流用した

組み立て、使えるようにする

部品構成からして、圧倒的高性能は確信していたが、急いて雑に進めたら遠ざかったので、メモしておく。

素直にクリーンインストールしとけばよかった

M75q-1 からSSDをそのまま攫ってきて刺して、なんとかならないか試行錯誤してた。結果は何とかなりそうで、何ともならなかった。

  • M75q-1 からSSDをそのまま攫ってきて刺した。モニタ(A)に映らない。これをモニタ(A)と称することにする。映らないので、何が起きているか、何も起きていないか不明。
  • 何が起きてるか不明なので、バラして、再度組み立てて、まあやっぱりモニタ(A)に映らない。マザボのPOSTのLEDは、電源ONから各色に遷移した後に消灯しており、つまり異常なしと言ってる。イラァ.....初期不良かテメェ....。
  • UbuntuGRUBからリカバリモードで起動すると、これは映る。映るが、640x480なので、実用ではない。
  • 別のモニタ(B)に刺したら映って、ふつうに使えた。この時点で、初期不良ではなく、見えてないだけで起動はしており、モニタ(A)と自作PCの間の何かがダメなんだな、まで確信した。

モニタ(A)と、今回の自作PCの間には、以下記事のとおり、HDMI中継するサウンドバーと、HDMIタコ足がはさまっているので、どっちのせいか切り分けを行なった。

sasasin.hatenablog.com

  • モニタ(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で、一瞬で終わった。最後にバックアップから必要なものだけリカバリして、安定動作してくれた。

github.com

M75q-1の内蔵GPUは意外に高性能だった。きちんと比較すべきだった

最初は別の1枚を買ってた。6900円。GeForce GT710。Ubuntuにするし、ゲームもやらないので、マザボオンボードGPUか、CPU内蔵のGPUで全然OKだった。しかしRyzen 9はGPUを別で用意する必要がある。しぶしぶ、HDMIで4k出せて、ファンレスで、とにかく安いのを、として選んだ。もっと安価でファンあり空冷のがあったけど、ファンの耐用時間が短かそうな気がしたので、ファンレスがあるならファンレスを選びたかった。

www.asus.com

ウキウキで組んでみたら、SSD横着とサウンドバーのせいで散々で、ようやく映ったと思ったら640x480で、Nvidia謹製ドライバ入れて4kで映ったと思ったら、もっさーカクカク。カクカクするの意味わからんぞと方々調べて、そもそもの性能が足りてないんじゃないかと、ベンチマークの参考値を探した。GeForce GT710は、M75q-1のRyzen 5 3400GEの内蔵GPU Vega 11 と比較して、だいぶ低い。くそっ。

pcfreebook.com

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する。

www.memtest86.com

Unifying が不安定「になった」?

Unifyingで接続してるキーボードとマウスが、突如として切れる。頻発する。M75q-1で使って、まったくそんな感じはなかった。どこに原因があるか。よくわからない。

対症療法だが、キーボードもマウスも、UnifyingとBluetoothで接続できるので、Unifyingで切れたら、Bluetoothに切り替えて良しとしている。

設置

段々になるようモニターとPS4の間に置いてみた。黒家電の並びに馴染んでいる。

f:id:sasasin_net:20200816181926j:plain

ゲーム向けを名乗る部品が多いけど、無闇に光らず好感がもてる。M75q-1では冷却ファンが唸っていたような負荷も、静かなまま捌いている。

f:id:sasasin_net:20200816181730j:plain

12コア24スレ、メモリ64GBなタスクマネージャーの様子。暇そうにしている。

f:id:sasasin_net:20200816202902p:plain

参考

部品はツクモamazonから購入した。

むすび

全部品を不満ない性能で選び、めんどくさいのは適度に金で解決しつつ、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_eachfind_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

という妄想を書き散らしたが、ほんとに効くのかわからない。そもそも動くのか不明。

こうなってほしいな

参考文書

そもそもRailsバッチ処理の最適化ってどうやんの、の概観。

blog.toshimaru.net

elasticsearch-rails と使い方のサンプル。

github.com qiita.com

find_eachfind_in_batch

qiita.com daido.hatenablog.jp

Parallel と使い方サンプル。

github.com www.bokukoko.info

ActiveRecord::QueryCache::uncached と使い方サンプル。

api.rubyonrails.org qiita.com

Sidekiqがメモリ蕩尽するみたいな文脈でも、uncached しろって指南があった。

github.com

Elasticsearch のバルクAPI

www.elastic.co qiita.com

サウンドバーの音声寸断を金で解決した

変更前

SoundCore Infini mini というのを使っていました。

www.amazon.co.jp

音は値段相応、ぜんぜん悪くない。しかし、入力音量が一定以下になると省エネ寸断するらしく、一定以上になって1秒くらいは起動にかかるようで、つまり3秒くらいの寸断がわりと頻繁にありました。映画、アニメ、ゲームなど問わずで、これは厳しいなと。

f:id:sasasin_net:20200622014231p:plain

機材選定

AVコンポとか、7.1chみたいな嵩張るのは見送りました。金額感も合わないし。沼すぎて無理。

やっぱサウンドバー。邪魔くさくない。配線簡単。2万円を超えると各社、わりとマジの製品を並べてます。困ったことにAUX接続が無くて、HDMIが当然だろみたいな圧を放ってます。

kakaku.com

なぜ困るか。手元のモニター I-O DATA LCD-M4K491XDB は、音声出力がAUX接続しかない。HDMIのARCにも対応していない。

www.iodata.jp

じゃあサウンドバーが、HDMI複数入力で、モニターに映像出力してるか。してない。どこもHDMIは1入力だけだったり、1入力1出力だけ。

HDMI切替機のようなものはあるか。ある。AVアンプという機材のうち、4万円以上程度の製品が、HDMI切替機として利用できるようです。ただまあ、AVコンポなどと同じで、金額感が合わない。沼すぎて無理。ということでAVアンプは見送りました。

kakaku.com

すなおにHDMI切替機を探すと、価格帯や製品によって大きく機能が異なります。寡聞にして存じていない中華メーカー製品が大挙して並んでおり圧倒されます。4k60Hzと3入力1出力を必須条件として絞ると、サンワサプライの以下が出てきました。HDMIを束ねてサウンドバーに流し込むのは、これで大丈夫でしょう。

www.amazon.co.jp

じゃあサウンドバーどれにしようかね。手元モニターがARCに対応していないので、HDMIを1本しか刺せないのは除外です。さよならBose。HDMI1入力1出力は多種多様にあります。4k60Hzをパススルーできるやつで絞るとどうか。ぜんぜん絞れないぞ。ここからイチャモンじみてきます。ホコリが絡まって積もりそうなのは無理。ごめんYAMAHA。音に関して好き嫌いが大きく別れてるのはやめておきたい。すみませんDENON

変更後

Sony HT-X8500 というのにしました。消去法だったのは認める。買い替えるならちょっと高いのにしてみよう。ちょっと高いヤツなら寸断とかアホなことにならんだろう、という雑な目論見。

www.sony.jp

HDMI切替機は、サンワサプライの以下にしました。4入力に3台なので、1個あまってます。

www.amazon.co.jp

配線はこのように。

f:id:sasasin_net:20200622015636p:plain

変更してどうか

当初の課題であった音声の頻繁な寸断は皆無になりました。音はキレイです。

Dolbyのなんかすごいやつは全然使えてないです。音のプリセットが10個くらいあるようですが、違いがよくわからないです。Bluetooth入力モードにすると、スマホiPadなどを音源にできますが、HDMI映像中継が切れるのは想定外でした。

HDMI切替機は立ち寄ってポチる必要があり、リモコンの類がほしいなあと早くも思いはじめています。なおオプション機器としてもリモコンは無いので、別のHDMI切替機を購入するしかなく、どのように運用でカバーするか悩ましいです。