# What happens when I run a program on my computer?

My job for about a year now has been writing embedded C on bare metal – meaning there is no operating system on the computer my software runs on.
Doing this kind of work has really pushed me to learn more about the inner workings of computers, and I've really ...

# Understanding Python decorators

Recently, I found that my understanding of Python decorators wasn't as sound as I wanted it to be. I hate finding out that my understanding isn't sound! But it meant I spent a bit of time making sure I understood, and I wanted to share my thoughts and ...

# What actually is Object Oriented Programming?

## And where does Rust fit in?

### Evolution

When I first learnt to write computer programs, the focus was entirely imperative: that is, programs were focussed on logic and actions. My code was organised into subroutines, but I didn't have much notion of structure beyond that.

Later, like many people ...

# Let's get rusty! Fast and safe systems programming with Rust

Rust – what is it? Rust is a systems programming language as fast as C and C++, but without the horrible capacity for shooting yourself in the foot.

Imagine: freedom from the horrors of out-of-bounds access, use-after-free, data races – without sacrificing speed!

Not only does Rust guarantee memory safety, but it ...

# Property based testing

The following is a rough transcript of a talk I did for my colleagues at PA on property based testing. You can find more materials here at the Github repo.

## Introduction

As software engineers and programmers, we all know the value of writing automated tests for our code. Many of ...

I've ...

# Linux: Finding useful serial port names (i.e. NOT /dev/ttyUSB0!)

I was recently working on a project where I used USB-to-RS232 adapters to talk to some devices via serial. We started with just one device, and referenced it using /dev/ttyUSB0. Big mistake!

Later, we added another serial device. It got plugged in first, and – you guessed it – got assigned ...

# All things wooden wonderful

I haven't posted on my blog in ages! I just changed themes to the lovely Pelican Hyde, and thought it was time to update the content, too.

I made some exciting wooden things around Christmas time – or rather, I embellished one and designed another. Both were presents for others ...

# The Desk

A few months ago I bought a desk. It was the end of a long and consuming search to find one I liked that would fit in the 105cm wide alcove in my living room.

A combination of things meant I decided it would be a good idea to refinish ...

# Toronto Trip Part 2

The next day was CN tower day!!!

I was excite. I had seen that there was the option to do the "Edge Walk". What is that, you ask? Not much, just casually walking round the edge of the CN tower, attached by a mere rope. I so wanted to do ...

# Website revamp

I recently revamped my websites. Turns out they were pretty hideous before! I remember being so proud and pleased with how they looked. I guess my aesthetic taste has evolved.

## mcla.ug

First up for redesigning was my homepage, mcla.ug. Let's see how it used to look:

GARISH ...

# Toronto Trip Part 1

I went to Toronto for a week in September! It was my first time travelling alone, and I really enjoyed it. My hostel had an awesome view from the roof:

I was knackered on my first night from jetlag, but the next day I had relaxing time getting my bearings ...

# Job hunting experiences

I've just finished job-hunting, and am looking forward to starting an exciting new job! During my time job-hunting, I ended up making a couple of fun things to aid applications... ;o

## Pop sensation

One online form had a field asking me to, in 120 characters or less, tell them ...