My Journey to Linux & OSS for Hacker Public Radio

I recently recorded and submitted my first podcast for Hacker Public Radio, which is something I've been planning to do for several months. I figured I might as well dump the transcript to the blog as well for those who don't subscribe to HPR and/or are allergic to audio. Telling the tale of how you came to be an active user of Linux or open source software has become the de facto first show topic, so here's my story.

Early Years

The first computer I ever owned was purchased second-hand from a local company who had recently upgraded their systems. It was a second-generation Intel Pentium system with precious few system resources. But it was mine... all mine. I played with it for a few months trying out different configurations, different software packages and of course different operating systems. I pretty well tried every OS I was familiar with - Windows 2000, Windows ME, Windows 98SE, Windows 2000 Server, Windows NT...

Anyways, after a few months of running it in its default configuration I became curious about Linux. I had seen the distro CDs attached to magazines and the back covers of “Linux for Dummies” books. I picked up a copy of Red Had Linux for Dummies and began my triumphant march into the world of open-source software.

Well, maybe it wasn’t so triumphant after all.

I was able to get the system to install but I had trouble getting it to recognize anything more than the most basic hardware. After a couple of hours I had a working system, with no network card, no sound card and no webcam. I poked around for a while but before the night was over, I was back into Windows and my Red Hat partition just sat there taking up space for a few months.

I tried off and on over the next year or so to get Linux working the way I wanted it. Red Hat 7 had drivers for my NIC and once I got online I was able to get my sound card working (no thanks to a half dozen people telling me to RTFM but not telling me where to find the m). Ultimately though, I didn’t find that Linux was going to suit my needs. As much as I enjoy a project I didn’t feel like I wanted to spend all my time just trying to get things working.

It would be years before I made another serious dive into the Linux world.

The Interim

While Linux wasn't for me, at first, my interest in open-source software had been piqued. I soon discovered that there was a great deal of free software available for Windows as well. Sometimes you hear the long rants of people who try to insinuate that if you buy a computer with a proprietary OS, you're also then stuck paying for your expensive proprietary software as well. as most of us know, that really isn't the case. Whether it was the days of shareware and freeware available from all sorts of places during the 90s, or the days of open-source software in the 2000s, there has pretty well always been a way to get free or very low cost applications for nearly every platform.

A quick aside: when I say "free" throughout this podcast, I'm only speaking monetarily. I'm not going to make the distinction today between "free as in beer" and "free as in freedom". It's a complex issue that I just don't have the time (or the patience) to get into today.

I began to really enjoy playing with various kinds of open-source software. Some of these are things that most of us are familiar with, the Firefox browser for one. Other applications that I picked up during this period are things that I continue to use to this day on the various platforms I interact with on a daily basis like Audacity. There are even a couple of open source apps that are only for Windows like Notepad++. There are even large corporations making light versions of their software available for those who can't afford or can't justify spending hundreds of dollars on a large commercial software package. Microsoft has been offering an express edition of its Visual Studio software development tool since 2005. While it doesn't have all the bells and whistles of the commercial product it's a very serviceable IDE for students and hobbyists.

As my usage of the Internet grew and grew through the 2000s I began to vary the technologies I use even more. I signed up for a web hosting account in 2005 with a company that provided me shell access to my shared hosting server. The server, running on CentOS, allowed me direct command-line control over some aspects of my hosting service. This became the first time I was able to use a linux machine effectively.

The Slider

Not long after this initial exposure to a practical Linux implementation that I could make use of and really enjoy, it was time for a new computer. I decided that it was time to move myself to an OS that had a nice terminal interface that I could use just like the one on my shared web server. One based on a foundation of a free UNIX based OS. I speak, of course, of the Mac. Despite my recent positive experiences with a server-side Linux implementation I wasn't prepared to hand over my desktop to a Linux system.

I was, however, prepared to start offering Linux a role on the server-side of my computing life. I was in need of a file server, and a LAMP server to use for testing/playing so I decided to re-stage my old Windows desktop as a server running Ubuntu "Feisty." In truth, this was probably more of a "test" server than a "production" server. By that I mean that I never really did entrust any of my data to it, and other than holding backups of data from the Mac and Windows machines in my home, this machine did little else. It did however set very important ground work that would be added to down the road.

As I mentioned in the introduction, I'm a software developer in my day job. My primary experience with software development is on Microsoft's .NET platform. I've written code in several other languages over the years, PHP, Python, C and Java, but I work primarily with .NET in my day job so it was easy for me to turn that direction when I wanted to begin working on more software projects in my spare time. Since it's easiest to work with that platform on Windows, I decided it was time for me to get a second computer, a desktop machine running Windows 7 that I could use for building applications.

Due to the age of my Mac, this became a second "primary" machine. I would use the two of them interchangeably and would need to move data between them fairly regularly. I had tried using the older Linux PC to handle this task, but at this point the machine was nearly a decade old and was starting to experience hardware issues, and the old 80GB IDE hard drives were getting a bit long in the tooth for me to have much faith in them. For the first year I ran the Windows desktop with some file shares open that I used when I needed to share data between the Mac and PC. As the year wore on, I found that I was doing less and less development work on the Windows box, and more and more web-based work from my Mac on the CentOS web-host. It was time for another shift.

This began my great Linux experiment. I had become very familiar with Ubuntu in virtual machines over the past few years. Listening to shows like the Going Linux podcast I kept hearing all sorts of good things about peoples' experiences with Linux as a desktop OS. Having done my stint with a Mac I figured it was time to take another shot at using Linux on the desktop since things had undoubtedly improved during the intervening decade and my initial problems with RedHat would no longer be an issue. For the most part, that was exactly right.

I had initially planned the project to be three months long, but as I detailed in the extensive blog post I wrote at the time there were just too many issues for me to cope with. Not all of these were technical. To be fair some were the result of a major shift between platforms. But ultimately I decided that a Linux machine just was not a good fit for me as a primary desktop machine and the experiment was cut short after only three weeks. While it was very clear that you could do anything on a Linux system that you could do on a pre-installed commercial OS like Windows or OS X, many of these tasks required more investigation, adjustment, tweaking, learning, failing, re-doing, frustration and most importantly time than I was willing to commit. That may not be consistent with the hacker ethos but it was simply the way I felt at the time.

What I didn't do was switch that machine back to Windows. I learned something very important about how I use computers. I needed a server. A good one. Something reliable, with a wide variety of software packages that could do the specific things I wanted. And I wanted something that could run with a minimum of overhead leaving all of the system's resources for the services and applications that it hosted. For me, Linux is almost purely a server OS.

I've now been running a Linux server in my home full time since the conclusion of the experiment in 2010. The original server hardware has been donated to a family member and I recently did a server build (my first in nearly a decade) to assemble it's replacement. It performs a number of services and tasks which keep things running smoothly and provide me with peace of mind as I carry out my day-to-day activities in the digital world. I may take the time to detail these in a future HPR episode. I have also changed hosting providers and now have a dedicated VM running Debian to host the various websites that I'm involved with... but that's another show.

I remain confident that the day will come when a Linux distribution will truly challenge for a spot among mainstream desktop PC operating systems. Until then I couldn't be happier with the performance of Linux as a server OS.