タグ

ブックマーク / zecl.hatenablog.com (8)

  • とある契約の備忘目録。契約による設計(Design by Contract)で信頼性の高いソフトウェアを構築しよう。 - Bug Catharsis

    「より堅牢で正確性の高いソフトウェアを作りたいぜ!」と願う.NETデベロッパーお待ちかねの、 契約による設計(DbC)をサポートするCode Contractsが.NET Framework4より利用できるようになります。 C#をベースとして契約による設計をサポートする「Spec#」を利用するという方法もありますが、 学習負担を軽減するためにと、マイクロソフトは言語を意識しなくても開発者が利用できるように、 Code Contractsとして.NET Frameworkで契約をサポートしてくれました。 これは、オブジェクト指向および、オブジェクト指向プログラミングが大好きな.NET開発者にとって、とても良い知らせです。 わたしも待ち望んでいたうちのひとりです。ありがとうマイクロソフト!!という気持ちでいっぱいです。 VisualStudio2010が4月12日(米国)にローンチされることが

    とある契約の備忘目録。契約による設計(Design by Contract)で信頼性の高いソフトウェアを構築しよう。 - Bug Catharsis
  • C#からOpenCVで顔を検出して"ゆっくり"してみよう - Bug Catharsis

    なにやら↓こういうのが流行っていたようですね。 元ネタ Perlでアニメ顔を検出&解析するImager::AnimeFace Yukkurizer - アニメキャラゆっくり化CGI 何かを受信(^o^)ノ *1 ゆっくりしてみよう というわけで、やつけで適当にC#でゆっくりしてみました。 C#やVB.NET、あるいはIronPythonなどでOpenCVを簡単に扱えるクロスプラットホーム.NETラッパーである*2、 Emgu CVというオープンソースのライブラリを使って顔を検出しています。 今回はOpenCVをインストールすることでデフォルト提供されている顔検出のhaarcascade(XMLファイル)を利用していますが、 アニメ顔を認識するように調教した学習させたhaarcascadeを使えば、元ネタと同等のことができるでしょう。 たいした内容ではありませんが、以下C#のサンプルコードで

    C#からOpenCVで顔を検出して"ゆっくり"してみよう - Bug Catharsis
  • いまさら聞けないSQL Server 2005のインデックス その4「フルテキストインデックス」 - Bug Catharsis

    フルテキストインデックス数百万行のテキストデータに対してLIKE演算子を含むクエリを実行すると、結果が得られるまで かなりの時間とコストを要してしまうことがあるが、フルテキスト検索を使用すると、非常に高速に検索を行うことができる。 char、varchar、nvarchar型のデータを格納する列に対してフルテキストインデックスを作成することができる。 また、Microsoft Wordドキュメントファイルなどのバイナリデータを格納する varbinary(max)列または、 image列に対してもフルテキストインデックスを作成することができる。 バイナリデータの検索に対しては、LIKE述語は使用することができないため、 フルテキストインデックスを検討するとよいだろう。 フルテキストインデックスをテーブルに作成するには、テーブルに一意でNULLが許容されない列が1つ必要となる。 また、フルテ

    いまさら聞けないSQL Server 2005のインデックス その4「フルテキストインデックス」 - Bug Catharsis
  • はてなハイクAPIを使ってみよう(LINQ to XML) - Bug Catharsis

    C#から「はてなハイクAPI (http://h.hatena.ne.jp/api)」を利用するサンプルを作りました。 他の言語のサンプルは割りとあるようですが、C#ではなかったようなので。 画像を添付した投稿については面倒くさいので直接はサポートしていませんが、 呼び出し側で頑張れば、画像を投稿することも可能なようになっています。 また、画像添付投稿以外のAPI操作については、ほぼサポートしています。 (取得データの扱いについては、LINQ to XMLでの利用を前提としています^^) HatenaHaikuクラス using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Xml.

    はてなハイクAPIを使ってみよう(LINQ to XML) - Bug Catharsis
    halabo
    halabo 2009/04/08
  • 動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成してみよう。 - Bug Catharsis

    C#で動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成 動的にDLL(ライブラリ)をロードするというシナリオは、意外と要求されることが多いのではないかと思います。 利用する関数があらかじめ明確になっているのであれば、そのまま直実装でも構わないのですが、 それが明確になっていないような場合、あるいは都度動的に変化するというような場合では、一筋縄にはいきません。 そんな場合は、P/Invokeなdelegateについても動的に生成することを検討してみるとよさそうです。 具体的な方法を簡単に説明します。まずWinAPIのLoadLibrary関数でDLL(ライブラリ)をロードします。 続きまして、アセンブリを動的に生成し、またそのアセンブリに動的にクラスを作成します。 その動的に作成したクラスについて、読み込んだDLLから関数ポインタを積んだメソ

    動的にDLL(ライブラリ)をロードしてアセンブリを作って、P/Invokeなdelegateを生成してみよう。 - Bug Catharsis
    halabo
    halabo 2009/02/23
  • C#で順列(Permutation)と組み合わせ(Combination)をすべて列挙してみよう - Bug Catharsis

    さて、いきなり少年メリケンサックですが、気にしないでください。帰らないでください。内容はまともです。 C#で順列(Permutation)を列挙する実装については、割と書いている人がいます。 でも、組み合わせ(Combination)を列挙する実装は、あまり書かれていないような気がする*1。 実際に自分で実装してみるとわかるが、自分のような脳のスペックが低いタイプの人間にとっては、 なかなかややこしくて面倒くさ〜い感じのアルゴリズムが要求され、とても頭が痛くなる。 しかも、パスカルの三角形ってどんなんだっけかなとか、高校数学の記憶すら怪しいのだから、もーねー。 以前、ロト6およびナンバーズ購入のための「俺専用数字選択方式くじ予想ソフト」とかゆー、 非常にしょっぱいアプリを作ったときに、順列や組み合わせを生成する必要に迫られました。 そのとき作ったしょっぱい2つのクラスを、少し修正して公開し

    C#で順列(Permutation)と組み合わせ(Combination)をすべて列挙してみよう - Bug Catharsis
    halabo
    halabo 2009/01/27
  • 型なしDataSetと型付DataSet、そして片想いORマッピング的な何か。 - Bug Catharsis

    ネタ元 山大@クロノスの日記 - アンチ型付DataSet派の自作ORマッピングより なぜ型付DataSetを使うのか、型なしDataSetは使わないのか 型付DataSetについては、嫌な思い出も少なくないので不満がないわけでもないのだけど、 常識的に考えて「型付DataSetを使うべきだよね。*1」というのは、もちろん知識として知っているつもり。 その理由は大きく3つあって、まずIDEのインテリセンスによってプログラミングの効率化が期待できること。 そして、コンパイル時に型チェックが行われるため、実行時の型変換エラーを未然に防げること。 また、コンパイル時に型が決定されているため実行時の列へのアクセスパフォーマンスが向上すること。 いずれも、システム開発をする上では生唾モノのおいしいメリットであるから、部分的に型なしDataSetを利用することはあるものの、 なるべく型付DataSe

    型なしDataSetと型付DataSet、そして片想いORマッピング的な何か。 - Bug Catharsis
    halabo
    halabo 2009/01/22
    DataSetについて、興味深い
  • ニコ動APIとLINQ to XMLでごにょごにょしよう - Bug Catharsis

    ニコニコ動画APIで動画情報とかサムネイルとかコメントとかFLVファイルとかいろいろ取得したりする 手抜きで作りかけの雑なC#のコードを今更ながらあげておきます。 いろいろダメなところ(手抜き)があるので、もし参考にするのであれば、そこん所ご注意ください。 そのうちリファクタリングしてうpしなおすかもしれません。 ニコニコ動画の動画情報とかサムネイルとかコメントとかFLVファイルとかいろいろ取得 using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Xml.Linq; namespace niconico

    halabo
    halabo 2009/01/15
  • 1