2008年 4月 (2)。

Last Modified: Sat Apr 19 09:10:42 JST 2008

おしらせ:
「おしらせ」とな?

Apr 19 [Sat]


(09:10)
Sunny, yesterday my life was filled with rain.

Apr 18 [Fri]


(07:53)
すげー雨だな、おい。会社いきたくねーな。 会社は別にいいのだが、新山はデンシャが嫌なのだ。 ま、雨の日の電車がスキな人なんていないと思うけど。

新山の場合、朝は毎日コーヒーを飲むのだが、きょうからすこしライトな 煎りのやつにした。きのう、いつもコーヒー豆を買ってる 会社の近くの喫茶店の主人に聞いたのだけど、 コーヒーはじつは焙煎が浅いほうがカフェイン含有量が多いという。 へー? それは知らなかったね。素人感覚では味の濃いコーヒーほど カフェインを多く含んでると思いがちだが、 焙煎による味というのはようするに炭化したコーヒーの味であって、 炭にはカフェインは含まれてないというわけだ。カフェインは 生のコーヒーの実が一番多く、焙煎すればするほど減っていくのだという。 なるほどね。

(18:52)
いやー今日の風はすごかった。ほとんど台風。途中、風の通る坂道があるのだが、 通勤途中の人人がみんなどっかの軒下に集まって動けない。 新山はといえば、カサは完全に崩壊した。カサって、完全に壊れると あれほど扱いにくいダイブツ (代物) もない。
(20:17)
「批判」は1年中、366日24時間つねにやっているべきだが、
「非難」は 1日3回までにすること。

Apr 16 [Wed]


(19:36)
あー、づかれだ。

昨日の飲みすぎなどまるでなかったかのように、 今日はある講習会に (平然と) 参加してきた。某所でやっている 中小企業向けの侵入新入社員・合同研修会である。つまり、 マナーの先生のような方が出てきて「ヒトは見た目が 8割」だの、 「名刺交換はこうするのだ」といった、ありがたい教育的なお話を拝聴する、 という、アレである。周りはみんな自分よりも若い連中ばっかり… と思ったら、そうでもなかった (なんでだろ?)。 そして最後にみんなで決意表明のようなものを言わされた。アホらしかったので 「明日からも、昨日までとまったく同じようにやりますから」と 宣言して帰ってきた。 みんなア然としていたような気がする。どーせ理解してもらえなかっただろうが、 説明するのも疲れるし、まあ勝手にしてくれ。

基本的に、そこらの本に書いてあるようなビジネス上の常識やマナーというのは、 「相手が日本人で、平均的な中流家庭に育っていて、日本語と日本文化と 日本風の“空気”を心得ていて、ゲイではなくて、 しかも目も耳も頭も手足も普通に動く」人間に 焦点をあわせて書かれている。この仮定からはずれた人間は 最初から考えられていない。それは知ってて無視してるんじゃなくて、そもそも そういった人間が世の中に存在している、ましてや彼らがお客や同僚として 自分の人生にかかわってくるなど想像すらできなかった、 ということなのである。そして、こいつらが「思いやり」だの「気づき」だのという お題目を持ちだす場面を想像してみてくれ。これがギャグでなくて何なんだ。

真の失礼さとは何だろう? それは「その存在をまったく知らない」ことだと思う。 たとえば障害者への差別は、そのほとんどが無知から生まれる。 外国人差別も同様 (ただし日本のみ。海外では、人種差別のように 相手を知っててなおかつ嫌悪する例も存在する)。 しかし「無知は罪ならず」というように、これは彼ら自身の責任じゃあない。 社会全体の責任であり、新山もそのうちの一人なのだ。 だからきょうの感情は「ムカつくけど、やり場のないムカつき」であった。 …ついでにいえば、この種の感覚はキリスト教以外の宗教がありうるということを 知らない欧米人や、アメリカ的価値観ではない価値観がありうるということを 知らない米国人に接したとき感じるムカつきと似ている。

で、よく新山は「アメリカ人は趣味が悪い」とか「Rubyユーザはセンスが悪い」とかいうことを 言うけれど、本当は「趣味のいいアメリカ人」 (ワオ!) も 「センスのいいRubyユーザ」もいる (ワオぅ!) ということを知っている。 つまり自分の意見が偏ったものであり、反対されるとわかっているからこそ、 安心してこれらの偏見を言えるのだ。もし自分の意見が誰からも反対されなかったら、 そんなのこわくて絶対言えない。それじゃ独裁になっちまう。 新山がつねにマイナーな意見に寄りたがるのは、基本的にはこの手の 「独裁」的な立場が現れるのを恐れているからだと思う。 世の中には「せめぎあい」が必要なのだ。秩序と統制よりも、自由と混乱を! しかし世の中には、他人から支持されそうな意見“だけ”しか言わない、 という人も存在するようで、新山はそういう人々をひどく恐れる。 彼らがそれを自覚していればまだいいよ。でも、もしそうでなかったら…。 第二のヒトラーはいつでも現れうる。 人間は、あれから少しは賢くなったんだろうか? あやしいもんだな。

(22:58)
追伸。ようやくダイコンを全部使い切った。もうあんなデカいの買わね。

Apr 15 [Tue]


(23:11)
うー、酔ってまふ。

またバカをさらけ出したような気がする。ものすごい自己嫌悪

Apr 14 [Mon]


(20:14)
キョーは記録を更新して 1時間半ちかくもザンギョっちまった。 当然のことながら、新山は残業を恥だと思っている。 システム管理者ならともかく「残業するプログラマ」なぞというものは 恥さらし以外の何モンでもない。なぜなら、これはプログラマの 唯一まともな武器ともいえる合理主義をみすみす捨てていることになるからだ。 新山は、一日8時間ぶっつづけでコードを書いたあとで、 なおかつ1時間も2時間も続けられます、などという人間がいることを信じない。 それは、絶対、いんちきだ。 しかしそれでも今日は残業をしてしまった…。不本意だる。 というのも明後日に本業とあまり関係ない、クダんネーことで 時間がつぶれるので、それの埋め合わせをしたつもりなのだが、 よくよく考えてみればそこまでセッパつまってもいなかった。 やはりさっさと帰ってくるべきだったと思う。

(追記: ところで新山は大学院生のときによく大学に夜中までいたが、これは別にいいと思う。 なぜならこれで奨学金が増えるわけでなし、どのみち朝は思いきり 遅刻するわけだから…。しかし、自分の“勤務時間”に対して 課金する立場になったら、それはもうプロであるから、甘えは許されない。)

それで、今日はもうスーパーも閉まりかけていたので、 冷凍しておいたゴハンと、煮物ののこりと、レトルト麻婆豆腐 (豆腐だけ必要ってやつ) と山ワサビで夕食をすませた。しかしなんだかんだで 3品はあったワケだ。 おっと、そして忘れてはならないのがダイコンの味噌汁である。 やっとここまできた。そろそろ終わるぞ、ぜぇぜぇ。

Apr 13 [Sun]


(13:49)
新山には何人か youtube 上で注目しているユーザーがいる。 そのうちのひとりが xnatkoで、 一時期お休みしていたのだが、最近また復活したらしい。 そもそもどういう経緯でこのページを発見したのかは忘れたが、 オレはけっこうファンだ。ただのエロオヤジ根性かもしれないけど、 彼女には天然の「アイドル性」があると思う。 まず快活だし、気どらずに、友達に向かって喋るようにカメラの前で喋る。 それに自分のバカっぽさをまったく隠そうとしない。 おまけにルックスもいい (←新山の基準では)。

ちなみに彼女は高校生らしいが、喋っていることもほとんど 「高校生的」な話題ばっかりなんだけど、なんか聞いちゃうんだよね。 youtube や myspace ではこういう高校生ぐらいのユーザは かなり多いのだが、たいていの連中は自意識過剰なアホで見苦しい。 それにひきかえ、xnatko の表情豊かな喋りはヘタするとラジオのトークとかよりも おもしろい。 自分がハマっている食べ物だとか、Seventeen (雑誌) の記事がどーたら、 占いがどーたら。あげくのはてには暇をもてあまして Playdohを食う。 Playdohってのは米国で売ってる子供向けの色つき粘土みたいなやつだけど、 ちゃんと彼女はビデオを編集しているので、自分の「見せ方」を心得ているのだろう。 やるなあ。テレビ局はこういうのに注目しないのか? しかし本当にオレが期待しているのは、日本人でこんな感じの ビデオをアップロードするヤツが出てこないかということなのである。 べつに男でも女でもいい。でも、ぜんぜん出てこないんだよね。

すこし前にyoutubeやmyspaceの日本版を見てガッカリしたことがある。 ああいうところで「個人」カテゴリにアップロードされている動画は、 ほとんどがエロ動画か、さもなくば気取ってるだけで意味不明なアホかの どっちかだったのである。もうあんなとこ二度と見ねえぞ。 しかし、ある意味、あれは予想どおりだった。 あれこそが「日本人にとってのネット」なのだ。 こういう経験はすでに何度もしているが、wikipedia もそうだし、 slashdot.org を見たあとでの slashdot.jp とか、 theregister.co.uk を見たあとでの itmedia.co.jp とかに共通する、 「ここまで格が違うのか」という落胆だ。個人ページでも同じだ。 もう慣れたよ。こういうものを何度も見せられたあとで、 「日本語の web なんぞ見る価値なし」という意見になったとしても、 しょうがないと思う。でもガックリはするよね、とにかく。

ちなみに youtube でもうひとりのお気に入りユーザーは Urgeltである。 こっちはキャラクターがぜんぜん違う。なんだか眉間にシワよせた オヤジが出てきて「健康的な食生活」その他の固そうなテーマについてひたすら語るという もので、新山はこの喋り方が気に入ってる。眠れないときに見るのも効果的 (すぐ眠くなる)。

(19:45)
日本の web サイトがあまりにもダメだといったが、 それの軽いフォローをしておく。日本はネットはだめだが、日本のテレビはすばらしいよ! どの番組も非常に成熟していて、知的で、なおかつ多様な視点をふくんでいる。 日本にいるならネットなんかより絶対にテレビを見なきゃだめだと思う。 まあ、オレは銭湯いったときぐらいしか見ないけど。 つうことで。それじゃ。

てくるで今日の晩ご飯はブリの照り焼きであったが、 ブリタを買ったからとは関係ない。あはは、あはは。一人ウケ。

(22:00)
…さて、そういうわけで (siw)、銭湯に行ってきた。 帰ってきてから Brita の水をのんでみたら、なんか妙に甘い。 こんなに甘かったっけ? 日本はもとから軟水だからこうなるのかもしれないが、 新山はもうちょい硬い水のほうが好きだ。まあいいけど。

Apr 12 [Sat]


(11:08)
ゆうべ、quota をオーバーした夢を見た。不吉だ…
(14:33)
きょうのお昼は外食しよっかな、と思ったが、買ったダイコンを 使わねばならないことを思いだし、スパゲティゆでる。 とりあえず大根をおろし、実家から送られてきた山ワサビと混ぜた。 うちの親は毎年この時季になると近所に自生している山ワサビをとってきて、 茎をお湯にサッ通し、醤油で食う。これはかなりウマい。 海外にいたころ、wasabi って植物はそのままでも食えるんだぜ、 と人にいうと、たいていみんなワサビの元となる植物のことを知らないので、 「あの緑色のペースト」を食う場面を想像をするらしく驚かれたが、茎には根っこほどの 辛さはないのだった。むしろ茎の部分の魅力はあの「ワサビくささ」にある。 でも今回は送っているあいだに時間がたっていたので匂いも辛みもあらかた消えていた。 殺菌作用があるのでそれなりに日持ちはするはずだが、やっぱり採れたてのやつにかぎるぜ。 どうでもいいけど、 ワサビって漢字で書けば「山葵」だから、山ワサビは「山山葵」になるよなあ。 ホント? どうなのよ?

(追記… そういえば思い出したけど NYU の近くの Starbucks には、 右腕に漢字で「山葵」と刺青した店員がいた。彼はあれがカッコイイと思っていたのか。 あのワサビ野郎は今どうしているのやら?)

どうでもいいけど (どうでもよろ, ddy)、ダイコンはまだ半分ちかく残っている。 こりゃ今日もダイコンのみそ汁だな。つくづく思うに、大根のパワーというのはすごい。 これは毎日のメニューを変える力をもっている。つまり The Power to Serve だ。(意味不明)

(15:35)
sate, 以下のプログラムを考える。
f = (lambda x: (lambda y: x(y)))
while 1:
  f = f(f)

これは完全に実行可能な Python プログラムである。 一見すると永久に実行できそうだが、実際にはスタックオーバーで止まる。 なぜなら内部の lambda がどんどん増殖するから。

で、問題は、このプログラムにおいて変数 f のとりうる型は何か? ってことである。実際には、この値はつねに最初の f と同型だ。なぜなら

しかし、2つの型が同型だからといって、Python にとっては同じ型ではない。 Python はここまで既約してくんないので、だから lambda が増えつづけることになる。 現実的な型推論マシンがこの変数 f の型を導出しようとすると、 どうなるのか? たぶんその出力結果には循環的な定義が含まれることになる。 つまり f の型とは、(lambda x: (lambda y: x(y))) か、 あるいは (lambda y: f(y)) (fの型それ自身が定義に含まれる) のどちらか、 ということになる。

ちなみに、似たような状況はリストを使っても起こる:

a = [1,2,'foo']
a[0] = a
この場合の変数 a の型は何でしょう?

答: リストはリストだが、「どのような要素をもつリストか」までを 完全に記述することはできない。あえていえば 「リストaの構造それ自身か、 あるいは int と str を要素にもつようなリスト」となり、 ここでも循環的な定義が生まれる。実用上はこれでちっともかまわないんだけど。

(19:13)
きょうは床屋へ行き、そのあとドンキホーテで Brita を フィルタとセットで買った。結局 Brita かい…。 このブランドは米国でもほぼデファクトで、てっきりアメリカ企業だと思っていたら ドイツ製なのだった。はじめて新山が米国でアパートを探したとき、 ルームメイトの Owen がこれを使っていたから、 こいつとはもう 7年以上のつきあいになるが、 新山はこのフタつき容器があまり好きではない。 なぜなら、水が少なくなってきたときに傾けすぎると、 フタが突然パコっとはずれて、 ナベの中やポットの中に落っこちてしまうというケシカラヌ状態になるのである。 今までに何度こいつを箸で (泣きながら) 拾いあげたことか…。 もうちょっとキツく閉まるようになんないの? しかし他のインチキ浄水器に比べると、やはり Brita は マシという結論になってしまう。なによりも、このシンプルさ。 それにフィルタが高いとはいっても、ほかのメーカー品の維持費と比べるとそうでもない。 とくにこれからの時期、だんだん水が臭くなってくるので、やはり Brita 様におすがりするしかないのか。とはいえ、水道水の悪口をいう気はない。 日本でも米国でも 水道水というものはスバラシイ のだ。

どうでもいいけど、トコヤ談義で世間話をするのには疲れる。 2000本安打がどうとか言われても、まったくついていけませんね。 といって、haskell の並列化について話されるのもイヤですが。

(20:25)
きょう得られた重要な知見…

ギョーザ大王がなんと言おうと、ギョーザ作りにおいてもっとも大切な 工程は具の材料の水切りだ。この点はとくに強調しておきたい。 なぜなら、これをおこたると、焼いてんのに、まるで水餃子か焼き餃子かワカンない代物 (だいぶつ) が形成されてしまうからである。 まったく、こんな基本的なことをやり忘れるようでは、 オレには北京オリンピックに出場する資格なしだな。

(00:12)
おい、てめー、OpenBSD www はいつになったら翻訳版と sync されるんだ (OpenBSD では、翻訳用の CVS は分かれており、翻訳担当者が更新しても すぐには www のほうにアップロードされない)。 オレは OpenSSH 5.0 になってからすぐに日本語版も更新してんだぞ。 それなのにもう 1週間以上もサーバの内容は更新されてない。 Saadが忙しいのか? これじゃあせっかくすぐに翻訳しても意味がないよ。

Apr 12 [Sat]


(00:25)
新山が就職してから、ほぼ半年たった。 このあいだに起きたさまざまなことを観察して、新山には 小さい会社で働くということがどういうことか、ちょっとわかってきたような気がする。

現在新山が働いている会社は、社員が全部で13人しかいない。 これは、友達のあいだでは結構自慢できる小ささだが (知り合いはみんな大手メーカーに勤めているので)、統計的には こういう会社はかなり多いはずだ。 この程度の規模になると、とにかくいろいろと余裕がない。余裕というのは物質的なことも そうだし、時間的、心理的なこともふくめてである。まず、社員はほとんど全員が クリティカル・パスの上に乗っている。1人でも長期入院したり、あるいは 材料の入荷が遅れたり、月の売り上げがひどく落ちこんだり、 1台でもサーバがクラッシュしたりしたら、 業務全体に重大な影響が出てしまう。ま、実際にはこれはすこし誇張であって、 多少の余裕はあるわけだけど、いずれにせよ大きな企業に比べるとはるかに少ないと思う。 だって何百人・何千人もいる企業なら、多少どっかの資源が遊んでいてもよさそうだもんな…。 これに対してうちのような小さい会社では、どこかがマズくなるとすぐに深刻さが浮き立つ。 もっとも、これまでのところ業務は総じて順調であり、深刻な問題が 出たことはないのだが、「余裕のなさ」はつねに感じている。

とはいえ、これは最初からある程度予期していたことであって、なんにせよ 新山がこの会社に雇ってもらったことは非常に恵まれていたことだと思うし、 仕事自体も面白いし、この適度な緊張感が零細企業のダイゴミと 言えば言えるのかもしれない (←なんか他人事みたいな言い方だ)。 それにウチはいわゆる「下請け」ではなくて、 商品の企画、開発から製造、販売までやっているので (この規模で!)、 友達のトイダに言わせれば「すごいニッチ産業」ってなもんである。 うん、実際これにはオレも驚いた。しかも、buzzwordだけで売ってるどっかの ITベンチャーなんかと違い、うちはちゃんと使いでのある地味な物品を売っている。 こうしたところも気に入っている。もちろん、オレはこういう仕事をずっと 探していたのだけど。(じつは日記に書いていないが、新山の“就職活動”らしきものは 2年近く前から始まっていた。)

しかし、それでも、ときどきこの状況を冷静にふりかえってみて、 結構ギョっとすることがある。まあ、人生は綱渡り…ってほどに ギリギリでもないけれど、たしかにこうした感覚がキライな人は、 デカい会社に行けばこうした不安からは逃れられるだろう。 あるいは大学に就職するとか、いろいろあるけど、 どちらにせよ今のオレには向かない。前にも同じことを書いたけど、 キホン的に、新山が人生の「自由」を感じるのは今のような状況においてである。 つまりそれは自由と、それにともなう等量の「不安」がきちんと それなりの分量でやってくるという意味において。 魂の安息を得るために自由を売りわたす人々は、せいぜい売っていてくれ。

Apr 10 [Thu]


(20:59)
また雨。今日はダイコンをきらしていたので、帰りにスーパーではなく 駅前の八百屋でダイコンを買ったが、1本くれといったら 「でかいやつなんだけど、250円ぐらいするけどいい?」というので 「いいよ」といったら、おじさんが奧から出してきたやつは本当にデカかった。 新山の太股よりもでかい…くはないが、 脛ぐらいのサイズは十分にある。さしあたって今日必要なのは 大根おろしだったのだが、こんな調子じゃゼンゼン減らないので、 なるべく消費しようと思って上のほうのやわらかい部分を千切りにして 海苔と米酢で食べたら、かなり美味。ふぉっふぉ。

NY にいたころは日本食スーパーで売ってるダイコンを 買っていたが、だいたいパサパサしており、けっこうな確率でスが入っていた。 しかし NY に住むというクールさのためなら それくらいはガマンしていたのだよ!! このようなアホらしき人生からは さっさとおさらばすべきである。

(実際には、チャイナタウンで売ってるダイコンはそれほど悪くもなかった)

Apr 09 [Wed]


(21:19)
そういえば、これまでは会社でお昼休みの時間には web を見てなかったが (目を休めたいのと、ボーっとしたいので)、最近、すこしは見るようになった。 でもあまり文字を読みたくないので、以下のページをブックマークして毎日見ている。 これなら解説をあわせてもひとつ 2〜3分で見れるし、いつも視点が変わるので、 国内ニュースなんかよりは全然おもしろい:

で、NYT の写真は、内容はそれなりにいいのだけど、 流血の惨事が映っていることが多いので、じつは食事中に見るのにはあまり向いてない。 これにひきかえ Earth Science PoTD のほうはぜひともおすすめである。 NASA の PoTD サイトは 宇宙モノの写真でいかにも「あの世的」な感じがするが、 じつは地球人が本当に引きこまれるのは「この世」である地上の景色なんだと思った。 それに、なんでもないような景色でも、解説をみると感激することも多い。 たとえば この写真。 一見すると、ただ望遠鏡の影がうつっているダケで、これの何が面白いの? と思うでしょ。しかし写真の解説にはこう書いてある:

金星が反射する光は最大 -4.5等級の明るさをもち、 これは地上にある物体の影を落とすことができるほどの光量です。 この望遠鏡の写真のように暗いところでは、金星による影はかなり簡単に識別できます。 このときの金星の明るさは -4.3等級でした。矢印 (↑) で示した所に 注目してください。これは蛍光灯に映った金星の姿です。この写真が撮られたのは フランス南東部の Breil-sur-Roya で、時刻は 2007年11月17日の 4:21 から 4:34 UTC のあいだ -- これは天文薄明 (astronomical twilight) が始まる 5:11 UTC の前でした。

ワオ、これを見るまで金星の影などというものがありうるとは知らなかった! (月明かりが影をつくることは知っていたが) 正直なところ、このような感動的な体験をすることはあんまりなく、 毎日これらのページをチェックしていてもそういう洞察は これまで 2〜3回ほどしかない。でも、そもそも web を見ていて 感激するってことはほとんどないので、それを考えれば これらのページの当たり率はかなり高い。

もちろん、どっかのニュースサイトやアホサイトを毎日毎日毎日見て (そして受け売って) いる人々にわかってもらえるとは思わないよ。ホントに。

Apr 07 [Mon]


(21:57)

会社のマシンがあんまり意味もなく遅いので、 かたっぱしからいろんな設定を切ってみた。 その結果、Vista で最低限必要と思われるサービスは以下のようなものだと判明した。 ちなみに、条件は「通常のネットワーク (社内/社外) が使えて、 プリンタが使えて、音が出る」ことである。

それで、これら最低限のサービスを走らせた状態で ログオン直後の占有メモリがすでに 600MBytes だ -- XP はこの状態だったら 60MBytes しか食わないぞ。いったい何にそんなに使っているのか、 オレには見当がつかないが、web の情報を見るにほとんどキャッシュらしい。 まあいいよ、残りメモリが少ないことは utilization 率が高いということで、 ある意味ではいいことである。本当にちゃんと有効活用してるんならね。 でもオレは Windows Search とか Firewall とか Security Center とか、 Superfetch とか、無駄なもんはすべて切っている。 それなのにこれだ。ちなみにサービスを切っても起動はたいして速くなんない。 とくに、ログインしてからが死ぬほどおそい。いったいいつまであの趣味の悪い ログイン画面を見てなきゃならんのだ。ちなみに新山の環境は 1280x1024 で、描画オプションはほとんどオフ、背景は単色である。 どうでもいいけど (どうでもよろ)、新山はいわゆる「壁紙」をはっている人間が 理解できん。だって、ウィンドウ開いたら何も見えねーじゃんか。 壁紙を見るためにわざわざウィンドウを小さくしておくとか? 本末転倒。

結論をいうと、たぶんサービスを切ってもあんまりチューニングにならないので、 ウザい画面効果のみをオフにしておくのが賢いやり方であろうと、思はれる。

そんで、あいかわらず一番使っている「3大アプリケーション」は VirtualBox (上にインストールした Debian) と VNC Viewer、そして DOS窓である。これがなかったら仕事になんない。 VNC を使ってるのは、VirtualBox で X を起動するとフォーカスが取られて Meta+Tab で他の Windows のウィンドウに切り替わんなくてムカつくから。 ちなみに新山は次のようなファイルを macros.txt として保存しておき、 cmd.exe /K "doskey /macrofile=macros.txt" をショートカットとして 起動している。これで、UNIX風のクセを直さずにすむ。

d=cd %HOME%\desktop
h=cd %HOME%
e=notepad $*
o=start $*
c=type $*
l=more $*
la=dir/a- $*
ll=dir/q $*
ls=dir/w $*
rm=del $*
lns=mklink $*
date=date/t$ttime/t
ps=tasklist
psu=tasklist/fi "USERNAME eq %USERNAME%"
..=cd ..
以外と知られてないが、DOS窓でいちばん便利なコマンドは start だ。 これは OSX でいうところの open に相当し、 ようするにファイル名や URL を与えればテキトーに関連づけされたアプリケーションで 開いてくれる。あ、もうひとつ改良してあるところがあった。 それは HKCR\*\shell とか HKCR\Directory\shell を 書き換えて、どこのどんなファイルやディレクトリに対しても notepad と WinVi と DOS窓で開けるようにしてあることである。 これでだいぶ作業効率はあがったが、唯一の不満はDOS窓のフォントが ヘボいことだ。ほとんどの作業はいまだに kterm 上の Kappa 20 で見ている。 いやーこれは kterm と並んで日本人が開発したもっとも偉大な ソフトウェアのひとつだね。

Apr 06 [Sun]


(10:54)
そういえば、大学から離れて不便になったことのひとつに、 論文を印刷するプリンタがないということがある。 大学にいたころは、ネットで見つけた論文を片っぱしから印刷し、 電車の中ででも読んでいればよかった。 まあ、プリンタくらい買やいいのだが、そこまでして欲しくもないし、それに インクジェットで印刷された論文はボケてるので読みたくないのよ。 もちろん、レーザープリンタを買うような余裕も場所もない。 会社のプリンタでこっそり印刷しちゃうって手もあるが、 まだそこまでやってない (もちろん「仕事に関係する」って 言い訳がむりやり通用する場合は遠慮なく印刷するのダが、 新山が読みたがる論文はだいたい marginal なものが多いのだる)。 論文のいいところは、ヒマつぶしになるうえに、ハエ叩きにも使えるし、 なによりケチをつけて楽しめる。それに本と違って 持ち運びが簡単だし、読み終えたらすぐに捨てられる (どのみち、PDFは持っているわけだしね)。
(13:18)
論文の印刷の話。 ネットプリント というサービスを見つけ、試してみようと思いつく。 そしたらこれは Letter 用に作られた原稿のアップロードを拒否しやがる。 くそったれ。Preview で保存しなおせば別の紙サイズに変更できることを思いついた (正確には保存でなくて「PDFで印刷」を使うのだ)。
(23:12)
そして夕方コンビニで印刷してみたが、しかし高かった。 1ページ20円だって! おまけに両面印刷できないのでやけにかさばるし、 論文 2本印刷するだけで 480円もとられるとは、なんか、 ボッタくられた気分だる。やっぱ自前のプリンタ買う?

きょうは図書館へいったが、また何も借りずに帰ってきた。 新山の図書館使用法はかなりいきあたりばったりで、ほぼすべての本棚から ランダムに本を抜き出しては読むのだが (で、そのあと返却場所がわかんなくなって、 カウンターに行って返却してくる)、だいたいその場で何冊か読むと疲れてしまい、 そのあと借りる本をさがす気力がなくなってしまうのだ。 あと、今日のような陽気のいい日は館内が微妙に暑かったこともある。 ああいう場所にあまり長くはいられない (といっても、2時間ぐらいいたのだが)。

ところで、日本の図書館では読み終わったあとに本を自分で書架にもどすことが 推奨されているかのようなところがあるが、あれって一般的なんかね? 米国の図書館では、取った本は自分の手で棚に戻しては いけないとされていた。すくなくとも NYPL ではそうだった。 本を書架に戻すのは図書館員の仕事なのだ。図書館の検索性を考えると、 素人が間違った場所に戻してしまうことのほうがよくないことなのである。 ときどき、新山の実家の近くの公立図書館には書架がえらく荒れている 時期があって、そういうときは明らかに分類のちがう本が関係ない棚に 置かれていたり、目録にあるはずの (しかも貸出もされてないはずの) 本が見つからなかったりする。 こういうときは図書館員に聞いても「じきに蔵書整理をやりますので…」 と言われてしまい、実にがっかりするのだが、これは一般人に本を 返させるのが原因だと思う。 まあ、人手が足りないのかもしれないが…。図書館を見ればその自治体の 文化レベルがわかるとはよく言ったもんだ。

Apr 05 [Sat]


(11:15)
インターフェイスにういて。 新山はいまでも、ソフトウェア設計者 (のみならず、何でも設計者というもの一般) は、 自分が設計しようとしているその製品を媒体として、 じつはそのユーザと対話しているのだと信じている。 プログラマーが対話しているのは計算機に向かってではなく、 じつはユーザだと信じているし、ユーザが (計算機の画面を通して) 対話しているのも また計算機自身ではなくプログラマーだと信じている。ただほとんどの ソフトウェア設計者には、画面の向こうにいるユーザの姿が見えていないらしいけど。 新山は GUIアプリを作っているが、いまのところ一般的なGUIフレームワークを 使っておらず、ほとんどは自前GUIである。なぜかっていうと、このソフトウェアの 用途とユーザ層が非常に独特なので、それを考えれば 現在の UI はぜんぜんフレンドリーじゃないからだ。 そのためにかかる車輪の再発明のコストを考えたとしても、使いやすさ (と、それに よってもたらされる会社の利益) のほうがはるかにでかい。 でも GUI フレームワークの開発にかかるコストって、 じつは慣れちゃえばそんなに大したもんじゃないと思うけど。

ところで (てくるで)、GUIアプリの自動テストってどうやるの? もちろん、手でパッコン、パッコンとボタンを押していくだけの手動のテストは 機能が多いアプリケーションではやってらんないし、 新山 (が現在作っているソフトウェア) の場合は 入力ファイルによってふるまいがさまざまに変化するので、 そんな悠長なことをしていたら間違いなく 給料ドロボーだと思われてしまう。 プロとして仕事をするなら、どうしたって 自動テストを考えなきゃなんない。新山はいまのところ 簡単なイベント生成器を使ってやっているが、 これは本当にただ何も考えずイベントを生成したり、一定時間待ったりするだけの 原始的な機能しかないもんで、テストケースを作成するときに 「えーといまこの画面のはずだから…、このキーを押してぇ、つぎにこの部分を押してぇ」 とゆうふうに想像しながら書かなきゃなんない。でも、 testingfaqs.orgをみると、GUIテストツールの詳細な一覧が載っているが、 基本的にみんな同じことをやっているように見える。 こうしたシステムを多少なりとも「高度」なものにして、原始的な イベントのかわりにボタンを押すようなシグナルが送れたとしても、 結局のところ (ケッキョキ) GUI部分が実際に正しく 機能しているかどうかを判定するためにはプログラムのレスポンスを見る必要がある。 そしてこれは「ウィンドウが開いたか」とかいう単純な検査ではほとんど意味がないのだ。 そういえば大学にいるときに、こういったアプリケーション側の挙動を OSの低レベルな API の呼び出され状況から機械学習によって推測するという研究を 見たことがあるが、給料ドロボーとはああいう連中のことをいうのだ。 どちらにせよ、ただイベントを送るだけではダメなのだる。 もっと洗練された方法はないの? Linux 用には dogtail というのがあるらしいが、えーとこれは…overkill だ (そもそもこれは GNOME にしか使えない)。新山の場合は、 これはログ解析と組み合わせてやっている。もちろん新山は この手のプログラムを設計するときに、 最初からテスト用のための設定変更やログ監視機能を山のように組み込んでおいたので (test what you fly and fly what you testだぜ、man!)、 ログをみればだいたいプログラムがどのような状態遷移をしたかがわかるし、 実環境にインストールされたときにもデバッグ用の情報を集められる。 しかし、新山の状況では、状態遷移がそんなに単純ではないので、 これをどうやって高レベルに記述するかが問題だ…

ちなみに、実際のテストは python による実行環境の制御とイベント生成、 python によるログ解析を組み合わせてあとは全部 DOS のコマンドだけで 実装している。だから書くものは全部テキストベースだし、 自動テストの実行時にやるのはこんだけだ:

> nmake test

さてさて、IDE はあなたの生産性を 100倍にも向上させておられますか?

(14:30)
きょうもインド料理屋へ行く。中野通りはいま桜吹雪がすごいことになっております。 じつは満開の桜よりも、ちょっと葉っぱが見えているぐらいのほうが 趣があると思う。
(18:13)

(部屋の片隅にうずくまりながら) Look, おれはジブンタチハカシコイト思ッテいル実はバカ集団を 相手にするんはもう飽きたんだよ。たのむからジブンタチハカシコイとだけ 思っててくれ、オレにかまわんでくれ!

(これは
おさけ
です
(22:56)
余談ですが、(つねに余談ですが、(つねにつねにつねに余談ばっかしですがこの日記は)、)、) Python には enum宣言がない。だから Python コードの中だけで使う フラグなどの定数を定義するときは、
FOO = 1
BAR = 2
...
とやるよりも、文字列を使ったほうがいいと思う。
FOO = 'FOO'
BAR = 'BAR'
...
こうすると数値が衝突しないかどうか心配する必要がなくなる。 つまんないトリックですが、そういうものです。
(00:22)
いま、おそろしい自分の無知 (というか、Python の悪) を発見した。 Python においては、x = x+y は破壊的な操作ではない。 これは、左辺の x の中身を破壊的には変更せず、 つねに新しいオブジェクトを作成して代入することを意味する。 たとえば x がリストの場合、 これまで x に入っていたリストは変化せず、 x+y の連結の結果としてあたらしく作られたリストが x に代入される:
>>> a=[1]
>>> b=a
>>> b=b+[2]
>>> a
[1]
>>> b
[1, 2]

そして新山は今まで、x += y は つねに x = x+y と等価だと思っていた。 実際、文字列やタプルに対しては x += yx = x+y と同じようにふるまう:

>>> a='1'
>>> b=a
>>> b+='2'
>>> a
'1'
>>> b
'12'
>>> a=(1,)
>>> b=a
>>> b+=(2,)
>>> a
(1,)
>>> b
(1, 2)

上の例では、元の a の内容は変化しない。さもなければ、 immutable なオブジェクトに対する += はエラーになるはずだ。 つまり += は破壊的な操作を意味しないってことになる。

ところが、左辺がリストの場合だけ、 += は実際には 破壊的な append になるのだ!!

>>> a=[1]
>>> b=a
>>> b+=[2]
>>> a
[1, 2]
>>> b
[1, 2]
ガーソ。なんだこれは。話が違うじゃないか。 このリストだけ特別扱いという一貫性のなさはなんだ。 どこかにちゃんとドキュメントされているのかもしれないが、 ドキュメントすれば何やってもいいワケじゃねえだよ!! くそったれ。

おそらくは、Python 1.2 あたりの時代 (appendメソッドという概念がなかったころ) にリストを操作するために 作られた仕様が互換性のために今日まで生きのびてきたのだろうと好意的に解釈するが、 それにしても今までこの状況を知らずに入れてきた (かもしれない) バグを 考えると恐しくなる。 新山はおそらくリストを拡張する場合は必ず append を使ってきたから 問題なさそうだが、他のプログラマもこのことを知っているのかな。 こんな仕様は Python 3 でサッサと駆逐してもらいたい。 まあ、新山が Python 3 を使うのがいつになるのかはわからないけれど。

(01:32)
めづらしく今日は沢山書くなあ。ふと思ったのだが、 「ビデオゲームを代表する歴史的 3大キャラクター」をあげるとしたら、 おそらく世界中が次のものに同意するだろう。 これらすべてが日本製である。これってすごくない?

Apr 03 [Thu]


(22:23)
Dude、 OpenSSH 5.0 が出たよ。どうやらセキュリティホールがあったらしい。 機能的には何も変更なし。

Apr 02 [Wed]


(21:53)
そういやー昨日やんなかいけないことがあるのを忘れていた。 duh!
(21:58)
自分がアプリケーしょんを (公開することを前提に) 書くときに、 いちばんの牽引力となるのは、自分がそれを欲しいことである。 オレが書いたソフトウェアは何よりもまず自分が使いたいものでなければ ならない。この場合、使えれば品質は「そこそこ」でもいいと思う。 しかし、やはりもうひとつの大きな目標は「新奇性」だと思われる。 オレは「すでにある実装を改良したダケじゃん」というたぐいのもんは やりたくないのよ。なぜそういうのに抵抗を感じるのかは わからない。
(23:13)
ふうーやっと終わったわい。roff の字句解析をやって、 エスケープ文字列とかもまじめに処理してたら結構長くなっちまった。 ところで、python でこの手の堅牢な lexer を書く (もちろんライブラリは使わずに) ための定石ともいえるやり方を あみだしたが、それを書くには今のオレは眠すぎる。
(23:24)
自動車の耐久性は実際に何度もぶつけてみてテストできるけれど、 一発モノのマンションの安全性なんてちゃんとわかるの? とかいうと、そのために建築工学があるのだ、といわれそうだが。

Document ID: ac4adc8cf0967b93701fed9e5a1ef31e

Yusuke Shinyama