2006年 2月 (1)。

つねに消去法の人生ってヤーだなあ。

Last Modified: Sun Feb 12 04:44:18 EST 2006 (02/12, 18:44 JST)

Feb 12 [Sun]


(02:07)
Japan では、 司法は盲目なだけではない。かれらはストップウォッチを持っている。

日本は世界の中でも殺人の時効をはっきり守る国だそうだ。 日本の法体系のもとになったヨーロッパではすでに 多くの国が時効を廃止するか、より柔軟な基準にしているそうな。 過ぎたことはさっさと忘れろ、という日本の風潮がここにも現れているのだろうか?

どうでもよろりいが、いまやニュースで Flash が "Adobe Shockwave Flash" と呼ばれるようになっていることにショックを受けた。

(04:13)
そういえば、どうでもいいことですが、正月に フリーセルが好きなうちの母親に Pysol をインストールしてあげたとき、 Pysol for OSX のバイナリ がみつかんなくてさんざ苦労したのでここにリンクしておく。 ここを見つけるまでにすげーー苦労した。 Google で検索してもまったく見つかんないし。 これ、py2app で変換したんだろうけど、よくできすぎていてヤバい。 決して OS X ユーザはダウンロードしないように。音楽も鳴るしよ。 オレも自前で py2app 変換しようとしたんだけど、 こっちのほうがよくできてた。

Feb 10 [Fri]


(09:25)
オレは夢の中でまで新しい単語を発明していた。 最近わかったのだが、新山は日本語と同じように英語でも造語癖 (他の人が使っていない表現を勝手に作りだすこと) がある。 たぶんこれは母親から遺伝したのであろう。 ugh. 「なんでもカスタマイズしたがる」という傾向のひとつのような気がする。 つまり、言語もカスタマイズしなければ気がすまないのだろう。 だったら Lisp でマクロ使えよ。いやです。
(10:17)
諸君、時は来た!

いや、やめた。やっぱ来ない。

(14:26)
ブシュダイ棟梁の支持率下がってるらしけど次はどこと戦争すんの? やっぱイラン??
(17:17)
5時すぎ、きょう 2度目の食事をとっていると、 Ralph が学生をつれて来て一言、 「朝食中にすまないが、彼にアカウントを作ってやってよ」 といわれ、ムセる。

「ノオ! これは昼食ですよ!」

(19:48)
ふんげあ。新しくバージョンアップした (= ようやく移植が 2005年度版に追いついた) GLARF.lisp は 前よりもさらに強力になっている。依存関係があまりにきちんとしすぎているのである。 たとえば "the contested election (争われた選挙)" というフレーズでは、 "contested" が "election" を形容詞として修飾するのと同時に (A-POS)、 "election" が "contested" の目的語 (OBJ) であるということが導出されている。 ようするに contested と election のあいだで弧が循環しちゃってんのね。 いままでは、こういったケースは複文でしか出力されなかったので、 弧を二種類 (syntactic な弧と logical な弧) に分けることでループを防いでいた。 しかしいまや GLARF の表現力がありすぎて、この制約では不足になった。 こまったな。なにかいい手を考えなければ。

kterm が、一時的にスケスケになればいいのになああ、と思うときがある。 ふだん新山は端末を画面いっぱいにしているが、 ときどき ghostview かなにかの出力をみながら作業したいときがあるのだ。 しかし他のウィンドウを前面に出すと文字は隠れるし、 ウィンドウをあちこち配置するなどというめんどくさいことはやっていられぬ。 こういうときに端末がぼワっと透けて後のウィンドウが見えるといいよね…。

(00:56)
いろいろとさ…。

きょう、某国の某有名イット企業の方々がお見えになり、セキネさんと会談していた。 ふーーん。 なんでも、これから手を組んでアレなことをアレする方針なのだそうな。 ふーー〜〜〜〜〜ん。セキネ社も有名になったもんですね (あいかわらず日本での評判をぜんぜん知らないが、陰でボロクソに言われてそうな気もするのだが)。 で、新山も手伝う気ないか、と言われたのだが、 なんとなく気がすすまないので適当に逃げておいた。 でもそのあと「なんで気がすすまないんだろう?」とずっと考えていた。 (とはいっても、ずっと考えつづけているとバスにひかれて死んでしまうので、 厳密にいえば、バスの前を通る間だけは考えていなかったが。) 正直、よくわからない。でもあえて言葉にすれば、 なんか、インチキくさいんだな。 もちろん、原理的にはインチキじゃないのだろうが、 誰かが誰かをだましているように見える。 それが一般人なのか、企業なのか、あるいは研究者なのかは定かではない。 でも、なにかがどこかインチキだ。この感覚はなんなんだろう?

研究者や専門家というものが、 意図的に一般人を騙そうと思っているのでないことはたしかだ (まあ、なかには意図的にやってるのも少しはいそうだが、 そんなのは少数だ…と思いたい、大半の人々はそんなこと意識してない)。 だが、研究者が自分の研究結果を売り込むと、 結局は騙していることになってしまうような気がする。 なぜこんなふうに思うんだかわからないが… おそらくきっと間違ってるに違いない。 というか、「自分のやっていることになんの疑いも持たなくていい」という風潮が 怖いのかもしれない。どんな思考であれ、迷いがなくなったらそれは 「信仰」になってしまう。これは宗教の必要十分条件だる。 もちろん誰しもある種の思考は迷いなく行動するが (たとえば朝起きてまだ外が暗かったら太陽が消滅したとは思わずにまた寝るとか)、 IT っぽい仕事をやってる人に多い 「合理的」な人々に新山がなんとなくヤバさを感じるのはこういう部分かもしれない (相手がアメリカンだと特にそうなのかもしれないが)。 いや、べつに、世間的な意味ではヤバくないのかもよ? 金持ちになれるし。逮捕されたりとかはしないだろうし。 しかし人間の行動というのは本質的に“混乱”を内蔵しているものだと思う。 はっきりいえば、混乱してないヤツは信用ならないのだ。 混乱を隠すヤツはもっと信用できない。 うん? オレは一体何をいってるんだ? もう混乱してきたから中止。

まあ、彼らは、生活するのに忙しいのかもしれない。 こんなこと書いてるオレは暇人だからな、基本的に。

こんなことをいうと、そんなら自分はどうなのか、 ということになる。だがそれについてはまだ書かない。 あと 100年以内に書く。あるいはたぶん 113年以内。

Feb 09 [Thu]


(15:36)
シェルスクリプトを走らせているあいだに書きかえる方法がわかった。 こうする:
$ mv running.sh running.sh.old
$ cp running.sh.old running.sh
$ vi running.sh
こうすると、ディレクトリ上は running.sh が変わったように見えるが、 実際の sh はまだ running.sh.old の iノードを握っている。 cpmv の順番が違ってはうまくいかないことに注意。 さいしょに cp して mv ではだめなのだ。 はっきりいえば、さいしょに running.shrm しちゃって、 新しい running.sh をつくっても OK。 なぜなら POSIX の枠組みでは、ファイルの削除はそれを開いている最後のプロセスが 終了するまで削除されないからである。
(17:39)
明確な目標がないまま研究をしている人をみるといつもムカつく。 ここでいう「明確な目標」ってのは、精度を 5パーセント上げるとかいうことじゃない。 「それでなんなのか」ということだ。それがどう最終的にめぐりめぐって 世の中の役に立つのか、その見込みがどれくらいあるのか、ということを尋いているのである。 べつに一部の人々は学術研究が世の中の役になど立たなくてもいいと言い、 それはそれでオッケーだ。でもあんたがたはそこまで割り切れてないよね。 いつも「社会の役に立つ」というよね…。

偽善者であることを非難するつもりはない。 でも、堂々と偽善者であり続けるためには覚悟が必要だ。相当の覚悟が。 今のオレにはそんなものはない。

で、「こんなの嫌だ」と思ってほかに行くと、 今度はそこにまたもや腐った政治があるんだよね。 知ってるよ! 知ってますよ! あなたですか、花婿は…? もうけっこうですよ! あなたと口を聞く必要はありません! (by ラスコーリニコフ)

(20:36)
ports を expat-2.0.0 にアップデートしたら、firefox が起動しなくなった。 ので、ようやく 1.5 にアップデートする。 つうことは、あと数時間のあいだは firefox は使えないということだ。 つうことは、帰るか。これも動かなかったりして。

Apple はグラミー賞ごときで iTMS ユーザに spam を送るのをやめてほしいです。

それにしても freetype2 は去年の夏に仕事で使ったが、 ちょっとバージョンが違うだけで関数や定数が消えてたり、 名前が変わっていたりするので、 あのライブラリは信用できないと思った。 誰が開発してるんだか知らんが (Novell がやってるのか?)、 あんなのにインフラを任せられないよね。

Feb 08 [Wed]


(16:05)
やれやれ。現実のデータを相手にするといろんなやつがいるよね、やんなっちゃう。

昨日こんにゃろと思ったのは、引用符に \u0093 と \u0094 をつかう新聞と、 \u201 と \u201d をつかう新聞があるということである。 さらにいえば、ハイフンも \u0096 や \u0097 や \u2014 が混在している。 くそったれ。まあしかし世の中というのは混沌としているのでありまし
て。。。

(02:51)
この日記には多くの書かれないことがある。 とりわけ重要なことはとくに書かれない。

「…僕は、公の仕事で、僕の最も深い確信をぎりぎりの結論まで持って行った事がない。 つまり自分の最後の言葉というものを書いた事はない。… (中略) … 一体、或る思想の結論まで表現しようとするとそんな事になるのです。 彼等は勝手な逆説を立てる事が出来るのです。 もし最後の結論まで持って行かなければ、いかにも鋭い気の利いたものに見える、 見事な論文に見える。ところが、もし君が最後の言葉を発し、全く率直に (諷刺的な方法は全く避けて) 『これこそメシアだ』と言えば、 誰も信じようとはしないだろう。何故かというと、君は君の思想の最後の結論を 口にするくらい馬鹿者だということになるのだから。多くの有名な機智に富んだ人、 例えばヴォルテエルのような人が、もし暗示や諷刺や曖昧さを一切捨てて、 一と度己れの真の信条を吐露し、真の自己を語ろうと決心したなら、 恐らく十分の一の成功も覚束なかっただろう。嘲笑されたかも解らない。 最後の言葉というものを人々は聞きたがらない。 『一度口に出したら、その思想は嘘になる』というその 『口に出した思想』に対して、人々は偏見を抱いているものです」 (1876年 7月16日、ソロヴィヨフ宛)
-- 小林秀雄 「ドフトエフスキイの生活」

Feb 07 [Tue]


(09:52)
ぐわらn、ぐわらn、
(11:36)
大学へ来たらぶろーどウェイにまた FDNY が 3〜4台とまっていたので、 「あれ? またやっちゃッタ?」と思ったら、うちのビルじゃなかった。よかった。
(17:47)
Guido が NY で講演するらしいよ。

http://services.google.com/event/nyengopenhouse.html

google イベントには懲りたのでもう行かないが、こないだ予想したとおりのことが起こりそう。

どぅーでもぃいーが、やっぱり CLTL を買ったほうがいいのだろうか? ちなみに Adam から借りてきたコレは、今は亡き Digital Press (DEC の出版部門) の 1990年版だ。 オレは Python の本も (自費では) 買ったことがないのに、 好きでもない Lisp 本を買うなど敗北だ。しかし、けっこう「ハズレ本」はいっぱい自費で買ってるけど。

(19:45)
よぅーーゃくメモリ大量食いの原因が判明した。 GLARF では使う辞書があまりにもバカデカいので (全部で 50MBytes ぐらいある)、 ぜんぶ cdb にして使っていたのだが、新山の cl-cdb の実装は lookup した結果をいちいちキャッシュするようにしていた。 最初はどーせ辞書で使う部分はごく一部だろうから、これでもオッケーだと思っていた。 ところが、これが OK じゃなかった。辞書に入っているのは prop list のため、 こいつを read して intern して cons セルを hashtable にためていると ドカンドカンとメモリを消費してしまうのである。 キャッシュするをやめたら一気にメモリ使用量が減って、25M 前後のプロセスで落ち着いた。 これでも多いと思うが、cmucl は起動するだけで 15M ぐらい食ってしまうので まあしょうがない。symbol-table がじょじょに肥大してくのでどうしても動かしているうちに アレになるが、これはそのうち飽和する。cdb 自体がバッファキャッシュに乗るので スピードはそんなに変わんない。つまり最初から lisp 側のキャッシュなんて必要なかったのね。 これで問題はほぼ解決したけど、きょうも一日ずっとこんなことでつぶれたんで気が滅入る。もう帰ろ。
(21:39)
明日ヤルコト。 (と、書いただけで疲れてきたのでもうやめる)
(00:08)
明日ヤルコト。 (気をとりなおしてもう一度)

例のヤツを大規模に走らせる。 つぎにそいつの出力形式をちゃんと Python で解析できるようにして、 原始パターンの生成をおこなう。たぶんここまでで終わるだろうな、明日は。 ああそうだ、NE・照応解析結果ともマージしなければならない。 こいつはライブラリをちょろっと書きかえればできるはず…。 こうして文章に書くとぜんぜん大した作業じゃないにもかかわらず、 現実には手間ばかりかかる。ちっくしょうめ。うふーふ。

このように書くと、世間では「研究に精を出している」ってことになるんかもしれないが、 実際には内心は非常に冷めているのだった。 さっさと結果出してトンズラしようぜ、こんな○○○○○○。

学生の持ってる iPod のことを stupod という。たぶんみんなそう呼んでる。絶対。
EigodemoOyagagwazonsaisuru. Zettay,.

(01:25)
深刻な問題:

リチャード・ストールマン、 P2P について語る (LinuxP2P)

「私はもうクリエイティブ・コモンズには賛同しない。私はクリエイティブ・コモンズすべてを支持できない、 なぜならこのライセンスのいくつかは受け入れがたいものだからだ。 クリエイティブ・コモンズ・ライセンスのある部分だけを支持するというのはただの自己欺瞞にすぎない、 なぜなら人々はこれらをみな一緒くたにして考えるからだ。 かれらは少しでも何かに賛同すると、それ全部に賛同しているようにとってしまう。 だから私はクリエイティブ・コモンズ全体を拒否せざるをえない」

このページにある 「彼は政治家なぞよりもはるかに自分の主義に忠実だ」というコメントは正しい。 おそろしいおっさんだ。

slashdot のほうにもかなり笑える記事があるのだが、 ちくしょう、もう寝なきゃ。

Feb 06 [Mon]


(08:16)
それが面白いと思っていた時期もあったん
だよ
(10:02)
ニューヨーク在住の日本人に聞く、「日本はどっちの方向ですか??」的な質問: さて正解は何個でしょう。
(追記: いま気づいたが、この文には 2通りの解釈がある。 ひとつは「正解がひとつあって、それは『何個』という型で答えるもの」という解釈と、 もうひとつは「正解が複数個あって、いくつの正解があるかを尋いている」という解釈だ。 ちなみにこれを「何個が正解でしょう」としても曖昧性は変わらない)
(11:03)
まあ、こんなこと書くべきじゃないとは思うけど spam を送信する方々はなんであんなに下手なんだろ? いまや日本語の spam は「例の件ですが…」などとフィルタされそうな単語は 微妙に避けてある。うまいと思うが、ヘッダがまともでないので spamassassin とかの ルールではねられる。これをまともなヘッダで送れば、送信元の偽装は残るとしても コンテンツ的にはほとんど通常のメールと区別がつかないので、かなり騙せるだろうと思う。 こんなメール書くヤツ、ほんとにいそうだもん。しかしそれでもたいていの spam は To: をまともに書かないので、「To: が自分宛てでなく、メーリングリスト宛のメールでもない」ものをはねれば いまだにかなりの spam は除去できる。しかしこれもみんなやりだしたら駄目だろうな。 このあいだ前野さんと話したときにも出たのだが、 結局のところ spam を効率的に避けるには「マジョリティにはまだ知られていないルール」を使わざるをえない、 つまり自分をマイノリティにするしかない、ということになる。 これはセキュリティ全般に言えることかもしれない。 しかしこの考え方はどことなくズルくて選民思想的だとも思う。 困ったもんだ。自分としては、どこかで落とし所を見つけなけれべねれねいよ。
(19:14)
「ぐらーふぃ」で、これまで 1バグ去ってまた 1馬具、という感じだったのだが、 よぅーやくバグがほとんど直ったので、20000文ぐらいどりゃーーーっと処理させてみたら、 こんだはシリアスなメモリ不足問題にひっかかってスワップしまくっていた。 なんで GC しねえんじゃコヌヤロ。あーーーーもう、ムカつく。

きょうのプログラミ検証の授業は途中で寝そうになった。 寝不足かな。きょうはさっさと帰っちゃうぞ。

フザけやがらねえでくだせえ。まし。

(21:35)
またもや風がつよくてまあ大変。

じつは東北じゃなくて西北だったよ。都の。

(22:55)
きょうは一日ほぼ GLARF をいじっていた。自宅作業している Adam (彼は一週間のうち 3日間だけオフィスに出てくる) と、 GLARF の出力形式についてメールで議論する。 ふむ、どうやら問題は共有されているらしい。いいこった。

出力形式の設計について再考。 新山の研究では中間段階としてかなりいろんな形式のテキストデータを経由するので、 各段階で適切なフォーマットを設計してやらねばならない。が、 とくに大規模なデータを扱うようになるとフォーマットの設計は非常に重要になる。 なんしろ大量にバッチ処理するので途中でデータが corrupt したりすると あとが大変だし、データが多いと予想しない型の文がいくつも現れるので、 あらゆる入力に対して構えていなければならない。 もっと単純な構造のデータならいいのだが、これがやたらと複雑ときた。 新山は (あきらかに djb の影響で) 出力フォーマットをやたらと厳密にする傾向があるが、 こういうのって offensive っていうのかな。おもに考慮すべき事柄は次のようなものだ:

こういう場合のフォーマット設計というのはセキュリティの問題を考えるのに似ている…と思う。 なぜなら入力データにときどき悪意があるとしか思えないものがまじっているから。 しかしそういう連中にも適切に対処しなければならない。 そのうえ、悪意のない途中の処理過程が出した予期せぬエラーがまじることがある。 こうした出力でデータの一部が汚染されたときも、それが原因で データ全部がおじゃんになってしまってはこまるし、でも読み取りがあんまり複雑になって、 Python で (最大でも) 10行ぐらいで読み取れなければそれは意味がないしで、 なかなか制約が多い。結局のところ、堅牢さを維持するには 誤り訂正符合の設計なんかと同じように、短い間隔で“目じるし”をたくさん入れて、 それを見ながらシンクロしていくしかないと思う。 テキストデータの場合は改行がわりあい信頼できる単位として使えるのでまだいいが、 改行がいっこ抜けただけで数十行ぶんがおじゃんになるようではやはりこまる。 S式や XML は表現能力はあるけど解析はめんどくさいし、誤り訂正機能が弱いんだよなあ…。 ちなみに S式の解析って真面目にやろうとすると結構大変だよ。 たとえば ("\")\\\|" |")(\||) は文字列定数 1つとシンボル 1つをふくんだ 2要素のリストである。

はあー vnc2swf のバグフィックスをリリースしたいのだが… 時間がない

Feb 05 [Sun]


(14:58)
いーーかげん 2月なんだから、ちったあ寒くなれtte!

google://ちったあ/ (179,000)

(15:52)
んががががが、またもや不一致を発見 (はっけそ)。kusottaire. (くそってぃあ、と発音する)

CLisp あるいは CMUCL では、

> (mapcar '(lambda (x) (1+ x)) '(1 2 3)) -- エラー
> (mapcar #'(lambda (x) (1+ x)) '(1 2 3)) -- 許される
> (mapcar (lambda (x) (1+ x)) '(1 2 3)) -- 許される

ちなみに ACL ではみんな許される。 ACL がいいといっているわけでは決してない。 Adam の書き方がだらしなすぎるのだ。 こういうときはエラーを返してやるべきだと思う。

それにしても Lisp で 400行近い関数をデバッグするのはやる気がなくなります。 しかも、もともとのインタフェイスがよくわかっていない。 とりあえず (break "うんたら") をあっちこっちに仕掛けておいて、 あれこれデータを入力してみる。

で、Lisp に慣れてくると、こんだは Python 実行したときに

>>> (quit)
'Use Ctrl-D (i.e. EOF) to exit.'
>>>
とかやっちまう (でもエラーにならない)。くそったれ。
(19:09)
どうでもいいが、トリノ五輪ってばまだ工事してるらしいよ。 「どーせ一時的にしか使わないんだからテキトーにやっとけ」 と思ってんだとしたらイタリア人はえらい。てきとう君。

刹那主義にも許せる刹那主義と許せない刹那主義があって、 筋金入りの刹那主義というのはこりゃもう許すしかない。

(20:29)
だふいふわけく、湯どうふが食いたいです。 ユドウファーってピヤノのメーカーの名前??
(23:56)
ガキの献花の捨て台詞にみる時代の変遷…

むかし: 「先生に言いつけてやる!」
いま: 「弁護士の先生に言いつけてやる!」

いやはや、時代とは。

五番街 (ふぃっfふth・あう゛にゅ〜) を通ったタラ、 身体が押しもどされるほどの強さの風がビューコンスカビューコンスカ拭いていて、 最近が異常気象で助かった。これがもし -10℃とかだったら耳の一個やふたつは 簡単にロストしていたところだるよ
ね!!!!!!!!

ふう、今週末はほとんど洗濯と仕事だけで終わった。 しかし日記は微妙に狂っていてこんな具合でいい調子。

(01:39)
誰も割れちゃったハンプティ・ダンプティを元に戻せない。 でも、ハンプティ・ダンプティは割れる。勝手に。 というか、ハンプティ・ダンプティを割らないことには先に進めない。

「あまりにも有名」というのは、 「オレ以外の誰も知らない」という意味である。

(03:05)
ネット上にたくさんあるのに google が見つけられないもの: google://ホラを売る職業/ (0)

てくるで (ところ▽で)。

ネット上で「A氏と B氏は同一人物ですか?」などというのは、 ひどい人権侵害である。そんなこと言ってると訴えられっぞ!! かつての山形浩生のように。 そういう場合はむしろこう言おう。例:

以下りゃく。

Feb 04 [Sat]


(14:21)
こないだ買った、アーサー・ビナードの「日本語ぽこりぽこり」が 面白かったのだが、じつはWeb で連載されていた。 夜でもアーサー、とな。がははっhははっはあ

今日は微妙にテンショニが高い? そんなことはありません。

コーヒー豆きれた (ようやく? ではあるが)。 あと、4年ほど使っていたオチャワンが割レチャッタので…いや、 まだ完全に割れてはいないが、微妙にヒビが入ってきたので 新しいのを買うこと。あと果物。あとは支離滅裂。

「…チャッタ。」というのを、語尾をカタカナでかくと 微妙にアレらしく見える。はてなぜだろう? アレとは???

オ前ナンカニ教エルカ。

「エルカ」って何? イルカの親戚?

(14:48)
暗いし、おまけに雨ってる。暗いね (気分が)。

アイデアだけあっても実装能力だけあってもダメ。 人生そんなに簡単ではない (いや、簡単そうな人もいるが、 そういう人は見なかったことにしよう)。

しっかし、なんで consp があんのに nullp じゃなくて null なんだよ? atomatomp じゃないしなー、ぶつぶつ。

「カッコいいから (pun intended)」という理由だけで Lisp をやる奴はただの馬鹿である。 オレは断言するね!

Python の名前空間のアイデアはほんとに気に入ってる。 いっぽう、それ以外の言語の名前の扱いはどれもこれも気に入らない。 Scheme なども、名前を扱いだすとその単純さによるメリットは見事に瓦解する。 しかし Lisp や Scheme に Python のような「ドットによる名前区切り」を導入したところで、 それは決して Python のようにはならない。なぜなら Python では sys.stdinsys は 階層化された名前の一部ではなく、じつはだからなのだ。 なので eval('sy'+'s').stdin とやっても許される。 globals()[chr(11**2).join(('s',)*2)].stdin とやっても許さるる (やんないけどね)。Lisp では lisp:car(find-package 'lisp):car などと表現することはできないし、 S式の枠組みに収めようとしたら結局 (lookup 'car (find-package 'lisp)) などとしなければならないだろうから、ドット区切りにはなりえない。 Python のような言語は他にあまり例がない。 たいていの言語では「パッケージ」と「モジュール」の概念を分けているのだが、 Python は意図的にそれを同じくしてあるうえに、パッケージをファーストクラスにしている。 Java もパッケージの階層とモジュールの階層 (= ディレクトリ構造) を同じにしているが、 パッケージはオブジェクトではないし、 C++ ではパッケージの概念はあるが、std::ほにゃらら の std は式ではなく、 名前の一部である。

しかし Lisp は怖いもの見たさに探検しがいのある言語ではある。 eval-when とか special の取り扱いとか まだミステリアスなとこあるし、言語使用がデカすぎてワケわかんねえからな。 このあいだの「一貫していない言語ほど (自然言語としては) 普及する」という原理からいけば、 CL はもっとも自然言語に近い特性をもっているのかもしれない。 つまり Lisp 信者はユダヤ人のように団結力がある。 C や Python はいまから 100年たったら陰も形も残らないかもしれないが、 Lisp は 4000年たってもきっと残っているぞ。ヘブライ語のように! といっても、オレはこんなの嫌いだが。文句は何度もいってるけど、 でもなんか Lisp に対しては「気になるヤツだけど嫌い」という 愛憎入りまじった感情があるような気もする。どことなくね。

(ついき 2がつ6か: じつは Lisp もドット区切りの名前はサポートしていた。 パッケージによっては使っているのがある。し、slime でもサポートされてる。 しかししょせんは所詮。)

(21:47)
わかっているくせに。
(00:25)
わずか 1ピクセルの誤解。

いつも使ってるお箸が折れちゃったよ。 (というか、うっかり噛んで先っちょの細い部分をボキっとやっちゃったんだけど。) 買わなきゃ。

Feb 03 [Fri]


(19:54)
Common Lisp を持っている人は、以下の行を実行してみよう!
(setf (readtable-case *readtable*) :downcase)
こうするとドエラい世界に迷い込んでしまう。

もとに戻すには、こうする:

(|SETF| (|READTABLE-CASE| |*READTABLE*|) :|UPCASE|)
Lisp は C とは別の意味で自分自身を“破壊できる”言語だ。

ようするに、Lisp きらい。

今までどういう場合にシンボル表示で | | がつくのか 定かではなかったが、じつはこれは readtable-case によって決められていることがわかった。

> (dolist (rc '(:downcase :upcase))
    (dolist (pc '(:downcase :upcase))
      (setf (readtable-case *readtable*) rc)
      (let ((*print-case* pc))
        (format t "readtable-case=~a, print-case=~a, FOO=~s, foo=~s~&"
                rc pc (intern "FOO") (intern "foo")))
      ))
readtable-case=DOWNCASE, print-case=DOWNCASE, FOO=|FOO|, foo=foo
readtable-case=DOWNCASE, print-case=UPCASE, FOO=|FOO|, foo=FOO
readtable-case=upcase, print-case=downcase, FOO=foo, foo=|foo|
readtable-case=UPCASE, print-case=UPCASE, FOO=FOO, foo=|foo|

ちなみに、Lisp のもともとの関数は、最初の実験からわかるように ぜんぶ大文字シンボルで定義されている (これはたぶん CL 仕様書で指定されてるんだと思うが、ようわからん)。 (intern "FOO")(intern "foo") も、どちらも 内部的には正確にその文字列を名前にもつシンボルを返す。 ところが、表示のさいには readtable-case と違うケースの場合には | | がつき、 readtable-case と同じケースの場合には print-case にしたがって大文字/小文字化される。 なんて複雑。

ようするに、Lisp きらい。

しかもすべてのシンボルがデフォルトで大文字ってのがムカつく。 まあ、60年代からの伝統なんだろうけど、この点は scheme のほうがいいな。 まあ scheme のほうがいい点はほかにも山のようにあるが、あの言語はもう仕事で使う気にならぬ。 っていうか、Lisp も強制されなきゃ絶対やんないけど。

しかし、なんぜ readtable はあるのに printtable はないんだろうね??

(21:29)
S式の読み込みルーチンを 30分で書けないような奴は、 プログラマを名乗るべきじゃないと思う。 まあオレは 45分かかったわけだけど。

なんで Lisp でわざわざ自作の S式読み込みルーチンが必要か? というと、既存の read では、(. a) などの ドットを一個だけ含んだ式を読もうとすると必ずエラーになるからである。 メタ文字だと思っちゃうのね。 readtable とか macro-character あたりをいじればなんとかなると思って いろいろやってみたが、どうやらこれはトークンを読んだ「あと」の処理で エラーが出ているらしい。どーにもうまくいかんので、これなら自分で 書いたほうが早いや、たかだか数十行なわけだし、と思ったのだった。ケッキョキ。

(01:14)
きょうはネボったので遅くまで残ったが、残りすぎた。 Hobokenized されてていま帰宅。

Feb 02 [Thu]


(11:38)
風邪でサボり中。

現在の具合い悪さの内訳を以下に記してみると:

  1. 頭痛 (50%)
  2. ノドの痛み (30%)
  3. 同情をひくための仮病 (20%)

直接的には、たぶんきのうサーバ室で冷風にあたり続けた (ファンのすぐ前で連続作業していた) のが悪いのだが、 終わったあとの停電騒ぎでドッと来たと思われる。 だってさー、3〜4時間も作業して、やっと動いて、 そのあとダウンしたら「実は電源足りませんでした」ってなって、 2時間ぐらいすったもんだして、 「ダメならもとの部屋に戻してくれる?」 ってのは、そりゃあんまりだと思うわけよ。 てゆうか、オレはボランティアだ。給料よこせ! くそーー。フテ寝してやる。

いちおうきのう撮った写真:

(18:53)
せかされたので無理してオフィスに来る。 サーバがなくなったら今度は一転してサムい。 サムすぎ。なんでこんなに寒いんだ?? まあだいぶ静かになったのでその分仕事がはかどるけれど (と、期待)。 Advil を飲んで痛みをゴマかしているが、大学に来てもやはり身体の調子はそんなによくない。 昨日はサーバ室の電気をオーバーロードさせ、ついでに新山もオーバーロードしました。 って言ったらウケるかな。ウケないかモな。どうでもよろ。

きのうはあのあと別の電源に接続したが、 コワいので全部のサーバを立ち上げてなかった。 Andy と話した結果、結局のところ出た結論が "just try it" だったらしいので (なんじゃそら)、全部立ち上げろと言われおそるおそる電源を入れる。 2時間後、まだ動いているらしい。ということはオッケーか? でも今のところ負荷がまだ 40% ぐらいなのでいいが、 このあとみんな実験しだして電力消費が上がったらどうなんだか知らない。 オレにはこの手のセンスはぜんぜんないからな。 でも、オレの責任じゃないのでもういいや。

そういや昨日は遅くなったので結局 BSD のミーティングにも行けなかった。 OpenSSH-4.3 が出たんにまだ翻訳もしてないしな。 サーバ移動のせいでオレの何日間かはまるまるおじゃんだよ。くそったれ。 たかが 8台のマシンを 10m かそこら離れた部屋に移すだけでナンだよ?? たくもう。これが 800台だったらこれくらい時間がかかるのもわかるんだが。

(20:32)
scientific computing の授業に出るつもりだったが、 具合がよくないので帰ってきてしまた。
(22:59)
すこし復活してきたので翻訳 (ほにゃく) 開始!

Feb 01 [Wed]


(18:33)
うー、最悪の気分だ。 屈折 苦節 3ヵ月、やっとのことでサーバを移動したと思ったら、 サーバ室の電力容量をオーバーしたらしく Dan のサーバ群もろともブッとんだ。 まあどっちも UPS があったので最悪の事態にはならなかったが、 「容量は大丈夫」って話だったのにどうなってんだよ! くぬやろ。 今日はこのためにまるまる 1日つぶれてまっっったく研究できず。 もう死にたい。
(21:21)
こともありげに言うな!
(22:10)
Spam とは、「査読者のいない論文誌」のことをいう。
Yusuke Shinyama