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.

The Virtues of Virtual Machines

I spent a chunk of today building a brand, shiny, new, Virtual Machine on my PC. Each time I do this I’m impressed by how easy it is.

I want to record some installation videos and I want a clean machine to do that with. Also, it’s wonderful to be able to wind back the machine to pre-install state so that you can have another go.

I had to work quite hard to get the machine to let me create a local user, and not link up to an online account, but it is still possible to do this.

Achievement Unlocked: Sofa Mended

What with today being the start of a new month, I thought I’d do just one of the things I thought I’d get done last month.

I’ve mended the sofa.

This just required a bit of patience, a sharp screwdriver, a big bag of stuffing, and a staple gun.

First step was to take the sofa to pieces and then unstaple the cover from the frame. It turns out that a sofa that looks like it has three separate cushions is nothing of the sort. Once you’ve undone the cover you can just peel it back and take a look at the cushions. In my case it was simply a matter of putting some more stuffing on top of the cushion that was getting a bit tired and then stapling the cover back into position. Although I did also have to replace some of the webbing straps as well, cue for more staples.

If you’ve got a sofa that is going soft, it does seem to work as an approach. And I’ve got a lot of stuffing left over which I’m not sure what to do with. And I don’t want any suggestions….

Fit Family

I’ve started taking keeping fit a bit more seriously. I’m using my Apple watch to track my efforts and I’m trying very hard to make sure that I “close all my rings” each day.

Let me explain. The Apple fitness system (to which I am now a slave) measures three parameters each day: how many times you stand up, how much you move and how much you exercise. You get targets for each of these and during the day a growing arc is displayed that represents your efforts. When the arc closes on itself you’ve “completed a ring” and can go back into couch potato mode.

The stand goal (of 12 stands a day - one per hour) can be a peculiarly tricky one to hit. Too much lazing around early in the day can result in you having to stay up to 11:00 pm at night just so that you can get the final stand in. The watch goes ping at 10 minutes to the hour to tell you to stand up at least once (it’s scarily surprising how often I have to reminded to do this) but if you’re deep in a piece of code you can easily miss that.

Recently other members of the family have linked their Apple fitness regime to mine, so that we can compare our progress. This is going quite well, if only as an instructive lesson on how devious people are at “gaming” a system. One member of the family has adjusted his “move” target to a level where simply getting out of bed and raising one eyebrow will count as a days’ worth of activity. Another has discovered that you can start a workout (and thereby gain exercise credit) at any time, which allows time spent watching athletics on telly can be made to count as keeping fit. And I have perfected a sequence of arm waving that works beautifully in convincing my watch that I’ve stood up and taken a walk.

I guess this means that we are all now “lab rats” dancing to the tune of a faceless corporation.

But at least we’ll be slightly fitter lab rats.

Voice Dictation in Microsoft Word

My lovely Surface Go is running Office 365 on the back of my Office 365 subscription (which I reckon is amazing value by the way). The copy of Word on that machine has recently sprouted a microphone button which allows you dictate directly into a document. I had a play with it, and it works really well.

Well enough to make me want the feature on my main desktop. Getting this to happen was not the easy thing that I expected it to be. I thought that just upgrading Office 2016 on my machine would just work.

But it doesn’t.

You have to use the Install option on your Office 365 subscription page. This might be because the dictation feature uses the cloud to perform the conversion, and only Office 365 users can do that.

Anyhoo, it works well on both of my machines. Even if you try using silly accents….