タグ

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

  • Perlbal - Hatena::Diary::Neko::kak 500 Internal Server Error

    YAPCのLTで話したPerlbalですが、 ソフトウエアロードバランサーとしてはかなり秀逸ではないかと。 まあ、Poundでもよかったりもするのですが、 なんかPoundはリダイレクトに鬼時間かかる時があるとかないとか。 トークの最後で無言で死ぬとかいいましたが、 まあ確かに死ぬときはあるです。>< なんでかわからないですが。 なのでCronとかで定期的に再起動したりしたりして。 まあ、そのあたりは監視してるのでほとんど問題ないですけど。 Perlbalはインストールも意外に簡単す。 普通にCPANからいれればおkです。 ちょっとお試ししたいなーって場合などは 適当な実験サーバにPerlbalをインストールして、80番ポートでListenさせます。 Apacheなんかはたとえば9000番ポートで動かしてmod_perl lightyを9001番ポートで動かしたりして画像配信って感じで P

    Perlbal - Hatena::Diary::Neko::kak 500 Internal Server Error
  • String::Diff - Hatena::Diary::Neko::kak 500 Internal Server Error

    信頼のおけるブロガーのString::Diffを使ってみた。 すごい! 一部抜粋で use String::Diff; my($old, $new) = String::Diff::diff($old_entry->body, $self->stash->{entry}->body, remove_open => '<span class="remove_entry">', remove_close => '</span>', append_open => '<span class="append_entry">', append_close => '</span>', ); $self->stash->{old_entry} = $old; $self->stash->{new_entry} = $new; これだけ!すばらしい。 Kwikiをさわってて、Test::VimColorのわ

    String::Diff - Hatena::Diary::Neko::kak 500 Internal Server Error
  • DBICでの簡単キャッシング - Hatena::Diary::Neko::kak 500 Internal Server Error

    DBICで簡単にお金が借りることができます(ちが まあ、面白くないのでやめておきますが、DBICは かなりパフォーマンスに気を使った設計なのは周知の事実なのでつが、 キャッシュを使うことでよりパフォーマンス向上が図れます。 例えば my $itr = $self->model('Member')->search({},{}); while (my $member = $itr->next) { warn $member->id; } $itr->reset; while (my $member = $itr->next) { warn $member->id; } こんな感じの処理があったとします。 Memberテーブルを二度処理するみたいな。 ちなみに同じオブジェクトを使う時は $itr->reset; こうしてやればイテレータがリセットされます。 この場合、2個のwhileのところでそ

    DBICでの簡単キャッシング - Hatena::Diary::Neko::kak 500 Internal Server Error
  • 配列情報の絞込み - Hatena::Diary::Neko::kak 500 Internal Server Error

    なんか、 ある配列にある値から 別の配列にある値だけをある配列から抜き出して 新しい配列をつくりてーってことがままあるわけですが、 List::MoreUtilsとかになかったのですなぁ。 package List::Grep; use strict; use warnings; use base 'Exporter'; use vars qw(@EXPORT_OK %EXPORT_TAGS); @EXPORT_OK = qw/list_grep/; sub list_grep { my $args = shift; my %tmp; @tmp{@{$args->{base}}} = @{$args->{base}}; return wantarray ? @tmp{@{$args->{grep_key}}} : [@tmp{@{$args->{grep_key}}}]; } 1; __E

    配列情報の絞込み - Hatena::Diary::Neko::kak 500 Internal Server Error
    agw
    agw 2006/11/05
    List::Grep
  • 配列情報の絞込みその後 - Hatena::Diary::Neko::kak 500 Internal Server Error

    ircで色々教えてもらった。 http://rafb.net/paste/results/UdqEr958.html こんなんとか。 これでよかった。 やりたかったことは@hoge & @mogeな絞込み。 この意図がうまく伝えられてなかったですね>< http://search.cpan.org/~samv/Set-Object-1.18/lib/Set/Object.pm#intersection(_%5Blist%5D_) とかもつかえそげ。 ちなみにさっきのコードだとgrep definedしないとダメポ。 (追記) use Perl;にも同じ内容をPostしてたら、メールが来てた。 こんなの。やっぱList::Compareかぁ。 Thanks:Stephen Steneker use List::Compare (); my @hoge = qw/1 2 3 4 5 5/; m

    配列情報の絞込みその後 - Hatena::Diary::Neko::kak 500 Internal Server Error
    agw
    agw 2006/11/05
    List::Compare
  • 1