-
インタラクション デザイナーの仕事の範囲は広く、私が理解した範囲でも...
- ユーザーの観察・インタビュー
- メンタルモデル・ペルソナの作成(Synthesis, Ideation)
- ギャップの分析、ソリューションの作成
- ワイヤーフレーム・プロトタイプの作成
つまり企画と実装の間に必要なこと、つまり、ユーザーのふるまいを調査・分析して、ワイヤーフレームのような出力(あるいは仕様書)を出すのがインタラクション デザイナーのようです。
ユーザーエクスペリエンス デザイナー(アーキテクト)もほぼ同じ意味だと理解しました。アーキテクトのほうが少し技術屋的な意味かもしれません。ユーザーエクスペリエンスは見えないけど、インタラクションは見えるのでデザイナーという言葉としっくりするのかもしれません。
製品・サービス・ウェブページの開発・制作に欠かせない作業ではありますが、日本では専門家が行うことは少なく、企画の人がやったり、設計者や開発者が行っているのが現状だと思います。たぶん誰かが同じようなことをやっているのでしょう。専門家じゃないといけないわけではありませんが、問題はユーザーエクスペリエンスに責任持つ人がいないことです。
ソフトウェア開発においては、プログラム マネージャやプロジェクトマネージャがその責任を背負っているのかもしれません。でも彼らはソフトのバグにも責任があります。ビジュアルの美しさにも責任があります、データにも責任があります。これでは、会社でいうと社長が責任者というのと同じで、あまり意味がありません。つまり、やはり日本では多くの場合、ソフトウェアを開発する側に、ユーザーエクスペリエンス(あるいはユーザーの満足)に責任を持つ人がいないという印象を持ちます。特に企業内アプリケーションで顕著です。
Cooper社ではInteeraction Design Practiumという4日間のトレーニングを定期的に開催しています。こんな大それたものではなく、インタラクション デザイナーになるための(あるいは同様の役割を担うための)スタートアップになれるようなトレーニングを開けないかと考えています。
インタラクション デザイナーは iPhone を使わなければいけないようです。Interaction 10 のスケジュールは iPhone アプリで公開・更新されており、それ以外は口頭だけなので、なかなか対応できませんでした。Webの情報は古く、全く更新されませんでした:-(
Interaction 10 は参加者500名程度で海外から150名近くが来ているとのことでした。日本から来ている人は非常に少なかったです。米国のカンファレンスでは食事が出ることが多いのですが、これは参加者同士にコミュニケーションをしてもらうためだというのが、Interaction 10 に参加して改めて感じました。Interaction 10 は Ineraction 08 から三回目で、まだコミュニティ イベントなんですよね!Interaction 10 および IxDA を組織しているコミュニティに感謝です。
-
今日がInteraction 10の最終日でした。来年はコロラド州ボルダーで開催されるるようです。写真は会場に行く途中にあった教会と時計台です。
学生のコンペのポスターです。優勝はAhmed Riaz, California College of Arts, MBA in Design Strategy、次点はKevin Cannon, Copenhargen Institute of Interaction Designでした。デザイン戦略のMBAとか、インタラクション デザイン大学といういうのが、日本との差を感じさせますね。
Designing for Mobile Experience
Jeff Blais, Sapient
スポンサーセッションでしたが、宣伝はあまりなく、しっかりした内容でした。iPhone用の3Dエンジンによるゲームのデモをやっていました。
By Cindy Chasain, Rapp
物語のように盛り上がり(起承転結)をつけて、デザインしようという講演でした。左が物語、右がインタラクション
第一幕:理論
物語の2つの方法
- 叙述を語る
- 劇的に見せる
アリストテレスによると物語の要素は
- プロット(イベント)
- キャラクター(エージェント)
- 思考(アイデア/テーマ)
- 言い回し(言語)
- 歌(パターン)
- 光景(ビジュアル)
第二幕:わざ
ドラマチックな物語の4つの確かなメカニズム
- 潜在性を伝える:認知的(cognitive)、情緒的(emotional)
- 因果関係を表現:認知的
- 可能性を強調:認知的
- 完了を促進:情緒的
第三幕:挑戦
物語のような製品デザインを開発しよう。
By Chris Avore, Erva Studios LLC
6人の人が持ち時間3分ほどで自分の製品やデザインを紹介し、QAを行うというパターンでした。
??:スケッチのフロー

ascendant:プロトタイピング スキーマ
nForm:スペックのドキュメント化
GVS: 次期 IxDA サイト開発のワイヤーフレーム
CitizenBrain:ふるまいパターンから作成した検索ソリューション
?Comulus:ブラウザーベースのプロトタイピング オーサ
リング
By Maria Cordell, Macquarium UX Architect
デザインに時間軸を入れようという講演でした。
時間軸で考えよう
- エクスペリエンスは本質的に時間的
- デザイン決定に長時間の効果を持たせる
- ユーザーの特徴は時間によって変化する
- コンテキスト、目的、意味
- 時間と空間
時間のことを分かったデザインをしよう。
By Dan Hill, Arup
都市設計にデジタルとのインタラクションを含めるという事例でした。
- Making the invisible, visuble: Barangaroo(2009)
- Productive urbanism: visible output "The City"
- Wireless civic spaces: State Library of Queensland
- Strategic prototyping: The Edge, Brisbone(2009)
- Responsible architecture: Masder city cente
- Information feedback loop: The CLOUD, London(2009)
モビリティ
- Urban sensing: Realtime rome
- Urban sensing: "Mobile sensing" research project
- Sensing movement: "Smart light fields"
- User experience flow: Bus on the map
- User-centred strategy: City transport
- Civic feedback loop: The CLOUD, London (2009)
Enabling Change
- Street as platform: Master of Interaction Design + Electronic art
- Lonelylight, reActive Bus Stop Seats
パフォーマンス
- Pedestroan simulation: 2nd Avenue subway, NYC
課題
- フィードバックの効率
- デザイン時のフィードバックループ
- 見えるか?
- 都市スクリーンの効率
- 都市インタラクション デザイン
- 学際的なデザイン
-
Savannahは歴史的な都市なので、旧所名跡が多くあるようです。観光客も多く歩いています(今日は土曜日だし)。
こんなのも街を闊歩しています。
Interaction 10の講演と昼食が提供されるピンクハウス(いつもはレストランのようです)と、Farmacy(こちらはSCADが買い取っている建物のようです)です。
by Ezio Manzin, INDACO, Politecnico di Milano
改題:NEXT: design in the age of networks and sustainability
次の経済はグリーン経済、社会的経済、ネットワーク経済。しかしユートピアではなく、現在存在するものが成長していく。その兆候を見ていく。
- 兆候1:個人とコミュニティ
- 兆候2:デジタルプラットフォームが社会的リソースの触媒となる
- 兆候3:4つのキーワード small, local, connected, open
何をデザインすべきか?それらを可能にするシステムをデザイン。例えば、コミュニティがサポートする農業。
可能にするプラットフォーム?:アクセシビリティ、効率性、信頼、美

sustainable-everyday.net
desis-network.org
by Timo Arnall, Oslo School of Architecture & Design
携帯とRFIDを使ったインタラクションの研究プロジェクト「Touch Project」発表でした。RFID電磁波検出プローブや、RFIDリーダー付きのiPhoneプロトタイプも作ったそうです。
3レベルのデザイン
- 知覚可能な(tangible)レベル:ビジュアルへの注目
- ネットワークオブジェクトレベル:短期的な接続と共有
- 可視化レベル:長期的なサービス、データの可視化
nearfield.org
aho.no
by Kevin Cheng, Twitter
ARあるいはMixed Realityの紹介でした。セカイカメラのようなものも紹介されていた。ARは身近で、スポーツ中継のラインとか打球の軌跡などにすでに使われている。
モバイルテクノロジーの有利な点は、カメラ、インターネット接続、GPS、コンパス、加速度計がすでについていること。
問題は、デザインパターンがまだないこと、画像認識、処理能力、RFIDのテクノロジーがまだなこと。
2014年には400万人以上の人がARを使うと予想されている。スマートフォンがより一般的になり、テクノロジーが当たり前になる。
kevnull.com
by Livia Labate, Comcast / IAI
我々が良い仕事をしていることをどうやって知るのか?
ユーザーエクスペリエンスをどうやって測るのか?
これらを数値で処理しなければならないのか?
数値:統計は言語の力を持たず、数値にすぎない。
測定基準(Metrics):測定基準は測定の単位であり、イベントやトレンドの傾向を記述する量的測定(KPIlibrary.com)。
ユーザーエクスペリエンス:ユーザビリティの測定基準は、タスク完了割合、タスクに必要な時間、誤り割合、ユーザーの主観的満足。
Linking Elephant:ビジネスの問題→望みのふるまい→ふるまい測定基準→価値測定基準→金銭的価値
なぜKPIか?livlab.com/thinkia
- KPIは具体的な測定基準
- KPIは相対的な測定基準
- KPIはコンテキストに置いて理解可能
- KPIはふるまいについてのもの
これまでに学んだこと
- 持っているデータからではなく、目的から始めること
- ユーザーのふるまいに関連付けできる目的にすること
- 代理の測定やレートは遠ざけること
- 平易な言語と完全なセンテンスを使うこと
- 自分で行わず、痛み(と喜び)を共有すること
- 理解できなければ、何度も聞くこと
UX Health Chek
by Denise Wilton, www.Moo.com
Mooのコピーライトをどこから始めるか?
8時間で考えろ(8 hours tohugh)という課題を5名のファイナリストがプレゼンしました。
by Paola Antonelli
- 私はタマゴッチが嫌いだ
- 面しているもの:コミュニケーション、機能、インストラクション、情報
- 世界中全てを書く
- 見ることは理解すること
- ネットワークとシステムへのアクセス
- 世界の地図と探求
- 世界を作り合成
Paola_Antonelli@moma.org
-
Interaction 10 の本番が始まりました。ところが今日は雨で、移動が大変な日でした。というのは、Interaction 10では SCAD(Savannah College of Art and Design) の施設を使っているのですが、キーノート以外は同時に複数の講演が行われており、別の講演を聞きに行くには建物の間を(せいぜい数分ですが)移動する必要があるのです。左奥が Theater, 右が Library,それ以外に Pink House, Reynolds SQ, Blacksmith, Pharmacyなどという建物があります。
講演者:Nathan Shedroff http://www.nathan.com/
Making Meaningの著者の一人
なぜイノベーションか?重要なことは「意味(Meaning)」。「意味」とは顧客、ユーザー、観衆との最も深い結びつき。
なぜエクスペリエンスか?我々が創造するものはすべてエクスペリエンスだが、エクスペリエンスは目に見えない。エクスペリエンスは設計可能で、全てのデザイン・設計はすべてエクスペリエンスを作り出す。
結び付きの深さ:人ー意味ー価値ーエモーションー価格ー機能
全てのデザイン・設計は「意味」を喚起するプロセスであり、最も成功するエクスペリエンスは「意味」を含んでいる。「意味」は顧客研究の新しい要素。
革新的で、「意味」を持ち、持続可能で、利益の出る、新しい道が必要。インタラクション デザイナーにはその準備ができている。
http://makingmeaning.org/
講演者:Dave Gray
ゲームの世界: ルール、プレイヤー、人工物、境界→ゴール
10の必須要素:
- Opening and Closing
- Fiire-Starting
- Artifacts
- Node Generation
- Meaningful Space
- Sketching and Modeling
- Randomeness
- Improvisation
- Selection
- Try Something New
http://www.knowledgegames.net/
講演者:Greg Vassallo http://www.momentnyc.com/
幼い子供が急性骨髄性白血病で入院した時の体験から学んだこと。
病院での体験とデザインコンサルティングとの関係
- 大きなチームを調整
- 複雑な問題に対し複数のソリューションを探求
- コンセンサスと信頼の構築
- 反復と変更
- 多額の費用が掛かる
Lesson1. Care about what you do, and show it.
Lesson2. Do your homework.
Lesson3. Plans change.
Lesson4. It's OK to ask for help.
Lesson5. It's OK to disagree.
Lesson6. Admit to mistakes, and learn from them.
Lesson7. It's OK to say "I don't know".
Lesson8. Treat the patient, not the illness.
Lesson9. Methodology can only take you so far.
Lesson10. Lighten up.
お子さんは既に退院し、健康に育っているそうです。http://www.loveforluca.com/
講演者:Jamin Hegeman
サービスの設計・デザインを病院のプロジェクトを例に紹介(ソフトウェアのサービスではない)。
サービスには設計・デザインが必要。インタラクションデザインとの違いは、
- インタラクションデザインもサービスデザインも人間中心設計
- インタラクション デザイン:人間と製品との間の優れたエクスペリエンス
- サービス デザイン:全てのタッチポイントに渡る優れたエクスペリエンス
- サービス デザインには製品は不要だが、製品はサービスを援助する
サービスデザインで役割を果たすには?
- サービスのマインドセットを養う
- サービスデザインツールを学ぶ
- 機会を作り出す
リソース
http://service-design-network.org/
http://servicedesigntools.org/
http://designforservice.wordpress.com/
http://servicedesigning.org/
プロジェクト
http://jamin.org/archives/2008/upmc-neurosurgery-clinic/
http://jamin.org/archives/2007/service-design-for-tsa/
講演者:Richard Banks, Microsoft Research Cambridge
http://research.microsoft.com/sds/
Intdoducing the 2010-2011 IxDA Board
講演者:Jon Kolko, frog design
この「My Heart is in the Work」というのは米国の鋼鉄王 Andrew Carnegie の1900年の言葉だそうです。
- エクスペリエンス:理論的
- ふるまい:強力
- 意味:知的
- 文化:決定的
私たちが行うことは
- エクスペリエンスを共有
- ふるまいを変える
- 意味を作り出す
- カルチャーを変える
-
ユーザーエクスペリエンスを実現する有効な手法の一つであるインタラクション デザインを学ぶために、Interaction 10 カンファレンスに参加しています。今日は Workshop で参加者がグループを作りテーマに沿って作業をします。私にはかなりつらい内容でした。英語が大変というのもありますが、自分の専門分野じゃなくてもその役割とプロセスを抽象化してこなすというのは、私にはかなり難しいです。
シアトルのインタラクションデザイナーと、ノルウェーのコンサルタント(プログラマーからインタラクション デザイナーになろうと思っている)と話しましたが、インタラクション デザイナーという職業が(日本に比べて)一般的であることを実感しました。日本人のインタラクション デザイナー(日本ではまだ珍しい!)にもお会いしました。
ユーザー調査から、メンタルモデル図を使ってメンタルモデルを作成する方法を学びます。メンタルモデルとはユーザー自信の中に持っているモデルのことです。個々のユーザー調査の結果からモデル化しなければなりません。
Indi Youngは Mental Model の著書です。
Agenda
導入と参加者のセグメント
スコープとインタビュー
統合とグループ化
アラインメントとギャップ分析
メンタルモデル アラインメント
メンタル空間
タワー
ふるまい:コンセプト、集まり、ラベル
調査時の6つの規則
1. ふるまい、信用、反応 (好みではない)
2. オープンな質問だけ
3. 質問者自身の言葉は使わない
4. 会話をたどる
5. 製品についてではない (評価ではない)
6. 直接的経験
演習: インタビュー
1. 3-4人のグループから
2. 調査員、非調査者、コーチを選ぶ
3. コーチは、記録し、時間を測る
4. 非調査者は「平日の夕方」について5分間話す
5. コーチは会話のまま記録し、リアルタイムで調査者に示す。
6. 全員が非調査者になるよう役割を変える
演習: ギャップ分析 [猫のふるまいから]
1. グループに戻る
2. 焦点を当てるギャップを探す
3. そのタワー内のふるまいをサポートするアイデアをブレインストーミングする
4. プレゼンテーション用にアイデアをスケッチする
演習: レビュー
1. 発表者を選ぶ
2. サポートしたいふるまいをレビューする
3. アイデアをプレゼンテーション
これも調査から、どのようにソリューションに持って行くかというプロセスの演習でした。実際に街に出て、人々を調査して、何らかのソリューションを導くというのを行いました。
Steve PortigalはPortigalコンサルティング社のコンサルタントです。
Agenda
1.導入
2.フィールドワーク演習
3.合成(Synthesis)演習
4.観念化(Ideation)演習
5.共有
6.ラップアップ
2.演習: 商店街に戻る
実際にSavannah の旧市街にある商店街に行って、30分ほど人々のふるまいを観察してきました。非常に寒かったです。
3.合成(Synthesis)と観念化(Ideation)プロセス
4.観念化: 洞察をソリューションにチューニング
5.共有

-
今年の8月31日から9月2日に開催されるCEDEC 2010の講演者募集がもう始まりました(締切は3月31日)。これまでに比べるとずっと早いですね、委員会の気合が感じられます(募集要項 と チラシ(PDF))。以前の講演者の声も掲載されています。
今年はバラエティに富んだ以下の5種類の募集になっています。
- セッション(60分)
- パネルディスカッション(60分)
- ラウンドテーブル(60分)
- ショートセッション(20分) <新設>
- ポスター展示 <新設>
ショートセッションって1時間に3つの技術的自慢話などが講演されていた、SIGGRAPHの(以前の)スケッチみたいな感じでしょうか。ポスターもあって、ちょっとSIGGRAPHっぽいですね。CEDECにポスターって、ちょっと想像しにくいですが...
応募(するだけでも)特典としては、基調講演の優先入場、CEDECチケットのCESA会員価格、ゲームショウビジネスディ招待の特典があります。採択されると、CEDEC 2010受講パスが3名分もらえるとのことです。講演者パーティの招待券はもらえますが、Developers Kight パーティは有料だそうです。
さすがに、これだけ CEDEC の認知度が高くなると、CEDEC で講演したいという技術者を会社が引き止めることもないでしょうから、応募したもん勝ちですよね。腕に自信のある学生さんもウェルカムでしょう。
私は、今年はネタがあまり見つからないので、どうしましょうかね...
-
Xaml 2009などの講演をしている Microsoft アーキテクトの Rob Relyea が彼のサイト roblelyea.com で XamlPadSample を公開しています。
現在のバージョンは Step1f です。Step1f の説明は彼のブログにあります。
- App.xaml での {StaticResource} のサポート
- アセンブリのロード
- 代替ビュー
もちろん .NET 4 (Beta 2)ベースです。
-
先日、PDC09のクライアント系のセッションを見直してみて、自分が参加したかったけどできなかったセッションを見てみました。その一つが「Mastering WPF Graphics and Beyond」です。
新機能
WPFではアンチエイリアシングがデフォルトで行われるので、テキストがぼけることが多いのですが、WPF 4ではアンチエイリアシングをしないアタッチプロパティとして、以下のような列挙子が追加されます。
System.Windows.Media{
enum TextFormattingMode {Ideal, Display};
enum TextRenderingMode {Auto, Aliased, Grayscale, ClearType};
enum TextHintingMode {Auto, FixedText, AnimatedText};
}
WPFでは(GDIと違って)理想的なレイアウトをするので、スクリーンのグリッドとアラインメントをとりませんでした。すると以下のようになり(小文字の「l」に注意)、同じ文字が違って見えてしまいます。
WPF 4ではスクリーングリッドとのアラインメントをとるオプションが使えるようになり、GDIと互換性を持たせることができます。以下の図で小文字の「l」がすべて同じように見えます。
プロパティとして、UIElement.UseLayoutRounding=”True”を使います。WPFではデフォルトがオフですが、Silverlightではデフォルトがオンですので注意してください。
- ClearTypeHing – Clear Type on IRTs
- アニメーション イージング関数
- ピクセル シェーダー 3.0 サポート
- キャッシュ合成
ベクトルデータの描画が重くてアニメーションや描画の性能を落とすことがあります。そういう時に、ベクトルデータを画像としてキャッシュして再利用できるプロパティ IElement.CacheMode ができました。こんなふうに使います、この例では4倍までの拡大でも使えるビットマップキャッシュを生成します。
<Rectangle>
<Rectangle.CacheMode>
<BitmapCache RenderAtScale="4"/>
</Rectangle.CacheMode>
</Rectangle>
その他
- 高速なデフォルト画像再サンプリング
- レガシー BitmapEffect の削除
- 固定機能レンダリングの削除
-
2月23・24日にマイクロソフトの開発者向けカンファレンスTech・Days 2010が開催されます。昨年米国で開催されたPDC09の日本語版(best of PDC)という位置づけです。
私は「並列プログラミングのパターンと Visual Studio 2010 を使ったその適用」というタイトルで並列プログラミングを講演します。これはPDC09での1日ワークショップ「Patterns of Parallel Programming」をまとめたものです。
今年の Tech・Days では Azure や Silverlight 4 そして .NET 4, VS 2010 など盛りだくさんのセッションが予定されています。
-
PDC09 のワークショップ Patterns of Parallel Programming のビデオは公開されていませんが、資料はこちらで公開されています。
-
PDC 2009 でもいくつかの並列プログラミング セッションを受け持っていた Stephen Toub が「Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4」というドキュメントを公開しています。100ページもある長文ですが、C#のコードも多数あるのが幸いです。
-
PDC 2009 のビデオやスライドがhttp://microsoftpdc.com/Videos に公開されています。このデータをすべてダウンロードするツールが公開されています。
- cURL (~250K) をダウンロードして、フォルダーに解凍する
- PDC09Downloader.zip (1.49KB) をダウンロードし、PDC09Donwloader.batを同じフォルダーに解凍する
- コマンドプロンプトから WMVHIGH, WMV, MP4, PPTX のいずれかのパラメータを付けてPDC09Downloaderを実行(たとえば “PDC09Downloader WMV”)
- オプションとして、PDC09 Renamer batch file (4.52KB) をダウンロードし、同じフォルダーに解凍してから、コマンドプロンプトで”PDCRenamer WMV”のように実行すると、.WMVファイルの名前をセッションタイトルに変更してくれます。PPTXやMP4でも同じことができます。
-
PDC 2009 も最終日です。今日はキーノートもなく、以下のセッションに参加しました。
- [SVR10]Lighting up Windows Server 2008 R2 Using the ConcRT on UMS
- [VTL02]Axum: A .NET Language for Safe and Scalable Concurrency
- [CL03]DirectX11 DirectCompute
- [CL35]Custom Behaviors for Advanced Microsoft Silverlight UI Effects
- [CL24]XAML Futures in Microsoft .NET Framework, Microsoft Silverlight and Tools
Agenda
- アーキテクチャ概要
- タスク
- 協調型ブロック
- UMS(User Mode Scheduling)
タスク スケジューラーとリソースマネージャについて(性能、生産性、プラットフォーム)。
UMSスレッドをユーザーが使えることでプラットフォームを改善。UMSによってアプリは、OSに依存せずに、スケジューラーのふるまいを定義できる
UMSをConcRT(同時実行ランタイム)が使うことによって、次のことが可能になる。
- 細粒度の並列化
- より決定論的なふるまい
- より優れたキャッシュの局所性
タスクグループによってスレッド アフィニティを管理できる。タスクはスケジューラーによって実行するが、ワークスチーリング キューが負荷バランスをとる。
64以上のプロセッサーをサポート(64ビットOSの場合):SetThreadIdealProcessorEx
OpenMPはC/Fortranに、MSの並列ライブラリーはC++に焦点を当てている。
現在開発中のソフトウェアが10年後にも動作しているとしたら、それは80コアのPCで動作しているかもしれない。だから今から始める必要がある?
並列プログラミングには見えない天井があるので(複雑さ・性能・スケーラビリティ)、新しいモデルが必要。Axumは並列のための新しいプログラミング モデルで、共有メモリーと純粋メッセージ渡しとのバランスをとることができる。
Axumのコンセプト
- 「チャンネル」は2つのエージェント間のメッセージを指揮するポートを定義
- 「エージェント」はスレッドと同じようなアクティブなコンポーネントだが、共有排他状態へのアクセスが制限されている。チャンネル経由でメッセージを送る。
- 「ドメイン」は複数のエージェントが共有する状態を定義。エージェントはドメイン内にホストされる。
- 「スキーマ」はペイロードを定義。
- 「プロトコル」はメッセージの正しい順序を定義。
- 「データフロー ネットワーク」は演算間でデータを伝搬させる。
ダウンロード:http://msdn.microsoft.com/devlabs/
ブログ:http://blogs.msdn.com/maestroteam/
概要
- GPUをCPUのように記述
- 問題セットの定義
- DirectComputeの使い方
- データの管理
GPUとCPU
| CPU |
GPU |
| 4コア |
32 コア |
| 4Float 幅 SIMD |
32 Float 幅 SIMD |
| 3GHz |
1GHz |
| 48-96GFlops |
1 TeraFlops |
| 2x Hyper Thread |
32x “HyperThread” |
| 64kB $L1/core |
64kB $L1/core |
| 20GB/s to Memory |
150GB/s to Memory |
| $200 |
$200 |
| 200W |
200W |
GPUはデータ並列プロセッサー、CPUは25GFlops GPUは700GFLops
DirectComputeの使い方
- DirectComuoteの初期化
- .hlslにGPUコードを作成
- DirectX コンパイラーを使ってコンパイル
- そのコードをGPUにロード
- GPUバッファをセットアップ、アクセス用にビューをセットアップ
- データ ビューをカレントにする
- GPUでコードを実行
- データをCPUメモリーにコピー
HLSLは最も広く使われいているデータ並列プログラミング言語。
DirectX Resource Type
- Buffer Resource Type: 構造化データ
- Image Media Resource Type: テクスチャ、1D, 2D, 3D, キューブ、配列
リソースビュー:リソースバッファのデータにアクセスするメカニズム
- GroupSharedレジスター:新しいレジスター
- 一時レジスターは、汎用レジスター
データ並列I/O:1600のアクティブなスレッドのI/Oは容易ではない。
ComputeShader 4.* vs 5.0
ComputeShader 4.*では倍精度は扱わない、5.0から。
トリガー、アクション、ビヘイビアーのカスタマイズ
Public class Grow : TrigggerAction<FrameworkElement>
{
protected override Invoke(object parameter){
CompositTransform transform = ....
}
http://blogs.msdn.com/expression/
現在注力しているのは
- ランタイム構文解析
- 静的分析
- コンパイル時
- デザイン時
- ローカリゼーション

XAMLデータモデル=Object - Member - Value (O-M-V) + Type
XAMLノード ストリーム:例えば、XAMLpadでイベントハンドルが可能に
- IXamlTyoeResolver,
- IAmbientProvider
- IXamlSchemaContextProvider
- IRootObjectProvider
- IXamlNameResolver
ランタイム構文解析(パーサー)の改善
- .NET4 はSystem.Xaml.dllを使用
- Silverlight 4にはまだ XamlScemaContext が必要
アナウンス:XAML Toolkit http://code.msdn.microsoft.com/xaml/
- XAMLDom: XDocumentのXLinqのようなもの
- XAML FxCop
XAMLローカリゼーション
- x:Uid か {MarkupExtension}か?
- Page.xaml.resx のような形でローカライズできることを考えている
- XAML Toolkit で公開する
お願い
- .NET 4 Beta2 +System.Xaml.dll で初めて下さい
- XAML Toolkit CTP をダウンロードして下さい
- XAML改善のためフィードバックを下さい

-
PDC09 も本番2日目です(私は3日目ですが)、今日もキーノートがありました。今日、参加したセッションは以下の通りです。
- キーノート
- BOF Developers on Better Design, User Experience and Why It Matters
- CL34 Media Foundation: Supporting Hardware Codecs and Cameras
- CL15 Modern 3D Graphics Using Windows 7 and Direct3D 11 Hardware
- FT07 The State of Parallel Programming
- CL12 Developing with the Windows API Code Pack for Microsoft .NET Framework
ウルトラセブンのテーマソングとともに現れたSteven SinofskyがIE9について、HTML5, JavaScriptの高速化、Direct2D・DirectWriteの使用などをアナウンスしましたが、PDC09の参加者(社員は除く)にWindows 7 が乗ったAcerのマルチタッチ ノートPCを無料で配布するというビッグニュースにかき消されてしまいました(写真は捨てられた箱)。
次にScott Guthrieが Silverlight 4 Betaのアナウンスをしました。Silverlight.net からダウンロードできます。
最後に Kurt DelBene が Office 2010 と Sharepoint 2010 のベータをアナウンスしました。http://www.microsoft.com/2010/ja からダウンロードできます(日本語版)。Sharepoint 2010 は Visual Studio 2010 とちゃんと統合され、F5キーでちゃんとサーバーで実行できると言うと、会場は拍手喝采でした。これまでかなり大変だったんですね。それ以外にも Duet Enteprise for Sharepoint and SAP や Outlook Social Connector もアナウンスされました。最後にMIX10についても言及されていました。
Developers on Better Design, User Experience and Why It Matters
BOF(Bird of Feather)でした。最初のお題は以下のように書いてありましたが、みんなが意見を言い合うので結局進まず、①だけで終わりました。
- Best and Worst UX Experience? What can we learn?
- The UX ROI
- Building Better UX Teams)
UCD(ユーザー中心設計)や Expression Blend の SketchFlowの話になったのですが、私がペルソナの話が聞きたいと振ったところ、100名くらいの参加者の5・6名がペルソナを使ったことがあると答え、ペルソナで盛り上がりました。そのあと開発者とデザイナーの仕事などの話で終わりました。テーマの割に1時間では時間が少なかったようです。
講演者の Stan Pennington は以前からよく知っていたので楽しみだったのですが、広い部屋に参加者が10名程度しかいなくてかわいそうでした。ランチセッションでネイティブWin32の話だから、少ないとは思いましたが...
Windows のメディア インフラは以下の通り
- Video for Windows
- DirectShow
- Windows Media Format SDK
- Media Foundation
MSがMFを使う理由
- ストリームオブジェクト(IStream)
- 接続性とデータフロー
- より良いスレッド制御
- 制約のあるコンポーネントとトポロジー
MFの機能
- COM
- C++
- Vista
- Windows 7
- Source Reader, Sink Writer, Transcode API, Asynchronous MFT, HW Accerelation
ハードウェア コーデック ライセンス プログラム
- ビデオ コーデックとビデオ プロセッサーのみ
- WME用のインボックスMDTコーデック
- wmal@microsoft.comにメールしてください。
- 2種類のコードタイプ Transcode only, General
- 正しい MF属性の設定が必要、MFTはハードウェアデータフローが使える
Media Foundationのブログ http://blogs.msdn.com/mf/
Agenda
- Windows 7 Direct3D レビュー
- Direct3D 10 レビュー
- Expanding Reach: D3D10Level9 & WARP
- HLSL & Shader
- D3D11
Direct3D 10 パイプライン
入力アセンブリー⇒頂点シェーダー⇒ジオメトリーシェーダー⇒ラスタらいざー⇒ピクセルシェーダー⇒出力合成
Direct3D10 Level9 フィーチャーレベル Level9_2, Level9_1, Level9_1, WARP
Direct3D 11 デザインゴール
- 非同期リソース ロード
- マルチスレッド 描画と状態変更
- デバイスとコンテキスト、3つのコンテキスト:デバイス、直接コンテキスト、繰り延べコンテキスト
- 状態継承
- Direct3D 11 APIは D3D10ハードウェアとドライバでも利用可能
- VistaとWinodows 7で利用可能
Direct3D 11 テセレーションは、Bezier, NURBS, 動的・静的テセレーション、変位、再分割に使える
FBXフォーマット
Windows Vistaでの性能更新 http://support.microsoft.com/kb/971644
この講演者の Burton Smith は Microsoft のフェローで並列コンピューティングの第一人者として有名な方のようです。大学の授業のようで非常に難しかったです。
結論
- 関数型言語とトランザクション メモリーはより高いレベルの並列プログラミングを実現する
- 分離とアトミックの効率的な実装が重要
- アーキテクチャがこれらの助けになるはずだ
- フォンノイマン モデルは近々置き換えられるだろう
Windows API Code Packの使い方をサンプルを使って紹介していました、
アナウンス:バージョン1.0.1 に更新されたそうです
Ask the Expert
午後6個半から開催された Ask the Expertは、Microsoftの様々なテクノロジーの専門家(講演者など)とテーブルを囲んでディスカッションできる時間です。これも日本人にはちょっと難しいイベントでしたが、ビールと軽食が出ました。

【追記】各セッションのビデオへのリンクを追加しました
-
PDC 2009 の本番が始まりました、今年は1日減って3日間です。今日は以下のセッションに参加しました。
- キーノート
- [CL09] How Microsoft Visual Studio 2010 Was Built with Windows Presentation Foundation 4
- [VTL32] Concurrency Fuzzing & Data Races
- [FT19] C++ Forever: Interactive Applications in the Age of Manycore
- [CL13] Windows Touch Deep Dive
- [FT03] Manycore and the Microsoft .NET Framework 4: A Match Made in Microsoft Visual Studio 2010
Ray OzzieらがAzureのテクノロジーの話を、Bob MugliaらがAzureのレイヤーとビジネスの話をしました。ライブ中継があったらしいです。
Visual Studio 2010はWPFベースで作られており、その苦労話でした。
WPFを使った理由
- 技術的証明
- アーキテクチャ的理由
- VS2010の重要な機能のため
どのWPF機能を使ったか?
- XAMLを使った宣言UI
- データバインディング
- スタイル テンプレート
- アプリケーション リソース
- Win32との相互運用
- メッセージループとの統合
- DirectWriteを基にした新しいテキスト
段階的アプローチ
- データモデルを定義
- メインウィンドウをWPFに置き換え
- 新しいWindowマネージャとコマンドバーを書く
- 一部のチームをスカウト(繰り返し)
- テスト、テスト、テスト
- テスト用に切り替え
- 古いコードを取り除く
テストのコスト
- 過小評価していた
- しかし、チャンスでもあった(統合テストフレームワーク、UIオートメーション)
- データレイヤーでのテスト
挑戦だったのは
- 混合モード アプリ(ネイティブとマネージ、WPFとHWND Winフォーム)
- 既存の拡張機能が動作するように
- 開発をストップしてはならない
- テキストの品質と性能
混合モード アプリの挑戦
- データレイヤーでの相互運用(マネージコードからネイティブ モデルにバインディング)
- プレゼンテーション レイヤーでの相互運用
デモ:フォーカスが動く問題
テキストと画像の品質
性能
メンバー:約12名とWPFチームとExpressionチーム
同時実行は難しい
- 非決定論的
- Heisenbugsの結果
- 観察がバグを修正してしまう
- 大きな生産性の問題
MSRではCuzzとFeatherLiteを開発
- Cuzz: 百万回に1回のバグを見つけるツール
- FeatherLite: 軽量なデータ競合検出
VS2010のネイティブ並列ライブラリー
Agenda
- 同時実行を容易にする
- カスタマイズ可能でスケーラブルな同時実行ランタイム
- 共有状態の管理
- 生産性のための並列開発ツール
並列パターン ライブラリー(PPL):Task, Task group, Paralle Loos
非同期エージェント ライブラリー:Agent, Souce and Target, 協調型送信と受信
http://code.msdn.com/concrtextras にVS2010 Beta2 用のサンプルが更新されていました。
Win32マルチタッチAPIの話でした。
Agenda
- はじめに
- Windows Touch APIの概要
- 実際のISVからの質問と解答
- デモ
タッチはチャンス
Windows Touch APIs
- WM_GESTURE
- WM_TOUCH
- マニピュレーションと慣性
デモ:3D マニピュレーション
Agenda
- なぜ並列か?なぜ今か?
- タスクが新しい最良の友達
- ループを活用
- 並列を可視化
ムーアの法則はメニーコアシフトへ:10年以内に80コアになる
並列化のオーバーヘッドを最小化:実装と実行どちらも
新しい同期プリミティブ
デモ:並列プロファイラーと並列デバッガー
このセッションは昨日のワークショップと同じく Stephen Toubが講演しました。やはりスライドよりコードを書き、受講者からの質問に片っ端から答えるという日本人にはつらいスタイルでした。彼はマネージ並列のプログラム マネージャですが、本当にすごいと思います。

【追記】各セッションのビデオへのリンクを追加しました