タグ

ブックマーク / nyaruru.hatenablog.com (10)

  • なぜ C# でメソッドチェインが楽しいのかを考えてみた - NyaRuRuが地球にいたころ

    未だにモニャド (失礼,かみました) が何なのかよく分かってないんですが,何となく分かってきたような気もするので,とりあえず何か書いてみる試み.とはいえよく分かっていないかもしれない言葉で書くのは怖いので,以下では C# の言葉で何が楽しいのかを書いてみることにしますよ. LINQ における interface の使い方は今までとちょっと違う Java 以来 (もっとも,私にとってこれは COM 以来の,ですが) の「interface の時代」にプログラミングするときに,私の関心は主に次の 2 点に集約されていました. いま考えているこのクラスはどんな interface を実装するか? いま考えているこの処理を行うためには,どんなオブジェクトを受け取って,それはどんな interface を備えていれば必要十分か? 例えば ArrayList は IList だよねとか,このアルゴリズ

    なぜ C# でメソッドチェインが楽しいのかを考えてみた - NyaRuRuが地球にいたころ
  • 拡張メソッドと不思議なパターンマッチ - NyaRuRuが地球にいたころ

    あんまり知られてなさそうな,C# 3.0 の不思議な世界. 不思議なパターンマッチ 例えば次のような拡張メソッドを考えます. public static string Hey<T, U>(this IDictionary<T, U> dict) where U : IEnumerable<T> { return "Hey!"; } この拡張メソッドは,インスタンスが上記パターンに該当するときだけ使える変なインスタンスメソッドのように振る舞います. 例えば Dictionary<int, int> は上記パターンを満たさないので,Hey は IntelliSense のリストに現れません.しかし Dictionary<char, string> であればパターンを満たすので,Hey が IntelliSense のリストに現れます. これはちょっと画期的なことです. 従来の C# では,型引

    拡張メソッドと不思議なパターンマッチ - NyaRuRuが地球にいたころ
    glcs
    glcs 2008/03/28
  • ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ

    過去の関連記事 Vista のファイルコピーが遅い件について 前回記事 記事紹介: Inside Vista SP1 File Copy Improvements (1) 記事紹介: Inside Vista SP1 File Copy Improvements (2) それではいよいよ最終回にしてメインディッシュ.記事紹介から離れてこの件を深く掘り下げていきます. Cached I/O vs Non-Cached I/O revisit Cached I/O をオートマ車に喩えるなら,Non-Cached I/O はまさにマニュアル車です. 両者の大きな違いは,どれぐらいのサイズのデータを,どれぐらいの期間メモリ上に保持するかを自動で決めるか手動で決めるかというところです.もちろん後者の方が「理想的な状況」でのパフォーマンスは上になります.似たような対立軸はあちこちにありますね. Cac

    ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ
  • 記事紹介: Inside Vista SP1 File Copy Improvements (1) - NyaRuRuが地球にいたころ

    ZDNet の翻訳記事より.『「Vista SP1」対「XP SP2」ふたたび--Windowsベンチマーク対決第2弾』 最初のベンチマークテストに寄せられた主な批判の中に、ファイルコピーの際、見えない部分でVista SP1とXP SP2の動きが違うという事実を、私が見過ごしているというものがあった。この違いはハードディスクへの書き込み時のキャッシュに由来するもので、XPはファイルをキャッシュするのに対し、Vistaの標準設定では書き込み時のキャッシュは無効になっている。加えて、ファイル転送のプログレスバーの仕様が異なり、XPとVistaでは挙動が異なることが、事態をさらに複雑にしている。Vistaではキャッシュがディスクにコミットされた時点でファイルコピーの経過を示すダイアログボックスが消えるが、XPではキャッシュのコミットが待ち状態であってもダイアログが消える。つまり、XPは速く「見

  • C#, DLR AST, meta programming - NyaRuRuが地球にいたころ

    Ask the speakerで波村さんとMVPの方々とお話することができました!! (そーいうとこだからと突っ込まれちゃいますが、、いや、嬉しくて) そして! あのid:NyaRuRuさんが 僕だけの為に、ノートPCを開いてコードの説明をしてくれました>< こちらこそありがとうございます.Y Combinator のときは大変勉強になりました, というわけでお礼もかねてその辺のお話でも. Expression Trees ノート PC を開くきっかけは,id:yuji1982 さんが最近 C# 3.0 の新機能,Expression Trees に挑戦されていると仰っていたことです.Expression Trees がどんなものかは,++C++; 管理人さんの記事 を読んでいただくのが分かりやすいかと思いますが,関数型言語で言うところの quote です. 通常 C# コンパイラは,ソー

    C#, DLR AST, meta programming - NyaRuRuが地球にいたころ
  • あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ

    古川さんの書かれていたコメントを読んでいて,もう一点思い出したので書いてみます. 楠さんの指摘は当たっているけれど、ハズレでもあるのは..私はIEにおいてもユーザー辞書を参照できるようにいじっているはずで...銀行の口座番号や航空会社のマイレージ番号をユーザー辞書登録していたのが、IE下では使えないので、FirFoxを使ってアクセスしていた...それも、IEで辞書登録をすると[Windowsが認めた正規アプリではないので、ユーザー登録ができません」というお馬鹿のエラーが出るのに辟易して、パッチを当ててユーザー辞書が使えるようにしているのでありました。というわけで、IE環境とWindows のアプリで変換効率の結果が異なることは、ユーザー辞書の禁止と菅家ないと思われます。 確かに,ユーザ辞書を使えなくするという保護形態は,セキュリティ対策として受け入れるべきかよく分からないところがあります*

    あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ
    glcs
    glcs 2008/02/18
  • C# うわさ話 - NyaRuRuが地球にいたころ

    あくまで噂ですよ,噂.決して鵜呑みにはなさいませぬよう. Anders は AOP がお嫌い イベント会場等で見かけても,「partial method って AOP ですよね?」みたいな質問はダメ,絶対,という噂.まあ実際はイベントだとニコニコ応対してくれますけどね. Anders はクエリ式よりもドット表記の関数呼び出し形の方がお好き from ほにゃららはあまりお好きでない模様.じゃあなぜクエリ式を導入したのかと言えば,関数呼び出し形で join を書くとあまりにも不格好なため,という噂.Linq to SQL が嫌いで Linq to Object が大好きという噂の Luke Hoban 師は,クエリ式を愛してそうですけどね. C# 3.0 で自動プロパティが入ったのは Anders の機嫌が良かったから 毎回要望として挙げられながら 10 回以上却下され続けてきた自動プロパティ

    C# うわさ話 - NyaRuRuが地球にいたころ
  • 『【13-B-7】言語の現在・過去・未来を語る』話題メモ - C# side - NyaRuRuが地球にいたころ

    Developers Summit 2008『【13-B-7】言語の現在・過去・未来を語る』のメモ.C# side. 誰かメモを公開してくれてるかなぁと勝手に期待してましたが,裏番組に id:amachang の『【13-D-7】JavaScript Tips & Technique』が入っていたせいもあってか今のところあまり見ないですね.というわけで憶えているうちに少し書いておきます.なお,これで全部じゃないのと,話題に上った順序とは必ずしも一致していないことに注意.あちこち話題が飛びながらまったり聞いて楽しむ感じの内容でした.「ラジオの深夜放送みたいだった」という渋木さんの表現はまさにぴったり. 以下の内容で興味を持たれた方は,当日聞いていた人を適当に捕まえて詳細を聞き出してみて下さい. 波村さん自己紹介 C# との出会い インターンで Microsoft に行ったのが出会い 「Win

    『【13-B-7】言語の現在・過去・未来を語る』話題メモ - C# side - NyaRuRuが地球にいたころ
    glcs
    glcs 2008/02/16
  • Windows Vista Rules for Enabling Windows Aero With Guidelines for Troubleshooting - NyaRuRuが地球にいたころ

    Windows Vista Rules for Enabling Windows Aero With Guidelines for Troubleshooting』の流し読みメモ. Desktop Composition の基条件 プライマリ・グラフィックス・アダプタが DirectX 9 をサポート プライマリ・グラフィックス・アダプタがハードウェアで Pixel Shader 2.0 をサポート Windows Vista Display Driver Model (WDDM) グラフィックス・ドライバで動作している 色深度 32 bpp プライマリ・モニタのリフレッシュレートが 10 Hz 以上 グループ・ポリシでコンポジションが有効になっている 自動適用条件 DWMは上記の 6 つの条件に加え,以下の条件が満たされていると自動的にコンポジションと透明感を有効にする. OS が

    Windows Vista Rules for Enabling Windows Aero With Guidelines for Troubleshooting - NyaRuRuが地球にいたころ
  • C# 2.0 匿名再帰関数 - NyaRuRuが地球にいたころ

    まずは C# 2.0 ネタから.匿名関数で再帰も使いたいですよね,という話. using System; using System.Collections.Generic; using System.Text; namespace RecursiveAnonymousMethod { class Program { static void Main(string[] args) { Converter<int, int> func = null; func = delegate(int i){ return i<=0 ? 1 : i * func(i - 1); }; Console.WriteLine( func(10) ); } } } 菊池さんが以下の記事で書かれているような内部実装を知っていればなんてことはない話です. 進化したC# 2.0の状態管理、匿名メソッドとイテレータ ht

    C# 2.0 匿名再帰関数 - NyaRuRuが地球にいたころ
  • 1