タグ

catalystに関するvkgtaroのブックマーク (271)

  • Catalystアプリと設定ファイルを共通化

    作ろうとしているやつがちょうどCatalystで作り直そうかと思っていたのでひとまず、設定ファイルをCatalystから切り離して、Catalyst以外のアプリからも読み込めるようにしました。 まず、作成するアプリは下記のようなライブラリ構成です。 MyApp::API   アプリケーションのロジック部です MyApp::Web   Catalyst関連のものです MyApp::Utils  ユーティリティ。Catalystから切り離す。 MyApp::Config  設定ファイルに関するクラス MyApp::Log   ログを出力するクラス ともあれ、catalyst.plでひな形を作ります。 $ catalyst.pl MyApp::Web まずlib/MyApp/Config.pmを下記のように作成します。 package MyApp::Config; use strict; use

  • YAPC::Asia2009 で話してきました

    Chaostrのソースコードはここです。 今日紹介した構成は、事例の中で紹介してる マンガ市場 DL が一番近いです。今はやっぱり $c->req, $c->session を渡すのをやめてしまってたりします。 ちなみにマンガ市場 DL の運営を行っているのはブックヴィレッジさんです。弊社は開発協力という形でリニューアルをお手伝いさせていただきました。 姉妹サイトの ToMiCo にも先日マンガ市場 DL との連携機能が付いたようです。 FormValidator::LazyWay で検証ルールをまとめよう もう一つのセッションでは一般参加として、FormValidator::LazyWay を紹介させていただきました。 話し終わった後に質問をいただいたりして当にうれしかったです。そして返答がおどおどしててすいません。 今思い出すと、「自分でルールを作るのはどうしたら良いか」という質問で

    YAPC::Asia2009 で話してきました
    vkgtaro
    vkgtaro 2009/09/13
    id:sfujiwara おー、よかった。あと YAPC 効果で作者も補足書いてますw http://d.hatena.ne.jp/tomyhero/20090912/1252751549
  • Client Challenge

    vkgtaro
    vkgtaro 2009/06/26
    oh, memory leak checker!
  • 最近のCatalystアプリケーションの構成 - (゚∀゚)o彡 sasata299's blog

    2009年06月15日06:54 Perl 最近のCatalystアプリケーションの構成 最近のCatalystアプリケーションの構成はこんな感じっていうのがある程度固まってきたので公開してみます。 Role が使いたくて Moose も取り入れたりしてます。.。゚+.(・∀・)゚+.゚ MyApp |-- bin | |-- cron | `-- script |-- conf |-- lib | |-- MyApp | | |-- Controller | | |-- Logic # そのクラスだけのロジックはここ | | |-- LogicBase.pm # CRUD操作はここ | | |-- Model | | |-- Plugin # オレオレプラグインはここ(屮゚Д゚)屮 | | |-- Role # 共通して使えるロジックはここ | | |-- Schema | | `--

  • cpanの履歴とかuninstallとか - (゚∀゚)o彡 sasata299's blog

    2009年06月07日01:51 Perl cpanの履歴とかuninstallとか 実は昨日、、、とある事情により Catalyst::Plugin::Session を update してしまったんです。。。「何か長いなー」と思っていたら、な、何と、Catalystが 5.8 に update されていました。 ○ルナレフ: 「な… 何を言っているのか わからねーと思うが(ry」 ぎゃあぁぁぁああぁヽ(゚ロ゚; ) 最初は、「まぁボチボチ Catalyst5.8 使ってもいいかなー」くらいの軽い気持ちだったんですが、エラーがたくさん出てきます。しかも全く解決できません!!Catalystサーバの起動も失敗するし...orz ってことで、元の状態に戻しました。そのときの作業ログ。 まず、このコマンドで最近の cpan install 履歴をチェックします。このコマンドは凄く便利ですね。

    vkgtaro
    vkgtaro 2009/06/07
    plugin 側で catalyst 5.8 指定になってるのかぁ。まぁそうなるよね。うぅ。
  • Catalyst を daemontools で監視しつつ lighttpd の外部 FastCGI で走らせる方法とそのメリット - Craftworks Tech Blog - Branch

    JPA セミナーの時に jshery 氏も勧めていましたし、近頃 Geek の話題で目立つようになってきた、Catalyst を mod_perl でなく、外部 FCGI として走らせる設定方法を紹介します。 Catalyst プロセスの起動管理は DJB 氏の daemontools による管理がお勧めです。プロセスが死んでも自動的に再起動してくれます。手動での再起動も楽です。screen からショートカットキー登録して Catalyst を再起動する方法も後ほど紹介します。 Catalyst の FastCGI 起動の設定 まずは daemontools の run スクリプトです。 run #!/bin/sh exec 2>&1 exec env - \ PATH='/bin:/usr/bin:/usr/local/bin:/var/www/www.example.com/scrip

    Catalyst を daemontools で監視しつつ lighttpd の外部 FastCGI で走らせる方法とそのメリット - Craftworks Tech Blog - Branch
  • Catalystでオートログイン機能の実装 - (゚∀゚)o彡 sasata299's blog

    2009年06月05日06:06 Perl Catalystでオートログイン機能の実装 【追記ここから】 vkgtaroさんのコメントで教えていただいたURLを参考に MyApp::Plugin::Session.pm と読込み順番を修正しました。ありがとうございます!!というか、MyApp::Plugin::Session.pm は hidek さんのコードが素晴らしすぎて、最終的にほぼ同じになってしまいました(汗 ※一部変更しました(09/06/08) coderepos に同じような plugin があるよ http://coderepos.org/share/browser/lang/perl/Catalyst-Plugin-Session-DynamicExpiry-Cookie/trunk 【追記ここまで】 先日、Catalystで作ったWebアプリケーションで、オートログイン

  • Catalyst ベースのアプリケーション設計(構想) - Craftworks Tech Blog - Branch

    Catalyst は Web アプリケーションを開発するときに、フレームワークとしてとても便利です。 ひとつの Web サービスを作ろうとすると、以下のような様々な処理が必要になってきます。 ユーザーに見せるWeb インターフェイス アクセス集計などの日次バッチ処理 アバター画像などの生成・変換処理 ユーザー通知やメルマガ配信などのメール送信処理 これを、すべて Catalyst にやらせてしまうと、プロセスが太りすぎてしまいますし、アプリケーション設計として不自然です。 結論から先に言ってしまうと、モデルやロジックだけでなく、ヴァリデーション処理なども Catalyst から分離してしまい、Catalyst はリクエストのディスパッチと View だけを担当するのがスマートで、拡張・メンテナンス・テストがしやすいやり方なのかなと、最近うっすらと考えています。Catalyst 在りきではな

    Catalyst ベースのアプリケーション設計(構想) - Craftworks Tech Blog - Branch
  • 第8回 Reaction:CatalystをもっとDRYに | gihyo.jp

    アプリケーションの枠組みを越えた再利用 前回は、Catalyst 5.7で登場したチェーンドアクションを利用して適切なベースコントローラをつくれば、CRUDのような定型処理は再利用できるようになる、という話をしました。これはコンテントマネジメントシステム(CMS)のように同じようなインタフェースを持つ画面が多いシステムをつくるときには特に効果的なのですが、その再利用を、ひとつのアプリケーション内だけで完結させてしまうのはもったいない話。自社でつくるアプリケーションにはどんどん使い回していきたいものですし、コピー&ペーストを避けるためには、なんらかの名前空間上にその共通コードをまとめていく必要があります。 もちろんそのコードが小さく、十分に一般化できるものなら、Catalyst、あるいはCatalystXという名前空間に入れてもかまいませんが、コントローラの部品だけでなく、モデルやビューまで

    第8回 Reaction:CatalystをもっとDRYに | gihyo.jp
  • http://lumberjaph.net/blog/index.php/2009/05/30/catalystxdispatcherasgraph/

    vkgtaro
    vkgtaro 2009/06/01
    おー
  • 第7回 Catalyst::DispatchType::Chained:チェーンドアクションはむずかしい? | gihyo.jp

    モダンPerlの世界へようこそ 第7回Catalyst::DispatchType::Chained⁠⁠:チェーンドアクションはむずかしい? 5.7系列の目玉だったチェーンドアクション 3年前に登場したCatalyst 5.7系列で導入された機能のひとつに、チェーンドアクションと呼ばれるものがあります。これは慣れると非常に便利な機能なのですが、それまでのURLとクラスの対応を根底から覆してしまう大転換だったわりにドキュメントが不足していたため、活用の仕方がわからないという声もありました。 今回はCatalyst 5.8系列で導入された新しいツールを使いながら、このチェーンドアクションの使い方を紹介していきます。スペースの都合でCatalystの基はある程度理解しているものとして話を進めますので、わからないことがあったらCatalyst体のドキュメントやCatalyst::Manualな

    第7回 Catalyst::DispatchType::Chained:チェーンドアクションはむずかしい? | gihyo.jp
  • 同一 Action 名の Path Spec を実装するには Chained を使う

    今まで上記のような Path Spec を実装するときは sub hoge : Args(1) { my $self = shift; my ($c, @args) = @_; } こんな感じでやってた。 で、今回はこういう Path Spec を実装したかったので 同じようにだけでできるかと思ってやったら dispatch されなくなってできなかった。 sub hoge : Args(0) { my $self = shift; my ($c) = @_; } sub hoge : Args(1) { my $self = shift; my ($c, @args) = @_; } sub hoge : Args(2) { my $self = shift; my ($c, @args) = @_; } で、それを sasata299 が解決してくれた。GJ Chained を使えばいい

    同一 Action 名の Path Spec を実装するには Chained を使う
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • CatalystのChainedアクションを使いこなすための3つのルール - (゚∀゚)o彡 sasata299's blog

    2009年05月16日13:45 Perl CatalystのChainedアクションを使いこなすための3つのルール 僕は最近、Chainedアクションを良く使っています。だってとっても便利なんです>< 特に http://localhost:3000/hoge/*/*/edit みたいな複雑なURLに対するアクションを作りたいときなど、大活躍です!最近ではautoとかbeginをChainedで代用するように。。。(*´Д`*) サンプルはこんな感じ。 sub mysetup : Chained('/') PathPart('') CaptureArgs(2) { my ($self, $c, @arg) = @_; $c->log->debug("in mysetup"); $c->log->debug( $arg[0] ); $c->log->debug( $arg[1] ); }

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    vkgtaro
    vkgtaro 2009/05/15
    おつでした!
  • Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 - D-6 [相変わらず根無し]

    Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 最初からMooseベースでアプリケーションを作るというのは、実務ではなかなか難しいのはわかります。一般論は JPA #02で話すのでおいておきますが(参加申し込みは今日5/12までですよ!)、5.8 からMoose化したCatalystであった問題・注意点をちょっと書き出してみます。 1. use Catalyst Catalyst::Upgradingを読んでいると package MyApp; use Moose; extends 'Catalyst'; __PACKAGE__->setup(qw/ ConfigLoader /); という表記が見られるが、これは気をつけないと駄目。 自分が直面した問題は、path_to()等を使った時に起こった。path_to() は現アプリのルートディレクトリ

  • 第6回 Catalyst::Upgrading:検証はお早めに | gihyo.jp

    3年前の大混乱 モダンPerl界を代表するウェブアプリケーションフレームワークといわれるCatalystが2006年半ばに5.6系統から5.7系統に移行したとき、創始者のゼバスティアン・リーデル氏を追い出す形で集団管理体制に移行した開発チームが最初にしたことは、プロジェクト開始当初から使われてきたCatalystという名のディストリビューションはそのままに、Catalyst-Runtimeという新しいディストリビューションをつくることでした。 このようなディストリビューション名の変更は、CPANクライアントを使っている分には(内部でモジュール名からディストリビューション名への変換が行われるので)問題にならないのですが、外部のパッケージ管理者たちには少なからぬ負担をかけました。なにしろ突然100を越す関連パッケージの依存が変更になるのです。基的にはメタ情報だけ書き換えれば済む話とはいえ、従

    第6回 Catalyst::Upgrading:検証はお早めに | gihyo.jp
  • 『JPAセミナー #01』に参加してきたので簡単にメモ。 - (゚∀゚)o彡 sasata299's blog

    2009年04月22日07:27 勉強会 Perl 『JPAセミナー #01』に参加してきたので簡単にメモ。 今日は秋葉原で行われた『JPAセミナー #01』に参加してきました!タイムスケジュールはリンク先にもありますが、こんな感じ。(*・ω・)ノ 1. JPAの代表理事である牧さんによる挨拶 2. Jay Shirleyさんによる、「最新Perl開発手法のススメ」 3. Jay Shirleyさんによる、「Catalyst改」 で、2番と3番について簡単にまとめておきたいと思います。 2. Jay Shirleyさんによる、「最新Perl開発手法のススメ」 ・良いコードはタイプ数が少し増える。 ・タイプ数を節約したいからといって、難解なコードを書くべきではない。 ・最初からうまくやれるなんて思わないこと ・失敗しながら学んでいけばいい。でも失敗したら原因を考えること! ・Test::Cl

    vkgtaro
    vkgtaro 2009/04/28
    ( ゚∀゚)o彡゜
  • Re:JPAセミナーに参加してきた - だるろぐ - 新だるろぐ跡地

    http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/foosin/20090423/1240504868 vkgtaro URI != Action という見地から行くと :Local はイケてないということだろうか。 えー、資料を用いて説明します。むしろほぼ資料ままです。引用という名の手動コピペです。 Chainedを使うなら「アクション(メソッド名)=URI相当」という意識を捨てろ。 逆に言うと、アクション名がURIと対応する必要が無くなるよ。 Chainedを使ってない状態でコントローラ「Bar」で sub foo : Local {}とか作ると、自動的に /bar/foo というURIが出来るのが微妙ではないか? URIとは「公開される」URIであって、内部で呼び出されるメソッド自体と関係する必要は無い。 メソッド定義とURI定義が混

    Re:JPAセミナーに参加してきた - だるろぐ - 新だるろぐ跡地
    vkgtaro
    vkgtaro 2009/04/26
    引用ありがとうございます!
  • JPAセミナーに参加してきた - 新だるろぐ跡地

    有用なレポートは他の人が書いてるからそっち見たらいいと思うよマジで! なのでここでは主に口頭であったことのメモ書きを。でもこのメモすら他の人と被ってる上にメモ間違いが含まれてるから。 不完全な走り書きのようなものです。 会場では先着順でリアルタイム通訳を受けるための受信機が借りられた。 借りられてよかった。が、このイヤホン、付けてると耳が痛くなる。キーンという音が悪いのか、イヤホンがでかいのかは不明。多分両方。というわけで、耳穴拡張されつつ聞いてきた。 通訳の人は、「こういうのは慣れてないからちゃんとできないかも」と言われてたけど、全然問題なく聞けました。 スライドを映しながら解説。スライドを印刷し、日語で解説が書かれた資料も事前に配られた。 んが、資料とスライドがたまーに地味に少しだけ違ったりした。 資料には目を落とさず、前を向いて、口頭で言われた事をメモってた。 資料に書いてる事まん

    JPAセミナーに参加してきた - 新だるろぐ跡地
    vkgtaro
    vkgtaro 2009/04/24
    URI != Action という見地から行くと :Local はイケてないということだろうか。