2001/4

back


2001/4/2 Mon

- 16:40

とりあえず日記をかく習慣がなくなってしまっていました。 これではいけないので復活。

さて、年度が変わったので、いろいろと整理をしている。 今日はとても古いディレクトリを削除するので、その古さを讃えるために せめてここに ls の内容を残しておく。

bash-2.03# ls -l Dictionary/
total 307
-rw-r--r--   1 root     dict        1916 Jun 30  1992 DIC-config.el
-rw-r--r--   1 root     dict       24648 Aug 21  1993 DIC.el
-rw-r--r--   1 take     dict       14948 Aug 21  1993 DIC.elc
-rw-r--r--   1 take     dict       24616 Jul 10  1992 DIC.el~
-rw-r--r--   1 root     dict         512 Jun 27  1992 Dictionary
-rw-r--r--   1 root     dict        1737 Jun 29  1992 EB-config-new.el
-rw-r--r--   1 root     dict        1896 Jun 27  1992 EB-config.el
-rw-r--r--   1 root     dict         819 Jun 27  1992 EB-config.new.el
-rw-r--r--   1 root     dict         868 Jun 27  1992 EB-idic.el
-rw-r--r--   1 take     dict       24067 Jun 29  1992 EB-new.el
-rw-r--r--   1 take     dict       22352 Jun 29  1992 EB.el
-rw-r--r--   1 root     dict       22092 Jun 27  1992 EB.el-
-rw-r--r--   1 take     dict       14813 Jun 29  1992 EB.elc
-rw-r--r--   1 root     dict       14645 Jun 27  1992 EB.elc-
-rw-r--r--   1 root     dict       22465 Jun 27  1992 EB.new.el
-rw-r--r--   1 root     dict       22025 Jun 27  1992 EB1.el
-rw-r--r--   1 root     dict          15 Jun 27  1992 README.EB
-rw-r--r--   1 root     dict        2105 Jun 27  1992 README.jisho
-rw-r--r--   1 take     dict         586 Sep  8  1993 add-.emacs.DIC
-rw-r--r--   1 take     dict         584 Aug 13  1992 add-.emacs.DIC~
-rw-r--r--   1 root     dict         958 Jun 27  1992 add-.emacs.jisho
drwxr-xr-x   2 root     dict        8192 Aug 24  1997 cheap-cl
-rw-r--r--   1 root     dict        1384 Jun 27  1992 jisho-config.el
-rw-r--r--   1 root     dict        2878 Jun 27  1992 jisho-idic.el
-rw-r--r--   1 root     dict        1833 Jun 27  1992 jisho-idic.elc
-rw-r--r--   1 root     dict       27509 Jun 27  1992 jisho.el
-rw-r--r--   1 root     dict       19376 Jun 27  1992 jisho.elc
-rw-r--r--   1 root     dict        6484 Jun 27  1992 jisho2tag.awk
drwxr-xr-x   2 root     dict        8192 Aug 24  1997 v1.4
drwxr-xr-x   4 root     dict        8192 Aug 24  1997 v1.5

オレが大学に入学するより前からあるファイル群…。


2001/4/4 Wed

- 15:44

この時間帯はマターリしていて日記を書くのに最適だ、つうか、 やる気がなくなって眠くなる時間帯ねようするに。

ところでこの文字ってなんなんでしょうね…。

はじめまして⊂(^(工)^)⊃ともうします。
- 22:12

今日はひさしぶりにマトモ & 平和な日々 (って複数じゃねー!) でしたのでこれにて終了の助。ってなんかサイキンオレって変じゃない??

細菌??


2001/4/8 Sun

- 2:39

あーおれってこんな日記なんか書いてる場合じゃないよね。 最近また夜型になってきている (悪魔は油断するとすぐにとりついてしまう)。 早めに寝なきゃいけないしそれに原稿も書かなきゃいけないのに、 ついつい日記。

きょう、glico の WiLL というチョコレートを買った。 相変わらずなぜこんなワケわからんブランド名にこだわるのか謎だが、 とりあえず、まずい。たいていのまずいチョコレートが そうだが、これもなんかホコリっぽいのだ。やっぱりチョコレイトは明治に かぎる。それもオーソドックスなふつうの板チョコが一番。 なんでみんな本当の味がわからないんだ? などといぶかっている暇は ない。そしてオレは素朴な味が好きらしい。味だけではなくて なんでもそうだけど。だがいまいち自分の性格はそうなれないのが つらいところだ。

さて、いまブランド名で思いだしたのだが話は変わる。 プログラミングにおいて、 字句的な要素というものは非常に重要だ。名前や文字列がこれほど 重視される世界はプログラミング以外にないだろう (おそらく)。 名前といっても、その意味が問題になるのではない。オレがここで 言おうとしているのは変数の意味にふさわしい名前をつけましょうなど といったことではなく、もっと 単純な問題だ。まさに字面! 文字をいかに並べるか、問題はそれだけである。

具体的な例をあげよう。たとえば計算機科学では、いろいろな計算において 「名前がかちあわないこと」が非常に非常に重要だ。たぶんふつうの人に とっては、この原則はバカらしいものに思えるだろう。教科書に 「この変換はここで適用可能 - ただし同じ変数名がすでに使われていなければ」 などと大まじめに書かれているが、これは脚注ではない。公式の内容、つまり 数学的な規則の一部なのだ。利用可能な 名前の集合は「名前空間」などと呼ばれている。そしてこの名前空間が、 互いに異なるシステムで衝突しないことは、プログラミングにおいて 絶対に死守しなければならない原則となっている。 コンピュータでプログラミングをまともにしたことがない人にとって 物理的な文字の並びが (意味は関係なく) これほど重大な結果をもたらすとは 理解できないかもしれない。まさにここでは字面のみが重要! なのだ。

あるものにつけた「名前」が、ほんとうに宇宙でそれのみにつけられている 名前なのか? ほかとカブってしまっていることはないのか? ということを、 計算機科学者およびシステム設計者は死ぬほど心配する。プログラミング言語の 世界では、この名前空間を守るためにすごいエネルギーが費やされている。 これが失敗するとどうなるか? ここから話は急に一般人の理解できぬ 深遠な (ウソ - ぜんぜんセコい方面の) 方向へ 向かうのであるが、つまり ncurses ライブラリの定数 ERR であることよ!

これは ncurses 4.0 までは、この名前で定義されていたのだが、 ncurses 5.0 になってから CURSERR という名前に変更された。 値は変わらない。ここに名前の不幸がある。 一般に、短かい名前ほどやばい。ERR なんて名前は、 誰でも使いそうなのだ! だからおそらく先頭に「CURS」をつけたのだろうが、 変えたら変えたで今度は別の問題がとうぜん生じるわけだ。ncurses 4.0 時代につくられたプログラムのソースはこの名前として ERR を使っているから、 当然コンパイル時に未定義エラーが出てしまう。そんならソース中 (ヘタすると 何万行とある) のすべての ERR を CURSERR に変換すればよいでは ないか、と思うかもしれないが、ERR_NUM という余計な単語まで 変換してしまったらどうする? いや、全部をいちどに変換すれば CURSERR_NUM でつじつまはあうかもしれない。しかしこの名前は 外部のライブラリとリンクされているかもしれないのだ! どうだ、思い知ったか!

さあどうする。エラーは何百個も出ているので、とてもそのすべてを いちいち修正することはできない (というかしたくない)。 では #define で ERR → CURSERR に置換するのはどうか? しかしこれもいざソースを見てみたら脱力。ncurses を読んでいる ファイルは山のようにあるので、とても手で修正するのは勘弁してくれという 状態になる。そこでこれらのソースすべてが #include しているヘッダを修正すればいいと思う。ところが そういうヘッダがなかったり、あっても ncurses.h より前に #include されてたり、あげくのはてには ncurses.h が ソース中で何度も呼ばれていたりする。いや、実際に 通る道のは 1つだけのはずだが、その道は #ifdef の山に うもれている。結局 gcc -E -M を実行して大量のワケわからん 出力を解析して発狂しそうにならなければならない。あるいは ダミーの ncurses.h をつくってそっちを先にパスに通すようにするか。 するとそんなときに限って Makefile は configure が生成した どうしようもないやつで、真の -I パスは結局わからずじまい だったりする。(make を途中で停めて、端末の表示を必死で追うという手もあるが)

そして最後の最後の手段は root になって /usr/include 以下を 直接書き変えることだ。ちゃんとバックアップとれよ。 おかげでオレのマシンには /usr/include/ のしたに なんとか.h.orig というヘッダファイルが大量にできてしまった。 そして今後世の中のプログラミングに使われる名前はますます長く、ますます 大文字小文字が混じって shift キーで小指がつるようになる…。

結論。つまり、文字の並びというのは、本当に世の中を破滅させる ものなのであります。

(一部、フィクションが入っております)


2001/4/8 Sun

- 14:36

平和な日曜の午後である。が、オレはちっとも平和じゃない。 なぜならきのうのよる洗濯し忘れたからだ! いや、それはあんまり 関係ないのだが、むしろ問題は別のところにある。さっさ
と! 解放!

(あいかわらず1文を省略しすぎだな、オレは)


2001/4/9 Mon

- 22:18

あーもう生きてるのが面倒くさくなってきたなあ。


2001/4/13 Mon

- 15:36

いまテンションがここ何箇月かで最低ラインにあるので書いておこう。 しかしほんとにオレって日記書かなくなったなー、そんなに いそがしいのか最近…


2001/4/30 Mon

- 23:59

自己実現のために努力しない奴は嫌いだ。


Last modified: Tue May 1 02:08:40 2001

Yusuke Shinyama