|
OG's internet is still down
|
|
|
|
|
|
Remote access is an amazingly helpful tool until it is "Offline" at the worse possible time.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Not that I have anything else to do this morning, I installed When on Virtual Box, was unhappy with it and tried again with VM Workstation. Much better performance, mouse less sluggish.
But it caused me to think about the wonders and possibilities of using VMs to protect onself from catastrophe. I'm a consultant, and I image my main working laptop drive weekly. I cannot afford the time to re-install all of my software. But playing with VMs this weekend - suggests just using a VM to begin with, keep all work in container files and let the native OS just be a very limited native OS.
How many of you follow this approach? The performance seems acceptable, especially on my Xp VM.
I use Win 7 Pro 64bit day to day. Thought I might have to re-install everything into the new VM, but no, vmware provides a nifty utility to just pull it in to the new container.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
I do use - extensively - VMs...(Virtual Box actually )...
I have a host OS (Fedora) that is very limited in usage (e-mail and browsing), for anything else I have VM - SQL, Visual Studio and so on. I turn on and off those VMs as I wish and as I need...
The best part is when updating hardware - host OS is up and running in 2 hours max, from there to 'install' other OSs is a simple copy-paste with a minute of re-connecting them to Virtual Box...
I'm not questioning your powers of observation; I'm merely remarking upon the paradox of asking a masked man who he is. (V)
|
|
|
|
|
charlieg wrote: How many of you follow this approach? The performance seems acceptable, especially on my Xp VM.
I tried this a couple years ago and found the mouse and keyboard delay to be just a tad too noticeable and thus rather annoying. I haven't tried it since I upgraded my machine to an 8 core 16GB all SSD system, except that I have to run Ubuntu in a VM (using Oracle's Virtual Box.) There's still the "mouse just isn't snappy enough" but then again, I detest the UI that Ubuntu comes with. Whoever thought that a window's scrollbar should be hidden, requiring precise hovering over just those few pixels on the edge of the window so that the scrollbar pops up, and then it's this ridiculous slider thing, well, that person should be banned from UI design.
But I digress -- I do indeed completely agree with your point, but whenever I've set one up, I seem to never use it, mainly due to lack of discipline.
And then I get into the scenario of, oh, I need a custom control, let's download the code from this article, nope, not quite what I had in mind, let's try this one, etc., or even worse, doing that with third party software, and I'm not disciplined enough to do it on the main OS, so I end up polluting the VM instead. Of course, I could have saved an image before trying a bunch of options, but again, that's a discipline.
I figure I might try this again and, having failed at this a couple times and learned valuable lessons regarding the care and feeding of one's VM, put those lessons into practice. Discipline!
I should try VMWare again as well. The Virtual Box / Ubuntu combination pisses me off because copy and paste between main OS and Ubuntu doesn't work on one VM I use, but does on the other (probably because one is 64 bit Ubuntu and other is 32 bit Ubuntu) but copy and paste is essential because of klunky the tools are in Ubuntu.
That said, the other thing that I find really helpful is the ability to network into the VM from the main OS -- I would definitely recommend that, either mapping a drive to the VM (for Windows VM's) or WinSCP'ing into the OS (for *nix OS's, PuTTY is also your friend in that case.) It's a huge timesaver to have your VM open but be able to access files from your main OS.
And lastly, put everything valuable under source control, which is a great way to sync between the main and VM OS's. Which of course requires a private repository for private stuff. Options like DropBox, GDrive, etc., suck IMO, for my work process (too slow to sync, added bloat-ware running in the background, etc.) and furthermore, I don't trust that Microsoft or Google isn't looking at my stuff or that we'll read some day about some massive DropBox security breach.
So, long post, hopefully some helpful pointers from lessons I've learned.
Marc
|
|
|
|
|
Marc Clifton wrote: Whoever thought that a window's scrollbar should be hidden, requiring precise hovering over just those few pixels on the edge of the window so that the scrollbar pops up, and then it's this ridiculous slider thing, well, that person should be banned from UI design.
+1 ... that's one of the reasons I prefer other desktops over Ubuntu's Unity ... and thus use Kubuntu instead (i.e. KDE desktop pre-packaged into Ubuntu without any Unity / Gnome stuff).
As for the sluggish mouse ... don't know ... wasn't that way for me: Kubuntu 64 host OS, VirtualBox with Wen 64 as client OS. Mouse worked seamlessly - just unfortunate that VB's drivers hasn't been updated for Wen (yet), thus 3d programs were less than acceptable while they work reasonably in a client W7 (not great but not causing hair pulling).
|
|
|
|
|
irneb wrote: and thus use Kubuntu instead
Thanks! I'll take a look at that.
Marc
|
|
|
|
|
Just to advise: I like KDE not because of its looks but more because it's so damned customizable. Actually it looks like what W8 should've been as an upgrade of W7's UI.
If that one's not for you, there are various other desktops available for Ubuntu. From Gnome 2 or 3, through Lxde (like a very light weight XP) or Xfce (light-weight OSX lookalike if you customize it a bit) through to several others: http://www.howtogeek.com/163154/linux-users-have-a-choice-8-linux-desktop-environments/[^]
You also don't need to uninstall Ubuntu to try out another desktop. You can install a new desktop from the Software Centre and then should have an option in the login screen. I just don't like wasting several megs of my SSD on something I'll never use.
|
|
|
|
|
irneb wrote: You can install a new desktop from the Software Centre and then should have an option in the login screen.
Ah, wonderful. I was wondering about that, did a little research already and didn't really want to create a new VM.
I've used Lxde with the Beaglebone, it's definitely really nice to have different desktop choices, it's something I wish Windows provided.
Marc
|
|
|
|
|
Virutal?
All the Ebola news may have gotten to you.
|
|
|
|
|
I've switched to using VMs pretty much exclusively years ago and haven't looked back.
My VM host (one of the first i7 CPUs of the Sandybridge generation) has, quite literally, nothing installed on it, except for some motherboard drivers and TrueCrypt (the external drive I back up the VMs to is encrypted). I don't bother backing up the physical machine's OS as it can be reinstalled from scratch and running well within half an hour.
The VMs are on a separate physical drive (well, a RAID array in my case, but any drive will do). If something bad happens and I have to replace some hardware, none of the VMs are impacted in any meaningful way--the worse I've seen is that I've had to reactivate some Windows instances. I had to replace the motherboard at one point; earlier this summer, I moved from Server 2008 R2 to Server 2012 R2. In both instances, I just reinstalled the OS, the drivers, and any available update. I recreated the VMs (specify how many CPU cores, how much RAM, etc), and pointed them to the existing VHDs on the RAID, and they're all back up and running. I know you can backup those VM definitions from somewhere, but it's so quick to re-do that from nothing I've never looked into it.
The machine is physically located in another room in the house. I RDP into the VMs from the rather modest system I have sitting on my desk; its most notable feature is that it's hooked up to three monitors; there's otherwise nothing special about it. It also hardly has anything installed on it, as I spend my days in RDP. I can access any of these VMs from a desktop system, a laptop, heck anything that supports the RDP protocol like a tablet running Windows or Android (I know MS also has a client available for the iFruits, but I don't own any). Point is, I can access my fully functional machines from any number of devices.
I have a separate VM for every version of Visual Studio from 2005 to 2013. Most are always powered off, but ready to go at a moment's notice. If I need a clean IIS or SQL instance with nothing else, it gets its own VM. I have one VM dedicated to testing crapware I'm not familiar with and might not necessarily trust yet--that goes a long way to keeping your everyday machine(s) in a pristine state. I have VMs for testing my apps against all of the older Windows versions I care to support, and a few Linux distributions just to tinker with (I'm not heavy into Linux, but most of the popular ones I've used work without a hitch on Hyper-V).
Backups are simply done with a script invoking robocopy.exe, which is smart enough to skip over VMs that haven't been powered on since the last backup was done.
I have clean VHD files with nothing installed on them except for the OS (from 2000 to this week's Windows 10 Technical Preview). Getting a new VM up and running is just a matter of copying a VHD file to the "live" VM drive, specifying how much RAM I want to give it, renaming the machine once it's up, and it's pretty much good to go.
IMO, as a developer who's spent way too much time doing IT tasks and rebuilding machines from scratch before virtualization became mainstream, there's just no other way to work.
modified 5-Oct-14 12:56pm.
|
|
|
|
|
Excellent post. <-- gerbil test
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Okay, gerbils like IE on Windows 7. IE on When always results in chattering from gerbils.
How do you handle all of the licensing for your different machines? Windows of course, but it smells like you have MSDN or something.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
charlieg wrote: How do you handle all of the licensing for your different machines? Windows of course, but it smells like you have MSDN or something
Yeah, I have an MSDN license. I believe MSDN gives you some additional leeway as a developer in how you use the software you have access to. In that sense, I don't think of any of my VMs any differently than I would for physical machines.
|
|
|
|
|
Very impressive. I like your idea of RDP'ing into the VM's.
Marc
|
|
|
|
|
As you wrote in your original post, it all comes down to discipline. Once I got the hang of it and stuck with my own set of best practices, everything became a no-brainer.
One warning though--spinning up new VMs for different purposes quickly becomes a habit...I original bought that machine with 8GB of RAM, then quickly moved on to 16, then 32, and I'm now wishing that it could handle 64 (this is all consumer grade, off-the-shelf hardware).
|
|
|
|
|
dandy72 wrote: my own set of best practices
Sounds like the makings of an article to me!
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
The windows world is pretty far behind on that front. With Linux there is vagrant[^] to make managing virtual machines much easier. I'm just starting to get up to speed on it.
For application deployment, there is docker[^], where you can virtualize just the files and apis for a specific application. I haven't started looking into it, just reading up on it right now.
It looks like vagrant added support for windows guest oses with the latest version. https://www.vagrantup.com/blog/feature-preview-vagrant-1-6-windows.html[^]
|
|
|
|
|
very interesting stuff.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Vagrant runs on Windows as well (I have it installed, just haven't worked with it yet.) It looks quite cool, and is written in Ruby.
What do you get when you cross a joke with a rhetorical question?
---
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
|
|
|
|
|
I used a vagrant setup by a coworker to create an Unbuntu VM to host a rails project I worked on earlier in the year. Other than some startup snafus (mostly caused by a default changing between when my coworker learned it and I installed it for that project) it worked great. Much easier than my trying to config a VM by hand would've been.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
It's a very good approach.
I use a virtual machine for Linux building, with the mass of environment variables set up months ago.
It lives on a Windows 7 machine and enables me to exploit limited resources(KVM switches and desk space being rare and costly)with a couple of clicks.
It also allows me to tweak the build environment without breaking any other projects I have on the go.
And of course, imaging the the master file makes it disaster proof.
|
|
|
|
|
I too have been doing this. I was frustrated that I would have to reload my PC every six months or so.
I tried a VM as my main dev machine about a year ago, and the experiment failed. It was way too slow.
I decided to try again a couple of months ago. The main difference this time is that I am using a dedicated SSD drive for my virtual machines.
My host system is a 3-year old i7 with 16GB running Windows 8 Pro. It has all of my portable apps for email, browsers, etc., but almost nothing installed.
I have my main dev VM that includes every conceivable version of VS (I work on a lot of legacy projects), Ghostdoc, resharper and all the other goodies. It uses Hyper-V.
Projects that are big, require isolation or another OS get their own VM. Currently I have a legacy project that is running in a VirtualBox VM with Windows Server 2002 and Visual C++ 6.0.
My comments so far
* Sometimes there is a little lag, but with the VMs on an SSD it is tolerable
* I'm sure I can use multiple monitors with VMs, but I haven't tried. Sometimes it would help.
* When using Hyper-V, connect to the client through RDP, not the Hyper-V application. It's more responsive, and you can cut/paste files between VM and host or even between VMs.
* VirtualBox lets me cut and paste text, but not files.
* VirtualBox has more modes. e.g. Seamless mode is pretty cool.
* In a pinch when I needed to run a second copy of a VirtualBox VM on another host, it worked on my i5 mini-Mac without problems
* Xamarin works fine inside a VM
* You CANNOT run the Windows Phone emulator (which is a Hyper-V VM) inside a VM. (Learned the hard way)
* I'd like to try FreeBSD (my preferred OS) as the host, haven't tried yet.
* OSX will run inside a VM, not for the faint of heart
* Another recent project required interfacing with a PciE Digital I/O board, which can't be accessed from VM.
|
|
|
|
|
I work for a consulting firm and when I can do development on my employer's laptop rather than using a client provided device, I always spin up a VM and install any required software. I often have to use client-specific VPN software, and running it in a VPN keeps it off my employer's machine. It also makes clean up easy after I complete a project.
|
|
|
|
|