Will You Sit Or Will You Steer?

March 23rd, 2007

The last time I invoked boating metaphors, it was to support my belief that the best way to achieve your goals isn’t always by aiming directly towards them. I should disclaim the fact that I haven’t actually sailed enough to qualify making broad generalizations about life, but there’s something about piloting a boat that makes you think deep thoughts.

In fact, just thinking about boating can have this effect. Spring is here, and the Community Boating Center in Boston will soon be opening its doors for the season. I plan to get back down there and put some more hours into zig-zagging (tacking) my way up and down that short stretch of the Charles River. A great way to get away from the computer and unwind for a while.

One of the great qualities of the center is how much power they give individual members, even complete newbies, to control the course of their sailing education. After just a couple hours of safety instruction, you can be out on your own in a small boat, even if you’ve never sailed before. Of course, this isn’t recommended. A more usual approach is to first spend some time with sailing mentors, who will take you out and let you learn the ropes (finally, not a metaphor!) with the comfort of knowing an experienced sailor is there to handle any emergencies.

On my first day, I was anxious to go out by myself but decided it would be smart to go out at least once with a mentor. I ended up on the largest boat they have, and there were about 5 of us on board. This complicated beast of a boat was way over my head. I was periodically asked to tug on this or that rope, but I didn’t understand anything. While another newbie sat across from me and seemed to be having a blast, I was wondering whether I would like sailing after all. I realized of course that I wasn’t having any fun because I was merely a passenger. Worse, a passenger who has to take orders even if he doesn’t understand them.

When the opportunity to disembark came, I jumped at the chance. I went straight back to the pier and asked the dockmaster for my own boat. My frustration had fueled my desire to learn how to sail on my own terms, in my own boat. What’s the worst that could happen? I could get the boat stuck under the bridge. Embarrassing. I could capsize. Embarrassing, slightly dangerous, and dirty. No matter – I’d rather crash my own boat than be a useless passenger on theirs.

Of course this story is just a monster of a metaphor for many decisions we face in life. My decision to splash out on my own that day was not unlike my decision to become an independent software developer. I suspect that readers will find themselves resoundingly in agreement with or confused by these decisions. The reaction has to do with whether you’re a sitter or a steerer. There’s nothing wrong with being one or the other, but you should get comfortable with your own attitudes in that regard. Sitting is safe and highly predictable. You’ll know where you’re going and approximately how long it takes to get there. Steering is sometimes chaotic and steeped in responsibility. You probably can’t even control exactly where you end up, but when you get there, you’ll know exactly which route you happened to take. And you’ll celebrate or regret that route. Your route.

I should point out that sitting vs. steering isn’t as simple as flying solo vs. working with a team. The best companies are filled with both types of people. If your ambition is to steer, you can do so within a Fortune 500 company or in your spare bedroom. You can collectively steer a giant ocean liner like Apple, where thousands of co-captains secretly plot out the company’s destiny. Or you can join the Google Regatta, where a thousand little sloops flitter in the wind yet move vaguely in the same direction.

Or you can sit back and enjoy the ride.

Black Ink 1.0.1

March 23rd, 2007

I always like how the first update after 1.0 looks like some kind of a made-for-TV college course on the subject of the application. If you’re ready to enroll in Black Ink 101, you’ll be pleased by the following small but important bug fixes:

  • Fix a crash when loading puzzles of differing height/width (e.g. 15×16)
  • Fix inconsistencies in respecting “insertion movement” preferences

Happy solving!

The Responder Chain

March 23rd, 2007

Looks like I’m about a week behind in my Late Night Cocoa listening. I finally caught up with the episode on NSResponder, featuring Aaron Hillegass of Big Nerd Ranch.

Scotty is doing such a fantastic job with all the podcasts, I shouldn’t be surprised that this one was also excellent. I really like the way he pulls information out of his guests in a way that makes the shows engaging for both experienced and (I assume!) newbie Cocoa developers alike.

This episode in particular is a must-listen for Cocoa developers who aren’t completely comfortable with the responder chain. In particular, I like the way Aaron comes right out and declares the "First Responder" proxy icon in Interface Builder to be "a lie." In my travels I’ve found that "First Responder" is a woefully misunderstand concept.

Mostly the material in the show was a recap for me, but one concept I had never considered was that of a "view controller" that is inserted directly into the responder chain. Whoah, nifty! Aaron referred specifically to the MOViewController from the MOKit open source framework, by Mike Ferris. The idea is instead of subclassing a view to be able to get at all of its NSResponder-oriented behaviors, why not just insert an object immediately before it in the chain? Now you can respond to whatever want to (Aaron uses the example of a delete key for NSTableView), and pass the rest of the events through to the view.

Great stuff. Thanks Scotty & Aaron for an entertaining and educational show.

AppleTV Works With “Normal” TVs

March 22nd, 2007

Paul Kafasis of Rogue Amoeba got a chance to play with Apple’s newest toy, and discovered that it’s not quite as off-limits to us old-timers as Apple might have suggested! This is the unusual situation where a new product claims a certain limitation but is actually quite more forgiving. Paul discovered that Apple TV actually comes with a “480i” option that makes it suitable (or at least plausible) for some modern-ish TVs that are not quite ready for HDTV, but at least still have “component” input.

I have to admit there’s a big time rift in my technology adoption. Computers? Yes please. Televisions? Umm… when it really matters, maybe. I don’t upgrade my television, as a rule. In fact I have always, over the course of my life, been happy with “whatever television” was around. Right now it’s a 19″ TV that takes coaxial input or “RCA” style AV. It won’t even accept the component video that Paul is excited about. Oh well, I’m an old-timer.

But it’s good news for semi-old-timers who were hoping to use the Apple TV but thought they would be excluded. If you’ve sort of kept up with TV trends, then the Apple TV might be within your reach, even before you upgrade to the latest and greatest. If your TV has “component” inputs, then you could be in luck. If you haven’t, well… welcome to my world.