タグ

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

  • 大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)

    日大江戸*1で行われた大江戸Ruby会議01で、高速なテストサイクルを回すにはという内容で発表してきました。 大江戸Ruby会議01 高速なテストサイクルを回すには View more presentations from hotchpotch テストを速くするには二パターンあり、一つは単体実行時の速度・フィードバックの高速化、もう一つはすべてのテスト実行時の高速化があると思っていて、それらについての話です。ぎゅっとまとめると、前半の単体実行時の速度・フィードバック高速化には spork / prefetch-rspec / autotest / watchr を使おうという話と、後半は REE / parallel_tests による高速化・並列実行、remote spec によるリモートマシンでの分散テストについての話です。 特にオレオレプロジェクトの prefetch-rspec

    大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)
  • ブックマークレットサービス・Hatena::Let を作りました - 2nd life (移転しました)

    ブックマークレットをかんたんに作成・公開できるラボサービス、その名も Hatena::Let を作りました。 http://let.hatelabo.jp/ 未だにブックマークレットを作るときには、アドレスバーに javascritp:... を打ち込んで実行したり、 Firebug で実行して試しつつも外部の bookmarklet 化サービスを使って文字列削ったり、IE対策のため500ちょい文字を超えると gist にファイルを置きつつもおきまりの var script = document.createElement('scrit');... で JS のローダー書いたり、とやりたいことは同じなのにめんどくさい手順を毎回行っていたました。 ここらへんの手順を毎回繰り返すことなくさくっと作って公開したい!と思い id:cho45 と半年ぐらい前の開発合宿*1で作って眠らせていたのを、ち

    ブックマークレットサービス・Hatena::Let を作りました - 2nd life (移転しました)
  • Google Chrome 拡張ことはじめ - 2nd life (移転しました)

    2009年12月8日*1(日時間では12/9朝)、拡張機能が有効(除くOSX)な Google Chrome ベータ版がリリースされました。同時にこつこつ開発を続けてた、はてなブックマーク Google Chrome 拡張ベータ版も公開したので、良かったら使ってみてください :D http://hatena.g.hatena.ne.jp/hatenabookmark/20091209/1260314705 というわけで、Google Chrome 拡張を作ってみたのですが、その時に参考にした資料やドキュメントをまとめてみました。 Google Chrome 拡張APIドキュメント http://code.google.com/chrome/extensions/docs.html的に上のURLで必要なAPIのドキュメントはまとめられています。またページ中央下の「Doc versio

    Google Chrome 拡張ことはじめ - 2nd life (移転しました)
  • デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)

    先日のデブサミ2009で発表した、はてなの開発戦略 (すごい名前だ…) のプレゼン資料を公開します。前半は主に git の話で、後半ははてなブックマークリニューアルの、Perl 層の開発をどんな感じで行っていったか、という話です。 デブサミ2009 はてなの開発戦略View more presentations from hotchpotch. はてなの git では、中央のマスタレポジトリサーバがあって、そこから各自 clone / fetch して開発を行ってるので、完全に github のような分散のメリットを生かしているわけではありません。 しかし完全に分散を生かさずとも、git に移行したメリットは十分にあって、資料の中でもふれていますが、やはり一番便利なのが git のブランチ機能です。もうこれ無しでの開発は考えられないなぁ、ぐらいで、さくっとブランチ切って開発、ブランチの切り

    デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)
  • ATOK で ruby の実行結果を返すプラグイン - 川o・-・)<2nd life

    http://www.atok.com/useful/developer/api/ ATOK ダイレクト API が公開され、Ruby/PerlATOK プラグインが作れるようになったので、早速簡単かつ何でもできるプラグインを作ってみました。 http://rails2u.com/misc/atok_plugin_ruby_eval.zip セットアップし、ATOKダイレクトAPIがつかえ、Ruby の実行環境があると、ATOK で入力中に Ctrl + Insert で Ruby の実行結果が変換されて返ってきます。たとえば電卓っぽくりようしたいときには 24*24と入力したときに Ctrl+Insert を打つと 576な文字列が返ってくるので、電卓としてつかえて便利! また 'korehabenri'.split(//).join(' ')をCtrl+Insert で変換すると

    ATOK で ruby の実行結果を返すプラグイン - 川o・-・)<2nd life
  • JavaScript から MML を再生する - JSMML - 2nd life (移転しました)

    http://coderepos.org/share/wiki/JSMML テキスケ: ActionScript日記 - サウンドのリアルタイム生成(4) で公開されている、Flash から MML を再生できるライブラリ、 FLMML が素晴らしすぎるので、JavaScript からも再生できるようにブリッジを書いてみました。ライブラリ名は JSMML(まんま)。 JSMML を使うと、SWF を経由して JS な API から MML を再生できるようになります。 <script type="text/javascript" src="JSMML.js"></script> <script type="text/javascript"> JSMML.swfurl = 'JSMML.swf'; // default // onLoad に関数を入れておくと、SWF のロード完了時に呼ばれ

    JavaScript から MML を再生する - JSMML - 2nd life (移転しました)
    youpy
    youpy 2007/10/07
  • AS3勉強会資料 - 2nd life (移転しました)

    先日、スーパーな方々に集まっていただき勉強会を開きました。インタラクティブデザインを表現するためのプログラミングを、さっぱり知らなかったので自分が勉強させてもらいまくり会でした。参加者のみなさん、ありがとうございました! 以下、そんなに役に立たないと思われる資料です。Flex2/Apollo に対する雑感とかそんな感じ。 Flex2 Flex2 フレームワークについていろいろ 雑感 悪いところ 良いところ Flex 弄っての雑感 すべて理解しようとすると覚えること大杉 最低の全機能覚えるだけでまるまる5日ぐらいかかりそう 導入・投資コストに見合う価値は? Flex 自体のサイクル もうじき 3 が出るぽい? 1.5 > 2 ほどは違わないらしい サイクル早杉? 手になじんだ頃には次 ver? Flex の悪いところ UI なパッケージを含めると突然200Kbyte 超え できの良い、汎用的

    AS3勉強会資料 - 2nd life (移転しました)
    youpy
    youpy 2007/04/10
  • mxmlc コンパイラのメタデータタグを利用する - [Bindable] 篇

    ActionScript3 のソースをコンパイルするとき、現在は flex2 SDK に含まれる mxmlc を使うのが主流です。このコンパイラはAS3の言語では定義されてない、flex 独自のメタデータタグ([] で囲まれた syntax。[Bindable] など)を解釈し、自動でAS3ソースコードをジェネレートしてくれます。 このメタデータタグの利用方法をきちんと把握すると、だいぶコード記述が減り、シンプルかつ統一的なAS3(flex)プログラミングが可能になり、プログラミングの生産性が向上するであろう、有益な機能です。しかしながら、どういった挙動をするソースが生成されるのか、どのようなメタデータが記述可能なのか、というのがいまいち解っていないため、エントリーとして書き起こします。 [Bindable] メタデータを使うといったい何が嬉しいのでしょうか。その前に Flash でのプロ

    mxmlc コンパイラのメタデータタグを利用する - [Bindable] 篇
  • 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 (移転しました)
    youpy
    youpy 2007/02/11
  • Rails のためのものぐさな Web アプリケーションの国際化手法 - 川o・-・)<2nd life

    最近、自分が作る Web アプリケーションで、日語圏に限らず使ってもらえそうな物は最初から一応国際化(というか英語対応)して作るようにしています。国際化対応しておくと、はてブに限らず、del.icio.us や digg で取り上げられたりして、いろいろな人に使えてもらって嬉しいし海外からも adsense 収入gです。del.icio.us のトップや /popular/ からのリファラは、はてブトップ or 人気エントリーからのリファラとそんなに変わらないぐらいなのですが、digg からのアクセスはその十数倍あって驚きでした。 で、題の国際化の方法なのですが、favicon2dots や polaroizeぐらいの小粒なアプリケーションなら、ほんの数分〜十数分作業時間を増やすだけで対応できてしまうので、その方法のご紹介を。 ruby-gettext 武藤さん作の ruby-gett

    Rails のためのものぐさな Web アプリケーションの国際化手法 - 川o・-・)<2nd life
    youpy
    youpy 2007/02/08
  • 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 (移転しました)
    youpy
    youpy 2006/11/15
  • 川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 登録まで
    youpy
    youpy 2006/11/06
  • Rails の htmlhelp - 2nd life (移転しました)

    http://rails2u.com/htmlhelp/rails/ 今まで Rails のマニュアル引きには http://api.rails2u.com/ を使ってたのですが、ネットワークに繋がらない時などにいちいちローカルで動かすのもめんどくさい、と思えてきたので最新の svn head なドキュメントをみんなだいすき*1な htmlhelp にしてみました。 また ActionController や ActiveRecord などを全部入力するのはめんどくさいので AC や AR で引けるようにしています。あとクラスメソッド / インスタンスメソッドの違いがなく、全部 #メソッド名で引けるのは仕様です。 *1:一部の人だけとも言う

    Rails の htmlhelp - 2nd life (移転しました)
    youpy
    youpy 2006/10/17
  • 川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
    youpy
    youpy 2006/10/10
  • CSS2 Specification 順で sort するスクリプト - 2nd life (移転しました)

    http://rails2u.com/misc/vim_css_sort/ (Flash 動画) hail2u.net - Weblog - CSS2 Specificationでのプロパティの出現順序 のエントリーを読んで、へー普段全く持って順番とか気にしてなかったけどこんなポリシーもあるんだ、とちょっと感心しました。 というわけで vim の場合、フィルタを使って特定順序でソートしてくれるプログラムがあればエディタ上から簡単にソート可能なので作ってみました。 http://rails2u.com/misc/vim_css_sort/sortcss.txt *1 このファイルを適当なパスが通ったディレクトリに sortcss などの名前で保存して実行権限を与え、.vimrc などに nmap gso vi{:!sortcss<CR> vmap gso i{:!sortcss<CR>とか書

    CSS2 Specification 順で sort するスクリプト - 2nd life (移転しました)
    youpy
    youpy 2006/08/31
    vim おもしろそうだなあ
  • Apache のドキュメントを htmlhelp で - 2nd life (移転しました)

    http://rails2u.com/htmlhelp/httpd-docs-2.0.58.ja.chm http://rails2u.com/htmlhelp/httpd-docs-2.2.2.ja.chm windows 使いには htmlhelp 大好きな人がわりといると思います。かく言う私も htmlhelp 大好きで、rubyhtmlhelp が無かったらたぶん ruby 書けませんし、ruby 自体覚えていなかっただろう、というぐらい依存度が高いです。で、この htmlhelp が結構いろいろなアプケーションで存在してたりします(参考: はてなダイアリー - 大西日記 - HTML Helpを使おう)。 で、今まであったらいいなと思ったのが Apache の htmlhelp。Apache の設定を弄ってたりするとき、わざわざ Web 上のドキュメントを参照するのは結構面

    Apache のドキュメントを htmlhelp で - 2nd life (移転しました)
    youpy
    youpy 2006/08/23
  • 川o・-・)<2nd life - はてなブックマークのお気に入りユーザ数を視覚化 - Hatebu Domain Visualization

    http://lab.rails2u.com/hatebu_domain_visualization/ はてなブックマークを見ていると、どのドメインのサイトが人気なのかを知りたくなるときがあります。そんなんでドメイン別にカウントを集計し、グラフ化してみました。最近の人気なドメインや月別人気のドメイン、日別人気のドメインなどを見ることができます。 一年前ぐらいのグラフはGIGAZINEが無くて今と傾向が違っておもしろいです。 グラフの表示には PlotKit (http://www.liquidx.net/plotkit/ ) という Canvas/VML/SVG を使ってレンダリングしてくれるライブラリを使っています。WinIE でも Canvas をエミュレートしてくれてきちんと綺麗なベクターグラフが出力されてスゴース!また PlotKit は MochiKit を使って作られてるので

    youpy
    youpy 2006/08/16
  • 日本 Ruby カンファレンス 2006 発表資料 - 2nd life (移転しました)

    週末は Ruby カンファレンス 2006 にお越しの皆さん、スピーカ、スタッフの皆さん、お疲れ様でした!かなり面白い Ruby のイベントになりましたね!特に裏方のスタッフの皆さんの働きで、スピーカとしてもとても発表しやすかったですし、一参加者としても様々なところに配慮が行き届いているなぁ、と感じとても良かったです。 http://rails2u.com/misc/rubyka2006/ というわけで、自分の発表資料、「Perl の会社で使われる Ruby の利用法とは!?」 を公開します。中身ははてなのこんなところで Ruby がつかわれてるぞー、というのと dRuby 最高、というお話しです。二日目は咳さんの dRuby 話(資料: http://www.druby.org/dRubyAgain.pdf )もあり、これから dRuby が流行りまくる予感が! dRubyによる分散・W

    日本 Ruby カンファレンス 2006 発表資料 - 2nd life (移転しました)
    youpy
    youpy 2006/06/12
  • 川o・-・)<2nd life - Rails 1.0 -> 1.1 の ActiveSupport 変更点まとめ

    Ruby on Rails 1.0 までは AWDwR を読んで使い方が解ってる人も多いと思うのですが、1.1 以降でどんな詳細な機能が加わったのかはあまり知られてません。 そのために ActiveSupport の CHANGELOG を淡々と読んでまとめてみました。間違ってる可能性もあるのでそういう箇所があったらご指摘下さい。 Add CachingTools::HashCaching to simplify the creation of nested, autofilling hashes. [Nicholas Seckar] CachingTools::HashCaching という Hash を利用したシンプルなキャッシュ機能のモジュールが加わりました。このモジュールを利用したいクラスで extend して hash_cache :methodnameとすると、そのメソッドが

    川o・-・)<2nd life - Rails 1.0 -> 1.1 の ActiveSupport 変更点まとめ
    youpy
    youpy 2006/05/23
  • 川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 の使い方
    youpy
    youpy 2006/04/20