憂鬱な午後のひととき


7月31日_
同じレベルのアルゴリズムとデータ構造ならば,VMで実行するのとネイティブコード実行,たいして変わらないと思う.VMのオーバーヘッドなんて,今のコンピュータだと無視できる. なわけねーよ, ということを示せるようなコードを書きたい(「無視」が定数項を除いて, なら反論できないがそれは自明だし).
7月29日_
とりあえずET Q&Aのリンク先資料などを読んで疑問点をまとめておく, でOKかな. 全くの門外漢だが1カ月あるし, なんとかなるだろう.
7月28日_
なんとなく『フェルマーの大定理』(足立恒雄)を読んでみた. 第3版で追加されたという6章の部分は同筆者のブルーバックスの『フェルマーの大定理が解けた!―オイラーからワイルズの証明まで』と殆ど同じやったのね.
7月27日_
先日のためしてガッテンムペンバ効果というのが紹介されていた. 「(ある条件下で?)お湯は水より早く凍る」という現象らしい. 熱いお湯と水道水で試してみたが差は見られなかった. 少し検索した限りでは状況がいまいち分からない. 現状では再現性が確実な条件も不確かというレベルなんだろうか. 「早く氷を作る方法」として紹介すべきものではない印象を受けた. 番組内で水の温度と凍る時間のグラフで, 20度を超えると単調減少するものが提示されていたけど, あれは本当かなあ. 水の状態が温度だけでは決まらないのは過冷却という現象からも分かるが, そんなにきれいなグラフになるような内部パラメータがあるとは思えない.
7月26日_
『吹雪の山荘』(笠井潔 他 リレー小説)
「過去の実作を具に検討し」たそうだが全体としてはいまいちだった. なんとかつなげようと互いに気を付けすぎてこじんまりとしてしまった印象. 大昔に読んだ『堕天使殺人事件』の方が破綻はしてたけど途中ははちゃめちゃで楽しめた(リレー小説の意味をわかってない自己完結の人もいたけど)気がする. まあそれでも法月綸太郎と巽昌章の章はにやにやしながら楽しめた. ただ岩崎正吾の「私」は許せない. 「私」はそんな言葉づかいしない.
7月24日_
Lightweight Language Futureのチケットを購入しようとしたが, 同じ日にわんくま横浜勉強会があるのに気がついた. うー, どっちにしよう. あろは先生を問い詰める会にも行ってみたい.
7月21日_
・寝不足+夏ばて+その他もろもろでかなりへたってた. 折角有給で5連休になってたのにひたすら寝ていた. まだ全快ではない.
・↓今更だがand dword [ecx], 0は3byte. 同様にmov dword [ecx], -1したければor dword [ecx], byte -1が3byte.
7月12日_
μOPってこないだも触れたanger.orgのpdfあたりが割と詳しい.
golf的にはmov dword [ecx], 0は6byteなんだが, 基本はxor eax, eax / mov dword [ecx], eaxの4byteで, でも3byteですむ方法もあるよ(遅いけど)とか.
7月11日_
・boostでも使われてるVCのautolink機構は便利なんだけどgccでサポートされないのは何故だろう. Makefileの中でややこしいifdefによるライブラリ指定よりはライブラリのことを知っているコンパイラとライブラリヘッダに任せるのは正当な気がするんやけど.
7月10日_
久々にC++の初歩的な文法につまずく.
Xbyakのラベルはconst char*で受けてるのだけどconst std::string&の方が便利だよなあと思って変更した. Lは(const char *label)と(const void *addr)の二つオーバーロードしていたときは, L("lp")はconst char *にマッチしていたのが (const std::string&)に変更すると(const void *addr)にマッチして誤動作した. んで, まさにそのその理由でconst char*にしていたのを思い出した. どんくさ. 関数名変えるべきだったかなあ. 今更遅いけど.
いや, 関数名変えると余計なことを覚える必要があるので止めたのだった. うーむ, 頭が働いてない.
7月9日_
最近文字列の調査してるのでboost::regex + ICUを使うときのメモ.
VC9はリリースモードでもSTLなどの配列やiteratorのチェックが入るので/D_SECURE_SCL=0をつけないと遅い. ただデフォルトのboost::regexはSCLありでコンパイルされているので組み合わせるとエラーになってしまう. buildし直すには
>cd boost/libs/regex/build
>bjam -sICU_PATH=c:/p/icu --toolset=msvc-9.0 \
    cxxflags=-D_SECURE_SCL=0 link=static,shared release stage
とかする. ICUも同様に. boostはライブラリ名に-scl-offみたいなのつけるように変更した方がよいかなあ.
7月5日_
JANTに参加. たまたまか, 理学部の人たちの発表はOHP&黒板だった. なつかしー. スライドの更新は, 次のを用意してから現在のと取り替えるべきなんだよな. 先に現在のを取ってしまうと聴講者にとって無駄なブランクが発生する(スライドの下の方はゆっくりみたいのに).
7月4日_
第88回カーネル読書会に参加.
随時入るshinhさんのコメントが面白かった. そういやkosakiさんと初めて(だったよなあ?)お話しできてよかった. blogに使ってる写真は検索で見つけたものらしい. 自分で合成してはると思ってた.
7月3日_
VC9のstd::swapは交換前に変数が同じかどうかをチェックしていた.
// utility
template<class _Ty> inline
    void swap(_Ty& _Left, _Ty& _Right)
    {    // exchange values stored at _Left and _Right
    if (&_Left != &_Right)
        {    // different, worth swapping
        _Ty _Tmp = _Left;

        _Left = _Right;
        _Right = _Tmp;
        }
    }
ほとんどのケースでは_Left != _Rightだろうし, ifを除去しにくいためコンパイラの最適化を阻害する. 特にPOD型の場合は邪魔以外なにものでもない. 余計なお節介だ.
7月2日_
もう一年か. 早かったようなゆっくりだったような.

御意見は光成滋生<herumi@nifty.com>までお願いします