May 11, 2020
Using Hugo to generate a fast static website that can be hosted on Amazon S3/CloudFront; and using Terraform to configure all of the Amazon infrastructure.
Aug 20, 2015
Google's Project Fi represents a major shift for the cellular industry. I explore how Google's Project Fi switches between Sprint, T-Mobile, and Wi-Fi.
Aug 26, 2014
Using WiX to create a Windows Installer that can install and update Windows 8 (modern/metro/windows store) apps for testing.
Feb 10, 2013
Windows 8 seemed to have an inability to stay asleep on my machine. What was going on? Here are a couple tools that helped me debug the problem.
Jan 16, 2012
2011 was an active year for mobile platforms -- new versions of the major smartphone operating systems were released, Android tablet manufacturers responded en masse to the iPad, and partnerships, acquisitions, and new players that will shape the space in the coming year all came about. What does that mean for 2012?
Feb 19, 2010
Over the past few years, I've used the EXIF data stored by modern digital cameras in a couple of programs I've worked on. Having access to the date the photo was taken -- or which way the camera was rotated when it was -- is useful information to have. Even though it's relatively easy to do, finding the right identifier for the information you want is much harder than it should be. This page fills that niche -- the most useful/popular EXIF properties in an easy-to-find format.
Jan 5, 2010
Labelling printed photos is a hassle -- I show how to use PowerShell to rename photo files before printing so that the date is printed on the back.
Dec 13, 2009
I never quite understood the attraction of scripting; sure, not having to set up the scaffolding code of a more formal language is nice, but the limitations of the environment just seemed too great. The Unix community has it far better than the Windows community in this regard; shell scripting can accomplish amazing feats – as long as all of the appropriate utilities are strung together in the right configuration, that is. And though scripting languages like Python and Ruby do hold some allure, it’s one more thing to install on my Windows box and learn the syntax for. So for most tasks that needed scripting, C# filled the bill – when I could justify the start-up cost.
Oct 18, 2009
There’s a well known concept in economics known as comparative advantage. A formal definition has many nuances, but the basic principle can be summed up as each party undertaking the work that they are most productive at, such that the overall production of the system is higher than it would be if each party performed tasks they were less productive with. For example, if Farmer A’s farm could grow 100 bushels of apples or 200 bushels of carrots a year, and Farmer B’s farm could grow 75 bushels of apples or 50 bushels of carrots, then the highest production occurs when Farmer A grows carrots and Farmer B grows apples (75 + 200 = 275 bushels total). This is the case even though Farmer A can grow more apples than Farmer B; if there were demand for 100 bushels of apples, the best way of growing them is to have Farmer A grow 25 bushels and Farmer B grow 75 – total output is 100 bushels of apples and 150 bushels of carrots, which maximizes total output under the constraint that at least 100 bushels of apples must be grown. Since Farmer A is better at growing carrots, then it’s always economically beneficial for him/her to do so.
Sep 21, 2009
This term, I've been given a position as a teaching assistant for ECE 150 at the University of Waterloo. Here is a handful of applications that demonstrate various features of the C# language for programming beginners.