2007/07/28 Saturday 22:28:25
4人分の wordpress を 2.2.1 に移行完了。
ここの blog だけはもはや wordpress であって wordpress じゃないので結構時間が掛かってしまった。しかもトモさんがフランス語で書きたいとか言いだしたので EUC-JP から UTF-8 に移行したんだけどこれがまたくせ者だったのでメモ。
* DB のデータを UTF-8 に変換する
% mysqldump –default-character-set=binary -umemo -p memo > memo.db
% iconv -f EUC-JP -t UTF-8 memo.db > memo-utf8.db
としたら、「不正な入力シーケンスがありました」となり変換できない。原因は wp_options テーブルに rss_(md5みたいな)名前で何処かの誰かさんの feed 情報が含まれていているんだけどこの中に EUC-JP に無い文字が含まれていることが原因。
mysql> delete from wp_options where option_name like “rss_%”
と削除して mysqdump からやり直し。
* ファイルの変更
wp-config.php を
< mb_internal_encoding(”EUC-JP”);
—
> mb_internal_encoding(”UTF-8″);
< define (’WPLANG’, ‘ja_EUC’);
—
> define (’WPLANG’, ‘ja_UTF’);
theme の header.php に XML ディレクティブがある人はこれも変更。
* DB の変更
あともう一カ所 wordpress のマネジメントツールでエンコーディングを設定する所があるはずだけどそのエンコーディングの設定が出来ていないとマネジメントツールにログインでき無いというニワトリタマゴ。仕方ないので DB を直接更新。
mysql> update wp_options set option_value=’UTF-8′ where option_name=’blog_charset’;
* これで移行完了のはずなんだけどマネジメントツールにログインしようとすると
Warning: Invalid argument supplied for foreach() in /usr/local/webapp/wordpress-2.2.1/wp-includes/capabilities.php on line 31
というエラーが出てログインできない。
コードを追っかけてみると wp_options テーブルにある wp_user_roles というキーの設定データが不正であることが判った。
ユーザーのロールに関するデータが
s:6:\”管理人\”;(略)s:6:\”編集者\”;(略)s:4:\”作者\”;
という様に保持されているがこの 6という数字は EUC-JP で 6byte だということを意味していたようなので。
s:9:\”管理人\”;(略)s:9:\”編集者\”;(略)s:6:\”作者\”;
と変更することで正常にマネジメントツールにログインできるようになった。
wordpress の泥臭い一面をかいま見たような気がした。
No comments yet.
2007/07/27 Friday 03:43:50
先月ぐらいに書いた どう書く?org が盛り上がっている。というか流れが速くて追い切れてない^^;。前回見たときは投稿数も少なくて数件しかなかったのに今は 1500 件に届きそうな勢いだし面白そうなお題も沢山ある。
とりあえず得意なネタがあったのでまた C で書いてみた。
お題: 呼んだのは誰?
投稿: http://ja.doukaku.org/comment/1479/
このお題には C での先客が居て -finstrument-functions を使用したコードを書かれていたので別の方法を採ってみた。
とりあえず LL プログラマ達に C でも余裕だぜ! って主張するようなスタンスで書いていこうと思ってたのだけれどそろそろ辛くなってきたな・・・、LL の短いコードに負けないようエラー処理を省いたり行を詰め詰めにしているんだけどこれがまたキモイ。
次は、メソッド名一覧の表示 に挑戦中。C にメソッドはないのだけれど救済処置が用意されてある。
No comments yet.
2007/07/25 Wednesday 02:49:23
kernel 2.6.24 あたりで入るかもしれない Syslets と threadlets について。気になるので Linux Platform Weather Forecast
http://www.linux-foundation.org/en/Linux_Platform_Weather_Forecast
より抜粋して和訳してみた。
“Syslets”はカーネル内で小さなプログラムを動作させるための手段であり、システムコールを非同期かつユーザー空間から出ずに実行する方法です。
“Threadlets”はユーザー空間で非同期のコードを実行するメカニズムと同類です。
どちらのケースでも、コードの問い合わせがブロックしない限り同期的に実行されますが、もし何かを待たなければならない場合カーネルはスレッドを生成し(スペアのスレッドが再利用される場合もある)、ユーザー空間でそのスレッドを実行します。
このパッチの最初の動機はメンテナンスに大変な手間が掛かる AIO のアプローチを使わずに、完全な非同期 I/O を実装を可能にすることでした。
以来、syslets と threadlets はシステムコールの非同期実行を可能にしただけでなく、より多くのアプリケーションの対応が可能となりました。
やっぱりまだどんなモノか良く解らないなぁ
追記:
こっちの方が詳しい
http://lwn.net/Articles/219954/
No comments yet.
2007/07/20 Friday 03:12:51
http://www.amazon.co.jp/dp/4061498916/
読了。トモさんが早くよめよめとつっつくので寝ずに読んださ。
最初の辺りは DNA のらせん構造を発見したのはワトソンとクリークだと知られているけどホントはもっと前からエイブリーがいい線まで気が付いていたんだよという話とか。科学者のダークサイド、論文の盗作話とか割と興味ない話が続いていたのけど中頃辺りから面白くなってきた。
今日多くの人に認められている生命の条件・定義は「自己複製を行うかどうか」なんだけどこの定義では単独では複製を行うことが出来ないウィルスの存在を分類することが出来ないという問題があった。
筆者はこの定義を再定義しようとしている。その定義とは
「生命とは動的平衝(ダイナミック・イクイリブリアム)にある流れである」
ぱっと見た感じだと自己複製の定義と比べて解りにくいのだけれど、後の説明を読むと自己複製の定義より的確に生命を定義できているように思う。
「動的平衝」とはたとえば人間を構成する分子は1年も経てばすっかり入れ替わっているというような例えが解りやすい。(骨とか歯も)
その他にも
「秩序は守られるために絶え間なく壊されなければならない。」
とか
「エントロピー増大の法則に抗う唯一の方法は、システムの耐久性と構造を強化することではなく、むしろその仕組み自体を流れの中に置くことなのである。」
といった、生命科学に限らないような名言が印象的。
2007/07/19 Thursday 02:16:25
glib の g_string() を使用したときに mtrace してみるとメモリリークしているように見える。
mtrace();
str = g_string_new("hoge");
g_string_free(str, FALSE);
muntrace();
上記のような単純なコードでも
Memory not freed:
—————–
Address Size Caller
0×0804a378 0×34 at 0xb7fa0095
0×0804a3b8 0×8 at 0xb7fa0095
0×0804a3c8 0×400 at 0xb7fa0095
0×0804a7d0 0×34 at 0xb7fa0095
0×0804a810 0×400 at 0xb7fa0095
ほらこんな感じ。
調べてみると同じような話題が ML で見つかった。
http://mail.gnome.org/archives/gtk-list/2004-September/msg00050.html
http://mail.gnome.org/archives/gtk-list/2004-September/msg00051.html
What about running g_print in a loop? Note that many g_ functions have static overhead that often show up as a memory leak but they really don’t have leaks. IE they may claim some memory, but it is freed when the program quits and is not allocated every time the function is called.
たしかにこれはメモリリークでは無いという言い分も解るけど。
アプリケーション側のメモリリークと間違えたり紛らわしいのでライブラリでこういうのは止めて欲しいな。
No comments yet.
2007/07/12 Thursday 23:25:14
いまさらだけど、一昨日のカーネル読書会のメモ。
Jonathan Corbet さんの発表。メガネを忘れていったのであんまりメモれなかった。
* 2.6.22 の特徴
- IVTV video tuner drivers
うちの I/O DATA のキャプチャボードでこれを使ってた気がする
- eventfd() system calls
なんだろうこれは、select() とか poll() とかの親戚かな
- SLUB アクセラレータの変更
その他 mac80211 wireless stack など
* kernel 2.6.23 は 10月辺りにリリースされる予定
* スケーラビリティについて
512 個のCPU がちゃんと動くらしい、4096 はまだ駄目。
* ファイルシステムについて
見慣れないファイルシステムが幾つか。後で調べる。
Btrfs - A completely new filesystem
LogFS - A new flash-oriented filesystem
* 仮想化について
Lguest, Containers
Containers は手軽にプロセス、ハードウェア、ファイルシステム、システムタイムの仮想化が行えるらしい。
* Threadlets
Asynchronous system calls だって。
なんだか良く解らないけど面白そうな予感。
* utrace
新しいカーネルのトレーサー。2.6.23 に入る予定
No comments yet.
Robert wrote related post…
Silk posts and stories…
Trackback by Robert wrote related post — 2008/05/30 Friday @ 13:26:14
Latest Sites News…
SweN, Latest Sites News and Latest…
Trackback by Latest Sites News — 2008/06/03 Tuesday @ 06:56:43
Latest Refresh…
HserfeR, Latest Refresh and Latest…
Trackback by Latest Refresh — 2008/06/03 Tuesday @ 06:57:04
Sites News…
SweN, Sites News and Sites…
Trackback by Sites News — 2008/06/03 Tuesday @ 06:57:43
News…
SweN, News and News…
Trackback by News — 2008/06/03 Tuesday @ 06:58:06
Latest…
TsetaL, Latest and Latest…
Trackback by Latest — 2008/06/03 Tuesday @ 06:58:23
Latest News…
SweN, Latest News and Latest…
Trackback by Latest News — 2008/06/03 Tuesday @ 06:59:18
Latest Site News…
SweN, Latest Site News and Latest…
Trackback by Latest Site News — 2008/06/03 Tuesday @ 06:59:55
Blog News…
SweN, Blog News and Blog…
Trackback by Blog News — 2008/06/03 Tuesday @ 07:00:12
Latest Blog News…
SweN, Latest Blog News and Latest…
Trackback by Latest Blog News — 2008/06/03 Tuesday @ 07:01:32