taylorbarstow.com

Surprised and Excited

I wanted to watch Michelle Obama’s speech last night because I was curious to see how she decided to portray herself, her husband, and her family. Obama is, relatively speaking, unknown to many of our nation’s voters. Further, his background falls far outside the American norm. All this has given significant fuel to the Republicans, who have painted Obama as nothing more than a sweet talking celebrity out of touch with core American values.

So I expected Michelle Obama to communicate her family’s values on her terms. But I was surprised and delighted to find something I didn’t expect: as a speaker, Michelle Obama rivals her husband! Her passion, her thoughtfulness, and her candor all shone brightly last night. She delivered the kind of speech rarely seen from most mainstream politicians these days—let alone from politicians’ partners. (Indeed, I would argue that we won’t see anything as inspirational from the Republicans during their convention.)

Let’s hope that, as Michelle put it (I’m paraphrasing here), we can come together as a country and listen to our hopes this time around, rather than our fears! If we can make this happen, then maybe, finally, we can get out from under the thumb of corporate America and set our own agenda for once. A big thank you to Michelle Obama—your speech thrilled and inspired me.

Getting Ready!

Powder Magazine Cover, September 2008

The ski magazines arrived the other day. I have been thinking about skiing almost every day for weeks now. You might be able to tell that I am super excited!

But before I can ski, I need to get my legs in shape. Which leads me to hiking! Fall is hiking season. The days are crisp and not too hot, the leaves are beautiful, and there aren’t many bugs. I didn’t get out that much last fall, though I did get to Katahdin, which was a blast.

So this fall, I’m committed to hiking four or five times. To help me follow through, I’m trying to start a little hiking “club” with some friends. I figure not everyone will be as into as me, but hopefully I will find a cohort or two for each hike. We’ll see how it goes!

Katahdin in 2007
Katahdin in 2007

The Great Filter

My friend Jeff just came over for dinner and brought up NBC’s role in the Olympics.  NBC controls which events to televise, and thus which events most Americans know about.  As an example, the network has seriously emphasized beach volleyball this year.  Meanwhile, sports like crew have received litte coverage.  Show me some fucking table tennis!

In fact, NBC’s influence goes beyond scheduling.  According to Jeff, NBC played a huge role in moving the IOC to ditch one or two track cycling events and replace them with BMX.

We see the same phenomenon in the news media.  Newspapers, news networks, and news radio stations have complete control over which news we get to hear about.  This is no subtle role! It fundamentally affects our understanding of the world.

Adrian and I agree—there must be a better way. But what is it? Even with on demand television (for example) or the Internet, there is some provider deciding what is available.

There is at least one answer, at least one unbiased group that can provide unfiltered content.  What is this great, omnipotent, honest source?  It’s you; it’s me.  You, me, and everyone else who is connected to the Internet.

Can it be done? Would the world accept a radically different mechanism for information distribution? Am I (is anyone) brave enough to try? Open questions, for now. I’ll tell you this: it is most definitely an intriguing challenge.

Typing Furiously

That would be the caption on a photograph of me when I’m at my best (professionally speaking, that is).  Finally, this happened to me today while using Cocoa!

This is exciting.  It means that instead of stopping to be confused, now I can stop to think things through.  Instead of stumbling over new API’s and design patterns, now I can hold my program in my head.  In short, I can program effectively in my new environment.

Watch out!  As of today, we’re cooking with gas.

Oh, and I redesigned my blog, too.

Earning Some Cocoa Chops

New APIs are hard!  Throughout my life as a programmer, I’ve told people that once you master a few languages, learning new ones becomes much easier.  But learning to go beyond the language and develop something complex on a new platform is a different beast.

My new challenge is Cocoa.  I’m learning Objective-C and the Cocoa (NeXTSTEP) framework to implement a killer solution for graphic designers.

Today, I picked up some chops when it comes to debugging.  One of the trickiest things about C is proper memory management, and this carries over to Objective-C.  The syntax is simplified, but getting the logic right is just as tough.  (Cocoa programmers: obviously I’m talking about traditional retain/release stuff here, not garbage collection).

I spent six hours tracking down a memory management bug.  Some object was being over-released, causing my program to crash.  I had no idea which object it was, though I had a theory, and I wasted time on it.  I didn’t know what to Google for (new platforms are hard), but eventually I landed on it.

The solution? A combination of NSZombieEnabled and MallocStackLogging. NSZombieEnabled proxies release messages.  It will never set a retainCount to zero.  Instead, it logs a message containing the process ID and memory address of the object being over-released.

Conveniently, MallocStackLogging lets you inspect the stack trace up to the malloc call for a given PID and memory address.  Once you find the malloc call, you’ve found your object.

Do I wish I hadn’t spent six hours on this (plus writeup)?  No way—it’s struggles like these that help me master a new environment. The best way to learn a new city? Go out and get lost, then find your way back again. The best way to learn a new platform? Hit a wall and learn how to climb over it.