Catalystの最近のブログ記事

久しぶりのえんとりー

めがねのひとに触発されてオレオレポリシー。
Re:Catalystアプリオレオレポリシー

仕事も個人もCatalystなんで、特にポリシーは分けてない。
会社のみんなも俺のポリシーでやればいいのに。

CatalystでLog::Dispatchが使いたくて作った。 http://search.cpan.org/~shot/Catalyst-Plugin-Log-Dispatch/ myapp.ymlに

Log::Dispatch:
 -class: File
  file:__path_to(debug.log)__
  min_level: debug
  mode:append

とか書いてあげれば使えます。

Amazonの新刊をAtomFeedで取得するサービスを作った。

いつも新刊が出てないか本屋に見に行くのが面倒だったのと、
気づかなくて買い忘れるとかよくあったから。

しばらく時間たって見ないとちゃんと動いてるかわからないけど、とりあえずこんな感じ。
          ↓
http://www.bindstorm.jp/anbs/

BloglinesとかRSSリーダ使ってる人は試してもらえると助かるっす(テスト丸投げ)

んー 実に2ヶ月ぶりの登校 じゃなくって投稿・・・
たまに人生という名の敵軍に投降したくなりますね。

んで、何かというとCatalyst-Plugin-UploadProgressを触りまして・・・
あのアップロードのプログレスバーをアップロード以外でも使いたいな!と・・

Catalyst-Plugin-UploadProgressからすごい勢いでパクリました。
Catalyst-Plugin-BasicProgress-0.01.tar.gz

ごめんなさい。

ドキュメントとかまったく何も書いてません。
Module-Starterが吐き出したやつそのままです。
サンプルCatalystアプリがついてるので感じてください。
基本的にバックグラウンド処理に入りたいところで$c->go_progress_fork(オプションほげほげ)と呼んでやるだけです。
UploadProgressと同様Cache系のプラグインが必須です。

さすがにこれはパクリすぎだからCPANにはあげないでおこう・・・

追記
うまいことプログレスバーの画面に飛ばない場合は、
go_progress_forkの直後に


my $time = time;
for(my $now = time; $now < $time + 10; $now = time) {
    # do nothing
}

等sleep以外のwaitを入れてみてください。

うーん・・・

| コメント(0) | トラックバック(0)

脳みそ整理も兼ねて。
Catalystのstashが全体共通なのが気に食わなくて何とかしようとPluginを書いていたのだが・・・
どうやって切り分けたものか。
$c->forward()で呼ばれたactionでは、そのactionのクラスにしたいんだよね

/hoge stash()->{'hoge'}->{'template'}
 $c->forward('fuga') stash()->{'fuga'}->{'template'}
  $c->forward('moge') stash()->{'moge'}->{'template'}

って感じで

caller × TT内部から呼ばれるとCatalyst::View::TT
ref($c) × 意味無し
$c->namespace() × 常に現在のactionのnamespaceぽ
$c->stack()->[-1]->namespace × TT内部から呼ばれるとMyApp::TT
動き的にTTにforwardしてるんだからTTになるに決まってるんだが、

うーーーん

Catalystのserver.plから起動する開発用サーバー。
IEからPOST送るとフリーズするんだが
何とかならんのかな・・・
mozilla系からなら問題ないぽ

環境はVine3.2+Perl5.8.2でEUC_JP
環境のせいかとも思ったんだけどcoLinux上のCentOS4.2でも一緒ぽ

どうもaccept(だっけ?)で凍るみたい

2005-11-23追記
Catalyst 5.57で直ったっぽい。
server.pl -k でkeepaliveをonにしてくれ とのこと。
なんか相変わらず挙動微妙っぽいけど、取りあえずは動くっぽい

Catalystのredirect

| コメント(0) | トラックバック(0)

Catalystのredirectが使いにくい。
アプリケーションのルートがサーバーのルートじゃないとちゃんと動かない。

つまり、
http://myapp.mydomain.org/ - ○
http://www.mydomain.org/myapp - ×
ってことらしい。

CPANにこれ直すモジュールあるかなー?と探したら なんか見つからない。
ので作った。

Catalyst-Plugin-Redirect-0.01.tar.gz

$c->redirect('hogehoge')とかやるとよしなにしてくれる。
$c->get_baseurl()で/myapp/が取れる。

あとでCPANにあげようかと思うけど、需要あるのかなぁ?

備忘録的なメモ
勉強せな・・

・Scaffoldがしょぼすぎる
・DBのエンコードとの関連
 (DBがEUC フロントがUTF-8だと化ける DBをUTF-8にするとおかしくなるところがある)
 (むしろフォームだけ化けるからTTかClass::DBI::AsForm Class::DBI::FromFormあたりか?)
・TTの入れ子の仕方
・Class::DBI::AsForm Class::DBI::FromFormじゃ使いものにならない
・各ControllerClassにて自分自身用Configを取り込む方法
・ControllerからControllerを呼ぶ仕組み
・なんで$c-res->redirectはアプリケーション名を補完しないんだ
 ってか、サーバールートでしかちゃんと動かない とか あほかと

タグクラウド

このアーカイブについて

このページには、過去に書かれたブログ記事のうちCatalystカテゴリに属しているものが含まれています。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 4.261