空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

return throw 問題

今日ハマったC++の落とし穴。次のコードの出力結果を予想してください。 #include <iostream> #include <exception> using namespace std; static void assertZero(int i) { if (i == 0) return // // I'm sure it is not a zero!! // throw exception("Not a zero"); } int main(</exception></iostream>…

一時オブジェクトの寿命

C++

先輩にバグじゃないの?と指摘されたコード。 class MyString { public: MyString(); MyString(const std::string& s); : }; extern const std::string& GetName(int idx); int main() { for (int i = 0; i < N; ++i) { const MyString& s = GetName(i); // …

VC++のunordered_set/unordered_mapが遅い件

C++

正確に言うと、insertが同種のset/mapに比べて圧倒的に遅い。最近、メモリの節約のために辞書的なオブジェクトを作成して、同値のオブジェクト(例えば文字列)を再利用するようなコードを書いたところ、unordered_set/unordered_mapで思うような性能が得ら…

再帰呼び出しをループに置き換える

半年に一度くらい、古いコードで使っている再帰呼び出しが原因でスタックオーバーフローになるという不具合が発見され、その都度ループで書き直す修正を入れている。再帰呼び出しをループに展開する方法は、「幅優先探索」や「深さ優先探索」というキーワー…

COMについて

自分用のメモ。幾度となくCOMの仕様を振り返って、使えるものが無いか探してしまう自分への戒め。C++のプロジェクトで、パフォーマンスに妥協をせず、かつコンパイル、リンクの速度も維持して、ランタイムの依存性が無く(異なるバージョンのコンパイラでビ…

Cron の設定メモ

Windows 7上でCygwinのCronを設定した。cygrunsrvは管理者権限が必要なので、ショートカットを右クリックしてアドミニストレータとしてCygwinを起動する。サービスの登録は以下のコマンド cygrunsrv --install Cron --path /usr/sbin/cron.exe \ --neverexit…

Firefox設定メモ ~MS PゴシックをMeiryo UIに置換~

Google Chromeが頻繁にクラッシュするのと、メモリ使用量が必要以上に多いので、Firefoxに戻ってきた。久々に帰ってきてみたら、UIがGoogle Chromeっぽくなっていて全然違和感がない。HTML5になってから動画の再生にもプラグインが必要なくなったので、プラ…

コンテナ内の検索の速度について(2) ~setの使いどころ~

C++

C++エクササイズその3。前回、前々回の実験で、setの良さが発揮できなかったものの、何となく経験に反する結果だったので、もう一つだけ実験してみた。具体的には、要素の中身をintからstringに変え、要素数2000から50000のコンテナに対してそれぞれ100万回…

コンテナ内の検索の速度について

C++

追記:この記事には続きがあります。C++エクササイズその2。前回の実験で、要素の追加についてはvectorの性能が際立っていたので、今度は要素の検索について実験してみた。vectorに対して要素の検索をする場合、誰もが思いつくのはに定義されているstd::find…

コンテナへの挿入の速度について

C++

C++エクササイズ。今回は挿入の速度に的を絞って計測してみた。やったこと ランダムな整数値を50000個生成 整数値をコンテナに挿入する 2の操作を各コンテナにつき10回繰り返す vectorについてはさらに3つの異なる条件でも実験してみた。 (R) ... あらかじめ…

水曜日:C++関数の多重定義

かれこれC++で飯を食べさせていただいて10年くらいになるけれど、久々に血の気が弾いたあと鼻血がでるくらい酷いバグ入れてしまった。幸い正式リリースモジュールを送信する数時間前に気付いて事無きを得たのだけど、本当に危なかった。 #include <iostream> #include <string></string></iostream>…

火曜日

昼はお好み焼き。夕飯はカレーと名前の知らない野菜と豚肉の炒め物。Chromecastが届いた。夕方、普段果物を食べないK氏が苺を食べたと奥さんから連絡。めでたい。普通に考えれば大したことないことかもしれないけれども、我が家にとっては一大事であった。M…

月曜日

帰宅時、ガレージを空けると子供のおもちゃが転がっていた。いつもは私が自分で片付けていたが、今日は初めて出迎えにきて気付いたK氏がどかしてくれた。本日はM氏が疲れ切って早寝、帰ったらK氏が一人っ子状態で、込み上げてくる喜びが押さえきれず、ずーっ…

火曜日

そろそろ暖かくなってきたので、ボタンが陥没してスイッチが入らなくなっていた扇風機を修理した。SEARSで買ったロータリー式の安物だけど、機構がシンプルでかつ静かで風力も強く、リモコン操作にも対応している。唯一つの難点は、組み付けにセキュリティボ…

日曜日

前日K氏と一緒に9時就寝、午前3時に目が覚めてしまう。午後5時まで布団でぐずぐずして6時に起きて波乗り。今年は水温もそこそこ暖かく、波にも恵まれている。昼は蕎麦屋、食料買出し。帰りにケーキを買って帰る。平穏で楽しい週末であった。

土曜日

午前中から家の掃除。石の床もタイルの隙間も、全て紙のワイプを使うのがよい。使い捨てのワイプは少し敬遠していたが、結局、布の布巾の磨耗も考慮すると使い捨ての紙のワイプを使い倒すほうが経済的になるようである。

月曜日

Presidents dayで休み。6時起きで波乗り。2月だが水温14、5度であまり寒くない。昼はモッツァレラチーズを使ったマカロニグラタンが美味しかった。夜は野菜炒めと味噌汁とご飯。子供たちはママ友の会合。午後は久しぶりに一人で過ごせる時間だったが、結局家…

日曜日

ソチオリンピックと山梨の豪雪を心配していたら一週間経ってしまった。朝9:30から飲茶。リトルサイゴンのベトナム人の間では有名なショッピングモールに遊びに行く。建物は立派たが別段大したものはなかった。

日曜日

K氏は風邪気味だが、早起きしてアルファベットを書く練習をしていた。午前中に買い物に出かけ、午後は公演に散歩に連れて行く。M氏はよく走る。K氏と葦の茂みに足を踏み入れ、沼地で少し靴が濡れた。オリンピックを見ているうちに大河ドラマを見逃す。

土曜日

二週間ぶりの波乗り。1、2フィート。一度だけ理想とする速さで滑ることができた。K氏が風邪気味なので特に外出もせず。

金曜日

ソチ五輪開幕、NBCで開会式の再放送を見る。全世界が注目する中での国旗掲揚と国家の演奏。ロシアにとってはさぞ誇らしい瞬間であろうと思う。なじみの薄い共産圏だからというのもあり、続く開会式の演出も面白い。テロの脅威や工事の遅れなど、問題は沢山あ…

木曜日

中田育男先生の「コンパイラ」の8章「仮想マシンと通訳系」を読みながら、EtoLispの仮想マシンを設計する。Lispの世界そのものであるランタイムがあり、ランタイムの中にはいくつかのパッケージがあり、パッケージの中にはシンボルが入っている。これまでの…

水曜日

日中、奥さんが歯医者に行っている間、会社でM氏を一時的にあずかる。昼はコストコのフードコート。夜は煮豚の丼とうどん。子供を寝かしつけてから自分が眠くなるまでのささやかな時間を使ってetolispを書き直し始める。本日はパーサ部分を書き直す。数年前…

火曜日

昼は久々にスパゲッティ。夜カレーの王子様。いつもよりおいしい。

月曜日

有給。高校の同級生のつてでPasadenaにあるJPLというNASAの施設を見学する。技術そのものも面白いけど、チームが一丸となって問題に取り組み、成果を喜べる「ミッション」を設計することの大切さに気付いた。宇宙開発の場合はそのあたりが分かりやすいだけで…

日曜日

家の掃除と子供の世話。引越し以来、ユルユルで気分が悪かったトイレットペーパーのディスペンサーを取り付けなおす。ドライウォールを補修しなおし、アンカーを打ち直して再固定。会心の出来栄え。昼はK氏に肉うどんを作ってあげる。見事完食。一方私は目玉…

土曜日

カーディーラで車のメンテナンス。無料で半日代車を貸してくれた。家族がいるのでSUVに乗っているけど、セダンはやはり安定していて、フリーウェイを走っていても心地よい。昼はIrvineの日本のレストラン。奥さんが風邪気味だったので夕飯も近所の日本料理屋…

金曜日

5年ぶりくらいにetolispのコードを読み直してみると、改善点があっさりと次々見つかる。ガーベージコレクタと構文木の実装の冗長さが目に余るので作り直し始めた。子供を寝かしつけてから自分が眠くなるまでの数時間、5年間の進歩、厳密にはetolispを休止中…

木曜日

昼は豚肉のすり身のBBQ。夜はきのこともやしとキャベツの野菜炒め。うどん付き。久々にetolispのソースコードを開いてみる。数年間コードは書かなかったが、いつも頭の片隅で気になっていたgarbage collectorの実装を見直した。5年と1日の成果。

水曜日

M氏の検診。昼は久しぶりにハンバーガー。夜はうどんライス。生まれてすぐの耳の検査に引っかかってから、病院の先生方が全力体制でM氏のサポートをしてくれている。1日で7人の専門家に検査をしてもらい、今度のアドバイスなどを貰う。幸い言葉の発達は標準…