AI enables greater access to software development and other knowledge-based activities. For $20/month or less you can access tools to speed up work, and work more easily in adjacent areas (and even sometimes non-adjacent: Claude helped me to fix my bathroom plumbing between coding sessions earlier this week). However, this accessibility has limits in comparison to what we saw recently with OpenAI’s 88-hour sprint on their potential solution to the Navier-Stokes problem. This raises new questions: what are the consequences of the emerging capability gap between the AI labs and the rest of us in our ability to solve problems like this quickly, and what does that mean for the researchers to whom they are also suppliers? ...

Being a Beginner: Running your first Half Marathon
In March 2023 I ran the Cambridge Half Marathon. It was my first half marathon. I wanted to do something worthwhile and that was bigger than myself. I raised almost £1000 for Mind in the process, and also improved my mental health by having a non-work goal to strive for. I’m still firmly middle-to-back of the pack when it comes to racing, but I did beat my own goal by achieving a time of 1 hour, 47 minutes, and 48 seconds (my target was to beat 1:55:00). ...

Smart under-cupboard kitchen lighting
Our kitchen is almost 10 years old now. When we first had it designed and installed, I totally underestimated how important good task lighting was, but thankfully the designer knew better and included a set of under-cabinet lights to illuminate the work surfaces. The lamps in these faded, were replaced and the replacements starting failing, so now it’s time to take on installing some nice smart lighting to make things even more functional. ...
Everything you need to know about integrating Google Sign-in with your Web App
Investigating Google Sign-In led me down a rabbit hole of trying to understand authentication with Google, how it fits with standards such as OpenID Connect (OIDC) and OAuth 2.0, and how best to integrate it into a web app that has a JavaScript frontend and backend API. This article is the result of that research. On the face of it, integrating with Google Sign-In is trivial: there’s a Google page that tells you how to do it. But I believe in understanding the tools you’re using rather than just pasting code from random websites, especially when it comes to security-related functions. I wanted to understand what was happening under the hood and be sure that I wasn’t inadvertently introducing security holes into my app. So I created a simple sample app that has just enough function to demonstrate how to safely integrate sign-in to your app. ...
Heating season 2019 is here!
Having just got back from a holiday in Switzerland (which was awesome) we got home to a slightly chilly house, and so turned the heating back on. Although I’ve not posted here for a while, work has continued over on the Github repository for Boiler.io and there are a few new features that I’ve added that are worth mentioning. I’ve also replaced the crusty jQuery-based UI with a nice React application. It’d be great to hear from you if you’re interested in running open source heating software. ...

Getting Started with Z-Wave
emon_and_zwave Having recently acquired a couple of Aeotec MultiSensor 6 devices, I decided to investigate how to make them easy to use via MQTT so I could use them from BoilerIO (my IoT heating control) and EmonCMS (the energy/home monitoring system from OpenEnergyMonitor.org). In this article I present the beginnings of a Z-Wave to MQTT bridge as well as discuss the basics of Z-Wave to help you get started with it. If you want to get straight to the code, jump to the section on the MQTT bridge, check out the code on Github, or run pip install zwave-mqtt-bridge. ...

Power Usage of Virgin TiVo, V6 TV box, and SuperHub
Modern devices such as TVs tend to be able to run in standby mode quite efficiently, which means the common advice about turning them off completely is becoming less relevant. However, retaining the overall aim of reducing your overall energy footprint, new always-on devices such as modems, routers, set top-boxes that have a recording facility, etc., are more relevant targets as they are still active even when you’re not using them directly. ...

Controlling your heating from anywhere
Previously we discussed the algorithms that can be used to control a domestic heating system, built a simple UI to schedule the temperature changes, and reverse-engineered a pre-existing RF relay to control the boiler. So far the web service that provides the UI has been deployed on a PC at home but, since you’re most likely to want to override your heating controls when you’re unexpectedly arriving home early or late, we need a site that can be reached from anywhere. ...
The BoilerIO Software Thermostat
It’s time to step up from command-line control of the heating system I’ve been working on to having a weekly schedule and temporary override function available through a UI, making the system practical on a day-to-day basis. https://youtu.be/uCpQMBQ1SC0 As always, code described here is available on github under an MIT license. Overview The scheduler chooses a target heating temperature throughout the day and needs to be usable by someone non-technical to show the state of the system, provide a means to enter and edit a schedule, and provide a means to change the target temperature for a fixed period of time. ...
Boiler Control to Maintain a Set Temperature
I wanted to be able to control my home’s heating from a computer. This post discusses the next phase in that project: a control layer that maintains a specified room temperature using a temperature sensor and the boiler control built in previous articles. I published the boilerio repository on github that contains the code to do this. Note that neither the code nor the article come with any warranty: please be careful if you’re using it as you could damage your heating system or create a safety hazard. ...