April 30th, 2010 by Kevin Cupp

Tools of the Trade - Development

 Add a comment.

About this post:

Kevin Cupp gives the dev team's picks for efficient, quality development tools.

 

"Every craftsman starts his or her journey with a basic set of good-quality tools. A woodworker might need rules, gauges, a couple of saws, some good planes, fine chisels, drills and braces, mallets, and clamps. These tools will be lovingly chosen, will be built to last, will perform specific jobs with little overlap with other tools, and, perhaps most importantly, will feel right in the budding woodworker's hands ... the tools become conduits from the craftsman's brain to the finished product—they have become extensions of his or her hands." – Excerpt from The Pragmatic Programmer

The development team (geeks) at NewCity is always on the lookout for the best tools to get the job done. And since geeks like to know what other geeks are using, I thought I'd share our top development tools we use every day. The entire dev team is finally all Macintosh (congrats Jason!) – we've found it better fits our needs since we use computers to create – so this list is Mac-only.

TextMate – Programmers need a good text editor, and we believe this tops them all. When we're not working in an IDE such as Xcode or Flex, we prefer using TextMate for its powerful bundles and text manipulation. From the outside, TextMate looks like nothing – but on the inside is a powerhouse of pragmatic automation. What would normally be a tedious task in other text editors, there's very likely a solution already built into TextMate. Or, if there's not, you can write your own solution! Heck, there's even a book about how awesome TextMate is.

CSSEdit – TextMate is fine for small CSS tweaks, but when you have 20 XHTML/CSS templates to produce by Friday, we love CSSEdit. If you take a look at one of our CSS files, there's a good chance we didn't even type most of it. That's because CSSEdit auto-completes all property and value names, making typing out styles fast and efficient, which is our favorite recipe. The fun doesn't stop there, CSSEdit also gives us a live preview of our CSS changes. This has evolved my workflow to first write the HTML for a template, then spend the rest of the time in CSSEdit and watch the page transform before my eyes.

Versions – When we're forced to use Subversion (some of us prefer Git), we love Versions. Versions gives an easy and intuitive way to manage SVN repositories, including committing and tracking which files are under source control. It's just a great Subversion GUI and there's not much more to say.

xScope – Our designers may disagree, but there are tools we use to make sure the designs we produce into templates are as close to pixel-perfect as we can get them. For this, xScope is where it's at. When there's the question of how far away a logo is from the edge of the screen, or how much padding there is between two elements, eye-balling usually won't cut it. So we fire up xScope and we can actually overlay a ruler on the screen to get an exact measurement. The ruler is just one of the many useful tools xScope provides, but that one gets the most use out of me.

Querious – I normally use the command line for simple MySQL dumps and imports, but when it comes to creating database schemas, I prefer something a little more user-friendly. Querious, in addition to creating backups and importing SQL files, does a great job letting you create a database schema from scratch, as well as nearly all other aspects and managing a MySQL database. You can of course connect to your local MySQL server or a remote one. There is also a nice free solution called Navicat Lite.

VirtualHostX – We develop locally on our machines, meaning we each have an Apache server running on our workstations so we can test our code in real-time. This means we set up virtual hosts for each site, which normally involves editing config files. Man, that's tedious with the number of projects we have. VirtualHostX offers an extremely easy way to manage these virtual hosts through a GUI, and even allows for custom directives (e.g. AllowOverride).

1Password – In an effort to stop having the, "Hey, do you have the login for Acme Inc's FTP?" discussion we used to have every day, we've taken on adopting password managers. 1Password seems to be the more popular of our group because it is very well-developed and gets the job done, plus there are apps for iPhone and iPad that let you carry around your logins on-the-go. Password managers will also log in to sites for you automatically without the need of copying and pasting passwords. Another option used in the office is called LastPass, which is cross-platform and syncs with a database online to keep your other computers in sync (if you trust that kind of thing).

VMWare Fusion / Parallels – Unfortunately, there are times when we need to launch Windows to do some testing. Luckily, we can do this without leaving our cozy Mac environment. Operating system virtualization programs such as VMWare Fusion and Parallels offer a way to run Windows as if it were another application on your computer. The dev group is nearly split as to which virtualization software we prefer, but from what I've seen, both are great solutions while Windows and Microsoft still exist.

I hope this list has led you to discover a tool that's been missing from your toolbox. Ultimately, I think my passion for technology stems from its ability to make tasks like communicating, accessing information, and creating very simple and convenient, leaving time to us to enjoy life how we're supposed to. So if you have any must-have tools in your arsenal that I left out, leave us a comment!

Speak up.

Respect.NewCity will never distribute, sell or otherwise treat your information like its ours to run around all willy-nilly, hither and yon with. That's because we appreciate your contribution to the conversation.