2007-11-01から1ヶ月間の記事一覧

無いなら作ろう(その3)

J2SE6のXMLInputFactoryの参照実装はcom.sun.xml.internal.stream.XMLInputFactoryImplだが、この実装はXML文書のバリデーションには対応していないようだ。実際、XMLInputFactoryで設定できる属性であるjavax.xml.stream.isValidatingをtrueにすると、例外…

無いなら作ろう

これも先日のエントリだが、J2SE6のStAXプルパーサのカーソルAPIは.NETで言うところのサブツリーを抽出する操作ができないと書いた。 できないだけで終わるのは癪だし、実際に移植する際にはサブツリーを処理するロジックを書く必要がある訳で、であればサブ…

遠のいたVista導入

先日のエントリでは、Windows VistaでClickOnceアプリケーションをシェル起動する際、IE7のウインドウを非表示にできないと書いた。これに関してはpotekuriさんからコメントで「保護モードを解除すればできるのでは」というアドバイスを頂いた。試してみると…

無いなら作ろう(その2)

急遽書いたXMLStreamSubReaderだが、いきなりのだめ出し。 <a> <b> <c> <b> </b> </c> </b> </a>ノード名で制御しているので、上記の構造でノード:bから下のサブツリーを生成すると正しく構造を走査できない。ノード:c直下のノード:bでブレークしてしまう。このままではネストした構造に…

Streaming API for XML Online Document

StAXに関していろいろ調べているのだが、SAXやDOMに比べてドキュメントは極端に少ない。(新興APIなんだし当たり前か)Streaming API for XML - the Java Web Services Developer Kit 1.6Streaming API for XML (StAX) の使い方 - BEA WebLogic XML プログラマ…

Log4netのConversionPatternでミリ秒まで記録する

書式"fff"(フラクタル秒か?)を使う。ConversionPatternはこんな感じ %d{yyyy/MM/dd HH:mm:ss.fff} 表示例 少なくともLog4net-1.2.10ではLogjで使えていたはずの書式"SSS"は使えないようだ。

シェル起動のウインドウ隠蔽はVistaで使えない

以前にClickOnceアプリケーションをシェル起動する際にIEのウインドウを表示しないようにする方法を紹介したが //IEからシェル起動 Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(ターゲットパス(URL)); startInfo.F…

やはり朝はいいなぁ

昨日半日かけても原因が解らなかった不具合が今朝の一時間足らずで修正完了だ。

一日以上の長

JavaはJ2SE6から(正確にはJava Web Services Developer Packから)XML用のAPIとしてStAXと呼ばれる新しいパーサ(プルパーサ)を提供したが、これはC#で既に実装されている同様のパーサと非常に良く似たものである。以下はプルパーサを使ってhoge.xmlを読み込む…

Swingアプリ向けDIコンテナアプローチ

Javaなので今回こそSeasar2、とも思ったのだが、C#ではせっかく自分で書いたので(といってもかなりのインタフェースはSeasar2と同じなのだが)Javaでも自分で書くことにした。設計自体はC#で書いたものと同じなのだが、改めて要件を列挙することにする。 設定…

Tortoise

便利だがアンインストールすることにした。 今ひとつ不安定なことと、エクスプローラやFileVisorでSVN管理されている深いフォルダ階層を開く際に待たされる時間が当社比体感100倍位なのが我慢できなかった。 なんだかんだいってJavaもC#もEclipseのSubversiv…

代替困難

現状判っている、.NETからJavaへの移植で困難になるだろうと思っているのは以下の2点。 プロセス間通信 クライアントデータ(オブジェクト)の共有 いずれもプロセス間での話なのでJavaの場合はJVM間ということになる。 実装してもいないのに困っているという…

Cannot create a generic array of T

public interface IPredicate { boolean evaluate(T input); } public static final T findAll(T[] array , IPredicate match) { ArrayList temp = new ArrayList(); for (T t : array) { if ( match.evaluate(t) ){ temp.add(t); } } × T[] result = new T[…

ジェネレータとジェネリクス

プロパティ構文なんていらないから、中途半端なJavaのジェネリクスをなんとかしてほしいな。私は恥ずかしながら.NETで初めてジェネリクスを使ったのだが、最初はパラメタライズされた型というのがなんとも解らなかったが、慣れるとこれほど便利なものもない…

But Not for Me

But Not for Meが聞きたい。 My Favorite Things - John Coltrane(Atlantic ) Ahmad Jamal at the Pershing: But Not for Me(MCA) 何故聞きたいのかが解らないのだが、聞きたいのだ。

SendMessage後のWin32LastError

WM_COPYDATAを扱うために、C#で以下のようなコードを書いているのだが最後のMarshal.GetLastWin32Error()の戻り値がが0x00000002とか0x00000005で戻るケースが発生していることに最近気が付いた。 [DllImport("user32", CharSet = CharSet.Auto, SetLastErro…

24Hルール

開発者として自らに課しているルールの一つに「24Hルール」というのがある。これは、拙作のソフトウェアを使っているプロジェクトのプログラマからバグ(と思われる現象)を報告された場合、どんなに忙しくても一日以内にアクションを起こす、というものだ。大…

java.util.loggingで採取するログの書式を変更する

java.util.loggingで採取するログの書式はlog4jのように設定ファイルに書式文字列を書くのとは違い、フォーマッタクラスを使用する。 フォーマッタクラスは通常$JAVA_HOME/jre/libの下に存在するプロパティファイル"logging.properties"に記述する。(Javaオ…

泣いたら負け

Animal Crossing Is Tragic - YTMND(音楽付き) どうぶつの森をプレイし続けたお母さん(漫画/邦訳)- Game*Spark

java.util.logging

JSDK1.4から追加されたこのパッケージ、実は使うのが始めてだったりする。対象としているSwingアプリケーションではlog4jを使うのは止めようとしているのだが、そうなると使うのはこれしかないよな。 設定をどこから読み取らなければならないのか、こんなこ…

何が嬉しいかって

.NETでもVisual Studio 2008からはそうなるらしいが、Javaに戻って有り難いと感じるのは好きなときにSDKのソースコードを読んで、デバッグできることだ。これほどためになることもない。

Eclipse vs NetBeans

NetBeansも随分と使いやすくなったもんだと喜んでいたのもつかの間、ちょっとコードを書き始めればやはりエディタ部分はまだまだEclipseのほうが使いやすい。また、Windows上での文字の見易さで言えばEclipseは圧倒的だ。 Eclipse 3.3 NetBeans 6.0Rc1 両者…

面倒な部分

ロジック自体は内容を確認した上でJavaでどのように実現するかを考えながら書き直すので仕方が無い(というか、これはリファクタリングにもなる意義のある作業だ)が、関係の無い部分、特にコメント等をいちいち書き直していくのが意外に面倒だ。 JavaからC#へ…

損した気分

前にC#ネタでジェネリクスの型パラメタだけが違うクローズ型のスタティックフィールドは共有されるのかという内容のエントリを書いたが、Javaでは期待通りの結果にならないので注意が必要だ。前回のエントリのサンプルコードをJava用に書き換えてみる。 publ…

得した気分

C#で書いたクラスをJavaに書き換えている最中だが、 StringBuilder sb = new StringBuilder(); これはJavaでもそのまま通るのだった。クラス StringBuilder - JavaTM 2 PlatformStandard Ed. 5.0J2SE5からはJavaにも加えられたこのクラスはStringBufferの非…

時が解決すること

Javaでの開発に際していろいろと前向きな事を書いたが、開発の主体が.NETからJavaに戻った時、一番最初に思ったことは ああ...XMLのパースに何使おうかな であった。Javaでサーバサイドの開発をしていた頃はパーサの主流はDOMかSAXだったが、DOMはやたらとメ…

中途半端

に似ていると混乱の元だ。前にも書いた記憶があるが、ジェネリックなメソッドの戻り値の型制約、C#では //C# T Method() where T : MyClass { } だが、Javaではこう書く。 //Java T method() { } 同じ意味なんだけどな。あと、Javaではジェネリクス型は内部…

たかが順序、されど順序

interface A { getA(); setA(A a); getB(); setB(B b); getC(); setC(C c); } このようなインタフェースがあったとして、Eclipse3.3で新たにクラスを生成した後に「実装されていないメソッドを追加」すると、実装されたメソッドの並びは次のようになってしま…

準備

.NET WindowsForms用に書いたフレームワークをポーティングするに当たって、Javaの環境に幾つか新しいものを加えることにした。 NetBeans IDE 6.0 同IDE、6.0ではGUIビルダであるMatissetが新たなレイアウタであるJ2SE6のGroupLayoutを駆使するようになった…

気分一新

そもそもこの日記の題は、その時の仕事の都合で筆者がJavaと.NETの間を振り回される様からつけたものだが、どうやら次は暫くJavaの仕事になりそうだ。今までは.NETそれもWindowsForms用のフレームワークを書いてきたが、今書いているDAOを一区切りとして、今…