2004年 8月 (2.5)。

Last Modified: Tue Aug 31 21:52:54 EDT 2004 (09/01, 10:52 JST)

Aug 31 [Tue]


(06:45)
けさは、すずしい。どうでもいいけど先に謝っとく。ゴメ
んょ
(09:08)
学科のファイルサーバが変わったというお知らせがきたのだが、 いまだにマウントできない。といってもこれまたマウントできなくて困るのは 新山の周囲ではセキネさんだけなのだが (彼しか使ってないし)、 なぜオレがこんなことでいつまでも心配しなきゃいけないんだ? oh, well, I can't spend my whole life worrying about him...

KLUNK!

klunk? I thought I heard a klunk...

てくるで、おとといの話になるが、CORAL P2P のキャッシュが slashdot で /.ed よけとして使われていた。あれってそんなにメヅャーなんだろうか?

(10:46)
きょうは、すずしい。同じことのくり返しだが、繰り返しというのは重要だよ! なんたって、
(11:32)
…いつのまにかぐりむ先生のお部屋のカベが…イカす装飾に… ・ ・ ・

todo: COLING旅費請求

(11:55)
ふと、ハゲばかりが住んでいる国を「光の国」と名づけたらどうか、 というアイデアを思いつき、ひとりハゲしくウケる。 あるいは「彼はハゲた」というのを婉曲して「彼は光の国の住人となった」というのはどうか。 これまた、ハゲしく笑える。そうすると光の国の王様というのはどんな奴なんだろうな。 ところで欧米では「ハゲ = 明るい」という認識はあるのだろうか。 そもそもハゲを誰も気にしない国だからなあ。
(12:44)
弥生ついたち、はつ燕。
(14:07)
ようーやくマウントできた。と思ったら今度は orange で bad block らしきエラーがでたよ。

もういや田。(ほんとに klunk がまた起こっちゃったね)

e2fsck -c -v -f したらいつまでたっても終わりそうにねーので、 もう頭きたから Solarwolf やってやる。

(14:54)
ようやく全面クリアしました。
(16:12)
なんか、もー、いー加減アタマがげぞげぞなふうになってき、 よくいえば発狂、悪くいえば冷静沈着になってきた。ぬで、 近所のコーヒィ屋へいってカフェインをしこたま含まれそうな エスプレッソを注文、砂糖をあんまり入れずにのむ。そしたら、ゲゾゲゾににがい。 まあそりゃそうなわけだ。お前こんなん書いてる暇あったらさっっっっさと元凶しろ!!
(18:46)
とても危険な遊びをした。
$ sudo python
Password:
Python 2.3.3 (#1, Feb  1 2004, 23:04:28)
[GCC 2.96 20000731 (Red Hat Linux 7.1 2.96-98)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
(あとは書けない)
(18:56)
Google News 日本語版、なんか英語版よりも全体的にゴチャゴチャしてない? 韓国語版はそうでもないのだが、やはりフォントの違いがそうさせるのか。
(21:51)
一瞬、コイのぼりに見えてしまった。鯉が空を飛ぶはずないだろ! てゆうか、飛んでいるのだけど。

どうでもいいが、「コイを空に飛ばす」というアイデアを 最初に考えた人はかなりふるってる。尊敬する。

Aug 30 [Mon]


(07:22)
アサカラヘンヅツー
(08:25)
どうでもいいが今回の旅行でなくしたもの:

こうしてみるとオレは毎回旅行いくたびになんかなくしてるな。
まあ、どれも大したものじゃないから別にいいのだけど。

(09:41)
今日めちゃくちゃムシてんだけどなんdえよ? そして花粉がひどい。 てくるで、今朝はでがけに Jason をみかけた。 彼、いまなにやってんだろ?
(11:05)
python で、iteratable なものを一発で判断する方法はあるだろうか?
def isiteratable(x):
  import types
  return isinstance(x, types.ListType) or isinstance(x, types.TupleType) or \
         isinstance(x, types.GeneratorType) or hasattr(x, "__iter__")
などとやれば一応、判別可能ではある。が、組み込みの述語でなんかないのか。 自慢じゃないが、新山は Python の built-in をほとんど知らない。 たとえば oct() なんてのは このあいだまで知らなかったし、divmod() に至ってはおととい岩田さんのページをみて知った。 でも正直なところ、この 2つの関数はどっちもなくていいと思う。 そもそも built-in をほとんど知らなくても全然困らないのが Python のいいところ。

言語仕様に詳しい人がプログラマとしてすごいかというと、ちっともそんなことはなく、 むしろそういう人は頭よくてもアイデア欠如で大したもん作れてなかったりする。

(11:18)
ああ、単に __iter__ の有無を調べるだけでよかった :
def isiteratable(x): # 改訂版
  return hasattr(x, "__iter__")

Python に手を噛まれるのことについて第 ? 回目。 関数に list のかわりに generator を返させるようにすると、 その結果は一度しか利用できないので、変数とかに入れると危険である:

>>> seq = getresults() # ← ゲネレータを返す
>>> for x in seq:
...   print x
...
>>> total = sum(seq) # ← seq はもう空っぽ
もちろん seq = list(getresults()) のようにして 強制的にリストに型変換させればその結果は何度でも使える。が、いつもこうするのはめんどくさいし、 あきらかに効率低下だ。おまけに関数がリストを返すかゲネレータ (← わざと) を 返すかは、見ただけではわからない。結果を再利用したいときだけ list にしなければ ならないのである。こういうバグはどうやったら防げるのだろうか。
(12:04)
はぁー…今度は mango で SCSI Parity Error がでた…。
$ dmesg | tail
...
SCSI disk error : host 0 channel 0 id 3 lun 0 return code = 8000002
Current sd08:31: sense key Aborted Command
Additional sense indicates Scsi parity error
 I/O error: dev 08:31, sector 14960
...
$ cat /proc/partitions
major minor  #blocks  name     rio rmerge rsect ruse wio wmerge wsect wuse running use aveq
...
   8    48   71687325 sdd 3257928 8714097 95790650 34096610 1078236 10193365 90188656 27488897 0 35997940 18655744
   8    49   71681998 sdd1 3257927 8714094 95790642 34096600 1078236 10193365 90188656 27488897 0 35997930 18655734
...
$ cat /proc/scsi/scsi
Attached devices:
...
Host: scsi0 Channel: 00 Id: 03 Lun: 00
  Vendor: FUJITSU  Model: MAP3735NC        Rev: 5605
  Type:   Direct-Access                    ANSI SCSI revision: 03
...
これは /home2 ですな。まあ home2 を使ってるのは ほとんどセキネさんだけなのでオレはどうなろうが知ったこっちゃナイのだけど、 どうせ何かあったときに始末するのはどうせオレなので、どうせ…

fungeあ

(13:42)
まあ「問題を発見する」ことが研究においていちばん重要だという点には同意するわけだ、
まったくのところ。
(16:39)
現在、うちのプロジェクトでは簡単なドキュメント管理を Wiki を使ってやっているが、 なにを血迷ったか Wiki では物足りなくなり、Zope-2.7 と Plone をいんすとーるしてみた。 しかし…なんだこれは。全然使い方わからん。というか、わかりたくない。 オーバースペックだ。権限とかプロパティとかどうでもいい。おまけに utf-8 の html を吐きやがる。 そもそもデフォルトのレイアウトが激見にくいし、スキンを改造しようとしたら簡単には 改造できないらしい。クソったれ。ターゲットとしているユーザは別の 世界にいるように思える。やっぱりうちは Wiki でいいやという結論に到達。 機能が多きゃいいってもんでもないよな。
(20:10)
漸進的正規表現という考え。内部状態が重要なんであって、途中から使わせろ! という考え。
ふと思いついた。

こんなのが書けたらいいな:

class myregexp(IncrementalRegularExpression):
  def __init__(self): self.data = ""
  def start_tag(m): print "start:", m.group(0)
  def end_tag(m): print "end:", m.group(0)
  def other(m): self.data += m.group(0)

pat = myregexp(r"<[a-z]+>:start_tag|</[a-z]+>:end_tag|.:other")
for line in fileinput.input():
  pat.feed(line)
print pat.data
つまり「文字列にパターンをマッチさせる」んではなく、 「パターン認識機械に文字列を食わせる」という発想である。 現状の方式だとマッチさせるべき文字列はいちどぜんぶバッファにためておかねばならない。 しかしこれは (とくに相手がストリーム状のデータの場合) 非常に使いにくい。 ぜんぶ変数に入れとかないとマッチできないから、いちいち複数行の文字列をまとめたりする 操作が必要になる。しかし上のような方法が使えれば、そうした 敗北的なプログラミングスタイルから逃れることができる。

しかし現在の Python 正規表現ライブラリではこれは使えない。 なぜなら、たとえば "<[a-z]+>|</[a-z]+>|." という パータンが文字列にマッチしたとして、"|" で囲まれたどの部分で マッチしたのか教えてくれないからである。マッチに失敗したときも、 どの部分までいって失敗したのかを教えてはくれない。 内部ではわかってるくせに!

(22:03)
google://天地神明に誓って/
google://テカガマー/ (0件)

すでにある名前を使うのは本家に失礼だ。

はなしは変わる。整数の割り算に / という演算子を使うのは 好きではない。新山は pascal の演算子 div が好きであった。 ついでにいうと剰余を計算するときにつかう % もいやだ。なぜなら Python では これだけが 2重の意味をもつ演算子で、div と足並を揃えて ここは mod にすべきだったと思う。 / は実数演算のときにのみ使えるようにして、整数に / を 使ったらエラーとゆうことになってればよかったのにな。 暗黙の型変換はいつ見てもけして気持ちのいいものではない。

(22:22)
よろよろのヨロ〜〜〜!! (気に入った生きざまの風貌)

ときどき、まったく関係ない 2つの曲が頭の中で勝手にまざることについて。 たとえば新山の場合は「♪ばななん、ばななん、バーナーな!」と歌ったあとに、 かならず、「♪空にキラキラお星様…」と続いてしまうのだった。 まあ今はそんなの歌わないけど、普通は。少なくとも目が覚めてるときは。 向こうの世界のことは知ったことではない。

まったく、最近はなんでオレこんなに沢山書いているのでしょうか? 暇じゃないのです、しかも。ドイツ語の教科書を読んでいるのです (これはマジ、Barrons のやつ)。だけど、ねむいし。目の前に亀田製菓の ソフトサラダがあるのだけどこいつをどうしてくれようかな、などと 考える間もなく BlueTooth のマウスは電池ぎれになるのだった。水だ!

…てゆうか、いったいなんで PowerBook はこんなにアツいの?? 絶対低ヤケドなる。変換んの最初の候補を決っして習性しないこと。 それは敗北だ。ボクハイ敵。むもうわけわかんにあい。疲れていない! 疲れていない!

(残念ながら、あなたは面白がっています)

Aug 29 [Sun]


(09:15)
こんどは逆ジサボー (?) のために早起きてしまった…か?

いやウソだ。おれはウソをついている。ほんとうは暑くて眠れなかったのかもしれないが、 そんな事実は未確認だし第一どうでもいい。どうでもいいことの酢金輪際中華風電波万歳。

きのうは、ドごーーるで北米行きの便への乗り換え時間が 45分しかないのを心配していたが、 Gene've からの飛行機を 2時間早いやつに変更してもらったので余裕で間に合うことができた。 フランスは好きじゃない国だが、旅客サービスでは Delta よりも Air France のほうが ぜんぜんいいということは認めなければならない。サラダの玉子が凍ってたのを除いてはね…。 でも、やはりどうもフランス人とゆうのは実用性よりも格好づけを重視するような気がする。 空港では「いや、たしかにカッコいいんだけどさあ…」と言いたくなるようなものが多かった。 見た目はいかにもカッコよさそうに見せているのだが、いざ近づいてみるとすげー汚なかったり、 ぶっこわれて動いてないようなものが山とあるのだ。しかし見た目がなんとなくよければ彼らはそれでいいらしい。 「ヤセ我慢」という概念は米国人には理解できなそうだが、フランス人なら理解できるだろう。 (まあ、そうしてみると「フランス嫌い」ってのは一種の同族嫌悪なのかもしれない)

Gene've は完全にフランス語圏で、 ドイツ語のドの字もなかったが、Bern は複数語文化になっており、すべての表示が独仏伊の 3ヶ国語で書いてあった。 郵便局にはわざわざご丁寧に「Die Post / La Poste / La Posta」と看板が 3つもかかっている。 それでも Bern はフランス語圏に近いためまだフランス母語の人も多いらしく、本屋などで並んでいると 前の人はフランス語、つぎの人はドイツ語、そのつぎの人は米語で喋ってたりしていた。 そして店員はその 3つとも喋れる (そんなのは別に特別でもなんでもないらしい)。 正確には、Freibourg からいきなりホームの表示が それまでの "Voie" から "Gleis" になり、電車のアナウンスも「まだむえむっしゅー」から 「まいねだーめんうんとへれん」になり、ドイツ語を話す人々がドヤドヤと乗りこんでくる。 ヘンなの〜。27日の夜に、新山が Bern 駅地下の安食堂でメシを食っていると、 となりの席のじいちゃんがヒマそうにしていて「こっち来い」とコイコイするので、 なんとなく行ってみるといきなりフランス語で話しかけられた。英語はぜんぜん通じないが、 どうも仏語と独語をぎっこんばったんに話しているようだ。わかんねーーよ! ので、途中からあきらめてオレは日本語で喋ru。まあ「じゃぽね!」とか「トーキョウ!」とか、 「かいんファミリー! (家族はこっちにいるのか、と聞いているようだったので、"no" の代わりに "kein" を使ってみた)」とか、テキトーに単語を入れりゃあオッケーだろう。 結局、このおやじについてわかったことは「83歳だ」ということだけである。元気だね。

どうでもいいが、Gene've は日本語では「じゅねーぶ」と 「ねー」にアクセントがあるが、フランス語では「じゅねーう゛」のように 「じゅ」にアクセントをつけて発音する。ところがこれがドイツ語では 「げんふ」と呼ばれているということを知ってショックだった。 まあ、たしかに、言われてみればそうかという感じだが、それにしても 「げんふ」はねーだろ。玄武岩を思い出してしまう。 物価は Bern のほうが若干安いように見える。いったいなんで Geneva は なんなに高いんだ??

で、NY に返ってくるとまた「ああこの街は 汚ない / やかましい / 不親切と 3拍子そろった 最悪の街だな」と思う。欧州ではアメリカ白人の失礼さを見るにつけいつもムカついていたのだが、 こっちにくると周りがそもそも失礼なので、全体として白人の失礼さは普通のレベルになってしまう。 いまはこの病気がオレにも伝染しているのではないかと不安だるよ。

(10:51)
げっっっ。旅行中の洗濯物を片付けようと思ったら、またやってしまった。ティッシュ洗濯。 今回はやけにダメージがでかいな、と思って見てみたら袋が出てきた。 あーそう、袋ごとやっちゃったワケね、今回は…。まったく誰だこんなの入れたやつは! 許せん!許せん!許せん!許せん!許
(13:30)
てくるで。

スイスの公衆電話にはほぼ必ずキーボードがついていて、 1回 50セント (sfr) で任意のアドレスに 240字までの電子メールを送ることができる。 で、送ってみた結果がこれ:

Received: from mx.cs.nyu.edu (mx.cs.nyu.edu [128.122.80.78])
        by slinky.cs.nyu.edu (8.12.10+Sun/8.12.10) with ESMTP id i7S9HlSH008141
        for <yusuke@slinky.xx.xxx.xxx>; Sat, 28 Aug 2004 05:17:48 -0400 (EDT)
Received: from nash.ip-plus.net (publigate.ip-plus.net [164.128.36.49])
        by mx.cs.nyu.edu (8.12.11/8.12.11) with ESMTP id i7S9GZvU001664
        for <YUSUKE@XX.XXX.XXX>; Sat, 28 Aug 2004 05:17:39 -0400 (EDT)
Received: from localhost.localdomain (publigate.ip-plus.net [164.128.36.49])
        by nash.ip-plus.net (Postfix) with ESMTP id 932123C
        for <YUSUKE@XX.XXX.XXX>; Sat, 28 Aug 2004 11:16:36 +0200 (MEST)
Date: 28 Aug 04 11:16:34 +0200
From: teleguide/publifon 0227989098 <0227989098@publifon.ch>
Reply-To: TELEGUIDE@publifon.ch
To: YUSUKE@xx.xxx.xxx
Message-Id: <20040828091635.43D7837@nash.ip-plus.net>
Sender: 0227989098@publifon.ch
X-Mailer: Perl5 Mail::Internet v1.60

FUNGEA!!
123

公衆電話なのでとうぜんこのアドレスに返信はできないのだが、X-Mailer に注目。

(16:21)
あちーー。しかし感想してるのでそんなにひどくもない。かもしれない。

またもや発作的に冷蔵庫と流し台を掃除し、そのあと食料品の買い出しに行く。 あーー、やすくて安心 (日本食を買おうと思わなければ、米国ではバルクの食料品は 安いのである、ただしとてつもなくまずいけど…)。安いということと安心するということに 「安」の字が共通しているのはこれは何かの偶然なのか、それなの
か。

とにくく (とにかく)、 これでほぼ家のことはやったので、明日からバリバリ仕事できそうだ。 つーか欧州にいるあいだ研究を進めたくてしょうがなかった。飛行機の中でも Python のコードを書いたりしていたが、やはり旅行中はたとえパソコンを持っていたとしても、 夜は疲れて頭を使う仕事なんかはほとんどできないのである。今夏は欧州に合計でひと月いたことに なるが、これでもうしばらくの間は「ヨーロッパいきてー!」などと思うことはないであろうと思うであろうと思う。 「欧州は先月堪能したのでもう飽きました」といったら、フジイさんに「君それは変だよ」と言われてが、 てゆうかね。行きづまってるときには旅行はいい薬になるのだけど、仕事できる状態のときに そういう現実逃避してるとなんかもったいない気分になんのよな。というわけで、この秋には バリバリやる予定である。もともと秋から冬にかけてはいちばん何かに集中しやすいんではないかと思う。 来年は締め切りも早いしね…。つうこと。

(19:06)
(つづき)
窓の外にはマンタ (エイの一種) がゆっくりゆっくり飛んでいて、
遠くにゴムボートが一遭浮いていた。あたしはここまで来れたので
満足して窓から身をのり出して下界を眺めようとしたが、ここは
ビルの 3742階であるのでもう下のほうは霞んでいてよく見えない。
お空の上のほうにいくとそのうち海に出るんだよ、とあたしに
いつか教えてくれたのは祖母だったが、その祖母がこれから生まれる世界は
まだまだ上にある。ふと後を見ると、いま昇ってきた階段はもう半分くらい
消えていて、部屋にはもう何もなかった。コンクリートの感触は
ひんやりして手に気持ちよかったが、右手のしびれは明日まで治らないとおもう。
頭がつき刺さった腕はもう半分腐りかけていたが、このままでは日が暮れないので、
時計の電池を抜かなければいけない。そしてそれはとても面倒くさい。
(つづく)

てくるで現代の日本では誰でもヨン様 (とその恋人役) になりきれる 「ヨン様カツラキット」なるものが絶賛販売中らしいと聞いたがそれは本当か??

(19:30)
パスワードを3回撃ちまちがえた人間は菌メダルを強奪さseる。 夕方になったらすずしくなった。明日はわが身かな。
(21:44)
また新しい料理を開発してしまった。うまし。 しかも栄養教教徒の新山であるのでビタミンと繊維だけは多く脂肪が少ない。 しかも、ゴハンもいたのに「それ」の 量つくりすぎてゴハンが食えないという事態に。アホである。 実はオレは才能があるようで実は才能がないようで実のところ才能がない。
(22:05)
しゃしんができました。
(00:42)
(つづき)
それまでわたしは艦隊を 4つ持っていたが、どれもすべて沈めてしまった。
そのうちの一つは、たしかに事故といえば言えるようなものである。しかし
日本では「トップが辞める」というのがつねに最高の責任のとり方であるとされてきたため、
結局のところただの日雇い労働者にすぎなかったわたしにはほぼ何の沙汰もなくすんだ。
ともあれ、あれだけの惨事の中でただの一人も犠牲者 -- これは我々の定義するところにおいての
犠牲という意味でだが -- も出なかったのだから、大したものと言わねばなるまい。
古代ギリシャの哲学者タオスレケイトスは兎には 3つの異なる跳び方があり、それらは正しく引用されなければならない、といったが、
その格言はすくなくともこの事故 (我々はいつも「事象」と呼ぶことにしている) の影響を
考えれば、眠気を催すほどのものではない。にもかかわらず、それは我々の呼びうる「数値」の
範囲内において、高い精度で現実と敵の妄想とに一致していた。
(つづく)
(01:16)
目をとじておこなう操作のすべてが重要であるというわけではない。
Yusuke Shinyama