February 29th, 2016
For the last year I've been working on a video game with three other students at Waterloo. Named unLit, the game is a top down shooter with randomly generated maps and adaptive AI. We developed unLit as our engineering design project.
February 16th, 2016
I recently upgraded my website to serve content using HTTPS instead of HTTP. This required an SSL certificate, which I generated using the Let's Encrypt toolchain. The post includes sample code for configuring an HTTPS server in Node.js.
February 11th, 2016
While working on our CS 452 project, my partner and I encountered an elusive kernel bug that took hours of debugging to track down. The bug was caused by incorrect assumptions about the way our code was loaded into memory by the hardware.
February 3rd, 2016
The CS 452 instructors provide performance guidelines for inter-task communication that students are expected to meet. A round trip time of 30 to 60 microseconds is sufficient, however my partner and I put in extra work to achieve better times.
January 25th, 2016
The embedded system bootloaders I evaluated didn't support the features required for my work, so I wrote my own. Raspboot allows me to load binaries to my RPi over a serial port (UART), and will eventually be extended to support basic debugging utilities.
January 16th, 2016
The Raspberry Pi is a cheap ARM system that's able to connect to peripherals, run Linux and interact with GPIO pins. I decided try doing embedded development on the Pi - writing code directly for the hardware, not for an existing OS.
January 6th, 2016
The fourth post my in series on the use of convolutions in image processing. This post discusses a special property of some kernels that allows them to expressed as the product of two vectors. This can be used to simplify the convolution operator.