pecl::imagickでサムネイルを作る時はstripImage()する癖をつけておいた方が無難かも

$img = new Imagick('src.jpg');
$img->thumbnailImage(80, 60);
$img->writeImage('dst.jpg');

これだとsrc.jpgはそれなりの大きさの画像だとして、80×60のサムネイルを作っているのになぜかファイルサイズが元画像とほぼ同じになってた。
(前はこれで良かったんだけど、いつからか仕様がかわった?)

$img = new Imagick('src.jpg');
$img->thumbnailImage(80, 60);
$img->stripImage();
$img->writeImage('dst.jpg');

としたらそれなりのファイルサイズになるようになった。
もしかしたら特定のバージョンのみで起こる現象なのかもしれないけど、普段からstripImage()する癖をつけておいた方が無難そう。

Thunderbirdでメールの保存形式にmaildirが使えるようになっていた

設定から mail.serverDefaultStoreContractID を @mozilla.org/msgstore/maildirstore;1 にすればOK。

今の所新しく設定したアカウントのみの対応なようなのと、mboxで運用しているアカウントからmaildirで運用しはじめたアカウントへのメッセージの移動がうまく出来ない?ようなので、まだまだ開発者向けの機能っぽい。もうちょいか?

参考: http://jaisejames.wordpress.com/2012/03/15/to-activate-maildir-in-thunderbird/

proxy_cache_lock を使う時は proxy_cache_lock_timeout も明示的に設定する必要がある?

またもやnginx。

proxy_cache_lock on; にすると、キャッシングが有効な時、複数同時にnginxが受けたリクエストを束ねてひとつだけをバックエンドに転送してくれる。ということでonにしてみた。キャッシュが空の状態で ab -c 10 -n 30 とかやっても確かにバックエンドにはひとつしかリクエストが行かない。いいねーーー!

と、思ったのもつかの間。調子に乗ってabしてるとたまにリクエストを束ねてくれない時がある。少し試してみたところ、どうもキャッシュの有効期限が切れてnginxが内部的にパージ処理をしている時が怪しい気がする。

続きを読む proxy_cache_lock を使う時は proxy_cache_lock_timeout も明示的に設定する必要がある?

Titanium mobile webView.evalJS() は「”」と「’」の使い分けに気をつけろ

meta タグにアクセスしたくてこんなコードを書いた

webView.evalJS('document.getElementsByName("author").item(0).content');

これは動かない。が、

webView.evalJS("document.getElementsByName('author').item(0).content");

これは動く。どっちも同等のコードをブラウザ上で動かすぶんには動くんだけど、Titaniumは現時点では(2.1.4)後者の書き方じゃないとダメな模様。なんでだよ。。

 

シェルスクリプトを直してたらbashの正規表現の仕様変更でハマった。。

CentOS 5で動かしてたシェルスクリプトをCentOS 6で動かそうとしてハマった話。

if [[ "$PATH_NAME" =~ "^/var/log/(.+)$" ]]; then

で、なんでマッチしないんだよ。。。と思っていたら

if [[ "$PATH_NAME" =~ ^/var/log/(.+)$ ]]; then

って書かないといけないという話だったんだけど、なんだかねぇ。。

Reverse Proxy(nginx) + Application Server(apache prefork)の構成に変更

前からReverse Proxy(apache worker) + Application Server(apache prefork)構成にしたかったんだけど、ずっと手付かずだった。
先日nginxのベンチマークをとる機会があって、これが凄く早い。簡単ななhtmlで較べると

  • apache prefork 1400 req/sec
  • apache worker 2000 req/sec
  • nginx 8000 req/sec

ぐらい違う(色々動いているAtom 330環境でとった適当ベンチマークだけど)のに驚いて使ってみたくなってやってみた。

続きを読む Reverse Proxy(nginx) + Application Server(apache prefork)の構成に変更