2006-01-01から1年間の記事一覧

旧ソ連の冷蔵庫

1 旧ソ連では冷蔵庫工場の生産性を測る基準として、生産した冷蔵庫の総重量(トン数)が使われていた。そのため、ロシア人は大量の鉄を使い、非常に重たい冷蔵庫を作った。 2 ある冷蔵庫工場に優れた技術者がいた。彼は人民のために軽くて使いやすい冷蔵庫を設…

nPOP メールボックスを Thunderbird に移行する Ruby スクリプト

nPOP はメールサーバのデータ管理に便利な軽量メーラーです。サーバ上から特定のメールを削除したり、メールの先頭だけを取得したりといった比較的低レベルのメール操作に威力を発揮します。 今日は訳あって nPOP でダウンロードしたメールデータをメインメ…

CppUnit テストをプラグイン化

"CppUnit 1.10.2のTestPlugInの作成法について" テスト実行時のカレントフォルダは DLL のロード位置に設定されるらしい。テスト用データの位置を相対パスで書いていたので、これは重要。 CppUnit-1.10.2 の TestPlugInRunner を使っているけど、なぜか setu…

Doxygen とプリプロセッサ

上の話題に関連して、 C/C++ プリプロセッサを Ruby で実装した人がいないか探していたら、こんなページを発見。 Sunday Lab Blog - C マクロとリバースエンジニアリング クラスのメンバメソッドをマクロで宣言すると、 Doxygen なんかで展開したときに解析…

プリプロセッサ代わりに Ruby を使う

後輩からこんな質問を受けました。 「こういうマクロの展開結果を 16 進数で出したいんですけど、簡単な方法ありませんか?」 (EVENT_DEF.h) #define ID_MODULE1 8 #define PRIORITY 2 #define EVENT_A_CHANGE_STATE ((2<<24)+( 0<<16)+(ID_MODULE1<<8)+PRIO…