ぎょーむ日誌 2001-10-23
2001 年 10 月 23 日 (火)
- 0700 起床.
よく寝てしまった.
- 朝飯・弁当の準備.
朝飯.
シャワー.
紅茶.
- 0730 自宅発.
雨上がりの晴れ.
特急に乗って
0739 京急平和島発.
普通に乗り換えて
0805 京急上大岡発.
この時間は大量の高校生で車内混む.
0825 研究所着.
- 朝から ThinkPad カーネルの作り直し.
Linux-2.4.12 にすると 2.4.10 では挙動不審だった
APM (電源管理) まわりが直っていた.
やはりカーネルの問題だったか.
- 「ニセ」アカマツとりまとめの最後に,
ひどく現象論的に定義された生産効率
(production_rate)
という値によって
挙動が何もかも変わってしまいますよ
……
と述べるために少し Perl モジュールに手を入れてみる.
このややこしい RedpipeTree モジュール群に手をいれるのは
久しぶりなので少しうろうろと道に迷う.
計算結果.
# Total production_part = 765.8
# Total production = 4016.0
# Averaged prod_rate = 1.42e+01
- うん?
14.2 ?
えらく高いな
……
そうか全個体に関する和の比率をとってるから,
それに影響か.
rate = production / pp0.85
というやつの変なベキ乗部分の問題だね.
うーん,
気に入らないけど,
生産器官重と生産量を
それぞれ個体あたりに直して再計算してみるか.
- 再計算.
10.4.
まぁ,
こんなものか.
# Mean production_part = 95.7
# Mean production = 502.0
# Averaged prod_rate = 1.04e+01
- なんとまぁ,
いまごろになって「ニセ」アカマツバグが出てくる.
/usr/bin/perl -w
という一番ウルさく警告を発するモードで走らせてるんだけど,
undefined スカラー使うなばかと言ってくる.
ああ,
たしかに undefined.
おかしいな,
以前はこの警告は出てなかったのに.
Perl 5.005 → 5.6.1 と変えた影響か?
- バグ取れぬままに昼飯.
|
[すでに誰も覚えてないので]
ちょっと顔見せ.
うーむ,
ちかごろ針葉樹の見てくれには
少しだけ敏感になったので,
この「にせ」ぶりが以前より気になる
……
ばらされた茎をまったくランダムに
つないだだけなんです,
これ
(茎の齢だけは考慮).
|
- 1410 よーやくにしてバグ取れた.
またまた想像を絶するシロモノだった.
めいんるーちんとでも呼ぶべき
RedpineTree::Change
という関数はこういう順序で実行されるのが正しいんだけど
……
$self->SetProduction();
$self->InevitableGrowth(); # with generating main stems
$self->EliminateDeadStems(); # with counting number of dead
$self->GenerateSubStems();
$self->ConnectNewStems();
self
->SetRisingRankNumber( self->{ "age" } + 1 );
if ( $stem_location eq "false" ) {
warn "# Skipping StemLocator !!!";
}
else {
$self->StemLocator(); # 3D processing
}
$self->CountAliveStems(); # at the end of this turn
何かのパラメーターに対する反応を調べるために
反復試行するときには
$self->StemLocator()
がいらないからすっとばすようにしてるんだよね
……
で,
バグの正体はここで別の関数
($self->SetRisingRankNumber()
)
までいっしょに省かれていた,
というもの.
いったいぜんたい何を考えて
……
- まさかこんな関数列挙してるだけの
目次というか主幹みたいなところに
呆然自失脱力級の凡ミスあるとは思わなかったので,
らくだ言語のケガれ object oriented programming 技法を
内心で罵倒しつつ Perl debugger の
ブレイクポイント (``b'') と
バックトレイス (``T'') の連携ワザを駆使して
じつにドブの底をさらうような追跡をやっていたのであった.
おかげで,
プログラムの動作はだいぶ思い出してきたけど.
- ついでに bug 混入の経緯らしきものも徐々に
……
最初に作図用の反復をとったときに
if
をつかわずに
「コメントアウト & 警告出し」
だけだったような気がする.
で,
あとからそれを見て
「よし,これは便利だからオプションで指定できるようにしよう」
として,
間違った if
ブロックを作って,
そのまま一度も試験運転しなかった,
というところだろう.
アタマ痛い.
- プログラム修正.
さて,
不本意ながらメモリ浪費傾向ある
sim_redpine.pl
を BookPC で走らせるとときどき paging してしまうので,
独房むかいのサーヴァー室なる区画にある
Dell RedHat Linux 機に ssh でもぐりこんで
計算やらせてみる
……
おお,
速い速い.
- 8 個体×15 年間×10 反復 ×2条件の
シミュレイションが 30 分ほどで終ったので,
それらを集計・作図してみる.
とはいえ前にやった作業を
make
で半自動的にやり直すだけなのでこっちは数十秒で片づく.
1520 最後の図である figure.5 に新しいグラフを追加して
作業終了.
- 幸いにも予想どーりの図になってる.
つまり現象論的 production_rate は
実験処理の影響を反映し短期的な動態の指標にもなっている,
というのがより明示的になった.
むろん観測データにはさまざまな限界があるし,
現象論的モデリングというのは
(よりよい実験データが得られるであろう)
将来における破綻を前提にしてるようなところがあるから,
そのあたりはきちんと述べなくては.
- とりあえずこれでゴールが見えたので
方法節の最期の procedure 小節をさっさと書いてしまう.
頭の中でふたたび「ニセ」アカマツが
ごそごそ動きだしたようだ.
これで結果とかも書けそう
……
と油断してたら,
バックアップ処理を失敗して何行か消失.
プリントアウトあったんでそれを見ながら再入力.
- 1805 研究所発.
普通に乗って
1815 京急杉田発.
特急に乗り換えて
1820 京急上大岡発.
1900 帰宅.
- 晩飯食ってから昨晩破綻した自宅 ADSL 闇ルーターの復旧.
今日は AC アダプターあるんで落ち着いて点検できる
……
40 分ほどでふたたび高速ネット再接続.
- Linux で ADSL 接続する rp-pppoe の設定や動作には
問題なかったんだけど,
ぱにっく気味だったので /sbin/route コマンドによる
ルーティングを忘れていただけであった.
ふつーはこんな作業はいらないんだけど,
PCMCIA の Ethernet LAN カードを二枚も挿してるような
闇ルーターではこの設定が必要不可欠.
- 自宅でメイルなど読み書きできるようになった安堵のあまり
ぼーっと
……
いやはや,
夜に仕事ができないヒトになりつつあるなぁ.
- 都立大植物生態と福島の県情報 web 発信といえば
このヒトありと知られる
小澤さん
からおそれおおくも,
拙作 PopWave の MacPerl 上での試運転情報教えていただく
……
で,
やはり MacPerl ではちょっと面倒そう.
Windwo$ 上の Perl なら Unix 系と同じように動くのになぁ
(これも小澤さんの調査結果)
……
ぢょぶす (旧) OS では
「カレントディレクトリ」(らしきもの)
に置いてるつもりの
Perl モジュール見つけられないようで.
たぶん Mac はそういう概念無いから.
- そのうち PopWave ってのをこのサイトで公開しますから,
だれか奇特な Mac 使いのヒトは MacPerl で動くようにしてくだされ
……
とお願いしようにも,
GUI 教徒ってのは 1 行のプログラム書くぐらいなら
4096 回ほど電気鼠をこづくほうがよっぽどマシ,
と信じてるんだよね.
これは信仰の問題だから如何ともしがたい.
私の独房まわりなんかでも
宗教的情熱を感じさせる
かちかち音が一日中絶えること無い.
- 今日の食卓
- 朝 (0705):
米 0.6 合.
ホウレンソウ・タマネギ・エノキダケの炒めもの.
- 昼 (1210):
弁当.
米 0.8 合.
朝とおなじ.
おかずいれのタッパーの密閉がいよいよおかしい.
えーい,
どうしてくれよう.
- 晩 (1920):
米 0.6 合.
タマネギ・サツマイモ・エノキダケの味噌雑炊.