Making trivets

I love the way that 3D printing lets you go from an idea to a thing really quickly. Thanks to a what seems to be a worldwide shortage of liquid soap (I wonder why that might be) we now have a soap-powered cleanliness routine. This has led to a need for soap dishes. We’ve re-purposed a bunch of little dishes, but we have the problem of the soap getting wet and icky (and dissolving) in the dish when it gets wet.

We needed something to keep the soap out of the water that runs off it after use. A kind of “soap trivet” that fits in the bottom of the soap dish. A few minutes with OpenSCAD and I had my design. A little while later we had our printed trivets. And now Una can go back to making PPE visors.

If you have a need for a soap trivet, you can find the OpenSCAD code here.

Tkinter tip: putting buttons back to their original colours

Another of those “blog posts that you write so that in six months time, when you hit the same problem you can search for it and find the answer that you wrote for yourself…”

I’m building a little editor for Hull Pixelbot HullOS programs. The editor can deploy code via MQTT or serial terminal so my editor has buttons that let you select which connection you are using. I thought it would be neat to make the buttons change colour to indicate which connection type is in use. Making buttons go green is easy:

button["bg"] = "green"

You can regard a display element as a dictionary (everything in Python is a dictionary) and one of the keys lets you set the background colour.

However, getting a button back to its original colour is a bit more tricky. Word on the street was that the default button background colour is “light grey” but this didn’t work. Perhaps I spelt “grey” wrong. Anyhoo, the correct way to do this is to use the following:

button["bg"] = "SystemButtonFace"

The colour “SystemButtonFace (why am I thinking of boat names?) is the colour that you need.

Thanks for the free book. Whoever you are.

Whilst enjoying our government mandated walk in the outside earlier this week we came upon a blue Ikea bag full of kids books in splendid condition. Over the bag was displayed a note that said “From our house to your house. Please feel free to take one of our books”. What a nice thing to do. And number one granddaughter loves books. So I picked up a book, checked the location of the house (it was the one with rainbows in the window) and then we completed our exercise.

The next day we headed out with a “thank-you” note. When I get to the location of the blue bag I look for the rainbow in the window and find that two adjacent houses have rainbows. Dratt. Now I don’t know who to thank.

So, in the extremely unlikely event that the generous family actually read my blog I’d like to say thank you here.

Just had a thought. If I find out who they are I could give them a free copy of Begin to Code with C#. Not sure what they’ve done to deserve that though…….

Busy Fibre

Earlier this month I re-imaged my PC. Using your skill and judgement, can you work out from the above graph of internet usages when this was?

The two peaks are around 60G each, which is rather impressive. It’s a good thing I’m on an unlimited contract. It’s also a good thing I’m on KC Lightstream fibre to the house. I shudder to think how long it would have taken to download this much content a few years ago.

Camtasia is Wonderful

Full disclosure: Camtasia were kind enough to give a free licence for this as part of the TechSmith Influencer Program. Thanks very much.

I’ve been using Camtasia for years. And now I’m using it again. My new book (I love saying that) is going to have lots of video extras so that I can talk the readers through some of the subjects. So, of course, I’m using Camtasia to make them.

Camtasia is one of those products that just seems to be on your side. At no point do you feel that you are having to bend what you do to fit the tool. The video capture element just works. I’m capturing the desktop of a VPC so that I can record everything and can set the capture area to exactly fit the window on my screen. I can record with a narration as I go, or add the narration later. Or do both and argue with myself. The process of bringing items together to make a seamless whole is very easy. And the publishing is as easy as it can be.

It even managed to get my machine up to 100% loaded by using all the cores when rendering the video. I’ve not seen many programs that manage to do this.

Its really easy to add titles and animation effects (although I’m trying very hard not to go nuts with them). If you’re stuck at home wondering how you can produce videos with a professional finish then this is a really good way to do it.

Printing Trains

Chris likes trains. So it seemed appropriate to make him a birthday card with a picture of a train on it. I found this picture amongst a bunch that I took in Haworth nearly ten years ago.

I tried to print it onto thin card with my lovely HP laser printer. It did not go well. Lots of black toner everywhere. I really thought I’d broken the printer.

Fortunately a few tests confirmed that all was well. The printer was just having trouble with the card stock I was using. Turns out that the answer was to do just what you should do. Tell the printer you are using a different kind of paper. When I selected “thin card” it worked a treat. It runs the printer more slowly so that the toner has more time to heat up the card and fuse the toner to it.

PSU Supports for LED cube

I’ve gone back to working on the led cube. I’m using a great design for the supports but the power supply support boards for each panel don’t fit my particular led boards. So I’ve started making my own. Because the designs of these things have to change a bit I’ve made the program as flexible as possible. If you want an OpenSCAD program that you can use to make a plate with holes and rectangles in, then this could be just want you want.

First Visors Delivered

I dropped off a few test visors at Dove House Hospice today (with some stickers). I gave them a call and they said that they would find them useful. They do fantastic work. It amazes me (in a bad way) that services as important to the community as this are not routinely provided by the health service. But they aren’t, and so Dove House has to exist as a charity, depending on donations (which have dried up a lot recently). If you can help I know they’d appreciate anything you can give them.

They were very pleased to have them and so I’m going to just keep Una the Ultimaker printing them out and I’ll drop some more round when they are ready.

Begin to Code with JavaScript is a Thing

The “Begin to Code” series is going to be a trilogy. They’re letting me write another book in the series, all about JavaScript.

I’m using GitHub as the hub of the course (the clue is in the name). Readers will get started by cloning the sample repository and then make their own changes. They can then use GitHub to publish their creations as web pages that the whole world can see.

It’s going to be fun.

Printing Visors for Covid-19

I noticed that Paul was printing out visor holders for health workers. I thought I’d like to have a go and he was kind enough to send me his design of choice. Of course Una (my 3D printer) promptly decided to play up massively. At one stage I resorted to shouting “I’m trying to do something good here!” very loudly at her. That didn’t work and so I replaced the print nozzle for one that actually had a hole in it.

This improved matters considerably, and after a couple of hours I had my first prototype. You are supposed to use A4 plastic binder covers but, not surprisingly, these are a bit hard to get hold of at the moment.

I’ve ordered a bunch, but for now I’m making do with some transparency film that I had lying around for printing out overhead projector slides (remember them). I’ve also ordered some proper length elastic bands.

The finished article looks OK to me. I’m going to wear it for a while just to see how long it lasts. Now all I need to find is someone who wants a mask like this. I’m not saying it is perfect, but it beats the heck out of nothing…..

If you have such a need, let me know

The case of the haunted HomePod

Well, that was spooky. Being a lazy sort of person I have a habit of asking my Apple HomePod to play my favourite tunes. This used to work well, with the device duly serving up a bunch of what my sister used to call “middle of the road cr*p”. However, lately it seems that the HomePod has decided that my tastes have changed to jangly guitar rock and obscure Japanese bands. Most strange. At first I thought it was Apple’s algorithms deciding it might be fun to test the limits of my taste, but today I resolved to try and find out why the HomePod thought my tastes had changed to much.

The answer is kind of interesting. The latest release of the HomePod software has the ability to recognise the voices of family members. But you have to enable this. And if you don’t enable this recognition the HomePod uses a default account for the person doing the talking. And for some reason it had fixed on number one son’s account. It must have picked up his presence on the network a while back and decided that his was the voice of power. So for the last couple of weeks I’ve been living with his tastes.

I just had to set my account as the default user and enable voice recognition and I’m back in a world of Steely Dan and the like.

Making an old Mac useful with Catalina Patcher

I was rather upset when my venerable old Macbook Pro fell off the end of Apple’s support. But today I’m happy again, thanks to Catalina Patcher. It integrates the update and patching process to get even my 2008 vintage MacBook Pro back in the game. There's even a video you can follow as you prepare a bootable system disk and then use this to re-image your machine.

The process can take a while and I think it works best if you create an empty machine but it works a treat. It’s rather pleasing to find a 12 year old machine is still able to be useful.

If you’ve got an old Apple lying around it is well worth a look.

Adventures in Network Gaming

We had lots of fun this evening playing games. We had six connections and eight people, and off we went. First up we tried to play Colt Express. This was hilarious. Not because it ever worked, but because our attempts to get everyone registered into a single game and signing up turned out to be at least as much fun as playing a proper game. So we moved on to Ticket to Ride, another game that we’ve enjoyed in real life. And another game that didn’t work. It’s a probably a bit cruel to berate Admodee Digital for their horrid network experience, what with all the extra traffic that they are probably seeing. But, having said that we saw just twelve people trying to play Colt Express (and six of them were us) and it still didn’t work, with “Network Error 17” being a particular favourite. In this day and age that kind of performance is rubbish. My advice: don’t pick up either of these games if you want to play them over the network.

So, around an hour in, with no games played, we moved onto Tabletopia. This is web based platform that just provides a sandboxed environment in which you play the game. And by play I mean you move all the pieces, pick your cards up and look at them, and try really hard not to put them back on the table with their faces visible.

We were playing Secret Hitler, which is a great game. After a while we managed to surmount the challenges of the virtual world and stop ourselves showing our secret roles. You can have a go for free, one player starts the game and sends out links to everyone else to join in via their browser.Although you might find that the site is very, very busy.

It was hilarious. It wasn’t quite the same experience as live play, but it was good enough to make we want to have another go.

Writing MicroPython using Visual Studio Code and Pymakr

I’m starting to really, really, like MicroPython. I particularly like the way that you can use the REPL command prompt to test out code before dropping it into your programs. I’ve been using an editor called Thonny which is nice enough but of course what I really want is to be able to use Visual Studio Code. It turns out that there’s a plugin for this. It’s called Pymakr. It lets you transfer Python files between your PC and your MicroPython device and provides a REPL prompt too. If you want to use it you have to install Node.js first. I did this and then found that it didn’t work. My MicroPython board was not detected.

I was using one of my Doit boards which usually works fine. (I’ve just bought another one….) It turns out that Pymakr maintains a list of USB devices that it is willing to connect with. You need to make sure that your device is on the list in the configuration file Pymakr.json. Use the command Pymakr>Global Setting to open this file and then add your device manufacture to the list, like I’ve done below.

Note that this is not the the manufacturer of your device, it is the manufacturer of the USB interface that the device uses to connect to the PC.

You can find the name that you need by opening Device Manager, right-clicking the com port where your board is connected and then getting the manufacturer name from the properties page:

I did this and everything started working. The Pymakr plugin has a nifty feature where it will copy all the Python files in your project into the device, or only copy the ones that you’ve changed. Very nifty.

If you’ve not played with MicroPython before I’ve written a tiny guide that you might find useful. You can find it here.