Catalyst+jQuery+Flotの組み合わせ
Catalyst::View::JSONとjQueryの組み合わせでJSONデータのやりとりは簡単にできるのでたまにグラフを書きたくなったらFlotを使うとよさげな感じ
あんま凝ったことはできないのでちょっとした折れ線グラフかヒストグラムな用途
tickに数字以外のものを表示させるメモ
data: [[0,2],[1,4],[2,6]]
ticks: [[0, "red"], [1, "brue"], [2, "pink"]]
という感じで xの値と対応させたい文字列を合わせてticksに指定する。
catalystのres->bodyにファイルハンドルを渡す
Catalyst::Plugin::Static::Simpleで静的にサーブしているpdfとかの文書ファイルに(ベーシックとか)なんか適当な認証をかけたくて悩んでた。
そういうファイルはApacheとかに任せれば解決するんだろうけど、残念ながらApache動かせないというシチュエーション。
散々悩んだあげく別にStatic::Simple使わなくていいじゃんということに気づいてしまい、おもむろにStatic::Simpleのソースを読み始めた。
どうせFile::Slurpでもしてbodyに出力してるんだろうなぁと思ってたんだけど違った。
if ( Catalyst->VERSION le '5.33' ) {
# old File::Slurp method
my $content = File::Slurp::read_file( $full_path );
$c->res->body( $content );
}
else {
# new method, pass an IO::File object to body
my $fh = IO::File->new( $full_path, 'r' );
if ( defined $fh ) {
binmode $fh;
$c->res->body( $fh );
}
else {
Catalyst::Exception->throw(
message => "Unable to open $full_path for reading" );
}
}
最近のバージョンはファイルハンドルをres->bodyに渡せるのか。IO::Allとかもいけんのかな?
Catalystの7章
最近Jemplateを使っているので、RESTとJemplateでAjaxの章をもう一度やった。
サンプルは一カ所修正。
#__PACKAGE__->config->{serialize}{default} = 'JSON';
__PACKAGE__->config->{default} = 'text/x-json';
Catalyst: Accelerating Perl Web Application DevelopmentJonathan Rockway
Packt Publishing / ¥ 4,376 ()
通常24時間以内に発送
template toolkit mode
最近また、Catalystで色々作っているので、昔のエントリを探してTT modeの設定をした。
;;tt
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist
(cons
'("\\.html$" . html-helper-mode) auto-mode-alist))
(setq auto-mode-alist
(cons
'("\\.tt2$" . html-helper-mode) auto-mode-alist))
(require 'html-tt)
(add-hook 'html-helper-mode-hook 'html-tt-load-hook)
(add-hook 'html-helper-mode-hook '(lambda () (font-lock-mode 1)))
そして、Jonathan Rockwayのトークは聴いておくべきだったかなとスライドみながら思った。
catalystのE-Bookは本を買うと安く買えたので、ついでに買っておいたけど、本を見るまでもないときなんかに調べものができたりとか、検索できるので意外と重宝している。
Caatalystの6章と7章読んだ
なんとなく今日も読んでいる。
- 6章は、独自のモデルを作ろう
- 7章はRESTとAjax
Catalyst: Accelerating Perl Web Application DevelopmentJonathan Rockway
Packt Publishing / ¥ 5,497 ()
通常24時間以内に発送
6章はファイルシステムをCatalystのモデルにするサンプルだが、Catalyst::Model::Adaptorを知ってしまうとあまりそそられなかった。
7章はJemplateが楽しそうなんだけど、ググっても、実際に使われているという例が出てこないのが気になった。なんかデメリットでもあるんだろうか?
Catalyst本の第5章を読んだ
久しぶりに。
Catalyst: Accelerating Perl Web Application DevelopmentJonathan Rockway
Packt Publishing / ¥ 5,497 ()
通常24時間以内に発送
- Devel::REPLなんていうモジュールがあんのか。しかもコマンドがre.plでちょっと洒落てる。
- add_unique_constraintを使うとユニークキーでfindがかけられて便利になる。
- Chainedアトリビュートの使い方を理解した。
Catalyst本の4章
4章は3章でつくったアドレスブックに色々つけていく
Catalyst: Accelerating Perl Web Application DevelopmentJonathan Rockway
Packt Publishing / ¥ 4,529 ()
通常24時間以内に発送
セッションと認証を入れて、検索とページングを実装。
検索以外はdrkcore作るときにやったのをちゃんと覚えてたので流し読み。検索はDBICのクエリの作り方が参考になった。今度これにも実装してみよう。
Catalyst本の三章をやった
久しぶりにCatalystを触った気が。
Catalyst: Accelerating Perl Web Application DevelopmentJonathan Rockway
Packt Publishing / ¥ 4,529 ()
通常24時間以内に発送
3章はC::C::FormBuilderとかTTSiteを使ってちょっとしたアドレスブックを作って見ましょうぜという章。
DBICでcascading_deleteを設定すると親子関係のあるデータが一緒に消してくれるとか。なんで今まで見つけられなかったんだろうか的な内容があったりとかで、写経にしては結構楽しめた。
Catalyst Advent Calendar 4日目
Catalyst + Open Flash Chart: Fancy graphs with minimal fuss

こんなのが10分程度で作れてすごいいい感じ。昔作った遺伝子発現のやつをこっちにかえるといいかもしれん。
ちょっとしたもの作るにはChart::OFCもいいですな。
Catalystでrobots.txt
アクセスログをみてたらDrkcoreのrobots.txtへのアクセスが404なのが気になったので、Catalystでrobots.txtを扱う場合にはどうすればいいんじゃろかと調べた。
単にroot以下に配置すればいいらしい。
早速設定した。


