Archive for September, 2005

Favorite Tools

Photoshop is, at the heart of it all, a tool. And while it contains the combined heart and skill of an experienced and dedicated team, it’s primary purpose is to let people get things done with images.

And while I have quite a collection of tools in my life – software and hardware – I always find it interesting to think about the tools I like the best, and what it is that that collection of tools has in common – and how can I make sure that Photoshop shares those attributes.

Now, the tool I use the most, by an incredibly large margin, is “Emacs”: Not surprising that a text editor is a developer’s most-used tool. But there are a few things about Emacs that I think set it far apart, especially from the “toy” editors that come as part of development environments. Now, I’ve been using it since, oh, I was in high school (that was a *really* long time ago), so I’ve got a symbiosis going on with in that probably biases my opinion against othe editors tremendously. But then, I’ve watched Photoshop users who are clearly the same way – knowing the shortcuts and keystrokes to drive it almost as an extension of their minds. Emacs is pretty much like that for me. Useable out of the box, but customizable using Lisp, it’s far more capable than other text editors, and I’ve added things and tweaked things so that it works just the way I want. It’s a replacement for Terminal on the Mac, it hosts Cygwin bash shell on Windows, it talks to our source control system, it’s completely cross platform, I have taught it how to steal the errors from the respective platform IDEs so that I can flip through errors more quickly, it highlights code the way I like, and I long ago set up an indentation style for coding that originally exactly matched – and then slightly improves upon – the original code indentation Mark Hamburg used (it’s a style I really like and find more readable than others). The customizability is something I’ve been advocating in Photoshop. Emacs does customizability right – guided options for those who don’t want to deal with immense complexity, and Lisp for those willing to roll up their sleeves. This is opposed to the customizability in Office, where it’s unguided and everywhere, leading to a quick mess in the UI if you’re not careful.

While I’m on development tools, I’ll mention “Perforce”:, which is what we use for source control. So many people build overly complex source control systems, or systems that are missing the key concept of check-in atomicity. With a simple client/server system (no complex pretending to be a file system, or mounting remote directories or junk like that), and a branching system that is flexible enough to let us do what we want without being completely incomprehensible, it just lets us get our work done without getting in the way too much. I’ve used RCS, CVS, SourceSafe (oh, no!), and various others – and Perforce is my favorite so far. I know other people have ones they like better, but if it doesn’t provide that atomicity, I wouldn’t be interested.

My favorite tool around the house is my DeWalt 18v cordless drill. It’s just a brute. I like the three speed clutch – can really help with the Forstner bits – and the chuck is really nice. It’s great when a tool is robust enough to put up with the kinds of abuse and just not give up. I don’t like having any bad bugs in Photoshop, and the ones I hate the worst and the ones that end up on the top of my priority list are any that threaten user data. I think Photoshop should be as abusable as my drill.

While I’m on my woodworking tools, I really like the Bosch table saw I got myself last year. It’s got this great soft-start mechanism that doesn’t kick things off the table, a really beefy fence with a nice extension section. But I think the two best things are that it doesn’t take a screwdriver to pull out the throat plate, and there’s a little lever to lock the blade for changing (I had a blade grabber for my previous saw, and I was always misplacing it). It’s a slick, professional level tool (not a full size professional table, but just right for a pro-sumer like me) that feels really well made and thought out every time I use it.

The tool I spend the most time at home with, however, is my HD “TiVo”: Yes, I watch too much TV. But at least I’m really efficient at it ;-). The HD TiVo is a great example of where the software is more important than the hardware, but couldn’t do anything if the hardware wasn’t at least reasonably capable. Yeah, I know there are many uber-geeks with MythTV setups, etc., etc. But I really like the fire-and-forget nature of the TiVo. It can record two things at once, contains two OTA ATSC tuners (made it finally worth it to struggle getting an antenna on my roof – thanks Bob for the help!), and talks to my older Mitsubishi HDTV (with a transcoder in place). What is interesting to me about the TiVO was the setup. I got an HTPC (the HP DEC Z540 – very not recommended) at the same time, and it’s setup was a nightmare. TiVo, on the other hand, was much easier. And a good chunk of that was because of one thing – on the front, they burned some real estate for a small button and four indicator lights that tell you what the output format currently is – 480i, 480p, 720p, 1080i. That one thing right there made all the difference in the out of box experience (the HTPC, on the other hand, is a complete bear to get talking to my TV – usually takes three reboots with the right magic settings each time). And when the TiVo occasionally glitches – very, very rare – it’s easy to verify when it’s booted to the point where I *should* be seeing something on the TV. Combine all that with one of the best remotes out there (compare that to the HP’s awful remote), and software that hides a lot of complexity. Sometimes hiding too much for someone liek mw who always likes to have many knobs and buttons available, but for the most part seems like a really good compromise. I understand that DirecTV’s new sattelites only talk MPEG4, and I can understand why, but if they think that they can pry the TiVo out of my hands for their cheesy DVR box “upgrade”, they’re nuts (and I suspect DirecTV always made TiVO take out software features just so their own box doesn’t look so horrible when it finally limps out the door). Heck, if I had the Home Media option on the TiVo, I probably wouldn’t have gotten the HP DEC at all. I sure hope TiVo is allowed to produce an upgrade with MPEG4 capability (and hopefully *all* the software features enabled) – I’ll be first in line. Yeah, yeah, yeah, I can put together better boxes, hack Linux, yada yada (I already have enough programming projects around the house, thank you – more on those later) – the TiVo is a great, well executed *appliance*. A combination of hardware and software (and TiVo is clearly a software company – but they’ve done so well on the hardware for a software company that it’s hard to believe sometimes) that is there – reliably, simple, easily there.

I’ve got other favorite tools around: a Little Giant ladder – flexible but very sturdy and stores compactly, a DeWalt 18v reciprocating saw – terribly fun to cut things that way, Microsoft Trackball Explorer (5 of them, actually) – I like large-style trackballs and I find the thumb-based primary button doesn’t hurt my hand. Tools that are reliable, flexible, customizable, well-executed. And sometimes fun.

Isn’t that what a tool is supposed to be?