こんふぃギャーー-ッ
tekurude.…
ニューヨぁークでいいところというのは、…
電車の中で群ようこの本を読んで
「(ニタニタニタニタ…) ぶっ、があっはあっはっはっっははっは!」と
バカ笑いしてもそんなに変な目で見られることがない、ということかな。
さすがにこれくらい厚着してると快適だ。 まわりは寒いので、むしろ頭がシャキっとしてよろしい。 さっき、ラウンジ (このフロアで一番寒い場所) を通ったら、 まちあす先生が Tシャツにサンダル姿で飯を食っていた。 し、し、し信じらんない。
さて、どうでもよろりい (→ どうれもよろしい → どうでもよろ) だが、 きのうもまたヘンな夢を見た。なんか、気づいたらもう 12月になっているのである。 「どひぇーー! もう 12月! 論文書かなきゃ!」というぐあい。 昨日の夢もそうだが、新山の夢は「時間がない!」「いつのまにやらこんな時間!」という ストーリーがよくあるように思える。オレはなにかに追いたてられているのだろうか。 そんなに焦る必要はないと思うのに…。米国の慣習でひとついいと思うのは、 日本のような年齢制限があんまりないということである。「いい歳して」という概念もない。 だから人生の一時期にあることをやろうと思ったら、思う存分それに時間をついやすことができる (もちろん、その全責任は自分にあるわけだけど)。そしてそのあとで社会に復帰することが できる、というのはある意味すごい。日本の場合そういうのはまず認められないが、 これは「遅刻厳禁!」という発想と同じで、時間や物事のコマかい部分に異様にこだわるため なんだろうか?
it と one についての違いについてさらに考察。 it というのは「それ!」と実際にユビで指せるものじゃないとダメなんです。 そう考えると、日本語の代名詞「それ」はクラスでもオブジェクトでも指せるのだから、 かなり便利ってことになるな。これについてはあとでもうちょっと詳しく考えてみよう (トイレの中とかで)。
形容詞の語順の違いというのは、認知的な要因に基づくものと、 言語に固有の習慣によるものがあると思われる。
たとえば英語で large と red という 2つの形容詞を同時に使いたい場合、 ほぼ必ず "red large なんとか" の語順になる。 "large red なんとか" とは言わないのである。なぜか知らないけど。
日本語では「赤い大きな…」も「大きな赤い…」もどちらも OK な気がする。といっても差はあるようだが。
てくるで (ところで)、日本語では「ベスト3 のひとつ」という言い方をするが、 英語だと "one of the three best" のほうが普及しているらしい。
最近、アパートに置いてある花よりオフィスに置いてある花のほうが元気になっている気がする。 やはり家だと暑さがよくないのだろうか。というわけで、今日はアザミ (thistle) を買ってきた。 なんか、もとがカラカラした植物なので、暑さや乾燥に強そうじゃない? (← 偏 見)
というか、lisp.tech.coop とかに書いたほうがよかったのかな。
一部に適切な表現があったことをお詫びします。
明日につづく…かも。
今日は図書館いってこよー
新山は、高校生ぐらいのころは、原爆を作った人間が悪いと考えていた。 けれどいまはそれほど悪いとも思わない。たとえオッペンハイマーが 原爆開発をやらなくても、どうせ他の誰かがやっていただろうから。 もしかするとその結果できたのは原爆とは別のものだったかもしれないが、同じことである。 効率化、合理化、大規模化といった現代の美徳のもとでは、 より「お手軽に」「大量に」 目的を達成できる道具がよいとされるので、 いずれ何かほかの原理で大量に殺す兵器ができていただろう。 そしてそれは「せっかく手間ヒマかけて作ったんだから使わなきゃ」って 流れになるよね。結局のところ、
結論:
あーこれはちょっと放送できないね。
追記: ぜーんぜん関係ないが、きみはファインマン物理学を読んだことがあるかっ。 あれは、ショックだった。なぜならタイコ叩いてるから。
こちらの地下鉄は、日本の電車とちがって「車掌室」というものが最後尾ではなく、 列車のほぼまんなかにある (ちなみに PATH の場合は車掌室すらなく、車掌は 先頭車両のすみっこに「車掌用の立ち位置」というものがあって、車掌は そこに立っている。そして駅などでは窓から身をのり出して確認する)。 まあどうでもいいけれど、今日の Astor では目の前に車掌が止まった。 ちなみに、最近やたらと「不審物を見かけたさいには報告せよ」ってアナウンスがウザイ。 そんなのいまさら言うなっての。この手のキャンペーンには「春の交通安全運動」にも似た アホらしさを感じる。さて、きょうは Lex. から歩くのだが、なるべく五番街に 滞在する時間をみじかくするために 53丁目まで上がる。 週末はこの通りは混んでてキライだ。そうして図書館に着く。
そこそこ本を選んだあと、追い出されたので (土曜は 5時閉館) その足でロッケふぇれぁ・せんてァへ行き、紀伊國屋へ。 あとここに来る理由はもうひとつ、公衆便所があるのだ (トイレの近い日本人にとって、 便所の場所をしっかり頭にたたきこんでおくことは NY では 命にかかわる大事なことである)。 さて、たいていいつも紀伊國屋へ行くときは覚悟を決めてから行くのだが (ついつい買っちゃうから)、でもきょうはそんなにめぼしい本が 見あたらず、何も買わずに出てきた。まあそういう日もある。
それにしても、紀伊國屋の文庫本コーナーのあたりは 完全に日本の本屋の雰囲気なので、そこで小説やエッセーなどを 立ち読みしていると自分がほんとに東京のどこかの本屋にいるような 気分になってしまい、外に出るとあいかわらず騒がしい ニューヨークなので (あたり一帯 観光地だから とにかく家族連れなんかがうるさい)、 一瞬現実に戻されてクラクラする。そのあと大学にもどってきてちょっと仕事。
「あんたまだそっち土曜日?」
「そう」
「いいわね」
親子ながら、なんつーバカな会話だ!!
ただし、ここでK = (math.sqrt(2)-1.0)*4.0/3.0 def sin(t): tt = 1.0-t return 3*K*t*tt*tt + 3*t*t*tt + t*t*t
t
に与える数値はラジアンではなく
0.0 <= t <= 1.0
の範囲である。
これを見て思ったのだが、たぶんこれは sin(t) (を4/pi
だけ横に縮めた関数)
を 3次のテーラー展開したものになっているんだと思う。実際に計算して確かめてないけど。
で、コプロセッサではどうやって計算しとるんかいな、と思ったのだった。
たぶん速度だけを求めるなら、あらかじめ数百ぐらいの要素をテーブルに格納しておいて、
そこから線型補間するほうが速そうである。こんなこたぁーどっかの数値計算の教科書に
書いてあると思うけど、いまここにはもってない。
追記: glibc のソースを見てみたら、glibc/sysdeps/ieee754/dbl-64/s_sin.c
などに
その方法が書いてあった (64 ビット double 用、float では異なる)。
IEEE の浮動小数点表現を直接いじって近似値を計算するらしい。
このソースには戦慄をおぼえた。だってこんなんだよ?
...
u.x = x;
m = u.i[HIGH_HALF];
k = 0x7fffffff&m; /* no sign */
if (k < 0x3e500000) /* if x->0 =>sin(x)=x */
return x;
/*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/
else if (k < 0x3fd00000){
xx = x*x;
/*Taylor series */
t = ((((s5.x*xx + s4.x)*xx + s3.x)*xx + s2.x)*xx + s1.x)*(xx*x);
res = x+t;
cor = (x-res)+t;
return (res == res + 1.07*cor)? res : slow(x);
} /* else if (k < 0x3fd00000) */
/*---------------------------- 0.25<|x|< 0.855469---------------------- */
else if (k < 0x3feb6000) {
u.x=(m>0)?big.x+x:big.x-x;
y=(m>0)?x-(u.x-big.x):x+(u.x-big.x);
xx=y*y;
s = y + y*xx*(sn3 +xx*sn5);
c = xx*(cs2 +xx*(cs4 + xx*cs6));
k=u.i[LOW_HALF]<<2;
sn=(m>0)?sincos.x[k]:-sincos.x[k];
ssn=(m>0)?sincos.x[k+1]:-sincos.x[k+1];
cs=sincos.x[k+2];
ccs=sincos.x[k+3];
cor=(ssn+s*ccs-sn*c)+cs*s;
res=sn+cor;
cor=(sn-res)+cor;
return (res==res+1.025*cor)? res : slow1(x);
} /* else if (k < 0x3feb6000) */
...
x の領域によって何種類もの異なる計算方法を場合分けして使っている。 テーラー展開を使っているのはある一部分の領域だけだ。 対象が浮動小数点なのにビット演算しているあたりが戦慄。 どうやらこれはキチガイ的な精度とキチガイ的な速度の 両方を同時に達成するためのようである。いやはや、キチガイだ…。 この手のことはもう何十年も研究されてきているとはいえ、 常人に理解できないコードというのは、こういうのをいうんだな。
ところで (てくるで)、日本語でトイレットペーパーのことを、 いちいち「トイレットペーパー」などという長ったらしい名前で呼んでいる日本人は、 新山の知るかぎり、この世に 3人しかいない。ひとりはオレと、あとのふたりは オレの両親である。普通の人々は「べんじょがみ」と言う。 使用例: 「べんじょがみ切れたよ」等々。
このやうな驚くべき事象の中で、あらたなる人間をアレしているような人間にはなりたくない、 新山の意思に反して、それらは生まれる前に参照されている。
Flash が 2次の曲線しかサポートしてないとは知らなかった。そもそも、 新山は Flash のデータ形式はあるていど知っているものの、実際のオーサリングツール (Flash MX) を 使った経験はほとんどないのである。Director ならあるけどあれもだいぶ昔だしな。 Adobe 界 (PDF、PostScript などでの描画モデルを勝手にこう呼ぶことにした) では 3次の曲線がふつうだ。 そういやー TrueType のグリフは 2次だったんだっけ?
ところで、世の中には spline 曲線と bezier (ただしくは Bézier) 曲線を混同してる人が多い。 新山が習ったところによれば、表現力はどちらも同じだが、 bezier というのは節点における速度ベクトルを直接指定する方式であり、 spline は「制御点」を指定する方式だ。そして bezier のほうが ユーザにはなじみやすいが (だから Illustrator などはみんな bezier である)、 spline のほうが計算機的には扱いやすい。なぜなら spline では、 曲線がかならず制御点を結んだポリゴン内に含まれていることが保証されるから。 と、こういうことは CG の授業で習うんだよ、ふつーは。 (追記: と思ったら、Illustrator なんかでも spline だったらしい)
ところで (てくるで) 新山は、ドローイングツールなどにある 「ベジェゴン」 の意味がいまだにわからない。たぶん "bezier" + "polygon" って意味なんだと思うけど、 新山としてはこの語感が忘れられないのだけど、これは「ベジエ曲線でできた閉曲線」ってことなんだろうか? だったら bezitour と呼べっての。「ゴン」の部分が気になってしょうがないんだよ!!
COMPUTER SCIENCE COLLOQUIUM
Thursday, July 21, 2005 - 11:00 a.m.
Room 1302 Warren Weaver Hall
251 Mercer Street
New York, NY 10012-1185
Speaker: Assaf Schuster, CS, Technion
Title: Data Mining in Large-Scale Distributed Systems
def
、と入力しようとしていた。
反射的に入力された文字列は
defun
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
__↓__
でもほんとうにおかしいのは、パレスチナ関係のニュースであった。 けっきょく、また、「…そして 1. に戻る。」をやっちゃったんだな。
さいきんさ、ちっともここに、まともなことを書いていないよな。 よくない。オレはこんなにつまらない奴だったとは認めたくない。
ときどき、こういった web ページにまったく事実を確認せずいいかげんなことを 書くバカがいるが、そういう人間はこれ以降サンマを食ってはいけないことにするか、 あるいは助詞「の」の使用を禁止すべきである。このページは世界じゅうの生き物たちに あまねく平等に、否応なくすべてが公開されているのであるからして、 どんなときでも、絶対的な真理のみを書かなければならない。 それ以外に日本語の生き残る道はありえない。 ちなみに真理とは、たとえばそれは google で検索したときに 49番目に表示されるページである (google にはじつは隠された機能があり、49番目にはかならず真実を表示するように設計されている)。 ま、どうでもいいが。
こんな日記お書くくらいで疲れてはならないだ
ああそうだ。gnews日本語版を見ていたら、どっかのサッカーの記事で 「鹿の角が見えてきた」というタイトルがあったので、 「はて? 『鹿の角が見える』ってのは、どういう諺なんだろう?」 と思ってみてみたら、この場合の“鹿”ってのは「鹿島アントラーズ」のことだったのね…。
google news で気に入っているのは、記事や新聞をランダムに読める (というか読まされる) ことだ。 基本的にこちらにいると日本のニュースなぞほとんどどうでもいいのだが、 ランダムに記事を見ていると、ふだん自分が読まないような分野にも 意外な発見があることがある。それに、自分が日常的に読んでいる以外の新聞を読まされるのもいい。 はっきりいって、新山はほとんど Google のサービス全般を、検索というよりも 「ランダムリンク」として使っているような気がする。ヘンテコなキーワードで検索ばかりしているのも、 べつに何か特定のものが見つけたいわけではない (というか、見つけたいのだが、 それは『自分の感性に合った電波ページ』という、とても規則化できない条件であるので、 特定のキーワードに結びつけられているわけではない)。
どうやら、新山は「偶然見つけたもの」に非常に感情移入する傾向があるらしい。 それで、できれば、その発見プロセスにはあまり自分の意志が入らないほうがよい。 旅行するときに下調べをほとんどしないのも、こういった傾向によるものだと思う。
まあ、しかし、日本語版は性能が悪いよね (たぶん同じことは中国語版などにもいえると思われる)。
$ ps lx F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 0 4194 17295 17288 15 0 45996 30904 - S pts/3 1:44 /usr/local/firefox/current/firefox-bin 1 4194 17299 17295 16 0 45996 30904 - S pts/3 0:00 /usr/local/firefox/current/firefox-bin 1 4194 17300 17299 16 0 45996 30904 - S pts/3 0:00 /usr/local/firefox/current/firefox-bin 1 4194 17302 17299 15 0 45996 30904 - S pts/3 0:00 /usr/local/firefox/current/firefox-bin 0 4194 17310 17295 18 0 0 0 exit Z pts/3 0:00 [netstat] <defunct>
こういうことだった:
mozilla/security/nss/lib/freebl/unix_rand.c:
static char netstat_ni_cmd[] = "netstat -ni";
...
fp = safe_popen(netstat_ni_cmd);
if (fp != NULL) {
while ((bytes = fread(buf, 1, sizeof(buf), fp)) > 0)
RNG_RandomUpdate(buf, bytes);
safe_pclose(fp);
}
ようするに netstat -ni
の出力を乱数の初期化として使っているのである:
$ netstat -ni
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 445161 0 0 0 331208 0 0 0 BMRU
eth1 1500 0 17009 0 0 0 27136 0 0 0 BMU
lo 16436 0 1100 0 0 0 1100 0 0 0 LRU
しかしゾンビになって残っているというのがなんか気に入らない。
ちゃんと wait
しろ、と。
こういう場合、/dev/urandom
ではだめなのかな。
Linux だったら /proc/net/dev
もあるんだけどな。
まあいいや。
やっぱ 5.0 にもどそう。見られない PDF (とバッファオーバーフロー) があることは知っているが、 そんなの必要ない。ということは、別に xpdf 使えばいいんだな。
なんつー悪魔的なアイデアだ!! というか、MS とかは本当にやってそうだな。
vi と emacs 論争が勃発したので参加してきた。
きょうは summer-of-code に参加している学生も来てたのだが、 彼は vi で Lisp コードを書いているのだという。 で、だれかが「Slime を使うためだけにでも Emacs を習う価値がある」といいだし、 宗教戦争が勃発した。しかし欧米人はほんとに vi しか使わない人が多いのである。 emacs 派でも、みんな「最初に習ったのは vi だよ」という (さいきん unix を始めた人々ですらそうだ)。 まあ、こっちの人は vi でメールもwebページもふつうに書けるんだからな (メーラでは pine ユーザがすごく多いが、古い人だと mail + vi だ)。 新山も「日本語が入力できる」というメリットがなかったら、emacs なんか使わなかったかもしれない。 覚えにくいしさ。やっぱりアルファベ県の人はいいよなあー。
ある意味、「バカな検索エンジン」がほしい、と思うときがある。 新山はもともと検索エンジンをほとんど (google が想定するような使い方では) 使っていないので、「関連する結果をざーっと見る」という目的では google みたいに下手にランキングしてくれるよりも完全にランダムな 順序で並べてもらったほうがありがたい。
ところで (てくるで)、root beer って、正露丸みたいな味がするよね。。。
todo: あす 7pm, Lisp みーちぃんぐ, いつもの場所。
/ASCII いわく「C++ の父、Bjarne Stroustrup が来たる C++0x 標準の特徴に関するエッセイ [PDF] を書いている。 このエッセイで、かれは新しい機能はできうるかぎり 言語そのものにではなく標準ライブラリに含めるべきだが、 この言語は初心者にも簡単になるようにいくつかの荒いカドを落とす必要があると述べている」
やあ、new
と delete
を演算子として
言語に組みこんだアホはどこのどいつだ?
のです。ひらがながみんなくっついているように見える。 あるいは Mozilla のこの行間のせいかも知れぬ。等幅だとまあよし。
いまは夏時間なので、じつは暑さのピークは 4時〜5時ごろにくるのかもしれない。
さーー、もう帰ろ帰ろ。
なんだヨ?こレ。。。
あつぢです。夜になっても音頭が下がりません。 こりぁあつかれたね。