前のエントリー でGAEにおけるトランザクションの問題は一応解決をみた。
その後、GAEで開発を続けた結果、やはりGAEにブログを移行するのは断念した。理由としては
os.listdir
などで不審な挙動が見られた- スキーマを変更したときが非常に面倒
- インポート、エクスポートの難しさ
が主なところ。
os.listdir
については、web.pyでテンプレートを検索するときに os.listdir
を使っているのだけど、どうも動きが怪しい。正しくファイルリストが帰ってきたり帰ってこなかったりするのだ。何回も本番にアップして試したところ、 os.listdir("hoge");os.listdir("hoge")
というように同じ内容で2回連続で呼び出すとなぜか確実にファイルリストが帰ってくる、という・・・これはちょっと・・・
スキーマの変更に関しては、まんま。変更したとき、それを本番に反映させるのがめんどくさい。
インポートエクスポートも負荷を考えるとしんどい。現在もWEBはレンタルサーバで運用しているのでわざわざGAEにもっていく旨みもない。
ということでせっかくブログをつくったのに移行をやめたのである。
しかし、せっかく作ったのにもったいない。ということで今度はGAE用につくったブログを普通にMySQLを使うようにポーティングした。今回はそれに試験的に移行してみたのだ。
なぜWordpressからわざわざ独自ブログソフトウェアに移行したのか。理由は前のエントリーにも書いたとおりだけど
-
Wordpressのコードが気に食わない(OSSとしてバランスをとっている、というのはあるんですが)
-
使用しているテンプレートや、プラグインも含めると出力されるHTMLが汚い。
-
ついている機能の半分以上は使っていない。ブログライトユーザの俺には機能が多すぎる。
- 自分の使う機能が固まった。それさえあれば俺には十分とわかり始めた。
-
セキュリティ的にもWordpressはターゲットになっていて微妙。
以上のようなところをふまえ
- 明快なコード。
- キレイなXHTML。
- 自分が使う機能だけ実装。
- 堅牢なコード。
ということを心がけた。またレンタルサーバで動かすということで
- なるべく静的HTMLとしてキャッシュしてmod_rewriteで飛ばす
- 見た目や外部連携に関する動的な部分はなるべくクライアントサイドで
ということにも気を配った。
このブログは3年目に入るのだけど、やはりWEBの世界というのは流れが速いもので大分変化があった。その中で、外部連携はほぼJSONPで行えるようになったのでサーバサイドでやらなくても良くなった。今回実装したブログでは各SBMのブクマ数を表示しているけど、これも全てJSONPでクライアントサイドで実現している。それに対し、旧ブログ(Wordpress)ではサーバサイドで定期的に取得していた。
という感じで出来上がったのがこのブログだ。もうひとつ、実はこのブログ、XREAでしかもPython2.5で動かしている。あれ、XREAでPython2.5使えたっけ、というあなた。実は簡単に使えちゃうワザがあるんですよ。それについては、また。
あまりテストもせず試験的に移行してみたのでおかしい部分もあるかと思いますが、そこはおいおい。パーマリンクはそのままになっていると思います。基本的にURLは変更していません。また、CGIで動かしていますので、負荷が高ければ前のに戻す予定です。