JFX Builder

先日のJavaOneで発表されたRIAを作るための新しい技術であるJavaFXですが、早くもGUIでドラッグ&ドロップして画面を作ることができるツールが出てきました。その名もJFX Builderです。

http://www.reportmill.com/jfx/

このツールは、Java Web Startでプログラムをダウンロードしてきて実行するという形態です。ドラッグ&ドロップで画面を作っていくと、Java FX Scriptのソースコードも自動的に生成されます。

今までのSwingプログラミングよりもJavaFX Scriptの方が簡単な記述になると言われても、やはり画面を直感的にGUIで作ることができる手段がないとなかなか一般に受け入れてもらうのは難しいと思っていたので、こういう動きは歓迎です。

JavaOne 2007 報告会にちょっとだけ参加

今日、訳あってSunの用賀本社で行われたセミナーに参加したのですが、同時に他の部屋でJavaOne 2007 報告会が行われていたので、ちょっと様子を見てきました。

事前に参加の申し込みをしていなかったので、もしかしたら会場に入れてくれないかもと思いつつ、ダメ元でアタックをしたら名前とメールアドレスを書くだけですんなり中に入れてくれました。

私が入った時は、ちょうど日立ソフトの河村さんがSpringについて話をしていました。Springの最新バージョンである2.1では、@Componentや@AutoWiredなどアノテーションによる設定が全面的に採用されるそうです。(@Componentはどこかで聞いたような気もしますけど・・)

今までは、bean定義ファイルに設定を書いていたので、これで少し楽になりそうですね。ただ、Seasarのように規約を守っていれば設定を書かなくて良くなるということはなさそうなので、設定を書く対象がXMLからJavaソースコードに移っただけと捉えることもできます。

設定ファイルを書く書かないについては、いろいろなところで議論されているので、ここでは両者を比較してどうこう言うつもりはありません。ただ、私としては、規約を守っていれば設定を書かなくて済むという方が、開発が楽になるのでそっちの方がスキです。(だから今はSeasar2を使っています。)

しかし、何らかの形でその規約を可視化する手段は、開発環境のレベルであった方が良いかと思います。例えば、Eclipseのナビゲータ上で設定ファイルを右クリックすると、設定の可視化みたいなメニューが表示されてそれを選ぶと、設定ファイルに書いていない設定(規約に従っているもの)情報も表示してくれるようなものです。

このようなしくみがないと、「何だかわからないけど、どこかで自動的に設定されて動いている」のようなことが起きてしまい、障害が起きた時など問題箇所の特定が難しくなってしまいます。現在のSeasar2には、このしくみがないので、作って頂ければすごくありがたいです。

Google Trends

Google Trends

矢野さんの日記にエントリがあったので、やってみました。確かにすごく面白いです。矢野さんは「Java,Ruby」で検索したということでしたので、私は「Flex,Ajax」で検索をしてみました。

結果は、2005年の半ばあたりまではFlexAjaxを上回っているのですが、その後はAjaxが急激な伸びを示し、Flexを抜くという現象が起きています。Ajaxの流行がGoogle検索の内容から見てとることができ、とても興味深いです。まさにGoogle検索は、時代を写す鏡ですね。

Flexの方は、昨年6月のFlex2のリリースで少しは上昇傾向が見られるかなと思ったのですが、グラフ上では特にそのようなことは見受けられませんでした。(ちょっと悲しい・・・)FlexではなくFlex2で検索されているからかもしれません。

ところで、このGoogle Trendsで使われているグラフ、どこかで見たようなことがあるなと思ったらGoogle Financeで使われているのと似ていました。左側にグラフ、右側にニュースを置くレイアウトは一緒ですが、Google TrendsのグラフはFlashではありません。(Google FinanceのグラフはFlashです)

芸能人の名前なども入れてやってみましたが、恐ろしいほど現実を反映していておもしろすぎ!!しばらく、ハマりそうです。

JDK6のクラスパス指定にワイルドカードが使えます

JDK5までは、あるディレクトリにあるjarファイル全てにクラスパスを通したい場合、以下のように1つずつ指定する必要がありました。

>java -cp lib\aaa.jar;lib\bbb.jar;lib\ccc.jar Hoge 

JDK6からは、上の例をこのように書くことができます。

>java -cp lib\*; Hoge
または
>java -cp "lib\*" Hoge

アスタリスクは、Windowsコマンドプロンプトでもワイルドカードの意味を持っているため、セミコロンをつけるか、ダブルクォーテーションで囲まないとWindowsコマンドプロンプトに*を喰われてしまうので注意が必要です。

JavaScriptハイジャッキング

JavaScriptハイジャッキングとは、Ajaxのアプリケーションに対して盗聴を行う新たなセキュリティ上の攻撃方法です。以下のブログでは、この攻撃方法はAjaxアプリケーションをターゲットとした最初のセキュリティ上の攻撃であると述べられています。

http://www.schneier.com/crypto-gram-0704.html#4

FortifySoftwareの調査によると、DWR2.0のみ唯一、この攻撃に対処するしくみを備えているということです。それ以外のAjaxフレームワークでは、現在のところJavaScriptハイジャッキングを明確に防ぐ手立てを用意していないため、プログラマが攻撃を受けないようなコードを自身で書く必要があります。

http://www.fortifysoftware.com/servlet/downloads/public/JavaScript_Hijacking.pdf

Web2.0の波に乗ってAjaxアプリケーションはどんどん増えていますので、このようなセキュリティ攻撃にも気をつける必要がありますね。

高橋メソッド

プレゼンといえば、高橋メソッドという手法を最近、良く耳にしますよね。あの1スライドの文字がとても大きいやつです。

http://rubycolor.org/takahashi/takahashi/img0.html

確かに、何かのイベントやセミナーで使われた資料をWebからダウンロードしたりしてみると、高橋メソッドに準拠したものがけっこうあったりします。Wikipediaにも用語として登録されていたのには、ちょっと驚きました。

http://ja.wikipedia.org/wiki/%E9%AB%98%E6%A9%8B%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89

でも、企業のお客様相手のプレゼンには、やっぱり向かないよな〜。エンタープライズ向けのプレゼンテーション手法、誰か開発してくれないかな?