Git for Windows

もはや、開発には必須とも言えるリビジョン管理システム。

Windows用のGUIクライアントはいくつかあるが、基本CUIで使う(正確にはEmacsやVS Codeなどから使う)ので、ほぼこれ一択。

正直、ネットワーク機能を除けばRCSで十分なのだが…

GUIクライアントが欲しい場合は、別途TortoiseGitなどをインストールのがよいだろう。

インストールにおけるオプションは、基本デフォルト設定。

「Choosing the default editor used by Git」でCUIでのデフォルトのエディタを選ぶ。多くの場合は、エディタ内の統合環境から操作することになるのでVimでもなんでもよいのだが、現在開発用としてよく使う「Use Visual Studio Code as Git’s default editor」を選んでおく。

[Adjusting your PATH environment]は、WSLがあるもののちょっとした操作でUNIXツールが使いたくなることもあるので「Use Git optional Unix tools from Windows Command Prompt」にする。

[Configuring the line ending conversions]は「Checkout as-is , commit as-is」。改行コードの処理は、エディタの仕事だという考えから。改行コードに関する理解が浅いメンバーがいるチームで使うのであれば、自動変換も検討に値するかもしれない。

「Choosing HTTPS transport backend」は「Use the OpenSSL library」を選ぶ。

「Configureing extra options」では、「Enable file system caching」、「Enable Git Credential Manager」にチェックする。

なお、オプションはバージョンによって頻繁に変更があるので、毎回きちんと検討する必要がある。

もっとも、設定はすべて%USERPROFILE%.gitconfigに記録されるのであとから修正するのは容易。

エクスプローラの再起動などは、特に発生しなかった。

アップデート

アップデート通知からアップデートした場合、インストーラー自体は、ダウンロードフォルダーに保存されることは無い。

初回インストール時に設定する一部のオプションについては、再度設定する必要がある。


特に、新しかったり選択肢の追加があったオプションについては、再設定が必要になるようだ。

アップデートの最初に、「新しいオプションだけ表示するか」というチェックボックスがある。

VirtualBox

Windows上で動作する仮想環境を実現するソフトウェアには、VirtualBox、Hyper-V、VMWare Workstation(Player)などがある。

Hyper-Vが若干速度的なメリットがあり、Windowsの機能の一部ということで使っていたが、Windows May 2019 UpdateにしたらDirect Xが動作しなくなってしまった。 RemoteFXのサポート終了関連の影響かと思ったが、深く追求せずVirtualBoxに移行した。

Hyper-VのホストOSとクライアントOSを同じレイヤーにおいて動作させるという仮想環境の実現方法が、あまり好ましくないことが多かったという事情もあるのだが…

  • ホームページ: https://www.virtualbox.org/
  • ダウンロードファイル: VirtualBox-6.0.10-132072-Win.exe (インストーラー版)
  • インストール方法: ダウンロードしたファイルを、実行してインストール。
  • 動作確認バージョン: 6.0.10 (Windows 10 Pro May 2019 Update 1903)

インストーラーのオプションは基本的にデフォルトで進めていく。
「Warnng: Network Interface」という警告が出るが、これは「一時的にネットワークが切れる」というもの。使っている最中でなければ特に気にする必要はない。

環境設定は特に行わなくても良いが、仮想マシンのデータの置き場所はUsersの下からは外したいのと、フォルダー名にスペースが入るのが望ましくないの2つの理由から変更することにしている。
[一般]-[デフォルトの仮想マシンフォルダー]でデフォルトの「C:\Users\nor\VirtualBox VMs」から「D:\VirtualBoxVMs」に変更した。

VirtualBoxは6になってから、Hyper-Vとの共存が可能になったとのことだが、うまくいかない、不安定などの話も多い。
実際にHyper-V有効のままVirtualBoxを試してみたが、仮想マシンの起動直後に「Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).」というエラーが出てしまい、仮想マシンが起動しなかった。
「コントロールパネル」-「プログラム」-「プログラムと機能」-「Windowsの機能の有効化または無効化」から、「Windows ハイパーバイザー プラットフォーム」を有効にすると動作するという情報もあったので試してみたが、だめだった。

Windowsのパスワードリセット方法

Windows PCのパスワードを紛失してしまってログイン不能になってしまった場合でも、以下の手順でパスワードをリセットすることができる。

概要


Windowsのパスワードを忘れた場合でも、電源を入れればログオン画面までは進む。

そして、ログオン画面の左下に小さなボタンが表示されている。

これは「コンピュータの簡単操作」というメニューを表示させるボタンなのだが、この「コンピュータの簡単操作」の実態は「utilman.exe」というコマンドになっている。

そこで、このutilman.exeをcmd.exeに差し替えて、コマンドプロンプトを立ち上げてパスワードを操作するというのが、このパスワードリセット手順の概要。

utilman.exeをcmd.exeに入れ替える

utilman.exeをutilman.bakという名前に変更し、cmd.exeをutilman.exeという名前でコピーする。

今回は、Windows 8.1のインストールディスクを使うが、NTFSを操作できればLinuxのLive ディスクでもなんでもよい。

Windows 8.1のインストールディスクをドライブに入れ、PCを立ち上げる。この時、当然ながらBIOSなどで起動優先順位をCD/DVDドライブを内蔵ハードディスクより優先にしておくこと。

Windows セットアップの画面が立ち上がったら、キーボードのShiftキーとF10キーを同時に押す。

コマンドプロンプトが管理者モードで立ち上がる。

Windowsの場所を確認するため、Cドライブから順にディレクトリの中身を見ていく。

> dir c:
> dir d:

Windowsが存在したら、そのドライブに移動する。

> d:

Windowsが存在したら、そのドライブに移動する。

> cd \windows\system32

utilman.exeをutilman.bakという名前に変更する。

> ren Utilman.exe Utilman.bak

cmd.exeをutilman.exeという名前でコピーする。

> copy cmd.exe Utilman.exe

コマンドプロンプトを終了する。

> exit

インストールディスクを取り出し、「Windows セットアップ」ウィンドウの右上の「×」をクリックしてセットアップを終了する。

「Windowsのインストールを取り消しますか?」の画面で「はい」をクリックすると再起動が始まる。

パスワードを再設定する

再起動して、ログオン画面が表示されたら、右下のボタンをクリックする。

コマンドプロンプトが表示されたら、設定されているユーザーを確認する。

> net user

Administratorのパスワードを変更する。passwordの部分は新しいパスワードを入力する。Administrator以外でも、特定のユーザーのパスワードを変更したければAdministratorの部分をそのユーザーの名前にする。

> net user Administrator password

コマンドプロンプトを終了する。

> exit

これで、設定し直した新しいパスワードでログインできるようになる。

utilman.exeを元のものに戻す

ここで、そのままAdministratorでログインして、utilman.exeを元のものに戻してしまいたいところだが、utilman.exeには特殊な属性がついているため、入れ替え時同様にWindowsのインストールディスクなどでPCを立ち上げて、コマンドプロンプトから操作するのが楽。

入れ替え時同様の手順でコマンドプロンプトを立ち上げる。

Windowsがあるドライブに移動する。

> d:

\Windows\System32フォルダーに移動する。

> cd windows\system32

中身がcmd.exeのutilman.exeを削除する。

> del Utilman.exe

utilman.exeを元のものに戻す。

> ren Utilman.bak Utilman.exe

コマンドプロンプトを終了する。

> exit

インストールディスクを取り出し、「Windows セットアップ」ウィンドウの右上の「×」をクリックしてセットアップを終了する。


「Windowsのインストールを取り消しますか?」の画面で「はい」をクリックすると再起動が始まる。

以上で、パスワードの再設定手順はすべて完了。

Path Copy Copy

エクスプローラー上で、コンテクストメニューからパス名をさまざまな形式でクリップボードに収納する。

  • ホームページ: Path Copy Copy <https://pathcopycopy.github.io/>
  • ダウンロードファイル: PathCopyCopy16.0.1.exe (インストーラー版)
  • インストール方法: ダウンロードしたファイルを、実行してインストール。
  • 動作確認バージョン: 16.0.1 (Windows 10 Pro October 2018 Update 1809)

インストールは、パスの形式の選択肢をどの程度増やすかの質問があるだけで特に悩むことはなく、再起動も不要。
質問には、「All commands, including power-user commands」という一番選択肢が多いものを答えておき、インストール後に実際に試してみて、不要なものは表示しないようにするのがよいだろう。

Settingsでは、コンテクストメニューの1段目に表示するもの、Path Copyの下に表示するものを選ぶことができる。

その他、パス名をダブルクォートで囲むか、さらにはスペースが含まれる場合のみダブルクォートで囲むかなど、細かい好みにまで対応したオプションが設定できるのは、オープンソースのよいところだろう。

Firefox

現在メインのWebブラウザ。

  • ホームページ: https://www.mozilla.org/ja/firefox/new/
  • ダウンロードファイル: Firefox Installer.exe(インストーラー版)
  • インストール方法: ダウンロードしたファイルを、実行してインストール。
  • winget ID: Mozilla.Firefox
  • 動作確認バージョン: (Windows 10 Pro 20H2, Windows 11 Pro 21H2)

宗教的理由と移行が面倒と言う理由で使い続けているけれど、残念ながらお勧めできる方はとても少数。

ライトユーザーであれば、Windowsとの親和性(たいしたメリットではないとは思うが)でEdgeを勧めるし、ヘビーユーザーであればChromeのGoogle連携や拡張機能の充実が便利だろう。

使う宗教的理由とは、Webの自由という考え方に対する共感と、商業的利益を考えた開発とは距離をおいてくれるだろうという期待。どちらも、人にはお勧めするための理由としては弱いね。

アドオン

Evernote Web Clipper

WebページをEvernoteに記録するアドオン。

クリップするときに、ノートブックやタグを指定でき、しかもそれをそこそこ正確に予想してくれるのが優れもの。

現在、Evernoteの主な用途がWebページの記録になっており、必須。

Evernote Web

アドオンのアイコンをクリック、もしくはAlt+Pで、ピン止めしてあるEvernoteのタブを表示してくれるアドオン。

Evernoteに課金していない場合、同期できるデバイスの数に制限があるので複数のデバイスでEvernoteを使うには便利。

ただ、この機能の日本語の説明が意味不明。日本スタッフがいるのだからこの程度は自動翻訳を修正してよ…

拡張子アイコンをクリックすると、固定されたタブで最もお気に入りのウェブサイトにリダイレクトされます。 この目的を達成するために、キーボードショートカットを使用することもできます。

Format Link

表示しているページへのリンクを、いろいろな書法に基づいてクリップボードに収納するアドオン。

デフォルトのText、HTML、Markdownなどの他にも、自分で書式を定義することもできる。

org-mode、Scrapbox、WordPress用の書式を定義し、便利に使っている。

  • Markdown: [{{text.s(“\[“,”\[“).s(“\]”,”\]”)}}]({{url.s(“\)”,”%29″)}})
  • Scrapbox: [{{url}} {{text.s(“\[“,”[”).s(“\]”,”]”)}}]
  • Text: {{text}}\n{{url}}
  • HTML: <a href=”{{url.s(“\””,”&quot;”)}}”>{{text.s(“<“,”&lt;”)}}</a>
  • org-mode: [[{{url}}][{{text}}]]
  • reST: \href{{{url}}}{{{text}}}
  • WordPress: [{{text.s(“\\[“,”\\[“).s(“\\]”,”\\]”)}} &lt;{{url.s(“\\)”,”%29″)}}&gt;]({{url.s(“\\)”,”%29″)}})

Greasemonkey

JavaScriptによりWebページのDOM操作などを行い、表示内容を加工するアドオン。

もちろん、表示内容の加工以外のことも可能だが、Greasemonkeyの用途の9割以上は表示内容加工だろう。

私の場合は、見やすくするとか、無駄なものを省くとかいった用途で使うことはあまり無い。そのページを訪問した場合にかならずコピーする箇所を、ページの最下部にピックアップして表示する、というようなかなり特殊な用途で使っている。

Kee

オープンソースのパスワードマネージャーKeePass Password Safe 2とFirefoxを連携するためのアドオン。

以前はKeeFoxという名前で、最近Key Vaultという独自のパスワードマネージャーを実装したようだ(KeePassありきで使っているので、詳細は不明)。

Pushbullet

プッシュ通知を行うサービスPushbulletをFirefoxで使うためのアドオン。

テキストやURL、ファイルの送信なども行うこともでき、ChromeやAndroidなどとの連携も行うことができる。

デバイス間でのちょっとしたデータのやりとりにはとても便利。

ResizeIT 2

あらかじめ設定した4つのサイズに、Firefoxのウィンドウを合わせるアドオン。

Webページの作成時に使う。

Ultimate QR-code Generator

現在表示しているURL、入力したテキストなどからQRコードを作成し表示するアドオン。

PCで開いているページを、スマホなどで見たいときなどはかなり便利(Pushbulletでもよいが、QRコードであれば連携していないデバイスにも渡すことができる)。

uBlock Origin

広告をブロックするアドオン。

日本向けのカスタムフィルタ「豆腐フィルタ <http://tofukko.r.ribbon.to/abp.html>」も合わせて導入する。

Firefox DevTools ADB Extension

Androidのリモートデバッグに使うアドオンのようだが、特に使っていない。どころかインストールした記憶も無い。

WebIDEを使うと自動的にインストールされるようだ。

Sizer

アクティブなウィンドウを、あらかじめ指定した大きさ、位置に変更するタスクトレイに常駐するソフト。
特定のモニター解像度で使用するプログラムを作る時に使う。

デフォルトではCtrl+Wn+zでサイズなどを設定するコンテクストメニューが開く。

  • ホームページ: http://www.brianapps.net/sizer4/
  • ダウンロードファイル: sizer4_dev570.zip(ポータブル版)
  • インストール方法: ダウンロードしたファイルを展開して、任意の場所にコピー。
  • 動作確認バージョン: 4.0 dev570(Windows 10 Pro October 2018 Update 1809)

Thunderbird

もう10年以上使用しているメーラー(MUA)。

Thunderbirdの前は、Wanderlust、Mew、MH-eといったEmacs上のメールソフトを使っていたが、諸事情により移行、今に至る。
アドオンも豊富だが、60系でWebExtensionが有効化されたため、旧来のアドオンがかなり使えなくなった模様。
最近は、あまりアドオンは使用しない方針で使っているため、私的にはそれほどダメージは無い。

どこがよいか

開発体制がしっかりしたオープンソースである。メーラーは欠かすことのできないソフトウェアなので、安定と長期的なしたメインテナンス体制が欠かせない。そのためには、一企業の方針により終了してしまう可能性のあるものは避けたい。

マルチプラットフォームである。Windows、Mac、Linuxなど動作する環境が多い(Emacs上にelispで実装されたものにはかなわないが…)。もちろん、それぞれの環境に優れたメーラーはあるが設定の移行などが楽な点は無視できない。

残念な点

フィルターログがローテートしてくれればよいのだが、そこまでは贅沢な要求というところ。

あとは、そもそもOutlook側が悪いのだが、TNEF形式をデコードできるようになってくれると助かる。

まあ、そんなことくらいしか思いつかないくらいに、満足度は高い。

設定

アーカイブ

アーカイブフォルダーを使うと、用件が完了した後にも保存しておきたいメールなどを簡単に整理することができる。いつも使っているフォルダーの中に残るメールの数を増やしたくない場合には有効な機能。

メッセージペインの上部にあるアーカイブボタンをクリックすると、そのメールはアーカイブフォルダーに移動される。

デフォルトでは、アーカイブフォルダーは、その下にさらに年ごとのフォルダーを作り、メールはその中に移動されるようになっている。

年ごとのフォルダー分けにはあまり意味を感じないため、アーカイブフォルダーを年ごとに分けないようにする。

「ツール」-「アカウント設定」-「設定したいアカウント」-「送信控えと特別なフォルダー」-「メッセージの保管」で、「アーカイブの保存先」にチェックがついていることを確認し、「次のアカウントの”アーカイブフォルダー”」が、設定したいアカウントになっていることを確認する。

さらに、「アーカイブオプション」で「単独のフォルダー」に設定する。

Google連絡先との同期

現在のThunderbird102はCardDAVに対応しており、これによりアドオン無しでGoogleの連絡先と同期する事ができる。

Google連絡帳を導入する手順は以下の通り。

  1. アドレス帳を開く
  2. [新しいアドレス帳]から[CardDAVアドレス帳を追加]を選ぶ。
  3. [新しいCardDAVアドレス帳]ダイアログボックスで、[ユーザー名]にGoogleアカウントを入力する。
    すると[場所]に「gmail.com」が自動的に表示されるので[次へ]。
  4. おなじみのGoogleアカウントの認証画面が表示されるのでアカウントとパスワードを入力、2段階認証を設定しているので認証を行い権限を与える。
  5. [利用可能なアドレス帳]が「Address Book」でチェックが付いている事を確認して[次へ]。

これで、アドレス帳の中に「Address Book」というGoogle連絡先のアドレス帳ができる。名前はプロパティから変更可能。

双方向での同期が可能で、同期間隔も設定できる(デフォルトは30分)。

アドオン

デフォルトで付いてくるLightning アドオンは不要なので削除(クライアントを問わないGoogleカレンダーを使用)。

Header Tools Lite

Header Tools Lite :: Thunderbird向けアドオン

メールヘッダを編集するアドオン。
基本的なヘッダであれば各項目ごとに、そうでなければ ソースまるごとをテキストボックスで編集できる。

項目ごとの編集

基本的には、届いたメールのヘッダは触らないのだが、例外が2つある。
ひとつは、SpamAssassinでSpamと誤判定されたメールから、SpamAssassinの判定ヘッダを削除する場合。これをしておかないと、Thunderbirdのフィルタによって再度Spamとして扱われてしまうことがある。
もうひとつは、不正なヘッダがありThunderbirdなどでの処理に支障があるとき。

メールのデータを直接編集

ImportExportTools

Thunderbird 102では既に利用できないので、無効化中。

後継の、ImportExportTools NGが存在するようだが、現在の所必要ないので、導入はしていない。

ImportExportTools

フォルダーを対象に、メールをインポート、エクスポートする。
mbox、eml、テキスト、HTML など様々な形式に対応。

QuickText

thundernest/quicktext: An extension for Thunderbird that lets you create templates that can be easily inserted into your own emails.

定型文を本文に挿入するアドオン。
挿入する文は複数設定でき、メールのヘッダ情報やファイルの内容の挿入など、多彩な挿入設定が可能。
GitHubでオープンソースの開発が行われているので、Thunderbird自体のバージョンアップへの追従などの開発継続には期待できる。

ただ、実際には前書きと後書きの挿入に使っているだけ。

本当のところ、メールのBODYに宛先と自分の名前を書くというビジネスメールのマナーというのが、嫌いだ。
To、Fromを見ればわかることで、紙の手紙を出すときにそんなことはしないだろう。
あえて必要なのは、共用のメールアドレスを使っている相手の時に指名するときくらいだろう。

Remove Duplicate Messages (Alternate)

mozdev.org – removedupes: index

重複したメッセージを見つけるアドオン。

通常の使用では使うことはないが、メッセージをコピーしたり、バグなどで同じメールが複数表示されてしまう時にそれをピックアップして削除する。

wsl-start

WSL上から、Windowsのファイルを開くスクリプト。

以下のように、パスが通ったコマンド、関連付けしてある拡張子のファイルをWindowsで開くことができる。

$ wslstart notepad
$ wslstart /mnt/c/foo/bar.pdf

Windows上でEmacsを使うための一番の情報源と思われる、NTEmacs @ ウィキの管理者さんの作成。

導入の一番の目的は、WSL上で動作するEmacs上でURLを指定して、Windowsのブラウザで開くこと。

とりあえず、ブラウザを開くのに必要そうなwslstartとwslcommonのみをダウンロードして使ってみることにする。
他にも便利に使えそうなものも揃っているので、あとでじっくり見てみよう。

.emacsに以下のコードを追加して、URLをWindowsのブラウザで開くことができるようになった。

(setq browse-url-browser-function 'browse-url-generic)
(setq browse-url-generic-program "wslstart")

CrystalDiskInfo

S.M.A.R.T情報他、ディスクの情報を取得する。

常駐させて、異常を感知した時にメールで知らせたり、値の変動をグラフ化して表示することも可能。

CrystalDiskInfoで感知できる異常は、発生後すぐにディスクが使えなくなるというより、だんだん悪化していくたぐいのものが多いと思われるので、定期的に起動しすべてのディスクに対してチェックを行い健康状態を確認するという使い方をしている。

もちろん、ディスクに不調を感じたときにも起動し、チェックを行う。

TagScanner

マルチメディアファイルのタグを編集、タグに基づいてリネームするプログラム。

インストーラー版もあるが、別のマシンに設定ごとの移動が簡単なポータブル版を使用する。
ポータブル版のアップデートは、展開したファイルをインストールされているファイルに上書きするだけ。

設定

以前は、インストーラー版を使っていたので以下の作業が必要だったが、ポータブル版ではインストールされたフォルダ内に生成されるTagscan.iniが残っていればそれをコピーするだけで良いかもしれない。

まず、右上の[Program options]- [General]-[Interface language]で「Japanese」を選択。
すると、即座にインターフェイスが日本語に変わる。

[環境設定]-[タグ]で[タグの読み取り優先順]は「ID3v2 > ID3v1」にする。
書き込みタグ形式を「ID3v2.4」にする。
[ID3v2 タグは常に Unicode で保存]はチェックする
[IDv1タグのみ更新]のチェックをはずす。
[タグの保存時にファイルの更新日時を保持する]はチェックしな

[環境設定]-[変換方法]で 、[テキストの変換方法]の[Discogs cleanup]のみチェックを入れる。

また、[編集]-[テキストの変換方法]でも、 [Discogs cleanup]のみチェックされた状態にしておく。

[環境設定]-[ジャンル]で自分の使用するカスタムジャンルを追加、また使用しないジャンルはチェックをはずしておくと使いやすい。
現在使用しているジャンル: Anime, Classical, Jazz, JPop, Other, Pop, Rock, Soundtrack
現在使用しているカスタムジャンル: JRock, 邦画, 洋画, 洋楽, 邦楽, 情報, 実用, 趣味, 教養, ドキュメンタリー、その他音楽

[環境設定]を閉じて、[リネーム]タブを開き[ファイル名出力形式]に以下の2項目を入力し、入力欄の右のドロップダウンメニューで[テンプレート一覧に追加]する。

  • %track% %title%
  • %track% %title%__TAPE

[エクスポート]設定の保存先は、tagscannerをインストールしたフォルダー下のscriptsフォルダーの中になっている。新しいエクスポート設定を作成するには、このフォルダーの下に設定ファイルを作成して、tagscannerを再起動すると有効になる。新しい設定は、既存の設定ファイルをコピーして編集するのが楽だろう。