2008年11月28日

Shibuya Perl Mongersテクニカルトーク#10 福岡サテライト 行ってきた

通院と用事を済ませて途中参加。
以下自分めも

「"remedie" pluggable media center application 」 (miyagawa)
動画RSSリーダー(?)
ソースはGoogle Codeに有remedie

「"kamaitachi" perl flash media server 」 (typester)
perlによるFlash Media Serverの実装。
簡単に実装できそうな感じ。
サイトの鎌鼬ロゴかっこいい。

「ウェブサービスにおける SSD の使い方 」
全文検索用途にSSD。

「Acme::Acme::Don't 2.0 」(gfx)
良かった。Bはバックエンドだったのか!

「EBCDIC 2.0 Binary Hacks 」(takesako)
相変わらず発想がすばらしい。
しかし仕事以外でEBCDICにおめにかかるとは驚き。


・その他
Google CodeにほかにもPerlをベースにしたProjectがたくさんありそう。

・感想
Binaryから動画迄Shibuya.pmばりすげぇ
パブリックビューイング初体験!独りでみるより100倍良い。
会場提供して頂いた株式会社Fusic様。
尽力して下さった方々に感謝。

おわたら帰宅。腰痛し。

2008年11月13日

Perlのウェブアプリケーションフレームワーク

みんなちがって、みんないい。なのかな。

MENTA
NanoA
Yacafi

参考元
はてな#hide-k Perlの軽量ウェブアプリケーションフレームワーク最新事情

しかし・・・

Catalyst
Jifty
Sledge
TripletaiL

Boofy
CGI.pm
CGI::Application
Gantry
Mason
Maypole
MoFedge
Mojo
Soozy
:
:

Drinking Gameができそう?言いすぎ。
さて眠たくなるまでCatalyst-Manual読むか。

2008年11月2日

strawberryでCatalyst ~インスコ失敗リローデッド

Task::Catalystでインストール開始。
y/n選択はデフォルトっぽいカッコの中にしたがってひたすら回答

3時間後、うんともすんとも言わなくなる。

Perl on a Stick の strawberryだからダメなのか
5.10が問題か、そもそも可哀想なwinではダメなのか。

また後での宿題。

ActivePerl5.10でCatalyst(2) ~ 道の未だ入り口

前回ウェルカムメッセージを見る所迄。その続き。

7.作業フォルダの把握
treeで確認。
・lib:配下のアプリ名フォルダに作りこむ
・root:?多分あとででてくる。
・script:便利な”ヘルパースクリプト”の在り処
・t:テスト

D:\WRK\catalyst>tree
フォルダ パスの一覧
D:.
└─MyBBS
├─lib
│ └─MyBBS
│ ├─Controller
│ ├─Model
│ └─View
├─root
│ ├─lib
│ │ ├─config
│ │ └─site
│ ├─src
│ └─static
│ └─images
├─script
└─t

8.アプリケーションクラスの設定
・lib配下のMyBBS.pmを見る
・ここで予想されるモジュール追加→今回はどノーマルで進む。怒られる度に足していく。
・今の所これだけ。
use Catalyst qw/-Debug ConfigLoader Static::Simple/;
・-Debug はフラグ
・ConfigLoader Static::Simpleはプラグイン
これはCatalyst::Plugin::ConfigLoaderとCatalyst::Plugin::Static::Simpleのこと
・ConfigLoaderでMyBBS.pmでは無いYAMLで記述。アプリ名dir直下のアプリ名YAMLが設定ファイル。
・PPMから、DBIx::Class, DBIx::Class::Schema::Loader を入れる。

9.URIマッピングの設計

順にログイン、ログアウト、コメント入力、コメント一覧。
/login
/logout
/comment
/comment/list

・URIがパスによる分岐(ディスパッチ)になる。ディスパッチの条件は環境変数PATH_INFO
・パスでどのクラスのどのメソッドを呼ぶか決まる
・Rootクラス=ルートパスのメソッド

10.コントローラークラスの作成
(1)まず名称決定。
Root.pm(既に在る)
Login.pm
Logout.pm
comment.pm
(2)作成
D:\WRK\catalyst\MyBBS\script>mybbs_create.pl controller Login
exists "D:\WRK\catalyst\MyBBS\lib\MyBBS\Controller"
exists "D:\WRK\catalyst\MyBBS\t"
created "D:\WRK\catalyst\MyBBS\lib\MyBBS\Controller\Login.pm"
created "D:\WRK\catalyst\MyBBS\t\controller_Login.t"

D:\WRK\catalyst\MyBBS\script>mybbs_create.pl controller Logout
exists "D:\WRK\catalyst\MyBBS\lib\MyBBS\Controller"
exists "D:\WRK\catalyst\MyBBS\t"
created "D:\WRK\catalyst\MyBBS\lib\MyBBS\Controller\Logout.pm"
created "D:\WRK\catalyst\MyBBS\t\controller_Logout.t"

D:\WRK\catalyst\MyBBS\script>mybbs_create.pl controller Comment
exists "D:\WRK\catalyst\MyBBS\lib\MyBBS\Controller"
exists "D:\WRK\catalyst\MyBBS\t"
created "D:\WRK\catalyst\MyBBS\lib\MyBBS\Controller\Comment.pm"
created "D:\WRK\catalyst\MyBBS\t\controller_Comment.t"

11.テンプレートクラスを作成
(1)作成
D:\WRK\catalyst\MyBBS\script>mybbs_create.pl view TT TTSite
exists "D:\WRK\catalyst\MyBBS\lib\MyBBS\View"
exists "D:\WRK\catalyst\MyBBS\t"
Couldn't load helper "Catalyst::Helper::View::TTSite", "Can't locate Catalyst/He
lper/View/TTSite.pm in @INC (@INC contains: D:/Perl/site/lib D:/Perl/lib .) at (
eval 14) line 3.
" at D:\WRK\catalyst\MyBBS\script\mybbs_create.pl line 23

・怒られたので勘で"Catalyst-View-TT"をいれ再チャレンジ

D:\WRK\catalyst\MyBBS\script>mybbs_create.pl view TT TTSite
exists "D:\WRK\catalyst\MyBBS\lib\MyBBS\View"
exists "D:\WRK\catalyst\MyBBS\t"
created "D:\WRK\catalyst\MyBBS\lib\MyBBS\View\TT.pm"
created "D:\WRK\catalyst\MyBBS\root\lib"
created "D:\WRK\catalyst\MyBBS\root\src"
created "D:\WRK\catalyst\MyBBS\root\lib\config"
created "D:\WRK\catalyst\MyBBS\root\lib\config\main"
created "D:\WRK\catalyst\MyBBS\root\lib\config\col"
created "D:\WRK\catalyst\MyBBS\root\lib\config\url"
created "D:\WRK\catalyst\MyBBS\root\lib\site"
created "D:\WRK\catalyst\MyBBS\root\lib\site\wrapper"
created "D:\WRK\catalyst\MyBBS\root\lib\site\layout"
created "D:\WRK\catalyst\MyBBS\root\lib\site\html"
created "D:\WRK\catalyst\MyBBS\root\lib\site\header"
created "D:\WRK\catalyst\MyBBS\root\lib\site\footer"
created "D:\WRK\catalyst\MyBBS\root\src\welcome.tt2"
created "D:\WRK\catalyst\MyBBS\root\src\message.tt2"
created "D:\WRK\catalyst\MyBBS\root\src\error.tt2"
created "D:\WRK\catalyst\MyBBS\root\src\ttsite.css"


(2)TT.pm修正

TEMPLATE_EXTENTIONをTT.pmに追加


__PACKAGE__->config({
CATALYST_VAR => 'Catalyst',
INCLUDE_PATH => [
MyBBS->path_to( 'root', 'src' ),
MyBBS->path_to( 'root', 'lib' )
],
PRE_PROCESS => 'config/main',
WRAPPER => 'site/wrapper',
ERROR => 'error.tt2',
TIMER => 0
});



_PACKAGE__->config({
CATALYST_VAR => 'Catalyst',
INCLUDE_PATH => [
MyBBS->path_to( 'root', 'src' ),
MyBBS->path_to( 'root', 'lib' )
],
PRE_PROCESS => 'config/main',
WRAPPER => 'site/wrapper',
ERROR => 'error.tt2',
TIMER => 0,
TEMPLATE_EXTENTION => '.tt2'
});

12.この段階で起動してみる
D:\WRK\catalyst\MyBBS\script>mybbs_server.pl
Useless localization of subroutine entry at D:/Perl/site/lib/Catalyst/Action.pm
line 41.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader 0.19 |
| Catalyst::Plugin::Static::Simple 0.20 |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::HTTP"
[debug] Found home "D:\WRK\catalyst\MyBBS"
[debug] Loaded Config "D:\WRK\catalyst\MyBBS\mybbs.yml"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type |
+-----------------------------------------------------------------+----------+
| MyBBS::Controller::Comment | instance |
| MyBBS::Controller::Login | instance |
| MyBBS::Controller::Logout | instance |
| MyBBS::Controller::Root | instance |
| MyBBS::View::TT | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private | Class | Method |
+----------------------+--------------------------------------+--------------+
| /default | MyBBS::Controller::Root | default |
| /end | MyBBS::Controller::Root | end |
| /logout/index | MyBBS::Controller::Logout | index |
| /login/index | MyBBS::Controller::Login | index |
| /comment/index | MyBBS::Controller::Comment | index |
'----------------------+--------------------------------------+--------------'

[info] MyBBS powered by Catalyst 5.7012
You can connect to your server at http://your-fjscrdh72l:3000
[info] *** Request 1 (0.014/s) [3724] [Thu Oct 30 01:22:25 2008] ***
[debug] "GET" request for "/" from "127.0.0.1"
[info] Request took 0.028564s (35.009/s)
.----------------------------------------------------------------+-----------.
| Action | Time |
+----------------------------------------------------------------+-----------+
| /default | 0.001846s |
| /end | 0.003120s |
'----------------------------------------------------------------+-----------'

Terminating on signal SIGINT(2)

D:\WRK\catalyst\MyBBS\script>


・ctrl+cで強制終了。


#独り言
世間3連休。俺土日仕事。明日休みたい。
Fukuoka.pmと同期の息子。満1歳の誕生日。おめでとう。