I use virtual machines to do a lot of my daily development. It's also how I log into my machine at work, as the VPN setup with the state is a bit invasive on the host machine (it has a lot of plugins and two-factor authentication to ensure the highest security).
Update: I have recently switched to VMWare Workstation because it supports sharing USB devices with the host.
In the past, I have used a lot of different VM hosts, including Microsoft's Virtual machine. However, over the past few years, I have relied solely on Oracle's Virtual Box, which is open-source and free for non-commercial use.
Well, the other day, VirtualBox refused to load ANY of my VM's. I installed the latest version, but I still had non-functioning VM's. After wasting an hour trying to get it working, I suddenly realized that I'm running Windows 10 professional, and it is compatible with Microsoft's Hyper-V technology.
So, after a few minutes reading up on it, I got it all setup and had new virtual machines up in no time. Since I'm a "Windows Insider", I was able to download the Insider edition of Windows 10 to run on the VM's.
"Many versions of Windows 10 include the Hyper-V virtualization technology. Hyper-V enables running virtualized computer systems on top of a physical host. These virtualized systems can be used and managed just as if they were physical computer systems, however they exist in virtualized and isolated environment. Special software called a hypervisor manages access between the virtual systems and the physical hardware resources. Virtualization enables quick deployment of computer systems, a way to quickly restore systems to a previously known good state, and the ability to migrate systems between physical hosts."
Then, I simply created a "master" VM with all of my drivers and base software installed and made copies to use for other development purposes. It's great to use VM's for development, because I can just spin up a new VM and test code. If something breaks, I can just delete the VM and clone it again.
I really like the way that Hyper-V's machine management works. Also, if I want, I can hook a machine up to the network and then push my image to "real" hardware, or even upload it to Azure to run in the cloud.
It's a very nice setup. It also lets me create virtual machines for Windows phones or other devices.
I have also created a Linux VM for testing the newest .NET core and Linux development tools from Microsoft.
As you can see, it has a list of all of my virtual machines. I can start and stop them from this dashboard. Once the device has been started, I can connect to it. The connection works much like Remote Desktop, yet it's on the local machine as a VM.
The hardware configuration is amazing. You can add additional hardware and even give the VM access to the 3D accelerator on your graphics card.
Ultimately, VirtualBox is the winner in most situations because it is open source and the fact that it runs on multiple operating systems whereas Hyper-V only runs on Windows operating systems. However, that's not an issue for me, so I've really enjoyed the stability and capability of Hyper-V.
When I was a teenager, I was a major nerd. Well, actually, I have been a major nerd for my entire life, but it really started to emerge during puberty.
On my exterior, I was a "metal head" who wore Iron Maiden and Metallica t-shirts, ripped up blue jeans (I don't think my father will ever forgive me for cutting up a perfectly good pair of new jeans so I could wear - this is so embarrassing - a zebra patterned leotard under it like some sort of Whitesnake poser. I only did it once, and regretted it for the rest of my life).
Anyway, awkward teenage clique memberships aside, I was into all things "computery" (as I had been since my parents bought me my TI-99/4A computer in 1982).
In Junior High, I bought a makeup kit that had latex appliques for your face that gave the appearance of a skull. It came on a piece of plastic that was shaped like a skull. By filling it with plaster (which I later replaced with a papier mâché alternative), I could get a skull shaped face.
I drilled holes in the center of the eye sockets and glued red LEDs to the insides of the holes. I then ran the wires to a AA battery pack, soldered it all together with a switch, painted them with a paint called "Fleckstone" (which gave the appearance of being made from granite) and gave them to my friends to hang in their locker.
I named it "Norman" (after Norman Bates from Alfred Hitchcock's famous movie, Psycho.
I also read a lot of computer magazines.
One day, one of my computer magazines featured an article on how to make your Commodore 64 talk. A light bulb as bright as a supernova lit up over my head and I immediately turned to the article.
I cut the parts list out of the magazine and asked my dad to take me to Radio Shack to buy the parts. My father was very frugal and did not part with money lightly. I remember one time begging (my memory of it is clear, I was extremely obnoxious about this) for him to buy me an ambulance GoBot (the long lost predecessor to Transformers). This persisted for a few days until he finally got tired of hearing me whine (sorry dad) and bought it.
We had a rule in the house, we only got gifts for Christmas, Easter, and our Birthday. There were a few exceptions from time-to-time (like a brief behavior modification scheme recommended by one of my teachers in elementary school when I stopped doing my homework (because I was spending all of my time writing BASIC programs on my computer after school) that failed miserably because my father believed that hard work was its own reward - and I'm glad he did, because it taught me, ever so brutally, that you have to work to survive in the real world). Incidentally, I ended up working hard doing EXACTLY the thing that kept me from doing my school work for all of those years - and it pays better!
So, my dad agreed to pay for the parts (thank goodness electronics parts (even at Radio Shack retail prices) are so inexpensive). My grandfather had already given me a lot of parts (he was a vocational high school teacher at the time and had a lot of cool stuff). One of the items my grandfather gave me was a capacitor from a microwave. When he gave me the box of parts (along with an awesome work/test bench that had a built in adjustable power supply and a breadboard), he pulled the capacitor out and specifically warned me to never hook that up to AC power. He said if I ever charged it to its full capacity, it would kill me upon discharge. So, I never even touched it (because I knew that I wasn't mature enough to fully understand how it worked). My dad bought everything that I needed for my project and we came home.
There was no Internet to refer to back then, so I had to figure out how to read the schematics. My grandfather had given me a "cheat sheet" that had the symbols and what they meant. I believe the magazine also had a small section on how to decipher the plans.
I got started right away. I built the circuit on a breadboard using the schematics in the magazine. The plans that came with the chip were slightly different, so I studied both to try and figure out why they differed.
I never could get the stand-alone audio amplifier working (using the well-known LM386 chip), so I took the advice of the author and ran the output pin to a hole in one of the input jacks on the C-64 for audio (probably the cassette interface). One of my goals for the near future is to get a working audio amplifier going with the LM386 chip (I got one with my starter box the other day).
The female plug that attached to the C-64 was too long and had to be physically cut with a hacksaw to make it the correct size. I also had to solder every single pin that I was using on it, then attach the leads to my breadboard.
This picture shows the SP0256-AL2 on a breadboard with an Arduino microcontroller
The magazine article explained that the crystal specified on the datasheet that came with the chip was extremely rare, so they offered up an alternative crystal that caused the pitch of the final voice to be higher than it should be.
Once completed, I began the arduous task of typing in the program from the back of the magazine that I could use to trigger allophones one after the other to make my computer talk. I then altered the code so that I could put in some common words without typing all of the allophones each time.
My best friend at the time was dating a girl and we (probably just me) decided to prank call her and have the computer say an offensive sentence. I remember it well, but the adult in me is preventing me from sharing due to its graphic nature. It wasn't too bad, but it doesn't bear repeating.
I still have that chip lying around on the same breadboard I used to make the project. I see it from time-to-time (usually during a move when we're packing boxes).
A few years back
Back in 2009, I made a "robot" for Laurie to use in the classroom for teaching special education preschoolers. I created it using off-the-shelf parts from Radio Shack and a little bit of soldering. It had a button on the back that lit up the eyes when you pressed it. It reinforced correct answers to questions. It was quite boring. I always wanted to print up a fancy sticker to put on the face and body, but never got around to it.
I recently ordered a bunch of components off of the Internet. Included in my purchases were 2 Raspberry Pi Zeroes. The Raspberry Pi zero is a full computer on an extremely small motherboard (~1 x 2 inches). It can run Linux and even has an HDMI output so you can plug it into a TV.
I also bought some other components to support my projects.
Last night, I spent about four hours playing with a 555 timer Integrated Circuit (IC).
It just blinks a light at a frequency depending on the resistance coming from the blue potentiometer. As I turn the pot, the light blinks faster or slower.
I tried to use a second 555 timer IC triggered by the output of the first so that I could have a light blink twice for every cycle of the first timer, but I couldn't get that to work before it was time to go to bed.
I then put together a simple circuit to help me learn how to use transistors. I used a momentary switch to trigger current through a NPN transistor to turn on an LED. That was fun as I never really grokked transistors when I was younger.
When I created my domain name in 1996, I had every intention of eventually writing about electronics (hence the name cerkit). Even though at the time, I used the name cerkit as a shorthand way of referring to the "Cerebral Kitchen.
It works both ways now as I can include non electronics stuff, as well.
Ultimately, all of my hobbies (as well as my 20+ year career experience as a programmer) are coming together in a symphony of exquisite mental pleasure.
I have been "cerkit" for a very long time. My BBS handle was "cerkit", and I use it whenever I can (someone beat me to it on Soundcloud, so I have to be "cerkit-music").
I like that it hints at electronics, but also allows me to be the Cerebral Kitchen, too.