つねに消去法の人生ってヤーだなあ。
日本は世界の中でも殺人の時効をはっきり守る国だそうだ。 日本の法体系のもとになったヨーロッパではすでに 多くの国が時効を廃止するか、より柔軟な基準にしているそうな。 過ぎたことはさっさと忘れろ、という日本の風潮がここにも現れているのだろうか?
どうでもよろりいが、いまやニュースで Flash が "Adobe Shockwave Flash" と呼ばれるようになっていることにショックを受けた。
いや、やめた。やっぱ来ない。
「ノオ! これは昼食ですよ!」
kterm が、一時的にスケスケになればいいのになああ、と思うときがある。 ふだん新山は端末を画面いっぱいにしているが、 ときどき ghostview かなにかの出力をみながら作業したいときがあるのだ。 しかし他のウィンドウを前面に出すと文字は隠れるし、 ウィンドウをあちこち配置するなどというめんどくさいことはやっていられぬ。 こういうときに端末がぼワっと透けて後のウィンドウが見えるといいよね…。
きょう、某国の某有名イット企業の方々がお見えになり、セキネさんと会談していた。 ふーーん。 なんでも、これから手を組んでアレなことをアレする方針なのだそうな。 ふーー〜〜〜〜〜ん。セキネ社も有名になったもんですね (あいかわらず日本での評判をぜんぜん知らないが、陰でボロクソに言われてそうな気もするのだが)。 で、新山も手伝う気ないか、と言われたのだが、 なんとなく気がすすまないので適当に逃げておいた。 でもそのあと「なんで気がすすまないんだろう?」とずっと考えていた。 (とはいっても、ずっと考えつづけているとバスにひかれて死んでしまうので、 厳密にいえば、バスの前を通る間だけは考えていなかったが。) 正直、よくわからない。でもあえて言葉にすれば、 なんか、インチキくさいんだな。 もちろん、原理的にはインチキじゃないのだろうが、 誰かが誰かをだましているように見える。 それが一般人なのか、企業なのか、あるいは研究者なのかは定かではない。 でも、なにかがどこかインチキだ。この感覚はなんなんだろう?
研究者や専門家というものが、 意図的に一般人を騙そうと思っているのでないことはたしかだ (まあ、なかには意図的にやってるのも少しはいそうだが、 そんなのは少数だ…と思いたい、大半の人々はそんなこと意識してない)。 だが、研究者が自分の研究結果を売り込むと、 結局は騙していることになってしまうような気がする。 なぜこんなふうに思うんだかわからないが… おそらくきっと間違ってるに違いない。 というか、「自分のやっていることになんの疑いも持たなくていい」という風潮が 怖いのかもしれない。どんな思考であれ、迷いがなくなったらそれは 「信仰」になってしまう。これは宗教の必要十分条件だる。 もちろん誰しもある種の思考は迷いなく行動するが (たとえば朝起きてまだ外が暗かったら太陽が消滅したとは思わずにまた寝るとか)、 IT っぽい仕事をやってる人に多い 「合理的」な人々に新山がなんとなくヤバさを感じるのはこういう部分かもしれない (相手がアメリカンだと特にそうなのかもしれないが)。 いや、べつに、世間的な意味ではヤバくないのかもよ? 金持ちになれるし。逮捕されたりとかはしないだろうし。 しかし人間の行動というのは本質的に“混乱”を内蔵しているものだと思う。 はっきりいえば、混乱してないヤツは信用ならないのだ。 混乱を隠すヤツはもっと信用できない。 うん? オレは一体何をいってるんだ? もう混乱してきたから中止。
まあ、彼らは、生活するのに忙しいのかもしれない。 こんなこと書いてるオレは暇人だからな、基本的に。
こんなことをいうと、そんなら自分はどうなのか、 ということになる。だがそれについてはまだ書かない。 あと 100年以内に書く。あるいはたぶん 113年以内。
こうすると、ディレクトリ上は$ mv running.sh running.sh.old $ cp running.sh.old running.sh $ vi running.sh
running.sh
が変わったように見えるが、
実際の sh はまだ running.sh.old
の iノードを握っている。
cp
と mv
の順番が違ってはうまくいかないことに注意。
さいしょに cp
して mv
ではだめなのだ。
はっきりいえば、さいしょに running.sh
を rm
しちゃって、
新しい running.sh
をつくっても OK。
なぜなら POSIX の枠組みでは、ファイルの削除はそれを開いている最後のプロセスが
終了するまで削除されないからである。
偽善者であることを非難するつもりはない。 でも、堂々と偽善者であり続けるためには覚悟が必要だ。相当の覚悟が。 今のオレにはそんなものはない。
で、「こんなの嫌だ」と思ってほかに行くと、
今度はそこにまたもや腐った政治があるんだよね。
知ってるよ! 知ってますよ!
あなたですか、花婿は…?
もうけっこうですよ!
あなたと口を聞く必要はありません!
(by ラスコーリニコフ)
Apple はグラミー賞ごときで iTMS ユーザに spam を送るのをやめてほしいです。
それにしても freetype2 は去年の夏に仕事で使ったが、 ちょっとバージョンが違うだけで関数や定数が消えてたり、 名前が変わっていたりするので、 あのライブラリは信用できないと思った。 誰が開発してるんだか知らんが (Novell がやってるのか?)、 あんなのにインフラを任せられないよね。
昨日こんにゃろと思ったのは、引用符に \u0093 と \u0094 をつかう新聞と、
\u201 と \u201d をつかう新聞があるということである。
さらにいえば、ハイフンも \u0096 や \u0097 や \u2014 が混在している。
くそったれ。まあしかし世の中というのは混沌としているのでありまし
て。。。
「…僕は、公の仕事で、僕の最も深い確信をぎりぎりの結論まで持って行った事がない。 つまり自分の最後の言葉というものを書いた事はない。… (中略) … 一体、或る思想の結論まで表現しようとするとそんな事になるのです。 彼等は勝手な逆説を立てる事が出来るのです。 もし最後の結論まで持って行かなければ、いかにも鋭い気の利いたものに見える、 見事な論文に見える。ところが、もし君が最後の言葉を発し、全く率直に (諷刺的な方法は全く避けて) 『これこそメシアだ』と言えば、 誰も信じようとはしないだろう。何故かというと、君は君の思想の最後の結論を 口にするくらい馬鹿者だということになるのだから。多くの有名な機智に富んだ人、 例えばヴォルテエルのような人が、もし暗示や諷刺や曖昧さを一切捨てて、 一と度己れの真の信条を吐露し、真の自己を語ろうと決心したなら、 恐らく十分の一の成功も覚束なかっただろう。嘲笑されたかも解らない。 最後の言葉というものを人々は聞きたがらない。 『一度口に出したら、その思想は嘘になる』というその 『口に出した思想』に対して、人々は偏見を抱いているものです」 (1876年 7月16日、ソロヴィヨフ宛)-- 小林秀雄 「ドフトエフスキイの生活」
http://services.google.com/event/nyengopenhouse.html
google イベントには懲りたのでもう行かないが、こないだ予想したとおりのことが起こりそう。
どぅーでもぃいーが、やっぱり CLTL を買ったほうがいいのだろうか? ちなみに Adam から借りてきたコレは、今は亡き Digital Press (DEC の出版部門) の 1990年版だ。 オレは Python の本も (自費では) 買ったことがないのに、 好きでもない Lisp 本を買うなど敗北だ。しかし、けっこう「ハズレ本」はいっぱい自費で買ってるけど。
例のヤツを大規模に走らせる。 つぎにそいつの出力形式をちゃんと Python で解析できるようにして、 原始パターンの生成をおこなう。たぶんここまでで終わるだろうな、明日は。 ああそうだ、NE・照応解析結果ともマージしなければならない。 こいつはライブラリをちょろっと書きかえればできるはず…。 こうして文章に書くとぜんぜん大した作業じゃないにもかかわらず、 現実には手間ばかりかかる。ちっくしょうめ。うふーふ。
このように書くと、世間では「研究に精を出している」ってことになるんかもしれないが、 実際には内心は非常に冷めているのだった。 さっさと結果出してトンズラしようぜ、こんな○○○○○○。
学生の持ってる iPod のことを stupod という。たぶんみんなそう呼んでる。絶対。
EigodemoOyagagwazonsaisuru. Zettay,.
リチャード・ストールマン、 P2P について語る (LinuxP2P)
「私はもうクリエイティブ・コモンズには賛同しない。私はクリエイティブ・コモンズすべてを支持できない、 なぜならこのライセンスのいくつかは受け入れがたいものだからだ。 クリエイティブ・コモンズ・ライセンスのある部分だけを支持するというのはただの自己欺瞞にすぎない、 なぜなら人々はこれらをみな一緒くたにして考えるからだ。 かれらは少しでも何かに賛同すると、それ全部に賛同しているようにとってしまう。 だから私はクリエイティブ・コモンズ全体を拒否せざるをえない」
このページにある 「彼は政治家なぞよりもはるかに自分の主義に忠実だ」というコメントは正しい。 おそろしいおっさんだ。
slashdot のほうにもかなり笑える記事があるのだが、 ちくしょう、もう寝なきゃ。
きょうのプログラミ検証の授業は途中で寝そうになった。 寝不足かな。きょうはさっさと帰っちゃうぞ。
フザけやがらねえでくだせえ。まし。
じつは東北じゃなくて西北だったよ。都の。
出力形式の設計について再考。 新山の研究では中間段階としてかなりいろんな形式のテキストデータを経由するので、 各段階で適切なフォーマットを設計してやらねばならない。が、 とくに大規模なデータを扱うようになるとフォーマットの設計は非常に重要になる。 なんしろ大量にバッチ処理するので途中でデータが corrupt したりすると あとが大変だし、データが多いと予想しない型の文がいくつも現れるので、 あらゆる入力に対して構えていなければならない。 もっと単純な構造のデータならいいのだが、これがやたらと複雑ときた。 新山は (あきらかに djb の影響で) 出力フォーマットをやたらと厳密にする傾向があるが、 こういうのって offensive っていうのかな。おもに考慮すべき事柄は次のようなものだ:
こういう場合のフォーマット設計というのはセキュリティの問題を考えるのに似ている…と思う。
なぜなら入力データにときどき悪意があるとしか思えないものがまじっているから。
しかしそういう連中にも適切に対処しなければならない。
そのうえ、悪意のない途中の処理過程が出した予期せぬエラーがまじることがある。
こうした出力でデータの一部が汚染されたときも、それが原因で
データ全部がおじゃんになってしまってはこまるし、でも読み取りがあんまり複雑になって、
Python で (最大でも) 10行ぐらいで読み取れなければそれは意味がないしで、
なかなか制約が多い。結局のところ、堅牢さを維持するには
誤り訂正符合の設計なんかと同じように、短い間隔で“目じるし”をたくさん入れて、
それを見ながらシンクロしていくしかないと思う。
テキストデータの場合は改行がわりあい信頼できる単位として使えるのでまだいいが、
改行がいっこ抜けただけで数十行ぶんがおじゃんになるようではやはりこまる。
S式や XML は表現能力はあるけど解析はめんどくさいし、誤り訂正機能が弱いんだよなあ…。
ちなみに S式の解析って真面目にやろうとすると結構大変だよ。
たとえば ("\")\\\|" |")(\||)
は文字列定数 1つとシンボル 1つをふくんだ 2要素のリストである。
はあー vnc2swf のバグフィックスをリリースしたいのだが… 時間がない
google://ちったあ/ (179,000)
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.'
>>>
刹那主義にも許せる刹那主義と許せない刹那主義があって、 筋金入りの刹那主義というのはこりゃもう許すしかない。
むかし: 「先生に言いつけてやる!」
いま: 「弁護士の先生に言いつけてやる!」
いやはや、時代とは。
五番街 (ふぃっfふth・あう゛にゅ〜) を通ったタラ、
身体が押しもどされるほどの強さの風がビューコンスカビューコンスカ拭いていて、
最近が異常気象で助かった。これがもし -10℃とかだったら耳の一個やふたつは
簡単にロストしていたところだるよ
ね!!!!!!!!
ふう、今週末はほとんど洗濯と仕事だけで終わった。 しかし日記は微妙に狂っていてこんな具合でいい調子。
「あまりにも有名」というのは、 「オレ以外の誰も知らない」という意味である。
てくるで (ところ▽で)。
ネット上で「A氏と B氏は同一人物ですか?」などというのは、 ひどい人権侵害である。そんなこと言ってると訴えられっぞ!! かつての山形浩生のように。 そういう場合はむしろこう言おう。例:
以下りゃく。
今日は微妙にテンショニが高い? そんなことはありません。
コーヒー豆きれた (ようやく? ではあるが)。 あと、4年ほど使っていたオチャワンが割レチャッタので…いや、 まだ完全に割れてはいないが、微妙にヒビが入ってきたので 新しいのを買うこと。あと果物。あとは支離滅裂。
「…チャッタ。」というのを、語尾をカタカナでかくと 微妙にアレらしく見える。はてなぜだろう? アレとは???
オ前ナンカニ教エルカ。
「エルカ」って何? イルカの親戚?
アイデアだけあっても実装能力だけあってもダメ。 人生そんなに簡単ではない (いや、簡単そうな人もいるが、 そういう人は見なかったことにしよう)。
しっかし、なんで consp
があんのに nullp
じゃなくて null
なんだよ?
atom
も atomp
じゃないしなー、ぶつぶつ。
「カッコいいから (pun intended)」という理由だけで Lisp をやる奴はただの馬鹿である。 オレは断言するね!
Python の名前空間のアイデアはほんとに気に入ってる。
いっぽう、それ以外の言語の名前の扱いはどれもこれも気に入らない。
Scheme なども、名前を扱いだすとその単純さによるメリットは見事に瓦解する。
しかし Lisp や Scheme に Python のような「ドットによる名前区切り」を導入したところで、
それは決して Python のようにはならない。なぜなら Python では sys.stdin
の sys
は
階層化された名前の一部ではなく、じつは式だからなのだ。
なので 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 でもサポートされてる。 しかししょせんは所詮。)
いつも使ってるお箸が折れちゃったよ。 (というか、うっかり噛んで先っちょの細い部分をボキっとやっちゃったんだけど。) 買わなきゃ。
こうするとドエラい世界に迷い込んでしまう。(setf (readtable-case *readtable*) :downcase)
もとに戻すには、こうする:
Lisp は C とは別の意味で自分自身を“破壊できる”言語だ。
(|SETF| (|READTABLE-CASE| |*READTABLE*|) :|UPCASE|)
ようするに、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 はないんだろうね??
なんで Lisp でわざわざ自作の S式読み込みルーチンが必要か?
というと、既存の read
では、(. a)
などの
ドットを一個だけ含んだ式を読もうとすると必ずエラーになるからである。
メタ文字だと思っちゃうのね。
readtable とか macro-character あたりをいじればなんとかなると思って
いろいろやってみたが、どうやらこれはトークンを読んだ「あと」の処理で
エラーが出ているらしい。どーにもうまくいかんので、これなら自分で
書いたほうが早いや、たかだか数十行なわけだし、と思ったのだった。ケッキョキ。
現在の具合い悪さの内訳を以下に記してみると:
直接的には、たぶんきのうサーバ室で冷風にあたり続けた (ファンのすぐ前で連続作業していた) のが悪いのだが、 終わったあとの停電騒ぎでドッと来たと思われる。 だってさー、3〜4時間も作業して、やっと動いて、 そのあとダウンしたら「実は電源足りませんでした」ってなって、 2時間ぐらいすったもんだして、 「ダメならもとの部屋に戻してくれる?」 ってのは、そりゃあんまりだと思うわけよ。 てゆうか、オレはボランティアだ。給料よこせ! くそーー。フテ寝してやる。
いちおうきのう撮った写真:
きのうはあのあと別の電源に接続したが、 コワいので全部のサーバを立ち上げてなかった。 Andy と話した結果、結局のところ出た結論が "just try it" だったらしいので (なんじゃそら)、全部立ち上げろと言われおそるおそる電源を入れる。 2時間後、まだ動いているらしい。ということはオッケーか? でも今のところ負荷がまだ 40% ぐらいなのでいいが、 このあとみんな実験しだして電力消費が上がったらどうなんだか知らない。 オレにはこの手のセンスはぜんぜんないからな。 でも、オレの責任じゃないのでもういいや。
そういや昨日は遅くなったので結局 BSD のミーティングにも行けなかった。 OpenSSH-4.3 が出たんにまだ翻訳もしてないしな。 サーバ移動のせいでオレの何日間かはまるまるおじゃんだよ。くそったれ。 たかが 8台のマシンを 10m かそこら離れた部屋に移すだけでナンだよ?? たくもう。これが 800台だったらこれくらい時間がかかるのもわかるんだが。