憂鬱な午後のひととき


10月30日_
知らなんだ. VC++のデバッガのwatchで@err,hrとするとWin32APIのエラーが日本語で表示されるんや.
10月28日_
フィルタ内部でrcファイルをうまく読み込めないのでメニューが開けないっぽい. よく分からないのでCreateWindowでしこしこ作る. きっ汚い... ああもう2時だ.
10月26日_
・昨日は天気がよかったな. 夕焼けもきれいだった.
・数日前から胃の辺りがどうも痛い. もしかしてストレス?
・↓結局ごちゃごちゃマクロで考えるより関数にしたほうが素直だったりして.
10月25日_
せんむのつっこみ:
>#define GetBfromA(ptr) ((ptr) == (A*)0, (B*)(ptr))
>のほうがシンプルだと思う.
そうですね. あの後私もカンマ演算子の利用は思いつきました. GetBfromA(pa)->bもできしよいですね.
>#define GetBfromA(ptr) ((A)*(ptr), (B*)(ptr))
>これなら間違った場合エラーになってくれるんじゃないかな?
なるほどうまい. ただこちらはbccだといけるのにVC++/.NETだとエラーになっちゃった.
A a; a = (A)a; というコードが通らない.
10月24日_
C(C++不可)で
struct {
    int a;
} A;
struct {
    int a;
    int b;
} B;
という構造体が2つあって, 本当はBなんだけどAしか外には見せたくない. このときに
#define GetBfromA(ptr) ((B *)ptr)
というマクロを使って A* から B* を取得してたのだけどそういうのが増えてくると間違えそう.
#define GetBfromA(ptr) ((B *)(ptr + sizeof(ptr == (A*)0) - sizeof(1)))
ってすると ptr の型が A* でないとき警告が出るのでよいかなと思った. 確実にエラーになってくれるやり方ってないかな.
10月23日_
.NETには __if_exists(symbol) とか __if_not_exists(symbol) とかいった怪しい(?)構文が拡張されてるんだ. ふうん, どういう風に使うんだろう. ...眠くてしょぼい頭で考えてもたいして思いつかなかった. こんなのかなあ:
struct R {
    R(double x = 0) : x_(x) {}
    double x_;
};

struct C {
    C(double x = 0, double y = 0) : x_(x), y_(y) {}
    double x_, y_;
};

template<typename T>
class N : public T {
public:
    __if_exists(T::y_) {
        N<T>(double x = 0, double y = 0) : T(x, y) {}
    }
    __if_not_exists(T::y_) {
        N<T>(double x = 0) : T(x) {}
    }
    N<T>& operator*=(double a) {
        x_ *= a;
        __if_exists(T::y_) {
            y_ *= a;
        }
        return *this;
    }
    ...
};
    ...
    N<R> a = 2;
    N<C> b(3, 5);
    a *= 3;
    b *= 10;
    ...
10月22日_
・いつもより早く家を出たのでゆっくり歩いてたら, 電車が目の前で出発してしまい, (その駅からの本数は少ないので)隣の駅までダッシュするはめに. 早起きは30分の損.
・復活したHC, 水晶を交換して外部クロックを70MHzからもともとの60MHzに落とす. 長持ちして欲しいなと.
10月21日_
う~ん, フィルタの中でうまくダイアログを開けない. 眠いのでもう寝る.
10月19日_
・もらったHBのふたを開ける.
マザーボードの裏でやたらと線がひっぱりまわされているのだけどこれはなんだろう. ビデオカードにもオーバークロックの跡が. HCのボードの入れ替え作業をしていたらコンデンサーがぽろりと落ちてきた. 動かなくなったのはこいつのせいか. 何年ぶりかで半田ごてを握る. ほこりも掃除機で吸い取ってさっぱりした. 今のところ快調.
・ついでにAthlonマシンのメンテも.
でもこちらはHDDが完全に壊れみたいなので諦めてDVD/CD-R/ビデオカードをP4マシンに移動する.
・というわけでコーディングは全然やってません. すいません.
10月18日_
車で京都の某氏んちに行ってHBだけでなく, 知る人ぞ知る幻のP90カードを頂く. 感激.
10月17日_
・少し先輩の盛大なる送別会. 50人も集まったのはやはり人望か. うらやましいな.
・帰りの電車の中でフィルタプログラミング.
レジストリにエントリを追加したのに何故呼ばれないんだ~と思っていたら, メリット値をMERIT_DO_NOT_USEにしていたせいだった. ようやくmedia player再生時に自前の暗号解除フィルタを挟める.
10月16日_
・「あり得ない、は、ある、に勝てる?」
『スキップ』(北村薫)から. 引用の仕方を間違ってる気がするけどそれを実感した一日だった.
VIA Eden N-Processor
秘密鍵暗号専用命令搭載x86互換CPUなんてあるんや. 凄いな.
10月15日_
・こないだ入れたAcrobat Reader 6は重いので削除する. 代わりに昔のHDDからReader 4を取り出しインストール.
・ICC7.1の1年間バージョンアップ更新料2万4千円. これぐらいなら許容範囲だけどMSDNの約10万円は更新する気にならない.
・『コッペリア』(加納朋子)
今までの作風と雰囲気が違う表紙だなあと思ったら中身もお友達になりたくない人がぞろぞろ. 叙述トリックの答えは途中である程度予想できた. 終盤の展開が凝り過ぎてまどろっこしい.
10月14日_
・くぅ~, まさかそんなに株価があがるとは思わなかった. 売るのが早かった. 80万ほど違ってる...
・家でフィルタプログラミング. 当初の目標ラインよりさげてとりあえず出来る範囲で. 今週中にはなんとか.
10月13日_
・家にたまってたMSDNの整理. こんなけだっけなあと思ってたら, 洋服ダンスの上にどどんと乗っているのを発見. あちゃ.
・知人にTOWNSもらいにいく予定だったのだけど雨で延期. 残念.
10月12日_
・directShowフィルタ作ってて, フィルタ周りのレジストリを壊すという大ポカ. multimedia playerでMPEGを見ることが出来ない. WMPとかdirectX SDKを再インストールしたけど駄目. grapheditで見るとフィルタ項目が一切なくなっていたので手動で.axや.dllを登録しまくったら復活した. 不安だけどシステム再インストールは嫌なのでこのままでいく.
・キーバインドを左小指を酷使する形にしているので長時間タイプすると痛くなる. レイアウトを見直したほうがいいかも.
10月11日_
『桂米朝コレクション八 美味礼讃』(桂米朝)
「テレスコ」や「ためし酒」ってとぼけていて好きだなあ. 落語を本で読んで面白いのかと疑問に思ってたけど意外と声の調子やしぐさが頭に浮かんで楽しい.
10月8日_
・ACアダプタが壊れた旧VAIOノート, 起動しないTOWNSに続きAthlonマシンも撃沈. 電源を入れるとカラコロカラコロ音がする. そもそもBIOS画面が出ないよう.
・いざという時のために(?)トレーニングルームで階段昇りの練習. 20分で150階相当. かなりきつい.
10月5日_
↓コンパイラの挙動がなんやようわからん. 途中に printf をはさむと最適化が阻害されて正しく動くようになるし. 結局別の方法で回避することに.
10月4日_
short から long long への変換時におけるコンパイラのバグに悩む. int から long long は大丈夫なので short a; int b = a; long long c = b; としたけど 最適化(?)されて状況変わらず. さてどう対応しようか.
# short から int への変換でバグってた別のコンパイラに比べたらましだけど.
10月2日_
『手紙』を読み終わる. 「殺人犯の弟」というレッテルがいつまでもつきまとう主人公. 読後感はずっしりくる. ラスト, 声を出せなかった弟は自分の意思を貫き通せるのだろうか.
10月1日_
・帰りの電車で『手紙』(東野圭吾)を読んでいたら, 最寄り駅を乗り過ごしてしまった. 戻り電車は30分後まで無かったので歩いて帰る. 荷物が重い.
・新しいVAIOノート
更に重くなったのはともかく, 無線LAN内蔵じゃないのにPCカードスロットが一つしかないのは痛すぎる.
9月
御意見は光成滋生<herumi@nifty.com>までお願いします