Ditz はとても素晴らしいと思います!

つい先日、Rubyで書かれたDitzという分散型のITS(Issue Tracking System)がリリースされたようです。

http://ditz.rubyforge.org/

上のサイトをご覧になれば分かるかと思いますが、基本的にコンソールベースです。最近はtracとかredmineとかwebベースのITSが流行っているので、この時点でやや意表をつかれた感がありますが、驚くべきはその管理方法。ditzがやっていることは単純に手元のbugs.yamlを編集し、後はbugs.yamlをdarcsとかgitとかの分散型のバージョン管理システムを使って皆で共有という丸投げ方式。こうなると、じゃあbugs.yamlの内容に衝突が起きたらどうするの?とすぐに思うわけですが、その場合は普通にbugs.yamlを手作業で編集してね、という清々しい割り切り方をとっています。

ditzの利点は以下のようなものであろうと思われます。

  • とにかく手軽、ウェブサーバのセットアップなんか不要
  • コンソールベースなので軽量
  • bugs.yamlはただのYAMLフォーマットのファイルだから簡単に編集できます
  • 好きなバージョン管理システムでbugs.yamlを管理できます

使い方

まずプロジェクトを作ります。これにより、bugs.yamlがカレントディレクトリに作成されます。

ditz init

次にリリース名を作成します。リリース名は、"0.1"とか"trunk"みたいな感じにつけておいて、issueの割り当て先として使うものです。

ditz add-release 0.1

issue の登録は次のようにします。

ditz add

プロジェクトの状態を見たい時には次のようにします。

ditz status

例えばこんな感じのものが表示されます。

Keita       0/ 0 (100%) bugs,  0/ 1 (  0%) features _
aaaa        0/ 0 (100%) bugs,  0/ 0 (100%) features (no issues)

まだ解決していない issue を一覧したい時には次のようにします。

ditz todo

issueが属するリリース名を変更したい時には次のようにします。

ditz assign issue-id

issueが解決した時には、次のようにして閉じます。

ditz close issue-id

感想

というわけで、ざっとditzの使い方を見てみましたが、とても分かり易くてこれなら誰でも使えるんじゃないかと思いました。私はditzがとても気に入りましたので、今後はこれを使っていこうと思います。

ところで"ditz"って辞書で引いたら俗語で「ばか」って意味だそうです。

Ramazeさんベンチマークをもっと強化してみました

Ramazeさんベンチマークは日々進歩しております。前回の「Gruff でベンチマークをお洒落にしてみました」ではGruffを使ってとっても視覚的に結果が把握できるようにしました。しかし例えば複数アダプタでの比較はできませんでしたので、thin/mongrel/webrick でだとどうなるのかな?ということが分かりませんでした。そこで、今回はそうした比較を可能にする改良を加えておきました。

http://file.dynamic-semantics.com/hatena/981233cd-7e5e-4f1a-a859-babb32474ddd.png

なおこのベンチマークのテキスト版も置いておきます(今回 --formats=gruff,text のように出力形式を複数指定することが可能になりました)。テキスト版の方がより詳細が分かるかと思います。

http://file.dynamic-semantics.com/hatena/b77a802b-bd3d-451a-ac52-fd527e5d8999.txt

また、アダプタだけでなく、複数のリクエストパス間による比較も可能です。とっても便利になったと思いますので、皆様もお手元の環境で試して頂けますと幸いです。今回の変更点はレポジトリに push しておきます。

ところでそろそろwikiの方にも成果を反映しないとならないと思っているのですが、ちょっとベンチマーク結果が最近不可解なので、やや躊躇しています。というのも、上のグラフをご覧になれば分かるように、なぜか thin(0.7.1 codename Fancy Pants) の結果が悪いのです。以前は mongrel よりも大部早かったように記憶しているのですが、最近は何度計測し直してみてもどうにも速度が出ません。0.7.1 の性能があまり良くないのかも知れないのですが、他でそういう話を聞かないので私の環境だけだったら嫌だなぁ、と心配です。なんでなのしょう。0.8.0のリリースも間際のようなので、trunk版を試してどうなのかを調べてみないといけないような気がします。

追記

今回 ab の結果をより多く表示させるようにも変更していたのですが、テキスト版を眺めていたら Document length の値があまりにもバラバラであることに気付きました。これはひょっとしたら benchmark suite 自体になにかミスがあることを示唆しているのかも知れません。要調査!

追追記

調査した結果、benchmark suite にバグがあることが判明しました。よって今回示したグラフはインチキな結果ということになります、ダメじゃん!おまけにさらにダメなのは、バグを混入させた犯人が紛れもなく私であることです。文系でごめんなさい。反省の意を込めてただ今必死で benchmark suite の spec を作成しております。しばらくお待ち下さい。