タグ

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

  • いまさらASP.NET MVCのモデルバインダ入門あれこれ。MEFのカスタムエクスポートプロバイダーは設計の幅を広げる。自動拡張型カスタムモデルバインダプロバイダーを作ろう。 - Bug Catharsis

    http://www.asp.net/ ASP.NET MVC4 Betaがリリースされまして、WebAPIいいね!な今日この頃。誰が言ったか、これから求められるIT技術は、Web、クラウド、関数型言語の三柱らしいです。とは言っても、世の中にはさまざまな技術が溢れています。.NETerなわたしは月並みですが、ASP.NET MVC、Windows Azure、F#を追いかけるつもりです。まぁ、日進月歩の業界ですし、わたし自身飽きっぽかったりするので来年には違うことを言っているかもしれません。最近の私はと言えば、月9ドラマ「ラッキーセブン」でメカオタ少女茅野メイ役を演じている入来茉里さんのファンになりました。スピンオフドラマの「敷島☆珈琲〜バリスタは見た!?〜」も面白い。これからブレイクすること間違いありません。 それはさておき、ASP.NET MVC関連の記事はだんだんと増えてきています

    いまさらASP.NET MVCのモデルバインダ入門あれこれ。MEFのカスタムエクスポートプロバイダーは設計の幅を広げる。自動拡張型カスタムモデルバインダプロバイダーを作ろう。 - Bug Catharsis
  • 実はオブジェクト指向ってしっくりきすぎるんです! 不変オブジェクトのすゝめ。 - Bug Catharsis

    バグのないソフトウェアを作りたいお仕事では主にVB.NETとC#を。趣味のプログラミングでは関数型言語F#を利用しています。 私自身のF#スキル(関数型的な考え方)は、まだまだ実践レベルとはとても言えないシロモノだけど、 面白い発見と多くの可能性を感じられる言語なので、F#はさわっていてとても楽しい。 私はこれまでオブジェクト指向言語によるオブジェクト指向プログラミングをこよなく愛してきました。 というのも、「いかにバグを減らすか」、「バグのないソフトウェアを作ること」が私の最大の関心事だからです。 バグの多いコード、あるいは技術的負債の多いコードというのは、コスト的な問題があるばかりか、 開発者の身体や心までもを不健康にし、われわれに大きな不幸をもたらすことを経験的にわかっているからです。 わたしにとってオブジェクト指向技術は、それらの問題を防いだり解決をする手段として適した技術でした。

    実はオブジェクト指向ってしっくりきすぎるんです! 不変オブジェクトのすゝめ。 - Bug Catharsis
    kiyo_hiko
    kiyo_hiko 2014/04/02
    "ThoughtWorksアンソロジー" 「すべてのプリミティブ型と文字列型をラップする」
  • 圏論でアハ体験 - Bug Catharsis

    もう1週間以上前になりますが、Code2012という合宿イベントに参加してきました。いろいろな方との交流あり、温泉あり、クラウディアさんありと大変楽しかったので、ぜひ来年も参加したいです。 で、VBerのくせにそちらで「5分じゃわからないモナド - 圏論なんて華麗にスルー」というタイトルでLTをしてきました。なぜか、宴会の後にLTをやるという謎なタイムスケジュールとなっていたため、十分にアルコールが回った状態でお話をしました。時間通りにジャスト5分で話しきれたのは奇跡です。来年はそのあたり考慮してもらいたいかも...しれません。LTの後にいくつか質問をいただいて、モナドや圏やF#についてなんだか結構な時間追加でしゃべったような気がします。 LTの要点としましては、「モナドを使うのに圏論の知識は必要ない。」という意見はまったくそのとおりなのだけど、だからといって関数型言語を学ぶ人が圏論に触れ

    圏論でアハ体験 - Bug Catharsis
  • とある契約の備忘目録。契約による設計(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
    kiyo_hiko
    kiyo_hiko 2013/10/08
    「人が犯しうるミスを予め想定して設計することで、利用者に対して優しい製品となっています。性悪説を前提とすることで、良い結果が生まれています」
  • yield(いーるど)は、つまるところコルーチンなんだよね - Bug Catharsis

    今更感は否めないが、yield(いーるど)についてちょっとしたおさらいを。 yield(いーるど)はコルーチンである ご存知のとおり、yieldはC#2.0から主にイテレータの実装の簡素化を目的として導入された便利機能。 このyield キーワードは単体では意味を成さない。yield returnあるいはyield break とすることで初めて機能する。*1 このyieldステートメント記法およびその動作は、手続き型の実装に慣れたプログラマにとっては 少々異質に感じるかもしれない。なぜ異質に感じるだろうか?それはyieldがコルーチンとして振舞うからに他ならない。 ■コルーチン コルーチン(co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞co

    yield(いーるど)は、つまるところコルーチンなんだよね - 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
  • 1