オレの鼻は
ニンジンの匂い
がする
むかし、Z80 を使っていたころは「1ビットでも無駄にするな」という 鉄則があった (C でもフラグなんかでは char やビットアレイを使うのが普通だった)。 だから、初めて SE/30 でプログラミングしたとき (当時15歳)、すんごく抵抗があったのを覚えている。 char を使うと逆に遅くなる (68k では、メモリは基本的にワード単位でしかアクセスできなかった) とは…! ただし新山は 16ビット世代をほとんど経験せず、ついでに MS-DOS もほとんど経験せず、 いきなり Z80 → 68030 と移行したので、DOS 時代に多くの人が感染したであろう "far ポインタ恐怖症" などは体験していない。 それが、いまでは湯水のように 32bit int を使える身になってしまっている。 だからいずれ 64bit も違和感なく使えるようになってしまうのだろうけど…。
情報系の技術者にとって「世代間のギャップ」のいちばんの原因というのは、
この本質的な "恐怖感" にあると思う。しかも、たいていの場合、この恐怖感は
身体的な感覚に裏付けされているのである。
これは戦前・戦中派の人々が食べものに対して抱いている感覚と似たようなものかもしれない。
だって昔はホントに遅かったし容量も少なかったし、ホントにイライラしたもんだよ。
しかし、他の分野 (工学にかぎらず、スポーツなども) ではこういった「身体的な感覚」というのは
身につけておけば優位に働くのに対して、情報系においてはこの体感が逆にアダになる。
周囲の環境のほうが変化してしまうからだ。マラソンランナーでいえば、本来変化しないはずの
基本的な物理定数が変化してしまうようなものである
(そういやー、重力定数 G が宇宙の年齢によって変化するって理論はありましたね)。
だから芸術や料理にあるような、技術的にも感覚的にも
円熟した「巨匠」というのが現れる可能性はすくなく、逆にある時代で有能だったプログラマほど
その後のギャップに悩まされることになる。古い世代の人 (たとえばセキネさん) と話すと、
彼らの中にはいまだに「Java (= GC) 恐怖症」の人がいて驚く。
つまり「GC == 複雑 == 激遅い」という先入観からまだ完全に抜けきれていないのである。
新山はわりと昔から GC が普通な言語を使っていたので、GC には抵抗がない
(そういえば、いまじゃ Emacs でも
"Garbage collecting...
" ってメッセージほとんど見なくなりましたね、昔は何秒もこれで待たされたのに)。
でも画面描画を全部チップにやらせる感覚とかいうのは、
いまだにようわからん。
そもそも昔は画面にドットで直線を引くアルゴリズムでさえも
自力で実装しなきゃいけなくて、いろいろとセコいやり方が沢山あった
(ちなみにいまでも PostScript/PDF 的な直線を引くのは結構大変、
Cairo とか見るとわかるよ)。
それどころか、 8ビット時代にはアセンブラで
「割り算」や、「掛け算」すらまともにやりたくなかったのである。
16ビット CPU を使ったときに「割り算が 1命令でできる!」というのはかなり衝撃だった。
むかしはさー、 HL レジスタの内容を 10倍させるんにしたって
とかやんなきゃいけなかったのよ。でも、こんなセコい技法は今じゃだれも知らない (知る必要がない)。
今では割り算でも直線描画でも 3D 描画でも全部ハードウェアに「アウトソース」すればいい時代になっている。
これも昔はかなり違和感をもたれたことだろう。なんにせよ、この分野で生きていくのなら、
この先何度もこうした「技術的な恐怖感 (technical dread)」を味わう覚悟をしなきゃいけない。
そして、生きのびるなら、それを克服しなきゃいけないことも。とにかく「カロヤカさ」は必要だよね。
LD E,L ; DE = HL (Intel order)
LD D,H
ADD HL,HL ; 2x
ADD HL,HL ; 4x
ADD HL,DE ; 5x = 4x+x
ADD HL,HL ; 10x
たぶん、これから生まれてくる世代のガキというのは、64ビットが「普通」なだけではない。
どうでもいいけど今朝はトークがあるのを忘れていた。 なぜなら今日は木曜日だと思っっていたからざれ。 おそらくこの時代に帰ってくるとき日付を間違えたのだろう。おや、ヒコーキ雲 (うん) だ。
*
をコマンドライン引数に含めたいとき、
\*
よりも '*'
とやるほうが好きだ。
それは以下のような理由による:
\*
は見づらい。
*
が出てきたら何度もエスケープしなければならない。
\
が抜けたらトンでもないことになってしまう。 (←重要)
'〜'
によるクォートなら、もしどちらかの引用符が抜け落ちたらエラーになる。
これは offensive programming の方法論と似ていると思う。
オレはどうやら無意識のうちに offensive な方法を選んでいるようだ。
本当のところをいうと、よりありそうなのは、 新山からみてゼンゼン面白くない研究でも、「やってる当人にしてみれば、面白いらしい」ということである。 ああ、そりゃあ、いいよ。あんたがそれを完全に趣味でやってる分にはね…。 しかしどう考えても他人の金を使ってやるほどのモンでなし。幸せなことよろ。
ヒトのふり見てワガフリ直せといいまsu. 考えてみれば、他人をみて「こういうふうにはなりたくないよな」と思うことは沢山あるのだが、 「こういう人っていいよなあ」と思うことはほとんどない (しかし完全にゼロなわけではない)。 これはオレがピッキィすぎるのか、いやあるいはそんなことはなし。
linux/kernel/sched.c:
/*
* linux/kernel/sched.c
*
* Kernel scheduler and related syscalls
*
* Copyright (C) 1991, 1992 Linus Torvalds
*
* 1996-12-23 Modified by Dave Grothe to fix bugs in semaphores and
* make semaphores SMP safe
* 1998-11-19 Implemented schedule_timeout() and related stuff
* by Andrea Arcangeli
* 1998-12-28 Implemented better SMP scheduling by Ingo Molnar
*/
linux/drivers/block/floppy.c:
/* check_dma_crossing(raw_cmd->kernel_data,
raw_cmd->length,
"end of make_raw_request [1]");*/
linux/arch/i386/boot/video.S:
#endif /* CONFIG_VIDEO_SVGA */
linux/drivers/net/3c59x.c:
/* The addresses of transmit- and receive-in-place skbuffs. */
struct sk_buff* rx_skbuff[RX_RING_SIZE];
struct sk_buff* tx_skbuff[TX_RING_SIZE];
linux/kernel/sched.c:
/*
* Check if two siblings are idle in the same
* physical package. Use them if found.
*/
if (smp_num_siblings == 2) {
if (cpu_curr(cpu_sibling_map[cpu]) ==
idle_task(cpu_sibling_map[cpu])) {
oldest_idle = last_schedule(cpu);
target_tsk = tsk;
break;
}
}
linux/net/ipv4/tcp_ipv4.c:
/* Resend the TCP packet because it's
* clear that the old packet has been
* dropped. This is the new "fast" path mtu
* discovery.
*/
tcp_simple_retransmit(sk);
linux/drivers/acpi/utils.c:
default:
/* Should never get here */
break;
linux/arch/i386/kernel/mca.c:
/* WARNING: Be careful when making changes here. Putting an adapter
* and the motherboard simultaneously into setup mode may result in
* damage to chips (according to The Indispensible PC Hardware Book
* by Hans-Peter Messmer). Also, we disable system interrupts (so
* that we are not disturbed in the middle of this).
*/
linux/fs/ext3/namei.c:
/* @@@ FIXME: Observation from aviro:
* I think I can trigger J_ASSERT in ext3_orphan_add(). We block
* here (on lock_super()), so race with ext3_link() which might bump
* ->i_nlink. For, say it, character device. Not a regular file,
* not a directory, not a symlink and ->i_nlink > 0.
*/
linux/mm/page_alloc.c:
/*
* Freeing function for a buddy system allocator.
* Contrary to prior comments, this is *NOT* hairy, and there
* is no reason for anyone not to understand it.
*
...
linux/fs/jffs2/dir.c:
/* XXX: This is ugly. */
rd->type = (old_dentry->d_inode->i_mode & S_IFMT) >> 12;
暖冬だとかいってた奴はどこの都々逸だーー!! …すっかり冷え切ったよ。フンとに、もう。
とゆうことで次回の診察は 4/2 の 9:30 AM から。
(追記) どうでもいいが (どうでもよろ)、今日待合室で読んでいたのは ドグマグ だった。新山はいまだにコレちゃんと読破してないのな。というのは、なんか読みにくいからだ。 一見するとこの文体はカタカナの使用が多くって (例: 「そのモノスゴサ…」とか) オレの文体に 似ているかのようにも見えるのだが、実際にはぜんぜん違う (ぜんぜそ)。こっちのほうがあきらかに濃い。ねむい。
英語ではアヤしいもののことを "fishy" というが、 それはそれは魚派のオレに対する挑戦か!??
オレは meaty だ!!
(追記) そもそも新山は根が体育会系でないので、「とにかく成績あげろ!」っていう雰囲気にはついていけない。 いままで決められた土俵の上に立たされて勝ったためしがない。 (よくこれで大学受験をのりこえられたもんだが、あのときもかなりヒネクレた方法でやっていた。) と、いうか、世の中にはレールを引きたがる人や、数直線を引きたがる人が多いのだけど、 オレとしてはそんなものからはなるべく離れて生きていたい。 そういうのは「人はみんな自分の世界を勝手に 作りあげて、その中に引きこもるべきだ」というオレの信念に反するのな。 いや実際にゃこれは信念でなくて、観測結果なんですが…。 「世の中なんでもアリだ」という事実をまず受け入れて (この傾向は NY に来てからますます顕著になった)、それから自分の選択をしたほうがよいと考えるので…。 しかし世の中にはレールの上で幸せそうにしている人もいるにはいるので…。 ああ何いってんだかわかんなくなってきた。
…あいかわらず切った場所からゆるい出血および体液の流出があるのであるが、 なんしろ場所が場所なので、ガーゼをあてていると外出するときに動きにくくってしょうがない。 そこで新山祐介、生まれて初めて生理用ナプキンというものを購入しました。 今回はこの知られざる世界について記しておく。
まずドラッグストアにいってみると、ブランドが多すぎてどれを買えばいいのかわからん。 棚の両側が埋まっている。大きさも何段階もあるし。 でも男性用の生理用ナプキンってのは、さすがにないだろう… と思ったら似たようなのがあった。実際にはこれはオス用の「尿もれパッド」なのだが、 べつに新山は尿については問題がなく、そっち方面をカバーしてもらう必要はないのでパス。 で、テキトーに「真ん中よりちょっと大きめ」のやつ (extra とか書いてある) を買ってみたら失敗した。 とてつもなくデカいのである。だって長さ 30cm 近くあるんだよ。 おまけにブ厚い。1cm 近くある。吸収力はすんごくあるのだろうが、そんなに必要ないんですわ。 そしてこれが完全に見落していた点なのだが、重いということである。 いちおう、この手の商品は裏が接着面になっていて、下着にくっつくようになっているのだが、 新山は下着はヒラヒラしたトランクスなので、そもそも固定させるのじたい大変だし、 ここにつけるとその重さのために下着全体が微妙にタレ下がってしまうという間抜けな結果に。 その上からジーンズをはくとゴワゴワする。 こんなもんつけてたら、まともな服着れんわな。 おまけに幅もあるので「気をつけ」ができない。ちなみにこの状態で椅子に座ると、 あきらかにこの部分だけ盛り上がっていて圧迫感があるし、これじゃダメじゃん…。 その後、生理用品のエキスパートに聞くと、「それって夜用なんじゃないの?」といわれたが、 パッケージのどこを見ても 夜とか昼とか書いてねーーし。「抜群の吸収力!」とか「ニオイ消し成分配合!」とか書いてあるだけ。 一般的にアメリカ製は日本よりデカいのかもしれんが、これはデカすぎだろう。 みごと失敗じゃ。
とにかく、これじゃかえって都合が悪いということで、次の日はもっと薄いのを買うべく 別のドラッグストアへ行った。そしたらそこには「夜用 (overnight)」と書かれたやつがあった。 とするとオレが昨日買ったのやつは夜用じゃなかったということになる。ワケわからん。 あいかわらずブランドが沢山ありすぎて迷うのだが、今度はパンティライナーを買ってみる (注: 正確にはパンティライナーはナプキンとは別のものらしいが、オレにはどっちでもいい)。 これはすげー薄い。そして小さい。そのまま大学へ行き、トイレでつけてみるのだが、 「つけているのが気にならないほど」…ではなく、今度のやつはなんか表面がよくない。 それでも 4時間ぐらいそうしていると…。
結論: カブれました。
ってゆうか、これはアレな。かなり問題だな。 そしてもうひとつ知ったのが、ナプキンはなるべく頻繁に取り換えたほうがいいということである。 しかし生理用品のエキスパートによれば、予算の問題もあるし個々人の皮膚の相性の問題もあって 「いろいろ大変なのよ〜〜」ということらしいが、ホントに大変そうだ。 いやーオトコって便利だなあ、とあらためて思ったのでありました。
ケッキョキ、ガーゼパッドをあてて布製の傷テープで固定する、というのがいちばんカブレないらしい、 ということをつきとめた。(ところが紙製の傷テープではカブレるのだ、オレは皮膚が弱いらしい。) でも、なんかつっぱてるうえに、はがすときに毛が引っぱられて痛いんですわ、これが。 なかなか手術後は簡単ではないらしい。
今日からパン食を復活させる。
Document ID: c0ce69e2fd15f00de6b6c818680de842
Yusuke Shinyama