2007-10-01から1ヶ月間の記事一覧

STIでのトラブル

acts_as_cachedは便利だが、モデルで継承(STI)を使っている場合、扱いに注意必要。たとえば、 class RealEstate < ActiveRecord::Base acts_as_cached end class Land < RealEstate end class Building < RealEstate end ってモデルがあって、 # インスタ…

ホットバックアップ PITR

PostgreSQL 8 の目玉機能のひとつに、PITR(Point-in time Recovery)がある。 システムを停止せずにバックアップを採取できる(ホットバックアップ) (最新でも、過去のある時点でも)好きな時点に戻せる という特徴がある、バックアップ&レストアの仕組…

「クレイジー」なキャッシュ

yoshitetsuの日記:acts_as_cachedを使うを参考に導入してみた。 @categories = Category.get_cache(:all) do Category.find(:all, :order => 'index') end ブロックを渡すと、ブロックの戻り値をキャッシュします。 # acts_as_cached.rb # key はget_cacheの…

timed_fragment_cache

Railsは重い! これは事実。大規模なフレームワーク、高度な抽象化は重いもの。 キャッシュを活用しないとやってられません。でも、キャッシュ使ってると思うのが、失効処理の複雑さ。 Sweeperを使うったって、モデルの変更で失効させないといけないところが…

[Google Analytics][使い方]トラッキング

Q.バナーなどをクリックした人数を知りたい! A.onClickイベント使う <a href="http://www.e-tsuyama.com/" onclick="javascript:urchinTracker ('/banner/cm.png');"><img src="/banner/cm.png" alt="広告バナー"></a>

縦のborderが消えるバグ

ネストするブロックで、子ブロックをfloatさせると、親のborderが消えてしまうバグがある。 対処法は、 <div id="parent"> <div id="child1"> </div> <div id="child2"> </div> </div> div.parent { width: 760px; // コレを指定。 border: 1px solid #000; } div.child1, div.child2 { float: left; margin-left: 10px; }

render :partial をやめて高速化

Erubisは高速さがウリのeRuby処理系らしい。るびまを参考に導入してみた。 Erubis の Preprocessing 機能を使って Ruby on Rails の View 層を高速化するここにあったpartial展開ヘルパを少し書き換えて以下のようなヘルパを使っている。 # Erubis # render …

WSSE認証

時間がないのでとりあえず。RubyによるWSSE認証の実装あたりを参考に、クライアントをつくる。で、認証はこんなかんじで。(ユーザ名lam パスワードlam) class Atom::DiaryController < ApplicationController before_filter :wsse_authorize private requi…

RailsでAtomPubに対応してみる

WEB+DB Pressで、RESTに関する連載を読んだ。 vol.40はAtomPubについてだった。 RESTクライアントは、Rails 2.0 から正式にサポートされるらしいが「今つくってるのにほしい!」からやってみよう。 目標 AtomPubによるエントリのCRUD操作、 モデル生成、入力…

Pound+Mongrel+Lighttpdで安定で高速なRails環境を実現する。

筆者の環境で、Apache+FastCGI(mod_fastcgi/mod_fcgid)がちょくちょく落ちるので、構成を換えてみた。 以降、落ちることもなく安定しているので公開。ポイント mongrel_clusterで並列化(サーバ自体は1台なので負荷分散ってわけではない) どれかのプロセス…