タグ

ブックマーク / blog.nomadscafe.jp (13)

  • File::RotateLogs っていうログをファイルに記録していくモジュールを書いた - blog.nomadscafe.jp

    「君のPSGIファイルを僕のミドルウェアでいっぱいにしたい」という台詞を思いついたけど使い道がない kazeburo です 似たようなログ記録モジュールはCPANにいくつかあるんだけど、File::RotateLogsっていうのを書いてCPANにあげました https://metacpan.org/release/File-RotateLogs 特徴は以下の通り strftimeベースのファイル名生成 秒数指定のrotation rotation時に最新のファイルへのsymlink 古いログはforkしてバックグラウンドで削除 使い方 Proclet と組み合わせると my $app = builder { enable 'AccessLog'; $app; }; my $rotatelogs = File::RotateLogs->new( logfile => '/path/to/ap

  • Cache::Memcached::Fast v0.14のアルゴリズム変更について : blog.nomadscafe.jp

    Cache::Memcached::Fast v0.14のアルゴリズム変更について perlのmemcachedクライアントのCache::Memcached::Fastの最新バージョン 0.14 にはちょっとしたラップがあります。 Consistent-Hashing分散アルゴリズムのketamaのアルゴリズムが改善されて、それまでのバージョンと互換性がなくなっています。 changesにも書いています - improve Ketama distribution. The change is incompatible with Ketama implementation in previous versions. 現在サービスにCache::Memcached::Fastの 0.13 以下でketamを利用している場合、バージョンアップした瞬間にキャッシュがほどんどhitしなくなるってわ

  • Cache::Memcached::Fastを試す : blog.nomadscafe.jp

    Cache::Memcached::Fastを試す Perlの新しいmemcachedクライアント「Cache::Memcached::Fast」がでていたので試してみた 結論から言うと、これは使えそう。 まず、C::M::Fastはmemcached-1.2.4でサポートされた、append, prepend, cas, gets, gets_multiをサポートする唯一のPerlクライアントです。また、常に問題となるCache分散にKetama consistent hashing algorithmをサポートしているためCacheの組み替えを最小限にしてCacheサーバの追加が行えます。 手元のベンチマークでは50%〜80%、処理によりますが300%以上高速化されてます インストールは普通にCPANから行えます。ただし、memached-.1.2.4が動いていないとmake test

  • lighttpd vs Perlbal : blog.nomadscafe.jp

    lighttpd vs Perlbal lighttpdのlinux-aioサポートの記事を読んでいて気になったので、既にaioをサポートしているPerlbalの静的コンテンツを配信するWebサーバとしての性能を調べてみた。 サーバは CPU Pen4 2.8GHz ( HyperThreading付き) Memory 512MB FedoraCore6 な環境です。 上記の記事の様にファイルを3GBほど作成(メモリーより明らかに多い量) 小さい画像ファイルと見立てて、3KBのファイルを10*100*1000=1M個作成しました。 #/bin/bash for i in `seq 1 10`; do for k in `seq 1 100`; do mkdir -p $i/$k; for j in `seq 1 1000`; do dd if=/dev/zero of=$i/$k/$j b

  • pure-ftpdのカスタム認証ハンドラ : blog.nomadscafe.jp

    pure-ftpdのカスタム認証ハンドラ ライブドアBlogでも使っているらしいpure-ftpdは、カスタム認証ハンドラを簡単につくれます。 認証だけではなく、ftpd内蔵のquota機能なんかも使えて便利です。 http://www.pureftpd.org/ ドキュメントも上のサイトから行けます。 インストールは、 $ ./configure --with-altlog --with-extauth --with-paranoidmsg --with-quotas --with-throttling --without-inetd --prefix=/usr/ $ make install-strip こんなconfigureでやってます。 認証ハンドラに使うスクリプトでは環境変数として #!/bin/sh $AUTHD_REMOTE_IP $AUTHD_ACCOUNT $AUTHD

  • Load Balancer ManagerにアクセスするPerl Module : blog.nomadscafe.jp

    Load Balancer ManagerにアクセスするPerl Module mod_proxy_balancerのLoad Balancer ManagerにアクセスするPerl Moduleなんかも作っていたりするので、簡略版を載せてみる。 my $manager = BalancerManager->new( manager => 'http://proxy/lbman', balancer => 'test', # balancer://testの設定 ); $manager->enable('http://foo:8000'); #balancermanagerに登録してあるuri $manager->disable('http://foo:8000'); enable/disableの戻り値は画面のまんまで、Ok or Dis or Err。 該当しない場合は、「-」になる。

  • qw// -> qw() : blog.nomadscafe.jp

    qw// -> qw() id:typesterのとこで気になったんで、今日会社で聞いて回った。 結果、みんな qw(foo bar baz) なので僕もそうする事にする。 ちなみに、マッチングは最近 m![a-z]! と書くようにしている。 slashのマッチングが多いって言うのもあるけどね。 社内にはカッコ派の方もいました。

    fbis
    fbis 2006/09/20
    qw//派。だったけどファイルパスとか含まれる時に結局qw//が使えないからqw()かな。
  • 開発環境のこととか : blog.nomadscafe.jp

    開発環境のこととか 今は、運用の中の人をやっているので、開発環境カンファレンスでしたが、運用に使えそうなネタが結構あってよかった。 自社開発でのサーバ監視、ldapbuildに5時間かかるrpmなど、参考にさせて頂きます。 個人的な開発(運用)環境ですが、 ハードは ・Mac(家MacBook Pro+mac mini、会社iMac) ・緊急対応用のWindows Note な感じ。 社内で開発の方と連携ととりながら進めて行きたい時は、Windows Noteを持って開発陣の机の方へ行き、VNC(OSXVnc)でiMacを使ってます。全画面表示するとそこそこ使える。 緊急対応時もこの方法でやってます。たぶん夜中に会社のMacが勝手に動き出してます。 ソフトウェアの方で言えば、エディタとかにこだわる方ではなくて、jtermの付属品だった頃からずっとJeditというエディタを使ってきました。

    fbis
    fbis 2006/09/11
  • Path::Classでnew_absみたいな : blog.nomadscafe.jp

    Path::Classでnew_absみたいな ファイルシステムだから、単純にはいかないのだけれども、URIのnew_absの様なものが欲しい時がある。 Path::Classなら、両方ファイルだとして、 my $abs = Path::Class::file( Path::Class::file($base)->dir, $path ); ってやればできる。 File::Specなら my $abs = File::Spec->rel2abs( $path, $base ); むしろこっちの方が単純だったか。。 ↓上を利用してYAMLで外部ファイルをinclude use YAML; use Path::Class; sub LoadFile { my $file = shift; &_loadfile({}, $file ); } sub _loadfile { my $args =

    fbis
    fbis 2006/08/22
  • mixi入社しました : blog.nomadscafe.jp

    mixi入社しました 6月1日、株式会社mixiに入社いたしました。 どうかよろしくお願いします。 前職をやめてから、様々な方にありがたいお声をかけていただいて、 感謝しております。期待に添えますよう、mixiにてがんばっていきたいと思います。

    fbis
    fbis 2006/06/02
  • FormValidator::Simple::Plugin::DateTime::Format : blog.nomadscafe.jp

    FormValidator::Simple::Plugin::DateTime::Format MTのエントリーフォームのようにinput="text"に日付・時間を入力する場合のチェックに。 DateTime::Format::*とDateTime::Format::Strptimeを利用するメソッドの2つ use FormValidator::Simple qw/DateTime::Format/; use CGI; my $q = CGI->new; $q->param( datetime1 => '2006-04-26T19:09:21+0900' ); $q->param( datetime2 => '2006-04-26 19:09:21' ); my $result = FormValidator::Simple->check( $q => [ datetime1 => [

    fbis
    fbis 2006/05/04
    これでFV::S::P::FormatDateTime必要なくなったなー。CPANには上げるんだろうか。
  • Template-ToolkitはPure Perlでも動く : blog.nomadscafe.jp

    Template-ToolkitはPure Perlでも動く 高速化のためにXSを使用していたり、普通にインストールする依存モジュールが多いためインストールが大変なイメージがあるTemplate-Toolkitは実はPure Perlでも動く。 単純な使い方をするだけなら、アーカイブをDLしてきて、展開、Template-Toolkit-2.14以下の lib/Template.pm lib/Templateディレクトリ これを適当なパスにコピー。 Perlスクリプトで #!/usr/bin/perl use strict; use lib "Template.pmを置いたディレクトリ"; use Template; で使える。単純な使い方をする場合には依存モジュールはなかったりします。 READMEの Text::Autoformat 1.03+ DBI 1.14+ (and relev

    fbis
    fbis 2006/04/21
    むしろXS版にできるのを知らなかった
  • Plagger::Plugin::SmartFeed::ImageGather : blog.nomadscafe.jp

    Plagger::Plugin::SmartFeed::ImageGather Entryの中から画像を抜き出して、1個のFeedにするSmartFeedプラグイン 夜中の某会話にインスパイア。 StripImageとかRuleを駆使するとよろしいかと。 多くがSmartFeedからのコピペになっているところは修正したいところ Plagger::Plugin::SmartFeed::ImageGather http://nomadscafe.jp/archives/plagger/ImageGather.pm

    fbis
    fbis 2006/03/02
    Plagger::Plugin::SmartFeed::ImageGather
  • 1