Presenting with Surface Go

If you look very carefully at the audience picture for my AI Frenzy talk on Thursday you’ll notice that in the bottom right hand corner you can see a tiny slice of my Surface Go. I’ve used it for presentations in the past and I thought I would again. This time I was running PowerPoint, Visual Studio and the Machine Learning app that I was demonstrating. It worked just fine. I was very keen to show people that you can use such a lowly machine to deliver presentations and it worked just fine. I love this little machine. It is properly portable and properly useful.

AI Frenzy at c4di

We had a Barclays AI Frenzy with Codepen Hulll tonight. There was plenty of frenzy in my session, where I built a complete Machine Learning application in around 12 minutes. There were also a bunch of other great sessions from Sherin Matthew who gave a splendid overview of the field, Aparna Garg who showed a lovely example of an advanced AI application and Neil Gordon who talked about research at Hull University and how companies can work with it. 

If you want to see my sample application and the presentation you can find it on Girhub here.

Red Nose Day 2019 is live

II’m doing another Red Nose Day lecture. This time I’m talking all about Air Quality. In Rhyme. Just because it’s important doesn’t mean that we can’t have the occasional (and I do mean occasional) laugh when talking about it.

I’m going to talk about good air and bad air, and then describe how you can get involved and build your own air quality monitors and use them as part of the awesome Connected Humber Monitair project. It might even be interesting and useful, as well as raising some proper cash for great causes.

And David from Eagle Lab Hull is going to bring along some donuts.

As usual, entry to the lecture will be free, but you may have to pay to get out. If you can’t make it to the event then you can still contribute here. And there will be a video. Oh yes. And if I hit my funding target I will wear a tutu. Again.

You can read more about my illustrious Red Nose Day career here.

Slow and Steady Prints the Best

What failure looks like…

I’m doing some 3D printing to make cases for air quality sensors. I know that 3D printing is one of the slowest way to make a case and I’m going into Hull Makerspace to play with their laser cutter this week to see if I can make stuff much more quickly, but I happen to have a 3D printer and it seems sensible to use it. However, it has not been plain sailing….

I’m using some new filament, and when you do that you have to learn the right temperatures to work with it and how friendly it is. The new stuff has not been very friendly. Mainly because it didn’t want to stick to the print bed. The print bed is the surface upon which the printed object is laid down by the print head.

When 3D printing the most important stage of the print is putting the very first layer on the print bed. If this doesn’t stick, everything else is going to end up a like a ball of wool (see above). And I couldn’t get the new filament to stick properly. Even after spending ages adjusting the bed level and height, changing temperatures and adding adhesive I’d still get terrible results.

I’ve found that the key to success is to print the first layer very slowly, giving it time to take hold. The snag is that slow printing takes ages. Fortunately the latest versions of printing tools have come to my rescue. The latest version of Cura (the magical tool that I use to convert 3D models into printer commands) lets you set the speed of the first layer print.

There are so many print settings now that the settings process also contains a search function. If you search for “speed” you can find the initial layer print speed settings as shown on the left.

If I use the settings shown I get quite astonishing levels of print adhesion. In fact I can do away with glue completely and print onto smooth glass, which gives a fantastic finish.

I’ve now gone from having a problem getting the print to stick to having a problem getting the printed piece off the printer. But I’m very happy with that.

DDD North 2019 is coming to Hull

If you’re in the Humber area (or if you’re not and you don’t mind a bit of travel) there’s a splendid developer event happening here at the start of March. The Developer Developer Developer (DDD) North conference has a whole bunch of wonderful sessions and a fantastic venue (The University of Hull).

I’m giving a session too, all about Air Quality and Azure Functions. It’s going to be fun, I’m really looking forward to it, and you should too.

You can register here. It’s free.

Videogames: Design/Play/Disrupt

Went to London today. Took a nice picture from the train (see above). We were going to a video game exhibition at the Victoria and Albert Museum. Videogames: Design/Display/Disrupt is excellent.

It’s good to see video gaming getting to the stage where they are deemed worthy of such analysis. The exhibits have been carefully chosen to show different aspects of how games are created and the care that their creators take. My favourite quote went along the lines of “Making a video game is like combining the hard bits of building a bridge with the hard bits of writing an opera”. Quite so. You need the underling structure along with story, atmosphere and presentation.

At the very end were a whole bunch of “home made hardware” powered games which were excellent and gave me lots of ideas for building things.

Well worth a trip to London for.

Drain Unblocking Etiquette

Truly an amazing device

Arrive home on Valentine’s Day to hear the three little worlds that can change your life: “The toilet’s blocked”. Oh well.

The thing with tools like drain un-blockers is that you can only find them when you don’t need them. And so it was on this occasion. Fortunately we have awesome neighbours who are much better at keeping track of their stuff than we are. They were able to lend me a device like the one above. It really is wonderful. You pump air into the reservoir and then release it into the blocked pipe using the trigger. After a couple of blasts we were good to go. And all in time for tea.

What with me being so flushed with success (as it were) I kind of lost track of the fact that I’d borrowed next-door’s sink un-blocker and stuffed it down our toilet. I’d washed it carefully and all, but still….. So it was on to Amazon to track down a clean replacement. It arrived today and I’ve dropped it round. Now, between us we can just about handle anything.

Free Sony Photo Editing with Capture One Express

If you want a really good way to edit pictures, and you happen to have a Sony camera, then I can strongly recommend Capture One Express from Phase One. You can download it for free and it works very well with the raw format from Sony cameras.

I took the picture above on the way into c4di with my venerable old RX100 this morning and used Capture One to straighten it, light up the foreground a bit and sharpen some of the edges. I’m really very happy with the result.

One other neat trick, is that if you’ve got a camera like the RX100. It is very interesting to search a place like Thingiverse for your camera type. I’ve just done that and turned up a whole bunch of bounce flash adaptors, filter rings and cases that look like they might be worth printing out and using.

HEY Children's University at c4di

Can you spot the bug in the light flashing program?

We had some children from HEY Children’s University to see us at c4di today. We did some talks for them up in the boardroom on the 3rd floor, with a fantastic view of the estuary and the deep. They were all sitting comfortably in the posh leather seats and spreading their notes around the big polished wood table.

I really hope that they get a taste for it. I want to see them in this building in a few year’s time pitching ideas and meeting customers.

I did some robot coding with them, starting with making a light flash red and blue. And some of them managed to spot the bug in the program above, which was awesome.

Barclays AI Frenzy at c4di

Just a quick heads up about an event that I’m speaking at. We had a call about the content yesterday and it all looks very interesting.

And there are free refreshments.

If you want to know more about Artificial Intelligence, see whats happening in the area and meet up with like-minded folks to talk about how you can use the technology, you should come along to the event next week. At’s at c4di on Thursday evening. I’m doing a demonstration of how easy it is to take some data and then build an application that uses AI. You can sign up here.

Back in Harness

One of the things I really miss about working at the university is standing up in front of people and telling them stuff. I’ve tried it on busses and trains and it just doesn’t work in the same way, what with the shushing and the telling me to sit down and shut up.

But in a week or so I’ll be back at the university for a short run, talking about digital electronics. I’m doing a bit of teaching for the Mechatronics course and I’ll be regaling an enthralled audience with tales of boolean algebra, De Morgan’s Theorem and Karnaugh (first name Maurice) Maps.

I’m going to enjoy it, I’m not sure what the audience will think…..

Buying train tickets is harder than it should be

I hate it when things make me feel stupid. Buying train tickets online seems to be one of these situations. I wanted to buy some tickets to go from from Hull to London on Saturday. My normal approach (use the phone) was thwarted by the error message “Ooops. Something went wrong” when I tried to complete the purchase.

So I headed off to the web. And was met with the above. This is the page for Hull Trains, but lots of companies use the same UI, so I’m not happy with them either.

Questions abound. Why are the prices not shown? What do the buttons on the top actually mean? Why is the page called a Mixing Deck? And what on earth happens when you press the “Lowest fare finder”? Ugh.

After a bunch of experimental clicking and tweaking I finally managed to select the same trains that the phone wouldn’t let me buy. And I was told that there were no tickets available at that price. So “Ooops. Something went wrong” actually means “I’ve told you about some tickets that aren’t actually available".

So, train people, just a word here. When I go to a site to buy some tickets I want a list of journey options with a price next to each one. And I don’t want you to show me journeys that, for marketing reasons, you’ve decided not to sell me any more.

Refactoring Monitair

Fun fact. Users don’t care how their code is factored. They just want their programs to do what they want. All the time. Programmers have a different perspective. They want code that looks nice and is easy to maintain. This means that you often have to revisit decisions made at the start of the project, and change things to make them better.

Real world architects don’t have this luxury. If half way through the construction of a building they find a better structure there is no-way they can reconstruct it. But programmers can. But it is not without its risks. Ages ago I found a Haiku that I rather liked. I think it went something like this:

Your code was ugly
I refactored it for you
It no longer works

Having said that, I’ve just spent a day re-factoring the Monitair software. Because it was ugly. And it seems to still work. Which is nice.

Negotiator Rob

Sometimes I manage to surprise myself. Like today, when I was buying some new tyres for the car:

BMW Sales Person: Names Price
Rob: Names Lower Price
BMW Sales Person: “I’m afraid that would mean we’d have to sell you the tyres at cost price.”
Rob: “Hmm. I can’t see a problem with that”.
BMW Sales Person: “Yes, but that would mean that we would not make any profit on the sale.”
Rob: “Still searching for a problem for me, still not finding one”.
BMW Sales Person: “OK then”.

Now, I realise that “cost price”, is an interesting phrase, and that somehow the garage will be making money on the deal. But at least I didn’t take the first price that was offered. And for me that is a great step forward.

Snaps now on GitHub

A couple of days ago I got an email from James. He’s been working through my “Begin to Code with C#” book and having fun learning C#, which is great to know. He’s even reached the point where he has spotted an improvement to my code. It occurred to me that what he really wants to do is to put the changes into the GitHub repository where the code was stored, so that everyone could benefit from it.

But, rather stupidly, I’ve never put Snaps on GitHub. Well, that’s easy to fix, and so you can now get the latest version of Snaps for download from here:

https://github.com/CrazyRobMiles/snaps

If you don’t know what GitHub is, then you’re missing out. GitHub is a way that you can manage data, whether its a bunch of code or that book you’re writing. GitHub holds the source and also allows you to make incremental changes, all the while keeping track of the differences so that at any point you can go back to a previous version. It also has fantastic facilities for group working, so that several people can work on a single large project and manage the changes that their different work items produce. Until recently you could only use GitHub for free if you were happy to make your creation public. To have a private GitHub repository cost you a monthly subscription. That’s changed now, users can create private GitHub repositories for free, which is awesome. Three words of advice: Get. Into. GitHub.

As for Snaps, that’s a set of language extensions that make it very easy to create Windows Universal Applications. I created it so that people can learn to program without being hit by a lot of extra stuff that you need to know to create modern applications. It has lots and lots of features, including a sprite engine for game creation. It also has all the sample code from the programming book built into it, so you can play with and modify the sample code very easily.

I’m going to message James and suggest that he propose his modifications and we can put them into place as part of the Snaps release. That will also give him something nice to put on his CV.