DBIx::Class をいれようとした時に少しハマったのでメモ。
どうやら CPAN コマンドを使ってインストールしようとすると
Mac にバンドルされている sqlite を使ってないらしい。。。
そのためインストールに失敗する。
これを回避しようと思うと Makefile.PL に USE_LOCAL_SQLITE=true に指定すればよいらしい。
1
2
3
| $sudo cpan
cpan[1]> o conf makepl_arg USE_LOCAL_SQLITE=true
cpan[2]> install DBD::SQLite |
o conf commit をしない限りここで変更しても cpan を再起動すると元の設定を使うことになる。
参考資料
DBD-SQLite-1.14
cpan コマンドでモジュールをインストールするときに Makefile.PL の引数を設定するCommentsAdd Star
手順を簡単に説明すると
- memcached をインストール
- memcached を起動
- php に memcached のクライアントをインストール
- apache 再起動
- object-cache.php を配置
こんな感じで出来ます。
というわけで順をおって詳細をば。
(下記はFedora8 x86_64 にインンストールしたのを説明しています)
memcached をインストール
必要なライブラリ : libevent
これでインストールできます。
つぎに memcached をインストールします
memcached を起動
yum でいれたのなら
service memcached start
chkconfig memcached on #これは再起動後に自動的に起動するようにしてます。
memcached がちゃんと動作しているかの確認は telnet を使うと簡単にできます。
$telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set hoge 0 0 4 # <- ここで hoge という値に
fuga fuga を代入している
STORED
get hoge # <- hoge という値を取り出してる
VALUE hoge 0 4
fuga
END
php に memcached のクライアントをインストール
これは pecl でインストールすると楽です。
pecl は perl でいう CPAN 的なもの。
この場合 php.ini に extension=memcache.so を追加してやる必要があります。
僕は yum でいれました。この場合は特に設定する必要はありません。
object-cache.php です。
こいつを wp-content/ にいれてやるだけで大丈夫です。
memcached サーバーの場所がローカルホストの 11211 であるなら何も設定する必要はありません。
それ以外の場合は
$memcached_servers = array('192.168.1.1:11211', '192.168.1.2:11211');
このように編集してやれば追加できます。
おまけ
便利そうなツールがあったので一つ紹介しときます。
memcache.php ってのがあってこれを利用すると簡単にヒット率や
現在の使用率を見ることができます。
こいつをどこでもいいので、どこかの DocumentRoot 以下に置き
HTTP ベースでアクセスすると表示されます。
ユーザ名、パスワードは memcache.php を開いて変更すれば大丈夫です。

複数の wordpress から同一の memcache サーバーを使用している場合は、
このエントリーが凄い参考になります(Wordpressのobject-cache.phpをハックする)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| SET serveroutput ON
declare
ob varchar2(4000);
CURSOR cur IS
SELECT object_type,object_name FROM user_objects ORDER BY object_type,object_name;
begin
FOR vRec IN cur LOOP
begin
ob := 'DROP ' || vRec.object_type || ' ' || vRec.object_name;
DBMS_OUTPUT.PUT_LINE(ob);
execute immediate ob;
exception
when others then
DBMS_OUTPUT.PUT_LINE('No:' || SQLERRM);
DBMS_OUTPUT.PUT_LINE('Object:' || vRec.object_name);
end;
END LOOP;
end; |
おまけ
mysql でいう limit みたいなこと。
rownum でしないといけない。相当めんどい。
1
2
3
4
5
6
7
8
9
10
11
12
13
| SELECT
*
FROM
(
--実際に取得したいクエリー
SELECT
hoge,
rownum rn
FROM
fuga
)
WHERE
1 <= rn AND rn <= 10 |
さらにさらに
order by した上位10件とかだとこうなる。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| SELECT
*
FROM
(
SELECT
*,
rownum rn
FROM
(
--実際に取得したいクエリー
SELECT
hoge
FROM
fuga
ORDER BY
foo
)
)
WHERE
1 <= rn AND rn <= 10 |
めんどくさすぎる。。。。
というのをただ伝えたかっただけwww
個体識別番号取得
1
| NSLog([[UIDevice currentDevice] uniqueIdentifier]); |
携帯みたいにポップアップすることなく取得できる
画面の遷移(新しいブラウザを開く)
1
2
| NSURL url = [NSURL URLWithString:@"http://blog.dealforest.net"];
[[UIApplication sharedApplication] openURL:url]; |
言語圏を取得
1
2
3
| NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString* preferredLang = [languages objectAtIndex:0]; |
Flash lite contests

やばいです。正直やばいです。
Flash lite のコンテスト。。。。
5/31 までが締め切りなので真剣に何かつくろうかな。
Flash lite3.1 だっけかな。新しいのも出たみたいだしね。
でもそのうち AIR になるみたいだけど
広まるでに相当時間かかりそう。なんてったって未だに Flash lite 1.1 だし。
最近したいことが多すぎて真剣にやばい。
3月からは少し時間できるからやりまくろ。
それまでに考えや設計をまとめとこっと。