<< 9月 2008 | Home | 11月 2008 >>
PR: 転職    転職    合宿免許    漫画    シルバー    ブライダルエステ    墓地・霊園    葬式   

朝からケンタッキー

中華粥がメニューにあって、6.5元だから、100円くらい。油っこい料理続きなので、これは助かる。

猫ページ

猫ページ更新完了

Scalaのinner objectってスレッドセーフじゃない?

class Foo {
Bar.bar

object Bar {
def bar {}
}
}
public Foo();
Code:
Stack=1, Locals=1, Args_size=1
0: aload_0
1: invokespecial #12; //Method java/lang/Object."":()V
4: aload_0
5: invokevirtual #18; //Method Bar:()LFoo$Bar$;
8: invokevirtual #23; //Method Foo$Bar$.bar:()V
11: return
LineNumberTable:
line 1: 0
line 2: 4


public final Foo$Bar$ Bar();
Code:
Stack=4, Locals=1, Args_size=1
0: aload_0
1: getfield #25; //Field Bar$module:LFoo$Bar$;
4: ifnonnull 19
7: aload_0
8: new #20; //class Foo$Bar$
11: dup
12: aload_0
13: invokespecial #28; //Method Foo$Bar$."":(LFoo;)V
16: putfield #25; //Field Bar$module:LFoo$Bar$;
19: aload_0
20: getfield #25; //Field Bar$module:LFoo$Bar$;
23: areturn
LineNumberTable:
line 4: 0

同期化、何もされてないから、マルチスレッドで呼んだら、複数インスタンスできそうだな。

XMLをパースするんじゃなくて、単に読み込む。

XMLをパースするのではなくて、Unicode文字列として読み込む必要が生じて、ハタと困った。そんなAPI無いし。面倒なのは、エンコーディングを判定する部分で、自分で、<?xml ... encoding="xxx"?>をパースするっていうのも、芸が無い。で、staxのAPIを見ていたら、START_DOCUMENTのイベントを拾ってやれば、XMLStreamReader.getEncoding()で取れそう。最初に、簡単なstaxの動作確認プログラムを作成。

    public static void main(String[] args) throws Exception {
XMLStreamReader reader = XMLInputFactory.newInstance()
.createXMLStreamReader(new BufferedInputStream(new FileInputStream(args[0])));
try {
while (reader.hasNext()) {
System.err.println("Event: " + reader.next());
}
}
finally {
reader.close();
}
}

こんなファイルで動作を確認すると、

<?xml version="1.0" encoding="Shift_JIS"?>
<hello/>
Event: 1
Event: 2
Event: 8

API仕様書を見ると、START_DOCUMENTは、イベント番号7なんだけど、出力されていない。変だなぁと思って、Googleさんに聞いてみると、あぁ、あった。このサイトに、when XMLStreamReader is created, it is positioned at START_DOCUMENT event.とある。つまり、next()を呼ぶ前が、START_DOCUMENTが出た状態なのね。というわけで、修正

    public static void main(String[] args) throws Exception {
XMLStreamReader reader = XMLInputFactory.newInstance()
.createXMLStreamReader(new BufferedInputStream(new FileInputStream(args[0])));
try {
while (true) {
System.err.println("Event: " + reader.getEventType());
if (reader.hasNext()) reader.next();
else break;
}
}
finally {
reader.close();
}
}

今度は、ちゃんとSTART_DOCUMENTも出力された。

Event: 7
Event: 1
Event: 2
Event: 8

しかし、なんともしっくり行かない。Iteratorとソックリのメソッド名でありながら、動きが微妙に違うってのは、良くない設計だ。しょっぱなが、START_DOCUMENTなんで、エンコーディングは、

    public static void main(String[] args) throws Exception {
InputStream is = new BufferedInputStream(new FileInputStream(args[0]));
XMLStreamReader reader = null;

try {
reader = XMLInputFactory.newInstance().createXMLStreamReader(is);
System.err.println("Encoding: " + reader.getEncoding());
}
finally {
is.close();
}
}

で取れる。ただ、API仕様書によると、getEncoding()はnullを返すかもしれないそうなんで注意。もっとも、プリアンブル外してみたりしたけど、Sunのjaxp 1.4.2では、getEncoding()がnullを返すことは無かった。

Bluetooth増設。

Thinkpad R61にBluetoothを増設した。目的は、ThinkPad用 Bluetooth マウスを使うため。

Ubuntuからは、Fn + F5でBluetoothをonにし(onになると、パネル(あ、パネルはThinkPad側ではなくて、画面上のパネルの方。どうも非搭載モデルは、ThinkPad側のLEDは点灯しない模様)にBluetoothアイコンが表われる)、マウス背面のBluetoothボタンを押してから(電源ランプが点滅状態に変わる)、以下のコマンドを入れるだけで、使えるようになった。

sudo hidd --search

ネゴシエーションに番号とか入れなくていいのか。このマウスは、触り心地も良いし、電源も単3だから、内蔵充電電池が、へたってマウスごと書い替えなんてことになる心配も無く、なかなか良い感じ。

なんか知らないうちに、コメントに承認が必要になっていた。

Pendingリスト見たら、いっぱいコメントが... 失礼しました。

2009年カレンダー

2009年カレンダー、今年は35部作成。足りるかな。なんか来年は9月にゴールデンウィーク並みの連休がある模様。

猫ページ

猫ページ更新完了。

帰国

中国の社会インフラって、思ったよりも充実しているな。高速道路がタダなのに、ちょっとびっくり。そのうち抜かれるね、こりゃ。

タクシーの乱暴運転は、聞いてはいたものの、すさまじかった。しかし、まぁ住所を見せるだけで、地図も見ないで、目的地に着くのには、驚きだ。なんで分かるんだ?

あと、安いところに行っても、料理は、やたらとウマい。なぜなのかな。工業製品なんかは、あからさまに、手を抜いたのが多いのに。

羽田便だと、時間的に、国内出張と大して変わらないのは助かる。

あ、あとマッサージ。足と全身を3時間、じっくりやってもらっても、200-300元(3000-4000円くらい)。1回しか行けなかったのが残念。

上海出張

空気が悪い。匂いからして、明らかに二酸化硫黄のにおいがするって結構な濃度だな。まぁ今週いっぱいの辛抱だ。

まかないこむすめ

献本いただきました。

まかないこむすめ。ん〜、アマゾンは表紙が登録されていませんな。7&Yには載ってた

家内の友人の方が描いているコミックです。猫が擬人化されて出てくるんだけど、でも、どうも擬人化じゃないようで、昔は普通の猫だったけど、何かがきっかけで、人間の姿になってしまった?? 第1巻では、そのあたりは、まだナゾのまま。というか、途中で気付いたんだけど、この主人公は犬なのだろうか。今はネコ耳ならぬイヌ耳がはやり?

グーグルさんに聞くと「まかないこすめ」ですかい? と言われる。どうやら、そういう名前の化粧品があるらしい。それにかけてるのかな。

「はねむす」同様、深刻な話は無いので、気楽に読めます。

ん、これアスキー・メディアワークス出版なのか。

クラコット

結構気に入っていたんだけど「三笠フーヅ」って箱に書いてあって、はてどうしたものかと思っていたら、違う会社らしい。こりゃとんだ、とばっちりだね。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8