2007/02/17

スパムブログ解除

リクエストしたら半日でレスポンスが返ってきた。
一回目は何故か解除されてなかったんだけど、二回目で無事解除。
よかったよかった。

Java7 Roundup

http://tech.puredanger.com/java7/
Java7に入るかもしれない仕様のまとめ(非公式)。
Javaの初期サイズを小さくするJava Kernelとか、スクリプトエンジンの追加(Jython, JRuby)とか、 NIO2とか。
DateTimeAPIやクロージャも挙げられてます。

Java6はノートパソコンで使用できない!?

Seems like you can't use Sun's Java SE 6 on laptops
わはは。
ライセンス条項に、デスクトップコンピュータやサーバでの利用を許可しますって書いてるらしい。
厳密な意味でのデスクトップに制限してるわけはないんだけど、このブログの著者はApache Harmonyに絡めてネタにしてます。

http://yro.slashdot.org/article.pl?sid=05/08/29/2339216によると、Flashにも似たようなことがあったんだとか。

2007/02/16

lg3d-wii

Wiimote for LG3D
うは。WiiリモコンをLG3Dで使うためのプロジェクトが立ち上がりました。

ゲームコントローラ用のAPIにJInputってのがあるんですが、それ経由でWiiリモコンを使えるようにしようというプロジェクトです。
Linuxがターゲットで、Wiiリモコンの制御にはlibwiimoteを使ってるみたい。

ほんとにLG3Dは活気があるなぁ。

Wiiリモコン周りのハックは着々と進んでるようで、今はセンサーバーも代用品があるみたいです。
http://jonpeck.blogspot.com/2006/12/wii-diculous.html
こんなでかいスクリーンでやってみたい。

Mac修理

MacBook Pro でキーボードの下からノイズが聞こえる

以前から気になってたので、修理に出したところ、2日で返ってきました。けいはんなの山奥から出して2日ですよ!!どんな修理ラインしてるんだアップル。もちろんノイズもばっちり消えてます。

2007/02/15

Windows VistaとOpenGL

なんかいろんな情報が散在しててまとめ切れてないんですが、
要は、VistaではOpenGLはデフォルトでは入って無くて、CD(DVD)に入ってるMicrosoft版はDirect3D上に実装されてて、1.1しかサポートして無くて、従来の50%の速度しか出ないけど、NVIDIAやATIのドライバを入れればOKってことらしい。

参考:
http://forums.java.net/jive/thread.jspa?messageID=203534

http://slashdot.org/articles/05/08/06/177251.shtml
http://www.dailytech.com/article.aspx?newsid=3760

2007/02/14

スパムブログ

なんてこった。
いつの間にか投稿時に画像認証が必要になってて、bloggerがポリシーを変更したんだと思ってたら、このブログがスパムブログと認識されてたんですと。
誰か間違ってフラグ設定ボタン押したりした?

around executionが適用されたメソッドの変数情報が欠落する

Missing LocalVariableTable debug info for around advice
上記バグで一端作業が行われてるんだけど、AspectJが生成する内部メソッドに情報が移されただけで終わってる。しかもアドバイス対象のメソッドの情報については議論されてない。

なので新しいバグを登録してみました。

Missing LocalVariableTable for methods adviced by around execution.

100195のコメントの雰囲気では、なんとなく解決が難しそうだけど、現状ではaround executionを適用したメソッドをjava2wsdlに喰わせると、引数がin0、in1なんて悲しいことになるので、なんとか解決して欲しいんだけど。

2007/02/13

Javaのためのクロージャ(v0.5)

Java What's Newより。
将来のJavaに入るかもしれない、クロージャ仕様の新版(v0.5)が公開されてます。
Closures for the Java Programming Language

クロージャとは、遅延実行されるパラメータ化されたコードブロックです(上記リンク先より)。クロージャがあることによって、今まで匿名クラスを作成して書いてたような処理がより簡単に書けます。ま、早い話が、特定のインターフェースを継承した匿名クラス定義の短縮構文です。

例えば、intを2つ引数にとり、それらを加算して返すものは次のように記述されます。

{int x, int y => x + y}

こいつも型を持っていて、その型は次のように表現されます。

{int, int => int}

なので、

{int, int => int} calc = {int x, int y => x + y};
calc.invoke(3, 5); // 8
calc = {int x, int y => x - y};
calc.invoke(3, 5); // -2

てなことになります。

背後には当然Javaの型システムが働いていて、クロージャに対応するインターフェースがコンパイラにより生成され(synthetic付き)ます。

上記リンク先を深く見ていくと、いろいろニヤリとさせられるトピックが検討されてます。同じシグネチャのクロージャ間の互換性とか、例外のサポートとか、Unreachableとか、Genericsとの関係とか。Open Issues(v0.5)には、リフレクションやvolatile、末尾再帰はどうしようかみたいなことも挙げられてます。

いや、当初はまたXMLリテラル並のゴテゴテした機能追加だと思って嫌だったんだけど、仕様を見ると非常に興味深い議論が重ねられてて、俄然興味が沸いてきました。是非Java7に搭載して欲しい。

2007/02/12

LG3Dの将来

http://forums.java.net/jive/thread.jspa?messageID=198544によると、MMOG基盤のProject Darkstarを使って分散共有ができるシーンマネージャを作り(Project Wonderland)、その上でデスクトップを共有させたりってなことを考えてるらしい。

LG3Dの世界の共有となると、ウィンドウやアプリケーションって単位だけではなくて、3D空間の共有を意識することになるんだな。おもしろい。