Seasar

『Blogopolisの裏側』発表資料

昨日のSeasar Conference 2009 Autumnで発表させていただいた『Blogopolisの裏側』の資料を公開します。Blogopolisの裏側View more documents from kaiseh.資料の28枚目に、重み付きボロノイ図の重心ベースレイアウトの説明用動画がありました。その動画は以…

Seasar Conference 2009 Autumnは明日です

Blogopolisの発表資料は大体完成しました。幾何的なアルゴリズムや3Dの説明は、言葉より目で見てもらった方が圧倒的に分かりやすいと思うので、動画やワイヤーフレーム版のBlogopolisなどを準備しているところです。Seasar Conference 2009 Autumn、ぜひ聴き…

Seasar Conference 2009 AutumnでBlogopolisについて話します

今月12日に、法政大学市ヶ谷キャンパスでSeasar Conference 2009 Autumnが開催されます。この中でSeasarの事例発表として、セッションを1枠いただきました。タイトルは『Blogopolisの裏側』です。何を話すかはまだ完全には決まっていないのですが、Blogopoli…

Seasar Conference 2009 Whiteで発表しました

14日のSeasar Conference 2009 Whiteで、S2Swingについて話してきました。40人部屋が満席になった上に、立ち見してくださる方までいて、とても嬉しかったです。ご来場ありがとうございました。45分使って話すのは初めてだったので緊張しましたが、笑いも多少…

Seasar Conference 2009 White

14日のSeasar Conference 2009 White@法政大で、S2Swingについてのセッションを持ちます。 会場: S304(定員40名) 時間: 15:00 - 15:45 タイトル: 『モダンSwing - S2SwingでGUI開発はどう変わるか』 去年秋のSeasar ConferenceではLT枠をいただきましたが、…

Seasar Conference 2008 Autumn終了

Seasar Conference 2008 AutumnでLTに参加させていただきました。今回発表する側になったことで、このイベントが本当に多くの方の支えによって成り立っていることを実感できました。素晴らしい場で発表の機会をいただき、感謝の気持ちでいっぱいです。ありが…

明日はSeasar Conference 2008 Autumnです

Seasar Conference 2008 Autumn法政大市ヶ谷キャンパスで13:00からです。ぜひお越しください!今、S2SwingのLT&リリースに向けて最後の準備中です。13:00より前にリリースできるかどうか微妙なところですが、頑張ります。

Seasar Conference 2008 Autumnで喋ります

9月6日(土)、法政大市ヶ谷キャンパスで開催されるSeasar Conference 2008 Autumnで、ライトニングトークをすることになりました。僕のテーマはS2Swingです。まず、Swing Application Framework + Beans Binding (+ NetBeans)による近年のSwing開発スタイルに…

S2Framework単体をリフレクションユーティリティとして使う

S2Containerを抜きにして、S2Framework単体をリフレクション用途に使う手も全然ありなんですよね。クラスのメタデータを取得する場合、Java標準のIntrospector.getBeanInfo()の代替としてBeanDescとPropertyDescが非常に便利です。getter/setterの無いpublic…

JavaBeansクラスのBeans Binding対応自動化

Beans Binding(JSR 295)でJavaBeansを監視できる条件は、クラスがPropertyChangeEventをサポートしていることです。つまり public class MyModel { private String name; public String getName() { return name; } public void setName(String name) { this…

S2DaoInterceptorのS2JDBC対応版みたいなもの?

S2DaoとS2JDBCって、結局どっちの生産性が高いんだろう。初めは「流れるようなインターフェイス」に感動してS2JDBCすげーと思ってたんですけど、良く良く考えると、インターフェイスを書くだけでDao完成というS2Daoの手法は、やはり抜群に優れている気がして…

Seasar Conference 2007 Autumn

Seasar Conference 2007 Autumnに行ってきました。以下、僕の受けたセッションと雑感などです。 Seasarを支えるテクノロジー - 千葉さん Javassistの千葉先生の講演でした。静的 vs. 動的(Reliability vs. Productivity)の対比を、"Avoid Coding vs. Enjoy C…

S2JDBCを使ってみた

最近JRuby on Railsに浮気気味だったんですが、昨日のエントリーみたいなこともあって少し萎えてしまい、Javaに戻ってきました。S2JDBC、良いですね。エンティティ毎にDaoを作成する必要がないし、規約でハマるリスクも減っている。S2Daoから移行する価値十…

Click FrameworkのHOT deploy対応は難しい

最近、Click Frameworkがとても気に入っています。今後、JavaでWeb開発を新規に始めるときはClickを使うつもりでいます。 SeasarにはS2Clickというプロダクトがあって、これを使えばS2とClickを組み合わせることができます。が、S2ClickはHOT deployに対応し…

バリデーションの担当層

入力値のバリデーションはプレゼンテーション層の担当ですが、バリデーションルールをプレゼンテーション層で決定できないときもあります。値の範囲がDBに格納されているような場合です。このときはバリデーションをロジック層で実行することになりますが、…

画面遷移

S2JSFを使っていて、JSFのnavigation-rule(あるいはStrutsのforward)による画面遷移は少し機能不足だと思いました。 1. 接続プロトコルの切り替えができない非SSL画面からSSL画面への遷移を記述できません。逆も同じです。 2. 次画面にパラメータを渡せな…

diconファイルの切り替え

diconファイルのツリーに、以下のインクルード構造が含まれているとします。 someapp/allLogic.dicon j2ee.dicon ここで、「テスト時にはj2ee.diconでなくj2ee_test.diconを使いたい」という要請があったとします。 このためには、j2ee.diconの代わりにj2ee_…

DTOのライフサイクルとプロパティの保存

DTOのライフサイクルをrequestにする場合、プロパティはフォーム部品にバインディングして保持することになりますが、List型のプロパティを保存できないのが悩ましいです。 public class EditEmployeeDto implements Serializable { private String name; pr…

nullチェック

以下のようなDaoがあります。 public interface EmployeeDao { public static final Class BEAN = Employee.class; public static final String getById_ARGS = "id"; public Employee getById(Long id); public static final String getByName_ARGS = "name…

エンティティとDTO

ひがさんのblogを参考に、DTOにエンティティを継承させて直接DBとやり取りするという手法をしばらく使っていました。エンティティとDTOの相互変換コストが発生しないのがメリットです。初めのうちは問題が無かったのですが、システムの仕様が複雑化するにつ…

DAOの作成の簡略化

S2Daoでは非常に簡単にDAOを作成することができますが、Genericsでさらに簡略化を図ってみました。 public abstract class Entity implements Serializable { // annotation for S2Dao public static final String id_ID = "identity"; private Long id; pub…

相対パスとS2JSF

S2JSFでは、アプリケーション実行時のパスがHTMLの存在する実際のパスと同一である保証がないので、HTML中に相対パスを書くとリンク切れを起こしてしまうことがあります。 /pages /error sql_exception.html /images alert.gif search.html例えば上の構成で…

非NULL制約とS2Unit

S2Unitでは、テストメソッドの先頭で、Excelシートに記述された初期値をテーブルに代入します。このときテーブルに非NULL制約のカラムがあれば、当然そのカラムをExcelシートにも用意しないとSQLエラーになってしまいます。テスト数が増えてくると、テストメ…

IDの自動生成とS2Unit

MySQLでAUTO_INCREMENTによるIDの自動生成を行っていると、S2Unitでテストを実行する時に少し困ったことが起こります。AUTO_INCREMENTカウンタはトランザクションがロールバックされてもリセットされないので、テスト中に新規挿入されるIDの値が直前までのテ…

カラムマッピングの高速化

S2Daoを使ってエンティティのリストを取得するとき、 エンティティのプロパティ数が多く かつ、一度に取得されるエンティティ数が多い ような場合、大量のsetterがリフレクションで呼ばれることによってパフォーマンスが悪化するようです。そこで、次のよう…