2007年 RIA戦争勃発
ということで、今度はJavaFXを試してみる。
現在、JavaFXの実装はOpenJFXがある。
OpenFX(3Dツール)と名前が似ていて紛らわしい。
■OpenJFX
ダウンロードはこちらから。
https://openjfx.dev.java.net/servlets/ProjectDocumentList
ダウンロードした圧縮ファイルを展開すると、
思いっきりSubversionなディレクトリ構成がみえる。
※Subversionは最新バージョンをtrunk、枝分けしたバージョンをbranches、タグ付けしたバージョンをtagsというディレクトリにそれぞれ配置して管理する文化がある。
ここではtrunkディレクトリをOpenJFXとでもリネームして、適当なディレクトリに配置しておく。
(例)C:\OpenJFX
■Eclipseプラグイン
リモートサイトを新規追加
http://download.java.net/general/openjfx/plugins/eclipse/site.xml
■作る
Javaプロジェクトを新規作成して、srcディレクトリに新規追加でJavaFX File。
ファイル名はsample.fxとした。
import javafx.ui.*;
Frame {
title: "Hello World"
width: 640
height: 480
content: Label {
text: "Hello World"
}
visible: true
}
実行からJavaFXアプリケーションで、構成を作って、引数にsampleと入力して実行。
フレームが表示された。
2007年7月31日火曜日
2007年7月30日月曜日
F# (F Sharp)
ふとF#を試してみようと思いついた。
F#はLispやHaskell、Omal等のいわゆる関数言語に属する。
■ダウンロード
http://research.microsoft.com/fsharp/fsharp.aspx
上記ページの「F# Downloads」から、最新のF#をダウンロードする。
2007/7/30時点の最新版は InstallFSharp-1.9.1.18.msi となる。
■インストール
ダウンロードしたファイルを実行するだけ。
インストール場所もデフォルトのままで。
F#のコンパイラと、VisualStudio(がインストールされている場合)のアドオンがインストールされる。
インストールするとスタートメニューに「Microsoft Research F# 1.9.1.18」というメニューが出てくる。
●パスを通しておく
コマンドラインからコンパイルする場合等のために、binのパスを通しておこう。
C:\Program Files\FSharp-1.9.1.18\bin
■起動してみる
スタートメニューからF#インタラクティブを起動する。
F#インタラクティブにはコンソール版とVisualStudio版があるようだ。
●コンソール版

インタラクティブコンソールはよくわからなかったので、
ソースファイルを書いて、コンパイルしてみる。
hello.fsを作成し、以下のように記述する。
printf "Hello World\n";
hello.fsがある場所までコマンドプロンプトで移動し、コンパイルする。
>fsc hello.js
コンパイルに成功するとhello.exeが作成される。
>hello.exe
Hello World
●VisualStudio版
インタラクティブモードの場合:
VisualStudioを起動して、「ツール」-「アドインマネージャ」をクリックして、
F# interactiveを選択する。
プロジェクトを作成する場合:
VisualStudioを起動して、新規プロジェクトの「その他プロジェクト」から、F#を選択する。

プロジェクトを作成したら、ソリューションエクスプローラビューから、プロジェクトを右クリックして、
「追加」-「新しい項目」を選択し、「F# source file」を追加する。ファイル名はhello.fsとしている。

あとはソースファイルを書いて、実行するだけ。
■何か作ってみる
●足し算
let x = 10
let y = 20
let z = x + y
do Printf.printf "z = %d\n" (z)
結果:
z=30
●文字列
let hello = "Hello"
let world = "World"
do Printf.printf "%s %s!\n" hello world
結果:
Hello World!
●関数
let square x = x*x
do Printf.printf "6^2=%d\n" (square 6)
結果:
6^2=36
●mapを使う場合
let square x = x*x
let m = List.map square [2;4;8]
うん、いい暇つぶしになった。
F#はLispやHaskell、Omal等のいわゆる関数言語に属する。
■ダウンロード
http://research.microsoft.com/fsharp/fsharp.aspx
上記ページの「F# Downloads」から、最新のF#をダウンロードする。
2007/7/30時点の最新版は InstallFSharp-1.9.1.18.msi となる。
■インストール
ダウンロードしたファイルを実行するだけ。
インストール場所もデフォルトのままで。
F#のコンパイラと、VisualStudio(がインストールされている場合)のアドオンがインストールされる。
インストールするとスタートメニューに「Microsoft Research F# 1.9.1.18」というメニューが出てくる。
●パスを通しておく
コマンドラインからコンパイルする場合等のために、binのパスを通しておこう。
C:\Program Files\FSharp-1.9.1.18\bin
■起動してみる
スタートメニューからF#インタラクティブを起動する。
F#インタラクティブにはコンソール版とVisualStudio版があるようだ。
●コンソール版

インタラクティブコンソールはよくわからなかったので、
ソースファイルを書いて、コンパイルしてみる。
hello.fsを作成し、以下のように記述する。
printf "Hello World\n";
hello.fsがある場所までコマンドプロンプトで移動し、コンパイルする。
>fsc hello.js
コンパイルに成功するとhello.exeが作成される。
>hello.exe
Hello World
●VisualStudio版
インタラクティブモードの場合:
VisualStudioを起動して、「ツール」-「アドインマネージャ」をクリックして、
F# interactiveを選択する。
プロジェクトを作成する場合:
VisualStudioを起動して、新規プロジェクトの「その他プロジェクト」から、F#を選択する。

プロジェクトを作成したら、ソリューションエクスプローラビューから、プロジェクトを右クリックして、
「追加」-「新しい項目」を選択し、「F# source file」を追加する。ファイル名はhello.fsとしている。

あとはソースファイルを書いて、実行するだけ。
■何か作ってみる
●足し算
let x = 10
let y = 20
let z = x + y
do Printf.printf "z = %d\n" (z)
結果:
z=30
●文字列
let hello = "Hello"
let world = "World"
do Printf.printf "%s %s!\n" hello world
結果:
Hello World!
●関数
let square x = x*x
do Printf.printf "6^2=%d\n" (square 6)
結果:
6^2=36
●mapを使う場合
let square x = x*x
let m = List.map square [2;4;8]
うん、いい暇つぶしになった。
2007年7月29日日曜日
Flex 3.0
RIAブームの昨今、プラットフォームの選定は開発者にとって悩みの種の一つと言える。
EclipseRCPは使いやすそうだし、OpenLaszloもカバー範囲が広くてよさげだし、
Swingでいくのが手っ取り早いか、Webブラウザに依存するAjaxに走るか。
それぞれに一長一短があり、堅牢さを求めると、
HTMLベースでJavaScript主体でちまちま制御、という話に成りかねない。
であれば、標準でサポートされているSwingなら、5.0から性能も向上したのだし、
ここはSwingで、とも思う。現に、証券や会計等のWebアプリで採用されている。
だが、VBやDelphiと比べ、機能面で見劣りする点は否めない。
(6.0からドラッグ&ドロップやOS連携等の強力なサポートがなされているので、今後期待できることは間違いない)
そんな時折、見つけたのがこれ。
http://finance.google.com/finance
抜群の操作性。Flashで作られている。そういうわけで、Flashをやろうと。
Flash自体はWebデザイナ向けという感じで、デベロッパは手を出しにくい事情があるが、
Flashベースのデベロッパ向けのフレームワークとして、Flexがある。
Flexが3.0からオープンソース化されるとかいう話が出たので、
今後普及に拍車がかかると見込んで、いざ挑戦。
Flex開発環境であるFlex Builderには、以下の2種類がある。
JDK6.0
Eclipse 3.3
(上記2つはインストール済みの前提)
Flex Builder 3.0 beta Eclipse plug-in
■Flex 3.0 beta ダウンロード
AdobeのID登録(無償)が必要。
http://labs.adobe.com/technologies/flex/flexbuilder3/
flexbuilder3_b1_win_plugin_061107.exe
beta版なのに30日試用らしい。
シリアル番号の入力はEclipseの「ウインドウ]-[Manage Flex Licences」から行える。
2007年10月まではFlex2のライセンスが有効とのことなので、Flex2のライセンスを持っているk方は存分に試して欲しい。
ダウンロードしたら、実行ファイルを起動して、ちゃちゃっとインストール。
Flexのインストール先と、eclipseのインストール先ディレクトリを聞かれる。
■Flexプロジェクト作成
Eclipseを起動したら、プロジェクトの新規作成ウィザードで、
「Flex」-「Flex Project」を選択する。

次にプロジェクト名を聞かれる。今回は以下のようにした。
プロジェクト名:FlexSample
Server Type:Other/none
次にSDKの選択。
SDKはプラグインインストール時にインストールされたものを使うので、
今回はdefaultを選択。
Use Default SDK
他は特に変更する部分はないので、道なりにウィザードを進めて完了。
■Flexサンプルアプリケーション
●画面のデザイン
プロジェクトの作成が完了すると、Flexパースペクティブへ画面遷移するかを聞かれるので、yes。
Flex開発画面はおおよそ以下のような感じ。

中央のmxmlファイルの編集ビューでは、sourceとdesignに切り替えられる。
画面はdesignモードにて、FlexSample.mxmlファイルに、
Label、InputText、Buttonを配置したところ。
各コントロールは左下のコンポーネントビューからドラッグ&ドロップで配置できる。
ここでは名前を入力して、挨拶を表示するサンプルを作る。
デザインモードでFlexSample.mxmlファイルにコントロールを配置するか、
ソース編集モードで、以下のコードを打ち込む。
この状態で、Eclipseの実行ボタンを押すと、ブラウザが起動し、デザインした画面を見ることが出来る。
制御コードを何も書いていないので、画面に配置したボタンを押しても何も起こらない。
●アクションの実装
アクションを指定するには、ActionScriptを使ってイベントリスナを実装する必要がある。
FlexSample.mxmlのソース編集画面で、以下の赤字のコードを追加入力する。
Scriptタグに囲まれた箇所でsayHello関数を定義している。
JavaScriptっぽいが、ActionScriptである。
sendボタンのclick定義でsayHello関数を呼び出すように変更している。
●いざ、実行
こんな感じ。

Flexの魅力をまったく感じないサンプルになってしまった。
EclipseRCPは使いやすそうだし、OpenLaszloもカバー範囲が広くてよさげだし、
Swingでいくのが手っ取り早いか、Webブラウザに依存するAjaxに走るか。
それぞれに一長一短があり、堅牢さを求めると、
HTMLベースでJavaScript主体でちまちま制御、という話に成りかねない。
であれば、標準でサポートされているSwingなら、5.0から性能も向上したのだし、
ここはSwingで、とも思う。現に、証券や会計等のWebアプリで採用されている。
だが、VBやDelphiと比べ、機能面で見劣りする点は否めない。
(6.0からドラッグ&ドロップやOS連携等の強力なサポートがなされているので、今後期待できることは間違いない)
そんな時折、見つけたのがこれ。
http://finance.google.com/finance
抜群の操作性。Flashで作られている。そういうわけで、Flashをやろうと。
Flash自体はWebデザイナ向けという感じで、デベロッパは手を出しにくい事情があるが、
Flashベースのデベロッパ向けのフレームワークとして、Flexがある。
Flexが3.0からオープンソース化されるとかいう話が出たので、
今後普及に拍車がかかると見込んで、いざ挑戦。
Flex開発環境であるFlex Builderには、以下の2種類がある。
- スタンドアロン版(Eclipseを拡張して単独で動くようにしたもの)
- Eclipseのプラグイン版
JDK6.0
Eclipse 3.3
(上記2つはインストール済みの前提)
Flex Builder 3.0 beta Eclipse plug-in
■Flex 3.0 beta ダウンロード
AdobeのID登録(無償)が必要。
http://labs.adobe.com/technologies/flex/flexbuilder3/
flexbuilder3_b1_win_plugin_061107.exe
beta版なのに30日試用らしい。
シリアル番号の入力はEclipseの「ウインドウ]-[Manage Flex Licences」から行える。
2007年10月まではFlex2のライセンスが有効とのことなので、Flex2のライセンスを持っているk方は存分に試して欲しい。
ダウンロードしたら、実行ファイルを起動して、ちゃちゃっとインストール。
Flexのインストール先と、eclipseのインストール先ディレクトリを聞かれる。
■Flexプロジェクト作成
Eclipseを起動したら、プロジェクトの新規作成ウィザードで、
「Flex」-「Flex Project」を選択する。

次にプロジェクト名を聞かれる。今回は以下のようにした。
プロジェクト名:FlexSample
Server Type:Other/none
次にSDKの選択。
SDKはプラグインインストール時にインストールされたものを使うので、
今回はdefaultを選択。
Use Default SDK
他は特に変更する部分はないので、道なりにウィザードを進めて完了。
■Flexサンプルアプリケーション
●画面のデザイン
プロジェクトの作成が完了すると、Flexパースペクティブへ画面遷移するかを聞かれるので、yes。
Flex開発画面はおおよそ以下のような感じ。

中央のmxmlファイルの編集ビューでは、sourceとdesignに切り替えられる。
画面はdesignモードにて、FlexSample.mxmlファイルに、
Label、InputText、Buttonを配置したところ。
各コントロールは左下のコンポーネントビューからドラッグ&ドロップで配置できる。
ここでは名前を入力して、挨拶を表示するサンプルを作る。
デザインモードでFlexSample.mxmlファイルにコントロールを配置するか、
ソース編集モードで、以下のコードを打ち込む。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Label x="10" y="10" text="名前" width="34" height="20"/>
<mx:TextInput x="40" y="8" id="nameText"/>
<mx:Button x="147" y="38" label="send" id="sendButton" />
<mx:Label x="10" y="68" id="helloLabel" width="212"/>
</mx:Application>
この状態で、Eclipseの実行ボタンを押すと、ブラウザが起動し、デザインした画面を見ることが出来る。
制御コードを何も書いていないので、画面に配置したボタンを押しても何も起こらない。
●アクションの実装
アクションを指定するには、ActionScriptを使ってイベントリスナを実装する必要がある。
FlexSample.mxmlのソース編集画面で、以下の赤字のコードを追加入力する。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function sayHello():void {
helloLabel.text = "hello " + nameText.text + "!";
}
]]>
</mx:Script>
<mx:Label x="10" y="10" text="名前" width="34" height="20"/>
<mx:TextInput x="40" y="8" id="nameText"/>
<mx:Button x="147" y="38" label="send" id="sendButton" click="sayHello();"/>
<mx:Label x="10" y="68" id="helloLabel" width="212"/>
</mx:Application>
Scriptタグに囲まれた箇所でsayHello関数を定義している。
JavaScriptっぽいが、ActionScriptである。
sendボタンのclick定義でsayHello関数を呼び出すように変更している。
●いざ、実行
こんな感じ。

Flexの魅力をまったく感じないサンプルになってしまった。
2007年7月19日木曜日
プロトコルアナライザ(LAN)
◆Ethereal
まずは有名どころの Ethereal 0.99.0を使ってみる。
http://www.ethereal.com/download.html
■Windows版のインストール
インストールは道なりに、全てデフォルトを選択。
拡張子の関連付けとか、デスクトップアイコンの作成とかは、好みで。
winpcapをインストールしていないなら、チェックは外さないこと。
WinPcapの最新版は4.0だが、あえて別途インストールする必要は無い。
同梱されているWinPcap 3.1でいい。
■使ってみる
[Capter]-[Options]からネットワークインタフェース(ネットワークカードとか)を選択して、[Start]。
通信内容がキャプチャされるので、キャプチャしたい通信が完了するまで待つ。
終わったら[Stop]を押せば、キャプチャした内容をウインドウに表示される。
◆Sniphere(要WinPcap)
マイナーですが、手軽なSniphereをご紹介。
機能的にはEtherealより劣るけど、軽量で機能が単純なので、
ちょっとしたプロトコル解析に使えるかも。
http://www.securesphere.net/html/projects_sniphere.php
まずは有名どころの Ethereal 0.99.0を使ってみる。
http://www.ethereal.com/download.html
■Windows版のインストール
インストールは道なりに、全てデフォルトを選択。
拡張子の関連付けとか、デスクトップアイコンの作成とかは、好みで。
winpcapをインストールしていないなら、チェックは外さないこと。
WinPcapの最新版は4.0だが、あえて別途インストールする必要は無い。
同梱されているWinPcap 3.1でいい。
■使ってみる
[Capter]-[Options]からネットワークインタフェース(ネットワークカードとか)を選択して、[Start]。
通信内容がキャプチャされるので、キャプチャしたい通信が完了するまで待つ。
終わったら[Stop]を押せば、キャプチャした内容をウインドウに表示される。
◆Sniphere(要WinPcap)
マイナーですが、手軽なSniphereをご紹介。
機能的にはEtherealより劣るけど、軽量で機能が単純なので、
ちょっとしたプロトコル解析に使えるかも。
http://www.securesphere.net/html/projects_sniphere.php
2007年7月8日日曜日
Ecipseとかjvmの起動引数
たまに忘れるのでメモ。
■Eclipse起動引数
標準オプション(java -helpで見られる)
は数値の後にmをつけるとMB指定(-Xmx512m)
■Eclipse起動引数
- -vm JavaVMの指定 (例:-vm C:\java6\bin\javaw.exe)
- -vmargs VMへの引数指定(例:-vmargs -Xms64m -Xmx512m)
- -Xms 最小ヒープメモリ
- -Xmx 最大ヒープメモリ
- その他はVMオプションの項に譲る
- -data ワークスペースの指定(例:-data C:\workspace)
- -clean 起動時にクリーンを実行する
標準オプション(java -helpで見られる)
- -client JavaHotSpot Client VMを使用
- -server JavaHotSpot Server VMを使用
- -classpath( or -cp) クラスパス指定
- -D<プロパティ名>=<プロパティ値> プロパティを直接指定
- -verbose:jni JNI(Java Native Interface)情報表示
- -verbose:gc GC情報表示
- -verbose:class クラス情報表示
- -Xms
初期ヒープサイズ - -Xmx
最大ヒープサイズ - -Xss
スレッドスタックサイズ - -XX:MaxPermSize=
パーマネント領域サイズ - -Xloggc:<ログファイル名> GC情報の出力先ログファイルの指定(-verbose:gcと一緒に指定)
2007年7月7日土曜日
test
登録:
投稿 (Atom)
参加ユーザー
今月の本
- 臆病者のための株入門
- TSPガイドブック:リーダー編
- 夜明けの街で
- 詳解Oracleアーキテクチャ
- Ajax イン・アクション
- 実践Ajax
- すごい「実行力」
- More Effective C++
- 母子関係の理論
- コンピュータアーキテクチャのエッセンス