亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

C#

MSの今回の発表で何が起こるのか、の私的感想

さて、まさかのMSの大鉈連発に、TL大騒ぎでございます。まさかOSS化まで入ってるとは僕も思ってなかった。MSクラスタですらもざわざわである。 んで、今回の決定が意味することをちょっと考察してみたいなーと。備忘録的にね。 あくまで 私的感想です。鵜呑…

TPLで楽々セミコロンレスC#

C#

さて、今日も酔ってます(前置き) TPLはセミコロンレスにうってつけ セミコロンレスC# を考えた時、難しくなるのはやはり戻り値がvoidのメソッドをどうセミコロンレス = 返り値をもたせるか、ということになります。 つまり、 voidな任意の関数をラップでき…

セミコロンレスC# を夢見て

C#

酔っ払ってます(前置き) セミコロンレス? Javaの世界では最早常識だそうです。 Semicolonless Java 2012 - プログラマーの脳みそ Semicolonless Java8 - プログラマーの脳みそ セミコロンレスJavaはJava8の夢を見るか? - bitter_foxの日記 セミコロンレ…

AppVeyorを使ってCI環境構築してみた

某艦これビューアで。 posaunehm/KanColleViewer .NET用のCIサービス、AppVeyor てなわけで、AppVeyorです。 元はといえば、このツイートでして。 @Grabacr07 @Posaune appveyor にしましょう。OSSなら無料— たなか@開幕勝利 (@tanaka_733) 2014, 4月 28 流…

ジェネリック[メソッド/クラス]を動的に呼び出す

C#

意外とやり方がわからないことだなー、と思ってメモしておきます。 やりたいのは、Type型を実行時に渡して、GenericメソッドやGenricクラスを呼び出す、といったものです。メタプロやってると欲しくなるんですよね。 Genericメソッドを呼び出す場合 まずはメ…

C++のライブラリを自動でC#にラップするライブラリ、Mono CppSharp

MonoプロジェクトのGithubをうろうろしてるとなんか面白そうなのを見つけました、ってので。 mono/CppSharp ってのを見つけました。こいつは、C++のDLLを自動でラップしてくれるコードを吐いてくれる、というライブラリです。C++ネイティブのライブラリをC#…

SonarとJenkinsを連携させる

さて、先日紹介したSonarですが、単体で使うぶんにはあんまり美味しくありません。手動でバッチ叩くなんてやってらんねーですよね。 てなわけで、Jenkins先生登場です。連携させましょう、そうしましょう。 できること できることは、、、まぁ解析を定期的に…

SonarQubeをWindows環境で使ってC#コードを解析する[追記しました]

C#

SonarQubeをWindows環境で使ってC#コードを解析する はじめに注意 ココらへんの事柄は一年も経てば色々変わったりするので、古い情報はあんまり真に受けないこと。 一応検証環境はWindows 8.1 Professional on VMWare Fusion 5だけれど、まぁWindows 7以降な…

VisualStudio 2012で単体テストの実行が遅い場合の対処法

Visual Studio 2012以降、単体テストがMSTestオンリーから、NUnitやらxUnit.netをVisual Studioで統合して管理できるようになりましたね。その役目を担っているのがTest Adapterです。NUnitだとNUnit Test Adapterを使えば、完全に統合されて凄くハッピーで…

DispatcherFrame徹底解説

C#

というほど「徹底」でもないのだけれど、コードプロジェクトに分かりやすい記事が上がっていたので訳してみた。前の二重メッセージループの中でもやっとしていたので。 メッセージループをアプリケーション内で複数作ってみる - 亀岡的プログラマ日記

CodeIQの問題の回答(Triany)をGithubにあげてみたよ。

C#

CodeIQの問題が楽しそうだったので解いてみた。のをGithubにアップしました。 posaunehm/Triany · GitHub 二分木を作りやすそうだなー、と思いつつもごくごく普通に単方向リストで実装。んで普通にTDDしてみました。なんというか、TDDをやっていると人間は過…

StringBuilderの使いどころ

さて、昨日の記事ですが、色々問題が有りまして。@posaune あ、なので、2番目のケースもC#では+演算子を使用すべき状況だとおもってます。(StringBuilderを使うと、String.Concatより遅い上に見づらい)。3番目もString.Concatの引数に突っ込んでしまえば…

StringとStringBuilderと、in C#

C#

@irofさんから「.NETでやれ」といわれたのだけれど。 文字列連結と+演算子について整理しておく - 日々常々 本気で、「まとめる」だけにしますよ。逆アセンブルめんどいし。 +演算子 を使用するべき状況 in C# というわけで定数は.NETでどうなのよ、といいま…

Undoを有効にしつつテキストボックスに文字列をセットする。

まぁ、まんまなのですが。ふつーにTextBoxに文字列をセットすると、Undo対象になってくれません(当たり前ですがね) textbox.Text = "ほげほげ"; でも、例えばユーザーの入力をフックして別のテキストボックスに値を放り込む、ということをしたい場合はUndo…

ListBoxの中身を逆順にする

割と小さめのネタですが。WPFのリストボックスはなんでもできる、というのはよく知られている話ですが、んじゃ下から上に並ぶListBoxでどんくらいのコードで出来るのかな?というのを書いてみました。残念ながら標準でListBoxの要素配置を行うItemsPanelはSt…

System.Drawing.BitmapをSystem.Windows.Media.BitmapSourceにWin32無しで変換する。

つまり、WindowsFormのBitmapをWPFから使う方法ですね。あんまり使う機会がないとおもいきや、私は結構システムリソースの中にBitmapを保存して管理したいなぁ、と思ってしまう人なので(構文チェック効きますし)、そんな時になんだかなぁと困っていたので…

忘年会駆動でフグ鍋の待ち時間にしゃべってきた。 #hogedriven

C#

忘年会駆動 2012 - connpass忘年会駆動されてきました。なんというか、あれだけいろんな人がいるのにみんな方向性違う発表ってどないやねん。そんななかでも少数派の.NET勢として、変態アドベントカレンダーネタからこんなスライド作ってしゃべりました。 Ja…

JavaをC#に変態させる。 #hentai_advent

この記事は変態アドベントカレンダー20日目の記事です。昨日はinatonさんの d:id:motefu:20121219 でした。・・・普通に役に立つんですが。今回の僕の記事どうしましょう。 変態アドベントカレンダー、楽しいですね。しかしながら、みなさん変態の意味を取り…

VisualStudioのTestRunnerがUpdate1で改善されていました。

テストエクスプローラのフィルタリングはUpdate1で改善されてるけど、Express版は改善されなかったのかな? / “JUnit実践入門 MSTest用パッチ #TddAdventJp - 亀岡的プログラマ日記” htn.to/EX8dct— ∧( 'Θ' )∧さん (@wkoichi) 12月 14, 2012 仰るとおりでし…

JUnit実践入門 MSTest用パッチ #TddAdventJp

『GUIテストについて書くといったな。あれは嘘だ』(C.V 玄田 哲章)というわけで、TDDアドベントカレンダー13日目です。タイトル通り、MSTestの話をします。昨日はTugu Katagiriさんの【TDD Advent Celndar 2012】12日目:虫退治もTDD!+オマケ話でした。…

C#とNVIパターン

C#

先日、怖いもの知らずにもEffective C#C++大阪に行ってきたのですよ。 Effective C++ 読書会 vol.2 大阪 - [PARTAKE] かなーり濃ゆいC++の話が聞けて満足でした。その中で色々気になる話をメモっていたのですが、そんななかでC++11にて、C++で暗黙実装される…

F# のPipe-forward 演算子(パイプライン演算子)って、C# の拡張メソッドの仕組みと似てるよねー、という雑惑。

C# F#

2012年5月29日追記:タイトルをtypoっていました。。。わりとF#面白がって使ってます。まだまだ入門書を必死で社協している最中ですが、楽しいですね、写経。 そんなこんなで、いろいろコード片らしきものは以下に書いています。 F#写経用リポジトリ@GitHub…

エクセルのバイナリフォーマットを解析してごにょごにょするライブラリ。

最近CodeProjectネタが多いな。。。まぁまじめに読んでるとかなり面白いですよ、CodeProject。 そんなわけで記事紹介です。 Generate Excel files without using Microsoft Excel - CodeProject 中身を見ると、真面目にバイナリフォーマットを解析してるっぽ…

.netのメモリモデルにについて

Code Projectの以下の記事がかなりわかりやすかったのでメモ。 Six important .NET concepts: Stack, heap, value types, reference types, boxing, and unboxing - CodeProject StackとHeap .NETの世界には2種類のメモリコンテナがあります。一つがStackで…

TDDで作るBrainFuck実行機 5(最終回):リファクタリングをしないとTDDとは言えんのですよ。

C#

なんとなくインデックス作っておきます。 TDDで作るBrainFuck実行機 TDDで作るbrainfuck処理系(予告編) - 亀岡的プログラマ(?)日和。 TDDでだらだら作るBrainFuckコンパイラ その1 - 亀岡的プログラマ(?)日和。 だらだらTDDなBrainFuckCompiler! そ…

だらTで作るBrainFuckな実行装置 その3

C#

考えてみたらコンパイラでもなんでもなくて、Executer:実行機などというべきですよね、フツー。そんなこんなで、多分BrainFuckの中では一番考えないといけない、開き括弧・閉じ括弧を行なって行きましょう。 まずはともあれテストです。ロジック的なことを…

だらだらTDDなBrainFuckCompiler! その2

C#

さてさて、今日は値のインクリメントあたりまで実装してみましょう。まずまず、テストコードですね。とりあえずは、Runした後に値がひとつインクリメントされるだけ、ってことで・・・まずはインクリメント。 [Test] public void 値インクリメントテスト() {…

TDDでだらだら作るBrainFuckコンパイラ その1

C#

というわけで、TDDの個人的練習として、BrainFuckの実行環境を作っていきましょう。とはいえ、いきなりコードを書くわけじゃあないです。最初にざっくりとしたインタフェースを固めておかないとどうしようも無いです。これはTDDの基本ですね! ざっくり仕様…

WritableBitmap記事まとめ

どうせなら、ということで初めてインデックス作っておきます。 WritableBitmapさっくり入門 WritableBitmapをちびちびさわってみる。その1。 - 亀岡的プログラマ(?)日和。 WritableBitMapをちびちびさわってみる。その2。 - 亀岡的プログラマ(?)日和…

WritableBitmap最終回(暫定) 見せてもらおうか、Nativeの性能とやらを。

WritableBitmapもつらつらやってきましたが、一応コレで最終回としたい感じです。 最後にNativeAccessをやってみましょう。クラスは3つほど作りますよ。 C#本体 C++/CLIのラッパー(子クラスのメソッドをコールするだけ) C++NativeのCalculator(処理はここ…

C# -> C++/CLI -> C++ の関数コール。

C#

なんかやたらとはまってしまったので、メモ書き代わりに。 いや、ほんと、このMSDN通りにやったらできるはずなんですけれどね・・・ チュートリアル: スタティック ライブラリの作成と使用 (C++) でも、やっておきましょう。一応、C#から呼び出すまで。まず…

WritableBitmapその4。ポインタって早いの美味しいの?

結論:結構美味しいよ!! というわけで、WritableBitmapです。ちょっと寄り道しましたが、まずはマネージドでのベンチマークを取っておきましょう。測定するのは、今まで作ってきたグラデーションを表示するプログラムを、それぞれWritePixelとポインタアク…

WritableBitMapをちびちびさわってみる。その2。

昨日は白黒の表示までだったので、カラーの表示をしてみましょう。まず、ピクセルフォーマットをカラー対応のものにします。使いやすいのはBgr32でしょう。 Bgra32 ピクセル形式を取得します。 Bgra32 は、bits per pixel (BPP) が 32 の sRGB 形式です。 各…

WritableBitmapをちびちびさわってみる。その1。

WritableBitmapを、触らないまでも多分解説しないといけない空気なので、こっそり勉強始めるの巻。いや、なんというかね、WritableBitmapはSilverlightのをみててこりゃ簡単だ、と思ってWPF見たらひっくり返るっていうのが恒例のパターンだと思うのですが。W…

SImple MVVM Toolkitのサンプルを見てみる

おとといくらいにTwitterで回ってきてちょっと気になってたSimpleMVVM Toolkitをちょろっと見てみました。 Simple MVVM Toolkit for Silverlight, WPF and Windows Phone 個人的には・・・うーん。あんまりシンプルじゃないというのが今んとこの正直な感覚か…

唐突にProjectEulerでも。

C#

ちょっと時間がないのでお茶をにごすんですよ。はい。 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.What is the smallest positive number that is evenly divisible by all of the number…

もうちょっとDynamic Proxyの原理を理解しようとしてみる。あるいはMSDN探検隊。

MSDNはお友達♪ということで、もうちょっと昨日のDynamic Proxyの原理を理解しようとしてみます。 あ、これはチュートリアルとかじゃなくて、本当にわからないものをなんだかなぁと考えてるだけです。一緒にMSDNの森をフラフラしましょうぜ。まず一番のポイン…

Dynamic Proxy Classの原理

CodePeojectに楽しげな記事があったのでご紹介。 Dynamic Proxy Class (inject code routines dynamically in methods): Part - I - CodeProject用は色いろ有るAOPなフレームワークが、一体全体何をしているのかを紹介しているわけですが。よくあるシナリオ…

MonoDevelop in Macでコンソールアプリケーションがデバッグできない場合の対処法

なんか、MonoDevelop in Macでコンソールアプリケーションがデバッグできないトラブルに見舞われています。普通のウィンドウアプリもできるし、MonoMacだってできてるのにー!! んで、とりあえずの逃げが見つかったのでメモしておきます。といっても全然大…

MonoMac超事始め

諸君、私はC#が(ryてなわけで僕はC#が超好きです。最近Macもお気に入りです。軽いし、ヌルヌル動くし。 そして、MacアプリケーションはC#でかけます。そう、MonoMacならね(ドヤァ というわけで、ちょいと触ってみます。噂通りのMVCモデルっぷりですので、…

MonoDevelop on Macを日本語化する、というか文字化けを直す。

諸君、私はC#が好きだ(ryてなわけで、MacでC#するならMonoDevelopですよね。 とはいえ、最近のMacとは仲が悪く、日本語が化けてます。まあ単純に非日本語フォントを使っているだけなのですが。さて、SnowLeopaldでは以下のBlogで紹介されている方法で日本…

DirectShow系のCOMラッパーがひっそりと公開されている件。しかも意外な所で。

C#

実は最近どっぷりDirectShowを見てます。(その関連でC++CLIとかの話に頭悩まされてるのですよw)で、本質的にはDirectShowはCOMですんで、COMとしてインポートできるんじゃないの??と思ってしまうのですが、まずtblファイルは公開されてないです。あるの…

C++CLIにおけるDisposeパターン

機能の記事ではC#でのDisposeパターンについて考察しました。そいでは現在僕がひぃひぃ言ってるC++CLIではどうなるのでしょうか。 以前の記事で書いたように、 つまりC#のDispose → C++CLIのデストラクタ C#のデストラクタ → C++CLIのファイナライザ という…

Livetを使ってすっきりWPFアプリを作る ④サンプルプロジェクトからLivetの機能を理解する(ViewModel基本クラス編)

大分が開いてしまいましたね・・・。実は前回の縦書きSilverlightは意外としょーもないとこではまっていたり、地味に禁則処理を入れていたりで時間かけてたんですよねー。ソース込みでもうちょっとちゃんとした形で仕上げたいところです。それはそれとして、…

SilverlightのListBoxでつくるいんちきHorizontalTextBlock

この記事は、Silverlight Advent Calenderの9日目です。Silverlightで縦書きテキストボックス作りたいよね!!特にWP7ではロック画面が素敵な縦書き表示なのになんだかなあという感じです。 てなわけで、縦書きテキストボックスですが。 。。。えぇ、車輪の…

Livetを使ってすっきりWPFアプリを作る ③サンプルプロジェクトからLivetの機能を理解する(メッセージ基本編-その2)

さて、昨日から引き続いてサンプルで使われているMessageの解説です。 まず少しおさらい。サンプルでMVVMerが気になるViewModel→Viewの機能は、 新規登録/編集ウィンドウの表示 消去時のメッセージボックス表示(確認) ウィンドウクローズ の3つです。この…

Livetを使ってすっきりWPFアプリを作る ②サンプルプロジェクトからLivetの機能を理解する(メッセージ基本編)

さて、前回(d:id:posaunehm:20111201:1322750644)はさっくりとLivetの概要だけ説明しましたので、ここでLivetの機能を具体的にチェックしてみましょう。・・・といってもLivetはそこそこ大きなライブラリーです(Prismなんかに比べるとかなりすっきりとは…

Livetを使ってすっきりWPFアプリを作る ① 導入時のメリット・デメリット

ふつくしい国産MVVMライブラリ Livet 唐突ですが、降って湧いたLivet熱をアウトプットに活かすべく、頑張って記事を書いていきます。 まずは、Livetについて。Livetを一言で言うと、最も洗練されたMVVMパターンライブラリです。 ・・・の前にMVVMパターンで…

弱参照の続き

d:id:posaunehm:20110302:1299073801 の続きです。簡単な弱参照の動き検証プログラムをWinFormで作ってみました。まあつまり、どのタイミングで開放されるかを見ておきたいだけなのですが。 スクショはこんな感じ。 要は、ボタンを押すと以下の様なコードを…

Blendでd:DataContextを設定する方法。

Visual Studio 2010とBlend4では,データバインディングの設定がすごくやりやすくなりましたよね。(今更 例えばBlendだと,こんな感じで設定できて非常に良い感じです。これがないとプロパティ名を直打ちすることになっちゃいますからね。マジ鬼畜です。勘…