2004年1月31日(土)

firewall

OpenBSD で pf を使うべくルールを書く。
なんだかよく分からんがとりあえず動いてるようなので良し。

いやホントは良くなくて udp で開けてるポートに icmp が来てはねられてる感じ。やっぱりなんだか良く分からん。 icmp_types ってなになにあるんだろ?

ウィルスメールの仕組み

コンピュータウィルスは HDD 内からサルベージしたメールアドレスを使って自分をあちこちに送ったりしますが、折角だからと差出し人もそうやって取得したアドレスにして経路を偽装するくらいはします。

なんで、出してもいないウィルスメールの感染源と疑われることくらいはあるのですが…。

第11管区海上保安本部(那覇)は30日、何者かが同本部海上環境課のメールアドレスを使い、新型コンピューターウイルスMyDoom(マイドゥーム)を発信した可能性があると発表した。

何者かが、ってウィルスに罪は問えませんよ?

load average

だいたい AFS の運用のめどが付いたので弄っていた計算機を表のネットに出すべく IP address の申請を。

で、その日の内に使っていいよんということになったんだが、外に出してみるとなんでか load average が常時1なんですけど…。 top で見ると process 的には 100% idle なんだがなぁ。 HUB の LED はのべつ幕無し明滅しているし、ゴミパケットが沢山キタだけでこうなるかな?

ちなみに、 OpenBSD-current + PentiumII 400MHz。一緒に外に出した FreeBSD の方は何も問題なし。

どうでもいいけど、 fragmented なパケットって来るものなのね。初めて見たわ

xxxxxxx-afs1# ipfw show
00100 486204 72129390 allow ip from any to any via lo0
00200      0        0 deny ip from any to 127.0.0.0/8
00300      0        0 deny ip from 127.0.0.0/8 to any
00400 249862 67727426 allow tcp from any to any established
00500    481   652496 allow ip from any to any frag

2004年1月30日(金)

玲瓏たる呪文の響き

Mike Oldfield の Incantations の、女性ボーカルで何やら唱ってるところの歌詞カードを発見。

仕事の調子のいい時は頭の中で鳴り響いてます。

http://www.lyricstime.com/lyrics/25117.html
http://www.lyricstime.com/lyrics/25118.html

今日の afs (6)

FreeBSD 5.2R で arla0.36pre33 の build に成功。
configure を通すにはこのメールの diffCFLAGS=-DHAVE_OPENSSL が必要
後者が判らなくて長いこと悩んだ。よく読むと ML で既出の罠。
しかし、 kernel module として動作する --enable-nnpfs と NFS に export する --enable-knfs を同時に指定すると compile error となる(実際は型不一致の warnning だが -Werror つき)。

startup script を実行したら何事もなく /afs/ が見えてますよっ。
しかし承認のための kalog はどこ?


答え:OpenAFS の klog(1) を使う(o_ _)o

snapshot on UFS2

ports をインストールしたらクラッシュするという嫌な目に遭う。
ついでに、 bg fsck じゃ修復しきらなくて reboot のループ。
結局、インストール先のパーティションで snapshot を撮っていて、それを削除したら無事書き込めるようになった。やっぱバギーだな。

2004年1月28日(水)

今日の afs (5)

afs server にできる OpenBSD 箱はディスクも遅ければ CPU も遅い。そもそもディスク容量はないし、こいつが afs を読めたってこの上では何も仕事をする気になれない。一方ディスクも余っていれば dual CPU で CPU パワーの余っている FreeBSD 箱で afs が読めないとなんのための afs 導入だか判らなくなる。なんとか afs が読めないものかと考えていたが afsd を立ち上げたマシンで /afs を NFS export することができるとドキュメントに書いてあるのを発見。これで FreeBSD 箱で afs 上のファイルにアクセスできるかと期待したが……

OpenAFS の afsd は nfs での export が未実装だったよ、しょぼーん。

2004年1月26日(月)

今日の afs (4)

OpenBSD で動かしている openafs-1.3 は至極快調でこいつでサーバを立ち上げてこいつの afsd および MacOSX w/ openafs-1.2 から書き込んでも落ちることがないので、いろいろと構築開始。
しかしボリューム作ってマウントして acl 設定してとちまちまと面倒というのは否めない。
それにこいつのディスクさすがに遅いんだよな…。遅い上にうるさい。

2004年1月25日(日)

街まで

IDE ケーブルを買いに街まで。

バスの時間を勘違いしていて、またしても1分遅れくらいで乗り過ごしてしまう。しょうがないってんですき屋でメシ喰って、45分後の次のバス(間隔が短い時間帯で良かった(?!))を待っていると3分おくれできやがる。ひょっとして前のも待ってれば来たのか?

とりあえずパーツ屋を物色。うむ、さすがに IDE ケーブルはあるな。他に何かあるかと探して 5&quod; ベイに取り付ける引き出し発見!。儂、これ好きなのよね〜〜(^^;;;;;;。 CD 仕舞う用のパネルの付いたのなら持っていて、全く役に立たないこともよく知っているが購入決定(爆)。

折角なので他の電気屋も巡る。うむ、キーボードぐらいかおうかと思ったがよく考えたら日本語キーボードだとよく打ち間違えるんで駄目だ。そーいや STL の本を買おうと思っていたんだっけとかつぶやきながら本屋へも。むぅ、前来た時は置いていたと思うんだが影も形もないですよ…。かわりに gnu make なんて買ってみたり。英語の info ならあるんで別にいらないっちゃーいらないんだがね。数値計算の本を見つけたので執筆者への祝儀になるかとこれも購入。実は今日一番の掘り出し物は素人向けのレンズの本。前の職場で optical device をごにょごにょやっていたのでレンズのことを知っておきたいと思っていたのだ。

ちなみに、一番下のオライリーの make 本は学生の時の知人が研究室に残していった私物を接収したもの(殴)。

040130-0050.jpg

今日の AFS

OpenAFS-1.3.52 を OpenBSD-current (3.4 より後)で compile 。
ちまちまと構築していくと……、 afsd が無事起動して umount /afs ができるところまで確認v(^^)v
uname 的にはまだ 3.4 なのに sysname は i386_obsd35 じゃないと compile できないのが気になるが、これでなんとか運用テストできそうな…。

でもこいつの HDD 無茶苦茶遅いわ。何年前のディスクだろう?使い回し使い回しでずっと来てるんだろうなぁ。

しかし、それにしても OpenBSD の csh は使いにくいな。エスケープで補完中にファイル名のスラッシュがコマンドラインの冒頭に来るという懐かしい挙動に遭遇。あー使いにくい。(root で作業すな)

2004年1月24日(土)

買い物

同僚から強奪した IDE ケーブルだが、買って返して置こうと思って近所のK’s某へ。
案の定というべきかないでやんの。かわりに小さな ether の hub を見かけて気に入ったので用もなく購入。 AC アダプターすげーちっちぇーよ。ついでに、お出かけ袋に入れとく用の ehter cable も。
豚鼻は、やはり同僚から1個強奪したのでその分を買ったんだが、ちょいといい形をしている。返してやるには惜しいな。

写真は、携帯のカメラで撮って自分にメールして取り出してから MT で再アップロード(ばき

040124-2202-2.jpg

2004年1月23日(金)

再起動

FreeBSD で OpenAFS を動かす企てにいささか手詰りを感じて、ならば他の OS ではどんな手応えだろうと横道にそれてみるテスト。

学生の時使っていて、今は動かしていない計算機がまだ一つあって、たしか OpenBSD だったはず、と立ち上げてみると NetBSD な罠。
うーむと頭をひねったが、 OpenBSD box な方は今 FreeBSD box になっていて、 OpenBSD だった時の HDD は外されて机の引き出しに入っているんだった。

折角なのでどんなファイルが残っているか点検。こいつは運んでもらった時に壊れかけてたディスクにトドメを刺してしまって取っておいたファイルは全部消滅してしまっていたんだった。

用済なので scsi board ごと HDD 外して OpenBSD 環境の IDE HDD と交換。で、はたと見渡すと IDE ケーブルがない罠。いやホントにないんだまいったね。しょうがないので渋る同僚のところから強奪。起動させてとりあえずファイルのチェック何ぞをすると…、むぅ、こいつは学生の時ゴミファイルの投棄場所に使ってた奴ですよ。なんだかよくわからねーファイルがいっぱい残ってる(笑)。これは貴重だ。97%位まで不要だろうけどな。さらに rsyncd で backup server をやらせていたらしく、学生時代の計算機のバックアップがかなり残っている。過日沈黙してしまった Pen Pro な旧環境のバックアップもありますよ。 irc のログまではないけどなっ。

その辺わさわさとサルベージして、折角なので OpenBSD 3.4 のクリーンインストール。 src と ports の cvs update して make build。

作業中に気が付いたけど、 src tree に入っている afs って arla だったんだな。ついでに arla が cache manager すなわち client の実装だと気付く。サーバまでは含まれてないのか。残念。

safari

少しでも表示面積の大きいものをと mozilla に変えて safari を使うことにして、苦労して bookmark などを整備して、 safari から movable type に書き込んでいたら、ポストした部分だけ iso-2022-jp になってやがんの。こいつじゃ日記書けんってことか?

なんか時間を無駄にした気分。

safari は履歴の「前に戻る」が1個ずつしか進めないのが不満。 mozilla だとがさっと一気に戻れるんだがなー。

2004年1月22日(木)

今日の afs (3)

rc.shutdown(8) に bos shutdown ほげほげと書いて umount /vicepa してから init が afsd にシグナル投げるようにして、なんとかシャットダウンの時にボリュームを守ることには成功。

しかし相変わらず afsd を立ち上げちゃうと /afs は umount できないし、 afs 上で rm -rf すると kernel panic で死ぬ。ついでに、 df 的には

Filesystem  1K-blocks     Used    Avail Capacity  Mounted on
/dev/ad4s3a    507630    93082   373938    20%    /
devfs               1        1        0   100%    /dev
(略)
/dev/ad4s1d  20301670       30 18677508     0%    /vicepa
AFS          16000000        0 16000000     0%    

とマウントポイントが見えなかったりなんだか怪しい。

気分転換に MacOSX を client にして afs を見にいくと一見何事もなくアクセスできて Mac のがわから FreeBSD 上にボリュームを作ってマウントしてというあたりまではなんの問題もない。 df でもちゃんと /afs にマウントされてると見える。ただし、 /afs/cell_name/afs_system_name/usr/afsws なんてのを作りにいって、どうも文字列長の上限に引っかかったようだった。なんかこの辺に落とし穴があるかも。
その後、 Mac で作った /afs のディレクトリを FreeBSD から見にいくと見えなかったり Mac でも /afs が umount できなかったりごにょごにょやってるうちに freeze したりでスタック。

OpenAFS の開発版がいかんのか、それともやはり FreeBSD 上で動かすのがいかんのか…。

2004年1月21日(水)

afsd umount 問題(回避編)

いいこと、もとい悪いこと思い付いた。

afsd のシャットダウンができなくて shutdown(8) がコンプリートしないから /vicepa がクリーンにならないんで、afsd が動いてるのも構わず afs のサーバ側プロセスを先に落として /vicepa を umount してしまってから afsd で刺さるも構わず reboot する、というのはどうだろう(笑)。とりあえずボリュームは無事だ。
問題はそこまで手順を踏めないまま reboot せざるを得なかった時だが…。

今日の afs (2)

afsd がどうやってもちゃんと終了しない。
マニュアルには daemon process を終了させたかったら umount /afs しろと書いてあるが、なにやらをつかみっぱなしで reboot -> /vicepa が unclean で newfs のコンボ。

問題を整理してみる。 OpenAFS-1.3.52 を FreeBSD 5.2R で compile する。
配布物をそのまま利用する場合、 src/config/param.i386_fbsd.52.h の AFS_KALLOC の類いをコメントアウトして 51.h から定義を移植する。 tviced/fileserver がインストールされるので viced/fileserver で置き換える。この場合、 afsd を起動すると kernel debugger に落ちて reboot する。
Wollman のパッチを強引に当てた場合、 src/volser/vos.c にパッチが当たり損ねるので修正。 src/libafs/MakefileProto.FBSD.in で config(8) したカーネルソースを参照するので適宜修正。この場合、 afsd は正常に動作するが、唯一 unmount だけができずボリュームストレージをクリーンにアンマウントしてのリブートができない。

今日の afs

注意深く quick beginning guide どおりに作業してゆくとちゃんとボリュームを作れて、 /afs にマウントできて、ファイルも無事コピーできた。

なかなか面白い。ボリュームを作って、マウントして acl を弄ってボリュームをリリース、マウントした側でボリュームのチェックって流れなのね。

でも、ドキュメントをがががっと一気に cp -Rp したらコネクションがはずれて、復帰しても別のボリュームの中身が見えてるような…。よせばいいのにそこでえいやっと rm -rf して kernel panic。そして fsck できずにボリューム喪失(-人-)

背中だるー

背伸びするとめきめきいって、力入れた拍子に骨でも折れたらかっこわるいなってくらい。

で、気が付いたことがある。儂は机でノートパソコン使っているんだが、どうも視線がディスプレイ下端に集中しがちで、そこへ意識を集中させようとして頭を突き出すようにして低く下げ、低い位置から覗き込んでいて背中に負担がかかるようだ。
では何故画面下端を覗き込んでいることが多いかと考えれば、モニタの上の方はメニューバーやウィンドウのタイトルバー、もろもろのボタン類で自動的に埋まってアプリケーションで使うエリアが下半分へ偏っていること。文章は横書きで上から下へ続くから作業を続けるうちに下端に追いやられがちなことなどが考えられる。

なのでたとえば、コマンドラインシェルを使うならならば最新行が上端にあって下に行くほど古くなるターミナルエミュレータとかあると嬉しい気がする。そんな機能のあるターミナルないか探してみよう。
ウィンドウのタイトルバーが横に付くくらいなら enlightenment のテーマにありそうだ。
あとは mozilla で toolbar やタブが全部横配置になってくれるとか…ないよな。

2004年1月20日(火)

wiki

wiki で遊びたくて、 ports でインストールしやすそうなのを、と探してみて twiki ってのをインストールしたんだが、日本語が通らないとかいう噂。
機能面では pukiwiki ってのが充実してて面白そうなので twiki は抜いてこっちをインストール。 ports にはないので野良なんだが、こいつが php で動くので、まずは php のインストールから。

php が何種類あるのか知らないが、 www/mod_php4 で mbstring ありにしろといわれたので従っておく。なに?デフォでマークされてる mysql はいらないんですかそうですか。

httpd.conf に loadmodule は追加されるのに AddType は追加されないとか、 AllowOverride Indexes して DirectoryIndex とか細々。

2004年1月19日(月)

afs (2)

afsd が起動するところまで到達。

キモは、某所で公開されたパッチ。
ただし、2か所ほど修正が必要。

問題は、 afs のストレージ /vicepa には fsck をかけるわけに行かないのに、この FreeBSD 箱は何故かちゃんと reboot しきらなくて、最後までファイル6個ばかしつかんで reset されるのを待って、 boot してきてから properly dismounted って言い張って mount させてくれない点だ。
仕方ないので newfs。するってーとなにか、こいつで afs の運用を始めたら reboot するまえにストレージの backup を取っておいて起動/fsck/書き戻しとかやるのか?

/afs に mount できた記念にファイル作って遊んでいたらぐっさり刺さった。昔良く nfs で刺さってたけどあんな感じ。

訂正: afsd を起動するまえならば無事 reboot できて /vicepa も mount できることを確認。

PenPro

出身研究室に放置していった儂の計算機がとうとう逝ってしまったようだ。

新潟はこの時期雷が多くて電圧変動でよく勝手に reset がかかっていたが、ついに boot しようとしてコケるところまで行ったらしい。
PC-AT なので電源復旧すれば勝手に起動するだろうと停電の時さえ放置していたので、いつかは壊れる使い方だったのだが…。
Pentium Pro (dual) + FreeBSD 3-stable という構成だったので今さらどう使うというのには確かに悩む。

ああ、 irc のここ5年分くらいのログが…(ステロ

2004年1月17日(土)

OpenAFS

気が着くと OpenAFS の 1.2.11 と 1.3.52 が release されていた。
とりあえず FreeBSD 5.2R, 4-stable, MacOSX 10.2.8 で build。

contributor のリストに Apple が載っていたり 1.2.11 のバイナリに MacOSX 10.3 用のがあったりするが、儂の環境は 10.2.8 のままだったり。

openafs 1.2.11 & macosx, freebsd 4-stable の組み合わせでは kldload, kextload に成功するところまで行ったんだが、 openafs 1.3.52 & FreeBSD 5.2R では kldload: can't load libafs.ko: No such file or directory だったり。

存在しない関数を叩いている箇所を発見。 config ファイルが古いんだな。

--- src/config/param.i386_fbsd_52.h.orig        Wed Oct  1 23:04:34 2003
+++ src/config/param.i386_fbsd_52.h     Sun Jan 18 03:42:11 2004
@@ -90,10 +90,14 @@
 #define        AFS_UIOUSER     UIO_USERSPACE
 #define        AFS_CLBYTES     CLBYTES
 #define        osi_GetTime(x)  microtime(x)
+#define AFS_KALLOC(x)   malloc(x, M_AFS, M_WAITOK)
+#define AFS_KFREE(x,y)  free(x,M_AFS)
+/*
 #define AFS_KALLOC(x)   osi_fbsd_alloc((x), 1)
 #undef AFS_KALLOC_NOSLEEP
 #define        AFS_KALLOC_NOSLEEP(x) osi_fbsd_alloc((x), 0)
 #define AFS_KFREE(x,y)  osi_fbsd_free((x))
+*/
 #define        v_count         v_usecount
 #define v_vfsp         v_mount
 #define vfs_bsize      mnt_stat.f_bsize

FreeBSD (3)

とりあえず安定動作まで持っていった。

といっても、相変わらず snapshot を取っている処へ書き込むと死ぬので snapshot は暫定的に停止。

関連する gnats を探してみたが これぐらいかのぅ?

他は全体に好調で smp が改善されたのか gcc のバージョンアップが効いているのか、コンパイルさせてると心なし前より軽快。

FreeBSD (2)

新規領域にクリーンインストールしたのは、前環境でよくファイル周りで刺さっていたのが気持ち悪かったからというのもある。

で、あれこれ作業しているとやはり刺さる。 reboot しようとすると刺さって reset かからない。ソースを展開して configure かけてると kterm が真っ白になっている。挙げ句の果てには boot してきて background fsck しているのを放置しているとそのまま reset 。 reboot しようとすると reset かからないのになんで勝手に reset かけて自殺してるねんっ。

bg fsck 中に login するとどうも具合が悪いという感じはしていたが、どうも bg fsck だけではちゃんと復旧できないようで bg fsck で放っておくと無限リセットにハマるが single user で fsck -y するとその後は安定している。でも shutdown -r すると最後に刺さるので次の boot は bg fsck から(o_ _)o

しかし、前環境もそうだけどファイル周りで腐るのは /home だけなのよね。
今回も ~/tmp/ で configure していると刺さるし。一方 ports なんかは結構 upgrade しているのでアーカイブの伸長・ファイル書き込みは結構やっていてそっちでは刺さった記憶が特にない。
/home は UFS2 で snapshot を取っているのでそれが原因かもと snapshot 対象外のパーティションで configure してみるとちゃんと最後まで刺さらずに行って build も通る。

うーん、秘孔でもあるんかな?
前環境でも最初は snapshot が不調だが結局は snapshot ありで運用できているんだが…。

2004年1月16日(金)

FreeBSD

ひさびさに、インストールフロッピーから作って ftp install。
gcc のバージョンあがる記念ということで手を付けずに残していた HDD の後ろ半分にクリーンインストールして、データは tar で引っ越し。新旧 2OS 分も mount すると無駄に df の出力が長くてめまい。
boot loader がちゃんと入れ替わって daemon の絵が出るようになった。ふむ、 snapshot 用に自動で .snap ってディレクトリ作られるようになったのね。

根付け

朝、出かけようと身支度をしていると、携帯のストラップに付けていた漆の根付けがなくなっているのを発見。これで引っ掛けて携帯をベルトに吊るしているんだが、昨日帰りのバスの中で無理に引っ張って取り出した時にでもちぎれたか。もう一つ、ガラスの四角い根付けも使っていたのだが、これは携帯を新しくしたら塗装を激しく剥がしてくれたので外しているし、かわりのを何か探さないとな

2004年1月15日(木)

powerbook

重い powerbook 鞄に詰めて二日も背負って歩き回っていたら腰にきましたよ……。
肉体に厳しい計算機だ。

2004年1月14日(水)

バンケット

ただメシ喰うため東京ドームホテルまで。
高いホテルだけあって最後まで食い物がなくならなかったのはさすが。
帰りは南北線。根拠レスで方角のアタリを付けて適当に歩いて駅を見つけられたのは我ながらさすがだが(ぇ、本駒込に着いたところで乗り過ごしてるじゃんっと我に返った辺りはやはり疲れてるんだろうか?
でも構わず歩いて一駅戻ってホテルまで帰還。

ネットワークカード

今日も今日とてセッション中に powerbook 広げて AirH" 挿してメール読んでたら(バキ)、後ろから外人に覗き込まれてここ AirMac の電波入るのとか聴かれる。このカード、携帯電話 including なのねんとか教えてやるとどこの会社ーとかどこで買ったのーとかしつこい。土産に買って帰ってもお前の国じゃ使えんつーの。

国際会議二日目

へろへろでだるだるだ。
なんかもう聴いちゃいない。座ってただけ。
英語って聞こえてくると意味を取ろうと神経を集中させるのかえらく疲労するな。

2004年1月13日(火)

オフ会

セッション中に powerbook 広げて AirH" 挿して、 irc で(マテ)ノーティスして、晩飯の段取りをつける。

大江戸線で某所まで出て、 ysjj, y-gawa, SvRn, leihcrev でだらだらとメシ。

大江戸線は車両が狭くて面白い。馬車の幅とかいう奴だろうか。

東大

所用で朝から東大まで。
上野に着くと雨が本降りで、しょうがないからコンビニで千円もする傘を買ったらすぐにはれる罠。つーか、上野から坂もあって思ったより遠かった。タクれば良かったか。

キャピラリーレンズだとかスーパーミラーだとかフレネルレンズだとか、マニアックでたまに聴くには面白い話を3本も4本もまとめて聴いてるともうお腹いっぱいって感じでぐったり。

2004年1月9日(金)

afs & stow

とりあえず build が成功した MacOSX 10.2.8 と FreeBSD 4-stable でインストールしてみる。
今回から野良ビルドしたものについては stow を使うことにして、それでインストールしてみる。

既に溜まっている分については必要に応じて stow で置き換えると言うことで。

とか考えてると早速、いつぞやインストールした coda とコンフリクトしたので find で -mtime 直指定で削除して少し整理。あとでかいのは TeX かなぁ?

2004年1月8日(木)

afs

突発的に、個人的に自分が利用する計算機の回りに afs なシステムを貼ってやれと決意して一日潰す。

afs の実装と言えば IBM のもとへいったオリジナルの他に OpenAFS, arla, coda とあるわけだが coda で手詰りだったのは記憶に新しい。一方 arla は supported platform に {Free, Net, Open}BSD, MacOSX と並べていて頼もしい。

ってんで arla を FreeBSD 4-stable, 5.1release, MacOSX 10.2.8 で build しようとしてハマる。こいつの configure は FreeBSD の kerberos を検知しないぞ。 Mailling list の投稿を見ると別に /usr/heimdal とか作ってる様子。うーむ、 requirement はちゃんと書いておけって感じ。

結局半日潰して諦めて OpenAFS を試してみると、こっちは configure で sysname を明示してやらないといけない(配布物に入っているヴァージョンには合うものがないので --with-afs-sysname=ppc_darwin_60 等とした)他は問題なく、FreeBSD 4-stable, MacOSX 10.2.8 で compile 成功。 5-current は /usr/src/sys/sys/buf.h 読んだところでスタック。

しかしこの後どうするかね

ちなみに、決意にいたった経緯だが、最近利用可能な計算機は増えて来たんだが、あっちにはコンパイラがないこっちには CPU power がない、ファイルを渡そうと思えば彼のアカウントはそっちにはない、 X がないから ssh -f -X kterm できない、絵を書いても gv で見れない、アーキテクチャは揃っているのに全部に個別に lam なんてインストールする気にならない、今一回やりたいだけの計算のためにあの巨大なファイルを転送してなんかいられない、と何かやろうとするたびに邪魔されて、結局何の不自由もなく使えるのは自分のノートだけかゴルァ、こいつで1日仕事の数値計算やってろってのかってんで AFS で共有されてればって話につながる。

2004年1月7日(水)

コメント

パパからメールで突っ込みが来たのでコメントにしてさらし者にしてみるテスト。

自分でコメントする瞬間だけ設定いじってコメントありにして、書き終わるとコメントなしに戻す卑怯な俺。

2004年1月6日(火)

g++ のバグ?

昔書いたコードからパクって来た std::set に insert するコード。

なんでか3重のループの中だと segmentation fault になる。1段ループの外に出すとオッケー。
なんじゃそりゃ、元のコードだと3重ループの中で何の問題もなく insert できてたではないかと文句を言う相手もいないのでコンパイラを IBM の xlC に変えてコンパイルしてみるとちゃんと動く罠。

その後、調べ直してみたら g++ だとセグフォでいきなり死ぬかわりに無限ループかなにかするようになっていた……。
なんだかよく分からんから gcc 使わんことにして解決(ぇ

2004年1月5日(月)

最小点探索

例によって gsl だが、1変数の minimization をやらせてみたら、これが探索範囲の上限下限の他に候補値を入れてやらないといけない。
ところがこれが、たとえば上限下限が a, b で候補値が c とすると、 f(c) が f(a), f(b) の両方より小さくないと気に入らないようで困る。たとえば最小値がレンジの中には確かにあるんだがレンジ境界ギリギリにあったりすると、何も考えずに候補値として (a+b)/2 なんかを突っ込むと f(a) < f(c) < f(b) とかなってくれてあっさりハネられる。
全域嘗めて候補値を探してもいいんだが、そこまでやるくらいならそのついでに最低点を発見できそうだし。っていうか、ライブラリの側でやれ。

で、1番の問題は、こうして候補値が不適当だった時、セットする関数が返り値で notice するのではなく、あっさりライブラリの中でエラーを吐いて abort してくれやがる点だ。

なんでエラーになるのかと二日くらい悩んで debug して、こういうことだということがやっと判ってドキュメント見ると確かに

The value of the function at x must be less than the value of the function at the ends of the interval

とか書いてある…。うーむ、ライブラリの仕様の話だったのか。騙された気分でいっぱいだ。

2004年1月4日(日)

Uターン

つくばへ戻る間際に先日買い逃した時計をヨドバシででも探して、土産を買って丸善でなにやら…とスケジュールを立てるが、時計を探している間に時間切れ。いまいちソソるものがなかったが、妥協して安めのを買って駅まで走る。
マトモな方の土産は支倉焼きでいいとして、嫌がらせ用の九重が見つからなくて焦る(マテ。駅には売店出してなかったかと新幹線の時間を気にしながらもしつこく探してショーウィンドウの隅にこそっと売っているところを発見。

店員:柚子味しかないけどいいですか?
俺:どうせ呑むのは他人だから大丈夫(ばき

とか間抜け問答の末購入するとラスト一個だったような。俺のいたずら目的のために買えなくなってしまった人が出ていたら申し訳ないなぁ。

またホームまで走って車内清掃中の列に並ぶ。その後重い荷物背負ったままずいぶん待たされた気もするが、無事座れて車中でこれ書いていたり。福島で連結している間にでもアップロードするか。

[referer: [an error occurred while processing this directive]]

« 2003年12月 | Main | 2004年02月 »

2007年12月 2007年11月 2007年10月 2007年09月 2007年08月 2007年07月 2007年06月 2007年05月 2007年04月 2007年03月 2007年02月 2007年01月 2006年12月 2006年11月 2006年10月 2006年09月 2006年08月 2006年07月 2006年06月 2006年05月 2006年04月 2006年03月 2006年02月 2006年01月 2005年12月 2005年11月 2005年10月 2005年09月 2005年08月 2005年07月 2005年06月 2005年05月 2005年04月 2005年03月 2005年02月 2005年01月 2004年12月 2004年11月 2004年10月 2004年09月 2004年08月 2004年07月 2004年06月 2004年05月 2004年04月 2004年03月 2004年02月 2004年01月 2003年12月 2003年11月 2003年10月 2003年09月 2003年08月 2003年07月 2003年06月