Home

TEX Yoda

2014-05-26 22:37:42

注文していた TEX Yoda が届いたので、さっそく試してみます。注文したのは 2 月、4 月中旬に発送予定でしたが、部材の不良により一度発送が延期に。その後、5 月 23 日に発送連絡。そして、5 月 25 日に到着。思ったより早かったです。

images/tex_yoda_480.jpg

最初に感じたのは、重い&小さいというところ。これまで使っていたのが IBM の RT-3200 で、それなりに大きさのあるやつ、ということもあり、結構な差を感じます。

キーボードはメカニカルらしくシャラシャラ感があるやつで、遊びが大きめで打鍵感はあんまり好みのタイプではない感じです。ま。この辺は好みの問題だと思いますし、しばらく使っていれば慣れそうな気もします。

キーボード自体の厚みは、思ったより奥側の高さがあります。でも、奥側の足が取り外せるので、それを取り外したらいい感じの高さになりました。その場合、直接筐体が机に当たるので、机に傷がついちゃうかも知れません。パームレストがいるかな? と思ったけど、そこまでは要らないようです。

・マウスの機能

マウスカーソルの移動速度が恐ろしく速かったので、ちょっと遅くなるように設定を変更しました。そうすると、今度は遅すぎます。ポインタオプションの「遅い」から二番目あたりで、速度的にはまずまずな感じになりましたが、それでもカーソルの動きがちょっとふわふわしてる感じです。かちっと移動できません。噂によると、IBM / Lenovo のトラックポイントはいろいろと工夫されてる、ってことで、そのへんとの違いでしょうか。

マウスポインタの加速調整ツール』というアプリを使ったり、『マウス ポインタの加速を調節する方法』ってのを参考に微調整をしてみることにします。設定として、速度: 5、加速: 遅く、にしてみると、まずまずいい感じになりました。

マウスボタンはキーボードのキーと同じ感じのもの ( いちおう、傾斜は付けられてます ) ですが、思ったより悪くないです。ただ、打鍵感は、もう少し浅めのほうがいいんじゃないかと思います。

このキーボードのマウス、スクロールあたりは HID 準拠のマウスとして扱われるようで、IBM のドライバやら Wheel Ball だとかは要りません。これは、地味にありがたいです。これだと、仮想環境でも有効ですし。デフォルトの 3 行スクロールではちょっと速すぎる感じなので、1 行にしてみました。

・カーソルキー

これまで HHK を含め、カーソルキーなしのキーボードって使ったことがなく、その辺りが気になっていたんですが、右側の [shift]、[win]、[fn]、[ctrl] キーがカーソルとして機能します。こりゃいいや。

このことについてはとくに記述がなかったので、ちょっと得したような損したような気分。カーソルキー無しを練習しようと思ってたんですけど。とりあえず、設定は以下のような感じで。ちなみに、デフォルトは全部オフでした。

・比較

で、Space Saver Keyboard II ( RT-3200 )、MINI KEYBOARD Pro、Travel Keyboard UltraNav あたりと比べると、さすがに打鍵感はいい感じです。マウスカーソルの動きは、IBM 製には劣るけど、MINI KEYBOARD Pro よりはいい感じ、と。まだまだ使い始めたばかりなので、不十分な評価だとは思いますが、とりあえず、こんなところで。

TEX Yoda に関する情報は こちら で。

Go to TopGo to Top


ClickPad on Helix

2014-05-18 23:22:06

例の Thinkpad Helix 上で ClickPad の動作がいまいちな件ですが、Synaptics 1.8.0 というドライバが出てるようで、新しい Thinkpad 向けのサポートが追加されている とのこと。

いまのバージョンは 1.7.4 なので、もしかしたら、なんかいい感じに変わったりしてるのかな? と。ということで、野良ビルドしてみて試してみました。いちおう、手順としてはこんな感じ。既存のドライバをバックアップしておいて、新しく作ったドライバに入れ替えます。


  $ sudo apt-get install xserver-xorg-dev
  $ sudo apt-get install libevdev-dev
  $ sudo apt-get install libxi-dev

  $ ./configure --prefix=$HOME/synaptics-test
  $ make
  $ sudo make install

結果は、というと、あんまり違いはない感じでした。残念。これまでのバージョンとの違いとしては、セカンダリのソフトウェアボタンが定義できる、ってところが大きいようで、ホイールエミュレーションについてはとくに盛り込まれてないようです。

『パームレスト的に手を置いていると、ボタンの反応がいまいち』という件は、とくに改善されてないみたいでした。それっぽい設定も見当たりません。しばらくは今のままで我慢することにします...。

Go to TopGo to Top


Tomcat のスレッドダンプ

2014-05-13 23:00:31

Tomcat でスレッドダンプを取る、というネタですが、コマンドプロンプト版では、[Ctrl] + [Break] キーだかで取得することができるものの、サービス版ではそれが利用できません。というわけで、Tomcat Monitor から取得するとか SendSignal とかのツールを利用する、なんて方法が利用されます。

ちょっとソースコードを見てて気付いたんですが、Tomcat Monitor で [Thread Dump] を選んだときの動作として、イベントオブジェクトをシグナル化して、それを契機に取得していることがわかりました。サービスと UI プロセス間での通信では、よくありがちな方法ですね。イベントオブジェクトは『サービス名 + "SIGNAL"』という名前です。

ちなみに、今回は Windows Server 2008 R2 上の Tomcat 7.0.53 + JDK 7 Update 55 ( x64 ) で動作確認してます。

サービスアプレットからサービス名を確認すると、Tomcat7 になってます。表示名とは違うので注意 ( 表示名は Apache Tomcat 7.0 Tomcat7 )。ということで、こんな感じのコードで TOMCAT7SIGNAL の部分をバージョンにあわせて変えてあげればよさそうです。あとは、それなりに権限のあるユーザーで実行すれば、スレッドダンプを吐いてくれます。いい感じ。


  #include "stdafx.h"
  #include <Windows.h>

  int _tmain(int argc, _TCHAR* argv[])
  {
    HANDLE event;

    event = ::OpenEventW(EVENT_MODIFY_STATE, 
                         FALSE,
                         _T("Global\\TOMCAT7SIGNAL"));
    if (event) {
      ::SetEvent(event);
      ::CloseHandle(event);
    } else {
      _tprintf(_T("OpenEventW Error : %d\n"), ::GetLastError());
    }

  fin:
    return 0;
  }

SendSignal だと、32 ビット / 64 ビット問題とかありますが、これならそのへんも関係ないのもいいところ。ただまぁ、Tomcat 前提のやり方、ってことにはなりますけどね。もしかすると、procrun でサービス化してる Java アプリなら、似たような方法で行けるのかもしれません。イベントオブジェクトの名前は、ソースを読んで確認するか、WinObj のようなツールでも確認できます ( 面倒だけど )。

Go to TopGo to Top


pretty lang-lisp

2014-05-12 23:12:50

JavaScript code prettifier で色が変わらない件ですが、どうやら、LISP のコードに関しては明示的に .js を読み込みつつ、class で指定をしてあげる必要があるようです。

そういうときは新しいタグですよね、ってことで、こんな感じの Emacs-wiki 用のタグをでっちあげます ( 実際のものとはちょっと違いますが、雰囲気ってことで )。


  (defun emacs-wiki-pretty-lisp-tag (beg end highlight-p)
    (if highlight-p
        (progn
          (emacs-wiki-multiline-maybe beg end)
          (goto-char end))
      (insert "<script type='text/javascript' src='lang-lisp.js'></script>")
      (insert "<pre class='prettyprint lang-lisp'>")
      (emacs-wiki-escape-html-specials end)
      (when (< (point) end)
        (goto-char end))
      (insert "</pre>")
      (add-text-properties beg (point) '(rear-nonsticky (read-only)
                                                        read-only t))))

ついでに昨日のやつも直しておきました。毎回 .js の読み込みタグが入っちゃうのはちょっとイヤンな感じですが、ま、あんまり気にせずに。

Go to TopGo to Top


Emacs 24 & Migemo

2014-05-11 22:28:16

自宅 & 仕事場の Emacs 環境を 24.3 に移行してみました。自前のやつは、簡単な elisp しか使ってないですし、とくに問題はない感じです。

旧バージョンを残しつつ、しばらく様子を見てみることにします。で、気付いたのが migemo がちゃんと動いてない感じでした。migemo といえば、ローマ字入力でインクリメンタル検索ができる、とっても便利なツールです。これはいかん、ということで、ちゃんと調べてみます。

まず、ちらほらググってみると、『MELPA のやつは修正されてる』という話が見つかりました。とりあえず、migemo.el は MELPA からダウンロードしなおします。

c/migemo は KaoriYa からダウンロード。以下のような設定で Emacs 24.3.1 でも migemo が使えるようになりました ( なんか色分けがおかしいですが、それについては、あとで調べることに... )。


  (setq migemo-dictionary "c:/emacs/24.3/migemo/dict/utf-8/migemo-dict")
  (setq migemo-command "c:/emacs/24.3/migemo/cmigemo")
  (setq migemo-options '("-q" "--emacs"))
  (setq migemo-user-dictionary nil)
  (setq migemo-coding-system 'utf-8)
  (setq migemo-regex-dictionary nil)
  (load-library "migemo")
  (migemo-init)

これだけだと、C-s で検索を開始したときに日本語入力が生きたままであんまり意味ないので、IME をオフにします。


  (wrap-function-to-control-ime 'isearch-forward t nil)
  (wrap-function-to-control-ime 'isearch-forward-regexp t nil)
  (wrap-function-to-control-ime 'isearch-backward t nil)
  (wrap-function-to-control-ime 'isearch-backward-regexp t nil)

が、この副作用で C-u C-s したときに Regexp I-Search になってくれない、という状況に。昔はダメだった気がするんですが、今の migemo では問題なくアルファベットも検索できるので Regexp I-Search をあきらめる、という選択肢もありそうです。

ともあれ、インジケータを見て [あ] ならオフにしてみる感じで。isearch-mod-hook に引っ掛けてみたんですが、どうもうまく行かないので、あんまりかっちょいい方法ではないですが、キーボードバインドで。


  ;; [migemo] isearch で IME をオフにする
  (global-set-key "\C-s"
    '(lambda (arg)
       (interactive "P")
       (if (string= w32-ime-mode-line-state-indicator "[あ]")
           (toggle-input-method))
       (if arg
           (isearch-forward-regexp)
         (isearch-forward))))
  (global-set-key "\C-r"
    '(lambda (arg)
       (interactive "P")
       (if (string= w32-ime-mode-line-state-indicator "[あ]")
           (toggle-input-method))
       (if arg
           (isearch-backward-regexp)
         (isearch-backward))))

なお、Ubuntu 上の Emacs 24.3 では、とくに何もせずに C-u C-s が isearch-forward-regexp になるし、isearch ( migemo も含め ) のときは IM がオフになるしで、えらい便利。


Go to TopGo to Top