タグ

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

  • 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
  • Re: Qudo をためしてみた - Hatena::Diary::Neko::kak 500 Internal Server Error

    http://d.hatena.ne.jp/tokuhirom/20100322/1269250840 良くない点について考えてみた。 ドキュメント ないですね。これは人に使ってもらおうとするレベルではないので何とかしたいところ。 ワーカークラスをよみこまないと、クライアントが動作しないっぽい? 動作しません。 現在のQudoではworker毎にHookを設定できるためです。 クライアントがenqueueするときにworkerに設定されているHookを呼び出す必要があるため 現在のところクライアント側でワーカークラスを読み込む必要があります。 ただし、enqueueするのに重いworkerを読み込む必要があるのは 決定的に良くないので対処したいところ。 Hookを分けるためだけなので、クライアントを分けて管理できればいいだけなので woker毎にHookを設定できなくても対処できるのでとり

    Re: Qudo をためしてみた - Hatena::Diary::Neko::kak 500 Internal Server Error
    kamawada
    kamawada 2010/03/26
    ライブラリに対する「対話」のいい例
  • DBIx::Skinnyを使った際のDBShardingの方法考察 - Hatena::Diary::Neko::kak 500 Internal Server Error

    DBIx::SkinnyはDBIへの薄いラッパーなので ネイティブにDBShardingをサポートはしていません。 また、Shardingに限らずSlaveに勝手につないだりしてくれる便利機能もありません。 ただ、ShardingとかSlaveにつないだりはしたくなる事が有ると思うので、 サンプルコードを書いてみました。 サンプルコードはgithubにあります。 http://github.com/nekokak/p5-dbix-skinny-sample ただ、この記事を書いている時点ではgithubがぶっ壊れてるぽくcloneできません。:( 無料で使わせていただいているので文句は言えませんが。 サンプルコードでは DBIx::ShardManagerをつかってみました。 http://svn.coderepos.org/share/lang/perl/DBIx-ShardManage

    DBIx::Skinnyを使った際のDBShardingの方法考察 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • YAPC::Asia 2009おわった - Hatena::Diary::Neko::kak 500 Internal Server Error

    YAPC::Asia2009は大盛況で今年も終了しました。 関係者の皆様当におつかれさまでした。 聞きにこられた方も当におつかれさまでした。 2日(前夜祭をいれれば2.5日くらい)の間 セッションを聞きまくるのは当に体力いりますね。 あんまり纏めとかやったことないいんすが、 個人的な纏め。 DBIx::SkinnyもQudoも各所からご意見なり感想なり頂きまして 1開発者としてうれしい限りです。 意見は分かれるにしても、懇親会でSkinnyみたいに生SQLをいい案配で扱えるのは ありだと思うと言っていただいたりして、かなり嬉しかったです。 なんか昔に私が書いたDBICの使い方纏めサイトを見てる人が当に多くてビックリしました。 ちょっと前までDBICいいよーとか啓蒙しまくってた自分が今回のセッションで こき下ろしまくったのはどうかなと思いつつ今の自分の思うところをストレートに話したつ

    YAPC::Asia 2009おわった - Hatena::Diary::Neko::kak 500 Internal Server Error
  • Smoker - Hatena::Diary::Neko::kak 500 Internal Server Error

    久々エントリ。 ちょっと前からHTTP::Engineを使ったWAFを書いてましたが YAPCの資料を書く合間に一通りできたのでgithubに上げてみました。 http://github.com/nekokak/p5-Smoker/tree/master 最近HTTP::Engineを生で使ってアプリを書く事が多くなって来たのででっちあげてみた。 SmokerはHTTP::Engine+HTTPx::DispatcherなWebフレームワークを提供しつつ バッチ系の処理も使いやすいようにしてみてます。 特徴としては色々なcomponentの組み合わせがcontextとして提供される感じ。 request/response/view/stash/config/modelなどなどを全部componentとして書いておき、 必要に応じてcontextに追加していく感じ。 結構無理矢理やってますが

    Smoker - Hatena::Diary::Neko::kak 500 Internal Server Error
    kamawada
    kamawada 2009/09/07
    間違ってforkしちゃった><
  • Yokohama.pm#2 - Hatena::Diary::Neko::kak 500 Internal Server Error

    発表してきました。 資料はこちら。途中で時間切れになってしまった。 http://nekokak.org/presen/yokohama02/ デジハリ横浜さんの会場がかなりよかったですね。 デジハリ横浜++ 懇親会も楽しかった。 引き抜き合戦が特に笑えた。 次回があれば、著作権についてのトークをしてみようと思った。 明日から開発合宿で那須にいってまいります。

    Yokohama.pm#2 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • Yokohama.pm#01 - Hatena::Diary::Neko::kak 500 Internal Server Error

    Test::Declareの紹介をYokohama.pm#01でやってきました。 発表資料は http://nekokak.org/presen/yokohama01/ でどうぞ。 Shibuya.pmとは違った感じで楽しかったです! 会場の手配でkdaibaさん 懇親会の手配でtypesterさん 参加者のみなさん そして我らがリーダーclouderさん ありがとうございましたー。 次回も楽しみです。 そういえば、Spork使ってる人多かった気がする。 Ingy++ですね!

    Yokohama.pm#01 - Hatena::Diary::Neko::kak 500 Internal Server Error
  • 正しい読み方 - Hatena::Diary::Neko::kak 500 Internal Server Error

    nekokakの読み方についてなんか人の居ないところで色々言われているようです。 YAPCのLTの時にcharsbarさんが ねこかく -> ねこけーえーけー と、いいなおしていました。 混乱させてごめんなさい > charsbarさん 始めは nekokak(ねこけーえーけー)でした。 でもなんかお会いする方々に nekokak(ねこかく)とよばれており、 人も特にこだわりが無いので「ねこかく」でいいとおもっております。 むしろめんどくさいので「ねこかく」でおねがいします。 いままで「ねこけーえーけー」と呼んでいただいていた方には申し訳ありませんが これからは「ねこかく」でよろしくお願いします。 charsbarさんほんとにごめんなさい。 ただし、決して「ねこかけ」ではありませんのでご注意ください。 あとnekokakuでもありません。 一番最後にuはつきません! そこんとこよろしく

    正しい読み方 - Hatena::Diary::Neko::kak 500 Internal Server Error
    kamawada
    kamawada 2008/05/21
    『これからは「ねこかく」でよろしくお願いします。』w
  • autoboxでDBIとか - Hatena::Diary::Neko::kak 500 Internal Server Error

    sql->doとかできたらおもろいかなとおもってやってみた。 use strict; use warnings; use autobox; use autobox::DBI ['dbi:SQLite:/tmp/autobox_dbi.db'], {RaiseError => 1,AutoCommit =>1}; use Test::More tests => 8; 'CREATE TABLE foo(id INT, body TEXT)'->do; 'INSERT INTO foo(id,body) VALUES(1,"fooo")'->do; ['INSERT INTO foo(id,body) VALUES(?,?)','2','bar']->do; ['INSERT INTO foo(id,body) VALUES(?,?)','3','baz']->do; my @list = '

    autoboxでDBIとか - Hatena::Diary::Neko::kak 500 Internal Server Error
  • Net::Serverをつかってswiftyをサーバ化 - Hatena::Diary::Neko::kak 500 Internal Server Error

    やってみた。 Net::Server使えば結構簡単にいろいろできるます 今回は色々やってないですが。 http://search.cpan.org/~rhandom/Net-Server/ もっとエラー処理だとか なんだかんだでやってもいいとおもいますけど とりあえずとりあえずで。 package Cache::Swifty::Server; use strict; use warnings; use base qw/Net::Server::PreFork/; sub process_request { my $self = shift; my $cache = $self->{server}->{cache}; my $client = $self->{server}->{client}; my $line = <$client>; $line =~ s/\r?\n$//; if (

    Net::Serverをつかってswiftyをサーバ化 - Hatena::Diary::Neko::kak 500 Internal Server Error
    kamawada
    kamawada 2007/09/24
    「Net::Server使えば結構簡単にいろいろできるます」<ほえー
  • DBIx::Simple - Hatena::Diary::Neko::kak 500 Internal Server Error

    DBIx::Simpleがいい感じです。 普段はDBIC使うとして、複雑なSQLを実行しなければいけない場合、 DBI直でやったりしますが、DBIx::Simpleつかえばいい感じでかけます。 DBI直でもいいのですがOO風味でかけるのがうれしげ。 こんなん。すげー適当ですけど。 #! /usr/bin/perl use strict; use warnings; use Data::Dumper; use DBIx::Simple; my $db = DBIx::Simple->connect('dbi:mysql:test_dbic','hoge','moge') or die DBIx::Simple->error; for my $row ( $db->query('SELECT id FROM blog')->hashes ) { print Dumper $row; } my

    DBIx::Simple - Hatena::Diary::Neko::kak 500 Internal Server Error
  • DBIx::Class::StorageReadOnly - Hatena::Diary::Neko::kak 500 Internal Server Error

    とかいうのをでっち上げてみた。 スレーブにinsertとかupdateとかかけて死ねるのはイヤンなので。 まあ、開発環境のDBもちゃんと設定しておけば こんなの使わなくても気づくのですが、保険です。 package DBIx::Class::StorageReadOnly; use strict; use warnings; use base 'DBIx::Class'; use Carp::Clan qw/^DBIx::Class/; sub insert { my $self = shift; if ($self->result_source->schema->{__READ_ONLY_CONNECTION}) { croak("This connection is read only. Can't insert."); } $self->next::method(@_); } sub

    DBIx::Class::StorageReadOnly - Hatena::Diary::Neko::kak 500 Internal Server Error
    kamawada
    kamawada 2006/12/14
    ちょうどさっきinside hatena bookmarkを読んでたのでなるほどという感じ
  • 1