Blood Donation and Anxiety

This is mostly a note to my future self for next time I give blood but if you don’t already and are able to do so, please also give blood!  You know, to hospitals rather than in a jar as a gift…

It’s the day after and you are pretty damn anxious, also your legs are a bit wobbly.  You also forgot to take your meds yesterday you fool which could be a factor but it doesn’t normally bother you.  You were tired as hell last night and couldn’t sleep but that could just be normal background insomnia too.

Basically, next time you have given blood come back and read this so you can see if there is a pattern!

Yours, as always,

Docker, A Reverse Proxy, This Site and LetsEncrypt!

The site was migrated to SSDNodes last year as my previous host was becoming less reliable and I fancied something more versatile.  I’ve not covered it on here but here is how my site runs, now with added HTTPS thanks to LetsEncrypt!

A bit of history.  This is a WordPress site and has been since it was migrated from Windows Live Spaces which shows it’s age!  There is an official Docker container available so I thought I’d give that a go.  I may want to host more than one site on the same virtual server at some point so looked in to my options for a reverse proxy and jwilder had the perfect solution it turned out.  Building on an example I found I managed to get the site going behind the proxy but wanted to secure it.  Unsurprisingly this problem had already been solved too…

Follows are my Docker Compose files that work a treat, as much as examples for others as to help me in the future if I need to set up a new site or rebuild this one if something goes wrong.  When the container for the site is fired up for the first time it creates, and maintains, a Lets Encrypt certificate automatically.  Neat!

One thing for VaultPress users to be aware of is that you’ll need to follow the steps here under the reverse proxy section otherwise the service won’t be able to connect to your site to back it up.

If I need to host a new site, I just need to create a new site definition file and it should sort itself out.  Please note, the formatting may be screwy if you copy and paste these so you may need to manually tweak them.


version: '2'


 - mariadb
 image: wordpress
 - mariadb:mysql
 WORDPRESS_DB_NAME: wp_neaveeng
 APACHE_RUN_USER: wp-neaveeng
 APACHE_RUN_GROUP: wp-neaveeng
 - ./neaveeng/code:/code
 - ./neaveeng/html:/var/www/html
 - /etc/passwd:/etc/passwd:ro
 - /etc/group:/etc/group:ro
 restart: always

 image: mariadb
 MYSQL_DATABASE: wp_neaveeng
 - ./neaveeng/database:/var/lib/mysql
 restart: always


version: '2'

 image: jwilder/nginx-proxy
 - "80:80"
 - "443:443"
 - /var/run/docker.sock:/tmp/docker.sock:ro
 - "/etc/nginx/vhost.d"
 - "/usr/share/nginx/html"
 - "/etc/nginx/certs"
 restart: always

 image: jrcs/letsencrypt-nginx-proxy-companion
 - "/var/run/docker.sock:/var/run/docker.sock:ro"
 - "nginx-proxy"

 image: jwilder/whoami
 - VIRTUAL_HOST=whoami.local
 restart: always

Bass Guitar Rebuild

Just after Christmas I bought myself a new bass guitar, an Ibanez GSRM-20B in a walnut finish.  It was supposed to have a dark stain that allowed the woods grain to shine through but it didn’t work out that way and was almost black.  Now refinished using elbow grease and danish oil, I’m very happy with how it turned out!


Hictop 3DP-18: Marlin FW Example Configuration

I’ve been quiet on here for a while but anyone how follows me on Facebook will know I’ve not been idle, one of the things I’ve been working on is getting my Hictop 3DP-18 printer running stock Marlin Firmware.

The main reason for doing this is that despite the Open Source basis for the Hictop Prusa i3 the firmware for is isn’t readily available.  Some have had some success getting hold of a copy but I couldn’t be bothered with that for a few reasons, namely that the stock firmware seems to be based on an older version of Marlin and didn’t include any of the new hotness in v1.1 like Unified Bed Leveling!  UBL is a combination and culmination of a number of other bed leveling techniques and I thought it may help me get my printer more stable by making it more forgiving, so far it seems to work a treat!

The example configuration can be found on my GitHub repo here, I’ve submitted a pull request to the main repository for the project but not sure when what the time scale is for approval.  I’ve reviewed a pull request for a friends project before but this will be my first contribution to a major Open Source project!

One thing I haven’t enabled in my configuration is the filament runout sensor, this is because I noticed that it was creating a lot of drag on the filament which was starving, for lack of a better word, the extruder and the reasons why is explained in this video.

Example Config Link

Nerf Gun Shooting Gallery

This is a work in progress as it has turned out to be far more complicated than I thought it would be! I’ve learned a lot about how to design parts for my 3d printer and how to use the laser cutter at Reading Hackspace too though so already winning!

Over the passed few years my friends in the Reading Beer Festival Games Team have been talking about building a shooting gallery using Nerf guns to keep things nice and safe.  This year I offered to give it a go and the spec quickly escalated/became more fun!

As I’m building this more for the team than the players it needs to be easy for them to use while dealing with the festival punters who are typically moderately inebriated…  Resetting the board easily, keeping track of the score and setting up for the next game seems like the three things to concentrate on.

The game works, or will work, as follows:

  1. Press the start button, the counter should reset along with the targets
  2. Give the player a Nerf gun and a clip with 12 darts
  3. The player shoots the targets, which reset once hit, and the score is tallied

Having a bunch of clips that have 12 darts and a button that resets the game means resetting should be a lot easier than having to do it manually so that’s easy win, enter the Arduino!

I bought a bunch of hobby servos of eBay to use to reset the targets and designed a hinge with a magnet to hold up the target and a switch of some kind to track when a target is hit.

I’ve got a design working for the hinge but need to replicate it for all five targets.  More details once it’s complete but here’s an incredibly satisfying video of the mechanism in action!

Automated Broadband Monitoring on Linux

I’m trialing a 4G home broadband router at the minute to see if it can give me decent upload as apposed to the 1mbps I currently get so I thought I’d look into automatically running speedtests.  Here’s how and it turned out to be quite simple.  Caveat, this runs on Linux.

There is a really handy command line util for running which is a Python script.  To install it run: “sudo pip install speedtest-cli”

If you don’t have pip or python installed run this: “sudo apt install python-pip”

This will install pip and the prerequisites, one of which is Python itself.  Next up, in your home directory, run “speedtest-cli –csv-header >> speedtest.csv”.  This will create an empty CSV with only the headers in it.

Next up, and finally, run “crontab -e” and enter “*/10 * * * * /usr/local/bin/speedtest-cli –csv >> ~/speedtest.csv”.  Thanks to this thread for giving me the answer as to why it wasn’t working to start with.

That’s it!  Every 10 minutes a speedtest will be run and the results appended to the csv file.  Load it up in a spreadsheet program and job done.

It isn’t a long term solution as that csv will get unweildy after a while but this is a two week trial so not an issue.  I’ve an aging Raspberry Pi B hooked up to the router and will check the results in a day or so to see what the connection is like without anything else on it.

3D Printer Built!

As long time readers of the blog may remember I tried to build a 3d printer many years ago without any success.  The problem was that at the time I didn’t really have a need for one, didn’t know what was involved or what parts I actually needed.  I also bought printed parts from one person on eBay, the metal bits from another seller, the electronics from another group again and so on.

Needless to say this did not make for an enjoyable experience.

Every time I got into building it I hit the point where I realised there was a part I didn’t know I needed and I’d put it aside for a few months.  Rinse and repeat.  It got to the point where the printer I started to build was obsolete so I’d have had to start again anyhow, so I donated what parts I had to the local RepRap usersgroup and they used it to build a printer for a local school.  I was happy with that.

Fast forward to now, or at least a few weeks ago, and I had need of a few random parts.  A case for a Pi, bits for the Roomba rebuild, bits for the Mini, the list is ever increasing this time around!  To that end I bought a Hictop Prusa i3 from Amazon which included everything which meant the whole project was instantly more streamlined!  One weekend of hacking, unhacking and rehacking later and I have a working printer!

I’ve printed out a few things now from Thingiverse but I’ve also started designing someone from scratch, more details on that soon, but this is proving a wonderful experience!

Keegan’s Hat of Migraine Prevention

For whatever reason, back in early December, the ceiling lights at work have started giving me headaches which occasionally escalate into migraines, this is not ideal.  We have a very helpful facilities team at work but I though I’d just find a workaround myself, as I like wearing hats this seemed an easy one to fix.

Behold, Keegan’s Hat of Migraine Prevention!


I poked a small hole inside the headband at the back to allow a headphone cable to pass through and clipped my trusty Bluetooth receiver to it which I used in a previous hack.  I now have something that blocks out light and lets me control what I hear.  This helps no end and people are used to me being a bit odd so no-one has batted an eyelid.

That being my summer hat and weather taking a turn for the worse I’ve adapted my old Fedora so that when I’m out in town I have music too.  When things are busy having music to listen too to dull the noise of the crowd really does help.  The odd thing is I now need to remember to charge my hat…


A simple and daft pair of hacks that have actually helped a great deal.

Generic calendar icon

December Recap and The Year Ahead

December, a wonderfully triumphant mess!

The Bad Bits

I had a weird bug that left me knackered, we had project end which was busy and I was generally pushing myself too hard.

The Good Bits

Despite having a bug that left me knackered through application of drugs, coffee and rum I ignored it long enough to get shit done.  The entire team at work pulled off a blinder, everything clicked and we delivered an awesome demonstrator!  We aren’t allowed to show it off yet as we need to add a few bits for data attribution but we have produced something beautiful!  We had the Christmas party the same day and that was loads of fun too, then my friend Christy’s party a few days after that.  I’ll admit the post-con blues hit hard afterwards but I’ve had a bloody good sleep over Christmas!

I’ve also done a load of hacking this month; bits on the Mini before the above hit hard, more on the server which I rebuilt only to revert it and even hacked my hat to prevent migraines at work.  I’ve pictures and such so will write these up soon now that the dust is settling.

The Coming Year

Hopefully my role at work will change slightly soon which will be awesome, more details once/if it happens, but the things I’m looking forward to are the deadlines…  I’ve signed up for a track day in Hugo for the end of April and the London to Brighton Run in May!  I’ve also the Nerf shooting gallery to make for the beer fest for May Day weekend and hopefully will be attending World Maker Faire in August.

This year has been a bit of a revelation for me, with the anxiety and depression diagnosis and finally getting treatment I feel I’m finally on the right track, this year I think it’s time to get up to speed.