I promised to write about the environment we created for the Rails Girls event. But first let me describe the problem.
Before the event we checked the installers provided by the official Rails Girls site. We had some major problems with those:
- the Windows installer is quite unstable, we had tons of issues when we tried that out
- we didn't want to overload the girls' machines, since we just hope that some of them will continue learning web development, but the others won't need those things any more
- there are better ways to install an environment on Linux/Mac machines
The biggest problem is related to Windows, so my advice is: forget starting web (Ruby) development on a Windows machine. You have to put limitless effort to install all the tools you need, but using them is also a huge pain, and problems will always come up while doing your job. So either consider changing to Linux/Mac or at least virtualize your environment. The latter is exactly what we did at Rails Girls.
If you don't know anything about virtualization: a virtual machine (VM) is a software-based emulation of a computer. Imagine, that you're working on a Windows, and you can start another operational system in a window without any trouble: it can be another Windows instance or any kind of Unix/Linux distribution.
So we were at the point, where we thought it would worth to create a VM for the event. But downloading an Ubuntu, and installing / configuring it manually is a pain again. Vagrant can be a solution for that. Vagrant is a wrapper above virtualization providers (currently VirtualBox and VMWare is supported), with which you can create preinstalled VMs easily. Vagrant can be configured in Ruby, it has a really simple DSL. But the fun-part is not only Vagrant itself, but the way it handles packages. Vagrant supports Chef (and also Puppet), so all the cookbooks created for Chef can be used, and configured easily.
Please find the Vagrant box's configuration created for the event here and check out Vagrantfile. As you can see it installs git, rvm, mc and other tools after the box is created. We didn't need any other service, but you can find uncountable cookbooks for all types of 3rd party libraries, check out the site for the full list here.
We were ready with the VM, and we could use that on OS X and Linux without any issues because we could SSH into the new system. But the console what we get in Virtualbox is useless, it doesn't support your own keyboard layout, can't handle pasting, and so on. These problems don't appear when using SSH, but Windows doesn't have a builtin SSH client. Surely you can install Putty, or whatever is out there, but it's a pain, and it hardens the usage of the environment, and for the Rails Girls event we wanted one which is easy to use & install. So we had to figure out a way how our users could use the VM. We nearly gave up, but Guszti came in the office one morning, and told me the solution: Butterfly. It's an awesome tool written in python, which enables you to reach your computer's command line from your browser. So the idea was born: let's install Butterfly onto the Rails Girls VM. After the event I can say it worked like a charm, and without any issues.
So if you'd like to try out Ruby / Ruby on Rails development, but you don't want to install a lot of tools on your machine, I recommend using the VM we created. The Hungarian install documentation can be found here, and we also translated that to English for the official Rails Girls site.
If you have any issues/questions, don't hesitate to contact us, we gladly help if you are stuck!