カメレオンのトルソ
そんなわけでうちの職場は大リストラだったわけですが、何の因果か残っちまいました。
gendarme
SebastienがCecilベースの新しいアセンブリ検証ツールをチェックインした。アセンブリをロードして、「ルール」に従っていない型を検出してくれる。ルールは自分でmanaged codeを書いて実装する。アセンブリはCecilを使ってcilのレベルで解析される。
これは主にコードアクセスセキュリティの実装に際して、セキュリティまわりの膨大なチェックをするために書かれたものなのだけど(と理解している)、このフレームワーク自体は、セキュリティ以外のチェックにも使える。たとえばIDisposableWithDestructorWithoutSuppressFinalizeRuleという(なげー!)クラスでは、
- 型がIDisposableか
- デストラクタを持っているか
- Dispose()の中でSuppressFinalize()を呼んでいるか
といったチェックが行われる。
まあ詳しくは彼がmonologueで書いてくれると思うけど、とりあえず先走ってみた。
オープンガイドブック OpenOffice.org 2.0
全内容がCreative Commonsライセンスで公開されている。すげー!! しかしOpenDocument形式でないのは何か理由があるのだろうか(笑
Sony, Rootkits and Digital Rights Management Gone Too Far
米国にも、SONYが何かやらかすと必ずその問題について書く人がいるそうだ。ていうか、inside Windows 2000を書いている人らしい(僕はWindows開発者ではないのでちっとも興味ないのだけど)。今回のrootkitについて詳しく解説してある。しかしコレは悲惨だな。
IsVirtual
そういえばしばらく前にうちのハッカーの面々と話していたのだけど、MethodBase.IsVirtualはなにげに素敵プロパティだ。
interface IFoo
{
void Foo ();
}
public class Test : IFoo
{
public void Foo () {}
public static void Main ()
{
System.Console.WriteLine (typeof (Test)
.GetMethod (“Foo”).IsVirtual);
}
}
詳しくはMSDNの説明を参照。
コメント
ladybug — 11/04/2005 12:35:33
まさか、False を返すのか? と思って実行したら True だった。
IL のレベルでの表現をある程度理解している人なら、これが False になることは絶対に期待しないですよね。
atsushieno — 11/04/2005 15:16:19
じゃあ僕はそれ以外の人ってことで(′ー`
System.CodeDom.CodeNamespaceImportCollectionのpublicメンバーがIListの実装でないことに疑問をもったのが端緒なんですが(明示的実装はinternal use扱いでメンバー一覧に表示されない)、IsVirtualプロパティのではなくてインターフェースの明示的実装にかかる問題ですね。