タグ

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

  • Rails の to_json を 13 倍速くする方法 - 2nd life (移転しました)

    http://shugo.net/jit/20060715.html 先日、ちょっとした Rails アプリを作っていたのですが、JSON で出力する部分がやたらと遅くて困ってました。で、軽く調べてみたら ActiveSupport の String#to_json がやたらと重い!そういえば前田さんも遅い云ってたよな、と思って上記 URL で書いてある String#to_json に変更したところ、なんと約 13 倍も速くなるという驚きの結果に!!! というわけで、Rails で JSON な API を提供している人は割と上記 String#to_json の変更が必須かと。家にとりこまれないかなー。 あとベンチマークはこんな感じで。Benchmark::Runner は自作のを使ってます。 #!/usr/bin/env ruby require 'benchmark/runner

    Rails の to_json を 13 倍速くする方法 - 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コミュニティでは、女性を一切見

    ques9
    ques9 2007/09/12
  • 川o・-・)<2nd life - RubyGems パッケージの作り方 - rubyforge 登録まで

    語の解説で RubyGems パッケージの作り方や rubyforge 登録までの一連の方法が書いてあるところを見かけたことがないため、エントリーにしてみます。なれると割と簡単です。 優しい RubyGems パッケージの作り方 newgem コマンドでのひな形作成 http://drnicwilliams.com/2006/10/11/generating-new-gems/ perl には module-starter など、CPAN モジュールのひな形を作ってくれる便利なユーティリティがありますが、gem でそれにあたるのが newgem というパッケージです。 使い方は簡単で、 # gem install newgemで newgem をインストールしてから newgem コマンドを実行するだけで以下のようにひな形を作ってくれます。 $ newgem packagename c

    川o・-・)<2nd life - RubyGems パッケージの作り方 - rubyforge 登録まで
    ques9
    ques9 2007/09/12
  • vim の text-object をより便利に使えるプラグイン - surround.vim - 2nd life (移転しました)

    http://www.vim.org/scripts/script.php?script_id=1697 vim7 から追加された text-object は大変便利で、今や手放せなくなっています。その text-object をより便利に使えるプラグイン、surround.vim が便利すぎるので紹介します。 いままで、text-object では (以下では、コードの『*』の位置に現在カーソルがあると考えてください。) foo 'b*ar' bazの位置にカーソルがあるとき、i' でシングルクオーテーションの中身を選択できたり、a' でシングルクオート含む部分を選択できました。しかし『'』そのものを削除したり、置換したりはできなく、ちょっと不便でした。しかし、surround.vim では ds cs ys vs それぞれにコマンドを割り当てて、様々なことができるようになってます。たと

    vim の text-object をより便利に使えるプラグイン - surround.vim - 2nd life (移転しました)
    ques9
    ques9 2006/12/27
  • rails.vim まとめ - 2nd life (移転しました)

    id:higepon に『rails.el も rails.vim も知らなかったよ!もっと早く知ってたら生産性が三倍になっていたのに!(一部誇張』と云われたので、rails.vim について ひげぽん OSとか作っちゃうかMona- - rails.el まとめ に沿った形で簡単に紹介したいと思います。 インストール 通常のインストール http://www.vim.org/scripts/script.php?script_id=1567 から rails.zip をダウンロードし、~/.vim/ 以下に展開します svn からのインストール vba (vim のパッケージングシステム)を使うので vim7 以上限定の方法ですが svn co http://svn.tpope.net/rails/vim/railsvim/ railsvim cd railsvim rake rails

    rails.vim まとめ - 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 の発表資料
    ques9
    ques9 2006/09/09
  • 川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
    ques9
    ques9 2006/07/10
  • 川o・-・)<2nd life - prototype.js 1.5 からの新機能 Template の使い方

    JavaScript での変数を使った文字列の作成は何かとめんどくさいですね。prototype.js では 1.5_pre0 から Template という簡易テンプレートとして使えるクラスが加わりました。相変わらずドキュメントはソースと test 嫁なので簡単な使い方を紹介します。 まずは Template となる文字列を new Template で作ります。Template のリテラルは #{}です*1 。 var t = new Template('#{foo}, #{bar}!');次に作成した Template インスタンスの evaluate 関数を呼び出し、引数として Hash(Object) を渡します。 t.evaluate({ foo: 'hello', bar: 'world' }); // hello, world!もしテンプレートを使い回さず、一度限りの文字列

    川o・-・)<2nd life - prototype.js 1.5 からの新機能 Template の使い方
  • 次世代 JavaScript ライブラリを作りました - 2nd life (移転しました)

    先日 Scriptaculous 1.6.0 が公開されましたね。Web2.0 全盛の今、Scriptaculous は無くてはならない必須ライブラリの一つとなりました。 2000年前後、DHTML と云われる技術を駆使した視覚効果を頻繁に使った Web ページをよく見るようになりました。当時はキャズムを飛び越えて、アーリーマジョリティまで広く使われていたと云っても過言ではないでしょう。Web 2.0 はまだまだキャズムを飛び越えてたとは云えません。そこでアーリーマジョリティ層にも広く使われるようになるのに貢献しようとしているのが実は Scriptaculous なのです。以前 Ruby on Rails のメーリングリストではScriptaculous は Web 2.0 などではない!Blink, Marquee 2.0だ!(意訳)、つまり Scriptaculous は Web 2.

    次世代 JavaScript ライブラリを作りました - 2nd life (移転しました)
  • 川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin

    最近いろいろなサイトで <script src="/javascripts/foo.js?1142509269" type="text/javascript"></script>や <script src="/javascripts/bar.js?v=2.3" type="text/javascript"></script>の記述を見るようになってきました。また CSS でも <link href="/stylesheets/foo.css?1142509300" media="screen" rel="Stylesheet" type="text/css" />といった記述もちらほら見かけます。 これは JavaScriptCSS を更新しても、ブラウザキャッシュが読み込まれているため、更新された JS ファイルなどがロードされない場合への対策です。上記のような最終更新時刻やバージ

    川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin
  • Shibuya.js - 2nd life (移転しました)

    http://shibuyajs.org/ 以前、他の言語はコミュニティがあって、勉強会なりカンファレンスなりいろいろ開かれて活発だけど、去年から見直されてきた JavaScript はそういうコミュが無くて悲しいよねという話をしました。その時、コミュを作ったら参加するよというありがたい言葉を数人からもらったので思い切って作ってみました!ネーミングは Shibuya.pm リスペクト。 現在は第一回のテクニカルトークに向けて動いているところです。テクニカルトークの詳細が決まったらまたアナウンスすると思うので JavaScript プログラマの人は良かったらご参加下さい。 あとサイトのデザインは id:tnx に、Rediscover the JavaScript は id:antipop に書いてもらいました。thx!

    Shibuya.js - 2nd life (移転しました)
  • 川o・-・)<2nd life - prototype.js with mousehweel event

    http://rails2u.com/misc/wheel_event/ prototype.jsではイベントハンドラの登録をEvent.observeに追加することにより行えます。これはWinIEだとelement.attachEvent, Firefoxだとelement.addEventLisnerと登録用の関数が違う互換性を吸収してくれるので大変便利です。しかし、ホイールイベントは少々特殊なため、通常のEvent.observeでは上手く登録が行えません。 ホイールイベントをwebアプリケーションで上手く使うとユーザビリティの向上が見込める*1ので、簡単にホイールイベントを登録できるEvent.observeを作ってみました。上記URL先のwheel_event.jsをprototype.jsを読み込んだ後に読み込むことによって、mousewheelイベントを扱えるようになります。

    川o・-・)<2nd life - prototype.js with mousehweel event
    ques9
    ques9 2006/02/28
    ホイールイベントをobserveしてゴニョるライブラリ
  • 川o・-・)<2nd life script.aculo.usのファイルサイズを軽減

    http://www.goodpic.com/mt/archives2/2006/02/ajax.html で紹介されてる通り、script.aculo.usは通常のロードではファイルサイズが100KBを超えます。しかし、それはフルでロードしたときの容量なのです。script.aculo.usはロードするパッケージを選ぶことができる*1ので必要な機能だけを選べば良いのです。例えば、たいていの場合はscript.aculo.usのeffects.jsだけしか使わなかったりするので <script src="/js/scriptaculous.js?load=effects" type="text/javascript"></script> とすればOK。これでファイルサイズは34KBに収まります。また、二つ以上のパッケージを選択したい場合は <script src="/js/scriptac

    川o・-・)<2nd life script.aculo.usのファイルサイズを軽減
  • zsh + screen で端末に表示されてる文字列を補完する - 川o・-・)<2nd life:

    以前に入力したコマンドの履歴を覚えていて補完してくれるshellはあるが、 端末に表示されている文字列を補完してくれるshellは無いだろうか。 表示されている文字列を補完してくれるshellが欲しい とvimrc diaryに書かれてたのでzsh + screenで端末に表示されてる文字列を補完する方法を。.zshrcなどに # dabbrev HARDCOPYFILE=$HOME/tmp/screen-hardcopy touch $HARDCOPYFILE dabbrev-complete () { local reply lines=80 # 80行分 screen -X eval "hardcopy -h $HARDCOPYFILE" reply=($(sed '/^$/d' $HARDCOPYFILE | sed '$ d' | tail -$lines)) compadd -

    zsh + screen で端末に表示されてる文字列を補完する - 川o・-・)<2nd life:
    ques9
    ques9 2006/02/04
  • vim でのオススメ plugin

    最近 .vimrcを貼り付けるのが流行ってるみたいなので自分も.vimrcを貼り付け、るわけでなくオススメの plugin を紹介してみようかと。 Align.vim http://www.vim.org/scripts/script.php?script_id=294 痒いところに手が届く整形ぷらぎん。 options = { width => 100, height => 50, background => nil, } なソースを範囲選択して :'<,'>Align => すると options = { width => 100, height => 50, background => nil, } のように整形してくれます。 Allargs.vim すべてのバッファでコマンドを実行。例えば開いてるバッファのすべての文字列を置換したければ、 :Allargs %s/perl/ruby

    vim でのオススメ plugin
    ques9
    ques9 2006/02/04
  • vim7の新機能 Omni completion - 2nd life (移転しました)

    これヤバス!eclipseなどでおなじみのインテリジェンスな補完を提供する機能みたい。詳しくは:h new-omni-completion で。今のところCとXHTMLCSSしか用意されてないんで、htmlで早速使ってみた。機能はこんな感じ。 after "<" complete tag name depending on context (no div suggest inside of an a tag) (全部注釈であって翻訳じゃないよ) <の後でタグ名の補完。子要素として相応しいのしか補完されない。たとえばdivやpタグで囲まれてないのにstrongは補完されることはない。 inside of tag complete proper attributes (no width attribute for an a tag) タグのattributesの補完。もちろん適用できる属性だ

    vim7の新機能 Omni completion - 2nd life (移転しました)
  • 1