KLUNK!
klunk? I thought I heard a klunk...
てくるで、おとといの話になるが、CORAL P2P のキャッシュが slashdot で /.ed よけとして使われていた。あれってそんなにメヅャーなんだろうか?
todo: COLING旅費請求
もういや田。(ほんとに klunk がまた起こっちゃったね)
e2fsck -c -v -f
したらいつまでたっても終わりそうにねーので、
もう頭きたから Solarwolf やってやる。
$ 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) (あとは書けない)
どうでもいいが、「コイを空に飛ばす」というアイデアを 最初に考えた人はかなりふるってる。尊敬する。
こうしてみるとオレは毎回旅行いくたびになんかなくしてるな。
まあ、どれも大したものじゃないから別にいいのだけど。
などとやれば一応、判別可能ではある。が、組み込みの述語でなんかないのか。 自慢じゃないが、新山は Python の built-in をほとんど知らない。 たとえばdef isiteratable(x): import types return isinstance(x, types.ListType) or isinstance(x, types.TupleType) or \ isinstance(x, types.GeneratorType) or hasattr(x, "__iter__")
oct()
なんてのは
このあいだまで知らなかったし、divmod()
に至ってはおととい岩田さんのページをみて知った。
でも正直なところ、この 2つの関数はどっちもなくていいと思う。
そもそも built-in をほとんど知らなくても全然困らないのが Python のいいところ。
言語仕様に詳しい人がプログラマとしてすごいかというと、ちっともそんなことはなく、 むしろそういう人は頭よくてもアイデア欠如で大したもん作れてなかったりする。
__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 にしなければ
ならないのである。こういうバグはどうやったら防げるのだろうか。
これは$ 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あ
こんなのが書けたらいいな:
つまり「文字列にパターンをマッチさせる」んではなく、 「パターン認識機械に文字列を食わせる」という発想である。 現状の方式だとマッチさせるべき文字列はいちどぜんぶバッファにためておかねばならない。 しかしこれは (とくに相手がストリーム状のデータの場合) 非常に使いにくい。 ぜんぶ変数に入れとかないとマッチできないから、いちいち複数行の文字列をまとめたりする 操作が必要になる。しかし上のような方法が使えれば、そうした 敗北的なプログラミングスタイルから逃れることができる。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]+>|."
という
パータンが文字列にマッチしたとして、"|"
で囲まれたどの部分で
マッチしたのか教えてくれないからである。マッチに失敗したときも、
どの部分までいって失敗したのかを教えてはくれない。
内部ではわかってるくせに!
すでにある名前を使うのは本家に失礼だ。
はなしは変わる。整数の割り算に /
という演算子を使うのは
好きではない。新山は pascal の演算子 div が好きであった。
ついでにいうと剰余を計算するときにつかう %
もいやだ。なぜなら Python では
これだけが 2重の意味をもつ演算子で、div と足並を揃えて
ここは mod にすべきだったと思う。
/
は実数演算のときにのみ使えるようにして、整数に /
を
使ったらエラーとゆうことになってればよかったのにな。
暗黙の型変換はいつ見てもけして気持ちのいいものではない。
ときどき、まったく関係ない 2つの曲が頭の中で勝手にまざることについて。 たとえば新山の場合は「♪ばななん、ばななん、バーナーな!」と歌ったあとに、 かならず、「♪空にキラキラお星様…」と続いてしまうのだった。 まあ今はそんなの歌わないけど、普通は。少なくとも目が覚めてるときは。 向こうの世界のことは知ったことではない。
まったく、最近はなんでオレこんなに沢山書いているのでしょうか? 暇じゃないのです、しかも。ドイツ語の教科書を読んでいるのです (これはマジ、Barrons のやつ)。だけど、ねむいし。目の前に亀田製菓の ソフトサラダがあるのだけどこいつをどうしてくれようかな、などと 考える間もなく BlueTooth のマウスは電池ぎれになるのだった。水だ!
…てゆうか、いったいなんで PowerBook はこんなにアツいの?? 絶対低音ヤケドなる。変換んの最初の候補を決っして習性しないこと。 それは敗北だ。ボクハイ敵。むもうわけわかんにあい。疲れていない! 疲れていない!
(残念ながら、あなたは面白がっています)
いやウソだ。おれはウソをついている。ほんとうは暑くて眠れなかったのかもしれないが、 そんな事実は未確認だし第一どうでもいい。どうでもいいことの酢金輪際中華風電波万歳。
きのうは、ドごーーるで北米行きの便への乗り換え時間が 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拍子そろった 最悪の街だな」と思う。欧州ではアメリカ白人の失礼さを見るにつけいつもムカついていたのだが、 こっちにくると周りがそもそも失礼なので、全体として白人の失礼さは普通のレベルになってしまう。 いまはこの病気がオレにも伝染しているのではないかと不安だるよ。
スイスの公衆電話にはほぼ必ずキーボードがついていて、 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 に注目。
またもや発作的に冷蔵庫と流し台を掃除し、そのあと食料品の買い出しに行く。
あーー、やすくて安心 (日本食を買おうと思わなければ、米国ではバルクの食料品は
安いのである、ただしとてつもなくまずいけど…)。安いということと安心するということに
「安」の字が共通しているのはこれは何かの偶然なのか、それなの
か。
とにくく (とにかく)、 これでほぼ家のことはやったので、明日からバリバリ仕事できそうだ。 つーか欧州にいるあいだ研究を進めたくてしょうがなかった。飛行機の中でも Python のコードを書いたりしていたが、やはり旅行中はたとえパソコンを持っていたとしても、 夜は疲れて頭を使う仕事なんかはほとんどできないのである。今夏は欧州に合計でひと月いたことに なるが、これでもうしばらくの間は「ヨーロッパいきてー!」などと思うことはないであろうと思うであろうと思う。 「欧州は先月堪能したのでもう飽きました」といったら、フジイさんに「君それは変だよ」と言われてが、 てゆうかね。行きづまってるときには旅行はいい薬になるのだけど、仕事できる状態のときに そういう現実逃避してるとなんかもったいない気分になんのよな。というわけで、この秋には バリバリやる予定である。もともと秋から冬にかけてはいちばん何かに集中しやすいんではないかと思う。 来年は締め切りも早いしね…。つうこと。
てくるで現代の日本では誰でもヨン様 (とその恋人役) になりきれる 「ヨン様カツラキット」なるものが絶賛販売中らしいと聞いたがそれは本当か??