ぎょーむ日誌 2000-12-18
2000 年 12 月 18 日 (月)
- 0730 起床.
4 時間ぐらい寝たか.
眠い.
とはいえ,
土日にたくさん寝たから,
なんとかなりそう.
- あ,
炊飯器のタイマーセットしてなかった.
飯炊き開始.
朝飯用にパンケイキ焼く.
朝飯.
ひげそり.
炊飯できたんで弁当の準備.
どうでもいいこと思い出したんだけど,
昨日の起きてすぐの寝惚けた状態で
100 円の飯茶碗一個を不可逆的に
状態遷移してしまった.
- 0810 自宅発.
曇天.
雨が降った形跡あり.
燃えるゴミだし.
0825 東京モノレイル流通センター発.
うん?
浜松町のずいぶん手前で停車.
見ると先行便がまだ浜松町に入っていない.
モノレイルはほぼ全区間で複線なんだけど,
末端駅において単線になっているのである.
昨日正面衝突事故をやった京福電鉄とは
逆ですな.
浜松町の気温 6 ℃.
0850 研究所着.
- Canna の頻度辞書がうまく登録されてないんで
/var/lib/canna/dic のパーミッションを再検討する.
個人辞書ディレクトリー周りを
chown kubo.bin にすると良いようだ
――
少なくともいままで出来なかった単語登録は
可能になった.
- 北大の <鳳翔> からの定期報告メイル.
不正かもしれない
外部からの telnet によるアクセス試行あり.
とうぜん refused されている.
「逆探」を試みるが
……
ひとつは民間の国内プロヴァイダーであり,
もう一方は特定できなかった.
どうもしばらく前から北大は内→外の
traceroute をマトモに通さなくなって
……
- ついでに FTP server の設定を
少しキビしくして,
anonymous ログイン時にメイルアドレスを
パスワードとして要求するようにしてみた.
- 小川シミュレイターの直しに入る前に,
X のリソースをちょっといじってみる
……
うーん.
$HOME/.Xdefaults で
Netscape のリソースを override しようとすると
ポインティングディヴァイスからの
入力を拒絶するようになるなぁ.
ならば,
邪道ながら /usr/lib/netscape/ja
にある
Netscape.ad
なんかを直接に書き換えてしまうと
……
おお,
<Btn2> の代わりとして
Shift+<Btn3> で
新しいウィンドウが開くようになってしまった.
- 金曜日以来,
ほぼ放置状態にあったヘッダーファイル問題に
再び取り組む
……
が,
あまり良いとは思えぬ策で切りぬけることにする.
- 問題は同じヘッダーファイルが何度も呼ばれる
ときに生じる.
このような場合のコンパイル時に
同じヘッダーを二度読みしないように,
ファイルごとに本文を
次のようなマクロで
#if !defined(___Class_Forest)
#define ___Class_Forest
……(本文)……
#endif
囲ってしまうのが定石である.
ああ,
やんぬるかな,
これでも呪われてしまうことがある.
- たとえば
forest.cc → forest.h → quadrat.h
という include 関係には問題なかったとして,
今度は
quadrat.cc → quadrat.h → forest.h → quadrat.h
というふうに呼び出しているとしよう.
ところが forest.h 内で quadrat.h 内の
Quadrat クラスの定義が必要になることがある
(あるいは,
そもそも
こういう書き方がへっぽこなのかもしれん).
ところが quadrat.h は二度は読めないので,
forest.h が読めずさらに quadrat.h だの
quadrat.cc もうまくコンパイルされなくなる.
自縄自縛.
- しょーがないんで,
まず,
quadrat.cc → quadrat.h
と include して quadrat.h を完全に読ませてから,
次に
quadrat.cc → forest.h
と include することで問題は
……
とりあえず解決したかのように見える.
でもこんなのでいいんだろうか.
- あとはライブラリーと小川シミュレイターの
間でインターフェイスの整合性をとる.
中間管理職 Evision クラスは
継承とテンプレイトの合わせワザを使っており,
そういう試みは初めてなんで
ちょっと苦闘する.
「ここで使っていいんだろか?」
という疑問手のキャストをひとつ投入.
キャストよりも変換関数を
きちんと定義すべきなのかも.
- 1230 ようやくコンパイルは通った
……
しかし試練はまだまだ続くはずである.
とはいえ,
腹減ったんで昼飯.
また弁当の箸を忘れてしまった.
予備の割り箸に出動要請.
- 北海道大学図書刊行会の
「森の自然史」
届く.
有難くも
森林総研の柴田さんに頂いた
著者割りハガキによる購入なので
税込 2750 円.
- 昼飯食ってからまた
ヘッダーファイル群と向かい合う.
どうにも
小川シミュレイターの
コンパイルに時間かかるんで
(BookPC で 70 秒),
何とかならんかとやってみたんだが
……
うーん,
STL の呪いはどうしようもないなぁ.
- コンパイルはいちおう通ったことにして,
動作試験の取り掛かる.
まずは分離してしまった
最尤推定プログラムを Makefile に
探させたいんだが
……
Makefile の条件分岐の書き方わからん.
あちこち調まわって,
結局
GNU make
ご本尊の web page
のマニュアルを読む.
こういうふうに書けばよさそう.
MLFITTING := $(shell find $$HOME/bin -type f -name 'mlfitting' -print )
...
mlfitting:
ifeq ($(MLFITTING),)
@echo -e "ERROR: Install $(HOME)/bin/mlfitting first"
@exit 1
else
...
endif
- Makefile の中で if 文使えるようになったので,
$OFR_HOME/bin/chkenv.sh を廃止.
これは変数が正しく設定されているかどうかを
点検するシェルスクリプト.
コンパイルのときしか使われないものだったので,
りすとら・りすとら.
……
- 1555 新ライブラリーとリンクした
小川シミュレイター動かしてみる.
どうかまともに動いてください (祈)
……
計算終了.
えーと,
動作確認のためのグラフ描きプログラムは
マトモな仕掛けだったかな
……
ああ,
呪われている.
やはり締め切りに追われつつ作ったシステムは
ロクなもんじゃないなぁ.
しかし Makefile があちこちに残ってるんで,
何とかなりそう.
- さて,
シミュレイター計算結果は
……
まぁ,
樹種ごとの 1987 年における推定開空度の分布,
改造する以前と同じような結果を出してるな.
1625 さまざまな手法で抽象化したクラス
Vit, Eye, Voxelmap, Evision などのクラスから
なるライブラリーは
少なくとも開空度計算に関しては
まともそうな動作をする,
と確認
……
つまり,
継承・テンプレイト新複合ワザが
「入った」
わけだ.
そして lib_evision は小川シミュレイターだの
PipeTree だのといった特定の利用者のくびきを
解きはなった.
- Forest や Evision という名前のついた
ハコはそれぞれ Forest や Evision クラスの
オブジェクト.
- ライブラリーの中核には中間管理職 Evision がいて,
他の連中とのとりまとめを行う.
- Evision は Eye,
Voxelmap Vit とゆー子分たちを持つ.
しかしその実体は
……
ライブラリーの中にはない.
計算能力の欠如した「窓口」だけ
がライブラリーにある.
- これら Eye だの Vit だのの「窓口」を継承した
クラスが利用側から提供されるのである.
小川シミュレイターの場合だと,
はるか天頂を指向する魚眼レンズ (EyeOfr) だの
葉群 (VitFoliage) だの幹 (VitTrunk) だの.
- Vit はモノで無くてもよい.
たとえば極端には Evision の子分の Voxelmap の
子分の Vit の実体が実は別の Voxelmap でした
というオチであってもかまわない.
- ふう
……
しかし,
まだまだ油断できん.
どこかにバグが残ってるはず.
それは確信してもよい.
- とはいえ,
ここから先の動作確認は
今回のプロジェクトの当面の目的である,
小川群落保護林の実測開空度データと
シミュレイターの計算結果が合うように
モデルを調節する,
という作業とともに行ってもよさそうだ.
- かくかくしかじかの状況でございますメイルを
森林総研の柴田さんに送信.
- 上の図を Tpng で書いたんだけど,
無線玉 (わいあれすとらっくぼーる) で
描くのは至難である.
直径 8mm ほどの小さな玉を親指で転がして
……
かなり面倒.
- 1830 研究所発.
今日は比較的静かだった.
おかげではかどった.
浜松町本屋 dan に寄る.
1854 東京モノレイル浜松町発.
1930 帰宅.
- 晩飯食ってから,
上の作図のつづき.
ThinkPad560E のトラックポイントで描くと
するするできてしまう.
やっぱ便利だよなぁ,
こっちのほうが.
- スーパー・マルエツでコーヒーだの高野豆腐だの
乾燥食品の買いだし.
なんとなく大森町商店街の本屋 TSUTAYA に寄っちまう.
- ああ,
さっさと寝なくては.
- 今日の食卓
- 朝 (0745):
薄いパンケイキ一枚.
コーヒー.
- 昼 (1235):
弁当.
米 0.8 合.
動物性タンパク質でもとらんといかんか,
ということで煮干の炊きこみご飯.
キャベツ・ニンジン・タマネギの
野菜炒め.
- 晩 (1950):
米 0.7 合.
煮干炊きこみご飯とホウレンソウおひたしの残り.
キャベツ・ニンジン・サツマイモの味噌汁.
今日のだしはぜいたくに
干しシイタケ・昆布・煮干みっくすちゃー.
だしがらも立派な味噌汁の具である.