2007/02/22

[aspectj-users] AspectJコードをJavaコードに変換する

[aspectj-users] Covert AspectJ Code to Equivalent Java Code
AspectJ 1.0まではJavaコードを吐くオプションがあったけど、最新版ではどうしたらいいの?って話。
AspectBench Compilerを使えばできるらしい。Load Time Weavingとか、サポートしていない仕様(リスト)も結構あるんだけど、ほとんどのAspectJのコードを解釈できて、-davaオプションをつければクラスファイルの代わりにJavaコードを生成するらしい。
さらに自由にいろんな機能を実装してテスト出来るように、拡張性の高いフレームワークが使われてるらしい。すご。

2007/02/18

Grizzly

http://journal.mycom.co.jp/articles/2007/02/07/grizzly/
https://grizzly.dev.java.net/
http://weblogs.java.net/blog/jfarcand/

NIOベースの通信フレームワーク。スケーラブルなサーバ用に開発されてるらしい。
もともとGlassFishの通信フレームワークとして開発されたものが、独立したプロジェクトとしてスピンアウト。
HTTPD相当の機能も実装されてて、Cometdにも対応してます。

JBuilder2007 Released

JBuilderの最新版がリリースされてます。
http://www.borland.com/jp/company/news/press_releases/2007/20070214_jbuilder2007.html
http://www.borland.com/resources/jp/pdf/products/jbuilder/jbuilder_2007_datasheet.pdf
http://www.borland.com/resources/jp/pdf/products/jbuilder/jbuilder_2007_feature_matrix_ja.pdf

Eclipseベースになって最初のリリースです。
確かにTogether(UML)とプロファイラが使えるのはうれしい。でも高い。
あと、フリー版が無いのが残念。

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空間の共有を意識することになるんだな。おもしろい。

2007/02/10

Yahoo! Pipes

安藤日記より。

Yahoo! Pipesが公開されたらしい。
サイトの説明は"Pipes is an interactive feed aggregator and manipulator."となってるので、インタラクティブに作成できるフィード生成エンジンといったところかな。GUIでいろんなサービスをマッシュアップして、簡単に作れるみたいです。

既にたくさんのPipeが登録されていて、New Your Timesのページからキーワードを抽出してFlickrから写真をとってくるもの(New york Times Thru Flickr)や、いろんなニュースをごちゃ混ぜにしたもの(Techcrunch Citations)、指定場所付近のアパートを探すもの(Apartment Near Somethingなんかも。

おもしろいのは、パラメータを与えてPipeを実行できたり、特定のPipeからコピーして自分のPipeを作成できるところかな。

Pipe作成に利用できるモジュールは、以下の通り(A Complete List of Pipes Modulesより)
Content Analysis
Count
Date Formatter
Date Input
Fetch URL
Filter
Flickr
For Each Replace
For Each Annotate
Google Base
Location Extractor
Location Input
Number Input
Sort
String Concatenate
Text Input
BabelFish
Truncate
Union
Unique
URLBuilder
URL Input
Yahoo! Local
Yahoo! Search

2007/02/08

mozillaを使ったHTMLパーザ

JavaNews.JPより。
Mozillaのエンジンを使ったJava用HTMLパーザ.Windows,Linux,Mac用があります.
Mozilla Java Html Parser

Mozilla使ってるので強力で速い(JavaのDOMパーザと同程度)のはいいんだけど、Mozillaのモジュールが60MBもあるらしい。

MacFUSE

やばい。便利すぎる。MacでNTFSに書き込めるようになります。

macfuse - Google Code
ここからMacFUSE Coreをダウンロード&インストールして、
MacFUSE : FUSE for Mac!
ここからMacFUSE ToolsとNTFS-3Gをダウンロード&インストールで使えます。

マウントは、ニテンイチリュウ: MacFUSEのとおり、

$mkdir /Volumes/Windows
マウントポイントの作成。Windowsの部分は好きな名前で可。

$sudo /usr/local/bin/ntfs-3g /dev/disk0s3 /Volumes/"Windows" -o ping_diskarb,volname="Windows"

こんな感じで。
USBで繋いだディスクを難なく認識して、書き込むことができました(デバイスは/dev/disk4s1)。すげぇ。

LG3D上でPDFを表示するアプリケーション

JSaddle - PDF Viewer for LG3D : Prototype
JPedalを使ったLG3D用のPDFビューワ。Pedalに対してSaddle。次はHandle?

こういう、ぐるぐるしたインターフェース以外に何かないのかなぁ。

あと、LG3Dが3Dなのに立体感が無いのは、陰が無いからなんだろうな。

2007/02/06

Lingrの新版リリース

お待たせしました、ガツンとLingrの新リリースです(CNET Japan)
Lingrの新版がリリースされました。

まだどういう位置づけのものなのかよくわかってないんですが、ユーザがAPIを利用していろんなアプリケーションを構築してるようです。Cometを利用しているので、HTTPベースで利用できるセッション管理サーバって感じなのかな。

2007/02/03

JRubyコンパイラはRuby Cより2倍高速

JRuby Byte Code Compiler Outperforming Ruby C
但し、まだまだコンパイルできないコードがある、現在開発中の新しいコンパイラでの話。
でもまぁ、かなり期待できるんじゃないでしょうか。

以前から松本さんは、誰かがRubyを再実装したら今より速いものができるはずって言ってたけど、まさかそれがJavaでの実装とはね。

書籍へのリンク

調子に乗ってamazonアフィリエイトも追加してみた。
お薦めの本を常時2冊だけ載せときます。
結構縦に長いので、配置が難しい。あまりうるさくてもいけないし、あまり下にあっても意味が無いし。

ところで、adsenseにしばしば変な広告が出てる気がするんですが。
どのキーワードで出てきてるんだろ。

2007/02/02

Date, Calendar APIの再設計

Date、Calendarに変わる時間管理APIを策定するJSR310が開始されました。
もうこのままDate/Calendarで行くのかと思ってたけど、これで使いやすくなってくれたらうれしい。

ベースはJoda Timeというオープンソース(Apache License 2.0)ソフトウェアで、既に結構実績があるらしいです。作者がスペックリードの一人なので、かなりこれに近いAPIになるはず。

2007/02/01

Sub Labs

Sun Inner Circle Vol.44

Sunが研究中のいろんな技術が紹介されてます。ちょっと気になるのが、Project Darkstar。大規模マルチプレーヤー型オンラインゲーム用のサーバやクライアントライブラリです。クライアント・サーバ型アプリケーションの通信部分を提供してくれるフレームワークといったところ。モバイル端末も意識されてるらしい。

また、オープンソースDRMの、Project DReaMなんてのもあります。

JazzのWebサイトができるらしい

IBM、オープンソースプロジェクト「Jazz」用ウェブサイトを立ち上げへ(CNET Japan)
Jazzとは、チーム開発向けのEclipseと連動するメッセンジャーみたいなものらしい。
分散開発向けのものとしては、既にEclipseにプラグインがあったような。

開発用に限らず、いろんなアプリケーション用のコラボレーション基盤があったら便利でしょうね。