2006年09月30日

IE7 RC1

   このエントリーをはてなブックマークに追加 Clip to Evernote
IE7 RC1入れてみました。
今使っているタブブラウザと微妙に操作方法がことなるので、面喰います。
最後のタブを Ctrl+Wで閉じると、IEそのものが終了してしまうのはなんとかしてほしい。タブが増えすぎたときに、Ctrl+Wで、連続でタブを閉じていると、IEも終了してしまう(T T)。

いろいろいじっていたら、「他のタブを閉じる」ってのがあった。なるほど、これを使えば良いんですね。

ところで、IE7が広まったら、一気に、Liveサーチの利用率が上がるんだろうな。
うーーん、さすがマイクロソフト、したたかですね。
  

Posted by gushwell at 10:33Comments(0)TrackBack(0)

2006年09月27日

.NETリモーティングのリースタイム

   このエントリーをはてなブックマークに追加 Clip to Evernote
.NETリモーティングにおいて、もし、
RemotingConfiguration.Configure(configPath,false);
として、構成ファイルの情報を利用しているのならば、
リースタイムについても、構成ファイルで指定可能。

<system.runtime.remoting>
<application>
<lifetime
leaseTime="10M"
sponsorshipTimeOut="2S"
renewOnCallTime="5M"
leaseManagerPollTime="10S"
/>
</application>
</system.runtime.remoting>

みたいにかけば、以下のようなコードを書く必要はない。

LifetimeServices.LeaseTime = TimeSpan.FromMinuts(5);
LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(2);
LifetimeServices.RenewOnCallTime = TimeSpan.FromMinuts(5);
LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(10);
  
Posted by gushwell at 22:22Comments(0)TrackBack(0)

2006年09月25日

Enterprise Instrumentation Framework (EIF)

   このエントリーをはてなブックマークに追加 Clip to Evernote
Event Tracing for Windows (ETW) の存在をMSのコンサルの方に教えてもらったのだが、いかんせん、.NETでの情報が少ない。
どうしようか困っていたのだが、
.NET アプリケーションのパフォーマンスとスケーラビリティの向上 第 15 章 「.NET アプリケーション パフォーマンスの計測」
に、
「EIF は ETW、Event Log サービス、WMI の機能をカプセル化します。」
との記述があった。
ということは、EIFを使うことで、ETWの機能を利用できるってことかな。

ただ、Enterprise Instrumentation Framework (EIF) が何なのかさっぱりわからない。
EIFの情報も日本語ではほとんどなく、唯一あるのは
How To 情報: EIF の使用方法
だけの状態。

とりあえず、この情報をもとに、調査してみようと思い、EIFをダウンロードしようとしたら、アップロードの日が2003年となっている。どうも .NET Framework2.0には対応していないようだ。
EntLib2.0もETWには対応していないようなので、ちょっと行き詰ってしまった。  
Posted by gushwell at 08:15Comments(2)TrackBack(0)

2006年09月21日

Microsoft Expression Web Desinger CTP

   このエントリーをはてなブックマークに追加 Clip to Evernote
Microsoft Expression Web Desinger CTP をダウンロードし動かしてみる。

今、ちょうど編集している、HTMLファイルがあったので、それを読み込んでみた。
特に問題はなさそうだ。
今、使っているのは、DreamweaverJ4 でずいぶん古いものなので、しばらく使ってみて、良さそうだったら、乗り換えようかな。

操作性で不満なのは、ドッキング方法が、VS2005のインターフェースと違う点。
同じにしてくれればいいのに。

  
Posted by gushwell at 08:00Comments(0)TrackBack(0)

2006年09月20日

副作用のあるメソッドはどれ?

   このエントリーをはてなブックマークに追加 Clip to Evernote
しつこく、副作用について考えている。
以下のメソッドのなかで、副作用のあるメソッドはどれなんだろう。

public int Multiple(int x, int y) {
return x * y;
}

public int Divide(int x, int y) {
a = x / y; // a は、フィールド
return a;
}

public int Add(object o) {
_list.Add(o);
return _list.Count; // _list は、フィールド
}

public void Remove(object o) {
_list.Remove(o); // _list は、フィールド
(int)(OtherClass.GetInstance()).Number = _list.Count;
}

public void Inc(MyClass obj) {
obj.NumBer = obj.Number + 1;
}

public void Write(string s) {
Console.WriteLine(s);
}


こう考えると、いかに「副作用」という言葉をいい加減に使っていたかが分かる。
僕の感覚だと、Remove と Inc の2つが、副作用のあるメソッドだ。でも、Webページを検索してみると、どうも他の人の考えは違うような気がする。いったい、どれが副作用のあるメソッドなのか、どなたか教えて!  
Posted by gushwell at 00:11Comments(5)TrackBack(0)

2006年09月15日

副作用

   このエントリーをはてなブックマークに追加 Clip to Evernote
どうも、プログラミングの世界では、「副作用」という言葉は、本来の意味とは異なる意味で使われているらしい。
大辞林には、
治療・予防・診断などのために用いた医薬品の本来の効果と異なる作用。人体に有害な作用であることが多い。副反応。
と載っている。

つまり、本来の効果とは異なる作用が、副作用なわけだ。
しかし、
filestream.Write("hogehoge");
は、ファイルに書き出す目的のメソッドだけれど、ファイルIOが伴うので、副作用があるメソッドらしい。

また、ある人によれば、
public void SetMoge(string moge) {
this.moge = moge;
}
も、状態が変更されるので、これも副作用のあるメソッドなんだそうだ。
でも、これって、上記Writeメソッドも含め、本来の効果のはず。
これを副作用というとなると、副作用のないメソッドなんて、状態取得メソッドと純粋な計算メソッド以外なくなってしまう。

プログラマが使う用語はほんとわけわからん。
って、僕もプログラマなんだけど....
  
Posted by gushwell at 22:25Comments(2)TrackBack(0)

2006年09月13日

2つのコンピュータで同一設定のパフォーマンスログを採る

   このエントリーをはてなブックマークに追加 Clip to Evernote
Windowsのパフォーマンスのカウンタログを2つのコンピュータで採取する場合、まったく同じ項目を採取したいことが、たまにあります。

このとき、パフォーマンスカウンタの 「新しいログの設定...」でカウンタを追加して行くのですが、同じ操作を2つのコンピュータで行うのは、面倒くさいし、注意力散漫な僕は間違えてしまいます。

そういったときは、作成したカウンタログの設定を「名前をつけて保存...」で html ファイルに保存します。

その後、この html ファイルをエディタで開き、サーバー名の箇所を、もう一方のサーバー名に置換し保存。

もう一方のコンピュータでパフォーマンスモニターを起動し、この置換したファイルを、「既存の設定から新しいログの設定...」で読み込めばOKです。  
Posted by gushwell at 20:00Comments(0)TrackBack(0)

2006年09月11日

sys.dm_db_index_physical_stats

   このエントリーをはてなブックマークに追加 Clip to Evernote
データベース(SQL Server 2005)で、データの挿入削除を繰り返していると、インデックスの断片化が
発生しますが、そのときの情報を取得するのがこのsys.dm_db_index_physical_stats関数。

指定したテーブルまたはビューのデータとインデックスに関する、サイズおよび断片化情報を返します。
使い方はこんな感じ

SELECT * FROM sys.dm_db_index_physical_stats
(DB_ID(), OBJECT_ID('Persons'), NULL, NULL , 'LIMITED');

DB_ID() は、引数を省略すれば、現在のDBのIDが返ります。
OBJECT_ID には、テーブルやビューの名前を指定します。

OBJECT_ID(N'AdventureWorks.Production.WorkOrder')

のように、データベース名から指定してもOK。

3,4番目は、通常 NULL を指定しておけば問題ないと思います。

最後の引数は、LIMITED、SAMPLED、DETAILED のいずれかです。
テーブルまたはインデックスの断片化レベルのサイズをすばやく計測するには、
LIMITED モードを使用します。LIMITED モードは最も高速です。
  
Posted by gushwell at 22:06Comments(0)TrackBack(0)