3 日目のセッションから SunSPOT、JFugue、DTrace

サン•マイクロシステムズ 山口 浩

SunSPOT in action: Virtual Reality, 3D Gaming

VR やゲームのコントローラにセンサー付きのワイヤレスデバイスである SunSPOT を使ってみようというセッションです。コントロールには加速度センサーやジャイロセンサーのついたグローブを使っていました。(左手用のグローブもあると両手でできて便利というのには笑ってしまいましたが) インタフェースも含め現実にはいろいろなノウハウが必要だということが分かります。SunSPOT は、こちらではしばらく前から入手できるようになりました。いろいろな応用があり、そろそろブレイクしそうな感じで楽しみです。日本での扱いは正式には決まっていませんが、RoHS 対応のモデルもそろそろ出るということなので、もうすぐでしょう。

JFugue: Making Music with Java MIDI and Illustrating API Usability

(鍵盤楽器のキーボードは得意じゃないがコンピュータのキーボードならという) 音楽好きのプログラマのために開発されたのが JFugue です。現在 Java SE に含まれている Sound API は、あまりにも煩雑で、「ド」の音一つ出すにも 17 行ものコードを書かなければなりません。それを "Say a lot in a few words" で実現しようという試みが JFugue で、例えば、ドの音を出すのはこんな感じです。

Player player = new Player(); 
player.play("C");

play() に渡されるのは Music String と呼ばれる文字列で、これをうまく設計することで representationally complete ではないが creatively complete であるようにはできるという主張でした。"C" は中央の「ド」を表す最も簡単な Music String ですが、これを "E6s D#6s | E6s D#6s E6s B5s D6s C6s | A5i." にすると「エリーゼのために」になります。小節の区切りを表す「|」にセンスのよさを感じませんか。Music String は、アルゴリズム的な操作ができるので、例えば音程をオクターブ変えたり、音を反転させたりといったことが簡単にできます。バッハも JFugue を使えたらよかったでしょうね。セッションは JFugue 開発者の David Koelle と、JFugue API を使って Music Notepad を書いたテクニカルライターの Geertjan Wielenga によるもので、彼らは今週初めて顔を合わしたそうです。最後に Groovy 開発チームのメンバーからエールがあったのも印象的でした。

Hands on Lab: Using DTrace on Java & Other Web Applications in Solaris

このセッションは今回の私の最後のプロクタデューティでした。夜の 8:45 から始まる DTtace のハンズオンラボはさすがに満員にはなりませんでしたが、それでも 60 人以上の参加者がありました。どちらかというと玄人向けのラボで、グループ分けされた
12 の課題は DTrace 入門に始まり、JDK 6 (Solaris) に標準で組み込まれているプローブの使い方、DTrace 対応の PHP、Firefox や AMP スタックのトレース、GUI フロントエンドの chime、DTrace ツールキット、果ては JDK 1.4.2 や JDK 5.0 でDTrace を使う方法まで盛りだくさん。「とても2時間で全部は終わらないので、興味があるものを 4 つくらい選んでください。この日最後のラボなので 1 時間くらい延長しても大丈夫ですよ」という風に始まったラボは、結局 2 時間が過ぎても終わらず、最後には DTrace プロバイダを実装する方法の解説までと期待 (?) 通りデープなラボになりました。昨年までは 1 人 1 台のマシンでしたが、今年からは、会場の前方の 40 台が 2 人用、後方の 60 台は 1 人用という風に変更しました。昼間の申し込みが 100 人を大幅に突破したため、急遽変更したのですが、会場の入り口で「マシンをシェアしてもいい人は前の方にどうぞ」と言うと、結構多くの人が前の方に座ります。2 時間のラボを終える頃には仲良くなっているという、いかにも JavaOne らしい光景でした。