2012年10月12日金曜日

OpenSim Version 0.7.5 のメモリーク

徐々にメモリー使用量が増加している。
http://xpyoda.blogspot.jp/2012/10/blog-post.html
http://kimikodover.blogspot.jp/2012/05/osgrid_12.html
にありますように、Warp3D Map module関連がリークしているようです。

http://opensimulator.org/mantis/view.php?id=6270&history=1#history

OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs

+ GC.Collect();
+ m_log.Debug("[WARP 3D IMAGE MODULE]: GC.Collect()");


のパッチを当てられたようですが、
2012-09-13,2012-10-08
に取り下げ要求が出ています。

OpenSim.iniを

[Startup]
...
;WorldMapModule = "WorldMap"
;MapImageModule = "Warp3DImageModule"
;GenerateMaptiles = true



徐々にメモリー使用量が増加している。
http://xpyoda.blogspot.jp/2012/10/blog-post.html
http://kimikodover.blogspot.jp/2012/05/osgrid_12.html
にありますように、Warp3D Map module関連がリークしているようです。

2012年9月24日月曜日

さくらVPS CentOS6.3 / Mondo Rescueで丸ごとバックアップしてVmware Playerへ

ネットで調べてみると、さくらVPSのOSをMondo Rescueでバックアップされている方がちらほらいたので、参考にしてバックアップして、Vmware Playerにセットしてみた。

さくらVPS CentOS6.3でまず、 Mondo Rescue関連をインストールします。
モジュールの取得:

wget ftp://ftp.mondorescue.org/rhel/6/x86_64/afio-2.5-1.rhel6.x86_64.rpm
wget ftp://ftp.mondorescue.org/rhel/6/x86_64/buffer-1.19-4.rhel6.x86_64.rpm
wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mindi-busybox-1.18.5-1.rhel6.x86_64.rpm
wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mindi-2.1.3-1.rhel6.x86_64.rpm
wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondo-3.0.2-1.rhel6.x86_64.rpm


インストール:

rpm -iUvh afio-2.5-1.rhel6.x86_64.rpm
rpm -iUvh buffer-1.19-4.rhel6.x86_64.rpm
rpm -iUvh mindi-busybox-1.18.5-1.rhel6.x86_64.rpm
rpm -iUvh mindi-2.1.3-1.rhel6.x86_64.rpm
rpm -iUvh mondo-3.0.2-1.rhel6.x86_64.rpm

バックアップ:

mondoarchive -Oi -g -N -s 4200m -d /home/shoichi/backup -E /home/shoichi/backup


ISOイメージが出来上がります。(データベースとかWEBデータで30Gぐらいあるので、3時間かかかって圧縮されて4つのISOイメージになった)

-rw-r--r-- 1 root root 4399417344 Sep 22 13:24 mondorescue-1.iso
-rw-r--r-- 1 root root 4400060416 Sep 22 14:19 mondorescue-2.iso
-rw-r--r-- 1 root root 4390195200 Sep 22 14:54 mondorescue-3.iso
-rw-r--r-- 1 root root 3078658048 Sep 22 15:31 mondorescue-4.iso


Vmware Playerにセット:

CD/DVDにISOイメージ:mondorescue-1.isoをセットして起動します。
boot:
と出るので、
nuke[ENTER]とします。(自動モード)


mountlistの変更 (vda=>sda およびサイズ変更)

1) vda を sdaにすべて変更します。
2) SIZEの変更
  元のOS(100G)と同じサイズならそのままでいいですが、今回Vmwareの方は50Gにしたので変更が必要。
sda1,sda2のサイズはそのままにする(変更してはだめです。)
  sda3を残り全部にする。
  (SIZEに0を入れて[OK]とすると残り割り当てられるSIZEを表示されるので、その数値を入れ直して[OK]とする。

その後いろいろ聞いてきますが全て言いなりで[YES]としリストアーが始まります。
途中CD/DVDの交換要求がありますので、Vmware PlayerのCD-ROMアイコンをクリックして、順次mondorescue-2.iso..に設定し直して続行します。
リストアーが終わりと、各種設定変更画面が出ます。

1) /etc/fstab
変更なし、CTRL+Xで次へ
2) /etc/mtab
vdaをすべてsdaに変更
   CTRL+Wで上書き、CTRL+Xで次へ
3) /boot/grub/device.map
vdaをすべてsdaに変更
   CTRL+Wで上書き、CTRL+Xで次へ
4)/boot/grub/grub.conf
変更なし、CTRL+Xで次へ

#プロンプトになる。(viで正しく修正されたか確認)
リブートするとCentOS6.3が起動します。

*)さくらVPSはISOイメージでOSインストールできますので、Mondo Rescueで丸ごとバックアップしたISOイメージでリストアーできます。
ただし、さくらVPSはISOイメージのUPLOAD領域は5Gまでなので要注意です。

2012年9月17日月曜日

さくらのVPS ISOイメージインストール Windows 7 インストール

さくらのVPS は、8月から、 ISOイメージでもOSをインストールできるので、
Windows 7 ultimate 64bitをインストールしました。
WEBキャプチャーサーバとして、自宅サーバ(windows 7)を立てていたのですが、これで、自宅サーバもクローズできます。
BULK SERVER専用サーバも解約したので、だいぶコストダウンになりました。

現状の公開サービスメモ:

<さくら VPS 1G : CentOS 6.3 64bit>

・WEBサーバ
・ダウンロードサーバ
・アイスバーブログパーツサーバ
・Opensim simulator (OSGRID) 4SIM(aska,aska I,aska II,aska III)
・とある検索サイト


<さくら VPS 1G : Windows 7 ultimate 64bit>

・WEBキャプチャーサーバ
(ブログパーツサーバとのみハンドリング)


以前は、専用サーバ5,800円、自宅サーバ電気代200円で計6,000円/月
でしたが、2台で1,800円/月になりました。

vpsでの仮想サーバですが、アイスバーブログパーツサーバとWEBキャプチャーサーバのハンドリングパフォーマンスは、約6倍速(30秒かかってたのが5秒ぐらいになった^^。)
アイスバーブログパーツサーバ

OSgridに接続している、Opensim simulatorは、隣接SIMの移動は、前の専用サーバよりも体感的にスムーズになりました。
ただし、monoのCPU使用率が常時20~30%食ってます。専用サーバだと1%しか食ってなかったのに。
OSgrid / Aska /

*さくらのネットワークは、物理サーバを1Gbpsの超高速回線で接続、仮想サーバ側も100Mbps共有の高速回線なので、これが一番速度UPに効いているようです。
特にWEBキャプチャーサーバは、WEBページにアクセスして画像化するので。

2012年9月14日金曜日

さくら 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 $'quit\n' 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

2012年9月6日木曜日

Google 再審査のリクエスト

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

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

とのこと。

2012年8月29日水曜日

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)が入ってたのですね。

2012年8月6日月曜日

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して貼り付け

2012年4月19日木曜日

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リンク結果です。

2012年4月17日火曜日

facebookも連携させて(メモ)

これを参考にtwitterとfacebookを連携。
こうすると全部facebookに流れるのでこれの方がいいかな

-----------------------------------------------
[5.facebook]

[1.BLOG] -> [2.twitter] <- [3.osgrid SIM]

        [4.google+]
-----------------------------------------------

PUSH,PULL型いろいろ使ってるので、間違ったら無限ループになってしまう。
3.osgridは、SIM: aska II設置のお寺前の鉢からチャットするとtwitterに流れます。(自作)
4.google+は、先頭文字に「.」ドットを入れてUPした場合にtwitterに流れます。(自作)

OSgrid / Radegast Metaverse Client / 2.6 Release

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

以前、OpenMetaverse.dllで、SIMのParcelの情報を取得するプログラムを作ったことがあるのですが、
(http://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時間)

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

2012年3月27日火曜日

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

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

産経デジタル、検索ディレクトリサービス「産経ディレクトリ」開始
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.産経ディレクトリ
です。[メモ]

2012年3月15日木曜日

遠隔キー操作&キーボードシミュレーション 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)

2012年3月5日月曜日

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