Lately I find myself working from about three different machines, all in different locations. I'm doing mainly RoR work and as such, setting up development environments on each of these three machines and keeping them relatively in sync is quite a pain.<p>I've been tossing around the idea of running an EC2 instance with Ubuntu on it, getting it set up to use as a development desktop and remoting in with NXWindows. As far as practicality goes, this (in theory) should work rather well, but I'm open to other ideas for doing the same sort of thing.<p>Has anyone done something similar before? Any tips, recommendations, etc? Thanks!
I develop using 3 different computers every day. My work laptop, my personal desktop at home and my personal laptop. This is the setup that I find myself using most often - even with my laptop:<p>1. Eclipse (with Aptana plugin, remote system explorer plugin) on all computers
2. Github hosting my project repos
3. Two personal linux servers. One at my apartment on my personal internet and the other in the cloud<p>With those three things, I am able to SSH into whichever Linux server that benefits me most at the time and pull my most recent code from Github. I usually SSH into my cloud-based server if I am not at home, otherwise I SSH into my home server over the LAN. Once I have the most recent repo cloned then I just use Eclipse-over-SSH to connect to that Linux server and edit the code.<p>This setup works great for me. It's awesome because it's the same editor on all different computers of mine - one being a MBP, the others Windows. I also don't have to install all of my dev related tools, such as databases and stuff, on my main machines. Also, I can leave my sites running, for testing, on my linux servers while the rest of my machines are turned off.<p>Granted, prior to this I used to just SSH into the servers and use Vim for everything. :P
I tried a similar setup remoting into a virtual windows machine for awhile and ultimately abandoned it because of latency. I didn't fully realize what a difference a small amount of latency could make until I went back and it'd take a lot for me to try it again. So my recommendation is to make sure it's very comparable in terms of performance because the development time you can lose from latency will dwarf keeping machines in sync and may even go unnoticed for awhile.
I personally use vim and svn when I work. Keep it simple.<p>When I know I will continually have internet access, I will ssh to my server and launch vim instances within `screen'