2007-03-01から1ヶ月間の記事一覧

パイプラインパターンとリソース管理

C#

このごろ傾倒してるパイプラインパターン。C#3.0のメソッド拡張構文やLINQや関数言語型のような宣言型のプログラミングを見据えていろいろ模索しています。 部品を細かく分けて変更に強い構造にできる利点は非常に大きいと思っています。例えば、たびたび例…

Exit Status

http://golf.shinh.org/p.rb?exit+status id:nattowさんに2byte抜かれた!これはもう縮まないと思ってたのに…。 92byteだったコードはこちら。

WPFデモいろいろ

http://blogs.msdn.com/somasegar/archive/2007/02/10/wpf-real-world-apps-for-windows-vista-part-2.aspx ここにWPFのデモがいろいろ紹介されていた。 でもなんだろう、この数年前のFlashうぜーって言われてたころの使いづらいFlashみたいなおもちゃの数々…

Xamler

http://est.jp/ 軽いWPFソフト。青空文庫をきれいに表示してくれる。こちらは非常に軽くてさくさく動く。XPでWPFを動かすと重いってことではないことがわかった。 このサイト、おもしろいものをいろいろ作っていますね。こういう会社は楽しそうだ。 次はもう…

Healthcare Prototype

http://wpf.netfx3.com/files/folders/applications/entry6608.aspx WPFの有名なデモ Healthcare Prototype をうちのXPで動かしてみたら、かなりきつかった。 CPU使用率がずっと100%付近になってファンがうるさすぎ。画面切り替わりのアニメはきちんと見えて…

permutater

順列の問題。いろいろな解法がありそう。 数日前は順列の生成がわからなくて断念。次に生成方法を調べて、まねたら回答と同じ順に出なかったのでまた断念。今日は丹念にサンプルを見てやっと解けた。いきなりトップ。やったね! これをスラスラと解ける人は…

tennis

id:matarilloさんにまた1byte抜かれたけど、もう無理と思ってmatarilloさんのとこに貼ってあったのを見てしまった。ら、また2byte縮んだ。あきらめるのはまだ早かった… 223byteのコードはこれでした。

invert case

http://golf.shinh.org/p.rb?invert+case id:nattowさんに抜かれたので再チャレンジ。よく考えてみると問題の本質に気づいていなかった。Aha体験した。タイトル通り素直に書いたら100byteに縮んだ。 ショートコードって問題をいろんな面から考える力がつきま…

tennis

http://golf.shinh.org/p.rb?tennis id:matarilloさんとのテニス対戦が熱い。 あまりおもしろくない問題でも、対戦相手がいるとものすごいやる気が沸いてくるw すらどにプログラマのやる気ネタが出てるけど、競争を取り入れるのがよさげ。どうやって何を基…

Implicitly typed local variables

C#

次のC#3.0で追加される機能の var。Font font = this.Font; みたいな朗読したくない文が var font = this.Font; と書けて、ちょっといい感じ。Fontくらいだとバカっぽくなくなるだけだけど、Dictionary orders = new Dictionary(); が var orders = new Dict…

anarchy golf

C#

http://golf.shinh.org/ ショートコードにどっぷりはまってしまってます。登録不要でお手軽なのがいい感じ。 文字列を手で辞書圧縮するような問題はあまり好みじゃないっぽい。でも抜かれるとまたチャレンジしてしまうわけですが(^^; Echoの72byteがわかった…

delete last line

c#

http://golf.shinh.org/p.rb?delete+last+lineC#が1.1なのか、string.Remove()の1変数版が使えない…。sedやawkが超有利なのは仕方ないけど、C#が137byteで最下位なのはくやしいので、晒します。応援求むw using C=System.Console;class P{static void Main(…

Echo

C#

http://golf.shinh.org/p.rb?echo 68byte。チートしました、ごめんなさいごめんなさいごめんなさい…チートなしはmeiさんが書いたのと同じ78byteしか思いつきませんでした。72byteって…

ショートコード

C#

http://golf.shinh.org/p.rb?Fibonacci+Numbers 楽しそうなんでやってみました。フィボナッチ数列。 95byteまでいけたけど、トップのお二人は87byte…。えええ、どうやるんだろ〜?(追記) 3/21お昼についに87byte到達! 楽しすぎるwww 隙間時間にこればっかり…

ストリーム

C#

id:siokoshou:20061202あたりの続きっぽいエントリー。 こないだWikipediaでコルーチンを見つけたときに、もしかしてと思ってSICPこと「計算機プログラムの構造と解釈」を見てみると、パイプラインパターンって呼んでたやつが「3.5ストリーム」としてしっか…

Orcasと.NET Framework

Orcasの情報、ぜんぜん追いかけてなかったんだけど、この記事読んでびっくり。 http://msdn.microsoft.com/msdnmag/issues/07/04/CLRInsideOut/default.aspx?loc=jp.NET Frameworkを置き換えたり追加クラスがあったりするんですね。しかもバージョン据え置き…

コルーチン

C#

http://en.wikipedia.org/wiki/Coroutine コルーチンyield っていろんな言語にあるけど、ずいぶん昔からある機能だったんですね。1963年って…。 「協調的処理、イテレータ、無限リスト、パイプなど、継続状況を持つプログラムが容易に記述できる」だそうで、…

.NET diff class

.NET 高速 diff classを公開します。2つの文字列のdiffを取ります。行単位のdiff(UNIXのdiffコマンドのような)と、文字単位のdiffを取れます。 "An O(NP) Sequence Comparison Algorithm"(PDF), Sun Wu, Udi Manber, Gene Myers, (1989) のアルゴリズムを使…

diff その3

前回は http://www.mathertel.de/Diff/ のコードの Hashtable を削除したら2倍速くなったところまで。今日はその続き。 このコードでは文字列を行ごとにばらしてハッシュ値にする前処理があって、その後にハッシュ値配列のdiffを調べる。この前処理とdiff処…

diff その2

http://www.mathertel.de/Diff/ここのO(ND)なコード、「非常に早いコードです。diffのアルゴリズムに詳しくなければこれより早いコードは書けません。」と書いたばかりでなんだけど、ちょっといじったら2倍早くなった。前言撤回(^^; Hashtableいらなくね?…

diff

(追記)この日の日記で紹介したO(ND)のdiffクラスより高速なO(NP)のdiffを書きました。id:siokoshou:20070315を参照。(追記終わり)コード中でdiffを取りたかったので.NETなdiffクラスがないかと探してみたら、とてもよいものを見つけました。http://www.mathe…