某日記

(前期)

平成19年4月1日(日曜日)

vfprintf

本当は 3 日のつもりだったのだけど日付間違えたのでそのまま。

vfprintf(3) - あのあたりも本当はプラグインにでもしてスイッチ可能にすべきなんですよねえ。シングルバイト locale で wchar_t 使うのはいろいろと無駄なので。 regex(3) も。

平成19年4月3日(火曜日)

今日

帰ってきたよ。

平成19年4月4日(水曜日)

昨日

日記の日付間違えた。

Doxygen とドキュメントの翻訳

Doxygen でうまいこと翻訳ドキュメントを用意する方法はないもんだろうか。 gettext みたいにソースからコメント部を抽出したりマージしたりするようなツールを作ればいいんだろうが、しかし繁雑だ。抽出した後の処理も少々面倒な気がする。

たとえば次のような foo.h があったとする:


これを別ファイルに次のような形で抽出する: 

次のように翻訳する: 

これで元の foo.h からコメント部を取り除いたもの(そうしないとバッティングしちゃう)と cat して doxygen にかければよい。 

しかし、こんなツールを作るのは結構面倒臭そうなことがわかる。ソースから関数プロトタイプやら構造体名やらを拾ってきて埋め込まないといけないんだもん。おそらく Doxygen のソースを流用するのが一番楽なんだろうけれど。

新たにツールを作らずに何とかしたいなら、最初っから @fn やらなんやらを使って別ファイルにドキュメントを書く、というのが現実解のひとつではありそうだけれども、それはそれで原語におけるドキュメント付けが繁雑になるわな。そもそもそういうやり方するなら、最初っから Doxygen みたいな形のツールではなく「ソースからドキュメント付けが必要な要素を抽出し、それに対する雛型をくっつけて出力してくれるツール」を用意した方が便利な気がする。

こういうことをしたい人とか、こういうことを既にやってる人って誰かいないのかしら。

平成19年4月5日(木曜日)

昨日の査収物

ガッチャガチャ(7) / 橘 裕

お兄ちゃんと一緒(7) / 時計野はり

ペンギン革命(5) / 筑波 さくら

めっちゃキャン(3) / 九十九 森, 国広 あづさ

かるた(1) / 竹下 けんじろう

今日の査収物

からっと!(1) / 渡辺 祥智 を買い忘れてることに気づいたので探したが、何故か割と売り切れてる。発売日から一週間で売り切れるような人じゃないはずなのに(←失礼)、解せない。よっぽど部数が少ないのかな。私としては、彼女がマックガーデンに移った第一作であるところの「その向こうの向こう側」に対してあまり良い評価を下してないので、珍しく私の評価と世間の評価が一致した(=売れなかった→見込み部数減らされた)のかもしれぬ。結局神保町の新宿書店で拾った。

ふんじゃかじゃん / 天広直人

もずく、ウォーキング!(2) / 施川 ユウキ - 1 巻買い忘れた。

逆転裁判(1) / 前川 かずお

平成19年4月6日(金曜日)

昨日

ossfj 花見。

今日

DS lite手に入れた。

ソフトは何を買うかのう。とりあえず、どきど……じゃなくて 4/12 の逆転裁判4かな。

秋葉で世界樹の迷宮買ってきた。

平成19年4月8日(日曜日)

土曜日

地獄の 18 きっぷ消化 4 連チャン初日。安いから近場を日帰り× 4 で。月火は出金前に。土曜は館林フラワーパークに桜と芝桜を見に行った。

どう考えても田園都市線から久喜行きにでも乗って半蔵門線通っていった方が楽なんだけど、あえて新川崎から湘南新宿ラインで久喜に出て、東武線に乗り換えて茂林寺前で降りた。

んで芝桜とか野鳥の森とか見学した。野鳥方面は、しかし桜が満開の時というのは花が大好きなヒヨさんばっかりが目立ってしまってつまらん。まわりは葦原なのでウグイスの声もたくさん聞こえるけれど、葦とか笹とかの薮に潜んで滅多に出てこないのがウグイスという鳥の特徴なので以下略。ヒヨさんもウグイスさんもうちの近くに住んでるし。

茂林寺前駅に戻って東武線で北上。伊勢崎から両毛線→東北線で上野に戻った。

日曜日

微妙に寝坊したので投票してから出かけた。

新川崎から横須賀・総武線で千葉に出て、そこから成田線で銚子に出た。やっぱり成田線は佐原までが異様に遠い。

15 分くらいの間合いで総武本線に乗って佐倉に戻り、快速エアポートで成田空港。成田新幹線の遺構に登っていくところが実にシュールだ。

折り返し列車で成田に戻って安孫子支線で安孫子。予定より一本早い常磐線緩行線で新松戸。

武蔵野線のダイヤが乱れていて、さらに予定より一本早い東京行き快速が 6 分延だったので乗れた。もともとこの列車は西船橋で長停車する予定だったようで、西船橋は定時発車に。市川塩浜で降りて西船に戻ったら、本来乗れないはずの南船橋行きが 10 分延でやってきたので奇跡の乗り継ぎ。20 分に一本しかないのでこれはありがたい。

本当なら西船→南船→塩浜→西船→船橋と乗って帰ろうと思っていたのだけれども、だいぶ時間が繰り上がったのでついでに京葉線も潰すことに。乗り残しが海浜幕張以東なので、この機会を逃すとモチベーションが出にくい。

蘇我まで出たら、ちょうど良い具合に総武線直通の久里浜行きが来た。品川で東海道に乗り換えて川崎経由で帰った。

これで房総方面は東金線だけ残った。

ところで、西船→南船は列車が沢山あるのに逆はほとんどないんだが、ここの運用って一体どうなってるんだろう。

平成19年4月9日(月曜日)

今日

川崎→伊東→大船→桜木町→橋本→京王多摩川→神保町→春日で出勤。

伊東までの片道だけで 1800 円くらいになるので以下略。

キナ臭いコード

X11R6.9 から抜粋:


これは単に「キナ臭いコード」という物の実例であって、実害があるのかどうかは知らね。 

X の中はこんなコードばっかりだ。もう X なんて捨てた方がいいと思うよ。

いま R7.2 のコードを見たら修正してあった。 R7.1 では直ってない。私がこれを見付けたのは大分前なのだが、今ごろになって引っ張り出してきた理由についてはお察しください。

でもあの修正ってまだ微妙に駄目じゃね? Xalloc() 成功した時に remain の整数オーバーフローでリクエストバッファの読み込みが以下略。典型的な LP32 だと 1G バイト、典型的な LP64 だと 2G バイトの Xalloc() が成功するとヤバい。前者は割と失敗しそうだけど後者は分からんね。とりあえず UINT32_MAX じゃなくて INT32_MAX にすれば OK だけど、なんかモグラ叩きだよなこれ。

こういうのは、値の大小関係と符号を要所要所でチェックするようなコードを書いた方が良さそう。 remain は元の値より増えてたらマズいんだから while 回す前に元の値と比較しておきなさい。 Xalloc の引数は nglyphs より小さかったらマズいんだから、 UINT32_MAX みたいなマジックコードと比較しないで計算結果を nglyphs と比較しなさい。まあオーバーフローした時の挙動はプラットフォーム依存だからこれが正しいとも限らんのだけど。

平成19年4月10日(火曜日)

今日

武蔵溝ノ口→立川→青梅→奥多摩→青梅→拝島→武蔵五日市→拝島→御茶ノ水

山岳路線を 201 系で登る違和感は中央本線以上だ。奥多摩駅の 2F の蕎麦屋がうまかった。