Learn Things from Rob at TechEd EU


I’m doing some sessions at TechEd 2013. If you want to know how to make your Windows Phone use background agents to add value to your application, or respond to what you say, then I’m your man. I’m speaking at 10:00 am on Thursday about speech and 3:15 about background agents. And I’m going to be around at Ask the Experts too.

I had this brilliant plan for TechED US, where I’d give away 3D printed phone cases at my session. I even printed them and everything. Then I found out that the phone that I’d printed the cases for is not actually sold in the US. Which makes me an idiot.

So, instead, this time I’m giving away “I learned something from Rob” ceremonial plaques. These are completely unique, except in the sense that there are more than one of them in existence. I’ll also be giving away lovely 3D printed red rockets. So come along to my session, answer a question and you might be in the running to win.

Above you can see the 3D design for the plaque.


This is what the real thing looks like. With a bit of luck I might see you in Madrid, and give you one.

Last Teched 2013 Show Day


This is the Windows Phone part of the exhibition, where I’ve been spending a few hours each day. The conference ends today, I’ll miss the smell of brand new carpet.


In the evening we went up to the Mercedes Benz Superdome for the TechEd 2013 attendee party. Lots of other folks went too. Fortunately this is a Very Big Place. DSCF2506.jpg

There was good food, good music and, most important of all, free beer.

New Orleans Saturday Morning


My cure for jetlag is to try and get eight hours sleep each night. Snag is, that we went to bed so early that we had completed our sleepings by four thirty in the morning today. Oh well. Best plan is to get outside into the sunlight and wait for the body to catch up. So we did. Turns out that there is not much happening at seven thirty in the morning, but we did get to take some pictures.


These places were open.


Why we are here.

Heading for TechEd New Orleans

Atlanta Airport has a nice ceiling.

After the excitement of yesterday, today I had to get up bright and early, or at least early, and head off to Manchester Airport to fly to New Orleans.

Such is life. The flights were smooth, everything worked and by the end of the day we were happily ensconced in the hotel. I’m really regretting not being around for the Three Thing Game finals but it was not to be this time. Simon has done a great job of finishing off the competition and you can find out what folks thought over at Hull Comp. Sci. Blogs.



Rob at TechEd North America 2013


I’m very pleased to be able to report that I’ve been invited to deliver a couple of sessions at TechEd North America 2013 in New Orleans. I’m doing WPH-B302 “Secrets of using background agents for Windows Phone 8” and WPH-B301 “Speechifying your Windows Phone 8 Applications”. New Orleans is a place that I’ve always wanted to visit, and now I’ve actually got the chance to go there, which is great. If you are going along to the conference (and it looks like it is going to be very interesting) then it would be lovely to see you there. I’ve even got some new jokes just for the occasion.

TechEd 2013 here I come


I was very pleased to find out a little while back that I’ve been invited to deliver a couple of sessions at TechEd USA in June. I’m doing two sessions on Windows Phone 8, one about using background agents and the other about adding speech to Windows Phone 8 applications. I’m really looking forward to going out to New Orleans and taking to the stage. It was even nicer to find that my old partner in crime, Andy Wigley, is also giving some sessions on phone development. It looks like it is going to be great conference. And I hear it can be quite warm out there. I might even pack my shorts…..

Definitely not delayed


Headed back today, after a very busy week. When I checked in at the airport the girl at the desk made a few phone calls and then assured me that my flight was not going to be delayed.

I took this as a warning sign.

Turns out the flight was delayed, but fortunately for me I had such a long wait for the next one that I arrived home at the proper time.  Bad weather in Holland meant that the landing at Schipol, on the only runway they were using, was a bit more interesting than usual. Suffice it to say that the pilot earned his round of applause at the end.

When I got back we had fish and chips and then shot up town to pick up a Kinect. Had a very quick play. First impressions? It works, amazingly well.

TechEd 2010 Day 4

Once I’d finished my talk and recovered I went for a wander around the exhibition. Of course I took the camera.

Hands On Lab

This makes the labs we have back at Hull look rather puny….


They had some Kinect systems out there. Looks like fun. With a bit of luck my system should be waiting for me back in Hull.

Meal Out

In the evening we went out for a meal at a posh restaurant. Thanks to Amina for the invite. Great company and good food.

Tech Ed 2010 Day 2

Windows Phone Banner

I wonder if they’ll let me take it home…

When is a phone not a phone? When you get it brand new on Friday and forget to enable international roaming before you go to Berlin on Sunday. Although my shiny new phone does work very well on WiFi and since just about nobody knows my new number it is not as if I’m missing out on many calls.

Anyhoo, spent another day writing today, including 25 multiple choice questions for the second year Software Development course.  Such lucky students…..

I also went along for the Tech Check for my sessions tomorrow and Thursday. These are where we plug everything together and see if it works. It all did, which bodes well for the future. The girl who manages one of the rooms said that she was really excited when she found out that one of the speakers was from Hull. Which was very nice, although I did wonder out loud whether she might not think about getting out a bit more. My firsts session is tomorrow at 12:00 in Hall 7.1b, London 2. It is all about Building Windows Phone Games. Should be fun.

TechDays 2010 Portugal Session Resources

TechDays Portugal 2010 My Office

ACA009 Creating Windows Phone Games

Here is the content from my session. Thanks for being a great audience.

The code works on the current version of the CTP for the Windows Phone system. You can download this from here. If you want to use demo 3B to serve out accelerometer information to your phone app make sure that the program is running with Administrator privileges, and that you have modified the URL in the Phone Starlight program to address this host (localhost should just work).

If you want to get started with Windows Phone you can find a list of useful lines (and some FAQ entries) here.

ACA004 Giving Robots Life with the .NET Micro Framework

I left Oscar the robot powered up overnight by mistake. I was very impressed to find that he still had plenty of battery power left this morning. Fortunately nobody had been sending movement commands to him via the secret URL otherwise he could have gone anywhere!

If you want to get hold of a robot and Fez controllers you can go to:


If you want to get hold of the Web Server board you can go here:


If you want the most powerful Micro Framework board I’ve ever seen you can go here:


The Micro framework at Microsoft can be found here. There are links to platform manufacturers and a very useful forum. You can even propose enhancements to the platform.


TechDays 2010 Session Fun and Games

TechDays Portugal 2010 My Desk

My desktop setup. A robot, a PC doing desktop sharing, another PC running a video call and a final Micro Framework device running a web server. And it all worked. Eventually.

Thanks to everyone in the audience, and Luis for setting everything up. I wasn’t in Lisbon, but thanks to cunning camera work and a nice fast network I got as close as I could. I could even see the audience on my screen (which probably freaked a few people out at the start).

We had the audience hitting web sites that caused my programs back in Hull to hit breakpoints (which must be the largest debugging session ever). And then I let the everyone out there send commands to Oscar the robot who, right on cue, tried to jump off the desk.

The audience were fantastic. As usual from Portugal. Thanks for taking the event in such good sprit folks.

TechDays Portugal 2010 Back Wall

To try and make everyone feel at home, and add some “TechDays 2010 Portugal” flavour I did up the office wall behind my chair…

TechDays Portugal 2010 Luis Setup

Luis during the, slightly fraught, setup.

TechDays Portugal 2010 Great Audience

Some of the audience at the start of the talk.

Thanks folks. That was the best conference I’ve never been to….

I mentioned in the talk that I’m going to assemble some resources for Windows Phone and .NET Micro framework. I am, but I’ll put them up tomorrow. Off to bed now….

Flying Home from Berlin

Had to go home today. Flying on Friday 13th. Can’t see a problem with that. But first a last trip to TechEd.


I could have won this, but in the end I didn’t.

We went to the last session of all, which was a great presentation about using constraints and automated test to improve program reliability. Anyone who has talked to me about programming for more than a couple of minutes will know that I am very keen on Test Driven Development, but it is rather a chore to write the tests, and often you just want to add elements to the code so that the resulting system will not let you make a mistake. If an age can’t be negative why not just have a way of putting that into the code?

.NET Version 4.0 includes Contracts that let you set out things like this, and looks like a great extension to the framework. Find out more here. If you want to write your unit tests automatically you could take a look at Pex  which will run your code, watch what it does and then generate suitable test behaviours. It even goes as far as making fake versions of built in library functions to properly replicate a testing environment.

All this is very interesting. I also went along to some sessions on the new dynamic elements being added to C# which let it bind more easily to languages which “make up” typing as they run. This is a great way to knit solutions out of lots of cooperating objects but goes against the grain of a strongly typed language like C#. It seems to me that we are travelling into the future in two directions at once. On one hand we have dynamic systems that fit themselves together as you use them (great for web mashups etc) and on the other we have systems that are strongly typed, constraint powered and properly tested (great for nuclear power stations).

Oh, and the flight home was fine, albeit a little windy.

F#, State Diagrams and Racing Cars

I went to a session today about F#, which is a functional language. This is a very interesting way to write programs and is now entering the mainstream as part of Visual Studio 2010. Well worth a look.

I also had a wander round the exhibition hall, which is huge.


These folks are doing really interesting stuff. They have developed a way to take state diagrams (a nice graphical way of showing the behaviour of a system) and use these to produce code. They can even animate the state diagram and allow you to set breakpoints in the application controlled by it. Great for embedded control, and just about anything controlled by a state machine. Which is just about anything really. Great Stuff.


I didn’t have a go, but I really wanted to…

Flushed With Success

After my TechEd session I thought we’d go out and celebrate in style. The style I imagined was a bit strange, in that we’d found out that there was a very strange bar near the hotel which had a rather strong toilet theme.  This theme extended to food served in potties and drink in sample glasses….


This is us toasting another good day in Berlin. thanks to Adam for the snap

We were going to have the food too, but our nerve failed and so we went out and got a burger instead.

XNA on Zune Session Fun

I did my final session of this TechEd today. I was on at 5:30, in session slot 13, but in the end pretty much everything worked. Thanks to everyone who came along, I hope you all had a good time and learned something useful. I’ve put the slides and all the demo programs up on Skydrive so feel free to download them and have fun. For some reason I forgot to take a picture of the audience, but then since you all know what you look like anyway I suppose this is not much of a loss…..

You might want to take a look at the other sites which are linked from my post from yesterday.

Student Session Fun

Did my first TechEd 2009 session today. Students and XNA. What could go wrong? Well, fortunately, nothing much as it turned out – except for one of my demos getting a tiny bit stuck.  The audience was great, and I took a picture of them all:


On the left….


..in the middle..


…and on the right

Thanks for being a great audience folks. I hope you enjoyed it.

After my bit we were joined by some other TechEd speakers and we had a really good question and answer session.

If you want to find the links to my stuff, you can find silly games content at www.verysillygames.com

You can find my Yellow Book on C#, and my Orange Book on Java to C# at www.csharpcourse.com

I will be posting the slides for the session, along with all the sample code, on this blog after my session on Wed.

Zune HD Ins and Outs

I’ve been preparing my TechEd sessions today. I’m doing two, one to Microsoft Student Partners (in a couple of hour or so) and one Interactive Session to the general conference. If you are here in Berlin please come along, I’d love to see you.

Since the session is about creating XNA games for the Zune HD not surprisingly I’ve been doing a bit of creating games for the Zune HD. I got my AlbumShaker running really nicely, and I thought I’d try running it on the original Zune players. I wasn’t expecting much, but I was really surprised to find that performance was quite acceptable, with the albums bouncing around the screen most satisfactorily. The program doesn’t seem to mind that it is running on one of the older devices, the game just gets “central” settings from the accelerometer.  I even added some code to read the Zune pad, which emulates a gamepad  thumbstick. This worked fine, except for a couple of issues.

Using the XNA Gamepad to Slow your Zune Game Down

The code for the album shaker makes a bunch of album sprite instances and then calls Draw and Update behaviours on every instance. The first version of my game called the GamePad.GetState method for each of the fifty or so albums on the screen. This did horrible things to performance. For some reason reading the Zunepad is very slow. I assumed that the pad would be read for a a given clock tick, and then that value cached for use in the game. This is not so. I got a huge performance improvement by reading the state once for all the albums and then picking up this value in each album.

Using the XNA Accelerometer to Make your Zune Game wobble

I was so pleased with my speedup on the original Zune I thought I’d do something similar with the accelerometer input, so I changed the game so that it read the accelerometer once and then cached that for use by all the items in that update. This had a really strange effect, where sometimes the items flickered madly about. I’m not sure why this happens, it is as if the GetRotation method on the AccelerometerState object actually corrupts the state in some way.

I only know that if you get a “fresh” reading for each item you want to input the game works fine.  And this doesn’t seem to  slow the game down either, which is nice.

So the moral of this is that it is fine to cache the gamepad settings (and in fact on the Zune this might make your game go faster) but the accelerometer values should not be cached..

TechEd and Mauerfall 2009

TechEd started today. I went to  a very good session on Windows Azure first thing. Then I had to go off and sort out some presentation related bits and bobs, which was a bit of a pain as there were a couple of other sessions I wanted to see. However, once the day’s work was done we headed off the the Brandenburg gate to see the Mauerfall event.

This was a celebration of the 20th anniversary of the fall of the Berlin wall by the toppling of an enormous row of domino-like blocks that stretched for over a kilometre. They had all kinds of heads of state there, a full orchestra and a live appearance by Bon Jovi.


The inside of the station


The outside of the station


A nice view across the river


On the way to the gate


Waiting by the wall

We found a good spot near the food and drink stands and began to wait. And it started to rain. And rain. After two hours in the rain I found that most of the things I had with me that I thought were waterproof, like my coat and shoes, were not. After three hours in the rain everything was wet. After four hours everything was wet and very cold.  And then it started, We had speeches from the great and the good, music, and the blocks duly fell on cue. It was a great evening, even though I have never been so cold and wet.