Just a Tool

When it comes to the "Mac or PC" question, I am not neutral. It's more that I decided at a certain point to wash my hands of the business of telling people which to buy. I am not the right person to ask, if only because I lack perspective, and I will avoid that conversation whenever possible. When pressed, I will say "Buy what's right for you", because that really is sound advice.

What I never say is "It's just a tool." To be honest, that sentence makes me feel a little sick and sad inside. Like many people who live by their tools, I feel there is no such thing as "just a tool".

The Power of Unoriginal Storytelling

A friend posted this video on Facebook:

The video tells a story, but its purpose goes beyond storytelling: it is a marketing tactic used by a company that sells copywriting services. The blind man represents potential clients, the pedestrians are potential customers of those clients, and the mysterious woman represents Purplefeather.

According to the description on YouTube it is an "[h]omage to Historia de un letrero, The Story of a Sign by Alonso Alvarez Barreda", where "homage" really means "remake". You could argue that it was sleazy of Purplefeather to rip off the earlier film. You could also argue that there's nothing wrong with a remake, especially when the source is itself a retelling of a previously told story. Regardless, I'm not sure why Purplefeather wouldn't demonstrate its copywriting skills by writing something original.

Something else feels off to me: I've seen comments in various places describing the story as "beautiful" and "powerful", but to me, the core message of the story is not particularly heartwarming or inspiring. The good samaritan is kind of a jerk, altering the sign without permission and without telling the blind man what it says. And the good samaritan as a proxy for the storyteller (i.e., the filmmaker) seems a bit self-congratulatory, as if saying to the audience, "Aren't you glad I taught you this lesson about marketing?"

To me it is an interesting parable about human nature, but the same point could have been made with the "blind" man actually being a con artist whose "sales" have been slumping until he himself comes up with the clever marketing tactic. Different story with the same lesson: how you convey your message affects the material rewards it will get you. And perhaps a secondary lesson: people want to be compassionate, but sometimes you have to sell them a little on the idea.

On the other hand, "Historia de un letrero" was a winner at Cannes in 2008, I suspect because it was seen as heartwarming. Maybe the filmmakers would not have won if they had told my con-artist version of the story. So maybe the story is itself a demonstration that how you convey your message matters — even when the message is that "How you convey your message matters."

Who's on First

A friend posted this on Facebook:

I think it's okay. It respects the original while adding a little something fresh. I wonder who the guy who plays "What" is. I felt bad when he didn't get big cheers like the others.

To be honest, for a long time I had found the original a little stale, but I think that's because I'd heard so many amateur reenactments. No offense to the amateurs — this routine was practically made to be repeated and enjoyed by all comers forever and ever — but I just watched a couple of Abbott and Costello's performances, and you can see the difference between mastering the lines and mastering the performance. It's all about the reactions. It's no use delivering the lines with rapid-fire precision if we don't see the cumulative effect on Costello's emotions, while Abbott in his own mind is giving exactly the perfectly reasonable answers Costello is asking. To get those reactions — and to keep the wording confusing enough for Costello but clear enough for the audience, without sounding scripted — that's the brilliance of this routine. I am sure it could only have been accomplished over thousands of rehearsals and hundreds of performances.

Here's one performance:

When I watched this video I noticed it didn't exactly match the script I've heard over and over. It turns out:

"Who's on First?" is believed to be available in as many as 20 versions, ranging from one minute to about 10 minutes. The team could time the routine at will, adding or deleting portions as needed for films, radio, or television.

That they could adjust bits of it on demand and keep up the speed and spontaneity is just another sign of their brilliance and virtuosity.

Coding Moment: Being Slow to Spot a Pattern

Started a tweet, foresaw it becoming a long flurry of tweets, decided to make a blog post.

Was spinning my wheels adding what seemed a simple feature. Most of the needed code already existed. "Just" needed a little more.

Finally figured out it was about going from two possible states to three.

Had been switching states implicitly. The code needed to be more explicit.

Took some messing around before that dawned on me, and a bit more to decide how to represent the state transitions.

Decided on names for the states. Refactored, edited comments. Not much increase in lines of code, but quite a bit of change.

I might change one of the state names to "default". Paradoxically, less descriptive yet easier to associate with what it does.

Why didn't I solve this earlier? Specs too vague? I think I could have spec'ed it to death and still missed the forest for the trees.

Maybe I just needed sleep? I spin my wheels a lot when trying to solve problems on too little sleep.

For me, in this case, it took a combination of stepping-back-and-pondering and messing-with-the-code.

Sometimes I'm slow to realize I'm spinning my wheels until I've been doing so for a while.

It helps to play Look For the Pattern. Not necessarily "pattern" as in Gang of Four, just some overarching concept.

When I've worked on teams, co-workers have often been helpful in catching my bad ideas or pointing out the forests and/or trees.

Sometimes I have to make myself open up to those conversations. At heart I am very much a solo developer.

Although I do write all code as if for public consumption.