How I Aced the MAT and Landed a Place at Oxford

September 25, 2024

Scoring in the top 10% of the Mathematics Admissions Test (MAT) was a pivotal moment in my journey to securing a place at Oxford. This achievement was not just about mastering mathematical concepts, but also about employing strategic study techniques, effective time management, and maintaining composure under pressure. Here’s how I did it, and how you can too. Strategic Preparation and Study Techniques # The MAT is designed to challenge your understanding of familiar mathematical concepts by applying them in unfamiliar contexts.... read more

6 Weeks to the MAT: 5 Tips and Strategies for Success

September 16, 2024

The Oxford Mathematics Admission Test (MAT) is a critical step for aspiring mathematicians and computer scientists aiming to study at prestigious institutions like the University of Oxford. With just six weeks left until the exam, it’s essential to focus your preparation efforts effectively. Here are five practical tips and strategies to help you succeed. 1. Master the Syllabus # Start by ensuring you have a solid grasp of the MAT syllabus.... read more

Structural Induction Explained

August 31, 2024

Table of Contents A Recap of Induction over \(\mathbb{N}\) Trees and Inductive Sets The Natural Numbers as ‘Unary Trees’ Structural Induction on Biary Trees \(\text{Leaf}\) Case \(\text{Fork}\) Case Summary Mathematical induction is a fundamental concept in computer science and mathematics, often used to prove properties of structures such as natural numbers and binary trees. This article provides an introduction to induction, focusing on how it applies to natural numbers and binary trees, and demonstrates the process through examples.... read more

REPLS and Kent Concurrency Workshop 2024 Roundup

July 25, 2024

On 18th-19th July 2024, the Univeristy of Kent hosted the 15th South of England Regional Programming Language Seminar, a regular informal meeting open to all interested in the semantics and implementation of new programming languages. This year it was jointly held with the Concurrency Workshop which aims to bring together researchers who are working thon the theory of concurrency and related areas. You can see the conference page here. This was my first time attending either series and my second computer science conference I’ve ever been to, so I came in knowing no one and having no idea what to expect.... read more

How to Erase Secrets in Git Repos with git filter-repo

May 25, 2024

Here’s the scenario: you have your dotfiles in a private repo that you’ve been maintaining for years, and after a lot of polishing and removing secrets, you’re ready to share publicly on your trophy list that is your GitHub/GitLab/SourceHut profile page. There’s only one problem: You never checked to see whether there were any passwords or other secrets in your history. Now, hopefully you remembered before you made the repo public because there are innumerable bots scraping git hosting platforms for passwords, API-keys, and other secrets.... read more

How to Set up a GitLab Instance on an Existing Nginx Server

March 21, 2024

I’ve been running a Git daemon instance on my VPS for a few months and it’s working fairly well at hosting my repos. If you didn’t know, one cute feature of Git is that it can be run as a somewhat rudimentary daemon. By simply passing --daemon to it. This is fantastic as a quick way to get your git repos hosted on your own server or VPS. But if you find yourself longing for more features, such as a web interface, then GitLab is a reasonable alternative 1.... read more

How to Make your own Guix Channel

March 3, 2024

Understanding Channels # GNU/Guix is a transactional package manager and an advanced distribution of the GNU system that “respects user freedom”. As a powerful tool, Guix allows users to create their own package repositories in the form of Git repositories called channels. This allows you to host your own packages to share with the world, or just with your friends. Channels are a repository of Guix package definitions hosted using Git.... read more

How to Share /gnu/store between a Host and a Guest Guix System

January 9, 2024

Introduction # If you’ve ever tried out guix system vm, you’ve probably found that running Guix commands in the guest system simply don’t work. root@test-vm# guix build hello guix build: error: opening lock file /gnu/store/...-mirrors.lock: Read-only file system These do, however, work using guix system image, which is a much heavier, fully independent VM image. However, these are a lot slower, requiring every package to be built from scratch. Doing any Guix command requires downloading and rebuilding many many packages that you already have on your host machine.... read more

Systemd on Guix System - How hard could it be?

December 30, 2023

To be honest, while the Shepherd has been a fun hack, I’ve been more and more feeling that yeah, it wouldn’t cut it in the long term (it’s also become clearer Scheme as convenient as C when it comes to systems programming and things like dealing with dependency graphs.) – Ludovic Courtès, 2018 (quoted grossly out of context) Introduction # This post explores the concept of integrating Systemd (a widely used init system in the Linux ecosystem) as the init system for GNU/Guix, a transactional package manager and Linux distribution.... read more