++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

Archive for 4月 2011

Silverlight 5の3Dグラフィックス

leave a comment »

MIX 11で色々情報が出たSilverlight 5、「こういう機能が増えるよ」というレベルの話は前々から出ていたものの、実際に触れるようになったのは今回が初めてなわけです。で、「実際触ってみて何ぼ」な機能として、3Dグラフィックスがあるわけで、やっぱりここが今一番注目されてそう。

Silverlight 5の3Dは、以下のようなものみたい:

  • SilverlightのUI中にXnaのサーフェスを埋め込むためのDrawingSurfaceコントロールが入った
  • DrawingSurfaceのDrawイベントを拾って、そのハンドラー内で描画
    • Xnaみたいに固定フレームレートではない
    • もし明示的にInvalidateしなければ、Drawイベントは発生しないみたい
    • Drawイベントのハンドラー内で、e.InvalidateSurfaceメソッドを呼べば、頻繁な更新も可能
  • Drawイベントのイベント引数がXnaのGraphicsDeviceを持っているので、こいつに対して描画命令を与える
    • SetVertexBuffersとかDrawPrimitvesとか、かなり低レベルなAPIを直利用することに

てことで、そのままの利用は結構大変かも。

で、関連情報へのリンク:

Written by ufcpp

2011年4月15日 at 16:40

カテゴリー: .NET, C#

Tagged with

非同期サンプル@ Silverlightを囲む会 in Tokyo

with 3 comments

4月9日(土)の Silverlightを囲む会 in Tokyo のサンプルプログラムを公開しました。

スライド:

サンプル(Code Recipe にて公開):

Written by ufcpp

2011年4月14日 at 10:01

カテゴリー: C#

Tagged with , , ,

MIX11 2日目

leave a comment »

MIX11、2日目キーノート セッションは Windows Phone 7 を中心に、Silverlight やら Kinect やら。今日もとりあえずは、ツールのダウンロード リンクを。

Silverlight 5 はドキュメントも色々。

Written by ufcpp

2011年4月13日 at 18:40

カテゴリー: .NET

Tagged with ,

Async CTP Refresh

leave a comment »

ということで、Async CTP が更新されました。

今回のリフレッシュの大きな変更点は以下の通り。

  • Windows Phone 7 に対応
  • Visual Studio SP1 に対応
  • ライセンスが as-is(ありのままで。自己責任で自由に使える)に
  • 非同期の単体テストサンプル追加
  • 英語版以外の Visual Studio にもインストール可能に

ちなみに、今回、ドキュメントは古いままだったりするので注意。

「(C# Spec) Asynchronous Functions.docx 」は古いまま(VB のも同様)。「(Framework) Task-based Asynchronous Pattern.docx」と「(Dataflow) Introduction to TPL Dataflow.docx」は更新されてる。

以下、細かい変更点。

Awaiter の変更

await の実装に使う Awaiter の規約が変わりました(パフォーマンス向上が目的らしい)。Awaiter の自前実装でもしていない限りは変更の影響受けないはず。


bool BeginAwait(Action)
T EndAwait()


bool IsComplete
void OnComplete(Action)
T Current

これに伴い、内部実装も少し変更。

var task = AnotherTaskAsync();
var awaiter = task.GetAwaiter();
if (!awaiter.IsCompleted)    // タスク未完の場合
{
    state = State1;          // 次に復帰するときのための状態の記録
    awaiter.OnCompleted(a);
    return;                  // いったん処理を切り上げる
}
case State1:                 // 継続時に続きから開始するためのラベル
var y = awaiter.GetResult(); // タスクの結果を受け取り
awaiter = null;              // new: ガベコレ誘発用

IProgress

IProgress インターフェイスの名前空間が System.Threading から System に移動。

あと、System.Threading.EventProgress クラスは System.Progress クラスに変更。

SwitchTo 廃止

SynchronizationContext.SwitchTo と ThreadPool.SwitchTo が廃止されました。

素直に SynchronizationContext.SetSynchronizationContext するか、ConfigurableAwait を利用すべきとのこと。

追加

Socket クラスと Dns クラスに対する非同期メソッド追加。

TaskEx.FromResult (単なる値を Task でラップしてくれる)追加。

DataFlow

細かくは追っていないものの、System.Threading.Tasks.Dataflow.dll の方は結構色々と変更があるみたい。

例外処理

void な非同期メソッド中で起きた例外が、現在の SynchronizationContext に対して Post されるように。

他、いくつかバグフィックスがあったっぽい。

Written by ufcpp

2011年4月13日 at 18:11

カテゴリー: C#

Tagged with ,

MIX11、IE 10、EF 4.1、等々

leave a comment »

MIX11に合わせてやっぱり色々と出てきてる。

Written by ufcpp

2011年4月12日 at 17:41

カテゴリー: .NET

情報発信の理由

with one comment

佐保さんのところの「新技術が採用されるための情報発信」に触発されて。

自分がブログ等で情報発信している理由。色々な理由があって、どれも嘘じゃないというか、どれもが相乗的に支え合っている感じ。

  • 人に教えられて初めて一人前
  • 人に教えるために調べるのは、何よりも勉強になる
  • 公開されていないものは失われる
  • 「良さを伝えられない」のと、「良くない」のは同じ
  • 未来の自分は赤の他人と同じ
  • 個人にできることなんてたかが知れている
  • 情報は、発信している人のところにより一層集まる
  • ビジネス
  • ノブレス オブリージュ

人に教えられて初めて一人前

まず、自分の考え方の根底にあるのがこれ。「人に教えられる」っていうのは、どんな知識においても、「なんとなく使えてる」では思うようにならない領域。僕は知識欲で生きているような人間なんですが、とりあえずこの域に達しないと真の意味で知識を仕入れた気になれないんですよね。

そして、ウェブで何か記事を書くというのは、この「人に教える」という行為の一種だと思っています。

人に教えるために調べるのは、何よりも勉強になる

さてそこで、人にものを教えようとすると、よく分かっていないままなんとなくで使っている知識が意外なほどたくさん出てきます。

逆の発想をすると、何かを深く理解したい時には、「どうやれば人に教えられるか」を整理しながら調べると、非常に効率よく理解が進みます。

公開されていないものは失われる

個人的に、恒久的に残らないものにはあまり興味がわかないんですよね。一時的な流行りとか。

で、知識を自分だけが抱えてしまうと、それをいつロストするか怖くて仕方がない。忘れていくってのももちろんありますけども、不慮の事故等で自分がいなくなったときに何かが途絶えるってのがたまらなく嫌。

なので、仕入れた知識でまだ記事化してないものは、一刻も早く世に出したくてたまらなかったりも。

未来の自分は赤の他人と同じ

はい。人間は色々と忘れます。思った以上に忘れています。

「気になって調べたら昔書いた自分のブログが引っかかる」、そんな経験、皆さんもありますよね?(あたかも常識であるかのような口ぶり)

昔の自分への感謝の気持ちを忘れず、さらに色々なことを記事に残していきましょう。

「良さを伝えられない」のと、「良くない」のは同じ

公開しないと失われ、忘れられていくのは、良いと思う気持ちや情熱も同じだったり。

「良いものを作れば必ず理解される」なんてあるわけがなくて、良さを正しく伝えていかないと意味がない。

個人にできることなんてたかが知れている

自分が今あるスキルで何かを作るのと、自分の持つスキルを多くの人に伝えることで何かが作られるのと、個人的な嗜好としては後者の方が好みなんですよね。

良いものってのは、単に高いスキルがあればできるものじゃなくて、アイディア、時間、予算、人脈、等々、いろんなものがうまくかみ合った瞬間に生まれると思っています。個人というただ1点で条件がそろう確率はそう高くないですが、知識を広めた先の面上になら、いろんな可能性があるのかなと。

情報は、発信している人のところにより一層集まる

昔、hatena でほってんとりに入ってた言葉ですが、自分の肌感覚としても、この言葉は間違いないと思う。色々な情報を出しているからこそ、「あっ、こんな情報もありますよ」と教えていただけることが多々。

「知識欲で生きてるような人間」にとって、これがどれほど価値のあることか。

ビジネス

色々な気持ちがあって文章書いてるわけですが、ufcpp.net に広告を貼るようになってからモチベーションが上がったというのは、事実、ある。某アワードの受賞によっても上がっていますし、「ブログなどを見てご連絡いたしました」で始まる仕事を得てまた上がっています。

普段から結構よく出す言葉なんですが、僕は「聖人君子なんていない」と思っています。意図するところは、自分のことで手いっぱいの状態で、他人のことにまで手は回らないということです。

書いてる記事が実益に繋がったことでできた余裕ってのも結構大きいんですよね。その余裕がなければ手が回らなかっただろうことも、今では手が回るようになったと思います。

ノブレス オブリージュ

「貴族には義務あり」、「持てるものは、それを正しく行使する義務がある」的なものです。

何か気が付けば、ufcpp.net は個人サイトとしてはちょっとおかしいくらいの PV があり(しかも毎年増加中)、おこずかい程度の広告収入まで入っているわけです。それで得たものの分くらいは、何かに還元していきたかったり。

逆に、「世の中、出来る奴が、出来ることやればいい」とも思っています。

自分だって最初からこれだけ文章が書けたわけではないですが、手慣れてしまった今となっては、「書けるから書いてる」という側面も少なからずあります。

Written by ufcpp

2011年4月11日 at 14:31

カテゴリー: 未分類