23 4 月, 2008
(
0 )
(
0 )
(
0 )
(
0 )
Total: 0
今年もGoogle Developer Dayが開催されます 。私も参加しますので、みなさま会場でお会いしましょう♪
Google Developer Day 2008の目玉はなんと言ってもGoogle App EngineとOpenSocialのハンズオンセッションでしょう。現地で、(たぶん)Google社員の指導のもとにコーディングをするのだと思います。時間的に片方にしか参加できないのでどちらに参加しようか悩む所です。
Google App Engineのアカウントを取得できなかったので、アカウントの特別配布がされるのならGoogle App Engine側に参加したいですが、そうでなければOpenSocial上でSOBAフレームワークを動作させる事にも興味があります。悩みます。。。
22 4 月, 2008
(
0 )
(
0 )
(
0 )
(
0 )
Total: 0
久しぶりにハマりました。
今まで、SOBA CITYやSOBA mierukaで利用するバイナリデータはディスクスペース(Apacheアクセス領域)で管理していたのですが、データ自体をデータベースで取り扱うようにした方が、管理が楽になるのと、あまり難しい事を考えずにクラスタリングできるようになるとの理由から、バイナリデータをデータベースに押し込む事にしました。
まず、データをDBに押し込む事は難なくテーブルにBLOB型のカラムを用意してやり、JDBC経由でDBに押し込む。サンプルは、SOBAフレームワークで利用するキーストアをDBに押し込むコード片です。
String sql = “INSERT INTO keystore2s (id, sessionKsr, sessionTks, userKsr, userTks) “
+ “VALUES (?, ?, ?, ?, ?)”;
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, strId);
ps.setBinaryStream(2, sessionKsr, sessionKsr.available());
ps.setBinaryStream(3, sessionTks, sessionTks.available());
ps.setBinaryStream(4, userKsr, userKsr.available());
ps.setBinaryStream(5, userTks, userTks.available());
ps.executeUpdate();
昔、hibernateが出たての頃にプリミティブ型で表現できないような型はすべてObjectにしかマッピングできなかったという嫌な記憶があり、EJBでもBlob型はObject型にマッピングするのだと勝手に思い込み、実行時に以下のようなマッピングエラーに遭遇し調査に時間がかかりました。
java.sql.SQLException: Unable to load to deserialize result: java.io.StreamCorruptedException: invalid stream header
EJBでは難しいこと考えずに、単にbyte[]型に直接マッピングできました。
サーブレットでデータを出力するには、HttpServletResponse#getOutputStream()で、ServletOutputStream を取り出し、ServletOutputStream#write(byte[] data)で出力すればok
Content-Typeは特に必要ありませんが、気になる方は「text/plain」を指定したら良いですよ。
11 4 月, 2008
(
0 )
(
0 )
(
0 )
(
0 )
Total: 0
Google App Engineについてドキュメントなどを読んでいたら、公式サイトに映像がアップされており、映像を見てみる事に。
めっちゃクールなテキストエディタを使ってる。。。
MacのTextMateというエディタらしいのですが、正直このエディタを使うためだけにMacユーザになってもいいと思った。海外のMac使いのギークたちはみんなこれを使っているらしいです。社内のMac使いに話を聞いたら、日本語は使えないらしいのですが、正直英語しか使えなくてもこのエディタを使いたい。
どうもWindowsにもTextMateクローンのソフトがあるようですので、そちらをしばらく試してみたいと思います。
まずは、あのフォントとPythonのプラグインをゲットしなければ(笑)