Wednesday, November 7, 2012

Reflecting on 14 years of free software

14 years ago last month, I created my first PGP key to sign up to be a Debian developer. I recall what brought me to that place. I had been trying to improve my skill-set for my resume and wanted to learn to program.

Considering Linux was free compared to development software on Windows (and it ran on my Pentium 90MHz CPU when BSD didn't), it was an easy choice. However, I had no idea what I was getting into.

At the time, I was on a steep learning curve. This command line thing was nothing like the Apple //e BASIC prompt I was used to from my youth, and not even close to Mac/Windows. I was literally reinstalling my Linux OS 2-5 times a week because I would dig around into things that I had no business checking into. I tried several distributions of the time including RedHat, Slackware and Debian. I settled on Debian because it had the largest software repository, and I wanted no limitations to my journey into the realm of a software developer.

Back then, configuring my network meant first configuring the serial port and modem and then PPP and related software, in addition to chat scripts (used to provide username/password). Luckily I worked as a web designer for a local ISP, so the *nix gurus there gave me plenty of help.

As happens with free software, it isn't too long before you start finding "bugs." These annoying little things that stand in the way of you and your Linux Adulthood. At first, you just kick it around, try to avoid irritating the little thing, but eventually, you find yourself on IRC or a bug tracking system trying to find help.

I immersed myself into providing feedback to hackers and coders to test what could be wrong with my system. Surely, I thought, this was not just a problem I was having but sat amazed at how intuitive these programmers were and how steadfast in wanting to help me fix the issue. Their tireless efforts inspired me to return as much as I could.

I decided to join this group of lively lads known as Debian Developers, and submitted my PGP key and new-maintainer request. I got a call from Ian Jackson, while at work, and verified information by FAXing a few identification-proving materials to him in London. This was an exhilarating experience. I had never talked to a Brit before, much less one that was in Britain (yes, I was a little sheltered and naive). Now I just needed a way to give back to this group of about 800 developers and it's thousands of users.

As luck would have it, I got quite familiar with the inner workings of Debian's package system (DPKG/DEB) and how it worked on UltraSPARC computers. Working at NASA, I had access to all sorts of SPARC hardware, and, at the time, Debian's SPARC port was a fledgling of hope, without any guidance. I began automatic builds of Debian's vast software repository on my UltraSPARC II desktop system at work. I'd come in in the morning, verify the builds, PGP sign them, and upload the lot to the repository. I was king of SPARC!

Yes, this did get to my head. I was young, eager and worst of all, blinded by the slightest recognition. I thrived on acknowledgement and was empowered by the adulation of my peers. I dove into Debian work like Michael Phelps at a community pool; head first and with no purpose. I spent all of my spare time working on SPARC build failures, taking over things like glibc, PAM and OpenLDAP maintenance. I was hooked and my ego took me to the next logical step, running for Debian Project Leader. However, my arrogant and harsh online persona left me with few supporters, the first time around...and the second time around too.

Two years later, wiser and tempered by humility, I ran for DPL again. This time with a clear vision of what I wanted to accomplish and a vague image of my future legacy. You can read the whole thing here. As I read it, after all these years, I'm reminded of how little I knew of the real world, but I'm aghast at my own confidence and ambitious attitude. Time has a way of dulling that drive. During this DPL election, I had a clear win, and so began my 15 minutes of fame.

My new found leadership was longing for things to "fix." I started with Debian's non-US archive. We wanted encryption to be mainline, but US export restrictions were a hassle. We took on a pro-bono lawyer to help us with the specifics and finally figured out how to abide by such restrictions without opening ourselves up to legal action. The cool part was that we had to email and snail-mail notifications for each and every upload of a package that fell under these restrictions. Each notification looked something like this.

If you know anything about Debian, you know packages get uploaded by the dozens a day, if not more. We were basically flooding the bureau (with the remote hope that they would realize how ridiculous this all was). The original mailing was 2 reams of paper, double sided in a single package. This occurred about once a month. It was sheer insanity, but it got us one step closer to what we domination!

My next step was to build up our infrastructure. Debian is heavily reliant on donations -- equipment and money. We had a good chunk of money, but we never spent it. We had decent donated hardware and bandwidth, but the main donor at the time would whine and cry and make threats that left us wondering if he would yank it all away some day. Either way, we got new hardware with large disk space at my local ISP. Chucked down $5000 for a Sun RAID array with about 320Gigs of disk. Pretty damn expensive.

How I loved this time of my life. I was well known and in the headlines of Slashdot and Linux Gazette on a regular basis. I remember being able to pick up a book or magazine or two at Barnes and Noble that had my name and/or picture in it. I would be lying if I said I didn't miss that.

But deep down, I'm a developer. It didn't take long before I had that yearning to "do some real work" and by that I mean staying up all night in front of a shell prompt trying to figure out why that oops disappears when I add in some debug printk's or reverse engineer the endianness of an OHCI-1394 packet on sparc64. Anyways, on to better things I went and many more adventures awaited me.

As I moved through my career, I became more and more focused on Linux kernel work. From embedded to server, from network drivers to mpeg drivers, from MMUs to CPUs. I've never regretted a single step of the journey. As I sit here now, working from home at my newest job, I reflect, not with a sense of accomplishment, but with a sense of humility, knowing that there were many greater, smarter and harder working folks that traversed those same years making it all happen and enabling the opportunities that I've had.

So for anyone who stumbles upon this lonely blog entry, wondering what this whole free software thing is; take a seat, pour a cup of tea, and relax for a few minutes. It's probably the last time you will have that brief illusion of a normal life, but you wont miss it one bit.



  1. You mention Slashdot as a linux dist. Any links to that? Not sure what you mean.

  2. Just figured I'd post something. I am not a programmer, just a relatively recent FLOSS enthusiast. It's been quite amazing to peer in from the outside on the world of folks who make these things reality. It's humbling. And I wonder if I ought to have gotten into some comp sci earlier in my life. I'm now working on figuring out ways for me to help support the community given my skill set outside of programming. I'm actually working on founding a novel fundraising system for FLOSS, which I hope to announce in the next several months.
    Anyway, thanks for sharing your perspectives.


  3. About a decade ago I discovered free software and spent a lot of my spare time on it. Now that I am in business and busy, my son has taken over and shares all kinds of great stuff with me. I guess children really do learn what they live.

    1. I know that feeling. My oldest is 16 and he has been picking up the mantle. It's funny because my parents never got into computers. I think I just got caught up in the PC revolution of the 80s, so it was just chance.

      Hope he does you proud!

  4. I really enjoyed this honest trip down memory lane, Ben. Thank you for sharing.

  5. Your post gave me the chills.
    I decided to contribute to Debian 1 week ago and found myself a sponsor. I am a student in programming, I am still a beginner but I'm already addicted. I've been wanting to contribute to Open Source forever, but never had the knowledge to help.

    This was inspiring, thank oyu

  6. Linux always was a dog. Poorly designed by weakest student Trolvads it appears very in time to become popular - there was no alternatives. And everybody who deep in this IT sh**t either become smart and leave it or waste their time reinventing wheels again and again. Now I know why MS makes "enemy" from Linux - not because "it's free" - because it cost you most valuable stuff in the world - YOUR TIME. And being in opposition to "proprietary MS" people spend their time in absolutely dead-end system, while MS itself... yes, they are SELLING SOFTWARE! Think twice before you "fight for freedom" - you hit the wall improving ugly, diletantish software, while you could be second Sergey Brin, for example.

    1. You do realize that Sergey Brin made his money from Google, which built their systems on Linux (from their search servers to Android). I can't believe how easily you negated your own argument.

    2. wow stop the hate, make your statement, rather than a rage declaration.

  7. Loved reading this post. I got into Debian a year or two ago. Now I'm learning to program and hop to some day be a contributor myself. Bravo to you and everyone else who makes free software possible.

  8. Great Article, I left Linux (from red hat, through mandrake, till ubuntu, and many other live disc versions), a couple years ago... it was an amazing journey!!! Thanks to the free and open community.

  9. I just needed a way to give back to this group of about 800 developers and it's thousands of users.

  10. While writing about the past I want to "thank" you for removing efivars from Debian but I think others did that before me.

    from debian.master/changelog.historical
    * d-i: Remove efi-modules. The only module, efivars, is built-in

    Have a nice life.