On the Importance of Programming

This essay was originally published in The Stag Hunt Special Issue on Human Education .

I recently represented the company I work for at a career fair in New York City. The ranks of job-seekers were large and diverse in terms of background, age, and experience. Among the job-seekers, however, one group stood out: people in their late 20s to mid-30s who were looking to start a new career as programmers, having recently made up their minds to dramatically change paths. Here were former investment bankers applying for an entry-level programming position. By itself this is not particularly surprising: many people realize that the careers they enter right out of college are not quite what they expected and decide to switch tracks. Given increasing demand for programming and computer science-related jobs, it is natural that many turn to explore this field.

This group of people, however, had something much more intriguing in common. When asked about their first ventures into programming, many people used phrases such as “I never knew it was so easy…” or “it really surprised me that…”. Here were bright, curious people, most of whom had done reasonably well in their past lives, accidentally catching glimpses of how some very simple programs work and being taken completely off-guard by it. These people were so intrigued by the world of programming that they could not help but dive deeper into the rabbit hole. A common path was an intensive program taken over the course of a few weeks (General Assembly was a popular option) and then a full plunge into the world of entry-level job hunting.

This leads to a very important question: why had these people never been exposed to something with so much utility and transformative potential throughout the many years they had spent in the education system?

read more

Why You Should Use Class Enums in C++

This post was originally published on Admiral Ackbar’s Code Emporium .

This is a brief post about what class enums are in C++, and why you should use them.

The Problem: Enums Pollute Global Scope

Here’s a conflict you might get when using enums:

enum computer_state { ON = 0 , OFF, STANDBY };
enum disco_ball     { OFF = 0, ON };

int state = ON; //CONFLICT - this won't compile

read more

How to Have Multiple Versions of C++ OpenCV Side by Side

This post was originally published on Admiral Ackbar’s Code Emporium .

This tutorial will show you how you can have different versions of the same library side by side such that it’s easy to change which version your code uses.

For example, I work a lot with OpenCV, the computer vision library. I like to be able to try out different features in the trunk version of the library, but prefer to use a stable release in production settings. It’s actually pretty easy to have both versions on your computer, and select which one you’d like to use at compile time.

The following assumes you’re on a Linux machine. I’ll use OpenCV as an example, but the concept applies to any library.

read more

Rafting Tatshenshini

Beyond cell phone range,
bears walk where few people go
and adventure calls.

The Tatshenshini river flows through Yukon and British Columbia, where it joins the Alsek river and ultimately makes its way to the Pacific Ocean via Alaska. It flows through Glacier Bay National Park, BC Tatshenshini Provincial Park, Kluane National Park and Yukon Game Preserve, which apparently form the largest non-polar ice field in the world (source).

I just got back from an excellent rafting trip on it, and I’d love to share some photos and a video of the experience.

Here are a few photos; there are many more in the Google+ gallery here.

read more


This story was originally published in the Mosaic Art & Literary Journal. It is a work of fiction set during the 2009 G20 Summit protests in London, where the accompanying photos were captured. Names, characters, businesses, places, events and incidents are either the products of the author’s imagination or used in a fictitious manner. Any resemblance to actual persons, living or dead, or actual events is purely coincidental.

Camera – check.

24mm f/1.4 lens – check.

Three fully-charged battery packs – check.

Three formatted memory cards – check.

Lens brush – check.

Rock ‘n Roll.

I set out. It was nine o’clock, later than I had intended to leave, but still OK. The protests weren’t scheduled to start until after eleven, and even with the unavoidable traffic issues, I got to Cannon Street tube before ten. Bank, of course, was closed. Even before I managed to get out of the station, it was clear that I was in the right place. People wearing all sorts of costumes were trickling out into the street with me. I saw the scariest Mickey Mouse I had ever seen, a horrible beast with the jagged smile of a demon of avarice, big round ears, a polka-dot ribbon between them, and eyes full of burning rage. The sight so shook me I didn’t even manage to get my camera out. Happy Financial Fool’s.

Outside the lines of police were prominent. Walk this way, don’t walk that way, don’t ask questions. I got my camera. There wasn’t much action yet, but there were definitely enough characters. Everyone loves a picture of a lunatic.

read more