2003年 11月 (2)。

本当にいい人、あるいは究極の悪人にしかできない表情というものがある。

Last Modified: Fri Nov 21 13:09:50 EST 2003 (11/22, 03:09 JST)

Nov 20 [Thu]


(08:06)
ウー

夢の中で、なんか、お前それどっから覚えてきたんだ? というようなワケのわからん知識を喋りまくっていた。 起きてみると自分がそんなことを聞いた覚えはどこにもない (し、確信をもった覚えも)。

(10:32)
電車の中で、フトったおばさんが隣にすわってきて大変だった。せまいのである。
(14:31)
「PowerBook につなぐ USB マウスが欲しいなあ」と思ってフラフラと大学の Computer Store に 出かけたら、気がつくと Apple 純正 Bluetooth Mouse を衝動買いしている自分がいた。

2ボタンでホイールつきのやつを買おうと思ってたのに、どうしてくれるんだ! 1ボタンしかないz!

でもワイヤレス… (ぐふふ)。 このマシンは lid-closed operation (画面を閉じたままでもマウスがつながっていれば操作可能) を サポートしているため、プレゼンのときに便利かもしんない。しかし自分はじょじょに Mac 信者化汚染されているのではないかと心配になってくる。まあそんなに使ってないケド

google://自分がいた/ (約36,500件)

(16:20)
automake きらい。こんなもんを流行らせたアホは誰だ。 はっきりいって、空の NEWS や毎回毎回おんなじ INSTALL ファイル (基本的に「./configure しろ」としか書いてない) をつけて何が楽しいのか理解不能。 これのせいで、くだらないプログラムでもなんだかやたらとファイルが増えてしまい、 みにくいことこの上ない。たぶん、これは 「容量が大きいとスゴそう (あるいは、カッコよさそう)」というガキっぽい感覚に よるものなのだろうが、どことなくお菓子の過剰包装にも通じるものがあるように思う。

そもそも configure という発想自体がアホだ。 単にバグの入りこむ可能性を上げるだけで、おまけにたいていはメジャーな アーキテクチャでしかテストされていなくて (ひどいときには RedHat でしかテストしてなかったりする -- どうでもいいけど pfaedit の configure は freetype を探すのに find / を 実行してファイルシステム全体を検索するが、何かのイヤガラセ?)、 いざマイナーな環境でビルドしようとするとえらい苦労する。 こんな中途半端な自動化に手をかけるよりも、 素直なよみやすい Makefile を書いて、 機種ごとのていねいなインストール文書を用意するほうがよっぽど親切だ。 最近、機能の充実はドキュメント不足の言いわけにはならないと思うようになった (djb 関連にもそれはいえる)。 このアホさ加減には、「ソース真理教」のようなものも一役買っているような気がする。 Makefile も読めないのに「なんでもソースから入れればいい」と信じている アホが多いせいだろうか。

ところで日本人って基本的に小さいものがスキなはずなのに、 お菓子とかソフトウエアパッケージとかは恐しく「デカいもの信仰」だよね。からっぽなのに。 昔のワープロソフトとかは、フロッピー数枚のまわりに 30cm ぐらいのスポンジがつめたパッケージで売っていた。 大は小を兼ねる、というが、これはデカければ騙されやすい、ということなのか?

automake の話に戻るが、たぶんこれは VisualStudio とかによくある「Wizard」のようなことを やりたかったのかもしれない。つまり「ナニカのテンプレートをお手軽に生成できます」ってやつだ。 しかし実際には、この手のやつは余計な労力を増やすだけだと思う。 Wizard 的ツールの批判はずっと前からされているけれど、もしもある複雑な問題があって、 それをこうしたツールである程度軽減することができればそれはいいことだ。 だが実際にこれらのツールがやっていることは「複雑さを軽減する」のではなくて、 ただ単に「余計複雑にして誰も文句がいえないようにしてるだけ」なのである (うん、こりゃあ、我ながらなかなかいい洞察だ)。 コードのカサを増やしてわかりにくくしているだけ。 この手の「量で勝負!」的なエセテクノロジーを見ると、いつもがっかりする。 Windows なんかほどんどこれだよな。現代のソフトウエアのかなり多くがこの罠にひっかかってると思う。 オマエなー、そんなとこに man-month を費やすんならもっと基本的な設計に時間かけろよ、 一度失敗した料理は何を足してもまずくなるだけって、マーフィーの法則 (昔はやった) にも書いてあるだろうがよ、え? と思うが、誰か、「ソフトウエアにおける上げ底文化」というテーマでこのテのことを研究しないかな。 これは結構重要かもしれないと思うんだけど。

(21:26)
ギャエー! 久しぶりにマイケル・ジャク損のツラを見てしまった。 nytimes はこんなものをトップに載せるな! しかも「Enlarge this image」って、誰がそんなものを enlarge するというんだ (といいつつ怖いもの見たさで押してみる新山)。

どうでもいいが、占いクッキーを入手したのでここに記しておく。 このクッキーはディスクに保存されませn:

Reconcile with an old friend.
All has been forgotten.

Lucky Numbers 3, 14, 23, 33, 43, 45
なんだこの偏った数字の頻度は!
(22:51)
LaTeX Equation Editor というソフトをインストールしたら、バケモノ的に便利だった。 LaTeX のコマンドをパコパコとタイプすると、ウインドウ上に数式が現れる。 あとはこれをそのままドラッグして Keynote 上に貼りつけるだけ。形式は PDF。激簡単。 グラフもこれまた gnuplot + AquaTerm で PDF 貼りつけ。すべてが PDF ベースだから、 拡大縮小してもぜんぜんアラが目立たない…。 ヤバいよ、この便利さは。スライドの数式に凝りすぎると悲劇が起こる。。。

ところで、こないだの Dan の授業で、誰かが Prosper という TeX のマクロをつかって PowerPoint そっくりのスライドを作っていた。 プレゼン自体はダメだったが、このソフトはフリーのプレゼンソフトとしては なかなかいけるかもしれない。というのは、一部の人々の間で有名な MagicPoint ははっきりいって画面レイアウト (文字のマージンとか、Bullet-文字間の距離とか) に 微妙なセンスの欠如を感じるからである。微妙なね。 仕組み的にも C を使って X11 べったりハードコーディングしているような 部分が多く、好きになれない (でもこれはたぶん時代のせいもあるんだろう、 今ならこんなものを C + X11 で書く人はいないだろうから)。

なーんか、国産の unix フリーソフトってそういうの多いよなあ。 数が少ないからアラが目立つのか。 日本人プログラマにセンスがないなどと言うつもりはないんだけど。 (訂正: OpenOffice も KOffice もたいしてセンスはないので、これは MagicPoint だけの問題じゃない)

(00:20)
電車おそかった。車内で考えたこと。 結局、ソフトウエアの開発も「説明」と同じだ。基本的に単純なことは単純であるべきだし、 単純な問題を解決するのにわざわざ複雑なプログラムを提供してみせるのはドアホウ (= ドア砲、秘密平気の一種) である。 むかし、ESR が「ハッカーになろう」という文書の中で、 「世の中は解決をまっている問題でいっぱいだ」と書いていて、それを読んで、 うんうん、なるほど、と思ったものだった。しかしそれは我が若き日の若さ(=バカさ)加減というもので、 今はそんなふうには思わない。むしろ、ひどく幼稚な考えに思える。 ようするに、この手の「問題」を解決したがっている 「ハッカー」の多くは、簡単な問題をわざわざわざわざ複雑な方法で解決しているだけなのかもしれない。 あるいは、無から問題を勝手に作りだして自分で解決して悦にいってるだけなのかも。 たしかにそういう“問題”ならたくさんあるだろうよ、無限にね! もちろん技術屋は技術的な解決策を考えるべきだと思う。それはたしかだ。 でも、多くの問題には技術以外の要素があり、ときにはそっちで解決するほうがずっと簡単かもしれない (ということをこのまえ前野さんに話したら、そんなのは当たり前、学問以前の話、と言われてしまった、そのとおりで)。 しかしこれもまた問題の程度による。 いくつかの (ソフトウエア上の) 問題は、本当にくだらん会議をやっている間にコードを書けば 解けてしまうようなものかもしれない。 でも、本当に難しい問題は、それを解くのにも、そもそも問題がそこにあると 気づくのにも長い時間がかかり (もしかすると何百年のスケールで)、それは数時間のひらめきなんかではとても解けず、 ましてや会議で解けるはずもなく、それを解決するには長くて暗〜い努力と不安と、 人の一生よりもずっと長い時間が必要なものなのか、もしれない。 頭のいい人が本当に労力を割くべきなのはそっちなのだが、自分が生きているうちに自己満足を求める人間を いったい誰が非難できるだろうか? 自戒をふくめて。 でっかい時計を作ってごまかしてる場合じゃねえ。
(01:15)
さっきのつづき。プログラミングと説明の類似は比喩以上のものがあると思う。 一般にプログラマはとくに説明をごまかしがちだが、 腐ったマニュアルしか書けない奴は、コードも腐っているにちがいない。 「情報」の授業ってどんなんだか知らないけど、www の使い方とか クダランこと教えてる暇があったらまともな日本語の作文を特訓させろ!

ああ、きょうの日記もまたブログロ的だ。 いかんいかn

Nov 19 [Wed]


(09:14)
またネットワークがキレてる。雨だからか。 けさはひどい夢をみた。海外旅行しようとしているのに荷物を大幅忘れ。 おまけにビザの記述は間違っていた。そしてなぜか空港で夜をあかすことになり、 いきなり場面は変わって、サムかった…。

誰も見ていないときでも依然としてこの日記は書きつづけらるれるということに留意せよ! わかったか!!

offline 時の内容
[Nov 19, 2003] (11:48) またネットワークが落ちております。ログによると今朝6時ごろ。雨のせいか?

(12:51) Palladium の話をよみ、暗くなる。コンピュータにまつわる 政治的な話に新山はあまり興味がないが、技術的に腐った話はむかつく。 しかしこれはおそらく感覚の違いもあるだろう。新山はそもそも 人生すべてにおいて単純であるべしというモットーなのだが、 世の中には複雑さに依存した生活を好む (そして何も感じない) 人が多いということだろう。 もっとも、日がな端末に向かっている人間にそんなことを嘆く資格はあるまい。 どうでもいいけど BOA といえば CORBA かと思ってた。ポアといえばコルバだね!!!1

(16:42) 机の上がちらかってるやつあアホだ。

新山: アホ

(21:31) オレが悪いのかな…。落ちこんでるうえに この記事 をみてしまったらさらに落ちこんだ。意図が明白すぎる。

(23:28)
まだつながんない。くそったれ。

Comcast に電話したら (このサポート窓口に電話するのももうだいぶ慣れた)、 近所からも似たような文句があいついで来ているという。電話に出たオペレータは 「ただいまの Jersey City 全域のモデム応答率は 40% だ、これはきわめて低いので、 他の家も同じ問題があると思われる。でもおもしろいね。Jersey City の 修理サービスの予定は月曜までぎっしりつまってるよ」という。 おもしろがってる場合じゃねーよ! しかし残念ながら今新山ができることもまた 月曜日まで待って、修理サービスに来てもらうことしかないのだった。 まったく、ビンボな地域はこれだもんなー。いかにもいい加減そうだもん、 この街のインフラ。なにもかも。まあアメリカ全体がいいかげんそうなのだが、 このはさらにひどい。

つねに正しい人は、悪人よりもずっとつらいのかもしれないな、 と考える。つまりあっさり自分が悪であると認めてしまったほうが ラクだということか。人はそれをさして堕落という。

おーっと! 気がついたらこのページは、ふつうの日本人的日記よりも ずっと“ブログロ的”なことを書いているでわないか!!

(00:19)
a、きた。
(01:07)
そんくらい正当化できないとやっていけないじゃないですか、まったく。ねえ?

Nov 18 [Tue]


(08:23)
今日も曇っているが、朝めざまし時計がピィピィ鳴っているので フトンから手をだしてなにかをつかんだら、それは時計じゃなかった。 お前か!

* SIGH *         
(10:39)
うわ、ダメじゃん! 最悪!
(12:08)
カウヒーがさめてしまった。。。DEC が来ている間に飲まれてしまうよりはいい。。。 (参照: 過去の日記)

なぜなら、まだそれはそこにある (断定)!

(12:56)
NFS の書き込み速度を測定する危険な方法を発明した:
$ cp /dev/zero a & sleep 10; kill $!
[1] 9217
$ ls -l
total 233872
-rw-r--r--    1 yusuke   239140864 Nov 18 12:54 a

22MBytes/s か。まあまあ

(ちなみにローカルディスク上では 80MBytes/s, SCSI AIC7899+SEAGATE 使用)

(14:25)
ミーティング。実験の数字を報告しなければいけないのだが、 かわりにネットワークのスピードを報告してごまかした。
(15:33)
ゴヂバ (Godiva) は本当にウマイのか?という問題について。

新山は日本にいるときはゴヂバ (Godiva) なんて食した経験がなかったが (そもそも名前すら知らなかった)、こっちに来てからは B&N (本屋) の レジのカウンターの前に置いてある $2.5 のアーモンド入り板チョコを 2回買ったことがある。日本でもこれが売ってるかどうかは知らないが、これくらいなら まあ許せる値段だ。しかし、いつもヘンな香料が入っているのを感じる。 おまけにブロックの大きさもやたらとでかく、口をあんぐり開けないと入らない下品さ。 クサットル! もっと高いやつを買えばウマいのかもしれないが、オレが好きなのは みょうに飾りつけしたやつじゃなくて、シンプルな、単に「板チョコ」なのだよ。 はっきりいって、ここで入手できるチョコレートの中では Ritter Sport の Dark が一番だと思う。 このプレインなウマぶりを知れ。このソボクさ (しかし甘さが少なめなので、 アメリカンには甘さが感じられないのかもしれない)。 日本のメーカーなら明治にかぎるね (ミルクチョコレートの板チョコ版のみ、 一口サイズになってるやつは明らかに味が落ちる)。それ以外は氏ね。 ゴヂバ (Godiva) は気取り度では No.1 だが、気取ってる奴の口が臭かったり することは往々にしてあることである。

ウマぶり」で Google 検索したら「激ウマ! ぶりの照り焼き」などという 文字列を発見してしまい悲しくなった。チョコレートよりもそっちのほうがずっと食いたい。

(16:42)
二人目を発見。やあやあいらっしゃい。あなたもまた、お仲間ですね? さあどうせ我々はどうせどうせ地獄です、ここは。 先の見えない落ち込みへようc.so.6
(18:43)
ASTEC-X で sshd にログインすると lastlog にホスト名が残らなくて気持ちわるいんだけど、なんとかならないの?
(19:59)
ようやく腐った sawfish-1.2 を抹消して、sawfish-1.0.1 に戻すことができた。 ウインドウマネージャが悪いと何もかもダメになるから。 さいしょ sawfish, sawfish-themer だけを再インストール (ダウングレード) したら、 なんかうまく動かなくて、あれあれ? と思っていると、じつは librep や rep-gtk も 古いバージョンでないとだめだということが判明した。クソったれ。 これって、依存関係がまちがってんじゃないのかな。 とにかくこれらをさっぱり削除して RedHat 7.3 のパッケージをいれたら、 もとの環境にもどった。何度もいうが RedHat 9.0 は最悪。この調子だと Fedora も最悪なんだろう。できることなら全部 7.3 に戻したいが、 やめといたほうがいいだろうなあ。今回の件で、やはり「バージョンアップ = 改悪」という イメージがしみついてしまった。米国にはまだ RH6.2 に stick してる人も結構いる (Adam とか)。

かつて Mac が漢字 Talk 7 に改悪されたとき、 7 → 7.1 → 7.5 → 7.5.1 とどんどんひどくなっていくのに ア然としたものだった。

(21:24)
DOESN'T IT WISH ITSELF DOES IT?

これは新しいポリシーだ。かもしれない。おそうじ。
それにしても締め出しはきついね。今日はそれほどサムくないからまだいいけど。も。

google://モーソニスト/ (0)

(23:06)
いやはや、見ず知らずの人にファンレターを出すのはむずかしいもんだ (英語だとなおさら)。

てくるで (ところで)、英語で "What not?" という言葉がある。 これ、Franchitti せんしえ (せんせい、と打ちまちがえた) とかがよく "COM+, .NET, RMI, ... what not?" というふうに使っているのだが、 いままでよく意味がわかんなかった。 ようするにこれは "etc." みた[i]なもんかと思って、このあいだ こないだ Ralph にそう尋くと「ああそれはなかなかいい近似だね」ということだった。 しかし、いまだになぜ "What not?" が "etc." の意味になるのか、 自分の中ではさっぱり感覚がつかめん。

google://自分の中では/ (約 53,800件、約ですよ)

(00:32)
こないだ: 7 → 5
今日: 5 → 7

いい歳を目前にして、さいきん幼児化が振しつつある。 具体的には、ギ音病気が進行中 (祇園とは関係がない)。 何かをたたくときに、かならず「とんとん」と口に出してしまう。 お茶っ葉を捨てるときに、「こぷこぷ」と口に出してしまう。 ヤバイ。アルハイか??

いやこれは別の世界への入り口だと考える。 どっちにせよ、ろくな世界じゃない。

ろくな世界じゃない世界から、ろくな世界じゃない世界へ。ろく世界 → ろく。

Google をインスピレーションの道具にしているオレは、 もしかしてデータマイニングな男なのか (わけ不明、あるいは 100万人のごみ減量大作戦)。

Nov 17 [Mon]


(09:18)
朝になるとすべてが元どおりになっていた。 言いかえれば、それは世界が自分自身を守るために本来持っている性質であるが、 その憶病さのために外には出さないのだった。

オー、さっそくこれだよ。

(10:41)
文字をタイプうるのに考えなけれべいけねいというのは大変不幸なことである。 だから流れるやうにキイボードを撃つことだけは避けなけれべねれねい。 よう→やう。?。それからまたしても忘れるところだったが、今日のゴミ出しを! 曇っている日は曇っているし、寝坊したからとて何も揺すられるものはないということ。 それから、それから? もうひとつあった。テッシ (ティッシュ) で花をかむのは 環境破壊のためにやるべきだ! ちなみに英語では di のことを "d sub i" と読み、xp のことを "x to the p" と読む! それが!! ところで「固有値」のことはなぜ eigenvalue などというドイツ語っぽい名前で呼ぶんだ?
(11:05)
ああ
捨てたん
だっけ
(12:42)
なるべく場合分けの数を減らすこと。それである。
(13:58)
今日は誰の日記も見ない。宿題たまってるから
(14:22)
しっかし、場合分けの数は減らねーー! 三角形のクリッピングを高速にやる「すばらしく賢いやり方」ってのはあるんだろうか? ぶつぶつ。
(17:06)
やっと動いたーーーー!! しかし締め切りの2時間前にアルゴリズム大幅改変ってどうよ? オブジェクト指向万歳。
(21:09)
一日疲れれば二日つかれる。まあそういう事。

二重に…いや、書くこと忘れた。遅れている

(22:52)
哀しい日だ。なにがかなしいかというと、やるべきことが全部できなかったからだ。

新山は such a 仕事人間であるため、日々のノルマが達成できないととても悲しい。 しかし毎日ノルマは達成できないので、悲しくない日はその日のノルマを 忘れたときだけである。まあしょっちゅうわすれてるからいいけど。

今日の原因は、ひとつは朝ノラクラしていたこと。 そしてもうひとつは、やりすぎなことだ。 ったく、オマエは凝り性すぎるんだよ! 帰りの電車の中で、フォント作成ツールと言語の文法について考えていた (この 2つの単語にタダナラヌ関係を発見したあなた、は少々狂っています)。 おなかが経ったが、まずはシャワーをあべるべし。

ひとつの想像。いまはまだ学生だから毎日勉強だけしててもなんらかの development があると 思っていられるが、これがほんとうに毎日が同じ仕事で、なんの進展もく、 ずっとこの調子の忙しさで続いたら精神病むだろう。

それにしても、30過ぎてまだ学生なんて! (予定)

(23:25)
シャワーをあびてから、残りごはんをあっためたら、 なんか頭が爆発してきた。
(23:47)
正気にもどってみるとぜんぜん面白くないんでちょっくら死んできますわ。

Nov 16 [Sun]


(10:42)
人生の敗北者スレ経由で 石本さんの example (2003/11/13) を知る (ふだんは見ていないのです、すみません)。 でも、あの例じゃダメだと思う。というのは Feeder 側がまともなループになっていないから。 新山の想定しているのは、 というパターンなのである。現時点の Python で厳密にこれをやるにはマルチスレッドしかないのだが、 やりたいのは「協調」動作だけであって、原理的にはべつに両者が「並列」動作する必要はない。 たとえば generator と同じような新しいタイプの型 (receiver と言うことにしておく) を 導入すれば、たとえばこんなふうにかけるかもしれない:
def feeder(): # すぐに generator を返す
  while 1:
    yield なんか # 値が receive されるまで止まる
  return

def consumer(): # すぐに receiver を返す
  while 1:
    do(reverseyield()) # 値が feed されるまで止まる
  return

def pipe():  # 本物のループ
  r = consumer()
  for x in feeder():
    r.feed(x) 
  return

Lua の coroutine ってどうなんだろ。あれを使えばこういうのが書けるのかなあ… 継続 (continuation) を使えばできるというのはわかるのだが、 汎用的な継続を直接ユーザにさわらせる言語よりは yield などの構文でくるんでおくほうが 好きである。継続については最小主義がいいとは思えない。継続をそのまま使え、というのは 「for も while もなくしてループ制御には if と goto だけを使え」といっているのと同じだ。 しかし問題は、今回のように「yield だけでは不十分」といった場合にいったいどれくらいの 「亜流 yield」をつくればいいのか、ということだ。同じことはループ制御にもいえる。 for や while では十分でなく、どうしても goto があったほうがいい場合もあるかもしれない。 Knuth は goto が好きで、 「文芸的プログラミング」ではそういうケースをいろいろ考察していたが、そういうことが 実際どれくらいの頻度で起こるかによると思う。 ここでも結局、バランス感覚というか、その人のセンスの問題になる。 ちなみに新山は Knuth せんせいのバランス感覚がまともだとは到底思えない。 (というか、あの人はあの暴走ぶりが芸風だと思うので別にいいのだけど)

ところで、ここでこうやって他人の日記に応えるのはまったく好きではない。 「特定の人間がここを読むだろう」と仮定するのはとにかく嫌いなのだ。 だからいままでこういうことはしなかったのだが、 たまたま言及されてるのを見つけてしまい、見てしまったからには無視するのは申しわけないのでここに書く。 ホントは石本さんの wiki に書きこみたかったのだが、だめだったので。 その人のページに掲示板なりなんなりがあるなら、そっちに書いたほうがいいと思う。 やっぱ人の日記なんて見るもんじゃないのかもしれない (あるいは 2ちゃんねるを見るべきじゃないのかも)。

ちなみに新山のサイトに掲示板とかコメント昨日とかがまったく提供されていないのは、 べつに双方向の通信を目指してはいないからである。 というか、じつは一方向のコミニュケーションさえ目指していない。 「伝達する」のではなく、ひたすら「記述する」のが目的だから、最初から自分以外の読者は 二のつぎなのだ。いちおう、不特定多数の人に見られても大丈夫なようには書いてるつもりだけど、 だからといって不特定多数の人に向けて書いているわけではないと思う。 でも世の中には「www で公開している == 不特定多数に向けて発したがっている」と思いこむ人は 意外と多いらしい (だから「自意識過剰なヤバい人」などといわれるのだろう…)。 わかってねーよな。顔も知らない人間が1日に何万人も見に来たところで、こっちはうれしくもなんともないん
だ。

ああまた「コミニュケーション」って書いちゃった。ミとニが似ているのがわるい。 おまけにキイボードも、隣だし。

(12:26)
さっきのことに関連して、 世の中は互いに理解できない多数の集団に分断されており、 オレはそのうちのいっこのセグメントにいるだけなのだ、と考える。 そこには boundery があって、挨拶やその他の慣習というのは その外側とやりとりするための出入口、インターフェイスにすぎないのだろう。 それをさして人は「尊重」と呼ぶ。

くだらん!

だいたいこんなことは全部オレの人生にはどうだっていいことだ。 オレはただ適度に使える計算機と言語がありゃあそれでいいん
だ!! それなのに何をオレはまったく…ぶつぶつ。

(12:58)
ここ半年ぐらいの間に自分がプログラマー板で見た (色のついている) スレッド名をあげてみると、 あまりに自分の性癖がよく出すぎていて笑える。「バカそうな題名」に引かれるらしい。 というか、内容はもう覚えていなくても題名だけで笑える。

給料とか上司のグチとか結婚とかの話題は、あんまり「問題の深刻さ」が共有できないので 見ても大しておもしろくなく、ほとんど見なくなった。やはりアホなのに限る。

(15:12)
また新たなアイデアを思いついてしまった (アホ度は中程度)。 ちょっと基礎実験したところ実現できそうなのだが、実装している時間がない! 「かきつばた」でさえまだ完成していないのに、 こう早く思いついてしまっては困るじゃないか!
(16:05)
Navneet が Hindi 語の映画を見ている。 これを聞いてるとなんでインド人英語がああいう訛りなのかよくわかるな。 イントネーションが一緒だ。 ときどき語の最初がすごく下がるのである。
(16:58)
ゼロをどうやって表現するか、が問題だよ。

プログラムのコードでもっともよく現れる数は、おそらく「0」と「1」である。 ためしに調べてみたら、こんな結果になった。 カーネルのソースなので、16 とか 255 が多いらしい (ヘッダ *.h は含んでいない):

$ find /usr/src/linux -name '*.c' | xargs egrep -h -o '\b[0-9]+\b' | sort | uniq -c | sort -rn | head -20
 269063 0
 124349 1
  48263 2
  27173 4
  24365 3
  22312 8
  17462 16
  12562 5
   9352 6
   9143 32
   8899 10
   8494 7
   5968 12
   5291 64
   4329 9
   4175 255
   4151 15
   4060 20
   4018 11
   4014 00000000

XFree86 や gcc を調べてみても、やはり 0 と 1 が多い。 ところが Perl-5.8.0 では違った!

 154486 2
 117585 1
  79601 0
  39862 230
  39101 229
  36543 232
  36459 231
  31498 233
  20319 4
  14957 3
なんじゃこの 230 とかいうのは? と思ったら、 ext/Encode にある、うtf-8 のコーディング表が原因なのだった。
(17:45)
awk じゃなくて oak だよった。

きのう「デザインパターンを誉めるやつはバカ」と書いたが、 やや不安になったので GoF 本を読みなおしてみて、やっぱりバカだと思うことにした。 なんでこんなにウソっぽく見えるんだろうなあ…と思っていたら、それは 「手続きの流れ」というものをほとんど考えてなさそうだからだ、と気づく。 Structural Pattern のほうは、まだいい。これはどうやってデータ構造を構築し、 その一貫性を保持するか、といったことが主眼で、この点では OOP はけっこう役に立つこともある。 ところが問題は Behavioral Pattern のほうだ。自分の経験からいうと、 データ構造のメンテナンスよりも実行順序を考えるほうが多くの場合はるかにややこしいのだが、 この本では非常にうわっつらなことしか触れていないように思える。 もともとオブジェクト指向というのがそういうことをぜんぜん考慮に入れてなさそうなので (制御の流れはあいかわらず典型的な call → call → return → return といった 木構造的呼び出しを仮定している)、ある意味しょうがないと思うんだけど。 この枠組みで制御構造をなんとかモデル化しようとしても手に負えなくなるだけだろう。 たぶん不完全なのは著者もきっと認識してるんだと思うけど、 これから並列協調型のプログラミングが普及してくるときに これじゃなんにもならない。 まあ、業務用のアプリなんてみんなパターン化できる簡単な制御構造しかないからいいんだ、 といわれればそれまでだけど。ああそうか、そういうことか??

もちろんそれを利用しておカネもうけをすることに何も文句は申しませんよ、ふらんちってぃ先生。 世の中、ホンネとタテマエはどこにでもあるのです。日本以外にもね。

(18:55)
なんか今日は steelix 経由の spam がすごい来るんだけどどうして?
(20:06)
しかしなあ、だいたい「他人に理解されないように書く」という目標を設定してるのに、 なんで日に何百もアクセスがあるのか? おかしいよこれは。 いつもこのページからは、「オレのことはいいから放っておいてくれ」という雰囲気を 放出してるつもりなんだけど、まだ狂い方が足りないのかもしれない。

引きこもり web ページ、という考え方っすよ。

(20:39)
やっぱ「2ちゃんねる」という名詞、あるいはその引用や AA などを入れると、 ページのガキっぽさが大幅に増加するなあ。きょうは朝から人生の敗北者スレを見たのが悪かった。反省。 あのスレッドは、たしかに「人生の敗北者」の気分を味わうことができる。おすすめだ。

どうでもいいが、GNOME とか Windows にある「何階層ものプルダウンメニュー」は 拷問のために作りだされたらしい。どうりでよくできていると思った。

(21:43)
ああむかつく。くつしたを片方なくした場合、 もう一方がなくなるまで待つのは効率悪すぎるんだけど、そう思わない? すべて世の中は理解可能だ。理解不能な部分も含めて。

ところで「口さがない」という日本語のことを、 いままで「口さ + が + ない」だと思っていたが、今日 「さがない」という形容詞があることを発見。 「さがない: 他人が気を悪くしたり迷惑がるようなことを平気で言うさま」とある。 オオーまるで誰かみたいではないか。しかし、「さがない」だけでこの意味だとすると、 「口さがない」は一体なんなんだ? 口だけがさがないのか??

さがなきゑびす心をみて、いかがはせむは。

Nov 15 [Sat]


(11:06)
oh, dear, 寝坊したよ

まあ土曜日ぬんだから寝坊ぐらいしてもかまわないのだが、 朝の貴重な時間をつぶしたと考えるとぐや゛じい。 きょうは雲ひとつなく晴れていて、部屋のマドから ESB のツノがくっきり見える。

(11:42)
これからは「遅い」という形容詞を使うのをやめよう。 かわりに「優雅な」という言葉をつかおう。ほんとに

使用例: Python は優雅なスクリプト言語である。

どうでもいいけど「網元衆」って「もうげんしゅう」と読むほうが絶対にかっこいいと思う。 そうすると「妄言集」にきこえるから。

(12:31)
公に向けての言葉は、簡潔で、わかりやすく、必要に応じて多少の誇張やウソも使うべきだと思うが、 個人に向けての言葉は冗長で洗練されてなくてバカ正直なのほうがいい。 というか、自分はそう思っているということがわかった。 親しい個人にあてての「饒舌な言葉」というのに最初にあこがれたのは、 「哀しき人々」のあのやたらと長くて意味のない手紙のやりとりである。 高校生ぐらいのときかなあ? いまとなってはもう女のほうの名前が 「ワルワーラ・ドう゛ローショロワ」だったということぐらいしか覚えてないが、 とにかく二人ともやたらと長い手紙をやりとりしていた。 男のほうはもう中年で、細かいことにぐだぐだこだわるはっきりいって ダメそうなおっさんタイプ。男のほうが冗長だったような気がする。しかしそんなことはどうでもいい、 とにかく冗長な言葉! これは親しさに比例して多くなるので、 この日記は新山を直接しってる人のみに読まれることを想定しておりますが、 そういう人なら誰でも読んでいいかっていうとそういうわけでもないんだぜ、○○ (本当はここは名前が入っていたのですが、時代おくれなので消しました)。 いつでも、つねに時代おくれであること。そういうモノが好きなのであります。
(13:22)
ごめん、「哀しき人々」じゃなくて「貧しき人びと」だった。

「人々」を「人びと」と書くのがコツである。新山は、こっちのほうが好き。 (どっち??)

(15:15)
「やりにげ方式」より「捨てぜりふ方式」のほうがいい名前のような気がしてきたa。

新しく入れたディスクを 4GB ほど使ってみたのだが、 4GB っていえば結構なデータ量って気がするのだが、 まだ使用領域は全体の「3%」と出ている。 たった 3%。。。

おれの世界を返してくれ〜/////!!! 古き良き「びんぼう世界」を!!!

(15:34)
賭ける人々と賭けない人々。しかし賭けようが賭けまいが、リスクの差に違いはない。 (「リスクに違いはない」といっているのではないことに注意 --- 「リスクのに違いはない」といってるのよ、 それが何かは本末のみぞ知る、お転倒様[てんとう])。 そうさ、ちがい。サミイそうさ? (寒い、の語釈形)。 どころでどこどで Python では 1--1 = 2 が評価できるんだようー−::::: ざまったか Perl!!! (ざまあみろ、と、まいったか、の混成合唱団、ttttt)
(19:57)
遅くに都市へ行き、本に $100 ちかく費やす。高い授業料だ。 ついにうちのオフィスにもワイヤレスが入ったが まだ WEP を設定してないので…げっほ、げっほ!
(22:42)
今年の thanksgiving は 27日であって 20日じゃない
(00:21)
世の中には科学では説明できない、不思議な相関関係というものがあります。

たとえば新山が発見した不思議な相関関係の一部はこんなぐあい :

この言明を拡大解釈しすぎてはいけません。幸運なことに、まだ 100% の 相関ではありません。 (それとも、不幸なことに??? [沈黙])

それに対してこの相関は 100% です。

オブジェクト指向やデザインパターンを称揚する人々についていわせてもらえば、 これもまた XML と同じように、なんでも標準化・定式化できると思っている極端バカの一種だと思う (ソフトウエアの研究は、すべてプログラムをなるべく「定式化しよう」という方向に ずっと動いてきている、それが成功してきたとはまったく思えないけど… これはちょうど人工知能 (や自然言語処理) で、「人間の知能 (や言語) を定式化しよう」という 試みがほとんど失敗してきたのを思い起こさせる)。 ついでにいえば、これは「周辺ツールの整備にこだわりすぎる人」と同じ系列にあてはまるように思う。 ようするに本格的な建築は難しすぎるので、かわりに建設現場を掃除してみたりしてごまかす (そして新しい仕事をつくりだしていく) のだ。 こういう一般的な傾向は、教育とか啓蒙とかによってどうにかなるもんなんだろうか? なんか、ダメな奴は何をやってもダメという結論に落ちつきそうでこわい。 これはあくまで恐れであって、確信ではないけど。そして自分がその中に入っているかいないかは

どうでもいい。

考えてみれば似たような例はいくらでもあるな。 いつも批判されるほうは 「それはお前が {バカ / 無知 / ちゃんと理解してない} からだ」 とかわすことができる。コンピュータに限った話ではない。 ポモとかもそうだし、なにかが派手に持ちあげられると必ずそうなるね。 本当にまずいのはむしろそういう現象のほうなのか。

「バランス感覚」という観点からいえば、 目にするもの何もかもに反発していてもダメだと思うし、 かといって「みんながいいって言うから」という理由に あまりに軽く乗りすぎてしまうのもダメだろう。 もっとも、オレの性格だと反発のほうが圧倒的に多いのだが、 きっと社会はなんでもかんでも信じる人間のほうを必要とするだろうね…。 だからどうした?

結論: 心配する必要なし。

(02:13)
つうか、心配しれよ!! そして寝ろ!!

忘れてやる
忘れてやる
いつかお前のことが
完全に頭からなくなる日まで

Nov 14 [Fri]


(08:19)
するーーーぷっと。

最近、どうも寝るのが遅くていかん。

(11:49)
サムくて学校行く気ない。たすけて。

おまえは助けるんじゃねえよこのピヨピヨ野郎が!!! (→ ひよこ、おみやげ)

そういえばこれって中世と同じじゃん!

(21:09)
無駄なエンジニアリングに数時間をついやす。 knp でデカいコーパスを解析させると、 あまりによく落ちたり無限(に近い)ループに入ったりするので、自動化できない。 そこでこいつを完璧に監視するスクリプトを書く。 ホントに無駄だと思うが、セキネさんに頼まれたのでしょうがない。

popen3 でプロセスを開いて並列処理させ、poll で出力がくるかどうか監視し、 しばらく止まっていたら無限ループと判断して再起動させる。 無限ループに陥る文章はいつも決まっているので、 そういうのに出会ったらその文だけ別処理で解析して、 それが終わったら通常業務に戻る。しかもなるべく効率よくやること! 結果的にはつねにプロセス 2匹を「飼って」おいて、 必要に応じてパイプの出力先を切り替えればよいということがわかった。 それにしても無駄だ。背に腹はかえられない。無駄だけど。 しかし、どの文章が無限ループでどの文章が segfault になるか 全部ログをとっているので、knp のデバッグにはもしかすると 役に立つかもしんない (そんなものをやる人があれば)。どうでもいいけど、これってもう 10年以上前の C プログラムだぜ? いいかげん誰かもっとモダンなバージョンに 書き直してよ! malloc とか使ってるんじゃ、メモリ管理に 限界が出て当然。つーーーか、おまえがやれ。

ところで select_tut(2) なんて man ページがあるのね。

(22:54)
きょうの nyc nlp フォーラムは alias-i.com という会社で 自然言語解析ツール LingPipe を 作っている Bob Carpenter とゆーおっさんのトークだった。 この LingPipe というのはパーザこそ含まれていないものの、 (英語の) 形態素解析器、固有表現(人名、地名など)認識、 照応解決モジュールなどをふくんでおり、Java で書かれていて SAX に対応しているという、まあそれなりに使えそうなツールではある (やれやれここにもまた XML の神話にソソのかされた犠牲者がいたか!)。 基本的にはセキネさんの作っている OAK と同じようなところを目指しているようだが、 学術的には大したことはなく、実装面の話がほとんどだった。 今日は alias-i 社長の Baldwin というおっさん (= Dan の友達) も 来ていて、トークの一部始終をビデオにとっていたが、 終わってからセキネさんは「あんなんで儲かるのかね?」とぶつぶついっていた。 恐しいことにこの LingPipe というソフトはじつは LWN でも取りあげられていたのだが、 問題なのはライセンスがちょっときつすぎることにある。 これによると「LingPipe を使うときは、それの出力を使うプログラムもすべてオープンソース (あるいはそれと同等の配布条件) にしなければならない」という制限がついているのである。 これはたとえば、GNU grep を呼び出すプログラムは、みんな GPL で公開しなければならないといっているのに等しい。 LWN のコメントでは、それはちょっと強すぎるだろう、というのがおおかたの意見だったが、 「どーせこんなソフト誰も使わねーよ」という展開だった。まあ、そうだろうに…。 自然言語処理なんか、ただでさえ“ワケわかんないアヤシイもの”と思われてるのに、 こんなことをしてはますます世間一般の理解は遠ざかるばかりだと思う。 まあオレにはあまり関係ないけどね。 ( 他 人 事 )
(23:38)
やはりギガニにしたせいか速いぞ? もう半分ぐらい終わっている。 (註: 実際にはカニを使っているのではない、 ただ本人が「ギガニ」という名前を器に入っているのである) …まあそれはいいとして、 よく時間のかかるスクリプトを走らせるときに新山のやる手が、
  1. screen を使う。
  2. いっさいがっさいを自動化したスクリプトで走らせておいて ログをとっておき、さっさと logout してしまう (名づけて “やりにげ方式”)。
というものなのだが、2. の方法をとるときはいつもスクリプトの最初に書く 「お約束」ともいえる数行がある:
#!/bin/sh
exec </dev/null
exec >log.`date +%Y%m%d`.$$
exec 2>&1
renice +20 -p $$

echo [`date`]: start: $$
for f in *.gz; do
  echo [`date`]: process: $f
  out=${f/.gz/out.gz}
  gzip -dc $f | nanka.py | gzip -c > $out
done
とくに標準入力を閉じておく (/dev/null にしておく) のは重要で、 これをやり忘れると ssh で入ったときに ssh が止まってウンともすんともいわなくなってしまい、 SIGHUP を送って殺すという大変後味の悪い行為をしなければならない。これは ssh が 仮想端末を見ているプロセスがすべて死ぬまで終わってくれないからである。だからそうさ。そう、
(00:50)
新しいマシン 2台に qmail をインストールした。これでようやく両方の設定が終わったと思う。 RedHat を新規にインストールしてから、まともに動かすまでの手順をまとめると以下のようになる。
  1. 作業効率をあげるため /lib/kbd/keymaps/i386/qwerty/us.kmap.gz の Caps_Lock を Control に変更。
  2. IP の設定。とりあえず DNS は外のやつをみるようにしておく。
  3. YP の設定。
  4. NFS クライアントの設定。
  5. この時点で一般ユーザとしてログインできるはず。
  6. NFS サーバの設定。
  7. ntpd の設定。
  8. daemontools のインストール。RH9.0 の場合は errno パッチあてる。
  9. djbdns のインストール。RH9.0 の場合は errno パッチあてる。
  10. qmail のインストール。RH9.0 の場合は errno パッチあてる。
  11. OpenSSH のインストール。
  12. 追加ディスクの設定。
  13. その他:
  14. カーネル再構築。再起動してうまくいったら喜ぶ。
  15. jperl, less, uscpi_tcp, alsa-drivers, lynx など必要に応じて。

Nov 13 [Thu]


(10:09)
あー

Reloaded → Revolutions ときたんだから当然、次は "Matrix: 404 Not Found" だろうな。

(20:29)
ひっこしとサーバ設定で一日るぶれた。許されるぬ

きょうは部屋 (オフィス) の模様替えがあって、 スドウさんが出ていき、かわりに Svetlana が入ってきた。 個人的には、彼は部屋を出てホっとしているのではないかとジャスイしている。だってこの人、 いつも新山が後を通るたびに、ブラウザのウインドウを「さッ」と切り換えてるんだもん。 何を見てるのだか知らないが、はっきりいって誰も気にしてないのだけど、 むしろやたらと隠そうとしてるほうがカッコ悪く見えたりはしないのだろうか? あるいは自意識過剰なのかな、まあいいけど。 で、机がひとつなくなったので、かなり部屋は広くなった。ように見える。 部屋が伸び縮みするはずがない。 しかしネットワークを Gigabit のスイッチに替えてみたのだが、 思ったよりは速くなっていない。ちょっと tcp で転送してみたところ 20MBytes/s ぐらいの速度だ。まあ 100 よりは出ているけどね。 だいたいこれくらい速くなるとネットワークのスタックだけでも 結構プロセッサを食いそうな気がする。ドライバにもよるらしいが。 カニ (realtek) のドライバは CPU を食うと聞いたことがあるけど、どうなんだ。 Gigabit ether といえば、笑えるのが、 セキネさんがある新マシンを giga で通信できるようにしたくて、 DELL に eepro1000 を追加させて買って、あけてみたら オンボードにも eepro1000 が載っていた、ということである。 いやあ、いまはオンボードでも Gigabit ether が載るようになったんですよ、 すごいねえ。おかげで意味もなく「遊んでる」インターフェイスができてしまった:

Intel(R) PRO/1000 Network Connection
eth0:  Mem:0xfe140000  IRQ:10  Speed:N/A  Duplex:N/A

Intel(R) PRO/1000 Network Connection
eth1:  Mem:0xfe120000  IRQ:5  Speed:1000 Mbps  Duplex:Full

で、この新しいマシンにはもとからあった 120GB の IDE に加えて、 セキネさんが衝動的に (本当は計画があったんだと思うけど) 買ってきた 200GB のディスクを 2コも! 載せてあるので、 現在ムダにディスクだけがデカいマシンになっております。 で、メモリは 256MB しかないと。このアンバランスさ。

yu@or~[49952]$ df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hda2            114785512   1912772 107041952   2% /
/dev/hda1                46636     10349     33879  24% /boot
none                    128336         0    128336   0% /dev/shm
/dev/hdc1            196015808     32828 186025896   1% /orange1
/dev/hdd1            196015808     32828 186025896   1% /orange2
mango:/home           25197256  20576704   3340576  87% /export/home
yu@or~[49953]$ free
             total       used       free     shared    buffers     cached
Mem:        256676      77596     179080          0       7052      44588
-/+ buffers/cache:      25956     230720
Swap:       522104          0     522104

ところで今は 137GB を超えるディスクでも追加のボードとかなしで動くんだよ。 すごいねこれまた。

(22:04)
まだやっていマース。
(22:58)
「ダイアログが出てくるといつも必ず危険なほう (デフォルトじゃないほう) を選択してしまう」というくせを なんとかせねばならない。

人生が耐寒するムーアの法則:

(23:51)
Gekiさむ。かった、駅前を通ったら道のまんなかにつむじができていて、 マクドナルドの紙袋やらコップやらが直径 5〜7m ぐらいの 渦をまいてゴトンゴトン回っていた。こんなもんにブチ当たってはたいへんと、 すこしまわり道する。それにしてもつむじ風ってふしぎだ。 なんでこいつは渦をまくんだろう? たつまきもそうだが、 そんなこといったら台風だってお風呂のウズだってそうだが、 気象現象というのはナゾが多くてすごい。

お風呂のウズは気象現象じゃないけどなんでもそう思えば気象現象になる。

(01:14)
Google で、なにげなくGod を検索してみるとおもしろい。 「神様のページ」をはじめ、神様へのインタビューとか、「神の軍団」と称してる 中絶反対のキチガイ集団とか、いろいろだ。はっきりいって、米国というところは、 きりすとキョーにこじつければどんなムチャな主張でも許されてしまうという非常に興味ぶかい土地だと思う。 最近、新山にとって、キリスト教の「神様」のイメージはブッシュのそれにかなり近くなった。 この感覚には自信がある。どちらもバカで欲深で自分勝手で偏見に満ちており、 従わない奴は脅迫し、それでもだめならテッテイ的にいじめるのである (しかも、たき火で焼くとかいうセコイやり方)。 おまけに、どっちも超単純。 どちらもアメリカの顔である。まあ、ブッシュのほうが実在してる分だけタチが悪いけど。

怖いのは、「神様へのインタビュー」 などというページがあることだ。こういう真剣さを見ると背筋が寒くなる。 ここに書いてあるのは神様の意見なんかじゃなく、お・ま・え・の・意・見・だろが! 「神様」とあるのを「神田川俊朗」とか「神田うの」に変えたらウケるかもよ。

ちなみに、新山の考える日本の神様 (キリスト教の神様じゃない!) のイメージはぜんぜん違ってる。こんなかんじだ:

  1. 人里はなれた山奥に住んでいる (日本国内じゃないとダメ)。基本的に引きこもりがちで、 人間のことはときどき陰からこっそり (上目づかいで) 様子をうかがっているものの、表には姿をあらわさない。
  2. なにやら各神様が自分の仕事をもっている (日本の神様は非常に沢山いることに注意)。 それらはかなり専門的、事務的なもので、決して「世界を監督し」たりすることではない。
  3. 根がまじめなので、日々の仕事でストレスがたまっている。人間がちゃんとお供え物をしないとヒステリーをおこして怒り狂う。
  4. そのわりには弱くて病気がちで、人間が守ってあげないとどうしようもない。
  5. 多くは子供っぽく、残酷で気が小さい。他人とのコミュニケーションが下手。やや自閉症ぎみ。
総合すると、新山にとっての神様は人間と共生していかなければならないのである。 「前置全能の神様」なんて絶対好きになれそうにない。だいいち、芸名からしてムカつく。 一般的なアメリカ人の想像する「かみさま像」というのは、もう尋かなくてもわかる。 とにかく彼らの神様は「パワフル」なのに違いない。強い神様。なんでもできる神様。 神様はいかなるときも最強で、絶対負けないのだ (何に? とか尋いてはいけない、それがわかれば苦労はしない)。 そういうヒーロー的神様像に憧れる人間ってのが、もう、個人的には うげーーーーー、なんですけど、っていうか書くだけで手が拒絶反応。やってらんないよ。 センスなさすぎだ!

しかしオレはなんで gospel とかの宗教音楽を平気で聴けるのだろうか? わからん。ただ、あれの歌詞というのは新山にとってはほとんど 空虚な、意味ない単語の羅列なんで、だから安心して聴き流していられるのかもしれない。 昔、アサハラショーコーの「♪わ〜た〜し〜は〜やってない〜」って歌があったけど、 オウム信者でもないのにあれを喜んで歌ってたのに似ている。

Nov 12 [Wed]


(08:05)
もっと怒んないとだめだよ。
(11:05)
めにんじゃいてぃす (meningitis) のワクチンを受けにいったら、 じつはワクチンが必要なのはドミトリーに住んでいる学生だけで、 オレは書類提出だけでいいんだって! 心配して損した。つーか恥かいた。 説明よく嫁。 しかしここでは免疫関連の条件がちゃんと満たされてないと 授業の履修申告ができなくなるのだ。こわいこわい
(16:10)
いやー機械学習 (boosting) はすばらしいね! なにしろ精度を 0.5% も上げてくれるんだから(83% → 83.5%)! それはものすごく難しいらしいぜ? 0.5% なんて、多すぎて、オレみたいな猿なみの頭脳には数えらんないよ、そんな天文学的数字…ね…。 それは、オレがでたらめにタイプライターを打って シェイクスピアを書くよりも難しいかい? さて。

「ある手法をかたくなに信じたがっている研究者」というのを見ると、 いつも脱力感とともにハラが立つ。しかしそれは感覚の問題であって、 「ああこいつのセンスは救いようがない」と思う人に期待するのは無駄だし、 だいたいそんなことにいちいち腹を立てるのは生産的でない。そんなことより宿題やれ。

関係ないけど、国際関係のニュースをみるとゲナゲナすることばっかりだ、最近。

(18:58)
XML をけなしつつもこれを学習しなければならないという不幸。 理想主義のアホ上司のもとで働かされるようなもんか。
(23:16)
やべーーー電車!!!
(00:05)
なんとか間に合った、ふう。

何でもストレートに言わないと気がすまない性格のため、 自分は皮肉を「まわたっ首風に」言うのが非常にとてもたいへんヘタだ。 なにぶんそういうワケでして。 なので、好き嫌いはものすごくはっきりと他人にバレているだろうと思う。 だからどうした。お前のその子供っぽさはそこから現出してくるのではなひか? と 時々思うこともあるのだが、まあ、なんだ。 若くして急速にサトリを開いているよりは、 いつまでも子供っぽいほうがいいじゃないの。 すくなくとも他人はそう思っている。もっとも、これはオレの望んだ結果じゃないが。 たまたまこうなっただけだが。

Nov 11 [Tue]


(09:01)
口がカサカサ。

それにしても、日記に新たなファイルを追加するたびに思うのである。 「ああ、もうあれから 10日たったのか」って。

これを 100回くりかえすと 3年たってしまうんだぜ。

(09:16)
げっっ、水が出ない!!

どうやらこれはうちだけではなく街全体で起こっているようだ。

(11:54)
ようやく出るようになったが、チョロチョロとしか出ない。 ふんげあ
(12:14)
やっと出て、シャワーをあびれた (あびることができた、の縮約形)。 やっぱり水とお湯がふんだんに使えるのはうれしー。 お風呂大好きの新山にとって、「いつでもお湯が使える」というのは 非常に重要なことである。電気が使えなくても生きていけるかもしれないが (仕事は変えなきゃなんないだろうが)、風呂に入れなくなったら生きてはいけない! だろうと思う。そういう意味では米国のヘボい風呂でだいぶオレの人生は ディスカウントされてるわけだっよ (意味不明)。まあ、とにかく。

もしオレが猿に生まれてたら、 地獄谷のサルに羨望しただろう。いや、人間でもあれは羨望する。 すべてのアメリカ人はあれに羨望するべきだ。とりわけブッシュなんかはサルと一緒にあの温泉に入るべきだ。

(14:27)
ところで (てくるで)、"it's hot to link information & people!" ってのは 微妙に Engrish っぽい匂いがしないでもない。

あるところを見たら 「Plofile」といてあった。 人のふり見てわがフリ云々

(16:53)
制御の流れについて。ある関数はデータをつねに push するし、 あるプログラムは pull する。これらを自動的に相互変換することは可能なのだろうか。

なんか意味がよくわからない。

ある関数 Feeder と Consumer があるとする。これらはどちらも無限ループする関数で、 Feeder はつねにデータを生成し、結果を別の関数に送る。したがってこの関数を実行すると、 データの流れをコントロールする権利は「生産者側」に与えられることになる。

def Feeder(send):
  while 1:
    x = 計算()
    send(x)
いっぽう、Consumer のほうはつねに別の関数をよびだしてデータを取ってくる。そして、計算する。 この場合、データの制御権は「消費者側」にあることになる。
def Consumer(fetch):
  while 1:
    x = fetch()
    計算(x)

しかしこれら 2つの関数をひとつのスレッド内で協調動作させることはできない。 なぜなら、どちらかが制御を完全に握ってしまうと、もうひとつがまったく動けなくなるからだ。 これらを、相手に制御権を渡すように簡単に改造することはできるだろうか?

つまり「逆 yield」のようなものが必要なのだ。こうすれば動くだろうか?

class Consumer:
  def __init__(self):
    self.data = None
    self.gen = self.run()
    self.gen.next()
    return
  def feed(self, x):
    self.data = x
    return self.gen.next()
  def run(self):
    while 1:
      yield None
      x = self.data
      print x

c = Consumer()
for i in range(10):
  c.feed(i)
これの問題は、きれいでないことである。yield と x への代入を いっぺんにやってしまえればいいのだが、これは関数にはできない。 stackless Python には continuation の実装があるらしいが、 明示的に continuation を使わせるのはどうかなと思う。

なんだか、GoF 本にこんなのがあったような気がするが、そんなに柔軟だったかどうか。

(18:14)
なんだかめちゃくちゃハヤシライスが食いたくなりました。なぜだか。

この国にそんなものはないと思うのですが。あーーーー食いたい!!

(19:05)
だから近所の韓国料理屋のカレーライス (日本ふうのカレーライスにかなり近い) で我慢したよ。

もう

(22:30)
急に元気がなくなることってあるでそふ。

なぜ「しょう」を「そふ」と撃ちまちがエるのかというと、こういうわけだ:

まあそういうこと、そういうこと、そういうことだぜピッポリコ〜♪
(今日はややおかしい度が高い、つまり言いたいことがないんだ)
Yusuke Shinyama