Eddie Hinkle

My Development Environment

I just recently installed Mac OS X 10.9, and I figured I would take this time to document my development environment. I'll continue to update this as my development environment changes over time or different tools become more important.

I'll also begin writing more individual in-depth posts on specific tools that I find important.


Mac OS X 10.9

As far as the latest iterations of the Mac operating system is concerned, I haven't noticed any major changes that alter the way it is used for web development in Mac OS X 10.9

One of the user interface changes that I'm excited about is the fact that all monitors can now be used for all features. If you are using a screen, the menu bar and the dock will switch to that screen. That means, you no longer have to hunt down the monitor that contains the "Menu Bar" so that you can select something from the menu bar.

Virtual Box

The second software to prepare my development environment is the free virtual machine engine from Oracle, Virtual Box. This allows you to load guest operating systems so that you can deal with multiple operating systems at once.

I don't use Virtual Box myself. It's just a means to an end. My third development software uses Virtual Box, so this is installed as a pre-requisite.


Vagrant is the tool that changes everything for developers and even designers when it comes to web development.

This tool helps automate the creation and destruction of virtual machines (through the virtualization engine of your choice. Mine is Virtual Box for now).

What this means is with Vagrant, you can have a fresh clean virtual development environment whenever you feel like it. Rather than delving more into this now, I'll leave it for a follow-up post on developing with Vagrant that I'll be writing up soon.


Puppet is an automation language, rather then software. It is, however used to build my development environment.

Vagrant allows it's users to either use Puppet or another automation language called Chef. My choice after doing a lot of research was Puppet.


I've used a number of different tools through out my time as a software engineer. These are the ones I use currently based on their upgrades over time and my current needs.

Komodo IDE

Komodo IDE is my text editor/IDE of choice. In the past, I've tried Sublime Text 2 which I still use for quick text document editing. However, when I'm building in-depth PHP and JavaScript applications I find that it helps to have something more robust. This is where Komodo IDE comes in for me.

I find that it's quick and lightweight for an IDE, but still provides enough in the way of debugging, code completion and handling of numerous files that it fits my needs.


When it comes to version control software, my needs have changed, based on if I'm on my own or in a team. My personal preferences are for git. In my current job, the programming team was using Subversion for the last several years, but just recently updated to using Mercurial/hg.

Source Tree - Mercurial

Source Tree is my version control client of choice when it comes to Mercurial. It's created by Atlassian, the same people that own BitBucket--the online git and mercurial repository hosting.

At first, I wasn't sure how I would like Mercurial as a version control software but honestly, I haven't noticed a major difference between using Mercurial and using git, so it's been enjoyable.

Tower - git

Tower is my client of choice, when it comes to using the git version control software.

Versions - Subversion

Versions is my tool to use when I must deal with Subversion, however my experience with subversion has been horrible. It seems like it's always giving me issues, so I avoid Subversion at all costs.

Below I've listed all of the various tools and software I use with links to their respective product pages.

Development Machine

Mac OS X 10.9Virtual BoxVagrantPuppet

Development Tools

Komodo IDE 8.5

Version Control

Source Tree - Mercurial • Tower - git • Versions - Subversion

Waldorf, Marylandtech
Please note: This site is in an active redesign. Some things might be a little off 🧐