よく使うツール for Windows

エンジニアにとって利用するツールの選択は効率アップの要ですね。
仕事での兼ね合いなど、何やかんやあった結果、Windows(笑)環境を普段使いにしています。
ということでWindows用のソフトをまとめておきたいと思います。

ゆとりエンジニアなのでコマンド覚えるのは苦手。かつ一挙に情報を画面表示して安心できるタイプなので、GUIで使いやすいものが好みなのですが。。。
UNIX派生系は普段使いたいと思えないんですよね。Macはハード固定だし、LinuxはまともなGUIが無いし。Linuxはサーバ用途と割り切ればvi(vim)があればどうとでもなりますし。

ここでは、フリー/OSSで手に入れやすい、かつ人口も多くてノウハウも共有しやすい定番ツールに焦点を当ててみたいと思います。

オフィスツール

Kinza: ブラウザ

ブラウザはFireFox, Opera, Vivaldi, たまにEdge, とまあいろいろ使っていますが、
調べものならChromeが機能的にも性能的にもベストだと思います。双璧を成すFirefoxは未だにクラッシュするし。

素のChromeは速いがあれこれ拡張が必要、だがChrome Plus (Cool Novo)は開発が停止しているし、スーパードラッグやマウスジェスチャが標準で使えるChromium派生ブラウザがない。。。
と思っていたらKinzaという光明が現れたのです。

Chromiumアップデートに追従しつつ、拡張を入れなくともある程度快適なマウス操作ができる。
同期機能(FireFoxのSyncとか)使えばいいやんけ、というのは分かりつつ、だがマシンごとに微妙に使い分けたいので単純に同期されても困る。ということで素で使いやすいKinzaは重宝しています。

開発に使う場合はREST API Clientなどを、ブラウジング主体の場合はAd Blockを、と拡張機能を適宜足して使っています。

Thunderbird: メールクライアント

複数のアカウントを使っていると、まあ半必然的にメールクライアントを使わざるを得ないですよね。
フリーだし、ノウハウも共有されているので総合的な使いやすさで一番だと思っています。
検索機能がもっと強化されれば。。。まあSQLiteの限界なのでしょうが。

Notepad++: テキストエディタ


Windows標準のメモ帳(notepad)も使いますが、サイズが大きなログファイルなどnotepadで開くと死ねる。
その点、Notepad++は高機能なわりに動作が軽いし、tail -f機能もある。
以前はSakuraエディタも使っていましたが、今はこれ一本。

まあでもNotepad++でコーディングしようとは思えないかな。。。

Cmdr: コンソールエミュレータ

タブで複数のコンソールを開けて便利。フルスペック版もポータブルとして動くのでレジストリを汚さない。
エミュレータなのでLinuxのコマンドが使えますし、vimやgitコマンドが同梱されているのも地味に便利。
まあフォントなど日本語対応は微妙。

何より背景の透明度を設定できる!カコイイしWebページ見ながらコマンド打つとき実用的。
まあ最近PowerShellも透過をサポートしたので、この点については優位点でもなくなったのですが。

WindowsにインストールするとPowerShellもタブとして使えるのですが、何故かシステム設定で定義されているであろうExecutionPolicyに制約されてない(おそらくBypassされている)。。。
つまりシステム側の設定に関わらずCmdrからPowerShellスクリプトを実行できてしまう、という(セキュリティホール?)。

PukiWiki: Wikiサーバ

Wikiツールとしてある程度の機能は欲しい、でもバックエンドにDBを必要とするリッチな構成までは必要ない。そんな要求に答えるのがPukiWiki。いかんせん古いのですが、いまだにこれを超えるシンプルさ+使い勝手を備えたWikiエンジンがありませんね。。。
バージョンアップが期待できないとか、Markdownで書けないとか、検索機能がしょぼいとか、不満はありつつも、記法もシンプルで充分な使いやすさを備えています。

開発ツール

Git: バージョン管理ツール


いわずと知れたバージョン管理ツールの決定版。
SourceTreeなどさらにGUIを被せて統合的に管理するパターンもありますが、結局使い方を覚えなきゃなのがストレスですし、そもそも公式のGit for Windowsだけで十分使えます。ただしGUI版はダサい。

GitLab: バージョン管理サーバ


いわずと知れたGithubのクローン。セットアップやメンテ、ちょっとしたカスタマイズもそう難しくない。

本来のリポジトリサーバとしての役割も重要ですが、ソースをWebブラウザで見られたり、簡単なタスク管理やWiki機能があったりと豊富な機能で、個人でも充分立てる価値あり。
以前はMicrosoft謹製のTeam Foundation Serverを使っていたのですが、SQL Serverの構築が必要など管理が面倒で乗り換えました。

ただ、意外にマシンパワーを要求しますね。一度、Raspberry Pi 3上に構築したら、コードがまともにプレビューできなかったり、一部機能が原因不明のエラーを吐くようになったのでリソース不足と諦めて素直にスペックアップしました。

Atom: テキストエディタ

やはり快適なコーディング作業はエディタが効率を左右します。
スクリプト言語とか、そもそも型チェックが効かないコーディングには、シンタックスハイライトなど視覚的に把握しやすいUIが命だと思います。
その点でAtomはベストです。

とは言え、ごりごりデバッグが必要な言語は専用のIDEを使うのが早道。
C#ならVisual Studio (Community), JavaならEclipse (Pleiades), PowerShellならISEが、やはり便利です。VSはIntelliSenseが最高。コード定義ウィンドウの復活を待望。

Atomの長所はいろいろありますが、まずは拡張パッケージを追加することで様々にカスタマイズすることができる点。また、GitやMarkdownとの相性の良さはもちろん、Beautify(コードの整形機能)も気に入っています。Visual Studio Codeも方向性は同じなのですが未だにちゃんと動かない機能があり、Atomのほうが完成度高し。

コミュニティに依存する分、Sublimeと違ってパッケージの品質や性能は、、、まあご愛敬。
まともに動かないパッケージがあるとか、Atomそのものの立ち上がりが遅いとか、贅沢を言わずにおくのがツールへの愛情というものでしょうか。

Anaconda: Pythonライブラリ

Python自体は公式のインタプリタがあれば実行できますが、ちょっと凝ったことをしようとすると周辺ライブラリパッケージのセットアップが面倒です。Jupyterやmatplotlibを使おうとして固有のエラーにハマったり、ネットワーク環境の問題で手間取ったりすることもあります。

Anacondaは機械学習用のライブラリなどを中心に、パッケージ群をまとめてセットアップしてくれます。
小規模構成のminicondaもあり。とりあえずAnacondaを入れておけば、データ処理関連で互換性に困る可能性はぐっと減ります。

インストーラがデカいのが欠点と言えば欠点。

Tera Term: SSHクライアント

SSHクライアントは数ありますが、Tera termはそれらの中でもこなれているものの一つ。Linux製サーバや組み込みデバイスなどをWindowsクライアントで操作するときによく使います。マクロ実行、SCP転送などやりたいことは一通りできる。
設定すれば自動ロギングも可能(だが複数セッションを開くとうまく動かない)。

Virtual Box: 仮想化

パソコンが欲しいがお金はない、そんな時の仮想化技術。
DockerとかのコンテナでもSwarmやDocker Composeなど便利な機能が多くて良いのですが、多少長く使おうとするとイメージ管理は逆に面倒。忘れるし。

Windows機ならHyper-Vも選択肢の一つですが、NATの構成がひたすら面倒。そしてWindowsのNICブリッジと競合するのが個人的には致命的。その点、Virtual BoxはデフォルトでNATあり、プライベート(ホスト内)セグメントもあり、ポートフォワードもすぐできる、など基礎体力が高いですね。そしてブリッジと共存する。

使い方としてはバックグラウンドで動いてくれれば充分なのだけれども、ヘッドレス起動がデフォルトでない、バージョンアップのたびゲスト側の拡張ツールをインストールするのが面倒、などイマイチな癖はあります。

Ansible: 構成管理ツール

構成管理ツールはいろいろありますが、一番シンプルで使いやすいと思えるのがAnsible。
コマンドを覚えるのが苦手なゆとりエンジニアにはLinuxは面倒すぎるのでついツールに頼りがち。。。

SSHさえあればリモートのマシンも管理できますし、ローカルで使うのも充分役に立ちます。困ったらググればPlaybookの書き方がいっぱいヒットするのも助かりますね。

マルチメディア

MPC-HC(64bit): メディアプレイヤー

動作が安定している(まれにフリーズすることもある)し、必要な機能は揃っている、そして某特定アジア製のソフトを使うよりも気分的に安心できる気がする。

キーバインドとかカスタマイズすればより便利ですが、素の設定でも十分シンプルに使えます。

HandBrake: 動画ファイル編集

昔自作したDVDの再エンコードに使っています。
機能的に必要十分。設定項目が多い分、使い方が地味に難しい点はありつつも、何となくデフォルト設定でも目的は達成できる。

GreenShot: スクリーンショット取得

WindowsのPrint Screenキー入力をフックして矩形選択カーソルが立ち上がります。

スクリーンショットを取得する上で必要十分な機能が揃っているし、動作も安定している。特に欠点らしい欠点がないのが長所。mspaintを立ち上げるまでもないスクショ取得・加工に便利です。