無線LANのチャネルの利用状況を表示するツールinSSIDerを使ってみた

Updated:

ときどき自宅の無線LANの接続が不安定になることがあります。通常は65Mbpsで接続できていますが、電波強度は5のままで、速度が10Mとか2Mくらいに下がることがあるのです。

他のアクセスポイントと干渉している可能性が高いので、電波状況を表示するソフトを探してみました。定番的なソフトとして、無線LANのチャンネルの利用状況を表示するinSSIDerというものを見つけたので、ノートPCにインストールしてみました。

公式サイトから、ダウンロードしてインストールします。


inSSIDerを動かすと、たくさんのAPが見えることに驚きました。自宅の私の部屋からは、何と15個のアクセスポイントが見えます。もっとも、チャネルが重なっていても、他のAPの電波が弱いので問題にはならず、最大の通信速度(65Mbps)で接続できています。

inSSIDerの表示
これまではチャンネルを「自動」にして使っていました。inSSIDerで観測すると、低い番号のチャンネルを使い、そのために他のアクセスポイントと干渉して(?)、別のチャネルに移動するといったことがたびたび起こっていました。

通信自体は問題なくできているのですが、念のために、あまり使われていない13チャンネルを選択するようにしました。このまましばらく様子を見て、調子が悪い時には、inSSIDerで状況を調査しようと思います。

VMWare Player上で動作するUbuntuのIPアドレスを固定化する

Updated:

なぜUbuntu(ゲストOS)のIPアドレスを固定したいの?

ノートPC(Windows 7 64bit)では、VMWare Player 3.1.6上でUbuntu 12.04LTSを動かしています。VMWare Plalerのネットワーク環境はNATモードにしています。

NATモードでは、ホストOS(Windows 7)の中に仮想ネットワークが作られ、ゲストOS(Ubuntu)はそのネットワークに接続されます。Ubuntuから外部にアクセスする際には、ホストOSがNATボックスとして機能します。

NATモードでは、UbuntuのIPアドレスは、DHCPによって付与されます。困ったことに、付与されるIPアドレスは、ブートしたり、サスペンドしたりするたびに、変わってしまうのです。

Ubuntuからインターネットにアクセスするだけなら、IPアドレスがころころ変わっても特に問題ありません。しかし、ホストOSからUbuntuにアクセスする場合には、IPアドレスが固定されていないと不便です。(例えば、テストのために、ゲストOSのブラウザから、Ubuntuのウェブサーバにアクセスする場合)

そこで、UbuntuのIPアドレスを固定するようにしてみました。

Ubuntu(ゲストOS)のIPアドレスを固定する方法

具体的には、ゲストOS(Ubuntu)のMACアドレスに対して固定のIPアドレスを与えるように、仮想ネットワークのDHCPサーバを設定してやります。

それでは、その手順を紹介しましょう。

Windows 7の場合、仮想ネットワークの設定は、次のファイルに記述されています。

C:ProgramData\VMware\vmnetdhcp.conf

このファイルに仮想ネットのDHCPサーバの設定が書いてあるので、ゲストOSのMACアドレスに対して固定のアドレスを付与するように設定を追加します。このファイルはテキストファイルなので、読めば設定内容がわかるでしょう。

ここでは、2つの仮想ネットVMnet1とVMnet8が定義されています。

  • VMnet1: Host-only modeで使用
  • VMnet8: NATモードで使用

NATモードを使うので、VMnet8に設定を追加することになります。VMnet8のオリジナルの設定は次のような内容になっているはずです。

# Virtual ethernet segment 8
# Added at 07/11/12 06:42:18
subnet 192.168.224.0 netmask 255.255.255.0 {
range 192.168.224.128 192.168.224.254;            # default allows up to 125 VM's
option broadcast-address 192.168.224.255;
option domain-name-servers 192.168.224.2;
option domain-name "localdomain";
option netbios-name-servers 192.168.224.2;
option routers 192.168.224.2;
default-lease-time 1800;
max-lease-time 7200;
}
host VMnet8 {
    hardware ethernet XX:XX:XX:XX:XX:XX;
    fixed-address 192.168.224.1;
    option domain-name-servers 0.0.0.0;
    option domain-name "";
    option routers 0.0.0.0;
}
# End

ざっと見ればわかりますが、VMnet8には、192.168.224.0/24というアドレスが割り当てられていています。rangeで始まる行が、DHCP用のアドレスプールの定義です。ここでは、192.168.224.128から192.168.224.254までがDHCP用アドレスプールになっています。

range 192.168.224.128 192.168.224.254;            # default allows up to 125 VM's

ゲストOS(Ubuntu)には、プールに含まれないIPアドレスを付けてやります。ここでは、192.168.224.101を使うことにしましょう。

設定ファイルに次のような設定を追加してください。これは、hardware ethernetで指定されたMACアドレスに対しては、常にfixed-addressで指定されたIPアドレスを与えるという意味です。

host VMnet8 {
    hardware ethernet YY:YY:YY:YY:YY:YY;
    fixed-address 192.168.224.101;
}

hardware addressという行の「YY:YY:YY:YY:YY:YY」という部分には、ゲストOS(Ubuntu)のMACアドレスを指定します。UbuntuのMACアドレスは、Ubuntuでifconfigコマンドを実行すると表示されるので、それを指定してください。fixed-addressには、Ubuntuに与える固定のIPアドレス、つまり192.168.224.101を指定します。

これで設定は完了です。

あとは、Windowsをリブートしてから、VMWare PlayerでUbuntuをブートすれば、UbuntuのIPアドレスは192.168.224.101に固定されるようになります。

「初めてのPerl 第6版」が発売されました

Updated:

「初めてのPerl 第6版」が7月25日に発売となりました。

初めてのPerl 第6版

(「初めてのPerl第6版」をアマゾンで購入する)

「初めてのPerl」(原題: "Learning Perl")はその表紙の絵から「リャマ本」とも呼ばれ,Perlの入門書の定番として、長年にわたって親しまれてきました。前のエディション(第5版)はPerl 5.10に対応していましたが、第6版はPerl 5.14対応となっています。

内容は5.14に対応しただけではなく、それ以外の部分もかなり加筆されています。特に、いわゆる「モダン」な書き方も紹介しています。

  • 3引数のopen
  • ファイルハンドルをmy変数で扱う
  • autodie


また第6版では、Unicodeについての説明が追加されています。本文中の該当する箇所でUnicodeについて説明するとともに、付録C「Unicode入門」にUnicodeの扱い方がまとめられています。

Perlを学びたい人は、書店でぜひお手にとって中身をご覧いただければ幸いです。

章レベルでの目次は次の通りです。(詳細な目次は、オライリージャパンの書籍紹介ページをご覧ください。)

はじめに
1章 Perl入門
2章 スカラーデータ
3章 リストと配列
4章 サブルーチン
5章 入出力
6章 ハッシュ
7章 正規表現の世界
8章 正規表現によるマッチ
9章 正規表現によるテキスト処理
10章 さまざまな制御構造
11章 Perlモジュール
12章 ファイルテスト
13章 ディレクトリ操作
14章 文字列処理とソート
15章 スマートマッチとgiven-when
16章 プロセス管理
17章 上級テクニック

付録A 練習問題の解答
付録B リャマを越えて
付録C Unicode入門

UbuntuのUnityで、メニューをアプリケーションウィンドウに表示させる

Updated:

UbuntuのUnityインターフェースでは、アプリケーションのメニューが、グロー
バルメニューバーに表示されます。(ちょうどMacintoshのような感じです。)

これはこれで、慣れてしまえば便利なのでしょうが、メニューを各アプリケー
ションのウィンドウに表示させたい、という根強いニーズがあるようです。

私の場合、WindowsマシンのVMWare Player上で、Ubuntuを実行しています。通
常は、VMWareの「Unityモード」(ややこしいのですが)を使って、Windowsのデ
スクトップ上にLinuxアプリのウィンドウを個別に表示させています。この際に、
アプリケーションのウィンドウにメニューを表示させる必要があります。

VMWare Playerのリリースノートを見ると「既知の問題」として、このことが記
載されていました。対処法としては「UbuntuのAPPMENU(グローバルメニュー)を
disableすると、アプリケーションウィンドウにメニューが表示されるようにな
るぞよ」と書いてありました。

というわけで、前置きがとても長くなってしまいましたが、グローバルメニュー
を禁止して、アプリケーションのウィンドウにメニューを表示させる方法を調
べをみました。

以下のページにUnityのグローバルメニューを禁止する方法が説明されていまし
た。

Disable The AppMenu (Global Menu) In Ubuntu

詳しくはこれを読んでいただくこととして、大きく2つの方法があります。

1つは、「環境変数UBUNTU_MENUPROXYに0をセットして、アプリケーションを起
動する」という方法です。アプリケーションは、この環境変数を見て、メニュー
をどこに表示するかを決めているようです。(というか、不評であることを想定
して、このような隠し機能を用意しているのでしょう:-)

もう1つは、グローバルメニューの処理を行なうパッケージを抜いてしまうとい
う方法です。

$ sudo apt-get remove appmenu-gtk appmenu-gtk3 appmenu-qt indicator-appmenu

環境変数UBUNTU_MENUPROXYを設定する方法をとることにしました。ファイル
/etc/X11/Xsession.d/81ubuntumenuproxyにexport UBUNTU_MENUPROXY=0
と書いておけば、すべてのアプリケーションで、メニューがアプリケーション
ウィンドウに表示されます。

sudo su
echo "export UBUNTU_MENUPROXY=0" > /etc/X11/Xsession.d/81ubuntumenuproxy

これで、(VMWare Playerの)Unityモードで、Windowsデスクトップに、Linuxの
ウィンドウを表示する際にも、ちゃんとアプリケーションのメニューが表示さ
れるになりました。めでたしめでたし。

「初めてのPerl 第6版」が7月25日に発売されます

Updated:

7月25日に「初めてのPerl 第6版」が発売になります。

昨日,オライリージャパン様から見本が届きました。

初めてのPerl 第6版

「初めてのPerl 第6版」はその表紙の絵から「リャマ本」とも呼ばれ,Perlの入門書の定番として親しまれてきました。

今回出版となる第6版は,Perl 5.14に対応しています。オライリージャパンのページでは,目次が公開されていますので,ご覧ください。

またアマゾンでも予約受け付け中です。