perl
http://search.cpan.org/~nekoya/DBIx-Skinny-Schema-Loader-0.24/lib/DBIx/Skinny/Schema/Loader.pm 久々のリリースです。例によって自分では全くコードを書かずに、頂いたPull Requestを取り込むだけの簡単なお仕事です。nyo-kichiさんありがとうございま…
今更感がありすぎる古いネタでもブログに上げてしまおうキャンペーン実施中。今ならperlbrewを使うのが圧倒的にお勧めなのですが、system Perl(OSに標準で付いてくるPerl)の出番も完全に無くなるわけでもないかなーと。例えば先日、CloudForecastをperlbre…
http://search.cpan.org/~nekoya/DBIx-Skinny-Schema-Loader-0.16/lib/DBIx/Skinny/Schema/Loader.pm YAPC楽しいけど、自分の無力さにめげそうになるよねー、ということで少しでも抵抗しようと思って講堂前で書きました。make_schema_atにignore_rulesオプシ…
http://search.cpan.org/~nekoya/DBIx-Skinny-Schema-Loader-0.15/lib/DBIx/Skinny/Schema/Loader.pm 今まで、Loaderのprimary keyに関する動作は DB上でpkが指定されていればそれを使う idというカラムがあればpkとみなす いずれにも合致しなければエラー …
昨日Twitterにふらっと投げたらreply付いたので、せっかくだからブログに書いておく。何気なくTest::MoreのPodを読んでいると、 This adds an implicit done_testing() to the end of your subtest. The following two subtests are equivalent: http://sear…
Path::AttrRouterを使うのに、 package MyController; use Any::Moose; extends 'Path::AttrRouter::Controller'; sub index :Path Args(0) { } 1; みたいに書くと「Error while loading app.psgi: Invalid CODE attributes:」とか怒られてどうすればいいん…
「馬鹿にできないアクセサのオーバーヘッド - Craftworks Tech Blog - Branch」にもあるように、Mooseのアクセサによるオーバーヘッドは無視するにはちょっと大きいという印象があります。じゃあ、Mouseだったらどうなんだろうとか、自分が使うサーバのスペ…
DBIx::Skinnyと仲間たちView more presentations from Ryo Miyake. http://perl-casual.org/2009/10/1127casual-perl-talks1.html を見て10分のLTだと思って資料用意したら5分LTだったよ! 後から出たタイムテーブルには5分って書いてあるのに、古い案内見て…
x86_64環境でText::MeCabがビルド出来ない、ってネタはググるとわりと出てくるんだけど、そうでない状況に出くわしたので記録として。MeCab本体は最新版の0.98、Text::MeCabはCPANにある0.20007でテスト。OSはCentOS5.4(x86_64)です。まず、Makefile.PLは以…
nekoya's p5-dbix-skinny-inflatecolumn-datetime at master - GitHub SkinnyでSchemaを定義する時に、 package MyApp::Schema; use DBIx::Skinny::Schema; use DBIx::Skinny::InflateColumn::DateTime; install_table books => schema { pk 'id'; columns q…
(10/19追記)ここで述べている問題は、Data::Util 0.53にて修正されました。同じ現象が発生した場合はData::Utilのバージョンを上げてください。(10/21さらに追記)と思ったらaroundで落ちる現象を確認。実はこれPerlコアのバグだったらしい。対策は可能ら…
(10/07追記)Skinny界のpgsql番長、id:sfujiwaraさんから早速PostgreSQL対応パッチを頂きました。すばらしすDBIx::Skinnyを使うのに、install_table書くのが面倒なので作りました。 nekoya's p5-dbix-skinny-schema-loader at master - GitHub 使い方とかは…
Moose::Cookbook::Meta::Recipe3みたいに、自前のTraitを作って、それをregister_implementationで短縮名でアクセス可能にする場合って、 MyApp::Meta::Attribute::Trait::XXXX Moose::Meta::Attribute::Custom::Trait::XXXX のファイルはどういう配置にする…
use Any::Moose; extends any_moose('::Object'), 'Class::Data::Inheritable'; __PACKAGE__->mk_classdata('hoge' => 'fuga'); みたいに書いてるコードがあるんだけど、デフォルト値を動的に決めたい場合は、 sub hoge { 'fuga' } みたいにメソッド定義して…
nekoya's p5-ark-actionclass-requesttoken at master - GitHub Catalyst::Controller::RequestToken的なことをするモジュールが無かったので書きました。基本的な使い方はPod見れば分かるはず。まぁcreate_tokenして、validate_tokenするだけですよ。config…
去年はチケットを購入しながらも仕事で行けなかったのですが、ついにリベンジ! 前夜祭となる出張Yokohama.pmから3daysフル参加してきました。LLTV 〜 PHPcon 〜 YAPCとイベントが続きすぎて、体力の回復が全く追い付かんとです…個別のセッションを全てエン…
Catalyst my $val = $c->session->{ $key }; $c->session->{ $key } = $new_val; delete $c->session->{ $key }; Ark my $val = $c->session->get($key); $c->session->set($key, $new_val); $c->session->remove($key); Catalystと同じやり方で書くと、Sess…
ArkのDBIx::Skinny用認証プラグインをgithubに上げました。Ark本体をforkしてpull request上げた方がいいかなとも思ったけど、ひとまず単体で。 http://github.com/nekoya/p5-ark-plugin-authentication-store-dbix-skinny/tree/master DBIx::Skinnyはgithub…
Arkでstaticなファイルが表示できないことがあるので何かと思ったら、HTTP::Engine::Middleware::Staticのdocrootにシンボリックリンクを渡していたのが原因でした。CPAN最新版のHTTP::Engine::Middleware 0.17で確認したけど、githubの最新版でも該当部分は…
Wassrでつぶやいてたら取り込まれたり、githubのcollaboratorに入れてもらったのでpushしたりしたことのまとめ。 ■$row->setの引数がhashからhashrefに変わった before $row->set($key => $val); 元々は単一のkeyでsetするのが基本、ということでhashだった…
Skinny使い始めて、FV::SimpleでDBIC::Uniqueなバリデーションは自分でPlugin書かないとダメかと思ったけど、自分の使い方だとそのままいけたのでメモっとく。FV::Simple::Plugin::DBIC::Uniqueは指定のクラスがDBIC互換のcountメソッドを持っていれば問題な…
僕の手元でTest::DeclareとかDBIx::Skinnyをmake testすると、 Subroutine Test::Declare::isa redefined at /opt/local/lib/perl5/5.8.9/Exporter.pm line 67. at /Users/ryo/perl5/lib/perl5/Test/Deep.pm line 30とか怒られます。proveで直接テスト走らせ…
最近ちょいちょい触り始めてます。DBICは確かに便利だけど、もっと気楽にいいように手を入れられるORマッパが欲しいとも思ってたので、Skinnyの薄い設計はうってつけ。 nekokak's p5-dbix-skinny at master - GitHub これをどうラッピングして料理するかで右…
WWW::Mechanizeはいろんなモジュールがベースになってて、コードを追うのが大変。LWP::UserAgentとかそれ以前の時代を知っていれば、どのモジュールが何を持ってるか分かっていいんだろうけど、いきなりWWW::Mechanizeから入ってしまうと厳しいっすね。まぁ…
typesterさん作のCatalyst風Perlフレームワーク「Ark」が魅力的。ちょっと触ってみたら、CGIでもかなり高速に動作してくれて、気軽に使えそうな素敵フレームワークです。Text::MicroTemplateの最新版でが使えなくなった関係でテストが通らなくなってたんだけ…
一度エントリを書き損ねると更新が止まる悪癖… sub prepare : PathPart('') Chained('/root') CaptureArgs(1) { my ($self, $c, $id) = @_; $c->stash->{ item } = $c->model('Service::Items')->find($id) or MyApp::Exception->throw('item not found'); #…
発表資料はきっと全部アップされるだろうし、 今日は Yokohama.pm の日です - a geek という素晴らしいまとめがあるので、メモはなし。上記まとめを見ながら改めて感想などつらつらとつづろうかと。 ■QudoxSkinny(id:nekokak) DBIx::Skinnyの詳細は前回の発…
今までyumで入るのをそのまま使うか、ビルドする時も.soにしてたんだけど、mod_perl専用で動かすならApacheに静的に組み込んでみようと思ってやってみました。うまく行かなかったんだけど、記録として。 mod_perl: Installing mod_perl 2.0 このへんを見なが…
Catalyst::Plugin::FormValidator::Simpleは使ってもいいような空気に見えるけど、試しにPluginから外してみる。それとも皆C::P::FV::S::Autoなの? あっちは確かにPluginでないと意味がない。MyApp::Controller::Base use FormValidator::Simple; sub valid…
案の定Amazonの在庫は無くなってしまった「モダンPerl入門」が届きました。まだちょっと覗いた程度ですが、これは素晴らしい一冊。僕がPerlに再入門したのは一年ちょっと前で、近代的なPerlのやり方を知るのはなかなか難しかったのを憶えてます。検索しても…