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

除算と剰余の整数オーバーフロー

C#

プログラムでは整数の四則演算はよくよく注意しないと足をすくわれることがあります。 整数と呼んでるものが普通と違って範囲があって循環しているためです。最大値と最小値の絶対値が 1 ズレているのもいや〜な問題の元になります。この 1 ズレのため除算で…

PDC09

仕事はえー! http://www.publickey.jp/blog/09/internet_explorer_9html5directxsilverlight_4.html http://www.publickey.jp/blog/09/pdc09windows_azure.html Silverlight4 beta が出たようです。こっちもはえーw 3出たばっかりのような気がしてた… つい…

さよなら CAS

http://www.infoq.com/jp/news/2009/11/CAS-Replaced CAS がなくなる件、InfoQ の記事になりましたね。 これってひょっとして unsafe の事実上の解禁になるのかな?よくわかってないですけど。 型安全はつまらないバグをかなり減らしてくれるんで、安易に un…

C の弱点 default のスペルミスを継承していた

Go

no more creat。 package main import "fmt" func main() { a := 4; switch a { case 0, 1, 2: fmt.Println( a ); case 3: fmt.Println( "いっぱい" ); defuuuuult: fmt.Println( "defuuuuuuult" ); /* default: fmt.Println( "default" ); */ } }何も表示さ…

goroutine を使ってみた

Go

Go 翻訳プロジェクトが立ち上がったようですね。チュートリアルのかなりの部分がもう訳されてます。 http://go.shibu.jp/遊んでるうちに、将来は C に取って代わりそうだなという気がしてきました。昨日のコードの goroutine 版が動きました。まだ goroutine…

Go でバックトラックを書いてみた

Go

Go language に De Bruijn sequence を列挙するコードを移植してみました。C# で書いたときのコードは こ ち ら。 goroutine を使って並列化したいんですが、まだデッドロックしてうまくいってませんw なのでとりあえずできたシーケンシャル版。ちなみに効…

Go

Go

http://golang.org/ http://www.atmarkit.co.jp/news/200911/11/go.html http://inforno.net/articles/2009/11/11/go-language http://openlab.dino.co.jp/2009/11/11/231252628.html ロブ パイクとケン トンプソン(と V8 の人。扱い低くてゴメンナサイ)の新…

string の IndexOf は .NET4 でもカルチャー依存のまま

昨日の記事は例が悪かったのでわんくまの中さんに正反対に誤読されて残念なので、わかりやすく一覧表にしてみました。string の StartsWith, EndsWith, IndexOf, LastIndexOf のカルチャー依存/非依存(ordinal)の状況 .NET2〜3.5.1 カルチャー依存 .NET4 CTP…

あなたがやりたいことはきっと "Hoge".IndexOf( "Hoge" ) ではなく "Hoge".IndexOf( "Hoge", StringComparison.Ordinal )

ずいぶん前にも書きましたが string の IndexOf には罠があります。ただ単に IndexOf( "Hoge" ) と書くと IndexOf( "Hoge", StringComparison.CurrentCulture ) の動作をしてしまいます。きっとあなたがやりたいことは IndexOf( "Hoge", StringComparison.Or…

WPF を使ったブラウザ

WPF

実用性はないけどおもしろいw こんなにゆがんでてもスクロールできるし、クリックもできる。Chromium を利用しているっぽい。よく読んでないのでよくわかってないんだけど。ClickOnce でインストールできますが、サーバーが遅いのかものすごーく時間がかか…

EXE を作るプロジェクトのデフォルトが Any CPU から x86 に変わった理由 - または Any CPU の本当の意味

Visual Studio 2010 では EXE を作るプロジェクトのデフォルトが Any CPU から x86 に変わります。また、DLL を作るプロジェクトは Any CPU のままです。これらの理由を説明している記事を見つけました。AnyCPU Exes are usually more trouble than they're …

従来の並列化と最近/これからの並列化の違い

一昔前の CPU の進化とはシングルスレッド性能を伸ばすことでした。 ソフト屋はこの進化にただ乗りし、ソフトをいったん作ればあとは何もしなくても、新しいハードでは速くなる、時間が経ってハードを買い換えてくれれば速くなるというおいしい状況でした。W…

.NET4.0 の並列処理を試してみた その3 : サーバー GC

C#

id:siokoshou:20090717、id:siokoshou:20090721、id:siokoshou:20090722 に続く TPL の記事。ベータ2の改良点がパラレルチームの blog に投稿されています。でも、今回はそんなのがどうでもよくなるほど驚いたネタ。 ベータ2で7月に試したコードを実行してみ…

VS2010テキストエディターの矩形操作

http://blogs.msdn.com/visualstudio/archive/2009/10/26/box-selection-and-multi-line-editing.aspxビデオがわかりやすい。 Alt + マウス操作で矩形選択 Alt + Shift + カーソルで矩形選択 (ビデオでこれしゃべってる?とにかく試したらこれでいけた) 矩形…

WPF のカルチャー

WPF

WPF で以下の XAML を書いて実行すると、日付と時刻が「10/29/2009 7:56:33 PM」と en-US カルチャーで表示されてしまいます。

2010ベータ2

やっと入れた。WPFアプリを作ってみた。さっそくVSが固まった(´Д`)=3

WPF と BackgroundWorker

WPF

WPF で BackgroundWorker は使ってもいいのかな?と調べてみました。結果は OK です。 BackgroundWorker 内部で使っている SynchronizationContext は WPF 用の新しい派生クラスが使われています。 WinForm … System.Windows.Forms.WindowsFormsSynchronizat…

CAS はやめちゃうそうです

http://blogs.msdn.com/shawnfa/archive/2009/06/12/clr-v4-security-policy-roundup.aspx.NET4 のセキュリティは簡単にするとは聞くものの、じゃあどうなるの?ってところを聞いたことがなかったのでメモしておきます。 難しい上に意味がない CAS はやめて…

Windows 7 でタスクバーにピンで留めれないプログラムの名前

via http://west-wind.com/weblog/posts/32765.aspxちょっと笑える記事w 実行ファイルの名前に「Documentation;Help;Install;More Info;Readme;Read me;Read First;Setup;Support;What's New;Remove」が含まれると「タスク バーにこのプログラムを表示する…

コード公開

http://referencesource.microsoft.com/netframework.aspxDotnetfx_4016_VistaSP2 Dotnetfx_35.1_Win7出た!久しぶりに .NET の中のコードにステップインできるようになった。なんだかすごくうれしい。 関連 http://d.hatena.ne.jp/siokoshou/20090824

素朴な疑問

ブレークポイントはなぜ「張る」なんだろ? 元になってるメタファーはなんだろ? GUI のデバッガだとブレークポイントがシールっぽいから? でも、GUI 以前から使ってそうな気もする(根拠なし)。

Caps Lock キーがいらない

http://slashdot.jp/polls/431 選択肢にどーして Caps Lock キーがないんだ。 間違って押して困ったり、間違って押して PC がおかしくなったと助けを求められたりするための罠キーなのに。 パスワード間違ったときの画面にも Caps Lock うんぬんは定番だし。…

Reactive Framework (Rx) で遊んでみた

Rx とは このごろじわじわと情報が出てきている Rx こと Reactive Framework で遊んでみました。x はどっから出てきたの?ってつっこむのがお約束らしいw pull 型の IEnumerable/IEnumerator をひっくり返して、push 型な IObservable/IObserver を作ったそ…

Atomic

C#

Atomic の実験をしてみました。下のコードの Reader スレッドでは表示されることはなさそうに見えますが、実際には何度も何度もいろいろな値が表示されます。 x86 ではボコボコ表示されます。 x64 では試した限りでは起きませんでした。でも起きないことは保…

スマートタグを開くショートカットキーは Ctrl+.

using を補完したり、インターフェイスの実装を補完するときに使うスマートタグ。 これをキーボードで開くショートカットは「Ctrl+.」。 . じゃ見えないかもしれないので日本語でも書いておくと「コントロール + ピリオド(ドット)」ねw これを知るまでいちい…

「基本要素の概要」の図

WPF

http://msdn.microsoft.com/ja-jp/library/ms743618.aspx この MSDN ライブラリの記事に欠けている図を勝手に描いてみた。 クラス名に出てくる Element は HTML の「要素」(タグと言われることのほうが多い)と思えばよい。 WPF は汎用性高すぎなせいか、カラ…

XAML の名前空間の謎が解けた

WPF

via http://social.msdn.microsoft.com/Forums/ja-JP/wpfja/thread/a0ed39c6-22c7-4ab3-8ac0-af775d02c91c/XAML で使う XML 名前空間 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ってどういうカラクリなんだろうと不思議だったけど…

DataGrid に新規追加行(NewItemPlaceholder)を表示する方法

WPF の DataGrid に新規追加の行(NewItemPlaceholder)が表示されなくて数日はまったので、解決方法のメモ。新規追加の行と言ってるのは、ユーザがアイテムを新たに追加するためのプレースホルダのこと。表示される場合は、デフォルトでは空の行が表示されま…

完成かも

C#

C#コンパイラチームにいた Sreekar Choudhary さんが Halo チームに移動したそうな。 C#4コンパイラができあがったのかもしれない。http://blogs.msdn.com/sreekarc/archive/2009/09/05/joining-halo-team.aspxそれにしてもなんとまあ極端な…w

.NET のソースコードにステップインできない

http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/678edf17-c633-41e0-9993-fa14ddee3229今はできない期間のようです。Vista SP2 だけ? ステップインできるようになってから、またできなくなったり、またまたできるようになったりの…