私的メモ

気が向いたときに更新。(2002年11月版)

2002/11/28 

ipmsg

ルートディレクトリの添付を許可、その他一部手直しした v2.00r1.1
作ってみる。

2002/11/26 

ipmsg

現在のフォルダ添付機能は、添付対象としてルートディレクトリ(C:\ 等)
は認めていなかったけれど、一応、対応してみようかなぁと思い中。
とはいえ、Win32API の FindFirstFile() で "C:\" を指定しても、エラー
になってしまう、"C:\*" を指定した場合はエラーにはならないが "." や
".." というエントリーが見つからず、まるでルートディレクトリ自体が存在
しないかのような振る舞い。

唯一、NT系であれば、CreateFile(FILE_FLAG_BACKUP_SEMANTICS)
と GetFileInfomationByHandle() を使って、情報を取得できる模様。
あいかわらず、Windows の世界は意味もなく面倒な話が多い…。

そういえば、先週、6年ぶり(?)にメジャーバージョンアップしたため、
窓の杜の「ダウンロードランキング」 で4位となった模様。


USB 携帯充電

携帯が古い機種で、電池の減りが早いため、USB 接続の携帯充電器を
買ってみる。これで、家と会社と両方で充電できるようになった。
いまのところ、とくに問題はない模様。

2002/11/21 

ipmsg

IPMSGv2 をリリースしたためか、最近、インタビュー・取材依頼がいくつか。
(ちなみに、今年9月の窓の杜が取材初体験。)

どうせなら、お互い一度も逢ったことのない、各 OS 版 IPMSG 開発者達に
一同に集まってもらって、インタビューというも面白そう。
…皆で言うことが、てんでバラバラになりそうだけど(笑)


タバコ(その2)

最近、タバコ業界が、いろいろな新聞社の Webサイトに、タバコ税増税反対の
バナー広告を継続して載せている模様。

 タバコ税ドットコム(日本たばこ協会)

で、それに鏡打ちのデザインをした、タバコ税増税賛成サイトもある模様(笑)
(全然関係ないですが、ニセ首相官邸のページを連想したりして)

 タバコ税ドット安過ぎ(禁煙医師連盟)

私自身はどちらかというと、昼食時の煙に書いたとおり、後者寄りだけど、
もう少し、公的な喫煙所を(タバコ税で)作ってあげれば、とは思ってたり。

2002/11/19 

ipmsg

ようやく、v2.0 正式版リリース。
(6年前のリリース以来、はじめてのメジャーバージョンアップ)
ファイル&フォルダ添付と、通信路の暗号化がメイン。
ファイルだけでなく、フォルダも添付できるところが面白いかも。

7ヶ月のβ版時代は少し長かったけれど、ともあれ、これでひと段落かな。
(β版にご協力くださった方々、有難うございましたm(__)m)

子供

2歳9ヶ月になる娘、まだまだ幼児と思っていると、突如として大人のような
理屈っぽい発言をして、びっくりさせることが時折。
(とはいえ、またすぐに甘えん坊に戻る(笑))

幼児は体の成長もさることながら、脳の成長もすごいなぁと感心すると同時に
これに限らず、幼児たちのこういう唐突な成長の仕方には、何か不思議なもの
を感じさせられてしまう。

2002/11/15 

ipmsg

β10リリース。
実質、v2.0 final beta かな?

2002/11/14 

ipmsg

ipmsg-ML で、β9.2 を公開。
暗号時の最大送信可能メッセージ長を、3.5KB -> 7.5KB に増やす。
(ちょうど、v1.x での送信長とほぼ同じ)

ただし、以前の β1〜β9.1 に対して、3.5KB 以上のメッセージを送ろうと
すると、送信失敗するので少し注意が必要。

もうそろそろ、v2.0 正式版でもいいかな。
残りの未実装項目は、「添付後にファイル変更があった場合にダウンロード
を不許可にするオプション」くらいと思う。
これ残ってるんじゃない?ってなネタがありましたら、ご一報ください。


私的メモ

当初の想定より、意外と続けているので、月別に分けてみる。
今のところ、いつまで続けるかは未定だが、たぶん長続きはしないと思う。
いまの旬の間だけご賞味あれ(笑)

2002/11/12 

ipmsg

フォルダ添付用インターフェイスを追加。
送信画面右クリックメニューから、選択ダイアログを出す形。
ダイアログには、SHBrowseForFolder() を使用。
この API、たかが、初期ディレクトリ指定したいだけなのに、callback 関数
経由で指定する必要があるらしい。さすがは WinAPI…やれやれ。

添付フォルダ受信で、フォルダ更新日付をオリジナルにそろえる。
タイムスタンプ変更の Win32API は SetFileTime()。この API は第1引数
にファイルハンドルが必要。でもって、ディレクトリのファイルハンドルを
得ることができるのは(CreateFile(FILE_FLAG_BACKUP_SEMANTICS))、
NT系(NT/2000/XP) に限られる様子。

結論として、ディレクトリのタイムスタンプ変更は(通常の Win32API 経由
では)NT系しかできない模様。さすがは WinAPI …またもやれやれ。

β9.1 として ipmsg-ML で公開

2002/11/10 

ぐ〜チョコランタン

渋谷NHK の「ぐ〜チョコランタン」のキャラクターショーを見てきた。
また、館内では、はっちぽっちをやっていて、すごい立ち見。
敷地内の台湾屋台、肉饅頭やニラ饅頭が意外とおいしい。

無線LANアクセスポイント

以前から、無線LAN を導入しようかと考え中だったが、結局、NHK の帰り
の渋谷 Bic P kanで、I/O DATA のWN-B11/LANを購入。

設定などに難しいところもなく、電波もウチの場合は OK だったが、暗号時の
速度がいまいちかな。
暗号なしで 3.7-3.8MB/s、WEP 128bit で 2.8-2.9MB/s となった。

2002/11/07 

ipmsg
ipmsg ファイル/フォルダ添付と Windows共有(explorer) との速度比較

---------------------------------------------------------------
環境:100BaseTX で接続された XP マシン(P4/2.4GHz、512MB RAM) 
   同士間での転送

実験1:1ファイルの転送速度比較

 ipmsg のファイル添付  ...  88sec (11.3MB/sec)
 explorer の Drag/Drop ... 145sec ( 6.9MB/sec)
 (1ファイルのサイズ = 1000MB)

実験2:1フォルダの転送速度比較

 ipmsg のフォルダ添付  ...  8sec (2.5MB/sec、575file/sec)
 explorer の Drag/Drop ... 95sec (0.2MB/sec、 48file/sec)
 (1フォルダの中身 = ファイル総数:4600、フォルダ総数:150、
  総容量:20MB、平均ファイルサイズ 4.5KB)
---------------------------------------------------------------

=== 考察 ===
 実験1では、explorer より 60% 程度速い模様。
 これは ipmsg 側が、

 ・送受信共に必要な側の socket buffer を拡張(256KB)
 ・送受信処理を別スレッド化
 ・connect/accept() 後、WSAAsyncSelect() を使わず select() を使用
 ・ReadFile() ではなく CreateFileMapping() を使用
 ・WriteFile() を(recv() した単位でなく)64KB 単位で実行

 といった実装をしているためと推測。

 実験2では、explorer より 10 倍程度速い模様。
 (上記の理由に加えて)最大の要因は、explorer では

 ・(おそらく)1 file ずつ同期を取りつつ転送

 しているのに対し、ipmsg のフォルダ添付では、

 ・フォルダ配下を tar のように一気にストリームデータとして流し込み、
  送受信双方は、お互いに(TCP 層より上では)同期を取らずに処理を
  実行

 しているためと推測。(ただし、同期を取っていないことによる、マイナス
 の側面もあり、たとえば、フォルダ配下の転送を 1 file ずつ選択的に行う、
 といった動作はむずかしくなる)

 そういう意味では、実験1も、Windows 共有の SMB protocol がある転送
 サイズ単位で同期を取っている(もしくは NFS のように1つのリクエスト
 で I/O できるデータ長が、数KB - 数10KB?)と仮定すると、それが遅さの
 原因の一つ、という可能性はあるかも。

 それにしても、SMB は NFS と比べても、かなり遅い気がする。
 まあ、NFS も、biod(やそれ相当のカーネル動作)と nfsd がリクエスト
 を並列処理してくれるから速くなっている部分は大きいけれど、Windows
 には、それ相当の仕組みはないのかしらん?

 (2002/11/11 追記) 実験2で、src 側実験データがキャッシュヒットして
 いない場合、explorer との差は 10倍 -> 2倍 になる模様。
 (小さなファイルのオープン・読み出し部分がボトルネックになっている)
無線LAN

現在、ThinkPad がメインマシンなので、無線LAN を導入しようかと思い中。
ADSLモデム(MN)をルータモードにしているので、単なるアクセスポイントと
して、I/O DATA のWN-B11/LANあたりで十分かなぁと思ってみたり。
(これって、評判どうなんですかね?)

それとも、思い切って YAMAHA のRT-56vにしてみるか。
(そうすれば、某所と VPN 接続できるなぁ…)

(2002/11/08 追記) RT-56v は無線LAN対応モノではなかった模様(^^;
RTW-60b とかにしないとダメ。(この場合 PPTP による VPN のみ?)

2002/11/06 

ipmsg

添付ファイル&フォルダ転送時だけは、マルチスレッドで動作しているのだが、
ワーカスレッド内で、一部に再入可能でない標準ライブラリ関数呼び出しを見
つけたので、再入可能な独自関数に置き換えたβ9リリース。
同時にわずかに軽くなったかも。

2002/11/04 

ipmsg

フォルダ添付をサポートしたβ8をリリース。
やはり、フォルダ添付は結構便利かも。
ひと月ぶりのβリリースなので、フォルダ添付以外にもいろいろ変更。

2002/11/01 

ipmsg

さらに、β7.6 に verup。
いくつか、フォルダ転送機能をリファイン。
…特に問題はなさそうなので、そろそろ、β8 にしようかな。

昨日、asahi-net の ML 制限の1000人と書いたけれど、いつのまにか、
1万人まで対応したメニューができた模様
ただし、費用的な問題から、やはり OpenLab の ML かな。

Linux NFS client

Linux Kernel 2.4 の NFS Client は、readdir 関係で protocol に従って
いないところがあって、NFS server を作る側としては頭が痛い。
#メジャーどころでも、(Linux NFS Client は)IRIX NFS server との
#相性があまりよくない模様

 10月のメモ 12月のメモ
ipmsgicon
ご意見・ご感想はこちらまで:email

..up menu

Copyright(C) 2002 SHIROUZU Hiroaki