Author: david

  • Project Debrief: UV Index on Home Assistant

    Project Goals I use Home Assistant for home automation, with a handy dashboard visible in my living room. On sunny days, I would like to know whether I need sunscreen so a UV index display is ideal. Home Assistant does already have a UV Index integration but is has two issues: Design The first step…

  • Project Debrief: ELO Foosball

    Project Goals The staff at the startup I was in around 2013 conformed to stereotype by playing a lot of Foosball, and quite competitively at that. To revel in this, I decided to write an app that would a) allow us to track games and b) provide a ranking of players! Design For tracking games,…

  • Skip Flask, even for tiny projects

    Flask is a lightweight Python web application framework. It makes clever choices to be simple but powerful, such as using existing libraries like SQLAlchemy and Jinja, and keeping boilerplate down to nothing. This makes it very compelling when you want to create “just a few functions” sized applications. But I’d strongly recommend skipping Flask. If…

  • Howto: run a single application behind a VPN on linux

    VPNs have lots of benefits like privacy and geo-diverse egress, but also can have worse latency, throughput and be blocked by some sites. So it’s natural that you might want a VPN for some of your internet usage, but not all. I found I wanted to run one application behind a VPN but not others,…

  • Project Debrief: Filter Feed

    Note: this post is probably of low interest. I am simply making a record of some little personal projects I have made. Project Goals I subscribe to several podcasts and RSS feeds which include some posts I’m not interested in. For example, USGS has a feed of volcano statuses but I only want to subscribe…

  • Project Debrief: Dice Calculator

    Note: this post is probably of low interest. I am simply making a record of some little personal projects I have made. Project Goals My personal motivation for this project was to learn about voice assistants. The actual project goal, however, was to produce a dice calculation voice assistant feature that understood the ins-and-outs of…

  • My Google Epitaph

    This post originally appeared as a Google-internal “Epitaph” – a leaving note for a parting employees. Larry and Sergey’s 2004 letter to investors said “Google is not a conventional company. We do not intend to become one.” However, laying off 12,000 workers, despite having a $114B war chest, $60B in 2022 profit and growing revenue[1],…

  • Stackdriver HTTPS uptime check, with certificate verification

    Stackdriver offers Uptime Checks for HTTPS. Sadly these checks don’t verify the certificate, so you won’t get an alert if a certificate expires. A simple solution is to add a Google Cloud Function in between Stackdriver and your site. This allows the usual Stackdriver monitoring and alerting, plus a check in Google Cloud Function that…

  • Life with Crypto Backdoors: Stingrays, Government Surveillance and Crime

    Playing out today is a debate about the control of future of technology. After revelations of massive government surveillance programs, new applications deploy strong encryption, touting privacy as a key feature. The authorities, afraid they will not be able to access communications, are attempting to mandate weaknesses in these applications to ensure they can gather…

  • Make bash show the return code

    When using a command line interface, I like to see all the output a program makes. The standard out and error are already dumped to my console, but there is one piece of information usually hidden from the user: the return code. Add the following to your .bashrc to get a nice notification if a…