2005年11月アーカイブ

VB.NETで、明示的なインターフェイス実装ってできるのか?
MSDNライブラリの表記って、文法無視で表示しているよね。

public class ClassA : IDispose
{
    public void IDispose.Dispose()
    {
    }
}

それにしても、VB.NETってきたねぇ言語だな。

XslCompiledTransform

| | コメント(0)

XslCompiledTransformクラスを実際に使っていて思うこと。

・XmlResolverを指定できるオーバーロードは、Load, Transformともに、1つしかない。うー、不満。
・Evidenceはどこに行ったの? (まぁ、あまり気にするコードは書かないけどね)
 1.1でEvidenceが必要になったのに、2.0で消えた...。
・XslCompiledTransformという名前は何とかならんのか!
 名前を変えないといけないというのは分かるが、コンパイルするかしないかという内部仕様をクラス名にするな!
 CODE COMPLETEを読め!

XslTransform obsoleted

| | コメント(0)

今更知ったのだが、XslTransformクラスが廃止されていた。
代わりは、XslCompiledTransformクラスだそうだ。
使い方は...、ちょっと違うみたい。

VSKeymacs80 (4)

| | コメント(3)

とりあえず、Ctrl-Gの問題は解決。
ESCキーのDOWN/UPを送信するようにしました。

ソースは、ここ

VSKeymacs80 (3)

| | コメント(0) | トラックバック(1)

うーん、使っていると、少しストレスを感じる箇所があるね。
VSKeymcas71の方がストレスを感じないな。
やっぱり、DTEを操作するより、キーボードメッセージで制御した方がいいのかな。

今、不満に感じるのは、Ctrl-Gの挙動。
本来なら、IntelliSenseやツールチップが消えてほしいのですが、残ってしまうこと。

とりあえず、VMWare 5.5

| | コメント(0)

とりあえず、VMWare 5.5にしてみた。
仮想ディスクは、5.0互換のようだ。
ただ、VMWare Toolsはバージョンアップしているので、ドライバーは入れなおさないといけない。

仮想CPUを2に増やすと、当たり前だけど、HALが切り替わるため、ゲストOSは再起動が必要になる。
確かに、HALがMP版に切り替わると、ブート時のCPU負荷が倍になりますね。

で、速くなったかといえば...???。(笑)

VSKeymacs80 (2)

| | コメント(0) | トラックバック(1)

実際使っていたらいろんな問題が見つかりました。
そんなわけで、バージョンアップしました。

バイナリは、ここ
ソースは、ここ

VSKeymacs80

| | コメント(1) | トラックバック(1)

Visual Studio 2006でキーバインドにEmacsが追加されましたが、かなり癖があります。
慣れようと思ってかなり使い込んだが、どうしても許せないのが、
・選択領域のクリップボードへの転送が間違いなくバグっている。
 クリップボードをモニタリングするとよく分かる。
 テキストウィンドウを開いた直後はまだいいが、編集をかなりしていると完全に挙動が変になる。
・テキストが選択されている状態で、Pasteする(Ctrl-Y)と、入れ替えができない。挿入されてしまう。
 これはVS6のEmacsモードもそうだった。
・Emacsキーバインドにすると、他のショートカットも変わってしまう。
 他人の環境で作業するときにかなり困る。
 日本語キーボードになるだけでも困るのに...。

そんなわけで、WindowHookを使ってEmacsキーバインドを実現するアドインを作ってみた。
このフックは、テキストウィンドウだけに反応する。
XKeymacsとは違って、アドインなのでDTEのオブジェクトモデルを操作する。

使いたい人は、ここからどうぞ。
My Documents\Visual Studio 2005\Addins
に展開するだけです。
ソースコードは、、ここです。
日本語版RCでビルドしているので、それ以外の人は自分でビルドした方がいいでしょう。

オイラの必要なキーバインドしか実装していないのと、
オイラ自身、まだ使っていないので、バグはあるかと思います。ご了承を。


VS2003までは、アドインはCOM化してレジストしないといけなかったのですが、
VS2005からxcopyだけになりました。さすが...。

VTの性能

| | コメント(0)

日経バイト12月号に、VTでVMWare 5.5RCを使ったときの性能が載っていました。
やっぱ、劇的に速くはならないのね。

VTを使うと、ファイルI/O性能はかなり劣化するらしい。
理由は、通常のVMWareでは、仮想ディスクがファイルになっているので、
比較的連続した領域に確保され、シークコストが減るかららしい。

日経バイト、日経Windowsプロが年内で休刊されることを初めて知った。
11/1に発表があったらしい。

ギョギョギョ! 購読雑誌が2つも減ってしまった。
日経NETWORKは、中身がないのに残るのか...。

店頭で雑誌を眺めていると、素人向け雑誌だけが残っていくように感じる。
読みたい雑誌が最近ないんだよね...。


Software Design
ざっと、眺めるだけ。流行をつかむにはいい。

UNIX MAGAZINE
面白い記事しか読まない。
けど、Webで「UNIX MAGAZINEの×月号に載っているよ」なんて引用されることがあるので、購読しているだけ。
というか、連載が長すぎて、単月では買えない。

日経NETWORK
最近、ネタ切れしているな、この雑誌。
この手の本、ネタがないと、いつもプロトコルを説明しているんだけど、「もういい」って感じ。

.NET Magazine
吉田氏の記事が一番面白い。
素人ネタがおおいけど、逆にVSの機能を知ったりするきっかけになるね。
コードを書かないプログラミングはあまりしないから、知らない機能があったりする。

Java World
ほとんど読んでない。
次から次へと出てくるソフトを取り上げるのはいいんだけど、使うわけじゃないし。

日経WinPC
トイレ雑誌になっている。

.NET 2.0JのXMLドキュメント

| | コメント(0)

VS2005 RC日本語版で入れた.NET Framework SDK 2.0 日本語版のXMLドキュメント、
 %windir%\Microsoft.NET\Framework\v1.1.4322\JA
にインストールされますが、みてびっくり!というか笑っちゃう。
英語でもなければ、日本語でもない。えぇぇ!?

どこで作っているんだ!?
それとも、他の言語版からそのまま持ってきてビルドしたってか?
ありゃ、あと1ヶ月かかるわ。そりゃ。

で、気づいたんだが、
.NET 1.xのときは、英語版のXMLドキュメントは日本語版でも含まれていたが、
.NET 2.0では見当たりませんな。何でじゃろ?
入れてくれないと困るんだけど...。

VS2005 R2

| | コメント(1)

VS2005といっても、Virtual Server 2005のこと。
Standard Editionが$99になったということで、いろんなブログで騒がれていますな。
MSDN SubscriptionならStandard Editionを開発用に使えるらしい。

R2で何が変わるかというと、R1を知らないからようわからないが、
・4CPUまで使える
・性能が上がった
・64ビットホストをサポート
・Linuxをサポート
・クラスタリングが組める?
64ビットゲストはサポートしないようだ。

オイラに関係しそうなのは、4CPUと性能だけ。
VMWareから移行するかどうか。

Virtual PCからVMWareにしたのは、
・XP SP2が極端に遅くなったこと。
バージョンチェックをしているようで対応する必要があった。
そんなものに付き合っていられない。
・VMWareの方が速く感じた
・VMWareはゲストが別プロセスで動作するので、
HT+2CPUの環境では、ゲストを複数起動しても速度低下が少ない

Virtual ServerはVirtual PCとは違うんだろうが、このあたりを評価しないと移行できないな。
やはり、VMWareの方が一歩先行っているな...。

VS Addinのウィザード

| | コメント(0)

プロジェクトで、Visual Studio Add-inを選択すると、ウィザードが起動してくる。
すべてをデフォルトにして完了させると、返ってきません。応答なしですな。
メモリの増減がないし、ハンドルは1個減ったり増えたり、完全無限ループの中に。

C#でもVBでもC++/CLRでもC++/ATLでも駄目。
どないなっているんだ!

ボロボロじゃないか!VS2005。
そりゃ、SP1を予定しないとな...。

(英語版のOSなら動いたりして...)

DAEMON Tools 4.0

| | コメント(1)

窓の杜によると、
リリースが遅れていたDAEMON Tools 4.0がついにリリースされ、
アドウェアが標準でインストールされることになったとのこと。
インストール時にアンチェックすることはできるらしい。
記事によると、「無料でサポートを続けていくため」にアドウェアを同梱したらしい。

うーん、これだけ有名なソフトですら、シェアウェアで食えないのか...。
シェアウェアで食べていけるソフトってどのぐらいあるんだろうか。
食べていけないまでも、MSDNの年間契約費ぐらい+ハードの減価償却分を稼ぐのはできないのだろうか...。

この辺は、が詳しそうだけど...。どう? > ぢ

CLIでは、アセンブリ、型、メソッド、フィールド、プロパティ、パラメータなどに属性を付与することができるが、
CLI 2.0では、ジェネリックパラメータにも付与できるようです。

KAMEプロジェクトが完結

| | コメント(0)

IPv6プロトコルスタックを研究開発していた、KAMEプロジェクトが活動目標を達成したとし、完結宣言をしたそうな。
おいらは、結局、動く亀さんを見ていない(恥)。

最近は、IPv6なんてのも聞かなくなったなぁ。
UNIX MAGAZINEくらいにしか出てこない...。

さて、IPv6のパケットがオイラの所に届くのは何時のことになるだろうか。
ISPが普及にむけて努力しないと、絶対普及しないと思うんだけどな。
IPv6で追加料金取っているようでは駄目ですな。

CustomAttributeData

| | コメント(0)

PEファイルのメタデータ情報にあるCustomAttributeに関する情報を取得したく、
意味不明なECMA-335の仕様書を眺めながら、悪戦苦闘すること、1週間以上。

.NET 2.0にSystem.Reflection.CustomAttributeDataというクラスを発見。
がーん、やりたかったことが提供されているではないか!

俺の時間を返せ!
これも、VS2005の日本語版が遅いからだ! > みゃぁくろそふと


メタデータの物理構造などが理解できたのは良かったが、割に合わない!(涙)

WinDevMag 2005-11号

| | コメント(0)

翔泳社のWindows Developer Magazine 2005年11月号の記事について。
「”もしも”のときのデバッグ技法」を読んでいて、うん?と思うことがあった。

内容は、.NETで採用されたDisposeデザインパターンについての説明だが、
問題は、P.172に記述されている「解放処理には同期が必要」である。

簡単にいうと、処理用のスレッドとGC用のスレッドがあるので、
Disposeメソッドを呼び出している最中に、GCが発生すると問題だ。
だから、同期をしないさいと。

けどね、
あるスレッドが、Disposeを呼び出しているということは、
そのスレッドが、そのオブジェクトの強い参照を持っているわけで、
このような状態で、GCが発生しても、このオブジェクトはGCの対象には決してならない。

だから、Disposeでの同期は不要だ!

IE Developer ToolbarRefresh

| | コメント(0)

Internet Explorer Developer Toolbar Beta 1 Refreshが出ました。

バカクル 10g XE

| | コメント(0)

バカクル、じゃない、Oracleが10g Express Editionを年内にリリースするらしい。
1CPU/1GB/4GBの制限付だが無料だ。
制限については、SQL2005と同じですね。

バカクルはあまり好きじゃないですが、いや、嫌いですが、
今回の件については、素直に歓迎します。