土日はWebアプリケーションを作ろうとしてたりHTML書いたりしてました。全く俺らしくない作業だな。仕方ないが。
Webアプリケーションはイベントページなんだけど、今回はGoogleAppEngineに置くことに。前回xreaに置いたら当日負荷というかアクセス過多で503連発してしまったので、今回は負荷に柔軟に対応できそうなGoogleAppEngineで。従量制なのでイベント当日以外はお金ほぼかからんし。
しかし問題はGAEがPythonかJavaしか対応してないってことだ。Rubyは?ねぇRubyは?JRubyを使えって?えー。
そんなわけでJRubyを使って泥沼に突撃するかPythonで頑張るかしか選択肢が無い。とりあえず引き返せないものでもないのでJRubyを試して無理そうだったらPythonに逃げよう。
で、いろいろやってたが、appengine-jrubyてなgemを使ったら何も頑張る必要もなく*1Rackで作ったものが動いてしまったのであった。
あとはGAE専用のAPIをぽちぽちいじってみて使い方を確認。Java前提なのでちょっとストレージがめんどいけどまあなんとかなるかな。DataMapperなるもののバインディングもあったんだがちょっと調べて使いかたが気持ち悪いので保留。俺はまだそれを使うレベルではない。
アップロードもコマンド一発だしむしろftp使うより快適なくらい。
しかし欠点はやっぱりあるもので。起動がめっちゃ遅い。単なるHelloWorldでも初回アクセスに30秒くらいかかってるよ! 初回といっても、しばらく誰もアクセスしないとアプリが落とされてしまうので、そしたら次にアクセスするとまた数十秒かかっちゃうわけだ。
ま、一回起動すればその先は問題無いからいいんだけどさ。
あとは思ったよりCPU時間がくわれる。聞いた話ですとストレージにアクセスするのは結構重いのでmemcacheを使えとのこと。memcacheの割り当て意外に小さいんだよなぁと思ったが、課金状態になると馬鹿みたいに増えるので気にしなくていいっぽいな。
memcacheはRubyからでも扱いやすいので楽だわこれ。
とりあえずGAEはいまのところ使い方を確認しただけ。これで安心してページを作れるので告知ページを作ってた。
デザインにひたすら悩んで適当なところで妥協しつつHTML、CSS書きなど。
結論としてはHTMLは早く滅んだ方がいい。というかページの中身を書くのにはHTML/CSSでもいいんだが、レイアウトには全く向いていない。不可能だ。全面Flashの方が全くまともである。
しかしそんなこと言っても仕方ないので、何故かちゃんと表示されてくれないCSSをちまちまといじってなんとかごまかすのであった。
SilverlightでIronRubyがちゃんと動くようになったら覚悟しておけよ*2。全面Silverlightにしてやる。
あ、全面Flashにしなかったのは、Flash高くてもってない、ActionScript3はかわいくないから嫌いだ、という理由によります。