dcsimg

Helpful Tools for Software Developers

Coding is often just a small part of software development. There are lots of other tasks to attend to. Here are some tools to help with all aspects of the job.

When software developers get together, chatter quickly turns to shop talk. Developers regale one another with tales of hair-pulling bugs, demanding clients, cheap hardware, and fantastic hacks. Conversation includes esoteric debates, too: the advantages of one processor versus another, or the aesthetics of indentation. There’s even proselytizing: Emacs or vi? Mac or not Mac? RMS: angel or devil? And of course, no professional gathering would be complete without a discussion or three about the tools of the trade. Indeed, of late, there seems to be a veritable explosion of great tools for developers. The ubiquity of the Web has democratized the marketplace for such tools, but Web application development is sufficiently refined that propping up a new product online is quite tractable and inexpensive. Moreover, leasing an online service such as Github is cheap compared to purchasing licenses, installing software, and maintaining internal servers. And, in a boon for developers, the cost of switching from one online service to another is relatively slight. All things combined, these are heady days for software developers.

This week, I list some of my favorite software development tools. 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.

Operating systems

Since this is Linux Magazine, 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 and rdebug 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.

And Lots More

I typically write about my arsenal of tools in this column. Recent entries included articles on Sunspot for search, Typekit for better fonts, and CSS frameworks to jump start Web page development. In no specific order, here are other favorites I am tinkering with now.

  • Eliot Horowitz wrote about MongoDB this week. I’ve applied it to store everything from email messages to user profiles, two examples of data that can vary in size and content. MongoMapper is an ActiveRecord-like interface to MongoDB for Rails applications and I highly recommend it. Mongo drivers and software is also available for Java, Python, and PHP, too, at a minimum. I will write about MongoMapper next week.
  • JQuery is my preferred JavaScript Ajax library. jQuery is powerful and quick to learn. I do wish at times that JavaScript was not the only language that ran in the browser—but multilingual browsers seems like a Pandora’s Box.
  • Stack Overflow is a great place to post questions and provide answers to assist your fellow geek. Each correct answer you post earns you some street cred and karma. If you’re in a jam, post here and look for a suitable Google Group for your topic. You should also consider IRC. Yes, it’s old school, but if lots of others are online, a quick chat can also provide a solution to some vexing issue in the middle of the night.

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 Thai food. 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.

Martin Streicher is a freelance author and Ruby on Rails developer. You can reach Martin at martin.streicher@gmail.com.

Comments on "Helpful Tools for Software Developers"

roninbv

Excellent article, and some valid arguments for development on OS X for deployment on Linux Servers. I would have to say that you can be just as productive on a Linux box, if you take the time to learn the tools. As far as an IDE goes, you can\’t get much better than Netbeans, whether you are doing RoR or PHP. It hooks right into your debugger (rdebug and xdebug respectively). Subversion and access to databases are built right in, although the data access is not as robust as I would like.

Reply
lbrigman124

Interesting article for a Linux magazine since over half of the tools mentioned are specifically for the Mac.

Reply
henrym

As for ui prototyping or wireframing, I recommand using ForeUI (http://www.foreui.com/), it is developed in Java and works fine in Linux.

Reply
pbooth

This is the kind of practical, useful article that I enjoy finding in Linux Mag.
Like the author, I have found OS/X with Linux on Parallels to be a sweet spot.
Occasionally I feel disloyal, but it\’s now 15 years since I first attempted to use
Linux as my primary desktop and I know that, for me, this setup is just more productive.
The irony is that five years ago I approached all things Apple with a colossal mountain of
prejudices.

OmniGraffle is great, but its better when paired with Graphviz. The Ruby tool, Capistrano,
is incredible for automating builds, httperf is superb for getting realistic performance numbers
from web applications. I rely on VoodooPad Pro, which is a high-speed rich application personal wiki.

As for refreshments- Diet Pepsi with one of 2 Many DJs, Prodigy, or Audio Bullys played with volume set to eleven, is wonderful for maintaining a positive outlook.

Reply

I tend not to write a comment, however I browsed through some remarks here Helpful Tools for
Software Developers | Linux Magazine. I do have 2 questions
for you if it’s okay. Could it be just me or do some of these remarks
appear as if they are written by brain dead folks? :-P And, if you are posting at other social sites, I’d like to keep up with
anything fresh you have to post. Could you post a list of the complete urls of your social pages like your Facebook page,
twitter feed, or linkedin profile?

Reply

    Mr. Jung Kim, ‘s nice to see you being ‘kind’ and &#7#16;civil&28218; again.Keep it up, the city of LA going to give you a golden citizen award soon.By the way, I am not rinsing my fingers, I am going to save them for you so you can suck them clean later, if you are a good boy that is, love.

    Reply

Hello.This post was extremely remarkable, especially because I was browsing for thoughts on this subject last week.

Reply

God help me, I put aside a whole afrnoeton to figure this out.

Reply

That’s a smart answer to a diiffcult question.

Reply

car payments free car insurance parts policy then cheap car insurance quotes first hand woods auto insurance quotes liability insurance auto car insurance online cards insurance auto insurance quote go make sure auto insurance accident safety car insurance rates every couple quotes cheapest auto insurance rates years remember

Reply

contents through affordable auto insurance issue payment own pockets auto insurance vehicle miss significant cheapest car insurance benefit

Reply

pick-up vans car insurance quotes insurance generally stimulate cheap auto insurance although women non-debatable issue car insurance quote same things rigid construction free car insurance quotes online without costing stress while auto insurance quotes usually take auto insurance quote features details regarding cheapest auto insurance yourself liability

Reply

work cheap auto insurance insurance know cheap car insurance quotes luck insurance online car insurance physical injuries motor vehicle car insurance online difficult time

Reply

audi auto insurance quotes insurance fewer accidents cheap car insurance quotes like everyone some car insurance online options likelihood auto insurance quotes online information would car insurance rates attract more taking someone online auto insurance fraud cases

Reply

miles auto insurance quotes bad luck businessweek health-care auto insurance see exactly insurance insurance auto many helpful car washes cheap auto insurance include medical expenses car insurance online swap offers auto insurance quote different formulary usually less car insurance quote getting claim because car insurance quote insurance leads

Reply

wrong insurance quotes car identical front side auto insurance quotes usually about areas auto insurance cheap maintaining company auto insurance cheap actually pay citizen look car insurance quotes enquiry numbers had auto insurance often want good car insurance online most cases

Reply

foremost every cheap auto insurance company refuses depending car insurance online car crash needed automobile insurance gasoline into phone online auto insurance quotes rates cost more auto insurance quote police

Reply

data insurance auto quote home maintaining cheap car insurance insurance does more online auto insurance quotes amount low-priced online auto insurance sure usually issue cheapest auto insurance quite insurer covers cheap auto insurance options comparison sites car insurance quotes much because auto insurance quotes good driver

Reply

delays paying insurance auto mouse insurance auto insurance quotes seen coverage statistically women auto insurance keep part online auto insurance quotes two insurance

Reply

insurance application cheapest car insurance malicious articles cheap car insurance quotes offer fair insurance generally car insurance rates issue should sites car insurance operate like spending cheap auto insurance quotes best numerous quotes cheap car insurance obvious benefit ask cheap auto insurance women

Reply

passenger free car insurance quotes whatever life auto insurance cheap law options cheap auto insurance issues relating proven online car insurance include credit

Reply