2005-01-01から1年間の記事一覧

抽象化の果てに

2005-12-30 以前、オブジェクト指向神話を揶揄して書いた文章が引用されていたのでちょっと捕捉。書いた場所は、ここではないので日記を探しても見つかりません。ごめんなさい。抽象化は人の使う強力な道具です。モデルを使うことで複雑な問題を分かりやすく…

GUIアプリの自動テスト

NUnitForms : An NUnit extension for testing Windows Forms applications. NUnitFormsなんてものがあったんですね。テストだけでなくGUIアプリにマニュアル操作とオートモードなんか付けたりとか、違う使い方してしまいそ。(^^;株式会社アークウェイ – Arc…

コードの重複

http://www.redhillconsulting.com.au/products/simian/ アセンブリからコードの重複箇所を調べるツールらしい。面白そうなので今作っているパッケージのアセンブリを食わせてみました。結果は、 Found 12 duplicate lines in 2 blocks in 1 files Processed…

NWiki on SQL Server 2005 Express Edition

Wikiも.NETベースなのが欲しくなったので探してみたら、NWikiを発見。早速、インストールしてみたのですが失敗。どーやらSQL Server 2000/MSDE2000向けみたい。ただ、スクリプトの転けているところがデータベースとユーザの作成だったので、これなら試行錯誤…

Bug Tracking System

BTSを導入しようと思い立って、色々探してみることに。以前、影舞をチェックしていましたが、うちの日記的にはやっぱ.NETベースでしょう、ということで探しているとgeminiを発見。しかも、2005-12-27 ジェミニ欲しくなった!(`ω´) やねうらおさんも、ご推薦…

ジョエルテスト

ソースを管理してる? -> はい ワンステップでビルドできる? -> はい デイリービルドしてる? -> はい バグデータベースはある? -> はい(Excel管理だけど・・・) 新しいコードを書く前にバグを直している? -> いいえ アップデートされているスケジュール…

ルールが変わったんだよ

・Types should not extend certain base types For .NET Framework version 1, it was recommended to derive new exceptions from ApplicationException. The recommendation has changed and new exceptions should derive from System.Exception or one …

quick sort

List comprehensionsがサポートされたのでクイックソートを書いてみる。 def sort (l : list [int]) { | => | x::xs => sort($[y | y in xs, y < x]) + [x] + sort ($[y | y in xs, y > x]) } def lst = [9, 1, 2, 8, 3, 7, 4, 6, 5, 0]; System.Console.Wri…

Ranges

List comprehensions内で...を使って範囲指定が出来るようになったみたい。 [ 開始 ... 終了] または、 [開始, 次の値 ... 終了] こちらだと、次の値-開始がステップ値になります。ってコード見た方が早いですね。 using System; Console.WriteLine ($[ x | …

久々に読み物を

Joel on Software作者: Joel Spolsky,青木靖出版社/メーカー: オーム社発売日: 2005/12/01メディア: 単行本購入: 18人 クリック: 371回この商品を含むブログ (451件) を見るまだ、最初の数ページしか読んでいませんが面白い気が。Web版はこちら

どこが良いのC#

昨日の続き。Javaと比較するとdelegateやstruct、anonymous methodにgenericsのランタイムサポートなどがありますが、機能面でのアドバンテージよりも、そこそこのコストで大抵のことが出来るバランスの良さが好ましいです。機能だけを問題にするのなら、Man…

リスト内包表記

・List comprehensions Pythonなどでお馴染みのやつ。ほんと、何でもサポートするなぁ。(^^;

12/20

・IronPython 0.9.6 released そーいや、IronPythonだとVB9の動的識別子が実現出来る気が。ちょっと実験してみようっと。

IronPythonと動的識別子

VB9の動的識別子ってこういう動作でいいのかな? hw = 'Hello World' # like as Dynamic Identifiers in VB9 ss = getattr(hw, 'Split')(' ') # VB9: ss = hw.("Split")(' ') for s in ss: print s # -- result -- # Hello # World # --

どこが良いの.NET

昨日のmono meetingでJavaに比べてC#の良いところは何ですか?と質問されて、「特には・・・」とあんまりな回答を返してしまいましたが、正直な感想だったり。(^^; 以前はもーちょいC#好き好きだったのですが、最近は色々な言語を節操なく使っている所為で、…

.NETで開発

プロフィールに書いてある通り、いつになったら.NETで仕事が出来るのか分からない状況です。2002年から.NET&C#の勉強していたのに、先行してやっていた意味が無くなってしょんぼり。もう限界なので自宅で業務パッケージの.NET版を組み始めました。嗚呼、VC+…

12/19

・http://msdn.microsoft.com/msdnmag/issues/06/01/CLRInsideOut/default.aspx The good news is that part of this problem is solved in the .NET Framework 2.0—regular expressions are compiled using Lightweight Code Generation, which allows the …

mono meeting

mono meetingから帰還。参加者のほとんどが初対面のはずなのに、全然そんな雰囲気がありませんでした。(笑) 英語が喋れないのでどーなるかちょっと不安でしたが、海外の方が皆、日本語が話せて良かったというか、情けないぞ自分って感じです。(^^; また機会…

foreachの展開

C#

Array(の派生)クラスはforに展開されるんですね。気づきませんでした。(^^; using System; using System.Collections; static class Program { static void Main () { int[] arr = { 1, 3, 5, 7, 9}; foreach (int n in arr) Console.WriteLine (n); // fore…

12/17

・Standard ECMA-372 C++/CLI Language Specification 今のところ実装はMSのしかありませんが、Unix系のプラットフォームでも使えるようになって欲しいですね。

yieldその後

結構、使えるようになってきた? using System; using System.Collections.Generic; class Fib : IEnumerable [int] { mutable max = 0; public this (n : int) { max = n; } public GetEnumerator () : IEnumerator [int] { mutable (a, b) = (0, 1); while…

Code Access Securityその5

CASについて分かってきたつもりだったのですが、また分からなくなってしまいました。CASはどのような場合に使えば良いのでしょうか。例えば、どこかから使えそうなライブラリ(仮にmalicious.dll)を見つけてきたとします。しかし、malicious.dllは悪意のある…

Code Access Securityその4

今回は解説ではなく、個人的な疑問について。(^^; [assembly: FileIOPermission (SecurityAction.RequestMinimum, Read=@"c:\home")] FileIOPermission及びReadはC:\homeに対する読み取り権限を、RequestMinimumはそれが必要条件であることを意味しています…

Code Access Securityその3

今回はコードグループについてです。先ずは各セキュリティポリシーのコードグループを見てみましょう。 Visual Studio 2005日本語版RCを入れてしまったので、今回は日本語になってしまっていますが気にしないでください。(^^;UserとEnterpriseのコードグルー…

Code Access Securityその2

CASを理解するには、まず、セキュリティポリシーの仕組みを理解するのが近道です。ポリシーの設定は.NET Framework 2.0 Configurationツールから行います。(コントロールパネル>パフォーマンスとメンテナンス>管理ツール>Microsoft .NET Framework 2.0 Co…

はてなRSS

http://r.hatena.ne.jp/akiramei/ ちょっと使ってみることに。

yieldのサポート

yieldの実装が開始されたようです。 using System; using System.Collections.Generic; class Foo : IEnumerable [int] { public GetEnumerator () : IEnumerator [int] { yield 5; yield 3; yield 1; } } foreach (n in Foo ()) Console.WriteLine (n); /* …

Code Access Security

初めてCode Access Security(以降CAS)の説明を見たとき、全くピンと来ませんでした。CASを知らなくてもプログラムが動くので、特別意識しないのが理由の1つではないでしょうか。*1ここに、ファイルを開いて閉じるだけの単純なコードがあります。 using Syst…

12/4

・http://www.microsoft.com/japan/msdn/sqlserver/selfstudy/(via om's System) SQL CLRに興味があるので、SQL Serverの勉強してみようかな。

ファイル署名ツール

signcode.exeを使って署名しようしたらNET2.0では廃止されていて、signtool.exeを使えとのこと。signcodeは $ signcode -spc my.spc -v my.pvk my.dll こんな感じだったのでsigntoolも $ signtool sign /f my.spc /csp "Microsoft Strong Cryptographic Prov…