First Thoughts on Microsoft Surface Development

A brand new Microsoft Surface development unit arrived this week in the Moncton T4G office. As I start to develop some prototypes, I will be doing some related posts, but I wanted to start by talking about the platform a little, and the development environment.

For anyone who has no idea what the surface is, it is a multi-user, multi-touch platform released by Microsoft a couple of years ago. Have a look at this video to see what it can do.

Other the last few weeks, before the unit arrived, I have learned quite a bit about the Surface. The first interesting thing I learned was the the surface is not a touch screen in the sense that your iPhone or multi-touch laptop are. The surface of the Surface is just glass – it is not a capacitative or pressure sensitive material at all. All of the touch behaviours and interactions are based instead on a computer vision system. Inside the box there is a fairly standard PC running Windows Vista, with an DLP projector pushing the image up to the table top. There are also 5 cameras inside the box which perform the actual "vision". These feed into a custom DSP board which analyses the camera feeds into something a little more manageable for the PC. The fact that it is a vision-based system leads to some interesting capabilities, as well as some idiosyncrasies.

When the Surface is running in user mode, the Windows Vista UI is completely suppressed. There are no menus, no windows, and no UAC dialogs – nothing that would indicate it is even running Windows. There is also an Administrator mode which shows a standard Vista UI for administrative functions or for development.   

As far as development goes, the good news is that it is all pretty standard stuff. There are two approaches to programming for the Surface. The first is to use the Microsoft XNA Studio platform, the other is to use Windows Presentation Foundation (WPF). Using XNA gives you a little bit more power, as well as access to more of the "lower level" information like raw images from the video feed. Using WPF is a higher-level programming model, and comes with a set of controls specific to the Surface UI model. The nice thing is that all you know about .NET and WPF programming applies to the surface. And from a larger architectural perspective, Surface can tie into any infrastructure accessible to any other .NET-based model. It is just a different .NET UI layer.

The bigger challenge in developing for the Surface is changing the way we think about the UI, and selecting the right solutions. First and foremost, Surface applications are not just a port of a standard Windows UI. Stop thinking about Windows, Icons, Menus and Pointers (WIMP). The surface calls for a completely different models, one that I am just learning. One of the interesting statement I have read describing the Surface model is "the content is the application."
The Surface is more than just a multi-touch platform. Sure, you could implement a multi-touch solution on the Surface exactly the same as a Windows 7 multi-touch solution, but that is only using a subset of the Surface capabilities. The key characteristics of Surface interaction are:

  • multi-user, multi-touch (up to 52 simultaneous touch points)

  • social interaction – multiple simultaneous users, collaborating or working independently

  • 360 degree user interface – users on all sides of Surface at the same time, with UI oriented to support all of them

  • Natural and immersive – like the physical world, only better

  • Support for physical objects integrated into the experience (tokens, cards, game pieces, merchandise)

When it comes to selecting a solution to deploy on the Surface, the two most important keywords are "social" and "immersive". Social, because the best Surface applications are those in which the computer is not replacing human interaction, it is enhancing it. Immersive, because you want the user(s) to forget that they are using a computer, and to only be thinking about what they want to accomplish. The how should be transparent.

Over the coming days and weeks, I will post more about the Surface and what we are doing with it. Hopefully next week I will be able to post a short video. If you have any thoughts or suggestions, I would love to hear them.

Another new toy…

Time for a new bike – as much as I love the VStar 650, it is a little small and underpowered for my current age and weight 🙂

So, my wife bought me a nice Father’s Day present yesterday – a brand new Harley-Davidson Heritage Softail Classic. Pictures below – what more can I say?

DSC01113

DSC01115

DSC01117 DSC01118

My first image with my new toy…(telescope, that is)

saturn test 2 ps

Tonight I got my first chance to try imaging with my new toy. This week I added a Philips webcam to my collection of accessories, modified slightly to work with my telescope, and had a shot at imaging Saturn, and this is the result. Not quite as good as I might have hoped, but not bad for the first astronomical image I have produced in about 25 years. I am still learning to use the various pieces of software involved, as well.

Now to go back outside and just enjoy the view 🙂

Business life lesson – Don’t let anyone steal your dream : Atlantic Canada’s Small Business Blog – IQI Strategic Management Inc.

 

Business life lesson – Don’t let anyone steal your dream : Atlantic Canada’s Small Business Blog – IQI Strategic Management Inc.

This is an interesting post, and fits in well with other things which have been on my mind lately, and with things about which I have posted.

It occurs to me that over the years, I really have let the world steal my dreams. I think we all do this – we get so wrapped up in the day-to-day “operations” of life that we lose track of the grand visions. We also tend to be told that we need to think realistically, and be reasonable, and play it safe. We spend much of our lives being taught what is possible, and even worse, what is impossible. I think that is why so much advancement in science, arts, and other fields comes from the young, because they have not yet learned that what they are trying to do is “impossible”. 

One of the nice things about a grand vision is that you spend much less time worrying about whether it is possible of not, and more time just working towards it.

Getting excited about the future

I have been through a complex time mentally over the last few months, with the changes here at Whitehill (now Skywire), and with my own transition within (and ultimately out of) the organization.

It is now time to face fully forward, and I am doing so right now with more excitement than I have had in a long time.

For the past number of months, I have been looking at a lot of options as to what to do next (as described in a previous post), and while there have been many ideas floating around, I have had a hard time getting truly fired up by any of them. Part of it was just inertia and fear of change. But a big part of it has been my own thinking. I have become extremely conservative (in some ways – not politically) as I have gotten older. So, much of my planning has centred around conservative ideas, or at most conservative approaches to more exciting ideas.

It is, unfortunately, very difficult to get fired up or inspired about playing it safe. That does not mean I am going to go off and do things without due consideration, or take unnecessary or ill-conceived risks. What it does mean is that I am going to follow a path which has been successful for me at previous times in my life – follow the big dream. In addition, have fun doing it. The dream itself is not the main goal, it is the act of chasing the dream and enjoying the path.

I have been searching for great words to express what I want to do next, and have finally found them in a cartoon of all places:

Pinky: “Gee Brain, what do you want to do tonight?”
The Brain: “The same thing we do every night, Pinky—Try to take over the world.”

So, that is what’s next for me – try to take over the world, or at least some interesting piece of it.

Stay tuned – this is going to be fun!

 

PS – here are the immortal words of Pinky and the Brain in their original form:

Apple’s Mac Set to Soar?

I am always amazed (and somewhat amused) to listen to the press and many bloggers pound on Microsoft, and hold up Apple as this golden idol of alternatives. Don’t get me wrong, I love Macs – I have ever since I started using and programming them back in the late 80s. I even liked the Newton. And the new iMacs – damn I want one.

But there are a few points of the Microsoft is evil/apple is great discussion that I find deeply amusing and ironic:

  1. Apple, with Steve Jobs, handed the desktop market to Microsoft on a platter. The Mac UI in the early eighties was way beyond anything Microsoft would produce until Windows 95. With that lead, Apple could have taken over the desktop. However, through the closed, anti-clone, “we must maintain the purity of the platform” view they had through the eighties, they gave that advantage away. Even though DOS was crap in terms of usability, and Windows was graphical crap, the availability of cheap clones and many, many hardware choices, the PC won out. Once again, inferior technoogy won because the people behind the better technology acted stupidly. (Note that Steve Jobs continued this stupidity with more great technology with Next).
  2. Apple has always been the ultimate “closed platform”. Standards rarely come into play. If you want to develop on the Mac (at least anything useful) you use our tools. Until recently, even all of the hardware has been non-standard. If Microsft were anywhere near as closed as Apple, the Justice Department would have shut them down. Heck, on many Apple devices, you are not even allowed to change your own battery, or add an industry standard memory card.
  3. Apple has rarely created technology which benefited (from a tech community sense) anyone but Apple. Consider Microsoft’s Tablet PC platform. Microsoft could have “gone it alone” on the Tablet, as Apple would have (and probably will). Instead, Microsoft defined the specification for a Tablet PC, and left it to hardware vendors and startups to build the hardware, and IVSs to build the application, thus creating a sub-industry benefiting many businesses beyond Microsoft. Compare to Apple and the launch of the iPhone.

Again, I love Apple, and I think they have some of the best design people in the world. But I do not fool myself into believing that they are in business for anyone’s benefit but their own.