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, '');

2009年9月14日月曜日

mixiアプリの表示領域(高さ)を調整する最適な方法

mixiアプリの開発をはじめてからずっと表示領域(高さ)の調節に悩まされていたのですが、下記の記述でうまく調整されるようになりました。

gadgets.window.adjustHeight($(document).height());


$(document).height()でjQueryを使ってdocumentの高さを取得し、
コンテナの提供するgadgets.window.adjustHeightに渡すようにしています。


そもそも、gadgets.window.adjustHeightは引数を渡さず実行すると、表示領域の高さを自動調整してくれるはずなので、引数なしで呼びだせばそれでOKなはずなのですが、これが結構うまく動作してくれません。
その結果コンテンツが全て画面に入りきらずに、スクロールバーが表示されてしまい、見づらいし、使いずらいということになってしまいます。

ここで問題なのが、開発環境と本番環境で挙動が異なるということで、
僕の場合ローカルの開発環境(Partuza+Shindig)では高さの自動調整がうまく行くのに、mixi上で動作させると高さがうまく調整されずスクロールバーがでてしまうという現象になやみました。

そこで上記の解決策です。jQueryで高さを取得することで、コンテナに依存しなくなるので、開発環境でも本番環境でも同じ挙動を得ることができるようになりました。

コンテナが成熟してくればこの手の問題はある程度解決していくとは思いますが、コンテナ毎の微妙な差異というのは少なからず残るのではないかと思います。

そのため、今回のようにコンテナに依存しないような方法を取るというのは、様々なプラットフォームで動かすアプリを作る時には考えなければいけないなと思います。

2009年6月4日木曜日

10日でおぼえるPython入門教室

CMSコミュニケーションズの寺田さんから「10日でおぼえるPython入門教室」を献本いただきました!
どうもありがとうございます!!

ちょうど僕の中で「Python」が熱くなっていたところだったんです!
まさにベストなタイミング!

10日目にはGoogle App Engineの使い方の解説もあるみたい。
これからじっくり読んでみます。


10日でおぼえる Python 入門教室
穂苅 実紀夫 寺田 学 中西 直樹 堀田 直孝 永井 孝
翔泳社
売り上げランキング: 5963




2009年3月14日土曜日

OpenPNE flipclip小窓スクリプト 新URL対応版

FlipClpリニューアルに伴って、クリップのURLを下記のように変更しました。

旧URL
>

http://www.flipclpi.net/{userid}/{clip_no}
<

新URL
>

http://www.flipclpi.net/{clip_no}
<

旧URLから新URLへはリダイレクトするようにしているので旧URLはそのままにしておいて問題ないのですが、クリップのURLを正規表現でマッチさせてごにょごにょしたりしている場合、新URLだとマッチせずうまく動かないってことがおこっちゃってます。

OpenPNEの小窓機能もそのひとつで、新URLを貼り付けるとうまくURLがマッチせず、動画が表示されなくなってしまってます。
OpenPNEの中の人が対応してくれると思いますが、取り急ぎ、新URLでも動くものをのっけておきます。
以下のflipclip.net.js、www.flipclip.net.jsをダウンロードして、public_html/cmd/に上書きコピーすればOKです。

>

OpenPNE flipclip小窓スクリプト 新URL対応版
flipclip.net.js
www.flipclip.net.js
<









2009年3月11日水曜日

FlipClipがリニューアルしました!

FlipClipがリニューアルしました。

詳しい内容はこちら
http://blog.flipclip.net/2009/03/post_57.html

今回のリニューアルで体感できるほど、サイトのレスポンスが上がったと思います。

今までサービス全体のレスポンスを下げていた、全レコードに対する検索を見直すことで、DBの負荷が50〜100分の1になりました。

レコードの検索に対して、様々な場面を想定して、柔軟に条件を指定検索できるような実装をしてしまっていたのが、DBのレスポンスを悪くして、サイトを重くしていた主な原因であり、反省する点です。

今回の件で、「なんでもできる」ものは「なんにもできない」のと同じだってことを痛感しました。
リーンな開発を心がけようと心に誓いました。







2009年2月13日金曜日

DjangoXPython

僕のとなりの席の露木さんがDjangoの本を書きました!

「ディージャンゴ」じゃないよ「ジャンゴ」だよ。

Googleも使ってるPythonのフレームワークで、優秀なadmin機能が標準装備されていたり、テンプレートの継承ができたりします。

僕もDjangoに(露木さんに?)インスパイアされてテンプレートの継承っぽいことができるTTのプラグイン書いて、FlipClipで使ってます。


Django×Python
posted with amazlet at 09.02.12
露木 誠
技術評論社
売り上げランキング: 5011