とりあえず日記をかく習慣がなくなってしまっていました。 これではいけないので復活。
さて、年度が変わったので、いろいろと整理をしている。 今日はとても古いディレクトリを削除するので、その古さを讃えるために せめてここに 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オレが大学に入学するより前からあるファイル群…。
- 22:12この時間帯はマターリしていて日記を書くのに最適だ、つうか、 やる気がなくなって眠くなる時間帯ねようするに。
ところでこの文字ってなんなんでしょうね…。
はじめまして⊂(^(工)^)⊃ともうします。
今日はひさしぶりにマトモ & 平和な日々 (って複数じゃねー!) でしたのでこれにて終了の助。ってなんかサイキンオレって変じゃない??
細菌??
あーおれってこんな日記なんか書いてる場合じゃないよね。 最近また夜型になってきている (悪魔は油断するとすぐにとりついてしまう)。 早めに寝なきゃいけないしそれに原稿も書かなきゃいけないのに、 ついつい日記。
きょう、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 キーで小指がつるようになる…。
結論。つまり、文字の並びというのは、本当に世の中を破滅させる ものなのであります。
(一部、フィクションが入っております)
平和な日曜の午後である。が、オレはちっとも平和じゃない。 なぜならきのうのよる洗濯し忘れたからだ! いや、それはあんまり 関係ないのだが、むしろ問題は別のところにある。さっさ
と! 解放!(あいかわらず1文を省略しすぎだな、オレは)
あーもう生きてるのが面倒くさくなってきたなあ。
いまテンションがここ何箇月かで最低ラインにあるので書いておこう。 しかしほんとにオレって日記書かなくなったなー、そんなに いそがしいのか最近…
自己実現のために努力しない奴は嫌いだ。
Last modified: Tue May 1 02:08:40 2001
Yusuke Shinyama