MVP Summit Day 1
/Today was very, very, wet. Turns out that spending a bunch of time in a room with no windows has its advantages. Some great content though, and a chance to catch up with some splendid folks I've not seen for a while.
Rob Miles on the web. Also available in Real Life (tm)
Today was very, very, wet. Turns out that spending a bunch of time in a room with no windows has its advantages. Some great content though, and a chance to catch up with some splendid folks I've not seen for a while.
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.
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.
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:
Of course we had pizza. Five hundred pounds worth of pizza.
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.
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:
Like I said, I may be shallow and gadget obsessed, but I really want one of those bands.
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.
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....
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....
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.
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.
Owners of the Lego Mindstorms EV3 kit can now run .NET on it using the Mono framework. If you have a spare 2G micro-SD card lying around you can put the framework onto the brick and deploy and run C# programs on it, all without changing the firmware in the brick in any way.
I'm so going to have a go at this. You can find out more here:
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.
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.
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.
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.
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.
There are lots of really interesting things happening in Hull over the next few weeks. Here's a selection.
SendGrid move an awful lot of the world's email for a lots of really big customers. Visit their roadshow at C4DI on 22nd October to find out what they can do for you. With free beer and goodies. Sign up here.
Platform Expos brings together console makers, developers, artists and gamers for a festival of gaming from 14th - 15th of November in Hull. Find out what is going on and get tickets from here.
This is a day long hacking event on 21st November at The Kingswood Academy
You can find out more, and sign up here.
This is an evening event where you get together with friends and family and work at solving technical challenges. Lots of fun. On the 21st of November at The Kingswood Academy.
You can find out more and sign up here.
Spend a full day (21st November) at Kingswood Academy finding out more about the wonderful Raspberry Pi computer and what you can do with it.
You can find out more and sign up here.
We had our second Rather Useful Seminar of the semester today. I took along our Kinect 2 sensor and showed the secrets behind "Carbonite Students" among other things. There were two points that I really wanted to get over. One is that the Kinect sensor can do some pretty amazing things. The second point is more important though. I wanted the audience, some of whom were just starting to learn how to code, to appreciate that when we do things with these fancy sensors we are just taking values in, doing something with them and then spitting them back out again. The code I'd written was nothing special really, but it did get some nice audience reactions, which was lovely.
You can find the presentation deck here.
Rob Miles is technology author and educator who spent many years as a lecturer in Computer Science at the University of Hull. He is also a Microsoft Developer Technologies MVP. He is into technology, teaching and photography. He is the author of the World Famous C# Yellow Book and almost as handsome as he thinks he is.