Takayuki Okazaki's Weblog
ブログ: 岡崎 - Okazaki's blog
20070830 2007年 8月 30日 木曜日
App Server 9.1エンタープライズ版
English Translation: (Yahoo!) / (Google)
DSC_2266.JPG
GlassFIsh v2のリリースもあと3週間ほどに迫りましたが、GlassFish v2をベースとしたSunの製品Sun Java System Application Server 9.1 エンタープライズ版の記事を寺田さんが公開され始めてますね。現在GlassFish v2はRC4まで出ていますがStopperのバグが出たとのことでおそらく今夜あたりにはRC5がリリースされると思います。
ちなみに写真はGlassFishのお魚に見えなくもないガラスハゼです。


IdMセミナーより: Identity ManagerをJMXで監視する
English Translation: (Yahoo!) / (Google)
本日用賀にてIdMパートナー様向けに「半歩先行く上級 IDM エンジニアのためのモア・アドバンスト・セミナー」を実施させていただきました。この中で岡崎が紹介しました、「JMX による Identity Manager システムの監視」の内容をすこしご紹介しようと思います。スライドは例によってSlideshareにおきました。

さて、この中でもご紹介したのですがちょっと面白いのがコマンドラインから監視をする方法としてJRubyを使った方法のご紹介です。この方法は西ケ谷さんが以前ブログに書かれていた をかなりパクって参考にしています。今回はかなりIdentity Managerに特化したスクリプトを紹介しているのですが、ActiveSyncの状態を取得するスクリプトというものです。
#!/usr/bin/env jruby 

include Java 
include_class 'javax.management.ObjectName' 
include_class 'javax.management.remote.JMXConnectorFactory' 
include_class 'javax.management.remote.JMXServiceURL' 

jmxurl = 'service:jmx:rmi:///jndi/rmi://idm1:8686/jmxrmi' 
username, password = 'admin', 'adminadmin' 

svcurl = JMXServiceURL.new(jmxurl) 
cred = java.lang.String[2].new 
cred[0], cred[1] = username, password 
env = {'jmx.remote.credentials' => cred} 
conn = JMXConnectorFactory.connect(svcurl, env).getMBeanServerConnection 
names = conn.query_names(ObjectName.new( 
  'IDM:type=Cluster,service=Synchronization,component=ActiveSync,*'), nil) 

names.each do |name| 
  cname = name.get_canonical_name 
  if /name="(.+?)",resType="(.+?)"/ =~ cname 
    puts "Resource Type: #{$2}, Name: #{$1}, ” 
         + “Status: #{conn.get_attribute(name, 'StateString')}" 
  end 
end 
こんな感じのスクリプトを実行すると、
Resource Type: FlatFileActiveSync, Name: My FlatFile, Status: down 
Resource Type: LDAP, Name: SPE End-User Directory, Status: down 
こういう具合で情報が得られます。


会津ITサマーフォーラム資料 Java Web Start版
English Translation: (Yahoo!) / (Google)
遅くなってしまいましたが先週の会津ITサマーフォーラムの資料、Java Web Start版が出来上がりました。毎度ながらオレオレ証明書で署名していますので信頼できない方は実行しないでください。
なお、今回は文字コードがShift-JIS版のみとさせていただいておりますのでそれ以外のエンコーディング環境でお使いの場合にはお手数ですが文字コードの変換等の処理を行ってください。さて、今回のプレゼンテーション資料は6/27のJavaナイトセミナーで作ったものの改良版ではなく、基本的にはほとんどスクラッチから書き直しました。

改良点1: レイアウトを改良

6/27版は急いで作ったこともありレイアウトはほとんど固定でした。レイアウトが固定でもある程度プレゼン資料を作ることはできるのですが、場合によっては読みにくいページが出来上がってしまいました。今回の改良点は主にこのポイントを改善したところにあります。
comparison
6/27版ではレイアウトは1レベルのみの箇条書きに固定されていて、画像を貼付ける場合は必ずその最下段に固定されていました。一方今回のバージョンでは2レベルまでの箇条書きに対応し(3レベル以上も簡単に拡張できる)、画像も任意の段に挿入することができるようになりました。

改良点2: キーボードイベントを使う

6/27版ではスライドをめくるのにはマウスのクリックイベントを利用していました。実は、6/27版の時もキーボードの左/右キーでスライドを前後に切り替えられるようにしたかったのですがなぜかうまくキーボードイベントが取得できないままでした。今回、ようやくその原因/対策がわかりキーボードでページめくりができるようになりました。気がつけば簡単なことだったんですが、結構時間がかかってしまいました。実は、Canvasを使っているときに
Canvas {
        focusable: true
        focused: true
//...
        onKeyDown: operation(e:KeyEvent) {
            if (e.keyStroke == RIGHT:KeyStroke) {
                ps.nextPage();
            } else if (e.keyStroke == LEFT:KeyStroke) {
                ps.prevPage();
            }
        }
}
のようにfocusableとfocusedを両方trueにしておかないとそのコンポーネントにフォーカスがあたらないので必然的にキーボードにベントもそのコンポーネントに通知されないということでした。わかってみれば単純な話でした・・・。

改良点3: ページ番号とプレゼン時間を表示

今回のプレゼンテーションではデモを3つも入れていたので時間内にきっちり終われるかどうかは途中のペース配分がとても大事でした。AppleのKeynoteなんかでは確かマルチモニタ設定で、プロジェクター側にプレゼンテーション、ノートPC側に時計と次のスライド。というような表示ができてペース配分にも配慮されているのですが、今回そこまで作り込むのは大変だったので、Ruby会議2007の時にたしかライトニングトークの際にRabbitというプレゼンテーションソフトを使ってプレゼンされていたのがとても印象深かったので、そのアイデアを拝借しました。
Rabbitでは画面下部にうさぎと亀が配置されていて、うさぎがページ番号、亀が時間を表していたと思います。どちらも画面左端から右端に向かって移動し、全ページが終わるとうさぎが右端に到達し、設定時刻になると亀が右端に到達するというシンプルかつ面白い仕組みです。これだと、うさぎが進みすぎていればテンポが早すぎ、亀が進みすぎていればおそ過ぎととても直感的です。今回JavaFXで実装するにあたり、デザインセンスのなさから単なるバーだけにしました。また、進み方向は上から下にしました。
pagenumber
この時間経過を表示する棒ですが、思いのほか実装は簡単で、単に線を一本引いて
    timeline = [0..height] dur 40 * 60 * 1000 linear;
というように高さ方向に指定時間(ここでは40分)で高さ方向に一番したまで進むように実装しています。
さて、これ以外にも実はJRubyのデモをするためにJavaFXからJRubyを呼び出すなどちょっと変なこともしていますが、だいぶプレゼンソフトとしては成長してきたと思います。またどこか別の機会で改良していくかもしれません (^^;;


過去の記事
« 8月 2007 »
   
1
2
3
4
5
6
9
10
11
12
13
14
15
16
18
19
22
23
24
25
26
27
29
 
       
今日
Click me to subscribe このブログを購読(RSS)
検索

このブログ著者について
ソフトウエア・インフラストラクチャー・ソリューション本部のソリューション・アーキテクトでした(2008年8月退職)。 本業はSOAソリューションならびにSun Java CAPSによるソリューションのプリセールスをお手伝いするエンジニア、とJavaエバンジェリストグループに参加してセミナーに行ったり、趣味のプログラミング・ネタをこのブログで紹介したりしていました。現在は、ふらふらとwatermint.orgで活動中〜。
リンク
 
SunホットトピックPodcast - SunホットトピックPodcast
 


 

Today's Page Hits: 1117