2008年02月19日

そろそろはてな京都移転について一言いっておくか

朕は征夷大将軍の職に就いているわけだが、電文によると「はてな」という蛮族集団の頭領が南蛮より帰国し魔羅という疾風の如き妖怪を軍門に引き連れて京へ上洛を目論んでいるというではないか。

この「はてな」という蛮族の頭領の慈衛近藤という輩は珍妙な発明ばかりをしていて周囲の国々から渋谷の大うつけと言われていると聞いている。そのような珍妙な頭領ならば朕の征夷大将軍を座を奪う為に上洛すると考えるのが筋が通ろう。

征夷大将軍の名にかけて「はてな」の上洛を阻止し朕の征夷大将軍の座を守らなければならない。

Posted by Yappo at 00:45 | Comments (4) | TrackBack

2008年02月15日

デブサミ2008の発表資料、MacでバランスWiiボードのデータを取れるコードとプレゼンツールPlusenの公開

はてなが京都に帰ってしまう発表に盛り上がっている昨今みなさまいかがお過ごしでしょうか。
京都に帰るのははてなと任天堂が提携して、はてなワールドの移動がバランスWiiボードで出来るようになる為だと思い、その可能性を感じられるようなプレゼンをして来たので報告します。

デブサミの資料

早めに資料公開しないと放置してしまうので公開しました。
http://svn.coderepos.org/share/docs/yappo/devsumi2008/
頑張っても動かせない場合はdevsumi2008.plにテキストで文章が書いてあるので読んで下さい。
このディレクトリに置いてある.plファイルは、そのまま下記で紹介するPlusenとMac::WiiRemoteのサンプルにもなってます。

デブサミの動画

今回もcojiさんが動画の録画とニコニコへのうぷぉやって下さいました。
詳細はきっとtakesakoさんのところで書かれるのかもです。
coji++ Yoshiori++

失敗時

リベンジ

発表の様子

今回は、本番でOSが固まってプレゼンが出来ない刑を食らったので皆さんには大部ご迷惑をおかけしました。
なんでトラブったのかというと、物理的な準備に時間がかかるためkoizukaさんのプレゼンの前に全てセットアップしてプレゼンツールを起動していたのですが、CPUに負荷かけまくるプレゼンツールだったので、自分の出番が来る前にOSが超不安定になって制御不能になったわけです。
ぱっと見て動いてるのに実は動かなかったりTermが起動しなかったりvimが動かなかったりして、ようやくPCでプレゼンするのを諦めた頃には時間切れ直前でkazuho methodで発表も出来なくなってました。

せっかく矢印キーが壊れてもwiiリモコンで操作できたり、ブラウザ落ちてもターミナルに直ぐ切り替えたり、VGAとかスクリーンが壊れてもVFDで表示出来るようにプレゼンとしては凄く気の利いた冗長構成を取っていたのに、単一障害点のOSが逝ってしまうなんてプレゼンでは何が起きるかわかりませんね!
次は自分の端末が壊れても瞬時に別の端末でプレゼンする仕組みでも考えます。

大失敗してしまったものの最後の最後に無理矢理割り込みでリベンジ発表をするチャンスを頂けました。
takesakoさん並びに関係者や来場者の方に感謝です。ありがとうございます。
発表の内容も一人だけお題とズレすぎてしまってサーセン。

プレゼンはというと、会社で作ったコミュニケーション可能な検索サイトの紹介をしつつ、最近作り込んでるPlusenの紹介をしようとしてたのですが時間の都合上Plusenの紹介メインになっちゃいました。
内容は、MacBookにWii FitのバランスWiiボードとWiiリモコンとVFD電光掲示板とロケットミサイルランチャーを接続して、Wiiボードの右側に乗るとページが進んだりWiiリモコン振り回すとページが進んだり、ページが進むとミサイルランチャーが動いたりしつつ、スクリーン上ではFirefoxもしくはターミナル上にプレゼン内容が表示され、VFDにも内容が表示されるという、デバイスコミュニケーションをテーマとした発表でした。
Wiiボードを踏まないとページが進みにくいので、時間も足りない事もあって文字通り駆け足でページを捲りつつ発表しました。このへんのおかしさは動画じゃないと伝わらないけど、そのうち発表の様子をニコニコにうpしていただけるという話です。

プレゼンツールPlusen公開

動画でなくても面白い物として、今回発表したプレゼンツールPlusenをようやくCodeReposにコミットしました。
http://svn.coderepos.org/share/lang/perl/Plusen/trunk
SoozyCon#4とかで、はてなワールドにbotをjoinさせて、そのbotにもプレゼンの内容をリアルタイムにさせてたアレです。
Plagger的に様々なデバイスをプラガブルに組み合わせられるプレゼンツールになってます。
Class::Componentを使ってるお陰でメチャクチャコードがシンプルになってますYappo++
目下の目標は、今のPlusenは画像とかの表示やブラウザ側でダイナミックな表現が出来ないのでamachangのS6とかを組み込んでかっこ良くしたい!
色んなプレゼンメソッドを統合していけたら便利になりそうす。

SoozyCon#3では、PlusenのプロトタイプとしてFireVFDという物を使っていました、これはMozReplとVFDデバイスを組み合わせたツールです。
これをClass::Componentでプラガブルにし、プレゼンの内容の出力先をはてなワールドやirc等も追加出来るようにしたのがSoozyCon#4で使ったPlusen初期型です。
これでも納得がいかなくても少し書き直したのが今のPlusenです。
ここ最近のプレゼンは全部Plusen系列でやってたので資料公開が出来ずにいたですが、Plusen公開した事だし過去の出せてない資料を上げてく予定。

今回の目玉

で、一番面白い物としてはWii Fitの板のデータをPerlから取得出来るようにしたMac::WiiRemoteの公開ですね。
http://svn.coderepos.org/share/lang/perl/Mac-WiiRemote/trunk/
WiiRemoteFrameworkとCamelBonesが必要です。
WiiRemoteFrameworkをwii fitに対応させるパッチが入ってます。WiiRemoteFrameworkにパッチをあててxcodeでビルドして下さい。
詳しくはPODにあります。

ちょっと前にWindowsでWii Fit体重計ソフトが出て話題になってましたが、Macから弄る方法が良くわからなかったので、Windowsのソフト作った方の解析結果とかを参考にしながらWiiRemoteFrameworkのコードを書き換えてみました。
MacでWiiリモコンを使えるソフトで有名なDarwinRemoteが利用しているライブラリです。
両方ともコードが公開されているので自分でも作る事が出来ました。すばらしす。
ちなみにperlの実装はRubyとWiiリモコンをつなぐ - urekatのスカンク日記3を参考にしました。

うちのCamelBonesでは何故かオブジェクト通信とかいうやつが上手く動かないので、同梱のパッチではCamelBonesで上手く動くようにするパッチも入ってます。
あとでWiiRemoteFrameworkを作ってる方にもパッチ送らなきゃいけないすね。

CamelBonesが必須という所でピンとくると思いますが、WiiRemoteFrameworkはObjective-CでかかれたCocoaのなんかです。
なのでPerlじゃなくてもRubyCocoaつかったりPythonとかJavaとかからでもMac上のWii Fit弄れるようになれます!PHPもできたっけ?適当にググっても何か出ない。
CocoaだかObjective-Cだか何だかわからないけど、とても簡単で面白いです!空前のCocoaブーム到来してますし皆もCocoaアプリ書けばいいよ!

もっかの悩みはNSRunLoop->currentRunLoop->runを使ってWii FitのをハンドリングしようとするとDanga::Socketとかと連携出来ない所。

そういえば

控え室で機材テストしてたらYoshioriさんに「俺もやろうとして作り始めてたのに先にやられたー!」と大変残念がっていました。
Wiiリモコンプレゼンは速攻でみんながやりだしてて萎えたけど、Wii板は皆一斉にやってなさそうなので一歩先に進めましたね!やりましたね。

とにかく皆様お疲れさまでした。うん本当に疲れた。走りすぎた。

Wiiフィット(「バランスWiiボード」同梱)
任天堂 (2007/12/01)
売り上げランキング: 6
Posted by Yappo at 06:24 | Comments (0) | TrackBack