Parallels Virtual Appliances Directory
フリーの OS のインストール済み Parallels Desktop 用イメージのをダウンロードできます。
VMWare の Virtual Applicance Market Placeに対抗してますね。
現在のところはエンタープライズ向けというよりも、Blog Server、Wiki Sever とか、個人がちょこっとサーバを気軽に立てるのに便利そうなイメージがあります。
・Parallels Virtual Appliances
Mozy for Mac スクリーンショット & 簡単レビュー
Mozy のインストールからバックアップまで。
・Mozy for Mac
非常にシンプルなインターフェースでなかなか良いです。
とくに迷うことなくバックアップまで進められました。
インストーラ
Welcome 画面
メールアドレス、アカウント作成時に登録したパスワードでログイン
暗号化の秘密鍵を自分で設定するか、デフォルトのものを使うかどうか選択
好きな文字列を入れて鍵として使えます。自分で設定する場合、忘れてしまうと復元できなくなってしまうので注意。
自動アップデートさせるかどうか選択
初期設定完了
ローカルのハードディスクをスキャン中
ファイルの種別とか・・・
フォルダ単位とかでバックアップ対象を選択可能
とりあえず JBuilder のプロジェクトを選択してみた
バックアップ進行中。
初回は全部バックアップするので時間がかかるとのこと。
つまり以降は差分だけバックアップしてくれるみたいですね。
スケジュールの設定も非常にシンプル。
"Automatic"ってのは賢い!
・Mozy for Mac
Mozy for Mac
オンラインバックアップソリューション、Mozy に Mac のクライアントが登場しました。
・Mozy for Mac
非商用利用であれば無償で 2GB、月額$4.95で無制限バックアップできます。
無償版のユーザばかり増えたらどうするんだろ、とか心配しちゃいますがとりあえずサインアップしてみました。
MacBook Pro 入院
MacBook Pro 君、購入当初からノイズに悩まされていました。
スクリーンの下のあたりからビミョーな音が発生するんです。
ディスプレイの輝度に応じて周波数が変わって、輝度最大時またはバックライトオフでは鳴らないという状況。
CPUがアイドル時にノイズがするというのは MacBook Pro 登場初期によく報告されていましたが、ディスプレイから聞こえるノイズも結構事例があるみたいです。
再現性100%ではないので「再現しない、問題なし」とかいわれると面倒だなーと思って放っておいたんですが、スリープしてくれない/シャットダウンできない、プリントできないといったおかしな現象がいろいろ発生して来ました。
ノイズ以外の現象はソフトウェア的な問題だと思うので OS の再インストールがてら Apple Store に持ち込みました。
うまいこと再現してくれて、即入院。中2日ほどで修理完了しました。もちろん保証期間内なので無償。
ディスプレイのインバータとインバータのケーブル、そしてなぜかロジックボードも交換されて帰ってきました。
今のところノイズは発生せず、すこぶる快調!
1代前のまだまだ元気な PowerBook 15" は奥様にあげてしまっているので、入院中は古い PowerBook G4 866MHz/640MB を使っていました。
866MHz でもなんとか使えていましたが、さすがに退院した Core 2 Duo 2.16GHz は早いです!
調子が悪かったこともあって、今回は移行アシスタンスを使わずに一からインストールしました。
システムに影響を与える類いのソフトは再ダウンロードしました。
後々の参考のためにメモしておきます。
・EPSON PM-A890プリンタドライバ
・ATOK 2006 for Mac ダウンロード版
・ATOK 2006 for Mac アップデータ
・Window Shade X
・Mighty Mouse
・Prallels Desktop
・Flip4Mac
・Imagio Neo C200 ドライバ
・TabStop
・Mozy for Mac
・WS002INモデム設定ファイル
・RX420ALモデム設定ファイル
・Wacom Intuos 2 ドライバ
Google Desktop for Mac アンインストール
先日インストールしたばかりの Google Desktop ですが、アンインストールしてしまいました。
びっくりするくらい良く検索できるということも、びっくりするくらいひっかからないといこともなかったです。
Spotlight で十分満足してるし、Google Desktop に優位点を見いだせませんでした。
ちなみに日本語の辞書は入っていないみたいで、検索語はトークナイズしてくれません。
トークナイズしないばかりか一文字毎に区切ってフレーズではなく and 検索をしてくれるので日本語についてはある意味 Spotlight よりも検索精度が悪いです。
また、設定次第ですが、Web を検索したときにデスクトップの検索結果も同時に表示されるのはちょっと気持ち悪いです。
日本語対応してくれるのを楽しみにしてひとまずおあずけ。
検索を軸にファイナンス2.0を制するSBIホールディングス
「SBI&Fast対Google」
個人的には今更ながら検索技術がガゼン熱いわけで、面白いことをやってくれないかと期待してます。
・検索を軸にファイナンス2.0を制するSBIホールディングス
「ファイナンス2.0」ってのはあまりに狙いすぎというかなんというか・・。
・ファストサーチ
・SBI Robo
・Google
・マイクロソフトがノルウェーの検索エンジンベンダ FAST に買収提案
・JALがWebサイト検索を強化、ファスト サーチの技術を採用
・AdMomentum - ファストの新しい広告プラットフォーム
続続続簡単Google Maps
Blog に貼り付ける Google Maps のコードを手軽に生成する 簡単Google Maps をアップデートしました。
簡単 Google Maps はマルチブラウザ対応の Google Maps コードを自動生成する Web アプリケーションです。
改善点
・先日実装したブックマークからの緯度経度復元ができなくなっていたのを修正
-> Google Maps の API 内で "getPreference()" という普遍的な名前の static な関数を新たに定義してくれちゃって、名前が衝突してくれちゃっていたのが原因でした。普遍的な関数名は全て Google によって予約されちゃっているのかもしれません。
・緯度経度を手入力できるように改善
-> 緯度経度を入力するとリアルタイムに地図が移動します
↑Google Maps:週一くらいのペースで通ってる刀削麺 虎ノ門店
・Google Maps 簡単貼り付け
・続簡単Google Maps
・続続簡単Google Maps
・document.location.hash を使ってブックマーク可能なAJAXアプリケーション
スパム業者 + OCRopus の脅威
・Google がサポートするオープンソースの OCR ソフト、OCRopus 速攻レビュー
・Google + OCRopus がもたらすインパクト
・スパム業者 + OCRopus の脅威
OCR が賢くなったら便利になるばかりではありません。
面倒なこともあります。
・メールクローラと OCR
スパム業者のクローラはいつでも Web を徘徊していて、メールアドレスとおぼしき文字列を発見したらすぐに送信先リストに加えて広告を送ってくれます。
スパム業者にひっかからないためにメールアドレスを画像化する方法があります。
OCRopus によって将来的には Google に普通の文字情報としてインデックス化され、検索可能になってしまうかもしれません。
または、スパム業者がクロールに OCRopus を組み込むこともできますね。
というわけで、画像化されたメールアドレスをどれくらい読み取ってくれるのか簡単な実験をしてみました。
- Hand M@il
http://handmail.org/
"メールアドレス 画像" でトップにヒットするサイト。
メールアドレスを入力すると色んな装飾を施した、「人間には読めるけど機械には読みにくい」画像を作ってくれます。
とくに設定せずフォームをサブミットするだけで20種類もの画像を作ってくれます。
Hand M@il で作成した画像
さて、OCRopus にかけてみると・・・
OCRopus pre-alpha (sauvola, rast, curved, tesseract, aspell)
Revision: 76; Sun Apr 15 02:16:41 JST 2007; Darwin yusukey.local 8.9.1 Darwin Kernel Version 8.9.1: Thu Feb 22 20:55:00 PST 2007; root:xnu-792.18.15~1/RELEASE_I386 i386 i386
$ grep "foo@bar.com" handmail.html
<span class='ocr_line' title='bbox 7 2 164 28'>foo@bar.com</span>
<span class='ocr_line' title='bbox 4 31 154 60'>foo@bar.com</span>
<span class='ocr_line' title='bbox 4 120 152 147'>foo@bar.com</span>
<span class='ocr_line' title='bbox 5 181 151 207'>foo@bar.com</span>
<span class='ocr_line' title='bbox 5 211 140 239'>foo@bar`com</span>
20個中4つのメールアドレスを正確に読み取ることができました。
遊びでやっているのでどの画像が読み取られたのか/読み取られなかったのかは調べていません。
解析結果の html - handmail.html
- E-Mail Icon Generator
http://services.nexodyne.com/email/
こちらはよく見かけるカラフルなメールアドレス画像を生成してくれるサービスです。
作成したのは以下の2つの画像。


前者は "yusuke@l1`IaC.com" として認識。惜しい!
後者は全く読み取れず。
カラフルなためか、またはGとMが結構装飾された文字なためか迷ってしまうのでしょう。
解析結果の html - dotmac.html , gmail.html
・CAPTCHA と OCR
機械が読み取りにくい文字列をパスコードとして表示することで、ロボットがコメントフォームなどのサブミットを防ぐ手法があります。
大抵人間ですら読みにくい文字列が表示されるのでいきなり現れた OCRopus 如きに読み取られるとは思いませんが、試してみました。
試したのは Wikipedia の CAPTHA の項に掲載されている画像。

読みにくいけれども人間なら SMWM と書かれているのがなんとなくわかります。
OCRopus にかけてみたら "S @@8%" と認識されました。
安心なような残念なような結果。
解析結果の html - capthca.html
ちょっと遊んでみた限り、現段階では各種ロボット対策を無効化してしまうほどのインパクトは見られませんでした。
しかし、確立/統計/学習的な手法を用いたアルゴリズムでなんでも賢く自動化してしまうのが得意な Google。
従来の OCR ソフトを遙かに凌駕する精度に仕立ててくれて、そんじょそこらの CAPTCHA 画像は簡単に読み取れるようになってしまうかも。
世の中は Google の技術でもっと便利に、同時にもっと面倒になるに違いありません。
しかし、技術はイタチごっこで進歩していくという側面もあると思います。
面倒になった分は別の技術で対応すれば良いわけですね。
たとえばコメント/トラックバックスパム対策は JavaScriptを使った対策 なんかと組み合わせておくと良いかもしれません。
スパム業者の命題はいかに安いコストで多くの人に広告メールを読んでもらうかという点にあります。
現在有効なスパム対策は、技術の進歩によって非常に安いコストで無力化されてしまう可能性があります。
・OCRopus 0.1.0 リリース
・Google + OCRopus がもたらすインパクト
・Google がサポートするオープンソースの OCR ソフト、OCRopus 速攻レビュー
Google + OCRopus がもたらすインパクト
・Google がサポートするオープンソースの OCR ソフト、OCRopus 速攻レビュー
・Google + OCRopus がもたらすインパクト
・スパム業者 + OCRopus の脅威
Google が支援するという OCRopus。
従来からある OCR ソフトと比べてどの程度精度が高いのか/低いのかわかりませんが、Web 世界にはどのようなインパクトをもたらすのでしょうか?
直接的な目的は従来の文字情報のインデックスのみならず、画像や映像に埋め込まれた文字列のインデックス生成にあるのではないかと思います。
既に Google ではイメージの検索がありますが、これは恐らく画像の title や alt 属性、前後の文字列といった情報を元にインデックスを作っているもので画像そのものに埋め込まれた文字情報を認識しているわけでは(たぶん)ありません。
Google のパーサに OCRopus が組み込まれれば画像に埋め込まれた文字列もインデックス化され、イメージ検索の精度向上や、装飾のために画像化されている文字列も html 内のテキストと同じく(またはより高いウェイトで)インデックス化される可能性があります。
SEO の基本として、「画像には必ず alt 属性を付けましょう!」というのがありますが、そういった工夫をしなくてもしっかりとそのページのキーワードがなんなのか理解してくれるようになるかもしれません。
人間がロボットに合わせるのではなく、ロボットが人間に合わせるというのは素晴らしいことですね。
ロードマップには Google Desktop に組み込む計画も明記されています。
あとは YouTube 内の字幕や映っている物体の商品名が検索可能になったり、Google Book Search プロジェクトの効率化といった面でも役立ちそうですね。
・OCRopus 0.1.0 リリース
・スパム業者 + OCRopus の脅威
・Google がサポートするオープンソースの OCR ソフト、OCRopus 速攻レビュー
Google のオープンソース OCR ソフト、OCRopus 速攻レビュー
・Google がサポートするオープンソースの OCR ソフト、OCRopus 速攻レビュー
・Google + OCRopus がもたらすインパクト
・スパム業者 + OCRopus の脅威
OCRopus というオープンソースの OCR ソフトが Google より発表されました。
・グーグル、文字認識研究OCRopusへ資金提供
http://japan.cnet.com/news/media/story/0,2000056023,20346962,00.htm
ちょうど最近フリーで使える OCR ソフトがないか探していたところ。ピッタリのタイミングです。
早速コンパイルしてみました。
Java 屋なので何か効率悪いことしているかもしれませんが参考までにインストールの記録を取っておきます。
環境は MacBook Pro(Core 2 Duo) / Mac OSX 10.4.9。
・tesseract-ocr のビルド
メインのコンポーネントらしい、tesseract-ocr
をチェックアウト
A tesseract-ocr/configure
A tesseract-ocr/image
.
.
.
A tesseract-ocr/classify/Makefile.am
A tesseract-ocr/classify/picofeat.cpp
Checked out revision 30.
$
$ ./configure
checking build system type... i686-apple-darwin8.9.1
checking host system type... i686-apple-darwin8.9.1
checking for cl.exe... no
checking for g++... g++
.
.
config.status: creating config_auto.h
config.status: error: cannot find input file: config/config.h.in
失敗。
失敗した場合は runautoconf を読んでリトライしろとのことなので・・
Running aclocal
Running autoheader
Running autoconf
Running automake --add-missing --copy
ccmain/Makefile.am: installing `config/depcomp'
All done.
To build the software now, do something like:
% mkdir build-directory
% cd build-directory
% ../configure [--with-debug] [...other options]
checking build system type... i686-apple-darwin8.9.1
checking host system type... i686-apple-darwin8.9.1
checking for cl.exe... no
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
.
.
.
config.status: creating config_auto.h
config.status: executing depfiles commands
Configuration is done.
You can now build Tesseract by running:
% make
今度は成功。あとは make
make all-recursive
Making all in ccstruct
source='blobbox.cpp' object='blobbox.o' libtool=no \
depfile='.deps/blobbox.Po' tmpdepfile='.deps/blobbox.TPo' \
depmode=gcc3 /bin/sh ../config/depcomp \
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../ccutil -I../cutil -I../image -I../viewer -I/sw/include -g -O2 -c -o blobbox.o `test -f 'blobbox.cpp' || echo './'`blobbox.cpp
.
.
.
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../ccutil -I../ccstruct -I../image -I../viewer -I../ccops -I../dict -I../classify -I../display -I../wordrec -I../cutil -I../textord -I/sw/include -g -O2 -c -o mergenf.o `test -f 'mergenf.cpp' || echo './'`mergenf.cpp
g++ -g -O2 -L/sw/lib -o mftraining mfTraining.o mergenf.o libtesseract_training.a ../textord/libtesseract_textord.a ../classify/libtesseract_classify.a ../dict/libtesseract_dict.a ../image/libtesseract_image.a ../cutil/libtesseract_cutil.a ../ccstruct/libtesseract_ccstruct.a ../viewer/libtesseract_viewer.a ../ccutil/libtesseract_ccutil.a
Making all in tessdata
make[2]: Nothing to be done for `all'.
make[2]: Nothing to be done for `all-am'.
$ sudo make install
mkdir /usr/local/share/tessdata
/usr/bin/install -c -m 644 DangAmbigs /usr/local/share/tessdata/DangAmbigs
/usr/bin/install -c -m 644 freq-dawg /usr/local/share/tessdata/freq-dawg
/usr/bin/install -c -m 644 inttemp /usr/local/share/tessdata/inttemp
/usr/bin/install -c -m 644 normproto /usr/local/share/tessdata/normproto
/usr/bin/install -c -m 644 pffmtable /usr/local/share/tessdata/pffmtable
/usr/bin/install -c -m 644 user-words /usr/local/share/tessdata/user-words
/usr/bin/install -c -m 644 word-dawg /usr/local/share/tessdata/word-dawg
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
・aspell のインストール
スペルチェッカらしい。apt-get でインストールしたものはうまく認識されなかったのでソースからインストールした。
http://aspell.net/
$ make
$ sudo make install
・aspell-en のインストール
aspell の英語辞書らしい。
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
aspell-en
0 packages upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 1948kB of archives. After unpacking 4411kB will be used.
Get:1 http://bindist.finkmirrors.net 10.4/release/main aspell-en 0.51-0-11 [1948kB]
Fetched 1948kB in 12s (151kB/s)
Selecting previously deselected package aspell-en.
(Reading database ... 4605 files and directories currently installed.)
Unpacking aspell-en (from .../aspell-en_0.51-0-11_darwin-i386.deb) ...
Setting up aspell-en (0.51-0-11) ...
・libpng のインストール
http://prdownloads.sourceforge.net/libpng/libpng-1.2.16.tar.bz2?downloadからソースをダウンロード
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
.
.
config.status: creating Makefile
config.status: creating libpng.pc
config.status: creating libpng-config
config.status: creating config.h
config.status: executing depfiles commands
.
.
(cd .libs && rm -f libpng.3.dylib && ln -s libpng.3.16.0.dylib libpng.3.dylib)
(cd .libs && rm -f libpng.dylib && ln -s libpng.3.16.0.dylib libpng.dylib)
ar cru .libs/libpng.a libpng_la-png.o libpng_la-pngset.o libpng_la-pngget.o libpng_la-pngrutil.o libpng_la-pngtrans.o libpng_la-pngwutil.o libpng_la-pngread.o libpng_la-pngrio.o libpng_la-pngwio.o libpng_la-pngwrite.o libpng_la-pngrtran.o libpng_la-pngwtran.o libpng_la-pngmem.o libpng_la-pngerror.o libpng_la-pngpread.o libpng_la-pnggccrd.o
ranlib .libs/libpng.a
creating libpng.la
(cd .libs && rm -f libpng.la && ln -s ../libpng.la libpng.la)
cp libpng-config libpng12-config
cp libpng.pc libpng12.pc
Password:
test -z "/usr/local/bin" || /bin/sh ./mkinstalldirs "/usr/local/bin"
/usr/bin/install -c 'libpng12-config' '/usr/local/bin/libpng12-config'
test -z "/usr/local/lib" || /bin/sh ./mkinstalldirs "/usr/local/lib"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'libpng12.la' '/usr/local/lib/libpng12.la'
/usr/bin/install -c .libs/libpng12.0.16.0.dylib /usr/local/lib/libpng12.0.16.0.dylib
(cd /usr/local/lib && { ln -s -f libpng12.0.16.0.dylib libpng12.0.dylib || { rm -f libpng12.0.dylib && ln -s libpng12.0.16.0.dylib libpng12.0.dylib; }; })
(cd /usr/local/lib && { ln -s -f libpng12.0.16.0.dylib libpng12.dylib || { rm -f libpng12.dylib && ln -s libpng12.0.16.0.dylib libpng12.dylib; }; })
/usr/bin/install -c .libs/libpng12.lai /usr/local/lib/libpng12.la
/usr/bin/install -c .libs/libpng12.a /usr/local/lib/libpng12.a
chmod 644 /usr/local/lib/libpng12.a
ranlib /usr/local/lib/libpng12.a
.
.
.
make install-data-hook
cd /usr/local/include; rm -f png.h pngconf.h
cd /usr/local/include; ln -s libpng12/png.h png.h
cd /usr/local/include; ln -s libpng12/pngconf.h pngconf.h
cd /usr/local/lib/pkgconfig; rm -f libpng.pc
cd /usr/local/lib/pkgconfig; ln -s libpng12.pc libpng.pc
libtool のダウンロード、インストール。libjpeg のビルドに必要だった。
http://www.gnu.org/software/libtool/
$ make
$ sudo make install
・libjpeg のインストール
apt-get でインストールしたけど、ocropus の configure でヘッダがみつからないと言われたのでhttp://www.ijg.org/files/からソースをダウンロードしてインストール。
manとか man1 というディレクトリがないというエラーがでたのでとりあえず作ったらインストールできた。
$ ln -s /usr/local/bin/libtool ./
$ make
$ sudo mkdir /usr/local/man
$ sudo mkdir /usr/local/man/man1
$ sudo make install
/usr/bin/install -c cjpeg /usr/local/bin/cjpeg
/usr/bin/install -c djpeg /usr/local/bin/djpeg
/usr/bin/install -c jpegtran /usr/local/bin/jpegtran
/usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom
/usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/man/man1/cjpeg.1
/usr/bin/install -c -m 644 ./djpeg.1 /usr/local/man/man1/djpeg.1
/usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/man/man1/jpegtran.1
/usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/man/man1/rdjpgcom.1
/usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/man/man1/wrjpgcom.1
libtiff も必要らしい。
http://dl.maptools.org/dl/libtiff/
$ make
$ sudo make install
A ocropus/run-check
A ocropus/configure
A ocropus/ocr-utils
A ocropus/ocr-utils/test-ocr-utils.cc
A ocropus/ocr-utils/ocr-utils.cc
A ocropus/ocr-utils/Jamfile
A ocropus/ocr-utils/ocr-u
.
.
.
A ocropus/ocr-tesseract/Jamfile
A ocropus/ocr-tesseract/test-list
A ocropus/ocr-tesseract/README
A ocropus/ocr-tesseract/000002_line_image.png
A ocropus/ocr-tesseract/test-tesseract.cc
Checked out revision 76.
$ ./configure
.
.
.
OK! Now you can build OCRopus by typing "jam".
If compilation will be successful, you can try this:
ocropus-cmd/ocropus ocr data-test-pages/alice_1.png | tee output.html
調べてみると、jam っていうのはソースコード管理ツールを出している perforce が出しているビルドツールみたい。
Mac OSX に含まれているというけれども見つからなかった。
perforce からダウンロード/makeした。
http://www.perforce.com/jam/jam.html
...found 337 target(s)...
...updating 91 target(s)...
C++ imgio/io_pbm.o
C++ imgio/io_png.o
C++ imgio/io_jpeg.o
C++ imgio/autoinvert.o
C++ imgio/imgio.o
Archive imgio/libimgio.a
ar: creating archive imgio/libimgio.a
Ranlib imgio/
.
.
Link ocr-engine/test-process
Chmod1 ocr-engine/test-process
C++ ocr-engine/test-spell.o
Link ocr-engine/test-spell
Chmod1 ocr-engine/test-spell
C++ ocropus-cmd/ocr-distance.o
Link ocropus-cmd/ocr-distance
Chmod1 ocropus-cmd/ocr-distance
C++ ocropus-cmd/ocropus.o
GenerateVersion ocropus-cmd/version.cc
C++ ocropus-cmd/version.o
Link ocropus-cmd/ocropus
Chmod1 ocropus-cmd/ocropus
...updated 91 target(s)...
ocropus-cmd ディレクトリが出来ていればビルド成功とのこと。
うまく出来ました。
Jamfile ocr-distance ocropus ocropus.cc smoketest.out version.cc
README ocr-distance.cc ocropus-adaptive.sh ocropus.o test-ocr-simple version.h
debug ocr-distance.o ocropus-gray.sh ocropus.sh test-ocr-simple.png version.o
試しに OCRopus のサイトのスクリーンショットをとって動かしてみました。
スクリーンショット
OCRopus pre-alpha (sauvola, rast, curved, tesseract, aspell)
Revision: 76; Sun Apr 15 02:16:41 JST 2007; Darwin yusukey.local 8.9.1 Darwin Kernel Version 8.9.1: Thu Feb 22 20:55:00 PST 2007; root:xnu-792.18.15~1/RELEASE_I386 i386 i386
$
おぉ、動いた!
読み取り結果はこちら。
読み取り精度はまずます。
ぱっとみたところ妙だったのは、
---------
GettingStarted -> Getting5tarted
won't work -> won`t
a state-of-the-art -> s stateof-theart
---------
といったところ。
あとはカンマとピリオド、ダブルクオーテーションとシングルクオーテーションといった記号の読み分けは弱い感じです。
・OCRopus 0.1.0 リリース
・スパム業者 + OCRopus の脅威
・Google + OCRopus がもたらすインパクト
地球上で最高速の JVM - JRockit 6.0 リリース
だそうです。
・JRockit for Java SE 6 is GA
・dev2dev home > BEA downloads > BEA JRockit®
MySQL メモ - どこからでも接続できるようにする
GRANT ALL PRIVILEGES ON *.* TO user_name@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
iWeb の吐き出すものすごい冗長な URL
手軽に小綺麗なサイトを作ってみようと久しぶりに iWeb を引っ張り出してきました。
テンプレートから何となく選んで PowerPoint 並のお手軽さでそこそこ見栄えのするサイトを作れるのは小気味よいです。
しかし、気になるのが URL。
サイトやページにはもちろん好きな名前を付けられるのですが、書き出しを行うとディレクトリやhtml名がものすごいことになってしまいます。
例えば DD08CE6A-1A4D-4304-9BD8-B13F2F0E3106/ED1A3418-DD52-4727-8060-AB58F5375FF9.html とか。
ものすごいことになっているパス名
なんだか16進数っぽいので日本語をなんらかの法則でエンコードしたものかと思いページ名などをアルファベット表記にしても変わりません。
ページを作成する毎にランダムなファイル名を割り振っているんでしょうか・・?
トンデモナイ仕様です。
しょうがないなーということでパス表記を一括して自動的にシンプルなものに置き換えるプログラムを書き始めました。
ちょっと書いていて太気がついたのが、ページ名を変えてもファイル名が変わらないと言うことは、ページ名からファイル名を一意に導出する方法がないということ。
ってことはどこかにページ名とファイル名をマッピングしている場所があるはず。
っていうことで探してみました。
サイトを保存する場所は特に選んでいないので、きっとユーザディレクトリ/ライブラリ/Application Support/ 以下にあるだろうと踏んだらやはりありました。
Application Support/iWeb/ 以下に Domain.sites というファイルが。
例によってファイルに見せかけてパッケージ(Finderではファイルに見えても実はディレクトリというMac独自のもの)なんだろうなーと思いつつもなんとなく TextWrangler に落としてみたら開けてしまいました。
お、巨大な xml ファイルか何か?と思ったらなんと "Disk Browser" というウインドウが開いたではありませんか!?!?
単なるテキストエディタかと思っていたら簡単なエクスプローラ的機能がついていたようです。
やはり Domain.sites はパッケージなんですが、中の階層構造を見せてくれました。
パッケージの構造を見せてくれている Text Wrangler
この中で一番怪しいのは index.xml.gz。
ダブルクリックしたら解凍してくれるかなーと思ったらなんとそのまま開いてくれました。*.gz ファイルは内部で勝手に解凍してくれて、保存時に勝手にまた圧縮してくれるようです。
TextWrangler恐るべし!無料のクセに賢い!
さすが BBEdit の血を引いているだけあります。
さて、index.xml.gz の中をフォルダ名で検索してみるとアッサリとみつかりました。
フォルダ名を記録している部分が。
iWeb を落として、この部分を好きな名前に書き換えて、再度 iWeb を立ち上げて書き出してみたら無事マトモなディレクトリ名、ファイル名になりました。
確認のためもう一度最初から・・・と検証してみたら今度は手動で index.xml.gz を書き換えるまでもなく綺麗なディレクトリ名、ファイル名で書き出されるではありませんか!!
よくよく確認してみると、最初に書き出し、または公開するときのサイト名、ディレクトリ名でフォルダ名、ファイル名が決定されるようです。
後から URL が変更されないようにということで、真っ当な仕様ですね。
難しく考えすぎました。
つまり、日本語のサイト名、ページ名を作りたいときはまず最初に英語でサイト名、ページ名を設定して書き出しを行ってから日本語に変更すれば良いということです。
また、index という名前のページがないと index.html というリダイレクト専用のダミー html が生成されます。トップページは最初 index という名前すべき。
まともなディレクトリ名/ファイル名で書き出せたところ
余計なことに時間を使ってしまいましたが、TextWrangler の便利機能を発見できたので良しとします。
残念ながら zip ファイルは直接開けない模様。
BEA Guardian™ 日本で提供開始
潜在的な問題を事前に検出してトラブルを予防するツール・ソリューションである BEA Guardign が日本でも提供されるようです。
・日本BEA、業界初の障害早期発見型ソフトウェアサポートツールの提供を開始
WebLogic Server を Mac OSX にインストールする方法
先日 AIX 用のWLS は普通に Mac OS X にインストールできると書きましたが、たまにできないバージョンがあります。
これはインストーラが OSX を意識していないため、インストールに必要なディスクスペースがあるかどうかを判別する OS コマンドを正しく発行できないためです。
"Insufficient disk space!" とディスクの空き領域が足りないと諦めてしまうインストーラ
これを回避するのは簡単で、OS が Unix だよと認識させてあげれば良いのです。
具体的には "java -Dos.name=unix -jar *********_generic.jar" という形でインストーラを起動すればOk。
残念ながら最新の WLS10 では AIX のインストーラがリリースされていないので、今回は 9.x 系列で最新の 9.2 MP1 (日本語版はまだ?)をインストール、ドメインの作成、起動を行ってみました。
・BEA Downloads > WebLogic Server/Express > All Available Versions Page
WebLogic Server 9.2 MP1
コマンドラインの様子:
nl.ikarus.nxt.priv.imageio.icoreader.lib.ICOReader loaded, version: 0.06.064 build: 691
Extracting 0%....................................................................................................100%
$
GUI インストーラの様子:
インストールが無事完了したらドメインを作成します。
ドメインの作成はお馴染みコンフィグレーションウィザード(common/bin の config.sh)で。
さすがにウィザードを Dock に登録してくれたりはしないのでターミナルから起動します。
$ ./config.sh
"Create a new WebLogic domain"(デフォルトのまま) を選択 > Next
"Generate a domain configured automatically to support the following BEA products:"(デフォルトのまま) を選択 > Next
"User name, User password, Confirm user password" を入力して Next
JDK Selection で JDK1.5 が選択されている(デフォルト)ことを確認してNext
"Do you want to customize any of the following options?" で No(デフォルト)を選択して Next
"Enter the name and location for the domain" でドメイン名を設定して Next
昔からのユーザで "mydomain" じゃないと気持悪いという人は mydomain を、WLS9.x からのユーザはデフォルトの "base_domain" で Ok。
#特に動作に影響ありません
ドメイン作成完了!
あとはドメインディレクトリ直下の startWebLogic.sh で起動できます。
・・・・・・・・なんか例外がゴロゴロでました。
どうも管理コンソール Web アプリケーションの初期化に失敗している模様。
BEA-423443 について検索すると AquaLogic のリリースノートが引っかかります。
・http://e-docs.bea.com/ales/docs22/relnotes/relnotes.html#wp1078350
CR283351 として報告されている問題で、初回起動時のみ発生するとのこと。
回避策はサーバを再起動すること。
ほかの問題はメーリングリストの報告をみつけたけれども「テクニカルサポートに報告すべし」というところで止まってます。
・RE: Problem with Weblogic 9.2 console webapp
XML パーサ関連の問題みたいですが、 /Users/ユーザ名/Library/Java/Extensions/ に配置されていた EPPxAPI.jar、jnet.jar、jsse.jar、xerces.jar というファイルを消したら解消されました。
全く心当たりのないこれらのライブラリ、いつインストールされたのやら・・?
~/bea921/user_projects/domains/mydomain$ ./startWebLogic.sh
/Users/yusukey/bea921/user_projects/domains/mydomain/bin/startWebLogic.sh: Don't know how to set the shared library path for Darwin.
.
.
JAVA Memory arguments: -Xms256m -Xmx512m
.
WLS Start Mode=Development
.
CLASSPATH=:/Users/yusukey/bea921/patch_weblogic921/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/tools.jar:/Users/yusukey/bea921/weblogic92/server/lib/weblogic_sp.jar:/Users/yusukey/bea921/weblogic92/server/lib/weblogic.jar:/Users/yusukey/bea921/weblogic92/server/lib/webservices.jar::/Users/yusukey/bea921/weblogic92/common/eval/pointbase/lib/pbclient51.jar:/Users/yusukey/bea921/weblogic92/server/lib/xqrl.jar::
.
PATH=/Users/yusukey/bea921/weblogic92/server/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/jre/bin:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin:/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/Library/Java/Home/bin:/usr/X11R6/bin
.
***************************************************
* To start WebLogic Server, use a username and *
* password assigned to an admin-level user. For *
* server administration, use the WebLogic Server *
* console at http://hostname:port/console *
***************************************************
starting weblogic with Java version:
java version "1.5.0_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-164)
Java HotSpot(TM) Client VM (build 1.5.0_07-87, mixed mode, sharing)
Starting WLS with line:
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java -Xms256m -Xmx512m -da -Dplatform.home=/Users/yusukey/bea921/weblogic92 -Dwls.home=/Users/yusukey/bea921/weblogic92/server -Dwli.home=/Users/yusukey/bea921/weblogic92/integration -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/Users/yusukey/bea921/patch_weblogic921/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/Users/yusukey/bea921/weblogic92/server/lib/weblogic.policy weblogic.Server
<2007/04/10 0時18分27秒 JST> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end of the classpath:
/Users/yusukey/bea921/weblogic92/platform/lib/p13n/p13n-schemas.jar:/Users/yusukey/bea921/weblogic92/platform/lib/p13n/p13n_common.jar:/Users/yusukey/bea921/weblogic92/platform/lib/p13n/p13n_system.jar:/Users/yusukey/bea921/weblogic92/platform/lib/wlp/netuix_common.jar:/Users/yusukey/bea921/weblogic92/platform/lib/wlp/netuix_schemas.jar:/Users/yusukey/bea921/weblogic92/platform/lib/wlp/netuix_system.jar:/Users/yusukey/bea921/weblogic92/platform/lib/wlp/wsrp-common.jar>
<2007/04/10 0時18分27秒 JST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Version 1.5.0_07-87 from "Apple Computer, Inc.">
<2007/04/10 0時18分29秒 JST> <Info> <Management> <BEA-141107> <Version: WebLogic Server 9.2 MP1 Sun Jan 7 00:56:31 EST 2007 883308 >
<2007/04/10 0時18分34秒 JST> <Info> <WebLogicServer> <BEA-000215> <Loaded License : /Users/yusukey/bea921/license.bea>
<2007/04/10 0時18分34秒 JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<2007/04/10 0時18分34秒 JST> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<2007/04/10 0時18分35秒 JST> <Notice> <Log Management> <BEA-170019> <The server log file /Users/yusukey/bea921/user_projects/domains/mydomain/servers/AdminServer/logs/AdminServer.log is opened. All server side log events will be written to this file.>
<2007/04/10 0時18分35秒 JST> <Error> <Socket> <BEA-000438> <Unable to load performance pack. Using Java I/O instead. Please ensure that libmuxer library is in :'.:/Users/yusukey/Library/Java/Extensions:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java'
>
<2007/04/10 0時18分38秒 JST> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<2007/04/10 0時18分43秒 JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
<2007/04/10 0時18分43秒 JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<2007/04/10 0時18分47秒 JST> <Notice> <Log Management> <BEA-170027> <The server initialized the domain log broadcaster successfully. Log messages will now be broadcasted to the domain log.>
<2007/04/10 0時18分47秒 JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
<2007/04/10 0時18分47秒 JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default[5]" is now listening on fe80:0:0:0:210:32ff:fe54:7698%9:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default[4]" is now listening on fe80:0:0:0:201:23ff:fe45:6789%8:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default[6]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default[3]" is now listening on fe80:0:0:0:217:f2ff:fee6:d53b%5:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on 10.211.55.2:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 10.37.129.2:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.1.17:7001 for protocols iiop, t3, ldap, http.>
<2007/04/10 0時18分48秒 JST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "AdminServer" for domain "mydomain" running in Development Mode>
<2007/04/10 0時18分48秒 JST> <Warning> <Server> <BEA-002611> <Hostname "yusukey.local", maps to multiple IP addresses: 192.168.1.17, 10.37.129.2, 10.211.55.2, fe80:0:0:0:217:f2ff:fee6:d53b%5, fe80:0:0:0:201:23ff:fe45:6789%8, fe80:0:0:0:210:32ff:fe54:7698%9>
<2007/04/10 0時18分48秒 JST> <Warning> <Server> <BEA-002611> <Hostname "localhost", maps to multiple IP addresses: 127.0.0.1, 0:0:0:0:0:0:0:1>
<2007/04/10 0時18分48秒 JST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<2007/04/10 0時18分48秒 JST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
<2007/04/10 0時18分48秒 JST> <Error> <netuix> <BEA-423443> <Exception while initializing SingleFileServlet: [java.lang.IllegalArgumentException: http://java.sun.com/xml/jaxp/properties/schemaLanguage].
java.lang.IllegalArgumentException: http://java.sun.com/xml/jaxp/properties/schemaLanguage
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:118)
at org.apache.beehive.netui.pageflow.internal.DefaultURLTemplatesFactory.load(DefaultURLTemplatesFactory.java:176)
at com.bea.netuix.servlets.manager.AppDescriptor.loadDescriptor(AppDescriptor.java:1080)
at com.bea.netuix.servlets.manager.SingleFileServlet.reinitInternal(SingleFileServlet.java:121)
at com.bea.netuix.servlets.manager.SingleFileServlet.initInternal(SingleFileServlet.java:86)
Truncated. see log file for complete stacktrace
>
<2007/04/10 0時18分48秒 JST> <Error> <HTTP> <BEA-101359> <The servlet weblogic.servlet.AsyncInitServlet init method failed while it was run in the background. The exception was: java.lang.IllegalArgumentException: http://java.sun.com/xml/jaxp/properties/schemaLanguage.
java.lang.IllegalArgumentException: http://java.sun.com/xml/jaxp/properties/schemaLanguage
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:118)
at org.apache.beehive.netui.util.config.parser.NetUIConfigParser.parse(NetUIConfigParser.java:158)
at org.apache.beehive.netui.util.config.parser.NetUIConfigParser.parse(NetUIConfigParser.java:134)
at org.apache.beehive.netui.util.config.ConfigUtil.internalInit(ConfigUtil.java:99)
at org.apache.beehive.netui.util.config.ConfigUtil.init(ConfigUtil.java:67)
Truncated. see log file for complete stacktrace
>
<2007/04/10 0時18分51秒 JST> <Error> <HTTP> <BEA-101165> <Could not load user defined filter in web.xml: org.apache.beehive.netui.pageflow.PageFlowJspFilter.
java.lang.IllegalArgumentException: http://java.sun.com/xml/jaxp/properties/schemaLanguage
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(DocumentBuilderFactoryImpl.java:118)
at org.apache.beehive.netui.util.config.parser.NetUIConfigParser.parse(NetUIConfigParser.java:158)
at org.apache.beehive.netui.util.config.parser.NetUIConfigParser.parse(NetUIConfigParser.java:134)
at org.apache.beehive.netui.util.config.ConfigUtil.internalInit(ConfigUtil.java:99)
at org.apache.beehive.netui.util.config.ConfigUtil.init(ConfigUtil.java:67)
Truncated. see log file for complete stacktrace
>
10 4 2007 00:18:51,517 ERROR AdapterManager []: ServletContainerAdapter manager not initialized correctly.
<2007/04/10 0時18分51秒 JST> <Error> <HTTP> <BEA-101165> <Could not load user defined filter in web.xml: org.apache.beehive.netui.pageflow.PageFlowFacesFilter.
java.lang.NullPointerException
at org.apache.beehive.netui.pageflow.FlowControllerFactory.get(FlowControllerFactory.java:110)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.init(PageFlowPageFilter.java:93)
at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:309)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
Truncated. see log file for complete stacktrace
>
10 4 2007 00:18:51,614 ERROR Handlers []: Page Flow Handlers not initialized; either org.apache.beehive.netui.pageflow.PageFlowActionServlet must be the Struts action servlet, or org.apache.beehive.netui.pageflow.PageFlowContextListener must be registered as a listener in web.xml.
10 4 2007 00:18:51,614 ERROR ConfigUtil []: An error occurred parsing the default config file. The NetUI runtime is not properly configured.
<2007/04/10 0時18分51秒 JST> <Error> <HTTP> <BEA-101216> <Servlet: "action" failed to preload on startup in Web application: "/wls_utc".
java.lang.IllegalStateException: The NetUI runtime could not find the default config file. The webapp may not function properly.
at org.apache.beehive.netui.util.config.ConfigUtil.getConfig(ConfigUtil.java:93)
at org.apache.beehive.netui.pageflow.handler.Handlers.<init>(Handlers.java:96)
at org.apache.beehive.netui.pageflow.handler.Handlers.init(Handlers.java:84)
at org.apache.beehive.netui.pageflow.handler.Handlers.get(Handlers.java:75)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:130)
Truncated. see log file for complete stacktrace
>
<2007/04/10 0時18分51秒 JST> <Error> <J2EE> <BEA-160001> <Error deploying Internal Application: weblogic.application.ModuleException: [HTTP:101216]Servlet: "action" failed to preload on startup in Web application: "/wls_utc".
java.lang.IllegalStateException: The NetUI runtime could not find the default config file. The webapp may not function properly.
at org.apache.beehive.netui.util.config.ConfigUtil.getConfig(ConfigUtil.java:93)
at org.apache.beehive.netui.pageflow.handler.Handlers.<init>(Handlers.java:96)
at org.apache.beehive.netui.pageflow.handler.Handlers.init(Handlers.java:84)
at org.apache.beehive.netui.pageflow.handler.Handlers.get(Handlers.java:75)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:130)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:274)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:504)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1716)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1693)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1613)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2764)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.BackgroundDeploymentService$2.next(BackgroundDeploymentService.java:189)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BackgroundDeploymentService$BackgroundDeployAction.run(BackgroundDeploymentService.java:123)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
weblogic.application.utils.StateChangeException: weblogic.application.ModuleException: [HTTP:101216]Servlet: "action" failed to preload on startup in Web application: "/wls_utc".
java.lang.IllegalStateException: The NetUI runtime could not find the default config file. The webapp may not function properly.
at org.apache.beehive.netui.util.config.ConfigUtil.getConfig(ConfigUtil.java:93)
at org.apache.beehive.netui.pageflow.handler.Handlers.<init>(Handlers.java:96)
at org.apache.beehive.netui.pageflow.handler.Handlers.init(Handlers.java:84)
at org.apache.beehive.netui.pageflow.handler.Handlers.get(Handlers.java:75)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:130)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:274)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:504)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1716)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1693)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1613)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2764)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.BackgroundDeploymentService$2.next(BackgroundDeploymentService.java:189)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BackgroundDeploymentService$BackgroundDeployAction.run(BackgroundDeploymentService.java:123)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:34)
at weblogic.application.internal.BackgroundDeploymentService$BackgroundDeployAction.run(BackgroundDeploymentService.java:123)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
weblogic.application.ModuleException: [HTTP:101216]Servlet: "action" failed to preload on startup in Web application: "/wls_utc".
java.lang.IllegalStateException: The NetUI runtime could not find the default config file. The webapp may not function properly.
at org.apache.beehive.netui.util.config.ConfigUtil.getConfig(ConfigUtil.java:93)
at org.apache.beehive.netui.pageflow.handler.Handlers.<init>(Handlers.java:96)
at org.apache.beehive.netui.pageflow.handler.Handlers.init(Handlers.java:84)
at org.apache.beehive.netui.pageflow.handler.Handlers.get(Handlers.java:75)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:130)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:274)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:504)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1716)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1693)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1613)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2764)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:26)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.BackgroundDeploymentService$2.next(BackgroundDeploymentService.java:189)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BackgroundDeploymentService$BackgroundDeployAction.run(BackgroundDeploymentService.java:123)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:891)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
Truncated. see log file for complete stacktrace
java.lang.IllegalStateException: The NetUI runtime could not find the default config file. The webapp may not function properly.
at org.apache.beehive.netui.util.config.ConfigUtil.getConfig(ConfigUtil.java:93)
at org.apache.beehive.netui.pageflow.handler.Handlers.<init>(Handlers.java:96)
at org.apache.beehive.netui.pageflow.handler.Handlers.init(Handlers.java:84)
at org.apache.beehive.netui.pageflow.handler.Handlers.get(Handlers.java:75)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:130)
Truncated. see log file for complete stacktrace
Cisco VPN Client 4.9.01.0030 リリース
関係ない人には全く関係ありませんが、Cisco の VPN Client が微妙にバージョンアップしました。
4.9.0 から 4.9.01.0030に。
AirEdge 接続していても Ethernet から接続しようとして失敗するという不具合があったんですが無事問題は解消されたようです。
MacUpdate からだと Cisco のサイトにログインせずともダウンロードできてしまいます
・Mac Update - Cisco VPN Client 4.9.01.0030
関連エントリ:
・Leopard インストール! - Cisco VPN Client? VPN Tracker?
microSD購入
Compact Flash、SmartMemory、SD、Memory Stick、miniSD、Memory Stick Duo、xD Picture Card と笑っちゃうくらいたくさんの種類が出ているフラッシュメモリですが、最近の携帯は microSD というのを使っているみたいですね。
奥さんが携帯を買い換えたのでちょっと探してみたら 1GB で1000円前後とめちゃめちゃ激安です。
メモリは買う度に安い!って思うけど昨年春あたりからのフラッシュメモリの暴落具合はちょっとペースが速すぎる気がします。
東芝かSamsungか、どちらか白旗をあげるまで安くなるんでしょうか。
価格.com で見つかった最安値のお店は送料が700円くらいして実質はそんなに安くないというトリックが。
結局は「上海問屋」のオリジナルブランドメモリを楽天経由で購入することにしました。
【期間限定!】上海問屋 オリジナル microSDカード 1GB SD/microSD変換アダプタ付き
1GB、変換アダプタ、相性保証付きで1,599円、送料入れて1,809円と十分安いです。
1ヶ月後もこの値段が安いと言えるかどうかわかりませんが。上海問屋 オリジナル microSDカード 1GB SD
変換アダプタなしは1,399円。
BEA WebLogic Server 9.x/10 構築・運用ガイド
今回も CTC、日本BEA共著で出るみたいです。
WebLogic を触る人は全員購入する義務があります。
残念ながら今回は執筆には参加していません。著者の方々お疲れさまでした。
WLS10の情報がどれくらい盛り込まれているのかちょっと楽しみです。
Google Desktop for Mac
出ました。
・グーグル、Mac用「Google Desktop」のベータ版を公開
とりあえずインストールしてみました。現在インデックス作成中。
QuickSilver / Spotlight を不要にしてしまうくらいの威力があるかどうかはインデックスが終了してからのお楽しみ。
Cmd を2回叩くと Widget 風の検索窓が現れます。
WindowShade X に割り当てているショートカットと被っているのでちょっと困った。
ひとまず Spotlight を無効にして Option + Space に割り当ててみました。
インデックス作成中の CPU 使用率は MacBook Pro(Core 2 Duo)で 30〜50% くらい。
このポートは誰が開いているの? このプロセスはどのポートをリスンしているの? - Windows 編
Fport というツールを見つけました。
どのプロセスがどのポートを開いているか一目瞭然です。
・Foundstone Home > Resources > Free Tools >Fport
例えば WebLogic で 7001 番を Listen 中に実行するとこんな感じ。
便利便利。
\デスクトップ\Fport-2.0\Fport.exe"
FPort v2.0 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone, Inc.
http://www.foundstone.com
Pid Process Port Proto Path
772 -> 135 TCP
4 System -> 139 TCP
4 System -> 445 TCP
1292 -> 1030 TCP
1700 java -> 7001 TCP C:\bea92\JDK150~1\bin\java.exe
0 System -> 123 UDP
1700 java -> 123 UDP C:\bea92\JDK150~1\bin\java.exe
0 System -> 137 UDP
0 System -> 138 UDP
772 -> 445 UDP
4 System -> 500 UDP
4 System -> 1025 UDP
0 System -> 1053 UDP
1700 java -> 1062 UDP C:\bea92\JDK150~1\bin\java.exe
0 System -> 1900 UDP
1292 -> 4500 UDP
Unix の場合はこちらのエントリを参照。
・このポートは誰が開いているの? このプロセスはどのポートをリスンしているの? - lsof
WebLogic Server 9.2 起動時に weblogic.management.ManagementException
WLS9.2 を Mac にインストール(※)したらブートシーケンスで ManagementException が発生して起動出来ませんでした。
※AIX 用のインストーラ(***_generic.jar)は Pure Java なのでダブルクリックするだけで Mac OS X に簡単にインストールできます
Windows では発生しなかったので Apple の Java5 に何か問題があるものと思っていましたが、聞いたところによると Sun の実装の問題に起因しているとのこと。
#JVM は BEA も IBM も Apple も HP も Sun の実装をベースにチューニングしてます
・ Dev2Dev > WebLogic Server/J2EE Newsgroups > weblogic.developer.interest.diagnostics > weblogic.management.ManagementException: [Management:141266]
WLS9.2 MP1 を使うか、"-Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0" というオプションを付けることで回避できるそうです。
There are 1 nested errors:
weblogic.management.ManagementException: [Management:141266]Parsing Failure in config.xml: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID = 4418622981026545151, local class serialVersionUID = -9120448754896609940
at weblogic.management.provider.internal.RuntimeAccessImpl.<init>(RuntimeAccessImpl.java:122)
at weblogic.management.provider.internal.RuntimeAccessService.start(RuntimeAccessService.java:38)
at weblogic.t3.srvr.ServerServicesManager.startService(ServerServicesManager.java:374)
at weblogic.t3.srvr.ServerServicesManager.startInStandbyState(ServerServicesManager.java:125)
at weblogic.t3.srvr.T3Srvr.initializeStandby(T3Srvr.java:630)
at weblogic.t3.srvr.T3Srvr.startup(T3Srvr.java:402)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
at weblogic.Server.main(Server.java:67)
Caused by: java.io.InvalidClassException: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID = 4418622981026545151, local class serialVersionUID = -9120448754896609940
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:546)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1552)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.util.HashMap.readObject(HashMap.java:1012)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.util.HashMap.readObject(HashMap.java:1013)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at com.bea.staxb.buildtime.internal.bts.BindingFile.forSer(BindingFile.java:77)
at com.bea.staxb.buildtime.internal.tylar.RuntimeTylar.getBindingFiles(RuntimeTylar.java:111)
at com.bea.staxb.buildtime.internal.tylar.RuntimeTylar.getBindingLoader(RuntimeTylar.java:90)
at com.bea.staxb.runtime.internal.BindingContextFactoryImpl.createBindingContext(BindingContextFactoryImpl.java:66)
at com.bea.staxb.runtime.internal.BindingContextFactoryImpl.createBindingContext(BindingContextFactoryImpl.java:52)
at weblogic.descriptor.internal.MarshallerFactory.<init>(MarshallerFactory.java:48)
at weblogic.descriptor.DescriptorManager$DefaultMarshallerFactorySingleton.<clinit>(DescriptorManager.java:40)
at weblogic.descriptor.DescriptorManager.getDefaultMF(DescriptorManager.java:116)
at weblogic.descriptor.DescriptorManager.getMarshallerFactory(DescriptorManager.java:125)
at weblogic.descriptor.DescriptorManager.getDescriptorFactory(DescriptorManager.java:153)
at weblogic.descriptor.DescriptorManager.createDescriptor(DescriptorManager.java:277)
at weblogic.management.provider.internal.DescriptorManagerHelper.loadDescriptor(DescriptorManagerHelper.java:52)
at weblogic.management.provider.internal.RuntimeAccessImpl$IOHelperImpl.parseXML(RuntimeAccessImpl.java:599)
at weblogic.management.provider.internal.RuntimeAccessImpl.parseNewStyleConfig(RuntimeAccessImpl.java:230)
at weblogic.management.provider.internal.RuntimeAccessImpl.<init>(RuntimeAccessImpl.java:110)
... 7 more
>
WebLogic Server / Portal / Workshop 10
予告通り3月に出荷されていたみたい。
Java EE 5 対応の Diablo(WLS9.x) ってとこです。
・dev2dev home > BEA Downloads > WebLogic Server 10
- BEA WebLogic Server 10.0 Documentation
- What's New in WebLogic Server 10.0
- Known and Resolved Issues
・dev2dev home > BEA Downloads > WebLogic Portal 10
- BEA WebLogic Portal 10.0 Documentation
- What's New in WebLogic Portal 10.0
- Known Limitations and Workarounds in BEA WebLogic Portal 10.0
・dev2dev home > BEA Downloads > Workshop for WebLogic 10
- BEA Workshop for WebLogic Platform 10.0 Documentation
- What's New in Workshop for WebLogic 10.0
日本語版はまだ。
PaSoRi + PS3 でお買い物
ソニーファイナンスからお届け物がありました。
ヨドバシカメラのeLIOカードの申し込み得点で届いた SONY の PaSoRi でした。
PaSoRi は Ferica 対応のカードを読み書きできる USB 接続機器です。
PlayStation 3 も PaSoRi に対応しているので、試しにとリッジレーサーの曲を1つ携帯電話の Edy に溜まっているお金を使って購入してみました。
SONY の PaSoRi
中には本体とドライバのCD-ROM、説明書
Felica 対応携帯を載せたところ
特に別途ソフトをインストールしたりすることなく読み込めました。
履歴が見られるのはちょっと便利かも。実質3月のおやつ購入履歴です。
PlayStation Store でリッジレーサーの曲を購入するところ
ウォレットは0円なのでチャージ
チャージ方法として Edy を選択
チャージ最低単位の1000円を選択
センターと通信中
携帯から1000円抜かれてプレステのアカウントのウォレットに加算される
書き込み中。間違えて多めに書き込んでくれたりしないかな・・・?
残念ながらなんの間違いもなく書き込み終了。
携帯の残高もちゃんと1000円減りました。
確認メッセージ
ウォレットにチャージされたので購入可能に
購入手続き完了。ダウンロード。
改めて履歴を確認しても、携帯のバランスがちゃんと減っています
同じ Felica 技術を使った Suica、PASMO と三段重ねにしても携帯の残高を読み取れました。
選択的に読み書きできる仕様的になっているんでしょうね。
なので混線することもなく、改札で Suica・PASMO を重ねたまま通るとマズイことが起きることがあるらしいです。