オタク日記

(Mac と Linux)

目次

2010-12-29 (Wed): Pocket WiFi と My Home Server
2010-12-25 (Sat): MacBook Air でオタク(その 2)
2010-12-18 (Sat): 機上の WiFi
2010-12-11 (Sat): OP25B 再訪
2010-12-04 (Sat): MacBook Air でオタク(その 1)
2010-11-30 (Tue): ThinkPad 不調(その 2)
2010-11-25 (Thu): ThinkPad 不調
2010-11-20 (Sat): Python と Unicode
2010-11-06 (Sat): ThinkPad あれこれ
2010-10-27 (Wed): Ubuntu-10.10 フリーズ
2010-10-23 (Sun): Ubuntu-10.10
2010-10-10 (Sun): Namazu の復活ならず
2010-10-09 (Sat): オタク稼業は開店休業
2010-09-11 (Sat): MLterm-3
2010-09-08 (Wed): 知らぬまの Upgrade
2010-08-29 (Sun): 捨てる神有れば……
2010-08-14 (Sat): BasiliskII 讃
2010-08-07 (Sat): Emacs-23.2 (その六)— もういいか……
2010-07-17 (Sat): 留守宅サーバ
2010-07-03 (Sat): iPhone アップグレード
2010-06-19 (Sat): Emacs-23.2 (その五)— もう一息
2010-05-29 (Sat): Emacs-23.2 (その四)— フォントに嵌る
2010-05-22 (Sat) Emacs-23.2 (その三)— Aquamacs
2010-05-15 (Sat) Emacs-23.2 (その二)
2010-05-08 (Sat) Emacs-23.2 リリース
2010-05-01 (Sat) Ubuntu 10.04 LTS
2010-05-01 (Sat) Cocoa Emacs (Emacs-23.2)
2010-04-24 (Sat) 今更ながら Time Machine、その後
2010-04-17 (Sat) 今更ながら Time Machine
2010-04-10 (Sat) 色々
2010-04-03 (Sat) サイトのページを全面的に Unicode に
2010-03-20 (Sat) Google CSE/Chrome と Unicode 化
2010-03-13 (Sat) Google Custom Search を試す
2010-03-06 (Sat) Msearch による全文検索
2010-02-27 (Sat) 自分で思っている程には……
2010-02-20 (Sat) なかなかやるじゃん、MacPorts
2010-02-11 (Thu) ちょっと感動もの(Wanderlust コミュニティ讃)
2010-01-30 (Sat) なんだかなぁ
2010-01-23 (Sat) X200 BIOS Update
2010-01-09 (Sat) Ubuntu/ThinkPad ピンチ

古い日記 (2009)
古い日記 (2008)
古い日記 (2007)
古い日記 (2006)
古い日記 (2005)
古い日記 (2004)
古い日記 (2003)
古い日記 (2002)
古い日記 (2001)


2010-12-29 (Wed): Pocket WiFi と My Home Server

留守宅サーバ H/W 更新はさらに延期

この夏に、自宅サーバ(ThinkPad X22)の Ethernet チップのあたりが過熱するようになり、 さすがにもう寿命だと思えたので、今回の帰国では、 置き換えるべく X200 を持ち帰ったのだった。 が、まだ何とか持ち堪えているし、X200 に他の役目ができたし、 もうちょっと、X22 に頑張ってもらう事にした。

Pocket WiFi の設定

「設定」といっても、製品 (D25HW) の初期設定が非常に良いし、SIM カードなどは販売店で挿してくれているので、大して迷うところはない。
  1. D25HW をパワーオン。(十分充電されてないようだと、AC アダプタに継いで作業した方が良いかも。)
  2. パワーオンして 10 秒もすると、D25-HW が Internet に繋り、かつ PC から WiFi AP として認識される。
  3. 一覧からその ESSID をクリックして、 お店でもらったディフォルトの Password(5 桁の方)を入れる。
  4. 接続が確立したら、好みの Web ブラウザで 192.168.1.1 にアクセス。
  5. ログイン画面で、Username: admin, Passowrd: に 「上記のパスワード」を入力。
  6. 上のログイン・パスワードと、WiFi の認証のためのパスワード、ESSID を変更する。 (ログインと認証で別々に設定する要あり。) 自分は認証方法を WPA2 に変更した。
これだけ。他の事(ドライバのインストールなど)は必要ない、というか、 やらない方が良い。自分も一旦はこの「ドライバ」とやらをインストールしたが、 USB 越しに接続するための物だったので、直ぐにアンインストールしてしまった。 (通信用の USB ドングルとそのドライバにはこれまでに大分痛い目に遭っている — 実際今回も充電のために USB で繋ぐと、その度に Internet に接続しようとした。ドライバを外したらこれは無くなった。)

また、他の設定も弄る必要は無さそう。で、ちょっと感想:

D25HW の評価

どの PC/PDA にも問題なく繋がるようだ。

MBA での速度測定。D25HW に MBA だけが、 WLAN で繋がっている状態で、

SPEED 2.5 (speed.rbbtoday.com)
計測日時 : 2010年12月28日火曜日 19時38分54秒
  下り(ISP→PC): 6.01Mbps
  上り(PC→ISP): 612kbps
    
SPEED 2.5 (speed.rbbtoday.com)
計測日時 : 2010年12月28日火曜日 19時43分12秒
  下り(ISP→PC): 4.99Mbps
  上り(PC→ISP): 706kbps
となった。素晴しい!ちなみに、家庭内 WLAN を使った場合は
SPEED 2.5 (speed.rbbtoday.com)
計測日時 : 2010年12月28日火曜日 19時44分43秒
  下り(ISP→PC): 27.95Mbps
  上り(PC→ISP): 18.05Mbps 
となる。つまり、D25HW の測定では、WAN のリンクが制限要素になっている、という事。 それにしても 5 ~ 6 Mbps とは! 凄いぞ、HSDPA。 (すみません、実はこれを見るまで信用してませんでした。)

留守宅サーバに DNS を追加

自分の global IP アドレスを持ったパケットは、LAN 側からでも、 WAN 側からでも、とにかく DMZ へ渡す、というのが普通の動作だと思うし、 実際これまで、4 代くらいのルータは、そういう動作をしていた。 が、今留守宅サーバに繋がっているルータ (WHR-G300N) は、 LAN 側からのは自分宛てだと思ってしまう。 つまり、家庭内 LAN から otacky.jp にアクセスしようとすると、ルータの設定用 Web サイトが返事をする…… :-(。

このルータを導入した当座は問題になったものの、 それぞれの PC の /etc/hosts に、

 # /etc/hosts
 192.168.0.17 otacky.jp www.otacky.jp 
としてもらってまあ一件落着となっていた。 が、ここで、そのルータの AP と、D25HW の AP をいったり来りするようになると、その都度、/etc/hosts を編集する事になり、大変具合が悪い。

そこで、留守宅サーバにも、DNS を導入する事にした。 留守宅サーバ (X23 + FC7) には既に、caching server と DHCP サーバを併せたものを導入ずみで、至極具合が良い。Local Network に出たり入ったりするホストもその host name でアクセスできるし、 LAN 内からでも、外からでも、例えば eagle.otacky.us としてある設定を変える必要はない。

なので、その環境を再現すれば良い筈、と思ったのだが、 留守宅サーバは古すぎるせいか、そもそも dhcp(d) がインストールできない。 なぜか、rpm -qa にそれらしいものが出てこない。 あとは後退の一途で、大分妥協したものとなった。

  1. bind-9.3.4-1.fc5 と caching-nameserver-9.3.4-1.fc5 をインストール。 (実は既にインストールしてあった。 してなかったら、全くアウトとなるところ)
  2. /etc/named.conf を編集して、
     zone "otacky.jp" IN {
             type master;
             file "otacky.jp.db";
             allow-update { none; };
     };
    なる項を追加。また、効果の程は未詳だが
     options {
        /************/
             forwarders {
                     202.238.95.24; 
                     202.238.95.26;
             };
     };
    も付け加えた。
  3. /var/named/otacky.jp.db はこんな感じ
     $ORIGIN .
     $TTL 86400      ; 1 day
     otacky.jp               IN SOA  otacky.jp. root.otacky.jp. (
                                     2008036975 ; serial
                                     3600       ; refresh (1 hour)
                                     900        ; retry (15 minutes)
                                     604800     ; expire (1 week)
                                     86400      ; minimum (1 day)
                                     )
                             NS      otacky.jp.
                             A       192.168.0.17
     $ORIGIN otacky.jp.
     falcon                  CNAME   otacky.jp.
     $TTL 300        ; 5 minutes
     $TTL 86400      ; 1 day
     quadra                  A       192.168.0.2
     router                  A       192.168.0.1
     www                     CNAME   otacky.jp. 
  4. 件のルータにアクセスして、その DHCP サーバが、client に DNS として、上記の 192.168.0.17 を答えるように設定する。
    fukuda@falcon:~% sudo tail -f /var/log/messages 
    として様子を見ながら、
  5. 別の窓で、
     fukuda@falcon:~% echo $INI                     
     /etc/rc.d/init.d/
     fukuda@falcon:~% sudo $INI/named start
    として、DNS をスタート。
  6. DHCP を renew して(WiFi を一旦 Off にするのが手っ取り早い?) /etc/resolv.conf で nameserver が上記の IP アドレスを指しているのを確認
  7. nslookup で、サーバが動いている事を確認。まず、件の router の LAN 内では、
     fukuda@hawk:~% nslookup otacky.jp
     Server:		192.168.0.17
     Address:	192.168.0.17#53 
     
     Name:	otacky.jp
     Address: 192.168.0.17
    D25HW 経由で Internet に接続している場合は、
     fukuda@hawk:~% nslookup otacky.jp
     Server:		192.168.1.1
     Address:	192.168.1.1#53
     
     Non-authoritative answer:
     Name:	otacky.jp
     Address: 202.238.126.251
    192.168.1.1 は、D25HW の LAN アドレス。
  8. うまくできているようなら、 次回以降も起動時にデーモンを立ち上げるように設定する。
     fukuda@falcon:~% sudo chkconfig --level 2345 named on    
     fukuda@falcon:~% sudo chkconfig --list named         
     named   0:off	1:off	2:on	3:on	4:on	5:on	6:off

2010-12-25 (Sat): MacBook Air でオタク(その 2)

MacPort

MacBook Air へ環境を移すのを機に、 一層の効率化(手抜きもしくはストレージの節約)を目指すのであるが、 その眼目の一つが MacPort。そうすると Python や Emacs の「追っ掛け」は諦めないといけないが、 その分インストールで思い悩む等は卒業できるのではないか、と。

しかし、実際にやってみると、なかなかそうは問屋が卸してくれない。 Linux の rpm や deb に比べたら、MacPort はまだよく熟れてはいないような気がする(packaging にミスが多い?)なにしろ、port install xxxxがよく止まる……

Emacs (その 1)

MacPort への一本化が一番望まれるアプリケーション(コマンド)であるが、 一番ややこしくもある。 そもそも、MacPort の中で閉じる事ができない。 例えば Wanderlust や SKK は MacPort に無いので、一から手で入れるしかない。その時は、emacs が必要になる。 そもそも、MacPort にあるパッケージの w3m-emacs や lookup は、emacs (emacs-app ではなく)を必要とする。 一方で、emacs-app が無ければ話にならん。 要は MacPort には emacs と emacs-app の二種類が有ってそれを使い分けないといけない。 これが気に入らず、ずっと何とかしなくては、と思ってきたが、 なかなかそうは問屋が卸してくれない。 というか、せっかく「手抜き」をしようというのに、これにかまけていては、 意味がない。

emacs

emacs-app つまり、現状では、emacs でコンパイルしたパッケージを、Emacs.app でも使っている訣で、ちょっと気持悪い。が、いろいろやってみた結果、 これが一番楽。気持悪さは多分気のせい……

Emacs(その 2)

しかし、ごちゃごちゃやっている内に、emacs-w3m パッケージは実は、emacs(-app) パッケージとは働かない事がわかり、 すっかりプッツンしてしまった。Emacs だけは、MacPort と離れて管理してみよう……と。
  1. dmg で、Emacs を展開。(今回は試しに Emacs-pretest-23.2.91-universal-10.6.5.dmg なんてのを入れてみた。
  2. /usr/local/bin/emacs/
    #!/bin/sh
    /Applications/Emacs.app/Contents/MacOS/Emacs "$@" 
    というシェルスクリプトにする。(chmod +x もやってておく。)
  3. PATHの先頭に /usr/local/bin/ が来るように設定。
  4. apel, flim, semi をそれぞれ、$ make && sudo make install で、 /Applications/Emacs.app/Contents/Resounces/site-lisp/{apel|flim|semi} にインストールされる。
  5. emacs-w3m (CVS) に関しては、どうしてもうまく行かないので、 configure の後、無理矢理上記の site-lisp を指すように、 Makefile を編集。
  6. wanlderlus (CVS) は、むしろ WL-CFG の内容を全部コメントアウトとする事で、上記の site-lisp にインストールされる。
  7. ddskk は、SKK-CFG が Emacs.app/MacOS の項目を持っているが、逆にそこで何も設定しなくても、 所定の場所にインストールされる。
  8. lookup は子ディレクトリに Makefile が分散しているので、諦めてディフォルトの /usr/local/share/emacs/site-lisp にインストールしたままにしておく。 その代り、上記の environment.plist の EMACSLOADPATH に、このパスを加える。 (他は全部消してしまう。)
以上で、本体は勿論、wl, w3m, skk があっさり動くようになった。 云うまでもなく、それぞれの rc ファイルの整備は必要。

Python

最近の MacPort は、Python に関しては文句のつけようがない。 あんまり上手く行くので、ついつい手を広げてしまいそうになり、 それを押えるのが大変……:-p。で、現在のところ、MBA では 2.6.6 とそのパッケージだけにしている。

と、インストールは順調だったのだが、使い始めてみると、微妙な問題も。 Gnuplot-py から、Aquaterm にグラフが打ち出せない……。 そもそも、gnuplot (port) からもだめ。なんでや。 なかなか理由が解らなかったが、 バイナリパッケージの AquaTerm.app が 32 bit だかららしい。 MacPort のは 64 bit らしい

fukuda@hawk:~% file /Applications/MacPorts/AquaTerm.app/Contents/\
    MacOS/AquaTerm
    /Applications/MacPorts/AquaTerm.app/Contents/MacOS/AquaTerm:\ 
    Mach-O 64-bit executable x86_64
ので、何故同じ MacPort の gnuplot-py がそちらへ出力しないのか不思議だけど、兎に角、その 64 bit 版を、32 bit と取り替える。Library も総入れ換え。
sudo cp -R /opt/local/Library/Frameworks/AquaTerm.framework
    /Library/Frameworks/AquaTerm.framework 
これで目出度く、Gplot.py からの出力ができるようになった。
fukuda@hawk:~% python
Python 2.6.6 (r266:84292, Dec 24 2010, 10:23:29) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Gplot
>>> from numpy import *
>>> x = arange(-10, +10, 0.1)
>>> y = cos(x)*exp(-x*x)
>>> g=Gplot.Gplot()
>>> y = cos(x)*exp(-x*x/20)
>>> g.plot(x, y)
>>>  
macport's gnuplot
cos(x)*exp(-x*x/20)


2010-12-18 (Sat): 機上の WiFi

SJC IT Bench
新しいから、という事もあるのだろうけど、SJC (San Jose 空港)は、どんどん IT/Network オタクに優しくなっている。 まず、待合室の座席の多くに AC コンセントがついた。これで、 壁や柱にあるコンセントを探さなくて済むし、「少ない資源」を奪い合わなくて済む。 (が、どうも動いてない(電気が来ていない)コンセントが多いような気もする……) また、San Diego 通信にも書いたが、sjcfreewifi は Windows 以外の OS にもとても優しい。

と感心していると、そこから乗った Southwest 航空の 737 の入口付近に左のようなステッカーが貼ってあった。おお、ついに……

Southwest WiFi
離陸して電子機器の仕様解禁を待ちかねるように、いそいそと接続してみた。 MacBook Air の AirPort、あっさり AP を見つける。また、接続(IP アドレス割り当て)も迅速。しかし、残念ながら無料ではなく、 $5 也。



WiFi Sticker on a Southwest Plane
SoutwestWi-Fi のログイン画面
また、ログイン後もブラウザの各ページに「ヘッダ」が付いたりして、 ちょっと嫌な予感がした(有償なのに、さらに広告を出すのか、みたいな。) が、HTTP 以外のプロトコルもちゃんと通る。 少くとも ssh, ftp, IMAP は実地に試して OK だった。 スループットを計ってみた。
fukuda@hawk:~% wget http://www.python.org/ftp/python/3.1.3/\
    Python-3.1.3.tar.bz2
    ......
`Python-3.1.3.tar.bz2' に保存中
100%[======================================>] 9,875,464    \
    237K/s 時間 83s     
2010-12-18 10:33:03 (116 KB/s) - `Python-3.1.3.tar.bz2' へ保存完了

fukuda@hawk:~% scp Python-3.1.3.tar.bz2 otacky.us:
Python-3.1.3.tar.bz2              100% 9644KB  16.2KB/s   09:55    
平均で、下りは928 Kbps, 上りが 130 Kbps くらいか。 予想通り、かなりの download 偏重になっている。 しかし、それにしても、下り 1 Mbps 近く出ているのは凄いね。 しょっちゅう'--- stalled ---' になるのに、この成績。 半年くらい前に Southwest の機内誌で見た時は、 衛星中継と聞いていたけど、接続がよく途切れるところを見ると、 やっぱり地上局をハンドオーバされながら辿っているのかな。

2010-12-11 (Sat): OP25B 再訪

情ない事に、自分の ML がある留守宅サーバから、自分のメインアドレス (xxxx@computer.org) にメールが送れなくなっていた。Computer.org の aliasing サービスに転送を拒否されている。 留守宅サーバがどう動いているのか確認してみると、 なんと relayhost を使っていない。で、computer.org が、留守宅サーバの IP アドレスを弾いているらしい。 もともとは、mail.jb3.so-net.ne.jp を使っていて、OP25B になったせいで、固定 IP にしたのだった。 それでしばらくは OK だったはず。 なのに何故か駄目になって(またかよ So-net さん)、ええい面倒だ、とばかり、 直接配送する事にした(ようだ。) 勿論その時は仮のつもりだったが、当然そんな事はすぐに忘れてしまう。 いかんなぁ。
2010-12-16 (Thu): よく調べてみると、今年 (2010) の 1 月から、So-net サイトの「メールアプリケーションの設定」では、 メール送信に「認証」を使うようになっている。 成程、「問題」が表われた頃と時期が一致しているような気がする。 でも、So-net のサイトでは、依然「固定 IP なら問題ない」とあるんだがなぁ。

等という反省というか穿鑿をしている場合ではない、何とか対策を打たねば…… その ML からのメッセージを暫く受け取っていない、と仰る方も居るので。 しかし、最初の思惑「どこかの Blacklist に乗ってしまったかな」は外れだった。(今は <http://www.mxtoolbox.com/blacklists.aspx> などで一発で調べられる。)

次は、「アドレスの逆引きができないホストからの……」が疑われるが、 これは大丈夫だろう。DynDNS さんの五つもの DNS サーバでちゃんと登録されてゐる。 あとは、「MX record が無いホストからの……」かなぁ。 かつて日本のさるプロバイダが、それをやったと聞いた事がある。 で、見様見真似でやってみた…… DynDNS さんのところで、

   Host           TTL      Type        Data
otacky.jp           1        A       201.238.xxx.xxxx
www.otacky.jp   43200     CNAME      otacky.jp
    .....
otacky.jp         600        MX      otacky.jp
とやるだけ、であるが。しかし、残念ながら otacky.jp から Postfix でメールを送ろうとすると、やっぱり "connection refused" と言われてしまう。
Dec 11 04:25:21 falcon postfix/smtp[5267]: D21F91F5C3: 
to=<xxxx@computer.org>, relay=none, delay=1, status=deferred 
(connect to lemroh.ieee.org[140.98.193.30]: Connection refused) 

自分のホストが ieee.org にメールサーバとして認められない、というのは癪だが、 多分ここは、mail.so-net.ne.jp を relayhost にするのが王道だろう。 しかし、今は SMTP-Auth を要求するらしい。 かつて試みながら一旦諦めたのも無理はない、 これは結構面倒臭そうである。だが、幸いな事に、

fukuda@falcon:/etc/postfix% rpm -q cyrus-sasl postfix
cyrus-sasl-2.1.21-10
postfix-2.2.8-1.2
てな具合に、SASL も入っている。Postfix が SASL 対応になっているかどうかで随分話は違ってくるが、 /etc/postfix/main.cf.defaultsmtp-sasl-* が有るところを見ると多分大丈夫だろう。 /etc/postfix/main.cf に、次のような行を追加
relayhost = [mail.so-net.ne.jp]:587 

smtp_sasl_auth_enable = yes 
smtp_sasl_mechanism_filter = PLAIN, LOGIN 
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
smtp_sasl_security_options = noanonymous 
で、次のような内容の /etc/postfix/isp_auth を作る。
mail.so-net.ne.jp xxxxx@xxx.so-net.ne.jp:password 
あとはこれを
fukuda@falcon:/etc/postfix% sudo /usr/sbin/postmap isp_auth
として isp_auth.db を作る。 username と password を MIME encode するツール (Metamail の mmencode) が有れば、telnet で smtp-server に login して動作確認できるらしいのだが、Metamail のインストールに手間がかかりそうなので、断念。いきなり試してみる事にした。
fukuda@falcon:/etc/postfix% echo $INI
/etc/rc.d/init.d/
fukuda@falcon:/etc/postfix% sudo $INI/postfix restart
    .....
fukuda@falcon:/etc/postfix% mail xxxx@computer.org

さいわいにも、これで computer.org さんは、自分宛のメールをちゃんと、 forward してくれるようになった。(良かった!実は、あまり自信が無かった……。)


2010-12-04 (Sat): MacBook Air でオタク(その 1)

MacBook Air をプチオタク仕様にした顛末。

とりあえずは「一般人」仕様に

AC アダプタを継いで電源ボタンを押すと、問題なく立ち上がり、Setup Assistant が起動される。MacPro から環境を転送すれば楽で良いのだが、今回は無理。何せストレージが 128 GB しかないので。それをやらなければ、ここでは WiFi AP への接続をセットアップするだけ。そしたら自動で AP に接続できた。 大したもんだ。

ここで、OS と附属の S/W をアップデート。

ここで、一回リブートが必要。

おもむろにカスタマイズ。

Unix Command 環境を整える

とにかく Storage が小さいので、 あまり漫然とコマンドを重複して入れるのはまずかろう(いずれにせよ、Emacs が八つも有るというのは、やっぱりおかしい:-p)といふ事で、 今回は Emacs の他、Python31, Python26 等も MacPort で統一する事にした。(その、心掛けは良かったのだが……)

Terminal/Zsh

ここまでやっておけば、Terminal でこれくらいの事ができる。
Hawk's Terminal
"Terminal.app on Hawk"
これは、Quadra (MacPro) に ssh でログインして、UTF-8 のファイルを表示して、戻ってきてから ls したもの。(prompt の hostname の色を変えているのは伊達ではなくて、チョンボ防止のため。)

この後は、Emacs と Python の環境を整える予定。


2010-11-30 (Tue): ThinkPad 不調(その 2)

件の電池がやっと届いた。注文(11/6) から三週間以上。 三度目の催促で USPS のトラッキング番号を知らせてきた。(これに返事が無かったら PayPal の dispute に行こう、と思っていたのだが、 今となっては、それを試してみたかったような気もする:-p)

早速、電池を取り替えてみるが、ThinkPad の件の症状は直らなかった。 つまり、蓋をした状態で AC アダプタを外すと、かなりの確率(50% 以上)でフリーズ(暴走)する。("Battery may be broken" は出なくなって、そのせいか、スリープから勝手に冬眠、 というのは無くなったようだが。) ちなみに、この電池は寸法精度が出ていないのか、装着するのが難しい。 かなり力を入れないと、きちんと挿さらない……。 もし買えるなら、少々高くても純正品かな?

たまたま、カーネル(2.6.34-23.41) を含むパッケージの自動アップデートが有ったので、 それを適用してから、Madwifi (hal-0.10.5.6-r4126-20100324) を再コンパイル、% sudo modprobe ath_pci とやった。 しかし、症状は変らず。

さらに、標準バッテリ(4 cell) が有った事を思い出し(今回ダメになったのは、 同時に購入した 6 cell)、それも試してみた。 が、やはりこれも症状は変らなかった——あたり前、か。

今回新たな問題を見つけた。上記の問題を避けるには、キーボードから明示的に スリープさせてから、蓋を締め、AC アダプタを外す、というのが確実なのだが、 これが、最初の一二回しか効かない。それ以降は無視されてしまう。 こうなっては、プラグを抜いてから蓋をしてスリープさせる、 しか手が無くなった。

2010-12-01 (Wed): と、思っていたが、プラグを抜いてスリープさせようとしても、そのままハング、 という事が何度か有った。また、スリープ中に勝手に hibernate(冬眠)してしまう、というのも再現してしまった……。 もう、ちょっと手がつけられない、というか諦めムード。

どうも、ポータブル Linux Machine として使うのは難しくなった、という事か。 既にサーバとしての信頼性にも疑問が出ているが、ここは気を取り直して、 サーバモード(AC アダプタを接続したまま蓋を閉じておく)で、 連続運転試験(放置とも言う)をやってみよう。


2010-11-25 (Thu): ThinkPad 不調

ThinkPad がどうも調子が悪い。Ubuntu-10.10 のカーネルだと、 スリープがらみのトラブルが絶えなかったので、10.04 のカーネルに戻したのだけど、今度はブートに時間が掛るようになったし、 何かと不安定になったような気がする(しかし、再現できない事が多い。) で、先日は、AC アダプタに継いだまま作業している内に、 画面が乱れてハングする、という事態に陥ってしまった。(Emacs の自動バックアップの御陰で、失われた入力は僅かで済んだが……)

で、今はまた 10.10 のカーネル (2.6.35-22) に戻している。 蓋をしてから AC アダプタのプラグを抜くと略確実にハングするが、 それさえやらなければハングには至らないようだ。 しかし、いつの間にか hibernate してしまうという問題は残っている。(Windows だとこれが起きない。)

これはどうも、電池の問題ではないかと思う。 先にも書いたように、ログインの度に "Battery may be broken" と言われている状態なので、Ubuntu が電池残量を勘違いして冬眠してしまうのだろう。

なので、新しい電池が早く欲しいのだが、それがなかなか届かない。 以前、TP 22X の電池をオンラインで買った時は、迅速確実だったのだが、 今度のところ (Ecsem Industrial Co.) は 注文して 3 週間も経つのにナシの礫。まあ、PayPal 系由で支払ったので、よもや丸損という事にはならないだろうが、 時間のロスと余計な手間が腹立たしい。先のケーブルの例や、友人のための PDA を買った時の経験からして、中国を本拠地とする会社は避けた方が無難という事か。 (改めてウェブを良く見ると、深圳 (シンセン:Shenzhen) にある会社らしい。 早く気付けば良かったなぁ。)


2010-11-20 (Sat): Python と Unicode

今更、であるが、Python 上の Unicode の話。

Python 3 では

Python 3 (最新版は 3.1.2) になって、Unicode がディフォルトとなった。 いや、その前に、'str' object, 'unicode' object だったものが、'str' object に統合され、新たに 'bytes object' が加わったというべきか。 で、'str' object の 'character set' が Unicode となった、と。(多分) つまり、
Python-2.6.6:
>>> line = 'aaa'
>>> type(line)
<type 'str'>
>>> line = u'aaa'
>>> type(line)
<type 'unicode'>
>>> line = u'日本語'
>>> line
u'\u65e5\u672c\u8a9e'  
>>> print line
日本語    
>>> len(line)
3    
    
## 番外 (使うな、危険)
>>> line = '日本語'                      # 実はこうもできる(こともある。)
>>> line
'\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e'  # 既に utf-8 になっている
>>> print line
日本語    
>>> len(line)
9 
Python-3.1.2:
>>> line = 'aaa'
>>> type(line)
<class 'str'>
>>> line = '日本語'  # u'xxxx' としては間違い
>>> line
'日本語'            # '\u65e5\u672c\u8a9e' としてくれた方が
                    # 「教育的」だったかも。
>>> type(line)
<class 'str'>
>>> line = '\u65e5\u672c\u8a9e'  # こうもできるが……
>>> line
'日本語'
>>> len(line)
3
>>> aaa = '\u0061\u0061\u0061'   
>>> aaa            # *1)内部表現は本当にこうなってる?
'aaa'    
>>> data = b'aaa'
>>> type(data)
<class 'bytes'>
>>> data
b'aaa'
>>> data = b'日本語'     # これは不可。
  File "", line 1
SyntaxError: bytes can only contain ASCII literal characters.
ということで、Python 3 では、'str' (string) オブジェクトの内部表現は常に Unicode という事。

あしたのために(その 1)

さて、Python の string は、Unicode と決った訣だが、 例えばこれをファイルに落してやるためには、encode してやらなければならない。日本語なら JIS 文字セットを、EUC、IS0-2022-jp, Shift-JIS にするなど。 Unicode では、これを UTF-8、UTF-16 等でやる。 で、ここでちょっと乱暴な決め付けをやる……つまり、UTF-8 一本で行こう、 ということ。

UTF-8 については、 Joel さんの素晴しい要約が有る。(日本語版が見付からないのが残念。) 全体像はそっちを見て頂くとして、 ここでは「これだけノート」を書き写しておく。

Hex Min    Hex Max    Byte Sequence
0000 0000  0000 007F  0vvv vvvv
0000 0080  0000 07FF  110v vvvv   10vv vvvv
0000 0600  0000 FFFF  1110 vvvv   10vv vvvv  10vv vvvv
0001 0000  001F FFFF  1111 0vvv   10vv vvvv  10vv vvvv  10vv vvvv
これは次のようにして使う。例えば、'日' ならば、 U+65E5 だから、上の 3 行目を使う。0x65E5 を binary で書くと、
0110 0101 1110 0101
だから、
1110 0110 1001 0111 1010 0101
 E    6    9    7    A    5     
となる訣。(太字は表からの固定パターン)

これはもう、素晴しい、としか言いようがない。ASCII はそのままになるし、 バイトオーダ (big endian か little endian か) に悩まなくて済むし、コード長が 3 バイト以上になる文字にも自然に拡張できている。(ただ、nibble が分割されるので人間様には少々解り難いという嫌いがあり、その面では UTF-16 には負けていると言えるが、しかし、こちらはバイトオーダがややこしいし、 何よりコード長が 2 バイトを超える文字については絶望的……) Joel さんによると、これ(UTF-8) は Ken Tompson (Unix の発明者)のアイディアらしいが、さすが、である。

Default Encoding

で、今や、自分の書く文書は全て UTF-8 だし、アプリケーションも その encoding にして使っている。Python 2/3 でも、UTF-8 対応になっているようで全く問題なく使える…… と思っていたが、それはどうも、UTF-8 encoding に設定した Terminal (Terminal.app, MLterm, Eterm) の上で Python を使っているから、に過ぎないようだ。

例えば、息子の使っている Windows 上の IDLE では、CP932 などというややこしいものを使っている。 (「負の遺産(Shift-JIS)」を何が何でも残したい、という事か。) しかも、それを変更する方法が見付からなかった。(まあ、それでも、 それを一貫して用いれば、encoding など意識する必要など無いのだろうが。)

で、ちょっと試してみて、の結論。

まず、明示的に encoding を指定する。

>>> line
'日本語'
>>> fp = open("nihongo.txt", "w", encoding="utf-8")
>>> fp.write(line)
3
>>> fp.close()
>>> fp = open("nihongo.txt", encoding="utf-8")
>>> line2 = fp.read()
>>> line2
'日本語' 
>>> fp.close()
>>> fp = open("nihongo.txt")
>>> fp.encoding   # MacOS の IDLE は、ASCII ('C') が default encoding
'US-ASCII'                      
>>> line2=fp.read()
Traceback (most recent call last):
  File "<pyshell#68>", line 1, in <module>
    line2=fp.read()
  File .....
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 \
    in position 0: .... 
これは、常に encoding を指定してやる必要があるので、あまりお勧めではない。

次に default encoding を使う方法。 これはどうも、環境変数 ('LANG' ではなく)LC_ALL を反映しているらしい。 なので export LC_ALL=UTF-8 とやる(UTF-8 は大文字。) そうしておいて、Python を起動するか、 open -a IDLE として IDLE を起動すれば OK。 しかし、Windows の IDLE などはこれを設定する方法がない。その場合は、 os.environ['LC_ALL'] = 'UTF-8' としてやれば良い。 (この場合も 'utf-8' ではダメ。)

>>> import os
>>> os.environ['LC_ALL']
'C'
>>> fp = open("nihongo.txt")
>>> fp.encoding
'US-ASCII'
>>> fp.close()
>>> os.environ['LC_ALL'] = 'UTF-8'
>>> fp = open("nihongo.txt")
>>> fp.encoding
'UTF-8'
>>> fp.read()
'日本語'
>>> fp.close()
>>> os.environ['LC_ALL'] = 'C'
>>> fp = open("nihongo.txt")
>>> fp.read()
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    fp.read()
  File .....
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 \
    in position 0: .....
>>> 

2010-11-06 (Sat): ThinkPad あれこれ

フリーズ

Kernel のアップデートが無いので、当然かも知れないが、 例の「Ubuntu-10.10 でスリープに失敗する」はまだ続いている。 こちらに帰ってくるとあまり頻繁には使わないのだが、 それでもあれから三回は起きた。一度はそれが起きるところを見届けた。 AC アダプタを継いだまま、蓋をし、それからアダプタを外すと、 三日月マークの点滅が始まる。そこまでは良いのだが、それが永遠に続く。 で、これには再現性が有る。

あと、[Fn] + F4 で、スリープしなくなっている事に気がついた。 どうも上と関連した不具合らしい。

これはちょっとつらいな、何とかせねば、と焦るものの、 神頼み(アップデート待ち)しか思いつかない。 で、ダメもとで kernel (2.6.35-22) を一つ前の (2.6.32-25) に戻してみた。といっても GRUB で、それを選ぶだけなのだが、なにしろ 10.04 のカーネルなので、そもそも上手く起動するのかさえ不安。しかし、 案ずるより産むが易しで、あっさり起動し、しかも上記の問題が解消できた。

Battery Broken

で、頻繁にリブートするのだが、その後最初にログインした時に "Battery may be broken" と言われるようになった。 「容量が 47 % くらいに落ちているから」らしい。まだ、2 年にしかならないのに、もう寿命なんだろうか。 そういえば、このところ不意にシャットダウンする事が多くなっていた。 (電池残量の表示が全く当てにならない、という事。) こりゃもう、サーバにするにも電池を買い換える必要があるなぁ。

Wicd

Ubuntu で繋りにくい AP が有る、というのが長らくの懸案であったが、 10.10 でも改善されていないようだ。先月の後半は日本へ出張したので、 空港を初め色々なところでアクセスを試みたが、一旦 Windose で接続してからでないと、ダメというところがまだかなり有った。 つまり、以前と同じという事。殆んどいつも "Obtaining IP address..." で止まるので、DHCP サーバを選り好みしていると思われる。

2010-10-27 (Wed): Ubuntu-10.10 フリーズ

下で、「Sleep 回りに問題無さそう」などと書いたが、これは大間違いだった。

まず、Ubuntu から Restart しようとすると、立ち上げ画面(GRUB の前の、ThinkPad と大きく表示される画面)で、フリーズする事がある。 パワースイッチで一旦切るしかない。 この現象は以前からも有ったが、頻度が上がったような気がする。 そう思うのは、このところ頻繁に Windows XP と Ubuntu の切り替えているせいか。ちなみに XP からリスタートする場合は、これが無い。

次に、こっちがもっと深刻だが、sleep に入らない事がある。 スリープさせたつもりでバッグに入れて、次に取り出そうとすると、 触れない程熱くなっている。三日月マークが点滅していて、 画面はブランク、という状態。これもパワースイッチを触るしかない。 10.10 にアップグレードしてから、4 日の間に 4 回起きたから、ったく冗談ではないぞ、という感じ。

X200 で l0.04 LTS をお使いの方は、 しばらくアップグレードを見合せる事をお勧めする。

自分も、(簡単に)できるものなら、10.04 に戻りたい……


2010-10-23 (Sat): Ubuntu-10.10

帰宅(帰国)したら、留守宅サーバ (www.otacky.jp, ThinkPad X22) を X200 で置き換える予定であった。 が、今見てみると、なんと、一年間の連続運転を達成している!
fukuda@falcon:~% uptime
 13:04:15 up 375 days,  5:22,  2 users,  load average: 0.07, 0.02, 0.00 
停電で落ちたのが約一年前で、その後は Ethernet chip が過熱した際も、停止しなかったようだ。 横のものを縦にしただけで、その後、3ヶ月持ち堪えている訣か。 となると、態々 X200 で置き換えるのが惜しいような気がしてきた……。

X200 には、Ubuntu-10.04 LTS が載っている。もう、OS 弄りはやめてこれを使い続けよう(なんたって LTS だし)なんて殊勝な決心は、 サーバにしない、と決めた途端にゆらぎ始めた。"10.10" というバージョンもなんだか切りが良いし。

Ubuntu 10.10
"Ubuntu 10.10 on TP X200"
インストールは例によって簡単。"Update Manager" から "Upgrade" をクリックするだけ。ただ、ダウンロードにやたら時間がかかった (1時間20分程)。 とは言え、考えてみたら、OS のディストリビューションを一揃いダウンロードしている訣で、 1 時間強なら「出来すぎ」と言うべきか。

例によって手早く(いい加減に?)動作チェック。

Madwifi は相変わらず頭痛の種である。カーネルを新しくする度に、 sudo modprobe ath_pciとする必要がある。 時には、madwifi-hal の build が必要。 今回は何とそもそも madwifi がコンパイルできなかった。 このサイトの patch~/build/madwifi-hal-0.10.5.6-r4126-20100324/ath/if_ath.c にあてたら、うまくコンパイルでき、インストールもできた。 (もう C なんて忘れても大丈夫、と思っていたけど、そうでもないか。) 我が家(留守宅)のイントラネット (11g) では 20 Mbps くらい出ている。(直前のデータが無いので、直接の比較はできないが、 少し速くなったような気がする。)

これで Wicd(の WiFi)も動くようになったが、既知の問題(稀に IP アドレスが取れない事がある)については、 何しろ「場所による」ので確認するにはしばらくかかる。


2010-10-10 (Sat): Namazu の復活ならず

サイト内全文検索を Google の「カスタム検索」に変えてしばらく経つが、 ページの変更が即反映されないのは措くにしても、 検索がファイルごとになるのが不満だった。 で、namazu-2.0.20 をまた試してみた。

この自称「メモサイト」が珍しく役に立って、比較的すんなりインストールできた。 また mknmz は UTF-8 のウェブページのインデックスをとりあえず作ってくれたようだ。 (ただ、NMZ.head.ja の控えがどこかに行ってゐて、 他のページと体裁を似せるのにちょっと試行錯誤した。)

しかし、検索結果の、 要約の部分に検索キーワードが表示されない事がある、 という問題点はそのままのようで、少々がっかり。 というか、どうもこれ、全く関係ない箇所を指し示している、という事らしく、 ターミナルの coding を ja_JP.eucJP としないといけない、 という事とも相俟って 、ちょっと何だかなあ、となった。

結局、Google カスタムサーチに留まる事にした。そのページ(ファイル)に行っ てから、さらに Command-F でサーチするってのも癪だが、それでも今の namazu よりは早い、と思う。


2010-10-09 (Sat): オタク稼業は開店休業

Time Machine に窮地を救われる

実際使っているのと同じ容量の HDD を注ぎ込んでいるのに、そこからブートできないなんて、 とか、しかも役に立たつ場面てそんなにないよな、などと色々贅沢な不満を漏らしていた Time Machine であるが、このところちょくちょくお世話になっている。 (要は、私が続けてドジを踏んだ、という事。) 中でも、「TM が無かったらアウトだったなぁ」と思ったのは、 ウェブサイトのあるイメージを上書きしてしまって、 一週間以上も経って気付いた時(従って、控えはどこにも無い)。 まさか、kokuzoumushi.png なんてファイルが既に存在していようとは……。 しかし、Preview から上書きしようとした時に、なんで警告されなかったのかな。 単に見過しただけか?

開発環境 — 宝の持ち腐れ

Django が 1.2.3 になった。リリースは大分前だが、忘れていて、 今日やっと Macport で新しくなった。 今のところ、開発中のウェブシステムには問題無さそう。これには、つまり Django の互換性の高さには、いつも感心させられる。(Zope も最近は良くなったんだろうか。)

他にも Macport で大量に upgrade されたが、 No Error。こっちも大したもんだ。でも、何時間もかかるのは何とかならんか、と思う。 gcc-4.4 のコンパイルがやたら時間を喰っているのだが、しかし、おかげで gcc が 4.4.5 となった。もう Ubuntu を追い抜いたぞ。 とは言え、この先自分が gcc を使う事、というか、C や C++ でプログラムをする事はもう無いだろうという気がする。 すこし前に、小さなプログラムを書こうとしたが、for (i = 0; i < max; i++) という構文を暫く思い出せなかった*^^*。私は while より for をよく使っていたので、かなりショックであった。 しかし、些か負け惜しみの嫌いはあるが、 Python でできない事は無いようだからもういいや、とも思った。 (その Python も with などは未だに使い熟せてないのであるが。)

宝の持ち腐れと言えば、Numpy。これも Macport でしっかり ATLAS ごとアップデートしてくれるのは嬉しいのであるが、あまり使っていない。 勿論 gnuplot.py を通して、とか、普段の数値計算では結構お世話になっているのだが、 せっかくの ATLAS が活用できていない。(かつては、Linux の上でも、こいつのコンパイル・インストールは一仕事だった。) 要は、計算時間を気にするような大きい行列の計算をやる事が無い。(そもそも、Numpy で行列計算をした事が無いような気もするが。) 当初意気込んだ FDTD は、この先やる事があるにしても、 きっと市販のツールに頼るのだろうな。

そう言えば、Xcode も 3.2.4 となった。こちらも同じ意味で、「そのうち……」 と思いつつ、実際には眺めているだけ、になりそう。FM 放送を録音するツールを、これで何とか動くようにしようとした事もあったが、 結局歯が立たなかった。そもそも Project という概念に慣れる事ができない。 iPhone のアプリケーションを作ってみる、なんて、楽しそうなんだがなあ。 まあ、老後の楽しみに取っておくか。

eblook

こちらは開発環境ではないが、いつかは触ってみよう、と思いつつ日が経っている。 で、Macport でアップデートされる度に思い出しては、なんとかしなくては、と。 なんだか、矢鱈とややこしい事をして、辞書(特に OALD)の見栄えに凝ってはみたものの、元の eblook が改良されたなら、 そっちの方が良いだろうな、と思っている訣。 しかし、これも他へポートしようとか、人に勧めようというのでなければ、 今のままでも然程問題無い……。という事で微温湯から出られなくなっている図、 だろうか。

Linux とも御無沙汰

などという事も理由の一つなんだろうが、最近 Linux にあまりアクセスしなくなった。ThinkPad X200 でさえ、持って歩くときでもなければ Linux (Ubuntu-10.04LTS) をブートする事は滅多にない。 そのせいか、偶に使おうとすると、色々と裏切られる。 最近の「なんだかなあ」は、ビデオ出力をプロジェクタに切り替えようとしたら、 モニタにもプロジェクタにも何も出なくなってしまった事。 いや、プロジェクタはちと「やばい」画面が表示されたままになっていて、 余計恥ずかしい思いをした。

もう一つは、何故か hibernate するようになった事。Linux の hibernate はこれまでうまく行った事が無かったので、当然のように sleep (suspend) させる設定にしているのだが、それを無視して hibernate してしまう。 最初は勝手に落ちるようになってしまったと思って非常に焦った。 が、パワーボタンを押してブートしてみると、hibernate から起きてきているようだ。 リブートする時と同様 Grub で OS を選んだ後、いきなり Desktop 画面が表われるので、これは何故か徳した気分になる。 ひょっとすると、Ubuntu も XP も hibernate した状態にしておいて、 Grub で切り替えるようにすると、これは相当便利だし、 切り替え自体がかなり速くなるのではないか。 と思うが、まだ試していない。


2010-09-10(Sat): MLterm-3

Ubuntu を 10.04.1 にアップグレードしても、結局 MLterm 2.9.4 の問題(Luxi Mono が bold になる)は解消しなかった。

この問題のせいで、少し前から Emacs の Term モードを使っていたけど、使い勝手がどうも今一。Ls でファイル名を multi column 表示させたら列が揃わない、なんてのには慣れてきたが、 レスポンスが遅い事や、日本語入力の時に char/line モードの切り替えをしないといけない、というのが結構煩わしい。 もう少し我慢してると慣れるのかも知れないが。 ちなみに普段は char モード一本。C-p や C-r が Zsh と全く同様に使えないと、Terminal モードの意味がない、と思っている。

で、最後のあがき、という事で、MLterm-2.9.4 で .fonts.conf を新旧何種類か試してみた。 が、やっぱりダメ。

ふと思いついて、MLterm-3.0.1 もやってみたが、これも駄目だった。(つまり Luxi Mono が bold になってしまう。) で、何だか、当てずっぽうだが、フォントを Lucida Fax (改) にしてみた。すると、文字間隔などは OK だが、窓の幅がスクリーン一杯になってしまう。 で、その左半分だけを使っている、というイメージ。

Term on Ubuntu's Emacs-23.2
"Ubuntu 上の MLterm-3.0.1"
うーん、やっぱりだめか、とあきらめかけたが、 「当てずっぽうついで」に、~/.mlterm/main で、 screen_width_ratio を 60 % に設定にしてみたら、これが大正解。 左のような表示が得られる。(gnome-screenshot は相変わらず window border (窓枠?)を付けてくれない……)

とまれ、インストールメモを残しておく。

まず、ソースは sourceforge から取ってくる。

fukuda@lark:~/build/mlterm-3.0.1%./configure  \
    --with-type-engines=xft \   <<< これは必須
    --enable-scim --enable-uim
..... 
Mlterm was configured as follows

Installation path prefix      : /usr/local
Build shared libraries        : yes
...... 
Type engines                  : xft
DnD                           : yes
Input Methods                 : XIM kbd  <<< scim も uim もできていない?
Scrollbars                    : simple sample extra
fukuda@lark:~/build/mlterm-3.0.1% make && sudo make install 

設定ファイルの形式がかなり変っている。まず、.mlterm/main。 オリジナルは全部の行がコメントアウトであるが、そこから違っているところだけ……

screen_width_ratio = 60    <<< ここが今回の肝
termtype = mlterm
ENCODING = UTF-8
fontsize = 18
use_variable_column_width = true
type_engine = xft
use_anti_alias = true
line_space = 4
また、.mterm/vaafont
ISO8859_1=Lucida Fax
ISO10646_UCS4_1=Lucida Fax 
ISO10646_UCS4_1_BIWIDTH=Hiragino Mincho Pro
とした。(これも、形式が大幅に変っている。)

残った課題:

「▽」が「とうふ」になるのでは、そもそも SKK による inline 変換はできない訣で、ひょっとしたらこれは根深いかも。 MLterm への日本語入力は以前から問題が多かったが、 まだまだ悩まされそうな予感がする。

が、しかし、MLterm-2.9.x や、Emacs/Term に比べて確かに使い勝手が良いので(軽い、綺麗、とりあえず日本語入力可)、 こちらを使って行こうと思う。


2010-09-08 (Wed): 知らぬまの Upgrade

Ubuntu-10.04.1 がアナウンスされてからもう随分経つのに、 一向にネットワークインストールできるようにならない……と思っていたが、本日 Windose へ戻る用事が有って、その後 Ubuntu をリブートしたら、なんと、 Grub の選択肢に、ずらりと 10.04.1 のカーネルが並んでいる……。 なあんだ、このところやたら Upgrade Manager でのアップデートが多いなと思っていたが、 何の事はない、実はあれが 10.04.1 へのバージョンアップだったんだ。 (「神様に捨てられた」なんて、ちょっと大袈裟すぎました。でも、そう言えば、Ubuntu って現在の Revision を確認する方法が無いような気がする。)

これで目出度し目出度し……なんて訣は勿論なくて、むしろがっかり、かも。 というのは、その上で、Luxi Mono が Bold になってしまう問題は "10.04.1" でも結局直らなかった、という事になるから。

あと、WiCD の「今一」もそのまま。 再起動した時は完全自動で AP に接続してくれるのに、 Sleep から起きた時は散々待たせたあげく "Wrong Password" だとか言う。 この現象は、二種類の AP で起きるから、やはり WiCD のバグだろう。


2010-08-29 (Sun): 捨てる神有れば……

Term on Ubuntu's Emacs-23.2
"Ubuntu Emacs-23.2 での Term"
Ubuntu (10.04) の mlterm で、Luxi Mono がどうしても Bold で表示されてしまう。一時、.fonts.conf を弄って直っていただけに、 Ubuntu の自動アップデートで、また Bold になってしまったのが余計悔しい……。 多分 xfs がどうにかなったのだろう。

そんなところに、Ubuntu 10.04.1 が出た、という知らせ。 ひょっとして上の問題に進展が有るのではないか、と期待しているのだが、 Update Manager がなかなか「upgrade できるよ」と言ってくれない。 じりじりするが、もうネットワーク越しの自動アップデートの「お手軽さ」 に慣れてしまって、今さら ISO イメージを落して、なんてやってられない。

が、ここにきて「もう MLTerm は無くても良いかも」と思える出来事が……。 MacOS X では Emacs-23.2 の Term は色々問題が有って、それ一本で、とは行かない。 で、Ubuntu の Emacs/Term でも「どうせ」と思っていたが、やってみると

となった。つまり、完璧とはいかないが、Emacs/Term がなんとか普通に使えさう、とい う事。他の問題も、 と、かなり順調なので、C-x 5 2 でフレームを二つ作って、そのうちの一つは、 普段から Term モードにしている。なかなか具合が良い。

しかし、Emacs-22.x の頃は MacOS X の上での方が Emacs の完成度が高かったのに、また「二級市民」になってしまったような気がする。 お願いしますよ、Stallman さん。


2010-08-14 (Sat): BasiliskII 讃

BasiliskII New Icon
今だに、BasiliskII を、というか、その上の MacOS 8.1、さらにその上の HyperCard 2.3 を使っている。 かつては、BBEdit や、Claris Works、はたまた Netscape 等も動かせていたのだが、 いつの頃からか、Ethernet (EtherTalk) が使えなくなってそれらも御無沙汰になってしまった。(EtherTap とかがホスト OS 側(Linux) に必要だった記憶が有る……) 特に、MacOS に出戻ってからは、「古い Mac アプリ」にノスタルジアを感じる度合いも低くなって、 それらを「たまに起動してみる」なんて事も無くなった。 今では、HyperCard 専用機といった趣である。

それに勝るアプリケーションが無いから、なのか、 つぎ込んだ時間と労力が大きすぎるから、なのか良く解らないが、とにかく HyperCard である。 とはいえ「行き止まり感」はぬぐえず、PythonCard や Revolution への移行は、何度もトライしたが、毎度「そのうち立ち消え」になった。 日本語が使えない、とか、本当に紙の上に書く感じが出ていない、 とか色々理由が有ったように思うが、結局、 現在の自作 HC アプリケーション達に満足していて、 それらを別の(HC 以外の)プラットフォームで再現できそうもない、 というのが一番大きかったのではないか。

しかも、幸いな事に BasiliskII がそこそこ安定に動いてくれるし、CPU の進歩の御陰で、Quadra 700 で Native で動かしている時より断然早い。 ひょっとすると、Q700 で HC を立ち上げるよりも、MacPro で、BasiliskII を立ち上げ、さらに HC を立ち上げる方が早いのではないか、と思われる。

しかし、HC 専用機としても、段々機能が落ちてきているのは否定できない。 何しろ EtherTalk が動かないので、 アプリケーションやドライバの再インストールができないのだから、 これはどうしようもない。 なので、例えば、バックアップを取ったり、他のマシンと Sync を取ったりするのは、Unix フォルダではなく、HDD image そのものだったりする。

BasiliskII そのものの開発も、Bauer さんのところでは疾うに終了(2001 年の 0.9-1)、その後も開発が続いていた JIT バージョンも 2005 年の 1.0 で止まっていた。(これも、「何とか移行せねば」と焦っていた理由の一つ。) ところが、最近、新しいバージョンを見付けた。まず 2009-08-03 版 を見付けて試してみた。 デスクトップにやたらファイルのアイコンが出来て気味悪かったが、 他にはなにも問題無かった……。 で、そのあたりのブログを眺めていたら、もっと新しいのを見つけた(2009-10-04 版)。

BasiliskII New Icon

これがまた非常に具合が良い。(アイコンがちとリアルすぎる気もするが。) 諦めていた音聲がまともになった。Victoria さんの喋る英語が聞き取れる……感激。(勿論、Snow Leopard の Vicki さんの方が遥かに自然ではあるが。)何より、とても安定している。 以前の JIT バージョンは、時折画面が完全にフリーズしたり、 カーソルが消えてしまうという問題が有ったが、この 2009-10-04 版は、今のところそれが無い。Quadra (MacPro) では、一月あまり、 Mac mini では、一週間くらい使っているが、いずれも問題無く推移している。 あ、mini の方は、BasiliskII を開いたまま、モニタを交換したら、 カーソルが、guest OS の menu bar の下側にくっついたまま、上下に動かない、 という問題が出た。 しかしこれは、そんなモニタ交換自体が無茶だったと言うべきか。

ふーむ、これでまた、HyperCard の移行問題は先送りとなった。 ただ、今回 HyperNext というプロジェクトを見付けた。現在の最新版は起動もできないが、近々 MacOS X の Intel native 版や、Linux 版も近々出るらしい。ひょっとしたら、案外すんなり移行できるかも知れない。 (2007 年で開発が止っている、という可能性も大だが。)

2010-08-21 (Sat): HyperNext Studio は、いきなりクラッシュしたが、HyperNext Studio の方は起動はできた。が、完成度がかなり低い感じ。そもそも、 フィールドに書き込めない……。これも望み薄か。

2010-08-07 (Sat): Emacs-23.2 (その六)— もういいか……

このところ Emacs を弄る事が減ってきた。 問題が全て解消された訣ではないのだが、 飽きてきたのか、そこそこ満足しているからか、もう歯が立たないからか (多分全部)。 道具にあまり凝るのもアホらしいので、正しい大人の判断であると言えるが、 こんな風に「何となく軟着陸」した時は、記録を残す事が少なくて、 後で困る事が多い。なので、とりあえずの「まとめ」。

フォント

我「Lucida Fax 改」は、「『役物』の左右の空白を増やして、 文字幅を変えるだけ」に留めるつもりだったのだが、 とうとう、グリフの「形」にまで手をつけてしまった。 と言っても、"i" と "j" の「点」を少し大きくして上に上げて、 "·" (interpunct/middot, U+00b7) を付け加えただけ。 同じ事を、regular のみならず demibold についてもやった。 Fontforge を使えば、どちらも簡単。 また、折角の interpunct を lookup で使うには、 oald7-pkg.el で、
;;    ("ha124" "・")
;;    ("ha124" "-")
;;    ("ha124" "")
    ("ha124" "·")

これだけの事で、それまでの「Lucida Fax 改」の「違和感」がほぼ解消できた。つまり Emacs の上で、 のようだったものが、 となった。もう完璧!:-p。

何より、lookup での syllabification がそれらしくなって嬉しい。 Syllabification の表示はやめてしまおう、と思った事もあるが、 最新の iWorks の Pages が hyphenation をやるので、俄に必要を感じるようになった。 (実際に辞書で確かめた事はまだ数える程だが。)

残る課題は、Ubuntu では Lucida Fax の italic が表示されない事(実はこれは結構イタい)くらいか。 あと、できれば font-family の名前を変えたいが、 これはどうしたらよいか見当もつかない。

Terminal

Emacs での表示が改善されるにつけ、Snow Leopard での Terminal.app、 Ubuntu での LMterm の表示がますます気になるところ。

とりわけ MLterm は、Luxi Mono が常に bold になるという宿痾がいつまでたっても直らない。実は、~/.fonts.conf を弄る事で、一旦解消できたのに、Ubutu をアップデートしたら、 また元の木阿弥となってしまった。それで余計に違和感が募るのかも。

で、Emacs 上で terminal を使えないか、となった。terminal-emulator とか、 eshell なども触ってみたが、結局 term + zsh に落ち着いた。 ちょっと試行錯誤した結果、zsh は 4.3.10 を使い(port の zsh-devel でも、一からコンパイルしたものでも可)、 .zshrc か .zshenv に

export TERM=eterm-color 
としておけば、従来の問題は殆んど解消できていて、 ただ、まだ問題は有って という事で、単純な作業をいくつかこなす、といった用途以外には、 依然あまり期待できないようだ。

2010-07-17 (Sat): 留守宅サーバ

少し前に、留守宅のサーバ(ThinkPad X22)がおかしくなった。 完全に止まる、というのではなく、レスポンスが妙に遅い。 よく調べてみたら、受信のスループットは OK なのに、 送信がたまにしかパケットが出て行ってない(20 kbps :-p)。 その後の故障探求も、リモートでやるのでなかなか埒が明かなかったが、どうも、 Ethernet H/W の問題らしい事が解った。 家人に見てもらうと、Ethernet ポートのあたりがかなり熱いとの事。 で、かなりあてずっぽうだが、ThinkPad の電池を外し、筐体を半開きにして(屏風のように)、立てて置いてもらった。 なんとこの当てずっぽうが当って、動作が復旧した。 いずれにしても、次の帰国まではこれ以上の手は打てないので、 しばらくはこのままとする事にした。

たまたま、帰国する機会ができて、早速見てみたが、やはり Ethernet H/W の過熱が原因らしい。どうも、ファンが壊れたようだ。 しかしこの ThinkPad は、もう 7 年選手なので、修理するのは却って勿体無い。

で、持参していた、X200 で置き換えようと決心。現行の HTTP サーバ、ML サーバに加えて、DHCP/DNS サーバも載っけようと決めて、 さっそく取りかかった。まず、一番難航が予想される ML サーバから。 で、いきなり躓く…… Synaptic を使って、Mailman や、Postfix のインストールは順調に終ったが、そもそも Mailman を動かすようにできない。Ubuntu のインストールガイドはかなり親切なのだが、 そのとおりやってもダメ。とうとう時間切れ。

やむなく、このままあと数ヶ月頑張ってもらう事にした。 だが、屏風のように立てていたのでは、LCD のバックライトが点きっぱなしになる(X11 は立ち上げてない)ので、 完全に閉じて、壁に立てかけておく事にした。また、電池を元に戻した。 これらは放熱といふ観点からは確実に不利になっているが、 バックライトの消費電力減と差引きしてどうなるかは未詳。 これまでの一週間程の観察だと何とか無事動いているようだが。

2010-07-25 (Sun): 今のところ、レスポンスの劣化もなく、問題無く動いている。 筐体温度は 50 °C 以下で推移してゐる。(Ethernet のあたりの温度を反映してないかも知れないが。)
fukuda@falcon:~% cat /proc/acpi/thermal_zone/THM0/temperature  
temperature:             49 C
もうちょっと保ってくれると良いのだけど、日本の夏は暑いからなあ。

2010-07-03 (Sat): iPhone アップグレード

少し前から iTunes がしきりに iPhone OS (iOS というのか?)を 4.0 に上げろと勧めてくれていたが、 データを別途バックアップから入れ直す必要がある、 という(未確認)情報を得て、しばらく逡巡していた。一噌のこと 4.0.1 が出るまで待っても良いかな、とも。 が、或る日、それまで無視していた iTunes の「アップグレードするか?」に、うっかり OK を出してしまい、 結局アップグレードすることに。

何日間かの逡巡が怪我の功名だったのか、データが失われる、なんて事もなく、 無事アップグレードされたようだ。思ったより時間がかからなかったし、 「マルチタスク」もちゃんと動く。

で、何が嬉しいか……。 もともと「使い倒している」とは言えない事もあり、不満も大してなかったので、 新版にしても、びっくりするようなメリットは無い。 が、そこここで、マイナーチェンジというか改良が施されている。 (もとからそうだったぜえ、という可能性は大いにあるが。)

たしかに些細ではある……

2010-06-19 (Sat): Emacs-23.2 (その五)— もう一息

「Lucida Fax 改」の方が良いぞ!

私の思い付くような事は大抵だれかが先にやっているものらしい(当り前)。 で、プログラミングにもプロポーショナルフォントを使おう、という人(サイト) は既に結構居るようだ。例えば Slashdot のこの記事等。 何でも、行が短かくなるので、14% 速く読めるのだとか。 ふーん、そういうメリットも有ったのか。

が、しかし、そこで使っている Lucida Grande も悪くは無いが、 やっぱり我 Lucida Fax(改)の方が良いと思うなぁ。(Lucida Grande をディフォルトフォントにすると、Emacs-23.2 が何故か全画面モードになるので、Lucida Sans と比較した。)

Lucida Sans

Fig.1 Lucida Sans による Python/Elisp スクリプト

 
Lucida Grande

Fig.2 Lucida Fax(改)による Python/Elisp スクリプト

しかも、我 Lucida Fax(改)は、C のソースや、テキストにも適しているんだから、こっちの方が断然偉いと思う:-p。

Line-space と Minibuffer

「万能フォント」が徐々に完成に近付いてくると、宿痾?の「minibuffer の文字欠け」がますます気になってきた。 で、色々当てずっぽうの対策を打ってみた。.emacs.d/init.el, から始めて、 frame.el 他の Lisp ファイル、あげくは xdisp.c なんかも触ってみたが、 所詮は当てずっぽうなのでどうにもならず。 (Mini-)window の高さを弄るのが、こんなに大変だとは。

で、Sakito さんのところで質問してみた。さっそくお返事を頂けて、 minibuffer-setup-hook で、line-space をディフォルトにすれば良い筈、との事。 なかなか時間が取れなくて試せなかったが

(add-hook 'minibuffer-setup-hook
  (function (lambda ()
	       (setq line-spacing 0)))) 
とやってみたら、これが大正解。ちゃんと、表示されるようになった。 が、しかし、minibuffer がプロンプトを出し、 それに応じて入力しているうちは大丈夫なのだが、echo buffer として働く時は、やはり下部が欠けてしまう。しかも、minibuffer のときのように、hook を仕掛ける方法が解らない。

またまた、Sakito さんに質問したら、line-spacing を、global で変更するのではなく、find-file-hook 等で変更してみたら?との御示唆。やってみたら、やはり正解で、 Minibuffer (echo area 時)や Init 画面他全て line-spacing 無しで表示され、読み込んだファイルは所望の line-spacing で表示される。つまり、問題は解消。

が、これにもやっぱり問題が……。Lookup や Wanderlust が表示する画面が line-spacing 無しで表示される。 これを何とかするには、****-hook という変数を探し出して、悉く上記のような設定をしないといけない、という事らしい。 うーむ、これは大変だ。

とりあえず、これまで通り line-spacing を global で "6" に定義し、上記の minibuffer-setup-hook のみ "0" に設定する事にした。

それにしても、この問題の解決は「minibuffer の物理的な高さを line-spacing を考慮して決める」とするのが王道だと思うのだが。 実際表示が二行に渡るような場合は、行の下に十分な余白が有るんだから。 が、しかし、24.0.50 (CVS の trunk) でも、そのようにはなってない。 暫くは望み薄かな?


2010-05-29 (Sat): Emacs-23.2 (その四)— フォントに嵌る

とうとうフォントを弄りはじめた。これは font-lock を弄るのと同様、結構嵌ります。(「ついつい熱中してまう」と、 「なかなか上手くいかない」という両方の意味で。) まあ、泥縄・場当たりで始めるから……、という面もあるが、

さて、フォントを弄れる、となると、目標は、Journal (英文), Python script, HTML document (日本語が主) で、 それぞれ見易い表示を得たいという事だった。 ただ、それは思った程単純ではなかったが。
  1. 空白と '-' は少し広げて '_' や '*' の幅に合わせる事にした。 '-' を広げる事で (→ 1024)、すべての用途で見栄えが大幅に改善され、 不味い事は何もないように見える。(lookup の '·' を '-' で置き換えていたので、これだけ少々ごまかしが効き難くなったが。) Lucida Grande (MacOS のシステムフォント)が、同じ方針を採用しているらしい……宜なるかな。
  2. 一方、空白の方はこうする事で、 Journal の各行の左端が揃えられる。が、 英文の単語の間が少し空きすぎる。Python-mode でも、字下げがより明確になるが、 演算子の両脇に空白を入れている場合は、むしろ狭い方が違和感が少ない。 しかし、勿論字下げの方が大事。(→ 1011)
  3. '.', ';', ':', ',' , '!' なども悩ましいところだが、これも text ならば元のままが最も見易い。が、やはり Lisp-mode のコメント(';') が非常に詰ったものになるので、 少しだけ広げる事にした。(→ 789)
  4. Python 他のプログラム言語で多用する '[]', '()' などがこの幅では見難いので、(→ 1024) とした。Text では然程表われない。
  5. 一番悩やんだのは、['] (single quote) と ["] (double quote)。 もとのままでは、例えば、["'"] (" + ' + ") と ['"'](' + " + ') が区別がつかない。(等幅なら ["'"] ['"'] となって一目瞭然なのだが……) Python のスクリプトでこれは辛い(というか致命的)。が一方、['] は text では、apostrophe として使われる事が多いので、 これの文字幅を広げると見易さが損われる……。結局、['] だけを少し広げて、 ["] と同じ幅 (789) とした。
  6. これらの操作には、FontForge.app の GUI は使わないで、 一覧表から右クリックで、'Set Width', 'Center in Width' だけを使う。 すなわち、Set Width で数値を入力して幅を広げ。その後 Center in Width で全体のパターンを中央に持ってくる。
  7. 最後に上述したように、File メニューの Generate Font... を選んでファイル名 xxxx.ttf としてセーブする。
  8. 'Font Book.app' を起動して、[+] をクリックして、 上記のファイルを選べば、登録は完了。Luxi Fax Regular が既に登録されていれば重複の警告が出るので、オリジナルの方を消す (右クリックで Delete)。
  9. 他の重みやタイプのフォントはプログラミング他では殆んど使わないのだが、 Lucida Fax demibold だけは、Journal やメイラーでも使うので、 同様に幅を弄った。 Italic 等は何もしない方が英文の表示が綺麗。(下図の lookup の「例文」を参照。)

以上、結構面倒であるが、結果はなかなのものである(下図、 クリックで拡大)。

Lucida Fax 改

Fig.1 Emacs-23.2 での 「Lucida Fax 改 + ヒラギノ明朝 ProN」

emacs-22.3 + 'Luxi Mono' + ヒラギノ明朝 ProN」 と対照してみると改善点が良く解る……。 勿論 Luxi Mono → Luxi Fax で一番大きく改善されるのは、 英文 Text の見易さであり、 一方、ここで四苦八苦したのは、スクリプティング・プログラミング 他に使用する時の Luxi Fax の難点を解消もしくは緩和したい、 という事だから、オリジナルの Lucida Fax と比べるのでなければ、然程印象的ではないかも知れない。

しかし、一番下の窓の lookup の英文(特に Italic の例文)の見易さは一目瞭然ではないかと思う。


2010-05-22 (Wed): Emacs-23.2 (その三)— Aquamacs

Emacs-23.2 (Genuine Emacs)

自宅の Mac Pro では 23.2 を本格的に使い始めて一週間になる。 頗る順調かつ快適。もうそんなに課題は残っていない……

えーと、課題はやっぱり有りますね。

Aquamacs Emacs 2.0 (Aquamacs.app)

Aquamacs Emacs

そうこうしている内に、Aquamacs が新しくなった事を知った。 (それにしても、このアイコン、可愛いらしすぎ…… :-)

旧版を弄ってみた事があるが、結局 WL などのパッケージをどう作るかが分らず、 「面白いな」で終っていた。が、今回「Emacs-23.2 準拠」を明確に打ち出している上、そのマニュアルに "Bringing some Emacs 23 behavior back" という項まである…… 早速弄ってみた。

という訣で、これはひょっとしたら「掘り出し物」かも知れない。

IPAs on Emacs-22.3
Aquamacs Emacs-2.0 の表示

が、tab や menu bar がうざったい、等という(勝手な)不満もあり、 Aquamacs で WL 他を使えるようにし、またフォントの設定に凝るべきか、 Genuine Emacs の方をさらに弄るべきか……ちょっと悩むところではある。 (どっちにしても今は時間が無いが。)


2010-05-15 (Wed): Emacs-23.2 (その二)

Email (Wanderlust)

「日常の生活に差し支えない程度に漕ぎ着けて……」 と思ったのは、とんでもなく甘かった。 日本語メールは読めるのに、送信すると文字化けする……。 しかも、ML に送り出すという大チョンボ! しかも、ちょっと体調を崩してあまり時間が取れなかった事もあるが、 解決まで二日もかかった……。(それにしても、このあたりの情報の何と少ない事か。)

結局解決策は足元にあった。 つまり、~/.emacs-custom.el の中の

(custom-set-variables
;;.......    
    '(current-language-environment "UTF-8")
)
だったものを、
(custom-set-variables
;;.......    
   '(current-language-environment "Japanese")
)
とする。 22.3 では、"UTF-8" で動いていた(かつては multipart なメールに返事する際に問題が有ったが、それも解決されていた。) しかし、23.2 ではそんな微妙な問題ではなく、「もろ」に UTF-8 で encode されたメールが出て行く……。

ただ、"Japanese" に戻すと、 ディフォルトの日本語の coding が、EUC-JP になる等の問題があるので、

(set-terminal-coding-system 'utf-8-unix) 
(set-default-coding-systems 'utf-8-unix)
(set-buffer-file-coding-system 'utf-8-unix)

とする。 以上で大体 OK となったようだ。 勿論、Wanderlust が、配下のバッファだけ、このように設定してくれれば、 それが一番スマートなんだが……。

そもそも、それに気付くのに手間どったのは、 メールのヘッダが何だかおかしくなっていた、という事もある。件のダメ ISP (san.rr.com) が "X-Authority-Analysis" などという 7 行にも渡るようなヘッダを付けてくれる一方、肝心の "Content-Type:" などが付いていない。

これは付いていないのではなくて、見えなくしてあるだけ、のようだ。 .wl

(setq mime-view-ignored-field-list '(".*Received:" ".*Path:"\
    ".*Id:" "^Replied:" "^Errors-To:" "^Lines:" "^Sender:"\
    ".*Host:" "^Xref:" "^Precedence:" "^Status:" "^X-.*:"\
    "^List-.*:" "^DKIM.*:" "^DomainKey.*" "^Reply-To:"\
    "^Delivered-To:"))
    
(setq mime-view-visible-field-list '("^X-Spambayes.*:" "^X-Face:"))

と書いて、大分すっきりした。

ついでに…… 長らく無くしたと思っていた X-Face の元 (png) ファイルが見つかった。 これまた、偶然 Online X-Face Conveter なるものも見付けて bookmark してあったので、改めて作り直してみた。 これまたすっきりした。(そもそも X-Face なんてものを解釈して表示する MUA は少ないので、いずれにせよ自己満足に過ぎないのだが。)

Font Setting (Lookup)

Lookup が問題なく起動されたのは、.emacs に

(setq lookup-package-directory "/usr/local/share/emacs/site-lisp") 
が有ったから、であった。 (やっぱり、こっちのやり方(Linux/Unix 流)の方がスマートだよなあ。) とまれ、全てが as is で動いて、略正常に表示される。

が、よく見ると、

IPAs on Emacs-22.3
Fig.1) Emacs-22.3 による各種記号と IPA

IPAs on Emacs-23.2
Fig.2) Emacs-23.2 による各種記号と IPA

23.2 になると '×' が半角になり、ギリシャ文字が全角になり、 発音記号の /ˈ/, /ɪ/ がおかしくなっている。全角半角の問題は、 多分 23.2 で utf-translate-cjk-set-unicode-range が使えなくなった事によるのだろう。つまり、JIS の 'α' ではなく、 ちゃんと Unicode の 'α' を使え、という事か。 でも、Emacs でどうやって入力するんだろ。 SKK を Unicode で使うようにすればできそうな気もするが。

あと、発音記号の方だけ何故別のフォントが呼ばれるのか分らない。 なので、強制的に Luxi Mono に戻す事もできない…… 思い余って Sakito さんが推奨していた方法に戻って、また四苦八苦した。その結果

    (when (>= emacs-major-version 23)
 (set-face-attribute 'default nil
                     :family "Luxi Mono"
                     :height 180)
 (set-fontset-font
  (frame-parameter nil 'font)
  'mule-unicode-0100-24ff
  '("Lucida Grande" . "iso10646-1"))
 (set-fontset-font
  (frame-parameter nil 'font)
  'japanese-jisx0208
  '("Hiragino Mincho ProN" . "iso10646-1"))
 (set-fontset-font
  (frame-parameter nil 'font)
  'japanese-jisx0212
  '("Hiragino Mincho ProN" . "iso10646-1"))
 (setq face-font-rescale-alist
      '(("^-apple-hiragino.*" . 1.1))))

としてみたら、なんとか表示できるようになった。 mule-unicode-0100-24ff の定義を最初に持ってくるのが味噌。

Emacs-23.2 で落ち着いたフォントの組合せ
Fig.3) Emacs-23.2 による各種記号と IPA (最終版)

勿論 Luxi Grande は Sans Serif だから、違和感が残る組合せもあるが、少くとも /ɪ/ は発音記号らしく見える。

また、日本語フォントのサイズや weight も肌理細かく制御できるようになったおかげで、 広辞苑の表示も見違えるようになった。 (以前は、ルビかどうかがちょっと紛らわしい事がありました。 こちらが、伊藤さんの意図に沿っていると思います。) 素晴しい。

Outlook on Emacs-23.2 での広辞苑の表示
Fig.4) Outlook/Emacs-23.2 における広辞苑の表示


2010-05-08 (Sat): Emacs-23.2 リリース

Emacs-23.2 Startup

例の「mini-buffer の高さ」が気になっていたので、時々 "Emacs for Mac OS X" サイトを眺めに行っていたら、23.1.97 ができていた。 が、それより Emacs-23.2 が正式リリースされているのに気がついた。 早速、その dmg ファイルを取ってきてダウンロード。 ダブルクリックでちゃんと起動してくれる。素晴しい……

が、件の mini-buffer の高さの問題は解決されていない。残念。

また、各モジュールのインストールについては Sakito さんのところを参考にさせて頂いて、との目論見はあっさり外れてしまった。 Apel さえインストールできない……。 四苦八苦の末、大体次のようなところに落ち着いた。

インストール

emacs-23.2.tar.gz を gnu.org から取ってきて、~/build の下に展開。コンパイルは何ら問題無い。
fukuda@quadra:~/build/emacs-23.2% ./configure --with-ns && make 
                                      && make install
最後の make install は、./nextstep/Emacs.app/ の下にできたバイナリ等を置くという意味。(sudo をつけない方が良いそうな。) その Emacs.app を /Applications/ の下にコピーすれば、通常の(.dmg ファイルからインストールした時のように)Mac application になる。

SKK

何はなくとも SKK であるが、このための Apel インストールの段階で段階で躓いてしまい、Sakito さんのサイトの手引きをそっくり真似して、 といふ目論見は早くも崩れてしまったのだった。 結局、/Application/Emacs.app の下の Emacs ではなく、make install したばかりの Emacs を使うという事。すなわち、
fukuda@quadra:~/build/apel-10.7% make \
  EMACS=~/build/emacs-23.2/nextstep/Emacs.app/Contents/MacOS/Emacs \
  install
とか
fukuda@quadra:~/build/ddskk-14.0.91% make \
  EMACS=~/build/emacs-23.2/nextstep/Emacs.app/Contents/MacOS/Emacs \
  install
とやる。勿論こうやる前に、最新の SKK-JISYO.L を ./dict/ に置いておく事。

E-mail 環境

上記の EMACS=~/build.... を忘れなければ、Email 環境のインストールは「いつも通り」に近い。 つまり、

  1. flim-1.14.9
  2. semi-1.14.6
  3. emacs-w3m (CVS 先端)
  4. wl-elmo-imap4-compliance-201005051700
を、この順番に make install するだけ。 但し、flim-1.14.9 は件の smtp.el の不具合が直っていないので、 自分でパッチを当てる必要がある。(そんな必要のある人—こんな酷い ISP に捉まった人—はそう多くはないでしょうが。) あと、emacs-w3m は、CVS の先端を使うせいか、他とちょっと違ふところにインストールされる。 なので、手で(cp -R で) ~/build/emacs-23.2/nextstep/Emacs.app/Contents/Resources/site-lisp に移しておく。これを忘れて後でやると、wl をインストールし直す必要がある。 (elmo-shimbun.el がインストールされなくて頭を捻った:-)

Look-up

これは何故か何もしなくても動いてくれた(22.3 のための Macports が流用できている?) 細い不具合が有るので、いずれ再検討しなくてはならないが、 とりあえずはこのままで行く事にする。

Python-mode.el

Launch Pad から python-mode.el (-5.1.0) を取ってきて、 件の .../site-lisp/ の下に置く。

Font の設定

Sakito さんのところで、font-spec を使う新しいやり方を紹介して下さっていた。早速やってみたが、 これだと何故か、簡体字が豆腐になってしまう……。 まあこの先簡体字を使う事がそれ程あろうとは思えないが、とりあえず、 従来どおりの方法に戻しておいた。 同じフォントなのに、心無しか 22.3 より綺麗に見える。
(when (= emacs-major-version 23)
;;(set-face-attribute 'default nil :family "Lucida_Fax" :height 180)
;;(set-face-attribute 'default nil :family "Lucida_Grande" :height 180)
  (set-face-attribute 'default nil :family "Luxi_mono" :height 180)
  (set-fontset-font "fontset-default" 'japanese-jisx0208 \
    '("Hiragino_Mincho_ProN" . "iso10646-1"))
  (setq face-font-rescale-alist '((".*Hiragino_Mincho.*" . 1.10)))
)

第一印象

まだ然程使い込んだ訣ではないので、あくまで第一印象、という事で……

という事で、早速 22.3 から乗り換える事にする。

2010-05-01 (Sat): Ubuntu-10.04 LTS

Ubuntu Screen

偉いなあ、Ubuntu。ちゃんと 4 月の内にリリースされた。 早速、ThinkPad X200 にインストールしてみる。

例によって、パッケージのアップデートと然程変らない手間でアップデートできた。 というか、下の"Update Manager" からのお知らせがなかなか無いので、今回は CD-ROM からかなと思って、ドライブを探したが見付からない……。 さうこうしているうちに、ネットワークからインストールできる状態になった。

  1. Ethernet に繋ぐ(これは必須)。
  2. "Update Manager" に "New distribution release ...." と表われるので、Upgrade をクリック。
  3. 後は殆ど自動で進行する。ダウンロードとインストールで合計 2.5時間くらいかかった。
  4. 途中、Wicd を Shutdown するよ、と言われたので、OK を出す。
  5. delete する package の一覧を示されたが、その中に BasiliskII が入っていた。BasiliskII だけ残すつもりで、それを選んで Keep としたが、全部 Keep になったみたい……。ちょっと失敗だったかも。 だが、20 GB ある '/' パーティションは使用量がまだ 46 % である。
  6. reboot

これで完了。凄い、ラクチン、あっけない程。 今のところ改善点・問題点は以下の通り。

上記 Madwifi については、Wcid や madwifi ドライバの問題ではなく、 WLAN の H/W か BIOS のせいかも知れない。Windows XP で起動して、コネクションを張ろとしたら、WLAN のスイッチを触ってもいないのに、勝手に「On になった」とか「Off になっている」と交互に表示された。根気よく、OK をクリックしながら、 一旦接続を確立すると、後は安定して動いているようだ。その後、Ubuntu に切り替えたが、Boot したら自動で Link を確立していた。 が、その後、一度「パスワードが違う」とか言って接続に失敗した。 なんなんだろ。そろそろ寿命か?

2010-05-01 (Sat): Cocoa Emacs (Emacs-23.2)

Cocoa Emacs (23.2) の Pretests が、23.1.96 まで来たので、23.2 のリリースも間近だろう。 と、いう事でちょっと確認してみた。

まず、mini-buffer (mini-window) でフォントの下の方が切れる件。 help-gnu-emacs ML に問い合わせてみたが、誰も相手にしてくれなかった。 で、自分で少し触ってみたが、baseline の位置がずれている、というより、 line-spacing が悪さをしているようだ。つまり、line-spacing が例えば 4 であれば、その分(4 pixel 分)空白が行の上部に作られる。 それはそれで良いのだが、それに応じて buffer の高さを変えてくれないと、 下 4 pixel が切れる事になる。

line-spacing に拘る人はあまり居ないだろうから、そもそも問題が再現されず、 従って help-gnu-emacs でのスルーになったのだろう。 ただ、これは line-spacing が悪さをしているというより、 mini-buffer の実装に問題が有る、という事かも知れない。22.3 ではどのプラットフォームでも起きなかったし、 Linux の 23.1 では起きてないのだから。これらでは、line-spacing に対応する空白が mini-buffer では無視されているように見える。

23.2 を待ち兼ねている理由は、MacOS X でも Emacs で「プロポーショナルフォント」を使ってみたい、という事もある。 Luxi Mono とヒラギノ明朝の組合せはとても気に入っているが、 Lucida Fax とヒラギノ明朝の組み合わせはさらに上を行くように思う。

この組合せを選んだのは、他のプロポーショナルフォントに比較して、

ことによる。つまり、通常の英文の読み易さと、 プログラム・ソースやスクリプトの見易さのちょうど良い妥協点ではないか、 と思った訣。しかし、実際にスクリプトを見易くするにためには、空白や、 '*', '-' などの幅をもう少し広げる必要が有る。

しかし、ちょっとやってみた限りでは、FontForge.app でこれをやるのは簡単な事ではなさそうである。(何より、Lucida Fax をどこから持ってきたのか、さへ思い出せない。) あと、発音記号の /æ/ 等が自然な形になるのは嬉しいが、 elim·in·ate /ɪˈlɪmɪneɪt/ verb'·' や、/ɪ/, /ˈ/が揃っていない。

何だか、またフォント探しから始める必要がありそうで、 プロポーショナルフォントへの熱意がちょっと冷めてきたような気がする。 それとも、方針を全く変えてしまって、普通のテクストにはプロポーショナル、 スクリプトには、Luxi Mono とするべきか。


2010-04-24 (Sat): 今更ながら Time Machine、 その後

一時間ごとの自動バックアップは全く気にならない。本当にラクチンである。 とはいえ、一時間前にどうしても戻りたい、という場面がなかなか無い。 一度だけ、ウェブページ(HTML ファイル)を壊してしまったが事が有ったが otacky.jp に元(編集前)のファイルはあるし、編集後のバッファが Emacs に残っていたので、お世話にならずじまいだった。 Unicode と EUC-JP が混在していた時は、otacky.jp のファイルに戻らざるを得なくなり、 何時間もの作業がフィになった、等という事が偶にあったが、 Unicode に一本化した今ではそのような「事故」はほぼ皆無である。 (つまり、なかなか出番が無い:-p)

HD のクラッシュからどう回復するのかも確認せず、Time Machine を使い始めたのがそもそも迂闊であるが、なかなかその情報が見付からない。 Mac の先輩達によると、そもそも Time Machine HDD からはブートできない、との事。 つまりクラッシュしたら、TM-HDD のデータを使って新しい HDD にインストールしなおす、というのが基本的なコンセプトらしい。 うーむ、ちょっとがっかりではある。 ともあれ、バックアップは取れているので、後は HDD クラッシュの時のダウンタイムをどう短縮できるか、 もっというなら、いつ新しい HDD を買うか、ということになる。 勿論今買ってインストールしておく、のが「正しい」のだろうが、 それをやるなら RAID でも良いかな……なんて邪心も湧いてくる。


2010-04-10 (Sat): 今更ながら Time Machine

Quadra (MacPro) のバックアップを取っておかなくては、と思いながら早 3 年半……。 というか大分前に純正の増設 HDD (500 GB) を買ってはいたのだが、それをバックアップに使うのは勿体無いような気がして、 躊躇っている内に、占有容量が元々の HDD (250 GB) より大きくなり、バックアップは取れなくなってしまっていた。 早い話が、ケチな料簡であたり前の配慮をサボッて運を天に任せてきたのだった。 (尤も、本当に大事なファイルは自宅サーバにバックアップを取って有るが。)

3 年経った頃から、そろそろオタクの虫が騒ぎ始めて、8 コアにしようかな、 とか(そしたらホスト名は Octa か?とか)、それが無理なら、せめて RAID にしたいな、 とかメモリ増設は必須だな、なんて考えていたが、現在の MacPro (1,1) が凄く安定しているので、買い換えも時期尚早、 一方でメモリバスが遅い、かつ 64 bit 化が中途半端という事でメモリやストレージの追加も、決心がつきかねていた。

決心がつきかねていたのは、例によって RAID だ何だと欲張るからで、 とりあえずバックアップだけ、と決心したら、話はトントン拍子に…… と言っても、500 GB の HDD が $59 で買えるのを知ったというだけですけどね。 しかもこれ、図らずも先の純正と同じ Seagate の 7200 rpm だった (厚みは違う。) で、値段は 1/3。要はこれが吝オタクの琴線に触れたという事。 <http://www.ramjet.com>

納入は、二日後で、ちゃんとドアまで届けてくれた。偉いぞ UPS(と RamJet)。 久し振りに MacPro の蓋を開けたが、あまり迷う事なく HDD を実装できた。 パワーオンで、ちゃんと認識して、イニシャライズするか、と言って来る。 そこから直接、Disk Utility へ飛んでくれる。が、そこで Erase を選んで初期化するのだが、これはいかにも頂けないなぁ。ともあれ、 MacHD3 と名前をつけて、MacOS Extended (Case-sensitive, Journaled) で初期化。ほんの数秒で完了。

Menu Bar の Time Machine アイコンから、System Preference へ行けて、そこでバックアップしない HDD を選ぶだけで、Time Machine の設定は完了。素晴しい!現在までのところ、一時間強で約 240 GB をバックアップした。今後、毎時バックアップを取ってくれるんだそうな。 あんまりあっけなさすぎて、HDD がクラッシュした時に本当にリカバーできるのか不安になる程。

ともあれ、この MacPro はとても安定していて、過去 3 年半のうち、 ハングは数えるくらい(数度?)しかない。これは、これまで使ってきた Mac や PC は勿論、Linux + X11 + Gnome より安定しているように思う。 (何年も平気で動き続ける Linux サーバにはさすがに敵わないが、しかしこれは GUI や、「ややこしいデバイス」を持たないので、比較が公正ではない。) また、静粛さという点でも抜群だと思う。なので、 HDD を新調した事だし、まだ後 3 年は使いたいなあ:-p。(それまでに Apple さんにサポートを打ち切られる公算が大だが。)


2010-04-10 (Sat): 色々

MacPorts

Python とそのモジュール群が一度に最新になって、感動したMacPorts だが、以後も相変わらずものぐさ親父の強い味方になってくれている。 Python が 2.6.5 になったし、eblook-1.6.1-media が -20100218 になった。 が、しかし少々「何だかな」も出てきた。

Snow Leopard 10.6.3

アップルジャパンは量販店の店頭で PC からの乗り換えを促すキャンペーンをやっているそうな。 でも、「その前にやる事があるんじゃないの?」という嫌味も出るような 10.6.3 の為体(ていたらく)。 なんだか、大昔の Mac を彷彿させるような……

とは言え、やっぱり PC から乗り換えるのは正解だと思うなあ。 実際、仕事の効率が全然違うもの。 例えば、このところ、社内文書のフォーマットを統一する事を検討しているが、 Office-2003 と 2007 の互換性と来た日には、気が狂いそうになる。 元より目指しているのは、全部 pdf にしてしまう事。 で、私自身は、両者に共通のテンプレートを作ろうとして「嵌って」いるが 他の社員達の中には、そもそも 2007 で文書を作るのはどうしても嫌だ、といって頑張る奴が居る。 贅沢言うな、と言いたいところだが、私自身、2007 に慣れるのに苦労したので、 無碍に切り捨てる訣にも行かない。

Python での日本語

Emacs と Terminal.app-2.0 で暮していると、Python の国際化 (i19n) は何の問題も無いように見える。 (以下は、utf-8 に設定した Terminal-2.0 での表示。)
fukuda@quadra:~% echo $LC_ALL
ja_JP.UTF-8
fukuda@quadra:~% echo $ZSH_VERSION
4.3.10
fukuda@>quadra:~% python
Python 2.6.5 (r265:79063, Apr  8 2010, 21:34:40) 
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> line=u"あいうえお"
>>> line
u'\u3042\u3044\u3046\u3048\u304a'
>>> print line
あいうえお 
">>> line" で、line の Unicode が表示されている事に注意。 (素晴しい。教育効果抜群。)

が、事 IDLE がからむと、まだまだ問題が有るようだ。 息子と Python/IDLE で遊ぶようになって、改めて認識させられた。 Windows XP/7 の 2.6.4/5 の IDLE は日本語が入力できるものの、 それを表示する事ができない。(文字化けする。) (Snow Leopard の IDLE に至っては、かな漢字変換による入力はおろか、 コピーペーストによる入力もできない。)

しかし、Pyothon-3.1.2 の IDLE は表示する事もできる。 (やむなく、息子との教育セッションは 3.1.2 でやる事に。) 但し、">>> line" としたら、Unicode の代りに、「あいうえお」と表示されるようになった。ちょっと残念。 (Snow Leopard の 3.1.2 の IDLE は、日本語の入力もできるし表示も可能。 だが、かな漢字変換による入力はできないようだ。)

Python が日本で Ruby に遅れをとっているのは、このあたりの事もあるに違いない。


2010-04-03 (Sat): サイトのページを全面的に Unicode に

何度かやり始めては挫けていた Unicode 化であるが、この度めでたく(ようやく)完成した。

この何度目かの気運のきっかけとなったのは Google CSE。 しかし使ってみると「なんだかなぁ」である。 自分が使い方をよく解っていない、という面もあろうが、 そもそも個人用にはどうなんだろうか。基本的には、Google のサイトにある index を使っているらしいので、ページを更新したら即 index を作って……、という訣には行かない。Google bot が crawl しに来て、それで index を更新してくれるのを待つ他ない? というのも、最初試した時、"Python" に対する検索結果を見て感動したものだが、その直後、"Chrome" については何も見つからない事に気がついて首を傾げていた。 要は CSE のページ で "Index Now" とやったが実は何も更新されてなかった、という事らしい。 (一週間後の本日、めでたく Chrome が登録されているのに気がついた。)

しかし、もう後には引けない……。一旦全面的にバックアップを取り、 そこ (public_html.bak) から public_html 側へコード変換したものを転送する(上書きする)事にした。 動的に include する CSS や menu なども euc と Unicode の二通り有って、 ちょっと嫌な予感がしたが、案ずるより産むが易し、意外に上手く行った。 決して元のディレクトリの中を弄らず、script をデバッグして、一発で変換が完了するまでやったのが良かったような気がする。

fukuda@quadra:~/public_html.bak% for i in *.html; \
    insert_nav_utf.py $i >| ../public_html/$i
で、この insert_nav_utf.py はここに置きます。

まだ良く見ていないが、今のところ文字化け他の不具合は見付かっていない。


2010-03-20 (Sat): Google CSE/Chrome と Unicode 化

Google CSE

メニューバーに Google の検索エレメントを置いて、検索結果は専用のページに…… という目論見は結局実現できず終い。(同ページ内に表示する事はできたのだが。) あと、見栄えの変更の方も、最後の stylesheet へのリンクを外す事で、background のパターンを揃える事ができたが、肝心のフォントサイズについては、 変更ができなかった。("line-height: 100%;" はやはり必要。)

それにしてもやはり素晴しいなあ Google Search。 検索結果に漏れが無いし、結果の表示も的確だし(Msearch は語の途中から表示が始まったりする。)また、EUC と UTF-8 が入り乱れている我サイトについても何の問題も無く検索・表示してくれる。 あとは Namazu の "--html-split" のような機能が付けば言う事ないのだが…… (このサイトのページはどれも結構長いから。)

Unicode 化

検索エンジンからの縛りが解けたので、各ページの Unicode 化にはもう何も問題が無い筈、だったのだが、どうもそうは問屋が卸してくれない。

一つにはやはり、日本語フォントや Glyph の選択の問題。 例えば、三点リーダ「…」が、行の中央ではなく下の方に表示されてしまう。 以前のように「半角」になったりはしないが、一方で、このサイトの Home Page (index.html) では、これがちゃんと(中央に)表示されたりする……何か怪しい。 これがきっかけで色々やってみた結果、 これまで疑った事もなかったフォント指定のやり方に問題が有ったようだ。 css ファイルで、

body { ……
    font-family: "ヒラギノ明朝 ProN W3", Hiragino Mincho ProN, 
    "ヒラギノ明朝 Pro W3", Hiragino Mincho Pro, 
    ……} 
などとやって得々としていたが、"W3" は余計。で、coding が正しいと、この最初のエンティティが邪魔をして、この微妙な代替 Glyph の表示となるらしい。 "W3" ともども漢字の表示を全廃したら、きちんと表示されるようになった。 また、当然ながら utf-8 と euc-jp の CSS ファイルを作って使い分けるという必要が無くなった。 (怪我の功名である。)

これで一段落、と思ったがまだまだ問屋さんは卸してくれなかった。Win XP (IE-8, Firefox) と Ubuntu (Firefox, Seamonkey) で微妙な問題がいっぱい出る。 まず IE-8 は、そもそもまともに、AA (Anti Alias) フォントにならないのでパス。 Firefox は、フォント指定の解釈が euc-jp と utf-8 で微妙に違い、これを直す事ができなかった。(bold でいつも Sans-serif 体になってしまう。) Ubuntu の Firefox は、以前から Google Search の結果の表示が漢字の部分だけ「しょぼい」という問題が有ったが、 然程気にしていなかった。が、utf-8 だと、table の <td> の中でのfont-size の指定が無視される事が解った。Firefox on Linux は、当サイトの最大のお客様でもあるので相当頑張ったが、結局どうにも埒が明かなかった。

Chrome

で、ふと思いついて Chrome を導入してみた。これは、utf-8 への対応という事では今のところ最高のようである。

まず、Ubuntu の Firefox にあった font-size の問題が無い。 (で、この問題は Firefox のバグという事で放置する事にする。Snow Leopard の Firefox では問題無いし:-p) あと、「↑」や「↓」が半角になる事もない。これは Snow Leopard の Firefox や Safari でさえ半角にしてしまうのだった。 何より、Ubuntu Firefox で気になった Google 検索の結果のうち漢字だけがショボくなる問題もない(さすが、というべきか:-)。

起動は早いし、レスポンスはきびきびしているし、 漢字の bold が太すぎて一部潰れてしまう事を除けば、文句のつけようがない……。 Windows と Linux のブラウザはこれに乗り換えよう。(MacOSX については Firefox で何の不満もない。)


2010-03-13 (Sat): Google Custom Search Engine を試す

このところ、仕事で使う DMS システムのために色々な Search Engine を試している。で、とりあえずは自分のウェブサイトが実験台になる事が多い。 たまたま Google CSE を試してみたら、これがまた簡単かつ強力。"try out" 段階までは確かにそう思えた。 なので、msearch に然程の不満が有った訣ではないが、 こちらもこのサイトに実装してみた。

Google.com にアカウントを持っていたら、 試すところまではともても簡単に行ける。iGoogle から "more" &rarr "even more" &rarr Custom Search と辿って、"Create a Custom Search Engine" をクリックすれば、後は "Search engine name" と " Sites to search" を入力するだけで、"Preview" まで行けてしまう。というか、通常の Google engine の対象を制限するだけなのであたり前、とも言えるが。 ともあれ、この時点での検索結果msearch のそれと比べると、 こちらを試してみたいと思うのも宜なるかな……

が、易しくてかつ説明が行き届いているのはこのあたりまで。 ホームページに組み込むには、見栄えをカスタマイズした後、Get Code で、<div> level のソースコードを取って来て、自分のページに貼り付けるのであるが、 この見栄えを整えるどころか、フォントの下が切れてしまう不具合を直すのさえ一苦労。 結局、line-height の指定のない CSS ファイルを作って何とか格好をつけた

しかしこのままでは、Google さんがインデックスを作ってくれるまで、 新しいページは検索結果に反映されない。 なので、当然こちらの都合でインデックスする手段が欲しいが、 さすが Google さん、これもちゃんと備えている。 が、これがまたとても解り難い。この場合は sitemap.xlm を作って、 それを対象となるサイトのトップディレクトリに置く事が前提条件になるようだが、 それが理解できるまでに半日かかった(ちょっと大袈裟かも。) しかも、sitemap.xlm を作ってくれるという Google さんの sitemap-generator.py がちっとも動かない。この問題は既に知られていて、 さるウェブサイトにそのリンクも載っているのだが、いずれもリンク切れ……。

仕方なく、"RAGE Sitemap Automator" という製品(の試用版)をダウンロードしてきて、 何とかサイトマップを作る事ができた。それを www.otacky.jp の Document root に置く。(この S/W を製品版にアップグレードすれば、Google にこのサイトマップをアップロードできるらしいが、 今のところその必要を感じない、というか何故それが必要なのか解らない。)

ここまでやっておくと、また CSE の control panel へ行って、 "On-demand indexing using Sitemaps" ができる。Indexing は一瞬で終る。さすが、である。 また、あたり前の事かも知れないが、 ちゃんと最新のページに対応した検索結果が示される。 しかし残念な事に、Google search そのものには、この結果は反映されていないようである。


2010-03-06 (Sat): Msearch による全文検索

このサイトの漢字コード(厳密には charset?)をぼつぼつ UTF-8 に変更している。Emacs-22.3 だと、基本的には charset を変更して、つまり
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 
と変更し、set-buffer-file-coding-system で UTF-8 を指定してセーブするだけ。(charset を変更してセーブすれば、最後の coding-system の変換をしなくても Emacs の message line には "-u:--" と表示されるのでややこしいのだが、 これをやらないと実は変換されていない。)
2010-03-07 (Sun): しかも一旦この宣言と内容の coding が食い違ったファイルを作ってしまい、かつその buffer を離れると、Emacs ではどうしようもなくなる。lv で変換して何とかなったが、当座はパニックとなった。ちょっと何だかなぁ、である。

が、「ぼつぼつ」とは行かない面も有る事に思い至らなかった。 全文検索に使っている namazu が、そのものとしては UTF-8 に対応していない。勿論、NKF 等を併用して、UTF-8 に対応させる事も可能であるが、サイト内に EUC 他のファイルと混在していると、なかな面倒な事になりそうである。

実は、MacPorts を大幅に更新したせいか mknmz が動かなくなっていた事もあり、 一噌新しい検索システムを導入してみてはどうだろう、と思い至った。 Google ですぐに msearch というのが見つかった。ありがたい事に Unicode 版というのも有るではないか!

早速導入してみる。 以下は、現在のウェブサイトでやっている、 ローカルサーバ(Mac Pro)で改定、確認の上、www.otacky.jp へアップロード、という手順を残す事を前提にしている。

  1. <http://www.marbacka.net/msearch/> というところから、 ms152u2.lzh というファイルをダウンロードして展開。
  2. できたファイルを、~/cgi-bin/ 以下にコピー。その genindex.cgiを編集して、$g_password を変更しておく。 (私のように index をローカルで作る場合は、必須ではないかも。) また、*.cgi ファイルに実行パーミッションを与えて、その perl へのパスを変更して、/opt/local/bin/perl にする。(ちょっと嵌った……)
  3. default.idx という空ファイルを作り、その permission を 664 とし、owner を fukuda:_www とした。apache (_www) が書き変える必要があるので。(genindex.cgi ではこのファイルを作れなかった。)
  4. <http://quadra.otacky.us/cgi-bin/msearch/genindex.cgi> を立ち上げて index を作る。(quadra.otacky.us は動作確認用のサイトなので、 外からはアクセスできません。)
  5. <http://quadra.otacky.us/cgi-bin/msearch/msearch.cgi> で、正しく検索できる事を確認。
  6. ~/public_cgi-bin/msearch/以下を otacky.jp の /var/www/cgi-bin/msearch/rsync -Cuav
  7. <http://www.otacky.jp/cgi-bin/msearch/msearch.cgi> で正しく検索できる事を確認(これはアクセス可能。試してみて下さい。)
    2010-03-07 (Sun): Namazu と共存させようとすると、msearch の Perl の library のパス指定のやり方のせいか、うまく行かない。 ちょっとディレクトリがとっちらかるが、cgi-bin に全部移して <http://www.otacky.jp/cgi-bin/msearch.cgi> でアクセスできるようにした。

で一通りの確認ができた。課題としては、

少し使ってみての印象と、Namazu との比較。

  1. index の作成も、検索結果の表示も msearch のほうが早いようだ。 特に index を最初から作り直す場合は圧倒的な差が出る。
  2. ただし、msearch は Namazu の --html-split のようなオプションは無い。 ファイルごとのインデックスとなる。このことも有ってか、msearch の方が index のファイルサイズも圧倒的に小さい。
    fukuda@quadra:~/public_cgi-bin/msearch% ls default.idx -l
    -rw-rw-r-- 1 fukuda _www 2231295 2010-03-06 17:06 default.idx
    fukuda@quadra:~/public_html/namazu_index% ls -l NMZ.i
    -rw-r--r-- 1 fukuda fukuda 9182899 2010-02-12 06:42 NMZ.i 
  3. Perl のみによる実装とか、わかち書きモジュールを必要としない事とか、 はたまた、ウェブベースの index 作成とか、 msearch の方がかなり簡単で扱い易い構成になっている。 本来ならインストールも格段にスムースな筈なのだが、上記のような、 file permission に関する設定の自動化や、ウェブ I/F の実装が中途半端なため、 せっかくの構成上の利点が十分生かされていないような気がする。
  4. もっとも重要な検索の精度であるが、これも msearch の方がより確実なような気がする。Namazu は検索している keyword を全く含まないページを示す事が良くある。

2010-02-27 (Sat): 自分で思っている程には……

先週触れた MacPorts による完璧 Python 環境で、何をやっているかというと、 Django で簡単な文書管理プログラムを書いているのであった。 秘密(スカンク)プロジェクトなので成果は公表できないが、 そのうちこのサイトのための blog システムを作ってみたいと思っている(いつの事やら、であるが。) ともあれ、久し振りに纏まった分量のコードを書いた。 で、思っている程には行けてないなあ、と—勿論自分のスキルの話です。

タッチタイピング

秘密プロジェクトであるので、早朝が主な作業時間である。 真っ暗な内に起き出して、 ゴソゴソとプログラミング等をするのはなかなか快感であるが、ちょっと問題が。 タッチタイピングができない……。 例えば、こんな風にウェブのページを書く分には殆んど全く問題ないのだが、 役物('%', '$', '^', '+' 等)が頻出するプログラミングでは、 とてもではないがスラスラ打てているとは言えない。 「おっかしいなぁ、こんな筈ではなかったのに」と思うも、なかなか「勘」が 戻って来ない。

加齢のせいか?といつもの言い逃れをして済ましたい誘惑に駆られるが、 それにしてはあまりに落差が有る…… と一週間程気にかけていたが、結論は「自慢の HHKB Pro (薄墨タイプ?)のせい」という事のようだ。 つまり、このタイプのキーボードはキートップの印刷のコントラストが低くて、 暗いととても見にくい……。言い換えると、タッチタイピングができている、 と思っていたのは幻想で、こういう役物の時には思わずカンニングをしていた、 という事。また理由はともあれ、なかなか手が覚えてくれない事も悲しいが、 それ以上にこれまで何ら問題無かったキー('<', '>', '(', ')' 等)まで打ち間違えるようになったのが、もっと情けない……。

SKK

このシステムは自分以外の人も使うので、ちょっとは真面目に HTML を書かないといけないのだが、そうするとエスケープ文字の入力もやっかい事の一つである。 で、ひとつ思いついたのが、SKK にこれをやらせる事。 つまり、例えば次のようなキーストロークでそれぞれを入力しようという魂胆。
キー入力 SSK の出力 Web での表示
'/'+'"'+' ' '&quot;' '"'
'/'+'-'+' ' '&mdash;' '—'
「みぎや」+' ' '&rarr;' '→'

これはなかなかのものである。しかもちゃんと動くようだし……素晴らしい!!

が、しかし、トレーニングの時にはちゃんと '&quot;' と出力されるのに、その後変換すると、';' が出てこない。今さらながらであるが、SKK では ';' は、辞書のエントリに入れられないらしい。(というか、入れられるが annotation の始まりと解釈される?) なんだか勝利の美酒に水が混ざったような気分であるが、 でもまあ、後で ';' を打ち足す必要があっても、これは使い出がある。 (';'が「ひらがなモード」でも半角にできるようになったら、 もっと打鍵数が減らせるのだが、こっちのやりかたを失念してしまった。)

2010-03-07 (Sun): これは、.emacs か .skk の中で
         ......
	 (setq skk-rom-kana-rule-list 
	       '(
		 ("!" nil "!")
		 ("?" nil "?")
		 (")" nil ")")
		 ("(" nil "(")
		 ("wi" nil ("ヰ" . "ゐ"))
		 ("we" nil ("ヱ" . "ゑ"))
		 (";" nil ";")
		 ))
          .......
とやれば良いのだった、勿論……:-p。というか、';' は「変換しない」をディフォルトにするべきだと思う。で、結局
キー入力 SSK の出力 Web での表示
'/'+'"'+' '+';' '&quot;' '"'
'/'+'-'+' '+';' '&mdash;' '—'
「みぎや」+' '+';' '&rarr;' '→'
のようにやれば良い。

エスケープシーケンスそのものを書き表わそうとすると、 いつも頭が痛くなるのだが、ともあれ、ごちゃごちゃやっているうちに、最後の ';' は無くても良い事がある事に気がついた……。 これは良い事かどうか分らない、打ち忘れに気がつかない確率が高くなるので。

Unicode

そんな事より、この記事の中の '\'が、Safari では yen マークになってしまう(これを Safari で見ている人には何の事だか解らないでしょうが:-p)。ページを Unicode にするとこの問題は無くなるが、今度は Firefox のゴシックになるべき部分が皆明朝になってしまう……つまり、CSS での "font-family: Sans-Serif" が無視されて、日本語にヒラギノ明朝を選んでしまう。

EUC で同様の問題(変なところで明朝になる)が有った Safari は、Unicode にしても変化はなかったが、"font-family: Helvetica Sans-Serif" とする事でこの問題が解消できた。 なんだかもうワケワカである。 という訣で、またもや Unicode 化は見送りとなるのであった。

2010-02-28 (Sun): どうもこれもまた私のスペルミスを含む「勘違い」のようで、Unicode にしても、CSS を正しく書いてさへいればその解釈に問題は表われない、という事のようだ。 早速、このページと index.html のみ Unicode にしてしばらく様子を見る事にする。 また、平文の部分の英字フォントを Lucida Fax にしてみた。

2010-02-20 (Sat): なかなかやるじゃん、MacPorts

MacPorts と言っても多くの人には何の事?てなもんかも知れないが MacOSX の Package Management System の一つ(「てなもんや三度笠」の藤田まことさんのご冥福をお祈りします。) しかしこれ、特に MacOS X の代替わりの時に色々問題を出すので、 最近は敬遠していた。 つまり、できるだけ MacOS X についてきたものを使い、 また、已むを得ない場合は自分でソースからコンパイルする、 という方針で来た訣。

今だに Emacs はそうだし、Python も最近まで Python Foundation が MacOS X 10.3 向けにコンパイルしたパッケージを使ってきている。 が、しかし、このところその「10.3 向」けというのが問題になってきた。PIL 他のモジュールを "setup.py install" できないか、それができても、うまく import できない。 PIL は 64 bit なのに、 件の Python パッケージが 32 bit 版になっているせいらしい。 一方、MacOS X 10.6 附属の Python は、64 bit であるが 2.6.1 である。

2010-02-24 (Wed): MacOS X 10.3 のコードネーム (Panther)が思い出せなくて、イライラしていたが、 それもそのはず、私が Mac に出戻る前なんだから。 ちょっと保守的すぎ、じゃないですか Python.org さん。

MacPorts も 2.6.2 だしなあ、と思っていたが、どうもこれは私の勘違いのようだ。MacPorts 本体(すなわち port コマンド)自体をアップグレードしないと、 最新のパッケージがリストアップされないもののようだ。(←何でや?) ともあれ、"sudo port selfupdate" とすると、port が 1.8.99 となった。

これで port list してみると、何と Python26 は、2.6.4 である。 また、嬉しい事に、それに追加する package が py26 というサフィックスをつけて揃っている。

fukuda@quadra:~% port list | grep -e "^py[^@]*26"     
python26                       @2.6.4          lang/python26
python26-doc                   @2.6.4          lang/python26-doc
py26-scapy                     @2.1.0          net/py26-scapy
py-wxpython26                  @2.6.3.3        python/py-wxpython26
py26-MMTK                      @2.6.0          python/py26-MMTK
py26-altgraph                  @0.6.7          python/py26-altgraph
py26-amqplib                   @0.6.1          python/py26-amqplib
.....
py26-xmpppy                    @0.4.1          python/py26-xmpppy
py26-yaml                      @3.08           python/py26-yaml
py26-zopeinterface             @3.3.0          python/py26-zopeinterface
py26-zsi                       @2.0-rc3        python/py26-zsi
fukuda@quadra:~% port list | grep -e "^py[^@]*26" | wc
    302     906   20375
その数何と 300 也! "variant" とかを駆使して、互換性を確保する必要が有った事を考えれば「隔世」の感あり。 早速、sudo port install python26 で Python-2.6.4 をインストールした。その後、ちょっと調子に載って、sudo port install py26-gnuplot としてみたら、驚いた事に、gcc-4.3.4 からから始まって、gnuplot から、numpy から、そのための atlas から、全部きちんとインストールしてくれた。 (何時間もかかったが。)/usr/local/binpythonpython26 を、link しなおし、
fukuda@quadra:~% which python
/usr/local/bin/python
fukuda@quadra:~% ls -l /usr/local/bin/python
lrwxr-xr-x 1 root wheel 73 2010-02-13 11:09 /usr/local/bin/python \
    -> /opt/local/Library/Frameworks/Python.framework/\
    Versions/2.6/bin/python2.6*
とし Gplot.py もインストールして、CGI や手許のスクリプトを少し試した範囲では、問題なく動いているようだ。感激!

続いて、件の PIL (py26-pil) や主目的の Django (py26-django) もインストール。一気に懸案が解消してしまった。素晴しい!! Python.org や Apple が手を抜いているのに、MacPorts は頑張っている!!!

もしや、と思い emacs (Emacs-23.1) emacs-app (同 Aqua 版)を試したが、 前者は動くものの、後者はやはりコンパイルで失敗する。emacs-app-devel (20091101)もダメだった。


2010-02-11 (Thu): ちょっと感動もの(Wanderlust コミュニティ讃)

先週の日記(下)でも嘆いていた rr.com (Road Runner) の SMTP posting server での「なんだかなぁ」であるが、Wanderlust ML (wl-en@list.airs.net) へ質問する事であっさり解決できた。ML への Thank-You Mail にも書いたけど、一月あまりの rr.com とのやりとりでちっとも埒が明かなかったのが、ML で質問したら数時間後には解決案がもらえた訣で、これには驚きもし、 また非常に感動もした。 (その半日後にはなんとパッチまで頂けた。)

要は、

  ……
  250 PIPELINING
  MAIL FROM:<tfukxxx@san.rr.com>  BODY=8BITMIME
  501 5.5.2 MAIL FROM syntax error
  ……
と言われていたのが、flim の smtp.el を少し変える事で、
  ……
  250 PIPELINING
  MAIL FROM:<tfukxxx@san.rr.com> BODY=8BITMIME
  250 MAIL FROM accepted
  ……
となったという事。
2010-05-09 (Sun): flim.el ではなくて、flim の smtp.el でした。

どうも "...com>" の後の空白が二つ有ってはいけない、という事らしい。 ったくもう、であるが、RFC (RFC-821) には「空白は一つ」とあり、 つまり smtp-server.san.rr.com の振舞いは「間違っていない」んだそうな。 しかし、やっぱり「空白二つだったら弾く」なんてのは ISP としては「なんだかなぁ」ではある。 何しろ、これまで WL のこの「バグ(空白二つ)」のせいで他の smtp-server に弾かれた事等無いし、smtp-server.san.rr.com だって、昨年までは何の問題もなく受け容れていたのだから。

それにしても、Road Runner さんが新しく採用したメールサーバって何なんだろ。 Open Source のではないのは確かなような気がする。


2010-01-30 (Sat): なんだかなぁ

ISP

結局我 ISP ("san.rr.com") の SMTP posting server は使えないまま。 この ISP、最近ではメールでのクレームにも答えなくなってしまった。 iPhone や Mail.app (Mac のメイラ)からもこのサーバは使えないから、 こちらの設定のせいではない事は略確実。という事は、rr.com (san.rr.com はそのサブドメイン)全体で使えない人が続出している筈なんだが……。

仕方なく、so-net.ne.jp さんの SMTP サーバを pop-before-smtp で使っていたが、レスポンスが少し遅いし、keyword を聞かれるのが鬱陶しい。で、自分のコンピュータの Postfix から直接送る事にしてみた。要は、~/.wl で

    (setq wl-smtp-posting-server "localhost")
とする、という事。

以後二週間程になるが、まだ相手先から弾かれる事もなく順調に動作している。 あたり前と言えばあたり前かも知れないが、最初試してみた時には、 いきなり受け付けてくれないホストが有って諦めたのだった。 このところ大丈夫な理由が、そういうホストに当ってないだけの事なのかどうか、 ちょっと不明。 (そのホストは某大学の経理部なので、試してみる訣にいかない。)

一方、以前は外 (the Internet) へ出ていけない事がしばしば有ったが、 そちらは改善されているように思える。 過去一箇月で一度しかそういう事は無かった。2010-01-23 の 13:15 から 15:00 まで。こちらはどうも DNS が不調だったようである。

Macintosh

自動アップデートがらみで、いくつか問題が出た。まずは、Mac Pro。 HP のプリンタドライバを手動でバージョンアップした事が有ったが、それ以降何度も version-2.3 にしろ、と言ってくる……。 ったく、普通に自動アップデートくらいできないのか、HP さん(Apple さん?)。 しかし、それはまだ良い方で、Desktop(背景画面) が何故かディフォルトの画像になってしまった。 良く見たらそのファイルそのものが消えてしまっていた。 そのファイルをダウンロードしてきて指定しなおしたら復帰できたが、しかし、 こんな事は初めてなので嫌〜な予感が……

その予感が、Mac-mini の方で的中してしまった。 こちらは背景画面が消えたのではなく、Desktop に置いてあるアイコンが全部消えてしまった。(Doc も Menu bar も異常無し。) 初めのうちは「あらま、何だか懐しい……」なんて余裕綽々で、 リブートしてみたりしたが、それで元に戻ったのは iDesk のアイコンだけ。しかも良く見ると、 ~/Desktop の下のファイルが全部消えている事に気付いて愕然。 その上、何と "Macintosh HD" さえ表われない。(Finder には表われる。)先輩達にアドバイスしてもらって、PRAM クリア等も試みたが、消えたファイルは戻らない……

ファイルを消してしまうなんて、とんでも無い事である。 Linux ではついぞ無かった。 (Windows XP では一度有った−−それもデスクトップに置いたファイルが消されたのだった。) これでは怖くて使えないではないか。お願いしますよ、Apple さん T_T。

ThinkPad X200, Ubuntu

先週 BIOS update を試みたのであるが、その結果、Boot に失敗するとか、 Ubuntu がシャットダウンできない、等という事は無くなった。

しかし一方、Windows XP の方については、 WiFi がおかしくなってきた。 一旦接続できても、 しばらくすると切れてしまうとか、"Wating for IP Configuration" でやたら手間取ったあげく失敗するなどという事が良くある。IP Configuration に失敗しているのに、"Wireless Connection Status" では繋っている事になっていたりする……。 (勿論、実際には繋っていず、ブラウザ他も使えない。)

なので、一旦は撃退された "System Update" に再挑戦した。 依然、ThinkVantage からは、「"System Update" というツール」のアップデートはできず(ややこし!)、 結局、systemupdate314-2009-6-12.exe というファイルを Lenovo のサイトから探し出して、ダウンロード・インストールするしか無かった。 しかし、一旦それをインストールしたら、最初と同様 System Update は略完全自動で System をアップデートしてくれた。(200 Mbytes 以上も有ったので結構時間がかかったが。)

だが、その効果は絶大で、上記したような WiFi の接続に関する問題は解消 (モダンになったツールの GUI はあまり趣味に合わないが)、また、指紋認証で拒否される事が無くなった (以前は機嫌が悪いと一向に認証してくれなかった。)

また、あたり前の事ながら、このアップデートは Ubuntu にはあまり影響は無い。このところ Wicd の動作が改善されているが、 それが、BIOS アップデートのおかげか、Wicd もしくは dhcpcd が新しくなったせいなのかは良く解らない。 (何せ空港に持って行かないと確認できないもので。) ただ、iPhone の WiFi にはまだまだ敵わない。


2010-01-23 (Sun): X200 BIOS Update

ThinkPad X200 が下記のように何かと不安定なので、 一気にシステムをアップデートしようと思ったが、 ThinkVantage の "System Update" が古いと言われ、しかも、 その "System Update" 自身のアップデートがうまく行かない:-(

なので取り敢えず、BIOS だけをアップデートする事にした。Version-3.11 で、ファイル名は 6duj38us.exe(これは 32 bit 版)。 インストールしたら、"LENOVO 6DET61WW(3.11)" と表示される。 (ったく、ややこしい。でもまあ以前に比べたら、マシになったと言える。)

とりあえず普通に動いている。まだ何度もリブートしてみた訣ではないが、 今のところ、ブートに失敗するとか、Ubuntu がシャットダウンできないとか、 等の問題は解決できているようだ。


2010-01-09 (Sat): Ubuntu/ThinkPad ピンチ

どうも、このごろ ThinkPad (X200) の調子が良くない。

正月早々、なんだかなぁ、である。
234/1,091,311
Taka Fukuda
Last modified: 2013-09-12 (Thu) 08:13:12 JST