<< 3月 2006 | Home | 5月 2006 >>
PR: 転職    葬式    マンスリーマンション 神戸    北海道    環境    FX    不動産担保融資    桐ヶ谷斎場    海外旅行    専門学校   

Matisse4MyEclipse

marsさんとこで発見。EclipseでNetBeansのGUIエディタを使う。

これって、どう見るべきかな。Sunから見たらNetBeansで育てたものを持って行かれたと感じるかもしれないし、IBMからみたらswtの危機と見えるかもしれない。

開発者にとっては選択肢が増えて嬉しいわけで、ありがたく使わせていただこう。しばらくEclipseに浮気してみるか。しかしJUnit実行時に-eaできないのは、未解決だしなぁ。

猫ページ

猫ページ更新完了。

日比谷公園

つつじを見に池上梅園に行ってみたのだけど、ほとんど咲いていなかったので、そのまま日比谷公園まで足を伸ばしてみた。

ポピーが満開だった。つつじはほとんど咲いていなかった。どうも日比谷公園のつつじは、あまり咲かないようだ。なんか最近135mmばかり使っているような…

20D EF135mmf2L 1/2500秒 F2.0 ISO100


20D EF135mmf2L 1/1250秒 F2.8 ISO100


20D EF70-200mmf2.8L IS@200mm 1/1600秒 F4.0 ISO100


20D EF70-200mmf2.8L IS@200mm 1/1250秒 F4.0 ISO100


20D EF-S10-22mm@22mm 1/640秒 F4.5 ISO100


20D EF-S10-22mm@17mm 1/800秒 F4.0 ISO100


20D EF70-200mmf2.8L IS@200mm 1/400秒 F4.0 ISO100


20D EF70-200mmf2.8L@195mm 1/125秒 F4.0 ISO100


20D TS-E45 1/100秒 F6.3 ISO100


20D EF135mmf2L 1/1600秒 F2.2 ISO100


20D EF135mmf2L 1/640秒 F2.8 ISO100


20D EF135mmf2L 1/1250秒 F2.2 ISO100


20D EF135mmf2L 1/1600秒 F2.2 ISO100


20D EF135mmf2L 1/800秒 F2.8 ISO100


20D EF135mmf2L 1/400秒 F4.0 ISO100

904SHゲット

恵比寿のボーダフォンショップで5,250円だった。


なぜか家族で同じ機種。

内蔵カメラはAF付きだし、ブラウザはVGAなので見易いし、電子コンパス登載でナビ付き。bluetoothでPCへのファイル転送も簡単(赤外線だとXPのバグでうまくいかないので助かる)。なんか音が良くてびっくり。これは付属のカメラで撮ってみたもの。


暗い室内で、これだけ写れば十分。

クラスタリング

後半の研修は面白い。ステートフルセッションビーンでも、セッションパーシスタンスと同じ仕組みを使えば、フェールオーバできるのだな。

しかし、WebLogicだったかの記事でも見たけど、セッションパーシスタンスは、DBに持ってもメモリーで保持してもパフォーマンス的には大して変わらんらしい。ってことはフェールオーバまで考慮するなら「メモリー上だから軽い」とか思って、お気楽にセッションになんでもかんでも格納するのは浅はかということだ(アプリ開発者は、そこまで考えないだろうから、いかにもありがちだ)。しかも今までの経験では仕事が終ったあとに、セッションからオブジェクトをちゃんと削除しているコードなんて見たことないし。多分大量のゴミがタイムアウトまで残っているに違いない。

むしろLOBパターンでアプリケーションから明示的にDBに保存した方がトランザクショナルにも扱えるし、いいのかな。でも作業途中でやめちゃうユーザはいるから、いずれにせよタイムアウトの考慮は必要か。

ツーショット

小桃念願のツーショット!

研修漬け

ソフトウェア部隊のお手伝いをすることになり、今週は研修漬け。

前半は、WebSphereのプログラミングといいつつ実際はServlet/JSPだった。中身的には8割くらいJ2EEの話だったので退屈。PC持って行って正解。でも、この内容は普通の人には製品特化な内容よりも、ある意味良心的かもしれない。

明日からはクラスタリングの構成なので、もう少し楽しめそうかな。

最近良くやるミス

新規にビルドディレクトリ作る時に既存のをcp -rでコピー(build.xmlとかディレクトリ構造が同じなので)。でも、subversionで管理されていて、.svnまでコピー。

「あれ? commitしたのに入ってない!」

AirH"

会社の電話がPHSからauになったんだけど、auのデータ通信は定額じゃないので、AirH"カードが配られた。今日地下鉄に乗りながらダメもとで使ってみたら、びっくり。走行中は完全に電波が来なくなるのだけどセッションは切れずに、駅に着くと復活する。へ〜、これまで使ってたPHS通信とはえらい違いだ。これなら使おうという気になるなぁ。TwoLink解約するか…

すっかり春だ。

風が気持ちいい。



Serlvet 2.5

Servlet 2.5だと、サーブレットコンテナがDIも提供することになるのか。Java EE5のtutorialだと、サーブレットがUserTransactionのインジェクションを受けて、トランザクション制御してるけど、サーブレットコンテナ自身がJTAもサポートしないといけないんだろうか。サーブレットコンテナの実装次第とか言われると、移植性で悩みそう。

@Resource UserTransaction utx;
...
try {
    utx.begin();
    doBusinessLogic();
    utx.commit();
}
catch (RuntimeException r) {
    utx.rollback();
    throw r;
}
catch (Error e) {
    utx.rollback();
    throw e;
}

スタートメニューで隠れるやつ

Windowsのスタートメニューって良く使うやつだけが表示されるって触れこみだったと思うんだけど、なんかたまに全く逆に良く使うやつが隠れていることないですか? うちだけかなぁ。

個人情報保護法

なんか色々と面倒なことになってきた。

自宅のPCでVPNで仕事しても良かったのだけど「仕事に使うPCは他の人に触らせないこと」というお触れが出た(ユーザを切り替えろとかじゃなく)。

今まで2年間業務に「も」使用するという条件でThinkPadが安く買えたのだけど、2年間業務に「しか」使えないという条件になってしまった。なんで個人の金で業務にしか使えないPCを買わなきゃならんのだ…。今回切り替え時期だったのだが、とりやめ。

完全個人もちということだと、別にlenovoでなくてもいいな。Core duoで4GB入って2.5kgくらいのは出ないものか。と思ったら結局lenovoにつきあたったり。しかし何で日本は2GBまでって書いてあるんだろう。純正オプションに1GBのメモリモジュールしかないだけで、ハードウェア的には4GB認識するんだろうか。

「同様の箇所が無いか全部見直してください」

そりゃ、言う方は楽だよな。

ツールなどを利用して機械的に発見する方法を提示できないなら、言うだけ無駄な気がする。

JDBCで時刻書き込みすると、分以下が0になる。

こんな風にして現在時刻をMSDEに書き込んでいるけど、分以下が0になるという。

stmt.setTimestamp(++index, new java.sql.Timestamp(new java.util.Date().getTime()));

Dateをnewしているところにツッコミたくなったが、それは本質ではない(ていうか、下手をすると自分が書いたものかもしれないし ^^;)。とりあえずMSDEをここから。JDBCをここから落として試してみる。ちゃんと動く。

話を聞いてみると、MSDE2000じゃなくて、MSDE + ブリッジだった。ブリッジなんてすっかり忘れてしまったので、悩みながら設定。やっぱりちゃんと動く。と、思ったらIBM 1.3.1だと起きるが、SUN 1.3.1だと起きない!

IBM版のブリッジってSUNのをそのまま持ってきているんじゃないのか。とりあえず、こんなんで回避。

stmt.setString(++index, new java.sql.Timestamp(System.currentTimeMillis()).toString());

がっくし

お茶を入れようと思ったら… (やらせじゃないですよ!)

猫ページ

猫ページ更新完了。

performant

Longmanにも載ってないのだけど、新しい言葉なのかな。良く見る気がするんだけど。

WordWebには載っていた。

OpenJPAがApacheのincubatorに

Heretic Programmerで発見。

GeronimoもOpenEJBからこちらに乗り換えるのかな。OpenEJBもOpenEJB3のプランはあるようだけど、まだまだ先のようだし。ま、Geronimoの構造からいって、好きな方に簡単に乗り換えられるから、お互い頑張って欲しいな。EJB3.0への対応という点では大きな前進だ。dWにJBoss載せざるを得ないほど追いつめられていたし。

意外と早くJ2SE 5.0がサーバーサイドに降りてくるかもしれないなぁ。

猫のいたずら

これ、押してみてもいい?

「だめっっ!」

そぉっと そぉっと

「こらぁ!」

java-mode-indent-annotations.el

java-mode-indent-annotations.el

EmacsWikiで発見。アノテーションを使った時にインデントがずれないようにする。Meadow 2.10では、site-lispの下に置いて、.emacsに

(require 'java-mode-indent-annotations)
(defun my-java-mode-hook()
  (java-mode-indent-annotations-setup))
(add-hook 'java-mode-hook 'my-java-mode-hook)

で使用できた。

developerWorks

EJB 3.0 Java Persistence APIを使用したエンタープライズ・アプリケーションの設計

いや、よもやここにJBossが登場してくるとは思わなかった。とはいえSunのApplicationServer持ってくるわけにもいかないか。^^; それはともかく、

「ORマッピング層は、徹底的なテストが必要な重要な層です。」

やっぱりそうだよね。O-Rマッパってどうしても完全に動きが読めないので、きっちりテストしないと落ち着かない。

「WebとEJBコンテナ間の統合に関する問題です。この分野においては、Springの方がいまだに優位を保っています。」

これって何を指しているのかな。JSPにはEJB参照をInjectionできないから、JNDIルックアップをしないといけない点を指してる??
しかし、JSPからEJBを直で呼び出すなんてやるんかな。でもEJB自体が簡単にテストできるようになったから、これもありか。

MacBookのノイズ。

izuさんとこ

Windowsでも、出来が悪いのはCPUが回っている時にノイズが乗るのがあるけど、CPUを使わないとノイズが乗るというのは、初めて聞いた。なんで、そんなことになるんだろう。

猫ベッド小型化計画

小さな箱で、猫ベッド作成。これなら机の上でもあんまり邪魔にならない。


いや、温泉じゃなく…


そんなにキッチリはまらなくても…


どうやら気に入ってくれた模様。


君には小さ過ぎない?


みっちり。猫ってエコノミークラス症候群とか心配ないんだろうか。

Redhat、JBossを買う?

なんかトップページに思いっ切り書かれてますが。

PofEAA早わかりガイド

開発の現場No004に記事を書かせていただきました。

ページ数の関係で掲載できなかった分は、こちらに置いてあります。

WSDLの生成

jax-rpcの頃って、あらかじめWSDLを作成してwarに仕込んでいたように記憶しているのだけど、JavaEE5のwsgenで作ると、WSDLが生成されない。どうやらコンテナ側で動的に生成されているようだ。JAX-WS 2.0のspecを読んでみたら、5.2.2に以下の記述があった。

The WSDL contract for an endpoint is created dynamically based on the annotations on the implementor class, the Binding in use and the set of metadata documents specified on the endpoint (see 5.2.4).
Conformance (WSDL Publishing): An Endpoint that uses the SOAP 1.1/HTTP binding (see 10) MUST make its contract available as a WSDL 1.1 document at the publishing address suffixed with ”?WSDL” or ”?wsdl”.

で、5.2.4も見てみると、

A set of metadata documents can be associated with an Endpoint by means of the setMetadata- (List) method. By setting the metadata of an Endpoint, an application can bypass the auto- matic generation of the endpoint’s contract and specify the desired contract directly. This way it is possible, e.g., to make sure that the WSDL or XML Schema document that is published contains information that cannot be represented using built-in Java annotations (see 7).

アノテーションでバイトコードに仕込まれたメタデータからWSDLを自動生成するけど、ユーザが自分で与える事も可能のようだ。

Apress beta book

beta book

出版前に一部の章が読めるシステムらしい。

clone()

J2SE 5.0からは、戻り値の型をObjectにしなくて良くなった。

public class Test2 implements Cloneable {
    public Test2 clone() throws CloneNotSupportedException {
        return (Test2)super.clone();
    }
}

javapでバイトコードを見てみると面白い。

$ javap Test2
Compiled from "Test2.java"
public class Test2 extends java.lang.Object implements java.lang.Cloneable{
    public Test2();
    public Test2 clone()       throws java.lang.CloneNotSupportedException;
    public java.lang.Object clone()       throws java.lang.CloneNotSupportedExcption;
}

おぉ、戻り型が違うだけの同名メソッドが宣言されてる。共変メソッドの時のように、Test2 Test2.clone()は、Object Test2.clone()を呼び出しているのかと思いきや、

public Test2 clone()   throws java.lang.CloneNotSupportedException;
  Code:
   0:   aload_0
   1:   invokespecial   #2; //Method java/lang/Object.clone:()Ljava/lang/Object;
   4:   checkcast       #3; //class Test2
   7:   areturn

public java.lang.Object clone()   throws java.lang.CloneNotSupportedException;
  Code:
   0:   aload_0
   1:   invokevirtual   #4; //Method clone:()LTest2;
   4:   areturn

逆だった。ちなみにこのコード、-target jsr14でコンパイルすることが可能で、実際にJ2SE 1.4でも動く。戻り型だけが違う同名メソッドがあっても1.4は大丈夫のようだ。

public class Test3 {
    public static void main(String[] args) throws Exception {
        Test2 test = new Test2();
        test = test.clone(); // キャスト無し!
    }
}
$ d:/j2sdk1.4.2_08/bin/javac -classpath . Test3.java

SHANAI@ruimon /tmp      コンパイルできてしまう!
$

GlassFish

JavaEE 5のSDKには、Open sourceアプリケーションサーバであるGlassFishバンドル版があるのだけど、1.3とか1.4の頃のつもりでいると、いい意味で不意打ちをくらう。管理コンソールはシャレてるし、信じらないほどサクサク動く。NetBeansといいSunは頑張っているね。

JavaEE 5

EJB 3.0をちょっと試してみるとすると、JBossか、SunのSDKになりそうだけど、JBossはドキュメントが有料だし、とりあえずSunに流れてみる。

なんかTutorialが1000ページ超えてますが... こういうのを早々に作って、どんどん公開するというのはすごい… どこも覇権争いで必死だ。

auが2台に

会社のケータイがau(W21CAII)になった。これでACアダプタが共通で使えるかと思ったら、なんかW21S用とは微妙に違う。なんで、こういうとこバラバラにするんだろうか。

W21CAIIはカメラにAFがついているので、結構いいかもと思ったけど、これって赤外線がついてないのか。miniSD買おうかと思って見てみると、知らないうちにSDってCFなみに安くなってる。後で他にも流用とか考えると中途半端な容量を買うのも何だし。と思ったら、どうもこの端末は2GBだと正しく認識されないらしい。んー、やっぱりやめとくか。

EJB3.0

今週から研修漬けのはずだったのが、遅れているので、EJB3.0のProposed Final Draftを眺めてみる。ある程度EJB2.1までの知識があるなら、ejb-3_0-pfd-spec-simplifiedが簡潔でいい感じ。

メソッドやフィールドを"declare"ではなく"define"と言ってみたり、フィールドを"instance variable"と言ってみたり、どうも落ち着かない。しかしようやく、あまり身構えずに使ってみようかという感じになってきた。

ふさふさ

ふさふさしっぽ

[備忘録] 時間が無い時に、とりあえずやっておくインスペクション

FindBugs

grep -r -i "double" .

grep -r -i "float" .

grep -r "synchronized" .

grep -r 'catch[ ]*[(]\(Runtime\)\?Exception' .

grep -r 'new String[(]' .

猫ページ更新完了

猫ページ更新完了。

本門寺の桜

丁度満開。すごい人だった。


Canon EOS 20D 1/1600 F4.0 ISO100 EF70-200mmf2.8L IS@70.00(mm)


Canon EOS 20D 1/125 F11.0 ISO100 EF-S10-22mm@10.00(mm)


Canon EOS 20D 1/200 F9.0 ISO100 EF-S10-22mm@10.00(mm)


Canon EOS 20D 1/1250 F4.0 ISO100 EF70-200mmf2.8L IS@148.00(mm)


Canon EOS 20D 1/800 F4.0 ISO100 Flash:on EF70-200mmf2.8L IS@200.00(mm)


Canon EOS 20D 1/400 F6.3 ISO100 EF70-200mmf2.8L IS@70.00(mm)


Canon EOS 20D 1/500 F4.0 ISO100 Flash:on 50.00(mm)


Canon EOS 20D 1/250 F4.0 ISO100 Flash:on 70.00(mm)


Canon EOS 20D 1/500 F4.0 ISO100 Flash:on 110.00(mm)


Canon EOS 20D 1/800 F2.0 ISO100 EF135f2L


Canon EOS 20D 1/250 F4.0 ISO100 EF135f2L


Canon EOS 20D 1/1000 F4.0 ISO100 Flash:on EF70-200mmf2.8L IS@140.00(mm)


Canon EOS 20D 1/4000 F2.0 ISO100 Flash:on EF135f2L

馬酔木もひっそりと咲いていた。

Canon EOS 20D 1/8000 F2.0 ISO400 EF135f2L


Canon EOS 20D 1/6400 F2.0 ISO400 EF135f2L

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8