タグ

TipsとPerlに関するp_chopinのブックマーク (41)

  • Using Unicode - Catalyst::Wiki

    Prior to version 5.90040 it was required that you load the Catalyst::Plugin::Unicode::Encoding plugin to ensure proper decoding/encoding of incoming request parameters and the outgoing body response respectively. This is done in your MyApp.pm: use Catalyst qw/ -Debug ConfigLoader Unicode::Encoding /; Since that version the Unicode support was added to core by shipping the plugin with Catalyst and

    p_chopin
    p_chopin 2010/05/21
    『mysql_enable_utf8 => 1』
  • hide-k.net#blog: TTでDBICのhas_manyなメソッドを使う

    よくわからない表題ですが要は・・・ MyApp::Schema::TopicsとMyApp::Schema::Commentsが1:nの関係にあるとして package MyApp::Schema::Topics; use strict; __PACKAGE__->has_many('comments' => 'MyApp::Schema::Comments'); 1; こんなアクションで sub list : Local { my ( $self, $c ) = @_; my $topics = $c->model('Topics')->search({}); $c->stash->{topics} = $topics; $c->stash->{template} = 'list.tt'; } TTで素でやる場合 <html> <body> <ul> [% WHILE (topic =

    p_chopin
    p_chopin 2010/01/03
    has_many / many_to_manyなModelに、TTから条件句などを指定してアクセス。例えばこんな風に書ける→[% FOREACH vt = v.thumbs({h=90}{rows=5, order_by='time DESC'}) %]
  • perl - Mac OS X - perlをDIYする : 404 Blog Not Found

    2009年02月13日16:00 カテゴリTipsLightweight Languages perl - Mac OS X - perlDIYする 気がつかなかった。 bulknews.typepad.com: Mac OS X Security Update 2009-001 might break your Perl (CPAN) A couple of my friends on IRC have told me this, and since I'm using 10.4.11 I couldn't verify, but the latest Mac OS X Security Update 2009-001 apparently breaks your Perl, if you are using Mac OS X 10.5 (Leopard) and are using

    perl - Mac OS X - perlをDIYする : 404 Blog Not Found
    p_chopin
    p_chopin 2009/12/08
    これから始めないと使い物にならない。
  • Catalyst ベースのアプリケーション設計(構想) - Craftworks Tech Blog - Branch

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

    Catalyst ベースのアプリケーション設計(構想) - Craftworks Tech Blog - Branch
  • hide-k.net#blog: DBIx::Class::ResultManagerのdeprecatedに備える

    DBIx::Class::ResultSetManager - scheduled for deletion in 09000 - search.cpan.org DBIx::Class::ResultSetManager never left experimental status and has now been DEPRECATED. This module will be deleted in 09000 so please migrate any and all code using it to explicit resultset classes using either __PACKAGE__->resultset_class(...) calls or by switching from using DBIx::Class::Schema->load_classes()

    p_chopin
    p_chopin 2009/05/05
    DBIx::Class::ResultSetを継承したクラスを作って、resultset_class()でロード。
  • CPANモジュールのアンインストール - holidays-l開発ブログ

    エントリの続きはこちら→CPANモジュールのアンインストール(改良版) - ヒルズで働く@robarioの技ログ あるCPANモジュール(以下ディストリビューションと呼びます)をアンインストールしてみます。 まずは色々紹介しながら回りくどくやってみます。最後に簡単な方法を紹介します。 消したいディストリビューションを確認 自分が消したいディストリビューションが分からなかったら、 % perldoc -tT perllocal | grep Module # 見た目より速さ優先ならこっち % grep Module `perldoc -l perllocal` でインストール履歴が出ます。perllocal.podにはインストールしたディストリビューションの一覧が時刻と共に記録されていて「昨日インストールしたアレアレ…何だっけ?」という時には割と使えます。 モジュール名とディストリビューショ

    CPANモジュールのアンインストール - holidays-l開発ブログ
  • local::libを使ったCatalyst5.7と5.8の比較テスト - hide-k.net#blog

    JPAセミナー#1でJay Shirley氏が絶賛していたlocal::libですが、その際に「異なるバージョンのモジュールをテストするのにも便利ですね」とか言っていた気がするので、早速やってみました。 お題は、Catalystで先日公開されたMoose版の5.8と旧5.7をベンチマーク比較してみます。 まずはCatalyst::Runtime 5.71001を$HOME/cat5.7にインストールします。 $ cd $ perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")' 次にCatalyst::Runtime 5.8(この時点での最新版は5.8001でした)を$HOME/cat5.8にインストールします。 $ cd $ perl -MCPAN

    p_chopin
    p_chopin 2009/05/05
    5.7のインストール『perl -MCPAN -Mlocal::lib=cat5.7 -e 'CPAN::install("M/MR/MRAMBERG/Catalyst-Runtime-5.71001.tar.gz")'』
  • Izumiのblog [Plagger] Publish::MTが動かないんですけど

    特に深い考えもなく、CPANでPerlのモジュールのアップデートなどをしていたら、PlaggerのPublish::MTが動かなくなってしまいました。このようなエラーが出てしまいます。Plagger::Plugin::Publish::MT [fatal] Sorry, entry post is failed. Because maximum number of posts a day beyond. : cfcd2 at /usr/lib/perl5/vendor_perl/5.8.8/Plagger/ Plugin/Publish/MT.pm line 81. at line 52何が悪さしているのかさっぱり分かりませんので、 まずはPublish::MTが以前と変わっていないことを確認 次にPublish::MTから呼んでいるNet::MovableTypeが変わっていないことを確

    p_chopin
    p_chopin 2009/03/01
    まだはまってないけど念のためブクマ。
  • Izumiのblog [Plagger] Planetのフィードをblogに自動投稿の続き

    p_chopin
    p_chopin 2009/03/01
    Premature end of script headers: mt-xmlrpc.cgiは、結局、改行コードの問題だったけど、念のためブクマ。
  • hide-k.net#blog: Plaggerアーカイブ

    p_chopin
    p_chopin 2009/03/01
    Filter::BreakEntriesToFeeds、Publish::MTに手を入れる
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Perl スクリプトで遅い場所を特定する方法 - Devel::Profiler / Devel::NYTProf

    仕事で書いてる Sledge アプリがあるのですが、先日負荷テストを行った結果びっくりすることに現行アプリの10倍遅いことが判明してしまいました・・・orz Sledge フレームワーク自身が重くないことは今までの経験でわかってるのですが、どうにもソースを見直しているだけでは原因が特定できない・・・そんな活躍するのがプロファイラです。プロファイラの御陰で遅いヶ所を特定することができ、無事に想定するパフォーマンスを得ることができました。この内容に関してはまた別エントリにて。 さて、プロファイラを使うとプログラム実行時の各種情報を収集し、性能解析を行うことが可能です。プロファイラについてもう少し詳しくしるには 性能解析 - Wikipedia あたりを読むと良いでしょう。 プロファイラ(英: Profiler)は性能解析ツールであり、プログラム実行時の各種情報を収集する。特に、関数呼び出しの

  • perlstyle - Perl スタイルガイド - perldoc.jp

    名前¶ perlstyle - Perl スタイルガイド 説明¶ プログラマは、もちろん人それぞれ、フォーマットには好みがあるでしょう。しかし、いくつかのガイドラインに従うことによって、プログラムの可読性や保守性をあげることができます。 もっとも重要なことは、つねにプログラムを-wフラグをつけて走らせることです。必要であれば、no warnings プラグマや $^W 変数を使用してコードの一部だけで警告を明示的にオフにします。また、つねに use strict を使用すべきです。もし、use strict を使用しないなら、その理由を十分に理解しておくべきです。use sigtrap や use diagnostics プラグマも便利でしょう。 コードレイアウトの美観に関しては、Larry が強く気にかけているのはたった一つ、複数行のブロックの閉じブラケット、その構造を開始したキーワード

  • 特殊変数一覧 [Perl講座 -Smart]

    特殊変数一覧 ※強調した特殊変数はよく使われるものです。 グローバルな特殊変数 グローバルな特殊配列と特殊ハッシュ グローバルな特殊ファイルハンドル グローバルな特殊定数 パターンマッチに関する特殊変数 ファイルハンドルに関する特殊変数 グローバルな特殊変数 $_ use English: $ARG デフォルトで入力やパターンマッチの対象になる特殊変数です。 $. use English: $INPUT_LINE_NUMER / $NR [入出力関連] ファイルハンドルの現在の行数 ※ファイルハンドルを明示的にクローズすると行番号もリセットされます。 $/ use English: $INPUT_RECORD_SEPARATOR / $RS [入出力関連] 入力時のレコード区切り文字 デフォルト値は改行文字です。 $/ の使い方 $/ を未定義値にすると、ファイルの内容を一度に読み込むこ

  • perl - 勝手に添削 - Storable : 404 Blog Not Found

    2006年05月11日13:45 カテゴリLightweight Languages perl - 勝手に添削 - Storable というわけで、ひさかたぶりの勝手に添削のコーナーです。今回は、Storableに関して。 [を] Perl の Storable モジュールのメモ store [ $first->{uhyo}, $first->{hogera} ], "a.dat"; codingそのものに問題はありませんが、damianにも載っていないbest practiceをここで一つ紹介しましょう。 Always use nstore and nfreeze instead of store and freeze. 常にnstoreとnfreezeを使う事。storeとfreezeではなく。 理由は、その方がずっとつぶしが利くからです。頭にnをつけるだけで、platform依存が

    perl - 勝手に添削 - Storable : 404 Blog Not Found
    p_chopin
    p_chopin 2008/09/18
    『常にnstoreとnfreezeを使う事。storeとfreezeではなく。』
  • http://www.multiburst.net/project-multiburst/archives/2006/06/19/2245.php

    http://www.multiburst.net/project-multiburst/archives/2006/06/19/2245.php
    p_chopin
    p_chopin 2008/07/23
    perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
  • perl - use warnings; # -w でなくて : 404 Blog Not Found

    2008年06月19日21:45 カテゴリLightweight Languages perl - use warnings; # -w でなくて 最近は、さすがにuse strict;されていない実践コードを目にすることもほとんどなくなってきたのだけど、まだ残っているのがuse warnings;利用。以下と併せて読んでいただけると幸いだ。 404 Blog Not Found:perl - use strict; # and be happy -w って何? warnings って何? まず、以下のプログラムを見てみよう。 #!/usr/local/bin/perl use strict; sub distance { my ( $a, $b ) = @_; return sqrt( $a**2 + $b**2 ); } print distance(@ARGV), "\n"; % p

    perl - use warnings; # -w でなくて : 404 Blog Not Found
    p_chopin
    p_chopin 2008/06/21
    use warnings;
  • TemplateToolkit で 自作プラグインを使う - リンギオ

    PerlTemplate-Toolkit-2.19 - comprehensive template processing system - metacpan.org を利用していて、 URLのGETパラメータを生成するとき、& や ? を含んでいるパラメータ値をURLエンコードしたい時に、 TT の Filter である uri を利用しました。 しかし、&, ?, ', " 等がURLエンコードされませんでした。 そこで、自作Pluginを利用した時のログを記録@自分用w モジュール use strict; use Template; my $template = Template->new( { PLUGIN_BASE => 'Hoge::Template::Plugin', } ); my $output; $template->process('hoge.tt', {nam

    TemplateToolkit で 自作プラグインを使う - リンギオ
    p_chopin
    p_chopin 2008/06/04
    TTのurlフィルターで&, ?, ', " 等がURLエンコードされない件。
  • Catalyst::Helper::View::TTSite と TT の AutoWrapper

    Catalyst::Helper::View::TTSite を使ってみたら、雛形のテンプレートで TT の WRAPPER がみたことがない使われ方をしていたので、調べてみたら TT の Automatic Wrapper という仕組みだった、という話。 今までの自分の TT の使い方。 普段自分が Web アプリなんかで TT を使う時の使い方は、header.tt と footer.tt とか作って、tt_process で指定するテンプレがそいつらを含めてるという、↓のような感じ。 header.tt。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta

  • hide-k.net#blog: MooseとClass::MOPでメタプログラミング始めた

    今、超熱いMoose始めたよ。 で、Moose理解するにはClass::MOP理解しなきゃいけなくて、Class::MOP理解するにはMOP理解しなきゃいけないので、ircでえろい人たちに色々教わったのでメモ。 メタプログラミング メタプログラミング - Wikipedia ロジックを直接コーディングするのではなく、あるパターンをもったロジックを生成する高位ロジックによってプログラミングを行う方法 んで、これを実現するために必要なのがメタクラスとMOP。 MOP(メタオブジェクトプロトコル) メタクラスを通してオブジェクトシステムへアクセスするAPI メタクラス クラスの振る舞いを定義したクラスでイントロスペクション(introspection)とインターセッション(itercession)を備える イントロスペクション オブジェクトの属性を得る能力 ex) 何のクラスを継承してい