前回、日本でおこなわれた JavaOne は 2002 年なので、久しぶりの日本での JavaOne です。
前回はパシフィコ横浜でしたが、今回は東京国際フォーラムです。
今日はキーノートやビジネスセッションはなく、テクニカルキーノートとテクニカルセッションの 2 本立て。そのため、Day-0 なのだと思います。
あっ、もちろん、BOF や Hands on Lab はありますけど。
というわけで、今回も JavaOne のレポートをしたいと思います。
今日、聴講したのは
スピーカーレジストレーションをして会場についたら結構ぎりぎりになってしまいました。ということで、会場の様子などを写真に撮る余裕もなく Keynote が始まってしまいました。
SF の John Gage に相当するのは、末次さんです。
今回の基調講演では、壇上に Ray がおいてあって、そこに講演者が各自の JavaCard を挿してプレゼン資料を出力するというスタイルになっていました。
まぁ、それはそれでいいのですが、すくなくとも Ray の前でマウス使って資料を操作するのはいかがなものかと。やっぱり、コードレスのプレゼンタは必要だと思うのですが...
内容は ME/SE/EE とも SF のときとそれほど変わらず。Mark Hapner は SF の時は SOA だけでしたが、EE についても担当されています。その分、時間は短縮されているので、凝縮バージョンです。
内容はともかくプレゼンチェーック。
やっぱり、演台の後ろで喋るというのはダメですね。いまいち、伝わってこない。
特に今回のように会場がスロープでなくて、単に椅子が並べてあるような会場では、ステージの後ろのほうに立つとそれだけ見にくいということにつながってしまいます。やっぱり、Mark Hapner のように前に出てきて喋らないと。
また、演題の後ろにいると、後援者の動作が伝わりにくくなってしまいます。今回、一番手が動いていたのは Mark Hapner。単純な動きでも、話と一緒におこなうことで話を強調したり、ポイントをおくことができます。でも、その動作が見えなければ、いくら動いていても伝わらないですね。
それにさきほど書いたようにワイヤレスのプレゼンターがないのが致命的。それも資料が演台のとなりのテーブルにある Ray というのが最悪です。
2 段目一番左の写真を見ていただけると分かるのですが、Ray が置いてあるテーブルから演台にケーブルが渡っています。これは John Pampuch が Ray を操作するために Ray のマウスを演台に持ってきたためなのです。
こんなことをするのであれば、コードレスのマウスを使うほうがよっぽどスマートです。
Mark Hapner は手に何も持っていません。係りの人に資料を進めてくれとか指示をしていました。これもあまりスマートじゃないと思います。
そいうえば、Mark Hapner は演台の左側前方に立っています。ほとんどここを動きませんでした。なぜ、この場所に立ったか?
答えはこの位置のちょうど前にモニターがあるからなのです ^^;; 途中、目線がちらちらと下に向くのでなんだろうと思ったら、モニターを見ているのでした。でも、目線が下のまま喋るということはありませんでした。やはり、こうでなくちゃダメですよね。
逆に John Pampuch は手に常にカンペーを持ってました。私はカンペーを見ながら喋らなければ OK だと思うのですが、今回はちょっと下を見すぎのような気がします。
今日、聞いたのは以下の 4 つのセッションです。
はじめの JMX は SF とほとんど変わりませんでした。
唯一、変わったのは SF では Dolphin にスケジュールされていた Descriptor をアノテーションデ記述する方法が Mustang に再スケジュールになっていたことです。
次の GUI の Episode 1 はユーザビリティの高い UI を作るための方法。内容は分かるし、必要だと思うのですが、私はこれをプログラマーがおこなうことに限界を感じてしまうのです。
やはり、UI のデザインはデザイナーが担当すべきだと思っています。もしくは非常にカスタマイズ性を高めておいて、ユーザがどんどん変更できるようにするか。もちはもち屋、デザインはデザイナーですよ、やっぱり。
GUI に関するイディオムとアンチイディオムを集めたもの。
次の 4 つのポイントに絞って話が進められた。
起動時間に関しては、次の 3 つのポイントが有効であるとした。
スプラッシュを使用することは、実際には起動時間を短縮することにはならないのだが、ユーザの体感が異なる。Mustang で導入された API を使用することで、スプラッシュスクリーンにローディングバーをつけることなどが可能になっている。
VM のチューニングは起動時の GC を必要最低限に抑えるようにするということ。たとえば、-Xms を設定するとか、-Xverify:noe にすることも考慮すべきである。
レスポンスの向上に関しては次のポイントが示された。
リペイントマネージャに関しては、たとえばテーブルのセルレンダラーなどが紹介され、適切にレンダラーを記述すれば描画速度が向上するデモが行われた。
また、SwingWorker を使用することで、Swing でも別スレッドで非同期処理を行うことができる (SwingWorker は Mustang では標準添付。Tiger までは http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html からダウンロードできる)。
スクロールモードは JViewport.BLIT_SCROLL_MODE を使うのがお勧めらしい。
描画速度に関しては、Java2D を適切に使うことが重要である。
たとえば、コンパチビリティのために Image に変換することはやめようとか、ハードウェアアクセラレーションを有効に使うために Raster#getDataBuffer などを使用してピクセルをやめることなどが言及された。
フットプリントはパフォーマンスとのトレードオフであり、どちらを重要視するかによる。
たとえば、色の深度を 16bit にするか 32bit にするかでフットプリントが変化する。また、オブジェクトの遅延生成も考慮すべきである。
川原さんによる Project Looking Glass のセッション。やっぱり、大人気です。
川原さん Dukelele を持って登場。私もいっしょに Dukelele 持って壇上に上がってしまいました ^^;;
内容は SF と基本的に同じ。ただし、プログラミングの部分はかなり削られていました。やはり、一般の方たちを対象にした場合、ちょっと内容的に難しいですね。
ということで、デモが中心です。紹介したのは
ほかに何があったけ?
聴講したのではなくて、話をしました ^^;;
いろいろ工夫をして、なるべく楽しめるセッションにしたつもりです。ぜひ、櫻庭までコメントをください。
今回の発表を点数をつけるとしたら 70 点ぐらいかな。
減点要因は
立ち位置 | 常に右側に立ってしまい、左側にいけなかった。 実際には、スクリーンは高い位置にあり、左右に移動してもスクリーンをよぎることはありません。ですから、移動することで聞く人のストレスになることはないはずです。 それにアイコンタクトをするにしても、なるべく近い位置でアイコンタクトをするほうが、見られている感じが強いのです。 なので、セッション前には動こうと思っていたのですが、動けませんでした。効果的に動くのは難しい。 |
小物の使い方 | もっと、Dukelel を弾きたかったのです。 実をいうと、いろいろと効果音というか、効果サウンドを練習していたのですが... OutOfMemoryError が出たときにはバッハのトッカータとフーガを弾こうとか、jconsole の時には あーあ、やんなっちゃった とか。でも、できなかった... orz |
後ろを見てしまった | だめだぁ、やっぱり全部は覚えられない。 ということで、ちょこちょこ後ろのスクリーンを見てしまいました。だめですねぇ。 演台のところに立っていなかったので、PC の画面は見ることはできません。モニタがほしかった。 |
うろたえてしまった | 笑いをとるつもりではないのに笑いがおこったとき、うろたえてしまいました。 具体的にいうと JapaneseImperialCalendar のとき。笑いをとるつもりでつくったのではないのです。ごめんなさい、奥津さん。 |
いつものことですが、発表資料は Macromedia Flash で作っています。これをハンドアウト用にするには、アニメーションとかを取りのぞいて、タイムラインを削ったバージョンを作り直さなくてはいけません。これが結構大変なのです。
BOF は資料の公開義務がないので、ハンドアウト用を作るのはやめることにしました。で、資料は Flash のままです。すいません。(要 Flash Player 8)
ちなみに、ここで紹介した機能は じゃじゃ馬ならし をベースにしていますので、そちらもどうぞ。同時公開を目指して、スピーカルームで ftp をしていたのですが、遅い ^^;;
本当は全部アップロードするつもりだったのですが、index.html だけは時間がなくてできませんでした。ということで、index.html を更新しなかったのは忘れていたわけではなくて、時間的に更新できなかったのが正解なのです。
BOF と少しだけかぶっていたのですが、サポーター (HoL 的にはプロクタというそうです) をやってきました。
みなさんに作ってもらったのは、Software Design で使用したサンプルアプリケーションをベースに藤槻さんが作り直したものです。
HoL の中では一番人気だったそうで、キャンセル待ちがずらっと。本来は x86 のマシンだけで行う予定だったのですが、SPARC のマシンも使ってキャンセル待ちの人も入れてしまいました。ただし、SPARC のマシンは x86 に比べると遅いので、かなりストレスになったはずです。すいません。
参加者の中には、「えっー、なんでこんな人」がという方がちらほら。素直に光栄に思うことにします。
2 時間の枠だったのですが、意外にみなさん進みが早くて、応用問題までいかれた方が結構いました。それだけ LG3D のプログラミングは簡単なんだよということがお分かりになっていただければ、主催者側もうれしいです。
HoL の資料は藤槻さんの blog に書いてあるように、java.net の LG3D のプロジェクトページで公開する予定です。
今日、参加して気づいたことを何点か。みなさん、おなじことをいうのですが、移動が大変。特に B 塔から D 塔への移動が大変。15 分の移動時間だと結構つらいです。
それに質疑応答が会場内でなくて、外で個別におこなうことになっています。不思議なのですが、会場内だとたいてい質問はないのですが、会場外だと質問する人がいるのです。本来ならば、知識の共有のために会場内で質疑応答をするほうがいいと思うのですが、質問はない。何ででしょ?
もう 1 点。なんといわれようと、昼の休憩が短い。今日は屋台で食べましたが、みな並んでいるので時間に余裕がありません。他に食べにいくとしても、時間がたりないし。
HoL が終わった後、プロクタと参加者で打ち上げ。予想していたよりも人数が多かったので、当初考えた場所でなくて、もう少し大きいところにしました。でも、道間違えてしまった。すいません、参加者のみなさん。
いったのは a la carton。豚料理のお店です。参加者は 13 人。
豚料理のお店で豆乳しゃぶしゃぶとかミミガーとかいろいろな豚料理が集まってます。なかなかおいしい。
(Nov. 2005)