takasick のすべての投稿

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)の構成に変更

Ti.Network.HTTPClient を使うと不正なSSL証明書のホストと通信できてしまう

変な事できないよな?と思って試してみたら証明書の無いホストと通信できちゃって思わず「まーじーでーーー」と大声で言ってしまったわけですが、validatesSecureCertificateのところにさらっとこんな事が書いてあった

Note that on iOS, this value is always false by default. This is a known issue.

true にしたら通信できなくなって一安心。あ、ちなみにTitanium Mobile 2.1.4時点での話。

参考:http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network.HTTPClient

PEAR::Mailでのメール送信が遅い

PHP 5.3 PEAR::Mail 1.2.0 で、SMTPドライバを使って結構な数のメールを送る検証をしていたら、凄く遅くなるパターンに遭遇した。散々悩んだ挙句に見つけたのがこれ

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1176279911

ソースは読んでないけど、確かに1KB付近を境に性能が大きく変わることは確認できた(遅いパターンは3倍くらい時間がかかる)。

検証とはいえ「てすとテスト」みたいなのはやめようね。というね。。まぁでも1KB以下のメールをそれなりの数送る場合は他の方法を考えたほうが良いかもしれない。

apacheのaccess_logをSQLで検索したい!

ログはファイルに出てるんだけど、ちょっとした調べものでスクリプト書いたりするのが面倒。SQLで検索できたら楽なんじゃね?と思って調べてみたら同じようなことを考えていた人がいたw

http://d.hatena.ne.jp/lolloo-htn/20090130/1233327457

しかしこれ、わりとモダンなpython環境じゃないと動かないようで、CentOS 5環境で動かすにはちょっと修正が必要だったので、修正してgithubに置いてみた。

https://github.com/takasick/apachelog2db

続・Titanium Mobile 1.8.1 + TiStoreKit 1.5 で In-App Purchases

今度は Non-Rnewing Subscription 。

基本的には Auto-Renewable Subscription ベースで行けそう。ただし、Non-Rnewing の場合大きく違うところが

  • iTunesで購読期間の管理はしない(期間を独自に管理する必要がある)
  • restore不可(複数デバイスの対応を独自に実装する必要がある)

という点。あえてNon-Renewingを使うメリットは無さそう。