Java

q4m にまつわる適材適所

サイボウズ奥さん作の q4m を職場で提案。 jdbc で接続するのはちょっと・・・という意見が出たので、一個ラッパーを挟むことにして、無事職場で導入されそうだ。 ラッパーは apache の mod で作成した。単純にキュー投入リクエストを受け取り q4m に投入す…

ExecutorService

JDK1.5 の java.util.concurrent のスレッド管理機能が強力なので、なんか便利なものを作ってみたいのだが、なかなか難しい。上手に抽象化されすぎてて、非同期管理機能を提供するのはあんまり意味がないのだ。 「別スレッドで実行して、結果を受け取る。タ…

SimpleDateFormat にまつわるぐだぐだ話。

職場では、SimpleDateFormat.parse() は問題を起こすと言うので、腫れ物に触るような扱い、というか、「使用禁止」である。んでどうしてるかというと、各自でパース機能を実装している。うーん。それはそれで微妙・・・。 と、書いたが、ウチの職場が(だけ…

Java のオブジェクト生成にかかる時間

つまらない覚書。 public class intcreate { public static void main(String[] args) { final int loop = Integer.MAX_VALUE; long start = System.currentTimeMillis(); for (Integer i = 0; i < loop; i++) {} // boxing の呪い System.out.printf("Integ…

文字列を指定の文字エンコーディングでのバイト数で切る

文字列を指定の文字エンコーディングでのバイト数で切る処理を作ってみた。固定バイト長の文字コードであれば指定のバイト長で切る処理というのはさほど難しいところはないのだが。たとえば、"1234" という ASCII 文字列を、3 バイトで切りたい場合、"123"。…

SimpleDateFormat のスレッドセーフの謎。

ページによって記述が異なり、自分でソースを見てみると何回注意深く読んでも問題の無い使い方まで「バグる」とかかれていたりする SimpleDateFormat 関係の機能。 長い間もやもやしてた部分があったんだけど、以下の記述を見て疑問が解けた。 参考: AKIMOT…

char から String への型変換

2009-11-03 追記: グーグルから飛んでこられる方が多いので、結論を追記。 char --> String への変換方法 char c = 'a'; String.valueOf(c); char[] --> String への変換方法 char[] cs = new char[10]; cs[0] = 'a'; cs[1] = 'b'; String.valueOf(cs); 以…

整数の桁数の求め方

高校のころからのバリバリ文系はこういうことに弱い。こんなこと「普通はこうする」ってのがありそうなんだけど、そういう常識が無い。何気に JDK のソースを見ていたら。 java.lang.Integer の public static String toString(int i) の中で、int 値を Stri…

getStackTrace() 依存のソースコードは書かない方がいいんじゃないかなー

同僚が書いたソースコードにスタックトレースから呼び出し元クラスを取得して動作を変えるような処理を発見。うーん、よろしくない気がする。 /** * Provides programmatic access to the stack trace information printed by * {@link #printStackTrace()}.…

@Override アノテーションの仕様の違い

JDK1.6 でコンパイルしてたソースを JDK1.5 でコンパイルしてみたところ @Override アノテーション で大量のエラーとなったので、あれ?となった。 @Override アノテーション の仕様の違いによるものだった。 インタフェイスの実装クラスのメソッドに対して…

m2eclipse のカスタマイズのやり方。

http://docs.codehaus.org/display/M2ECLIPSE/Extension+Points+and+API この辺に載っている。ホームディレクトリの .m2/ の下に設定ファイルとかもアリ。

Google Guice の散文的な検証

Guice で、@ImplementedBy を使用してインジェクションしているときの 簡単な動作検証。(親)Main → Service → Logic → Daoという親子関係で構築されているクラス群を作成した。以下ソースを子から順に。まず、Dao。実装は、DaoImpl と DaoImpl2。 package te…

Apache License, Version 2.0

licenses/Apache_License_2.0 - Open Source Group Japan Wiki - Open Source Group Japan - OSDN Apache License, Version 2.0 の和訳。Seasar はこのライセンス。

オブジェクトが代入可能かどうか調べる

http://634.ayumu-baby.com/javatips/tips_assignable.html new Object().getClass().isAssignableFrom(integer.getClass()); 上記 true を返す。instanceOf を使っても似たようなことが出来るが、これの場合、インスタンスが必要になってくるので、コンスト…

Ubuntu8.10 でglassfish v3 のサイレントインストール

GUI でのインストールが何らかの理由で出来ない場合は、サイレントモードでインストールを行うことになる。まず、インストールファイルは、GlassFishにて、「Self-Extracting Installer File」を取得する。サイレントでインストールする場合、あらかじめ ans…

Ubuntu8.10 で OpenMQ4.3 のインストール

GlassFish このへんからインストールファイルを取得してくる。 http://blogs.sun.com/takemura/entry/mq4_1%E8%A3%9C%E8%B6%B3_solaris10%E3%81%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86ここの Solaris 版のイ…

Java Ajaxフレームワーク比較

めもめも。 [Think IT] 第3回:Java Ajaxフレームワーク比較 (1/3)(2007/12/25)AJAX 回りは日進月歩で、1年前の記事がそのまま今も通用するかはわからないけども。てか他にも星の数ほどあるような気がする。どんだけあるんだ・・・。 調査には4つの主要なフ…

T2 が Guice サポート

T2はWebフレームワークの一種で、以下のような特徴を持っています. • Webにつなげる・つながる部分にのみ特化しており、ユーザが制御しやすい • Ajaxやリッチクライアントのような近代的なWebアプリケーションに必須な技術や製品などとの連携を念頭において…

OpenMQ

QpenMQ は JMS 準拠の非同期キュー製品。 GlassFish に採用されている。 HAクラスタはHigh Availabilityクラスタの略で、高可用性クラスタのことです。 前回説明したコンベンショナル(=従来型)クラスタとどう違うかというと、以下の点で大きく異なってい…

知っ得 納得 Webフレームワークの第2回目

知っ得納得Webフレームワーク 第2回 - カタヤマンがプログラマチックに今日もコードアシスト2008-12-03 後で見よう・・・。 概要:昨今、さまざまなJavaフレームワークが乱立していますが、実際にどれを使ったら良いか頭を悩ます機会も多いのではないでしょ…

バイジェクション

そんなに複雑に考えることはないと思います。一応二つリンク張っておきます。http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/ja_JP/html/Seam_Reference_Guide/Seam_Reference_Guide-The_contextual_component_model-Bijection.htmlhttp://www.red…

JBoss Seam

JBoss.orgが開発した次世代Web2.0アプリケーションを構築するためのオープンソースフレームワーク「JBoss Seam」 Webの上のポジョをステートフルにつなぐJBoss Seam (1/3) - @IT 興味を惹かれたのは以下。 # Managed BeanとしてEJBコンポーネントを扱える(S…

Webアプリの問題点を「見える化」する7つ道具

http://www.atmarkit.co.jp/fjava/rensai4/troublehacks12/troublehacks12_1.html こういうことを手順化して認識することっていうのはとても大切なことだと思う。漫然と仕事しててもそれって「ノウハウ」にはなりえないと思う。

あなたの知らないJDKの便利ツールたち

便利なのがJDKにイロイロついてたんだなあ。ほんと知らなかった。いっぱい紹介されてるけど、例えば、、、 「jstack」は、Java VMのスタック情報を取得できます。具体的には、クラス名やメソッド名、バイトコードインデックス、行番号が取得できます。またWi…

Spring3.0

現在明らかになっている3.0の特徴は次のとおり。 * Java 6およびJava EE 5をターゲットとした最新のフレームワーク(最低限でもJava 5またはJ2EE 1.4以降のバージョンが必要) * 強化されるRESTサポート * 強化されるELサポート * 強化されるアノテーションベ…

Javaフレームワーク比較

今回自分たちでもやったんだけど。 これ見つけてたら参考になったな・・・。http://d.hatena.ne.jp/t_yano/20081118/1227008018

memcached の Java の client

memcached は分散キャッシュ機構だけど、それを実現しているのはあくまでクライアント側によって。ということで、クライアントも重要なんだろう。 プロトコルが単純なだけに、クライアントも各言語いろいろ実装されている。(memcached の開発元の danga も把…

Java EE5

■参考URL @IT:Java EE 5マイグレーションプラクティス(1)(2005/7/6)EJB3.0 の説明がわかりやすい。

REST

Apache Software Foundationの共同創立者にしてBoard of Directorsの1人であるRoy Fieldingが書いた論文が、このところ注目を集めている。「REpresentational State Transfer」、略してRESTと呼ばれているアーキテクチャを提案したその論文は、特にWebの世界…

JAX-WS

Webサービス関連では、まずJAX-RPC仕様のバージョンが1.1から2.0に上がると同時に、その名前がJAX-WSに変更になります。この名称変更は、JAX-RPC仕様が網羅するのはRPCだけではないこと、XML-RPCプロトコルと紛らわしいこと、そして、何よりWebサービスのた…