Well it's coming around to that time of year again… that being remix UK.
This year, I have been asked by Rob Chandler to help build a prototype application for Microsoft Surface which is all very exciting and a great challenge at the same time.
Speaking of time, its pretty short and I only really have 4-5 weeks to get something together and when I consider my schedules over that time frame, I really only have around 40 hours spare, which I was going to spend sleeping ;-)… Oh well.. I can schedule that in for October maybe.
I can't say much about the project at present, suffice to say what MS are planning for the event sounds really, really cool and it should be a great experience for both designers and developers.
You can still get tickets for the event found here:
http://www.microsoft.com/uk/remix08/
I hope to see you there!
This week I finally got my seven video tutorial of "how to make a 3D carousel" completed and posted to the Blend Series collection on www.learnexpressionstudio.com

You would not believe how many people had emailed me in the past asking for a demo of this and of course everyone wants the source code for it at the same time. So I got it done but unfortunately I cant give it away for free as this undermines the business model that pays for all the video content to be posted and watched by many people.
The Carousel is a great control and is certainly one of the first controls that many people see when they see WPF for the first time, and immediately people want to replicate that control to get the same kinds of response. Where it all falls down with WPF is when someone wants to go that one step further and add the control to some Silverlight application that they have been working on, only to find that 3D elements are not supported. My solution allows for the control to be used (or at least replicated) in both desktop and Silverlight development by taking a panel based control such as the canvas and modifying how it lays its child elements out, all done with high school level trig maths to boot!
If you are a subscribed member to the Blend service, then you can go and watch the series now as well as download a sample application with all the source code for you to play with and extend.
After a very busy tour of the US, I returned home on Thursday morning and started to try to catch up on various chores I knew had to be dealt with. One of those is reading the mail and responding where required and to my surprise I found an email from the Microsoft MVP support team telling me I had been awarded and MVP!
It capped off a great week where I got to meet all of the people at Microsoft that I have been communicating with for a few years and take in the lovely city of Seattle. For the most part I believe it rains a lot in Seattle but whilst I was there, I didn't see a drop, just glorious sunshine.
Getting the MVP doesn't change much for me as I will continue to try and help people where I can although the big benefit is that I will now get to take part in a lot more events as well as go back to Seattle next year for the MVP global summit.
I see a lot more people starting to talk about multi-touch (MT) now but still the conversations are centred around the devices, the hardware and not so much about the design of the software that runs on the devices.
HP has released some new units (http://h30440.www3.hp.com/campaigns/touchsmart/IQ500_NA/Model.html) that have a touch screen feature, but these appear to be single touch so realistically it's a different scenario, and because of the form factor (being a screen propped upright) there is a clearly defined rule set when considering developing for these units.
The challenges are apparent when you consider a desk or table form factor MT device. You don't know which side of the desk is considered to be the bottom, top or specific side because a user can sit at either side, so understanding transformations is a key but as you have probably just realised, panel based controls need to also be able to cope with this.
Another careful consideration that you must give to your UI and UE is implicit element clicking. Because the end users are just using fingers or fiducials (physical objects on top of a MT device), the concept of clicking is non apparent in gestures. You have pressure detection, sliding and directional rotation. You may be thinking "but what about a quick double tap"? This is a possibility, but why start down that road again (the road of un-natural gesturing) - in the real world you handle and move items, such as moving a piece of paper from one side of your desk to the other.
You need to consider natural and implicit element selection. An example would be where traditionally (in software) we select items in a menu structure; in an MT environment the dragging of an element from within its menu construct to another area on the screen could be understood to be the selection made.
There are many such scenarios that present themselves when using an MT device, but the secret to creating successful software for MT is to think about these scenarios when designing your software, before writing it and not during or after it.
Lots going on at present with another trip to the US this month for a few weeks. First stop is Motorola for two weeks to conclude the current contract and then a few days out in Redmond to meet with some of the folks at Microsoft.
Try as I might, I probably still won't get everything sorted that I would like to before I go.
The Blend video tutorials are also coming along well and I am hoping to begin uploading this week and switching the service on. I have recorded all these new tutorials using Blend 2 so it will be great to get it all live.
My book has completed printing according to my publisher so I should also see a copy or 10 arriving soon. It will be a very proud moment for me, regardless of how it is received in the market place.
On the multi-touch side of things, I have been making great strides in terms of finding part suppliers with a view to production. True to form though, none of these UK businesses can actually deliver on time… absolutely useless! Best to be finding reliable suppliers now though.
The prototype model is going a lot better then I had hoped for (and it is a lot larger then my wife had hoped), taking over our entire dining room. It makes it easier for me to work on all these things at home instead of a factory somewhere, but given a successful prototype I am sure orders wont be long after so it is something I am also looking into.
Being a furniture maker, before I started in the software business all those years ago, means building a prototype for production is a lot easier for me compared to others, or even other companies. I don't have to wait for endless meetings or new information... I can just get straight into it.
I also have a name for it…
"X-Touch"
I will be creating a separate blog for it when I have the logos and public information available, a long with some pictures and a video of the working unit.
In case you haven't heard about Microsoft Surface, head over here for a quick look at what I think will be a huge influencer on personal computing in the future house hold as well as business in general.
Surface isn't just about a cool way of letting people use a computer, its much more than that. It's about collaboration amongst multiple users, digital tangibility and giving new and exciting takes on old ideas.
That's right... old ideas.
Despite what Microsoft may tell you in the marketing brochure, this type of computing has been around for a very long time and indeed there are several other companies that have been producing multi-touch (MT) systems for quite some time; but I must give Microsoft their credit, none of the other companies appear to have ever consulted a PR agency or really latched onto the potential of collaborative user experience and marketed it in quite the same way... Jeff Han is getting there though and the following demonstrates how his product is even more advanced than Surface:
You will hear me rattle on about user experience quite a bit, and what is great about the surface computing idea is that while you can get away with applications on the desktop and web that have rubbish user experience (well people have for years), I think it would be hard to try the same thing on a surface because people just wont be able to use your application.
From what I know of the Surface SDK, it aims to take away a lot of the "head tax" involved with getting elements to appear on the screen and allowing the user to twist and turn them in a standardised – gesticulated way. An extended WPF control set allows you to simply specify an items control panel which automatically gives the elements physics based movement on the surface.
This is all great and very exciting, but it would appear that Microsoft are travelling down a very specific and strategic path, pushing this technology out into the market place, meaning that big corporate retail and entertainment are the first clients and then big design agencies are next, while hanging the people that are very much into WPF and XNA, out to dry… well at least for a few years to come.
So I start doing some research in this past few weeks, about how I might go about building such a device and replicating some, if not all of the features of the surface, so as I might at the very least get a real head-start on the technology. You would be correct in thinking that I wouldn't have a Surface SDK, but the main point is that I would be thinking more and more about that collaborative scenario, understanding usability from the surface representation and gaining valuable insight into what the end users expectation is, as well as measuring their points of user experience tolerance.
After completing the research, I can tell you that it is very possible to build this machine and not only that but to also run WPF and XNA on it.
I am going to document my progress in here as much as possible and at the end of it all, if I am successful and people are interested, then I might just make a simple inexpensive kit (as much as possible) that will allow other to experiment with the same system and the same multi-touch technology.
Let me know if you are interested in that and I will make sure I compile a list for it.
I received an invitation last night from the guys at WPF Disciples asking me to join their merry bunch - I was quite surprised and immediately accepted before they had time to reconsider!
If you haven't had time or don't know who the WPF Disciples are, you should head on over and checkout the group as it's made up of a veritable who's who in the WPF world. A lot of the group discussion is free flowing banter but there is also a serious side to it all when it comes time to sharing and solving issues.
There is also some interesting ideas floating around in the background about certain aspects of WPF and some really cool project stuff which will eventually bubble to the surface.
If you only have room for one blog to watch, you should make room for two (cause I know you don't want to kill mine off J ), grab a hold of the group feed and listen in on some interesting conversations.
SVN (subversion) is the source control mechanism that I and many other people use for .NET solutions. I highly recommend it, and what is really great is that it is also open source:
http://subversion.tigris.org/
You can also use the Visual SVN plugin component to get access inside Visual Studio:
http://www.visualsvn.com/
The plugin is not free but does have a trial.
Something that had been bugging me for awhile was sometimes (rarely) when I added a solution to SVN, I could no longer open the solution in Expression Blend.
Finally I found the cause of this issue which lies in the Visual Studio .sln file.
If you open the .sln file in Notepad.exe, you should be able to scroll down and fine a few lines that look like the following:
GlobalSection(ExtensibilityGlobals) = postSolution
VisualSVNWorkingCopyRoot =
EndGlobalSection
You can see the line "VisualSVNWorkingCopyRoot = " has nothing assigned to it which is the cause. Remove the entire block and you should be fine to open the solution in Blend.
Well it has finally happened...
Expression Blend Unleashed is through final reviews and is now set to be printed this month with an expected shelf date (say my publisher) of June 2nd.
If only Microsoft would stop releasing preview versions of stuff it would have been last November, but better late then never I guess.
Some people won't like it, some people will. I have tried my best which is all I could do, but I have learnt a lot about the writing process during the time.
Now its time to concentrate on the video site... I might have a sleep first though.