Category Archives: Misc
Microsoft Surface
Last weekend I was in Reading for the UK and Ireland MVP Open Day. And one of the highlights of the day was being invited to the Microsoft Technology Center at Microsoft’s Thames Valley Park campus and to able to have a wee play on a Microsoft Surface device.
I’m sure you’ve seen the videos of it and it looks as if it is really cool. But, the videos that are shown are all aimed at how cool the device is to use. They are designed to sell it to hotels and casinos and other companies that could use it to entertain or sell to their customers. How cool would it be to go along to a pub quiz and have your team answer on a surface device rather than on a paper form. The quiz could have extra features that you can’t have in pub quizzes currently. The device could be used to show video or pictures to the quiz takers. In a tie-breaking situation the devices could record how quickly a team answered the questions and the tie is broken by the quickness of the responses. In fact there are a ton of things that you could do with it.
Now, I did see some of the cool applications for the surface device, such as the one to the left, but I also saw something that was way better to a geeky software developer like me. I saw some of the diagnostic side of it. I have to say that I’m really impressed.
First off lets start with what the device itself sees (see right). It works by having a bunch of video cameras on the underside pointing up at the surface. The cameras aren’t far reaching and can only really make out things that are within a few millimetres, or actually touching, the surface. As you pull your hand away the image gets faint very quickly. There is the ability to see what the cameras see in inverse (because if you have your hand touching the surface then the you won’t see the image because your hand is obscuring it). As you can see from the image on the right the hand that is touching the device is very clear, where as the others that are perhaps only a few centimetres above aren’t very visible, if at all. This means that any user who is animated about what is on the screen and is gesticulating during conversation is unlikely to accidentally affect the application unless they are near enough to almost touch it.
That’s all very well and good, but what about writing applications. I don’t want to have to interpret camera images. That’s fine because all that is wrapped up in a framework that gives you useful information. For example, the picture to the left shows the information the Surface device feeds to the application developer when a person touches their finger to it. It is clever enough to identify the shape as a finger tip, it knows where it is on the surface and it can tell you the orientation. The fingers can be used in a similar way to a mouse, but with much more versatility.
One of the key points about the Microsoft Surface device is that it is multi-touch. As you can see from the image on the right the device has successfully recognised that there are 5 fingers touching it (no pedantic comments about thumbs, please) and there are 5 contacts in total (I’ll come to the other types of contact in a moment). Under each contact point it displays a green oval representing where the touch is happening.
A blob is an object that is too large to be a finger is placed on the device, whereas a tag is something that has a recognisable tag attached to it. The tag identifies a portable device to the Surface. In the image on the left the phone has a tag attached to it. It allows the Surface to identify it. It can also determine the orientation of the phone (as can bee seen by the white arrow drawn on the Suface). Once the Surface recognises the device it can then interact with it.
If all this looks a bit much, it isn’t. A Microsoft Surface device is simply running Microsoft Windows Vista and the applications are written in WPF with an extra bit of goo that allows multi-touch interaction in an almost Minority Report kind of way, if only it were wall mounted and 2m by 3m in size.
All in all, it was an excellent demo, if a bit short. I would have liked to ask more questions about the SDK and actually seen how some of the applications were written (but that’s just me – I like to read code). If you are lucky enough to be going to the PDC then Microsoft will be releasing the Surface SDK so there will be an opportunity to find out more about the Microsoft Surface and how to write applications for it.
For more photos of the Microsoft Surface, please visit my Flickr site.
Are people really this gullible
I just got this in my email:
Let your email come to you.
With Yahoo! Mail Alerts, you’ll know
the instant you get one.
Account Alert
Dear Valued Member,Due to the congestion in all Yahoo users and removal of all unused Yahoo Accounts,Yahoo would be shutting down all unused accounts,You will have to confirm your E-mail by filling out your Login Info below after clicking the reply botton, or your account will be suspended within 24 hours for security reasons.
UserName: ………………………………
Password:………………………………….
Date Of Birth: …………………………………..
Country Or Territory:..……………………….
After Following the instructions in the sheet,your account will not be interrupted and will continue as normal.Thanks for your attention to this request.We apologize for any inconvinience.
Are people really this gullible as to send their password unencrypted in a plain text email?! Not only that but in a manner that outwith the bounds of any previous interaction with the alleged company in question.
Well, I suppose if people are willing to hand over their passwords for £5 I shouldn’t be surprised.
THIS EMAIL IS A FAKE!
DON’T RESPOND TO IT!
YOU ARE ONLY HURTING YOURSELF!
The Apple Store
For the first time ever, I bought something in the Apple Store today. Yes, that’s right, I got an iPhone recently and I love it! I feel so dirty yet soooo gooooood!!!
Earlier this evening I went along to my local Apple Store to get a car charger for my iPhone. The shopping experience has to have been the most pleasant I’ve ever experienced.
The staff were very helpful for a start. Nothing unusual about that, staff are helpful in lots of shops.
The staff were also very knowledgeable and were happy to recommend alternatives that I could not necessarily buy in the store. That is slightly unusual because normally staff are trained to ensure the customer buys from the company, not someone else’s. I liked the fact that the staff wanted to ensure that I got the product best for my needs. That is a big plus and it means I will trust them more and will seek their advice again, which obviously means more potential sales for Apple.
As it happens, I wasn’t interested in the alternatives so I did make a purchase. Now this is where it got really interesting. (At least for me, but I’m pleased with lots of simple things)
When I said that I was happy with this particular car charger and I looked over to find the cash desks the guy that was helping me simply asked if I would like to pay by cash or card. Still slightly confused by the question at this particular point, he showed me his card-swipey-machine. I caught on fairly quick and offered up my credit card. He handed me the machine like they do in restaurants and I typed my pin and handed it back.
He also asked the strangest question I’ve ever been asked (at least in this context). “Would you like me to email the receipt to <my email address>?”
Since the credit card I use on the Apple Store on-line was the same as the one I used in the physical Apple Store they matched my details and were able to email me the receipt without being hassled for my email address in the store. I like that kind of joined up system. My receipt was waiting for me when I got home. It is safely stored in my email and will not get lost, unlike other receipts.
So, credit where credit is due – Well done Apple.
Curious calculation
Last weekend I had to replace two tyres on my car as they were wearing down. It cost £85.50 each to replace them. I was told that usually the back wheels wear away at half the rate of the front tyres. Given that the car has done 25,000 miles, it means that for every 50,000 miles I should have bought 6 new tyres. 6 tyres will cost £513. £513 into 50,000 miles is £0.01026.
Put it another way, my tyres wear away at a rate of just over 1 penny per mile driven.
Or, in terms of fuel costs, it would be like adding roughly 9p to a litre of petrol.
Google Maps are borked
I don’t know what is up with Google Maps, but when I looked at them earlier today they seem to be borked. Roads are incorrectly designated and rail tracks seem to be misaligned.
For example, if you know the Glasgow area you should instantly spot what is wrong with this:
For the uninitiated, there are two north-south running motorways (blue roads). There should only be one. The easterly (right) route is actually city streets for the most part and cannot be classed as a motorway. However, just drawing the route in blue wouldn’t be so bad, but they’ve actually re-numbered the route. The road should be the A77 is now the A77(M). Not much of a change I suppose, and it doesn’t seem to needlessly route people down that road. For people that don’t know the area, and are not relying on Google‘s routing capabilities, it could add significant time on to their journey, and they might be wondering why the road is not up to motorway standards.
In fact, if you look at the route’s northern terminus, it looks even crazier for a motorway – That’s one helluva bend just before the Clyde!
Oxygene talk in Dundee
Last night’s talk in Dundee on Oxygene was excellent.
My journey up was a little fraught as an accident on the A80 meant that it took me 1h15m to travel the 20 miles from Glasgow to Stirling. By that point was running late and had 45 minutes to cover the last 55 miles. In the end I arrive 15 minutes late, but that was okay because they hadn’t actually started yet.
The journey back afterwards was a bit hellish too because the rain was coming down hard and the M80 between Cumbernauld and Stirling doesn’t seem to be able to drain water quickly enough. Even reducing my speed I was aquaplaning every few hundred metres.
Anyway, Oxygene, if you don’t know, is a Object Pascal based language that targets the .NET Framework. In terms of features it contains a lot of things that would be beneficial to C# such as interface delegates, parallel coding constructs and null handling.
I will be blogging in more detail about some of these features as I plan to look further in to this language.
SQL Server 2008 RTM
It would appear that SQL Server 2008 has finally RTM’ed. MSDN and TechNet subscribers can now download it from their respective websites.
Monthly stats
I stopped posting my monthly stats because some of it was getting predictable. People seem to stumble across the same issues time and time again, although not the same person obviously. My post on Internal Error 2755 caused by Folder Encryption is consistently near the top of the list as is my post on the SqlException.Number property when a timeout occurs. In fact 7 of the top ten posts viewed in the last month were not even recent. By that I mean they were from last year or before.
So what recent stuff (i.e. stuff I posted this year) did make it in to the top ten? The first part to my introduction to LINQ to XML series, a series I’m still writing; a tip-of-the-day on constraining SQL Server memory usage which is a surprise because it has only been on for 10 days; and the second part, on getting data out of XML in my LINQ to XML series.
Outside the top ten, other recent posts of note high up in the listings are:
- Mixins in C#3.0
- Navigating XML (LINQ to XML part 4)
- Different ways to add point data in SQL Server 2008
- A meme on how I got started in Software Development
I am encouraged by the popularity of my LINQ to XML series, and I’ll try to get more posts in that series up on my blog soon.



