Mac OS X で Wii Remote API を使う

Posted by nanki Sun, 22 Mar 2009 12:22:00 GMT

Canvasを使ったWii用ゲームを作ってみた (Kanasansoft Web Lab.)

Nintendo Wii に載っているOpera にはWii Remote APIなるものがあって、WiiリモコンとCanvasを使って色々できる。

うちには、OperaもWii のコントローラ(だけ)もあるのに、kanasan の力作が遊べないなんて!ありえない!

というわけで、Wii Remote API のふりをするコードを書いてみた。


WiiFake: emulate Wii Remote API on Mac OS X. from NANKI Haruo on Vimeo.

requires at runtime

How to use.

  1. Copy WiiRemote.framework to your ~/Library/frameworks/ directory.
  2. WiiFake を落としてくる。
  3. Wii リモコンの 1 2 keyを押したままサーバを起動する。
    $ ruby server.rb
  4. このbookmarkletを起動 WiiRemote bookmaklet
  5. 必要に応じてページの初期化処理を呼び出す。
    (上記kanasanのページだと、javascript:initialize())

仕組み

bookmarklet で読み込んだ WiiProxy.swf から localhostに立てたRubyサーバに繋いで、JSON形式で受け取った情報を、javascriptの世界に渡しているだけです。

テスト

Safariでしかテストしてない;;

画質のテストのため、同じムービーをYoutubeにもアップロードしてみた。

参考:

Posted in , , ,  | Tags , ,  | no comments | no trackbacks

Objective-J および cappuccino とそのvim補完

Posted by nanki Thu, 05 Feb 2009 14:03:00 GMT

vim objj

しばらくはprototype.js や jQuery、時々はExt JS で楽しく遊んでいたけども、デスクトップアプリケーションのような物を作るのには力が不足していると感じていた。(機能が、ではなく、抽象化の程度が)

年初めくらいに cappuccinoというプロジェクトを見つけてきて、しばらくソースを眺めていたりしたのだけど、これはいい。 久々にピリピリ来るプロジェクト。

最近、iPhone SDK などでObjective-Cに触れて、Cocoa APIに慣れ親しんだせいもあるけど、それを差し引いても、よくできている。 興味と暇のある人は是非、調べてみて欲しい。

実際に、Keynote にしか見えないアプリケーション なんかもこれで作られている。

ちょっとソースを見ると、こんな調子だ。

<script type="text/javascript">
    OBJJ_MAIN_FILE = "main.j";
</script>
<script src="Frameworks/Objective-J/Objective-J.js" type="text/javascript"></script>

main.j というのが、Objective-J 言語で書かれていて、Objective-J.js を読み込むと、その場でJavaScriptにコンパイルされる。

元々、Objective-C は、Objective-Cのランタイム(Cの関数)とプリプロセッサだけでこしらえてある(と思う)のだが、その手の抜けた?実装とは裏腹に強力なオブジェクト指向機能を持っている。

今回、Objective-J がその手法をJavaScriptに対して適用したのを見て、この方法の持つシンプルさと力ににやにやせずにはいられない。(JavaScriptにOOを導入するとは!)

でも、Cocoa APIはフルスペリングでAPIが長いのでとても覚えられない。 IDEなどのコード補完機能がないと書く気が起こらない…ということで、vim の補完関数を作った。

github に置いてあるので、使うなり改良するなりしてください。

関係ないけど、Objective-J ではメソッドの定義に型を書くんだけど、コンパイルの時点で廃棄されている。(ので間違っててもコンパイルは通る) しかし、コード補完を作るにあたって、この型情報は非常に役に立った。

参考:

Posted in , ,  | Tags , ,  | no comments | no trackbacks

Web UI デザインパターン

Posted by nanki Sat, 22 Apr 2006 07:20:00 GMT

AJAXだとかなんだとかでJavascriptを使ってもいい雰囲気になり、ライブラリも整備され、かなり高度なユーザインターフェースを作ることが可能になっている。

しかし、何の指針もなしに作っていたのでは、使用感に統一性の無いものがあふれかえってしまう。
そんなわけで、Railsで使えるものを中心に、使いどころ、使わないどころ、雑感を。

AutoComplete

  • 正規化が必要になるような用途(会社名、住所とか)に。
  • 数が少なくて固定の場合はセレクトボックスを使った方がいい場合も。
  • 日本語との相性は要改善。

Drag&Drop

  • 一見使いやすくなるようで、ユーザに強いるコストが結構高いので、積極的に使うべきではない。
  • 特にDrop対象が一つだけなら絶対使わない方がいい。
    • Drag元とDrop元の座標を指定した上
    • その間指押しっぱなし
    • さらに連続でD&Dする時はまたDrag元まで戻らねば。

SortableList

  • リストが一画面に収まる程度なら使うべき。
  • 複数ページにまたがるような並べ替えはまだ画期的な方法がない。
  • Non-Linear Zoomingを駆使したようなのを誰かが作ってくれる(に違いない)。

InPlaceEditor

  • 使いどころは絞ったほうが効果的。
  • 頻繁に変更されるところとか、気軽に変更して欲しいところとか。
  • 値が空になると編集できない。

ブラウザ内ウィンドウ

  • 設定画面、追加画面など、一画面挟んだ後リストに戻るような場合に。
  • 基本的には、更新とともに。閲覧のみで使う場合は、前/次 みたいなのをつけるべき。
  • できるだけ「閉じる」動作を意識させない。(要らなくなったら勝手に閉じる)

などなど。書き出してみると結構当たり前のことばかりか。
他にどんなのがありますかねぇ。

キー操作を扱える標準的なライブラリとかも欲しいかなぁ。

追記

2006.04.27 Ajax Pattern Screencasts

Posted in ,  | Tags , ,  | 1 comment | no trackbacks

Try Ruby

Posted by nanki Tue, 29 Nov 2005 00:26:00 GMT

Try Ruby

すごい・・・すごい・・・

すごいなこれ。

ところで、babieさんを参考にプチメモ生活が始まった今日この頃、机の上の紙に「ホワイトボードの余白」と書いてある。

なんのことだろう?

ものすごく眠いときにメモしたものなので、記憶に無い。

ホワイトボードの余白にGoogle広告でも出すつもりだったんだろうか。

参考:

遅レス。

Posted in , ,  | Tags , ,  | no comments | no trackbacks

UTF-16LE

Posted by nanki Thu, 24 Nov 2005 14:28:00 GMT

久々に文字コード関係ではまった。

Sakuraエディタなどで、保存形式にUnicodeを指定するとUTF-16で保存されることがあるみたいで(UTF-8を指定すればいいんだけど)貰ったファイルが、どう開いても開けない。

もちろん、UTF-16も試したんだけどだめ。 先頭に変な文字が付いていたのでBOM(ByteOrderMark)かと思い、検索してみたけど、どうもコードが違う。

結局、一時間ほどいじり回してわかったのは、UTF-16LEで保存されたファイルがさらに文字化けしたものであるということだった。 最初に開いたときに変な開き方をして上書きしてしまった模様。 Subversionのレポジトリから取り直したら、普通のUTF-16LEだった。

参考:

UCSとUnicode

Posted in ,  | Tags ,  | no comments | no trackbacks

親切なアフィリエイト

Posted by nanki Wed, 09 Nov 2005 14:19:00 GMT

Google で「あまぞn」と検索すると、どうみてもアマゾンじゃないページが結果に出てきて「正しくはこちらですよ」と誘導してくれる。 その先で買い物をすると、そのサイトにバックが入る仕組み。

Posted in ,  | Tags ,  | no comments | no trackbacks

Web2.0

Posted by nanki Sat, 15 Oct 2005 23:10:00 GMT

最近、ajaxやGoogle のおかげで、RIA,SOA が開発者に浸透してきた感がある。 次世代のplatform としてのweb という可能性が現実味を増してきた。

Microsoft がほぼ独占していたデスクトップ市場も、リッチなweb application の登場で、デスクトップOSに依存しないアプリケーションが登場すれば、かげりが見えてくるかもしれない。

かつてはその線に一番近かったJava は、ランタイムをWindows に標準搭載しないことで押さえ込まれた感じがするが、果たして今度はどうするのか。

いまさらブラウザを搭載しないわけにはいかないし。 こんどこそ、真っ向からの勝負になるんだろうか。

今のweb はちょうどWeb2.0に向けて、アプリケーションが出始めている状態だ。 これらを統合する今のデスクトップOSのようなものが現れるに違いないと思う。

それがどんな形をとるのか、まだわからないが、今のblog が一番それに近い気がした。 著名なblogツールはプラグインという形でさまざまなサービスをひとつのページに収めているが、これはまさに、今のデスクトップOSの役割そのものだ。 (ポータルサイトのカスタマイズサービス(MyYahoo!とか)も近いものがあるけど、完結してしまっているので、ちょっと違うかな)

そういう視点でこれからの動向を眺めたら、もうちょっといろいろなことが見えてくるかもしれない。

参考:

Read more...

Posted in ,  | Tags  | no comments | no trackbacks