モバイルに特化したフレームワーク

6ヶ月ぶりの記事。

自分はperlでモバイルサイトを作るのを専門に仕事をしているが、2008年11月以降の軽量フレームワーク祭り
以降いろいろとフレームワークを使っていて気づいたこと。

あまりモバイルに特化したフレームワークってないな…

絵文字関連やキャリアの相互依存を埋めるモジュールetcがほとんどのフレームワークには
デフォルトで備わってない。
だから、結局今までの(例えば、CGI.pmを使っていた)環境からの乗り換え時に書いたコードを
そのフレームワークの流儀に沿って書き直す羽目になっている気がする。

絵文字に関しては、今まで決定的なマッピングの仕組みがなくてその都度作り直したりして、
「無駄だなぁ…」とボンヤリ思ってたりもしたが、asialの方がこんな
ファイルを公開してくれたりして、だいぶ楽になってるが…。

携帯・perlで開発やってる各社の方々はこうした車輪の再発明的状況についてどう思われているんだろうか?
これをuse baseしておけば問題ないですよ〜みたいなモジュールはできないのかな。
もしあったら教えていただけると嬉しいなっと☆

MENTAの勉強 2

二日目です。

チュートリアルを参照にしながら、いじっていきます。
http://gp.ath.cx/menta//manual/tutorial


app/ - あなたのアプリケーションをいれるところです
app/controller/ - あなたのアプリケーションそのものをいれます
app/data/ - あなたのアプリケーションのデータがはいります
app/static/ - 静的な画像やJavaScript, CSS などをいれます
extlib/ - 厳選されたCPANモジュールたち
lib/ - MENTA そのもの
plugins/ - MENTAプラグイン
t/ - MENTA 自体のテストスクリプト。ユーザーの方はきにする必要ありませぬ


と、ざっと解説が載っていますので、MVCがどこに当たるのかつかんで行きたいと思います。


・Model
/pluginsの中に入っている.plがまさにそれのようです。
MENTA::Util::load_pluginで呼び出しを行っています。
(ディスパッチの際に全てが自動的に読み込まれる)


・Controller
app/controllerの中にplファイルを入れる。

URI: http://hoge.com/controller の場合、
controller.pmのsub indexが呼ばれる。

URI: http://hoge.com/controller/booon/ の場合、
controller.pmのsub booonが呼ばれる。

htmlに落とし込むところは、render_and_printというMenta.pmのサブルーチンを
使用。

render_and_print("hoge.mt",@param);


テンプレート名、パラメーターのハッシュが入った配列を渡せばいい。
この辺の使い方はHTML::Templateと同様のようだ。

・View
テンプレートエンジンは以前このブログで取り上げようとしてやめておいた
挫折したMojo::Templateを発展させたものを使用しているとのこと。


変数の使用法はcpanのマニュアルを見ながら少しずつ把握。
かなり柔軟なテンプレートエンジンなんですな。正規表現もテンプレート側で使えるのか〜。


どうやら、プログラム(.pl)もテンプレート(.mt)もスラッシュの後に名前をつけるだけで
呼べるようです。これはディレクトリ構成をちょっと考えねばならないかも。
controllerの直下にmtとplを並存させることもできるけど、そうしない方が
保守性から考えてもいいでしょう。


今日はここまで。
テンプレートをいじって何か表示するところまで行かなかった…汗

MENTAの勉強 1

昨年の秋口にリリースされたperlフレームワーク:MENTAの勉強を始めてみることにする。

そもそもレンサバで試してみようと思っているので公式で推奨されている
SubVersionで落としてくる手法が使えない。
zipを落とそうとしてもなぜか公式のリンクが切れているので詰まったw

しかたないので、ここからVer0.12の物を落としてくる。

ファイル解凍。
/lang/perl/MENTA/tags/release-0.12/ …と続くのですが、
とりあえず、menta.cgi(実際にhttpリクエストを受け取るところ)が入っているディレクトリ名をMENTAに書き換え、レンサバ(ロリポップ)のホームディレクトリの真下にあげました。
パーミッション設定等行って… http://hogehoge.com/MENTA/を叩く。
DirectoryIndexが設定されているので自動的にmenta.cgiへリクエストが渡る。

ほい。ひとまず表示までは行きました。
次回以降はテンプレートをいじっていこうと思います。

Mojoについて調べる

公式ページを読んでみたのでメモ代わりに。
一番最初にcpanにあげられたのが2008.09.24だから相当新しいフレームワークだ。

perlプログラミングの次世代フレームワーク
CGI.pmのためにperlを学ぶ人がいっぱいいた。色々便利だった技術が時代遅れになった今、もっと楽しいことのためにエネルギーを使うことができなくなってしまった。(効率が落ちちゃった。)Mojoはその効率をまた上げて、楽しいことに集中できるように
するための試みです。

今日はここまで。cpanMojo::Manual::Mojoliciousもぱっと読んだけど情報が少なくていまいち理解できてない。

yacafiつかうお その1

perlの軽量フレームワークyacafiを試してみる。
ロリポップみたいなレンタルサーバーにも入れられるところが手軽くていいね。
Yacafi.pmを落としてくる。

yacafi / index.cgi
| Yacafi.pm
|
+-- tmpl / index.html

ディレクトリ構成はこんな感じでしょうか。
tmplにindex.htmlをおいてindex.cgiマニュアルどおり記述

http://uta.quu.cc/yacafi/index.cgi

あとは、index.cgiにディスパッチ処理を加えていく。

http://uta.quu.cc/yacafi/index.cgi/hoge

index.cgi以降のアドレスはそのままサブルーチン名のdo_...以降になるみたい。

簡単ですね。ロリポップで標準搭載されている
mod_rewriteを使えばもうちょっとクールなURIになるでしょう。