タグ

ブックマーク / secondlife.hatenablog.jp (13)

  • 例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)

    最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente

    例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)
  • JSTweener - JavaScript でモーショントゥイーンするライブラリ - 2nd life (移転しました)

    http://coderepos.org/share/wiki/JSTweener http://svn.coderepos.org/share/lang/javascript/jstweener/trunk/examples/ JS でモーショントィーンするのに、JSTween というライブラリがあるのですが、一つ一つのモーションで setTimeout(func, 0) で回しててるため増えれば増えるほど重くなったり、style 設定が結構面倒だったり、一度に複数プロパティ登録ができなかったりしたので、自分でライブラリを作ってみました。ひっつき☆スターを JSTweener で動かしたら体感で全然速くなりました。 コード例ですが、ひっつきスターでのトゥイーン処理は JSTweener.addTween(el.style, { time: tm, transitions: 'easeOu

    JSTweener - JavaScript でモーショントゥイーンするライブラリ - 2nd life (移転しました)
  • ActionScript3 で JSONP を扱うライブラリ - 2nd life (移転しました)

    AS3 で JSONP を扱えるライブラリがぱっと探した感じ無かったので作りました。 http://svn.rails2u.com/as3rails2u/trunk/src/com/rails2u/net/JSONPLoader.as URLLoader とほとんど同じ感じに使えます。たとえばはてなブックマークの JSONP なら // ブラウザで表示しているドメインのセキュリティ許可 // swf のドメインが同じなら必要なし JSONPLoader.allowCurrentDomain(); var loader:JSONPLoader = new JSONPLoader(); loader.addEventListener(Event.COMPLETE, function(e:Event):void { log(e.target.data); // target.data に JSO

    ActionScript3 で JSONP を扱うライブラリ - 2nd life (移転しました)
  • 川o・-・)<2nd life - モテる Ruby! - Ruby会議 2007

    先日の Ruby 会議、参加者・スピーカ・スタッフの皆さんお疲れ様でした。非常に楽しめたイベントで、企画運営などさまざまなことを行ってくださったスタッフの方々にはほんと感謝です。 また久しぶりに Rubyist な方々といろいろ話ができて楽しかったです。人見知りなので、話しかけてくださった方々、ありがとうございます:D というわけで、以下発表資料。 モテる Ruby! 舘野祐一 ( id:secondlife ) 自己紹介 舘野祐一 id:secondlife 株式会社はてなエンジニア Shibuya.js 企画・運営 自己紹介 好きなの Ruby が好き vim が好き アイドr Ruby はモテ? Ruby は昨年から世間で大ブレイク でも Ruby を使えてもモテる気配がしない… Ruby の集まりはほぼ男性ばかり マーティン・ファウラー曰く 「Rubyコミュニティでは、女性を一切見

    kasahi
    kasahi 2007/09/01
  • TDD で作る RakuAPI ライブラリ - 2nd life (移転しました)

    RakuAPI - 楽天市場 非公式ウェブサービス という楽天の非公式 API のライブラリを作るのが流行みたいなので作ってみました。ただそれだけでは面白くないので、最近自分が TDD でライブラリ作るときの方法も軽くご紹介します。 まずはインターフェイスの構想 何はともあれ、どんなインターフェイスを定義して、どんな結果が返ってくるのかがイメージできないとライブラリは作りにくいです。というわけでざっくり最初に構想を練ります。 RakuAPI の場合は WebAPI がシンプルに使えて良い感じなので、構想を練るのに考え込む、というのはありませんでした。 そんなんで、RakuAPI.new でインスタンスを取得して、search メソッドで第一引数に検索文字列、第二引数はオプションでジャンルやプライスを渡せるように、結果は配列にStruct が格納されてる感じにしよう。と考えました。 テストを

    TDD で作る RakuAPI ライブラリ - 2nd life (移転しました)
  • 価格.com API for ruby - 川o・-・)<2nd life

    価格.com WEBサービス API マニュアル http://rails2u.com/misc/kakaku_com_api.rb.txt 価格.com WEBサービス APIがリリースされた!というわけで作ってみました。ほぼ RakuAPI ライブラリのコピペですんだ、という…。これはオフィシャルなサービスなのでそのうち rubyforge に上げる…かも(コペ)。ひょっとしたらインターフェイス周り変えるかも。id:naoya が作った naoyaのはてなダイアリー - WebService::KakakuCom で使ってる Data::Page がなにやら便利そうなのでそれっぽいページャクラス作るかもー。 使い方は require 'kakaku_com_api' require 'pp' $KCODE = 'u' k = KakakuComAPI.new results = k.s

    価格.com API for ruby - 川o・-・)<2nd life
  • ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)

    三日前から Flex2 SDK で ActionScript3 を始めました secondlife です。こんにちわ。AS3 は言語仕様的には ECMAScript と Java をあわせた感じで普通な書き方で OOP できるのでうーん、と頭をひねることはあまりないのですが、他のところでいろいろはまりまくってます。 で、原始的な解決方法として trace() を使ったプリントデバッグを行っているのですが、スクリプト言語に慣れきった体ではコンパイル時間が遅くて死にそうです。たとえばこんな HelloWorld.as package { import flash.display.Sprite; public class HelloWorld extends Sprite { public function HelloWorld() { trace("Hello World!"); } } }を

    ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)
  • MochiKit で JSONP の利用 - 2nd life (移転しました)

    最近日でも JSONP が広く知られるようになってきました。JSONPについて詳しくはhail2u.net - JSONP や snippets from shinichitomita’s journal - JSONPについてをどうぞ。 で、JSONP を簡単にライブラリから扱うには、dojo ならScriptSrcIO、prototype.js なら dojoの ScriptSrcIO ライクに拡張した Dojo penetrates Prototype Dude, WTF?! などがあります。 しかしながら、我らが MochiKit は開発者の Bob さんが JSONP を提唱したにもかかわらず、JSONP を扱う Async の関数が見あたらない*1ので作ってみました。デモでは delicious の json api をコールバック関数付きで呼び出し(JSONP)て、リストを

    MochiKit で JSONP の利用 - 2nd life (移転しました)
  • 川o・-・)<2nd life - はてな注目キーワードをグラフ化する GreaseMonkey

    http://rails2u.com/misc/hatena_hotkeyword_graph.user.js はてなの注目キーワードではその日どんなキーワードを注目されているかが解って結構面白いです。視覚的に解るともっと面白いかもー、というわけで PlotKit + GreaseMonkey でサクッと作ってみました。 こんな感じで表示されます。1画面内のグラフに主だったキーワードが表示されるので、「あっ、そういえばこの日こんな事あったよー」というのが解って割と面白いと思います。もちろんジャンル事の表示などにも対応してます。また例えば先日の大停電の日のグラフですが このように、普段あまり使われてない「東電」というキーワードが一時的にめちゃくちゃ使われてる事が解って面白いです。 技術的なところでは、GreaseMonkey の開発ならヤツに丸投げまかせろ!でお馴染みな砂糖さん の外部ライブ

    川o・-・)<2nd life - はてな注目キーワードをグラフ化する GreaseMonkey
  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
  • 川o・-・)<2nd life - Developer Enviroments Conference の発表資料

    9/8 に開かれた DEcon で windows enviroments and vim という内容で発表してきました。主に自分が使ってる windows の開発に便利なツールと、vim についてプレゼンしてきました。時間大幅に押してしまいましてスイマセン…。 また、スピーカと参加者のみなさん、お疲れ様でした。他の方の開発環境やポリシーが聴けて大変参考になりました。あとカンジマン(id:tnx)には毎度の事ながら様々な準備お疲れ様でした。 自分のプレゼンには自作のはてな記法つかったプレゼンツールを使ったのですが、よくよく考えるとそれをエントリーに貼り付ければいいじゃん!ということに気づいたので、以下に発表資料を貼り付けておきます。 windows environments and vim secondlife 発表内容 windows での環境 どんなツールがあると便利か vim vim

    川o・-・)<2nd life - Developer Enviroments Conference の発表資料
    kasahi
    kasahi 2007/05/04
  • 川o・-・)<2nd life - 異なる vim プロセスで yank-paste するプラグイン yanktmp.vim

    http://www.vim.org/scripts/script.php?script_id=1598 自分のプログラミング環境はもっぱら screen + vim なので、ある vim と別の screen で開いた vim と yank/paste をしたいときは screen の copy 機能を使ってやりとりしてました。この方法でも問題無いといえば無いのですが、vim の visual モードから yank できた方が絶対便利ですし、いちいち screen の機能を使うのではなく vim だけで完結させたいものです。 というわけで yank したときに tmp ファイルに内容を書き出し、paste するときにその tmp ファイルから paste することで、別プロセスの vim 同士でも簡単に yank/paste ができるプラグイン、yanktmp.vim を作ってみました。

    川o・-・)<2nd life - 異なる vim プロセスで yank-paste するプラグイン yanktmp.vim
    kasahi
    kasahi 2007/05/04
  • ActionScript3 でネームスペース使ったキーイベント監視ユーティリティ作りました - 2nd life (移転しました)

    AS3 のキーイベント監視でなんかいい方法ないかなー、と考えていたら良い方法が思いついたので実装してみた、らかなり便利な気がするので公開してみます。 http://github.com/hotchpotch/as3rails2u/tree/master 通常のキーイベントの監視では addEventListener(KeyboardEvent.KEY_DOWN, func) で関数を登録して switch で event.keyCode 判別して Shift が押されてるか Ctrl が押されてるかによって云々、でかなりめんどくさいです。でもこの KeyTypeListener を使うと驚き300%(当社比)の方法でキーイベントを定義できます。 // 読み込んで import com.rails2u.utils.KeyTypeListener; import com.rails2u.uti

    ActionScript3 でネームスペース使ったキーイベント監視ユーティリティ作りました - 2nd life (移転しました)
  • 1