C#」カテゴリーアーカイブ

.NET 関連のディープなネタ

Microsoft OCR をデスクトップのWFPアプリで動かす方法

巷ではGoogleのリアルタイム翻訳アプリが流行っているのだが、あいにく手元にある Android が古いので、それほど面白い画像が取れない。ので、Google Cloud Vision で OCR 機能を試してみたのだが、実は Microsoft OCR もあるよ、ってことで。 こんなものがある。 Windows.Media.Ocr namespace – Windows app development https://msdn.microsoft.com/library/windows/apps/windows.media.ocr.aspx?f=255&MSPPError=-2147217396&cs-save-lang=1&cs-lang=csharp#code-snippet-4 試してみると、Microsoft OCR も Google のそれ … 続きを読む

カテゴリー: 開発, C#, WinRT | コメントする

詰将棋のようにTDDでC#を学ぶ実験(2)

逆引き大全のほうは、サンプルに対して1tipsという制限があるので、あまり盛り込めないが、詰将棋 TDD のほう(あるいは「覚醒プログラム学習」)のほうは、1問(1プロジェクト)に対して、ごっそと覚えるべきことを詰め込んである。というか、クラスの構造とかファイルストリームとか別々に書くと面倒なので、ひとつのテストクラスにしてテストメソッドだけ分けるというスタイルにしている。 項目の出し方は、IDEF0 や五行を使っているのだが、そもそものネタは patterns & practices に則っている。パフォーマンス・チューニングをする上で、 CPU メモリ ストレージ(ファイルシステム) ディスプレイ データベース ネットワーク を考える。業務システムで何をするかによるので、何処かが「ボトルネック」になる。ボトルネックを解決する仕組みは「クリティカルチェーン」を参考にすればよいだろ … 続きを読む

カテゴリー: C#, TDD | コメントする

詰将棋のようにTDDでC#を学ぶ実験

「ハチワンダイバー」を通読したので、浦野真彦著「1手詰めハンドブック」を買いました。子供用にどうぶつしょうぎを買っている訳ですが、結構いけそうなので、それならば詰将棋を試してみようという次第です。自分で読むというのもあるけど。私は、7手詰め位でギブアップですね。 将棋とプログラミングは似ている プログラミングは、新しい問題を解決すると同時に、既存の問題を解決する手段でもあります。新しい問題ってのは、人工知能とかVRとか、新しい技術ですよね。なんらかの技巧を駆使して実現するわけですが、一方で、みずほ銀行リプレースのような既存の技術の積み重ねで成り立っているところもあります。所謂、社内の情報システムの構築なんかは、大抵はこの「既存の技術」の組み立てで十分だったりします。そのあたりを主な仕事にしていると、面白いか面白くないかは別として、仕事としてやっていけるかが重要になります。 それを将棋に例え … 続きを読む

カテゴリー: C#, TDD | コメントする

アリスは無限にプラダから猫を取り出す

アリスはプラダがお好き | Moonmile Solutions Blog http://www.moonmile.net/blog/article/alice-plada アリプラシリーズの第24弾めは、イテレーターの話…というか、とある林檎な国では for がなくなって for in だけになってしまったものだから、いやいや、配列とコレクションがごっちゃになってないか?と思って作ろうと思ったのだけど、横道に逸れてイテレーターになってしまったという訳。 最近のプログラム言語ではコレクションの全ての要素に対して何かやるときは、foreach を使う訳ですが(林檎の国では for in ですね)、これはコレクションの中身のすべてのアクセスするというだけで、特に順序は決まっていません。まあ、実装上は最初の要素からアクセスするんだけど、Javascript のように実はとびとびだった … 続きを読む

カテゴリー: 開発, C# | コメントする

アリスは System.Json に出会う

System.Jsonなるものが爆誕してた。https://t.co/sZY8lumbX3 — 高張大雅 (@taiga_takahari) 2016年9月14日 ということで、さっそくダウンロードして、無理矢理 .NET Framework のほうでビルドします。ええ、.NET Core じゃなくて、普通の .NET Framework に持って来るわけですね。 corefx/src/System.Json at master ・ dotnet/corefx https://github.com/dotnet/corefx/tree/master/src/System.Json から System.Json の src 以下をごっそり持ってきます。 Visual Studio 2015 でクラスライブラリを作成 実は、そのまま corefx のプロジェクトを持って来て少し変えるだけでいけ … 続きを読む

カテゴリー: C# | コメントする

dynamic を利用して ExDoc を書き直してみる(1)

「メタプログラミング .NET」をざっと読み終わったので、手元の github から ExDoc をダウンロードしてきて、dynamic 版の ExDoc を作っているところです。 旧 ExDoc は、演算子のオーバーライトと暗黙のキャストを使って、/,*,%演算子を使って XML を探索できていました。まあ、奇妙といえば奇妙だけど、LINQ の派生みたいな感じで作れるわけです。タグを指定するのが文字列なのがあれなのと、だったら XPath で指定してもいいんじゃないか、という話もありますが、まあ実験的に。ちなみに、このライブラリは実運用で4年ほど使っています。CakePHP をサーバーにして、クライアント側の XML パースを ExDoc を使ってパースしているという技ですね。 で、常々、PHP の SimepleXML がうらやましかった訳ですが、そんな風に直接プロパティで設定できるの … 続きを読む

カテゴリー: C#, EXDoc | コメントする

ぐるっと巡って、再び DLR へ

一時期、ブームだからと思って手に取った(リフレクションやT4目当てで)「メタプログラミング .NET」なんですが、本棚を整理するときにうっかり捨ててしまったらしく、Kindle で買いなおしました → Amazon.co.jp: メタプログラミング.NET 。どうせだから、洋書で買おうかと思ったけど、英語版の Kindle は無くて、翻訳版のほうが安いってのはどうなの? 後付けでメソッドを付けるというのを考えて、最近 Python でそれができるのを知って、そういえば IronPython ってどうなったの?と思って、再び dynamic と System.Dynamic.ExpandoObject を見直し見たら、ああ以前に ExDoc の expando 版を作ろうと思っていた残骸が HDD に残っていたのを再発見、ってのが現在位置です。でもって、「メタプログラミング .NET」の第8 … 続きを読む

カテゴリー: C# | コメントする

CheckBox のチェックの□の色を変更する

いわゆる、↓の□の色を変更します。 普通にやると、黒で表示されて、どうにも変更できません。が、XAML のスタイルを使って変更します。これ、何をやっても黒にしかならなくて、このような白い四角を表示したいときには、別途自作するとかしていたんですが、原因がわかりました。 XAML ファイルを Blend で開く。 「テンプレートの編集」→「コピーして編集」を選択すると、<Page.Resources> にスタイルが追加される。 アニメーションしている storyboard の中で、 の3行をごっそり消します。 どうやら、ここで設定している CheckBoxCheckBackgroundStrokeUncheckedPointerOver などのリソースが「Black」固定になっているんですよね。テーマ色なので仕方がないんですが、ここの Storoke の色は、Setter Prop … 続きを読む

カテゴリー: C#, XAML | コメントする

ViewModel をテスト可能にするためにファイルストリームを活用するパターンを考察

一般的に(?)MVVM パターンを使うと xUnit が作りやすい。主に Model やロジックに対して xUnit を適用すると TDD 的にあとあと楽なのですが、もう一歩進んで ViewModel にも xUnit を適用してみましょう、という話の続きです。 まぁ、普通にオブジェクト指向のクラスを作っている中で、ある程度隠蔽化されていれば xUnit を使うのもそう難しくはないんですけどね。ただ、実務的にやってみると GoF の組み合わせパターンを使ったときに xUnit の適用どころが難しかったり、最初の簡単なロジックは xUnit を使っていたけど、だんだん拡張していくうちに xUnit が使えなくなってしまったという場合もよくあります。そうそう。プロジェクトが進む中で結合テストをしていて、あまりにも設定がややこしくなってしまった xUnit のコードはばっさり捨ててしまっても構い … 続きを読む

カテゴリー: 開発, C#, TDD | コメントする

Xamarin.Froms を使ってパズドラのように駒を動かす

Xamrin.Forms のドラッグシリーズの続き ひと駒だけドラッグができたので、今度は複数の駒を移動させてみます。いわゆるパズドラのように隣の駒を入れ替えながら動かすというやつですね。 やっていることは前の BoxView のドラッグと同じで移動時のイベントを ManipulationDelta に変換して PCL にコールバックします。 AbsoluteLayoutに配置する 位置がわかりやすくなるように、AbsoluteLayout を使っています。UWP の Canvas に似た動きをしますね。iOS/Android/UWP の3種類でどういう作り方をしているかは知らなくても大丈夫です。Xamarin.Froms の AbsoluteLayout タグに則って配置させます。 BoxView のタップイベントは、BoxView 自身につけています。自前の ManipulationD … 続きを読む

カテゴリー: C#, Xamarin | コメントする