RIAトピックス
リッチクライアント/RIAを主テーマに取り扱います。Flex、Ajax、AIR、Silverlight、JavaFX、etc。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

commons-langのお気に入りメソッド15選
JavaのAPIには、プログラミングを行う上で必要な多くの機能が搭載されていますが、Rubyのような大クラス主義の言語と比較すると多少機能に物足りなさを感じたり、かゆいところに手が届かなかったりする部分があることに気付きます。
独自に作成するのは難しくなくても、必要になったときに毎回実装、テストするのは面倒です。
汎用的に必要になる機能はライブラリとしてまとめてあったほうが便利ですよね。

Apache commons-langは、java.langパッケージを補完する、細かいところで意外に便利な様々な機能を提供してくれます。
地味ながらもプロジェクトを影から支えてくれて、プログラマに安心を与えてくれます。
そんなcommons-langの中から私のお気に入りの機能を紹介します。

◆StringUtils.isEmpty()、isNotEmpty()


文字列がnullまたは空かどうかを判定します。
独自実装が不要なものの代名詞ですね。
Java6からは組み込みのStringクラスにisEmpty()が追加されましたが、インスタンスメソッドなのでnull判定できません(NullPointerException)。

◆StringEscapeUtils.escapeXxx()


特殊文字のエスケープ作業を自動的に行うものです。
たとえば「<」や「>」は、HTMLやXMLではタグの開始・終了を表す特殊文字であり、これらの文字を特殊文字ではなく単に文字として扱いたい場合、「&lt;」「&gt;」のようにエスケープする必要があります。

@Test
public void testEscapeHtml() {
String result = StringUtils.escapeHtml("<span>");
assertEquals("&lt;span&gt;", result);
}

フォーマットとしては、CSV、HTML、Java、JavaScript、SQL、XMLの形式に対応したメソッドがあります。

◆StringUtils.isNumeric()


文字列が0~9の数字だけで構成されているかを判定するメソッドです。
「-」(マイナス記号)、「.」(少数点)、「d」(double型を表すサフィックス)などはNGになります。

◆StringUtils.abbreviate()


文字列が指定のサイズを超えている場合、短縮して末尾に「...」を付加します。

@Test
public void testAbbreviate() {
String str = "Do not pray for easy lives. Pray to be stronger men. John F. Kennedy";
String result = StringUtils.abbreviate(str, 35);
assertEquals("Do not pray for easy lives. Pray...", result);
}

TLDファイルに登録してJSPからELファンクションとして使うのもアリですね。

◆StringUtils.join()


配列やCollectionの各要素を連結した文字列を生成して返します。
CSVのレコードを作成するときなどに便利。

@Test
public void testJoin() {
String[] values = new String[] {"a", "b", "c", "d", "e" };
String result = StringUtils.join(values, ",");
assertEquals("a,b,c,d,e", result);
}


◆StringUtils.substringAfter()、substrigBefore()、substringBetween()


文字列から、指定した文字列より前(, 後 or 中間)の文字列を抽出します。
String#substring()と違って、String#indexOf()やString#lastIndexOf()でインデックス位置を求めなくて済むため、可読性が高くミスも減ります。

@Test
public void testSubstringXxx() {
String target = "abcdefg";
assertEquals("abc", StringUtils.substringBefore(target, "d"));
assertEquals("fg", StringUtils.substringAfter(target, "e"));
assertEquals("de", StringUtils.substringBetween(target, "c", "f"));
}


◆ArrayUtils.contains()


ある値が配列に含まれているかを調べるメソッド。
ループで回してひとつひとつ調べたり、ソートしてArrays.binarySearch()するより楽です。

@Test
public void testContains() {
String[] ary = new String[]{
"ヨウイチ", "ノブヒコ", "ヒロアキ", "セイジ", "マサオ"
};
assertTrue(ArrayUtils.contains(ary, "セイジ"));
assertFalse(ArrayUtils.contains(ary, "キョウイチ"));
}


◆SerializationUtils.serialize()、deserialize()


オブジェクトをシリアライズ、デシリアライズする際に使います。
私はよく、障害発生時の状況を手っ取り早くTestCase上で再現したいときに使ったりしますね。

◆ToStringBuilder.reflectionToString()、ReflectionToStringBuilder.toString()


toString()メソッドをいちいち実装するのが面倒なときに使います。
基底のバリューオブジェクトにこのライブラリを使ってtoString()メソッドを実装しておき、各VOではオーバーライドしないようにします。リフレクションにより実際の型に応じた出力内容が返されます。とってもDRYですね!

@Override
public String toString() {
return ReflectionToStringBuilder.toString(this);
}


◆NumberUtils.isNumber()


文字列が数値に変換可能な場合、trueを返します。
StringUtils.isNumeric()は「-」「.」「d」などが含まれているとfalseが返りますが、こちらはtrueが返ります。

◆DateFormatUtils.format()


DateオブジェクトやCalendarオブジェクトを日付フォーマットに従い、文字列に変換します。
内部的にFastDateFormatというクラスを使っているため、SimpleDateFormatよりも高速で、なおかつスレッドセーフです。
DateだけでなくCalendarを扱うこともできます。

◆DateUtils.addXxx()


Dateオブジェクトに日数や時間を加算・減算します。
Calendarにいちいち変換するのが面倒なときに。

◆DateUtils.isSameDay()


DateオブジェクトやCalendarオブジェクトが同じ日付を表すかを判定します。
Date#equals()はミリ秒単位でしっかり合っていないとfalseが返りますし、Calendar#equals()は同じ日付であってもlenient(非厳密モード)が異なったりするとfalseが返ります。
なので同じ日付かを判定する処理を自作しようと思ったら意外と面倒だったりしますね。

◆DateUtils.truncate()


DateオブジェクトやCalendarオブジェクトから、指定したフィールド以降の値をクリアします。

@Test
public void testTruncate() {
Date date = DateUtils.truncate(new Date(), Calendar.DATE);
assertEquals("2009/03/22 00:00:00.000", DateFormatUtils.format(date, "yyyy/MM/dd HH:mm:ss.SSS"));
}


◆StopWatch#start()、stop()、getTime()


start()が呼ばれてからstop()が呼ばれるまでの時間を計測します。
開始と終了でSystem.currentTimeMillis()を使って計算しなくても済みます。
計測を終えた後、getTime()でミリ秒単位の計測結果を、toString()でHH:mm:ss.SSSフォーマットの計測結果を取得できる。
パフォーマンス測定用のインターセプタを作るのに使ったりします。

セイジ
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

【ITmedia】IE 8正式版のダウンロード開始
http://www.itmedia.co.jp/enterprise/articles/0903/20/news006.html

3/20、米MicrosoftはInternet Explorer8(以下、IE8)を
正式リリースしました。

他のブラウザとの互換性を高め、セキュリティの強化と
操作の簡便性・高速化を重点に置いた変更内容になっています。

その他、クラッシュ時の自動回復機能や
選択した文字列の意味や関連情報を表示するアクセラレータ機能、
頻繁に更新されるサイトの、変更内容をツールバー上で
即座に確認できるWebスライス機能など、
便利な機能も新たに備わりました。

ダウンロードはこちらから。
既に公開中のサービスでは
今週一週間はIE8対応に追われることになりそうです。
しっかり変更内容を確認しておきましょう。


【EnterpriseZine】マイクロソフト、IE8製品版のダウンロード開始
【CNET Japan】フォトレポート:絵で見る「Internet Explorer 8」--インストールと新機能を紹介
【CNET Japan】マイクロソフト、「Internet Explorer 8」正式版をリリース
【coliss】IE8正式版、ダウンロード開始
【builder by ZDNet Japan】マイクロソフト、「Internet Explorer 8」正式版をリリース
【GIGAZINE】ついに「Internet Explorer 8」正式版の日本語版がダウンロード可能に
【GIGAZINE】IE8こそが世界最速のブラウザであることを証明するムービーをマイクロソフトが公開中
【ITpro】「IE8」の正式版が公開へ
【あるSEのつぶやき】IE 8 正式リリース&インストールしてみました
【無題ブログ】IE8インストールの感想(正式リリース)
【lifehacker】Internet Explorer 8(製品版)の配布が開始されました
【ZDNet Japan】フォトレポート:絵で見る「Internet Explorer 8」--インストールと新機能を紹介
【ZDNet Japan】マイクロソフト、「Internet Explorer 8」正式版をリリース
【U-ziq】IE8正式版ダウンロード開始



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【ITmedia】Microsoft、H.264に対応した「Silverlight 3」のβ版をリリース
http://www.itmedia.co.jp/enterprise/articles/0903/19/news025.html

米Microsoft社は3/18、同社主催のイベント「MIX09」にて
Silverlight3のベータ版を公開しました。

Silverlightが今までも得意だった動画分野の機能をさらに充実させ
3D描画についても機能強化、
さらにRIA構築のための機能を追加しているとのこと。

そのほか、開発環境として
Silverlight / WPF向けデザインツール
「Expression Blend3 Preview」と
Silverlight開発用eclipseプラグインの「Eclipse4SL」を
発表しています。

Silverlight2が発表されたのが
ついこの間のような印象があるので、
いささか早すぎるアップデートに見えますね。

正式リリースの時期については今のところ不明です。
2010年のバンクーバー冬季五輪では北京五輪同様、
ストリーミング配信を担当するつもりのようですので、
おそらくは2009年秋頃がターゲットに
なるんじゃないでしょうか。


【ZDNet Japan】マイクロソフト、「Silverlight 3」ベータ版を発表--MIXカンファレンス
【CNet Japan】フォトレポート:絵で見る「Silverlight 3」ベータ版
【日系BPネット】MS、「Silverlight 3」ベータ版や新RIA制作ツール「Expression Blend 3」などを発表
【マイコミジャーナル】S、Silverlight 3ベータ版提供開始
【マイコミジャーナル】MIX09 - 複数ブラウザのスーパープレビュー、Azureアップデートなど - Web編
【japan.internet.com】Microsoft、『Silverlight 3』のベータ版を公開
【Yuya Yamaki’s blog】Expression Blend 3 Previewの新機能 その1
【XAMLab(ザムラボ)】Silverlight 3 Beta
【Akira Onishi's weblog】Silverlight 3ベータ版とExpression Blend 3 Previewの公開、加えてMIX09キーノートのポイント
【develop .net】Silverlight 3 & Expression 3 ~ MIX 09 にて
【@IT】Webブラウザの外に取り出しも。オフライン機能もサポート、Sliverlight 3ベータ




ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【Keep Crazy;shi3zの日記】iPhone OS 3.0でチェックメイト。完璧に近づいたiPhoneのこれから
http://d.hatena.ne.jp/shi3z/20090318/1237331128

日本時間で3/18早朝に、iPhoneの次世代OSとなる
「iPhoneOS 3.0」のベータ版が発表されました。
正式リリースは2009年夏頃を予定とのこと。
変更点は以下。

 ・Copy & Paste機能(写真等にも対応)
 ・プッシュ配信
 ・Bluetoothの音楽機器等への対応
 ・BluetoothによるP2P通信の実現
 ・Spotlight(デバイス内横断検索)機能
 ・アプリ内課金
 ・アプリ使用に対する月額課金
 ・ランドスケープ(横長)のソフトウェアキーボード
 ・3Gテザリング(ネット接続モデムとして利用可能に)
 ・マルチメディアメッセージング
 ・1000以上のAPI追加
 …etc

これで日本の携帯電話に出来てiPhoneに出来ないことは
お財布ケータイ機能のみとなりました。


開発者・ビジネスサイドとしては
やはり月額課金やアプリ内課金が可能になるのは
非常に大きな変更です。今までも

 従来の携帯アプリ → iPhone / Androidアプリ

の流れは徐々に強まっていましたが、
これで一気に加速するんじゃないでしょうか?

iPhoneOS 3.0の登場で起こり得ることは
上記エントリーで予測が書かれています。
それに乗り遅れないことが我々の今後の命題でしょう。



【engadget日本版】速報:iPhone OS 3.0プレビューイベント
【engadget日本版】iPhone OS 3.0は夏提供。コピペ、プッシュ通知、A2DP、Spotlight検索、P2P対応
【engadget日本版】iPhone OS 3.0にUSB/Bluetoothモデム化、「Find My iPhone」機能みつかる
【CNET Japan】アップル、「iPhone 3.0」イベントを開催--発表内容をライブカバレッジ
【CNET Japan】フォトレポート:アップルのiPhone 3.0イベントを写真で紹介
【CNET Japan】明らかになった「iPhone OS 3.0」--新機能を詳しくチェック
【CNET Japan】ビデオ:「iPhone」でのコピー&ペーストはこうなる--「iPhone OS 3.0」プレビュー
【CNET Japan】フォトレポート:絵で見る「iPhone OS 3.0」--新機能あれこれ
【ITmedia】新型iPhoneは今夏発表──「iPhone OS 3.0」はコピペ、プッシュ通知、Spotlightなどサポート
【日経BPNet】Appleの新モバイルOS「iPhone OS 3.0」は夏に登場、コピー&ペーストが可能に
【Tech-On】ついに「コピー&ペースト」に対応、Apple社「iPhone OS 3.0」を発表
【BB Watch】アップル、iPhone OS 3.0を今夏に提供
【japan.internet.com】Apple、『iPhone OS 3.0』ベータ版発表で新機能をお披露目
【MarkeZine】iPhone OS 3.0、「アプリケーション内コンテンツ購入」機能を提供
【SourceForge.jp】米Apple、「iPhone OS 3.0」ベータ版と開発者向けSDKを先行リリース
【GIZMODO Japan】iPhone 3.0 OS ガイド:これだけ覚えとけば大丈夫
【GIZMODO Japan】iPhone3.0、ついにコピペに対応!
【GIZMODO Japan】iPhone OS 3.0ではアプリ内で買い物ができる
【GIZMODO Japan】iPhone OS 3.0はSpotlight内蔵
【GIZMODO Japan】まとめ:ここがスゴイよ、iPhone 3.0のファーストインプレッション!
【GIZMODO Japan】「iPhone 3.0」を速攻入手! 魅惑の新機能を一挙公開中(写真集)
【GIZMODO Japan】コピペのペが意外と難しいiPhone 3.0ベータ版ウォークスルー(動画)
【iPhone.Walker】iPhone OS 3.0 発表イベント - Push Notification、コピー&ペースト、MMS等が実現
【iPhone.Walker】iPhone OS 3.0発表イベント動画と新機能のスクリーンショット
【iPhone 3G Wiki blog】iPhone OS 3.0 beta
【iPhone 3G Wiki blog】iPhone OS 3.0新機能のまとめ
【iPhone Wiki blog】iPhone 3.0 は SquirrelFish Extreme 搭載?
【iPhone 3G Wiki blog】iPhone OS 3.0 でテザリング
【iPhone・iPod touch ラボ】iPhone OS 3.0 SDKが公開、プッシュ通知・アプリ内課金・購読モデルなどに対応
【iPhone・iPod touch ラボ】アップル、コピぺやステレオBluetoothなど、100以上の機能をiPhone OS 3.0に追加
【iPhone・iPod touch ラボ】アップル、iPhone OS 3.0 プレビューイベントを収録した動画を公開
【iPhone・iPod touch ラボ】iPhone OS 3.0で第2世代iPod touchのBluetooth機能が有効に!?
【iPhone・iPod touch ラボ】iPhone OS 3.0の新機能、iPhoneをモデム化する「テザリング」の動作画面
【PC Online】アップルがiPhoneの新OSを今夏に提供開始、無料でアップグレード可能
【Computerworld.jp】「iPhone OS 3.0」の新機能はビジネス・ユーザーを喜ばせるか
【CloseBox and OpenPod】72秒でiPhone 3.0 SDKが分かる(かもしれない)動画



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【GIZMODO Japan】インターネット、やめられますか? 不況でブロードバンド解約しちゃう人が急増中
http://www.gizmodo.jp/2009/03/post_5227.html

一見「不況だねぇ、イヤだねぇ」で
終わってしまいそうな記事ですが、
RIA的な視点に立つとこれ、結構大問題です。

RIAの最大の弱点は
FlexにせよAjaxにせよ初期DLサイズが
大きくなりがちなことです。
通常のWebサイトと比べると
動的に動かす為のモジュールが必要なので
仕方ないことなんですが、
ここ最近はブロードバンド化が進んだお陰で
あんまり気にしなくて良かったんですね。

ところが、時代を逆行するように
いまさらモデム回線をユーザーに使われると
ブロードバンドありきで設計しているRIAは
まともに動かないポンコツサイトに成り下がる危険があるのです。

エンタープライズだとそんな心配は要らないでしょうが、
コンシューマ向けの場合には十分注意しましょう。
できるだけ軽く、早く、は今まで通りですが、
これからはもしかしたら今まで以上に
軽さが求められるかも知れません。



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【lifehacker】フォクすけで学ぶ、Webブラウザ発展の歴史
http://www.lifehacker.jp/2009/03/web_browser.html

ブラウザの歴史をFirefoxのマスコットキャラクター
「フォクすけ」が一枚絵でおしえてくれます。

名前の通り、日本発のキャラクターなんですが、
その愛らしさから世界中のコミュニティで
採用される勢いなんだそうです。
この説明用の絵もそうなんですが、
いやぁ壮絶に可愛いですねぇ。

もちろんブラウザの歴史覚えるという
本来の目的が一番大事ですが、
フォクすけを愛でる意味でも一見の価値ありですよ。



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【ITpro】[Seasar Conference]認定試験やオープンコースウエア構想を発表「商用サポート提供企業を発掘」
http://www.nikkeibp.co.jp/it/article/NEWS/20090315/326596/

先週の土曜(3/14)に
Seasar Conference2009 Whiteが開催されました。
参加された方は大きなお土産を
持って帰ってこれたんじゃないでしょうか?

今回は新フレームワーク「Slim3」が公開直前と
いうこともあって、その具体的な内容が公開された他、
多くのSeasar関連のOSSの紹介、
さらにSeasarファウンデーション自体の活動が
認定試験や商用サポートまで幅広く展開されることが
発表されたようです。

カンファレンスで発表された資料の一部は
各登壇者のブログ等で公開されているほか、
公式サイトでもPDFが配布されています。
参加できなかった方は
是非一度目を通してみて下さい。


【ITpro】[Seasar Conference]「Slim3、まもなく公開」---ひがやすを氏が新フレームワークをデモ
【ひがやすを blog】Seasar Conferenceのふりかえり
【おおたに6号機blog】T2プロジェクト最大の成果
【kaisehのブログ】Seasar Conference 2009 Whiteで発表しました
【おおたに6号機blog】T2の発表がSeasarカンファレンスで行われました
【c9日記】Seasarカンファレンス2009Whiteに行って来ました
【よねのはてな】SeasarConference2009Whiteで登壇してきました
【t-wadaの日記】Seasar Conference 2009 White にて 「テスト駆動開発のこころ」というタイトルで登壇させていただきました
【c9日記】v0_2_01リリース
【アガテナ】Cubby 2.0.0-beta1をリリースしました。
【Skirnirnismal】Seasar Conference 2009 Whiteでデモできなかったこと



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

S2BlazeDSを使ったFlex/AIRアプリケーション開発
こんばんは、最近Flex/AIRの勉強をはじめたセイジです。

FLexを使った画面作りにも少しは慣れ、ようやく基礎の基礎の超基礎くらいは身に付いてきたかなぁと思う今日この頃。
そろそろサーバ側とつなげて遊んでよう!と思い立ち、S2BlazeDSを使ってみました。
1ヶ月くらい経ったらまた同じポイントでハマリそうな予感がするので、備忘録も兼ねてエントリーしてみます。

事前にインストールしておくもの
・Java 6
・Eclipse 3.4 (+Doltengプラグイン、DbLauncherプラグイン)
・Tomcat 6.0 (Turnkey 3-0-0-544)
・Adobe Flex Builder 3

まずはサーバ側の準備から。
・サーバ側プロジェクトの作成
Eclipseのメニューから、[File] > [New] > [Other...] > [Dolteng] > [Dolteng Project]を選択してNext。
Project name、Root Package Name に「example」と入力し、Presentationに「S2BlazeDS」、Persistenceに「S2JDBC」、Server Managementに「WTP(Servlet 2.4)」を選択してFinish。

・データ準備
パッケージエクスプローラから、上で作成したexampleプロジェクトを選んで右クリック > [H2] > [Start H2 Server]を選択。
もう一回exampleプロジェクトで右クリック > [H2] > [View Database Manager]を選択。
ブラウザが立ち上がり、「H2コンソール」ページが開くので、「接続」ボタンを押下。
マスタメンテナンスの画面に遷移します。
exampleプロジェクト内のsrc/main/resources/data/demo.sqlを開いて内容をコピーし、マスタメンテ画面のテキストエリアに貼っ付けて「実行」ボタン押下。
データ作成完了!

・Javaクラス(Entity、Service)の生成
exampleプロジェクト内のs2jdbc-gen-build.xmlを開いて、Antビューから「gen-entity」タスクをダブルクリックして実行。
exampleプロジェクトを右クリック > [Reflesh]して、EntityやらServiceやらTestCaseやらがワラワラ作成されていることを確認します。
JUnitを実行してちゃんとグリーンバーが出ることを確認。

・サーバ起動
Eclipseのメニューから[Window] > [Preferences] > [Server] > [Runtime Environment]を選択して「Add...」ボタンを押下。
一覧の中から「Apache Tomcat v6.0」を選択してNext。
Tomcat installation directoryにTomcat(Turnkey)のインストールディレクトリを指定してFinish。
EclipseのServersビューを開いて、任意の場所で右クリック > [New] > [Server] を選択し、一覧から「Tomcat v6.0 Server」を選択してNext。
Available projectsからexampleを選んで「Add > 」ボタン押下でコンテキストパスを追加。
Serversビューの三角ボタンを押してTomcatを起動しておきます。

サーバ側の準備はこれで完了!

続いてFlex側。
・Flexプロジェクトの作成
Eclipseのメニューから、[File] > [New] > [Other...] > [Flex Builder] > [Flexプロジェクト]を選択し、Next。
プロジェクト名に「example-flex」と入力し、アプリケーションサーバーの種類に「J2EE」を選択、「リモートオブジェクトアクセスサービスを使用」にチェックを入れてNext。
ルートフォルダに「${DOCUMENTS}\example\src\main\webapp」、ルートURLに「http://localhost:8080/example/」、コンテキストルートに「/example」と入力。
「設定を検証」ボタンを押下すると、「Webサーバーにアクセスできません。サーバーが(ry」と注意されますが、耳を貸さずにFinish。

・設定の確認
example-flexプロジェクトを右クリック > [Properties] > [Flexコンパイラ]を選択。
追加コンパイラ引数に「-services "${DOCUMENTS}\example\src\main\webapp\WEB-INF\flex\services-config.xml" -locale ja_JP」と入力されていることを確認。
「-locale ja_JP」しか入力されていない場合は上記のとおりに入力して「Apply」。

左側の一覧から[Flexサーバー]を選択。ルートフォルダ、ルートURL、コンテキストルートに、Flexプロジェクト特性を追加した際に入力した値が設定されているか確認。
違う値が設定されている場合は正しく修正して「Apply」。

一覧から[Flexビルドパス]を選択。出力フォルダに「${DOCUMENTS}\example\src\main\webapp\example-flex-debug」と設定されていることを確認。
違う値が設定されている場合は上記のとおりに入力して「Apply」。

・MXMLの作成。
main.mxmlを開き、<mx:Application>のlayout属性の値を"vertical"に修正。
<mx:Applicationタグの間に以下の3行を追加。
<mx:RemoteObject id="srv" destination="empService" />
<mx:DataGrid dataProvider="{srv.findAll.lastResult}" width="100%" height="100%" />
<mx:Button label="従業員一覧を取得" click="srv.findAll();" />

・コンパイル
コンパイルを行うと「内部ビルドエラーが発生しました。」というエラーが出るので、おもむろにexample-flexをクリーンビルド。
「HTMLラッパーを生成できません。」というエラーに変わるので、エラーメッセージを右クリックして[HTMLテンプレートの再作成]を選択。
これでコンパイルが通るようになりました。

・実行
main.mxmlを右クリック > [Run as] > [Flex Application]を選択して、ブラウザ上で開く。
「従業員一覧」ボタンを押下して、従業員一覧が表示されれば成功!

最後にAIRプロジェクト。
・AIRプロジェクトの作成
Eclipseのメニューから、[File] > [New] > [Other...] > [Flex Builder] > [Flexプロジェクト]を選択し、Next。
アプリケーションの種類で「デスクトップアプリケーション」を選択すること以外はFlexと一緒です。
プロジェクト名は「example-air」。

・設定の確認
Flexと同じです。

・MXMLの作成
main.mxmlを開き、<mx:WindowedApplication>のlayout属性の値を"vertical"に修正。
<mx:WindowedApplicationタグの間に以下の4行を追加。
<mx:RemoteObject id="srv" destination="empService"
endpoint="http://localhost:8080/example/messagebroker/amf" />
<mx:DataGrid dataProvider="{srv.findAll.lastResult}" width="100%" height="100%" />
<mx:Button label="従業員一覧を取得" click="srv.findAll();" />

・コンパイル、実行
Flexと同じ。

これで実行できるはず。
AIRアプリケーションの場合、endpoint属性を指定しないとhttp://ain.swfという謎のホストにアクセスしにいきます。
最初、これを知らずにちょっとハマってしまいました。

S2BlazeDSを使ったFlex-Java間の接続は、設定ファイルを書かなくて良いので楽チンです。
MXMLにコンポーネント名・メソッド名が記述してあるので、ソース解析の際にあっちゃこっちゃのファイルを見て回る必要もありません。
SAStrutsやTeedaもそうですが、もっとも関連の強い箇所に設定が記述してあるっていうのは手と目と脳にやさしいですね!

・・・遊ぶ時間がなくなってしまった;;

セイジ

テーマ:プログラミング - ジャンル:コンピュータ

【amayeta】SWF Encrypt5.0
http://www.amayeta.com/software/swfencrypt/

SWFの隠蔽化ツールです。

「隠蔽化」なんていうと、いかがわしいイメージがありますが、
要は逆コンパイルされても実装が分からないようにしてしまう
というツールです。

Flash / FlexはクライアントにDLされて動作する為、
ユーザーがその気になれば逆コンパイルして
中身を解析することも出来るんですが、
このツールを使うことでそれを防ぐことが出来ます。

SWF Encrypt自体は有料のツールですが、
トライアル版であれば10ファイルまで無料で
隠蔽化を行うことが可能です。

若干ファイルサイズが大きくなってしまうのが
やや難点ではありますが、
セキュリティ担保のために採用を考えてみてはいかがでしょう?

ちなみに、お値段は80USドルのようです。



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【Seasarファウンデーション】Seasar Conference2009 White
http://event.seasarfoundation.org/sc2009white/

明日はSeasarカンファレンスが開催されます。

 日時 :3/14(金) 12:30-18:00
 場所 :法政大学市ケ谷キャンパス 外濠校舎3F・4F
 定員 :40-400名
 参加費:無料

以前ひがさんが発表していたSlim3も
今回のカンファレンスで発表されるようです。
その他魅力的なOSSについて
開発者から直接説明してもらえる、貴重な機会です。

OSS自体に興味が無くても、
集まった人たちの熱気に当てられるのは
開発者としては良いことなんじゃないでしょうか。
都合のつく方はさっそく申し込みを行ってみて下さい。

【ひがやすをblog】Seasar Conference申し込み開始
【よねのはてな】SeasarCon2009White登壇します
【Skirnirnismal】Seasar Conference 2009 Whiteで話すことになりました
【Skirnirnismal】Seasar Conference 2009 Whiteでセッションがあります
【Skirnirnismal】Ymir-1.0.2をリリースしました
【おおたに6号機blog】T2のセッションをSeasarカンファレンスでやります!
【kaisehのブログ】Seasar Conference 2009 White
【c9日記】Seasarカンファレンス2009White
【CodeZine】ホワイトデーは「Seasar Conference 2009 White」で。Seasarファウンデーションが大型カンファレンス開催



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【Internet Watch】主要ブラウザすべてに影響する「クリックジャッキング」攻撃とは
http://internet.watch.impress.co.jp/cda/news/2009/03/03/22653.html

最近Webのセキュリティ関連情報で頻繁に話題に上る
「クリックジャッキング」について説明されています。

要はユーザーがクリックするであろう箇所に
サイト攻撃者がこっそり自分の動作させたい
ロジックを仕込んだオブジェクトを上重ねして
ユーザーに誤った行動を取らせる、というもの。


まぁ何のこっちゃか分からん、と言う人は
良いサンプルがありますので
もし「はてなブックマーク」のアカウントをお持ちなら
以下のサイトを試してみて下さい。

クリックジャッキングってこうですか? わかりません

セキュリティエキスパート、
はまちちゃんさんが作った、
クリックジャッキングを体験できるサイトです。

「秘宝館」をクリックしても
残念ながら(?)えっちい画像は手に入りません。
一見なにも起こって無い様に見えますが
その後、画面の下の方にある
秘宝館に入場してくれた人たち
をクリックしてみると…。
ええ、私も引っかかったクチです。

これは非常に楽しくクリックジャッキングを
体験できるのですが、実際のクリックジャッキングは
銀行サイトや決済ページなどを乗っ取り、
ユーザーに偽のサイトに誘導して情報を盗み出す、という
かなり怖いシロモノです。しっかり対策を身に付けて、
自分と自分の開発したシステムを使うユーザーを守りましょう。



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【tech.kayac.com】IEのデバッグツール
http://tech.kayac.com/archive/ie-debug-tools.html

IEで使えるデバッグツールです。

上記エントリー中にもありますが、
FirefoxのようにFirebugがあれば
こんなに色々要らないんでしょうけど、
それぞれのツール単体では機能がやや不足がちなので
いくつか組み合わせて使用してみて下さい。




ヨウイチ

テーマ:プログラミング - ジャンル:コンピュータ

【Media Technology Labs】超シンプルな電卓作ったよ
http://mtl.recruit.co.jp/blog/2009/02/post_26.html

JavaScriptで作成された電卓です。

通常の電卓よりも自由度が高く、
たとえば「(2+3)*4」のようにカッコが付いても
ちゃんと正しく計算できますし、
掛け算の表記を「*」と「x」の両方が使えます。

ソースも閲覧することが可能です。
JavaScriptの初級者が参考にするには
非常に優れた題材ではないでしょうか。



ヨウイチ

テーマ:プログラミング - ジャンル:コンピュータ

【マイコミジャーナル】Google、クロスプラットフォームツールキット発表
http://journal.mycom.co.jp/news/2009/02/17/009/index.html

Googleは2/13に、Windows・MacOS X・Linux間での
クロスプラットフォームビルドを実現する
Software Construction Toolkit
を発表しました。
元々はSConsという同様のツールを、
Pythonを使って開発されたとのこと。

対応言語はC、C++、Javaなど多岐に渡り、
それぞれのOSに対応した形でビルドしてくれるとの事。

AIRとは異なり、ひとつのインストーラーで
全てのプラットフォームに対応しているのではなく、
あくまで各環境に合わせてインストーラーを
それぞれ作成してくれるようですが、
いちいち個別に開発する手間を考えると
グッとクロスプラットフォーム開発が楽になりますね。



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【CodeZine】Safari 4のパブリックベータをアップルが発表、新しいNitroエンジンでJavaScriptが4倍以上高速
http://codezine.jp/article/detail/3625

少し前の話題になりますが、
Apple社よりSafari4のベータ版が2/24に公開されました。
表示領域が広がり、よりGoogle Chromeに近い外観に変わっています。
DLはこちらから。主な追加機能は以下。

・Cover Flow(iTunesライクな一覧機能)
・閲覧履歴の全文検索
・高速なJavaScriptエンジン「Nitro」を搭載
・Top Sites(頻繁に訪れるサイトをスタートアップページに自動登録)
・タブの位置がタイトルバー上に変更

以前よりJavaScriptが高速化されていますが、
やはりまだGoogle Chromeには置いていません。
一方、以前より強かったCSSの扱いは一層強化されています。

通常、Appleの場合にはMac版の公開が先行するのが常ですが、
今回はWindows版も同時公開されており、
AppleのWindowsに対するアピールの力の入れようも伺えます。

また、なんといっても、Safari4はAcid3テストに合格した
唯一のブラウザです。
HTML5、CSS3といった次世代規格にも対応できており
正式版がリリースされればWin / Macともに
Webのスタンダードになりえるかもしれません。



【lifehacker】Safari 4 β版がリリース。Firefoxより3倍速いらしい
【lifehacker】ブラウザのスピードテスト:Safari 4 βの実力はいかに?
【lifehacker】Safari 4 の新機能をON/OFFしてカスタマイズ
【lifehacker】Safari 4をWindowsで使ってみた
【0x集積蔵】inspect window(and Safari3と4の判定)
【GIZMODO JAPAN】アップル「Safari 4」ベータ公開:Top Sites、Cover Flow、Nitroエンジン!
【GIZMODO JAPAN】最高にかっこよく、使いやすくなった「Safari 4」ベータを速攻レビュー(写真集あり)
【coliss】Safari 4のベータ版が公開
【coliss】Safari 4 ベータ版を含む各ブラウザのセレクタの対応状況
【builder by ZDNet Japan】「Safari 4」を速攻ベンチマーク--JavaScriptの実行速度はChromeに迫る
【builder by ZDNet Japan】クィックレビュー:Safari 4のここに注目、ここが気になる
【builder by ZDNet Japan】Safari4のタブで気になったこと
【Tech-On!】Appleが「Safari 4」のベータ版を公開,「Nitro」エンジンで高速化
【builder by ZDNet Japan】フォトレポート:「Safari 4」パブリックベータ版
【builder by ZDNet Japan】ウェブブラウザ「Safari 4」は超速い
【MarkeZine】「Safari 4」はJavaScript実行速度を4倍以上高速化、ウェブ開発者向けデバッグツールも内蔵
【PC Watch】Apple、JavaScriptの実行速度が向上した「Safari 4」ベータ公開
【BB Watch】「Safari 4」パブリックベータ版を早速インストール
【SOURCEFORGE.JP】「アップル、Webブラウザ新版「Safari 4」のパブリックベータ公開
【ZDNET Japan】ようやく他のブラウザに追いついたSafari 4のセキュリティ
【CNET Japan】「Safari 4」を速攻ベンチマーク--JavaScriptの実行速度はChromeに迫る
【CNET Japan】アップル、Safari 4を発表--Cover Flow、Tabs on Topなど多数の新機能
【CNET Japan】ブラウザにCover Flow、Chrome風タブ--Safari 4の新機能をチェック
【@IT】米アップル、Safari 4ベータを発表



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【ITmedia】セカイカメラがどんなトンチでできているのか、中の人に話してもらった
http://www.itmedia.co.jp/news/articles/0902/19/news051.html

昨年9月のTechCrunch50で発表された、
文字通り世界の構造を書き変える携帯アプリ
「セカイカメラ」のプロトタイプが
2/17-19開催のファッション展示会「rooms」で
開発元の頓智・株式会社、井口尊仁氏によって公開されました。

TechCrunch50ではコンセプトムービーのみだったのに対し、
今回はある程度まで実際にiPhone上で動くものが
お披露目されています。

「セカイカメラ」は、
デジタルの情報(エアタグ)を空間に貼り付けていき
それを携帯カメラを通して写した世界に反映させるというもの。
SFやアニメの世界でしかなかったことを
次世代携帯とクラウド、AR、Wi-Fiネットワークを
活用することで実現しています。

現在の完成度は3%程度とのことですが、
あくまでそれはエアタグの貼付具合や
ネットワークの充実度まで含めた話のようで、
完成度が5%程度のところ(2009年夏頃)で
実際に一般公開されるようです。

井口氏によればAndroidでもセカイカメラの開発は
進んでいるとの事。電子コンパスを組み込んだAndroidであれば
より精度の高い情報を提供できるんじゃないでしょうか。

なんにせよ、SFの世界はもう直ぐそこまで来ているようです。
待ち遠しいですね。


【japan.internet.com】iPhone 3G 向け AR インターフェイスアプリ「セカイカメラ」をファッション展示会「rooms」で披露
【CNET Japan】iPhone向けアプリ「セカイカメラ」で拡張現実を体験
【CNET Japan】iPhoneアプリ「セカイカメラ」近日リリース--収益化は「エア看板」で
【CloseBox and OpenPod】「動くセカイカメラ」で確認してきたこと
【CloseBox and OpenPod】セカイカメラ、Twitter、裏セカイカメラと便所の落書き
【ITmedia】世界をクリッカブルにするオープンプラットフォーム──「セカイカメラ」
【GIZMODE】セカイカメラに触ってきたよ(動画)
【頓智・日記】頓智・からの初プレスリリース(一日遅れ)
【頓智・日記】Battle of rooms is over !!
【頓智・日記】スナップダイアリー
【TechCrunch JAPAN】現実世界をiPhoneでタグ化するSekai Camera。プロトタイプも素晴らしい
【ITpro】iPhoneアプリの未来を見せてくれた「Sekai Camera」
【ITpro】風景を識別し情報を表示するARアプリケーション「Fallen」
【ITpro】実現の可能性高い携帯電話を使ったAR
【ITpro】頓智・,「セカイカメラ」を初披露
【Tech-On!】「セカイカメラ」に感じた閉塞感打破の可能性



ヨウイチ

テーマ:システム開発 - ジャンル:コンピュータ

【akihiro kamijo】Flash Player 10.0.22.87 と Adobe AIR 1.5.1 公開

テーマ:システム開発 - ジャンル:コンピュータ

copyright © 2005 RIAトピックス all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。