2009年10月26日月曜日

LeopardにPILをpipでインストール

$ pip install PIL

とすると
IOError: [Errno 2] No such file or directory: '/Path/to/build/PIL/setup.py'
というエラーがでてインストールできない。

ソースのURLを指定してインストール。

$ pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz

Jpeg support not availableとログに出た場合は、
jpegを利用できるようにするために、libjpegをインストール

$ wget http://www.ijg.org/files/jpegsrc.v7b.tar.gz
$ tar zxvf jpegsrc.v7b.tar.gz
$ cd jpeg-7
$ ./configure
$ make && sudo make install

そんでもいっかいpip

$ pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz

JPEG support ok とでればOK。

2009年10月22日木曜日

safari3でjTemplatesがうまく動かない問題を解決

jTemplatesのsetTemplateElementメソッドを使ってテンプレートをロードする際、テンプレートに日本語が含まれていると、safari3では何も表示されないという問題に遭遇。
jQuery,jTemplatesのバージョンはそれぞれ現在最新の、1.3.2と0.7.8。

原因を調べるため、jquery-jtemplates.jsを見てみると、なんのことはない、replaceの正規表現がうまくマッチせず、テンプレート内のコメント部分の除去がうまくいってないだけだった。

具体的にはjquery-jtemplates.jsの中のjQuery.fn.setTemplateElement内にある下のコード。

s = s.replace(/^<\!\[CDATA\[([\s\S]*)\]\]>$/im,'$1');
s = s.replace(/^<\!--([\s\S]*)-->$/im, '$1');


これがsafari3だとうまくマッチせず、<!--と-->が除去されず、そのままコメント扱いになり、表示されていなかった。

とりあえず、上記コードを下記のように修正することで対応した。


s = s.replace(/^<\!\[CDATA\[/m, '').replace(/\]\]>$/m, '').replace(/^<\!--/m, '').replace(/-->$/m, '');