I use an OSX system, and run OSX in a vmware fusion VM, and do all of my work there. Nothing is done in the host OS. I revert to the initial, clean snapshot daily.
I do this for security and privacy. My web history is not wiped by the browser, but is reverted to a clean OS install. Any malware that might infect the VM is cleaned out almost immediately. Further, I can quickly wipe my "system" prior to travel, or other scenarios where I lose physical control of the system.
So at any given time, all I have is a virgin OSX system with vmware fusion on it, and a single, virgin OSX VM. Of course this implies that my work and my data all live remotely, but that has been the case for almost 15 years.
Windows 8 ships with the Hyper-V hypervisor, and provided one's computer has a recent CPU, begins to fulfill the author's vision.
My solution was to run Windows and a very lightweight VM (~512Mb RAM) with a minimal development setup (Arch + emacs + Xmonad) which can be deployed anywhere. RAM can be expanded anytime to allow running heavy servers (such as MongoDB) but the light VM is usually just fine.
I also tried VPS servers on demand (Digital Ocean) + PuTTy on Windows to do remote development, but it isn't nearly as comfortable. Dealing with network waits (e.g. sending large file transfers) was awful, so I don't do that anymore.
I did this because I mostly use Linux for development and Windows for everyday tasks (maintaining a Linux system is tiring even with Ubuntu).
I thought about setting a dev server like you, but I don't want yet another machine in my room wasting space and generating heat. Light ARM systems (e.g. RasPI) might be a good alternative, but I don't feel like dealing with proprietary platforms right now.
It would be nice to get some suggestions on Minimalist/Lightweight Host OS to run VirtualBox. Lubuntu?
Why not have a bash compatible shell or at least built-in common programs like ssh and tar?? Even the "power shell" is pretty garbage and has a lot of legacy cmd.exe stuff in it. Where are the tabs!!!
Why not have a CMD compatible shell or at least built-in common programs like rdp and smb?? Even the terminal is clunky and uses bizarre archaic commands. Where is the gui!!!
Certain distros come with things like RDP and SMB bundled, and I've never met anyone who actually prefers Window's DOS shell (or whatever it is now) over bash or zsh.
There are sometimes GUIs, but for the most part it's just an extra layer of gunk (at least for me). I partially understand people's need for a GUI, but I just don't get it myself.
1. all details, functions, settings options, etc are explicitly laid out
2. I don't need to remember the command for a setting, nor look it up. I can change a setting with just a couple mouse clicks.
True, there are situations when these are both false, but a well-designed GUI will provide both of these benefits, and maybe even default settings. Enough to get a new user off the ground or enough to give advanced users a hint about why a feature doesn't work right.
The same is true for a well written man page.
> 2. I don't need to remember the command for a setting, nor look it up. I can change a setting with just a couple mouse clicks.
You still have to remember where the setting is located. You'll still keeping track of a piece of data, but instead of text it's location.
Rather than clicking around through a menu, trying to remember where a specific setting is kept in the GUI, I can open the config file, search for the option I want to change, and quickly adjust it. Same for options, opening up a man page and searching for keywords is a lot nicer, to me, than randomly choosing an option to see if it's what I want.
Plus, I really like tab complete, especially for files, and would rather use that than a file chooser.
I'm not saying it's bad for you, just that those aren't advantages for everyone (specifically, me).
Should the default be better? Absolutely. But this works for now.
EDIT: I just realized that I was doing the same thing as vagrant is doing, without actually knowing about it beforehand.
Gotta give a huge recommendation for Vagrant. Spinning up a VM is dead simple, and synchronisation between VMs is more or less automatic. Not sure how well it fares in Windows though.
I really enjoy using Windows, so much that I'm dual booting it on my MacBook Air. I find it particularly odd when web developers make their sites and web apps look better in a Mac than on a Windows machine since (being generic here) most users will be using Windows. This is mostly noticeably in two areas: colors and type. Both look very different between Macs and Wins.
"Internet Explorer: In Malaysia (my country), IE is the only choice if I need to perform Online Stock Trading (every brokerage use the same ActiveX app developed by the same company), and the same goes with some Online Banking."
The advantage is how easy it is to create a new VM under vagrant, just entering a few commands vs going through an OS install process.
Also most of the boxes are created with development in mind, so having a shared folder created automatically and a passwordless SSH login is a timesaver.
If you wanted a significantly divergent configuration from the base config you could just create a new box and puppet manifest. That way you can distribute your configuration to other developers if required.
You shouldn't need to customize the VM that much beyond installing tools required for the project, because the idea is that you still run most of your user-facing tools on the host OS.
Is there a particular use-case for Vagrant where
i) I already setup my VM environment
ii) Not much sharing or duplication of the VM environment is necessary
iii) I actually code within the VM, not just as production/testing environment
It's like a system-wide virtualenv.