Entries from 2008-03-01 to 1 month

マイクロフォーマットで検索エンジン拒否

そういえば Robot Exclusion Profile · Microformats Wiki なんてのもあった。ゴミエントリを書いたと思っても、マイクロフォーマットで <p id="robots-noindex">...</p>とかやっとけば、消さなくてもいいのかな。大手の検索エンジンは対応してるんだろうか。

やっぱ消しとく

検索エンジンにもゴミだし。

Mac OS X の pthread_cond_timedwait は壊れているという話

http://lists.apple.com/archives/darwin-dev/2005/Jun/msg00174.html手元の環境 (10.4.11) でも -m64 だとハングする。 $ gcc -Wall testtimedwait.c -lpthread $ ./a.out timedwait done $ gcc -m64 -Wall testtimedwait.c -lpthread $ ./a.out (何もおこ…

MySQL のオフセット型 my_off_t は unsigned

はまったorz

GCC で RTTI つきのライブラリと RTTI なしのライブラリを結合する

ぶっちゃけ MySQL (-fno-rtti) のプラガブルストレージエンジン Q4M で boost::spirit (RTTI 必須) を使いたいという話なんですが。ストレージエンジン全体を「-fno-rtti」をつけずに make すると、プラガブルストレージエンジンのロード時に、親クラス側の…

MySQL の Pluggable Storage Engine API のバイナリ互換性

MySQL の ./configure のオプションによってバイナリ互換性が破壊されることがある。MySQL Lists: internals: ABI compatibility of pluggable storage engines Google グループPluggable Storage Engine をバイナリ配布しようと思ってる人には注意が必要。1…

Q4M の条件つき読み込み

Q4M の次期バージョンでは、条件を指定してキューを購読できるようにするつもり。たとえば、 select queue_wait('tbl:timestamp<123456');のようにすると、テーブル「tbl」から timestamp が 123456 未満のカラムのみを待ち受けできるようになる。詳細は、Go…

リモートサーバに接続できない場合の telnet による原因切り分け方法

1) telnet host port して Escape character is ... と出た後、すぐ (あるいは少しして) 接続が切れる → 接続後 fork() 等で落ちている → サーバのメモリ不足やプロセスの無限増殖を疑う2) telnet host port して Escape character is ... と出るが、その後…

C++ コンパイラにおける値渡しの最適化

プリミティブ型でなくとも小さな構造体 (or 共用体) ならレジスタ渡しになる、ってのは C で最適化されたコードを書く際に、しばしば使われるテクニック。でも C++ だと、コピーコンストラクタやデストラクタがある場合はこの最適化が不可能。他にも言語仕様…

Linux カーネル内の flush と fsync

re ディスクの情報とメモリ上の情報 - odz buffer re 辞書が壊れない仮名漢字変換エンジンの作者を雇うのは案外に難しいのかもしれない,という話 - NyaRuRuが地球にいたころ re Linux の close は fsync 相当を調べる - naoyaのはてなダイアリー以下の理解…

MySQL サーバに SSL 接続

分散配置した MySQL サーバに SSL 接続したい、という需要は当然ある。というわけで、プライベートな認証局と証明書 (自己署名でも可) を使ってMySQL へセキュアに接続する手軽な方法について。1) 認証局と証明書の作成see http://www.tc.umn.edu/~brams006/…

Static Code Reading と Dynamic Code Reading

Code Reading っつーと GNU Global とか App::Ack とかが話題に上ったりするけど、それらはいずれも、静的なコード読みのためのツールだよね。実際にホットな (実行される) コードを追うという意味では、デバッガやプロファイラが便利。そういう Dynamic Cod…

Rewriting Fastr in C

re Kazuho@Cybozu Labs: 高速なCometサーバを書いてみた件C で書き直したら速くなるんだろうな。マルチスレッド化できるし。Opteron@1.4GHz で2,000クライアントなんだから C で書いたら Core 2 Quad @2.6GHz とかで10,000クライアント程度は余裕でいけたり…

GNU Make で OS の切り分け

C や C++ でプログラム全体を書いてるならともかく、例えば MySQL の UDF を書く程度の理由で、いちいち automake && autoconf なんてやってられない。でも OS によって gcc のフラグを変更したいとかそういう切実な欲求はあったりする。というわけで GNU Ma…

show innodb status でチェックする値

show innodb status\G して Buffer pool hit rate が 997/1000 以上だった良い、というのは、ディスクバウンドのデータベースの話なのかな。個人的には、FILE I/O の reads/s の方を気にしている。ちなみに以下は、もうダメダメなパターン。Buffer pool hit …