2006年12月22日金曜日

SSLBridgeの罠

SSLBridgeの日本語化もだいぶ進んだところで、ファイルのダウンロード機能を試すがどうしてもうまくいかない。
ダウンロードのダイアログが出ない。

コードを読んだ限りでは、おかしいところは無く、あとは考えられるのは、PHPのheader()の前になんらかの出力が行われているだろうということ。

で、header()を呼び出す前に読み込んでいるファイルのうち、手動で作成したconfig.phpに空行が含まれていて、ダウンロード機能が働かなかったことをはっけーん。

これで8割方できたようなものだな。昨日一生懸命コードを読んだかいがあった。



SSLBridgeの日本語化

http://www.sslbridge.com/ の日本語化にチャレンジ。

問題はJavaScriptで日本語表示されたファイル名やフォルダ名を取得したときに、
新規test.doc という名称が
%u65B0%u898ftest.do
という文字列になって、SSLBridge内で扱われるために、日本語のファイルやフォルダを扱えないということ。

%u65B0は、UCS2の「新」で、%u898fはUCS2の「規」に該当する。
ということで、PHPで上記の表記をUTF-8に直す関数をアドホックながら作成してみた。

function ucs2_to_utf8($str){
$utf8str=array();
for ($i=0,$n=0;$iif (substr($str,$i,2) == "%u"){
$i=$i+2;
$ucs2char=pack("H4",substr($str,$i,4));
$i=$i+3;
$utf8char = iconv("UCS-2BE","UTF-8", $ucs2char);
} else {
$utf8char = $str[$i];
}
$utf8str[$n]=$utf8char;
$n++;
}
return join("",$utf8str);
}

本来のUCS2は、ASCII文字も2バイトなので、SSLBridge内で扱われているUCS-2の表記はなんか変だけど、JavaScript経由で渡されるのでしかたない。

この関数を使って、必要な箇所にコード変換をいれてやると、だいたい動きそう。



2006年12月16日土曜日

VMware workstation 5.5.3

CentOS4(i386)上で動作させているVMware workstation 5.5.2だと、Solaris10 06/6(Update2)の64bitカーネルで起動させようとするとエラーが発生して、起動しない。
32bitカーネルで起動するので、実質的に困ってはいないけれども、11月にリリースされた5.5.3で、Guest OSにSolaris10 U2カーネルの32bit/64bitのExperimentalサポートが追加されたので、再チャレンジ。
http://www.vmware.com/support/ws55/doc/releasenotes_ws55.html

やっぱり、まだだめだった。
VMware Workstation 6.0待ちかなぁ。残念。



FreeBSD 6.1のbceドライバ

16GBメモリ搭載マシンだと、PAE対応カーネルにすると、bceドライバのバグ?でカーネルパニック発生。

2006年12月4日月曜日

splitdiff

パッチファイルを、ファイルごとのパッチに分割するコマンド。

$ splitdiff [パッチファイル]