macでTamarinと戯れてみる

Tamarinとは

簡単にいうとFlash Player 9に実装されているAVM2(Actionscript Vertual Matchine)のソースコードをMojiraに寄付されたもの。(詳細)

ビルド

ってわけでさっそくビルドしていく。
環境はmacleopardなのであしからず。

avmplusをさっそくビルドして作る

#sudo port sync
#sudo port install libidl autoconf213
#hg clone http://hg.mozilla.org/tamarin-central
#cd tamarin-central
#xcodebuild -project platform/mac/shell/shell.xcodeproj

無事ビルドが完了すると "tamarin-central/platform/mac/shell/build/Release" 以下にshellができてます。
これがいわゆるavmplusですね。簡単!!

これを実際に動かすにはFlex SDKに同梱されてるasc.jarが必要。
別途DLがをしてきて、カレントディレクトリにasc.jarを置いて下さい。

あとtamarin-central/core/builtin.abcとtamarin-central/shell/toplevel.abcの2つの.abcファイルも
コンパイル時に必要なのでカレントディレクトリにもってくる。


これで準備は完了!!!!

#echo 'trace("hoge")' > hoge.as
#java -jar asc.jar -strict -warnings -AS3 -import toplevel.abc -import builtin.abc hoge.as
#avmplus hoge.abc

//output
hoge

思ってたよか全然簡単に実行できた。
何よりたのし〜♪
これ使って色々したいな。
確かBeinteractiveさんがCGIを実装(確かPOSTやGETをやってた気がする。。。)してたので
そこまでは試したいな。


最近はThredやらFlagmentやらSketchbookやらSlidesやらProgressionやら試したいのばっか。
いやー。ほんと楽しい。

おまけ

噂の講演中継ですw
BeinteractiveさんによるShibuya.abcでのTamarinの発表(ニコ動)

DumperをSpark Projectにてリリース

とうとう!!!!念願のSpark Projectにコミットしました。
便利と思うんで使ってやってくださいw
軽く紹介しておきます。

Dumperとは

perlであるData::DumperモジュールのAS3移植版と考えてもらえれば簡単です。
つまりオブジェクトの中身が分かるってわけですね。
AS3にはないので作ってみました。これないと色々と不便だったんで。。。


最近rascutで開発してることが多いのでfirebugのコンソールに出力する機能をつけました。
これはdebug, info, warn, errorの4種類に対応してます。
ちなみに表示可能なのはObject, Array, Number, String, Boolean。
あとはXMLは対応したいな。


perlは全てObjectもハッシュをブレスしてるだけだからインスタンスの中身を表示するのも
簡単にできていいな。ASだとどうやればいいんだろ??それもしたいな。

Spark Project
Dumperクラス

WiiFlashを使ってflashでwiiリモコンを使ってみる(1)

Bluetoothの設定

「アップルメニュー」→「Bluetooth」→「デバイス」を選択。
「新規デバイスを設定」をクリックすると「Bluetooth設定アシスタント」が立ち上がります。

「デバイスの種類を選択」で「任意のデバイス」にチェックする。
バイス検索中にwiiリモコンの1,2ボタンを同時押しでsyncしてくれる。

登録時に「バスキーオプション」で「このデバイスではバスキーを使用しない」を選択しないと
バスキーを使おうとしてコントローラを認識してくれない。

ってかバスキーって何??
いまいち分かんないけどこれを切ったら認識してくれた。

wiiFlash for mac

WiiFlash serverを起動。
Bluetoothで認識してるのを確認してからコントローラの1, 2ボタンを同時押しして
WiiFlash側で認識させる。

あとはDemoをダウンロードしてきて試せれる。
ちなみにmac版じゃないのもある。


ざっくり試したけどちゃんと動いてた。
やばいな。これwww
新たなデバイスってやっぱテンションあがる。
次の開発合宿はこれつかってなんかしよっと。

用語忘れるからメモ

用語一覧

クライアントとサーバ間でやりとりされるひとまとまりのデータのこと。

サーバでメッセージを最終的に受け取り、メッセージを処理するプログラムのこと。
メッセージの処理には通常service Adapterと呼ばれるプログラムが利用される。
通常、
RPC Service => JavaAdapter
Message Service => MessagingAdapterを継承したActionScriptAdapter
が使用される。

  • producer

メッセージを作成しサーバの宛先に送信するプログラムのこと。
producerが宛先にメッセージを送信することを「メッセージのpublish」という。

  • consumer

サーバの宛先を監視しproducerから送信されたプログラムのことを指す。
宛先を監視しメッセージを受信することを「宛先のsubscribe」という。

  • channel

メッセージングフレームワークではクライアントとサーバ間の通信時に
使用されるメッセージのフォーマット(AMF....)やプロトコル(HTTP....)をまとめた通信路として扱われる。

  • endpoint

サーバがメッセージを受信する受け口で、具体的にはクライアントがメッセージを送信するURLを指す。

  • message broker

チャンネルのエンドポイントから渡されたメッセージをチェックし、適切な宛先プログラムを見つけ
その宛先にメッセージを転送します。