タグ

ブックマーク / rakuto.blogspot.com (7)

  • スティーブジョブスの目

    スティーブジョブスの目が好きだ。 スティーブジョブス 偉大なるクリエイティブディレクターの軌跡 ぎらつく眼光。みなぎる自信。自分が見る未来を信じて、決して疑わない驚くべき強さ。 そして、面白いと感じる物を見て取るや自分の考えなどあっさりと捨ててしまうしとやかさ。 アーティストとしての感性。 このは、人間の目は、時間を経てこれほどまで変わる物なのか?と衝撃を与えてくれた一冊である。 Apple関連のは、たくさん読んだが、この一冊はスティーブジョブスの写真集という意味で非常に価値のある一冊だ。Apple Iを送り出した頃の、眼光が鋭い、自信に満ちあふれたスティーブジョブス(と、少しやせているウォズ)の写真から、膵臓がんと診断され余命宣告を出され、不死鳥のごとくよみがえり「Appleは電話を再発明した」と話す2007年のMacExpoの写真までが掲載されている。あと、「昨日の事でクヨクヨする

  • [Rails] ActiveRecord::QueryCacheにキャッシュの削除に関する指定を実装した。

    はてぶやdel.icio.usで意見をもらったので、ActiveRecord::QueryCacheにキャッシュの削除に関する設定をできるように実装した。 使用方法 :expire_methodsでキャッシュを削除するメソッドを指定する。指定できるメソッドは、ActiveRecord#after_○○のメソッド名。 class Person query_cache :expiry => 3.minutes, :expire_methods => [:create, :update, :destroy] end 実装 def query_cache(options) options.assert_valid_keys([:expiry, :expire_methods]) write_inheritable_attribute('query_cache_expiry', options[:e

  • [Rails] ActiveRecord::QueryCacheを実装した。CacheStoreにはmemcachedを使用。

    ActiveRecord::QueryCache ActiveRecordの富豪っぷりに困っている。キャッシュの仕組みが用意されているみたいだが過去の遺物となり使用されていない様子。(See Class::ActiveRecord::QueryCache) だから作った。 ActiveRecordの富豪っぷり ActiveRecord#findではフレーム関数を大量に呼び出し深いスタックを生成する。毎度引数+同じ値で呼び出されるのに毎度SQLの生成を行う。 そこでキャッシュ戦略でも比較的基的な、クエリ単位でのキャッシュをおこなうクエリキャッシュとしてActiveRecord::QueryCacheを実装した。引数をキーにしてキャッシュを保存するため、SQLの生成も行わず高速に結果をフェッチすることができる。今後は、エンタープライズでのO/R Mapplerのキャッシュ戦略などを調べてもう

  • Young risk taker.: [Rails] Unit::TestかRSpecのSpecファイルを実行しボトルネックとなるクエリを書き出すSlowQueryLoggerを作った

    久々に面白いモノを作った。 SlowQueryLogger RailsではActiveRecordを利用してガンガン富豪プログラムを書きがちなため、適切にインデクスを張っていないとすぐに重たくなるので、Rails中で発行された遅いクエリをロギングするプログラムを作った。 ActiveRecordの参照系クエリを発行するメソッドをEXPLAINにより実行解析情報を取得しロギングしてから通常の参照クエリを発行するように拡張し、Rails付属のUnit::TestのfunctionalテストまたはRSpecのコントローラーのSpecファイルを実行する。最終的には、filesortか一時テーブルを使用しているクエリがログファイルに書き出される。 つまり、functional testを定義したファイルかRSpecのcontrollerのスペックファイルがあれば特に何も用意する必要はない。 現在My

  • ActiveRecordには最適化する余地がたくさんある。

    UIEJでもisamu136さんと盛り上がっていたのですが、ActiveRecordが富豪過ぎる件。えぐちさんも同じことを書いているのを発見。 ActiveRecordのupdateが富豪過ぎる件 AR#saveやAR#update_attributesはレコード数が増えるとインデクスの更新がバカにならない。:stringでは無駄に可変長カラムを使用する。replace構文の使用デフォルト値をなるべく設定する。 複数のDB間の差異を埋めるための抽象化で犠牲になっている部分も多くて、個人的にはほぼMySQLのみを使用するのでMySQLに特化させるAR拡張が欲しいところ。 参考 MySQLの最適化 rakuto Lead engineer for several automotive products at Core Team, UIEvolution Inc in Kirkland. Her

  • [EffectiveRails] Vary(多様)なキャッシュに対応するcache_on_rails.rbを作った。

    昨日買ったBeauty Flowを聞いているとカッコよくて気分がのってきたので、イマイチ使いづらいRailsのキャッシュ周りをEffectiveにしてみた。 cache_on_rails.rb cache_on_rails API 使用方法 上記のスクリプトを#{RAILS_ROOT}/lib以下に設置してconfig/enviroment.rbの下のほうに次の一行を追加するだけ。 require 'cache_on_rails' 詳しくはソース中のコメント参照。 次の二点を拡張した。 HTTPリクエストヘッダの値を用いてキャッシュするコンテンツを切り替える。ブロックを評価した値をキャッシュのキーとして利用する。返り値が同じ場合は同一のキャッシュされたコンテンツが利用される。 一つ目はHTTPリクエストヘッダの値をキャッシュを生成する際のキーとして利用する。例えばユーザエージェント毎に異な

  • http://rakuto.blogspot.com/2007/02/blog-post_25.html

    jazzanova
    jazzanova 2007/03/16
  • 1