My “toolbox” re-visited

Every developer’s toolbox changes and evolves over time, even the old Reluctant Developer’s. In fact, I go through periods where I spend way too much time trying to find the next app that’s going to get me over the hump from hack to rock star. I haven’t found it yet because it doesn’t exist, but it’s still interesting exchanging some of the tools in the toolbox now and then, and sometimes finding that app that really makes a difference in one’s workflow.

So here’s a list of what I’m using now, along with a brief (sometimes very brief) explanation of “why”:

- Operating System
OS X. This hasn’t changed in six years and will not be changing anytime soon. Aside from the aesthetics and being an Apple fanboy, OS X is just easier to work with when developing in languages like PHP that are being deployed to *nix servers and depending on things like Git, MySQL, etc. It’s a pretty seamless transition between working in the OS X terminal and an Ubuntu box terminal.
- Code Editor
Sublime Text 3. Once you install Package Control and master the keyboard shortcuts, there’s no looking back. Extremely fast (start-up and searches), lightweight, packages for everything. Multiple selections = awesome. Got rid of Dreamweaver years ago (flaky). The Eclipse-based editors just seem really bloated to me. I used to use Coda, but after waiting for Coda 2, it became apparent that it was trying to do too much and was attracting it’s own bloat.
- PHP Framework
Laravel. It’s just getting bigger, stronger, faster. I’ve deployed 2 apps now using Laravel 4, and though I still have a lot to learn, I’ve had no regrets in moving to PHP and to this still “new” framework.
- CSS Framework
Bootstrap. I’m not a designer and never will be. With bootstrap, I can put something out there that isn’t ugly, is consistent, and is responsive with very little effort.
- MySQL Administration
Sequel Pro. Used to be a little buggy, but has come along nicely. Handles imports/exports every easily. Nice custom query editor.
- Version Control/Deployment
Git. Not an expert by any means, but Git is very powerful, yet pretty simple to use once you get the basics down. Though I do use SourceTree occasionally when I forget how to do certain things in Terminal, most of my interaction with Git is via the CLI:

git status
git add .
git commit -am 'message'
git push test

That’s pretty much it on a daily basis. Projects git pushed up to Bitbucket for safe-keeping and sharing with other team members. I use git hooks to do things like resetting file permissions after a push to test/prod, empty caches, run Laravel migrations, etc. I also use git tags to maintain and display the application versions in the footer of apps.
- Development Environments
Vagrant/Virtualbox. I recently gave up on MAMP after running into several issues with not having identical environments between dev/test/prod. I decided to commit to a simple Vagrant setup using a single shell script to set up each environment.
- FTP client
Transmit. It works. Has a nice sync view between local and remote. Syncs favorites via Dropbox or iCloud.

That’s it. I don’t use anything else enough to warrant a mention.

  • Damon Perron-Laurin

    I dont want to look like an ass who try to force his favorite IDE in everyone’s throat but you may want to look into PHPStorm. It has sql integration with autocomplete, autosynch with ftp, version control plugin (git, svn, mercurial and more), support for many framwwork (like laravel and bootstrap, etc) and many many more!
    Basicaly it has everything you have in your toolbox in 1 IDE.

    Once I started using it I never looked back at Sublime.

    PS : The Intellij IDEA version also support coldfusion for your legacy project ;)

    • Gary Taylor

      I have a trial of PHPStorm, but it just reminds me too much of Eclipse – “heavy”. Even with a brand new Macbook Pro, it feels noticeably slow compared to Sublime Text. There’s nothing wrong with it, but I”m comfortable doing the Git stuff in the terminal, etc. However, having some code introspection in Sublime (that actually works – sublimeCodeIntel does not for me) would be nice. I’ll keep my options open though, thanks.