最近、現実逃避で「CPAN author にでもなるか」と思い、Perl でちゃんとしたモジュールを書くにはどうしたらいいかをチマチマ勉強しています。 で、そうなるとやっぱりオブジェクト指向なわけです。が、Perl は Java などに比べるとオブジェクト指向的な記述を前提としていないユルユルなプログラム言語 (あくまで主観ですが) なので、書き方も使い方も実現方法も色々あってどう...
など、いろいろ便利だと思います。やりたいことを追加して、できたかどうか評価することが簡単にできるのです。便利なサイトであることは確かです。しかし、サイトを利用するには、まず回線がつながっている必要があります。また、恥ずかしいことも書くかもしれないので、自分の手元にデータはおいておきたいと思います。 そこで、似たようなツールを Catalyst で作って...
アプリケーションのコアになるオブジェクト、まあ言うなればずばり Catalyst のコンテキストオブジェクトなんだけど、ああいう感じで全体で使い回されるオブジェクトというのが時々必要になる。特にフレームワークでそういうオブジェクトが良く登場する。 そのオブジェクトはいろいろ機能を持ってるんだけど、フレームワークのコアであったりするが故に、後からいろいろ...
Wii がリリースされた直後から、Wii ブラウザに最適化された YouTube 観賞用のサービスはたくさん公開されてきたのですが、いずれにもちょっと不満なところがあったので、自分用に作りました。 Wii Player (名前募集中!) パソコンから見ると、特に IE だと崩れてたりしますが、まぁ一応動きます。が、是非 Wii でご覧ください。 ページ上部から、ビデオを検索する。 検索結果が表示...
"MyApp"というアプリケーションを作りたい場合、Catalystのドキュメントにもそう書いてあるから皆ついついこう始める: catalyst.pl MyApp libディレクトリ内で作成されるモジュール類はこんな感じ: lib/MyApp.pm lib/MyApp/Controller/Root.pm lib/MyApp/Model lib/MyApp/View でもいくらWebアプリといってもバッチが走ったり、他のシステムとWeb以外のところで結合したりしてほぼ100% Webだけでは完結しない。...
JSON を Template-Toolkit で展開する Jemplate という記事を書いたんですが、Jemplate を使うと何がいいかってのをもう少し詳しく書いてみます。 Jemplate は TT で JavaScript 上の JSON を展開できるんですが、それだけ聞いてもしかすると「これで普段サーバーサイドでやってるテンプレートの展開をクライアントサイドに持って行けて負荷がクライアントに移ってウマー」っていうのが使いど...
IEとFirefoxではwindow.onerrorを設定するとJavaScript全体のエラーを補足できます。さらに返値をtrueにすると標準のエラーダイアログを抑制できます。簡単なサンプルはこんな感じ。 window.onerror = function(mes,file,num){ alert([ "file : " + file, "line : " + num, "message : " + mes ].join("\n")); return true; } あまり細かい情報を取得できるわけではないので、例外処理に使ったりはできないのですが、エラーメッ...
英国放送協会(BBC)がPerl on Railsを名乗るMVCフレームワークを開発したという話が一部をにぎわしていたので、簡単なまとめ。英語で話を追える人は下記を(コメント欄含めて)順に読んでいけばOKです(これ以外にもスラッシュドット(本家)をはじめ、いくつかのソースに情報が分散していますが、必要な流れはだいたいこの三つで把握できるはず)。 http://www.bbc.co.uk/blogs/radiolabs/...
『 Plagger、yum、FedoraCore 』
この前の仕事からTipsをダンプ... Catalyst x Lighttod の時、Catalyst は 5.7004 以上必須 Shibuya.pm の typester さんの話で感化されたのもあって採用した Lighty、イイ。シンプルに言われたことだけをこなしてくれる感じ。 で、Catalyst を Lighty で動かすときは Catalyst 5.7004 以上が必須なんすね。でないと、SCRIPT_NAME などの環境変数のバグから、http://example.com/foo/ と http://example.com/foo のように最後に...
HTML::Prototypeを使ったauto complete fieldをCGI::ApplicationとCGI::Application::Plugin::HTMLPrototypeを利用して組んでみた。 すでに珍しくもないauto completeの動作サンプルは以下 http://nomadscafe.jp/test/autocompletefield/app.cgi/ 市区町村名を途中まで入力すると候補がでてくる。 CGI::Applicationで use base qw(CGI::Application); use CGI::Application::Plugin::TT; use CGI::Application::Plugin::HTMLPrototype; としてTTとHTMLPrototypeプラグインを...
Perl:forkしたプロセス間でのメモリ領域の共有 (Link: 遅レス。 - Apache + mod_perl - MaxClients の値に注意) | Typemiss.netの後,LinuxのCopy On Writeについて調べてみました。 このエントリではLinuxのCopy On Writeの挙動を簡単に説明し,mod_perlやFastCGI環境の場合に,どういうことがおこっているのか,どうすればそのような環境でメモリを節約できるのかについて説明してみます。・・・あまり分...
こんにちは,結城浩です。今回はPerlのWebアプリケーション・フレームワーク「Catalyst」を解説し,簡単なメモ帳プログラムを作ります。 Catalyst(カタリスト)は,Perlで作られたWebアプリケーション・フレームワークです。Catalystを使うと,Webアプリを簡単に作成・テスト・配布することができます。catalystという単語のそもそもの意味は,「触媒」あるいは「促進させるもの」...
Catalyst::Model::DBIC::Schemaを使ってみました。 DBIx::Classで新しくなったSchemaモデルをCatalystのModelとして使うクラスなのですが、今までのM...
『 同じpathでGETとPOSTで動作を分けてます。 loginを使うだけで、ユーザ認証からセッションへの登録まで、全て行ってくれます。 』
Jemplate is a templating framework for Javascript that is built over Perl's Template Toolkit (TT2). Jemplate parses TT2 templates using the TT2 Perl framework, but with a twist. Instead of compiling the templates into Perl code, it compiles them into Javascript. Jemplate - Javascript Templating with Template Toolkit - search.cpan.org かぜぶろさんや宮川さんがブックマークしてたので気になってちょっと見てみた新着モジュールの Jemplate。なかなか面白いです。T...
id:charsbarさんが、先ほど書いたエントリに関して後半その通りなわけですが、CatalystはModel::DBIC系のせいでMVCが誤解されてるのよねーと言っておられる。たしかにその通り。「モデルってDBでしょ?」みたいな印象が一般的にあると思う。そういう印象を持ってる人に説明すると、「モデルを作る」って何かというと、DBのようなストレージにあるものをどうこうする、ではなくて「...
MVCのモデルはDBじゃなくてもいいんだよ - D-6 [相変わらず根無し] ちょっと盛り上がってるので事例を紹介。 Six Apart では Vox などで Catalyst つかってますが、アプリケーションの下の Model (実際にいうと Vox::App::M 以下) は空っぽです。意味ないから。 Catalyst の Model にもともと自分が期待していたのは Rails でいう ActiveResource みたいなもので、LDAP にエントリをつくるのも デ...
Catalyst は Perl on Rails などとも俗称される Perl のフレームワークのひとつです。詳細はあちこちのブログで紹介されていますのでそちらをご覧いただくとして、管見する限りドキュメント類の翻訳がないようでしたので翻訳してみました。現在のテキストはCPANにあがっている
各所のチュートリアルを済ませた後、何か簡単なものを作ろうと思っていたが、これがなかなかいい題材がない。そんな折、 perl 版 Rails とも言える Catalyst を使って、task*pad.jp を実装しているページを見つけ、これを参考にしつつ Rails で実装してみた、その経過である。 task*pad.jp の簡易版ということで、プロジェクトネームは Task とした。 各ソフトウェアのバージョン 今回使用...