"Works on my machine" used to be a punchline. Now it's becoming an anachronism, and Vagrant is a big reason why. After watching several teams migrate to Vagrant over the past year, I'm seeing patterns that suggest we're at an inflection point in how we think about development environments.
Category: Development Tools
Introduction
I've been using Git for a few years now, and while it's an amazing tool, the command-line workflow can be tedious. How many times have you done this?
$ git status
# On branch master
# Changes not staged for commit:
# modified: app/controllers/users_controller.rb
# modified: app/views/users/show.html.erb
# modified: config/routes.rb
$ git add app/controllers/users_controller.rb
$ git add app/views/users/show.html.erb
All that typing! Especially when you have deeply nested file paths. I recently discovered a tool called SCM Breeze that solves this problem elegantly.
I've been a long-time user of GNU Screen, and I've always recommended it to anyone working with remote servers. Screen is an excellent tool that's saved me countless times when SSH connections drop or I need to run long-running processes. But it has one major problem: it's tough to configure and learn.
Recently I discovered tmux, and I'm making the switch. If you're not familiar with terminal multiplexers or you're struggling with Screen's complexity, tmux might be exactly what you need.
Introduction
I've been a bash user for years. It's the default on most Linux systems and Mac OS X, and it works fine. But I kept hearing about Zsh (Z Shell) and how much better it is – better tab completion, better history searching, more customization options.
The problem is that Zsh is intimidating to configure. The configuration file can be hundreds of lines long, and getting it right requires deep knowledge of shell scripting.
Introduction
Every developer needs a good text editor. TextMate on Mac, Notepad++ on Windows, gedit on Linux – there are plenty of choices. But there's one editor that stands out: Vim.
Vim (Vi IMproved) is everywhere. It's on every Unix system, every Linux server, every Mac. SSH into a server and Vim is there. It's fast, powerful, and once you learn it, incredibly productive.
Introduction
If you're a web developer, you're probably using Firefox. While Internet Explorer still dominates market share, Firefox has become the browser of choice for developers. Why? Extensions.
Firefox's extension architecture allows developers to build powerful tools that integrate directly into the browser. These extensions can inspect HTML, debug JavaScript, test CSS changes live, and much more.
Introduction
Version control is essential for any development project, and for years SVN (Subversion) and CVS have been the standard choices. But there's a new player gaining serious traction: Git.
Created by Linus Torvalds in 2005 for Linux kernel development, Git takes a fundamentally different approach to version control. Instead of a central repository, Git is distributed – every developer has a complete copy of the repository. This might sound complicated, but it offers significant advantages.