最近は、ITが面白いだとかつまらんだとか言って盛り上がってるけども、面白いってのは、どういうことか、ちょっと考えてみようか。
Factorio Space Exploration modにおける宇宙船自動操縦について
これはpyspa アドベントカレンダー 2023の19日目の記事です。昨日は@aodagのミス・マープルでした。
はじめに#
このエントリはFactorioのSpace Explorationというmodを導入して遊んでいる人向けのエントリである。
Factorioというゲームがどんなゲームであるかについては、多くの情報がネットにあふれているので、ここでは説明を繰り返すことはしない。
Space Exploration mod は、Factorioの何もmodを導入していない状態でロケットを打ち上げる所までは遊んだ人向けのmodだ。つまり、クリア後の世界を拡張するものである。
Factorioでロケットを打ち上げた後、この世界はどうなるんだろう?と思った事はないだろうか?開拓した星を飛び出して宇宙空間や更なる惑星を求めて冒険に出たいと思ったことは無いだろうか?
それをかなえてくれるのがSpace Explorationだ。このmodを導入することでどんな景色が見れるのか少し紹介させてほしい。
- 衛星軌道にむかってそびえたつ軌道エレベーター
- 衛星軌道上に作られた宇宙ステーションと地上の間を巡回する銀河鉄道
- 水のない惑星に立つ謎のピラミッド
膨大なコンテンツが含まれている大型modだが、信じられない事になんと無料だ。そして、日本語で遊べる。注意点としては、modはPC版のみ対応だ。もしPC版Factorioを一通り遊んだことのあるなら是非遊んでみて欲しい。
このエントリは、Space Exploration modにおける中盤以降で建築することになる宇宙船に関する攻略情報つまり、ネタバレを含むものである。もし、完全に自力で攻略したいと思っているなら、読むのを避けて欲しい。
それでは本題に入っていこう。
最小の宇宙船#
まずは、テックレベルをSpaceship consoleが作れるところまでゲームを進めて欲しい。そうしたら、床と壁を作ってその中にSpaceship consoleを配置することで宇宙船を建築できる。
今回の説明で使う宇宙船は、そこからさらにテックレベルを進めてIon Engineを作成できるようになっている。
具体的にはこういうものだ。説明に使った宇宙船は最後のまとめでBlueprint Bookのインポート用文字列を用意してあるので、説明できなかった部分を詳細に知りたいという事であれば使って欲しい。
棺桶である。かっこよさは微塵もない事は認める。何せ筆者は絵心というものを気がついたら、どこか遠くに置いてきてしまったのだ。取りに戻ろうとしたが、もう分からなくなってしまった。
冗談はさておき、この棺桶は宇宙を飛び回れるし、惑星に着陸したうえで、大気圏を突破して宇宙に戻ることもできる。
⚠️ Space Explorationを遊んだことのある人は違和感を覚えるかもしれない。 本来なら、液体ロケット燃料を使うロケットエンジンが無ければ、地表面から宇宙に出られない筈なのだが、現在の仕様ではなんと液体ロケット燃料のタンクだけ据え付けておけば大気圏脱出できる。このバグが修正されたらロケットエンジンを自分で追加して欲しい。
レーザータレットは宇宙空間で飛んでくる隕石を打ち落とすために必須なので設置している。上を歩けるフラットな太陽光パネルと広域電柱を配置して電気系統は実装してある。
ここまでは特に難しいことは無いはずだ。
手動スイッチによる発着#
Spaceship consoleに回路を接続して操作するための基本的な部分から理解していこう。
まずは、定数回路を使った離陸と着陸について説明する。
最小の宇宙船に定数回路を2個と宇宙船を係留するクランプを取り付けてある。クランプは宇宙船側に一つと港側に一つ付けると宇宙船の着陸を自動化できる。
今回の回路で使うシグナルは、その他のタブに配置されているものを使う。
二つの定数回路とSpaceship consoleは単一の回路ネットワークで接続してある。
左側の定数回路には、宇宙船の離陸を表すシグナルを設定した。かっこいい宇宙船に上向きの黄色い三角がついているシグナルだ。値としては1以上の数値を設定すればなんでもいいので1を設定してある。この定数回路の電源をOnにしてシグナルをSpaceship consoleに送信すると宇宙船は離陸する。
右側の定数回路には、着陸するためのシグナルを設定してある。
シグナルパレットには、クランプを表すシグナルが4つあるが、三角の向きが同じ黄色と青のシグナルが対応関係にある。
黄色い三角がついているシグナルが宇宙船に設置してあるクランプを表す。青い三角がついているシグナルが港に設置してあるクランプを表す。
クランプの値は、クランプを一意に特定するためのIDを表す。黄色い三角形側のクランプは各宇宙船の中で一意になっていればよい。大抵の宇宙船はクランプが一つだけなので実質的にどんな値でも問題ない。青い三角形側のクランプに設定された値は、それぞれのマップごとに設置した複数のクランプの中で一意になっている必要がある。例えば、軌道衛星上と母星の地表はマップが違うので値が重複してもよい。
最初のうちは複数の宇宙船を単一のクランプに複数の宇宙船を係留しようとすることは事故につながるためやらない方が良いだろう。分かり易さのため宇宙船のクランプに付与するIDと港のクランプに付与するIDは同じにするのがおすすめだ。
なお、単一のクランプに対して、複数の宇宙船を係留しようとすると二つ目以降の宇宙船は該当するクランプが空くまで着艦しない。また、同一のIDを持つクランプが複数ある場合には空いているところに着艦する。
筆者にはFactorioで管制塔の制御システムを実装するだけの根性はないが、誰かが挑戦するのであれば見てみたいという気持ちはある。
この定数回路では、宇宙船に設置した500番のクランプを使って、港に設置した500番のクランプに係留するように指示している。
それでは、宇宙船に配置したクランプを見てみよう。クランプ本体をクリックして、シグナルのアイコンをさらにクリックするとIDを編集できる。ここでは500を設定している。
同じように港側のクランプにも500番を設定した。
宇宙船は二か所以上の港を移動する。つまり、係留する可能性のある港側のクランプは全部同じIDを割り振るのがコツだ。違った値を割り当てても良いが、その分回路は複雑になる。
例えば、このケースでは軌道衛星上の宇宙港と、母星の地表にある港のクランプのIDとしてそれぞれ500を割り当てている。軌道衛星上と母星はマップが別なのでクランプの値が重複していても正しく動作する。
このクランプの仕様を理解するのに筆者は大分苦しんだが、これを読んでいるあなたはすんなり理解できただろうか?もしすぐに理解できたなら非常にうれしい。
加速の自動化#
宇宙船が惑星間を移動する際には、係留状態から離陸状態になり、その後加速状態なる。離陸状態の宇宙船は速度がゼロなので一切移動しない。ロケットエンジンやIon Engineが動作して加速状態になった宇宙船は一定の時間経過によって目的地に到着し、速度がゼロになる。
離陸シグナルを定数回路からSpaceship consoleに送信することで離陸するとすでに説明した。実はそれだけでは宇宙船は移動しない。宇宙船が加速を開始するにはSpaceship consoleに対して目標となる速度を入力する必要がある。
というわけで、宇宙船に新しい定数回路を配置して回路ネットワークに接続した。
速度を指定する定数回路では、タコメータのようなシグナルを選んで値として目標速度を設定する。船の最大速度は船自体の大きさやエンジンの数によって決まるので、ここで設定した値の速度で必ず船が飛ぶという訳ではない。
設定された速度を目標に頑張ってエンジンを動かすだけだ。つまり、無理な目標を設定しても、エンジン性能の限界を超えた速度がでることはない。
なお、離陸していない宇宙船は速度を設定しても単に無視する。係留状態のままエンジンをふかしたりはできないのだ。
目的地設定の自動化#
離陸と着陸、それに加速を定数回路のON/OFFで操作できるようになったので、次は少し複雑な回路を組んでみよう。
条件回路自体の使い方について詳しく知りたい人は、factorio@jp Wiki の 回路ネットワーク を見て欲しい。
まずは、目的地の自動設定回路を組み込むために、宇宙船を少し拡張した。
この回路について説明する前にSpaceship consoleが出力するシグナルについて理解しておいた方が良いだろう。様々なシグナルが出力されているので一つずつ説明していく。
まず全体としては、例えばこんなふうにシグナルが出力されている。
左から順に説明する。
Spaceship consoleのアイコンで34が出力されているシグナルは、宇宙船のIDを表している。複数の宇宙船を建造したらこのIDが意味を持つようになるが、管制システムでも作らない限り使い道は無いと思う。
タコメーターのアイコンで-2が出力されているシグナルは、宇宙船の速度を表している。0未満は特別な値で、-1は宇宙船が停止していることを意味する。-2は港に係留していることを意味する。
定規のような目盛りのアイコンで-2が出力されているシグナルは、宇宙船に設定された目的地と現在地の距離を表している。0未満は特別な値で、-1は到着済み、-2は係留済み、-3は目的地が設定されていないことをそれぞれ表す。
惑星に木星のようなわっかがついているアイコンで475が出力されているシグナルは、宇宙船に設定された目的地を表している。これは、設定されたり入力された値がそのまま出力されているので、注意して欲しい。また、目的地の種類ごとにアイコンは変わる。
アルファベットのDアイコンで100が出力されているシグナルは、宇宙船の周りにある小惑星や隕石の密度を表している。このキャプチャを取った時には港に係留されている状態なのだけども、何か高密度な隕石の中にいると判定されているようだ。唯一使い方の分からない数字でもある。
アルファベットのAアイコンで475が出力されているシグナルは、宇宙船が係留されている時のみ出力される。これは係留された宇宙船の現在地を表す。
では、宇宙船の現在地とはどういうことだろうか。Space Explorationで拡張される機能の中にUniverse Explorerという機能がある。これを使うと、探査衛星を打ち上げて発見した惑星や太陽、アステロイドベルトなどを一覧できる。
例えば、筆者がやっているゲームではNauvisが母星である。母星をマウスでクリックして選択状態にすると、選択した要素の詳細情報がウィンドウの右上あたりに表示される。
では、母星の詳細情報を確認してみよう。色んな事が書いてあるが、今重要なのは、Automation signal という値だ。ここでは474となっている。つまり、宇宙船を母星の地表面に係留するとSpaceship consoleにおいてAの値が474になるということだ。ちなみに、目的地として使う際には、数字の左側についているアイコンも同じものにする必要がある。
続いて、母星の軌道衛星を見てみよう。ここでも注目するのは、Automation signalだ。軌道衛星を表すアイコンと共に475という数字が読み取れる。つまり、Spaceship consoleの出力シグナルをキャプチャした際に、宇宙船が係留されていたのは母星の軌道衛星上であるというわけだ。
これを踏まえて回路に設定された条件を確認してみよう。
Spaceship consoleから出力されたシグナルは、右側の赤いケーブルから入力されてくる。
右上の条件回路では、現在地が474、つまり母星の地表面に宇宙船が係留されている時チェックシグナルを出力する。右下の条件回路では、現在地が475、つまり母星の軌道衛星上に宇宙船が係留されている時チェックシグナルを出力する。つまり、右列にある二つの条件回路はいずれか一つだけが成立する。
中央上の定数回路では、軌道衛星を表すシグナルで475の値を出力しており、左上の条件回路のみに接続している。中央下の定数回路では474の値を出力しており、左下の条件回路のみに接続している。
左列にある二つの条件回路は全く同じ条件と出力を設定している。つまり、チェックマークのシグナルが1の時に、定数回路と条件回路から入力されたシグナルを全て出力するというわけだ。
回路全体を俯瞰すると、母星の地上に宇宙船が係留されている時は目的地を軌道衛星上に設定し、宇宙船が軌道衛星上に係留されている時は母星の地上に目的地を設定するというわけだ。
着陸と加速の自動化#
宇宙船の現在地に応じて目的地を自動的に決められるようになったので、次は着陸と加速の自動化をやっていこう。
これは特に難しいことは無くて、すでに作りこんだ係留と加速の定数回路のスイッチをONにしっぱなしにするだけだ。これによって、宇宙船から定数回路が一つ減ることになる。
Spaceship consoleの左側にある定数回路が二つになっていることが確認できるだろう。
減った定数回路の中に設定されていたシグナルを、Spaceship consoleのすぐ左隣りにある定数回路の中に統合した結果、このようになる。
どちらかというと、何故着陸と加速という矛盾したシグナルをSpaceship consoleに送りっぱなしにしても正しく機能するのかを理解する方が難しい。
Space Explorationにおける宇宙船には、係留状態、停止状態、加速状態という3つの状態があると少し前に説明した。
まず、クランプアイコンの係留シグナルは、目的地の上空で停止状態の時にしか機能しない。係留状態や加速状態の時は勿論の事、目的地でない場所で停止していても単に無視される。つまり、係留シグナルはSpaceship consoleに送りっぱなしで問題ない。
次に、タコメーターの速度目標シグナルは、目的地以外の上空で停止状態の時にしか機能しない。係留状態でエンジンをフカそうとしても単に無視される。目的地上空で係留待ち状態になっている時も無視される。というわけで加速シグナルもSpaceship consoleに送りっぱなしで問題ない。
入出荷の自動化#
宇宙船の自動運行について説明するのもそろそろ大詰めだ。最後の説明を始める前にそもそも何で宇宙船を自動運行するのか忘れてしまわないように、荷物を載せたり下ろしたりする方法について確認しておこう。
まずは積込みだ。このキャプチャでは右側の大きい箱からインサーターを使って取り出したものを宇宙船内の箱に格納している。ベルトコンベヤを配置するにあたって邪魔になった広域電柱の位置を少々調節した。
次は荷下ろしだ。積込みの際にはつながっていなかったベルトコンベヤの先に地下ベルトを通って物資が輸送されている様子が確認できるだろう。積込みの際に使っていた右側の地下ベルトの先には何もない。
離陸の際に使う液体ロケット燃料は、どこの惑星でも補充できるようにパイプを組むと紛れが無くなって宇宙船の運行状況が安定する。なお、宇宙用のパイプは地上用のパイプと問題なく接続できる。
離陸の自動化#
ここまでは、宇宙船内に配置した定数回路のON/OFFを切り替えることで宇宙船を離陸してきたが、最後は宇宙船を自動的に離陸できるように回路を組もう。
クランプを中心に宇宙船の離陸と関係がありそうな設備をケーブルで接続している。ここでは、宇宙船の電力状況を安定させるために蓄電池(Accumulator)を追加している。
接続されたクランプ同士は、それぞれに入力されたシグナルを相手方に送信する。つまり、宇宙船内部の液体ロケット燃料やIon Stream、蓄電池の残量はクランプを通して外の回路に伝達されるのだ。すごい。
赤いケーブルで接続された各資源の情報がクランプにシグナルとして送信されていることを確認してみよう。このキャプチャでは赤い背景の入力シグナルとして、液体ロケット燃料、Ion Stream、蓄電池の残量割合が送信されている。この例では、Spaceship consoleの出力と、蓄電池の出力に同じAシグナルを使っている。これらが同じ回路ネットワーク内に流れることで合算されてしまうと完全に意味のない値になってしまうので、回路の接続経路で混ざってしまわないよう注意して欲しい。
これらのシグナルを受け取る回路がどんな構成になるのか確認していこう。これが宇宙船の自動運行に関する最後の説明になる。もう少しだけ付き合って欲しい。
まず、宇宙船の離陸条件を検証する回路を宇宙船の外側に置くというアイディアこそが最も重要なことだ(なお、筆者のアイディアではない)。宇宙船の内部に離陸条件を検証する回路を置こうとするとどうしても回路が巨大になってしまうのだ。資源効率や横展開に関わるので、宇宙船は出来る限りコンパクトに実装したい。
次に重要なのはクランプのすぐ左にある条件回路だ。チェックシグナル3つを受け取ったら離陸シグナルを送るようになっている。なお、宇宙船は1tick離陸シグナルを受け取るだけで離陸する。つまり、離陸によって宇宙船が係留状態でなくなるので、左側のクランプから右側のクランプに離陸シグナルは送信されなくなるが、特に問題はない。
ちなみに、宇宙船内に定数回路で離陸シグナルを送れるようにしているのは、緊急避難的に宇宙船を離陸するためだ。自分のキャラクターから遠く離れた場所で宇宙船が動けなくなったとしても、Universe Explorerを使って宇宙船を表示したら定数回路のON/OFFをリモートで切り替えられる。なお、Spaceship consoleの離陸ボタンをリモートで押すこともできる。
残りの3つの条件回路は一つの資源ごとに条件を設定して、それぞれがチェックシグナルを1つずつ送るようにしてある。単一の回路ネットワーク内において複数の回路が同じシグナルを送信すると、そのシグナルの値は合算される。つまり、この回路においては3つの条件が成立した時に宇宙船が離陸するというわけだ。
より条件を複雑にしたければ、条件回路を単に増やしていけばいい。港側に条件回路を配置する構造なので、回路が大きくなってもほとんど問題はない。
というわけで、宇宙船の自動運行に関する説明はこれで終わりだ。残りは、細々としたTipsや回路の改良などを説明していく。
自動運行する宇宙船の改良#
ここまで説明に使った宇宙船を自分がプレイしているゲーム内のリソースを使って改良してみた。
改良点として分かり易いのは、太陽光パネルと蓄電池だ。テックレベルを上げていくとより強力なものが使えるようになる。ここでは色が赤いものに切り替えた。
次に、目的地を自動設定するための回路群をコンパクトにまとめた。二点間を移動するだけの回路であれば、合計10マス程度で実現できる。もしかしたら、これさえも港側で実装できるかもしれない、という気はするもののまだ試してみていない。
ちょっと分かりづらい改良としては、荷下ろしをするためのインサーターに対して、Spaceship consoleからの出力シグナルを接続するようにしたことだ。荷下ろし用の港に宇宙船が係留されている時だけ動作するようにインサーターの条件を設定している。これで意図しないものがベルトコンベヤ上に乗るのを避けられる。
まとめ#
以上がSpace Exploration modにおいて筆者が持っている自動運行に関するノウハウの全てだ。それほど多くの情報がある訳ではないが、丁寧に説明したので文章量としては非常に多くなってしまった。全て読むのはすごく大変だったことだろう。この文章を書きあげるのは勿論すごく大変だった。
宇宙船の自動運行については、筆者自身もまだノウハウを積み上げ始めたばかりで、あまり複雑なことは出来ていない。今後三点間の巡行や、資源の少ない場所への優先的な巡行、条件回路を全て宇宙船の外側に配置するなどの方式に挑戦してみたいと考えている。
ここまで、読んでいただいた読者に感謝するとともに、説明で使った宇宙船を各バージョンごとにブループリントとして記録しておいた。Space Exploration modをすでに導入済みで、このエントリでは説明しきれなかった微細な部分に興味がある方は是非インポートして使ってみて欲しい。
説明に使った全ての宇宙船をBlueprint Bookにまとめたもの
二年以上のリモートワークを生き残っている道具を紹介する
このエントリーは pyspa Advent Calendar 2022 の 14 日目の記事である。
昨日は @kuenishi の「我が家の生活物資事情コストコ編」だ。
はじめに
もはやこのブログがアドベントカレンダー用のサイトになって久しいが、今年もちょっと役に立つ話をしようと思う。
今回の話題は、在宅ワークにかかる環境整備の話だ。コロナが始まったころには盛んに皆さんが自宅の環境を整備するようなエントリを書いていたが、最近は一回りしたのか結構減ってきたように感じている。
単に私の生活環境が完成して、そちらの方面に対する興味関心が薄れただけかもしれないが。
というわけで、このエントリではすでに完成して久しい私の稼働環境について説明する。もう完成してから一年以上は経過しており、細かい変化はあるものの全体としては変わっていない。
少なくとも私が使い込んでいて間違いなく良いと感じているものを説明していく。
机と椅子
大きい物から紹介していこう。つまり、机と椅子だ。
オフィスチェア(オカムラ コンテッサセコンダ)#
コンテッサは比較的高額な部類の椅子だが、デスクワーカーにとって椅子は体の一部とも言うべき存在なので妥協しない方がいいと私は考えているので、きちんとお金を払って買った。
食事、入浴、排せつ、睡眠以外の時間はほぼこの椅子に座っている。時間にすると毎日8時間~12時間程度だろうか。休日に集中してゲームをしている時などはもっと長時間座っていることもある。
自分に合った椅子を探すというのは比較的専門的な知識が必要になるので、オンラインで買わずに専門家の意見を聞いた方がいいだろう。そういうとき、WORKAHOLIC はおすすめだ。完全予約制ということもあって極めて親身に対応してくれる。高額な商品を買う際には、コンシェルジュサービスにきっちり金を払って正しい知識でもって合うものを紹介して貰うべきだ。単なる消費者として分かっている事と、プロが持っている知見には大きな差がある。
私の場合は、コロナ初期で混乱状況な時に椅子を買ったこともあり、会社で使っているのとほぼ同じ椅子を買った。つまり、体に合っていないことに対する懸念はなかったので、同じものを最も安価に買えるアートオフィスクリエイトで買った。このサイトを使う上での注意点は「金を払ってない人間には対応が雑」ということだ。例えば、金を払う前に在庫や納期について聞いても通り一辺倒の答えが返ってくるだけで全く意味はない。しかし、一度支払いが済んでしまえば最大限の対応をしてくれる。工場在庫を押さえて、できるかぎり早く商品が届くように手配してくれるし、質問に対する応答も速くて正確になる。
https://e-aocinc.com/SHOP/122324/139843/list.html
電動昇降式デスク(FlexiSpot)#
昇降式デスクを買うなら、絶対に電動式を買うべきだ。理由は簡単、手動だと使うのがめんどくさくなるからだ。
私の場合は、3時間座って作業したら、1時間程度はスタンディングデスクとして使って、疲れたら座る、というような運用で使っている。仕事が少し忙しいような時は、1日に2回、3回上げ下げしているのだが、これは電動昇降式を選んだからこそ出来る生活サイクルである。
ただ、電動昇降式デスクは非常に高価な商品だ。様々なものを探したが、手ごろな価格で電動昇降式のデスクを買えるのは、ほぼFlexiSpotだけだった。当時私が買ったE3はすでに売っていないが後継商品のE7が今は売られている。天板の材質や形状のバリエーションも多いので大いに悩んだ上で購入して欲しい。
https://flexispot.jp/e7-set.html
ケーブルトレー(CB-CT3)#
電動昇降式デスクを買ったら確実に問題になるのはケーブル類だ。
私の場合、ディスプレイ2台に、マイク、USB充電器、USBハブ、キーボードなどがあるため、机の下部がどうしてもケーブルだらけになってしまう。これを解決するために、クランプ式のケーブルトレーを使っている。サンワサプライのケーブルトレーはFlexiSpotと非常に良い組合せで収まるのでおすすめだ。
https://www.sanwa.co.jp/product/syohin?code=CB-CT3
このケーブルトレーを使うとゴテゴテとした電源系のケーブルを足元に散らかすのではなく、机の奥側の裏に収められるので、足元が落ち着いた感じになる。
ディスプレイアーム(エルゴトロン)#
良い机と椅子が揃ったら、次はディスプレイアームだ。ディスプレイアームを導入するとディスプレイの高さや配置の自由度が格段に向上する。特に二枚以上ディスプレイを使うならディスプレイアームの利用を強く推奨する。
ディスプレイの高さや傾きは細かく調整することで眼精疲労や肩こりが低減するので、納得いくまで調整できるようにすべきだ。ディスプレイとキーボードとマウスの位置関係に妥協はない。
ディスプレイアームは、安価なものから高価なものまで色々あるが私が使っているのはエルゴトロンのディスプレイアームだ。最近のディスプレイはデカくて重いことが多いので高品質なものを使うのが望ましい。そういった意味でエルゴトロンは非常に信頼できる。
https://www.amazon.co.jp/dp/B07Q8TJ2KL/
入力デバイス
デスクワーカーにとってキーボードとマウスは自らの意思をコンピュータに伝えるためのデバイスである。
左右分離型キーボード(Mistel BAROCCO MD770 JP)#
全てのテレワーカーは左右分離型のキーボードを使うべきだ。私はそう考えている。
とはいえ、日本では左右分離型のキーボードは商品としての立ち位置を確立できていない。
自作キーボード界隈では左右分離型のキーボードは非常によく見るが、仕事で使う道具として完全に信頼できるものにはなりえない。基盤はむき出しで埃がたまれば火事になる可能性はあるし、はんだ付けが甘ければ期待通りに動作しない。ユーザ自身でファームウェアを書き換える以上、そのソフトウェア品質はそれほど高いとは言えない。
製品として一定以上の品質水準にある左右分離型のキーボードはほとんどが海外製品でつまり英字配列だ。私は、もう30年JIS配列でキーボードを使い続けているので、ここから英字配列のキーボードに乗り換えるという気持ちはほとんどない。
そういうわけで、左右分離型のキーボードでかつきちんとした製品になっているJIS配列の左右分離型キーボードは極めて貴重なものだ。
https://archisite.co.jp/products/mistel/barocco-md770-jp/
JISキーボードを使っていて、まだ左右分離型キーボードを持っていない人は、これを是非買ってみて欲しい。
リストレスト(Genuine Wood Wrist Rest)#
キーボードを分割したら、それに合うリストレストを使うことで手首に対する負担を大きく低減できる。リストレストはモチっとした柔らかいものが好まれているように思うが、実は少しくらい固い方が良いんじゃないかと個人的には感じている。
科学的な根拠のある話ではないが、柔らかいリストレストは、接触面の負荷は低いぶん、それによって周りの筋肉や腱に余分な力がかかってしまうことで、総合すると効果がマイナスなのではないかと疑っている。
FILCOのGenuine Wood Wrist Restは天然木で作られたリストレストだ。これはプラスチックや金属ほど固くはないが、一方で緩衝材のような柔らかさがあるわけでもない。
https://www.diatec.co.jp/shop/new/2003bunri/
大型マウスパッド(HV-MP855)#
キーボードを分割したら、次はマウスをどこに置くかが問題になる。
胸をしっかり開くような形で分割キーボードを配置したらキーボードの真ん中がマウスをおけるような空間になる。
こうなったとき、どんなマウスパッドがいいだろうか。小さすぎるマウスパッドは使いづらいし、中途半端な大きさのマウスパッドはキーボードと干渉するので収まりが悪い。
こういう時は、思い切って大きなマウスパッドを使おう。具体的には幅が90cm以上あるようなやつだ。一般的にはFPSのユーザが好んで使っているようだが、マウスとキーボードを丸ごとマウスパッドの上に置いてしまえばおさまりの悪さなどというものは、そもそも関係なくなる。
そういうわけで、90cm x 40cmあるようなマウスパッドはおすすめだ。
大型のマウスパッドをいくつか買ってみたが、長期間使うには上下左右がきちんと縫い込まれていてほつれないようになっているものがいい。
マウスパッドは大体ゴム製品なので、使い始めてから数か月はちょっと甘いような匂いがするものだが、気になるなら何度か洗濯すると匂いが消える。つまり、ゴムの匂いが苦手なら洗濯可能な製品を選ぼう。
私はゴムの匂いが苦手なので匂いが弱くてかつ選択できるHavitのマウスパッドは非常に気に入って使っている。
https://www.amazon.co.jp/dp/B01M18UR54
マウス(MARATHON MOUSE M705m)#
突然だが、私はトラックボールが苦手だ。仕事で使う分にはあまり問題ないのだけども、マウスを激しく動かすようなタイプ(ハクスラとか、RTSとか、FPSアクションとか)のゲームをする際には、トラックボールだと期待した速度で操作できなくてイライラする。
この数年間は、色んなマウスを試してみたが結局はいつもm705に戻って来てしまう。このマウスを私が使い続ける理由は3つだ。まず、手の中にうまく収まること。私は主に右手でマウスを操作しているが、右手と左手で握手したって、こんなに収まり良くはない。
そして、高速スクロール機能だ。マウス中央にあるボタンをカチっと押すとスクロールホイールが高速に回転するようになる。大量のソースコードやドキュメントをレビューする際には、この高速スクロール無しには業務が成り立たないと言える。
最後は、バッテリーの持ちが異様にいい事だ。今は相当回数充電してヘタったエネループプロでマウスを動かしているが、前回いつ充電したのか思い出せない。少なくとも直近2, 3か月は電池を入れ替えた覚えが無い。アルカリ乾電池なら、半年や一年は電池を交換する必要が無いのだ。なお、前回買った時には、電池より先にマウス本体の調子が悪くなったくらいだ。
https://www.logicool.co.jp/ja-jp/products/mice/m705m-wireless-mouse.910-005303.html
音源
リモートワークで高度な仕事を実現するには、高品質なリモートミーティングが重要だ。
特にマイクとイヤホンの品質が低いと会議における最低限の部分が満たされないので、会議の質が悪くなり易い。
骨伝導式イヤホン(AfterShokz Aeropex)#
私は基本的に電話が嫌いで、その理由は耳をふさいでそこから音を出していると、ほんの2,3時間で酷い頭痛に襲われ何も出来なくなってしまうからだ。
また、密閉性の高いヘッドフォンをしていると、周りの音が聞こえなくなるので、自宅のインターフォンが鳴っていることに気が付かなかったりする。インターフォン程度なら良いが、自宅の周りで何か事件や事故が起きていることに気が付かないようなことは避けたい。
Shokz(私が買った時はAfterShokzだった)の骨伝導イヤホンは、こういった私のニーズを適切に満たしてくれる製品だ。骨伝導イヤホンなので大きな音を出さずとも聞こえるし、耳の穴をふさがないので、周囲の音もちゃんと聞こえる。2台の機器にBluetooth接続できるのでスマホとPCにペアリングして使っている。
私が使っているのはAeropexだが公式には販売終了済
https://jp.shokz.com/products/aeropex
しかし、Amazonではまだ買える。
https://www.amazon.co.jp/dp/B07RQLTFJ5/
マイクとセットになっているOpenCommはずっと気になっているものの、Aeropexが不調にならないので使ってはいない。
https://jp.shokz.com/products/opencommuc
ダイナミックマイク#
イヤホンと対になる道具がマイクだ。
マイクには、自分の声はきっちり拾ってミーティング参加者に伝える一方で、自宅に溢れるノイズは拾わないようにしてもらいたい。USB接続できるコンデンサマイクは、数万円するaudio-technicaやRODEのマイクを試してみたが、どちらも期待するようには動作しなかった。
結局、期待するような動作をしてくれたのは1500円で買えるダイナミックマイクだった。量産効果万歳。
https://www.amazon.co.jp/gp/product/B07PNMRBJS
オーディオインターフェース(evo 4)#
ダイナミックマイクの多くはXLR接続なのでPCに直接は接続できない。つまり、PCとマイクの間に専用の機器を置くことになる。というわけで、オーディオインターフェースを買う必要がある。
オーディオインターフェースは、マイクに比べると少し高額なものが多い。私が使っているのはEvo4というUSB接続するだけでカジュアルに使えるものだ。
https://allaccess.co.jp/audient/evo4/
evo 4は熱意をもっておススメできるというほどではない。もう少しオーディオ初心者でも使い易い構造で安価なものがあるように思う。
マイクスタンド#
マイクと自分の口の距離は近ければ近いほどいい。しかし、一日中ミーティングしているわけではないので、使っていない時は横にどかしておきたい。そういう要望をかなえてくれるのがマイクブームだ。関節がいくつかあってクランプ式のものを選べばFlexiSpotの良い感じの場所に挟んで使えるだろう。私が使っているのはAmazonで買える非常に安価なものだ。消耗品のつもりで買ったが2年以上元気に使えている。
https://www.amazon.co.jp/gp/product/B07F588GVF
電源
ソフトウェアエンジニアは電源と共にあるものだ。良い電源は良い仕事につながる。
私が使っている電源に関連する製品をいくつか紹介しよう。
充電池(エネループ プロ)#
まずは充電池だ。電池を使う機器にはほぼ、エネループ プロを入れて使っている。例えば、マウスやゲームのコントローラがこれにあたる。
こいつは物理的な大きさは他の電池と同じだが容量が大きいので交換の頻度を下げられるので気に入っている。
https://panasonic.jp/battery/charge/p-db/BK-3HCD2C.html
卓上充電器(Anker PowerPort Atom III Slim)#
スマホを始めとしたガジェットの類はバッテリーを内蔵しているものが多いので、机の上に置いてある最中は充電しておくとよい。私が気に入って使っている高速充電器はAnkerのものだ。
https://www.ankerjapan.com/collections/charger/products/a2045
無停電電源装置(APC RS 550VA)#
この冬は寒い。そして電力が不足している。皆さんは家庭に届いている電圧がちょいちょい100Vを下回っていることに気が付いているだろうか。場合によっては、計画停電なんてこともあるかもしれない。
そうでなくても、最近のGPUは滅茶苦茶電力を食うので、ゲームしながらエアコンやヒーターに電源を入れた途端にうっかりブレーカーが落ちることもあるだろう(実際、私はそうやってブレーカーを何度か落とした)。
大抵の電子機器はちゃんとしたコンデンサを積んでいるので少々の電源断で壊れたりはしない筈だが、パソコンだけはそういうわけにもいかない。ブレーカーが落ちた後にPCをシャットダウンするだけの時間を稼ぐためにUPSを置こう。
APCのUPSならPowerChuteという電源管理用のソフトウェアが付いてくるのでシャットダウンも自動化できる。
https://www.apc.com/jp/ja/product/BR550S-JP/apc-rs-550va-sinewave-battery-backup-100v/
その他おまけ
今年は寅年だったのでネピアのパッケージが本当に最高だった。Amazonの購入履歴によると、11回買っているので、ほぼ毎月買っているようだ。
ネピア 鼻セレブ ティシュ 400枚(200組)x3箱 ネコ科動物パッケージ
https://www.amazon.co.jp/dp/B09N33KMKZ
まとめ
以上が、私が自宅に作りこんだ環境だ。気になることや、もっと良いものがあるという方は、是非教えて欲しい。
テレワーク環境をより良くしたいと考える読者の皆さんに少しでもお役に立てれば幸いだ。
冷凍食品でウキウキ引きこもり生活
このエントリーは pyspa Advent Calendar 2021 の 13 日目の記事である。
昨日は @drillbits の「作業用 BGM オブジイヤー 2021」だ。
はじめに#
みなさんは、新型コロナ感染症の蔓延による日々の外出が強く制限される生活には、もう慣れただろうか。
僕自身は、元々引きこもりがちで何か理由がない限りは家から出たくないタイプの人間なので、この世の春を謳歌している。
僕が所属する会社は、この状況に対して極めて柔軟に対応してくれているので、両手で収まる程度しか会社に出社せずに済んでいて、ほぼフルリモート生活である。ありがたいことだ。
とはいえ、引きこもり生活において一切の不自由がないとは言い難い。
以前は、腹が減ったら気ままに家から出て飲食店に入ったりしていたものだが、今はそういうわけにはいかない。
勿論、調子がいい日は真面目に飯を作って食うわけだが、一年中調子が良いってわけにはいかないだろう。
何せ MtG の新しい拡張は三ケ月に一回は発売されるし、Steam には毎月のように面白そうなゲームが発売される。既に買ったゲームの拡張がでることもある。
Kindle ストアには僕がまだ読んでない漫画がいくらでも並んでいる。そうそう Netflix に見たい動画が沢山あるけど、どれも手を付けられてない。
たまには仕事が立て込んだりもする。
そういうわけで、手軽に飯を食いたいと考える日は多い。
このエントリでは、手軽な食事として最近活用している冷凍食品のデリバリーサービスをいくつか紹介しようと考えている。
ブログをDocusaurusに移行した
今まではHexoで実装していたブログをDocusaurusに変えてみた。
Train Supply Managerで始める列車自動運行
このエントリーは pyspa Advent Calendar 2020 の 16 日目の記事です。昨日は @kumagi の「ブロックチェーンは攻撃手法で分類するとよい」でした。
はじめに#
皆さんこんにちは。世界は疫病に覆われ行動変容を余儀なくされていますが、いかがお過ごしですか?
私は元々引きこもり体質で、家からできる限り出たくないタイプの人間なので我が世の春を謳歌しています。
このエントリでは、私が今年一年かなりの時間を使ったゲームである Factorio を拡張して便利にしてくれる MOD の紹介をします。
TypeScriptによるアプリケーションの開発環境
このエントリーは pyspa Advent Calendar 2019 の 11 日目の記事です。昨日は @chezou の「Vein の iOS ショートカット複数 URL 対応しました」でした。
はじめに#
TypeScript は大変に素晴らしい言語で、僕の手によくなじむ。そのせいか最近はめっきり TypeScript ばかり書いている。
今回のエントリでは、僕がこの一年くらいの間に磨いた TypeScript のテンプレートプロジェクトについて説明する。かなり何度も使って必要十分なものだけを含めるようにしている。
しかし、僕の知識の偏りがそのままになっているので、万人に合うというわけではないだろう。
とはいえ、開発環境の初期構築はかなり面倒な作業なので参考にして貰えれば嬉しい。
細かい説明なんかよりもコードを見た方が早いってハードコアな方は、こちらへどうぞ。
運動不足だった技術者が筋トレを続けている話
このエントリーは pyspa Advent Calendar 2018 の 11 日目の記事です。昨日は @shiumachi の転職エージェントの活用法でした。
はじめに#
去年は、筋トレを始めた話を書いた。
この一年くらい途中で二回ほど離脱した時期もあったが、どうにかこうにか筋トレを継続できている。
と言う訳で、今日は僕が筋トレを継続できているという話をする。
2018年における最高のゲームEverdellを紹介させてくれ
eclipseで作るSpringアプリケーション開発環境
はじめに#
ここ最近は、SUN が Oracle に買収されて Java 自体の開発に関する状況が大きく変わってきている。
安定的に動作することを期待されている Java が他の言語みたいにどんどん変化するって方向に変わりたいようだ。 新しいもの好きな人々にとっては話題が多いのは素晴らしいことだろうが、アプリケーションが確実に動いて欲しいと思ってる人々にとっては困った話だ。
僕は SIer の従業員なんで、安定的に動作するってことが Java や JVM の素晴らしさだと考えている。
とはいえ、大きく変化してるってんなら、ちゃんとキャッチアップしておかないと困ったことになるのは自分だ。
そういう訳で、今回は eclipse を使って Spring Boot のアプリケーションを開発するための環境構築について説明する。