Sunday, September 25, 2011

Kensington Expert Mouse Optical Trackball

ケンジントンの Expert Mouse (OpticalBlack) を買ってみた。

会社の先輩にそそのかされてトラックボール買ってみた。 その筋の人には有名で、一度使い始めるとやめたくてもやめられなくなる危ない代物らしい。マウスや他のポインティングデバイスを体が受け付けなくなるんだとか。ボールをころころしてないと、いてもたってもいられなくなるんだとか。

ぼくだってポインティングデバイスにはちょっとはこだわりがある。新しいマウスにはわりとすぐ飛びつく方で、Microsoft の IntelliMouse はナスビからはじまって名機初代 IntelliMouse Explorer → 2.0 → 3.0 からぬるぽまで使ってきた。まぁ、ぬるぽは買っただけで使わなかったけど。

永らく IntelliMouse Explorer 3.0(生産終了) を使っていて、その後継機の 4.0 がどうしようもないゴミっぷりで、ようやく発売された 3.0 の復刻版もディスコンになって、さらにその後継機と噂された Comfort Mouse 6000 は形は良いもののスイッチもホイールもガッカリで、 いよいよ Microsoft のマウスに愛想を尽かしたところですすめられたのがこのトラックボールだった。

ケンジントンのトラックボールの噂は聞いていたけども、その評判に反して、なんとなく正確で素早い操作がやりづらそうな「イメージ」があって、トラックボール自体をこれまでに一度も使ったことが無かった。ぽちってからいきなり仕事で使ってみた。

それが二ヶ月半前のこと。

Kensington_Expert_Mouse_Optical_Trackball
(;´Д`)もうね、ぼく、このボールなしはダメかもしんない。

テンキー無しりあふぉ(Realforce 86U), Expert Mouse, IME 3.0、これ、セットで最強な感じです。
モニターの端から端まで、あっちのモニターからこっちのモニターまで、ボール転がしてびゅーっといけます、びゅーっと。
繊細な作業もちょちょいです。ダメならマウス使います(だめじゃん)。

Kensington の TrackballWorks というドライバーがあるようで、賛否両論ありつつもそこそこの機能があるようですが、ぼくは IntelliPoint のままで使っています。手前が左右クリック、奥は中クリックと戻る。4ボタンしかないので IME 3.0 と比べると 1つ足らないけど、「進む」はそもそも使用頻度が少ないし、なんなら左 Alt + → で十分代用できます。キーボードのカーソルキーには右手の親指が十分届きますし。

トラックボールを使いはじめて、マウスや、マウスのホイールや、マウスの 5ボタンに対するこだわりがぶっ飛んじゃったので、もう、ふつうっぽいマウスは買わない気がしてる。

そういえば、これ Expert Mouse って名前だけどマウスじゃあないよなあ。

Sunday, March 13, 2011

Emacs 23.3 released

Emacs 23.3 がリリースされていました。Windows 用のバイナリーも公開されています。手元では 3/1 の RC1 のあとビルドしていませんが、ざっと diff を眺めた限りでは大丈夫そう。たぶん。

23.2 からの主な変更点をまとめてくださったかたがいるのでリンクだけ。

ぼくの Emacs watch はこれにてとうぶんお休みです。たぶん。

関連

Tuesday, March 1, 2011

Emacs 23.3 release candidate 1

Emacs 23.3 rc1

Emacs 23.3 のリリース候補版 23.3 rc1 が出ています。

問題が無ければ、数日以内にこの tarball が正式なリリース版となるようです。23.3 は emacs-23 ブランチで EMACS_23_3 タグが付けられる予定です。

EMACS_PRETEST_23_2_94 からの修正は、ドキュメント類(info, man, doc string, comment)がほとんどですが、フォントの取り扱いや表示に関する修正も少し含まれています。

手元でのビルドも問題無し。Windows 用のバイナリーはまだ用意されていませんが、上記の通り 23.2.94 で問題が無ければ 23.3 rc1 も大丈夫と思われます。

追記@Wed Mar 02 15:19:20 2011

Windows 用のバイナリーが公開されました。

関連

Wednesday, February 16, 2011

Emacs 23.2.94 pretest

Emacs 23.2.94

Emacs 23.3 リリースへ向けた 5回目の pretest、Emacs 23.2.94 が出ました。

emacs-devel には流れていないと思いますが、一応、Windows 用のバイナリーも公開されています。

barebin のみで info や el, elc ファイルは含まれていません。23.2.93 以降、info の加筆やセキュリティーにも関連する lisp ファイルの修正もあるのですが…。ちょっとどういうことか分かりませんけど、そのうち公開されるのかも知れません。
追記@Thu Feb 17 10:22:44 2011
まるごと入ったファイルが公開されました。

手元の Windows ビルドも問題無し。次かその次くらいでリリースですかね。

関連

Wednesday, February 2, 2011

Emacs 23.2.93 pretest

Emacs 23.2.93

Emacs 23.3 リリースへ向けた 4回目の pretest、Emacs 23.2.93 が出ました。

数日前まで落ち着かない emacs-23 ブランチでしたが、pretest という区切りでみれば着実に不具合が修正されているようです。trunk が Gnulib 導入を進めていることもあってブランチを早く落ち着かせたい様子。この pretest で目立った問題が発見されなければ、ブランチは 23.2 に対するリグレッションとドキュメントの修正のみを受け付ける形に凍結されます。

Windows 用のバイナリーも公開されています。手元の Windows ビルドも問題無し。

関連

Monday, January 31, 2011

rebase for perlbrew Perl on Cygwin

Cygwinperlbrew 環境の Perl を使うときの、関連する DLL を rebase するシェルスクリプトです。

Cygwin には rebaseall や perlrebase がありますが、perlbrew でインストールした Perl の rebase までは面倒を見てくれません。brewedperlrebase (長い…)は perlbrew 環境用の perlrebase です。

どういうこと?

Cygwin は Windows 上に Linux 風の環境を提供するもので、様々な GNU ツールや UNIX 的な機能を利用できるようになります。Windows と UNIX 系 OS のプロセスモデルの最も大きな相違は自プロセスのコピーを生成する fork の有無です。
Cygwin では Windows 上にこの擬似的な fork() を実装するために DLL をロードするアドレスを調整する必要があります。

Cygwin の rebase は DLL のベースアドレスを変更するユーティリティで、プロセスにロードされる DLL のアドレスが重複せずそれぞれ一意となるように調整することで、fork() の親プロセスと子プロセスが同じメモリーイメージを持てるようにします。
基本的にロードされている DLL のアドレスさえ調整されていれば問題ないのですが、沢山ある DLL のうちどの DLL がどのプロセスでロードされるかは事前に知りようがないので、通常は rebaseall を使って Cygwin のほぼすべての DLL を rebase します。rebaseall するには対象となる DLL が使用されていない状態でなければいけないので、Cygwin のプログラムをすべて終了させておく必要があります。

Cygwin のパッケージでインストールされる DLL は既に調整された状態なので、通常の利用では rebase のお世話になることはありません。

しかし Perl のモジュールを CPAN からインストールしたとき、そこに XS を使ったモジュールが含まれていて DLL がインストールされた場合は別です。こういったモジュールを使った Perl プログラムはそのまま動くことが多いと思いますが fork() したときにはエラーが発生します。
例えば、

0 [main] perl 4704 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\perl5\5.10\i686-cygwin\auto\Fcntl\Fcntl.dll to same address as parent: 0x64700000 != 0x67290000
0 [main] perl 2520 fork: child 4704 - died waiting for dll loading, errno 11

のような。

これは rebaseall することで解決しますし、いちいち rebaseall するために Cygwin のプログラムをすべて終了させるのが面倒なときには、Cygwin の perl パッケージに含まれる perlrebase を利用することもできます。perlrebase は Perl に関連する DLL だけをまとめて rebase してくれるので、実行時に Perl を使ったプログラムさえ終了させておけば rebase できます。

perlrebase は /bin と /usr/local/bin にある Perl には対応していますが、perlbrew でインストールした Perl までは面倒を見てくれません(2回目)。ということで brewedperlrebase です。

CPAN からの芋づるインストールでは、特に依存関係にあるモジュールをロードしたあとのテスト時に fork() の問題が発生するので、逐次失敗させて rebase しながらインストールを進めるか、モジュールが動作すると分かっている場合にはテストを省略してインストールし最後にまとめて rebase します。

Friday, January 21, 2011

fontset-standard を使ったフォント設定

Emacs 23 になってから、これまで Windows の Emacs では create-fontset-from-ascii-font で作ったフォントセットを使ってきた。default-fontset をいじる設定も試したことがあったが納得いかなかった。上記の EmacsWiki を見て standard-fontset をいじって使ってみたところ、これは良さそうだ。

…と言っても毎度代わり映えしない設定なわけですが。

基本的なアルファベットのところは Consolas を使い、日本語は(表示できればいいや、で) MS Gothic、残りはフォントリンク、default-fontset のフォールバック、Arial Unicode MS によしなにしてもらう設定です。

Emacs 23.2.92 HELLO
Emacs 23.2.92 での view-hello-file

この設定ではギリシャ文字やキリル文字の見た目の文字幅(プロポーショナルで幅 1 っぽい)と、Emacs が扱う char-width の文字幅 2 が異なる状態になるので、これが問題になるようなら、本当に文字幅を 1 にするなり、latin-jisx0201, cyrillic-iso8859-5, greek-iso8859-7 を MS Gothic で表示してちゃんと文字幅 2 で見えるようにする必要があると思います。

半角カナは Arial Unicode MS での表示。MS Gothic より少しは綺麗。

picopico
まぁ少々ぴこぴこするけど。まず使わないし

Emacs 23.2.92   emacs-w3m Wikipedia
十分十分。どうせ読めないし

以前の設定

いずれも古いので参考にしないほうが良いと思います…。

Monday, January 17, 2011

Emacs 23.2.92 pretest

Emacs 23.2.92

Emacs 23.3 リリースへ向けた23.2.92 pretest が週末に出ました。

Windows 用のバイナリーも出ています。

ただし、現時点でいくつかの問題が出ているようです。

Windows の PNG サポートありの場合はビルドに失敗するので、tarball からビルドする場合には以下の修正が必要になります。

=== modified file 'src/ChangeLog'
--- src/ChangeLog       2011-01-15 02:55:58 +0000
+++ src/ChangeLog       2011-01-17 04:35:32 +0000
@@ -1,3 +1,11 @@
+2011-01-16  Stefan Monnier  <monnier@snip>
+
+       * image.c (syms_of_image): Don't access XSYMBOL's internals directly.
+
+2011-01-16  Eli Zaretskii  <eliz@snip>
+
+       * image.c (syms_of_image): Don't use SET_SYMBOL_VALUE.  (Bug#7848)
+
 2011-01-15  Martin Rudalics  <rudalics@snip>

        * window.c (inhibit_point_swap): New variable.

=== modified file 'src/image.c'
--- src/image.c 2011-01-03 19:32:41 +0000
+++ src/image.c 2011-01-17 04:35:32 +0000
@@ -8463,11 +8463,13 @@
 #ifdef HAVE_NTGUI
   Qlibpng_version = intern_c_string ("libpng-version");
   staticpro (&Qlibpng_version);
+  Fset (Qlibpng_version,
 #if HAVE_PNG
-  SET_SYMBOL_VAL (XSYMBOL (Qlibpng_version), make_number (PNG_LIBPNG_VER));
+       make_number (PNG_LIBPNG_VER)
 #else
-  SET_SYMBOL_VAL (XSYMBOL (Qlibpng_version), make_number (-1));
+       make_number (-1)
 #endif
+       );
 #endif

 #if defined (HAVE_XPM) || defined (HAVE_NS)

これは emacs-23 ブランチ先端では修正されています。

anything に関連して?上記のような不具合があるようです。が、ぼくはいま時間が取れなくて 23.2.91 のまま使っているので状況は良く分かりません。(anything も使っていないし…)

関連

Wednesday, January 5, 2011

SKK-JISYO.L.yaskkserv を最新にする

ddskk / skkime から使っている Debian GNU/Linux squeeze の yaskkserv の辞書を最新の辞書ファイルで更新するメモ。

#!/bin/sh
# skk の辞書を更新して
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.L.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.jinmei.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.geo.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.propernoun.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.station.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.law.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.requested.gz
wget -N http://openlab.ring.gr.jp/skk/dic/SKK-JISYO.edict.tar.gz
wget -N http://openlab.ring.gr.jp/skk/dic/zipcode.tar.gz

# 展開して
gunzip < SKK-JISYO.L.gz > SKK-JISYO.L
gunzip < SKK-JISYO.jinmei.gz > SKK-JISYO.jinmei
gunzip < SKK-JISYO.geo.gz > SKK-JISYO.geo
gunzip < SKK-JISYO.propernoun.gz > SKK-JISYO.propernoun
gunzip < SKK-JISYO.station.gz > SKK-JISYO.station
gunzip < SKK-JISYO.law.gz > SKK-JISYO.law
gunzip < SKK-JISYO.requested.gz > SKK-JISYO.requested
tar xafO zipcode.tar.gz ./zipcode/SKK-JISYO.zipcode > SKK-JISYO.zipcode
tar xaf SKK-JISYO.edict.tar.gz SKK-JISYO.edict

# yaskkserv 用の辞書を生成
yaskkserv_make_dictionary SKK-JISYO.L SKK-JISYO.L.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.jinmei SKK-JISYO.jinmei.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.geo SKK-JISYO.geo.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.propernoun SKK-JISYO.propernoun.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.station SKK-JISYO.station.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.law SKK-JISYO.law.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.requested SKK-JISYO.requested.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.zipcode SKK-JISYO.zipcode.yaskkserv
yaskkserv_make_dictionary SKK-JISYO.edict SKK-JISYO.edict.yaskkserv

 /usr/share/yaskkserv のファイルを上書きしちゃう(手動)
echo "sudo cp -f *.yaskkserv /usr/share/yaskkserv"

SKK-JISYO.edict は abbrev を使って英和変換できる辞書で、skkdic, skkdic-extra には含まれていないけど便利です。