What's in my toolbox?
A developers tools are just as important as a builders tools. Just like with builders, developers have personal preferences, so I thought I’d share mine.
Operating System: I have developed on Windows, Linux and Mac OS. For me, Mac OS is the best fit. It offers the best combination of user experience and a UNIX environment. Developing on Linux is brilliant in that the development environment is the same (or near enough) to the live environment. But I also demand the experience I get with a Mac. I also run Linux (Ubuntu Server) in a Virtual Machine, so have the best of both words. I do use MAMP PRO some times when I just want to quickly get an environment running.
Virtualisation Software: As mentioned above, I run a Linux Virtual Machine and for that I use VMWare Fusion. I also use Virtual Box and have Windows XP with IE6, IE7 and IE8 and Windows 7 with IE9 setup for cross platform testing.
IDE/Code Editor: I have used a wide variety of IDE’s and code editors over the years including Eclipse, Aptana Studio, WeBuilder and NetBeans. I now mainly use Komodo IDE. I have recently been trying out Sublime Text 2, which I love. It is a code editor and does not have all of the features of a full IDE like Komodo, but with many plugs available, you can get it close. One of the best things about it is the ease and speed and which I can jump around files. More on that in a later post.
Debugging: I use Xdebug in conjunction with Komodo IDE. Other debugging tools including Devel (Drupal), Firebug (Firefox), Web Developer (Firefox), HTTP Inspector (Komodo), DOM Inspector (Komodo) and others.
Browsers:For general web surfing I use Chrome. I also use with when developing except when I really need the full Firefox experience and then I switch to Firefox. Although Chrome Developer Tools often does the trick.
Source control: Subversion and Git, depending on the project. I mostly use the command line for both, but sometimes use SourceTree as a Git GUI.
Database GUI: I switch between using the command line to a GUI depending on how I am feeling. If I want to use a GUI I use either Sequel Pro or the Database Explorer in Komodo.
Time tracking: As a freelancer/contractor, tracking time effectively is essential. I use Freckle.
Project Management: I have tried a quite a few different tools to manage projects and todo lists, including simple text files. I am currently using Pivotal Tracker, which is an Agile project management app. It might be total over kill, but I’ve worked in Scrum environments quite a bit, and working in sprints for my own projects helps get them done.
Bug Tracking: When working with bigger teams we tend to use a dedicated bug tracking solution like Jira or Trac.
Reading: My RSS client is Reeder, my Twitter client is Twitter for Mac and I have a Kindle and use Calibre to manage my ebook library.
Writing: For note taking, research and collecting useful bits of information, I use Evernote. For writing, I have started using Scrivener. I am using Scrivener to write Master Drupal and will also use it to write blog posts.
Snippet Manager: There is no need to type everything out, so I store snippets that I use often in Snippets. It saves a lot of time!
Hardware: I exclusively develop on a mid 2010 Macbook Pro (hopefully to be replaced with a 2012 model when they are released).
Backups: I use TimeMachine with a Iomega eGo 500GB (firewire). I also have a Western Digital network drive for extra storage. I use Dropbox for important files, including photos (which are synched with my wife's machine). I also use Amazon S3 for some ad hoc backup needs.
Other tools: iTerm2 as a terminal replacement, Skitch to share screen grabs, XMind to mind map, Inkscape and Pixelmator for graphics, and FileZilla when I need FTP, Adium for chat (Google chat, Facebook chat etc) and Skype for chat and video calls.
So, what is in your toolbox?