2007-04-30
|
マウスカーソルのブラウン運動 |
トラックパッドでは手首と指が疲れる。
原因はゆっくり大きく移動できないからだろう。
ThinkPad のトラックポインタなんかだと、力を掛け続けて(傾きを保って)いればそれができるのだが。
パッドの縁で指が止まったらカーソルを動かし続けてくれればいいのに、と引き較べて考えてみたりするが、無理だな。
そこで、マウスを買ってきた。
ELECOM の PALVO というシリーズ(「MRエンジン」搭載というもの)。
気になることが一つ。
少しでも斜めにするとマウスカーソルがブラウン運動のように細かく振動しながらあっちこっちにふらふらふらふら
(携帯で撮ってみた)。
きっちりした机の上以外では使えなさそう。
|
posted at 08:30:08
|
|
|
2007-04-29
|
地球環境をつくる太陽 |
桜井邦朋「地球環境をつくる太陽」地人書館(1990)。
先日の 地球温暖化論への挑戦 で気になったので太陽活動と地球環境との関係についての本を繙いてみた。
確かに太陽活動が活発化すると平均気温は上昇するようだが、その仕組みはよく解っていないらしい。
太陽から地球に降り注ぐエネルギーが増えれば温暖化につながると言っても、多く食べれば体重が増えるというのと同じで、ほとんどは排出されてしまう中で微妙な蓄積の効果のメカニズムを解き明かすのは簡単ではない、ということだと思う。
微妙な違いだけの問題なら宇宙空間に鏡を置くなんていう案も意外に正解かも。
使いようによっては、太陽活動が低下したときには逆に暖めるのにも使えるだろうし。
|
posted at 23:43:12
|
|
OmegaT |
matsuu さんが app-text/omegat をツリーに入れてくれました!
Gentoo Bug #91559 は「in cvs」の一言でクローズ。
関連項目:
|
posted at 23:02:40
|
|
renice |
renice したくなった。
が、ほとんど使わないコマンドなのでオプションを忘れた。
そこで man renice:
SYNOPSIS
renice -n increment [-g | -p | -u] ID ...
なるほど。
% renice -n 5 -p 15135
renice: 5: setpriority: 許可されていない操作です
15135: 古い優先度は 0、新たな優先度は 0 です
?
もう一度 man を見る。
RENICE(P) POSIX Programmer's Manual RENICE(P)
違うものの説明を見ているのか。
% locate renice | grep man
/usr/share/man/man8/renice.8.bz2
/usr/share/man/man1p/renice.1p.bz2
/usr/share/man/man1/renice.1
/usr/share/man/ja/man8/renice.8.gz
/usr/share/man/es/man8/renice.8.gz
/usr/share/man/pl/man8/renice.8.gz
POSIX が (1p) だから、本来見るべきは man 8 renice:
書式
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
-n が余計だった。
でも、tail でさえ -n がデフォルトになっているんだし、-n 付きを許してくれてもいいように思う。
ちなみに、renice.1 は renice.8 へのシンボリックリンクになっているのだが bz2 を扱い損ねているので役に立っていない。
(というバグが Gentoo Bug #176283 に登録されているのに今気付いた)
|
posted at 15:06:56
|
|
|
2007-04-28
|
夜のピクニック |
恩田陸「夜のピクニック」新潮社(2004)。
ナルニアを子供のときに読むべき本というなら、この本も若い内に読むべき本ということになるだろう。
高校の歩行祭という一昼夜歩き通す行事の中で、人間関係が微妙に変化していく様子を描いた実に平和な話。
|
posted at 18:21:04
|
|
|
2007-04-26
|
多分、風邪の前兆 |
強迫的な夢を見た。
私は三人から成る。
その内の一人が何がきっかけか不明だが分裂する。
二人にではない。
十人ほどに、短冊状に(人格は本来シート状のものらしい)、整然と分裂する。
分裂した人格は体の動きの制御を担当していた。
それが分裂したために、姿勢を変えることすら困難になってしまった。
残りの二人は意識担当(二人の間の分担は不明)らしいのだが、分裂状態を元に戻すべくああでもないこうでもないと検討を続ける。
リズムを揃えて同調すればいいはずだ、とか、トーナメント方式に統合しよう、とか。
理屈にも何にもなっていないが、とにかく、この分裂状態からの復帰だけをひたすら考え、試み続けるのである。
どの試みも失敗に終わり、メタな意識が「このまま寝たきりか」と思った辺りで覚醒した。
寝返りを打って起き上がれるのが、不思議だった。
|
posted at 20:41:52
|
|
|
2007-04-25
|
Good Job 2 |
かたおかみさお「Good Job 2」KC Kiss(2001)。
3日前の続き。
登場人物の名前がプロ野球選手(同じ部署内は(当時の?)巨人)ということに今更気づいた。
岡島と桑田で(二人とも今はアメリカだ)。
上原・元木・松井・二岡・清水…と1巻も改めて抜き出すとあからさまなんだけど。
えっと黒木っていう選手はいたかな?
ところで、1巻を買った本屋にはあと5巻だか6巻だかだけあって、今日買ったところは2巻だけ置いてあった。
他の書店では見掛けていない。
ドラマ原作でも、それほど売れないんだろうか。
|
posted at 20:56:48
|
|
|
2007-04-23
|
夏の滴 |
桐生祐狩「夏の滴」角川書店(2001)。
第8回日本ホラー小説大賞長編賞、だそうだ。
内容は怖いというよりおぞましい。
|
posted at 14:47:44
|
|
|
|
|
2007-04-21
|
Emacs 22.0.98 |
Emacs 22.0.98 にしたらグラフィックス(スプラッシュとかアイコン)が全て白黒になってしまった。
ebuild で何かし忘れていることがあるんじゃないだろうか。
ところで、emacs-cvs は SLOT の方針が変わって、22.0.98 ではなく 22 になった。
これでアップデート時には通常のパッケージと同様に古い方がアンインストールされるようになる。
つまり、22.0.99 を入れたら 22.0.98 は消える。
この変更により 22.0.97 はアンインストールされたが、こんなこともあろうかと quickpkg で残しておいたので、書き戻すことにしよう。
追記: USEフラグに xpm を足したら解消した。
|
posted at 22:02:56
|
|
|
2007-04-19
|
Idle 拡張 |
しばらく前に gentoo bugzilla に書いた BicycleRepairMan のバグ報告にコメントが付いていた。
コメント自体は大したことがなかったが、久しぶりに見直す気になった。
バグは BicycleRepairMan の Idle サポートに関するものだった。
それで、BicycleRepairMan の Idle 拡張というのを使うと、BicycleRepairMan というメニューが Windows の隣に現れるんだけど、その中身が空っぽ、というのが問題点。
明らかにこれは BicycleRepairMan のバグ。
だけど、BicycleRepairMan はほぼ死んだプロジェクトなので、多分誰も必要としていないのだろう。
私も実際のところ Python のリファクタリングツールとしては最近は rope を選ぶ。
だからいじる必要はない、けどやってみたい、というわけ。
まずは Idle にメニューを追加するメカニズムを知るべく、
/usr/lib/python2.4/idlelib/config-extension というファイルを読んでみる。
が、ヒントなし。
次に同じディレクトリーの extend.txt、そこで次のような文を発見した。
At the moment, extensions cannot define whole new menus; they must
define entries in existing menus. Some menus are not present on
some windows; such entry definitions are then ignored, but key
bindings are still applied. (This should probably be refined in
the future.)
大事なのは1行目の
今のところ、拡張で新しいメニューを作ることができない。
その代わりに、既存のメニューに追加しなければならない。
というところ。
これが、メニューに何も出現しない理由の半分。
もう半分はもちろん BicycleRepairMan_Idle.py ファイルの中にある。
が、その前にメニュー追加の機構を見ておこう。
An extension can define menu entries. This is done with a class or
instance variable named menudefs; it should be a list of pairs,
where each pair is a menu name (lowercase) and a list of menu
entries. Each menu entry is either None (to insert a separator
entry) or a pair of strings (menu_label, virtual_event). Here,
menu_label is the label of the menu entry, and virtual_event is the
virtual event to be generated when the entry is selected. An
underscore in the menu label is removed; the character following
the underscore is displayed underlined, to indicate the shortcut
character (for Windows).
要するに、menudefs という属性が、タプルのリストで、メニューの名前とメニュー項目のリストがその中身、という構造であればいい。
BicycleRepairMan の方に話を戻すと、実際、
BicycleRepairMan_Idle.py ファイルの中に、BicycleRepairMan_Idle クラス
があって、次のように定義されている。
class BicycleRepairMan_Idle:
menudefs = [
('bicycleRepairMan', [
...
見ての通り、'bicycleRepairMan' という名前は「既存のメニューに」ない。
というわけで、一番単純な修正方法はこの 'bicycleRepairMan' を 'edit' で置き換えること。
ただそれだと 'edit' メニューが見難くなってしまうが。
|
posted at 19:05:52
|
|
|
2007-04-18
|
カレー専門 |
昼食を国際交流会館の食堂に食べに行く。
新しい業者が決まったのではなくて、生協の臨時出店。
メニューはカレーだけ(トッピングとサラダぐらいはあるけど)。
それでも次々席は埋まりレジには行列ができていた。
|
posted at 00:25:52
|
|
|
2007-04-16
|
透明な一日 |
北川歩美「透明な一日」角川書店(1999)。
とりあえず人が死に過ぎだろう。
前向性健忘症の人の周りで起きる殺人事件と過去の事件と…という感じの筋だが、胃もたれするような読後感。
|
posted at 17:02:08
|
|
地球温暖化論への挑戦 |
薬師院仁志「地球温暖化論への挑戦」八千代出版(2002)。
地球が温暖化しているとしてもそれは二酸化炭素によるものではないだろう、もしくは百歩譲って二酸化炭素によるものと断定する根拠はない、という丁寧な疑問の提示。
第2章の特に70年代の寒冷化論との対比が面白い。
70年代は寒かったので寒冷化して氷河期が来るという説が流行し、その後80年代から暑くなると温暖化論が流行るというのは皮肉が利いている。
あんまり考えなしに信じてはいけない、という見本のようなものだ。
最後に温暖化の世間での受け入れられ方が問題の大きさに比べて軽すぎないか、という話があるのだが、案外無意識にそんなものでいいと皆が思っているのかもしれないと思った。
|
posted at 00:17:20
|
|
|
2007-04-15
|
ことえりのローマ字カスタマイズ(陥穽) |
「Windows風」でローマ字をカスタマイズすることには意外な落とし穴があった。
それは、Emacs で Ctrl-SPC が利かなくなる、ということ。
Spotlight に奪われてもいないのに M-x set-mark-command に逆戻り orz
MsimeRomaji.plist じゃなくて KotoeriRomaji.plist を置き換えてしまった方が良さそう。
|
posted at 17:38:24
|
|
ことえりのローマ字カスタマイズ(半自動) |
キーボード問題を抱えた linux は放置して OS X に戻る。
することは前回の続き。
本来ならば、キーストロークと出力の対応表から最終的な plist ファイルまで自動変換できた方がいいのだが、結構面倒なので、一部のみスクリプトを書いた。
キーストロークから、前回(ことえりのローマ字カスタマイズ(解読)) みたような遷移のテーブルに直すところは、手作業。
(ここがプログラムでどうにかしようと思うと、コンパイラを書くような感じになって面倒な部分。
キーストロークの最初が一致するものをグループ化するまでは簡単だと思うのだが、出力を1文字ずつに分割して割り振って、共通の遷移をまとめて、という辺りで場合分けを考えるのが嫌になる。
入力出力が1文字ずつという制限があるのがややこしい原因だと思うのだが、そんなことをいっても仕方がない。)
手作業では次のようにする。
- キーストロークとひらがな列の対応を思い浮かべる(書き留めてももちろん問題ない)
- キーストロークの最初が一致するものをグループ化しながら、遷移表に変換していく。
ただし、遷移先は適当なラベルにしておく。
拗音のパターンはいくつかに絞れるはずなので、まとめておく。
- 初期状態を一番最後に置く以外は適当な順番で、グループごとに並べる。
- 初期状態へのジャンプは -1 に、それ以外はグループの先頭行の行番号から1引いた数をそのグループへの遷移に付いていたラベルと置き換える。
こうして得られたものを csv で保存しておく。
ここで初めて次の Python スクリプト csv2plist.py を実行する。
(無駄に 2.5 でしか動かないように書いてあるが、ElementTree さえ適当なものに置き換えれば、3項条件式なんていうのは機械的に書き直せるので、大したことではない。)
出来上がった plist ファイルを /System/Library/Components/Kotoeri.component/Contents/Resources/MsimeRomaji.plist
と置き換えて(バックアップするとか、sudo が必要とか当然だよね)、ことえり環境設定から「入力操作」の「Windows風のキー操作」にチェックを入れる。
以上でカスタマイズ完了。
以下余談。
「遷移表」とか呼んでいたが、NodeFlags を命令、NodeValue を(遷移の条件でもあるけど)第1オペランド、Result を第2オペランドとして、命令実行後 Cursor にジャンプする、というある種の機械語みたいなものと思えてきた。
その意味で、適当にラベルを作業上導入したのもアセンブラにラベルを導入するのと動機は同じだし、ラベルを取り払って最後に実アドレスに落とさなければいけないという低レベルさ加減がよく似ている。
そういう比喩を思い浮かべても、前段階の処理の自動化ができるようになるわけではないんだけどね。
|
posted at 00:47:12
|
|
|
|
|
2007-04-11
|
keymaps |
そういえば何も考えずに MacBook は日本語キーボードにしていた。
色々なところで英語キーボード版を薦める意見を読んでいたはずだが、すっかり忘れていた。
というわけで、/etc/conf.d/keymaps に指定する KEYMAPS で悩む。
記号の位置は日本語キーボード(!"#...)で憶えているので、アメリカ式の配置(!@#...)はかなり打ち間違える。
でもパイプできないアンダースコアが出ないでは作業にならない(つまり、delete と右 shift の左隣のキーが利かない)。
最初に /usr/share/keymaps の下にあるファイルを開いてみた。
キーコードに対して出力される文字を対応付けるということぐらいしか解らない。
当然、man keymaps を読み、loadkeys, dumpkeys も読み、showkey というコマンドを知る。
そこで、件の二つのキーを叩いてみる。
が、みごとに無反応。
(他のキーもいろいろ押してみて、CD取り出しボタンが null コードを出しているのにびっくりした。)
結局、二つのキーは使えないと割り切って、jp106 を基本に ^ とか / とかのキーにコマンドキーで修飾したときに \ とか _ とかとして割り当ててみることにした。
と、ここまで書いて思い出したが、上記はあくまでコンソールでの話。
X はまた別なのではなかったか。
いっそ us で慣れてしまえという気がしなくもない。
えっと、チルダはどこになるんだっけ…。
|
posted at 23:51:44
|
|
rEFIt |
結局、rEFIt 0.9 を導入。
rEFIt からペンギンのアイコンを選んで GRUB 経由でブートできることを確認した。
ただ、GRUB のメニューで enter キーを含めキー入力が無視されているみたいなので、メニューの意味はなく、ひたすらデフォルトのカーネルで立ち上がるのを時間切れまで待つだけ、というのは微妙だ。
|
posted at 02:18:56
|
|
|
2007-04-10
|
Boot Camp? |
MacPorts を入れてみたが、Python 2.5 をインストール後に ipython をインストールしようとしても Python 2.4.3 のインストールが始まってしまうのを見て使う気が失せた。
ということで、かねてからの計画通り Boot Camp で Gentoo Linux を入れる。
DVD-R(近所のLAOXには CD-* はなかった)に minimal インストーラーの iso イメージを焼いておく。
Boot Camp アシスタントを起動してパーティションを作る。
Windows のインストールを始める、ということにして Gentoo のインストールを始める。
手順は Gentoo ハンドブック と gentoo wiki の MacBook のページを参照して。
えー、結果は、alt/optionキー長押ししたブートメニューに出てこない、ということになってる。
何がいけないのだか今のところ不明。
その他今日学んだこと。
- OS X で iso イメージを焼くためにはディスクユーティリティで「ディスクを作成」すればいい
- 起動時に CD/DVD ディスクを取り出すには、タッチパッドのボタンを押し続ければいい
|
posted at 02:27:28
|
|
|
2007-04-09
|
マルハナバチの謎 |
ヨシフ・ハリフマン「マルハナバチの謎 上,
下」理論社(1988)。
中学生向けぐらいの本。
著者はウクライナ生まれのロシア人ということで、主にそのあたりのマルハナバチの紹介ではあるが、日本のもそんなに変わらないだろうと思う。
前から気になっている(地域の問題か世代の問題か 参照)コマルハナバチを見たことがないのか、というのの答えとして生息地域が案外狭いという可能性もあるかという問題意識で読んでみたが、もっと具体的な生活の様子の描写だった。
それ自体面白くはあるが。
|
posted at 01:27:44
|
|
|
2007-04-08
|
ことえりのローマ字カスタマイズ(解読) |
テーブルを眺めている内に気が付いたが、NodeFlags の値 0,1,3,4,5 は3つのグループ {0,1}, {3}, {4,5} に分かれる。
そして 0, 4 という偶数バージョンはグループの終端に使われている。
ことえりヘルプには載っていない組み合わせも発見。
ca,ci,cu,ce,co で か,し,く,せ,こ になる。
まあ、これはいいが、jhi で「ざ」というのは何?
jyy と zyy は何も残さずに消えるし。
結構いい加減なテーブルだ。
と、これは余談。
前回あやふやだった Cursor の -1 は NodeFlags が {0,1} のときは初期状態に戻る。
初期状態が最後の組に当たっているので、Python 使いとしては解り易い。
このとき、Result を出力。
NodeFlags 3 は「っ」の出力にしか使われないし、このとき Cursor は常に -1。
どう解釈しても良いが、「っ」を出力して、入力を破棄せずに初期状態に戻り次の入力として使う、ということかな。
NodeFlags が {4,5} のときは、Cursor は -1 にならない。
ということで、Cursor が -1 の場合の動作も判明したので、全体をまとめておこう。
なお、No. の言及は前回のテーブルの数字から 1 引いたもの。
- サブテーブルとは、先頭の No. で指定され、そこから NodeFlags が偶数になるまで No. の昇順に並んだ、テーブルの行の集合である。
- 初期行とは、サブテーブルの一つで No.240 で指定されるもの。
実行の開始時点では初期行にいる。
- サブテーブルからサブテーブルへの遷移は入力に従って決まる。
- NodeValue が 0 ならば(サブテーブルはただ一つの行からなるはずだ)入力を消費せずに Cursor 値で指定されるサブテーブルに遷移する。
- それ以外の場合、サブテーブルの中の行で NodeValue が入力に合致するものがあればその行の Cursor 値で指定されるサブテーブルに遷移する。
ただし Cursor 値が -1 ならば遷移先は初期行とする。
- 残った場合、即ち、入力に合致する行が無ければ、初期行に遷移する。
- 遷移に際して、次の動作を行う。
- Cursor が 0 以上でかつ NodeFlags が {0,1} かつ Result が 0 ならば、エラーキューに NodeValue を送る。
- Cursor が 0 以上でかつ NodeFlags が {0,1} かつ Result が 0 でないならば、エラーキューに Result を送る。
- Cursor が 0 以上でかつ NodeFlags が {4,5} ならば、エラーキューに NodeValue を送り、出力キューに Result を送る。
- Cursor が -1 ならば、出力キューに Result を送り、出力キューを出力に流して、エラーキューを破棄する。
- Cursor が -1 でかつ NodeFlags が {3} ならば、上記に加え入力を一つ戻す。
- 合致行なしでの遷移の場合、エラーキューを出力に流し、出力キューを破棄する。
と、こんなもんかな。
|
posted at 07:21:52
|
|
|
2007-04-07
|
散髪 |
髪を切った。
前回大きく切ったのは、半年前ぐらい。
え、9月(散髪)?
半年どころではなかったか。
|
posted at 19:48:32
|
|
ことえりのローマ字カスタマイズ(光明?) |
KotoeriRomaji.plist の実質的な内容を html に直してみた。
初 XSLT なので、稚拙な部分もあるけど(というか 0 から番号を振る方法が判らぬ) pli2html.xsl で変換したのがこれ。
使ったのは xsltproc:
% xsltproc pli2html.xsl KotoeriRomaji.plist
で、なぜ 0 から番号を振りたいのかというと、番号(つまり出現位置)が実は意味を持っているらしいから。
たとえば、下の方の No.222 に NodeValue が s のところがあって、その Cursor 値が 187。
そして、187 でなくで No.188 に NodeValue が s で出力が「っ」というのが出てくる。
つまり、s を2度打つと「っ」が出力されることを表していると思われる。
というわけで No. は一つずらしたい。
あとは Cursor が -1 の意味が理解できればなんとなく読めたような気はしている。
あ、まだ NodeFlags の意味は不明。
|
posted at 18:08:16
|
|
|
2007-04-06
|
ことえりのローマ字カスタマイズ(挫折) |
そこにローマ字仮名変換がある限りカスタマイズしたくなってしまうものだが、ことえりは難しい。
とりあえず、/System/Library/Components/Kotoeri.component/Contents/Resources に KotoeriRomaji.plist と MsimeRomaji.plist というのがあって、これがローマ字の定義だということなのだが、実質的に整数値 4 つの組が240個ぐらい並んでいるだけの XML ファイルだ。
4つの数にはそれぞれ名前が付いていて、Cursor, NodeFlags, NodeValue, Result という。
NodeValue が打ち込まれるキーの ascii コードで、Result がひらがなのユニコードの、それぞれ10進値が入っているところまでは、何とか推測が付くが、残り二つの使いかたが判らない。
基本的にキー一つにひらがな一文字なので、接続状態の遷移を表しているのだろうが…ううむ。
|
posted at 22:34:56
|
|
Carbon Emacs |
とりあえずシェルと Emacs があれば困らないような気がするので、Emacs を入れた。
もちろん、デフォルトで入っているけど 21.2 とかだったので。
Xcode をとりあえず CD から入れておいて、emacs-22.0.96.tar.gz をどこかからダウンロード。
展開して configure に --with-carbon を渡してコンパイルすれば OK。
意外に判らなかったのが、Finder じゃなくて Dock に入れる方法。
実際はドラッグアンドドロップで良かったのだが、これに気付くまで設定ファイルを探してしまった。
設定ファイルはいじらない、ということを刻み込んでおかないと遠回りをしてしまうようだ。
あと、C-SPC が spotlight に盗られてしまう件。
M-x set-mark-command はありえないのでぐぐったら、環境設定で spotlight のショートカットキーのチェックを外せば良いと判明した。
これも慣れている人には当たり前の筋なのだろうが、案外手間取った。
ところで、昨日か一昨日ぐらいに 22.0.97 が出ていたみたいだね。
やれやれ。
|
posted at 01:10:40
|
|
|
2007-04-05
|
ピープルウエア 第2版 |
DeMarco&Lister「ピープルウエア 第2版」日経BP(2001)。
今さらながらピープルウエア。
読むと本当に今さら感が漂う。
他の本で引用されていたりしたのを見ているからかと思うが、見慣れた感じがしてしまう。
XP で推奨されている座席配置と、個室(2・3人共有)推奨の配置との違いを面白がるぐらいか。
|
posted at 01:36:16
|
|
|
2007-04-01
|
MacBook |
ついに MacBook を買った。
買う最終段階でメモリーが 512MB じゃなくて 1GB のものを選択したので、15万円余。
箱に入った状態で案外軽く感じたが、本体を取り出すとずっしり。
そもそもなぜ Mac かというと、Windows じゃないから、というのがやはり一番大きい。
Windows は痒いところを掻かせない仕組みがどうも好きになれない。
足の裏が痒いときに靴の爪先の遊びの具合に注意を向けないといけない、というか、足し算をしたいときにはまず電卓のボタン配置の説明からたどらないといけない、というようなもどかしさが煩わしすぎるので、必要性が無い限りは触りたくないのである。
Mac OS X はどうなのか、は良く知らないが、触っている内に判るだろう。
予定では、BootCamp で Gentoo Linux も入れるつもりでいる。
今のところとりあえず、マシンの名前を変えるには「共有」から辿ればいいということだけ学んだ。
ちなみにこれ、エイプリルフールじゃないので。
|
posted at 16:28:00
|
|