Theory ⋂ Practice

I’m usually playing with a handful of technologies at any given time. At the moment these include Kubernetes, TensorFlow, Go, Swift and Scheme. The articles below are an attempt to share some of the insights I’ve gathered along the way. They each contain a healthy mix of theoretical background and practical examples.

If you’re looking for my more formal writing on computational science, head on over to the relevant section of the research page. Or if that’s not your cup of tea, do feel free to sample some entries from my personal journal.

Convolutional neural networks for artistic style transfer

There’s an amazing app out right now called Prisma that transforms your photos into works of art using the styles of famous artwork and motifs. The app performs this style transfer with the help of a branch of machine learning called convolutional neural networks. In this article we’re going to take a journey through the world of convolutional neural networks from theory to practice, as we systematically reproduce Prisma’s core visual effect.

Read more »

Scalable and resilient Django with Kubernetes

If things work out as you’ve envisioned, there will be a time in your webapp’s lifecycle when it’s serving a large number of users. By the time things get to this point, it’s ideal if you’ve architected your webapp to both scale gracefully to meet this load, and also be resilient to arbitrary failures of underlying compute resources.

This article is about how you can use Docker containers and Kubernetes to help your Django webapp achieve these architectural goals. While it meanders a bit through theory and philosophy, it does work up to a concrete example to help solidify concepts.

Read more »