ぎょーむ日誌 2000-12-(11-20)
2000 年 12 月 11 日 (月)
- 0700 起床.
体調はまぁまぁ.
- 朝飯・弁当の準備.
といっても炊きこみご飯を盛るだけだが.
朝飯.
コーヒー.
シャワー.
ひげそり.
洗濯開始.
- 0750 自宅発.
曇り.
燃えるゴミだし.
途中でノド飴買う.
0812 東京モノレイル流通センター発.
浜松町の気温 9 ℃.
0832 研究所着.
-
FLTK
か
……
日本ではあまり紹介されてない
ToolKit for C++ かも.
あ,
でもやっぱり面倒そう.
- さて,
しばらく放置しておいたいくつかの
課題にとりかかりたい.
とりあえずの主眼は開空度計算ライブラリー
Evision (名前ころころ変わるな)
なんかの再編成である.
最尤推定法についてはそれが一区切りついてから,
また問題になってくるだろう.
- まだ某あやしげ編集部からあやしげな注文くる
可能性があるので,
今年 10 月のライブラリーを展開したまま,
11 月になって手を入れ始めたほうも
tgz 状態をほどく.
- まずは三次元計算より
入出力をどうにかせんといかんな
……
ということこで,
filereader クラスを見直し,
同時に ostream を継承した新しい
出力ストリームを作れないか検討してみる.
手もとの C++ 本ひっくりかえす.
/usr/include/g++-3/iostream.h を読む
……
やっぱインターフェイスとゆーか
入出力は メンドウ,
と再確認.
- お,
Yahoo! オークションで落した品が届いた.
よしよし
問題なく動作するな.
定価 9800 円だったものが 1600 円.
送料必要だけど消費税いらず.
貧乏人にはありがたい仕組みだ.
[無線トラックボール]
赤外線方式.小さい.
2 ボタン.詳細はまた
おいおい.ともかく鍵
盤二枚体制はおしまい.
- ノドはちといたむんだが腹は減ったので
昼飯食う.
- 世紀末
北虎伝説
復活のうわさにおびえる.
- 昼飯食ってから,
C++ 本をひっくり返しては
それらがあまり役に立たぬことを発見しつつ,
コンパイルエラーの警告文言を解読しながら
試行錯誤でコード書きのつづき.
ostream を継承するのは面倒そうなんで,
とりあえず
ofstream を継承してみることにした.
#include <iostream>
#include <fstream>
#include <string>
class MyNewStream :
public ofstream
{
public:
MyNewStream( const string& fn ) :
ofstream( fn.c_str(), ios::out ) { }
};
int main ( void )
{
MyNewStream new_stream( "tmp.txt" );
new_stream << "Hello, Our New Stream !" << endl;
return 0;
}
なんだかなぁ.
さらにストリームを流し込む演算子
<<
を上書きせんといかん
……
- 今日はやかましー
……
こらこら私の横 5m で
お役所文章朗読の会を始めるんじゃなーい.
それに触発されておぢーちゃん電話まで
興奮状態になるし.
ただし英語電話だと
声も小さく口数すくなく
正気の所在を疑わせる
嬌声を発して哄笑しないのは
不思議の極みだ.
日本語電話もそうしてくれると
ひどく助かるのだが.
- 統計学相談メイルが来たんで,
そっちに対応する.
呪われ g++ の
試行錯誤コーディングよりは
やかまし sensitivity が低い知的活動なんで.
- 1810 研究所発.
本屋 dan による.
お,
Programming Pearls (Perl ニ非ズ) とか
プログラミング作法とか
良さそうな本が
……
しかし先だつモノが.
1837 東京モノレイル浜松町発.
1910 帰宅.
- 晩飯食ってから,
呪われ C++ コードに再び取り組む.
- ふう
……
やっと通った.
本に書いてあるのとは抜本的に違うコードだ.
大丈夫なのか g++ ( GNU C++ コンパイラー).
行末の
endl
を通すような型
__omanip
なんてのは
実装依存ではなかろーか.
やれやれ.
#include <iostream>
#include <fstream>
#include <string>
class MyNewStream :
public ofstream
{
public:
MyNewStream( const char* fname ) :
ofstream( fname, ios::out ) {}
MyNewStream& operator<<( const string& data );
MyNewStream& operator<<( __omanip func );
};
MyNewStream& MyNewStream::operator<<( const string& data )
{
string modified( "// " + data );
write( modified.c_str(), modified.size() );
return *this;
}
MyNewStream& MyNewStream::operator<<( __omanip func )
{
return ( MyNewStream& )( *func )( *this );
}
int main( void )
{
MyNewStream new_stream( "tmp.txt" );
new_stream << "Hello, Our New Stream !" << endl;
return 0;
}
良い書き方とは思えんが,
とりあえず動く.
さてと.
この「ofstream 継承試験コード」を
元にシミュレイターとかで使えるやつに
拡張せんといかんな.
どうも,
operator<<
を型ごとに
lいちいち上書きせんといかんようだ.
なんてこったい.
どこか間違えてるよーな気もする.
しかし GNU C++ 本に書かれていたテンプレイト使う策は
ダメだった.
- 某あやしげ編集部から執筆者全員あて.
LTER 特集号の字数が超過してるんで
(ほらほらほら),
特集分割したくなければ
各執筆者がまとめて 50 部づつほど買わんか,
というメイル.
増刷でペイジ数増加に対応する腹づもりらしい.
うーむ.
やはりあやしげだ.
「敵を知らざれば」ということで
その雑誌 11 月号を自腹で買ったけど一冊 1400 円.
著者がまとめて買えば 2 割引,
といっても 50 部も買ったら 56000 円だ.
どこにそんな予算あるのか.
- 眠い.
- 今日の食卓
- 朝 (0730):
米 0.6 合.
ヒジキ・昆布・高野豆腐の
炊きこみご飯.
ついに生鮮食品がつきたんで.
- 昼 (1230):
弁当.
米 0.8 合.
ヒジキ・昆布・高野豆腐の
炊きこみご飯.
- 晩 (1940):
ソース野菜焼きそば.
先日 100 円ショップで買った
ソース焼きそばを 50 円ぶん使用.
キャベツの固い部分とニンジンを薄切りにして
下茹で.
エリンギ・モヤシ・麺とともに炒める.
麺より具の多い一品となった.
2000 年 12 月 12 日 (火)
- 0700 起床.
6 時間ぐらい寝た.
ノドがまだちょっと痛い.
昨日もっとうがいしとけばよかった.
- 朝飯・弁当の準備.
朝飯.
コーヒー.
シャワー.
- 0740 自宅発.
晴れ.
また途中でノド飴買う.
今日は羽田から離陸していく飛行機たちが
くっきりと見える.
空中に静止しているような旋回の機体は
Boeing の最新型 777 (トリプルセヴン) である.
飛びかたの違いで識別できる.
まったく新設計の翼であるため,
低空ではゆっくり飛び,
高空では亜音速が出せるらしい.
0802 東京モノレイル流通センター発.
浜松町の気温 5 ℃.
0820 研究所着.
- 早くから来ていた Dennis さんと
X 端末ソフトウェア導入に関する議論.
なるほど eXodus ってのが
まだあるんですね.
VNC
はどうだろうと提案.
- 私自身は X (Linux 上の XFree86) の上で生活しているので,
いまさら X な端末ソフトウェアなど入れる必要ない.
1984 年に MIT で開発されたこの X とゆーのは
実によく出来たシステムで,
たとえば
必要とあらば北大闇ネットの内側にある
Linux マシンに入ってるお絵かきプログラムを
浜松町で使ったりすることだってできる.
- しかし,
モノは試しとて vnc をダウンロードしてみる.
ヴァージョンは 3.3.3r2.
Macintosh・Window$ はもちろん
Linux・SunOS・Window$CE などいろいろな
プラットホームで使えるようだ.
- とりあえず自分の BookPC と ThinkPad
に VNC インストールしてみる.
いろいろと試行錯誤.
以下はその結果.
BookPC 側を server にしてみよう.
Xvnc や vncpassword なんか を $HOME/bin に移す.
vncserver は Perl で書かれている.
あれこれとカスタマイズ.
./vncserver で起動.
初回はパスワード登録.
$HOME/.vnc/ にログとロックファイルが
生成される.
- つぎに vnc クライアント側である ThinkPad
で
vncviewer (ホスト名):1
というふうに起動,
パスワード入力.
するとウィンドウが開いて
X が起動している.
WindowMaker とか,
ようするにふだんの環境になってるワケです.
- いやー,
動作はちょっとトロいけど面白いもんですな.
とにかくこの vncserver というのを動かしておけば,
Unix 機から Macintosh を使う,
とか Mac から Win を使うってことが
できちゃうわけだ.
しかもスーパーユーザにならんでも
server 起動できる.
- しかし BookPC → ThinkPad は通るけど,
逆は通らん.
設定がどこかまずいんだろうか.
- ……
と午前中の半分程を VNC で遊ぶ.
- あとはメイルのやりとりだの,
文献コピーして送るだの
……
- 昼飯食いつつネット上をふらふら.
ワイヤレストラックボールにも慣れてきた.
[右クリックどらっぐ]
親指でクリックしつつ人差指側面で
玉を転がしてる.慣れが必要.ちな
みに中指の位置に左クリックトリガー
あり.これは使いやすい.普段は親
指で玉を転がし人差指でクリック.
- 大江戸線なる新開通地下鉄に乗れば
帰りに秋葉原や新宿の計算機屋に寄るときとか
便利だろうか
……
と思って
ネットから路線図にアクセスを試みたんだけど,
東京都交通局のサーヴァーは混雑しすぎていて
なにも情報を返さない.
- 交通といえば,
羽田空港国際化問題は
運輸省・東京都・千葉県の三当事者ともどもに
相変わらず大人げない発言が飛び交い
紛糾してるようである.
愉快愉快.
私はぢもと民と称して羽田を応援してます.
- しかし「羽田は国内便・成田は国際便」なる
利用者にとっては不便なだけの「原則」なるものは,
いったいどういう発想の産物なんだろね.
こんな分離に意味あるんだろうか.
わからん.
- なーんか日本の空港って変なの多いよね.
新千歳空港は歴史的名機の
レプリカが展示されてるから良いとして,
仙台へんぴだし,
羽田は国内便だけだし,
成田は怨念うずまく泥沼の反対運動で
滑走路が一本しかないし,
開催できるかどーかわからん万博のため
建造中の愛知空港って名古屋な発想だし,
関西新空港は伝説の古代大陸よろしく不等沈下で
ほとんど海没しちゃってるんで
着陸ならぬ着水させられるらしいし,
住民がいくら反対署名しても
神戸空港作るんだいと強情はるし,
広島のは鉄道も通わぬ山の中におこもりになってるし,
福岡空港に来るひこーきは九大に落ちそうだし
……
- 某あやしげ編集部から校正刷りが
ファクシミリで届き,
例によってさっさと作業しろなる督促.
- ああ,
変な間違いとかあるな.
ちくしょう Canna め
(と,かな漢字変換サーヴァーのせいにする).
いやいや,
編集部で勝手に直した文章に混入してるのもある.
- 文中にある
「林野庁」
……
これって中央省庁改変とやらで
来月以降はなくなるんじゃなかろーか.
ネット上で調べてみると
……
なんとなんと農水省の傘下の
食糧・林野・水産の三省庁はことごとく
そのまま残されるのか!
- 1350 ファクシミリで初校の結果を送る.
素早い返し技は
すでに追い込まれてしまっている
先方に対するいやがらせなのである.
- 呪われ C++ というか g++ に再び取り組む.
もはや某あやしげ編集部
作図注文出してくる可能性はなくなったので,
10 月のライブラリーは消し,
最新のライブラリーを展開して
作業する.
- 1630 一区切りついた.
また邪悪な
<strstream>
を使ってしまった.
一時は終りの見えないように思えた
operator<<
の上書き定義なんだが,
結局のところ
制御子 (endl など)
と string&, double&, int&
の 4 つを書くだけですんだ.
とはいえ,
double と int はどちらも
ostrstream に渡して char* にして
ostream::write() してというパターンだったので,
共通部分を短い関数にすると
それぞれ一行でかけてしまう.
昨日は敗退した関数テンプレイトわざを
今日は有効に活用できたためである.
- で作ったのは,
filewriter.h という 70 行の短い
ヘッダーファイルで,
こいつで定義している
Kstream
というストリームを使うと,
たとえば,
Kstream kstream( "tmp.txt" );
kstream << "BEGIN\tFOREST\t" << 0 << endl;
kstream << "data1\t" << 2000 << endl;
kstream << "BEGIN\tTREE\t" << 1 << endl;
kstream << "data2\t" << 3.1415 << endl;
kstream << "END\tTREE\t" << 1 << endl;
kstream << "END\tFOREST\t" << 0 << endl;
BEGIN FOREST 0
data1 2000
BEGIN TREE 1
data2 3.1415
END TREE 1
END FOREST 0
……
とゆーようなちょっとした整形をして
吐いてくれる,
というシロモノなのである.
ああ,
こんなしょーもないものを作るために
二日も費してしまった.
いや,
しかし ofstream を継承してるんだから,
いろいろとご利益あるはずなんだが
……
- filewriter.h に対応する
Filereader は
BEGIN-END 構造だけに着目して
森林や樹木といった複雑な階層構造を
もつデータのテキストファイルを
読み解いていく.
であるから,
このような行頭のインデントは
まったく無意味なのである.
しかしながら,
人間が読む場合はこういうふうにしとくと,
まぁ,
ちょっとは読みやすかったり
間違い発見に貢献するのでは
……
と.
- その程度のシロモノなので,
コった機能はまだ付いていない.
たとえば前の BEGIN についてるタグを
スタックにプッシュして,
次の END が来たら自動的にポップするようなのは
ありません.
まだこの書式をこの先も使うかどうか
決めてないんだよねー
- filewriter.h がひとまずできたんで,
メイル書いたり
ぎょーむ日誌書いたり
……
- 今日も右横 5m 離れたところで
お役所文章朗読会は盛会のようである.
官僚にこんな悪癖あったとは大多数の国民の知らぬ
ところだろう.
自己陶酔の度合いとハタ迷惑さ加減において
暴走族やカラオケに良く似ているというべきだろうか.
1730 すぎても
やっかましいんで
さっさと帰りたいんだけど,
某あやしげ編集部が次の校正刷りを送信するってんで
待機状態.
- トイレからの帰路ふと新聞置き場をの棚を見ると,
朝日新聞夕刊の第一面に例の
大江戸線の路線図が.
えーと
……
大門 (浜松町) から新宿は近くなりそうだけど,
秋葉原は近くならない
(どうもこの路線は秋葉原を
ぐるっと迂回するように走ってるみたいだ).
たぶん地下鉄でアキバに行きたければ,
なんか別の路線に乗ればよいのだろうか
……
うーん,
営団の路線図みてもよくわからん.
たぶん浜松町→秋葉原は山手線で
行くのが一番速いんだろう.
- お役所ヨタ話を強制傍聴させられながら
1830 まで待機したけど,
某あやしげ編集部はついにぎょーむ遂行能力の
限界に到達したらしく,
校正刷りなるものを送って来ない.
腹も減ったからかーえろっと.
- 1840 研究所発.
本屋 dan でうろうろ.
1910 東京モノレイル浜松町発.
1950 帰宅.
- 晩飯食ってメイルをダウンロードしようとすると
3 MB のメイル爆弾.
ただちに fetchmail は中止して
どこの莫伽が送りつけてきたのか
調べるべくメイルサーヴァーにログイン.
東大の某気象学研究室の某阿呆 (知らない人物) が
地球フロンティアの構成員と準構成員と
私みたいなちんぴらまで全員に
NOAA 関連の巨大 pdf ファイルを
何も考えずに転送したものと判明.
つまり virus でもなければ
悪意の攻撃でもなく,
単に思慮の足りないマヌケがあちこちに
迷惑をかけまくってということだ.
お役所文書朗読や老人性感情失禁電話に興じている連中同様
こういう畜生はもはや処置無し更正不可能なので
早め早めに天寿をまっとうしてくれるよう
祈るばかりである.
- とりあえず呪われ filewriter.h で
ストリーム継承できたんで,
ココロ静かにライブラリーの構成全体を
再検討し,
コード手直しの方針を検討する.
- 今日の食卓
- 朝 (0720):
米 0.5 合.
昨晩の野菜炒めの残り.
- 昼 (1215):
弁当.
米 0.9 合.
昨晩の野菜炒めの残り.
- 晩 (2030):
米 0.5 合.
雑炊.
野菜炒めの残りに
キャベツと高野豆腐を追加.
2000 年 12 月 13 日 (水)
- 0700 起床.
6 時間ぐらい寝たかなあ.
眠いけどだいぶ回復感あり.
- 朝飯・弁当の準備.
朝飯.
コーヒー.
シャワー.
眠い.
- 0750 自宅発.
晴れ.
0810 東京モノレイル流通センター発.
今日も西の方に富士山がよく見える.
浜松町の気温 6 ℃.
0830 研究所着.
- 朝の静かなひとときを活用して,
三次元開空度ライブラリーの
りすとら作業に着手する.
今回の眼目は
「視線が何かにぶつかったときの処理」
を行う権限をライブラリー側から剥奪し
ライブラリーを利用するコード
(小川シミュレイターとか PipeTree など)
で行うような改造である.
- するとライブラリー側に残された機能は
三次元空間内のモノの位置を
「検索」しやすいように登録しておき,
「視点」と「視線方向」が指定されたときに,
「視線」上に何かあるのかないのか,
だけを返答するようなコトだけになる.
- こういう改造によって,
lib_evision の中の
(もと Gridlight → Voxelight という名前だった)
Voxelmap クラスは
汎用性のある
「三次元空間内のモノの位置特定装置」
として機能しうるのである.
ますます多くの
アルゴリズムに応用できるようになる.
- かかる単純化を可能にする技術は,
ここでもやはりまた継承 (inheritance)
である.
ライブラリー側では無能というか
無機能な「三次元空間内のモノ」クラスを
準備しておき,
利用側はそれを継承して「葉群」「幹」「地面」
といった具象的な派生クラスを生成し,
そのポインターを「登録」しておくのである.
いやいや,
上述したような物理的実体と
対応がつくモノばかりでなく,
もっと抽象的なかんぢの派生クラスを三次元空間内に
「登録」したっていい.
ああ,
自由度が増えそう.
開空度計算以外にも使えるかも.
- とはいえ,
複雑にからみあってる関数群の中から
特定の機能だけ削除するのはちとホネである.
- いつものごとく周囲がやかましくなってきた
こともあって,
ちょっと ghostscript を作り直して
気分転換.
新ドライヴァー
gdevlips-2.4.0
入れて rpm パッケイジ化しなおしてみる.
これで自宅プリンターから
うまく Postscript → Ghostscript な
印刷が可能になるだろうか.
再構築してインストールやり直してみたけど,
帰宅してみないことには検証しようがない.
- 正午すぎ.
腹も減ったんで昼飯の弁当食う.
- NTT も xDSL 接続業に本格参入か
……
ネット新聞記事の表現は
例によって
「米国や韓国に比べて ADSL の普及が遅れて」
云々なる表現.
しかし,
その元凶は NTT ってのは,
まぁそれはそうでしょう.
臆測というか妄想なんだけど
NTT 内部で
保守本流 ISDN 派 対 革新 ADSL 派の激烈な抗争があって
(このふたつの方式は共存できないのである),
「外圧」とやらを利用した
ADSL 派が勝利しちゃったんではなかろーか
……
- ところで私が ADSL を申し込んでる
東京めたりっく通信からはその後は
連絡途絶状態だな.
夜逃げの準備でもしてるんだろうか.
- 昼飯食ってメイル書いてから,
ライブラリー手直し作業を続行.
思ったより難しい.
開空度計算機構が
何というか他の部分と癒着してしまっているのである.
これを切り離さなければならない.
- とりあえず一番下っぱの部分においては
分離に成功
……
したるように見える.
ここで離散三次元空間内に配置される
「何か」
(具体的なモノかもしれないし,
抽象的なコトかもしれない)
を表現するクラス Vit というのを新たに導入する.
小川シミュレイターや PipeTree といった
ライブラリー利用者は Vit を継承した
派生クラスを作り,
自分の好きなようにカスタマイズしてしまうのである.
- 1630 某あやしげ編集部から最終の校正ゲラ届く.
いろいろと直して
1710 送り返す.
いやはや,
まだあちこちに間違いだの
わかりにくい表現があって,
わが間抜けさに嫌気がさす.
- 帰りぎわに Dennis さんと X 端末ソフトウェア問題について
確認したら,
それから 30 分ほど Server や画像処理ソフトウェア
導入で話してしまった.
1820 研究所発.
1838 東京モノレイル浜松町発.
1910 帰宅.
- 晩飯食ってから満腹状態のときに,
「この部屋寒いなぁ」
と布団にもぐりこんで本を読んでいると,
そのまま寝てしまった.
- で,
起きたのが 23 時すぎ.
メイル確認
……
うーむ,
最尤推定プログラム mlfitting モルモットを
やってもらっている浦口さんが
ついにデータ読みこみ部の姑息ないんちきに
気づかれたようだ.
- 愚かなごまかしの代償を支払うべく,
その部分のコードの改良に取り組む.
汎用データ型 Unival クラスを持ちこむことで,
それほどコード量を増やさないで
問題を解決することができた.
いやぁ,
しかし,
この mlfitting の設計って
ホントつぎはぎだらけというか
……
- 修正部分の C++ コードだけをメイルで
有能かつ利他的な
モルモットである浦口さん・宮本さんに送り,
ftp サーヴァーのものは tgz ごと交換する.
- 東京の住宅は寒い,
と結論してあきらめてセラミックファンヒーター出す.
窓とかちゃんと二重にしてくれたらいいのに.
どうせ外は排ガスと騒音うずまく第一京浜 (国道 15 号)
なんで,
断熱 (夏でも) と防音のために二重窓になってると
助かるんだが.
- さてさて,
早く寝るべきなんだろうが
……
すでに 3 時間も寝てしまったんであまり眠くない.
ああ,
また時差が
……
[無線玉ほーむぽじしょん]
写真撮影のため左手で持つ (では
昨日の写真は?).私は筆記も箸も
完全に左利きなのにポインティン
グディヴァイスは両方で使える
(なぜか右のほうがやや良い).
- 今日の食卓
- 朝 (0720):
米 0.5 合.
キャベツとニンジンのクリームシチュー.
- 昼 (1215):
弁当.
米 0.8 合.
キャベツとニンジンのクリームシチュー.
無理やり弁当箱につめる.
- 晩 (1930):
米 0.6 合.
キャベツとニンジンのクリームシチュー
流用した雑炊.
2000 年 12 月 14 日 (木)
- 0720 起床.
4 時間ぐらい寝た.
うう風邪気味.
ノドの痛みはおさまったけど
頭がふらふら.
- 朝飯・弁当の準備.
朝飯.
洗濯機動かす.
コーヒー.
ここまで.
- 0755 自宅発.
曇天.
0819 東京モノレイル流通センター発.
浜松町の気温 5 ℃.
0835 研究所着.
- 着いても具合がよくなるわけでもなく,
ネット上の XFree86 関係の文章などあさってみたりする.
無線玉ことワイヤレストラックボール
の Emulate3Buttons がうまく機能しないためである.
- 不具合といえば
……
昨日 ghostscript を作り直していた
「自宅レイザープリンター問題」
だけど
解像度を 600x600 から 300x300 に
直すとうまく印刷できるようになってしまった.
わけわからん Ghostscript
……
しかも
pdf ファイルを Ghostscript で
Postscript ファイルに変換する作業は
まだダメなんですよね.
うーん.
- 最尤推定プログラム mlfitting に関する
クレイムがどんどん届く.
最新版のモルモットをやっていただいてる
人たちばかりでなく,
今年の 2 月末版をつかって
あろうことか博士論文を書いておられる
牧さんからも
……
- 使用マニュアル書かなかった手抜きの代償を
いま支払っているかんぢ.
- ちくしょう頭痛いのに,
朝から周りが騒がしいな.
傍若無人な連中め.
- mlfitting 対策一通り終了.
X & 無線玉問題については,
/usr/X11R6/lib/X11/app-defaults その他に
あるリソースを解読したり改造することで,
「まん中ボタン無い問題」
に対応できるとわかった
(2 ボタン同時押しワザも使えないのである).
たとえば VineLinux の
KTerm に関して言えば
Select した領域を貼りつけるには
Ctrl+Alt+y でも OK というふうに
最初から設定されている
(y は yank ですね).
これは便利かも.
- はっと気づいて,
小川シミュレイター 10 月版を退避させる.
今月中に小川ペイジを更新しなければならんなぁ,
と思い出したので.
さっさと CVS 体制に移行すべきか.
- 昼飯食うとますます頭ふらふら.
熱でもあるんじゃなかろーか.
平熱より少しだけ高いような気がする.
人間の神経系ってのは神経質だなぁ
……
意味不明.
- 北大の
かとー先生
が gnumeric (E*cel もどき) の
ヴァージョンのパッケイジを更新されてるんで,
インストールしようとすると
……
例によって多量の gnome 関係のライブラリー更新も
要求されてしまう.
現在のふらふらへっぽこ状態では
そんな根性もないんで
今日のところは挫折.
また今度.
- お役所仕事って文章のやりとりだから
メイルとの親和性悪くないと思うんだけど,
どうして連中は電話ばかりかけているんだろうか.
うるさいし情報伝達効率悪いし
3 分 10 円づつふんだくられてるのに
(市外にもよくかけてるからその電話料金たるや
……).
メイルに対して
宗教上の禁忌か何かあるんだろうか.
- 新「無能」クラス Vit を取り入れて
抽象化をめざしている voxelmap クラスの
コンパイルテスト.
あちゃー,
なんかぼろぼろだな.
昨日からすでにボケてたんだろうか.
1415 ひとまず voxelmap.o ができる.
- 一番下っぱの voxelmap クラスが何とか抽象化
できたんで,
次は中間管理職の Evision クラス
の改造に着手しなければならない.
こいつもまた汎用性を考えたほうが
いいんだろな.
ただし,
別の下っ端である eye クラスの中に
開空度計算に専門化したやつを作ることにしよう.
- ちょっと逡巡したあげく,
Evision クラスをテンプレイト化
Evision<EyeType>
としてみる.
STL を使うようになって以来,
template 予約語を自分で使うことなかったんで
ちょっと混乱する.
- それと連動して,
Eye クラスを「種分化」.
これは基底となる Eye クラスから派生させた
EyeOfr だとか EyePipeTree といった
特殊化した「目」を生成.
- なぜ一方はテンプレイト化し,
他方は継承するのか?
教科書的に言うなら,
Evision<EyeType> は EyeType によって
振舞いが変わらないのに,
Eye は種類によって振舞いが変わるからである.
- おおっと,
地形要素を扱う特別な voxeltopo クラスを
忘れていた.
Vit から派生した VitTopo を定義して
……
ああ,
しかし弱まりつつアタマでは
継承に関する正しい文法が思い出せない.
あ,
すぐ下で同じように書いてあるじゃないか.
これを写せば.
あれあれ,
どこにいった
……
1555 ようやくコンパイラー通った.
- 1600 lib_evision 全体がコンパイルできた.
しかし,
開空度の計算権限は剥奪しちゃったし,
中核的な中間管理職的な Evision は
テンプレイトクラス化しちゃったし
……
これからまだまだ試練はつづきそうである.
といいつつ,
一休み.
粉末レモネイドを湯に溶かして飲む.
えーと,
一杯あたり 500mg
……
ホントにヴィタミン C の
補給になってるんだろうか.
- 1730 ハナ水たらしつつ,
テンプレイト化した Evision の
コンパイルに成功.
Evision クラスを呼び出す
試験コードを作ったのである.
また Evision を作るのに必要な
Eye 派生クラスも
純粋仮想関数 (って変な用語があるんですよね)
だけからなる基底クラス Eye から作ってみた.
- 周囲はあいかわらずやかましい.
ヨワってきたことだしさっさと帰ろう.
撤収準備.
りもーとしんく rsync で
ThinkPad と BookPC の間で
同期をとって
……
- 1740 研究所発.
1753 東京モノレイル浜松町発.
1835 帰宅.
ふう.
- 晩飯食って Effective C++ を読んでるうちに寝てしまう.
4 時間ほど熟睡.
0100 起床.
かなり体調は回復.
しかしまた時差が生じる予感.
- 今日の食卓
- 朝 (0740):
米 0.5 合.
クリームシチュー残り.
牛乳を追加して再加熱.
- 昼 (1220):
弁当.
米 0.8 合.
クリームシチュー残り.
- 晩 (1850):
米 0.5 合.
ネギ・切り干しダイコン・ワカメ・昆布の雑炊.
2000 年 12 月 15 日 (金)
- 0803 起床.
こりゃあ遅刻だな.
急いでもしょうがない.
寝てるあいだにだいぶ汗をかいたせいか
熱は下がったかんじだ.
- 朝飯・弁当の準備.
朝飯.
ここ数日の
無精髭が伸びてきたんで
ひげそり.
- 0827 自宅発.
晴れ.
回復してるはずなんだが
20 分の行程が長く感じられる.
少しまたふらふら感あり.
0846 東京モノレイル流通センター発.
浜松町の気温 7 ℃.
0903 研究所着.
すでにばてばて.
- 今日はコーディングの続ける前に,
Effective C++
を読み直して
今までの部分に問題なかったかどうか点検する.
これは
呪われ言語 C++ の暗黒世界を旅する指針となりうる
数少ない一冊なのである.
- 2 時間ほどかけていろいろな項目を点検してみたが,
いまのところ特にマズいことはやってないようだ.
ただし
「継承した非仮想関数を再定義してはならない」
という注意点に関しては
もう一度コードを見直したほうがよさそうだ.
あ,
仮想デストラクターも入れるべきなんだろうか
(あとで判明したことには -Wall オプション付けて
コンパイルすると,
仮想関数あるのに仮想デストラクター無い場合は
警告が発せられる).
多重継承みたいな奇怪なワザは今回も使ってないし
……
- Effective C++ の第 6 章
「継承とオブジェクト設計」
の最後にまとめられている項目の主題だけを
写してみよう.
- 共通の基底クラスは共通の特徴を意味する.
- public 継承には「その一種である」
という意味がある.
- private 継承には「それを実装手段とする」
という意味がある.
- 層を重ねることの意味は
「それを持っている」か
「それを実装手段とする」
である.
- 純粋仮想関数には
関数のインターフェイスだけが継承される
という意味がある.
- 一般仮想関数には
関数のインターフェイスと
デフォルトの実装が継承される
という意味がある.
- 非仮想関数には
その関数のインターフェイスと
強制的な実装が継承される
という意味がある.
……
なるほど.
継承に関してはこれらの原則に
まずは留意しておけばよいのであろう.
- 今日も周囲は莫伽話でやかましいが,
当方の体力は回復しつつあるし
あまり悩むところのないコーディング問題に
集中して取り組むことができているんで,
まぁ,
無視しながらしのげる.
浜松町独房群で研究するには
心身の修練を要求されるのである.
- 作業の場所を lib_evision ライブラリーから
小川シミュレイターのほうに
移していく.
ここに小川用に特殊化された「目」
EyeOfr を構築しなければならない.
インターフェイスの調整.
まだ手をつけていない PipeTree も念頭に.
- 昼飯の弁当食いつつ,
いつものごとくネット上をふらふら.
ZDNet の PCWeek は更新されなくなった,
と思い込んでたんだけど,
これは
eWEEK
というオンライン雑誌として続いていた.
技術系の未読コラムがたまっているなぁ
……
と同時にいくつもウィンドウ開いたら
Netscape Navigator (standalone)
がいきなり落ちた.
ZDNet のペイジはリソースを浪費してる,
というか,
ともかく Netscape の負担になっている.
- どうでもいいんだが,
日本の計算機系のオンライン雑誌の
コラムは概して貧弱である.
いやいや,
素晴しいのもあるけど,
全体に薄っぺらというか.
なんか新製品のモノ紹介に偏りすぎてんだよなぁ
……
スタパ斎藤
師なんかも
それに縛られてしまって
損をしてるんではなかろーか.
- 新しくなった lib_evision と小川シミュレイターの間の
調整.
ちょっと難しい.
どの程度まで利用者 (シミュレイター側) の
負担とすべきか.
- ついでに
……
新規開発と
解説原稿執筆のため一時的に癒着させていた
小川シミュレイター (2000 年版) と
mlfitting を切り離す.
今後は最尤推定プログラム mlfitting は
完全な独立性を
維持しつづけるであろう
(でないと面倒だ).
どうしても別の系に組み込まねばならんなら,
ライブラリー化するつもりだ.
- 甲山さんから文字化けメイル届く.
EUC でエンコード・コード指定なし,
という救済の余地無いオキテ破りを
やっておられるからである.
おかげで北大・地環研→地球フロンティアという
メイル配送経路では
8-bit コードが通らないと判明した.
- 1610 よーやくにして,
小川シミュレイターに専用化しちゃった
Eye 派生クラス EyeOfr のお試しコンパイルが
通った.
これは単に呼び出しや継承関係など
インターフェイスの整合性が
とれたというだけにすぎない.
- EyeOfr クラスに移管した
TraceGaze 関数すなわち「視線」の
追跡についてはまだである.
あ,
小川用の三次元配置モノである
Vit 派生の VitOfr を作らんといかんな.
こいつでは「視線」があたったときに,
どう処理するか定義してやって
……
- 小川シミュレイター系を構成する
最上位クラスである Forest が持つことになる,
Foliage だの Trunk という
固有の名前と光処理属性与えられた
VitOfr オブジェクトが生成されるのである.
- 2030 すぎまでかかって,
小川シミュレイターを新ライブラリーに合わせる作業.
インターフェイスはだいたいできたんだけど,
ヘッダーファイルの依存関係がややこしくなって
コンパイラーを通らなくなった.
うーん.
- 2040 研究所発.
2050 東京モノレイル浜松町発.
2130 帰宅.
- まぁ,
改造のほうは何とかなるだろう,
と楽観.
晩飯食った後は図書館に返さねばならない
本たちを読みふける.
- 今日の食卓
- 朝 (0815):
米 0.6 合.
ホウレンソウおひたし.
- 昼 (1210):
弁当.
米 0.7 合.
ホウレンソウおひたし.
- 晩 (2150):
うどん.
100 円ショップで買った
3 袋 100 円のやつである.
2000 年 12 月 16 日 (土)
- 1200 起床.
良く寝た.
体はほぼ復調.
- 風邪完治のためと称して
ごろごろと転がったまま本を読む.
またしても
……
またしても寝たきり週末.
- CVS 伝導師の
長谷川さん
から,
14 日ぎょーむ日誌の CVS が CSV になってる,
との御指摘.
次のアップロードまでに直さなくては.
なお CVS は concurrent version system
(意訳・共同ヴァージョン管理システム)
で,
CSV だと comma separated value
(意訳・コンマ区切りテキストテイブル)
である.
- あの mlfitting で
独立変数の関数である可変分散の確率分布を
最尤推定させるややこしー数値計算に成功した,
とのお知らせを北の匠・牧さんいただく.
うーむ,
プログラム作者の私もオドロキます.
というか,
私の書いたコードは
そこまで厳しい計算に耐えられたのかどうか不安
……
ともあれ,
やはり最尤推定法は今後も普及しそうだから,
mlfitting は抜本的に直さんといかんなぁ
……
- 今日の食卓
- 朝 (1220):
蕎麦.
昨晩と同じく 3 袋 100 円の
……
- 昼 (1710):
米 0.5 合.
ホウレンソウおひたし.
- 晩 (2200):
米 0.7 合.
ネギ・サバぶし・麺ツユ・卵で
卵丼ふうに.
2000 年 12 月 17 日 (日)
- 1230 起床.
うーん,
土日とはいえ
われながら良く眠れるなぁ.
この現象を説明するひとつの仮説は
「Debugging 撹乱修復睡眠説」
で,
今週平日のように
呪われ言語 C++ の複雑なコードの
バグとりをやると
脳内の配線が著しく撹乱されてしまう,
というものである.
なんとならば,
デバッグとは複数のファイルにまたがる長いコードを
頭の中で「実行」すること,
つまり脳に計算機イミュレイションやらせるわけで
……
うん,
なんかウソくさいですね.
- 昨日は一日中部屋から出なかったので
郵便ポストへ.
いつものごとく不動産広告だのふーぞく関係のちらしだの
……
おお,
二ヶ月に一度届く日経新聞.
つまり販促のあれです.
- 昨日の新聞なんて
……
と思いつつ,
びんぼー症ゆえについつい全部読んでしまう.
一面に愛知万博のゆーち決定報.
やあ,
落ちればよかったのにと期待してたのに残念.
全会一致で決まった?
まーた,
ナガノのときみたいに関係者を買収してるんじゃないの.
- 社会面,
海上保安庁が無人ヘリコプター導入検討中.
なるほど,
何日か前の朝モノレイルから見えた
あの無人ヘリはひょっとしたらそのカラミかもしれん,
と意外なところでナゾが解けたような気分.
- 無人機
――
ある程度の自律機構を内蔵した無人機動メカは
けっこう好きなので,
先日の目撃が気になっていたのである.
無人機って楽しいじゃないですか.
たとえば,
ダッシュ (60 年代の対潜ヘリ計画 …… ただし挫折) だの,
Mars Rover (火星をはいまわってたういヤツ) だの,
ポラリス (潜水艦発射弾道ミサイル ……
天体観測の大好きな変な核兵器) だの,
ボイジャー (今ごろどのあたりを飛んでいるんだろ ……)
などなど
……
- いつまでも寝たり本や新聞を読んでばかりもしてられないので,
ThinkPad 上でまだコンパイル通らない
複雑ヘッダーファイル群の再検討
……
しようとしたんだけど,
その前に Linux 上の生活環境を整える作業に
走ってしまう.
/usr/doc の文書などあさってみる.
- man コマンドでオンラインマニュアル見るときに
どうも不便だと思っていたら
……
環境変数 $PAGER を指定してなかった.
$HOME/.bashrc に
export PAGER="/usr/bin/less"
を追加.
source .bashrc
- おっと,
図書館に本を返さなくては
……
私の場合,
ろくな本は借りていなんだけど,
今日返す一冊
「相対論対量子論」
(メンデル = サックス著,講談社ブルーバックス)
は
どの分野の科学者にもおススめである.
面白くてタメになります.
- 大森東図書館で本を返却.
そのまま帰ればよいのに
閉館時間 (日曜日は 17 時) まで
ねばったあげくに,
しょーもなさそうな本を 6 冊借りる.
- しょーもない本など無視すればよさそうなのに,
ついつい読んでしまって
……
ああ,
もう夜中だ.
- なんたる週末.
休日は特に時間利用がへたくそな私.
まぁ,
休めたからいいけど
……
いや,
何か納得できん.
- 今日の食卓
- 朝 (1300):
パンケイキ.
材料は小麦粉・塩・ベイキングパウダー.
焼き上げたら
ハチミツ少々つけて食べる.
コーヒー多量に消費.
- 昼 (1730):
パンケイキ残り.
朝昼あわせて粉 150g ぐらいか?
- 晩 (2100):
米 0.7 合.
これは昨日炊いた残り.
ニンジン・ネギ・切り干しダイコン・ワカメの
雑炊.
昆布だし味噌うす味.
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 合.
煮干炊きこみご飯とホウレンソウおひたしの残り.
キャベツ・ニンジン・サツマイモの味噌汁.
今日のだしはぜいたくに
干しシイタケ・昆布・煮干みっくすちゃー.
だしがらも立派な味噌汁の具である.
2000 年 12 月 19 日 (火)
- 0700 起床.
眠い.
5 時間ぐらい寝た.
- 朝飯・弁当の準備.
朝飯.
コーヒー.
シャワー.
- 0755 自宅発.
曇天.
雨降りそう.
気温は高い.
0812 東京モノレイル流通センター発.
浜松町の気温 9℃.
0825 研究所着.
- 昨日のぎょーむ日誌にヘッダーファイルの
include がどうのこうのと書いてたら,
さっそく
竹中さん
が
計算生態学メイリングリストに
質問メイル投稿.
とりあえず,
状況を簡単に説明した返信.
- C++ ではヘッダーファイルに
クラスのメンバーの宣言を書き,
別のファイルに実装を書く,
ということをよくやる.
で,
いろいろとやりとりしてみてわかったことには,
竹中さんはヘッダーファイルの
include 文は最小限にして,
実装ソースコードファイルのほうに
そこで必要とされるヘッダーだけを include する,
という流儀らしい.
- 私は逆にヘッダーファイルにできるだけ
include を集める発想だった
(そこに情報を集める,というような).
で,
実装コードのファイルに include 置いたほうが
依存関係わかりやすい,
というのももっともなので,
実験的にそういう流儀を試行してみようと考える.
- Canna 辞書の頻度学習がうまくいってないようなので,
メイルのやりとりをしつつ点検してみる.
どうもいろいろとやってみたかんじでは,
/var/lib/canna/dic/canna/dics.dir
に
pub.cbd(pub.mwd) -pub---
pub.cld(pub.mwd) -pub---
とゆーのも入れておくと,
無事に頻度学習辞書を作成
(mkdic -fq 辞書名)
してくれるようである.
Canna は相変わらず謎.
少しずつ解明中なのである.
- 蛇足ながら,
いままで *.cbd のバイナリー辞書でなく,
*.ctd のテキスト辞書を読ませていたので,
起動に時間がかかっていた
……
と判明.
バイナリー辞書なら一瞬で読み込む.
いやはや.
- 午前中はメイルのやりとり・辞書の直しで終わってしまった.
郵便局に行かねばならぬので,
とっとと昼飯の弁当に手をつける.
- 1230 研究所発.
外は晴れ.
途中の ATM で現金を下ろして,
今日は世界貿易センタービル一階にある
郵便局に行ってみる.
- 12 人待ちであったが,
窓口ふたつで素早く回転してるので,
(いつもの大門交叉点の局と比べて)
それほど待たされなかった.
生態学会の会費 11600 円 (うう),
と
昨日とどいた「森の自然史」の代金
2750 円 (税込み) を支払う.
[森の自然史]
「複雑系の生態学」なる奇怪
な副題は編者・甲山さん発案
(ただし採用反対),もう一人
の編者・菊沢さんと出版社の
意向で決まったとのこと.
- 1250 研究所に戻る.
- 申し込んでもいつまでたっても連絡ない
東京めたりっく通信
.
NTT の xDSL 本格参入で
夜逃げでもしたのか,
と同社の web site をのぞいてみると
……
「……
我々と NTT の争点は今回の料金だけではないことを
再度ご理解頂きたいと思います。
その中の最も大きなテーマは、ISDNです。
日本のメタル回線は低速 ISDN のために
著しく汚染されていて、
世界標準の最大8Mbpsの伝送能力のある
ADSL 普及が妨げられるという事実を
どう考えるのでしょうか。
NTT東西が来年ただちに ISDN から
完全撤退するというなら
……」.
おお,
なんかすごいケンカ腰だぞ.
ISDN 汚染,
か.
なるほど.
NTT のフレッツ ADSL とかじゃなくて
めたりっくを選んで正解でしたな.
面白いからもっとやれー
- おっと,
かんじんの手続き遅れについては
……
なにー,
最大 40 営業日かかるぅ?
ぎょーむ能力の限界か.
下手すりゃ二ヶ月待たされるな.
ま,
しょうがないか.
このあたりは NTT でも同様だろう.
行動生態学で言うところの
理想自由分布に
すでに到達しているはずだ.
理想だの自由だのというぎょうぎょうしい
名前とはうらはらに,
この概念はごく単純に,
どの買物客も店員の処理速度に注意を払うならば
スーパーのレジの行列は
どこに並んでもだいたい同じだけ待たされる,
と主張しているだけなんだが.
- 小川シミュレイターのパラメーター推定が
前と一致しなくなってるところがある.
最尤推定プログラム mlfitting を改造した
影響だろうか.
太さ→高さを換算する
アロメトリーのパラメーター推定なんかは
前よりマシなかんじ
(尤度が高い)
だけど,
データ数の多い成長のパラメーター推定は
無茶苦茶だ.
- あまりにもデータにあってないんで,
これはむしろ単純なミスが
どこかに混入しているはず,
と確信できる
……
しかし
その単純なはずのミスが特定できん.
おかしいなぁ.
そう簡単に計算破綻しないはずなんだけど.
- まぁ,
10 月に使ったプログラムはライブラリーも含めて
そっくりそのまま残されてるんで,
いざとなったらそっちと一対一比較していけば
いいんだけど
……
- 結局,
午後一杯かかって失敗が特定できんかった.
まぁ,
そのあいだにシステムの手直しだの
パラメーター推定高速化だのいろいろと
改造はしていったんだが.
- たぶんデータ変換でどこかにずれができたんだろう,
と思いつつ,
今日のところは撤退.
1830 研究所発.
ふらふらと本屋 dan にトラップされる.
1854 東京モノレイル浜松町発.
モノレイル車内で小川用にカスタマイズしてた
mlfitting に何か仕掛けがあったかも,
とも考えてみる.
今使ってるのは汎用のほうだからな.
あとで調べてみようか.
近くの八百屋でホウレンソウ買う.
1940 帰宅.
- 晩飯食ったらいきなり 3 時間ほど
熟睡してしまった.
アタマ壊れてるのか.
- さーて,
夜中に目をさまして
……
どうなるんだろね.
- 今日の食卓
- 朝 (0720):
米 0.6 合.
昨晩の具だくさんの味噌汁の残り.
- 昼 (1205):
弁当.
米 0.8 合.
キャベツ・ニンジン・タマネギの
野菜炒め,
一昨日作った残り.
- 晩 (2000):
米 0.6 合.
昨晩の具だくさんの味噌汁の残り
で雑炊.
2000 年 12 月 20 日 (水)
- 0720 起床.
4 時間ぐらい寝たか.
- 朝飯・弁当の準備.
さーて,
ここで眠気に負けて寝てしまうと
……
30 分後には炭化味噌汁のできあがり.
ちくしょうちくしょう.
味噌汁廃棄処分.
室内ケムリ充満.
換気扇全力運転.
ドア解放.
朝飯.
コーヒー.
- 0815 自宅発.
曇.
0835 東京モノレイル流通センター発.
浜松町の気温 9 ℃.
0852 研究所着.
- Canna の頻度学習辞書は
昨日の設定でうまく動作してくれている
ようである.
やれやれ,
辞書強化 + 頻度辞書によって,
これでマヌケ Canna も,
そうだな VJE-1.0 Delta ぐらいの
「賢さ」には到達したか.
私は単文節変換をもっぱらにしているので,
その程度で良いのである.
もしこのように連文節変換などやらせようものなら,
このように無茶苦茶な変換をやってくれる
間抜けさは相変わらずである
(あれれ?
こういう簡単な文ならうまく変換してしまったぞ).
- うう,
炭化味噌汁のニオイ刺激信号が
嗅覚神経系で解除されん.
- ふたたび小川シミュレイターの
成長パラメーター推定の破綻問題に取り組む.
- うーん,
わからん.
アロメトリー式のパラメーター推定なんかは
前よりマシなのに,
成長式のそれはダメ ?
しかも微妙にダメなのではなく,
まったくあからさまにダメなので,
ホントに単純なミスがあるはずなんだが
……
- 仕事が順調でないと,
周りのやかましさや莫迦話に腹が立つなあ.
- どーやら,
小手先の改造を加えてきた
mlfitting のほうに問題ありそう
……
あらら,
入力データをじゃっくないふ
とゆーかランダム再抽出しても
成長モデルの推定結果かわらん.
ろばすとと言えばろばすと.
しかし,
ダメなままろばすとねすが示されても
……
- ダメ状態に改善ないまま昼飯.
なぜ,
特定の確率論的モデルのもとにおいてのみ
パラメーターがまともに動かなくなるのか,
などと考えつつ弁当を食う.
そんなこと考えても飯がまずくなるばかりである.
というか,
味がわからなくなるだけである.
- いろいろと推定の試行錯誤を続ける.
いやはや,
推定初期値依存性もなければ,
数値微分のきざみ幅にも
Newton-Raphson 法におけるジャンプ幅依存性もない.
まったくもって
すばらしい頑健性.
あと望むらくは,
まともな推定値でその頑健性を
……
- データもちゃんと読み込んでるみたいだし
……
- よーやく尻尾つかんだ.
ちゃんと読み込んでない.
先日,
浦口さんに見抜かれたデータ読み込み部の
手抜き部分をさらに手抜き補修したところに
問題があるようだ.
「運が悪い」と
mlfitting 内部で想定していた
カラムの順番が無茶苦茶になってしまう.
なるほど
これではまともな推定できるはずない.
さて,
どこでこの奇妙な入れ替わりが生じているのか.
- わかった.
STL の map コンテナーの誤用だ.
順番にコンテナーに突っ込んでいったつもりが,
map なんで二分木上に並べられていた.
ところが読みだすほうは,
その構造も無視してイテレイター使って
端から順番に読んでたもんだから
……
何てアタマ悪そうな失敗.
こんなバグが混入してたのに,
よくまぁ今の今まで破綻しなかったもんだ.
そうか
……
ごまかしを糾弾されるまでは
強制 sort をかける便法を使っていたから.
- さーて,
どうしてくれよう,
このバグ
……
- 小手先の小細工には頼らず,
わりとまっとうな方法で直す.
汎用データ型 Unival クラスを使って
通し番号含む一意な key をうち直して,
呼び出すときもその通し番号順に呼び出すようにした.
- 結果のわかっている簡単な
パラメーター推定の試験運転.
よーし.
しかし,
これはバグを直す前でもちゃんと動いていたんだよね.
- 1430 もう一度,
小川毎木データで成長モデルのパラメーター推定.
よし !
以前よりも当てはまりの
よい結果が高速に出てしまった.
わーい.
- 死亡率の推定もできた.
こっちのほうは,
「推定の速さ」⇔「推定の精度」
にちょっとトレイドオフがありそうだな.
ま,
そんなに大した違いじゃないからいいや
(どうせ将来的には推定法も
抜本的に変えてしまうし).
- ……
新規加入率推定もうまくいった.
ということで,
新ライブラリー・新推定プログラムのもとで
小川シミュレイターは以前とほぼ同じように動く,
というところまで「復旧」した.
ちょいと一休み.
ふう.
- さてさて,
効率の悪いところを改善していこうかな.
パラメーター推定はすでに速くなってるから
……
グラフ描き周辺かな.
このあたりは 1999 年版のそれを引きずってる.
その前にまた
mlfitting をちょっと改造してみようか.
そうすればマシになりそうな
気がするんだよね.
- 小川の開空度観測データに関する柴田さんからメイル.
このあたりのモデリング情報を共有するために,
小川森林モデリングのメイリングリスト ofm-ml
を <鳳翔> に構築する.
参加者 8 名の小さな ML である.
- で,
ofm-ml 開業メイルを二通ほど書く.
1830 研究所発.
1854 東京モノレイル浜松町発.
1935 帰宅.
まだ室内に
炭化味噌汁のニオイがただよう.
- 晩飯の準備の前に,
水をはっておいた問題の小鍋を洗う.
炭化味噌汁はべりべりと鍋底から剥離する.
- 晩飯食って一休み.
昨晩みたいにいきなり昏倒しないように
コーヒー飲む.
- 共立出版からの手紙.
えーと,
にゅーばいおふぃじっくすとかいうシリーズの
「数理生態学」(なんでこれが生物物理なんだ)
の中の一章を分担執筆したんで印税くださるとのこと.
はあ,
そりゃどうも.
今回清算部数は 300 冊.
もう売れてないわけね.
あーだーこーだ差し引いたりすると,
6000 円ちょっと頂けるそーで.
一冊あたり 20 円.
妥当な気がする.
しかしこの通知を札幌に送ったり,
お金を福岡銀行なんかに振り込まれても困るんで
(東京には福岡銀行支店とかありそうだな),
共立に手紙を書くことにする.
めんどうめんどう.
- ああ,
新設 ofm-ml の登録にミスが.
bounce に 2 名分も返されてきている.
なんとなんと登録するときに,
メイルアドレスにコンマがついたままだった.
まぬけ.
何とかリカヴァリーにつとめる.
- ofm-ml 3・4 通目を投函.
メイリングリスト起動のための
焚きつけのような
……
いや,
ホントに連絡しなければならぬ事項が
たまっていたんですよ.
- ふう.
失敗したり成功したりまた失敗したり.
なかなかたいへんな一日でした.
- 今日の食卓
- 朝 (0800):
米 0.6 合.
ホウレンソウおひたし.
- 昼 (1215):
弁当.
米 0.8 合.
ホウレンソウおひたし.
- 晩 (2000):
米 0.3 合.
豆腐・ワカメ・切り干しダイコンの雑炊.
だしはサバぶし.
味噌味.