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

  • ActionScript3 における deep copy - 2nd life (移転しました)

    http://la.ma.la/blog/diary_200711270645.htm JavaScript の話題が出たので AS3 での方法も。ActionScript3 でコアクラスオブジェクトを deep copy するには、 public static function clone(arg:*):* { var b:ByteArray = new ByteArray(); b.writeObject(arg); b.position = 0; return b.readObject(); } var hash:Object = { ary: [0,1,2,3] }; var hashClone:Object = ObjectUtil.clone(hash); hash.ary[3] = 'a'; hash; // #<Object:{ary:0, 1, 2, a}> hashCl

    ActionScript3 における deep copy - 2nd life (移転しました)
    harupiyo
    harupiyo 2009/12/03
  • やたーはてなダイアリーファイルシステムできたよ\(^o^)/ - 川o・-・)<2nd life

    はてなダイアリーが AtomPub で編集できるようになったので、早速 fuse を使ってファイルシステムを作ってみました。こんな感じに使えます。 http://rails2u.com/tmp/diary_fuse/fuse.htm (動画) /create に保存すると現在時刻で作成 /20080820101010 など、エントリーを編集可能。保存で更新。 rm するとエントリーを削除 /\d{14} 的なファイル名で保存すると、その時刻のエントリーを作成 などなど。Ruby の FuseFS を初めて使ってみましたが、結構簡単にファイルシステムをいじれて便利ですね。ちなみに文の改行周りがおかしくなるというアレな挙動をして、全然実用できませんが、AtomPub 使うとこんな事もできるよーという例として見ていただければ。 ソースコードは以下です。

    やたーはてなダイアリーファイルシステムできたよ\(^o^)/ - 川o・-・)<2nd life
    harupiyo
    harupiyo 2008/08/29
  • 2008-07-19 - 川o・-・)<2nd life Uffy externalinterface external interface

    日の OSC Kansaia 2008 で開かれた Shibuya.js in Kyoto で、JavaScript と ActionScript の連携について話しました。関西のカンファレンスでの発表は初めてでしたが、楽しかったです。スピーカの皆さん、参加された皆さん、どうもありがとうございましたー。 以下発表資料です。 JS <-> AS JavaScript と ActionScript の連携 自己紹介 はてなエンジニア 舘野 祐一 (id:secondlife) http://tako3.com/http://rails2u.com/ Ruby, ActionScript3, JavaScript JS と AS JS だけでよくない? AS だけでよくない? 相互に補完しあえる関係 両方使えると、様々なメリットが JavaScript -> ActionScript cros

    2008-07-19 - 川o・-・)<2nd life Uffy externalinterface external interface
    harupiyo
    harupiyo 2008/08/11
  • 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 (移転しました)
    harupiyo
    harupiyo 2007/11/24
    fcshで高速AS3開発
  • fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料 - 川o・-・)<2nd life

    昨日の Shibuya.js Technical Talk #3 - Shibuya.es で LT をしてきました。関係者、来場者のみなさん、お疲れ様でした。 どの発表も面白かったです。技術的な面では omo さんのはじめてのABCでの、AVM2/JIT の話が大変面白かったです。なんで型を定義すると速くなるのかなど、「へーこう実行されるからなのかー」と解りやすかったです。 また会場では一斉を風靡するであろう、kushigahamaメソッドが生まれました。あのインパクトは正直高橋メソッドを初めて見たとき以上でした。今年は高橋メソッド以上にkushigahamaメソッドが流行る予感…。 また、fcwrap のデモも撮ったので置いておきます。 http://rails2u.com/misc/fcwrap_demo/fcwrap.htm このように保存するだけで即座に結果を表示/リロードしつつ

    fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料 - 川o・-・)<2nd life
    harupiyo
    harupiyo 2007/11/24
    fcwrapすてき
  • 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 (移転しました)
    harupiyo
    harupiyo 2007/10/13
  • 川o・-・)<2nd life - bookmarkletの文字数制限を無くす

    bookmarkletを作るとき、IEでは500文字ちょい、Firefoxでは2000文字ぐらい(?)の文字数制限がある。また、作った後に一行にまとめたり、デバッグしたりも大変面倒。でもそれがとても簡単な方法でどうにでもなることをインターフェイス!インターフェイス!の人に教わった。 javascript:(function(){var s=document.createElement("script");s.charset="UTF-8";s.src="http://example.com/example.js";document.body.appendChild(s)})(); createElementでscript要素を作って、その中にhttp://example.com/example.jsとソースを指定することによってそのJSを実行できる。WinIEとFirefoxでは確認済み。

    川o・-・)<2nd life - bookmarkletの文字数制限を無くす
    harupiyo
    harupiyo 2007/08/15
  • 川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
    harupiyo
    harupiyo 2007/04/26
  • 川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 の使い方
    harupiyo
    harupiyo 2007/04/26
  • 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
    harupiyo
    harupiyo 2007/02/11
  • RMagick の htmlhelp 作りました - 2nd life (移転しました)

    http://rails2u.com/htmlhelp/rmagick.zip RMagick は画像作成/加工にかなり充実した api をそろえており、かつ公式でドキュメントをきちんと提供してくれてすばらしいのですが、ドキュメントのメソッド一覧が見れなかったり、同じ class のインスタンスメソッドなのに数ページに分かれていたりするため、目的のメソッド/機能を探すのに数分、下手するともっとかかったりもします。 最近仕事やら趣味やらで RMagick を多用してきてるので、そもそもドキュメントの検索効率を上げないときついかなぁ、と思い始めてきたので htmlhelp を作りました。昔から作っておけば良かった…><。 RMagick のドキュメントはよくある rdoc 形式じゃない*1ので作るのに苦戦…、するかと思いきや、舞波が作ってくれた String#scrapi でさくさくと ind

    RMagick の htmlhelp 作りました - 2nd life (移転しました)
    harupiyo
    harupiyo 2007/02/02
  • vim で Ruby のリファレンスマニュアルをさくさく検索する - refe.vim - 2nd life (移転しました)

    http://rails2u.com/projects/refe.vim/ http://rails2u.com/projects/refe.vim/screencast.html (スクリーンキャスト) プログラムを書いてるとどれだけ簡単にリファレンスマニュアルを検索できるかによって効率が数割変わると言っても過言ではありません。普段は Ruby のリファレンスマニュアルの検索には htmlhelp を愛用してるのですが、windows を使ってないときやコンソールから検索したいときに不便です。 で、コマンドラインから日語の Ruby リファレンスマニュアルを検索するすばらしいツールとして青木さん作の ReFe があります。ReFe 単体だけでも十分便利なのですが、結果の絞り込みをインクリメンタルサーチで行いたいなぁとか、リファレンスを引きたい時はほとんど vim でプログラミングしてい

    vim で Ruby のリファレンスマニュアルをさくさく検索する - refe.vim - 2nd life (移転しました)
    harupiyo
    harupiyo 2007/02/02
  • 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 (移転しました)
    harupiyo
    harupiyo 2006/12/26
  • webアプリケーションテストツール seleniumがヤバすぎる

    http://selenium.thoughtworks.com/index.html JavaScriptを使い実際のブラウザを介してテストするseleniumがヤバすぎる。便利すぎ。Web案件なんつーのはほんと最終フェイズになってもMVCで云うモデルに当たる部分が「仕様変更」の一言によって変更されることも多々あって、そんなときは各種testが書き直しになったりする。んで最終で時間がない状態じゃtest書き直せる訳もなく人海戦術で無理矢理なんとか仕上げる、つーのがいまのWeb案件の大概の末路の気がするんだけどそれはおいといて。 このseleniumを使えば、簡単な記述で人間が実際にブラウザを操作してテストしている部分の大半である画面遷移、フォームの入力、ヴァリデーションの正否がなどが行える。つまりインターフェイスの仕様が変わらなければ延々とテストし続けられるわけだ。最後の受け入れテストの

    webアプリケーションテストツール seleniumがヤバすぎる
    harupiyo
    harupiyo 2006/12/10
  • 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 (移転しました)
    harupiyo
    harupiyo 2006/10/17
  • 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 (移転しました)
    harupiyo
    harupiyo 2006/10/17
  • 価格.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
    harupiyo
    harupiyo 2006/09/28
  • TDD で作る RakuAPI ライブラリ - 2nd life (移転しました)

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

    TDD で作る RakuAPI ライブラリ - 2nd life (移転しました)
    harupiyo
    harupiyo 2006/09/27
  • ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life

    http://blog.labnotes.org/category/scrapi/ rubyスクレイピングして web の情報を取得するのには、今まで正規表現か xpath でやってたので、わりと面倒でした。で、ふと scrAPI というスクレイピングツールキットを知ったのですが、これがかなり便利そう。 このツールキットを使うと、CSS3 なセレクタを記述することで、要素を取得することができます。たとえばとあるサイトのリンクを全部取得したければ、 require 'rubygems' require 'scrapi' require 'open-uri' require 'nkf' require 'pp' $KCODE = 'u' links = Scraper.define do process "a[href]", "urls[]"=>"@href" result :urls e

    ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life
    harupiyo
    harupiyo 2006/09/22
  • 川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 の発表資料
    harupiyo
    harupiyo 2006/09/11
  • 1