However, Cloud9 is much more convenient since it runs entirely on browser but VM solution could work in case C9 discontinues its free tier.
However, Cloud9 is much more convenient since it runs entirely on browser but VM solution could work in case C9 discontinues its free tier.
My department tries this occasionally. It fails because students either have
a) cheap pieces of shit with unreasonably poor performance under virtualization (I'm talking multiple seconds to bring a different window to foreground under Ubuntu)
b) Retina MBPs, on which Linux has absolute garbage text rendering due to quarter-assed (half-assed is giving it too much credit) per-application support for high-DPI displays. Staring at code for hours is hard enough when the code isn't blurry.
The department runs a Linux lab in one of the libraries with professionally maintained Ubuntu installs that already have everything professors request for their courses, and provides SSH access to those machines.
An interesting side effect is that you either get good at configuring your environment for yourself (to use your own Mac or Linux machine) or you learn to work with just a terminal (use Emacs/Vim and Bash over SSH).
Developers with tech jobs should also be able to afford high end machines.
It's totally worth it, if your employer will allow you to work on your personal machine at all.
Interesting that for me it was the startups that provided good machines while the enterprises provided 4 years old lenovo laptops with not so good batteries not the specs needed to use a VM effectively
Yeah, well, I'll just add that to my (very long) list of reasons never to work for enterprise companies.
With Cloud9 they can develop on any computer they have access to, whether their's, a friend's, or even one at the public library. It is just one less barrier to being able to engage people.
I've run into the use case while traveling abroad where I don't have a computer (out of paranoia / lack of security).
Internet cafés are everywhere but setting up the perfect dev environment takes so long... so far it's made development fairly impractical, especially because they're often very old Windows machines. I've had good experiences with C9 so far, though I'd like to see how it pans out under that use case.
It is a Not Unreasonable (TM) time investment to automate setting up your dev environment in the way you would a prod environment. emacs.d and other dotfiles in source control, masterless Puppet or Chef on your laptop, etc. If you're willing to go as far as installing Vagrant manually, the rest can be made pretty easy.
Of course, this works too.
BTW congrats to the Cloud9 team. They made a great product and selling to Amazon will ensure it lives on.
Here's how it works: the professor prepares an Ubuntu VM with the entire development environment set up inside it, and then just provides the image link for the VM. The students can easily install VirtualBox, and then all they have to do is download the image and run off that.
I have VMs on an external hard drive that are accessible to me via Windows and Ubuntu (fairly sure I've accessed them on my MBP as well, not sure). I'm using VirtualBox, so I set up the initial connectivity stuff, point at the existing vhd, and then I'm running right along by launching the VM.
We've written about our setup in https://www.andysayler.com/output/pdf/csvm-sigcse14-paper.pd....
The website for our current VM is at http://foundation.cs.colorado.edu/vm/.
Where feasible, I think the "code locally, run remotely" concept works quite well, especially as most IDE's support at worst FTP upload.
With students that had less than performant laptops, C9 filled the gap.
it even works fine over ssh, over vpn, over the internet, over 3g, in an airplane!
it's turtles all the way down.
Evidently there are a number of restrictions placed on the source code that prevent this from being the case. There was a Reddit discussion about it at the time:
https://www.reddit.com/r/programming/comments/2vvs7i/cloud9_...