All posts by joshholmes

MIX Day 1 Keynote Ray Ozzie

Ray OzzieRay Ozzie kicked off the MIX keynote by talking about the fantastic new things that have happened at Microsoft in the past year that are really re-engineering the DNA at Microsft from the acquisition of Aquantitive to the fantastic internal work with Silverlight 2.0 and IE8. As an employee in the trenches, it’s often hard to keep focus on that big picture and remember that the company is aggressively self critical and self correcting. Another great step we are trying to take, that Ray touched on a little bit, is acquiring Yahoo!. It’s interesting, but even in the field, I’ve seen that just the fact that we’ve made an offer has had a profound effect on a lot of people and is driving us into new and interesting directions. After that, he talk about the big picture and the directions that Microsoft is going with Services and Advertising and how that fits into the big picture of our S+S message. By Services, he’s talking about software services in the Cloud (internet/network) rather than consulting services.

The next huge point that he talked about is the idea of software above the level of a single device. Our users are starting to leverage intelligent devices of all types from phones to desktops to cars in every part of their lives. We need to look at how to really leverage the strengths of each of these devices and platforms.

There are 5 buckets that we can think about these services in the cloud.

  1. Connected Devices
    • The vision here is that we will have applications and services that span
  2. Connected Entertainment
    • The vision here is that we would only have to license our software and media once and be able to use that across all of our devices from our music player to our desktop or car. This is a great
  3. Connected Productivity
    • The vision here is that we will have a seemless experience from the desktop to the mobile device to the web with Office Desktop, Office Mobile and Office Live (web based).
  4. Connected Business
    • The start of the vision is a set of services from online CRM, financial services, hosted exchange, commutation services and even hosted SQL Server with an elastic type cloud supporting it. The long game is enabling utility computing in the enterprise where people will virtualize more and more of their infrastructure onsite and in the cloud.
  5. Connected Development
    • We have a ton of different scenarios that we can code to with the same skill set of .NET and XAML across many different platform. That’s exciting. 

Personally, I’m really excited to part of the company with an end to end vision that is as complete as the one that Ray was able to lay out today.

Technorati Tags: ,,,

Open Space | MIX08

Open Space

I’m going to MIX! And hope to see you there but it’s sold out so if you’re not already coming, I’ll see you next year. For those of you who are lucky enough to have tickets, we’ve got a lot of stuff going on and I’m actually involved in helping run what I think will be the coolest part… Drew Robbins successfully lobbied for an Open Space at MIX. Then he reached out to me, Tim Heuer and Peter Laudati to help him run it. I can’t tell you how much fun this is going to be!

If you want to participate, not just attend, but contribute to the conversation – this is place for you!

Clipped from the Open Space site on VisitMix.com.

New to MIX08 will be an Open Space area where attendees control the MIX conversation. Open Space is a way to bring together groups of people interested in a common topic to have an interactive discussion. In an Open Space session, there may be an expert who is passionate about a topic presenting to an audience or there may be a small group of people discussing an idea.

Four principles of Open Space:

  1. Whoever comes are the right people to be there
  2. Whatever happens is the only thing that could have happened
  3. Whenever it starts is the right time
  4. When it’s over, it’s over

Schedule facilitation and conversation recording will be provided. All you need to do is suggest the topics and participate. Submissions will be accepted onsite in the Sandbox starting Tuesday, March 4th from 4:00pm – 8:00pm and throughout the event. The schedule will be updated each evening and posted to the MIX website.

I want to propose topics about architectural patterns in RIA, REST verses Soap, common keyboard conventions and why more Web Applications don’t follow them and more. And I want your thoughts on these topics! Come pitch in and participate in the conversation.

What do you want to talk about?

Open Space | MIX08

What’s Central Region (my new territory) on Silverlight?

Continuing my thoughts from when Dan Hounshell asked me what’s my territory in response to my announcement about taking on the RIA Architect Evangelist Roll. I started thinking about the Virtual Earth map overlay and thinking it’s really not rich enough. So I thought I’d spend 15 minutes or so and slap together a Silverlight visualization of the Central Region…

Much of the map I cribbed from the Silverlight Airlines application because it was easy… πŸ™‚ I did spend some time cleaning up that XAML to have actual state names instead of some bizarre path name. I’m keeping that XAML for a lot of future fun.

*Key
Blue == Heartland District
Green == MidWest District
Orange == North Central District
Red == South Central District

I thought about just coloring the states but then that would be boring so I wrote a little bit of JavaScript to create the animation on the fly, attach it to the root and starting the animation. That’s how I got the glowing style effect on the states.

ShowState: function(control, stateName, colorName)
{
    var xaml =”<Storyboard x:Name=\”highlightState”+stateName +”\” xmlns:x=\”http://schemas.microsoft.com/winfx/2006/xaml\”>” +
       “<ColorAnimationUsingKeyFrames RepeatBehavior=\”Forever\” BeginTime=\”00:00:00\” Storyboard.TargetName=\””+stateName+
            “\” Storyboard.TargetProperty=\”(Shape.Fill).(SolidColorBrush.Color)\”>” +
            “<LinearColorKeyFrame KeyTime=\”00:00:00.0000000\” Value=\”” + colorName + “\”/>” +
            “<LinearColorKeyFrame KeyTime=\”00:00:01.0000000\” Value=\”Dark” + colorName + “\”/>” +
            “<LinearColorKeyFrame KeyTime=\”00:00:02.0000000\” Value=\”” + colorName + “\”/>” +
        “</ColorAnimationUsingKeyFrames>” +
    “</Storyboard>”

    var animation = control.content.createFromXaml(xaml);
    var root = control.content.findName(“Page”);  
    root.Resources.Add(animation);

    animation.begin();
},

The other relevant code is the resizing code.

In the load, we create and add the transform to the root element that does a ScaleTransform (read resizing transformation). The other useful thing that this function does is that it wires up the resize event handler.

    handleLoad: function(control, userContext, rootElement)
    {
        this.control = control;

        _silverlightControl = control;

        var rootCanvas = rootElement.findName(“Page”);
        if (rootCanvas) {
            _originalWidth = rootCanvas.width;
            _originalHeight = rootCanvas.height;

            rootCanvas.renderTransform = _silverlightControl.content.createFromXaml(‘<TransformGroup><ScaleTransform Name=”rootScaleTransform” ScaleX=”1″ ScaleY=”1″ /><TranslateTransform Name=”rootTranslateTransform” X=”0″ Y=”0″ /></TransformGroup>’);
            _rootScaleTransform = _silverlightControl.content.findName(“rootScaleTransform”);
            _rootTranslateTransform = _silverlightControl.content.findName(“rootTranslateTransform”);
        }

       //Wire up onResize EventHandler
        _silverlightControl.content.onResize = this.handleResize;
        this.handleResize();
        this.ShowStates(control, rootElement);
    },

After that, we listen for the resize and do the appropriate math to scale the transformation to the right size. This is cool because as we resize the root element, it will automatically take care of it’s children for us.

handleResize: function(sender, eventArgs)
{
    // Capture the current width/height
    var currentWidth = _silverlightControl.content.ActualWidth;
    var currentHeight = _silverlightControl.content.ActualHeight;

    if (_rootScaleTransform && _rootTranslateTransform && _originalWidth && _originalHeight) {
        // Scale the root Canvas to fit within the current control size
        var uniformScaleAmount = Math.min((currentWidth / _originalWidth), (currentHeight / _originalHeight));
        _rootScaleTransform.scaleX = uniformScaleAmount;
        _rootScaleTransform.scaleY = uniformScaleAmount;

        // Translate the root Canvas to center horizontally
        var scaledWidth = _originalWidth * uniformScaleAmount;
        _rootTranslateTransform.x = (currentWidth – scaledWidth) / 2;
        // var scaledHeight = _originalHeight * uniformScaleAmount;
        // _rootTranslateTransform.y = (currentHeight – scaledHeight) / 2;
    }
}

So, understand the central region’s boundaries now?

What’s Central Region (my new territory) on Virtual Earth/Live Maps?

Where is ... ?Dan Hounshell asked me what’s my territory in response to my announcement about taking on the RIA Architect Evangelist Roll. I thought about just typing out the response, but then I realized that that would be very un-RIA of me and it would, as many standard HTML pages do, fail to really help people visualize where I’m working.

The first one that I thought of was a Virtual Earth map overlay. I used to think these were hard until Larry Clarkin showed me how easy these were to do. I’ll be doing a lot of these over time as I start doing mashups for events and the like. The hope is to start doing a GeoRSS feed at some point that will have a list of events that I’ll be at, where to find registration and the like. This has been in the plans for quite a while, the questions where to host it and the like are interfering with progress.

However, for right now, I’m just going to do the simple layer over Virtual Earth to show you the Central Region.

This was relatively simple to do. All of the code that you need to get started can be found on the Interactive SDK which makes this the best documented API I’ve seen Microsoft produce.

This is the code that I wrote. Notice the “…” which means that there’s about another 20 lines of those to make the central region shape. The hardest part of this one was getting all the latitude/longitudes right. I didn’t get it perfect but it’s close.

function AddCentralRegion()
{
var fillColor = new VEColor(0,0,255,0.2); //Transparent Blue

var centralRegion = new VEShape(VEShapeType.Polygon,
    [new VELatLong(48.99989069893174, -104.04843181371691),//    North West Corner
    new VELatLong(41.0017229451484, -104.05321687459947),
    new VELatLong(41.00233021312762, -102.05171227455139), //KS NW Corner

    new VELatLong(49.38326680201004, -95.15361785888673),
    new VELatLong(48.998803197833915, -95.15284538269043)
    ]);

    AddShape(centralRegion, fillColor);
    map.SetCenterAndZoom(new VELatLong(38.47939467327643, -90.087890625), 4);
}

function AddShape(shape, fillColor)
{
shape.HideIcon(); //Don’t need the pushpin
//Set the line color
var lineColor = new VEColor(0,0,0,1.0); //Black
shape.SetLineColor(lineColor);
//Set the line width
var lineWidth = Math.round(1);
shape.SetLineWidth(lineWidth);
//Set the fill color
shape.SetFillColor(fillColor);
//Set the info box
map.ClearInfoBoxStyles();
shape.SetTitle(“<h2>Heartland</h2>”);
shape.SetDescription(“<div>Heartland District</div>”);
//Add the shape the the map
map.AddShape(shape);
}

One small frustration was that I couldn’t figure out the JavaScript ordering and whatnot to get it to embed nicely in a blogpost. It really wants the call to load the map to be in the body’s onload call because that happens after the rest of the HTML has been loaded and rendered. That’s a little annoying and I’m going to figure out the issue and post a fix soon.

Technorati Tags: ,,

My New Position at the Central Region RIA Architect Evangelist

New logo for Ria

It really couldn’t come at a better time with MIX and SxSW coming up so soon. I’m moving into a new role as the Central Region Rich Internet Application Architect Evangelist. I’m leaving the Heartland in the VERY capable hands of Brian Prince. (See his announcement called Farewell)

So, what does that mean?

I’m going to be broadening my geography and focusing in on a technology stack. I’ll be covering all of the center of the United States with a heavy focus on Rich Internet Applications and partners.

In this technical and business development role,I get the opportunity to combine my passion for Rich Internet Applications and pragmatic business experience to help consulting shops, design firms and customers in their pursuit of the Microsoft stack in the web space.  That includes broad  responsibility for evangelizing the complete Microsoft platform with heavy emphasis on Silverlight, .NET Framework, Visual Studio, Expression, and ASP.NET AJAX. 

clip_image001

I’ve been asked by a lot of my friends that I’ve made over the past year at Microsoft if I’m abandoning Heartland and if they are going to see me again. This is the typical pattern where someone does well as an evangelist and then moves off to Redmond and nobody sees them again. That’s not the case here. I’m staying in Michigan. I’m not moving to Redmond and don’t have plans for for the foreseeable future. I am tightening my focus so I’m not going to be all over the District covering anything and everything Microsoft related. However, I will be heavily involved in helping grow the community and partners that are in my chosen technology stack. Actually, a lot of my job will be business development with my partners so I will be seeing (or at least communicating with) a lot of you a lot more often.

Most people that I’ve talked to have said that it makes sense for me as most of my posts and activities lately have been in this realm anyway. I’m just officially getting permission to follow my passions and do the work that I want to do. I’ll be working very closely with Chris Bernard, Don Burnett, Jeff Blankenburg, Larry Clarkin, Adam Kinney, Scott Barnes and more! It also means that I’ll get to more things like the Phizzpop Design Challenge only I’m hoping to bring my own flair to them now that it’s officially part of my job.

If you have any questions at all or would like to work with me on something, feel free to email me at myfirstname.lastname (at) myplaceofemployment.com – please read that and decipher as my first name is Josh, last is Holmes and I work at Microsoft. πŸ™‚

Technology Should Not Make You More Productive

Larry Clarkin... Larry Clarkin put up a post called “Technology should not make you more productive“.

When I first read this, I was stumped trying to figure out why one of the more progressive technologists that I know would say something that bizarre but as I read the post, it snapped into focus.

His opinion is that “Technology should not make you more productive, but it should totally change the way that you work”.

I couldn’t agree more. I think back on the way that I worked even a couple of years ago and how technology has transformed my outlook and way that I work. It’s no longer apples to apples comparisons. Tasks that used to take me hours or weeks to complete are either irrelevant or wrapped up in a single statement that I can delegate to something else. Think about the way that we write code these days verses yesteryear. I used to spend weeks and months writing data layer code, front end population of fields and the layout of the screens for even the simplest of applications. At this point, I wire up a fantastic ORM, such as NHibernate, SubSonic, ActiveRecord or any number of others, get the XAML form from a designer and wire the databinding in seconds. That allows me to largely ignore the “plumbing” code and focus on the business logic. I’m still writing the same number of lines of code a day, but it’s completely different code than I used to write.

I think about Cell Phones, SMS, Email, Twitter, TripIt, Dopplr, Plaxo and all the other technologies/applications that I use every single day of the year and it has completely transformed the way that I work. I used to be fanatical about getting someone’s email address. Now, I’m setting up most of the CodeToLive episodes through Twitter. At this point, if they are on Twitter, I often DM someone on twitter instead of trying to email them. At one point in time, that would have been over email. Prior to that, it was phone. Prior to that it was in person or not at all. πŸ™‚

But if you think back to other truly disruptive technologies, such as the boat, train, car, plane, rocket, transporter (wait – not yet but I’m sure that it’s coming), each of these have completely transformed our society. There was a time when getting on a boat for the new world meant a zero probability that you were going to see your family again. Most people lived within miles of where they were born because travel and moving meant giving up everything. Now in an age of jets, good friends and family stay in contact over XBox Live or Skype or Twitter on a daily basis with complete and total location independence. This is an exciting time as technology is starting to bring people closer together rather than pushing them apart.

I’m looking forward to the next technology that really revolutionizes our technology rather than incrementally improve what we already have.

What do you think it will be?

Larry Clarkin – Technology should not make you more productive

Rocking: Guitar Rising for Real Guitar Heroes

Transparent GuitarGuitar Hero for adults is coming!!! I really don’t want to knock Guitar Hero and Rock Band but they are just not for me. Honestly, (and this is not bragging, it’s just a fact) I’ve never played either one. If I’m going to spend the time to learn an instrument, it’s not going to be a plastic one that is only useful in the context of my living room. I completely get the social aspect to it and think it’s a great game in a party situation. I just don’t have the patience to devote to it to get decent enough to enjoy it in that party scenario.

I’m just really amazed at stories like this 9 year old kid on YouTube that is a Guitar Hero rock star. And his parents are proud enough of this fact to put this on YouTube. If only they could channel all that talent for good! If he had just started learning a real instrument – he could be the next Eric Clapton, Jimmy Page or Frank Iero! He’s definitely got dexterity and focus to do it – if he could be channeled correctly. Seriously, how does a 9 year old kid get to be that good at a video game? Oh yeah, I’m forgetting that it’s usually the 9-12 year olds that hand me my tail on a platter in Halo 3 or Call of Duty 4. Complete side note (which is weird as this whole post is a side note), I had a thought that we should have an “over 25” segment of the XBox live network, not for “Adult Entertainment” but rather as a way to even the playing field for us that have jobs, families and only a couple of hours a week to devote to gameplay… Thoughts?

When I was talking to Jason Follas and Dustin Campbell over beers just after Guitar Hero was coming out and all the hype had started up I had the idea that I’d really rather have a way to hook up a real guitar to the XBox and/or computer and “Play” to learn. We had talked through some of the hookup options, like pro audio cards that can take a real 1/4 in jack and all the sound you can pump at it or the 1/4 jack to USB options that are out there. Dustin is actually a good enough musician (Plays in a pro-band and the like) and programmer (tech lead on CodeRush) that I was hoping that I could talk him into doing it because he’s got the chops to do so. Didn’t work. He didn’t bite.

The fantastic news is that he doesn’t have to. Today, Jason pointed out that there’s a startup called Guitar Rising that is creating that “game” for us! They are planning to release sometime in 2008 – and I’ll be among the first to buy one. I’m really stoked! I’ve been wanting to learn guitar but with my fairly severe ADD I haven’t had the patience to do so. I really hope that they pick songs from all over the spectrum from rock to blues. Besides just being able to play, I’d really like to get to a point where I can play camp side and at sing-alongs. Obviously, that’s not all hair bands, there’s a lot of Jimmy Buffet and the like that’s needed. There’s already been twitter conversations about how the hookups are going to work, what type of guitars we’re going to hook up and more. According to the article, you can hook up via a USB hookup or even just a Mic. I’m assuming that they are looking for pitch and notes and that’s all they care about. That’s pretty slick.

Looking forward to playing Guitar Rising at the next CodeMash!

Rocking: Guitar Rising for Real Guitar Heroes

Yahoo!

I woke up this morning to a very interesting email from Steve Ballmer conveying the fact that we had made a public bid to buy Yahoo! As I picked my jaw up off the floor, I noticed all of my standard news sources had it listed at their top story as well. This is cool because I had been working on a blog post about some of the REALLY cool things that Yahoo! has been doing.

image_thumb1 Yahoo has released the beta of their long anticipated Yahoo Messenger for Windows Vista application. I’ve been looking forward to seeing this application in the wild since I heard about it. This was actually a partnership between the WPF team at Microsoft and Yahoo to get this out. There are a ton of cool features liked tabbed conversations, a Vista Gadget to track friends and much much more. It hasn’t tried to be feature parity with the original Yahoo messenger, it’s a being unto itself.

I’ve had the good fortune to know Eric Burke from Yahoo who happens to be the technical lead on the Vista Messenger project. It turns out he lives in Novi, MI and manages a team in Palo Alto, CA. Guess how they do the majority of their communication… πŸ™‚ I met Eric on the plane to MIX last year. I was wearing a Visual Studio jacket and he was reading MSDN Mag so we recognized each other as fellow geeks. We hung out quite a bit at the conference and have stayed in good contact in Michigan since then. Eric was the guy that, when he saw the Silverlight 1.1 (now 2.0) keynote, said “Hey cool – I’m a mac programmer!”. At the conference, he was speaking about the challenges that they have faced with building one of the premier WPF applications and working with the design team from Frog Design.

Eric said that it was really rough in the early goings because nobody knew how this was supposed to go. Microsoft had a good story for designer/developer workflow but nobody had actually done it yet. The first couple of times they really couldn’t use what the designers had tossed over the wall or it required such drastic changes to their code that it was painful. As time went on, they figured out how to get along better and better so by the time that MIX rolled along, they were able to integrate changes often in as little as 3-5 minutes first thing in the morning. I’ve also had Eric come out to a couple of different events to speak about real world experiences working with WPF. One of the things that challenging right now is that there are not fantastic tools for looking at the XAML and seeing what the redundant layouts are or where the memory leaks are.

Since it’s gone public, it’s been interesting listening to people’s reactions to it. One of the common ones is a complaint that it doesn’t support all of the features of the mainstream Yahoo! messenger application and it’s add-in model. I actually like that about it. It’s refreshing to see a company take a line in the sand and not be 100% backwards compatible and feature complete with the legacy applications. This is something that Microsoft never seems to be able to do. There was a fantastic ad that showed VS.NET 2005 and it said “with 400 new features, the difference is clear” and right next to that add was an ad for Sugar CRM that said “Back with fewer features than ever, the difference is clear”. And it’s true, the IM clients that have been around forever are full of features that nobody uses or are used by a small enough percentage of the audience that they are more of a maintenance burden than useful features. Now, it takes a lot of moxy to say that “I’m willing to forgo some of the legacy customers upgrading to do the right thing for the future and the application.” I hope that Yahoo! sticks to it’s guns on not trying to make the Vista client feature parity with the old client as they go forward. Obviously there are things that they will need to add, like VOIP and some type of add-in model, but what form that takes is going to be interesting to see.

I don’t know if the deal is going to go through but I hope that it does just to get this type of edgy and exciting decision making into Microsoft. I know that Steve Ballmer and crew are looking at the advertising, search and social networking properties as well all of which are substantial. I was looking at my traffic searches on my blog and Yahoo! searches accounted for a really solid portion of my traffic. Obviously it wasn’t equal to Google but it was still substantial. We’ve offered them $44.6 Billion which is a decent premium on their stock price. According to the NY Times, Yahoo! turned down earlier merger offers so I’m also really hoping that this doesn’t turn into an ugly hostile style takeover.

Yahoo! Messenger for Windows Vistaβ„’

Microsoft Makes .6 Billion for Yahoo – Mergers, Acquisitions, Venture Capital, Hedge Funds — DealBook – New York Times

Microsoft makes unsolicited $44.6 billion bid for Yahoo – Feb. 1, 2008

CodeMash Conference – January 10-11, 2008

codemash logoCodeMash was, once again, a huge success. For those of you who don’t know, it’s a cross technology, cross platform, cross discipline that is help in January in Sandusky, OH at an indoor water park. The meme is that we are there to Mash not Bash. Everyone is expected and encouraged to go learn about new technologies and bring new and fresh ideas back to their own shops and technologies.

We had 375 people show including attendees, speakers, sponsors and so on. That’s a big growth over last year. It’s big enough that we are trying to figure out what to do next year with marketing because we’re not sure if we’d loose the vibe and the close contact that the 375 person conference affords.

CodeMash 020It was a much more mature vibe this year than last year. In it’s inaugural year (2007), it was interesting hanging out at lunch, dinner and the bar at night meeting new people and making new friends. However, on the first night there was a lot of trepidation and anxiousness as people were really unsure as to how or if they should really talk to everyone else. By the end of the conference there were interesting conversations happening between the PHP, Python, Ruby, .NET and Java guys. Brian Prince and I even shaved our heads as an incentive to get people to blog about the conference.

This year, on the first night there was an established context for the conversations on the first night. By the end of the conference, people from all technologies and disciplines were exchanging email addresses, Twitter accounts, Facebook IDs and more. It’s truly amazing how this little conference has started a cultural brush fire. The only blocking issue is the UM/Ohio State rivalry… πŸ™‚

Even new comers to the conference such as Scott Hanselman noticed the vibe of the conference

‘It’s a cross-platform, cross-cultural, cross-language conference with a very positive vibe. The “vibe” or general feel of a conference matters more than you might think. I started out asking folks “are you a Ruby person or a .NET person?” but soon I got with the program and started asking folks “what are you working on?“‘

Steven Harmon described the conference well when he called it the “biggest-little-conference around’. The type of person that CodeMash attracts is that top developer who is fascinated by technology and is desperate to expand their horizons and learn more. It’s not surprising that great consulting companies like Quick Solutions and SRT Solutions are at the very center of the conference doing much of the heavy lifting organizing and running the conference.

Another big thanks goes out to Chris Woodruff who did a ton of podcasting from the event. He even interviewed me here. I haven’t had a chance to listen to the podcast yet but I remember rambling on forever. I know – you’re shocked that I had a hard time shutting up…

imageIn true CodeMash fashion, I did a talk on the DLR based on the great work by Jim Hugunin and John Lam. I covered a little bit of IronPython and even did demos with IronRuby. I ran out of time before I did all the demos that I wanted to do, like doing WPF with IronRuby, ASP.NET with IronPython and so on. It was great, however, to have Joe O’Brien in the room to help me with the semantics of Ruby and dynamic languages. Joe O’Brien is a guy that I met last year at CodeMash and we’ve since become really good friends and are working on getting together on eRubyCon (The Enterprise Ruby Conference). Hopefully I’ll see you there this year. It was a fun conference last year with a very CodeMashish type vibe. I’m really hoping that we get to do another fishbowl style talk at some point there.

 100_6129Oh and did I mention that they doubled the size of the water park? πŸ™‚ My one regret this year was that I didn’t book over to Sunday with my family. the past two years my family has joined me on Friday evening and we’ve stayed until they kick us out on Saturday. Next year, I’m booking over to Sunday! I didn’t spend nearly enough time at the water park. Some of the guys (Yes, I’m talking about you James) went to the water park every day for multiple hours.

Plans for next year, I’m going to continue my work with the DLR and hope to have a much more advanced talk that includes Silverlight 2.0 and maybe even a demo on Moonlight. I’m also planning to spend more time at the water park on Day 0 and on the weekend. I have a hard time spending the conference time at the park because there are so many cool sessions and people to talk to.

I’m going to do more podcasting. I really missed an opportunity here and only caught one interview with Joe Brinkman  about DotNetNuke and working on an Open Source Project full time (check out http://www.codetolive.net soon).

I’m going to spend more time at the water park… πŸ™‚

And hopefully, I’ll see you there!

CodeMash Conference – January 10-11, 2008

Phizzpop Design Challenge Austin

This past week, I had the privilege to be involved with the Phizzpop Design Challenge in Austin. I was called in by Chris Bernard as a technical mentor to the contestants who needed help and to help him run things on the night of the presentations.

What is the Phizzpop Design Challenge?

Let me back up here and explain what the Phizzpop Design Challenge is. Phizzpop, the new Microsoft center for design excellence, sponsored a design challenge focused on the designer/developer workflow while solving an experience design problem. They invited a number of different design firms to compete in regional competitions, 36 teams total took them up on the challenge. The winners of the regional challenges go to South by Southwest to have a showdown to determine the national winner. The challenge itself was send at least 2 but no more than 3 of your “A” team to design and build a solution for a problem in 2.5 days. At the end of that they publicly show their solution in front of a large crowd and importantly a panel of judges. To help them out, there was a 2 day training class in Expression Design, Expression Blend, WPF, Silverlight and so on. Additionally, they provided me and a number of other resources from a technical end. The goal was to make sure that the technologies were not a blocking issue to success for the teams. I was completely amazed at the mad design skills that each of the teams brought to the table. Those of you who know me know that I couldn’t design a handkerchief so my opinion is not the one that matters. πŸ™‚ However, Chris Bernard and everyone who saw the finished products were really impressed with the quality and completeness of the designs across the board.  

What was the design problem?

Each of the regional events had their own design problem. I really liked the one in Austin as I really enjoy independent films and social media. There’s an independent film distributor called Microcinema out of Houston that does local viewings/film festivals called Independent Exposure around the nation at coffee shops and the like. They want to reach out beyond their local viewings which are expensive to set up, market and run using all the technologies that are available. There were three personas that were involved including a college film student, an artsy non-technical wanna-be bohemian who’s married to a doctor and a social media junkie/job recruiter. The designs had to satisfy all three of the personas to be complete.

The teams were judged equally on:

– Satisfaction of Constituent Needs: How well does the needs of the constituencies as defined by the profile? Is the experience appropriate for the audience? How elegant is the experience?
– Satisfaction of the Market: How well does the solution address the market needs? Will the solution work across all of the identified constituencies?
– Uniqueness of the solution: Is the solution unique, differentiated and defensible?
– Technical Excellence: Was the team able to build a working solution (however limited), or is it purely a scripted prototype?
– Aesthetics: How visually appealing is the solution?

There were also bonus points available for integrating with the Live services and overall creativity.

Who were the teams?

In the order that they presented their challenges:

image 
Telligent – The guys that produced Community Server and they’ve recently started up a real design practice. They obviously have great experience in web applications, social media but I hadn’t seen a ton of their design work outside of their templates for Community Server. I have always liked their templates that are on top of Community Server – in fact, I’m really hoping that they will leverage that same experience to design some templates for Sharepoint too.
image
Frog – The largest and most established firm in the competition and clearly the favorites. These guys being involved proved interesting because many of the other firms were composed of graduates of Frog and it really raised the level of competition. 
image
Projekt202Young and hungry firm. I had the least amount of interaction with these guys but they were fantastic.
image
PoplabsThese guys are are media experts that really brought a different perspective to the table. It was unfortunate that they were plagued by hardware problems. It didn’t help that this was the first of these type of challenges that they had been in. They had some great ideas.
image
Thirteen23The firm that was at MIX and build the application called mixME in 8 hours with many of the same team members. Check it out, it’s a fantastic showcase. I knew that they were going to bring their “A” game and had high hopes for them.
image
Neudesic – I heard about this firm literally last week when I found out that Sam Gentile had joined them to help them run their connected systems practice. But I didn’t know that they had a design practice, in fact a lot of people didn’t know that as they started their design wing 6 months ago.

How did I help?

Phil Wheat and I were onsite during the entire build process for the teams as technical resources to make sure that the technology was not the blocking issue. We had a number of interesting questions that were tossed out over the 2.5 days that ranged from relatively basic (Very few of these) to “holy cow, what am I a ninja?” hard technical questions. The best ones were the ones where they were butting up against the technical limitations of the technologies involved. My favorite question was one where they were trying to dynamically set the ZIndex of a control. We scratched our head over this one for a while. I called in favors from a number of guys ranging from Scott Barnes to Jeff Blankenburg who looked at the code remotely and scratched their heads over it as well. It looked right and it wasn’t throwing an exception but it wasn’t doing the right thing.

            this.SetValue<double>(Canvas.ZIndexProperty, ZIndex);

The issue, as one of the contestants from another team figured out and revealed in an true spirit of sportsmanship, the issue was that it needed to be setting an int rather than a double.

            this.SetValue<int>(Canvas.ZIndexProperty, ZIndex);

I thought that this was wild and broken that it doesn’t throw an exception when you pass in the wrong type like that.

There were other questions like how to do a particular type of animation. When doing logic, XAML and the like – I knew how to help with most of those. I had an issue, however, when they started getting fancy with the animations, like trying to use Ease Splines. In that case, I had to call in the expert help of the editor for Phizzpop, Don Burnett. At one point, I had Don on speaker phone and watching what we were doing with LiveMeeting and giving us direction. That was cool and I learned an amazing amount. Don helped a ton throughout the couple of days.

How’d the build go?

All 6 teams brought fantastic ideas to the table. There were obvious ideas that all of the teams centered around with integration into current social media like Twitter, Flickr and FaceBook. I was really impressed by some of the originality shown by some of these ideas like Neudesic allowing Facebook members to share movies with their other friends. Several of the firms had the idea to bring in time-lined comments from Twitter.

The different firms displayed different ways of working. I actually didn’t even see Frog or Projekt202 until the night of the challenge as they just worked out their home office. They were allowed to ask their other team members for ideas on the design but not for help with the implementation. I saw Thirteen23 on the first day as we had a number of assets that they were allowed to use, like videos and images from Microcinema that they needed to copy. This was really the only downside of the whole experience. I would have loved to have seen the process that these fantastic design firms used. I did get to watch several of the firms.

Neudesic actually worked out of the room that I was hanging out at to be available the entire time. They had three team members, two devs and a pure designer. It was great to watch how cohesive they worked together. For the 2.5 day build, they set up a team site and source control. They almost did TDD, Continuous Integration and everything but they quickly realized that they were not going to be maintaining this code beyond Friday because whatever they build would be considered a prototype and would be tossed if they ever went forward with it. They sat down and started hammering out a design and as soon as they identified components that they were sure that they were going to need, one of their team started building those. The others kept on until they knew the services that they needed and the other dev started on those. The designer started creating assets and they started sticking those assets on the components and then stared wiring those components up to services. It was fabulous to watch. They had, hands down, the most completely implemented and least vaporware solution that was presented. However, it was a design contest and their design was good but it wasn’t the best. I, personally, have a tremendous amount of respect for the Neudesic team and feel comfortable recommending them as the UI team for anyone. The questions that they asked were definitely cutting edge and showed they were pushing the technologies (Silverlight 2.0, WCF and so on) to the limit. The only one that they were really stumped on was a cross domain issue where they were calling services on a different domain which is not allowed in the current release. It’s coming, but not hear yet.

I also got to see Telligent a few times when they came in to ask questions and get a change of scenery from their hotel room that they were working out of. The questions that they were asking were where they were pushing the limits of Silverlight and they just needed clarification on where the boundaries were.

I spend most of my time with Poplabs. As I said, they had a lot of hardware issues. They had two machines, a mac and a dell, just die on them. They had issues with installation of the software needed onto a third box. And so on and so forth. They finally really got to the implementation on Friday morning. At 4:00, they realized that what they had was really not going to get the job done. Toya D., their designer/dev, took her box off to the venue and sat down to start over from scratch. In 3 hours, she threw together a fantastic working demo that was at least as much of a working demo as some of the other teams. Her team mates sat down and started working on a slideshow for the judges to show the rest of their idea that wasn’t going to be completed. It turned out that all of the teams, besides Neudesic, had this type of an presentation – some implementation and a lot of presentation. I was really impressed with her skills from a design and implementation perspective – especially given that she really cranked out the final product in about 3 hours.

How was the Party?

For the presentation portion of the contest, Chris threw a heck of a party at J Black’s. First of all, the food and drink was fantastic. There were 3 HD projectors showing off the fantastic designs that every came up with. There was a DJ with a pretty cool rig. It was an Ion IDJ iPOD DJ Mixer. He had two iPod’s hooked up with all of his music and did the whole party from there.

The official program started with presentation from Steven P. Anderson about what designers are and what they do. He really did a fantastic job of setting the stage and helping the audience, not all of whom were familiar with the practice of design, understand the underpinnings behind the competition.

Then Chris introduced the judges:

Erica O’Grady – Social media consultant, designer/developer in her own right, creativity coach and all round fun gal to hang out with.
Norm Cox – Design legend. Started with Xerox and has run his own firm since 1982.
Todd Wilkins – Design Researcher with Adaptive Path. He was a last minute serendipity. One of the judges had recused themselves as they personally knew the members on one of the teams and out of the blue Chris found out that Todd had just, and by just I mean on the same day as the competition, moved to Austin from San Francisco.

Then Chris introduced the design problem and we got started showing the final products in the order above. There were a few gut check type technical problems, like one of the teams not having a Firewire cable with them and their entire solution on their external drive that they couldn’t access without one. Fortunately, we found a USB 2.0 and a Firewire cable for them to try. Other than minor issues like that, all of the presentations went well.

What was the result?

The three judges all came out and said flattering things about all of the teams. In fact they said that none of the judges completely agreed on the top 3 and that every firm was in at least one of the judges top 3. That’s an impressive fact and really goes to show that all of the teams did a great job.

However, only one team can win. In something of an upset, Thirteen23 came out on top over the top of the some of the larger firms. They brought together design, function and implementation not only with the expected technologies but in their spare time they threw up a live service and invited all of the contestants to hit it with their iPhones to watch a movie as well. It was really impressive. They are supposed to work with Chris this week to get their implementation posted to the Phizzpop gallery and I’m sure that they will show it off in their labs as soon as they get done celebrating their awesome victory.

Who’s going to the finals?

AQKA, San Francisco Winner
Create the Group, New York Winner
Clarity Consulting, Chicago Winner
Cynergy Systems, Los Angeles Winner
Outright Interactive, Boston Winner
Thirteen23, Austin Winner

Wanna keep up?

First, check out Chris Bernard‘s blog as he’s posting a  lot of the follow-up information there.

Second, go out to Phizzpop and register a profile to get notifications for the upcoming challenge and other great events that are popping up around the nation.

Last, if you possibly can you should register and attend SXSW to watch the big showdown in person.