The major impetus for starting this blog was to have some record or guiding log, for myself and anyone else that might find it useful, as I journey through testing and learning new tech/software. While not premeditated as my exclusive focus, the vast majority of things I end up playing with are open source software. I’m constantly amazed by the great quality and amount of resources and technology available to just dive into. This is by no means an original thought, but just one that I wanted to get out there.
As I dive deeper it seems that just about everything that I come across and want to try is built on or utilizes an open source stack. Perhaps this is owed to the trend in some sectors of the library scene to prioritize open tech or perhaps a result of grant funded initiatives that greatly privilege projects that yield open code. Whatever the case, there is an enormous amount of freedom since everything I want to try is all out in the open begging to be run, poked through, and mashed together.
While the desire to try a little bit of everything, learning by doing, is unflagging, things can get hairy pretty quickly when digging into to the plethora of new-to-me technologies without expert knowledge of the underlying system or the initial patience to entirely understand the consequences. I’m a big proponent of learning while doing, specifically when there is such an enormous amount of things to try. Getting through the setup and having a live instance of whatever it might be to begin learning with is just irresistibly fun and rewarding.
A really fantastic tool that I have found to be absolutely indispensable is the Virtualbox application. Virtualbox allows for the creation of virtual machines running basically any operating system. The result is a complete and configurable additional system running as software from within the host system. A modest modern computer can run one or more virtual machines on top of the host system simultaneously. For me atleast, virtualbox lowers the barrier for experimenting to a level that it is almost impossible not to just go ahead and try something new every few days. While there are other pieces of software that offer similar and in some cases a more robust set of virtualization tools, Virtualbox is free, cross platform, and able to use a variety of vm formats from other programs.
It is great to be able to spin up a new virtual machine after hitting a dead end when taking a first go at a new set of applications or services. Instead of having to come to a complete halt and solve the issue, if even salvageable, a fresh machine or snapshot from the machine in a clean state, can quickly be put into action.
While the time saved and flexibility of not having to tie up an entire system just reloading an os to start over is a huge advantage, to me, the best part is being able to keep the “broken” instances around. Going back to a failed implementation to troubleshoot after getting past the issue in a new VM is instructive and helps reinforce what has been newly learned, helping to avoid the same mistakes when implementing in a more official/public/production type situation.
Coupled with the plethora of FOSS operating systems using virtual machines are also great to go out and try any number of different operating systems before committing to a full reformat. The ability to run a variety of different operating systems, specifically more specialized or uncommon systems that wouldn’t be a typicalchoice forhome desktop use, with a minimal amount of setup/downtime is in some sense intoxicating.
Beyond the direct experience, there can be no harm is gaining some familiarity with virtualization. With the advantages inherent in shifting to virtualized servers, not to mention the fevered pitch of buzz surrounding “cloud” solutions, running local virtual machines is a reasonable step towards deploying virtual machines in other settings.
So this may not be big news to anyone but I just needed to express my love for virtualization.