Always take some toys to meetings

Today I had a meeting about Connected Humber CIC. We are trying to spread the word about what we are doing. I took some toys along, including the prototype Air Quality sensor and my Air Quality Top Hat.

This turned out to be a real win. Everyone was very impressed (or very polite). I reckon you should always have some toys to show off when you are trying to impress. This doesn’t mean you should push them into everyone’s face as soon as you start, but that if the conversation turns to “What have you made then?”, it is really nice to be able to pull something out of your bag.

Making classy web sites for free using Hugo

A while back I read a great post from David Parker about using the Hugo program to produce static web sites that you can host on GitHub. I’ve had a go with this, using the amazing meghna template. You can find the result here.

It’s been a great learning experience. Things I’ve learned:

  • The Hugo program will serve out a test version of your web site pages which you can view on your local machine. Each time you update a local file, the test web site updates automatically. This is a great way to preview your site, but beware of browser caching which can cause changes not to propagate. I lost a lot of time wondering why some changes hadn’t worked when they had.

  • if you want to map your Hugo site to a domain the source repository must be unique for a particular GitHub user or organisation and have the “.github.io” string on the end of its name. You can host web sites from other repositories in your GitHub account, but these will always have urls which are on the GitHub site.

  • David’s howto does a cunning GitHub worktree thing to allow both the web site source and the served pages to be on two different branches of the repository. He presents a batch file that will update the web site on the Master branch of the repository (the one containing the site) but if you want to push changes in the source files to the source repository you will have to do this by hand. I got myself into a bit of a tizzy using the GitHub desktop client to manipulate the site files. I’d advise you to do everything from the command line.

  • A GitHub repository that is mapped to a domain name must contain a CNAME file which gives the name of the domain being used. If you use David’s vanilla batch file to update your site you’ll find that the CNAME file is not replicated. You can fix this by adding the CNAME file to your static folder on your site repository or by changing the batch file to create a new CNAME file each time after it has wiped the old site prior to making the new one.

  • If you are mapping a domain name to your site and you want to use HTTPS (and you should) the address that you put in the config.tohtml file must be the domain name, not the GitHub address

  • If you add the

    RelativeURLs=true

    CanonifyURLs=true

    lines to your config.tohtml file these will break some of the megha features, notably the scrolling background images

  • You may have to modify some of the html files in meghna to remove references to a local php server used for mailing that is not available on a GitHub site

If you want to make a classy web site on the cheap (actually free) then I strongly recommend that you take a look at Hugo and the lovely templates that there are available for it.

Playing with Linux for Free using Azure

Last week I built Linux PC and started it going on Azure. I kind of did it by mistake, in that I had half an hour between meetings and I thought I’d just do something to pass the time. There was intent there though, in that we are moving the Connected Humber air quality data visualisation platform (that sounds posh) over to Azure.

Getting started is very easy and free. Just follow the instructions in the site here. These are the things I learned when I had a go:

  • you’ll need two PuTTY programs. PuTTYgen to generate an SSH key and PuTTY to connect to the server (if you’re connecting from Windows like I was). When you download the program files there are lots of slimy links to things that aren’t what you want, be careful about this.

  • make sure that you open up port 22 on the virtual machine, otherwise you won’t be able to connect to it using SSH at all (although there is a Linux prompt available on the Azure Portal too)

  • you can reset passwords on your Linux installation via the Azure Portal. This is great if you, ahem, forget to write them down when building the machine

  • a virtual machine starts off in “developer” mode, which means that it shuts down at 7:00 pm each evening. You can turn this off - look for Auto-Shutdown in the settings

  • if you want a static ip address (which you really will want if you want to point a DNS address to it) then you need to set this explicitly. Click the ip address in the virtual machine properties to drill through to the properties for the address and select static

The “machine” is now running and folks who know Linux much better than me are now busily installing the software on it.

Zed book review

Zed by Joanna Kavenna s not a happy tale in the same way that 1984 is not a happy tale. However, it is a very relevant one in the same way that 1984 is very relevant.

Zed is set in the near enough to be scary future and tells of the travails of Beetle, an all encompassing tech company that is in no way similar in reach and vision to companies like Facebook and Google. Not at all.

Beetle is everywhere, and is using its everywhereness to provide everyone with a handy “lifechain” which is able to predict what you might do before you do it. The story explores what happens when pesky humans start behaving in ways which the lifechain doesn’t predict and how Beetle is forced to come up with the idea of “Zed”, an imaginary quantity that defines this unfortunate characteristic. Mitigating Zed becomes a company priority with bad results for just about everyone.

It’s a lovely description of how people, companies and governments can justify, rationalise and institutionalise evil without anyone being consciously malicious. You’re never quite sure where the evil is coming from. Bad things seem to happen to good people as an emergent behaviour of the system, rather than having been mandated by any particular person.

If you have any interest in the future you should read this book. It won’t leave you with a warm feeling that things are all going to be OK with our benevolent corporate overlords, but it will give you a lot to think about.

Men at Work Board Game

Men at Work is a balancing board game. Players take it in turns to place girders, supports and workers on the building site. Place the highest piece on the site and you earn an award from Rita the site boss. Get three awards and you win the game. Make things fall down and you lose one of your three safety certificates. Lose all three and you leave the game. The pieces are beautifully made and presented, and the whole thing is nerve-wracking fun.

With most games you’re waiting for your turn so that you can do something. In Men at Work you get at least as much excitement watching other people take their turns trying to place items on precarious beams without everything falling down. Very enjoyable.

Air Quality Hardware Meetup

We had a splendid hardware meetup today. A whole bunch of new people turned up, including Dave White, Hull City Council Air Quality Officer. We wanted to discuss sensor design, data visualisation and a bunch of other things. So we did. It was great. Lots of plans made which I really look forward to seeing lead somewhere.

At the time I promised to put up a bunch of links to things that folks might find interesting. I think these are the ones, please feel free to let me know if there is anything missing.

  • You can find out about Connected Humber here.

  • You can join in the conversation about Connected Humber, Air Quality or anything else you fancy chatting about here.

  • You can read my amazing blog here. Oh, you are doing. Thanks for that.

Enter the Humber Healthcare Challenge

Click the logo to enter

The Humber Tech Challenge is in October. You should enter. You should enter because:

  • you learn stuff

  • you meet people

  • you make stories to tell

  • you do good

  • you have fun

Everybody who took part last year got something out of the event. Even the judges had a good time. This year the challenge kicks off with a Visioning day on the 5th September. If you can’t make that we’ll have a Visioning Video out straight afterwards that sets up the challenge. Then, on the 1st and 2nd of October we’ll open up the Spa Hall Bridlington and turn you loose. There’s free food (and biscuits).

You can sign up here. I already have.

Cheap project boxes

What you can get for seven pounds

Making boxes to put projects in is hard work. You can 3D print them but that takes ages. You can laser cut them (but you need a laser cutter). And making things waterproof is really hard too.

Turns out that terminal boxes make great project boxes. They arrive waterproof and the holes in their sides have nifty little rubber plugs in them which you can cut to fit whatever you really want connect to. It turns out that the buttons that I bought last week can be made to fit in the sides with just a modicum of surgery. We’ve also used these holes to provide inlets for air quality sensors.

If you’re lucky you might find that you can shine neopixels through the rubber plugs to get a nice lighting effect - like I do for the two button game. I don’t think this will work with the boxes above though, their plugs seem quite opaque.

Terminal boxes are available in lots of sizes and really good prices. I got the ones above from Screwfix.

Taiko no Tatsujin: Drum 'n' Fun is awesome

Favourite birthday present so far: Taiko no Tatsujin: Drum 'n' Fun

Absolutely. I’ve always liked rhythm games and I really love the exuberance of Japanese productions like these. The enthusiastic commentary (all in Japanese so I’ve no idea what they are saying), the bonkers animations and the crazy soundtrack are all really infectious.

But the thing i really like is the collection of crazy music. I think it is fair to say that, save a few game sound tracks (including Ridge Racer), there are no pop tracks that you will ever have heard of. Ed Sheeran is not on the playlist. In a good way.

But what is there is proper daft. There are pop tracks and anime sounds that are just fantastic, along with a version of the alphabet song that just has to be heard and drummed to. It is deeply silly and, of course, there is a lot of skill required if you want to crack the harder levels.

You can drum with controller buttons or on the touch screen but I’ve got the version that comes with a plastic drum and a pair of drumsticks. The drum worked very well for me after a bit of fiddling to sort out the timing. Word on the street is that waving the joycons around doesn’t make for a great drumming action, but I’ve not tried this yet. There are also some multi-player modes that I’m looking forward to having a go at.

The biggest limitation for me is that the drum controller is wired to a USB plug, so you can only use the drum if your Switch is plugged into a docking station. It might be possible to do something cunning with a USB C hub , but since this connection is on the bottom of the Switch it would be hard (and potentially damaging) to stand the Switch up when using it. If the drum was wireless and battery powered it would be great for portable drumming action, but as it is I’m having a lot of fun and enjoying the crazy music.

Special delivery

Bit of a commotion outside our house today. It started with the sound of helicopters hovering overhead, then motorcycle outriders hurtled down the road, followed by a couple of police squad cars, and finally an armoured truck. And then, with full sniper cover, a helmeted guard brought a package to our front door and rang the doorbell.

Turns out that it was just a printer cartridge delivery, but with the price of these things I’m not surprised by the precautions.

Getting Started with Azure Sphere

Pictures shows security aware graffiti

My free Azure Sphere development kit arrived last Friday, the day after I ordered it. Awesome. If you want one of your own you can get them here for free. It has serial ports, environmental sensors and buttons, plus a connection for an OLED display. You write programs for it using C via a Visual Studio extension. You can deploy and debug the code in the device from your PC and its very secure.

That’s all I really know at the moment, so lets get started. You can find the documents here. They tell you to go here and install the Visual Studio plugin. This also installs hardware drivers for the device. The bit that they don’t document very well is how to set up the device with Azure Sphere. You need to go here to do that. I worked through the sequence with no problems and now I’m waiting for my device to perform an OTA update to the latest firmware. Things that I noticed:

  • When you start using the azuresphere command in the Azure Sphere Developer Command prompt you’ll be asked to log in. This needs to be with an Active Directory enabled account. If you’ve not got one (because you are using an Office 365 subscription username for example) then that won’t work. However, if you’ve an Azure account (and having an Azure Sphere device without an Azure Account would be very stupid) you can use the free tier of the Active Directory provision (just click Azure Active Directory in the portal) to create Active Directory enabled accounts.

  • Once you’ve logged in with your shiny new Active Directory username you must create an Azure Sphere Tenant which acts as a container for your devices. Physical devices are then “claimed” by the tenant so that they are managed by that tenant. This is a one time action. Once a device has been claimed by one tenant it can’t be claimed by any other and a device can only be claimed by one tenant. I’ve made a Tenant called “Connected Humber CIC” for all our devices.

  • By default (i.e. unless you specify otherwise) any user in the Active Directory that authenticated your azuresphere command can control your devices, including pushing new firmware, claiming new devices and so on. If you want to restrict this you’ll have to set this up yourself. It’s not hard to do, but you have to do it. This is not a problem if, like me, you’re only got a few users on your Active Directory, but it would be an issue if you were adding the tenant to a large Active Directory setup (perhaps a corporate lan) with lots of users with different levels of access.

  • You have to use the azuresphere prep-debug command to allow you to deploy code into the device and debug it from Visual Studio. Once you’ve put the device into debug mode it stops receiving OTA updates. The azuresphere prep-field prepares the device for the field. These commands might install usb drivers for the debugging, so they need to run in Administrator mode - (start the Azure Sphere Developer Command prompt as Admin)

  • The Visual Studio Add-In for Azure Sphere works fine in Visual Studio 2019

Well, the firmware update has completed, I’ve done the command to prep the device for debug and now I’m running the GPIO version of “Hello world”; a flashing LED. I’ve even managed to put a breakpoint in the code and stop it. Next thing to do is connect a sensor and get my Air Quality code ported across so that I can get readings into the device, then I’m going to have to figure out how to get the readings over the network to store them and finally how to deploy the code for real.

Exciting stuff.

Long Cow

If it seems like I’ve been playing a few games lately I have. So there. Long Cow was an early birthday present, purchased because I liked the phrase “udderly ridiculous”, it looked like fun, and it had a “moo” voice box as one of the play pieces.

Players compete to create the longest cow and the biggest herd. Your cows can be of particular breeds, or you can use “frankencow” cards that allow you to mix them together and even add robot components. And there’s rustling and other cow related tom-foolery to be had too.

It’s actually rather fun. Nothing too taxing (although I think you can take it very seriously if you want) and some lovely artwork on the cards.