2009-01-01から1年間の記事一覧

Linq to Objects の途中で printf デバッグする方法

C#

よく忘れるのでメモ。ダークサイドの技なのでご利用はほどほどに。 var ms = from type in ... // for debug let a = Console.WriteLine( type.Name ) is object from method in type.GetMethods( ... select method; ネタ元 素数を求める1行プログラム(C#3…

Visual Studio で一行だけコピーや削除するときには行を選択しなくてもよかった件について

ただその行で Ctrl-c や Ctrl-x するだけ。行を複製するなら Ctrl-c, Ctrl-v で OK。# まじか…今まで知らなかった…。

.NET Framework に設計を学ぶ : bool を返すメソッドとプロパティの接頭辞

id:siokoshou:20090817#p1 のつづきです。.NET Framework を調べて、名前付け/設計の参考にしてしまおうというシリーズの2回目です。今回は bool を返すメソッドとプロパティの接頭辞を調べてみました。 Top30 Top は Is で bool を返すメソッドとプロパティ…

.NET Framework に設計を学ぶ : メソッド名の頻出接頭辞

名前大事。間違いなく大事。名前大事を逆手にとって、名前をランダムに改変して読めなくするツールがあることからも、名前がいかに大事かわかります。 名前大事はわかるけど、うまい名前が浮かばないことがよくあって、そういうときはメソッドがうまく設計で…

半導体の微細化が止まる日

並列まわりの記事をいろいろ読んでるうちに、ふと半導体の微細化が止まったらどうなるんだろうという疑問がわいてきて、ぐぐって見つけた記事を読み漁ったり、とりとめもなくいろんなことをボーっと考えたりしてます。 SSDはもっと安くて大容量になって欲し…

new int()

C#

こんなの書けるんだ。キモいんですケド。 int n = new int(); // 0

VisualStudio2010は2010年春?

http://japan.cnet.com/news/biz/story/0,2000056020,20397152,00.htm 来年春登場だそうな。今年の11月ごろかなと期待してたのに。 ネタ元は Mary Jo Foley おばさんらしい。

.NET4.0 の並列処理を試してみた その2 : 再帰と並行性

C#

id:siokoshou:20090721 のつづき。前回は並列化したのに微妙に速くなっただけで、Parallel.For 使えばそれでおしまい。じゃないことがわかったところまで。今回はもっと速くします。 ここでちょっとおわびです。前回は気づいてなかったんだけど、ベータのベ…

.NET4.0 の並列処理を試してみた その1 : Parallel.For, ConcurrentQueue

C#

.NET4.0 から従来よりも抽象的で簡単に使える並列ライブラリがどさっと追加されます。おもしろそうなので VisualStudio2010 のベータ1で試してみました。 結論から書くと Parallel.For すばらしい! Concurrent なコレクションはロックなしで複数タスクから…

.NET4.0 の Parallel メモ

C#

ずいぶんと気合入れて追加してきてるみたい。気になるものをメモ。あとでしっかり読……みたい。 http://blogs.msdn.com/pfxteam/archive/2009/03/04/9457880.aspx ConcurrentBag : スレッドセーフってどういうこと?ロックしないで複数のスレッドから同時に A…

De Bruijn sequence を列挙するコード

C#

いろいろとコメントをいただいているうちに De Bruijn sequence がわかってきました。初めは数学的な背景には興味がなかったんだけど、De Bruijn sequence をすべて列挙する問題が最近遊んでいるデータマイニングの頻出集合を求める問題とそっくりなことに気…

一番右端の立っているビット位置を求める「ものすごい」コードのていねいな説明

C#

id:siokoshou:20090704 のはてブのコメント見てるとわからないってコメントが結構あるので、もう一度がんばって説明してみます。まあわかったところで得はないかもしれませんw public static int GetNumberOfTrailingZeros( long x ) { if ( x == 0 ) retur…

一番右端の立っているビット位置を求める「ものすごい」コード

C#

一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つ…

頻出飽和集合とかのメモ2

2つやったことの記録。ビットマップ化と振り分け処理の改良失敗。 振り分け処理の改造は、ハッシュ(Dictionary)を使っているところを、マージ(マージソートのマージ。併合)にしてみたけど遅くなった。もう少し改造してみるけど早くなりそうな気はしない…。 …

頻出飽和集合とかのメモ

前回のデータマイニングの続き。ちゃんと書きたいけど、まだよくわかってないので今はちょっとだけメモ。宇野先生の研究業績のページで頻出集合や頻出飽和集合関連のわかりやすい資料を見つけた。超大作パワポ。「いいプログラムはコーディング技術だけでは…

LINQで頻度を求める

C#

昨日の関連の話題。コード成分が足りなかったので補給に。 Dictionary を使って頻度を求めるのは定番中の定番の使い方だと思います。たとえば、"the quick brown fox jumps over the lazy dog" の文字列の中で、a が何回使われてて、b が何回使われているか…

データマイニングしてみた

C#

数日前、オレンジニュースで「2008年度人工知能学会の発表資料「頻出パターン発見アルゴリズム入門 −アイテム集合からグラフまで−」(PDF)が紹介されてました。データマイニングに興味があったので読んでみると、タイトルどおりのわかりやすい入門記事だった…

SkewTransform とは?

SkewTransform って何だろと思って MSDN ライブラリを読むと、「2 次元傾斜を表します。」とある。さらに、「SkewTransform は、2 次元オブジェクトで 3 次元的な奥行の効果を演出する場合に役立ちます。」だそうな。 さっぱりわからないので、アニメーショ…

Debug.WriteLine コードスニペット再び

昔書いた System.Diagnostics.Debug.WriteLine を dw[Tab] で呼び出すコードスニペットを更新しました。SimpleTypeName 関数を使ってちょっと賢くなりました。using の有無に応じて System.Diagnostics.Debug.WriteLine と展開するか、Debug.WriteLine と展…

WPF 3D Rotater 更新

WPF

WPF で 3D 横回転アニメーションエフェクトのサンプルコードを更新しました。VisualStudio2008SP1のソリューション http://siokoshou.googlepages.com/Rotate3D3.zip 見た目は変わっていません。修正点は 3D まわりの XAML をシンプルにした、いくつかの問題…

WPF 3D Rotater

WPF

Healthcare Prototype を参考にして、3D でくるっとまわるコントロールを作ってみた。4/1 らしいネタかもwVisualStudio2008SP1のソリューション (4/2に更新しました) http://siokoshou.googlepages.com/Rotate3D3.zip とにかく動かすことだけを考えて作った…

くるっと回る3Dエフェクト

WPF

WPF やるからには、くるっと回る3Dエフェクトをやってみたい。そういうのばかり宣伝しすぎたから WPF が避けられてるって話もあるけど、実際には使わなくても楽しいのでやってみたい。でも、3Dは全然知らないのでまずはくるっとまわるソースコードを探してみ…

PropertyChanged

C#

日々、せっせとバグを作っている siokoshou です(^^; 注意喚起になればいいかなと思って、今日は自分のバグの恥さらしでも。 WPF の Binding で値の変更が反映されない問題が起きて、あーでもないこーでもないと長い時間かけて見つけた原因は、PropertyChang…

Vista?

http://www.vista.si/SilverlightでVistaのデスクトップもどきを再現してる!だいぶ古いデモらしいけど、よくやるーw

Silverlight Toolkit の NumericUpDown, 0.1 + 0.1 + 0.1 + ...

C#

昨日触れた NumericUpDown で気になるところが。Value (現在の値) と Increment (増分または減分する値) が double なんです。double って0.1を10回足しても 1 にならなかったり、n + 1 == n が真になったりするから怖い。何を言ってるのかわからねーと思う…

WPF Toolkit, WPF Futures, Silverlight Toolkit

WPF

MIX09 にあわせてそれぞれの3月版がリリースされています。 WPF Toolkit, WPF Futures (一つのページになってるけど、別物だったりします) Silverlight Toolkit Silverlight Toolkit はどんどん成長していくのに WPF のほうはたいして変わらないのはどういう…

DropShadowEffect 実験機

WPF

DropShadowEffect のプロパティをリアルタイムにいじって試すコードです。手抜きだけど十分実用的。 WPF <Window x:Class="Effects.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <UniformGrid Rows="2"> </uniformgrid></window>

Binding チートシート

WPF

こんばんは、siokoshou です。子供のころ、子供向け教育番組の「テレビの前のよい子のお友達」ってのが誰のことかわかりませんでしたw そういうお約束は小さい子供には難しいと思いますです。さて、WPF の Binding チートシートのご紹介。バインディングは…

縞々

WPF

ついでなので、縞々のサンプルも書いておきます。ぐぐればすぐ見つかるけど、それでも書いておきます。 (昨日の T4 つながりw) <AlternationConverter x:Key="BackgroundConverter"> <SolidColorBrush>white</SolidColorBrush> <SolidColorBrush Color="#dee7f5" /> </AlternationConverter> <Style x:Key="stripe" TargetType="{x:Type ListViewItem}">

AlternationConverter

WPF

AlternationConverter は IValueConverter の一実装で、リストボックスや表を縞々にするのによく使われますが、数→オブジェクト汎用のコンバータなので実はいろいろ便利です。 <AlternationConverter x:Key="IconConverter"> <BitmapImage UriSource="Resources\hoge.png" CreateOptions="DelayCreation" /> <BitmapImage UriSource="Resources\foo.png" CreateOptions="DelayCreation" /> …</bitmapimage></bitmapimage></alternationconverter>