Race Report - Rookie Tri 2016
A few weeks ago I competed in my first triathlon - a super sprint distance race aptly named the Rookie Tri. It’s a 300 meter swim, followed by an 11.2 mile bike ending with a 2 mile run. I’m registered to race an Olympic Distance (1500m swim, 40km bike, 10km run) at the CapTex Triathlon at the end of the month, so I figured this would be good practice. I’m so glad I did it, I had a great time and learned a ton.
Looking back at 2014
I was in New Orleans, LA at the beginning of 2014. Fitting, as the Crescent City played a huge role in my life this past year. Meg and I were in town planning our wedding and decided to stay and celebrate New Years in our favourite city. Our normal abode (and future wedding venue), the Maison de Macarty in the Bywater, was fully booked that night so we were temporarily relocated to the Hilton Riverside hotel.
Cycling for Cancer Research
On June 7th and 8th, I’ll be joining the Ride to Conquer Cancer — a two day ride from Toronto, Ontario to Niagara Falls (that’s just over 200km). The ride raises money for the Princess Margaret Cancer Centre, one of the top 5 cancer research centres in the world. I’m doing this because the work done at centres like Princess Margaret has a direct impact on cancer patients and their loved ones.
Great Engineering Teams
Building great teams is hard. We all know this. Nobody has the perfect recipe for creating a great engineering team, but I’m fairly certain that some things are obvious and should be heeded. What follows is a list of observations I’ve made throughout my career about what seems to work and what doesn’t. Perfect excuse for a good old “Do” and “Don’t” list: Do: Encourage Side Projects All good developers run into things that piss them off from time to time.
Building Services with Apache Thrift
I’ve always been interested in cross-language service frameworks. I believe in using the best tools for a job, instead of being limited to a specific language or framework, so being able to write components of a service in whatever langauge makes the most sense is attractive to me. In past lives, I’ve developed software that used CORBA, SOAP, COM and XPCOM and found that they all suck in different, significant ways.
Storing Extra Data in Django Join Tables
I’ve had some people ask me about the through argument supported by Django’s ManyToManyField class. This option supports a very simple use case: when you want to store additional data in a join table. Imagine, for instance, that we’re building a simple course registration tool. Let’s call the Django app courses. We’ll define the following models: from django.db import models class Course(models.Model): """A course offered at our school.""" name = models.
Making Signups Easier With WebFinger
I’ve been thinking about signup processes lately and what we can do with batucada (the next drumbeat.org) to make it easier, while encouraging users to use open, decentralized identity technologies like OpenID. The Problem Whenever I come across a new service that I want to create an account on, I dread the idea of creating a new set of credentials and re-entering a bunch of information I have already entered elsewhere.
Google Webfinger
This is pretty old news, but I missed the original announcement and I think it’s pretty interesting. Google have implemented an alpha of the WebFinger protocol. If you have a Google profile, click on “Edit your profile” and add ‘webfingeralpha’ as an interest. Congrats, your gmail address is now a WebFinger identifier and will resolve to an XRD file containing information about services you use (if you’ve included that information in your Google profile).
Introduction to mod_python
This article will provide a brief introduction to mod_python, a tour of what you can do with it, and some pointers to further resources should you want to explore it in more depth. I will assume that the reader is comfortable programming in Python (although no specific knowledge is required) and is familiar with Apache and basic web concepts. This article is not intended to be a complete reference for mod_python.