SMAIL UTF8の対応

前回、「IBM拡張文字->NEC選定IBM拡張文字変換」に対応して、拡張文字の文字化け対応致しましたが、今度はUTF8変換にも対応予定です。
とりあえず目途がたったので、また週末に改修予定。。。あ、週末は旅行に行くんだった・・
[窓の杜ダイジェストニュース3/4]
http://www.forest.impress.co.jp/docs/digest/index201303.html

SMAIL改修方針:メモ
【utf-8対応】

1.本文:
1) charset=”utf-8″ 、content-Transfer-Encoding:は 8bitにして、
  8ビットバイナリ―コードで出力。

2.サブジェクト、漢字添付ファイル名、漢字ニックネーム
1) utf-8でMIMEエンコード
=?utf-8?B?xxxxxxxxxxxxxxxx=?=

※漢字ニックネームはフリー版では使えません。

3.添付ファイルは今まで通り。
1) content-transfer-encoding:base64

肝心のsjisからutf8への変換ですが、MultiByteToWideCharでCodePageにCP_UTF8を指定すればOK。
Windows CEは、CP_UTF8は未サポート。

SMAIL v4.15にバージョンアップしました。

SMAIL v4.15にバージョンアップしました。

【バージョンアップ内容】
 1) IBM拡張文字をNEC選定IBM拡張文字に自動変換する。(文字化け対策)
これの「mail : IBM拡張文字->NEC選定IBM拡張文字変換」対応です。
 2) openSSL 1.0.1eにライブラリをバージョンアップ。
セキュリティー対策
 3) -Bオプション 文字列を暗号化して表示するオプションを追加。
4) -xオプション htm,htmlの添付ファイルは、Content-Type:text/htmlとして出力する。

ここのところ忙しかったですが、やっとバージョンアップできました。

FireStorm Viewer のビルド & サイズ制限解除(1024mまでok,メッシュも)

前回、OSgrid(OpenSim)にインポートしたメッシュオブジェクトの東京スカイツリー(244m)をLSLスクリプトでなんとか643mにしましたが、今回スケールが250mオーバーのMESH対応のViewerをFireStorm Viewerを改造しビルドして1024mまで拡大できるようにしました。(これでどんなものでも、ほぼ好きに拡大できます。)

まず、FireStorm Viewerのソースコードとそれをコンパイルする環境が必要です。
こちらを参考に必要なソフトウエア
http://www.metaverse.jp.net/reports/recompile-of-sl-viewer/needed-software/
FireStorm Viewer のビルド環境の構築
http://www.metaverse.jp.net/reports/recompile-of-sl-viewer/firestorm/

・FireStorm の fmod(オーディオ関係のライブラリ)関連は手当しなくてもエラーしなかったので何もせず。ですのでオーディオがもしかして鳴らないかも。
・QuickTime SDKは入れなかったけどエラーしなかったので何もせず。
(もしかして、既に入れていたかも)で、ビルドバージョンは、4.3.1.32323ができました。
1024mまで拡大できます。無論secondlifeでは通用しませんが・・
opensim系で巨大建造物を作る方で欲しい方はこちらからダウンロードできます。
http://dip.picolix.jp/free/soft/firestorm-bin.zip
回答して、FireStorm ViewerのFirestorm-Release.exeにあるフォルダーにコピーして下さい。firestorm-bin.exeを実行すると、初期設定の後、普通に使えます。

改修内容:
C:tempttphoenix-firestorm-lgplindrallmathxform.h

元:
const F32 SL_DEFAULT_MAX_PRIM_SCALE = 64.f;
const F32 SL_DEFAULT_MAX_PRIM_SCALE_NO_MESH = 10.f;
const F32 OS_DEFAULT_MAX_PRIM_SCALE = 256.f;

修正:
const F32 SL_DEFAULT_MAX_PRIM_SCALE = 1024.f;
const F32 SL_DEFAULT_MAX_PRIM_SCALE_NO_MESH = 1024.f;
const F32 OS_DEFAULT_MAX_PRIM_SCALE = 1024.f;

↓REZ直後(左側のオブジェクト)

↓643mに拡大できます(目盛が800m以上あります。通常版は240mぐらいまで)

OSgirdのログイン&テレポートチェッカーを作ってみた

LibOpenMetaverseで、OSgirdのログイン&テレポートチェッカーlogininfo.exeを作ってみた
この前、OSGridの予期しないリスタートで、それにたまたま気が付いて、自プロセスも再スタートさせましたが、
もし気が付かなかったら、OSGridの中心街(10000,10000)に近いこともあり、場所を他の人にとられることもあります。
(その後気づいたのですが、MANIAXXのOSG48からもリスタート連絡が来ていました。ありがとうございます。)

logininfo.exeは、logintime.txt(テレポート時間とSIM名が記載)を生成するので、この内容を見て一定時間ログインできてなかったらメールするなり、プロセスを再起動するなりのスクリプトを作成すればいいかと思います。
(また、後ほど作成する予定)

[logininfo.exe] ダウンロードはこちら
1.OpenSim.exeのある場所にコピーする。
2.起動方法:
【Windows】
1) OpenSim.exeのある場所に移動。
2) logininfo.exe firstname secondname password “simname/128/128/40” “http://login.osgrid.org”
を実行。成功した場合、戻り値0が返ります。また同フォルダーにlogintime.txt(テレポート時間とSIM名が記載)を生成。
戻り値:
0:成功
1:失敗(ログインタイムアウト)
2:ログインできたものの該当SIMに行けず
3:失敗(その他の例外エラー)

C:projetcsopensim>logininfo.exe xxxx xxxxx xxxxxxx “aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Teleported [aska]
Logout:…
C:projetcsopensim>echo %ERRORLEVEL%
0
C:projetcsopensim>type logintime.txt
2013/02/09 22:11:47
aska

C:projetcsopensim>logininfo.exe xxxx xxxxx xxxxxxx “1aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Cannot teleport [1aska] now [Lbsa Plaza]
Logout:…

C:projetcsopensim>echo %ERRORLEVEL%
2

3) Windowsのタスクスケジュールにセットするときは、
タスクスケジュールを起動してスケジュールを登録します。15分置きの場合。

引数の追加(オプション)には、firstname secondname password “simname/128/128/40” “http://login.osgrid.org”
をセット。
開始(オプション)には、OpenSim.exeがあるディレクトリーをセット

成功すれば15分置きに、OpenSim.exeがあるディレクトリーにlogintime.txtが生成されます。

【Linux】
1) OpenSim.exeのある場所に移動。
2) /usr/local/bin/mono logininfo.exe firstname secondname password “simname/128/128/40” “http://login.osgrid.org”
を実行。戻り値等、windowsと同様です。

[root@www8054ue opensim]# /usr/local/bin/mono logininfo.exe xxxx xxxxx xxxxxxx “aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Teleported [aska]
Logout:…
[root@www8054ue opensim]# echo $?
0

[root@www8054ue opensim]# /usr/local/bin/mono logininfo.exe xxxx xxxxx xxxxxxx “1aska/128/128/40” “http://login.osgrid.org”
Login:…xxxx xxxxx
Login success Welcome to OSGrid…
Cannot teleport [1aska] now [Lbsa Plaza]
Logout:…
[root@www8054ue opensim]# echo $?
2

LinuxnのCRONにセットするとき、
このまま、セットすると場合によってプロセスが残ったままになります。一応、タイムアウトで必ず終了するように作ってあるのですが、どういうわけか,終了しない場合があるので、以下のperlスクリプトで必ず終了するようにします。 osgrid_login.plをCRONにセットすればOKです。

[osgrid_login.pl]

#!/usr/bin/perl
chdir “/projects/opensim/”;

$cmd = ‘/usr/local/bin/mono logininfo.exe firstname secondname password “simname/128/128/40” “http://login.osgrid.org”‘;

$cmd_flg = 1;
eval{
local $SIG{ALRM} = sub {
$cmd_flg = -1; #error
die “alarmn”;
};
alarm(100);
$pid = fork;
if ($pid == 0) {
exec($cmd);
#$result = `$cmd`;
#print $? . “n”;
#print $result;
}else{
wait;
}
alarm(0);
};
if($cmd_flg == -1){
kill(9,$pid);
print “Time outn”;
wait;
}

execコマンドに修正(2/10)

肺のCTスキャン撮ってきました。

健康診断で肺に影があるということで、CTスキャン検査(2度目のCTスキャン)を受けてきました。
前回と変わらず、左下に5mm程の丸いものが・・・(大きくはなってないようです。)
で、先生曰くどうしますか?
え?
間をあけてCTスキャンを撮るか、またはFDG-PETのCTスキャンを撮るか?FDG-PETではより正確な判断ができるとのこと。良性か悪性なのか。
では、お願いしますということで、今行ってる病院では設備がないので紹介状を頂いて来週行ってくることに。しかし、このFDG-PET検査3万円もします。

画像・Viewerが入ったDVDを頂いた。診断時の説明の時、先生は5mmぐらいっていってたので、
実際このツールで診断の時に見た画像まで動かして図ってみると5mmぐらいでした。

OpenSim OSGrid(aska SIM) 東京スカイツリー 634m メッシュオブジェクト

前回、2011年9月23日に作成途中だった東京スカイツリーで当初プリムで作成しようとしましたが、630mの壁に途中であきらめ放棄&削除しましたが、
https://www.picolix.jp/blog/osgrid-secondlife/668/
https://www.picolix.jp/blog/osgrid-secondlife/820/
今回、Ikushima’s Works のshigeki iさんがGoogle SketchUpで作られたTOKYO SKY TREEの3DデータをOpenSim OSGrid(aska SIM)にインポートしました。(shigeki iさんに
利用許可確認中。利用許可頂きました。ありがとうございます。!2/2)

・Viewer: Phoenix_Firestorm-Release_4-3-1-31155
・Google SketchUp 8 (プラグイン:OBJexporter.rb)
・blender-2.65a

まず、Google SketchUpで、TOKYO SKY TREE.skp(底面の写真台は削除)を読み込み、
TOKYO SKY TREE.objに変換。
blenderで、TOKYO SKY TREE.objを読み込みTOKYO SKY TREE.daeに変換。
これで、FirestormからOpenSimにmeshでUPLOADできます。描画詳細細度は、
「最低」を選択。三角の数は2480,頂点は2820
「高」三角の数66976,頂点66131にしてUPLOADするとこにした。
スケールはなぜか0.143倍ってなるので、x1にしようとしても修正できず。
小さいものならx1でできますが、まあ、オリジナル600mオーバーなオブジェクトなのでサイズ制限ががあるものと思われるが、ここでは深く考えていなかった。まあ、なんとかなるさと。
ウエイト計算&UPLOADで待つこと
10分 2分、イベントリーにオブジェクトが出来たー

*「高」でも「最低」でも結局プリム数換算で373個で一緒だった。(2/2)

さてREZですが、回りに迷惑をかけたらだめなので、ここは実験島のaska XIIで行うことに。
REZすると遠くの方にREZされました。(オリジナルの視点ポイントが遠かったためかな)
周りのSIMがある場合は、隣接SIMに入り込みます><で、中央に持ってきて、サイズ変更することに。
が、スケールが250mまでしか動かない・・ということで全長約240mの東京スカイツリーになってしまった。1/3モデルですね。

これをなんとか630mにするには・・・

1)スケールが250mオーバーのMESH対応のViewerを探す
このようなものはありませんでした><

   (追記) 2/12にFireStorm Viewerを改造し、1024mまで拡大できるようにした。
   https://www.picolix.jp/blog/2013/02/firestorm-viewer-1024mok.html

2)最悪、3分割してそれぞれ200mに拡大させて合体させる
リンク解除して再リンクしてみるもうまくいかず。
meshサイズ64mの壁もあるみたい。

3)LSLでスクリプト組んでx2.64倍して634mにする。
千尋 (Chihiro Owatatsumi)さんの
http://shop-chihiro.blogspot.jp/2010/05/blog-post_27.html
のスクリプトを借用してやってみた。

各部サイズは、それぞれ2.64倍になるものの位置情報がおかしく、中央に集まった感じになる。
meshで256mオーバーのものはだめなのかなーと思って諦めようと思ったけど、
もう一度、たまたま[サイズ変更]ボタンを押してみたところ、何mかズレた。で連続して押すと、なんと整列していくではないですか。このスクリプトでこのようになぜ動作するかは 不明・・・
結局、↓にあるように643mの東京スカイツリーができました。


テスト

ブログ―twitter連携止まってたのでテスト

[追記]
simple-tweet 1.3.7.2から1.3.8.3にしたら直りました。
短縮URLは、goo.gl(google)を使いたいので、

$json_data = ‘{“longUrl”: “‘. $url . ‘”}’;
$header11 = ‘Content-Type: application/json’. “rn”;
$header11 .= ‘Content-Length: ‘. strlen($json_data);
$context11 = array(
‘http’ => array(
‘method’ => ‘POST’,
‘header’ => $header11,
‘content’ => $json_data
)
);
$url1 = file_get_contents(‘https://www.googleapis.com/urlshortener/v1/url’, FALSE, stream_context_create($context11));
$udat = mb_split(“,”,$url1);
$udat1 = mb_split(“””,$udat[1]);
$url = $udat1[3];

を、simple-tweet.phpに強制追加。

OSgrid OpenSimulator 0.7.5.dev.290dc27 01-09-2013にバージョンアップ

OSgrid OpenSimulator 0.7.5.dev.290dc27 01-09-2013にバージョンアップさせました。
ついでに、使用しているviewerをImprudence ExperimentalからFirestorm Viewer
http://www.phoenixviewer.com/ に変えました。
以前は、Imprudence Experimentalはさくさく動いていたのですが、テレポートに何か難がありFirestorm Viewerに変えてみました。

1)テレポートもMAP(世界地図)表示も軽快
2)MESHもサポート
3)1km先まで表示(Imprudence Experimentalは512m)

これからはこちらを使用することに。
↓の地図は、日本人が運営しているSIM群の塊で、Wright Plaza(10000,10000)の
南のエリアに位置します。

mail : IBM拡張文字->NEC選定IBM拡張文字変換

メールでは、IBM拡張文字コードは文字化けします。(しないメールクライアントもありますが)IBM拡張文字コードは、NEC選定IBM拡張文字コードに変換して送れば良いみたいで早速
コード変換アルゴリズムを探したけど見当たらず。そんなに複雑ではないので以下自力で対応。

IBM拡張文字->NEC選定IBM拡張文字

FA40-FA49 EEEF-EEF8
FA54-FA57 EEF9-EEFC
FA4A-FA53 ---------
FA58-FA5B ---------
FA5C-FA7E ED40-ED62
FA80-FA9B ED63-ED7E
FA9C-FAFC ED80-EDE0
FB40-FB5B EDE1-EDFC
FB5C-FB7E EE40-EE62
FB80-FB9B EE63-EE7E
FB9C-FBFC EE80-EEE0
FC40-FC48 EEE1-EEE9
--------- EEEA-EEEC

[メモ] smailに実装予定です。