タグ

ブックマーク / nekokak.hatenadiary.org (7)

  • use Lint - Hatena::Diary::Neko::kak 500 Internal Server Error

    psgiなアプリをかいてて今まで動いていたのに Shotgunを使い始めたらエラーが出てしまった。 もともとのアプリは大体こんなの use Proj::Container qw/api/; use Plack::Builder; builder { mount '/banner/' => sub { my $env = shift; my $rid = $env->{PATH_INFO} || ''; $rid =~ s!/!!; return [ '200', [ 'Content-Type' => 'image/gif', 'X-REPROXY-URL' => 'http://127.0.0.1:7000/'.$rid, ], ]; }; };バナー画像をreproxy urlをつかって配信してたの。 なんかShotgunでエラーがでるーとか騒いだら tokuhiromさんとmiyag

    use Lint - Hatena::Diary::Neko::kak 500 Internal Server Error
  • 2009年と私 - Hatena::Diary::Neko::kak 500 Internal Server Error

    いきなり2009年を振り返ってみようかと思った。 今年はいろいろアウトプットができたきがします。 DBIx::SkinnyもQudoもCPANにupしたし、 Yokohama.pmやYAPC::Asiaでも発表することができました。 Skinnyはいろいろな人に興味をもっていただけたのがとても嬉しかったです。 Skinnyの思想をベースにした他のプロダクトを開発するひともあらわれたりしたのも嬉しかったです。 Skinnyは現在アドベントカレンダーが進行中なので、 興味のある方はそちらをチェックしていただければと思います。 http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/ Qudoも個人的にはなかなかいい感じで仕上がってるので今後のエンハンスメントも頑張りたいところ。 また、PSGI/Plackが登場したことで作り

    2009年と私 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • Test::Declare - Hatena::Diary::Neko::kak 500 Internal Server Error

    最近会社のプロジェクトでもテストがないと すごい勢いでDISられるのでがんばって書いている今日この頃です。 ただやっぱりテストがあると、機能変更とかやりやすくなって 精神安定剤にもなていいですね。 test++ さてPerlでテスト書く時ってTest::Baseがかなり便利で 基Test::Baseで書いておけばいいのですが、 id:tokuhiromがでくれあ期のときに触発されて書いてみたのを さっきcodereposにあげてみました。 基Test::Moreのラッパーです。 http://coderepos.org/share/browser/lang/perl/Test-Declare/lib/Test/Declare.pm plan tests => blocks; describe 'foo bar test' => run { init { # init.. }; test

    lyokato
    lyokato 2008/03/28
    testがないとdisられる会社ってのは素敵だな
  • resultset_attributes - Hatena::Diary::Neko::kak 500 Internal Server Error

    DBICのresultset_attributesを使うとデフォルトの検索条件とか ソート条件を指定できます。 package Your::Schema::User; use strict; use warnings; use base 'DBIx::Class'; __PACKAGE__->table('user'); __PACKAGE__->resultset_attributes({ order_by => 'id DESC'}); ... 1; こんな感じでresultset_attributesを指定しておいてやると デフォルトでid DESCになってくれる。 例えば $self->model('User')->search( { name => 'nekokak' } )->first;こんなのを実行すると SELECT me.* FROM user me WHERE nam

    resultset_attributes - Hatena::Diary::Neko::kak 500 Internal Server Error
  • add_unique_constraintでゆこう - Hatena::Diary::Neko::kak 500 Internal Server Error

    RDBMSではプライマリーキーになるカラム以外にユニークに なるカラムってあるわけです。 弊社の場合ridというカラムが全てのテーブルにありまして、 それがユニークなカラムになっております。 ridには完全ランダムにユニークとなる値が入っております。 それを普通にDBIC経由で検索する場合 $self->model('User')->search({rid => 'JZJlS7Es48'})->first; こんな感じでやるのがまあ、普通なんですが、 DBICではadd_unique_constraintなるものがあります。 __PACKAGE__->add_unique_constraint([qw/rid/]) ってな感じで設定しておいてやると、 $self->model('User')->find({rid => 'JZJlS7Es48'}); こんな感じでかけます。 firstメソ

    add_unique_constraintでゆこう - Hatena::Diary::Neko::kak 500 Internal Server Error
  • Join - Hatena::Diary::Neko::kak 500 Internal Server Error

    もうすぐ2月も終わり、3月になります。 1年ってのは早いもので、もう1年のうちの2ヶ月も(ほぼ)終わりました。 おそらく3月もあっと言う間に終わるでしょう。 特に私の場合は早いと思います。 4月からモバイルファクトリーにJoinします。 Joinって書くとかっちょいいですが、要は転職です。 3月は新居への引越しや、退職に伴う手続きや入社に伴う手続きやら引継ぎやらで ばたばたしますが(実際ばたばたしてる) 4月からいいスタートを切れるように頑張ります。 今回の転職騒動で普通に働いていたら経験できないようなことも 経験できてますし、人の温かさや冷たさも味わいました。 これが私という人間を成長させる糧になればとも思います。 転職騒動のなかでうれしかった先輩の言葉。 MFがどんなとこかわからないけど、「こいつは俺の元後輩だ!」と自慢できるような すげー、SE or 技術屋になってくれよ!!! ジン

    Join - Hatena::Diary::Neko::kak 500 Internal Server Error
  • CDBIとDBICのベンチマーク2 - Hatena::Diary::Neko::kak 500 Internal Server Error

    deleteメソッドで比較してみる。 Class::DBIの方はdeleteメソッドをクラスメソッドとしても一応呼べるので CDBI::delete vs DBIC::deleteで nekokak1とnekokak2ともに1000レコード用意しました。 #! /usr/bin/perl use strict; use warnings; use Benchmark; use CDBI; use DBIC; Benchmark::timethese(1, { 'CDBI' => \&cdbi, 'DBIC' => \&dbic, }); sub cdbi { CDBI->delete(name => 'nekokak1'); } sub dbic { DBIC->delete(name => 'nekokak2'); } 結果、 Benchmark: timing 1 iterations

    CDBIとDBICのベンチマーク2 - Hatena::Diary::Neko::kak 500 Internal Server Error
    lyokato
    lyokato 2006/01/27
    実際にベンチ。
  • 1