さくら VPS (CentOS 6.3) / OSgrid 0.7.5 にしました。

従来専用サーバ CentOS 5で運用してきた OSgrid 0.7.4 2012/3/12版をさくら VPS (CentOS 6.3 MEM1G) で、 OSgrid 0.7.5 (Dev) 224efe7: 2012-09-11にしました。
(専用サーバは、今月ぐらいで解約かな。vpsで十分だし安価だし。また、さくらvpsは、ISOイメージでなんでも自由にインストールできるという裏ワザもあります。このサービスは最近できたようです。)

簡単に移行できるものと思ったのですが、以外と苦戦しました。さくら VPS は、OSは自分で再インストールできるので、Ubuntu 12でmonoは、apt-get install mono-completeでさくっとmono 2.10.8がインストールでき、そのままOSgridのバイナリーイメージをセットすると簡単に動くのですが、CentOS 6.3 (5.xも同様)では当初どのバージョンのmonoをコンパイルして入れてもOSgrid 0.7.4 2012/4/23~0.7.5 は動きませんでした。

*3月頃はまだ、Novellからmono 2.10.2のバイナリーがyumでインストールできていたのですが、monoはNovellから離れて今は、Xamarinが管理しており既に、現在Novellが利用できなくなっています。

monoが公式サポートしているLinuxに、CentOSはありません><
Ubuntuはあるのですが、私は、ずっとRedHat系だったのでapt-get系のシステム構成に違和感があり個人的には好きになれない。

で、どうしてもCentOSでやりたいので、いろいろ調べた結果、
http://opensimulator.org/wiki/%E8%A8%AD%E5%AE%9A
に記載されている、「Mono に関する注意」にありました。

簡単なことで、環境変数
MONO_THREADS_PER_CPU=125
をセットして、
/usr/bin/screen -S OpenSim -d -m /usr/local/bin/mono /projects/opensim/OpenSim.exe
で動いた。
前までは、MONO_THREADS_PER_CPUセットしなくても良かったんですが。。。
また、オブジェクトが多い場合にスタックも多くするようにとあったので、
ulimit -s 262144
をセットした。

最終的に自動起動スクリプトは以下を作成、
osgrid

#!/bin/bash
#
# osgrid

# Source function library.
. /etc/init.d/functions

prog=opensim
lockfile=/var/lock/subsys/$prog
PROGNAME=OpenSim
OSGRID=/projects/opensim
MONO=/usr/local/bin/mono
export MONO_THREADS_PER_CPU=125
ulimit -s 262144

start() {
cd $OSGRID
echo -n $”Starting $prog: “
/usr/bin/screen -S $PROGNAME -d -m $MONO $OSGRID/OpenSim.exe
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
sleep 3
return $RETVAL
}

stop() {
echo -n $”Stopping $prog: “
/usr/bin/screen -S $PROGNAME -p 0 -X stuff $’quitn’ 1> /dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $lockfile
return $RETVAL
}

# See how we were called.
case “$1” in
start)
start
;;
stop)
stop
;;
*)
echo $”Usage: $0 {start|stop}”
exit 2
esac

viewerのOSgridのバージョン表示

ソースコードを漁ると、
opensim-224efe7/OpenSim/Framework/Servers/BaseOpenSimServer.cs
中のprotected void EnhanceVersionInformation()
で、.versionファイルがあるとそれを追記するようなので、
OpenSim.exeがあるディレクトリーに.versionファイルに好きに記載するとOK
.version

CentOS 6.3 / OSgrid 0.7.5 (Dev) 224efe7: 2012-09-11

monoのインストールメモ:

yum install make glib2-devel libpng-devel libjpeg-devel giflib-devel libtiff-devel libX11-devel gcc-c++ fontconfig-devel bison gettext bzip2 libtool automake autoconf wget

wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
tar xjvf libgdiplus-2.10.tar.bz2
cd libgdiplus-2.10
./configure
make
make install

/etc/ld.so.conf.d/libgdiplus.conf
==
/usr/local/lib
==
/sbin/ldconfig

wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.bz2
tar xjvf mono-2.10.8.tar.bz2
cd mono-2.10.8
./configure –with-large-heap=yes –with-moonlight=no
make
make install

OpenSimをコンパイルしたいなら。。
wget http://download.mono-project.com/sources/nant/nant-0.90-src.tar.gz
tar zxvf nant-0.90-src.tar.gz
cd nant-0.90
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
make
make install

Google 再審査のリクエスト

以前も1回、このドメインで、Googleからペナルティを受けていましたが、
https://www.picolix.jp/blog/search/540/
その後、解除してもらった。今回、他の管理サイトでまた、ペナルティを受けました。
広告張ってますが、アフィリエイト用ですし、そんなに醜いリンクも張ってなかったのですが、ページランク0で、アクセスもガタ落ちになっていました。
とりあえず広告を削除して、その他不必要なリンクを削除し、8/29に再審査のリクエストを行い、9/4に解除して頂いた。
ページランクはまだ0のままですが、アクセス数は元に戻った。

http://xxxx/ のウェブマスター様
http://xxxx/ の Google のウェブマスター向けガイドラインへの準拠について、再審査リクエストを受け付けました。
このサイトは以前、Google の品質に関するガイドラインに違反しているとの判断に基づき、Google Webspam チームが手動で対応しましたが、お送りいただいた再審査リクエストを検討した結果、この処理を取り消しました。なお、この処理の取り消し後、サイトが Google のインデックス登録と掲載順位システムに反映されるまで時間がかかる場合があります。 “

とのこと。

Active Perl / ImageMagick イントール

Perl 5.6の時は、ppmでppdファイルでもってインストールしてましたが、
Perl 5.12では、PPMはGUIモードになっています。
(以前のコマンドラインは、ppm-shellです。)

http://oasis.halfmoon.jp/mw/index.php?title=Windows-perl-install
を参考に、リポジトリに、http://www.bribes.org/perl/ppm を追加して
ImageMagick PERL Extension (QD=8)をインストール。

*インストール後にリストを見ると、(QD=16)が入っていることになってましたが、実体は(QD=8)です。

ImageMagick PERL Extension (QD=8)と(QD=16)の違いは、RGBが各8bit,16bitの違いらしいです。

Linuxの時は、

($r, $g, $b, $ugh) = split ‘,’, $i->Get(“pixel[$x,$y]”);

$r = int($r / 256);
$g = int($g / 256);
$b = int($b / 256);

のように、無意識に8ビットに落としていたのですが、(QD=16)が入ってたのですね。

Bandicam,aviutlで[晴空物語]-59ID炎魔の穴「ガルダー」を撮ってみた。

1)高画質ビデオキャプチャーBandicam
フリーだと画面上部にBandicamのロゴが映り込みますが、Tower of AIONオリジナル無料版だと右下隅にTower of AIONロゴが
表示されるので邪魔にならないので、Tower of AIONオリジナル無料版を使用します。
http://www.gomplayer.jp/bandicam/

自分で作成したロゴファイルを録画画像に被せることができるので、
キャラクター名部分とかをマスクしたファイルを作ってこれをセットします。

2)AVIファイルに各種フィルタをかけるツール AviUtl
http://spring-fragrance.mints.ne.jp/aviutl/

編集、画面サイズの変更、圧縮とかできるので、これ1本あればOK^^

3)[晴空物語]-59ID炎魔の穴「ガルダー」ブレイカー&ビショップで攻略

youtubeにUPLOADして貼り付け

nofollow属性

http://www.suzukikenichi.com/blog/googlebot-may-use-nofollow-link-to-discover-new-content/
にありますように、
「Googleのクローラはnofollow属性が付いたリンクをたどらずリンク先ページにPageRankは渡さないが、URLの発見には使われる。」

2011/8/11からウィキペディアのAページ(Pagerank 4)から、管理サイトのBページにリンク(ウィキペディアから外部へのリンクはnofollowでリンクされます)させてどうなるか実験しました。

※尚Aページ、Bページは、ちゃんとした記事ページで、リンク先も関連有用ページでスパム記事ではありません。またBページは、Aページ以外からのリンクは一切ありません。

[nofollow属性リンク 結果]
2011/08/11 リンク(nofollow)設置
2011/09/13 Googlebot/2.1 初めて
2011/09/16 Google キャッシュ・インデックス確認
以降、7日~15日間隔でGooglebot/2.1 来訪

ページランクは、灰色(評価なし)ですがGoogleのキャッシュ・インデックスはされるみたいです。ただしメジャーサイトからのnofollowリンク結果です。

OSgrid / Radegast Metaverse Client / 2.6 Release

Osgridのダウンロードリンクを眺めてたら、Radegast Metaverse Client なのがあり調べてみたら、OpenMetaverse.dllを使ってた。

以前、OpenMetaverse.dllで、SIMのParcelの情報を取得するプログラムを作ったことがあるのですが、
(https://www.picolix.jp/blog/osgrid-secondlife/506/)

何と、Radegast Metaverse Clientでは 3D Scene Viewerを実装しているではないですか!

他のサードパーティ製のViewerとかは、リンデン・ラボ社のViewerをカスタマイズしているで、3D表示は基本何も考えなくてもいいのですが、OpenMetaverse.dllの利用では、自力でレンダリングしないとだめで、できたらいいのにと思っていました。

(SIMを自動で巡回し、そのSIMの3D風景をキャプチャーするとか
ただし、1SIMに費やす時間が恐ろしく長い1分程度これを3000SIM
だと50時間となる。同時5プロセスで10時間)

ソースコードも配布しているようなので、暇なときにちょっと解析してみるかな。

産経デジタル、検索ディレクトリサービス「産経ディレクトリ」開始

産経ディレクトリからアクセスがあったと思ったら、

産経デジタル、検索ディレクトリサービス「産経ディレクトリ」開始
http://internet.watch.impress.co.jp/docs/news/20120327_521630.html
でした。
当サイトwww.picolix.jpは↓のページに載っていました。
http://sankei.jp.msn.com/dir/2969/3136/3153/p2


ディレクトリを開始するには、ある程度初期に登録されていないと
体裁が整わないので、Yahoo!Japanあたりからサイトをピックアップ
することになるかと思います。
まあ、今時ディレクトリに登録っていうのも古めかしいのですが・・
無料で載せて頂くのは嬉しいことです。
www.picolix.jpがメジャーなディレクトリに登録されているのは、
1.Yahoo!Japan
2.All About Japan
3.Jディレクトリー
4.DMOZ
5.産経ディレクトリ
です。[メモ]

遠隔キー操作&キーボードシミュレーション SendInput

1台のPCで他のPCにキー入力するという代物です。
マウスで他PC操作に切り替えるとか特定のキーで切り替えるとかではだめで、
欲しいのは、任意の指定キーを、他のPCには違うキーを入力するとういものです。

ないので作成することに、
メインPCでキーフックして、キーコードをTCP/IPでサブPCに
送り、サブPCでは受信したキーコードを設定に従い、特定キーコード
にして、SendInputでキーボードイベントを発生させるという物です。
(ちなみに、対象はDirect-Xアプリでも反応すること)

Direct-Xアプリでも反応するには、以下のコードにすればOKでした。

INPUT input[1];
::ZeroMemory(input, sizeof(input));
input[0].type = INPUT_KEYBOARD;

Sleep(pre);
input[0].ki.wVk = key_code;
input[0].ki.wScan = MapVirtualKey(key_code, 0);
input[0].ki.dwExtraInfo = ::GetMessageExtraInfo();
input[0].ki.dwFlags = KEYEVENTF_SCANCODE;
::SendInput(1, input, sizeof(INPUT));
Sleep(after);
input[0].ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
::SendInput(1, input, sizeof(INPUT));

1)KEYEVENTF_SCANCODEにすれば、DirectInputを使ってるDirect-Xアプリでも
反応します。
2)キーDOWN、UPにSleepを入れます。
一般のアプリだと入れる必要はないですが、あるアプリ群ではこれだと
反応してくれませんので、遅延を入れます。
設定によって、pre,afterを最適値に設定します。(数msec~数10msec)

OSgrid 0.7.4 (Dev) 0007711: 2012-03-01 にバージョンアップしました。

Aska,I,II,IIIをOSgrid 0.7.2から0.7.4にバージョンアップしました。
http://www.osgrid.org/index.php/downloads
===================
CentOS 5.5
OSgrid 0.7.4 (Dev) 0007711: 2012-03-01
mono version 2.10.8
http://my.osgrid.org/?name=Eva.Library

http://my.osgrid.org/region.php?region_name=aska%20III

Aska IIIには五重塔のオブジェクトを置いています。
http://www.koinup.com/rocapc/work/351487/
[rocapc氏撮影]
===================

2月にOSgrid 0.7.3のバージョンが出ていましたが、どのマイナーバージョンを
試しても、エラー落ちで起動せず。最悪 ソースコードから自分でエラー部を修正し
コンパイルしないといけないかなと思っていましたが、
OSgrid 0.7.4 (Dev) 0007711: 2012-03-01だとすんなり起動するようになりました。

バージョンアップメモ:
1.OSgrid OpenSimulator 0.7.4.dev.0007711 – [zip] [25.6mb] 03-01-2012
を解凍してbinを旧と入れ替え。
2./projects/opensim/Regions/Regions.ini
前バージョンのものをそのままコピー
3./projects/opensim/OpenSim.exe.config
前バージョンのものをそのままコピー(ログの出力フォーマット変更)
4./projects/opensim/config-include/ GridCommon.ini
;Include-Storage = “config-include/storage/SQLiteStandalone.ini”;
StorageProvider = “OpenSim.Data.MySQL.dll”
ConnectionString = “Data Source=localhost;Database=opensim;User ID=opensim;Password=??????;”
5./projects/opensim/OpenSim.ini
OSFunctionThreatLevel = VeryHigh