Skip to content

Blog

GNU Screen ライクなターミナルマルチプレクサ「tmux」を使う

以前、コンソールでの作業に GNU Screen は必須でしたが、しばらく前からは tmux を使っています。GNU Screen 同様、tmux もターミナルを分割したり、複数のプログラムを実行したり、非常に便利に利用できます。tmux については以下に詳しく書いてありました。

Mac アドレスをコピーしたらベンダー名を表示する

以前にクリップボードの内容が変更されたら通知するツールを作りました。

しかし、.NET Framework には Clipboard を表現するクラス はあるものの、クリップボードの変更を通知するイベントが無い為、上述のツールでは「一定間隔でクリップボードの内容を取得し、前回の取得時と差分が無いか確認することで変更を検知する」という些かイケていない方法で実装していました。しかし、@IT で Win32 API の SetClipboardViewer を使ったサンプル記事「.NET TIPS - クリップボードの内容をリアルタイムに取得するには?」が公開されていたので、Win32 API を使ってツールをつくり直してみました。ただ、これだけではアレなので、クリップボードにコピーされたテキストが Mac アドレスだった場合はベンダー名を表示するように実装してみました。動作には .NET Framework 4.0 が必要です。

「xx.xx.xx.xx.xx.xx」(ピリオド区切り)や「yy:yy:yy:yy:yy:yy」(コロン区切り)、「zz-zz-zz-zz-zz-zz」(ハイフン区切り)といった形式の Mac アドレスをクリップボードにコピーすると、以下のようにベンダー名を表示します。

file

VMWareUser.exe プロセスを終了して、Windows ゲストの高負荷状態を回避する

普段は Mac 上で VMware Fusion3 を使っているのですが、ゲスト OS が Windows の場合だけ、なぜか高負荷になる場合があります。VMware Fusion なのかは分かりませんが、他の方も同じような事象に遭遇しているようです。

VMware の Knowledge Base を検索しても、それらしい事象を見つけられないのですが、これはゲスト の Windows OS 上で "VMwareUser.exe" プロセスを終了することで回避出来るようです。ただし、VMwareUser.exe プロセスはホスト 〜 ゲスト間でのドラッグ&ドロップや、クリップボード共有の機能を提供しているので、このプロセスを終了することでこれらの機能は利用出来なくなります。

Wlinee で擬似的にネットワークへ遅延やロスを発生させる

2004 年の書籍ですが、いまどきのソケットプログラミング―遊んで学ぶ、TCP/IPネットワークの奥義 をお書きになっている 波多さん 作の Wlinee を使うと、ネットワーク上で遅延やロスを発生させたり、帯域を一定の状態にポリシング出来ます。Wlinee を使うと、遅延やロスの多い、品質の悪い回線を Windows で手軽にエミュレート出来ますので、悪条件化でのネットワークテストを実施することが出来ます。Wlinee は下図のように、遅延やロスを挿入したい位置へ Wlinee PC を物理的に割り入れる(挟む)構成にして利用しますので、必然的にふたつの NIC がインストールされた Windows PC が必要となります。

file

今回は Windows XP SP3(32bit)環境に Wlinee をインストールしてみました。尚、波多さんは Wlinee 以前に Linux で動作する Linee もお書きになっています。

事前準備

Wlinee を動作させるには、以下のふたつが事前に必要となりますので、予めインストールしておきます。.NET Framework 3.5 であれば 2.0 を含んでいます(最新の 4.0 は下位バージョンを含んでいません)。

Wlinee のインストール

Wlinee は Sourceforge のプロジェクトページ からインストーラをダウンロード出来ます。インストーラがあるので、インストール自体は簡単です。.NET Framework 2.0 と WinPcap がインストールされていれば、起動するはずです。起動画面は以下の通りです。

file