Laboratory Hours!


2002. 2. 2 (Sat)

22:22

現実逃避的拒否な日ヴィ。

2002. 2. 3 (Sun)

8:00

ハイ。今朝も徹夜明けです。ところで本日は荒天の模様。天気予報は、お天気.com でチェックするのだが (と、軽くリンクメモを混ぜてみたりしながら) 夜まで極めて高い降水確率である。選択肢はいくつかある。

  1. 雨が酷くならないうちに帰る
  2. 有無を言わさず夜までやって、夜になったら傘を差して帰る
  3. ついでだから今夜も泊まる

進捗状況によって考えることにしよう。

16:16

きわめて美しくないことに、最も眠たい時間が、昼下がりときている。あまりの眠さに 3 時間少々、床でダイイング。別になにかの抗議行動ではない。寝ている隙に、助手さんが来ているのがちょっとアレだが、気がつかないフリしてダイイング。そしてさらに学生くんがひとりやってきたので、復活。

2002. 2. 4 (Mon)

8:00

ねむねむなのだ〜

2002. 2. 5 (Tue)

0:24

ナリフリカマッテラレナイノヨ!

9:00

ヤレ、トニカクヤレ。時間ハナイノダ、ムシロ死ネ。

23:59

発狂セズニイルノガ、ムシロ、トテツモナク、フシギダネ。

2002. 2. 6 (Wed)

9:00

予定はことごとく遅れに遅れ…

13:14

早いよォ、まだ 2 日も前だよォ。うう、やばさをさらに実感。

23:11

はらへった

2002. 2. 7 (Thu)

17:04

ああ、今夜はウチで眠れそうだ。…今夜、眠れずとも、明日の夜には…

17:23

Word が見つけてくれない誤変換。

○「補間を行う際には」
×「補間を行う歳には」
どんな歳だろう、補完を行いたい年ごろ…? しかもスプラインで…?
○「避けようのないことであるが」
×「酒用のないことであるが」
アルコールの話だろうか、メチルはダメヨとか、そういう種類の…?

ごめんなさい、疲れているようです。

21:57

論文提出までに残った仕事。

論文提出後に残す仕事

今日は帰って寝る!なんかひさしぶりに夜にウチに帰る気がする…

2002. 2. 8 (Fri)

10:16

昨日は宣言どおり帰ってネタ寝た。
起きたら頭が痛いし喉も痛い。風邪っぽい。緊張感が切れた? しかし、提出をまだやっていないし、クスリで抑えよう。とかいって、マクドで朝マックしながら最終チェックをしていたら、少し解放快方へ。メシ食ったから?やっぱり俺だ。

14:52

審査教官殿 (指導教官以外) に提出完了。あとはプレゼン準備だ。

15:50

隣の建物の k くんの発表を見てきた。

18:00

まともなファイルシステムであれば、ファイルの属性として、作成日時 (ctime) と更新日時 (mtime) が管理されている。さて、論文のファイルのプロパティを開いて、作成日時と最終更新日時を表示させてみる。

ctime   Jan 28  0:56
mtime   Feb  8 14:06

だいたい 10日で書き上げたってところか。
さて、論文は、卒業論文、学会予稿に続いて、結局、Microsoft Word で書いた。LaTeX などで書ければそのほうがよかったのであろうが、今さらなのでよいとしよう。そもそも社会人になってから TeX で報告を書くということは絶対にあるまいし。
で、Word は飛ぶと決まっているので、こまめに Ctrl+S で保存なのである。そして Word は保存されるたびに内部で改訂番号をインクリメントしてくれる (RevNum++) のである。あるいは、飛ばずとも勝手にファイルが壊れたりするので、ファイルサーバのほうにバックアップを気まぐれにやっておくのであった。そしてそれがすべて残っているので、そのリストを公開するのである。

ID    RevNum  Size      Date
0128     15   102,400   Jan 28 05:48
0129     17   104,448   Jan 29 08:09
0131     23   161,280   Jan 31 22:31
0202a    36   186,880   Feb  3 02:29
0203a    39   204,800   Feb  3 03:11
0203b    40   211,456   Feb  3 11:12
0203c    45   201,728   Feb  3 17:54
0203d    45   200,704   Feb  3 18:34
0203e    55   211,456   Feb  3 23:56
0204a    65   259,072   Feb  4 06:55
0204b    74   272,384   Feb  4 11:49
0205a    84   289,792   Feb  5 10:18
0206a    92   314,880   Feb  6 09:42
0206b   100   334,336   Feb  6 19:33
0206c   106   339,968   Feb  6 22:10
0207a   110   353,792   Feb  7 07:11
0207b   114   356,352   Feb  7 11:43
0208a   125   368,640   Feb  8 10:58
0208b   130   370,176   Feb  8 13:37

さらに、Word ってやつは放っておいてもファイルサイズが肥大化する。そして、研究論文というやつは、図として画像がテンコモリになるものである。単純な説明図程度ならばサイズが小さいが、ビットマップや複雑なグラフになると一気に肥大化する。というわけでサイズの大きな画像ファイルの類は、別にフォルダを作ってそこ放りこんで、リンク貼り付けにするのであった。それが登場したのが、0204a であった。ちなみに、現状で、そのフォルダに含まれるファイル数は 93 であり、その合計サイズは 14.2 MB (14,968,902) である。内容は、ビットマップイメージ (*.bmp) および Windows Meta File (*.wmf) というわけで、画像ファイルの二大巨頭である、ラスタ形式とベクタ形式を網羅しているのである。
どうでもいいことだが、全文の印刷を初めて行ったのが、Rev.87 であり、それから Rev.100 と Rev.111 そして Rev.120 でも行っている。そして、提出したバージョン、すなわち最新のファイルは、Rev.132 であった。

18:01

はっきり言ってまったくどうでもよい情報満載であることかな。

2002. 2. 9 (Sat)

11:20

何故かさわやかな朝。

14:37

なにやらファイルの日時に関しての記述が微妙に間違っていたらしい。だからなんだといえばだからなんだなのだが。

stat 構造体からとってこれるファイルの日時に関しては以下の3個がある。(ちなみに #include <sys/stat.h> するんだよ)

で、「Borland C++ プログラマーズガイド」(とりあえず手許にあったので…。オンラインでは発見できないので、とりあえず MSDN ライブラリの _stat を参照すべし) によれば、

st_atime
最新のアクセス時刻
st_mtime
最新の修正時刻
st_ctime
ファイル作成時刻

とあるのだった。それゆえに昨日の記述となるわけである。


実は、上記の「Borland C++ プログラマーズガイド」での記述というのは、「HPFS および NTFS ファイル管理システムは、次のような区別をします。」のところであって、本当は、

st_atime
最終更新時刻
st_mtime
st_atime と同じ
st_ctime
st_atime と同じ

などという恐ろしいことが書いてある。要するに簡易実装ってことかよ。ちなみに、「まともなファイルシステムであれば」と書いたのはこのへんが理由だ。単純な FAT では実装されないということなのであろう。(Windows で使用されている VFAT では実装されているようだ。FAT32 のドライブ上のファイルでも、作成日時、更新日時、アクセス日時の 3 つの日時が表示される)


そいでもって、である。これで安心していたのだが、Unix ではどうも異なるらしい。Manpage of STAT であるが、これによると、

st_atime
ファイルアクセスがあった場合 (1 バイト以上読み込んだ場合) に変更される
st_mtime
ファイルが修正された場合 (1 バイト以上書き込まれた場合) に変更される。
st_mtime フィールドは 所有者 (owner) やグループ (group) やハード・リンク数 (hard link count) やモード (mode) の変更では変更されない。
st_ctime
書き込みや inode 情報 (例えば所有者、グループ、リンク数、モードなど) の設定によって変更される

というわけで、ctime の c は create の c だと思っていたのが、Unix では change の c だったのであった。これでだいたい正しい説明になったのではなかろうかな。

2002. 2.12 (Tue)

10:00

風邪が悪化。のどいたあい。そのわりに朝の目覚めは早く、ボーっとしたアタマを抱えつつさっさと大学へ。

16:30

風邪、カゼ、かぜ…で、みなさん撃沈中。ゼミの人数が 6 人という恐怖。(B4 2/5 M1 2/2 が撃沈。H 助教授は出張中)
S 教授曰く、「風邪をひいていられる余裕があるんだなあ」
結局そういうことだよな。研究のヤマバなわけで、風邪なんてひいてられない!という緊張感というか切迫感があれば、這ってでも来るだろ。もちろん、無茶できるレベルも人それぞれだろうけれど、客観的に同じ症状でその人がどうするかっていうのは、結局、意地とかプライドとか根性とか、そういう問題になるんじゃないかな。
事実、昨日の夜は死んでたし今朝もアタマはボーっとしてたけれど、僕は来ているわけで。でもって、意外なことにえいやあと出てくると症状が改善していたりする。どうなんだろうね、全身がだるい、頭がボーっとする、立ち上がると眩暈がする、といったときに出てくるかどうかは、単純に意地と根性の問題かな? それとも、僕の体が、案外、強いということかな? あるいは、単純に鈍感なだけとか…
そして考えるのは、こういう無茶ができるのは何歳までだろう?ということだったりする。仕事でどうしても抜けられない、俺がいなきゃ進まない、となったときに、えいやあといって働くことができるのはいくつまでだろう。もちろん、限界を超えたら、やっぱり過労で倒れる、ということになりかねないけれど、実のところ、「老後」には興味が無いので、現役バリバリで過労死ポックリっていうのが理想の死にかただと思っていたりするのだ。

21:00

コードを書く際にインデントというのは極めて大事な要素であって、これは理解を助けるというよりも、理解そのものであったりする。誰もブレース { } をひとつひとつ確認したりはできないのだ。インデントレベルによる理解がすべてなのである。
といっても、Python とか、あるいは Fortran のように「インデントがすべて」といった言語を使っているわけではなくて、僕が常時使っているのは、C/C++ とか Perl とかといったフリーフォーマットな言語なので、インデントなんてのはそれこそてきとーにつければよろしいのだが、それでもインデントは理解の 90 % を占めるから、ちゃんとインデントすべきなのである。これは、ひとの書いたプログラムを読むときに顕著な問題で、タブでインデントされていて (僕はタブインデントはしない)、しかもタブ幅が 4 になっている (僕のエディタは一般的なターミナルにあわせてタブ幅を 8 にしている) というだけでストレス的なのに、ad hoc 的なコードでインデントが無茶苦茶だったりすると、全体を見る気力は完全に失われるのだ。要するにコードがいきあたりばったりな書きかただと、そのプログラムもきっといきあたりばったりだし、それを見る僕の対応もいきあたりばったりなのです。
…と、これだけだと、単に愚痴になるので、意味のある情報も書きこんでおく。フリーフォーマットな言語であっても、パーサを通せば一意なトークンの連なりになるわけだから、コードの意味はそのままに再整形することが可能である。indent(1) だとか cb(1)、要するにまとめて言うと、C/C++ Beautifier というわけである。とりあえず、Artistic Style というのを導入。とりあえず、オプションが --style=ansi--style=kr--style=gnu--style=linux、その他いろいろあるのだけれど、僕の書いているスタイルにいちばん近いのは、--style=kr --indent=spaces=2 であることが判明。はじめに読んだ本が K & R なので K & R スタイルが基本で、横長になるのが嫌いなのでインデントは 2 ということだな。あるいは、適当に書いたソースをこのフィルタに通して整形してから人に渡すのも美しいかもしれない。
ま、こんどコードについて聞かれたときには、こういう整形フィルタに通してから読むことにしましょう。

2002. 2.13 (Wed)

12:33

無理しながら風邪を治そうキャンペーン実施中。
でもあまり芳しくないっす。

2002. 2.14 (Thu)

9:00

風邪を治しながら無理をしようキャンペーン実施中。
っていうかぜんぜん芳しくないっす。

2002. 2.15 (Fri)

9:02

正装で出勤。

11:11

100% Recycled Paper
この論文は 100 % リサイクル紙で印刷されています。
内容も 100 % Recycled です。

…というのを思いついたのだが、面白く使う機会がない。

14:24

完。…ま、なんつーか、不満足だね。もちろん、内容と考察の不足はあるけれどさ。

21:12

まだまだやることがいっぱい…でも今日は帰る。

2002. 2.16 (Sat)

11:54

ここ数週間はウチのマンションで工事をしている。それゆえ午前10時ごろから破壊音がしていて、逃げ出すしかないのだ。というわけで発表の終わった土曜日も大学に来ている罠。

2002. 2.18 (Mon)

13:12

発表が終わって休日をはさむと自堕落ッキーに戻ってしまっている。さて B4 のゼミはどうなった?

21:30

修論提出&発表が終わったら、この /member/ishihara/days/ 以下に対するログ解析をやろうと思っていたので、やるのだ。
このサイトでは、ログとして HTTP_REFERER つまり、どこのウェブページから飛んできたか、ということも記録している。そして、サーチエンジンから飛んできた場合、そのときの検索語などの入った URL の残骸が見られるのだ。ってなわけで、days 以下に対してサーチエンジンから飛んできた結果を解析したその上位の結果を示すのだ。

() 内は件数である(ちなみに解析スクリプト内で全角英数字を半角にしたり、検索語列の並べ替えなどをしたりして、できるだけ重複する検索語をまとめるようにしている)。もちろんこれ以外に 1 件のものが大量にあったりするのだが。
なんというか、日々の記録というのは、極めて多岐にわたることを著述するのだなあと思う次第なのである。

22:03

ついでなので、解析結果をファイルにしておく

2002. 2.19 (Tue)

13:27

ダメダメモード全快です。とっとと片づけておしまいっ!

14:14

あれ、えっと、どこだったかな。先ほど読んでいたテキストにあったのだが、出所が埋もれてしまったので、記憶を頼りに書く。

これからのディスク余りの時代には、消さない方向が正しい

とかなんとか。
というわけで、いっそのことゴミ箱に捨てるのはやめればよい。「いらん」と思ったら、バックアップの如くに日付で管理していくのである。検索なんて短時間で可能だし、ディレクトリにわけて放りこんでいくのがよい。ファイル名の重複とかは困るけれどそのへんはゴミ箱ライクな管理方法で可能だろう。
…日々いろいろなものがディスク上に書かれたり消されたりしているのだが、どうせディスク領域は余っているわけだし、全部残しておいたところでたかだかしれているのである。既に一般的メディアとなっている CD-R だが、これの容量は 650 MB である。1 日に 1 万字のテキストを書いたとしても、これがたかだか 20 KB (2 byte 文字として) であるから、CD-R 1枚を埋めるには、約 30000 日つまり 80 年以上かかるわけである。まず毎日 1 万字のテキストを書くというのが現実的ではない (僕の修士論文が 30,000 字程度だから) わけで、一生のあいだ、どんなにテキストを書きためても CD-R さえいっぱいにできないのである。そう考えると、日々の記録とは如何に儚い作業であることかと思う。
ここはやはり、画像・音声・動画とマルチメディア (死語) な記録をしなきゃならん (嘘)。

15:09

あ、そういえば、昨日、コーヒーがなくなっていた。今回はゴールドブレンドであったので、香味焙煎よりは量が多いのだが、それにしても約 2 ヶ月というのは長すぎな気がする。ウチでまともなコーヒーを飲む環境が完成しつつあるために、インスタントに別れを告げ始めているのかもしれない。
現状で、ドリッパーと、豆はあり、それから先日購入したコーヒーミルがあるので、素人的には (インスタント時代と比較すると格段に) そろっているかんじではある。あとはエスプレッソがウチで飲めるということなしなのだが、緊急課題ではない。

2002. 2.20 (Wed)

16:53

むむう、どうだったのかな? 寝ていたのでなにもわからん。

22:12

むむう、つかれた。頭痛も増した。

2002. 2.21 (Thu)

14:30

そういえばはらへった。

16:00

一般的に言って、一般人には「セキュリティ」などという概念は存在しないらしい。

2002. 2.22 (Fri)

10:13

終わった! と思った瞬間に判明する大失策…大丈夫かォィ

2002. 2.27 (Wed)

14:34

月曜、火曜と大学入試の実施により大学に入れなかった。というわけで調子崩れまくりでこの時間の出勤、だめじゃん。

20:00

ウチの研究室が持っている IP アドレスのうち、大学の入口でフィルタされていないグローバルアドレス、つまり、こちら側でちょっと設定していやるだけで世界中に公開可能なコンピュータをつなげられるアドレスがいくつかある。実際には、研究室内のコンピュータはヘタな設定をしても加害者になったり被害者になったりしないようにするため、フィルタされたアドレスを用いている。外部公開アドレスを使用しているのは、ウェブおよびメール用のサーバに使用しているコンピュータだけである。
さて、最近、研究室内のコンピュータが増加してきて、しかも、学生 (研究室所属者ばかりでなく…) がノートパソコンを持ちこむのでアドレスの枯渇が叫ばれていたりする。これまでは管理者のもとで実際のマシンとアドレスが一覧になって管理されているという古典的な管理方法だったのだが、これでは追いつかないのであった。というわけで、前述の使用されていないアドレスを DHCP 用に構成してやろうと考えたのである。
さて、ウチの研究室のマシン名 (ホスト名) のつけ方はつまらない。mips1 から始まって、あとは、mips2, mips3 と番号をつけているだけである。そして、前述の使用されていないアドレス群には DNS 名を割りあてていないのであった。今回、これを使用するにあたって、名無しのままでもいいのだが、名前でもつけてみようかと思ったのである。
とりあえず、mips? 形式の番号モノという案もあるが、DHCP にするので微妙に違いを出したい。やはり、色の名前とか、星座の名前とか、そういうのがいいのではないかと思うのだが、数がそれほど多くないし、惑星の名前とか、がいいのではないかと思う。
がしかし、そこに、突如、出現した。これを DNS のデータベースに設定して逃亡というのも悪くない考えだが?

えええっと、何か問題が? (←おおあり)

2002. 2.28 (Thu)

16:44

朝イチで来て急ぎの仕事をこなしてささと退出。そして夕刻に復活。会議さえなければ…!

19:52

管理者魂ってなんだろ?

21:30

いろいろあるけどいろいろ言えない。
TODO: 忘れ形見の C 言語講座。


Tetsuya Ishihara