開発で便利なアイテムたち

元々は違う記事にしようとしていたところを「こっちのが面白いのでは？」というお話があったので採用しました。
試しに使ってみて、良い方を採用してください。

## ハードウェア編（周辺装置）
マシンスペックは高い方がいいので、予算と相談してください。
予算いくらで開発マシン（画像処理の有無）を組む事が多いと思うので、時価や店舗の在庫には注意しましょう。
そのため、ここで取り上げるのが難しいです。

なお、モニターなんかは完全に好みの領域です。
普段使いは横に広く、エディタや資料閲覧用で使うなら縦に広く使う事をおすすめします。
モニターアームで上下左右や角度もつけられると、開発場所も比較的自由に設定できます。
モニターについては、家具や部屋の間取りと相談しましょう。

このように、ハードウェアも拘れば沼です。

### フットコントローラー
開発中に足が暇な方、非常に勿体ないです。
せっかくなら足も働かせて、頭の回転を上げていきましょう。

よく使われるのが○連（代替は3,4連）ですが、よく使うのはアンドゥ・リドゥぐらいなのでボタン数が多くなると単純に反応がなくて困惑するだけです。
マウスだと多くても困りませんが、フットボタンは多いと困ります。
車の運転で言えばクラッチのオートマチックとマニュアルの違いを想像してもらえば分かりやすいと思います。
一番良いのは、USB1端子の1ボタンを2台置いて左右で使い分けるのと、この時に買うものはボタンの大きさや触感、踏み心地が異なるものであった方が良いです。
なぜなら、圧倒的にアンドゥの使用回数が多いため、常に左足・右足だけで踏み続けるのが辛くなるからです。
そして、これはあるあるというか慣れればそういうものだと思えるようになりますが、フットコントローラーはマウスやらキーボード以上に壊れやすい（個人差あり？）ため、安かろう悪かろうで使い心地の良いものを見つける楽しみを見出していきましょう。

参考までに、昔使っていたものを紹介しようと思っていたんですが、シリーズが既に取り扱い終了になってしまっていたため、出せるものがないです。
今はフットコントローラーは後述のサプライ品が優秀なので使わなくなったというのもあります。

因みに、steamなどでレースゲームを遊ぶ時にも使えるので、steamアカウントを持っている場合は使ってみてください。

### テンキー型のファンクションキーボード
フットコントローラーに変わるものです。
FPSゲーマーには御用達ですが、プログラミングでの用途を考えるならフットコントローラーほどは使いにくいです。
というのも、手は既に両腕ともに塞がっている可能性が高いからです。
キーボードを片手で操る方なら良いかもしれませんが、レアケースだと思います。
わざわざファンクションキーボードのためにワンハンドスタイルに切り替えるのも辛いです。
（ワンハンドスタイルで高速タイピングが出来たらカッコいいよね！という意見には同調します）

ただし、フットコントローラーと違ってきちんと目に見える場所で操作ができるので、こちらはシンプルより高機能の方が扱いやすいです。
問題は、高機能＝使いやすいとは限らない事です。代表としては「そんなに設定するファンクションある？」ですね。
「利便性のうち、操作のしやすさ（シンプルさ）と機能性（多機能）はトレードオフ」だと考えておくと失敗を避けやすくなる傾向があります。

### マウスジェスチャーがしやすいマウス
安いマウスより高機能マウスの方が使いやすいと感じる事が多くなった方は多いと思います。
マウスの仕事に左クリック、右クリック・縦スクロール以外の操作が出来るようになったからですね。
特に恩恵が大きいのは、横スクロール機能が出来たり、マウスでアンドゥ・リドゥができるファンクションボタンがついたりですね。
参考までに、[私が愛用しているマウス](https://amzn.to/3WWQEpR)を紹介します。

<a href="https://www.amazon.co.jp/%E3%82%B5%E3%83%B3%E3%83%AF%E3%82%B5%E3%83%97%E3%83%A9%E3%82%A4-%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%AC%E3%82%B9%E3%82%A8%E3%83%AB%E3%82%B4%E3%83%8E%E3%83%9F%E3%82%AF%E3%82%B9%E3%83%9E%E3%82%A6%E3%82%B9-%E8%85%B1%E9%9E%98%E7%82%8E%E9%98%B2%E6%AD%A2-%E3%83%AC%E3%83%BC%E3%82%B6%E3%83%BC-MA-ERGW6/dp/B009OV7ZU4?th=1&linkCode=li3&tag=anets-22&linkId=7bb779f5d6dd3afb96c4e89fd6544efe&language=ja_JP&ref_=as_li_ss_il" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B009OV7ZU4&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=anets-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=anets-22&language=ja_JP&l=li3&o=9&a=B009OV7ZU4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

こちらのおかげで、フットコントローラーが要らなくなりました。
普段パソコンを使わない、自宅に置いていない方に見せるとキモがられますが、非常に便利なのでオススメしたいですね。
ただし、最近はなかなか手に入らないため類似品をまた探す旅をしなければならないかもしれません。

## ソフトウェア編（無料）
説明文中はWindowsを想定しつつ、Macについても補足解説します。

ハードウェアの沼っぷりも言及しましたが、ソフトウェアはもっと沼です。
CUIエディタは今も宗教戦争が激しかったり、動画編集ソフトも群雄割拠状態なので、情報量の多さも選択に含める必要があります。
アプリだけではなく、サービスにも課金が必要である事が多いのも特徴です。

ハードウェアは買い切りが多いですが、ソフトウェアはサブスクリプション（月額定額制）を採用しているためイニシャルコストこそ低いですが、ランニングコストによってはスタンドアロンの方がトータルでは安かった、なんて事も。
しばしばAdobe税と揶揄されるのが印象深いです。

なお、ここでは主にWindowsを想定していますが、Windows自体(OS)も課金制である事に留意しておきましょう。
Mac系の場合は、ハードのぶっとんだ価格設定に目を引かれますが、しれっとOSが含まれているのである意味Windowsよりは親切？かもしれません。
なお、Linux系を採用する場合は、ディスクさえ作る事ができれば基本的にはタダである事が多いです。

### ブラウザ拡張
拡張機能の話をする前に、ブラウザ自体にも色々な種類があります。
特にChromium系（Chromeっぽい）ブラウザは数が多すぎて全て把握できていないのでつまみ食いになります。

1. google chrome
1. brave
1. vivaldi

一番いいのは本家？のgoogle chromeで、基本的に使えないものがありません。
chromeじゃないと使えないものがなければ敢えて選択する事もありませんが、必要になるシーンは意外と多いかもしれないので、使わなくとも消さずに置いておきましょう。
braveはアンチ広告が優秀で、vivaldiはバニラの機能の多彩さを評価しました。

基本的には、chromium系はそれぞれのブラウザの良さがあるので、類似した機能をつまみ食いしていくことになります。
拡張機能をつぎ込めばつぎ込むほどメモリの圧迫は免れないため、原則的にない方が好ましいです。

いきなりイレギュラーなお話をしましたが「ブラウザ拡張は無理して入れないに越したことはない」という事をお伝えしておきます。

### Microsoft Store系(MacだとApple Store系)
まずは開発環境。
bat（コマンドプロンプト）やPowerShell系よりLinux(bash系)に慣れている方は、WSLを使うかHyper-Visor(Docker)かVirtualBox系(VMWareなども含む)か、の3つぐらいに分かれるかと思います。
Windowsでもnodejsやjava、pythonをはじめcmdにパスを通して実行するタイプのインストーラーが用意されているものもありますが、コマンドでガチャガチャできた方が開発環境を作りやすいですよね。
WSLを入れる場合は、Windowsの設定でWSLを有効にした後、Linuxのディストリビューションをインストールする事でWSLコマンドに対応させます。
詳細な手順は調べればザクザク出てきますので本稿では省略します。

なお、開発環境以外だとツール群として[powertoys](https://apps.microsoft.com/store/detail/XP89DCGQ3K6VLD)もおすすめです。

### サードパーティー製
Microsoft Storeでは整わない開発環境があります。
そこで、chocolateyを使う事でMacで言うbrewとかdockerfileのようにWindowsの環境構築も「ある程度」一元管理することが出来ます。
（ある程度＝chocolateyで管理できていないパッケージは登録できないため）

https://chocolatey.org/

パソコン引っ越しソフトは多いですし、データ関連も一緒に引き継げる事があるのでそちらを採用する方法もあります。
が、知らない間に汚染されていたり、不要なデータが入っていたりもするのでクリーンインストールの機会だと思って割り切ってキレイにするという考え方もできます。
（Windows Vistaぐらいまでの時代だとクリーンインストールした頃と比べて明らかに遅くなっていったのが体感で分かる時代が長かったのです…）

### エディタ
今はVSCode以外を紹介する本やサイトを見なくなりました。
かくいう私も色々な経緯があって、今はVSCodeにお世話になっていますし、今のところ乗り換える予定もありません。

が、VSCodeで書くよりも環境構築が複雑なので、こういったものを対応して欲しいケースがあります。
分かりやすいのはVisualStudio系やIntellJ系でしょうか。いわゆるIDE（＝ここでは、実行環境も含んだ開発環境と考えてもらえば意図は伝わっています）です。
こういうケースはVSCodeで実行環境を構築しようとすると結構骨が折れるので、素直にIDEの方が良い事が多いです。
なお、実務で環境が指定されている場合は、多少不服な事があっても原則として指示に従う事をオススメします。

## エンジニアだからこそ、ソフトもハードも拘りたい
今回は取り上げなかったものも多くあります。
普段使いしている仕事道具には良いものを使いたいものです。
普段何気なく使っているものこそ、改めて見つめ直してみるのも作業効率化の一歩になるかもしれません。

## 次の記事
- [(25日目) 25日完走した感想と、今からQiitaアドベントカレンダー2023に向けてのテーマ・抱負](https://qiita.com/nomurasan/items/7974edd43c24fae38d9f)
- [カレンダーページ](https://qiita.com/advent-calendar/2022/oreno_nomurasan2022)