2008-07-10

失礼。ちょっと愚痴でした。

その件はけっきょくあまりの屑ぶりに向こうから気づいたのか、流れた。

千年の時を越えてよみがえるモテ自慢

……經房(つねふさ)の中将おはして、「頭の辨はいみじうほめ給ふとは知りたりや。一日(ひとひ)の文(ふみ)に、ありしことなど語り給ふ。おもふ人の人にほめらるるは、いみじううれしき」など、まめまめしうのたまふもをかし。「うれしきこと二つにて、かのほめ給ふなるに、また、おもふ人のうちに侍りけるをなむ」……

(意訳) ……經房の中将さまが来られて、「頭の弁(藤原行成)殿がずいぶんとあなたをお褒めになっているのは聞きましたか。このあいだ手紙が来て、何があったのか教えてもらいましたよ。好きな人が人に褒められるのは、とてもうれしいことだ」などと、まじめな顔をして言うものだからおかしい。「嬉しいことがふたつになった、褒められたことと、それから、あなたが好きな人のうちに入れてくれたこと」……

(枕草子・136 頭の弁の、職にまゐり給ひて)

い い か げ ん に し ろ 。

こいつ、ほんとは千年前なんかじゃなくて、70年代少女マンガ新感覚派のひとりとかじゃないのか。

そういえば以前、某女性作家がブログで「今日は誰々(某男性批評家)がデートに誘ってきたので行ってやった。(中略)まあ合格点か、よくがんばったね」みたいなことを書いているのを読み、そういうの書くなよなー、と思ったことがあった。男の方はがんばってるんだから、おおっぴらに暴露されるのはかわいそうだよ、と。まあ自分が男だからそう思うんだろうけど、枕草子にもそういう話がぽんぽん出てくる。ブログに書かれて冷やかされたなんてのは、まだかわいいうちだ。平生昌や藤原行成なんて、そんな話がもう千年もさらされ続けている。この場合、ISP に訴えるというわけにもいかないし。かわいそすぎる。

Subversion Book

オンラインで読める Subversion 入門の良書、Subversion Book には日本語版もあったのですが、もうかなりの期間、日本語版は読めなくなっています。どうなってるの? 日本語版だけ違うホストに置いてあるし、Subversion Book のリポジトリには格納されていないのも妙だ。なにか事情があるのかもしれないけど、いいかげんこれはけっこうな損失ではないかと思う。

Firefox 3 をリロードさせる

Firefox 3、速くて使いやすくていいです。だけど日本語での単語選択の切り方がへんじゃない?

ところで、Firefox に F5 のキーコードを送信して別のアプリからリロードさせようとしたのですが、ただアプリケーションのウィンドウに WM_KEYDOWN/WM_KEYUP を送っただけでは効果がない(2の頃もそうだったような気がする)。子ウィンドウをたどって、うんと奥のやつに送信しなければいけないようです。

/**
Sample Code -- Make Firefox browser (for Windows) reload.
*/


#include <windows.h>


void ReloadFirefox(void);
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam);


void ReloadFirefox(void)
{
    /**
    Find the Firefox 3 browser and send it a F5 key stroke to reload its 
    stuff.
    
    NOTE: You can't make it by just sending WM_KEYDOWN/WM_KEYUP messages 
    to the top level window somehow. You need to search the 
    MozillaContentWindowClass window and send these messages to its child 
    window to get it done.
    
    */
    
    HWND hwndFxFrame;
    HWND hwndFxChild;
    
    hwndFxFrame = FindWindow("MozillaUIWindowClass", NULL);
    if (!hwndFxFrame) return;
    if (!EnumChildWindows(hwndFxFrame, EnumChildProc, (LPARAM)&hwndFxChild))
        return;
    PostMessage(hwndFxChild, WM_KEYDOWN, VK_F5, 0x00000001);
    PostMessage(hwndFxChild, WM_KEYUP, VK_F5, 0xc0000001);
}


BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
    TCHAR classname[256];
    HWND *phwndchild = (HWND*)lParam;
    
    if (!GetClassName(hwnd, classname, 256)) return TRUE;
    if (strncmp(classname, "MozillaContentWindowClass", 256)) return TRUE;
    *phwndchild = GetWindow(hwnd, GW_CHILD);
    return !!*phwndchild;
}


int main(void)
{
    ReloadFirefox();
    return 0;
}

ATOK 2008

かな入力で使っていると、日本語入力が ON のままサスペンドして復帰した後、入力モードが全角英数になってしまう。

ジャストシステムのサイトにはオンラインで不具合を報告する仕組みがない。なんと電話をしなければならないようだ。電話すれば直るのか? こまめにパッチを配布している様子はなさそうだし。どうだろう。

GVim は Python でマクロが書ける

らしいです。清水川さんに教えてもらいました。ためしに :python print ‘Hey’ とやってみたところ、はじめは、python25.dll がない、と怒られた。Python いまだに 2.4 を使ってました。後日 2.5 をインストールして、‘Hey’ と出ることを確認。よし。

これだけで乗り換えたりはしませんが、覚えておこう。

ちなみに gvim が乗り換え候補に入ってるのはクロスプラットフォームだからで、もし Windows 専用のエディタだったらこんな変態的なのにはもちろん触ってみたりしないのです。

第二回「こんなところに係り結び」

「何々のみ知る」というのも、係り結びですね。

ほんとかよ、と思っても疑ってはいけません。

221/319

2008-07-08

ど う し て テ レ ビ 屋 の 考 え る こ と は こ う も 屑 な の か 。

死後の裁きと地獄の存在を信じたがる人間の気持ちが今ならわかる。

2008-07-04

最近翻訳やってないなあ。一年以上前にやった、ほぼできかけのやつがあるんですが(こう書くともったいぶってるような言い方だ……)、作者に出すメールの英語を書くのが面倒でやってない。

Subversion の Windows 用バイナリが、CollabNet のサイトにユーザー登録しないとダウンロードできなくなってる! と、思ったら、ソースのダウンロードのツリーにさりげなく Windows 用バイナリの ZIP があった。

にを

古文を読んでいると、現代の感覚では捉えがたい助詞の使われかたに出くわすことは多い。「に-を」と続く助詞もそのひとつ。現代語じゃ使ってない、はず。

  • いまは、限りありて絶えんと思はん時にを、さることはいへ。(枕84・里にまかでたるに)
  • 御簾の前にて、人にを語り侍らん。(枕87・職の御曹司におはします頃、西の廂にて)
  • ……さらば、それにをありしことをばいはん、とてあるに、……(枕161・故殿の御服のころ)
  • いかでかかるついでに、この君にをたてまつらむ。(源氏12・須磨)
  • まづまことの親とおはする大臣にを知らせたてまつりたまへ。(源氏22・玉鬘)
  • また、さやうにを人知れず思ひ置きたまへ。(源氏52・蜻蛉)

それにしても grep できるテキストファイルがあるのは便利。読んでないのに源氏から用例を拾える。

gvim

清水川さんが乗り換えてしまったという gvim。いつの間にか、iminsert なんて変数ができてて、Esc でコマンドモードに戻ると IME がオフになったりするようになっていた。昔からそうでした? だとしたらその時は気づかなかったのか。

そういうわけで、じゃあいよいよ乗り換えてみるかと少しいじってみたんですが、やっぱり日本語に弱いのは正直きつい。これはプログラマのためのエディタだ。そもそも「行を折り返す」ということ自体が例外的なケースという目線なので、その時点で自然言語の文章(ようするにこういう普通の文章)をせこせこ書くのに向いてない。プログラマだから普通の文章も gvim で書くというのはかっこいいけど、俺プログラマじゃないすから。これを使おうというのなら、テキストエディタで日本語を書くというこれまでやってきた作業において抜本的な習慣の改変を迫られることになる……。ていうか、それって VZ と整形マクロの世界に逆戻りだよなあ。

「折り返しは必要か」とか、「禁則は必要か」とか、ものすごく根本的なところを己に問い直さないと gvim 常用には踏み込めない。だけど今、21世紀じゃん……。

UAX #14, #29 を実装していてマクロ言語が Python のエディタ、どっかにないかなあ。誰か作って!!

(整形処理をせずに)折り返し表示でずらずら普通の文を書いている時の数少ない欠点は、バージョン管理した時に diff がものすごく見づらいこと。でもそれは、折り返して表示してくれる diff があればいいことなんですよ、ほんとは。

でもいろいろ考えさせられた。

シールをめくると

シールをめくるとこの場で当たる!

そういう意味じゃないよ。

追記: Safari で写真が表示されてなかった。

162/319

2008-07-01

今年も半分が終わってしまった。

さて、体調を崩してから、「まともに生活する」ようにしてみたけど、生活というのは忙しいすね。日曜日も、朝食作って、食べて、掃除して、洗濯して、皿洗って、昼食作って、食べて、洗濯物干して、皿洗って、……などとしているとまったく休まる暇がない。しかも食事している時以外はつねに立っている。食事だって15分ほどで食べ終わってしまう。作るのにはその倍ぐらいかかってるというのに。くたくた。まともな生活をしてたら、古文なんて悠長なもの読んでる暇はない。つまりまた生活は次第にまともでないものになってゆくのでしょう。生きるのは召使いになんとやら。

ブラウザのシェア

emptypage.jp の、ある日のアクセスログから。

IE 6 515
IE 7 193
Firefox 3 187
Firefox 2 161
Opera 9.x 55
Safari 3.1 21

(Firefox 2 も Safari もいまだ col 要素に対応してないじゃないか。ACID テストどころじゃないすよ、もう! Opera は対応している。えらい。対応していると、上の表の数字は右寄せで表示されます。追記: Firefox 3 も未対応。もう HTML 標準への関心は薄れてきているのだろうか。)

すでに Firefox 3 が 2 の数を超えているところがすごい。これを見る限り、Safari はまだものの数ではないですね(ちなみにこの日のはすべて OS X だった)。そして、IE 6 を「切る」ことはまだ当分できないだろうということもわかる。うちのお客さんは保守的なのね。

サイトによって訪問者の層が違うのだから、ニュースサイトとかで報じられているようなブラウザのシェアなんてのはあんまりあてにならないもんです。

枕詞

枕詞の本質を考えるのには、それがどんな語に冠せられるのか、その被枕の語にも注意する必要がある。右の例に即して考えてみよう。古代の人々にとってはとりわけ、「夜」は不思議なことの起こりかねない恐怖の時間帯であり、また「母」は子を産むことのできる驚異的な存在であったはずである。同じように、自然の脅威にさらされがちな海を「わたつみの海」と言い、神の降りる場所である山を「あしひきの山」と言い、また超越的な偉力とみられる神を「ちはやぶる神」と言い、これまた絶対的な力を発する天空に関して「ひさかたの天」などと言う。

古代の人々はこのように、畏怖すべきもの、驚異的なもの、崇高なもの、偉大なもの、大切なもの、美しいものなどを言う場合、そのイメージを繰り返し言うような形で、枕詞を用いて強調したのである。そのような言葉の用い方の背後にはおそらく、かれらの生活の中の広い意味での信仰的な心情が作用していたものと思われる。日常的な言葉の通じあいでなら「夜」「母」だけで済むところを、あえて重々しいひびきを帯びたきまり文句として、「ぬばたまの夜」「たらちねの母」と言うところに、日常性からややあらたまった感じがもたらされる。その非日常的なひびきは、超越的な信仰の力とふれあうことにもなろうが、それとともに言葉による想像力を豊かで鮮明なものにしている。冒頭の二首から「ぬばたまの」や「たらちねの」を抜き取ってしまったら、そのイメージの鮮明度はいたく低下するであろう。

鈴木日出男『古代和歌の世界』、pp. 63-64、ちくま新書、1999年。

IME

上の引用を打っていたら、ATOK は「即して」を「則して」としてきた。それで気になったので注意しながら打ち進んでいくと、

  • 右の例に即して考えてみよう。
  • 「夜」は不思議なことの起こりかねない恐怖の時間帯であり、
  • そのイメージの鮮明度はいたく低下するであろう。

という箇所で、ATOK 2008 は最初の変換候補として次のようなものを出してきた。

  • 右の例に則して考えてみよう。
  • 「夜」は不思議なことの怒りかねない恐怖の時間帯であり、
  • そのイメージの鮮明度は委託低下するであろう。

気になったので、MS-IME 2003 に切り替えて同じ部分を打ってみる。

  • 右の例に即して考えてみよう。
  • 「夜」は不思議なことの起こりかねない恐怖の時間帯であり、
  • そのイメージの線明度は痛く低下するであろう。

最後の文は、MS-IME は文節区切りを間違っていた(その/イメージの/線/明度は/痛く/低下するであろう)。「痛く」は間違ってはいないけど、ひらがなのほうがいいだろうね。

経験上、MS-IME には、あまり使わない言い回しは間違えやすいという、ある種のわかりやすさがあるんですが、ATOK 2008 にはまたそれとは違った間違い方の癖があって、それにまだ慣れていないせいでことさらに癪に障るのかもしれない。

それにしても、いま現在、一般的な文章を連文節で入力・変換させてこの両者の結果を比べてみたら、巷で言われているようにほんとうに ATOK のほうがはるかにまともな結果になるのかどうかは、なんとも言えないんじゃないですか。ATOK をしばらく使ってみての、現時点での感想。けっして貶める意図はないですよ。それに、今回比べた MS-IME 2003 は、ATOK を入れる前までに一年以上使っていて、そのぶんの学習が効いているかもしれないし(だけどこの文章自体を入力するのは初めてなのだから、学習がそんなに影響しているとは考えにくい)、比べた以外の部分で大きく間違ったかもしれない。

MS-IME は 98 だか 2000 だかの頃に、学習を過剰に行うせいでしばらく使っていると突然変換効率が落ちるということがありました。だから仮にまっさらの状態で変換効率を比べても、一面しか測ったことにはならないのではあるけれど。

160/319

2008-06-25

木曜日に風邪を引いてしまって、それから何日もダウンしてました。みんな気をつけよう、今年の風邪は腹に来る。

ずっと寝てたので、枕草子は進んだんじゃないかというと、そんなことはなかった。エネルギーがないので頭が回らない。一行読む前に疲れてしまう。もう治りかけのときにちょっと読めたくらいでした。しかしそのちょっとの間に読んだのが、こんなだった。

〔一五八〕 うらやましげなるもの 経など習ふとて、いみじうたどたどしくわすれがちに、返す返すおなじ所をよむに、法師はことわり、男も女も、くるくるとやすらかに読みたるこそ、あれがやうにいつの世にあらんとおぼゆれ。心地などわづらひて臥したるに、笑(ゑ)うちわらひ、ものなどいひ、思ふ事なげにてあゆみありく人みるこそ、いみじううらやましけれ。

(意訳) うらやましく思うもの 経文を習うとなると、わたしなどは読みぶりもたどたどしくて、忘れて抜かしたりしながら何度も同じところを読むことになってしまう。ところが法師は当然だが、男でも女でもくるくると難なく読む者もいて、いったいいつになったらあんなふうになれるのやらと思わずにはいられない。気分や体調を崩してふせっている時に、にこにことおしゃべりをしながら事もなげに歩きまわっている人を見るのも、うらやましく思われてくることこの上ない。

病をしてみないとわからない健康のありがたさという。訳もしてみた(「くるくる」というのが気に入ったのであえて残す)。暇さえあれば古文関連の何かを読んでいたので、生活もずいぶん荒れてました。それで体調崩したのかもしれない。端的にいえば馬鹿です。

ところで dt 内に blockquote って書けないんですね。dt: 原文、dd: 訳文、としたかったのに。

LaTeX

枕草子を読みながら、最近、いくつか気に入った段を現代語訳するというのをやりはじめました。いまのところは、訳して、印刷して(PDF にして)、とっておくだけですけどね。で、当然縦書きで出力するわけですが、これはいったい何で清書したものか。WZ の縦書き印刷でもいいといえばいいんですが、やっぱり約物とかが間延びするし、内容上ルビを振りたいところも多い。そんなときのためを思って買った一太郎だろ、ということでちょっと触ってみたんですけど、いまどき Esc でメニューが出るようなアプリははっきりいって使いたくないと思った。それに、推敲はエディタでやりたいんすよ。

というわけで、TeX (pLaTeX) かよ、という話に。僕は TeX はあんまり好きでないのです。そのうちフロッピーディスクなんかと一緒に過去の遺物になるかと思ってました。なんかアドホックな感じの命令体系に見えたし、へんなロゴを出力させて自画自賛してるのもあほらしかったし、ソフト名の発音からして聞きたくもない蘊蓄がまとわりついていて、コミュニティは「TeX と LaTeX は全然違います」とかどうでもいいことを初心者に高飛車に言い放つ大人げない人びとの集まりに思えたし、変数名にすぐローマ字を使うし、命名規則の慣習が確立されてないし、名前空間的なものがないし、作者が死んだら手を加えるなとか言っているらしいのも気に入らなかったし、まああらかた偏見なんですが、あまりいい印象がなかったのですよ。だからいままで習得を意図的に避けてました。

しかし縦書きのきれいな PDF がコマンドラインから作れるのは、いい。誰も代替を作らないから、いつまでも残るでしょうね。

まさか推敲を TeX のソースでやる気はしないので、テキストファイルから TeX ソースに変換するテンプレートを作って、Makefile を書く。テンプレート言語には texttemplate.py を使います。おお便利じゃん、と自画自賛。

tex.tmpl
{% exec %}¥
encoding = '{% encoding %}shift_jis{% end %}'
import re
import sys

def filter(data):
  # {漢字|ふりがな} をルビにする。
  return re.sub(r'{([^|]*)¥|([^}]*)}', r'¥kana{¥1}{¥2}', data)

{% end %}¥
¥¥documentclass[landscape]{tarticle}
¥¥usepackage{furikana}
¥¥begin{document}

{% for line in sys.stdin %}¥
¥¥noindent {{ filter(line.decode(encoding)) }}
{% end %}¥

¥¥end{document}

これで、python -m texttemplate tex.tmpl < foo.txt > foo.tex ってやる。

それにしても WZ の縦書きサポートはたいしたもんです(編集は横書きでやってますが)。ちゃんと不具合をつぶしてくれれば、やっぱり Windows では最強のエディタだったんじゃないかな。惜しいことをした。

160/319