ページ

2005年4月6日水曜日

VS.Php 1.1 for Visual Studio .Net

VS.NET 上で PHP のコードを書いたり、デバッグしたりできるらしいです。
http://www.jcxsoftware.com/


と言っても、私は PHP ってさわったこともないんですが。。。

2005年4月1日金曜日

The Gotdotnet Blues

なにげに Webcasts のアーカイブを見ていたら The Gotdotnet Blues なんてものが。
「アイ ガッタ ガッタネットブル~ス♪」 って。なにこれ?

(修正) なんかリンクがうまくいってないみたい。http://www.microsoft.com/events/webcasts/library/200503.mspx の 30 Mar 2005 のところに 「The Gotdotnet Blues」 があります。

Team System Webcasts

Team System Webcasts より


なんか、VSTS 関係の Webcasts がたくさん行なわれるようです。


ちなみに生を見損ねても Archive で見ることができます(と思う)。

VS2005 クラスデザイナのデモムービー

John Stallo talks about Class Designer より


ほんとはクラスデザイナのプログラムマネージャである Josh Ledgard 氏への インタビュームービー です。けど、中ほどから実際にクラスデザイナでクラスを表示させ、関連を表示させ、派生クラスを表示させ、なんていうデモを行なっています。英語を聞かずにその様子を見ているだけでもおもしろいです(^^
(最後の System.IO の下をいっきにクラス図にしたりするのはちょっと感動)

SSWI (Source Safe Web Interface) : VSS のブラウザベースのインターフェー ス

A New VSS Web Interface より


たぶん、VSS 2005 のことではありません。
以下、ざっと訳してみると、、、


「SSWI は Microsoft Visual Source Safe の Web ベースのインターフェースだ。それは、世界中のどこからでも Internet Explorer を使って Visual Source Safe のすべての機能を使うことができる 。クライアントサイドに何かをインストールする必要はないし、簡単にあなたのブラウザであなたの SSWI サーバに接続できるし you're done」
(you're done. のとこは意味がわからない。「終わったら」 じゃおかしいし 「それで全部だ」 みたいな感じ?)


で、GotDotNet にリンクがあり、そこからさらに Component Workshop にリンクされています。
About Us によると Component Workshop は 「UK の小さな ISV (独立系ソフト開発会社) だ」 とのことです。


この SSWI ってなかなかよくできてそうな感じ。Product Overview には IE6 と Java runtime が必要と書いてあるので、Applet を使ってるのかな?ただ、VSS をブラウザベースで使いたいかと言うと、それはちょっと微妙。インターネット経由で使いたいと思うことはものすごくあるけど、別にブラウザベースで使いたいと思うことはないなぁ。たとえブラウザベースであったとしても VSS のライセンス自体は必要なんだろうし。
似たようなものとして SourceOffSite がずいぶん前からあるけど、こっちは 「VSS をインターネット経由で使えるようにする」 のが主目的で、ブラウザベースではなかったはず(クライアント自体は Windows アプリだったと思う)。ちなみに、「詳細」 のページ に 「VSS のライセンスが必要」 と書いてあるので、こちらも 「使うためには VSS と SourceOffSite の両方のライセンスが必要」 なんですね。
で、VSS 2005 では標準でインターネット経由で使える( XML Web Service として実装されている模様) ことになってるので、それで済んじゃう話なのかなぁと。

2005年3月30日水曜日

四角くないフォームを作る方法

Non-Rectangular Forms より


四角くないフォームの作り方をストリーミングで実演しています。ストリーミングの中にも出てきますが、元ねたは Non-Rectangular Form こちらだそうです。


Region と GraphicsPath を使えば四角くないフォームを作れる。これは、あちこちで紹介されてるしググればいっぱい出てくる。
上記で紹介しているのは、それだけじゃなくて、透過色を指定した画像と同じ形のフォームを作るには?という方法。画像と透過色を指定して GraphicsPath を作ることができれば簡単だけど、そういう方法がない。そこで、全ピクセルを調べて、幅・高さが 1ピクセルの Rectangle でくりぬいちゃう。
なるほどなぁ。

IE で検索

IE Search Prefixes より


ちょっとわかり難いかもしれませんが、"This script" という部分が IE_Search_Prefixes.msi というファイルへのリンクになっています。これをダウンロードして実行 (インストール) すると、IE のアドレスバーで検索することができるようになります。


IE のアドレスバーは普通は 「http://example.com/ .... 」 なんてのを入力するわけですが、上記のツールをインストールしておくと、たとえば 「kb C# HOWTO」 と入れると http://support.microsoft.com/search/ で検索した結果を表示してくれるようになります。


いったいどうやってるんだろうと思ったんですが、"This script" と書かれていることや Tweak UI utility でもできるみたいなことが書かれていることから 「単にレジストリに書き込んでるだけなのかも」 と思ってみてみました。
どうやら HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchUrl ここをいじってやるだけでいいみたい。いじり方は見てみればわかると思います。

VS2005 Standard Edition と Professional Edition の違い

Visual Studio 2005 製品ラインの概要 によると Standard Edition と Professional Edition の違いは、



  • ユーザーエクスペリエンスが 「簡略」 か 「完全」 か。
  • SQL Server 2005 との統合が 「なし」 か 「あり」 か。
  • モバイル開発のサポートが 「PocketPC および SmartPhone」 か 「すべて」 か。
  • Windows Server 2003 Developer Edition、SQL Server 2005 Developer Edition が 「付いていない」 か 「付いている」 か。

とのこと。
ただ、上記の表はずいぶん前からあるので、価格体系の決定とともに Standard や Professional の内容が変わってる可能性もあると思います。けど、ほかに資料が見つからなかったので、ここではこの表を信じるとして、、、


3番目と 4番目は、まぁ、書いてあるとおりなんでしょう。
2番目の SQL Server 2005 との統合っていうのは VS2005 上から SQL Server 2005 をいろいろ操作できるっていうだけじゃなく、デバッグ時にストアドプロシージャとか SQLCLR とかの中まで入っていけるというような意味での統合なのかな?


まぁ、ここまではいいんですが、、、
さて、今さらなんですが 1番目の 「ユーザーエクスペリエンス」 ってのは何?っていうのがよくわかってなかったりします。
Visual Studio 2005 Community Integration FAQ これのこととかかなぁ。これによると 「ニュースグループに質問したり、Product Feedback に送信したり、質問の状態を確認したり、MSDN developer center や CodeWise コミュニティに接続したり、VS 2005 の中から直にコンテンツを検索したりだってできるようになる」 というような機能がある?あれ?けど、この機能は 「すべての Edition (C++ のコンテンツサーチを除く) に入る」 とあるな。
だとすると、Professional 以降にしか含まれない 「ユーザーエクスペリエンス」 ってなんだ?Community Integration in Whidbey Beta 2 こっちにあるような 「スターターキット (プロジェクトテンプレート、アイテムテンプレート、スニペットを含む)、コードスニペット、コントロール、Addins などといった VS コンポーネントを検索したり、インストールしたり、使ったりといった機能」 は Professional 以降のみということなんだろうか?

2005年3月29日火曜日

クラスデザイナは Standard Edition 以上

Class Designer availability より


以下、大雑把に訳してみる。
「クラスデザイナは Visual Studio の Standard Edition とそれ以上で提供される。クラスデザイナは Team Architect と Team Developer のみであるというような混乱があるように思う。だから我々はそうではないということを明確にしたいと思う。しかしながら、Express Edition には提供されない予定だ」


Visual Studio 2005 製品ラインの概要 こちらの表にもちゃんとクラスデザイナとオブジェクトテストベンチは Standard Edition 以上の全 Edition についています。
(Standard Edition なんて新規購入でも $299 だよね?その価格でこんなものまでついてくるなんて)


というのは、菊池さんの Object Test Bench を受けてだったりします。

2005年3月25日金曜日

Re: .NET GC & Interop クイズ

.NET GC & Interop クイズ
.NET GC & Interop クイズ解答編 より


最初に見たときは 「えー、なんでー?」 と思ったんですが、、、
トラックバックをたどってみると 菊池さんNyaRuRu さん が Yes、Ladybug さん が No。うーん。。。


で、菊池さんのところからリンクされてる Lifetime, GC.KeepAlive, handle recycling を読んで納得。JIT にとっては言語上のブロックとかそういったものはまったく関係ないわけで、this._handle にアクセスし終わった時点で 「もうこの this は不要」 と判断しても構わないわけで、そうなるとファイナライザが呼ばれることだってあるわけで、そうすると WorkOnHandle メソッドを呼び出す時点では this._handle が変わっちゃってることだってあると。そういうことですよね。


で、これは WorkOnHandle メソッドが static でなく、Wrapper クラスのインスタンスメソッドならこういうことは起こらない(メソッドを呼ぶこと自体に this が必要だから) と。たぶん Ladybug さんが言ってるのはそういうことですよね?


ということは、こういうことに注意しなくちゃいけない条件としては、



  • あるクラスのインスタンスメソッド(これを m メソッドとする)の中で static メソッドを呼び出す。

  • その static メソッドの引数に何らかのフィールド(例: this._handle)を渡している。

  • その引数に渡しているフィールドはファイナライザで何らかの操作が行なわれる可能性がある。

  • その static メソッドの呼び出し以降に this にアクセスするコードが一切ない。

  • (m メソッドを呼び出す側で、m メソッドの呼び出し以降にこの 「あるクラス」 にアクセスするコードがあれば GC されないからこういうことはおきない。が、普通は 「どう使われるか」 なんてことは事前にわからないので条件に含めることはできない)

と言う場合は GC.KeepAlive() を使って this を守ってあげる必要があるということでいいのかな?

VSTS は買いなのか?

prog-blog の名無しさん#: VSTS問題を考える
菊池 Blog の菊地さん: Team System追っかけあきらめました…


私もいまいち VSTS を追っかけられてないんですが、、、
VSTS をプロセス管理ツールとして使うとすると、Team Foundation Server と ActiveDirectory と SQL Server 2005 が必要になるんですよね?当然それらのライセンスも必要になるんでしょうし、私は最初にそれを聞いた時点で 「トータルコストは結構かかるんだろうな」 と実務で使うのはほとんどあきらめてましたw。それに、たとえば IBM Rational とかにも同じような 「ソフトウエア開発のプロセス管理ツール」 があるらしいんですが 「ちょっとやそっとのプロジェクトじゃ導入できないくらいの値段」 と聞いたことがあります(聞いたことがあるだけなのでほんとかどうかはわかりません。ガセだったらごめんなさい)。なので、「VSTS もきっと高いんだろうなぁ」 と漠然と思ってましたし。


なので、VSTS の値段を見たときは 「まぁ、こんなもんなのかなぁ」 くらいの感想でした。(そりゃ、安いに越したことはないですけどね)


とはいえ、テストをサポートする機能 にあるようなテスト関係の機能は欲しいです(これらは Professional には含まれないんですよねぇ)。けど、Visual Studio 2005 Team System : 概要 にある Visual Studio Team System の構成図 からすると 「Team Developer にしとけばユニットテストもコードカバレッジも含まれるし、PREfast、FxCop、プロファイラにクラスモデリング、Visio も付いてるんだから十分じゃん」 と思ってました(Team Test に含まれる Load Testing (負荷テスト) とかはちょっと欲しいよう気もしますが)。
で、今回の価格では Team Edition for Software Developers は MSDN Universal から移行できるみたいですし、更新価格も $2,299 なので 「値段的には今までとあんまり変わんないのかな?」 と思ってました。Team Edition for Software Developers に付けれる MSDN Premium Subscription も開発ツール、クライアント OS、サーバ OS、アプリケーションってことなので今の MSDN Universal と同じみたいな感じですし。


これってなんか勘違いしてますか?
まさか、Team Edition for Software Developers を使うにはいやでも Team Foundation Server やら SQL Server 2005 がいるなんてことは無いですよね?
まさか、やっぱりテストするには Team Developer と Team Test の両方が必要ってことはないですよね?
会社とかには 「Team Developer にしとけば、今までとたいして変わらない値段で、ものすごく便利な機能がいっぱい付いてきますよ」 と言えばいいと思ってたんですが、今回の VSTS の価格体系にはいろいろと不満・批判がでてるみたいなので、どっか激しく勘違いをしてるんじゃないかと不安になってきちゃいました。

Enterprise Library Configuration Console Module Generator

Manage Application Settings Using Enterprise Library Configuration
What's this? GotDotNet Workspace: Enterprise Library Configuration Console Module Generator より


なんか、コンフィグレーションをごにょごにょしてくれるみたいです。


って、だめだ、Enterprise Library って何がどうなってるのかさっぱりわかってないので、これ以上書きようがない orz

3f.Equals(3) は true か?

C# and Equals() in V2.0 versus V1.0. より


以下、要点だけ書いてみます。


3f.Equals(3) は true なのかどうか。
わかりにくいかもしれませんが、3f っていうのは float の 3.0 のことですから、3f.Equals() っていうのは System.Single 構造体の Equals メソッドを呼び出すってことになります。引数の 3 は当然 int、すなわち System.Int32 です。Equals メソッドの引数は object ですから System.Int32 が box 化されて渡されます。Equals メソッドは型が違えば false を返しますから、当然 3f.Equals(3) の結果は false です。


というのは .NET Framework 1.x での話。
2.0 では System.Single 構造体の Equeals メソッドは Equals(object) と Equals(float) の 2つが用意されています(Single.Equals Method 参照)。そして、C# 2.0 コンパイラは box 化が不要な Equals(float) を呼び出すようにコンパイルします。int 3 は float に暗黙に変換できますから特に問題はありません(暗黙の変換については C# 言語仕様 「6.1.2 暗黙の数値変換」 参照)。すると 3f.Equals(3) は 3f.Equals(3f) と同等とみなされることになり、結局 true を返します。


では、3.Equals(3f) はどうでしょう?
2.0 では System.Int32 にも Equals(object) と Equals(int) が用意されています(Int32.Equals Method 参照)。しかし、引数の 3f (float 型)を暗黙に int に変換することは許されていません。そのため box 化して Equals(object) を呼び出すコードが生成されます。ですから、結果は false となります。


。。。ってことが書いてあると思うんだけど。。。
これってほんとにいいんだろうか?たぶん、Single.Equals() に object 版と float 版を用意するのは 「box 化を不要にすることによって (場合によっては) パフォーマンスを向上できる」 ということなんだろうけど。。。
けど、いろいろと気持ち悪いなぁ。それに
Equals および等値演算子 (==) 実装のガイドライン
Equals メソッドの実装
これらのガイドラインを破りまくることにもなるし。。。


最後の一文 「Let us know if you find an interesting counter-example where this change could cause grief!」。これは 「この変更で何かまずいことが起こる例を見つけたら教えて」 てな感じでいいのかな?ということは、中の人も 「ベストじゃないかもしれないけど、メリットもあるからこうしたいなぁ」 って考えてるってことかな?

2005年3月23日水曜日

JIS X 3015 プログラム言語 C#

マイクロソフトからのプレスリリース: プログラミング言語C#がJISに制定
これにあわせてかどうかわかりませんが Be Sharp! C# なんてページができてました。


で、さっそく見てみました。
JIS 検索 の JIS規格番号検索 で "X3015" として検索すると 「JIS X 3015 プログラム言語 C#」 が出てきます(どうも直リンクはできないみたい)。ここで PDF を閲覧することができます。


最初に思ったのは、上記のページの規格名称が 「プログラム言語C#」 と全角のシーシャープになってるのはなんとかならんのかな、ということ(^^;
ちなみに、JIS X 3015 の 「6. 頭字語及び略語」 では、ちゃんと 「C# はシーシャープと発音する。C# は LATIN CAPITAL LETTER C (U+004) の次に NUMBER SIGN # (U+0023) を書く」 と書いてあります。全角の 「C#」 と書くと JIS 規格に反していることになっちゃうように思うんですが(^^;


で、内容ですが、普通に C# の言語仕様です(当たり前ですが)。ECMA 334 と目次の構成はまったく同じようなので、ECMA や ISO の仕様書をそのまま翻訳したもののようです。
で、こういったものの常として 「そこまで訳さんでも」 と思っちゃうところもあるわけです。気付いたところでは



  • ガベージコレクタ → ゴミ集め
  • コンストラクタ → 構築子
  • デストラクタ → 解体子
  • プロパティ → 特性
  • インデクサ → 添字子
  • delegate → 委譲

てな感じ。(プロパティを特性ってのはちょっと違和感あるなぁ)


あとは、C# 言語仕様 JIS原案作成委員会 にも書いたように CLI のほうがいつ頃になるのか気になるところ。

Visual Studio 2005 の価格表(Team System 改め Team Edition も含む)

Visual Studio 2005 価格発表。けど、発売時期は??? で紹介した記事には Team Edition の値段が見当たらなかったんですが、すでにページが存在しました。(今まで Team System と呼ばれてましたが、Team Edition となったようです)


http://msdn.microsoft.com/howtobuy/vs2005/compare/


全部が入った Team Suite は 1万ドルの大台突破(^^
Architects、Developers、Testers もそれなりのお値段だし、企業で導入する場合、どれを何本ってどうやって決めたらいいんだろ?


なお、上記のページに辿り着いたのは Team System Pricing & Licensing こちらでリンクされてたから。あと、VSTS Licensing こちらには Open License の価格もまとめられている。

MSN Messenger の最大登録数が倍になった?

MSN Messenger Buddy List Limit Doubled より


「昨晩、我々は MSN Messenger のサーバーサイドのアップグレードの最終仕上げをした。友達リストの最大数が 150 から 300 に増えた。Enjoy」


と言っても、私は 150 でも十分足りちゃってるのでほんとに増えてるのか確認できません(^^

Profilers for the CLR

Profilers for the CLR より


いろんなプロファイラがまとめられています。

Smart Client Offline Application Block

Cool video on Offline Application Block より


上記 blog で Smart Client Offline Application Block の使い方をデモしたビデオを紹介しています。
ビデオ自体は Scott Swigart さんが自分で作ったものなのかな?しゃべりは英語ですが、映像はずっと Visual Studio.NET で実際にコードを書いたり実行したりです。なので、音声を聞いてなくてもだいたい意味はわかりました。
# というか、聞いてもなに言ってるのかわからないんですけどね(泣)


しかし、これを見るまで Smart Client Offline Application Block なんてものがあること自体を知らなかったです。Enterprise Library と Application Block も追っかけとく必要あるなぁ。

2005年3月22日火曜日

Visual Studio 2005 価格発表。けど、発売時期は???

ITMedia: MS、「Visual Studio 2005」の価格発表 より


Express は無料じゃないのか。
Team System は別体系ということなのかな?


あと、気になるのが出荷時期。上記の記事だと 「今年下半期」、MS のプレスリリースには 「the second half of calendar year 2005」。ってことは 7月~12月のどこかってことか。なんか、ずいぶん幅があるなぁ。
Microsoft Visual Studio 2005 delayed until the end of the year
Visual Studio 2005 Ship Date Slips Again
これらの記事だと 「the end of 2005」 なんて表現が使われてたりするなぁ。年末?

2005年3月17日木曜日

.NET Framework デザインガイドラインのアップデート

How to get .NET Framework Design Guidelines Updates [Krzysztof Cwalina] より


.NET Framework の  Design Guidelines on MSDN は頻繁にというわけではないが更新されている、とのことです。(どこが更新されたのか、どっかでわかるようにはなってないんだろうか?)


で、MSDN では更新しきれていないところを http://blogs.msdn.com/kcwalina/category/4197.aspx こちらにポストしているとのこと。

2005年3月16日水曜日

ご一緒にポテトはいかがですか?

いろんな所からデータを取ってきて表示 より


ご一緒にポテトはいかがですか?
すごいです。なんか感動しました。


ところで、"あ" とか "い" とかみたいにカナ一文字だと Amazon の上位は必ずアダルト系なような気がする。なんだろう?(笑)
はっ、そうか、これがご一緒にいかがかと言われているポテトなのか?

ObjectSpaces → C#

ObjectSpaces -> C# より


「1月に ObjectSpaces から C# に移ったよ」 とのこと。
「最初に DataSet、それから ObjectSpaces、そして今はエキサイティングな新しい仕事、ハイパワーな C# チームの中でデータアクセスと言語を intersection させるっていうね!」 (なんて解釈でいいのかな?)


データアクセスと言語の intersection ってなんですか?ひょっとして C# のコードの中に SQL や XQuery を書けるようになるですか?


# って、今見たら 名無しさん♯ と被りまくりだな(^^
# ObjectSpaces -> C#
# WinFX SDK Documentation

WinFX (Indigo & Avalon) のドキュメント

WinFX (Indigo & Avalon) documentation is live より


CTP March のWinFX のドキュメントが MSDN で公開されているそうです。
http://winfx.msdn.microsoft.com/


ん?ちょっと待てよ?CTP March って何?あぁ、そっか、今月 WinFX CTP が出る予定になってるとかっていう話があったな。

2005年3月15日火曜日

Anders Hejlsberg Interview

Exclusive Interview with Anders Hejlsberg: Getting Reacquainted with the Father of C# より。


TechEd 2004 San Diego のときに行われた Anders Hejlsberg 氏のインタビュー記事のようです。
Anders Hejlsberg 氏は C# の言語設計者です。Borland 社で TurboPascal、Delphi を作り、その後 Microsoft で J++、WFC の開発を行ったという方です。


ざっと読んでみましたが、おもしろいです(と言っても私の英語力じゃ全部が理解できたわけじゃないのが悲しいところですが)。


以下、気になった or おもしろかったところの覚え書き


1ページ目。「WFC のアイデアのいくつかは Windows.Forms に引き継がれてるよ」 ほぉ。X# についても語ってるな(X# ≒ Cω)。へぇ、X# のチームの人が 2人、C# のチームに加わっているのか。そして、やっぱり XML を始めとしたデータの処理をどう言語と一体化させていくのかが重要なテーマになっているみたい。Embedded SQL みたいに違う言語を搭載しちゃうのと 1つの言語に結合させちゃうという方法があるけど、Anders Hejlsberg 氏は後者のほうがいいと思ってる模様。(それは X# (Cω) が SQL とか XML、XQuery が C# の言語の一部となっていたのと同じってことだよなぁ)


2ページ目。「Microsoft の典型的な 1日を教えてください」 なんて質問も。「月水金曜日の典型的な 1日はたくさんのミーティング。C# デザインミーティングはこれらの曜日の PM1~3 にいつも同じ部屋で 5年間ずっと行われてる」 へぇ~
Java 1.5 の Generics についても語ってるな。Java Generics は VM を変更せずコンパイラで何とかするというものだから型情報がなくなってリフレクションで困るとかいろいろあるわけか。ん?Java 1.5 では attribute みたいなものも追加される?この辺はよく知らないなぁ。


3ページ目。TurboPascal や Delphi やらそれ以前の経歴やら。「ALGOL が好きだったから、ALGOL コンパイラが書きたかった」 へぇ~
「好きなプログラミング言語と嫌いな言語は?」 に対して 「そりゃ難しい質問だな」 か。まぁ、Anders Hejlsberg 氏が 「○○言語は嫌い」 とかって言ったらかなり波風が立ちそうだしなw


4ページ目。Miguel と話したとか Mono をちょっと見てみた。へぇ

2005年3月14日月曜日

Google サジェストの不思議

Google サジェストとアラート」 で書いた Google サジェスト(日本語版) ですが、使ってみて 「おや?」 と思うことがありました。IME で漢字を入力しようとすると、確定していなくてもサジェストが表示されるんです。どうやっているのか気になってました。


で、試したコード。



<html>
<body/>
<form name="f">
<input name="a"
onkeydown="document.getElementById('dc').innerText=event.keyCode;
           document.getElementById('dv').innerText=document.f.a.value"
onkeyup="document.getElementById('uc').innerText=event.keyCode;
         document.getElementById('uv').innerText=document.f.a.value"
/><br/>
keydown: <span id="dc"></span>:<span id="dv"></span><br/>
keyup: <span id="uc"></span>:<span id="uv"></span>
</form>
</body>
<html>



IME がオンのあいだもキーアップするたびに keyup は呼ばれるようです。keydown は呼ばれてるような呼ばれてないようなよくわからない感じです。
また、<input> 要素の value は IME で入力中の読みも含めて返されるようです。
と言うわけで、別に特別なことはしなくても、keyup のタイミングで value を参照すれば確定前の文字列も含めた文字列が取り出せます。


上記は Windows 2000 Professional、IE6 SP1、IME は Win2000 標準のやつ、という環境で試した結果です。OS、IE、IME が違えば動作は違ってくると思いますし、ブラウザが IE 以外の場合はぜんぜん違う結果になる可能性が大だと思います。


で、FireFox 1.0 で同じような感じで試してみたら、IME がオンのあいだは keydown も keyup も呼ばれないみたいです。それじゃあということで、



<html>
<script>
function test()
{
    document.f.b.value = document.f.a.value;
    setTimeout(test, 100);
}
setTimeout(test, 100);
</script>
<body/>
<form name="f">
<input name="a"/><br/>
<input name="b"/>
</form>
</body>
<html>


こんな風にして、100ミリ秒おきに <input> 要素の value がどうなっているのか表示されてみました。すると、ちゃんと IME で入力中の読みも含めて取りだせました。