MVP Summit Day 2

I used amazing "Sky Camera" technology to get this photograph while we were waiting for Satya Nadella.

Another day of good stuff at the summit. I always leave these affairs with a whole bunch of things that I want to try out.

In the evening we had a Welcome Reception where Satya Nadella came along. All very interesting stuff. After all that I was a bit exhausted and staggered back to the hotel and bed. Early start tomorrow.

On the way back I grabbed a shot of Bellevue at night.

My quest for a Microsoft Band is ongoing. The offer here still stands.

Living with a Surface Pro 3

My Surface Pro in its natural habitat......

So I've had my  Surface Pro 3 now for a couple of months or so. We've had our ups and downs:

Ups: Reading magazines at full size (and weighing less than the printed copies). Running full fat Windows apps at blistering speed away from home on battery power. Snapping in and out of the dock with ease. Being very shiny and pleasing to own.

Downs: the time it refused to start up in front of a full class of first year students. And then later the same day hid my Bluetooth mouse and keyboard in front of a slightly smaller audience.  Getting a horrible experience using Hyper-V (which you need to emulate but not write Windows Phone apps)

I think it is fair to say that I now love the device. If you're thinking of getting one, here are my tips for how to get to love yours too:

Don't enable Hyper-V (f you don't know what that is, skip to the next paragraph) I’ve turned off Hyper-V and don’t intend to turn it on again anytime soon. Hyper-V has broken pretty much every machine I’ve ever used, starting with my Samsung Slate whose usb drivers were just not able to handle it, going through my Sony Ultrabook and earlier Surface systems. If not having Hyper-V is a deal-breaker for you, then think hard before acquiring a Surface Pro 3. I now write Universal apps and debug them by deploying to the machine. That works without Hyper-V being enabled and if I want to debug on the phone I plug one in and deploy to that. Not sure if this is optimal for everyone, but it works for me. If you want to turn Hyper-V on and off there are a couple of batch files you can use here.
 
Shut down before you undock if you have hard disks connected to your docking station. I always shut my machine down before I undock it. To me this seems like common sense. If I corrupt one of my big USB drives I might have a data recovery job on my hands which I’d rather avoid. I’d use eject if I could be sure that I’d always do it. The machine boots from cold in under a minute or so and this doesn't seem to be costing me much time. If you don't plug your Surface into an external monitor while it is undocked and you haven't got any storage devices attached to your docking station it should be fine to use the dock as it is meant to be used, just snapping the tablet in and out as you go through your day. 
 
Be patient when you hit the power switch. I’m working on acquiring more patience (if only I could get that in a hurry). I give the machine time to get going after I press the power button and I've turned off "Allow this device to wake the computer” for the Surface Type Cover in Device Manager. It’s so that I don’t open the cover, turning it on and then press the button and turn it off again. 

A few years ago a machine like the Surface Pro 3 would have seemed like impossible magic. And now it is here and working for me.  And I really like it.

 

Seattle Tourism

I thought I'd spend some time today as a tourist. So I took the 550 bus from Bellevue to downtown Seattle. This is one of the best ways to spend $2.50 around here. You get a lovely drive over the floating bridge, a spectacular view of the skyline and then a ride in the tunnels underneath the city. 

I got out at the Westlake Centre and slipped down to Pike Place Market for a look around. Took in the Comic Book store in the marketplace, along with the craft stalls down there and then headed back up to Westlake and the monorail terminal

There I bought a return ticket to the Space Needle and then I just waked straight into the lift (no queues) and rode up to the top where I enjoyed a coffee and took some snaps of the view.

Then back to Westlake and Barnes and Noble for a look at some books. Finally I got the bus back to the hotel and spent a happy hour or two playing with the pictures I'd taken.

Wonderful.

Heading to Seattle

Turns out that if you point a smartphone out of the window as you land you do get a picture.

Turns out that if you point a smartphone out of the window as you land you do get a picture.

Flew out to Seattle today. 

Via Amsterdam and New York. 

The circuitous route was the result of searching for the cheapest tickets. And I did get to see the inside of JFK airport. Turns out it looks like every other airport. I wasn't able to focus much on the decor though, as I was rushing to get through Homeland Security before boarding my ongoing flight, which left around an hour or so after I arrived.

However, everything when smoothly. Although when takeoff was delayed "Because we are loading some baggage that arrived late." I had an awful vision of my big awful suitcase being the one that was holding everyone up.

But we got to Seattle early and I'm now writing blog posts at "don't know o'clock" in the morning. And really looking forward to the next few days. 

Halloween Three Thing Game Kicks Off

Three Thing Game is going strong, and I'm sad. We've got over 150 students in the department working on games overnight and I'm not going to see what they have made.

Thanks to the vagaries of airline ticket pricing (who knew it would cost so much to fly on Sunday) I have to head out the MVP Summit on Saturday morning, leaving the event in the capable hands of David.

We started the event with a fantastic presentation from Dean and Dominique about MonoGame. A few things of note from the session:

  • A really good way to make a name for yourself (and get jobs etc etc) is to get involved with the Open Source projects.
  • You should publish what you make. The first one probably won't be an overnight success. But the fifth one might be.
  • MonoGame is all grown up, with versions for pretty much every platform including the PS4 (and I reckon the Xbox One won't be far behind)
  • The new Content Management stuff is awesome

Of course we had pizza. Five hundred pounds worth of pizza.

Lee and Simon building a "pizza fort". 

Lee and Simon building a "pizza fort". 

I think we managed to feed everyone OK. The lass on the phone at Domino's listened with increasing incredulity as the order built up, and they had to send out two pizza packed cars to deliver it.   Thanks so much to Lee from Microsoft for sponsoring all the cheesy goodness.

I took a bunch of pictures before I had to zoom off and pack. Above is a sample. You can find them all here.

I Want a Microsoft Band

Microsoft have just released their Band, a smartwatch/fitness device that looks really nice. They are selling very well apparently, which means that I might have problems getting one when I head out to Seattle for the MVP Summit. And I really want one.

Now, I fully realise that the pursuit of gadgets is ultimately fruitless as they lead an ephemeral life, doomed to be superseded by the next iteration and driven by a marketing beat. You could argue that people who try to validate their existence by surrounding themselves with the latest technology are perhaps only proving their ultimate shallowness. And in the end the accumulation of material goods is ultimately futile (for a full discourse on this matter listen to the wonderful "Mountains'O''Things" by Tracy Chapman).  

But I still want one. 

If anyone finds themselves in a position to get me one (medium size should fit I reckon as I'm, half way up the strap on my Pebble) I will do the following for them, in addition to paying for the device:

  • supply them with a printed, autographed copy of the latest C# Yellow Book
  • write a poem for them (I am a published poet) on any subject they nominate
  • provide them with a unique Windows Phone Controlled Wedding Light,  in case they have a daughter getting married in the near future who needs table decorations. I'll custom build it with a choice of base colour and ship it to you anywhere in the world. 

Like I said, I may be shallow and gadget obsessed, but I really want one of those bands.

Yet More Python Wrestling

Today we restarted our Wrestling with Python teaching series. We've been doing these for around a year now, and some stalwarts returned to the wrestling fray, along with a few newcomers too. 

For this course we are trying out PyCharm. This looks like a great place to write Python code. My advice if you are just starting is to not worry too much about all the options, but work through something just to get the feel of it. You can find the exercises that we did here

If you are a local teacher who fancies free food and programming company of a Tuesday night there is still some space left, get in touch if you fancy coming along.

Three Thing Game Auction Fun and Games

We had our Three Thing Game auction today. We had around 150 things to auction and around 50 minutes to do it. I had sterling support from Mo and two Caitlins (thanks for coming folks) and I set the timer on each round to 15 seconds per thing. I reckoned we should be OK.  

We weren't. Not sure why, but 45 minutes in we still had a whole slew of things to get rid of. So in the end we just dished out the last lot and ran for the door.

We also noticed that "auction sniping", beloved of eBay, made an appearance for the first time ever. Bidders would wait until the very last second and then shout out a large number. One chap did that and outbid himself massively, which was amusing, but it did make it rather hard to work out what was going on. 

Caitlin suggested that we might make the length of each auction random, say between five and ten seconds. I thing this is a great idea, we'll definitely do that next time. 

Anyway, if you turned up with money and hope, plus a desire to get something which was at the end of the list, I'm sorry that you didn't get what you wanted. There's always next time....

Three Thing Game Starts Monday

Spent a big chunk of today updating spreadsheets and printing and cutting out cash for the Three Thing Game Thing Auction tomorrow. We've got 46 teams and 140 or so folks turning up, which will be great.

If you are in a team we will be auctioning all the things at 2:15 tomorrow (Monday) in Lecture Theatre 1 in the Hardy Building. You can find a list of the things that will be going under the hammer here. We have around 150 things to auction in 50 minutes, so you'll have just 15 seconds per lot to make up your mind....

Saturday Open Day

Today we had our last Saturday Open Day for a while. Thanks for coming folks. I said I'd put your picture up on the blog, and here you all are. Hope you enjoyed your visit and have a good journey home.

Very pleased to see that they've used one of my pictures on the posters on the stands. I took the one on the right when I was acting as Graduands Marshal in the July ceremonies. You can find the original here

3D Selfies to Celebrate Kinect V2 Release

To celebrate the release of Version 2.0 of the Kinect for Windows 2 SDK I printed a couple of selfies of me using my Carbonizer program and changing the filament half way through the print to get a dual colour effect. I'm quite pleased how they came out. I wish I'd kept my head still during the scan so that my features show up a bit better. Then again....

With the latest release of the software we can now put Kinect for Windows apps in Microsoft Store. I might see about a formal release of the Carbonizer program. Microsoft have also announced a new $50 adapter that lets you use your Xbox Kinect with your PC, which is nice. You can find out more here

Rather Useful Seminar on Creating 3D Objects from Software

Fun was had at the Rather Useful Seminar today. We were looking at the way that we can create objects using software. We started of with a vertex (a posh name for a position in 3D space), combined three of them to make a triangle and then stuck a whole bunch of triangles together to make a mesh that describes a solid shape. Above you can see what happens when I use cos and sine waves to fiddle with the height of the surface. 

Then we went into Python inside FreeCad and I create a 3D model of the weather forecast which I did last year as well. 

The point I wanted to make is that all of this is software, none of it is magic, and if you want to write programs that make solids You can find the slides here.

Tactical Space Cheese Racer is Coming

Every year we set the First Year Programming course a piece of Assessed Coursework. Each year it is a board game of some kind. This year we will be playing "Tactical Space Cheese Racer". This is a game that involves space, cheese, racing and tactics.  As you might expect.

The game is a bit like "Snakes and Ladders" but without the ladders and snakes. Each player is flying a cheese powered rocket over the board with the aim of reaching the finish as soon as possible. Each turn the player can throw the "tactics dice" and try to cause as much mayhem as possible (they can get extra turns, their engines might explode etc etc).  On the cheese squares they must use tactics because the power of the cheese compels them to. 

I've built a simulation and played a few games (well, 10,000 actually) :

Arnold is an AI player who always throws the tactics dice. Norman never uses tactics unless he has to. Simon throws tactics if he is last in the game and Sandra uses tactics every now and then. I think the balance is reasonable, at least for now. We'll be rolling out the coursework in the next week or so. And tonight I spent a happy half hour finding out how to make chrome effect text using image based lighting in Photoshop.

When to Explode

I think I've blogged on this one before, but think it is worth mentioning, since we touched on it during the First Year programming lecture today. 

Consider the ReadNumber method above. It is designed to make our lives easier, so that if I want to get the number of players for my game I can just call the method:

int noOfPlayers = ReadNumber ("How many players? : ", 2,4);

The idea is that the method prints the prompt and gets a number from the user in the range 2-4. If the user gives a value outside the range the method politely asks for another value.

This is a neat method. But what happens if I make a mistake when I call it:

int noOfPlayers = ReadNumber ("How many players? : ", 4,2);

This means that the minimum is now higher than the maximum. Which is wrong. During the lecture I mentioned this possibility and suggested this rather firm approach inside the method when it runs:

if (min >= max)
                throw new Exception("Invalid min and max range");

The code above makes the method fail if the minimum and maximum are incorrect. And by fail I mean stop the program from working. I suggested that in this situation the method can't do anything but fail, since it is operating under a failed premise. 

After the lecture one of the First Year (splendid bunch by the way) came up to me and suggested that one solution would be for the method to just swap the minimum and maximum values round if the method discovers that they are the wrong way round. The test is easy to make and swapping the values takes no time at all. And the method is then going to continue. So why not?

Because this is the kind of idea I call "Half way good and all the way bad". We are making a very, very, dangerous assumption, which is that the mistake was that the person using the method has got the min and max the wrong way round. Consider this code:

int coreTemp= ReadNumber ("Reactor core temperature? : ", 20,40);

This code is asking the user for the reactor core temperature (whatever that is). But what happens if when the method is written the programmer misses out a zero when typing it in:

int coreTemp= ReadNumber ("Reactor core temperature? : ", 20,4);

Now the minimum is much higher than the maximum. If my program swaps these values over it will be asking for a value between 4 and 20, which is much too low and might cause really bad things to happen. The clever swapping trick has now changed a typing error to produce a fault that is potentially very dangerous.

If the method stops the program when it is not used correctly the programmer is guaranteed to spot it. But if we do the swapping thing we could end up with strangely broken programs out there. So I'm very keen to cause the maximum damage when my methods are told wrong things. 

Actually, the best way to solve this problem is to use a lovely feature of C# which lets you name each argument to a method call:

NoOfPlayers = ReadNumber(prompt:"Age : ", min:10, max:100);

In this call of ReadNumber we actually identify each parameter by name, rather than using their position in the list to indicate what they mean. I'm a big fan of naming arguments like this, since it also makes it much clearer to someone reading the code what is actually going on.

Lunch at Thieving Harrys

While I was up town yesterday I wandered past Theiving Harry's, a place I've always fancied visiting. Today, with some unseasonably nice weather we headed up town again and had lunch there. And it was great. We were sitting upstairs, with a view across the waterfront. The food was splendid and the ambiance was lovely. There is a great feel to the place, the formica tables and hard working decor remind me strongly of Lowells in Pike Place, Seattle. 

Another go to place if you are a Hull student looking to impress visitors with your local knowledge. And you can wander over to the Oresome Gallery just across the way and buy some earrings after you have eaten. And if you are me, you can take some more pictures.

I took a picture of this yesterday. What a difference a day makes...

I took a picture of this yesterday. What a difference a day makes...

I never get tired of taking pictures of The Deep. 

I never get tired of taking pictures of The Deep. 

Hull Pics

Please note that this picture was not taken while driving. As if.

Please note that this picture was not taken while driving. As if.

This is my first Saturday off for a few weeks, so we drove up town and had lunch at McCoys. New students, if you are looking for somewhere nice in the city centre to take mum and dad when they come and see you, well worth a visit. Great coffee and much more Hull authentic than Starbucks or Costa (although we've got those too).

My advice, try the Beef and Stilton sandwich. Number one wife likes the Tuna on noodles. And number one son pronounces the coffee as good, which means it must be great.

And I had time to take the camera, plus fat lens, around the waterfront.

I don't think they ever fire this...

I don't think they ever fire this...

You do get the most amazing skies this time of year.

You do get the most amazing skies this time of year.