SQLite3というデータベースがある。サーバを持たない組込型のライブラリで、ちょっとした試作には重宝する。いやしたはず・・・だった。
過去作ったちょっとしたプログラムを動かそうとしたら、 何をどうやってもデータ更新ができない。 そういやSQLite2の時代のものだっけーとか、ライブラリのバージョンとかサポートSQLが違うのか?と思って簡単なのに直してみたり、いろいろ試行錯誤したのだが・・・
結局、 DBファイルを置いたディレクトリに書き込み権限がないとSQLiteは動かない というだけだった。こんなのデバッグモードでコンパイルするまでもなく、組込DBなんだからstraceあたりで追っかければ一発でわかったろうに・・・情けない。
ロートルが鞭打ってAJAXプログラミングをしているのだが、 非同期プログラミングと言っても、基本的にはポーリングになってしまう。クライアントから定期的に問い合わせて、結果をもらう、というパターン。
これを避けるために、何年か前に流行った Comet という手法があった。Keep-Aliveなコネクションを利用して、サーバに「つなぎっぱ」にして待たせる。サーバが情報をプッシュしたくなったら、コネクションを「切断」するというコロンブスの卵な発想で、クライアントに情報を取りにこさせるという仕組みだ。
しかし、JavaScriptの挙動がPrototype.jsをカマしているにも関わらず、MS-IEとFirefoxで違う。なぜかMS-IEでCometのコネクションが成立しているとき、1発目だけクライアントからのform POSTが効かない。取りこぼすような挙動だ。未だ解決できず。
AJAXで動作するGMAIL等の巨大クラウドアプリケーションを、当たり前のように使っているが・・・このレベルの完成度のアプリを作るのはネイティブより難しいと思える。
(俺の力では)もっと高度なフレームワークがないと、 まともなアプリケーションは作れない ということを悟った。取り残されてるなあ・・・・