Hatena::ブログ(Diary)

はこべにっき# RSSフィード

2008-07-10

LDRの未読数をウォッチするサービス LDR candle

僕も少しお手伝いをさせてもらっている,那由多屋新サービスLDR candleが公開されました!パチパチ

LDR candleはキャンドルグラフというグラフでLDR未読処理の様子を見ることができます.キャンドルグラフは,株価の表示に使われてるヤツですね.

僕のチャートはこちら.

http://ldrcandle.nayutaya.jp/user/hakobe932

僕の場合,(仕事|学業)のせっぱつまりっぷりが,如実にグラフに現れています.

f:id:hakobe932:20080711041308j:image

この日足チャートをみると,6月後半はスケジュールが厳しかったので,どんどん未読がたまっていってます.この日になんとか目処がたったので一気に未読数が減ってますね.しがらみから解放されて怒濤の未読処理をしたに違いありません.

f:id:hakobe932:20080711041309p:image

さらに,この時足チャートをみると,定期的に一気に未読処理をしているのがわかります.これは昼休みですね.

このような時足チャートは比較的健康的ですが,これが未読数0近くで横ばいになると注意です.LDR中毒の疑いがでてきます.

一見,グラフをながめてたのしむだけのサービスのように見えますが,グラフをいろいろな角度から眺めることで,いろいろおもしろいことが見えてくるかも知れませんし,そうじゃないかも知れません.

とりあえず,livedoor idを入力するだけで簡単に使えるので,ぜひぜひ,お試しアレ.

Catalystでアクションが受け付けるメソッドを制限

Railsだと,あるアクションはPOST以外は受付たくないってときには,

class NancharaController < ApplicationController
  verify :method => :post, 
         :only => [ :create, :delete ],
         :redirect_to => { :action => :index }
  
  def create
    # createの処理
  end

  # 略
end

という感じにverifyを使う.これだと,制限を一つの場所にかけてわかりやすい.一方,Catalystではぱっと見た感じverifyものが見つからなくて,

sub create : Local {
    my ($self, $c) = @_;
    
    if ($c->req->method ne 'POST') {
        $c->res->redirect($c->uri_for('/'));
        return;
    }
    
    # createの処理
}

という感じにアクション毎にPOSTを制限するコードを書いてる.なんかださいし,インデントが深くなっていかん.なんとか,Railsみたいにアクションの制限とかはコントローラで一括して書きたいところ.

Catalystだと,autoメソッドにしこんでおくのが普通なのかなぁ.だとすると,こんな感じ?

sub auto : Private {
    my ( $self, $c ) = @_;

    my @post_only_actions = qw(logout);

    if(    $c->req->method ne 'POST'
        && grep { $c->action->name eq $_ } @post_only_actions ) {
        $c->res->redirect($c->uri_for('/user'));
        return 0;
    }

    return 1;
}

うーん,なんかださい.みんなどうやってるんだろ.