インストールされていない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>

ウェブアプリなプレゼンテーションツールは何を使うべきか?

はじめに

私は、いつもオンラインである訳ではないので、実際にはLibreOfficeを pkgsrcからインストールして、プレゼンテーション資料を作るのが良いと いうことになってしまうのだが、Google Slides等のオンラインの ツールについて気になっていた。

Google SlidesとMicrosoft Office OnlineのPowerPoint、 iCloudのApple Keynoteの3つを使ってみたので感想を書いておく。 ウェブブラウザーはMozilla Firefoxを使った。

Google Slides

感想を一言で言うと普通に使えるということである。 テーマも無難なものが揃っているし、サードパーティーのテーマも提供されている。 フォントには、日本語のフォントが見当たらないように見えたのだが、 どうせゴシック体しか使わないので、気にならなかった。 欧文フォントについては、非常に多く用意されている。 こんなフォント使うかな…と思うようなものも多い気がするが。 テキストボックスの挙動としては、テキストボックスから行があふれても フォントサイズを小さくするのではなく、はみ出していくだけの挙動になっている。 オートシェイプ的なものは、基本的なものは揃っており、私は困ることはなかった。 特に利用制限はないようなので、ビジネスにも利用できるのではないかと思う。

Microsoft Office OnlineのPowerPoint

Microsoft PowerPointを忠実に再現しているような印象を持った。 PowerPointに慣れているのであれば、ベストなサービスのように思う。 テキストボックスの挙動や、オートシェイプの種類もPowerPointを踏襲している。 Microsoft Office 365の契約をしていないと商用利用権がないので、 ビジネスには利用できないが、個人的なプレゼンテーションをするには利用できる。 テーマは数多いが、PowerPointのWindowsアプリ同様にあまり使えるものはない ような気がする。

iCloudのApple Keynote

はっきり言うと、使い物にならない。 何をするにも気が利かないので、手作業で微調整しないといけない。 良い所としては、クリップアートに良い物が多い点がある気がする。 これまでmacOSのKeynoteを使ったことがなかったのだが、 まさかiCloud版と同様に使いにくいことはないはずと思うので、 今度機会を作って使ってみたい。 iCloudの規約を読む限りでは、Microsoftの商用利用権的なものの 設定はないようなので、ビジネスでも利用できると思われる。

notmuch Emacs clientで、日本語の電子メールを送る

おそらく、LANG環境変数を見てうまく設定してくれているものだとは思うのだが、 notmuch Emacs clientで日本語の電子メールを書くには、以下の設定をしておく のが良さそうだ。 US-ASCIIでまかなえる場合にはUS-ASCIIで送信したいので、 最初にus-asciiを指定している。

$ cat ~/.emacs
(snip)
(setq mm-coding-system-priorities '(us-ascii iso-2022-jp utf-8))
(snip)
今となっては、ISO-2022-JPをUTF-8に優先する必要があるかは分からない気はする。

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

以前からNetBSDとX.orgの環境で、OpenTypeやTrueTypeのフォントをfontconfigやXで使うようにしてからではなく、 プレビューしたいと考えていた。 Linux用のfont viewerを検索しても、依存関係が複雑だったり、利用できるようにしてからしか...