As of mid-2008, here are the tools I tap most often in building web sites and doing my other work:
I do the bulk of my work on a 4-core Mac Pro with 12GB of RAM and two 500GB hard drives, as well as an external 500GB drive. While the Mac itself came direct from Apple, most of the extra bits did not. I've never complained about spending money on upgrades that make me more effective, but compared to the competition I find much of Apple's peripheral lineup overpriced. So apart from the core box I have:
- Extra RAM from Crucial. I've never had a problem with them, and these days they even have a system scanner for Macs that makes finding the right memory sticks painless.
- 2nd hard drive is a Seagate drive sourced from NewEgg. There are cheaper sources for drives, but NewEgg's service has always done right by me in case of problems. I've probably used every major manufacturer of hard drives over the past 2 decades, and Seagates have consistently been most reliable for me.
- The external drive is a G-Drive from G Technology. Their pricing is better than some of their better-known Mac competitors, and it's been quietly reliable.
- Dual 24" monitors from Dell. Apple's Cinema displays are prettier, but I'm not willing to pay that much for pretty.
- Matias Tactile Pro 2.0 keyboard. The stock Mac keyboard is crap (as are just about all stock keyboards these days). I type faster and more accurately on a keyboard with good click and spring feedback, and this is the best I've found for the Mac - nearly as good as the Unicomp keyboards for PCs. The Tactile Pro does have a problem with spurious characters if you type certain key combinations quickly, though, and I'd happily swap it for a competitor if one existed.
- Logitech Cordless Trackman Optical trackball. The stock Mac mouse is also crap. I've also found over the years that I have a lot fewer RSI symptoms with trackballs than with mice. I do switch back to the stock mouse on those rare occasions when I have finicky photoshop work to do.
- Fujitsu ScanSnap S510M desktop scanner. This has finally let me get to a near-paperless office.
I also own a 15" MacBook Pro with 3GB of RAM for the rare (these days) times that I travel. As with the desktop box, the extra RAM came from Crucial.
I don't fill up even a single 500GB drive with my current working software and projects. Everything else is a part of my backup strategy:
- The second 500GB drive in the box mirrors the first. This gives me reasonably instant protection against a single drive failure.
- The external 500GB drive holds Time Machine backups and nightly SuperDuper backups. This gives me protection against accidental deletions and complete computer meltdown. Time Machine isn't 100% reliable, but I don't need to recover accidentally deleted files often so it's worth filling otherwise-unused space with its work.
- Servers at Amazon S3 hold yet another backup of my most critical files via Jungle Disk. This is my "in case of house fire" backup.
Yes, it seems like an absurd number of copies of data. But over the years I've learned that combined failure modes can take out more copies than you might think. Apart from the recurring Amazon S3 charges (about $20 per month) all that went into this was one-time costs and a tiny bit of configuration time. It's cheap insurance.
Thanks to Slife, I can list software in the order that I actually use it, from most-used on down. This doesn't necessarily reflect its importance, but it's a useful guide. I use a lot more software than this, so I'm only listing the ones that are most-used and that have a direct impact on my development (or that I have otherwise strong opinions about).
- Firefox - I live in the browser - and the browser I live in is not Safar (and not, for the love of God, in Internet Explorer). The wealth of extensions for Firefox easily tips the balance for me. Among my most-used addons:
- 1Password - With the number of sites I use these days (that's another discussion), password management is a necessity. Though I'm leery of locking up passwords in a proprietary database, synchronization with their online My1Password service removes some of the worry for me.
- Adblock Plus - The main reason the internet is littered with ads is that everyone is playing "emperor's new clothes" and doesn't want to admit that they don't work. Soon enough the entire model (and Google's share price with it) will collapse. Meanwhile, I don't feel any ethical duty to look at them or let them take up my bandwidth.
- BugMeNot - I don't feel a need to go through registrations so you can send me spam or tap into my demographic, either.
- CS Lite - Everyone can use a cookie manager. This is the one that I like.
- CustomizeGoogle - Zillions of options to make Google more usable. It's one of those extensions that I don't remember I'm using until I sit down at someone else's computer and it's not installed.
- CyberSearch - Much improved integration for Google search into Firefox 3's address bar.
- Faviconize Tab - I run with a lot of tabs open in Firefox (typically 50+). Using this to shrink my most-used tabs to the width of their favicons makes everything more findable.
- Greasemonkey - I only run a few Greasemonkey scripts, but when the design or layout of a particular site pisses you off, it's the easiest tool to reach for.
- HashColouredTabs+ - If you want to faviconize tabs from sites that don't supply favicons, this is an easy way to make them more visually recognizable. One tip: make localhost:3000 something like a red circle so you never again mistake it for a production site.
- HttpFox - HTTP header analysis in Firefox. Not needed all that often, but irreplaceable when it is needed.
- Nightly Tester Tools - If you run anywhere near the edge of Firefox, this one is essential, simply because it gives you easy ways to make other extensions work again.
- PDF Download - PDF management the way that it ought to be baked right into the browser. Like, choose at click-time whether you want to view, open, or download.
- QuickDrag - Mouse-gesture searching. Saves me ten seconds at a time a dozen times a day.
- Weave - Synchronization for multiple Firefox copies on different computers. As of the current beta, it still kinda sucks, but it's better than anything else I've tried.
- Web Developer - Thanks to Firebug, I don't use this nearly as much as I used to, but there are still tools here (like outlining tables and cells) that come in handy.
- TextMate - I used to be a heavy-duty IDE user, but that was back in the old days. With Rails, I'm much happier close to the code, in a text editor. This is the text editor to use. I've installed a few extra bundles that aren't in the core distribution:
- The git bundle - Pretty much a necessity if you're doing Rails development these days and have contracted a case of the new sexy.
- The Ruby on Rails 2.0 bundle - From the irrepressible Dr. Nic.
- Cyndicate - I am a heavy, heavy RSS consumer. There are not many clients that work when you get up into the hundreds of feeds and hundreds of thousands of stored items. This is the one that works the best for me, though I'm starting to push its limits.
- Twitteriffic - I'm quite active on Twitter, but the web user interface is pitiful. Fortunately, thanks to this desktop client, I don't need to put up with it.
- Mail - I use Apple's built-in mail application, though I'd give it at best a C+; everything else is worse. Some of the annoyances can be ameliorated with the right Mail add-ins:
- DockStar - The killer feature here is one-click access to individual folders from the menu bar.
- Mail Attachments Iconizer - Especially useful if you don't want Mail to pretend it's smarter than you about how to display attached PDFs.
- Related Messages - Plugin that builds an index of all your mail and automatically shows related messages in a sidebar. Since switching to this, I almost never have to search for mail any more.
- GPGMail - PGP-authentication plugin. You probably could build something from scratch, but why bother?
- Terminal - In Windows, I tried to avoid the command line. In OS X, I embrace it, often having half a dozen ssh sessions running at once. Perhaps I've matured.
- MarsEdit - I do a fair amount of blogging. I can't say I'm in love with any of the desktop clients, but I'm at least in like with this one. It beats the hell out of WordPress eating yet another post.
- Navicat - None of the cheap or free database clients come anywhere near Microsoft's tools in terms of functionality and usability, but Navicat is not bad for MySQL.
- CSSEdit - CSS editor that simply blows away the competition. I never found anything even remotely comparable for Windows.
- Chamonix - I occasionally need to view Windows-style CHM help files on OS X. None of the options for doing this are really good, but Chamonix at least works.
- EagleFiler - OS X has way too many applications for organizing heaps of miscellaneous information and documents. This is the one I use.
- Changes - Paying for a diff/merge application seems absurd, but I like the looks and functionality of this one. And no, I don't really need all the extra features in Beyond Compare.
- GitNub - Working with git repositories? Want a native GUI interface? This one is worth a look.
- OmniOutliner Pro - My brain often thinks in outlines. This makes them prettier.
- CoRD - Luckily for me, the days that I'll have to manage Windows servers remotely via RDP are drawing to a close; I'll be decommissioning the last one at the end of the year. Until then, this is a lovely client.
- xScope - On-screen design and layout tools. The radar/lasso dimensions tool is the killer here.
- Pixelmator - Graphics apps are another area where OS X is oversupplied. I use PhotoShop (grudgingly) for heavy lifting. Pixelmator is the one that I reach for for light editing.
- Transmit - My FTP client of choice. Yeah, I don't much like the command line or the browser for FTP. It's all about shaving seconds off my thinking time.
- TaskPaper - I have tried a zillion to-do list managers, including many of the GTD heavyweights. This is the one that I actually use (though there's no excuse for Apple's failure to build usable task management into the operating system).
- Spike - OS X clipboard sharing. Useful if you're wrangling multiple computers.
- PairNic - I've been using Pair as a registrar for roughly forever. They're not the cheapest by any means, but they give me good service and let me manage my DNS, and their tech support has been superbly responsive when I've needed them. Plus they don't waste my time trying to upsell me.
- RimuHosting - Linux servers with root access and the Rails stack preinstalled if you want it. $30-$50 per month depending on your needs. I've got six machines I'm managing there at the moment. Another company with great customer service.
One of these days I'll do an entry about the various web applications that I use constantly, but this one is already long enough. In the meantime, if you want to post your own similar list, I'd love to know about it - leave me a note in the comments. And feel free to compliment my choices or call me an idiot while you're at it.