Blogs

Looking back on 2022

A little post-PhD reflection.

Singer-songwriter Katherine Priddy wrote earlier this month on how the New Year brings a mixture of hope, expectations, and bleakness. Naturally, she has a beautiful and poetic take on the gravity and pressures of January which I can’t pretend to imitate, but in amongst her thoughts is her drive to “turn back and appreciate what [she] did in 2022”.

This stuck with me in a way I couldn’t immediately put my finger on. Mulling on it, I realised that a lot of parts of my life had came to a close all at once at the tail of last year, leaving me in a weird, transitional place. Meanwhile I entered 2023 rather disoriented; bleary-eyed and a little burnt out trying to neatly tie up my postdoc, the passage of the Bells never quite registered for me. I’ve had more time to myself since starting my new post, and thought it’d help me to reflect on some of the things I’ve completed – to turn back and appreciate 2022.

(Almost) Lockless Stream Buffering

Sharing (and saving) bytestreams effectively.

Recently, I’ve been working on retooling the audio processing code for serenity, a Discord bot library. Adding features like looping, seeking, and shared resources between calls is made difficult when all input data arrives over pipes from ffmpeg and similar decoders. Due to this, I’ve designed a thread-safe shared stream buffer intended to lock only on accessing and storing new data.

Thoughts on Vana'diel

Thoughts on a world I've long left.

It’s strange, I think, how a sense of nostalgia for a virtual world (or point in time) arises from where we least expect it. A visual aesthetic, the feel of a specific piece of music, an outlook on the world and one’s place in its community. More and more, my thoughts have been drawn by these flashes towards the time I spent in Vana’diel—not a world I thrived in, but one that has nevertheless shaped me.

Custom Open vSwitch Actions

A short tutorial on extending Open vSwitch.

For a project I’ve been working on (reimplementing some past work), being able to easily enable pushback at various points in the network is fairly important. For this, I wanted to try something I’d both learn from and be able to use as a springboard for later development and testing – mininet (and by extension, Open vSwitch) seemed like a good fit. Part of this requires a new feature to be hacked on top of OpenFlow: probabilistic packet dropping. I’ve written this short walkthrough/tutorial on the process for the benefit of anyone looking to make their own modifications. A full repository is included here.

[EDIT 2019-03-27]: Updated for OVS revision 8e73833.