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: 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](https://github.com/rufhausen/super-simple-vagrant-laravel) 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.