CodingPrime

<strong>kung fu</strong>Fork me on GitHub

Tmux + Vagrant = win!

In my quest to become one with my Air, I've been in search of the best tooling to keep my workflow smooth. I did some playing around with MacVim, running rbenv in OSX, and various IRC clients. After a lot of hand-wringing and head-scratching, I think I've come up with the best solution.

Cheaters always win!

My fix is to give up and give in. Vagrant to the rescue! In all fairness, the choice to use Vagrant was sort of a team decision. We have quite a few devs, and find a way for them to work consistently seems like the perfect use case for Vagrant. So for day-to-day work, I spin up the project specific VM using the Vagrantfile in the repo, then just pull in my dotfiles using homeshick. This workflow allows me to always work in a consistent environment, no matter where I'm working from (even from a Putty session).

GUI Gotta Go!

In my quest to find the ultimate dev environment, I decided that, optimally, I should only need 2 windows open at any given time: a terminal and a browser. In order to accomplish this, I had to find console based replacements for everything I currently had gui apps for. This list included:

  • Colloquy (IRC)
  • Mail (duh)
  • Pandora (yeah, I'm one of those people)

Irssi filled the first need nicely, as I've used it extensively in the past. I should have been using it anyway.

Mutt took care of mail. I still have Gmail running in a browser window for complicated attachments and alternate accounts, but Mutt is my primary mail reader, and it works great.

Pandora was a little harder, but I was finally able to get pianobar working, and working well. I was finally ready to commit to using the terminal to handle everything. The problem was visibility. Constantly switching tabs to check email or skip a song was becoming a huge chore. There had to be a better way. Then I remembered multiplexers.

Tmux is the new screen

I've been using screen for years to crank up long-running processes on servers, so my terminal wasn't tied up waiting for some 12 hour database rebuild to finish, only for the connection to drop at 99.7%, forcing me to start the whole thing over again. I had also used it to do some quick and dirty pair programming, but nothing fancy.

I rediscovered tmux, pushed through the initial pain of learning something new, and found the awesomeness that is true multiplexing.

Tmux is AWESOME!
Tmux is AWESOME!

It took some getting used to, and my setup would require a post all on its own, but I'm back to being productive again.