• Traffic Shaping Large Uploads to S3 with MikroTik RouterOS

    I currently have a very large collection of Canon Raw DSLR images I want to backup in the cloud in case the unthinkable happens to my external drives. There is one problem: I have 100Mbps down / 20Mbps up Internet speed. Having this going for a few days will destroy the network performance for everyone else. Let’s over-engineer a solution using the router to fix this.

  • Motion Sensing with Raspberry Pi Camera and Cat Face Scanning with AWS Lambda + OpenCV

    I wrote a Python script which uses OpenCV for detecting motion with the official Raspberry Pi Camera Module for uploading frames to S3. The frames are then scanned by a triggered Lambda function which uses Haar-Cascade object detection to search for cat faces.

  • udraw: Multiplayer Drawing Canvas

    udraw is a multiplayer drawing application like many other drawing apps out there which have surfaced since the rise of WebSockets. Mine happens to expand in size allowing very large drawings on an (unlimited?) sized surface. Each area of the canvas is broken into 256x256 pixel tiles which are drawn on a single HTML5 canvas seamlessly to make drawing on a large canvas possible. Here it is embedded below. Alternatively you can visit the full version at

  • Bye Bye WordPress. Welcome to Jekyll!

    Horay for static site pages. This will definitely make writing web pages fun again!

  • Tiled HTML5 Canvas Multiplayer Drawing

    There are far too may tutorials out there describing how to create a NodeJS app which either involves real time chat or drawing. A couple of years back I was amazed at how easy it was to write 12 lines of JavaScript code, chuck in a <canvas> element with some mousemove listeners in a page and type node server.js and away it goes!

subscribe via RSS