- ある開発者の覚書 - ソフトウェア開発者が情報処理に関する雑多な話題をジャンルを問わずに書き留めています.未来の私、私と同類のgeekたちへ

2010-01-03

コマンドラインでネットワークインターフェイスの無効化・有効化

ショートカットを作っておけばワンクリックで
netsh interface set interface "ローカル エリア接続" enabled
netsh interface set interface "ローカル エリア接続" disabled

2009-12-31

Touchless SDK

WebカメラでPC操作を行うためのSDKです。以前Slashdotの記事で見つけたものですが、実際にDemoを動かしてみての感想をメモ
  • 特徴点を色で認識しているのでマーカーとして登録する物と背景の色との関係が認識精度に大きく影響する。白い壁をバックに赤と黄色の小物をマーカーにしたりすると高認識率だった。
  • 特徴点と同じ色を持つピクセルを全て含む最小の長方形を判定するという仕組みか?Demoのお絵かきソフトでマーカーをカメラに近づけると太い線になるが、長方形の面積で太さを決定しているようだ。3D的な認識アルゴリズムではないらしい。
  • 単純に特徴点の色のみでの認識でもない模様。背景が変わると認識率が大きく低下してマーカーの登録しなおしが必要になる。画面内の画素平均等も考慮されているのか?
  • カメラのフレームレートが低いと厳しい。カタログスペック最高フレームレート30fpsの安価なWebカメラで実際は20fps出ていたようだが、マーカーをかなりゆっくり動かさないと操作できないためDemoのゲームはほとんど意図どおりに動かすことはできない。デジカメ(Xacti)をUSBカメラとして使用した場合だとデモ動画と同程度のスムーズさで操作できた。
そういえば家庭用ゲーム機とかWebカメラ付属のアプリケーションとかでも似たようなものがありました。アルゴリズムとして目新しいというよりも要素技術として使いやすいように整理されたことに意味があるものと思われます。なんか楽しい応用を考えてみたいですね。

2009-12-24

VMWare ESXi - VLAN

VMWare ESXi 4.0を使い始めましたが今のところNICが一枚しかありません。3.5でe100が使用できた時は2枚接続して1枚をDMZ用にしていました。同様の運用をするためにはもう一枚NICを購入したらよいだけなのですが、せっかくなのでVLANを使ってどうにかできないか?と妄想してみました。が、、、VLAN対応機器をそろえなければならなかったりとけっこう敷居が高いようです。

2009-12-13

ESXi 3.5 → 4 へのアップグレード

うまくいきませんでした。アップグレード作業はvSphere Clientから行いますが、アップグレード中の再起動後に管理ネットワークに接続できずにタイムアウトするようです。ちなみにWindows7上では現状vSphere Clientは使用できないです。→

Windows 7 RCでvSphere Clientが動かない件の対処

仮想ネットワーク設定など引き継いでくれるとうれしいと思ったのですが、4.0クリーンインストールして再設定したほうが速いという結果に。

2009-11-29

VMware ESXi 4.0 ブートUSBメモリ作成方法

基本的には3.5と同様です。

1.ISOイメージからimage.tgzを取り出す (4.0ではinstall.tgzではないので注意)
2.image.tgzからusr/lib/vmware/installer/VMware-VMvisor-big-171294-x86_64.dd.bz2を取り出す
3.VMware-VMvisor-big-171294-x86_64.dd.bz2からVMware-VMvisor-big-171294-x86_64.ddを取り出す
4.VMware-VMvisor-big-171294-x86_64.ddをUSBメモリへダンプ

Running ESX 3i Installable from a USB Flash Drive

VMWare ESXi 4.0 は e100 未サポート

ESXi 3.5.0から4.0バージョンアップを試みましたが起動時に以下のエラーが発生しました。

Failed to load lvmdriver

NICはPCIカードのIntel Pro 100を使用していたのですが4.0からドライバをサポートしなくなったようです。

2009-11-22

boost::shared_from_this の要求事項

boost::shared_from_thisを使用するときは

・そのインスタンスを指す少なくとも一つのboost::shared_ptrが存在する

ことが必要です。

class CMyClass : public boost::enable_shared_from_this<CMyClass>
{
public:
CMyClass(){}
~CMyClass(){}

void Method(){
boost::shared_ptr<CMyClass> selfPtr = shared_from_this();
}
};

int main(int argc, char* argv[])
{
boost::shared_ptr<CMyClass> myClassA = boost::shared_ptr<CMyClass>(new CMyClass());
myClassA->Method(); //OK

CMyClass *myClassB = new CMyClass();
myClassB->Method(); //NG
delete myClassB;

CMyClass myClassC;
myClassC.Method(); //NG

return 0;
}

ブログ アーカイブ