• The voice referendum

    Australia is having a referendum on October 14 about amending the Australian constitution to establish an Aboriginal and Torres Strait Islander voice to government. This feels like it has crept up on me - I regret to say that I haven’t discussed it with as many of my friends and family as much as I would have liked to. But I feel strongly that Australia should embrace the voice by voting yes in the referendum, and here I will explain why as best I can.

  • Introducing Dewobble 1.0.0

    After lots of research and experimentation, multiple rewrites, and lots of optimization, version 1.0.0 of Dewobble has been released! Dewobble is an open source C++ library (and accompanying FFmpeg filter, not yet released) that applies motion stabilisation and lens projection changes to videos. It’s not the first software to do either of those things, even among FFmpeg filters, but it has a number of advantages over most existing solutions.

  • Transforming compressed video on the GPU using OpenCV

    In a previous post, I described various FFmpeg filters which I experimented with for the purpose of lens correction, and I mentioned I might follow it up with a similar post about video stabilisation. This post doesn’t quite fulfill that promise, but at least I have something to report about GPU acceleration!

  • Making a new desk (part 5): Assembly and final reflections

    In part 4 I wrote about the process of choosing and applying a finish to my timber slab desk tabletop. There was now only a ceremonial amount of work left to attach the tabletop to the frame, and my desk would be complete.

  • Making a new desk (part 4): Choosing and applying a finish

    In part 3 of this series I ended up with a tabletop for my desk that was in its final shape, with smooth sanded surfaces, gaps filled, and nicely rounded corners. The next step was to apply a finish to the wood in order to protect it from the elements, and to enhance its aesthetic qualities including the appearance and texture.

  • Making a new desk (part 3): Gap filling with epoxy and sanding

    In part 2 of this series I wrote about how I came into possession of a cut and dressed timber slab. With the slab in my possession, the first task was to turn it into an appropriate shape to be a desk. This included filling in various gaps, sanding surfaces, and rounding corners.

  • Making a new desk (part 2): Buying a timber slab

    In part 1 of this series I bought a desk frame, but I didn’t buy a tabletop to rest on it. That’s because I made my own out of a solid slab of Eucalyptus. What follows for the next few posts is not so much a how to, but an account of my journey making the tabletop. I’m an amateur and I was doing many things for the first time, so this includes many mistakes I made along the way.

  • Making a new desk (part 1): Choosing a frame

    Like many people I spend a really huge amount of time working at a desk, so I think its important that my desk setup is comfortable and generally induces positive feelings. Until recently I was using a desk I found at a second hand store.

  • Correcting lens distortion using FFMpeg

    In recent less apocalyptic times, I used to play dodgeball - a team sport involving throwing foam balls at members of the opposing team. I hope that the COVID-19 outbreak passes soon and I can play it again, but in the meantime the closest I can get is watching videos of it and doing image processing on them. Our team records our matches for later analysis using a GoPro camera. The game is played in a rectangular court surounded by a net, and we mount the camera in the corner of the net so that the net does not obstruct the camera’s view of the court, and the camera’s field of view includes the entire court.

  • Adventures making gnome-shell run in Valgrind: part 1

    There is a nasty sort of bug that can occur in languages without memory safety - bugs where memory is accessed incorrectly. There are a few reasons why these bugs are nasty, worse than many other types of bugs:

    The consequences are often severe (usually the entire process crashes, or worse behaves unpredictably). They often create security vulnerabilities. They are difficult to debug. The symptoms may appear intermittently, and may manifest far away from the cause.

  • I made a blog!

    For a long time I’ve toyed with the idea of making a blog. I’ve wanted somewhere to write my thoughts down and make them accessible to the world. At the least, that means I get an excuse to organise them and write them down, as a sort of personal reflection. I expect that that will be enough to make this worthwhile.