What Open Source Means To Me
April 2, 2012 2 Comments
Sorry it’s taken so long for me to write. No real excuse, just been busy and this whole blogging thing is somewhat alien to me. I’m used to 140 characters at a time, so this is new for me.
Anyway, I wanted to write about why I care about Open Source. I was introduced to Linux back in 1995. I worked for Unisys, on contract to Microsoft. Microsoft hired five outsource partners to build a support infrastructure around the release of Windows 95. I was part of a team of five of the finest folks I’ve had the pleasure of working with who were tasked with learning everything we could about the Microsoft way. We flew to Microsoft’s Dallas offices and learned about Microsoft culture, Microsoft’s support philosophy, and of course, the technology. You might be surprised to hear me say that it was one of the best experiences in my professional life. I loved the folks with whom I worked, I loved the technology, and I was very impressed with what Microsoft taught us about their customer service and support. It was quite good – there was a huge emphasis on delivering the right answer – the first time – with a keen eye on customer satisfaction. I have to admit, I drank the KoolAid. I loved working for Microsoft through Unisys.
Anyway, there was a kid on our team named Tim who kept talking about this Linux thing. He kept talking about how cool it was, and how flexible and powerful it was. I, having drunk the KoolAid, was downright disdainful. I just knew that Unix was dead, and that Windows was the wave of the future! Finally, after hearing him blather on about this Linux thing, and being totally unable to get him to JUST SHUT UP, I finally told him I was going to set up a Windows NT 3.51 server and PROVE to him that Windows was as superior platform to this Linux crap. I knew nothing about Unix or Linux, so I went to my favorite book store, and I found a book called Linux Unleashed. It came with a CD with Slackware Linux, and I got started. I’ll never forget the experience of installing Linux. It SUCKED. I was a DOS and Windows user, so when the book told me to use fdisk to partition the 40MB (yeah, that’s 40 MEGABYTES) drive, I was lost. It was nothing like the “real” DOS fdisk I was used to. The interactive help was less than useless. It confused me more than it helped. And I had to create a partition for swap??? What the heck was THAT all about? Windows used a page FILE, not a whole partition! Madness! Then came the package selection. I could chose from these horribly described groups, A’s, B’s, G’s and X’s or some insanity like that. It was awful, and completely non-intuitive. I must have restarted the installation 10 times. When I finally got the installation done, the system rebooted, and I was faced with what looked like a DOS screen with a login prompt and not a damned thing else. I was completely nonplussed.
I read more. I got logged in, and then read that I needed to configure the windowing system, XFree86. I read through the instructions in my trusty book, and read the warning that if I did it wrong, I could destroy my monitor! Are you kidding me? This stupid thing can actually damage my hardware? Seriously?
So I did research about my video card and my monitor and got what I thought was the correct settings, and I ran through the X configuration utility. I held my breath when it got to the part where it tested. I was FULLY expecting a pop and a puff of smoke. It didn’t come.
I followed the instructions and fired up X. I was presented with what was at the time, the standard desktop, OpenWin. It was super basic, and not terribly attractive. I spent days learning my way around, grumbling about man pages being waaaay too technical and not instructional enough. I griped about using a text editor – A TEXT EDITOR, FOR HEAVEN’S SAKE – to configure the machine.
The turning point came when I configured two network cards on my new Linux box. I had one connected to the ethernet port on my ISDN router, and the other connected to my local network. I figured out that I needed to make a change to the kernel to enable routing. I made the change and it didn’t require a reboot. I was absolutely floored. NT required a reboot if you made changes to routing. Or to the IP address. Or, heck, the font size! NT needed to be rebooted at pretty much any change. Linux? Not so much. That was when I started to turn the corner.
I installed software via the awful package management system that came with Slackware, and then I learned to compile software from source. That just blew my mind. That the source code for all these apps was out there, for free, and all I had to do was go download and install it. I set up Apache (I can host my own web page! Oooh, the blink tag is AWESOME!). Then learned how to set up Apache with SSL, and building all the prerequisites and then building Apache against them was just awful. Then I built Samba (holy cow, I have a fileserver for my Windows machines and it doesn’t cost anything!) and struggled through configuring it. I learned, through MUCH more error than trial, how to configure Sendmail (hey, I can host my own e-mail!). It was terrible. And wonderful. I was learning so much… It was painful, and confusing, and exhilarating. I felt like a teenager falling in love for the very first time!
Initially, the ethics of Free Software didn’t really mean anything to me. It was just cool that I didn’t have to fork over my hard-earned cash for the software. That was insanely cool. I really loved that. Then I discovered Usenet, and got to know the folks in the comp.protocols.smb group. Then various Linux groups. It was amazing that the folks whose names I saw in the code were right there, and I was talking to them! I shamelessly consumed from the community. I saw folks giving of themselves freely, and it finally started to sink in. I remember what an amazing feeling it was when I was finally able to actually answer a question on Usenet. That was when the idea of being a part of a community really sunk in. I started to understand what the Free Software Foundation was trying to do with the GPL, and it totally blew my mind. Sharing code, sharing knowledge, sharing ideas. It was life changing. I knew, as someone with no ability to write code, that I could never contribute the way I respected the most. So, I made it my mission to spread the word and be helpful. This aligned well with my personal life. As a recovering alcoholic, I’ve learned that being of service is quite literally life-saving. Keeping out of my own mental garbage by focusing on others has kept me sane and sober on more occasions than I can count. Eventually, after using and promoting Linux and Free Software throughout my career, I wound up working at Red Hat. It was really a career holy grail.
Someone recently asked why I am so passionate about Open Source, and specifically about Red Hat. The answer is pretty simple. I can point to concrete things like the One Laptop Per Child project, where Red Hat contributed code to run some laptops which wound up in the hands of kids who would otherwise never have had access to that kind of technology. I can point to abstract things like questions on mailing lists from places on the planet where I know that the only way the person asking could afford technology is to use free (as in beer) software. It’s nice that it’s also Free (as in speech) as well.
The funny thing is, I often feel like a total fraud. I’ve always felt like “real” contributors write code. I am not a coder, so I do documentation and presentations on using the software. I constantly evangelize. I answer questions on mailing lists. I help sell the technologies and services that Red Hat offers, and Red Hat contributes code and other resources back to the community. So even though I can’t code worth a darn, I hope I am making some small contribution, and I hope I am enabling my employer to do that heavy lifting.
I believe that somewhere there is a child who is sitting in front of a computer, learning this technology, feeling the giddiness and frustration I did so many years ago. I believe that that kid will have skills and knowledge that normally he or she wouldn’t have access to, because of the power of this Open Source community. I believe that that kid will be able to raise himself or herself above his or her circumstances, make a good living, and support a family. If I can be even a tiny part of that success, I am completely satisfied with the decisions I’ve made in my life and my career.