Entries from 2008-07-01 to 1 month

Q4M のバージョンを SQL で確認する方法

mysql> select PLUGIN_VERSION from information_schema.plugins where plugin_name='QUEUE'; +----------------+ | PLUGIN_VERSION | +----------------+ | 0.1 | +----------------+ 1 row in set (0.01 sec)長いですがこんな感じ。ちなみに、今までのバー…

Q4M の複数行一括消費モード

Pathtraq の DB 負荷のかなりの部分が、Gungho が InnoDB からデータを読んでる点に由来するっぽいので、なんとかしたい。かといって Gungho 自体は捨てたくない (よくできてると思うし) ので、じゃあ Gungho のモデルを保ったまま Q4M をつなごうと思うと、…

XMLBind を coderepos にアップロード

昔書いた C++ の XML バインディングである XMLBind を coderepos にアップロードしました。http://coderepos.org/share/browser/lang/cplusplus/XMLBind/ドキュメントは探さないと出てこないけど、こんな感じ。 たとえば、 struct Date { int year; int mon…

keyedmutexd のハッシュ関数

xor 取るべきところが or になってるし、しかもループも壊れてないか? このひどさは異常。探索を速くするためにしか使ってないからバグとして顕在化はしないんだけどorz INLINE int key2i(const char* _key) { const int* key = (void*)(_key + KEY_SIZE); …

今日の MySQL トリビア

MySQL は merge join をサポートしていない dependent subquery より left join 〜 isnull のが速い mysql> select count(*) from m where id<100000 and not exists (select * from tt where tt.id=m.id); +----------+ | count(*) | +----------+ | 97 | +…

BASIC 認証でログアウトを可能にする方法

Cookie でログイン状態を管理すればいいんじゃいのかな。まず、ログインボタンを押した時「だけ」is_logged_on を真にする。 HTTP/1.1 Authorization Required Set-Cookie: is_logged_on=1 WWW-Authenticate: Basic realm="Hoge123456" ...サーバ側では、Bas…

12年前に書いたコードを晒してみる

http://coderepos.org/share/browser/lang/c/friendsdマルチプロセス&共有メモリによるダウンロード+ select(2) ベースの配信による finger プロキシ。タイムスタンプ見てると、1995年11月〜1996年10月っぽい。どうみてもダメダメな reader-writer lock が…

C++ サーバフレームワークの最適化

Kazuho Oku on Twitter: "とりあえず分散型 Twitter 技術デモの段階までは作る。Twitter への乗り入れモデルも実装するかも" とか言ってしまった都合上、高速なサーバフレームワークが必要になるので、Kazuho@Cybozu Labs: C++ テンプレートを使って高速な高…

エッジトリガ (epoll) の話

エッジトリガのメリットとしては、「データが貯まった状態で処理を後回ししても起こされない」というのもあるみたいだけど、これはEPOLLONESHOTというオプションを使うとレベルトリガでも実現可能。epollであえてエッジトリガを使うとすれば、「ノンブロッキ…

re 6 x 3: 「神(示申)」と「神」

rok さんありがとうございます。Firefox は Pasteboard Manager じゃなくて旧式の Scrap Manager を使っています。で、Firefox のソースコードを眺めていると、nsClipboard::SetNativeClipboardData 関数内で、 PutScrapFlavor(..., 'utxt', ...); PutScrapF…

re Yet Another Skeleton Engine を作ってみた (YASE 0.1リリース) - mir the developer

モダンでいいすなぁ。2点ほど。 ヘッダに static linkage の関数宣言があるのはおかしい ha_yase::lock が初期化されていない あと、ヘッダは #ifndef #define 〜 #endif で囲っておいたほうがいいのかなぁと思いました。MySQL 的には #pragma interface で…