インストールされていないOpenTypeやTrueTypeのフォントのプレビュー方法

以前からNetBSDとX.orgの環境で、OpenTypeやTrueTypeのフォントをfontconfigやXで使うようにしてからではなく、 プレビューしたいと考えていた。 Linux用のfont viewerを検索しても、依存関係が複雑だったり、利用できるようにしてからしかプレビューできなかったりして、 良いものが見つからなかった。 pkgsrc/graphics/libotfbin/otfviewの引数にotfファイルやttfファイルを与えれば良い。

C++のシンボルをdemangleする

なるべくならC++で書かれたプログラムに関わりたくないような気がしているのだが、 当然のようにそういう訳にもいかない。 C++のシンボルをdemangleする方法をメモしておく。

$ nm /usr/lib/libstdc++.so.9
(snip)
0000000000386d90 V _ZGVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
(snip)

$ nm -C /usr/lib/libstdc++.so.9
(snip)
0000000000386d90 V guard variable for std::__cxx11::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::id
(snip)
文字列として得られた場合には、c++filtが使える。
$ c++filt _ZGVNSt7__cxx118time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
guard variable for std::__cxx11::time_get&t;char, std::istreambuf_iterator&t;char, std::char_traits&t;char> > >::id
GCCとclangでは同じフォーマットになっているようなので、区分を気にしなくて良いはずである。

左手で操作するための有線接続マウスを選ぶ

マウスを操作する時には、左手を使っている。 左利きではないのだが、右手は忙しいので、左手に分担させている。

Windowsでは、マウスの左右のボタンを交換して動作させる機能があって、 そうすれば、左手であれば、右クリックが右手操作時の左クリックに、 左クリックが右手操作時の右クリックと、左右対称になって操作しやすい。 ただし、これには欠点もあって、リモートデスクトップ越しに操作する場合、 リモートでもマウスの左右のボタンを交換する設定をしないといけない。 いつでも同じ環境からリモート接続するとは限らないし、 タッチパッドを使う際には、右手で操作するので、うまく行かない。 また、いつもと違うマシンを使う際にも、いちいちマウスの設定をしないといけないのは 面倒である。

いろいろなマウスを試す中で、やっと左手操作用の設定をマウスに記憶させて、 どんな環境でも左右のボタンが逆になるマウス見つけることができた。 Logicool G-PPD-001r Pro Heroゲーミングマウス である。 これは、左右対称な形状をしているので、左手で持っても右手で持っても違和感がない。

これは、Windows上で設定ソフトウエアにより左右ボタンを交換した設定を マウス本体内に保存すると、設定ソフトウエアのないマシンでも、 WindowsでなくNetBSDであっても、左右ボタンを交換した設定で動作する。 これにより、上述したような問題は全て回避できる。

ただ、不満もあって、LEDが光るのをしない設定にしても、マウスをUSBポートに接続した直後は 七色に光ってしまう。

次は、無線接続で同様なものを導入したいが、それはどれだろうか?

ちなみに、Microsoft Classic IntelliMouseを同時期に手に入れたのだが、 これは全く駄目だった。 と言うのは、設定ソフトウエアでの左右のボタンの切り替えは、Windowsの左右ボタン交換設定への ショートカットになっていて、つまりはマウス本体内に左右ボタンの交換設定を保存することは できないし、リモートデスクトップでの問題も発生する。 また、右手に最適化した左右対称ではない形状なので、左手で利用するのには困難がある。

JRubyで利用しているJDKのバージョンを確認する

Oracleデータベースに接続するプログラムを書きたいが、 NetBSDでも動くようにしたいと考えると、JDBCを使うしかないように思っている。 Javaを直接は書きたくないので、JRubyを使っている。

Oracle JDKにはお金がかかるようになってしまい、OpenJDKを使うようになったので、 OpenJDKのオフィシャルな配布物を使おうとすると、自分でパスやJAVA_HOMEを設定しないといけない。 そうすると、複数のOpenJDKがディスク内に存在しているので、ちゃんとJRubyが狙いの JDKを使って動いているか確認したくなる。

確認するには、irbで以下のように実行すれば良い。

> ENV_JAVA['java.version']

Bloggerでcode-prettifyを使う

Google code-prettifyblog.onodera.asiaでは利用している。 ここはBloggerを使っているので、HTMLは用意されているテーマを元に生成される。 当然、Google code-prettifyは、Bloggerの用意するテーマでは使うようにはなっていない。 以下のようにheadタグ内に追記すれば、行番号を振る場合には毎行に付加するようにしてGoogle code-prettifyを利用できる。

<script src='https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js'/>
<style>
  .prettyprint ol.linenums > li { list-style-type: decimal; }
</style>

MPEG 2.5

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