【C#】デバッガを非表示なメンバを作成する

デバッガに表示するためにToString()メソッドを実装したりDebuggerDisplay属性つけたりしますが、たまにフィールドとプロパティーが同じで無駄に冗長になることがあります。 こんな時です private long offset; public long Offset { get { return offset; }…

【VisualStudio】 デバッガで結果ビューを表示しようとするとエラーになる

IEnumerableを継承した独自クラスを作成しているとたまに結果ビューでデバッガがエラーを吐いたりすることがあります。 おかしいなと思ってforeachループを回してみるとなんの異常も見当たらず。エラーを吐かないバグはプログラマの天敵です。 例えば無限ル…

【雑記】優れた関数とは Part2

mikadoyuzuki.hatenablog.jp 【雑記】優れた関数とはの続きです。 つまり全てのデータが圧縮できるように自分より小さなデータの器を手に入れると、はじき出されるデータが必ず存在するのである。 ではどうして圧縮ソフトが存在し、多くの圧縮アルゴリズムが…

【雑記】優れた関数とは Part1

全ての動作は関数である。おもむろにこう書きだしてみよう。 時間ベースで考えれば、同じ解を返す関数なら素早いほうが優れた関数であると言える。 ここでは純粋に入力と出力のみにフォーカスをあてることとしよう。 では次に示す二つの関数はどちらが優れて…

【シンギュラリティ(技術的特異点)】人工知能は人類の後継者として新人類となれるのか

シンギュラリティ(技術的特異点)とは、 人間が人間以上の知能を持つ機械を作れた時、 人間は自分以上の知能を持つ機会を作れる。 作られた機械は人間ので出来ることは(人間以上の知能を有するため)出来る。 1,2より機械は自分の知能以上の機会を作ることがで…

【Linq】LinqがPull型の特性を生かしきれていない理由

Linqは非常に有力な考え方として世界に普及しましたが、ReactiveExtensionが普及した今考えると、非常に"もったいない"考え方であると私は思う。 理由を語るためにLinq(Pull型)とRx(Push型)のフローを可視化してみる。 これで分かるようにMoveNext命令は連続…

【雑記】関数名を考える時間が既に人生

プログラマの頭を悩ませるのは、アルゴリズムやデータ構造などではなく、往々にして関数名である。と私は思う。 目的の関数を表すいい英単語を探すのはなかなかに面倒くさい作業だ。日本語ですら数語で関数の説明をするのは骨が折れるのに。 後で意味がわか…

【アルゴリズム】SortedSet(平衡二分探索木)のインデックスアクセス

平衡二分探索木には様々なアルゴリズムが開発されている。私が実装に使っているのは赤黒木なのですが(というよりそれ以外は実装したことない)、たまにインデックスアクセスしたいことがあります。 二分木でインデックスアクセスしようとするとO(N)の計算量(※…

【WPF】Stringやintなどのシステム型をXamlで直接生成する。

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" x:Class="hogehoge" Title="test" Width="100" Height="100"> <ListBox Margin="10"> <ListBox.ItemsSource> </listbox.itemssource></listbox></window>

【WPF】Blend for Visualstudio 2015 で階層構造と名前空間の違うコードは読み込まれないバグ

Blend for Visualstudio 2015を使っていて、プロジェクト上のコードファイルの物理的階層構造と、その名前空間が一致しない時コンパイラが認識しない。 例えば、exsample.test 名前空間に存在するオブジェクトはexsampleプロジェクトのtestフォルダ上にコー…

【WPF】Toolkitが導入できない件

本家本元WPFToolkitは既にサポートが切れているらしく、最終リリースは2010年らしい。 皆使ってるだろうからこれでいいかーってNugetしたらChart系のコントロールが見当たらない。 そんな馬鹿なって今度は公式からインストーラーをダウンロードしてインスト…