«前7日分 最新 次7日分» 追記

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2003-01-24 古い日記からの変換データ [長年日記]

_ AspectJ

AspectJ ML に流れてた AspectJ の記事R. Dale Asberry: "Using AspectJ to implement and enforce coding standards" の情報を追加.

単に訳したりサンプルコードを抜いてくるだけでは芸がないので,そこにどうやって+αできるかが勝負どころ.

_ コタツ

来客があるのでコタツを出したら,部屋が狭いので机が使えなくなる.仕方がないのでコタツの上で作業.ノートパソコンの本領発揮といったところか ;)


2003-01-23 古い日記からの変換データ [長年日記]

_ Java

Effective Java を読んでいて,java.util.LinkedHashMap などという知らないクラスの名前が出ていたので調べてみた.JDK 1.4 でちょっとだけ増えてたクラスたちだが,IdentityHashMap: Keyがequalsではなく == で比較されるHashMap.地味に static int System.identityHashCode(Object),つまり Object.hashCode の実装で計算されるオブジェクトのハッシュコードを返す関数を使って実装されているらしい.こんなメソッド,普通は存在を知らないって.

WeakIdentityHashMap はさすがにないようなので,弱参照を使いたい人は,素直にキーオブジェクトのequals(Object) を a==b で実装するほうがいいらしい.

LinkedHashMap: エントリが配列ではなく,二重の Linked List で実装されているらしい.マップのエントリが挿入順で保存されるので,コピーしたときなどに順序が予測可能(元と同じ)という利点があるそうな.LinkedHashSet: LinkedHashMapのSet版.

まだまだ Java には知らないライブラリがたくさんあるのだろうか…….

_ 読書

アン・マキャフリィ,パーンの竜騎士外伝1「竜の夜明け」読了.うーむ.パーンの竜騎士シリーズがマキャフリィの作品の中では一番好みなのかも,とか思ってきた.

パーン入植時代はほとんどSF世界だが,後の作品で登場する地名や動物の名前の由来など,パーンらしくなっていく様子が分かる面白い作品.シリーズのファンでないと,単体のSFとしては微妙かもしれないが.


2003-01-22 古い日記からの変換データ [長年日記]

_ SVG

グラフ表現が JPEG では重いので SVG にしてみた.表示ツールとしては,Adobe SVG Viewer + IE と batik SVG browser を試してみた.SVG を拡大・縮小はできてもパン(スクロール)させて見ることができないなーと思っていたら,IE 上では ALT キーを押しながら,batik では SHIFT 押しながらのマウスのドラッグで行けた.マニュアル見ない限り分からないって.

メモリ使用量はJPEG版で100MBちょっとくらいのものがbatik SVG browser では60MB程度,IEでは20MB弱まで抑えることに成功.

batik の SVG browser は java -jar batik-squiggle.jar で起動できるシンプルなツールの様子.さすがに Adobe SVG Viewer のほうがよかった.ALT + ドラッグで移動,CTRL + クリックで拡大,CTRL+SHIFT+クリックで縮小表示らしい.けっこう再描画も高速だし,いい感じ.


2003-01-21 古い日記からの変換データ [長年日記]

_ Eclipse

ステップ実行していると,JDKのクラスに入るたびにClassFileEditor が開いてしまうと思ってたら,Preferences/Java/Debug/Step Filtering で選んだクラスのステップ実行を抑えることができるらしい.

_ カウンタ

気づいたら,AspectJ コンテンツのカウンタのほうがトップページのカウンタより数字が大きくなってた.なんだかなー :-)


2003-01-20 古い日記からの変換データ [長年日記]

_ Java

java.util.SortedMap で失敗.a.compareTo(b) で比較してから最後に a.equlas(b) するものだと思ってたら,a.equals(b) == (a.compareTo(b)==0) でないといけなかった.比較してから最後にequalsするのは Hash の実装のほうで,そちらと勘違いしていたらしい.一貫性のない SortedMap の動作は保証されないので,結果としてコレクションに投入した compareTo が 0 だけれどequals でないようなオブジェクトがどんどん消されて,あやしげな動作となっていた.

_ Java

try finally 文のfinally節は break や return で外へ飛ぶ際にも実行されるが,実は System.exit で強制終了した場合には動作しないらしい.当たり前のような気はするが,呼び出したメソッド内で勝手に exit されるとリソースがリークしそうなのが気になる.

ふと思ったのだが,Exception.getCause あたりをオーバーライドして,内部で exit するような怪しい例外を throw したら,もしリソースがリークしてたらそのうちシステムがこけそうな気がする.地味な攻撃手段だが :-)

_ 読書

日経ソフトウェア2月号を読んでたらわりと親切な入門記事があって好印象.

入門向けなどの書籍類の紹介があったが,コトラーのマーケティング・マネジメント基本編(ピアソン・エデュケーション),誰も教えてくれなかったIT英語?海外エンジニアはこう話す(ソフトリサーチセンター)あたりが個人的にはよさげ.そのうち読んでみよう.


2003-01-19 古い日記からの変換データ [長年日記]

_ 読書

アン・マキャフリィ,パーンの竜騎士外伝1「竜の夜明け(上・下)」を購入.パーンに植民してきた人々の最初の糸胞との戦いの話らしい.時間があるときにゆっくり読もう.


2003-01-18 古い日記からの変換データ [長年日記]

_ AspectJ

AspectJ 1.1 beta4 がリリースされたらしい.例によってREADME をちょっとだけ読んで,ドキュメントを補強.