follow me

IBM 3270 Terminal Emulator

使いやすいIBM 3270 Terminal Emulatorがない。
SSHやTelnetであればTeraTermが使いやすい。
しかし、3270となるとコレといったものが見つからない。

とりあえず、Linux環境では、x3270を使ってみる。
UNIX系で使うには、こういったシンプルな物が好きだ。
Windowsではどうするか?Cygwinは嫌いだし。SFU使うべきなのか?
だれか、TeraTerm風に移植しないかね~
follow me

VMwareでもCPUリソース制限

VMwareServerとMicrosoftのVirtualServerを比べてみると、VirtualServerで設定できるCPU使用率の制限設定がVMwareで出来ないのは気に入らなかったわけで。
探してみた。

見つかったのがCPU limit

これは良さそうだと思い試してみた。意外と普通に抑えられてる。
満足。
で、ソフトのビルドなんかもVMに影響しないようにしようと思い。cpulimit make 30なんてしてみたが。。。
CPU使用率100%状態。。。
cc1がCPU使用率99%。。。。。。。。
makeから呼び出されたプロセスまでは面倒見てくれないのね。。。。。
とりあえずVMの様に単一プロセスなら問題ないので、VMだけで使用しておきます。

暇な時にでもソース読んで、makeとかでバシバシ別プロセス呼んでもCPU制限出来るように修正しましょう。
follow me

NotifyChangeEventLog()にやられた

WindowsのEventLogを扱うためのAPIで、新しいEventLogの発生の検出を行う物があるのですが、この変な仕様(WMIの仕様?)なんとかなりません?

NotifyChangeEventLog()って名前のAPIなのですが。
内容は、hEventLogで指定されたイベントログにイベントが書き込まれたらhEventで指定されたイベントオブジェクトをシグナル状態にする。
となっているのですが、5秒以内に複数のEventLogが発生した際に取りこぼしが発生する可能性があります。
実際に試した所、確かに取りこぼしが発生しました。
それもかなりの高確率で。。。
Microsoftのページでも、取りこぼしの可能性があるってなってました。。。
とりあえずは、2003SP1では修正されているそうですが。

詳細は、Microsoftのページに記載されています。
follow me

タスクトレイ格納型プログラム

タスクトレイに格納されたプログラムの作成。
久々にプログラム作ろうと思ってみて、せっかくなのでタスクトレイ格納型にしたいと思ったので、やり方を調べてみたメモ。
内容は、Shell_NotifyIcon()使えばイイだけ。これを使ってトレイ内のアイコンを変えてみたり~。
とりあえず、プログラム初期化部分に以下のコードを埋め込み完了。
nidNoftyIconData.cbSize  = sizeof(NOTIFYICONDATA);
nidNoftyIconData.hWnd    = hwnd;
nidNoftyIconData.uID     = 1;
nidNoftyIconData.uFlags  = NIF_ICON | NIF_TIP | NIF_MESSAGE;
nidNoftyIconData.uCallbackMessage = WM_USER + 1;
nidNoftyIconData.hIcon   = LoadIcon(hCurInst, MAKEINTRESOURCE(IDI_ICON));
strcpy(nidNoftyIconData.szTip, APP_DESCRIPTION);

Shell_NotifyIcon( NIM_ADD, &nidNoftyIconData );

あと、ウィンドウが無いので、プログラムを終了するために、ポップアップメニューを追加しないと。。。プログラムが終了できない。。。
ちなみにメニュー箇所は、こんな感じにしてみた。
  case (WM_USER + 1):  //アイコンからのメッセージ処理
    if( lParam == WM_RBUTTONDOWN ){
      // マウス右押し
      GetCursorPos( &pt );
      hMenuPop = CreatePopupMenu();
      AppendMenu( hMenuPop, MF_BYCOMMAND | MF_STRING, IDR_EXIT, TEXT("Exit(&X)") );
      SetForegroundWindow( hwnd );
      TrackPopupMenu( hMenuPop, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hwnd, NULL );
      if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
      }
      DestroyMenu( hMenuPop );
    }

とりあえず、ポップアップメニューまで追加したタスクトレイ格納型の雛形。
プログラムはVC++6.0で作成。
TaskTray.zip
follow me

Fedora6でVMwareServerを動かす

導入環境はFedora6 on Athlon64

VMware-Serverをインストールする前にまず、yum install kernel-develを実行。
そのあと、VMwareのrpmパッケージを導入。
/usr/bin/vmware-config.plを実行するがエラーで終了。

内容は、linux/config.hが見つからないとの事なので、空ファイルを作成するだけで問題ないです。
ここではモジュールを作成するだけなので、ファイルの内容は意味を持ちません。

で進んで行くと、シリアルを入力してもはじかれる。
エラーメッセージがちろっと表示されている。 libXt.so.6が無いようです。これは、32bitのライブラリが無いための様です。
libXtst.so.6があるはずなので、シンボリックリンクを作成し回避します。
ちなみに、もちろん64bitのlibXt.so.6では動かない。

とりあえず、導入は以上。
あと、xinetd入れとかないといけない。

ちなみにXenのカーネルでやってたら、VM起動時にタスクスイッチ箇所でやられちった。
follow me

Windowsでもループバックインターフェース

WindowsWindowsにも、UNIX系OSの様にループバックインターフェースがありました。
ハードウェアの追加で、Microsoftの「Microsoft Loopback Adapter」を追加する事で作成出来ます。
これで、NICが追加されます。
IPは、127.0.0.1が割り当てられる訳ではなく、自分でIPを振らなくてはいけません。。。

使い道は。。。わからないです。。。

follow me

Quaggaってかわいい。

Linux - SlackwareQuaggaとは
クアッガ Equus quagga quagga は、ウマ目(奇蹄目)・ウマ科・ウマ属に分類されるシマウマの一種で、南アフリカ共和国の草原地帯に生息していたが、すでに絶滅した。クアッハとも表記される。
ちと、かわいいな。

Quaggaとは
RIPv1、RIPv2、RIPng、OSPF、OSPF6、BGP4+、BGP4-といったルーティング関連のプロトコルをサポートしたプログラムです。

特に導入は、問題ないので省略。

操作はCisco風・・・、なぜに?
root@sempron:/# telnet localhost 2602
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Hello, this is Quagga (version 0.99.5).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

User Access Verification

Password: 
ripd> ena
ripd# config t
ripd(config)# show run

Current configuration:
!
hostname ripd
password zebra
log stdout
!
router rip
!
line vty
!
end
ripd(config)# exit
ripd# exit
Connection closed by foreign host.

で、Slackware 11.0用に作成したパッケージ。
quagga-0.99.5-i486-srchack.org.tgz
follow me

OSC2006 Tokyo/Fall行って来ました

会社休んで、OSC2006 Tokyo/Fall行って来ました。
今回も、やっぱり仮想化流行ってんのねと認識させられました。
Virtual Ironも見れたし、Plan 9ごりごりビルドやってるのも見れたし、SE Linuxの組み込みへの実装やらJFFS2やらblanco Frameworkやら話も聞けたし、あともろもろいっぱい、楽しめました。
オープンソースってやっぱりいいな~。
今回も自分が何も出来ない事が見えて凹みつつ、いろんな意味でやる気が出てきました。
まだ、OSCに行った事が無い方は、一度行ってみてはいかがですか。

あと、オライリー1割引は、貧乏技術者の私には天の恵みの様なモノで、またガッツリ購入。
ちなみに今回は、メモ帳とコーヒーマグカップが付いてきました。
紙袋がビニールになったのは少し残念。会場では邪魔にならなくてイイのですが。あの紙袋好きだったのに。。。

会社の方ご迷惑をお掛けし申し訳ありませんでした。
ってこのページ見に来ないか。。。
follow me

Virtual Floppy Drive

意外と使ってみると便利だったVirtual Floppy Drive
。 Windows時代が来てフロッピーなんて使わなくなってしまったが、仮想Floppyドライブを作成してくれる、ちょっとした時に便利なツール。
Linuxでなら、Floppyイメージをループバックでマウントすればいいけれど。
このツールでWindowsでも可能に。

floppyfwいじる時に、かなり便利でした。
follow me

floppyfwのキーボード配列をjp106に対応

floppyfwを使ってみる。
キーボード配列がUSなのに、イライラしてしまう。
配列をjp106に対応するためのPackageを作成。

で、jp106キーボードの対応方法は、loadkmapコマンドが初めから入っていたので、別のLinux端末でキーマップファイルを作成。
この時、キーマップファイルの生成は、busybox用の物を作成しなければならないので、busyboxをビルドし、dumpkmapコマンドで生成します。

その後、パッケージの作成。
floppyfwが起動した際に配置する位置になるよう、ディレクトリ構造を作成し、bz2圧縮すれば終わり。
あと、Packagesディレクトリ以下に保存された「post-***.ini」ファイルが実行される仕様なので、キーマップを読み込むスクリプトを記述。
キーマップ対応は、これで完了。
作成したファイルは、以下にアップしています。

ついでに、telnetdのPackagesを組み込んでみるが、
一点telnetdで注意すべき点が、うまく接続できないtelnetクライアントがあるためクライアントを選ぶ必要があります。
Linuxのtelnetは問題なし、Windowsのtelnetは接続は出来るが挙動がおかしい、Teratermは接続できず、puttyでは「どのLFにもCRをいれる」をチェックしていれば問題なく接続が可能。

以下、Packageファイル
post-jp106.ini
jp106.bz2
以下、jp106キーボード対応とtelnetd入りイメージ
floppyfw-3.0rc2-jp.img