VirtualBoxに乗り替え
ずっとVMWareを使ってきたけど、Ubuntu 9.10だと、コンパイルエラーが出たり、マウスの動きが変だったり、まぁ、色々と手当てしてやれば、そこそこ使えるようにはなるんだけど、ちょっと別のを試してみたくなってきた。ホストOSに移ったタイミングで、ctrlやaltが効かなくなる病気もずっと放置されたままだし。
で、apt-getで簡単にインストールできるんで、VirtualBoxを入れてみた。これがすごく使いやすいし、体感ではVMWareよりも速い。どのあたりがいいかというと、
- スナップショットが簡単に複数とれる。しかも、SCMのブランチみたいにスナップショットが、元スナップショット(?)からの木構造で保存されていくので、複数の環境を保持したい時には、とても便利。
- VMWare2のような、まどろっこしいWebインターフェースじゃないし、設定も一目瞭然でこなれている。VMWareのWebAccessって、不安定だよね。
- スタンバイへの移行を妨げない。ノートPCでVMWareを起動して、スタンバイへ移行しようとすると、すごく待たされるのでイライラしてしまう。
- VM画面のXアイコンで、そのVM内容を保存できる(ハイバーネート相当)。しかも、これが数秒で終わるので、とても手軽にVMを上げたり、終了したりできる。
- ホストOSと簡単にファイル共有できるようになっている。
- スタンバイから復帰した時にも安定している。VMWare2だと、WebAccessが不安定で、良く画面が真っ白のままどうにもならなくなったりする。
- キーボードがまとも。ちゃんと日本語キーボードが普通に認識される。VMWareは自分で設定をいじらないといけないし、ゲストOSからホストOSに移動したタイミングで、Ctrl/Altが効かなくなったり、謎のキーリピート現象が起きたり、キーボード回りが不安定。
というわけで、気に入って使っていたんだけど、USBがゲスト側から使えないことが分かった。OSS版だとダメらしいので、ここから、バイナリ版を入手。USBのメニューはできたものの、グレーアウトされていて使えない。色々と調べてみたところ、どうも現在のバージョンでは、自分で設定してやらないといけないらしい。手順をまとめると、まず、/etc/groupを開いて、lpグループと、vboxusersに自分のidを加える。
...
lp:x:7:shanai
...
vboxusers:x:121:shanai
で、vboxusersのgid(上の例では、121)を覚えておいて、/etc/fstabの最後に以下のような行を追加する。
...
#usbfs
none /proc/bus/usb usbfs devgid=46,devmode=121 0 0
devmode=に指定する数字は、上で覚えておいた、vboxusersのgid。ここまでできたら、再起動してから、VirtualBoxを起動して設定する。

右の方にあるUSBコネクタに+が付いたアイコンをクリックすると、ホストOSにつながっているデバイスが一覧されるので、そこからゲストOSで使いたいデバイスを選択する。
ゲストOSを起動し、デバイス=>USBデバイスから、使いたいデバイスを選ぶ。
これでUSBデバイスが見えるようになる。
1枚25MB
5D MkII、RAWで撮ると、1枚25MBくらいになる。う〜む、sRAWとか画素数を落として記録する方法もあるようだけど、やっぱり後々考えると、フルで残しておきたいし。CD-Rじゃ20枚そこそこしか入らないよ、なんかもう、CD-Rがフロッピのような感覚。
で、Blu-rayドライブを買ってみた。LGのBH10NS30というやつ。普通に標準で入っている、Braseroというライタソフトで書き込めたんだけど、どうも容量のリミットが不正確みたいで、プログラムの方では容量オーバーとは表示されていないのだけど、書き込んでみると、最後に「ディスクはサポートしていません」というエラーメッセージが表示される。もしかするとメディアの方の容量が規格よりも若干少なかったりするんだろうか。まぁ、おまけでもらったやつだし。
NeroのLinux版なんてのもあって、試してみたら、ちゃんとUbuntu 9.10 AMD64版でも動作する。スピードも速いし、UIも良くできていて好感触。UDFもサポートしているし、ブートメディアも作れる模様。買ってしまおうかな。でも、そんなには使わないしなぁ。
で、写真の方は、やはりフルサイズだとボケが大きいんで、雰囲気が違う。独特の空気感がある。この空気感ってのは、何で決まるんだろう。コントラストかなぁ。今回の猫ページだと、1, 2, 3, 6枚目が5D MkIIだけど、何か不思議な雰囲気があるんだよね。レンズのせいもあるかもしれないけど。
全体最適化ばかりが、SOAP/HTTPの生きる道ではない。
artonさんの、この言及を見て、自分のまわりでは、なかなか興味深いことが起きていることが分かった。
SOAというのは、全体最適化が究極目的であり、つまりは企業統治ありきなわけで、全社の統制がとれるような企業でなければ、複数ベンダを入れたシステム統合など無理だろうというのは、1つの結論ではある。結局のところ1ベンダで統一しちゃった方が楽なわけだし。
ところが、自分の回りでは、割とCIO不在(あるいは、いても名ばかりだったりの)旧来のシステム部門体制をかかえた大企業で、今年、クライアント=VB.net、サーバ=Javaというシステムを開発を数件見かけることとなった。
そのココロは単純で、企業がデカくて、企業全体の統制がとれていなければ、社内のシステムはバラバラなわけだ。つまり自然と異種結合が重要となる。そこへSOAP/HTTPはうってつけなのだ。そこには全体最適化という究極の目的は存在しないのだけど、てっとり早く、異種のサーバ、クライアント間をつなぐ技術は、他に存在していない。
自分は、これまでEAだって、あんなに大変だったのに、ガバナンスが重要なSOAなんて、どれほど実現可能なのかと疑問を抱いていたのだけど、実はSOA(というか、SOAP/HTTP)って、企業内システムがバラバラな場合にも重要なのかもしれないな、と感じるようになった。全体最適化とか高過ぎる目標を目指さなくても、SOAP/HTTPが生きていく領域は、ずっと多くあるのかもしれない。
Integer.toString()の、非対称性
なんか釈然としない。
public class Test {
public static void main(String[] args) {
System.err.println(Integer.parseInt("a", 16));
System.err.println(Integer.parseInt("a", 16)); // 全角
System.err.println(Integer.parseInt("1", 16)); // 全角
System.err.println(Integer.toString('a', 16));
System.err.println(Integer.toString('a', 16)); // 全角
System.err.println(Integer.toString('1', 16)); // 全角
System.err.println(Integer.valueOf("a", 16));
System.err.println(Integer.valueOf("a", 16)); // 全角
System.err.println(Integer.valueOf("1", 16)); // 全角
}
}
shanai@shanai-laptop:/tmp$ java Test
10
10
1
61
ff41
ff11
10
10
1
Weldを、GAEで試す。
そのままじゃ動かなかった。JSFがJNDIルックアップしに来るのを、gaeが蹴るので、jsf-implにパッチを当てる。あと、セッションにシリアライズされた、会話スコープ管理用のビーン(?)を、デシリアライズする時に、親のフィールドへのインジェクションに失敗するという、Weldのバグ(?)があるようなので、そこにもパッチ当て。詳細に興味のある方はリンク先をどうぞ。これってバグなのかなぁ。Weldの内部構造が、まだ良く分かってないので判断できない...
ありゃ、Google Docsで作っておいたんだけど、server errorで開けなくなってしまった。














