Blog

All posts

Next page

Lego Telepresence bot: how not to try and build one - June 26, 2019

Four years ago, I built a Dalek-based telepresence bot (part 1, part 2), and I’d been idly thinking for some time that what I really needed to do was make a better follow-up, as a much better one could probably be done with Lego Mindstorms especially given the existence of the BrickPi board for interfacing…

Vellere: exposing Github vulnerability notifications to Slack - May 24, 2019 Python  Tools 

A few years ago, Github introduced vulnerability alerts on repositories and although it was initially just for Javascript and Ruby, they’ve since expanded it to Python, Java and .Net and I’m guessing more languages are also on their roadmap. It’s a useful feature, except for one problem: it’s notifications are poorly implemented. They appear to…

AWS Lambda and Actix: easy conversion of small web apps into serverless - April 23, 2019 Tools  Rust  Cloud 

I’ve been idly considering the uses of serverless computing, and I’m still not convinced it’s worth it. I’ve used it before, mostly as a means to make things happen in response to AWS events, but the pattern everyone talks about is using them to run web apps, and I’m not fully convinced about that. However,…

On the value of maintenance - March 13, 2019

Most of our posts here talk about new software, but there’s also a lot of value in the longer-term maintenance of code and given I’ve done some of that recently, I thought it worth revisiting various earlier projects in that light. None of these are really large enough to have their own post, but collectively…

Serialising Rust tests - Jan. 14, 2019 Tools  Rust 

I’m once again prodding the potboiler tests and a couple of the tests I was doing wanted to mess around with the shared database. This had the problem that multiple tests would collide with each other, as the default for Rust testing is to run everything in parallel. This is unusual, but good in many…

Making a Spaceteam timer app with Flutter - Jan. 4, 2019 Android  Tool chains 

Some of you may have run into the excellent Spaceteam mobile game. It’s best described as ‘co-operatively shouting at each other to fix your broken ship’, and it’s a lot of fun. Some fun folks then went and made a card game variant of it, which is similar in many ways. Now, both games have…

Experiments in converting code from C to Rust - Nov. 27, 2018 Tools  Rust  C 

I’m quite fond of Rust (as a few blog posts on the topic may indicate), but one item I hadn’t really explored was replacing/rewriting existing C code bases in Rust. There’s a general joke about the general notion of “rewriting everything in Rust is of course always the right thing to do!” (Google “rust evangelism…

Clincher: checking your signed git commits - Oct. 26, 2018 git 

Recently for a project with tight regulatory requirements we decided that git signing throughout the project was a good idea. There’s a debate about it’s level of effectiveness, given that all it tells you is that a particular commit was made from a particular developers machine, and if they’re not careful, they can end up…

Even more Rockstar: using WebAssembly to run Rust code in browser - Sept. 24, 2018 Web  Rust  Javascript 

Two months ago I blogged about how to be a Rockstar developer, and demonstrated it with a Rockstar interpreter called Maiden written in Rust. Now, normally Rust is considered a systems programming language (it even says so on the Rust homepage), and the command-line nature of Maiden aligned well with that. Except that Rust is slowly…

Not all watchers are created equal (or how to make yak shaving useful) - Aug. 14, 2018 Tools  Clojure 

I’ve been hacking around with a Clojurescript project recently, and it resulted in a certain amount of yak shaving when I found the watcher system I was using was eating a lot of CPU. On the one hand, yak shaving is bad, because you’re doing other things that aren’t the core task you’d originally meant…

Next page