2010年09月30日のツイート

MacBookでネットワークをブリッジ(その2)

EMobileのPocketWifiは無線LAN接続が5台までしかできない.そこで,無線LANアクセスポイントを追加してもっとたくさんのPCを接続できるようにしたい.

今回の目的,環境.

今回使うのは,PocketWifi,MacBook,とBuffalo製のこのタイプの無線LANルータ.これで,PocketWifi-MacBook間のネットワークと,MacBook-無線ルータ間のネットワークをブリッジすることで,無線LAN経由でインターネットへつなげるようにする.

今回,PocketWifi-MacBook間は無線LANでつなぐとする.MacBookと無線ルータは有線のLANケーブルで接続する.

設定

今回の設定画面はこちら.

共有する接続経路にEthernetを,そして,相手のコンピュータが使用するポートにAirMacを指定する.これにより,無線ルータ側から有線LANを経由してMacBookに来たものが,そこでブリッジされてAirMacを通してPocketWifiへと接続される.

ただし,このときMacBookがDHCPサーバとして働くので,無線ルータは,裏面のスイッチでルータ機能をOFFにしておき,無線ルータとMacBookの接続は,インターネット接続端子ではなく,LAN接続端子を使って接続すること.

2010年09月29日のツイート

MacBookでネットワークをブリッジ(その1)

自分のMacBookに挿しているEMobileなんかを他のPCからも利用したいというシチュエーション(ネット環境がそのEMobileしかない時など)があります.こういうとき,ネットワークをブリッジ接続すると良い.

ネットワークのブリッジ接続って?

ブリッジ接続というのは,簡単にいうと二つの異なるネットワークをくっつけること.くっつけたネットワークは,一つのネットワークみたいに利用出来る.上のEMobileの例だと,EMobile-MacBookのネットワークとMacBook-他のPCのネットワークをくっつけて,他のPCからEMobileを利用できるようになる.

どうやるの?

Macでは,「システム環境設定」→「共有」で設定をする.共有の画面

この画面で,共有する接続経路にEMobileのモデム(図ではHUAWEI Mobile Connect)を選択し,相手のコンピュータが使用するポートに,AirMacを選択する.最後に,左のインターネト共有の前のチェックボックスにチェックを入れると設定完了.AirMacを介して他のノートPCがMacBookに接続でき,EMobileのモデムを利用することができるようになる.

2010年09月28日のツイート

2010年09月27日のツイート

2010年09月22日のツイート

vimを使い慣れたらインストールすべきプラグイン

よく忘れるので,普段vimに入れているプラグインをまとめてみた.

autodate.vim

こちらを参照.プログラムのソースコード中に最終更新日を書き込みたいときに便利.ファイル中に

Last Change:.

と書き込んでおくと,保存時に日付が自動的に挿入されるようになる.

vimspell.vim

こちら参照.これはvimでaspellというスペルチェッカをvimから使えるようにするプラグイン.

localrc.vim

こちら参照.このプラグインは,vim起動したディレクトリに応じて異なる設定を読み込むことができるようになるもの.これをインストールしたあと,vimを起動するディレクトリに,ディレクトリごとの設定を書いた.lvimrcを置くと,起動時に読み込んでくれるようになる.

僕は.lvimrcに,

set path+=include/
set path+=src/

と書き込んでsrc/,include/のあるディレクトリに置いている.こうしておくと,srcとincludeという異なるディレクトリに置いてあるファイルをincludeしていても,そのファイル名上でgfと入力するとファイルを開くことができて便利.

outputz.vim

こちら参照.これは,vimで書いた文字数をoutputzへと送信するプラグイン.別途curlが必要.

OpenCVからネットワークカメラのVideoAPIを利用

ネットワークカメラ

ここでは,AXIS 211のようなHTTPアクセスのできるカメラをネットワークカメラと言う.さらに言うと,VAPIXというAPIを備えたカメラとする.

こういうカメラだと,Linuxではmplayerなどのプレイヤーを使って,こんなふうに動画をとってくることができるようになっている.

ネットワークカメラへのアクセス

以降ではAxisのカメラを対象とする.基本的には上述のAPIを備えていれば,URLを適切に変えるだけで同じように操作できる.

Axisのカメラの場合

http://user:pass@camera_address/axis-cgi/jpg/image.cgi

で画像へ,

http://user:pass@camera_address/axis-cgi/mjpg/video.cgi

で動画へアクセスすることができる.(ちなみに,user,pass,camera_addressは,そのネットワークカメラのユーザ名,パスワード,IPアドレスを入れること.)ただし,プレイヤーによっては指定したファイル名の最後(拡張子)が動画の拡張子でないと再生できない場合がある.(今の場合だと,.cgiになっている.)そこで次のようにダミーのパラメータ(type=.mjpg)をつけて指定する.

http://user:pass@camera_address/axis-cgi/mjpg/video.cgi?type=.mjpg

OpenCVからのアクセス

上述のネットワークカメラに対し,OpenCVを使ってプログラムからアクセスする.

cv::VideoCaptureを使った動画ファイルからの画像取得

普通,ローカルのPC上の動画ファイル(例えばvideo.mjpg)を開いて,そこから順に画像(cv::Mat)を取り出すコードは次のようになる

#include <cv.h>
#include <highgui.h>
int main(){
    cv::VideoCapture cam("video.mjpg"); // カメラ
    cv::Mat m; // 画像用の変数
    while((char)cv::waitKey(1)!='q'){
        cam >> m; // 画像の撮影
        /* 好きな処理 */
        cv::imshow("show",m); // 画像の表示
    }
}

結構簡単.

ネットワークカメラからの動画取得

ネットワークカメラからの場合,ファイル名の代わりに上述のURLを指定するだけでOKだった.

#include <cv.h>
#include <highgui.h>
int main(){
    cv::VideoCapture cam("http://user:pass@camera_address/axis-cgi/mjpg/video.cgi&type=.mjpg"); // カメラ
    cv::Mat m; // 画像用の変数
    while((char)cv::waitKey(1)!='q'){
        cam >> m; // 画像の撮影
        /* 好きな処理 */
        cv::imshow("show",m); // 画像の表示
    }
}

これでネットワークカメラから画像を取ってこれるはず.あとはOpenCVで好きな画像処理をすればOK.

Ubunt AMD64 の罠

64bitOSの時代がきてる

最近のMacOSXは64bit.さらに,WindowsもVista, 7あたりから,64bit版がメジャーになってきた.PCに搭載されるメモリが4GBを超えてきたため,これからOSを使うなら64bitを選ばないと,PCのスペックをフル活用できない.

で,思い立ってLinuxをUbuntu 64bit版にしようと,インストールした.サーバ用途ではなく,普段のデスクトップマシンとしての利用.

Desktop用64bit版がない?

とりあえずCDをダウンロードしようと,Ubuntu Japanese Teamへ行き,ダウンロードページ中をさがしたけれど,64bit版は見当たらない.IA-64はあるものの,今回はCore 2 Duo搭載マシンにインストールしたいので欲しいのは,x86_64もしくはAMD64と呼ばれるやつ.

Server版にあった

Server版の方はx86,AMD64,UltraSPARC T1をサポートしているようなので,こちらをダウンロード.

インストール

最近のDesktop版Ubuntuのインストールは,めちゃくちゃ簡単.難しい知識なしに,ほとんどマウスのクリックだけで勧められて,下手すればWindowsのインストールよりも簡単なくらい.

一方,Server版のインストールは昔ながらの(?)テキストベースでかなりハードコア.といっても,画面の指示に従って進めていけば特に問題なくインストールできる.

アプリケーションの追加,そして

Server版と言ってもUbuntuなので,アプリケーションの追加もapt-getでらくらく.それにServer版はインストール時点でnisとかapacheとかautofsとか一通りあるので困らない.

で,色々入れた後,latexを入れようとしたところで詰まった.AdobeReaderのLinux用64bit版がない….というわけで,64bit版Ubuntuの利用を諦め,32bit版に戻した.残念….

追記:実は使えたのかも

32bit版に戻してから,色々調べていると,

sudo apt-get install ia32-libs

というコマンドで32bit版のライブラリをインストールしたあとで,

sudo dpkg -i --force-architecture hoge.deb

のコマンドによって強制的に異なるアーキテクチャのパッケージ(例ではhoge.deb)をインストールすれば64bit版のUbuntu上で32bit版のアプリケーションが使えるようになるらしい.今度64bit版を使うときには試してみよう.