Software Development

High School Students Make Great App Developers

Check out this OC Transpo app (for Android) built by a few Ottawa high-school students:

Look at the polish. The crispness of the design. These guys get it. That app is going to do really well.

They had a little help. My last gig was pretty big on social involvement, and sent a few designers/developers to mentor the students and provide guidance. (I was one of them, until I moved.) But we were just there to teach high-level concepts and weigh in on decisions. The idea for the app, all the app code, and the app’s overall design were all generated by the students.

They did a fantastic job, and this shows us two things:

First, high school students are perfectly capable of building useful software. I spent four years volunteering my programming expertise at various Ottawa high schools, and you would not believe the quality of some of the products I’ve seen. The app showcased above is one of the best, but it’s not an outlier.

Second, app development is a great way to learn to program. We figured this out years ago when I was volunteering with OCRI. With a little guidance, all a novice programmer needs to build something truly incredible is a platform and a purpose — and he or she can usually supply the latter.

This is the amazing thing about software. You can have a giant company with hundreds of employees trying to solve the same problem as a few teens in a classroom, and which will do a better job is anyone’s guess.

Web Technology

Sencha Touch and PhoneGap Webinar

A quick heads-up that I’m speaking at a webinar about using Sencha Touch and PhoneGap to build really big, complicated mobile applications. If that interests you, you can register here.

It’s free, and the webinar is this Wednesday, May 2nd, from 2pm—3pm eastern time (that’s 11am—12pm for us pacific folk).


The Best and Worst Thing about Loving your Job…

…is that it’s very easy to do it for 14 hours/day.


Why I Switched to Windows Phone, Part 1.5

I know a lot of you are anxiously waiting for part two of this series. I’m going to publish it eventually! It’s not an easy post to write, and I had to scrap another draft an hour ago. Someday…

In the meantime, I present a follow-up to part one, where we discussed the absurd price difference between an iPhone and a Windows Phone in Canada.

I’m sure by now you’ve heard that I moved.

I switched my HD7 to an American plan this weekend. That’s a fun story in and of itself, but it got me thinking about how much trouble I’d be in if I had gone the Rogers/iPhone route.

For one thing, Wind has fantastic roaming rates. This has been very useful, since I gave my number to a bunch of moving and relocation contacts before leaving Canada, and had to keep it to stay in touch with them once I arrived. You can’t really beat 20¢ per minute.

Were I still on Rogers, these calls would have cost me $1.45 per minute. That’s over 7 times as much!

It gets even uglier if you look at text. Wind doesn’t charge anything for incoming text messages — even here in the US — and they still only charge 15¢ outgoing. Rogers charges 75¢ each way, so for one incoming and one outgoing message, Rogers is 10 times more expensive.

Of course, worst of all is data. Assuming no prior arrangements are made (though Wind wins there as well) Wind charges $1/MB. A little high? Yes. But Rogers? A whopping $10.24/MB.


And then there are the early termination fees.

Do you know how much Wind charged me to cancel my contract with them? Nothing. Even though I signed up for a 12-month promotion, they don’t consider that a contract and it cost me absolutely nothing to cancel my “plan” 3 months in.

If I had gone the iPhone/Rogers route, it’s a whole other story.

I would have signed up for a 3-year plan on a brand new 4S, and I would have done it about a week before Rogers (slightly) lowered their early cancellation penalties. That wouldn’t have applied to me, since the new rules are only effective for contracts starting on or after January 22nd.

Under the old scheme, I would have paid the lesser of of $400 or $20 times the number of months left in my contract ($400 is lower), and the lesser of $100 or $5 times the number of months left in my contract ($100 is lower). Plus tax.

All told, I would have been out $565 for my early cancellation.

I was really happy with Wind. I heartily recommend them to anyone in the Canadian cities they cover. But I am really, really happy I didn’t go with Rogers.


Life in California

I don’t have a post today because I’ve written twelve posts for another blog in the past two days.

What is this other blog, you ask?

Why, it’s my new Tumblr, where I will be posting short, frequent updates about life here in California.

I’ve been meaning to write more about the move and the various fun things I’ve done since then, and part of the reason I put it off for so long is that I wasn’t sure where to do it. Well, now I have a place, so I can do it a whole lot! And I promise this is the only time this blog will skip a post because of that one.

So, if following along through the adventures of others is your thing, check it out!

…and if you know how comments work on Tumblr, let me know. I’m thoroughly confused.

Customer Experience

What Earth Hour Taught Me About Branding

(Earth Hour happens every March 30th. People like me turn off their lights and gadgets for an hour because they feel super-guilty for leaving them on all the time.)

The single best example of building a brand that I’ve ever seen happened during Earth Hour 2009.

I was on a date with my now-wife, and we were enjoying a romantic dinner at a trendy Ottawa restaurant called Absinthe. (Wonderful place — the dessert menu is to die for.)

We observe Earth Hour every year, and we were a little disappointed when we realized we’d be stuck at a restaurant when the hour started. Restaurants are full of lights, you see, and turning off your lights is like Earth Hour 101.

Anyway, we’re at a small table for two, near the back of the restaurant. Dinner had just ended, and we were ordering desserts. (If you ever go to Absinthe, promise me you’ll get a dessert. They’re fantastic.)

As the clock drew nearer and nearer to 8:30, there was suddenly a good bit of hubbub about the restaurant’s staff. I couldn’t tell exactly what it was, but they were bringing something to each table. At first I thought they might just be bringing patrons their bills, but that couldn’t be right, there were too many at once. Finally they got close enough that we could make out what they’re carrying, and-

Oh. Candles.

They were bringing candles to each table. Not just the tables that had people sitting at them, either. There were candles everywhere; I don’t think I’ve ever seen so many in a room that size. And the waiters were lighting them, too.

As our waitress dropped off an armful of candles at our table (already lit! How did she carry them already lit?) she casually remarked:

“We’re going to turn off the lights for Earth Hour.”

Sure enough, when the clock struck 8:30, off went the lights (or at least so dim as to appear off; I’ll admit I don’t quite remember if they were all the way off or just really, really dim). The restaurant was more or less completely dark, save for the light from probably a few hundred candles.

It was a beautiful sight. From our small table for two, near the back of the restaurant, we could see what seemed like an infinite wave of tiny flames, flickering in all directions. Giant shadows lept across the walls and ceiling; I could hardly believe the transformation.

Our table was no different. By now our dessert had arrived, and we found ourselves sharing probably the best crème brûlée I’ve ever had — by candlelight.

It was absolutely perfect, and it’s one of those memories I wouldn’t trade for the world.

Now, where was I again? Oh, right: Branding.

Building a brand is all about creating remarkable experiences.

Nobody remembers “good”. If your restaurant or your product or your blog is just “good”, it’s not going to get any attention from anybody. The way to build a name for yourself, the way to build a brand, is to give your patrons/users/readers something really special. Something remarkable.

Aside: You could argue here that being “good” for a really long time is a perfectly viable branding strategy. You would be completely right.

Coca-Cola has built their brand on bringing consumers the same really good (but not remarkable) experience hundreds of millions of times. So if you have hundreds of millions of chances to impress your clients or bosses or shareholders, you can make lots of good experiences add up to a remarkable brand. Otherwise…

Let’s look at what Absinthe did to make my Earth Hour 2009 so special.

First, they put in a lot of effort. I know, you’re probably thinking “Dan, all they did was dim the lights. I can do that right now with very little effort.” But let’s really think for a second about everything that had to happen for that night to play out the way it did:

  • Someone had to really believe in this idea, and sell it to the rest of the staff.
  • Someone had to go out and buy like 300 candles.
  • …and get them to the restaurant, and store them, and open all the packaging.
  • Oh, and lighters or matches. Someone remembered those, too.
  • Someone coordinated the timing of the rollout/lighting (because the timing was perfect, and perfect is no accident).
  • Someone planned what to do if a patron complained about the darkness.
  • Someone cleaned up all that wax afterwards.
  • Etc.

I’m not going to say this was some huge, Herculean effort, but it didn’t just happen all by itself. Someone cared enough about making my Earth Hour special to take responsibility for it, and to lead the charge on the big night. This is absolutely essential for a remarkable experience.

And second, they didn’t ask for permission. This is especially clear in the wording our waitress used. “We’re going to turn off the lights”. Not “Do you mind if we turn off the lights?” nor “Sign this waiver so we can turn off the lights”. Can you imagine how lame that would have been?

Remarkable experiences happen on their own terms. Nobody opts-in to being amazed by something.

Yes, this adds risk, and yes, it means the same experience won’t delight everyone. The art of the perfectly-crafted experience lies in how well this risk is assessed, and how well you know your audience.

Absinthe got this exactly right. They knew they could count on their hip clientèle to enjoy the novelty of the experience. They decided that they weren’t risking much by the possibility of alienating a few folks well after the dinner rush. The surprise and lack of control were well thought out, and a key aspect of the overall experience.

Make your own remarkable experiences.

This is the part of the post where I give you some key takeaways you can use right now to improve your brand today.

Sorry. I’ve got nothing.

I don’t worry very much about branding in my day-to-day. That’s going to change a little with the new gig. Working on a product that touches millions of people every day means I have a huge opportunity to impact a major brand.

I’m really excited for this aspect of my job, so I’m going to start thinking about branding a little more. I promise I’ll share what I learn.

In the mean time, what branding advice do you have to share with me?


Move Update

I was hoping to write a real post this week — ideally a follow-up to part one of the why I switched to Windows Phone saga — but my duties related to last week’s news have left me little time for writing.

Instead, here is a short list of things I have learned since deciding to move from Ottawa to California:

  1. The Bay Area is arguably the most expensive housing market in North America.
  2. About 1 in every 8 unprovoked and fatal shark attacks occurs off the coast of California*.
  3. You can convert Celsius to Fahrenheit using the following formula: F = C / 5 * 9 + 32.
  4. California is home to 33 species of snakes, 6 of which are lethally poisonous**.
  5. With a bit of practice, you can draw a maple leaf rather easily using a series of straight lines and Vs.

Jokes and life endangerment aside, I’m still really excited to go. I’ve submitted my visa application information to Netflix’s team of lawyers, who will submit it on my behalf. I’ve also been in touch with Netflix’s relocation team, who will help me move a bunch of my stuff to California, and set me up with a car and a place to live for a few weeks while I make more permanent arrangements.

This whole process is completely new and exciting to me; I can’t wait to see how the next few weeks play out!

* Several people have tried (and utterly failed) to convince me that “there’s nothing to worry about”, as sharks only inhabit the southern regions of the California coast. (If you want a source for my 1-in-8 math, I counted 14 references to California out of 113 entries in (this list.)

** Fun fact: Snakes are my third biggest irrational fear. As you may have guessed, sharks take the top spot. (Heights are second.) Interestingly, I’m not afraid of spiders, despite the long list of infamously frightening varieties that are found in California.


To the Edge of the World

You may have noticed that this blog has been a little… quiet, lately. In fact, at 28 days, this is the longest gap I’ve ever left between posts. And if you follow me on Twitter or Google+, you’ll notice I’ve been silent there, too.

What gives?

Well, I’ve been very busy with something I had to keep very secret. And now after a month of emails, phone calls, flights, worrying, and jumping up and down, I have an announcement to make:

I’m moving to San Jose and taking a job at Netflix.

I’ll let that sink in for a moment.

Ok, now let’s answer all the common questions:

You’re leaving Macadamian!?


Macadamian has been a huge, positive influence on my life. It was my first software job, and I have about a million memories of my time there that I will cherish forever:

  • My first project for a real client.
  • My first blog post.
  • My first 80-hour week.
  • My first time surviving layoffs.
  • My first time seeing someone that I really cared about leave.

Those last two stung a lot. But the show went on, and Macadamian continued to do bigger and better things. I have no doubt that this trend will continue in my absence, and I’m so glad to have shared in its success for the past five years.

You’re really moving to California? (Didn’t you just buy a house?)

Yes. (And yes.)

I’ll be flying out sometime at the end of March; my darling wife will probably join me a few weeks later. The plan, for now, is to rent out the house — so if you’re looking to rent a townhouse in Gloucester, give me a shout. I’m also selling my car.

I’ve lived in Ottawa for my entire life. I will miss it immensely, and I will visit often. I’m starting out with a temporary visa, so I have a few years to figure out what the next few will look like. It’s both unbelievably exciting, and unimaginably scary.

In short: I couldn’t be more thrilled.

Netflix, eh?


I’ll be joining the Discovery Engineering team as a Senior User Interface Engineer. I’ll be responsible for any Netflix app that runs on a TV: game consoles, bluray players, Boxee, you name it. It’s going to be a blast.

My day-to-day will be mostly JavaScript, as the interfaces for those platforms are written in HTML5. I’m absolutely stoked to help craft an experience that will be seen by millions of users. I can’t wait to see what my team comes up with in the coming months and years!

This is a very exciting time in my life, and it’s been killing me to keep it under wraps. Going forward, I’ll be a lot more noisy about the daily joys and struggles of preparing to move across the continent, and to another country.

And hey, if you ever miss me, just sign into Netflix and fire up your favourite flick. I won’t be able to watch it with you, but I’ll do my best to make sure you enjoy it :)


Dan’s Seven-Step Guide to Being More Productive

Do you ever have trouble focusing?Do you ever wish you could get just a little more done in an afternoon?

Do you ever procrastinate on your next task because you have a meeting in 20 minutes?

If you answered yes to any of these questions, then congratulations! You’re human. And like every other human being (even the ones that lied and said no to all three questions above), you aren’t always as productive as you could be.

That’s ok! It’s impossible to be productive all the time. Nobody’s perfect, every day has its natural ups and downs.

But sometimes you just need to be really productive, just for a little while. How do you give yourself that little extra push?

I’m about to share a little routine I’ve been using lately for just that purpose. It’s easy, it’s fun, and it’s worked really well for me so far. If that sounds like something you want to try, here are the steps:

Step 1: Get a second monitor.

A second monitor is useful for all kinds of reasons, and completely necessary for this routine to work. It doesn’t have to be nice, it doesn’t have to be anywhere near as big as your primary monitor, you just need more than one screen.

Step 2: Put all your notifications on your second monitor.

All of them.

Your dock or taskbar, your IM client, your mail client, your calendar, whatever browser you have your Google apps in, your Twitter et al.; if it flashes or has a notification of any kind, that counts. Second monitor.

Step 3: Put the really important thing that you really need to do on your primary monitor.

Thing. Singular.

This is a great trick for doing one thing at a time. It won’t help you multitask, because multitasking is unproductive. If you have several things to do, pick the most important one. If they’re all important, flip a coin.

Step 4: Put on some music.

This is the most important step. You can’t skip it.

You can listen to any kind of music you want, but you have to be able to set a finite limit on the number of songs played. Radio is no good, neither are apps like Pandora. I use Grooveshark, you can use your iTunes library (or open-source equivalent). Anything that lets you queue up an arbitrary number of songs will do.

The number of songs you line up matters a lot. You’ll see why in a second. For now just choose a dozen songs you really like and press Play.

Step 5: Turn off your second monitor.

Completely off. Unplug it if you have to.

Now, here’s the subtle but key rule in this routine: Don’t turn your second monitor back on until the music stops.

No exceptions.

Step 6: Work on the really important thing.

With your distractions completely blocked out, start working. Whatever you do, don’t break the subtle-but-key rule: as long as there’s music playing, that second monitor stays off.

If you’re blocked and you need to check your mail to figure something out, make an assumption and carry on. If you’re bored and you need a break, just sit there and rock out until that gets more boring than working.

Step 7: When the music runs out, or you’ve finished the really important thing, turn on your second monitor.

Read your mail. Answer your IMs. Catch up on Twitter. Whatever little things you need to do that aren’t actual, real work.

When you’re ready to get more done, go back to Step 3.

The fun part: Scaling up or down.

My favourite part of this system is how well it scales.

Need to get more done? Listen to more music. Meeting in 20 minutes? Put on 20 minutes of songs. Lots of email today? Stick to shorter playlists.

Your brain will grow accustomed to the “music on, notifications off” mentality. As soon as that second screen darkens and your ears start picking up sound, it’s go time. When the music stops, you know it’s time to sync up with the rest of the world.

This routine has worked wonders for me for the past few weeks. Do you have a routine to share? Why not try this one and tell me how it goes?

Web Technology

Browser Trivia Tuesday

I haven’t forgotten about that Windows Phone post. It’s coming. This is a small interlude while I get it juuust right.

Every Tuesday for the past four weeks, I’ve written up some super-geeky browser trivia on Google+. If upcoming jQuery releases and Opera are your thing, you should follow along! The posts are public, you don’t need a G+ account or anything.

I think I’m going to keep this up for the foreseeable future. The research-and-report format is surprisingly fun, and it’s filling in all kinds of gaps in my browser history knowledge. I have no idea if anyone is reading the trivia, let alone enjoying it, but sometimes you just have to do something because you want to do it, you know?