ホームシアター

前から欲しいと思っていたのだけど、ONKYO の BASE-V20HD を購入。たまに購入している特価COMで、カード払い46000円くらいだった。この商品自体は 2.1ch なんだけど、届いて 2.1ch として構成してみると、なんだかいまいち。購入して、これでは納得いかないので、家にあったスピーカーを増設して 4.1ch にしてみたら、音の響き的にいい感じになった。この商品というか、この AVセンターが 5.1ch や 7.1ch を想定しているのかね。個人的な感覚からすると、この製品で 2.1ch ではかなり厳しい気がするのだけど。そんな感じで、現在 4.1ch なので、7.1ch は目指さないけど、5.1ch にはしたいところ。というわけで、センタースピーカーが欲しい今日この頃です。

ひとまずコミット

現状をひとまずコミットしておく。ドキュメントも書かなきゃなっと言うのもあるけど、デフォルトの動作として、簡単に使えるというところに力を入れたいところ。簡単に使えるというのは、pom.xml に s2robot を書いて、s2robot_jdbc.dicon と DB(H2) を置けば、使えるようなイメージ。まぁ、デフォルトの動きとしては、指定された場所にファイルで書き込みが良いのかな(FileTransformerみたいのを作ろう)。そんな感じで進めてます。

DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE

FindBugs に

private Integer activeThreadCount = 0;
...
synchronized (activeThreadCount) {
activeThreadCount++;
}

みたいに書いていたら、DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE と怒られた。はて、何だろと思ったら、activeThreadCount = 0 が内部的には activeThreadCount = Integer.valueOf(0) になり、Integer.valueOf(0) は -128~127 でキャッシュを利用するから、synchronized の対象が意図しない、共有されるオブジェクトになるためみたい(つまり、新規に作った固有のオブジェクトという感じじゃない)。というわけで、ロックしたかったら、それようのロックオブジェクトを作るべしということみたい。なるほどね。