2009-04-01から1ヶ月間の記事一覧

ソフトウェアのライセンスは難しくてわからないなー

LGPLライセンスのCのライブラリ(libなんちゃら)を自分のCPANモジュール(Perl and GPLライセンス)に同梱したいんだけど問題があるのかないのかわからん。Cのライブラリの作者にメールとかするのはいいとして、ライセンス的に問題ないかがよくわかりません。 …

memcachedのコードリーディング

Cの勉強がてmemcachedのコードリーディングでも始めてみようかと思ったり。続くかわからんけど、どこかでコードリーディング記事を書こうと思った。思っただけで終らないようにしないとな…。

スレーブのレプリケーションが遅れてたら

DBがマスタ-スレーブ構成になってる場合で、定期的(例えば1日1回とか)にテーブルを作成するようなアプリがあったとします。それで、普通にWRITEはマスタでREADはスレーブとかやってると、スレーブへのレプリケーションが遅れたりしてスレーブがSELECTしたと…

r->headers_inなどのapr_table_tのデータの扱い方

r->headers_in は apr_table_t 型で、apr_table_elts() という関数を使うと apr_array_header_t 型の値が取得できる。 これが先頭のデータになる。 const apr_array_header_t *arr = apr_table_elts(r->headers_in);で、apr_array_header_t は下記のような構…

Apache2.2の各フックで動くモジュールのファイル一覧

フックの順番はてきとう(処理順ではない)です。(あとで気が向いたら直します。) ↑なるべく順番になるように直してみた。けど順番は無保証にしときます。 あとたぶん標準のモジュールだけのはずだけどなんかが紛れ込んでるかも。これの出しかたはエントリ下に…

APRのapr_time_tはmicrosecondsだぜ

time_tは秒数だけど、apr_time_tはマイクロ秒数なのね。 秒数を取るには apr_time_sec(変数) ってやらないとだめみたい。 int interval_sec = 10; apr_time_t start = apr_time_now(); // do something apr_time_t end = apr_time_now(); if (end - start > …