iPhoneやiPodTouchでホームのボタンに登録する時に利用される、 AppleTouchIconとして、登録された画像を利用できるようにしました。

iPhone/iPodTouchをお持ちの方は、ぜひお試しください。

posted by Png genki on Fri 1 Aug 2008 at 22:18

named_scopeは大変素晴らしいRailsの新しい機能ですが、 おなじみのwith_scopeのように、 スコープつきのブロックを伴った利用ができないという問題がありました。 例えばこんな感じに利用しようとしてもうまくいきません。

   1  User.active do
   2    User.count # => Not run
   3  end
   4  
   5  User.active.with_scope do
   6    User.count #=> Not scoped
   7  end

そこで、昔ながらのwith_scopeと同じようにnamed_scopeを使えるようにする Gemプラグインを作りました。

with_named_scope

これを使うと、以下のように期待通りに動きます。

   1  User.active.with do
   2    User.count #=> User.active.count
   3  end

なかなか便利だと思うので、Rails本家にパッチを送っておきました。

Improved named_scope to be used like as with_scope

posted by Png genki on Fri 1 Aug 2008 at 21:16

以下の記事は、調査の結果現状のRuby on Rails では期待通りに動かないことがわかりました。


Rails-2.1の新機能であるnamed_scopeを使うと、従来のwith_scope では綺麗にかけなかったスコープの選択を簡潔に記述することができます。

   1  def gadgets_on_sidebar(place = 'index')
   2    case place.to_s
   3    when 'index'; Gadget.on_index
   4    when 'show'; Gadget.on_show
   5    else Gadget.all
   6    end.with_scope{active_gadgets + Gadget.mandatories}
   7  end

各スコープメソッドは、ActiveRecord::NamedScope::Scope オブジェクトを返すので、 これを条件にしたがって選択し、最後に.with_scope を呼んでスコープを適用します。


そこで、 with_named_scope というGemプラグインをつくり、 上述のように処理できるようにしました。 以下のようになります。

   1  def gadgets_on_sidebar(place = 'index')
   2    case place.to_s
   3    when 'index'; Gadget.on_index
   4    when 'show'; Gadget.on_show
   5    else Gadget.all
   6    end.with{active_gadgets + Gadget.mandatories}
   7  end

ということで、Rails本家にもpatchを送っておきました。

posted by Png genki on Fri 1 Aug 2008 at 13:52 with 3 comments

昨日ぐらいからdeliciousのBookmarkカウンターの画像が取得できなくなっていたのですが、このたびv2のAPIに対応することで問題を解決いたしました。

delicious/help/feeds

今までは画像を使っていましたが、今回はJSONPを使ってtotal_posts の値を取得しています。 以下のようなURLをSCRIPTタグで読み込めば良いようです。

http://feeds.delicious.com/v2/json/urlinfo/{md5}?callback={method}

methodで指定したJavaScriptのメソッドが呼び出され、 第一引数としてmd5に関連づけられた情報(urlinfo)の配列が渡されます。 今回は一つ目のurlinfototal_posts をブックマーク数として表示するようにしました。

posted by Png genki on Fri 1 Aug 2008 at 11:15

James Moore氏の sqlup を使って、従来のmusqldumpによるスナップショットの取得にくわえて、定期的にMySQLのバイナリログのバックアップを取るようにしました。

ログの取得間隔は1時間としています。 しばらく様子を見て調整する予定です。

今回の変更に際して、オリジナルのsqlupに若干修正を加える必要があったため、修正版をこちらに公開いたします。

よろしくお願いします。

posted by Png genki on Fri 1 Aug 2008 at 04:01