2009年12月31日木曜日

最初の年末を迎えることが出来ました。

何とかかんとか、お陰さまで会社としての最初の年末を迎えることが出来ました。
従業員をはじめ、お客様や弊社を支えてくれている皆様のお陰です。本当にありがとうございます。

弊社は6月決算ですので、準備期間も入れてようやく丁度半年になろうか、というところでまだまだまだまだ・・・ですが、今後とも邁進して参ります。

2009年12月28日月曜日

[EJB3] EJB 3.1リンク纏め

個人的に注目度の高いEJB 3.1の記事のリンクを纏めてみました。
ちょっと古いのもありますが、纏めて読むと何となくわかる?

http://d.hatena.ne.jp/shin/20091219/p3
http://d.hatena.ne.jp/shin/20080614/p4
http://blogs.sun.com/enterprisetechtips/entry/a_sampling_of_ejb_3
http://www.infoq.com/jp/news/2008/04/ejb31draft
http://journal.mycom.co.jp/news/2007/07/23/041/index.html
http://weblogs.java.net/blog/2009/06/02/ejb-31-release-third-quarter-2009
http://blogs.sun.com/enterprisetechtips/entry/a_sampling_of_ejb_3

要は、EJB3.0との大きな違いはあまりないんだよね。
でも、インターフェイスを作らなくて良かったり、EARファイルではなくて、WARで良かったりって、小さいけど結構利便性の面で大きく変わってくるところが改善されているから、早く欲しい。

2009年12月27日日曜日

Embedded Jopr Core

ネタにするような事かどうかは疑問ですが、JBoss 5.1.0.GA から、Embedded Jopr Core  という、従来よりも使い勝手の良い管理コンソールがバンドルされています。

http://localhost:8080/admin-console/

WebSphereやWebLogicを使っていた方たちで、JBossに対して持つ不満の最たるものとして、管理コンソールがショボイ!というのがあったかと思うのですが、この点で大きな改善と思います。 同じような操作性で管理することができますので是非お試しください。 ちなみに、Seamベースですので、そういう見方をすると興味深い代物ですよ。

2009年12月26日土曜日

Amazon CloudFront

Amazon EC2を国内で利用した場合に画像とかCSSとかの表示がもっさりした感じになるのを改善するのに利用できるようです。

http://aws.amazon.com/cloudfront/
http://mtl.recruit.co.jp/blog/2008/11/amazons3amazon_cloudfront.html
http://collectivemeta.com/k4bd2

でも、SSLをサポートしないってのはなぁ。
そもそも、EC2を国内に持ってきてもらいたいところですが?

Amazon EC2 料金体系

下記サイトで非常に分かりにくいEC2の料金体系が分かりやすく纏っています。
http://lunarium.info/arc/index.php/AmazonEC2料金体系

一年で5万円を切るのか。(為替によるけど)

高円寺20000V閉店・・・

会社のメンバーに教えてもらったのですが、高円寺20000Vが火事の影響で閉店になってしまったそうです・・・。
色々思い入れもあり、非常に残念。時代の流れなのでしょうか。
http://sankei.jp.msn.com/region/kanto/tokyo/091212/tky0912122104005-n1.htm

2009年12月25日金曜日

WordPress 2.9 (2)

バージョンアップちゃんとすんなり出来ました。でも、2.9.1が出るみたい・・・。
善し悪しありますが、WordPressのバージョンアップは頻度が多すぎます。バグ対応だけのリリースとかないのはどうかと。

2009年12月24日木曜日

RichFaces 3,3,3,BETA1

まだベータ版ですが、RichFacesにJSF 2のサポートが入ったようです。
http://www.jboss.org/feeds/post/richfaces_3_3_3_beta1_released_with_jsf_2_support

WordPress 2.9

日本語版がリリースされたようです。
弊社のHPも、このブログもWordPressなので、バージョンアップしなきゃ。テーマに不都合があると泣いてしまいますが。

しかし、年末ってのは何でかわかりませねんが、忙しくなりますですね。

2009年12月21日月曜日

Google Apps

すっかり時代遅れになっている感じですが、Google Appsで50ユーザーまで無料で独自ドメインのメールがGMailで利用できるんですねっ!
http://www.google.com/apps/intl/en/group/index.html

Google Email UploaderってのでOutlookやThunderbirdからGMailへのインポートは出来るみたいですね。

そこらの安いサーバー使うくらいならよっぽど良いに違いないですね。
登録だけしましたが、、、、MXいきなり変える訳にも行かず。苦笑

2009年12月17日木曜日

SeamTest on PostgreSQL

SeamTestでのDB操作はHSQLとMySQLしかサポートされていません。
PostgreSQLで使いたいところ。ざっと調べると実装は無さそうなので仕方ないからつくろうかな。
フリーな実装をご存知の方がいらっしゃったらお知らせ戴けると。

2009年12月15日火曜日

共通項目を追い出そう。

・作成日
・更新日
・論理削除フラグ

の類というのは、基本的にどのテーブルにも追加していたりしませんか?
こういった場合は、何度も書くのはプログラマとしてアレなので、一箇所に追いやりたいところ。

○追い出したクラス(エンティティではない)
@Embeddable
public class Basis implements Serializable
{
@Column(nullable = false)
@NotNull
private Date entry = new Date();

@Column(nullable = false)
@NotNull
private Date modify = new Date();

@Column(nullable = false)
@NotNull
private Boolean del = false;
}

○呼び出すエンティティ側
@Embedded
private Basis basis = new Basis();

継承するんじゃなくて@EmbeddedアノテーションでDIするというのが、肝ですね。

@Versionアノテーション

なんだこれ?って思っている方も多いかと思うのですが、更新しつつ、テーブルの生データを眺めていると、更新ごとにインクリメントされているのが分かります。
楽観的ロックの能力を付与するためにあるようです。
手で操作する類のものではないので、セッターはprivateにするか取ってしまうのが良いでしょう。
@Version
private Integer version_no;

テーブルは日本語で、Entityは英語。

なんてことをしたい人が世にどれだけ居るのかは存じ上げませんが、EJB3ではそんなこともできます。
以下のようにしてあげれば、
User(Entity)=> ユーザ(テーブル名称)
name(Entity)=> ユーザ名称(カラム名称)

のように翻訳可能です。
あくまでもアクション側からはエンティティ名称で操作するので、日本語が混ざってしまうのは、エンティティだけに抑えるという役目も果たしています。
@Entity
@Table(name="ユーザ")
public class User implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(name = "ユーザ名称", nullable = false)
@NotNull
@Length(max = 20)
private String name;

@Column(name = "パスワード", nullable = false)
@NotNull
@Length(max = 10)
private String passwd;
}

2009年12月14日月曜日

@OneToMany, @ManyToOne

今日2稿目です。
親子関係にある、外部キーを持ったテーブルをEJB3のEntity Beanで表現するために、@OneToMany, @ManyToOneというアノテーションを使います。
決まり文句に近いものなので、押さえておきましょう。
A(1) -------------------> B(*)

○親テーブルA
@Entity
public class A implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Version
private Integer version;

@OneToMany(mappedBy = "a", cascade = CascadeType.REMOVE)
private Set<B> bs;
}

○子テーブルB
@Entity
public class B implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Version
private Integer version;

@ManyToOne(optional = false)
@NotNull
private A a;
}

吐き出されるDDLは以下のようになります。
CREATE TABLE A
(
id bigserial NOT NULL,
"version" integer,
CONSTRAINT a_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);

CREATE TABLE B
(
id bigserial NOT NULL,
"version" integer,
a_id bigint NOT NULL,
CONSTRAINT b_pkey PRIMARY KEY (id),
CONSTRAINT fk26f4fb2dbc3ce1 FOREIGN KEY (a_id)
REFERENCES a (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);

外部キーは自動的に a_id(親テーブル名_id) となります。

EJB3.0 Entityの自動連番とPostgreSQLのserial/bigserial型

意外と書かれていなかったりするので記録を残してみます。普通は主キーにすると思うので、@Idもセットで書きましょう。

・bigserial型として宣言
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

・serial型として宣言
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

ピンとこないかもしれませんが、GenerationType.IDENTITYが肝です。他のDBでも同様と思います。

一昔前はもっとごにょごにょしなきゃいけなかったんですが、今はこれだけで大丈夫でした。

2009年12月12日土曜日

Weldのライセンス

全く気づいてませんでしたが、SeamのLGPLとは違い、APL 2.0なのか。
http://seamframework.org/Download

よくよく見ると、Web Beans 1.0.0.PREVIEW1の時のライセンスはAPL(2.0かどうかは明記されていない)

2009年12月10日木曜日

Thunderbird 3.0

早く寝ろ、という感じですが。苦笑

Thunderbird 3.0がリリースされていたのでバージョンアップしてみました。

が、イマイチ何故にタブがあると嬉しいのかが分かりません。
ブラウザーとは違うと思うんですが・・・。

JBoss事例

海外事例ですが、なかなか面白い読み物です。
http://www.jp.redhat.com/solutions/successstories/Union-bank_1201.pdf
http://www.jp.redhat.com/solutions/successstories/AVIS_Europe_1201.pdf
http://www.jp.redhat.com/solutions/successstories/Daiwa_CS_1201.pdf

JBoss EAP 5.0 日本語マニュアル

リリースノート
インストールガイド
スタートガイド

がリリースされてます。

つまらないところですが、意外と便利?
http://www.redhat.com/docs/ja-JP/JBoss_Enterprise_Application_Platform/5.0/html/Getting_Started_Guide/creating_a_jdbc_client.html

2009年12月8日火曜日

WiMAX....

WiMAXは抱き合わせ販売はしないという方針だそうですが、それは仕方ないとしてビル内で繋がらないと言う情報もあったりして利用を躊躇しますね。
期待しているので、頑張って欲しいところです。

http://www.uqwimax.jp/

2009年12月4日金曜日

Bean Validation: validation everywhere EE 6 edition

JBoss AS6 M1で試せるそうです。先取りしたい人はどうぞ。
Bean Validation: validation everywhere EE 6 edition


Bean ValidationのほかにもJBoss AS6には色々入ってきそうです。

http://www.jboss.org/feeds/post/introducing_jboss_as_6_0_0_m1

EE6 has been approved

良いニュースかな。
EE6 has been approved, yet…

感動!



人身事故にあうと良いことがある?(笑)
夕方、大した用も無くナッツウェルさんにお邪魔してしまったんですが、入口にこんな貼り紙が!

いや~、ありがとうございます。
物を戴いたりするよりもこういう心尽しの方が全然嬉しいですし、こんな事をしていただけたのは初めてでビックリです。

アイディア次第でローコストで出来ることって色々あるんだな、と非常に勉強になりました!

JBoss追いきれない・・・

本日は、中央線の人身事故で1時間弱、電車に缶詰にされ、萎えてしまいましたので弱音を吐いてみます。w

http://www.jboss.org/projects/matrix

をみると、全く追いきれる気がしませんね。増えたものの概要すら分からないもの多数。苦笑
できるだけ追いかけて生きたいのですが、やっぱり人間なので関心のある方に意識は向きますし、もはや単一のプロジェクトの範疇を大きく超えてしまっています。

もう少しすっきり纏めて貰えると嬉しいですね。