トップ «前10日分 追記
2005|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|

新雪見酒日記


2008-10-06 [長年日記]

_ consuming CPU load of dokan-ruby

結局ResetEventしたりタイムアウト設定したりしなくても、CreateEvent()のbManualResetフラグをfalseにするだけで良いみたい。

_ building Dokan for Windows2000

インストーラはW2Kに対応していないが、WDKさえ動けば、W2K用のバイナリは簡単に作成、インストールできる。XPかVistaにWDKをインストールして、それのWindows2000のビルド環境から、淺川さんとこのHow to build Dokan libraryの手順に従ってビルド、それをW2Kにコピー、インストールするだけだった。


2008-09-23 [長年日記]

_ consuming CPU load of dokan-ruby

単にResetEventを追加しただけだと、Windowsが勝手にスケジューリングしてしまい、長時間待たされることがある。WaitForSingleObjectのタイムアウト設定が必要みたい。

        WaitForSingleObject(g_DispatchEvent, 100);

0.1秒くらいだとCPU負荷もほぼ0%で具合が良いみたい。


2008-09-19 [長年日記]

_ ErrorPage VisualuRuby Wiki

Wikiが死んでしまってる。。

本日のツッコミ(全2件) [ツッコミを入れる]

_ nyasu3w [しかもsshも繋がりません]

_ 雪見酒 [ありゃ、ほんとだ。]


2008-09-16 [長年日記]

_ consuming CPU load of dokan-ruby

きのうWaitForSingleObject(g_DispatchMutex, INFINITE);をコメントアウトしてしまったが、これはいけない。複数スレッドが同時にアクセスしたら、やばいことになる。で、単に

ResetEvent(g_DispatchEvent);

の追加だけで良いだろう。


2008-09-15 [長年日記]

_ consuming CPU load of dokan-ruby

わかった。CPU負荷の件はDR_DispatchAndWaitでSetEvent(g_DispatchEvent)したのをDR_Dispatch()でRestEventしていなかったせいだった。

$ diff -u dokan_lib.c.org dokan_lib.c
--- dokan_lib.c.org     Tue Sep 16 00:49:13 2008
+++ dokan_lib.c Tue Sep 16 00:39:37 2008
@@ -1787,7 +1787,7 @@
 {
        while(TRUE) {
                WaitForSingleObject(g_DispatchEvent, INFINITE);
-               WaitForSingleObject(g_DispatchMutex, INFINITE);
+//             WaitForSingleObject(g_DispatchMutex, INFINITE);
                fprintf(stderr, "eventloop ");
                while(!IsListEmpty(&g_EventQueue)) {
                        PLIST_ENTRY     listEntry = RemoveHeadList(&g_EventQueue);
@@ -1815,6 +1815,7 @@
                                }
                        }
                }
+               ResetEvent(g_DispatchEvent);
                ReleaseMutex(g_DispatchMutex);
        }
 }

多分これで良いだろう。しばらく様子見て淺川さんにレポートしよう。

swin対応は、ネイティブスレッドを使っているため、イベントループを根本的にいじらなくてはいけないので、そう簡単にはいきそうもない。でも結構用途がありそうなのでやってみたいなぁ。


2008-09-09 [長年日記]

_ building dokan-ruby on MinGW

いくらか手を入れたが、とりあえずVista(32)上のMinGWでビルドに成功した。ASRでもちゃんと動く(はず)。W2K上のVC71でもコンパイルできるが、残念ながらdokanがW2Kにはインストールできない。

次のステップであるswin/vruby対応してからパッチを公開しよう。


2008-09-07 [長年日記]

_ Dokan

なかださんところで、sshfsがよさげということで、鯖の管理に使えそうなので、リンクをたどってみた。

びっくりした。これを動かすためのDokanライブラリは、Windows版FUSEじゃないですかー。しかもドライバは64bit版Vistaのコードサイニング証明書を取得している!!

おまけにRubyの拡張ライブラリも作られている。いや、これはすばらしい。いろんなことができそうだ。

ただし、開発途中とのことで、不具合もいくらかある。なかださんのところで書かれていることの他に、

  • sshfsは64bit版Vistaでは動かない。(ソースからコンパイルすれば動くかな?)
  • sshfsを動かすのに管理者権限が必要(ライブラリのドライバとdllは管理者権限不要)
  • 同じくsshfsはputtygenで作った秘密キーではホストに接続できない。(linuxで作れば良いらしい)
  • Ruby用の拡張ライブラリdokan_libはマウントするとCPU負荷が100%になる。

なんてところだろうか。dokan_libは、コードを眺めていると、イベントループがコンソールベースらしいので、いずれswin用のパッチを作るつもり。そうすればCPU負荷の問題は解決できるはずだし、タスクトレーに常駐するアプリケーションなんか簡単に作れるはず。


2008-08-30 [長年日記]

_ Backup from kuro-server

とうとう玄鯖のディスクが異音を発して、ネットワークはじめ外部ににつながらなくなってしまった。今回は電源を引っこ抜く→再投入で元に戻ったが、非常にやばい状況。とりあえず今あるデータはバックアップした。

ARTiGOの購入はグッドタイミングだったな。

_ Installing ubuntu-server to ARTiGO

日本語でWindowsからsysylinux使ってUSBにブート可能なインストールイメージを作る方法を書いたサイトが見当たらなかったので、メモ。ま、USB-CDROMは持っているのだが、それじゃおもしろくないから、USBメモリからインストールしてみた。

WindowsマシンからUSBメモリにubuntu-serverのブートイメージを作る方法

  • ubuntu-8.04.1-server-i386.isoをもらってくる。
  • syslinuxのページから最新版のパッケージをもらってきて適当なディレクトリに展開。
  • http://www.ubuntugeek.com/how-to-install-ubuntu-linux-from-usb-stick.htmlへ行く。
  • そこのリンクからUSBブート用の"vmlinux" と "initrd.gz"をもらってくる。
  • USBメモリをFATでフォーマット。仮に H: とする
  • "install"ディレクトリをルートに作る。
  • "vmlinux"と"initrd.gz"をそこにコピー。
  • コマンドプロンプでsyslinuxのディレクトリのwin32へ行く。
  • syslinux -ma h:
  • isoイメージをArchol52%などを使ってマウント。
  • CDのルートにある"isolinux"ディレクトリをUSBのルートにコピー。
  • ディレクトリ名を"syslinux"にリネーム。
  • ディレクトリ内の"isolinux.cfg"を"syslinux.cfg"にリネーム。
  • ubuntu-8.04.1-server-i386.isoをUSBのルートにコピー。
  • マシンのBIOSでUSBブートできるようにする。
  • USBからブート。
  • あとは普通のインストール手順。

この方法だと、GFXBOOTのイメージが画面に出ないが、なに、そんなのはどうでもいいことだ。逆に日本語でも101キーをちゃんとインストールしてくれるので、おいらとしてはこの方が良い。(ubuntu-serverのCDインストーラは、言語に日本語を選択すると106キーを強制してしまい、101キーに戻すのが厄介だという問題がある)

あ、memtest86+は別途ほかのUSBメモリに作る必要があるかも。このマザーボードはメモリの相性がシビアらしいので、インストール前にmemtest86+しておいたほうが良い。おいらは一枚ノーブランドの1Gを捨ててしまった。


2008-08-22 [長年日記]

_ ARTiGO

買ってしまった。。。

うひゃ。


2008-07-23 [長年日記]

_ Rpairing systems of WindowsXP x64

しばらく遊んでたけど、とうとうFirefoxが立ち上がらなくるとか、x64でSP2入れたらWindowsUpdateできなくなるとか、制限ユーザーでログオンできなくなるとか、PowerShellのドキュメントが読めなくなるとか、いろんな不具合が一気に噴出中。

だめだこりゃ。

あ、地震だ。