ぎょーむ日誌 2001-08-(21-31) 
	
 
 
	 
 2001 年 08 月 21 日 (火) 
 
	-  0710 起床.
		眠い.
	
 -  朝飯・弁当の準備.
		朝飯.
		シャワー.
	
 -  0755 自宅発.
		曇.
		大型の台風 11 号接近中.
		いまのところ雨は降っていない.
		特急に乗って
		0803 京急平和島発.
		普通に乗り換えて
		0830 京急上大岡発.
		0845 研究所着.
	
 -  台風ちかづいてきたね
		……
		気象庁の怪しげ計算モデルの憶測では
		明朝はこのあたりに来るか.
		明日は「夏休み」にしちゃおうかなぁ.
		まだ 4 日ぶん残ってるし.
		まぁ,
		夕方まで様子をみよう.
	
 -  Abies PipeTree 構築の非生物学的な部分のつづき.
 
	
		
			
			 
			
		 | 
		
			[VitTriangle (続)]
			 
			三角形の障害物 (緑).
			赤線はそれにぶつかってる「視線」.
			赤点はその「弾痕」.
			黄線はわきをすりぬけたもの.
			(左図クリックすると拡大)
		 | 
	
 
	-  あ,
		計算機設定で 1 時間も遊んでしまった.
		いかん.
	
 -  午前中は TubeMaker というクラスを書きかけ状態で終った.
		三角形を組み合わせて筒を生成する職人である.
		呪われ言語 C++ というか
		そのひとつの実現である GNU-gcc-g++ における
		new と delete のコストがどれぐらいなのか,
		よくわからん.
	
 -  昼飯の弁当食いながらネット上の天気情報みる.
		台風近づいてきたな.
		うん?
		雨降ってるの?
		独房群通路のむこうの窓から外を見る.
		おお,
		ひさしぶりのまとまった雨になりそう.
	
 -  午後もつづき.
		1350 よーやく TubeMaker できた.
		しかしここから試験用コード書くのが面倒.
		さらにわけのわからんバグとかどかどかでそう.
	
 -  1515 どうにか予定どーりの動作を確認.
 
	
		
			
			 
			
		 | 
		
			[ちくわ (1)]
			 
			三角形を貼りあわせて作ったちくわ (緑).
			断面は 12 角形と 24 角形.
			赤線はそれにぶつかってる「視線」.
			黄線はわきをすりぬけたもの.
			(左図クリックすると拡大)
		 | 
	
	
		
			
			 
			
		 | 
		
			[ちくわ (2)]
			 
			断面は 4 角形 と 8 角形.
			(左図クリックすると拡大)
		 | 
	
	
		
			
			 
			
		 | 
		
			[ちくわ (3)]
			 
			こういう形状も可能.
		 | 
	
 
	-  Abies PipeTree の非生物学的側面の準備
		……
		ライブラリ側はこれで完了か?
		シミュレイター側は大粛正の結果,
		ほとんど何も残ってない.
		今後どうするかちょっと考えてみる.
	
 -  甲山さんがぽつぽつと言ってた資源配分モデルを
		紙にまとめてみる
		……
		かなり面倒,
		とわかった.
		三段階にわたって陰的解法を適用しなければならない.
		
			- 
				それぞれの新規生成シュート
				(先端部)
				において与えられた資源をどういう比率で
				葉っぱ・茎に配分するか?
			
 
			- 
				それぞれの新規生成シュートにおいて
				与えられた資源をどういう比率で
				主軸 (伸長)・側軸 (分裂) に配分するか?
			
 
			- 
				個体全体において,
				稼いだ資源の何割を先端部に送るか?
			
 
		
		こんなにも濫用する理由
		……
		それは,
		こういう問題に関して何もわかっていないからである.
		いったいどれだけ計算してみせればよいのやら.
	 -  もうちょっと簡単にならないか考え直してみる.
	
 -  ちょっとばかばかしい解法なんだけど
		……
		上の 1 と 2 に関してはあらかじめ計算した結果を
		「数表」に貯めておいて,
		シミュレイションやるときは計算やらずにその
		「数表」から近い答えを探して来る,
		とすればラクかな.
		この方式はたぶん将来性無いけど,
		とりあえずの間に合わせには使えるだろう.
	
 -  ……
		いやいや「数表」なんて FORTRAN 的 E*cel 的発想はダメだ.
		資源の浪費だ.
		そうではなく,
		むしろ「計算結果キャッシュサーヴァー」
		みたいなものを作ればいいんだ
		……
		と帰宅途中の電車内で気づいた.
	
 -  上記 3 に関しては処置ナシ.
		樹状構造巡回と二分法で
		愚直にやるしかない.
		ここも拡張性とか考えると面倒になるので,
		まずはできるだけ単純なやりかたにしてみるか.
		配分調整システムだけ分離できんかな?
	
 -  明日は「夏休み」とることにしてメイルで申告.
		1800 研究所発.
		雨ふってますねえ.
		普通に乗って
		1810 京急杉田発.
		特急に乗り換えて
		1820 京急上大岡発.
		普通に乗り換えて
		1840 京急川崎発.
		大森町の商店街で食料など買い込み,
		1910 帰宅.
	
 -  20 日の「ぎょーむ日誌」でタグを一箇所うちまちがえて,
		そこ以降レイアウトがずれていたことに今ごろ気づく.
		くそう.
		腹が立つ.
	
 -  ともかく明日は休み.
	
 -  今日の食卓
	
		-  朝 (0730):
			米 0.6 合.
			ゴーヤ・タマネギ・ニンジン・ヒラタケの
			炒めもの.
			ニガウリばっかり食ってますけど,
			この季節に値段対「いろいろな良さ」を考えると
			これになってしまうのです.
			一本 100 円ぐらいで二日分の炒めものになります.
		
 -  昼 (1210):
			弁当.
			米 0.7 合.
			朝と同じ.
		
 -  晩 (1910):
			米 0.7 合.
			ニラ・ニンニク茎・ゴーヤ・ニンジン・ヒラタケ・タマネギ
			の炒飯.
	
 
 
	 
  
	 
 2001 年 08 月 22 日 (水) 
 
	-  0820 起床.
		今日は台風休み (夏休み) である.
		外はやはり荒れている.
	
 -  朝飯食ってから自宅外づけ計算機
		Mate
		で計算ぎょーむをひとつかたづける.
		甲山さんから昨晩メイルで発注がきた
		インドネシア森林 Serimbu のものである.
		これは Makefile の書き換えだけでできた.
	
 -  午前中は Abies PipeTree の資源配分関係の整理.
		これまた甲山さんとメイルのやりとり.
	
 -  北アルプス北部の名峰にして
		修験者の山であった剱岳 (2998m),
		ここでの荒行を終えて生還された長谷川宣教師からメイル.
		この宣教師殿は
		国立公園に関しても異端審問官を兼務しておられるので,
		先日「ぎょーむ日誌」で紹介してしまった
		40 年前の某高校夏山合宿焚き火炊飯における
		自然公園法 (1957 年制定) に照らした場合の
		違法性を追及されるそうである.
		おそるべし
		……
	
 -  甲山さんとメイル議論で,
		今回のシラビソ
		(縞枯山で縞枯れてるのは
		オオシラビソというよりシラビソ,
		だそうだ)
		PipeTree (なにが Pipe なのやら)
		の葉群は矢羽根みたいな形状,
		となってくる.
		それを 3 年も 4 年も生残させるってのは
		ちと面倒ですね.
	
 -  1700 ぐらいから 2100 ごろまで,
		自宅端末 ThinkPad560E の 800x600 ドット液晶ディスプレイにらみ
		HHK Lite2 鍵盤をたたいて,
		シラビソ PipeTree シミュレイター側の最初の難所,
		AllocatorTerminal
		なるクラスを書いてしまう.
		これは樹木シミュレイターの枝の先端あたりでうろうろしていて,
		中央から降りてくる地方交付金を
		我がものであるかのように差し押えたあげくに,
		この金の使い道にあれこれと
		口をはさんでくる田舎議員のごときイヤなやつなのである.
	
 -  こいつは中央に「予算はきちんと使いました」と
		報告せんがために,
		気の遠くなるような試行錯誤計算をやる.
		じっさい,
		その操作を C++ で書いた私の頭がくらくらしたほどだ.
		「ほらほらこっちに使ったことにしろ」
		「そっちにそんなにやったら帳尻あわんじゃないか」
		と,
		このあたりは架空帳簿の作成にはげむ現実の田舎議員のごとしである.
	
 -  このあたりの辻つまあわせは,
		強引なやりくちばかりであまり面白くない.
		しかし,
		発注者の甲山さんへの報告と
		激烈にモノ忘れる私の補助記憶装置を兼ねて,
		以下にその手つづきをひととおり書いてみる.
		誰もが気にもしてないだろうし,
		私だって今までまったく失念していたんだけど,
		ここは「ぎょーむ」日誌なのである.
	
 -  AllocatorTerminal は中央から送られてきた
		重さ R(g) の資源を先端部の主軸と側軸形成のために
		完全に使い切る機能をもつ.
		主軸・側軸の形状と側軸の本数はデータから
		憶測された条件によって制約されている.
		この制約のもとで主軸:側軸 = p : (1-p) の比で
		資源を配分したときに,
		与えられた R の資源を完全に使い切るような p* を
		動的に決定する.
	
 -  ある資源量 p R で主軸を形成すると,
		側軸の形状と本数が決定する (後述).
		側軸に必要な資源量は CalcMainSubStem 関数で計算する.
	
 -  解 p* の探策には二分法 (bisection method) を用いる.
		下限 p_lower と上限 p_upper のあいだで p* を探策する.
		最初は
		p = ( p_lower + p_lower ) / 2
		から始める.
	
 -  ある p R を CalcMainSubStem 関数に与えたときに,
		total_sub_weight が得られる.
		この total_sub_weight が残り資源 (1-p) R
		より小さいときは下限 p_lower = p と修整,
		そうでないときは上限 p_upper = p と修正する.
		あらたに
		p = ( p_lower + p_lower ) / 2
		を計算して p_upper - p_lower < 1.0e-3
		となるまでこの操作を繰りかえす.
		そのときの p を p* とする.
	
 -  関数 CalcMainSubStem では主軸形成用として与えられた
		資源量 pR によって主軸を形成し,
		その形状から側軸の形状と本数を計算して,
		側軸の総重量を返す機能をもつ.
		
			- 
				制約のもとで主軸の形状を決めるには
				二分法を用いる.
				下限 length_lower と上限 length_upper
				のあいだで,
				pR を使い切るような
				主軸とその葉群を形成する main_length を
				反復計算によって決定する.
				(精度は
				length_upper - length_lower < 1.0e-1 cm).
				この主軸形成には関数 CalcStemSize (後述)
				を用いる.
			
 
			- 
				計算によってもとめられた主軸の長さ
				main_length によって側軸の本数が決まる.
				これは垂直シュート・水平シュートによって
				様式が異なる.
			
 
			- 
				主軸の長さ length* によって
				側軸の長さ sub_length が決定される.
			
 
			- 
				側軸の太さ・重さ・葉群の量は
				(主軸と同じように)
				関数 CalcStemSize によって決定する.
			
 
			- 
				側軸の総重量を返り値とする.
			
 
		
	 -  全処理のもっとも下うけになっている関数 CalcShootSize は,
		軸の長さが与えられたときに
		その太さ・重さ・葉群の量を決定する機能をもつ.
		
			- 
				長さから太さを決める.
			
 
			- 
				長さ・太さから重量を決める.
			
 
			- 
				太さ (断面積) から葉群の重量を決める.
			
 
		
	 -  ……
		うう,
		ひととーり書いてみるとこんなモンかな.
		上の説明ではパイプモデルをはじめとする
		あれこれと面妖なアロメトリーモデル
		(○○から○○を決める,とか書いてるやつ)
		の詳細は省略した.
		それから垂直・水平の分業のさせかたとか,
		昨日ここに書いてた「計算結果キャッシュサーヴァー」機能と
		いった部分についても省略.
	
 -  2100 かなりへろへろになって
		(というより
		C++ 呪われハイになって)
		AllocatorTerminal をひととーり書き終える.
		行数は短くてヘッダーと実装あわせても
		わずか 200 行ちょっと.
		この中で二分法二重包囲を実現してんだよね.
	
 -  ここはまだ最初の難所.
		これがうまくできたとしても,
		つぎには
		個体全体で同じような帳尻あわせをやらねばならない.
		ああ.
		生態学的なナゾはすべて架空帳簿作成に
		押しこまれるのであった.
	
 -  ここでコンパイルエラーとったり動作試験を始めたりすると
		徹夜になってしまうので
		(それに頭の回転止めて冷やさないと眠れないので),
		今日のコード書きはここまで.
		晩飯作る.
		台風 11 号は私の知らないあいだに関東を
		通りすぎていったようだ.
	
 -  晩飯もそもそ食ってから,
		上のようないいかげんな報告を書く.
		時刻はすでに 2310.
		明日は台風一過で暑くなるってのに
		独房群まで出向かなければならんから,
		さっさと寝ますかね.
	
 -  う,
		まだ呪われハイの高速回転が維持されてて
		ぜんぜん眠気ささない.
		頭のなかでコードぐるぐる.
		「ぎょーむ日誌」も切り上げて
		散歩でもしてみようかな.
	
 -  今日の食卓
	
		-  朝 (0900):
			蕎麦.
		
 -  昼 (1300):
			スパゲッティー.
			昨晩の残りといっしょに.
		
 -  晩 (2130):
			米 0.9 合.
			豆腐・ゴーヤ・シイタケ・ニラ・ニンニク茎の
			炒めもの.
	
 
 
	 
  
	 
 2001 年 08 月 23 日 (木) 
 
	-  0610 起床.
		なんか目がさめてしまった.
		昼間にばてるかも.
	
 -  朝飯・弁当の準備.
		シャワー.
		朝飯.
		コーヒー.
	
 -  0645 自宅発.
		台風が通りすぎたせいか晴.
		朝からぢりぢりと暑い.
		特急に乗って
		0658 京急平和島発.
		普通に乗り換えて
		0722 京急上大岡発.
		0740 研究所着.
	
 -  せっかく朝の静かな時間なのに,
		なぜか仕事に着手できない.
	
 -  昨日書いたコードに手をいれ始める.
		まず名前を AllocatorTerminal から
		TerminalAdjuster と変更する.
		さてさて,
		この Adjuster をコンパイルしてみると
		……
		おお,
		すごい量のエラー出る.
		しかしコンパイルエラーは指摘されたとーりに
		直せばいいだけだから,
		まだラクなんだよね.
	
 -  とかいいつつコンパイルエラーが完治したのは 30 分後.
		TerminalAdjuster の挙動を調べる試験用コードを書く.
	
 -  動作試験してみる.
		計算結果が正しいかどうかはともかくとして,
		計算やって結果を返す能力はあるみたいだ.
	
 -  末端の死亡に関して甲山さんとメイルのやりとり.
		こういうふうにしてみるかな
		……
		
			- 
				vertical の主軸に関しては長さの下限を
				もうけない.
			
 
			- 
				lateral の主軸に関しては長さの下限を
				2.0cm とする.
				これより小さいものは死亡.
			
 
			- 
				vertical/lateral の側軸に関しては
				下限を考慮する必要がない.
				主軸によってサイズを制御されているから.
			
 
		
	 -  昼飯を食いながら計算精度の調整
		……
		だいたいこんなもんか.
		割合 p (0-1) は 1.0e-4 ぐらい,
		主軸の長さは 1.0e-3cm ぐらい
		…… 
		いや,
		p に関しては 1.0e-5 か.
	
 -  きちがいじみた仕切り屋 TerminalAdjuster の弱点を発見.
		午後はこの対策でつぶれた.
	
 -  生態学者の何割かはアロメトリーというのをむやみと好む.
		「身長 x cm なら体重 y Kg」とか
		「軸長 x cm なら直径 y cm」とか
		「茎の断面積 x cm2 なら葉っぱ y g 」とか,
		とそういう怪しげな世界である.
		ともかく片っ端からあれこれとグラフに描き,
		その x 軸 y 軸の対応状況を一日ながめていて
		あきることを知らない.
	
 -  ところが前後みさかいなく対応づけるものだから,
		それらの間でいろいろと矛盾が生じて来るのである.
		いま作っている Abies PipeTree もいわばそういう
		矛盾の集積というべきであり,
		朝から動作試験している
		TerminalAdjuster はそういったつじつまのあわぬ
		「関係」たちのあいだの妥協点を
		計算機力によって強引に見いだすものである.
	
 -  ああ,
		しかしながら,
		以下の三つの制約条件にがんぢがらめに縛られた
		甲山アロメトリーの世界において,
		必ずしも常にそれらしい数値解が得られるわけではない,
		とわかってしまった.
		
			- 
				主軸・側軸それぞれにおいて,
				軸の長さと太さの間には一定の関係がある.
			
 
			- 
				主軸の長さが側軸の本数を決定する.
			
 
			- 
				主軸の長さが側軸の長さを決定する.
			
 
		
	 -  つじつま合わせの専門家 TerminalAdjuster
		は与えられた予算のもとで,
		アロメトラーたちの夢想世界の掟を
		可能なかぎり満足させんがためだけに猛烈に計算し,
		たいていの場合はそれらしい解を出すのだけど
		……
		分枝する瞬間がなかなかに厳しい.
		なにしろ,
		この世界でモデル化された Abies は
		……
		たとえば lateral 軸の場合,
		長さが 4cm に達した瞬間にいきなり 2 本の側軸を
		生やしてしまい,
		しかもそれらの長さが約 3cm でなければならないし,
		長さがこれこれなら太さはこうでなきゃいかん,
		といったキツい制約がある.
	
 -  それでも架空帳簿作成に己の存在意義を見いだしている
		TerminalAdjuster はごりごりと数値をひねくって
		結果を出して来るんだが
		……
		ああ,
		そこだけズレが大きいもんだから,
		ごまかしをやったってのがバレバレじゃないか.
		1 本から 3 本に分裂するときは,
		上の三条件を同時に満たすのは不可能なのである.
	
 -  ここは人間がなんとかしてやらないといけない.
		私はむろん制約条件になってるアロメトリーとやらは
		まるで信用してないので,
		これらの仮定の生物学的な実態を再検討し,
		条件を改良することでいますこし
		TerminalAdjuster にとって負担のすくない分枝が
		実現するのでは
		……
		ああ,
		「今日は早く帰ります」
		と甲山さんが帰っちまった.
		敵前逃亡である.
	
 -  この劣悪な状況を突破する奇怪な工夫が
		またしても必要とされている
		……
		結局,
		私が考えついたのは主軸に「産休」ごときものを
		認めてやることであった.
		産休,
		はヘンかな.
		ともかく分裂するサイズ近辺の「やりくり」が難しいあたりでは,
		甲山さんが言うような大きな側軸を無理して作らなくていいんだよ,
		と条件を緩和してやったのである.
 
	
		
			 
		 | 
		
			[主軸と側軸の長さ]
			 
			横が主軸で縦が側軸の長さ.
			青の甲山ラインとほぼ同じだけど,
			赤のごまかしモデルにおいては
			分裂サイズ (この図だと 3cm と 8cm)
			あたりでは側軸のサイズは小さくてよい,			
			としている.
		 | 
	
 
	-  こんなつまらなそーな策で問題が解決するもんかって?
		前よりはかなりマシな答えを出します.
		あの偏執的な TerminalAdjuster は
		末端全体の状況をみながら
		主軸に何g で側軸は何g のやつを何本,
		とサジ加減してるのである.
		上の図のような曲線を与えてやると
		「うーん,
		主軸の長さはひかえておいて側軸は一本にしておこうか
		……
		でもそれだと資源の余りが多くなるし
		……
		いやいや 3cm をちょっと超えたあたりで
		分裂おトクな条件になってるから,
		主軸はそこまで伸ばしてセコい側軸つけましょう」
		と正しく判断してくれるのである.
	
 -  この方式でほんとに大丈夫なのか,
		もっと良い方法ないか,
		とぢたばてしていて一日終ってしまった.
		1805 研究所発.
		暑い.
		普通に乗って
		1820 京急杉田発.
		快特に乗り換えて
		1830 京急上大岡発.
		普通に乗り換えて
		1850 京急川崎発.
		1930 帰宅.
	
 -  なんかばてた.
		TerminalAdjuster はこれでよしとするか.
		こんなものに二日間ついやしてしまった.
		そして Abies PipeTree はまだまだ
		完成しそうにない.
	
 -  (一言近況)
		
			台風はいつのまにかどこかに行ってしまったけど,
			仕事は片づかぬままです.
			(2001.08.23)
		
	
 -  今日の食卓
	
		-  朝 (0630):
			米 0.7 合.
			昨晩の残り.
			豆腐・ゴーヤ・シイタケ・ニラ・ニンニク茎の
			炒めもの.
		
 -  昼 (1210):
			弁当.
			米 0.7 合.
			朝と同じ.
		
 -  晩 (1950):
			米 0.7 合.
			朝と同じ.
	
 
 
	 
  
	 
 2001 年 08 月 24 日 (金) 
 
	-  0700 起床.
		7 時間ぐらいねたかなあ.
	
 -  朝飯・弁当の準備.
		朝飯.
		シャワー.
		コーヒー.
	
 -  0750 自宅発.
		晴れ.
		暑い.
		特急に乗って
		0801 京急平和島発.
		普通に乗り換えて
		0830 京急上大岡発.
		0845 研究所着.
	
 -  近ごろ京急の電車の中で脳内プログラミングやってる.
		役にたってるのか,
		意味がないのか
		……
	
 -  今日の小ワザ.
		Makefile の中にこういうのを追加してみた.
 
	ctags:	        makedepend -f- ${INCLUDE_OPT} ${SRC} 2>/dev/null \
	                | perl -ne 'chomp;s/#.*//g;s/\.o/\.cc/;s/://g; print; print " "' \
	                > depend.cache
	        ctags -R `cat depend.cache`
	        rm -f depend.cache
		ctags と makedepend の複合ワザである.
		これでかなり詳しい vim 用 tags ファイルを生成してくれる
		……
		けど,
		十分ではないなぁ.
	-  Abies PipeTree の次なる部品である
		樹木のカケラ PipeBundle をぢりぢりと書く.
	
 -  私は重篤な STL (C++ の標準テンプレイトクラスライブラリ)
		依存症なんだけど,
		
vector
		と
		list
		のどちらがマシなのか疑問になった.
		どちらかでなければならない,
		という局面に関しては判断できる.
		だけど,
		どちらでもよい状況,
		たとえばひとつずつ要素が追加されるだけの
		単なる可変長配列として使うなら,
		どちらがよいのだろう.
	 -  簡単な試験コードを書いてみる.
		うーん,
		コンパイルされたオブジェクトファイルのサイズ,
		実行速度ともに,
		このごくいいかげんな試験では差がつかないな.
		ということで,
		これまでどーり,
		なんとなく 
vector
		使うかな.
	 -  なぜか当分は関係ない VitTriangle 系 (こないだの三角形ね)
		の改良に突入してしまい,
		午前終了.
	
 -  1330.
		寄り道改良終了.
		例のちくわの生成で
		
new
		と
		delete
		を呼び出す回数を減じようという努力だったんだけど
		……
		どうでもいいような気もするなぁ.
		われながら貧乏くさい.
	 -  PipeBundle って
		ばらばらに切断された海苔巻き寿司の一片
		みたいなもんだから,
		書くのは難しくなかろう
		……
		と思ってたんだけど,
		けっこう面倒だ.
		酢飯の面積,
		芯の面積
		……
		ときどき酢飯から芯に変わってしまったりして,
		ですね.
 
	
		
			 
		 | 
		
			[集束小管]
			 
			PipeBundle のいめーぢ画.
			あまり意味なし.
		 | 
	
 
	-  もう 1530 か.
		進捗のろいので,
		気分転換にできたところまでコンパイルしてみる.
		わー. 
		大量のコンパイルエラー.
		片っ端から直してみると,
		仕事したような錯覚にひたれる.
	
 -  PipeBundle が自分の子供を再帰的に呼び出していって,
		個体全体として何グラムぐらい太ればいいのかを
		算出する関数を書いてみる
		……
		ややこしいのは死んだパイプがツマってしまう前に再利用,
		という部分である.
		うう,
		コーディングのみならずモデルもなんか貧乏くさい.
	
 -  1710 PipeBundle の
		このややこしい部分を動作試験をするのに必要なコードは
		書けたと思うんだけど
		……
		うーん.
		とりあえず PipeBundle をつないでいって,
		根本からすべての末端を巡回する
		動作試験やってみるか.
	
 -  動作試験コードできたんだけど,
		挙動がヘンだ.
		ひとまず撤退.
		1810 研究所発.
		普通に乗って
		1820 京急杉田発.
		快特に乗り換えて
		1830 京急上大岡発.
		普通に乗り換えて
		1850 京急川崎発.
		1910 帰宅.
	
 -  野外調査で忙しい小林さんから,
		アカマツ (本物) 写真を送っていただく.
		中谷さんが広大で撮ってくださったものである
		(あの実験の生き残り松).
		やっぱり「ニセ」アカマツはどうやっても「ニセ」
		というのがよくわかった.
		アカマツの形態むずかしい.
		それにくらべれば Abies は簡単じゃないかなぁ,
		という気もする.
	
 -  お,
		定常宇宙論者の
		
			Fred Hoyle 逝去
		.
		こういう面白い学者はなかなかいないんだが.
	
 -  Abies PipeTree の PipeBundle の動作試験バグ,
		巡回はやってるんだけど,
		その過程でやっている御用聞きに何か問題アリ
		……
		というところまでは,
		帰宅前に独房内でつきとめた.
	
 -  しかし眠くてどんどん時間がすぎていく.
		たぶん単純なエラーですぐに直せると思うんだけど,
		なかなかバグとりに着手できない.
		しかし見つけたバグをそのままにして,
		寝ることはできない.
		バグが悪夢の中に現れるからである.
	
 -  2300 すぎになってようやくソースファイルを
		自宅外づけ計算機で開く.
		もいっぺん動作試験.
		原因すぐにわかった
		……
		ような気がする.
		これでどうだ,
		と修正コードをコンパイルして動かす.
		御用聞きが試験用に仮設した樹木
		(PipeBundle を樹状につないだもの)
		の根本から登っていき,
		枝みたいな構造のひとつひとつの末端から順番に注文を取り,
		すべての分岐をたどって戻ってきた.
		報告は
		……
		よろしい.
		数字はあってる.
		本日のぎょーむおしまい.
	
 -  今日の食卓
	
		-  朝 (0715):
			米 0.6 合.
			ツルムラサキ・シイタケ・ヒラタケの炒めもの.
			宮城県産のツルムラサキとはこういう
			
				夏野菜
			
			で,
			さっと茹でてから炒めた.
			なんだかねばねばするのである.
		
 -  昼 (1230):
			弁当.
			米 0.7 合.
			朝と同じ.
		
 -  晩 (1920):
			米 0.7 合.
			ニンニク茎・卵の炒飯.
	
 
 
	 
  
	 
 2001 年 08 月 25 日 (土) 
 
	-  1000 起床.
		10 時間ほど寝た.
		呪われ C++ でぎょーむしてると
		やはりアタマの中が壊れるんで,
		修復するのに時間かかっているのであろう.
	
 -  食欲なし.
		したがって仕事する意欲もなし.
	
 -  昼飯としてシシトウ炒めを作って食ってみる.
		すこし体がしゃきっとする.
		暑いときはシシトウとかゴーヤみたいな苦いもの系が
		よいのかもしれぬ.
	
 -  冷蔵庫内クリアーなので,
		これを機械に製氷室に付着してる氷を除去する.
		私のもっている一室式のこの機械は
		内部上側に製氷室なるものがついてる.
		しかし何の役にも立たず,
		放っておくとその金属板上下に
		厚い氷板を形成するばかりである.
		しかもその表面が絶えず融解して水滴を
		庫内にまきちらして不快である.
	
 -  ということで,
		「この夏最後になってくれ」と祈念しつつ除去作業開始.
		電源を切り,
		扉をあけてしばらく放置.
		ホントに融けるまで待っていてはいかんので,
		10 分ほどしたら Kajitax の名刀 ExpertIII で
		上下分割線を掘削.
		スプーンの柄を使って氷板を細かく割らぬよう
		慎重に剥離していく
		……
		けど,
		作業終了したらやはり冷蔵庫内外の
		ふき掃除しなければならなかった.
		今回も合計 2Kg ほどの氷がとれた.
	
 -  1400 ごろから 2300 ごろまで,
		Abies PipeTree 書きのつづき.
		これまで,
		いろいろな部品を準備してきたわけだが
		……
		VitTriangle と TubeMaker といった三次元計算系.
		この系統はあとで明るさ計算やるときに必要になるだろう.
		しばらくは用ナシ.
	
 -  TerminalAdjuster,
		末端強引つじつまあわせ屋.
		PipeBundle,
		極性と親子関係ある構造材
		……
		これらは個別に作られ動作試験を受けてきた.
		で,
		そろそろ連携させねばならんようである.
	
 -  TerminalAdjuster と PipeBundle は
		どちらも PipeTree という樹木個体の部品である.
		ということで,
		まとめようとすると PipeTree クラスを定義しなければならない.
		なにしろ一週間ほど前に以前のやつは
		きれいさっぱり削除しちゃったもんで.
	
 -  TerminalAdjuster は PipeTree の中に二個
		(VERTCAL と LATERAL)
		あるんだけど,
		こいつらにメイルを出して計算ぎょーむを依頼するのは
		PipeTree ではない.
		また新しいクラスが登場するんだけど,
		管末端 PipeTerminal が発注を出すのである.
	
 -  この PipeTerminal は樹木の根本となる位置を起点として爆散
		――
		ま,
		分裂しながら四方八方に飛び散るモノである.
		その飛翔軌跡に PipeBundle を残しつつ.
		実際の植物がどうなってるのかわからないけど,
		計算機内での樹木というのは
		こういうふうに花火よろしく形成されるのである.
 
	
		
			 
		 | 
		
			[小管末端による爆散軌道形成]
			 
			…… のいめーぢ画.
			これもまた Abies PipeTree とはあまり関係ない
			モデルによる作図.
			資源配分もなく,
			乱数だけで分岐と伸長が決まっている.
			この描画 Perl スクリプトは明日公開.
		 | 
	
 
	-  PipeTree, PipeBundle, PipeTerminal, TerminalAdjuster
		……
		もひとつ新しく
		ResourceAllocator というあまり面白くない分配屋.
		これらのソースファイルを同時にぢりぢりと直していく.
		今日は少し書いてはコンパイル,
		というスタイルである.
	
 -  2300 ごろ,
		PipeTerminal 周辺の資源やりとり系に関しては
		それなりに書けたので (三次元飛翔系はまだ着手もしてない),
		今日のぎょーむを終えてふらふらと散歩などに出る.
		と言っても,
		この時間だと行き先は大森町駅横の TSUTAYA (本屋)
		ぐらいしかないんだが.
	
 -  帰りに氷あずき買ってくる.
		これぐらいの贅沢は許容されるのではなかろーか,
		と氷をなめつつ,
		今度はふらふらとネットを徘徊.
		ふーん,
		ゴーヤっていま
		
			はやりモノ
		
		だったんだ.
	
 -  「ぎょーむ日誌」を書きつつ,
		「うーん,
		この爆散形成って図で説明すると面白いかも」
		とよけーなことを考えたばかりに寝るのが 2 時間遅れてしまった.
		予定では 30 分ほどで片づけるはずだったのに.
		おお,
		あたかも前途の暗雲を示唆するがごとくに
		……
	
 -  今日の食卓
	
		-  朝 (1030):
			そうめん.
		
 -  昼 (1330):
			蕎麦.
			冷蔵庫内でシシトウ発見したので,
			とりあえず炒めてみる.
			味つけの構想がないので,
			ウスターソース投入.
			意外とうまい.
		
 -  晩 (2030):
			米 1.0 合.
			昼のシシトウ残り.
			コマツナのおひたし.
			暑さが減じるとともに,
			葉ものの野菜が徐々に安くなりつつある.
			ピーマンいりスクランブルドエッグ.
			わーい,
			三品もある豪華な晩飯だ.
	
 
 
	 
  
	 
 2001 年 08 月 26 日 (日) 
 
	-  0950 起床.
		7 時間ちょい眠れた.
		今日はもっと早く寝なくては.
	
 -  1100 ちょっと外にでる.
		晴というか曇というか.
		京急平和島むこうの ATM で現金少々おろす.
		手持ちの金額が 500 円を下まわると
		さすがに私も不安になるのである.
		それで水道料金支払う.
		2 ヵ月分 3759 円.
		買い物などしてから帰宅.
	
 -  まぬけなことに 1500 すぎまで
		昨日の爆散軌道描き Perl スクリプトの手直ししていた.
		えーい,
		公開しますなんて書くんじゃなかった.
		でも気合い入れてみなおすとあれこれ不具合あった.
	
 -  あれこれとまだよろしくない点もあるんだけど,
		キリがないんでやめます.
		下のような図は
		
			randtree.pl
		
		というのを使って生成しました.
		これを動かすと,
		
randtree_term.txt (爆散末端位置)
		と
		randtree_trajectory.txt (飛翔軌道)
		という計算結果ファイル,
		それから gnuplot にお絵描きさせる
		randtree.gp
		というファイルができます.
	 -  動かすには Perl,
		図を自動的に描くには Gnuplot が必要です.
		
./randtree.pl して
		gnuplot randtree.gp
		すれば randtree.png
		という名前のこういう画像ファイルできます
		(爆散のしかたが乱数で決められるので
		毎回異なる軌跡を描く).
 
	-  えーと,
		これらは二次元上でランダムに分裂し伸長方向を選んでいる
		簡単なモデルで生成してます.
		いま作ってる Abies PipeTree とはあまり関係ありません.
	
 -  うう,
		すでに一仕事やったような気分になって,
		なかなか Abies PipeTree に着手できん.
		まだまだ動いてもいないのに
		……
	
 -  ぢりぢりと進める.
		昨日あれこれと書き換えて挙動がちょっと変になった
		PipeBundle を直す.
		じゃあ,
		「死にたてパイプの再利用」はできるか?
		よし.
		問題なし.
		しかし実際の植物ではどうなってるんだろうね.
	
 -  昨日作っていた構造物 PipeBundle 連結体の先端に
		パイプ末端 PipeTerminal をつけて,
		さらにその PipeTerminal から
		ごり押し調整屋の TerminalAdjuster つけて
		……
		というようなものを作って
		動作試験を続ける
		……
		なんかヘンだぞ.
	
 -  おかしい.
		PipeBundle の資源やりとり系の
		モデリングが不必要にややこしかったので,
		かなり直してみた.
		それなのに動作がヘン.
		PipeTree の部品がおかしいのか.
		それとも動作試験用に作ったコードがヘンなのか
		……
	
 -  真夜中近くになってようやくわかったのは,
		ヘンだったのはモジュールでもなければ
		動作試験コードでもなく,
		他ならぬ私自身であった.
		暗算を間違えていたので,
		正しい結果が出てたのに「数字があわん」
		と首をひねっていたのである.
		やれやれ.
	
 -  これにこりたので,
		試験の結果の数字があってるかどうかも
		計算機に調べてもらうことにする.
	
 -  さーて,
		この万全の体制で PipeTree 内の資源やりとり系の
		最後の問題にいどむ.
		末端でのやりくりをもっぱらとする TerminalAdjuster
		だの
		樹状構造はいまわりつつ御用聞きにいそしむ PipeBundle だの
		いままで準備してきたあれこれを糾合してその上に君臨する
		セントラルアジャスター (CentralAdjuster) 
		の構築と試験である.
	
 -  ……
		とはいってもこいつは名前が立派なばかりで,
		まったく大雑把な処理しかしない.
		
		せんとらる「えーと,じゃ,
			とりあえず末端に 7 割ぐらい資源まわそかな」
		
		たーみなるず「その予算のもとで実現する先端形成の試算やりました」
		
		せんとらる「とすると既存の部分の肥大成長には何グラム資源が必要かなあ?」
		
		ばんどるず「たーみなるずの試算見ながら
			こっちの数字を出してみたんですけど
			……
			3 割ももらっても資源あまりまくりですよ」
		
		せんとらる「じゃ,つぎは 85:15 ぐらいの配分でやってみて」
		
		たーみなるず・ばんどるず「ええ? あまりまくってるんだから,
			もっと偏らせたほうが早く収束して,
			計算量も減りますよ」
		
		せんとらる「いや,ま,とりあえず,そのあたりで」
		
		……
		とゆーようないいかげんなやりとりばかりで,
		子分どもをむやみとこき使うしか能の無い困ったやつである.
	 -  とはいえ,
		この CentralAdjuster を召還する儀式,
		というのがめんどくさい
		……
		日付かわったころにようやくできた.
		動作試験もこの召還儀式まわりが不備だったため,
		なかなかはかどらぬ.
		無事に呼び出せたと思ったら
		……
		なーんだあっさりと正しい結果出しやがった.
		条件をいろいろと変えてみたけど,
		どういう場合でも
		正解からのずれはだいたい 0.1% ぐらいだ.
		当面はこれでよし.
		PipeTree 樹木個体内の資源争奪戦の部分,
		ひとまずは完成.
	
 -  ああ,
		明日はまた朝から独房群までいかないといけないのに
		……
		デバッギングハイになって全然眠くないよう.
	
 -  先日,
		小林さんから送っていただいた
		
			「実験生き残りたちは,いま」
		
		のアカマツ写真のペイジを作ってみたりする.
		しかし私以外にはあまり有用な情報ではないかも.
	
 -  今日の食卓
	
		-  朝 (1010):
			なんか食欲ないんで紅茶だけ.
		
 -  昼 (1300):
			(ニセ) バゲット買ってきたんで,
			昨晩の残りのピーマンいりスクランブルドエッグ
			……
			だけではさびしいのでタマネギのカレー粉炒め
			を作ってサンドイッチにする.
			コーヒー.
		
 -  晩 (2350):
			米 0.6 合.
			昨晩のコマツナおひたし残り.
			煮干・干しシイタケ・乾燥ワカメの
			よくわからぬ味噌汁.
			ひさしぶりの一汁一菜を日付変更時刻付近に食べた.
	
 
 
	 
  
	 
 2001 年 08 月 27 日 (月) 
 
	-  0700 起床.
		4 時間ぐらい寝たんだけど,
		眠い.
	
 -  朝飯・弁当の準備.
		朝飯.
		シャワー.
		コーヒー飲む気しない.
		不調.
	
 -  0750 自宅発.
		燃えるゴミだし.
		素晴しい曇天.
		暑くない.
		午後から突発的な豪雨あるかも,
		という予報.
		特急に乗って
		0802 京急平和島発.
		普通に乗り換えて
		0830 京急上大岡発.
		0845 研究所着.
	
 -  朝から,
		ばて.
		土日に働いたムクいだろうか.
	
 -  午前中は Abies PipeTree の自立というか自律というか,
		その第一歩として,
		先端部 PipeTerminal から新しい PipeBundle が
		どんどん生成されるような機構周辺を整備していく.
	
 -  PipeTree 内部は次第にお役所的になってきて,
		出生届や死亡届を出したり受け取ったり
		…… 
		さすがに婚姻届はないけど.
		そういうアタマの痛い世界と化しつつある.
	
 -  ときどきコンパイル試験したりして,
		なかなか進まぬ.
		三次元計算はあとまわしにしてるんだけどなぁ.
	
 -  樹木の各個体に CentralAdjuster や TerminalAdjuster
		を持たせるかどうかで迷う.
		見通しがたたないので
		持たせることにしてみる.
		いまのところは,
		そのほうがすっきり書けるので.
	
 -  1100 すぎごろに,
		ふと悪い予感がしたので
		某原稿の pdf ファイルをダウンロードして,
		昼飯の弁当を食いつつぱらぱら見てると
		……
		やはり甲山さんからメイルがきて,
		それに関する問い合わせ.
	
 -  こういうふうに仕事をいくつも並行に進める発注者と
		いっしょに仕事をするのはたいへんである
		(さらに地環研院入試がちかぢかあって
		専攻長だからどーのこーので忙しい,
		そうだ).
		皮肉なことに,
		ぢょぶす OS を愛用する甲山さんは
		Unix 系のごとくにマルチタスクに仕事を処理し,
		いっぽうで
		
			AERA の表紙にもなった Linus
		
		の趣味の結晶に頼ってぎょーむをこなしている私は
		
			Macintosh System 6.0.7
		
		のごとくにジョブ一個が精いっぱいなのである
		(DA ぐらいはひらけるかもしれんが).
	
 -  で (PipeTree ぎょーむをいったん「終了」して),
		そのドラフト読んでみたら,
		新しく検定みたいなのが追加されてるんだけど
		……
		「世の中なんでもかんでも等分散な正規分布ですよ,いひひ」
		と仮定している AN**VA のたぐいは
		適用できる条件も結果の利用もかなり厳しいと思うんだけど,
		北大式統計学ではそれが好んで用いられるので
		なかなかに難解である.
	
 -  私はそのようなややこしい手法には敵対的でありたいので,
		もうちょっとマシにならないかと統計学の本調べる.
		Sokal&Rohlf の訳本「生物統計学」には
		Kolmogolov-Smirnov の二標本検定とか紹介されてるな
		……
		と確認しておいて,
		無理して検定なんぞ持ち出さなくてもいいじゃないですか,
		というメイルも書いてみる.
		あまり統計学とは関係ないハナシなのである.
	
 -  1400 すぎには
		無用な流血ならぬ
		無用な検定やめやめの方向で話がまとまってくる.
		めでたしめでたし.
		やはり
		「心の外に帰無仮説なし」
		と
		
			山岡鉄舟
		
		も説くように統計学もまた無刀流なのかもしれない.
		しかし「観測データ→なんでもかんでも検定」
		というふうに脳内神経網が極太軸索で短絡しちゃった莫迦査読者
		(血に飢えた辻切りのようなものだ)
		にあたった場合は面倒なことになるかも.
	
 -  Abies PipeTree 作業を再起動.
		シラビソを模倣してるつもりの個体内の
		いろいろなお役所仕事のやりかたを整備してみる.
	
 -  ときどきコンパイルして,
		また動作試験用プログラムを構築してみたりする.
		これは試験運転用の架設樹木をこしらえて,
		そのうえであれこれ計算してるんだが
		……
		なにい,
		誤差 4% ??
		いかにずさんな CentralAdjuster といえど,
		それはヒドいぞ.
	
 -  このバグの追求にはじつに一時間以上を要したんだけど
		……
		原因はうるせー手順を重視する樹木内お役所と
		そういう手続きを無視しがちな架設個体のあいだの
		コンフリクトであった.
		お役所の作法以外で計算させるとまずいわけね.
	
 -  うーん,
		試験用の裏口を作るのもイヤだし
		……
		と思ったんだけど,
		一箇所だけ穴をあける.
		PipeTree のもっている ResourceAllocator
		へのポインターを外に教えるようにした.
		まあ,
		そんなに問題にはならんだろう.
	
 -  そうやって新しく作った区役所出張所みたいなところに
		申請書類を提出するように
		試験プログラムを書き直す.
		実行
		……
		ふう,
		誤差 0.1% 未満の精度が回復した.
		脱力.
	
 -  こんどは先端 PipeTerminal による伸長・分裂に関する部分.
		書いている最中に気づいた.
		これではまずい.
		ここ数日,
		何十個ものエラーと向き合ってるので,
		「自分のよくやる間違いのパターン」
		という認識が次第に形成されてくる.
		すると,
		たまにだけど,
		あたかも対ウィルスソフトウェアが呪われメイルを検出するように,
		自分がいま書いてるコードの間違いに気づいたりすることがある.
	
 -  で,
		ヘンだと気づいたのは伸長・分裂によって
		新しくできた PipeBundle だの PipeTerminal を
		そのまま PipeTree にくっつけると
		あとから悲惨なことになる,
		という点である.
		というのも PipeTree ではすべての先端
		PipeTerminal を巡回しながら伸長・分裂の処理をするので,
		その途中で新しい先端など増やすとそいつらまで
		また分裂して新しい先端を作って
		……
		と無限ループに陥りかねない.
	
 -  ということで,
		PipeTree のなかに
		新しい作られた部品だけをため込んでおく倉庫を
		構築してこの問題を回避したのでありました.
	
 -  ……
		てな具合で今日も Abies PipeTree で終る.
		かなりばてばて.
		1750 研究所発.
		雨降った形跡あるので念のため傘を持って帰る
		(けど雨にはあわなかった).
		普通に乗って
		1800 京急杉田発.
		快特に乗り換えて
		1810 京急上大岡発.
		普通に乗り換えて
		1830 京急川崎発.
		1850 帰宅.
	
 -  なんか帰宅したら仕事やる気がでない.
		ああ,
		いまから一ヵ月後には Abies PipeTree の
		発表しないといけないのに
		……
		地球の裏側で.
	
 -  今日の食卓
	
		-  朝 (0720):
			米 0.6 合.
			ゴーヤ・タマネギ・マイタケの炒めもの.
			昨晩のあやしげ味噌汁の残り.
		
 -  昼 (1210):
			弁当.
			米 0.8 合.
			朝と同じ.
		
 -  晩 (1900):
			米 0.7 合.
			ニンニク茎炒めて朝の残りとともに炒飯.
			コマツナおひたし残り.
			昨晩のあやしげ味噌汁の残り.
	
 
 
	 
  
	 
 2001 年 08 月 28 日 (火) 
 
	-  0700 起床.
		8 時間ぐらい寝た.
		よく寝た.
		体調回復.
	
 -  朝飯・弁当の準備.
		朝飯.
		コーヒー.
		シャワー.
	
 -  0740 自宅発.
		曇りちょっと晴れ.
		特急に乗って
		0752 京急平和島発.
		普通に乗り換えて
		0820 京急上大岡発.
		0835 研究所着.
	
 -  Abies PipeTree の続き
		……
		と思うんだけど,
		着手できない.
		この樹木モデルは来月末にカナダの奥地で
		樹木モデル屋たちが隔離された場で発表しなければならない.
		航空券の依頼出した旅行会社に問い合わせのメイル書いたりする.
		4 週間後には出発か.
		うう.
		間に合うんだろうか.
	
 -  さような代理発表せねばならぬ状況を作ってくださった
		ご本人からは近ごろ獲得した御自慢のレアアイテム写真など
		送っていただく.
		何がどうなってるのやら.
 
	
		
			
			 
			
		 | 
		
			[ゴーヤーマン]
			 
			近ごろ
			
				人気
			
			だそうです
			TV のない生活をしてる私は知らなかった.
		 | 
	
 
	-  どうでもいいが,
		独房群と外をつなぐ通信速度,
		今日はいつもよりさらに遅い.
		回線腐ってるんじゃないの.
		あるいは腐れファイアーウォールのヘボい設定が原因,
		とか.
	
 -  PipeTerminal と PipeBundle を連携させて,
		枝を伸ばしたり落したりする過程を作りこんでいく.
	
 -  ついでに,
		書き方の改善も試みる.
		まず reference でいいところは
		pointer をやめてそっちに変更してみる.
		しかしこれはほとんどうまくいかなかった.
		メンバー変数を参照化するのは
		const なデータじゃないとダメなのか?
		あと default 引数が与えられるところは
		その値を書く.
	
 -  なぜだかわからんけど,
		枝落ちのところでディストラクターの挙動がおかしい.
		よくわからぬ core を吐く.
		gdb に放りこんでも
		ディストラクターの最後で 
		標準ライブラリの中に突入していってエラー.
		ナゾだ.
	
 -  バグとれぬまま昼飯.
		弁当食いつついろいろ実験してみる.
	
 -  午後もこのエラーが取れぬ.
		上のエラーは PipeBundle そのものが
		何らかの理由で delete できん,
		という意味らしい,
		ということはつきとめた.
		どうみてもふつーのディストラクターなんだが.
	
 -  1550 よーやくナゾが解けた.
		今回はきわめつけにちょーばかばかしいエラーだった.
		すごく簡単に要約できるほどだ.
		たとえば,
		こういうことである.
 
	int main ( void )
	{
		int*	pointer( new int( 1 ) );
		delete	pointer;  // 消す → これは OK
		int	x( 3 );
		pointer = &x;
		delete	pointer;  // 消す → エラー!!
	}
		ポインターを介在して自動変数の delete を試みると
		Segmentation Fault になるのである.
		いやはやわれながら阿呆だね.
	-  なんで,
		こんなことしたのか.
		本来 PipeTree 内では構造部品はことごとく new で作られて,
		ポインターを介して呼ばれる.
		で,
		ディストラクターもそれにあわせて作ってある.
		ところが,
		試験運転用の架設樹木個体では自動変数で部品を
		用意してそのを
		PipeTree オブジェクトにそのポインターを教えていた.
		で,
		動作試験が無事に終了して
		ディストラクターが呼ばれると
		……
		ああなるわけだ.
	
 -  もともとは開発効率を向上するべく構築した動作試験用樹木が
		だんだん足をひっぱるようになってきたなぁ.
		なんてことだろうね.
	
 -  水呑み研究者なので水を飲みつつ一休み.
		気を取り直して,
		動作試験樹木を改善する.
		やはり試験なしでは後からたいへんそうなんで.
	
 -  1615 問題のテスト終了.
		新規シュートの生成ならびに枝先への追加処理よし.
		死亡処理における PipeBundle の階層的削除よし.
		やれやれ.
	
 -  うーむ,
		STL (標準テンプレイトライブラリ)
		の <list>
		って merge みたいな面倒な関数はあるけど,
		単純にふたつをくっつけるような安直なメソッド無いね.
		自分で書くしかないか.
	
 -  短期成長試験.
		三次元座標系もまともに定義されていない世界で
		Abies PipeTree を育成してみる.
		まだ光計算やってないから,
		それで差し支えないのである.
		資源は外部から少しずつ与える
		……
		ふーん,
		毎年 0.1g しか生長用の資源与えなくても,
		数年は生残するのか?
	
 -  あ,
		これは試験用個体なんだけど,
		PipeTree 内のお役所に管理を委ねられてるやつ.
		どうやら,
		始動→ちょい生長→終了,
		は問題なくできるようになった.
		ならば次は?
		いままではグライダー的な滑空だったけど,
		完全自力で離着陸できるところまで作ってみるか.
		よーし.
		やってみよう.
	
 -  以前の PipeTree 開発をやってたころとは
		kubolib ライブラリの呼び出しかたなんかが,
		だいぶ変わっていて
		……
		と手直しをはじめたあたりで撤退.
		1740 研究所発.
		普通に乗って
		1800 京急杉田発.
		特急に乗り換えて
		1810 京急上大岡発.
		1840 帰宅.
	
 -  晩飯食ったあとは kubolib ライブラリの手直し.
		といってもインターフェイスの一部を変えただけなのだが.
		kubolib/basic に入ってる Filereader を見なしてるうちに
		安直な initializer の作り方を思いつく.
		この Filereader けっこう応用がきくなぁ.
	
 -  もうちょっとだけ PipeTree 内部をいじって今日は終りにしよう.
		時刻は 2230.
	
 -  今日の食卓
	
		-  朝 (0720):
			米 0.7 合.
			豆腐・ゴーヤ・チンゲンサイの炒めもの.
		
 -  昼 (1220):
			弁当.
			米 0.7 合.
			朝と同じ.
		
 -  晩 (1850):
			米 0.6 合.
			朝と同じ.
	
 
 
	 
  
	 
 2001 年 08 月 29 日 (水) 
 
	-  0700 起床.
		昨日も 2400 前には消灯したんだけど,
		呪われ言語 C++ にアタマをやられていたんで	
		なかなか眠れなかった.
		というわけで,
		今朝はやや眠い.
	
 -  朝飯・弁当の準備.
		朝飯.
		コーヒー.
		シャワー.
	
 -  0740 自宅発.
		曇りちょい雨.
		特急に乗って
		0750 京急平和島発.
		普通に乗り換えて
		0820 京急上大岡発.
		0835 研究所着.
	
 -  旅行代理店から書類送ってきたんだけど
		……
		腐れ M$-Word ファイルなんかで送ってくるな.
		ウィルスにやられてたらどうするんだ.
		しょうがないんで,
		領域共有の Dell RedHat Linux マシンを
		ネット経由で呼び出し
		
			VMWare
		
		(Linux 上で動作する「ニセ」計算機で,
		それに Window$ などインストールして動かしたりする)
		を起動しようとしたんだけど
		……
		しりあるなんばー?
		設定したヒトが来るまで動かせんな.
		まぁ,
		急がないからいいけど.
	
 -  で,
		あとで聞いてみたら
		vmware 用の架空ユーザーにならんといかんそうだ.
		起動してみると
		……
		いやーん,
		Linux の X 上で Window$98 が起動してる.
		おひす XP とかもインストールされてるそうなんで,
		間抜け旅行会社の書類もなんとかなりそうだ.
		今日は返送できないんだけど.
		とりあえず vmaware の起動方法わかったんで,
		またあとで
	
 -  Abies PipeTree は自力離陸を目指して改造中である.
		この過程において,
		シミュレイターの中で中心的な役割を
		果たすはずであった PipeTree クラスが
		猛烈な勢いで無能化されていってる.
		つまり,
		こいつの上司である Forest だの
		子分である PipeBundle だの PipeTerminal だの
		Adjusters (Central と Terminal をまとめたもの)
		だのが,
		「あ,
		PipeTree 君,
		そっちのぎょーむはウチでやるから」
		「そのへんの管理はボクらにまかせてください」
		と仕事をどんどんとりあげていって
		……
		午前終了するころには,
		自分では何もできないほど空洞化してしまったのである.
	
 -  うーん,
		なんでこんなことになったのだろう,
		といぶかしく思いつつ弁当を食う.
		いうならば,
		以前の PipeTree はおかずと飯が不可分であった
		海苔弁のごときものであったのにたいして,
		いまや菜がモジュール化されちゃった幕の内弁当のごとき様相
		……
		ということで,
		海苔弁より日替わり幕の内のほうが高価だから,
		グレイドアップしたということなのだろう.
		うん.
		私の弁当はいつまでたってもモジュール化されないようだが.
	
 -  1440 無能化した PipeTree を中心として,
		その上下をかためる Forest と子分たちの
		ソースファイルが一通りそろった.
		森林の初期状態を規定する initializer は以前に比べると
		ずいぶんと簡単になってしまった.
		本来難しくなりがちなこの部分,
		今回はとりあえずはあまり高機能でなくて良い,
		と予想しているからである.
		出力ストリームも入力との対応を考えていないため,
		かなり簡単である.
	
 -  初期データファイルを書く前に PipeTree ディレクトリ内の
		よけーなファイルをあれこれ削除.
	
 -  1520 すぎにはひととーり組み上がったんだけど,
		コマンドラインオプション処理の自作ライブラリがヘンだ.
		というより使い方忘れた.
		うう,
		H-IIA 打ち上げに遅れをとるのもシャクだねぇ
		……
		原因わかった.
		返す真偽値を以前とは逆にしてたんだった.
	
 -  1550 種子島で打ち上げ準備中の H-IIA より
		何分か先行して Abies PipeTree の自力初飛行に成功.
		初期状態 { 高さ 10cm, 直径 3mm }
		の個体が 10 年間で { 高さ 53cm, 直径 10mm }
		まで生長.
		PipeBundle の数は 1 コ → 119 本まで増殖.
		これらはすごく限られた「エサ」しか与えてない場合ね.
		10 年目でほとんど枯死寸前.
 
	
		
			 
		 | 
		
			[Abies PipeTree 初飛行]
			 
			横軸は樹齢.
			縦軸は樹高.
		 | 
	
 
	-  H-IIA も 1600 ごろに上がったみたいね.
		今回は気合いで打ち上げた,
		といいますか.
		帰宅したら,
		打ち上げ動画でも探してみますかね.
	
 -  水など飲んでひと休み.
		ふう.
	
 -  自力飛行できるようになったとはいえ,
		この Abies PipeTree まだまだ完成にはほど遠い.
		光計算も光合成も呼吸も三次元的形成も
		……
		葉群とかいちばん後回しになりそうだな.
		しかし枝ぶりとかは早めに
		図示して動作チェックできるようにしたほうがよかろう.
	
 -  まずは
		枝を形成する先端部 PipeTerminal を
		それらしい方向に誘導するモジュールが必要だな
		……
		ということで,
		新しくターミナルナヴィゲイター (TerminalNavigator)
		というのを定義するコードを書きはじめる.
	
 -  まだ書き進んでないけど撤退.
		1740 研究所発.
		普通に乗って
		1755 京急杉田発.
		特急に乗り換えて
		1805 京急上大岡発.
		平和島でまた一月ぶんの定期券買ってしまう.
		12970 円.
		1840 帰宅.
	
 -  晩飯食ったあとに打ち上げ動画などさがしてみる
		……
		NASDA のへぼサーヴァーは一斉攻撃に
		耐え切れず事実上オチた状態.
		NHK のニュースサイトからストリーミングできるな
		……
		おお,
		飛んでる飛んでる.
	
 -  まずはめでたいですな.
		しかし,
		半分お役所とでもいうべき NASDA が
		衛星打ち上げびじねすとやらに
		参入しようともくろんでるそうだから,
		たいへんなのはこれからである.
		衛星そのものはロケットより何倍も高額である.
		それを宇宙に配達して金儲けするには,
		20 回の打ち上げたら 19 回は成功させねばならない,
		と言われている.
		成功とは予定された軌道にきちんとのせる,
		という意味である.
		なかなか厳しい.
	
 -  H-IIA というロケットはまず先代の半額にしなければならぬ,
		という前堤から始まっている.
		NASDA に命じられて部品など作らされた企業の技術者たちが
		ネット上で匿名で書いてたことには,
		今までにくらべてかなりコストカットが行われたとか.
		今回は予定を半年おくらせ,
		あれこれと動作試験やってバグを出していたんで,
		どうにか上がった.
		さてさて次に失敗するまでに何回うまくやってみせるか.
		武士の商法の行く先はこのあたりにかかってるんじゃないかな.
	
 -  私はパイプ末端の PipeTerminal の行く先を決める
		TerminalNavigator 書きの続き.
	
 -  2300 ごろ三次元方向指示機構ひととーり書いて
		make できることを確認.
		TerminalNavigator の導入で以前よりよほど簡単化されたな.
		ただしい方向に飛翔してるかどうか,
		は軌跡を図示してみないとわからん.
		ということで,
		明日は PipeTerminal の「軌跡」たる
		PipeBundle が目に見えるようにする.
	
 -  さーて,
		C++ 呪われなアタマをスピンダウンして
		さっさと寝ますかね.
	
 -  今日の食卓
	
		-  朝 (0715):
			米 0.6 合.
			煮干たきこみ飯というよくわからぬモノ.
			チンゲンサイ・タマネギ・エノキダケの炒めもの.
		
 -  昼 (1230):
			弁当.
			米 0.8 合.
			朝と同じ.
		
 -  晩 (1855):
			米 0.6 合.
			ニンニク茎・チンゲンサイ・タマネギ・エノキダケの炒飯.
	
 
 
	 
  
	 
 2001 年 08 月 30 日 (木) 
 
	-  0710 起床.
		ねむい.
	
 -  朝飯・弁当の準備.
		朝飯.
		シャワー.
		コーヒー飲む気がしない.
	
 -  0750 自宅発.
		曇り.
		特急に乗って
		0805 京急平和島発.
		普通に乗り換えて
		0830 京急上大岡発.
		0840 研究所着.
	
 -  さっさと Abies PipeTree の続きをやらねばならんのだが
		……
		午前中は海外出張の書類準備などでつぶれてしまった.
		行った先で発表すべき PipeTree はまだまだマトモに
		動作してもいないのにね.
	
 -  旅行代理店から送られてきた腐れ M$-Word ファイルを
		まず開かねばならない
		……
		昨日,
		起動方法を確認した Dell RedHat Linux マシンの
		
			VMWare
		
		の画面を独房内液晶ディスプレイに呼び出す
		……
		うわー,
		Window$ が起動してるよ
		……
		とはいえ,
		昼までにこのヘンな起動画面を何度も何度も何度も
		見せられることになろうとは知る由もなかった
	
 -  メイルにつけられたへなちょこバイナリーファイルを切り離して
		baka.doc と名づけ,
		ネットでサーヴァー室に送り,
		/tmp を経由して VMWare 内の Window$ の
		呪われソフトウェアで開く
		……
		罫線びっしりの趣旨不明な「渡航手続お伺い書」.
		こんなものなら PDF ファイルで送ってこいよ.
		まったく.
	
 -  問題はプリントアウトだ.
		計算機内計算機とでもいうべき VMWare は
		なかなかよくできていてたいていのことは emulate
		するんだが
		……
		うーん,
		Linux 上の Samba との連携ワザがわからん.
		とりあえずプリンタドライヴァーをダウンロード.
	
 -  M$ なネットワークシステムを理解するのがイヤになったので,
		ここをすっとばして印刷機にジョブを出すことを考える.
		幸いにしてここのプリンターは IP アドレスもってるやつなんで.
		www.vector.co.jp
		から lpr/lpd システムを Window$ 上で動かす
		
			フリーウェア
		
		をダウンロードしてきてインストール
		……
		95 用か.
		大丈夫だろうか.
	
 -  ところで Linux 上の VMWare 上で動かそうが,
		Window$ は Window$ なので,
		何かインストールするたびに意味不明な
		再起動を強要される点はまったく同じである.
		ちくしょう,
		この呪われた罰あたりな
		……
	
 -  一時間にわたる理不尽なる苦難ののちに,
		気分悪くなるファイル形式の下らない書類が
		めでたく印刷出力された.
		VMWare の中に毒性生物のごとく隔離された
		Window$98 は
		dll がどーのこーのというエラーを出すようになっている.
		こっちが悪いんじゃないからね.
		さらに隔離装置 VMWare とて常には盤石ではなく,
		内部で動いてるヘンな OS が兇悪なエラーを
		出すと VMWare ごとオチる,
		とわかった.
		とはいえ,
		サーヴァー室の Dell Linux サーヴァーには悪影響及ばないし,
		さらにこちらの独房内で遠隔操作に使ってる BookPC
		にとっては痛くも痒くもないのだが.
	
 -  ……
		で,
		まだ完成にはほど遠い PipeTree を発表するための
		海外出張届け関係の書類を全部書いてしまう.
		一階の事務まで持っていき,
		よろしくお願いする.
		腐れファイルを送ってきた旅行会社には
		意味不明な「お伺い書」(細かい個人情報あれこれ書かされた)
		と先日取得したパスポートの複写をファクシミリで送る.
		ふう.
	
 -  あと,
		ヨソで発表するならあらかじめその登録を,
		と事務のかたに指示されたので,
		イントラネットと称してる機構から登録を試みるが
		……
		独房群計算機システムの例外にもれず,
		これもまた腐れているので
		30 分ほどを要してしまった.
		ハードウェアばかりにカネかけて運用へぼへぼってのは,
		いかにもここ独房群的な情景ですなぁ
		……
		と感銘しつつ昼飯の弁当を食う.
	
 -  午後になっても,
		事務のかたがたとメイルのやりとりが続いたりする.
		午前中の雑用の余波である.
	
 -  1400 すぎにようやく Abies PipeTree の続きを再開.
	
 -  末端つじつま合わせモジュール
		TerminalAdjuster の計算結果キャッシュサーヴァーの
		データ構造は vector<SolutionCache> であった.
		自分で vector を伸ばしたりするほうがよい,
		と思ってたもんで.
		しかし map<SolutionIndex, SolutionCache>
		と改めたらよほど効率的になってしまった
		……
		ということで,
		ますます STL に依存.
	
 -  以前につくったちくわ製造機 TubeMaker を
		パイプ樹木断片 PipeBundle と結びつける作業を進める.
	
 -  1530 ちとばてたので休憩.
		ひさびさに独房群屋上に出てみる.
		曇ってるけど 5000m 離れた
		ランドマークタワーは見える.
		気温そんなに高くない.
		ストレッチして血行を回復.
	
 -  ふつーの出力いがいにもう一本の
		ofstream を定義して,
		そちらにちくわの構成要素たる三角形 VitTriangle
		を流しこむようにする.
		1720 ファイルへの出力試験に成功.
		あとはこれを POV-Ray コードに変換して,
		三次元図を描かせるわけだが
		……
		ま,
		今日のところは撤退しますか.
		1750 研究所発.
		普通に乗って
		1800 京急杉田発.
		特急に乗り換えて
		1805 京急上大岡発.
		1840 帰宅.
	
 -  晩飯食ってから,
		三角形のあつまりを図化する試み.
		なんかすさまじいバグがどんどん出てくる.
		やっと絵が描けた,
		と思ったら
		……
		なんぢゃ,
		これは?
 
	
		
			 
		 | 
		
			[ひどく呪われた最初の一歩]
			 
			……
			なんか主軸と側軸をとりちがえてるんじゃないか.
			末端の長さ調節もヘンだ.
			そういや,
			トドマツの分枝角度使うはずだったんだけど,
			まだ入力してなかった.
			POV-Ray で三角形を書かせるのはたいへんだ.
			少なくとも描画に関しては円筒にしたほうがマシかも.
			ああ,
			これにさらに針葉つけたり
			光計算やらせたらどうなることやら
			……
		 | 
	
 
	-  ……
		ともかく,
		図にすることで方向指示器 TerminalNavigator
		と末端形成屋 TerminalAdjuster のまわりがまだまだだめだめ,
		とわかりました.
	
 -  しかし深刻なる問題に発展しそうなのは,
		パイプ末端 PipeTerminal の個数が
		二万個を超えたあたりで,
		TerminalAdjuster と CentralAdjuster の間の
		話し合いが破綻してるらしい
		……
		という疑惑だ.
		挙動しらべなくては.
		くそう.
		発表まであと一ヶ月を切っているんだが. 
	
 -  もう 2300 すぎか.
		明日以降にそなえて,
		今日はもう切り上げるか.
		宵越しのバグとつきあう日々が始まった,
		そういうことだ.
	
 -  今日の食卓
	
		-  朝 (0720):
			米 0.6 合.
			乾燥ワカメ炊きこみ飯.
			シシトウ・エノキダケの炒めもの.
		
 -  昼 (1230):
			弁当.
			米 0.7 合.
			朝と同じ.
		
 -  晩 (1900):
			米 0.7 合.
			タマネギ・シシトウ・エノキダケの炒めもの.
	
 
 
	 
  
	 
 2001 年 08 月 31 日 (金) 
 
	-  0600 起床.
		バグにやられてるとよく眠れないことがある.
		5 時間ぐらいは寝たか.
	
 -  朝飯・弁当の準備.
		シャワー.
		朝飯.
		コーヒー.
	
 -  0650 自宅発.
		曇ちょい雨.
		特急に乗って
		0709 京急平和島発.
		普通に乗り換えて
		0733 京急上大岡発.
		こっちでは本格的に雨降ってる.
		折りたたみ傘展張.
		0750 研究所着.
	
 -  三次元図を作ってわかったあちこちの失敗を直していく
		……
		パイプ末端 PipeTerminal の方向指示器 TerminalNavigator
		で直せるところはさっさと直してみる.
		三角形はいったんヤメて
		安直に円筒でもいっぺん描画してみると
		……
 
	
		
			
			 
			
		 | 
		
			[まだまだ壊れたまま]
			 
			オレンジ色は一度「死んだ」部分
			(無理矢理存続させている).
			主軸たちは理由もなく殺されている.
			ナゾ.
		 | 
	
 
		末端やりくり屋の TerminalAdjuster が壊れてるみたいね.
		側軸に資源をまわして主軸にはまわさん,
		という奇妙な分配をしている.
	-  昼飯も食いながらバグの所在をさぐり,
		1530 ごろになってよーやく,
		まともそうな結果が得られるようになった.
 
	
		
			 
		 | 
		
			[ようやくまともそうな]
			 
			上の図で主軸が死んでたのは
			主軸のPipeBundle と PipeTerminal の接続不良でした.
			1 ステップごとにつなぎかえるの忘れてた.
		 | 
	
 
	-  CentralAdjuster に支配されている階層的な
		肥大成長モデルなども再点検.
		この部分はややこしい.
	
 -  試験的に,
		すべての PipeTerminal は同じ予算請求能力をもつ,
		としているので,
		このようにしもぶくれになる.
		下のほうが PipeTerminal の数が多いからである.
 
	
		
			 
		 | 
		
			[しもぶくれな樹木]
			 
			どの枝先も平等に資源を使える,
			としているので,
			すえ広がりな太りかた.
			かつての
			
				とっくり樹木
			
			につうじるものがある.
		 | 
	
 
	-  これの見てくれをこういうふうに良くしようと思ったら
		……
 
	
		
			
			 
			
		 | 
		
			[傾斜配分]
			 
			たとえば,
			ごく単純に枝次数
			(根っこから先端に到達するまでに何度「曲がる」か) 
			が低いほど資源たくさん取ります,
			としてみると
			……
			すこしすっきり.
			他にも手口はあれこれあります.
		 | 
	
 
		……
		できるだけ頂端方向に資源を集めればよさそうである.
	-  Vertical の Main の軸
		……
		つまり幹の「回転」がうまく制御できん.
		自分で定義した極座標系なのに.
		不思議だ.
		とりあえずの「経験式」(なさけない)
		……
		回転角度 = 0.25 π + 0.5 (modifier のθ).
		Lateral な枝の方向制御は完ペキなんだけどなぁ.
	
 -  枝がどっちに伸びるか,
		といったことは TerminalNavigator が決めている.
		しかし「全体にどういう形になるか」
		というのは,
		ResourceAllocator のばらまき具合と
		(上の図を生成するためにここをいじった),
		CentralAdjuster 対 TerminalAdjuster
		のアジャスター対決で決まってくるのである.
		ここらへんは前のモデルより良さげに見える.
	
 -  途中,
		北大某講座メイリングリストあれこれの
		どたばたに巻き込まれたりしてるうちに,
		ばててきたので
		1740 研究所発.
		雨はあがっている.
		普通に乗って
		1755 京急杉田発.
		特急に乗り換えて
		1800 京急上大岡発.
		普通に乗り換えて
		1820 京急川崎発.
		野菜など買って
		1900 帰宅.
	
 -  晩飯くってから,
		円筒描画に逃げるのではなく,
		三角形描画に再挑戦してみる
		……
		結論,
		だめだ.
		POV-Ray にこういうやりかたで絵を描かせると,
		ひどく時間かかる.
		円筒つかったほうが 10 倍速い.
 
	
		
			 
		 | 
		
			[ぽりごん樹木]
			 
			円筒ではなく
			三角形の集まりとして表現してみました.
			計算用の数値森林の中では
			こういうふうになってるんだよね
			……
		 | 
	
 
	-  三次元虚業ライブラリで光計算やるときは,
		上の図のような三角形なんだよね
		(8/21 の
		図)
		……
		うまくいくのかどうか不安になってきた.
		POV-Ray に三角形をざらざらと流しこんだ教訓として,
		あまり細い枝は無理矢理「ちくわ」化しないほうがよさそうだ.
		ちょっとそのあたりは再考しよう.
	
 -  今日でもう 8 月も終りか
		……
		夏休みの宿題,
		間に合いませんでした状態だ.
		この「ぎょーむ日誌」によると先週の月曜日 (8/20)
		に VitTriangle を作るところから
		Abies PipeTree 専業でずーっとやってきたわけだが,
		11 日間かけてもまだ以前の PipeTree の機能も回復していない.
	
 -  とはいえ,
		今日はもうばててるんで,
		こんなのうだうだ書いたり,
		またバグの数を増やしたりしないで,
		さっさと休もうかな.
		時刻は 2130.
		うー
	
 -  今日の食卓
	
		-  朝 (0620):
			米 0.6 合.
			アスパラガス・タマネギ・シイタケの
			クリームシチュー.
		
 -  昼 (1230):
			弁当.
			米 0.7 合.
			朝と同じ.
		
 -  晩 (1910):
			米 0.7 合.
			ニンニク茎炒飯.
			朝の残り.