This document discusses the author's experience developing Ruby on Rails applications on Ubuntu and the issues they encountered. It then explores using virtual machines and vagrant as alternatives. The author tests VirtualBox, VMWare Workstation, and vagrant. Vagrant provides portable development environments using configuration files and industry standard provisioning tools. The author finds vagrant useful for ensuring environments are consistent between computers. The document also introduces puppet as a provisioning tool that can be used with vagrant to automate installing software and configurations.