2011-01-01から1年間の記事一覧

memcachedのように使えるBloomFilter

YAPCでmalaさんの話を聞いていて、memcachedのようにお手軽に使えるbloom filterがあるとひょっとすると便利かもしれない、とふと思ったのでAnyEventつかって、Bloom::Fasterのwrapperを書いてみました。https://github.com/walf443/p5-bloomd-server以下の…

qudoで一日にjobが何件ぐらい投入されたか計測する

jobが一日あたり何件ぐらい投入されているのか、お手軽に確認できるようにするのに、MySQLのtriggerを使ってみるとどうだろ、ということでやってみた。まず普段のqudoのschemaに加え、以下のようなテーブルを追加します。 CREATE TABLE `job_counter` ( `enq…

KVMをコマンドラインから使うの術

kvm

結構前に自宅サーバーの仮想化はXenにしていたのをこれからはKVMらしいのでKVMに変えてみるか、とやってみたときは、ホストOSにX入れないとうまく動かなかったりそういう点が嫌だなぁと思っていたが、だいぶ環境や情報が揃ってきて、Xenで作ったりするのと同…

isuconに参加してきた

isuconに参加してきた 当日の行動 ややうろ覚えですが、自分がやっていたことをざっくり書いてみます。 まず、実行用の環境へアクセスしようとしたら、reverse proxyのサーバーへしかsshできなかったので、とりあえずisuconユーザー以下にあるファイルをざっ…

Test::Tester

以前テストライブラリのテストを書く際に、Test::Builder::Testerがつかえる、という記事を書いたが、Test::Builder::Testerは、テストの失敗の文字列を一字一句かえないように調整したりするのが、ダルいなぁ、というのがあったりして、もっとよいやつを探…

続 Test::TypeConstraints

http://d.hatena.ne.jp/walf443/20110704/1309738408 で公開した、Test::TypeConstraintsですが、反応をもとに、微調整してCPANへあげました。 type_is_a_okというメソッド名をtype_isaにしました Data::Validatorに依存せず、Mouse::Util::TypeConstraints…

local $var += 1の挙動

Test::TypeConstraintsのレビューをしてもらっていたときにid:gfxさんに教えてもらったのですが、 local $Test::Builder::Level += 2;としていたのですが、これは、「元々の$Test::Builder::Levelに2を足す」、という挙動にはならないです。そもそも、これは…

Test::TypeConstraints

ちょっと固めに書いておきたいところで、メソッドの戻り値の型をテストしておきたくて、Smart::Argsとかを使うのに慣れてくると、ArrayRef[Int]とかでテストできると楽だなぁと思ったので書いてみました。https://github.com/walf443/p5-test-type_constrain…

Skeleton::CoC

フレームワークにそってアプリケーションを開発していると、これを追加するには、このクラスとこのクラスを作って、ここにテンプレートを追加する、といったことがよくある。railsとかだとscript/generateとかあってテンプレートを元にファイルを自動生成で…

pathogenのhelptagsしたらsubmoduleがdirtyになってめんどい

最近pathogen.vimへ移行して、だいぶvimのライブラリをupdateしたりするのが楽になったのですが、 :call pathogen#helptags()とかやると、uniteのマニュアルとかも:h uniteとかで引けるようになる、というのはとてもうれしいのですが、その一方で、git statu…

Cache::Pluggable

Cache::な名前空間を持つライブラリは、get/setなどのインターフェースがわりとそろえてあるのですが、ライブラリによって微妙に挙動が違ったりして、ちょっと別のライブラリを検証してみたり、とかが意外としづらいです。例えば、Cache::Memcached::Fastで…