お勉強:Windows - メモ
覚えておくと役に立つかもしれないこと。
初稿:2015年 最終更新:2017-05-02
こういうメモを残して置くと出先で何かあったとき便利に違いない!
普段から常駐させてるツール
実行ファイル名順。
DimScreen
画面の明るさを調整するユーティリティ。夜、電気消した部屋の明るすぎる画面とか、モニタのブライトネスで調整するのよりずっとお手軽に暗くできる。
透過率の増減は 10%刻みで、任意のキーコンフィグを割り当てできる。上記 KH DeskKeeper と干渉してるかもしんないけど、こっち優先した(てきとう。
DONTSLEEP!
HGST 製外付け Hp などの一定時間が経つと勝手にスリープする迷惑極まりない機能を、定期的にドライブにアクセスすることで妨害する直球ツール。
アクセス間隔とアクセス先ドライブを INI ファイルに記述するだけの簡単設定。スタートアップにショートカットを放り込んでもうまく起動しない場合はサービスとして登録してみる。
EmEdior
前世紀から愛用してるテキストエディタ。あとマクロとユーザー辞書があればどこでも作業できるぜ!
高機能で軽量だが度重なるバージョンアップ無料詐欺によって多数のアンチとユーザー離れを生み出すも、15,000円というエディタにしては強気すぎる値付けで奮闘中(わしは早いうちにライセンス登録したおかげで 4,000円くらいで済んだけど)。無料版の EmEditor Free もあるけどマクロ使えないのが痛い。
他のエディタでも同じだけど、開く文書を保持できるワークスペース機能やスぺニットによる入力補完は便利だから積極的に使ったほうがいいぜ。たとえば EmEditor なら"C:\Program Files\EmEditor\EmEditor.exe" /ws
でワークスペース復元のショートカットリンクを作り、スタートアップなりタスクバーのピン留めアプリに放り込んでおけば、以前の作業環境が勝手に復元されるわけ。
ちなみに既定のワークスペース情報は\AppData\Local\Emurasoft\EmEditor\Workspace
に“ LastData.bin ”で保存されてるから、これをゴミ箱に定期バックアップしとくとさらにグー。
Everything
OS 標準のインデックスを使わない、鬼速の常駐検索サービス。確かに速いんだけど、うちはストレージ繋ぎすぎてるせいか挙動が不安定になるので使用中止した。
Flexible Renamer
ファイル・フォルダのド定番リネームツール。ワイルドカードや正規表現によるきめ細かな指定はもちろんのこと、デフォルトで用意された置換例が豊富なので初心者も安心。頻度の高い置換例をカスタム登録もできる。
さらに ID3 / EXIF / IPTC / HTML などのタグ置換まで可能!こいつはマジ便利。
「デスクトップは物置ではありません。」( KeepMyDesktopClean )
デスクトップを監視し、ファイル数や合計サイズが設定値を超えるとアラートを表示する。けっこうウザい(だがそれがいい
具体的には、こんな感じ。
わしは以前からデスクトップのファイルが画面の半分超えたら“ mmdd ”(日付)でフォルダ作ってそこに放り込み、なおかつあらかじめ用意した“デスクトップ倉庫”( D:\Home\Desktop_Logs\ )に移動するようにしてる。「あのファイルどこだっけ」と探す場合、ファイル名やファイル種別、属性なんかより「いつ頃作ったファイルか」がいちばん記憶に残ってるもんだから。
あらかじめデスクトップやドキュメント、ダウンロードなどのユーザーフォルダをシステムと別のドライブにしておくとなおグー 。
ユーザープロファイル - プロファイル内のフォルダの移動について
ところで Windows のデスクトップは画面の左から埋まってくのがデフォルトの動作なんだから、壁紙もオブジェクトを画面右寄りに配置すべきなんだけど、そこに気を遣ってる人あんまいないよね。
んまあ、本来は Windows の設定で、アイコンの配置を左から埋めてくか右から埋めてくか選択できるようにすべきで、Windows 95 時代は実際にそういう Tweak が存在したし、インターフェイスデザインとしてはマウスを持つ手の側にアイコンやスタートメニューがあってしかるべきなのよ(だから Mac はデフォルトでアイコンが右寄りなんだろね)。
XP までは Tclock でタスクトレイの時計にスタートメニューを移動してたけど、すげえ使いやすかったもん。
KH DeskKeeper
デスクトップアイコンの位置を記憶してくれる。Windows 7 の頃は常駐させといたのだが、Windows 10 では何かと干渉してるのかレンダリングが不安定になるので使用中止。
Creators Update 適用後、なぜかアイコンの位置調整が劇的にシビアになってしまったため使用再開。
復元するにはするんだけど、なんか挙動がおかしいw
マウスチャタリングキャンセラ( Mouse Chattering Canceller )
指定時間以下の信号をチャタリングとみなしてキャンセル。条件や対象をいろいろ選べる。原因が何であれマウスの意図しないダブルクリックは常に起こり得るし一度起こる繰り返すので、対策として入れといたほうがよい(症状が発生したら常駐させてる。
Open Hardware Monitor
CPU や GPU などのクロック、温度、ファン回転数といった、ハードウェアのヘルス情報を監視するツール。表示情報がすごい多い。
以前は CoreTemp を使ってたんだけど、こっちのが表示できる対象多いし要らない項目の非表示も選べるこっちに乗り換えた( CoreTemp もいいソフトだけど )。さらに高機能な HWiNFO64 もあるけど使いこなせそうにない。
最前面でポーズ ( Pause )
“任意のウインドウの最前面固定”ツール。
以下、ReadMe より。
使い道のない、もしくは存在すら知られていない Pause キーを有効活用します。機能はシンプル。Pause キーを押すことで、ウィンドウを最前面に止めます (ポーズさせます)。
という趣旨が気に入ったので、TranspWnds からこっちに切り替えた。既存ウインドウの最前面固定を解除することもできる。
ちなみに Win + Pause でシステム情報を呼び出せる。
Tclock
タスクトレイ時計改造ツールの老舗( Windows 10 は書式を自分でいじれるようになったけど、こうした専用のユーティリティに比べるとまだまだ甘い)。ただ Tclock 入れちゃうとタスクトレイ時計のクリックでカレンダー表示ができなくなっちゃうんだよね。
これはこれでけっこう便利だから、悩ましいところ。
Textify
タイトルバーとかダイアログのテキストをコピペ可能にする(コピーできないものもある。
なお Google Chrome で使う場合、chrome://accessibility/
から Global accessibility mode を on にしておく必要がある。
TranspWnds
ウインドウの移動やタイトルバー非表示、半透明化などをマウス+キーボード一発で可能にするツール。
特に便利なのが“任意のウインドウの最前面固定”。Pause を使いだすまでは“左クリック + Ctrl + Alt ”に割り当てて重宝してた。
TVClock
スクリーンにテレビ風の時計を表示するツール。表示位置、表示モニター(マルチディスプレイ環境)、透明度、フォント、コロン(:)の点滅、アラームと再生音、といろいろ細かく設定できる。
で、表示時間を 5時~9時までとかできたらいよいよテレビっぽくていいのにね。
画像処理
実行ファイル名順。
Quick Any2Ico
任意の画像を ICO 形式のアイコンファイルに変換するツール。16 * 16 から 512 * 512 まで様々なサイズに対応、マルチアイコンの作成もできるほか、DLL や EXE 形式の既存ファイルからアイコン画像を抽出も可能。
ソース画像が矩形(非正方形)の場合、センタリング / クロップ / ストレッチ のいずれかを指定できる。
1つ 2つならクラウド型のサービスのが手っ取り早いけどね。
Snap2IMG
選択したフォルダ内の画像でコンタクトシートを作成してくれるツール。事前にプレビューもできる。
縦もしくは横の枚数と1枚あたりの高さもしくは幅を指定するだけの簡単操作。各サムネイル間のピッチやキャプションの有無、背景色などきめ細かな設定もできる。
waifu2x-caffe with CUDA and cuDNN
“縮小される前の状態に戻す”という斬新なアプローチやクオリティ高すぎのアウトプットで注目を浴びた、人工知能技術 Deep Convolutional Neural Networks による超解像アルゴリズム waifu2x。waifu2x-caffe は機能強化された派生版で、名前の通りディープラーニングのフレームワークのひとつ Caffe を用いている。
試しに幅 512 ピクセルから半分の 256 ピクセルに縮小した画像を、waifu2x-caffe で幅 1920 ピクセルに拡大してみる。
Photoshp や ACDSee で単純拡大した画像と比べれば違いは一目瞭然、人力でレタッチしてもなかなかここまできれいには仕上がるもんじゃない。それだけまあ、複雑な処理をしているわけだが。
waifu2x は基本的に境界のはっきりした画像向けなので、周波数成分の多い写真とかは効果が弱いというか、ディテールの単調なイラスト仕上げになってしまう。それでも単純拡大に比べたらはるかにマシだけど。
CUDA で超速化
とまあ waifu2x の凄さがわかったところで、ディープラーニングといえば GPGPU の出番。CUDA を用いたときと用いないときでどれくらい差が出るものか、1280 * 720 の HD 画像 6枚を 1920 * 1080 の FHD に拡大して処理時間の違いを比べてみる。
結果はご覧の通り。
CPU のみだと 81.585 秒/枚を要したが、CUDA は 2.996 秒/枚と実に 27倍もの大差がついた! NVIDIA が公開しているディープラーニング用のライブラリ、cuDNN を利用できるとさらに処理効率上がるらしいが、Windows に実行環境組み込むのはけっこうめんどくさそうなので見送った。
cuDNN ライブラリの組み込み
いやちょっと待て。「Windows cuDNN」あたりで検索すると Python 3.5 anaconda + VisualStudio Communitiy 2013 + cuda-toolkit 7.5 + Chainer あたりの組み込み例が出てくるので敬遠してたけど、単に waifu2x-caffe で走らせるだけなら DLL さえあれば済む話だったりするんじゃね?
断るまでもないとは思うけど、CUDA 搭載のグラフィックボードがないと意味ないからな。
いずれにしても NVIDIA のデベロッパープログラムにレジストする必要がある。種類はなんでもいいんだけど CUDA 絡みなら“ Accelerated Computing ”選んどくのが無難。
cuDNN Download / cudnn64_5.dll ローカルコピー ※自己責任
執筆時点での最新は cuDNN v6 だが waifu2x-caffe がサポートしているのは cuDNN v5 なので間違えないよーに( マニュアルでは v5.1 となっているが v5.0 でもおk)。
展開して bin フォルダの “ cudnn64_5.dll ”を waifu2x-caffe の
※もし CUDA toolkit をインストールする場合、GeForce Experience ほか既存ユーティリティやドライバを古いバージョンで上書きしないよう注意( CUDA コンポーネント以外のチェックは全部外しておくとよい)。
ファイルサイズも 1.3GB とバカでかいし、開発でもやらん限り toolkit は要らないと思うよ。
結果
1枚あたり 1.799 秒とな!
正直ライブラリの違いだけで 60パーセントも差が出るとは思わなかったぜッ! Pascal 世代の GeForce 使ってるひとは絶対入れたほうがよいよ。ちなみに cuDNN v5.0 と v5.1 では 2~3パーセント後者のほうが速かった。
ついでに高さ 720px のモノクロ見開き画像(何) 108 枚を 高さ 1280px に拡大したときの処理時間は、58.526 秒だった。
一冊 1分計算である。
おまけ
同じソース( HD 画像 6枚)を用いて 2009年に導入した予備機でも試してみた。
CPUのみ : 192.420 秒、CUDA 利用 : 24.132 秒、cuDNN 利用 : 19.574 秒という結果に。3D ゲーミングマシーンのグラフィックボードとしては(当時としても)ギリギリなスペックの GTX 650 ですら、Core i7 4770 単体での処理より圧倒的に速い。CUDA と cuDNN でそれほど差がつかなかったのは、Kepler 世代だと CUDA 8.0 の機能を活かしきれないのかも。ちなみに CUDA (シェーダープロセッサ)の数は GTX 650 が 384基、GTX 1060 が 1280基とその差は約 3.3倍だが、処理時間は 8~11倍にまで開く。コアクロックは GTX 1060 が 1.5倍ほど高いので、処理効率の違いはおおむね 1.5倍前後だろうか。
参考:waifu2x-caffeとffmpegで動画を拡大するPowerShellスクリプト
やっぱリアルタイムでの Upscan は無理で、パラパラ漫画状態にして1枚ずつ処理し改めて動画に組みなおす、と。
分割サイズと VRAM 使用量について
waifu2x-caffe では対象画像を細かく分割するほど高精度な処理となるが、そのぶん VRAM の消費量も増えるため、VRAM 1GB 未満の環境では分割数を 100 前後に留めておかないとエラーで処理が中断してしまう。500分割以上は VRAM 8GB 以上搭載のハイエンドボードでないと厳しいだろう。
cuDNN を併用すると VRAM 消費量を半分以下に抑えることができる。VRAM 6GB の GTX 1060 で試したところ、CUDA だと 374 分割が限界だったが cuDNN では 952分割までイケた。
waifu2x-caffe で cuDNN を利用するには GPU : Compute Capability 3.0 以上のグラボが必要(具体的には Kepler コア以降の製品。
なお CPU 単体で処理する場合は VRAM ではなく物理メモリを消費するのであんま問題にはならない。ただし処理時間は下手すると百倍くらい違う。
ネットワーク
Public DNS
Google Public DNSはDNSサーバのアドレスがわからないとき間に合わせで使うには便利な存在と思う。覚えやすいからね。名前解決の仕組み上、ISP提供以外のDNSを使いたいケースはあるけどどこに設定するのがよいかは環境に拠るのでなんとも。
公式に Public DNS を謳ってるかどうか怪しい。たぶんクエリ投げて戻ってきたホストを片っ端から登録してるのではないか(単に鍵をかけ忘れてるだけなのを Public DNS と呼んでいいのか、というお話)。使うにしても常用ではなく検証の範囲で。
Dynamic DNS
すでにドメインを持ってるなら、レジストラもしくはホスティング先が提供してる DDNS を利用するのがベスト。用意されてないあるいはサブドメインだと No-IP、MyDNS が双璧か。個人的には dynv6 がスッキリしたインターフェイスで使いやすい。IPv6 にも対応してるし。
リモートアクセスが目的なら Chrome のリモートデスクトップが手っ取り早い。
DDNSクライアント
Aterm シリーズのようにルータのファームに DDNS の設定が組み込まれているならそれを使うのがいちばんよい。マシンの電源落としても関係ないからね。古いスマホが余ってるなら Android アプリの Dynamic DNS Update を使う手もある。OS からだと未だに DiCE くらいしか目ぼしいソフトがない。
NTP
福岡大学のようなことはもう起こらないと思うけど、国内なら ISP 提供の NTP か NICT を使うのが無難。特に理由がない限りわざわざ RTT のデカい海外にするメリットはないよ。
参考:NTP/プロバイダ・機関別 - wiki@nothing
SNTP クライアント
OS 組み込みの SNTP クライアント Windows Time サービス( W32Time )の場合、参照先を “time.windows.com”から NICT なりに変更しても同期間隔がデフォルト(一週間)のままじゃあんまり意味がないと思う。変更はレジストリを編集するか、Windows Time での同期を停止して Tclock なり何なり別の SNTP クライアントを使ったほうがよい。
レジストリのエントリーは同期間隔が HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
で、10進数で秒数を指定する。わしは 3600(1時間)にしてるけどマザーの RTC の精度が低いなら 600 前後でもいい。参照先は HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
でホスト名を直接記述する(“0x9”は参照方法なので触らない)。
ちなみに Active Directory 環境のクライアントはうかつに参照先の NTP サーバを変更すると Kerberos 認証のタイムスタンプがズレて Active Directory に参加できなくなるよ。たいていはポリシーエディタでレジストリ編集不可にされてるとは思うけど、念のため。
WHOISとか
Chrome の拡張機能 IP Address and Domain Information が便利。
SoftEther VPN
ネットワーク仮想化ツール、ソフトイーサによる有償 VPN ソリューション、PacketiX VPN のオープンソース版。これと公開 VPN 中継サーバ、VPN Gate を組み合わせることでリモートホストの偽装が可能に。
何の役に立つかというと、Steam のおま国回避とか、天鳳の新規 ID作成禁止期間の回避とか、オンラインストレージのダウンロード制限回避とか、YouTube Red の地域閲覧制限回避とか、IP ベースの BAN 全般。
おおむね二週間とはいえ中継サーバにはアクセス元のログが残るわけで、匿名アクセスに使えるわけじゃないからな。
使わないとき
VPN 接続していなくても、タスクトレイのクライアント接続マネージャーを終了しても、プロセスが生きてるだけでソケットを大量に消費するので他の通信にけっこう迷惑をかけることがある。特に DNS の応答がやたら悪くなるため、ブラウジングでも名前解決ができずにページが開くのに時間が掛かったりエラーになったり。そのため未接続時は完全に終了させておく。
SoftEther VPN はサービスとして登録されるので(サービス名は SEVPNCLIENT、表示名は SoftEther VPN Client )、起動や停止、無効化はサービスマネージャで行う(スタートアップは手動か無効を推奨。
同時に回復タブの設定も、[ その後のエラー ] を “何もしない” に変更しておく(デフォルトでは“サービスを再起動する”になっているので、たとえばタスクマネージャでプロセスを強制終了しても無限に再起動を繰り返してしまう。
ファイル・フォルダ操作
Snap2HTML
フォルダ構造と含まれるファイルを HTML 形式で表示する、使う機会は限られるだろうがたぶん替えが利かない類のツール。ちなみに作者は Snap2IMG と同じ RL Vision。
隠しファイルを含めるかどうかや個々のファイルにリンクを張るかどうかも選べる。テンプレート は自由に変更できるのでサイトマップとして組み込んだりするのも面白いだろう(その場合、ドキュメントルートとなるフォルダをネットワークドライブに指定しとくと都合がよい)。これで対象ファイルを拡張子なりでフィルタリングできればいうことなしなのだが。
システムコンフィグレーション
Winaero Tweaker
Windows の Tweak 系定番ツール。ちなみに Tweak は“微調整”の意味。
かつての“窓の手”みたいなもんで、さらに細かいところまで手が届く。調整頻度が高かったり必ず調整したいような項目をまとめられるブックマーク機能が便利。
英語オンリーだけど個々の項目ごとにオンラインチュートリアルが用意されてて、設定いぢるとどうなるか一目瞭然だから困ることはないかと。