MIX10 Recap

Not only did I have the chance to attend my first PDC recently, but my gracious employer sent me to MIX10 this year. I’ve always wanted to go to this conference as I have design interests and tendencies and this is place where conversations about design happen in conjunction with the Microsoft technology stack.

Here is my personal recap of the event. I did this for PDC09 and it was quite helpful to not only reflect back on the conference but also in compiling a list of sessions that I wanted to watch offline (or rewatch again).

The main excitement was, of course, Windows Phone 7. However, my main objective at the conference was to hit up a lot of the sessions on design, learning more about it myself, and how I can better change my own personal development process as well Starkey’s development process. With that in mind, and especially because he is doing some iPhone development, my colleague picked up the Windows Phone sessions. I’m definitely going to dive in on some of those now that the conference is finished.

The best part of the conference was probably just meeting and hooking up (for the first time) with some of the other WPF Disciples. You can always take in the conference offline (and often in a better manner), but it isn’t every day where you can talk with (and have fun with) great minds and people.

It was an excellent conference! I hope I will soon be able to attend again.

Sessions That I Attended

Session Title Notes
WKSP02 Design Fundamentals for Developers by Robby Ingebretsen This workshop and Robby’s other session (which was kind of a follow-up to the workshop) were the highlights of conference for me. He is a designer that has a background in development and was part of the team that made WPF. He has done some beautiful and amazing work. A recent piece of work is his design efforts on Seesmic for Windows (which has been converted from WPF to Silverlight recently). He is also the creator of one of my favorite tools: Kaxaml. Besides the cool name, it is the best loose xaml split-view editor out there. The session was all about introducing design to people who don’t have a background in design. As this was a pre-conference workshop, it probably won’t be released as a video you can watch offline. However, Robby also did this session last year, and for some reason they did release it for MIX09. A must watch.
WKSP03 Design Tools & Techniques by Arturo Toledo, Guido & Luigi Rosso, Corrina Black I was very excited for this session because Arturo is a designer PM for Microsoft. Last year he published a great series on UI Design for Developers. Unfortunately, they changed things around and he was not the one presenting but the content was still top-notch. A set of twins, one a developer (Luigi) and one a designer (Guido), presented for the first two hours. They talked about the design and development process for their company, Archetype. They also showed off some amazing experiences they’ve created and then how to do create those experiences in Expression Blend. One of those applications was a Windows Phone 7 news reader that was jaw-dropping (and demoed in the keynote) and it was obvious that they get and totally understand the designer/developer collaboration/workflow. I encouraged them to blog about this because I think a lot of people could learn from them. Finally, Corrina Black finished off the third hour with a high-level Windows Phone 7 design overview. As before, since this was a workshop, the video will likely not be posted … which is too bad. Definitely worth a watch, if it becomes available.
KEY01 Keynote Day 1 by Scott Guthrie, Joe Belfiore This keynote was all about Windows Phone 7 where Joe covered what it was about and Scott Guthrie covered the development tools (Visual Studio 2010) and technology (Silverlight, XNA) for the phone. The only disappointment was that they didn’t hand out a phone for us to start playing with. PDC really set the bar high for swag (they gave us a free netbook at that conference). I really, really like that I’m already a Windows Phone 7 developer due to my WPF and Silverlight skills.
DS11 Great User Experiences: Seamlessly Blending Technology & Design by Andy Hood This was a session by Andy Hood of AKQA. He leads a creative development team there and ran through four AKQA gigs where they blended (think: no rough edges) technology with great design. My favorite was how they used Photosynth in a Facebook Connect game called 221B (that is associated with the Sherlock Holmes movie). They also went to great lengths to remove the Facebook branding and from what they showed, you couldn’t tell it was associated with Facebook at all. Favorite quote: “Beware the lollipop of mediocrity, lick it once and you will suck forever.”
EX14 Understanding the Model-View-ViewModel Pattern by Laurent Bugnion Here is another session that I was greatly looking forward to and I wasn’t disappointed. Laurent is a fellow WPF Disciple and his session was an Open Call session that was voted in by the people planning on attending MIX. That is something in and of itself. He covered what the pattern is and what the pattern is not with a special emphasis on how to keep things blendable (i.e. how to use MVVM and still be able to use the design surface in Blend). If you know me, you know that is right up my alley! He also went over what is contained in his MVVM Light Toolkit. Laurent in a word, rocks. Definitely a must watch.
EX06 10 Ways to Attack a Design Problem and Come Out Winning by Robby Ingebretsen
KEY02 Keynote Day 2 by Scott Guthrie, Dean Hachamovitch, Bill Buxton, Doug Purdy
DS06 Touch in Public: Multi-touch Interaction Design for Kiosks & Architectural Experiences by Jason Brush Jason Brush from Schematic gave this presentation and it was focused on design of touch user experiences in a public setting, e.g. like kiosks or large screen wall type experiences. After recently getting an iPod Touch, I’ve become very interested in natural user interfaces (NUI) and it is quite fascinating (and obvious I guess) that you need to design differently for each of theses experiences. The basic message: design for the space that you will be in. Don’t forget the context of your application.
DS08 Creating Great Experiences Through Collaboration by Noah Gedrich, Eric Perez, Sean Scott This session was presented by a trio of people from Blitz: a developer, a creative, and a user experience guy and its focus was how collaboration between all the disciplines can yield some amazing experiences. They talked about collaborating early and often and the mutual respect between disciplines required to make that happen. They also shared some of the practical methodology that Blitz uses, including how they brainstorm as a team. Another interesting thing they brought up was how they use the 6 human needs (significance, connection, certainty, variety, growth, and contribution) in order to craft immersive experiences.
DS12 Total Experience: A Design Methodology for Agencies by Conor Brady This session was presented by an Irish fellow named Conor Brady of Organic. In it, he talked about Organic’s creative process and how they navigate the complex world of technology. One of the key things I was trying to get out of MIX personally was how other companies go about creating experiences and how they blend design and development in doing so … and so this session was right up my alley. Conor really knew his stuff and the experiences he shared were very cool, but it was a little too high level for my taste.
DS16 An Hour with Bill Buxton by Bill Buxton If you’ve never listened to Bill Buxton, you have to check this session out. He keynoted both last year and this year and is one of the most interesting people I’ve ever listened to. An influential designer on the world stage, he is also a principal researcher at Microsoft that is changing the company from within. He has a very engaging style: it is very laid-back and it’s like you’re talking to a friend or colleague. He was very keen on what he called BXT. BXT stands for Business, Experience, and Technology and he maintained that every team must have this trio of expertise and that they each must be on the same footing.
EX25 Design the Ordinary, Like the Fixie by DL Byron, Kevin Tamura Yet another design/UX session that I attended. The main message here was of minimalism. Good design is hard, but it makes the complex … simple. That is, it is all about taking away. Once you can’t take anything else away, you’ve nailed it. This is a good message to internalize as a software developer for in my experience it is all too easy to keep cluttering up that user interface and creating a behemoth that scares (especially new) users and intimidates them.
EX18 Developing Natural User Interfaces with Microsoft Silverlight & WPF 4 Touch by Joshua Blake This was another Open Call session voted in by the community and it didn’t disappoint. It was focused on the practicalities of how to create natural user interfaces (NUI) with multi-touch and using Silverlight and WPF 4. In fact, he even gave his presentation using some software that he created (that he called Natural Show). Definitely one of the better session at the conference.
CL03 Prototyping Rich Microsoft Silverlight Applications with Expression SketchFlow by Chris Bernard In this session, Chris Bernard, a UX Evangelist at Microsoft went over how to use SketchFlow in order collaboratively sketch, prototype, and explore the user experience you are trying to create. This was a nitty-gritty session that personally exposed me to more of SketchFlow’s functionality. Chris did an amazing job and made several interesting claims about how useful SketchFlow is. The one that stands out is that he says that you should always be able to sketch up an animation faster in SketchFlow than doing it in code or xaml. He also said that you should start with SketchFlow animation before you use Blend behaviors. Great session and worth your time especially if you are new to SketchFlow like I am.

Sessions That I Missed but Want to Watch

Session Code Session Title Presenters Category
CL02 Authoring for Windows Phone, Silverlight 4 and WPF 4 with Expression Blend Christian Schormann, Peter Blois Blend
CL55 Dynamic Layout & Transitions for Microsoft Silverlight 4 with Microsoft Expression Blend Kenny Young Blend
EX15 Build Your Own MVVM Framework Rob Eisenberg MVVM
CL52 Microsoft Silverlight Optimization & Extensibility with MEF Glenn Block MEF
DS03 Running with Wireframes: Taking Information Architecture (IA) into Design Matt Brown UX/Design
EX26 From Comp to Code: A Design Communion Evan Sharp UX/Design
DS04 The Life Cycle of a Wireframe Nick Finck UX/Design
DS13 The Elephant in the Room Nishant Kothary UX/Design
DC01 The Laws of User Experience Anthony Franco UX/Design

Above are the ones I most want to watch, but I’ll definitely want to take in some of the Windows Phone 7 ones as well as some of the Silverlight ones. So, here those are (for easy access for myself and others).

Other Interesting Sessions

Session Code Session Title Presenters Category
CL13 Overview of the Windows Phone 7 Series Application Platform Charlie Kindel WP7
CL14 Windows Phone UI & Design Language Chad Roberts, Michael Smuga, Albert Shum WP7
CL16 Building Windows Phone Applications with Silverlight, Part 1 Mike Harsh WP7
CL17 Building Windows Phone Applications with Silverlight, Part 2 Peter Torr WP7
CL18 Windows Phone Application Platform Architecture Istvan Cseri WP7
CL60 Silverlight Performance on Windows Phone Seema Ramchandani WP7
CL19 Development & Debugging Tools for Building XNA Games for Windows Phone Cullen Waters WP7
CL22 Building a High Performance 3D Game for Windows Phone Shawn Hargreaves, Tomas Vykruta WP7
EX30 SVG: The Past, Present, and Future of Vector Graphics for the Web Patrick Dengler, Doug Schepers Graphics
CL56 A Case Study: Rapid WordPress Design & Prototyping with Expression Web 3 Morten Rand-Hendriksen WordPress
EX21 Syncing Audio, Video, and Animations in Microsoft Silverlight Applications Dan Wahlin Silverlight
CL07 Microsoft Silverlight 4 Overview: What’s in Store for Silverlight 4? Keith Smith Silverlight
CL10 Stepping Outside the Browser with Microsoft Silverlight 4 Ashish Shetty Silverlight
CL15 An Introduction to Developing Applications for Microsoft Silverlight Shawn Oster Silverlight
CL08 Microsoft Silverlight 4 Business Applications Scott Morrison Silverlight
CL59 Unit Testing Silverlight & Windows Phone Applications Jeff Wilcox Silverlight
EX07 Principles of Microsoft Silverlight Graphics & Animation Jeff Paries Silverlight
EX31 Developing Multiplayer Games with Microsoft Silverlight 4 Mike Downey, Grant Skinner Silverlight
EX38 Building Large-scale, Data Centric Applications with Silverlight Roman Rubin, Ramya Parthasarathy Silverlight
CL53 Flash Skills Applied to Microsoft Silverlight Design & Development Adam Kinney Silverlight
EX54 An Enterprise Perspective on Silverlight 4 Robert Ellis Silverlight
EX51 Building Finance Applications with Microsoft Silverlight 4 Cai Junyi Silverlight
CL50 Search Engine Optimization for Microsoft Silverlight Brad Abrams Silverlight
CL30 Building Innovative Windows Client Software Scott Hanselman, Tim Huckaby, Tim Sneath, Scott Stanfield, Dave Wolf UX/Design
DS05 Total Experience Design Paul Dawson UX/Design
EX56 Designing Rich Experiences for Data Centric Applications Yoshihiro Saito, Ken Azuma UX/Design
FTL02 Building Pivot Collections Troy Schauls, Jeff Weir UX/Design

Heh. This recap got longer than (and took more work) I thought it would. Hope it is useful and helpful to others.


PDC 2009 Recap

I had the opportunity to attend my first PDC this year and it was great! The content was top-notch and it was extremely fun to meet a lot of the Microsoft guys (and non-Microsoft guys) that I’ve worked with over the years (albeit virtually).

Here is my recap of the event.

The basic story was around Windows 7, Windows Azure (cloud computing), Visual Studio 2010, .NET 4 (WPF 4), and Silverlight 4.

If you weren’t able to go, you can still take in all the content yourself at your leisure … as Microsoft has made it publicly available at http://microsoftpdc.com/Videos.

During the event, I also live tweeted most things I attended. Check out http://twitter.com/cplotts if you want a …  ‘as it happened’ feel for the event.

Sessions That I Attended

Session Code Session Title Presenters Notes
WKSP04 Getting the Most out of Silverlight 3 Ian Griffiths, Richard Griffin This workshop was tag team with Ian Griffiths covering basic Silverlight concepts and then how to go about hooking a Silverlight application up to some services. Richard took over and talked about using MVVM and MEF with Silverlight and ended the day showing how to use Blend to turn a screen shot into a living breathing application.
KEY01 Day 1 Keynote Ray Ozzie, Bob Muglia This keynote was all about Windows Azure and cloud computing. Of particular note was the announcement for Microsoft PinPoint … a new marketplace for online services … and the announcement for Microsoft Codename ‘Dallas’ which is Microsoft’s effort to treat data as a service (which they will make available through PinPoint).
CL09 How Microsoft Visual Studio 2010 Was Build with WPF 4 Paul Harrington This was a great session where Paul described how Microsoft rewrote Visual Studio using WPF. This was a major undertaking and they had to actually add functionality to the WPF API in order to make it happen. Also of note was the many keyboard interop issues that they tackled and how they did so. A great WPF session, especially for those doing interop.
CL30 Microsoft Expression Blend 3 for Developers: Tips, Tricks, and Best Practices DoRon Motter This was a quick lunch session where DoRon went through 9 quick tips on using Expression Blend.
CL14 Advanced Graphics Functionality Using DirectX Michael Oneppo This was the 2D DirectX session that I attended. Most of it went right over my head, but I would like to dive in and understand DirectX since WPF is built on top of it.
CL11 Advanced WPF Application Performance Tuning and Analysis Eric Harding, Bart De Smet In this session Eric and Bart go through some general performance truths and then show you how to use vmmap, .NET Memory Profiler, Perforator, Visual Profiler, Process Explorer, and xPerf to solve performance problems in the areas of memory, cold start, warm start, and runtime. This is a must watch session for software engineers using WPF.
KEY02 Day 2 Keynote Steven Sinofsky, Scott Guthrie, Kurt DelBene This was the big keynote. Steven Sinofsky started it by talking about Windows 7. Then Scott Guthrie talked about Silverlight 4 and the new functionality it brings to the table. Finally, Kurt DelBene wrapped it up with Office 2010 and Sharepoint 2010. A lot of stuff happened in between too: demos of hardware accelerated text rendering in IE 9, demos of SketchFlow, demos of cool Silverlight 4 goodness, and more. And of course I have to mention that they gave away a free laptop to all attendees! Awesome with a capital A!
CL31 Mastering WPF Graphics and Beyond David Teitlebaum This was the session I was looking forward to the most. David rocks and I am very interested in WPF and in graphics. David is the WPF Graphics Program Manager. In this session, he covered the new WPF 4 graphics features (new text rendering, layout rounding, animation easing, pixel shader 3.0 support, cached composition, and more). Another must watch WPF session, especially geared towards those working in graphics. They should’ve given David a two hour slot, it was like drinking from a fire hose.
CL15 Modern 3D Graphics Using Windows 7 and Direct3D 11 Hardware Michael Oneppo This was the 3D DirectX session that I attended. Good stuff, mostly over my head. It whetted my appetite though. There was a great slide on the D3D10 pipeline showing where each shader fits in.
CL20 Improving and Extending the Sandbox with Microsoft Silverlight 4 Joe Stegman This was a surprise session as this wasn’t announced until PDC itself and it was all about the work Microsoft has done to extend the Silverlight sandbox, and just in general to crack it open. Of particular note is the new elevated trust out of browser stuff … that allows you to do almost anything via COM Automation. This is a game changer and likely will prove beneficial to our own Silverlight efforts.
CL22 Attended CL22, Advanced Topics for Building Large Scale Applications with Microsoft Silverlight John Papa I have never heard John Papa speak, but he is excellent. And although the topic doesn’t suggest it … this talk was all about MVVM (the Model-View-ViewModel pattern). In the talk he talks about two main variations on the MVVM pattern and how to use Prism as a ‘gap filler’ where MVVM doesn’t provide any answers. This is a must watch session if you are doing WPF or Silverlight. The MVVM pattern is the industry de-facto standard and John explains it well and concisely. I myself will be going over this one again.
CL02 Microsoft Silverlight 3: Advanced Performance and Profiling Techniques Seema Ramchandani I was a little late to this session but the parts I caught were solid gold. Seema covered Silverlight graphics and performance and this talk fits right alongside Eric Harding’s and Bart De Smet’s WPF performance talk. Another must-see.
CL10 WPF 4 Plumbing and Internals Blake Stone This talk was probably the best of the conference. Ok, maybe that is unfair to the other great content, but Blake Stone did an amazing job describing some of the internals of WPF and many of the things that trip developers up. Here is a link to the slides and sample code. Needless to say, this WPF session is a must-watch.
FT24 Building Extensible Rich Internet Applications with the Managed Extensibility Framework Glenn Block This session is an introduction to MEF (Managed Extensibility Framework) which Microsoft is using internally in its own products. This is a great technology and Glenn always gives a good presentation.
CL35 Custom Behaviors for Advanced Microsoft Silverlight UI Effects Pete Blois Pete Blois is the guy who created Snoop. So, you have to love him. In this session, he shows the audience how to create custom Expression Blend behaviors, making it easy to drag, drop, and create compelling user experiences. If you have the Blend love, you’ll enjoy this session.
CL24 XAML Futures in Microsoft .NET Framework, Microsoft Silverlight, and Tools Rob Relyea, Michael Shim Rob Relyea and Michael Shim closed out the conference for me by talking about the new  and upcoming features in XAML 2009 (XAML 2006 is what is currently out there) and what has been going on in this space lately. Unfortunately, neither Silverlight 4 nor WPF 4 nor any of the tools take advantage of XAML 2009 yet.

Sessions That I Missed but Want to Watch

Session Code Session Title Presenters Category
CL13 Windows Touch Deep Dive Reed Townsend Touch/Multi-Touch Development
CL27 Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers Anson Tsao, Robert Levy Touch/Multi-Touch Development
CL23 SketchFlow: Prototyping to the Rescue Christian Schormann SketchFlow
CL01 Microsoft Silverlight 4 Overview Karen Corby Silverlight
CL06 Networking and Web Services in Microsoft Silverlight Yavor Georgiev Silverlight
CL21 Building Amazing Business Applications with Microsoft Silverlight and Microsoft .NET RIA Services Brad Abrams Silverlight
CL03 DirectX 11 DirectCompute Chas Boyd DirectX
FT35 Microsoft Visual C# IDE Tips & Tricks DJ Park C#
FT11 Future Directions for C# and Visual Basic Luca Bolognese C#
FT31 Dynamic Binding in C# 4.0 Mads Torgersen C#
FT51 Future of Garbage Collection Patrick Dussud C#
FT07 The State of Parallel Computing Burton Smith Parallel Computing
FT21 PLINQ: LINQ, but Faster! Ed Essey, Igor Ostrovsky Parallel Computing
FT54 Power Tools for Debugging Sandeep Karanth, Kapil Vaswani Diagnostics, Debugging, Testing
FT16 Advanced Diagnostics, IntelliTrace, and Test Automation Habib Heydarian Diagnostics, Debugging, Testing
CL16 Optimizing for Performance with the Windows Performance Toolkit Michael Milirud Diagnostics, Debugging, Testing
VTL30 Managing Development to Inspire Innovation and Create Great Software Experiences Scott Stanfield, Bill Crow UX
VTL05 A New Approach to Exploring Information on the Web Gary Flake UX

What a great conference! Hope this recap helps you decide what to dive in on yourself and provides for some easy links to do so.