I’m going to list some of the developing tools
that are my favorite tools to date. There are the usual suspects: an editor and
a debugger, but I also highlight some tools that are far less technical but no
less vital to the job.
It’s no shock that I consider Linux essential
for the job. Virtually every tool and package is available on the platform, and
since much of the software I use originates on Linux, its my canonical reference
for operation. A bug in a Linux package installed via apt-get likely
means the bug exists on all platforms. Software installation is also a snap,
the source to every utility and library is readily available, and hosting is
cheap. For software development, there is no equal.
However, coding is often just a fraction of the
time developers spend on software development. There’s project management,
reporting, email, documentation, billing, and more. Linux offers some
solutions, but the king of productivity platforms is the Mac. From email to
drawing tools such as OmniGraffle, the Mac is my preferred platform for daily
work. On its surface, the Mac offers rich and GUI applications; at its heart,
it’s a FreeBSD system that operates identically to my Ubuntu server.
I have a suite of preferred tools on the Mac.
Parallels runs virtual instances of Linux and Windows on my Intel-based
MacBook. Navicat, Seequel Pro, and MySQL Workbench peer into MySQL. Navicat is
a power tool, but I find the minimal Seequel Pro more convenient of late.
OmniGraffle creates diagrams and wireframes with ease and has no equal on any
platform. And Textmate and BBedit are permanent denizens of my Dock. Textmate
is incredible for Rails coding, but I prefer to write HTML and text documents
in BBedit. I also run lots of little gems: PTHPasteboard Pro minatains a
near-limitless less of clipboards; Teleport lets me use one mouse and keyboard
to span a desktop full of Mac machines; and Billings keeps track of my billable
hours.
I also find the new debugging tools in Safari 4
to be quite good. The Web Inspector benchmarks Web page download performance
and can even debug JavaScript, although Firebug is more transparent.
Debuggers
Speaking of Firebug, it is my preferred tool for
debugging client-side Web application code. I suppose it would be more correct
to recommend Firefox, since Firebug is simply an extension. The third-party
add-ons and extensions make Firefox a hands-down winner for application
development. Y!Slow provides insight on non-performant Web pages, and SenSEO
not provides similar metrics for search engine optimization (SEO) benchmarks.
Just point SenSEO at a page and it advises how to improve the metadata
accessible to the search engines.
On the server-side, I prefer debuggers over printf and inspect statements.
Both irb andrdebug suffice for Ruby development,
while embedded debugger calls help to debug Rails applications
running under the standard Rails Web server. Stalwart gdb tackles
C.
Related to bugs, I currently use Lighthouse to
track bug reports. One of its advantages is the email gateway: Others and I can
submit new tickets, make amendments, and track progress all via email. Other
tracking software, including Jira, also provide email portals, but this feature
and the simplicity of the Lighthouse user interface. Another option is Sifter,
which features an even more attractive and approachable user interface. Prices
are comparable: each is around $20 per month for a few projects, disk space,
and seats.
Software Services
Lighthouse and Sifter are just two of many
services now available online. Task management is the strong suit of Basecamp
and a similar tool named Redmine. Basecamp is free or cheap and great for
project management. It too features an email gateway: replies to certain
messages are automatically appended to ongoing conversations.
Gthub and Beanstalk provide Git and Subversion
hosting, respectively. I continue to use Git from the command-line, but I’ve
switched to Versions on Mac OS X to interact with Subversion. Both version
control systems seem popular, with some projects on one or the other. I suspect
I use Git more, simply because its cool among Ruby aficianados, and its
operation is something of an analog to traditional utilities like mv, rm,
and the ancient Revision Control System (rcs) found on Unix
systems back in the day.
Glancing at my bookmarks, I also use Twitter to
follow projects, companies, and people. The advantage of Twitter and a Twitter
client like Adium or TweetDeck is the immediacy: its flags a tantalizing
message for me. I often forget to catch up on my RSS Feeds (read via NewsFire),
so Twitter is an adequate substitute for instant updates. Many lay people use
Twitter; others do not get it. For me, Twitter is an essential channel for me;
otherwise, I’d miss a lot of important patches, releases, and security alerts.
Proper Fuel
Finally, developers need proper fuel. Some run
on cola, others on coffee, and still others on microbrews. My power source of
choice is Cigar. With it, I can code and play the keyboard like Linus and
Linus, that is Torvalds and Van Pelt, respectively.
If you have a favorite fuel
or an application you cannot live without, drop me a line. I’d love to hear
about it.
No comments:
Post a Comment