Select a category to the left.



Light or dark? Choose how the site looks to you by clicking an image below.

Light Dark AMOLED


Preferred Language

All content on is originally in UK English. However, if content exists in your preferred language, it will display as that instead. Feel free to choose that below. This will require a page refresh to take effect.


"" details

Domain Name:
Site Version: 1.0.0
Last Updated: 2020/08/18
Programming, Tools, Software, and more.
Audio Recovery via Waveform Inversion and FFmpeg
Thursday, January 14, 2021

I wrote a post before regarding how I archive Zoom lecture recordings, whether I am teaching or someone else is. However, post-recording, those files sit in the vault unedited. It took a few months, but I discovered an issue with the audio in them. Funny. The times that I don't check audio prior to recording are the times it always goes wrong. It's Sod's law. With the audio messed up, and no chance to re-record, is recovery possible?

Let's analyse the situation. They are MKV files with a single video stream encoded via h264_nvenc. Ok, nothing wrong there. There's 3 audio streams saved as lossless FLAC. Here's the ffmpeg stderr output (yes, it goes to stderr) for one of the files:

Continue Reading

The Ultimate Zoom Lecture Recording
Friday, September 4, 2020

As a University graduate student and teaching assistant, I have to attend and teach classes. Due to the events of the COVID-19 pandemic, classes have now moved mostly online. Zoom just happened to be the platform of choice where most classes are being hosted.

Back when I physically attended classes, I was that one student who sat in the front row and recorded every lecture. I don't really go back and listen to them, but they are useful if you forgot details about an assignment or if you wanted to double check the due date on an assignment being changed. Though, to me, the main reason was data. I wanted data... and I wanted as much as possible. When I teach, I also record everything. No matter the perspective, online classes make this much much easier.

So, what did I do? My usual. Made a completely overkill setup to preserve as much data as possible and accomplish the ultimate Zoom lecture recording. Speaking dramatically aside... Before I get to discussing the details on the setup, let's talk about Zoom and some technical details about it. This'll be important for later on.

Continue Reading

Puyo Puyo Tetris's 50 replay limit... Shattered
Saturday, February 8, 2020

So recently I bought a game on Steam called Puyo Puyo Tetris. It's a crossover between... well... Puyo Puyo and Tetris! I've had a few good matches here and there with some friends and the game lets you save good matches as replays. With replays, you can go and rewatch gameplay at a later time. You can also slow down or speed up the gameplay as you wish when playing them back.

Okay that's a pretty useful feature right? Well it is useful until you hit the absurd 50 replay limit. For a PC port, I would've expected something like in Quake or Half-Life where the replays are stored in a separate file (and in an unlimited quantity), but unfortunately that isn't the case here. Nope, we're stuck with 50.

Continue Reading v3.0.0 - A well-needed refresh
Sunday, August 18, 2019

I have been a TA at University for around 3 years. From the very beginning, I made a website that serves as a 24/7 resource for students in courses I TA for. It contains lab hints, grading guides, files of code, etc that I write whenever I teach lab sections or host office hours.

However, the layout of the page has dated quite a bit since I first wrote it. Maybe it's time to give it a refresh? Sure! Why not!?

Introducing PENDUAL (In the event that this name choice isn't obvious...), a dual-theme setup consisting of a Light and (finally) a Dark theme! This isn't all I've changed though...

Continue Reading

Christmas Deathmatch Production Procedure (Behind the Scenes)
Monday, January 8, 2018

Almost yearly in the winter, me, my brother, and my Dad play a series of Half-Life games, which ends up being recorded and uploaded to YouTube. We call the series the "Christmas Deathmatch".

To me, I'm always up for a good game, but I'm also always up for a good media project. Christmas Deathmatch isn't popular by any means, but it is a good way to practice video editing and producing to me. So I'm going to show some behind-the-scenes stuff that went on with editing 2017's Christmas Deathmatch.

In the past years, I was very reliant on Adobe After Effects to do my work for me. As I went through 2016 and 2017, I realised there was a much more efficient and automated way to do the editing I needed without professional video editing software. I only used Adobe After Effects for parts of the video that I actually had to edit. The rest, I managed to actually automate. All rendering to x264 was automated into a few shell scripts and ffmpeg. It's going to sound complicated when you read this, but in the end, it's just simply setting up files so that the scripts can encode everything automatically.

Continue Reading

How Tmux made me more productive on the Linux Terminal
Wednesday, July 19, 2017

So I'm willing to bet that a lot of Linux power-users out there use terminal multiplexers to increase their productivity.

The terminal, at first, can be quite intimidating. I like to expose my students to it whenever I am teaching them how to program in C or C++. This is because UTK Computer Science major students are forced to use it to do their lab assignments eventually (usually in their second year).

The terminal, put quite simply, is just a single session for a user to input commands. However, there are so many ways to change this that it is ridiculous. Let's look at a general terminal running zsh:

Continue Reading

Clara Nguyễn
Hi! I am a Vietnamese/Italian mix with a Master's Degree in Computer Science from UTK. I have been programming since I was 6 and love to write apps and tools to make people's lives easier. I also love to do photography and media production. Nice to meet you!
You can find me on these platforms!
Blog Links
Post Archive
Affiliates/Cool People
Nigoli's Blog
Raas's Blog