RubyのURI.parseでプロキシーサーバーを設定する際にパスワードとして使えない文字

ユーザー認証付きのHTTPプロキシーサーバーを経由しないと、どこにも行けないネットワークで生活しないといけないことがある。 そんな環境でもRubyスクリプト(実際にはJRubyで動かすことが多い)でWWWにアクセスしなくてはいけないことがある。 RubyのURI.parseが呼ばれると、

URI::InvalidURIError: bad URI(is not URI?)
とエラーになってそもそもWWWにアクセスしに行かないことがある。 これは、ユーザー認証付きのHTTPプロキシーサーバーのパスワードに使えないはずの文字が設定されているためである。 私の環境の場合にはWindowsのActive Directoryの認証情報と連携しているので、Windowsのログオンパスワードとして 良かれと思って記号を使っていると、遭遇してしまうことがある。

では、どのような文字をパスワードとして使用するのを避ければ良いのだろうか? RFC2396であるUniform Resource Identifiers (URI): Generic Syntaxによると、 以下のように書かれている。

   The user information, if present, is followed by a commercial at-sign
   "@".

      userinfo      = *( unreserved | escaped |
                         ";" | ":" | "&" | "=" | "+" | "$" | "," )
つまり、セミコロン、コロン、アンパサンド、イコール、プラス、ダラー、カンマ以外は使えないようだ。 いまいちescaped = % hex hexの場合がどうなるのか分からないが…。

とりあえずは、これら以外の記号は避けてActive Directoryにパスワード登録するのが良さそうだ。

NetBSD/amd64上で動かすFirefox 61.0.2でのDNS over HTTPSを使う

オーディオやウェブカメラをFirefoxから使うと言う話ではないので、 NetBSDだからと言って特別な事はあるはずもないのだが、 DNS over HTTPSをmozilla wikiのTrusted Recursive Resolverを参考に設定して使ってみた。 Firefoxのprofileディレクトリーにあるprefs.jsに以下のように設定されるように、about:configで 設定すれば良い。Firefoxを再起動することなく、設定直後から反映される。

user_pref("network.trr.bootstrapAddress", "1.1.1.1");
user_pref("network.trr.mode", 3); // DNS over HTTPSしか使わない。通常のDNSにfallbackする場合には2にする。
user_pref("network.trr.uri", "https://mozilla.cloudflare-dns.com/dns-query");

仮想マシンハードディスクイメージファイルの形式

仮想マシンのハードディスクイメージファイルについて、いつもどれがどれか分からなくなってしまうので、その種類を書いておく。 Appleのdmg形式は除いている。

RAW
物理ディスクのダンプ
qcow
昔のqemuの形式
qcow2
今のqemuの形式
FVD (Fast Virtual Disk)
IBMの開発したqemu用の形式
QED
qemu用だが既に互換性のためだけに残っている状態。
VDI (Virtual Disk Image)
VirtualBoxの形式
VMDK (Virtual Machine Disk)
VMwareの形式
VHD (VIrtual Hard Disk)
Microsoft Virtual PCの形式
VHDX (Virtual Hard DIsk v2)
Microsoft Hyper-Vの形式
bochs
Bochsのbximageコマンドで作る形式
他にもあるだろうが、普段目にするのはこの程度なように思う。

MPEG 2.5

MPEG 2.5と言う表記を見掛けたのだが、どういうものか理解できなかった。 /usr/pkgsrc/audio を以下のように検索すると、 /usr/pkgsrc/audio/libmad/DESCR に、MPEG-2 extension to Lower Sam...