なんかいそがしいよー

朝、考え事をしていたら電車を乗り過ごして、新宿まで行ってしまった。
でも、なんとか夜には、木曜金曜の授業の準備が終わった。めでたい。
今週はいろいろ詰まってて、毎日電車のなかで作業したいくらいなので、土曜まで自転車はムリだなー。
とりあえず今日はすこし早めに寝るか。

1t爆弾

不発弾の話のつづき。
よく考えると、すぐ近所に爆弾が埋まってるわけで (撤去は今月末あたり?)、どれくらいのものなのか気になったので、いろいろ調べてみた。うちは、撤去のときに避難対象地域になるかどうか微妙、という程度には離れていますが。
FM西東京の、西東京市での1t不発弾撤去作業の記事
空襲体験者の方の blog の記事
防空に関する資料をまとめたページ
などをみつけた。まとめると、1t 爆弾の場合、
– 爆発したときにできる穴は直径 20m くらい
– 80m 圏内 (直径?) は木造家屋が倒壊
– 150m 圏内 (直径?) は破片などにより即死
– 500m 圏内 (直径?) は死傷
– 不発でも、10m くらい地面にめり込む
– そもそも工場などの軍事施設を狙うものなので、田んぼとか普通の地面に落ちても爆発しないことが多い?
ということだ。1t = 2000lb で、それくらいの爆弾はいまどきの戦争では当然のように使うわけで、まったくもって恐ろしいことです。いろいろな政治的事情があるにしても、市民を殺傷することが正義とは思えないしね。
模擬原爆 (10,000lb 爆弾) の投下に関する記事 というのも見つけた。広島・長崎に原爆を投下するのに先立って、同一形状・同一重量の通常爆薬からなる爆弾で実地の投弾を行った、というもの。
歴史は語り継がれなければらならないね。

Lupicia Bon Marche

代官山の、いつも紅茶を買うお店 (Lupicia) にいったらLupicia Bon Marche というのに変わっていた。去年の新茶とか、シーズンが終わっちゃった季節ものとかを、値引きして売ったりするお店。4000円くらい買ってしまった。
でも、ふつうの商品はおいてないし、研究室にレギュラーで置いてるのは渋谷店にはないから、自由が丘とかで行かなきゃダメかな。駅から遠いんだよね…

不発弾その後

市役所から状況を報告する広報が回ってきた。
自衛隊の人が信管を保護して爆発しないようにした状況で、撤去はまだだそうだ。
で、B-29 が墜落したときに残された 1t 爆弾だとのこと。
1t ってすごいな。爆弾じゃなくても、そんな重さのものが投下されたら、と考えるとぞっとする。
B-29 の最大ペイロードは、5t か 9t か、そこいらだそうなので、つまり、数としては一桁しか積めないくらい大型なわけだ。
炸薬は TNT なのかしらん。
ちょっと調べていたら、搭乗員リストなどの資料 を見つけた。
なんか、こう、名前を見せられると、戦争の現実を突きつけられる感じがして、やりきれません。

今日の自転車

睡眠不足だったが、なんだかすげえ調子よかった。出勤とはいえ、土曜なので手ぶらであり、ジャージのポケットに携帯電話と身分証と、若干のお金をつっこんで激走。
大学までの往復で、平均は 28km/h か 29km/h くらい出ていた模様。メーターが不調で、記録が消えてしまったんだけど。往路は、登戸から Anchor RCS に乗ったけっこう速い人に引いてもらったり、こちらが引いたり。復路の多摩川はずっと 52×17 回して、35km/h くらい。綱島街道や世田谷通りでは 52×15 をずがーっと回して、ここ最近ない勢い。
もうちょっと調子を上げたら、山にもいかないとね。
自転車は最高に気持ちいいが、やっぱり疲れるし、おなかが空く。ま、それがいいんだけど。
odo 4533.1km

今日の自転車

往路は向かい風で、けっこう苦戦。26.1km/h.
復路は一度環八まで上がって、世田谷通り経由で帰る。
38.02km @ 27.1km/h (1h24m01s) odo 4492.8km
まあまあかな。
ボトルの飲み口が壊れてしまって、ガムテープで補修して帰る。
それでも漏れるので、フレームがだいぶ汚れてしまった。洗車しないとなー。

Qgrey

SPAM 対策で QGrey というのを入れた。greylisting を行う qgreylist に、ドメイン名ベースの selective SMTP relay というのを組み合わせた方式。
人手で作られたブラックリストや NG word list とか、機械学習系のアルゴリズムを使わないので、その手のフィルタよりも安心な感じ。qmail にパッチ当てなくてもいいしね。
satoiku.comの記事 を参考にさせていただきました。
SPAM 激減しました。最高です。

「桜は、散る日がくるまでは雨が降っても、何があっても絶対に散らないんですよ」というのは、去年の桜のころに、信州飯田の和菓子屋さん「赤門や」のおかみさんから教わったこと。
昨日今日は、冷たい雨が降った。
だけど、桜は散らず。
まだしばらくもつかな。
体調が万全ではないので、明日は自転車を自粛。でも、写真を撮ろう。
明後日まで咲いていてくれるといいな。
桜吹雪の中を駆け抜ける瞬間、というのは、日本のサイクリストなら誰もが心踊るひととき。

Windowsとstat()と僕

GMVというのを
ずっと作っている。普段の開発環境は Mac だが、GTK+ を使っており、いちおう
cross platform ということになっていて、各種 Unix (X11) で動くのはもちろん
のこと、いちおう Windows でも動くことになっている。
で、バイナリ配布もやっており、研究室にある僕の iMac でスクリプトを実行すると、
– ソース
– Mac 用の Universal な application bundle (gmv.app)
– Windows 用のバイナリ (gmv.exe)
を生成するようになっている。Windows 向けのビルドには MinGW を使っており、
iMac には MinGW のライブラリと MinGW な gcc のクロスコンパイラがインストール
してある。
しかし、いくら MinGW を使っているといっても、Windows との互換性を維持する
のはけっこう大変で、Mac や FreeBSD できっちり動くプログラムが MinGW な環境でもコンパイルがちゃんと通ったからといって、動くとは限らないのだ。
幸いにして、GMV を使ってくださっている方々の大半 (というか、全員) はMac および Unix 陣営なので、これが問題になることは普段はないのだが、自分の大学の、4月の学生実験だけは別だ。なにしろ、数十人の学生がいっせいにWindows で GMV を使う。これは、ものすごく怖い。
去年は、Windows なテスト環境を PentiumM な ThinkPad T42 しか持っておらず、SMP な環境でたまに落ちるバグ、というので苦しんだ。最近の計算機はみんなPentium4 Hyperthreading をはじめとして、CoreDuo や Core2Duo なわけで、純粋に uniprocessor な環境、というのはほとんどない。で、このときはMinGW なコンパイラを gcc-3.4 から gcc-4.0 にアップデートすることで解決した。
今年はどうかというと、1月にかなり Windows でデバッグをしたので、完璧に動くとタカをくくっていた。まったく甘かった。
Windows native な開発環境は、Cygwin と NTEmacs がメインで、コンパイラやライブラリはやはり MinGW だ。Cygwin はまあ、そこそこ便利なのだが、Windows には fork() がないのが原因なのか、とにかくプロセスが起動するまでがものすごく遅い。したがって、細かいソースファイルをたくさんコンパイルしたりだとか、そういう作業がとてもしんどい上に、MinGW なライブラリを使っていることが関係するのかどうかわからないが、gdb の出力は概ね意味不明であり、stack backtrace なんかはほとんど役に立たないといってよいレベル。したがって、Mac とかそのほかの Unix で完璧に動くようにしておいてからじゃないと、Windows で作業するのは非常にきつい。
今回のバグはなんだったかというと、ファイルのタイムスタンプを調べるのに使っていた stat() の挙動が怪しい、というものだった。thread safe になっていないとか、そういうことが原因なのかなんだかは結局わからずじまいだが、stat() それ自体は成功するものの、そこから数行を実行する間にプログラムがクラッシュするのだ。結局のところ、GLib にある g_stat() を使うことで解決した。この関数は、結果を返す構造体も OS 依存な struct stat のままだし、実際のところ中では何をしているのか見ていないんだけど、g_stat() にしたらあっけなく動くようになった。はー。
まあでも、デバッグの途中で別のバグをみつけて、直すことができたのでそれはそれでいいとしよう。
つらい二日間だった…