I Am Red Hat

This year, during We Are Red Hat Week, I wanted to share why the words “I am Red Hat” mean so much to me:

I am Red Hat.

I am strong.

I am Open.

I have helped as the power of Freedom brought technology to children in tiny villages all over the world.

I have helped as the power of Freedom proved itself in the datacenters of massive, multinational corporations.

I am Red Hat.

I am inclusive.

I have marveled at the love I see as this amazing extended family celebrates the beauty in differences of culture, gender, and orientation.

I have been a part of something amazing – the fostering of respect, and the championing of equality, for all.

I am Red Hat.

I am responsible.

I am humbled by the courage of fellow Hatters announcing their true identity in a world which, too often, stigmatizes them.

I am honored to work with people who are at the same time supportive and caring, yet wholly drama-free in their support. Never have I been so impressed by so little fanfare when a Hatter has come out or taken on their true gender.

I am Red Hat.

I am proud.

I cannot watch this Red Hat video addressing “It Gets Better” without being reminded of how incredibly proud I am to be a small part of this amazing community and company:



Open Source and Intellectual Property, Part 1: Copyright and Open Source Software Licenses

I am an unabashed, unapologetic Open Source zealot. I pay homage to the Free Software movement and the Free Software Foundation. Despite their differences, the Open Source folks and the Free Software folks have similar views. I think it’s fair to say that, in very general terms, both the Open Source and Free Software movements believe we should share knowledge. I agree that we should share knowledge. We’re all stuck on this big blue ball together, and there’s plenty of hate here. I’d rather be on the side of love. In my eyes, making someone else’s life better through education and enablement is an act of love.

Having said that, I am a firm believer in intellectual property protection. If I write a book or record a song, I think it’s reasonable that I retain ownership of that book or song. If you find it valuable, I think it’s reasonable for me to ask you to pay for it. If I find value in someone else’s book or music and they ask that I pay for it, I will absolutely pay a reasonable rate for that value. There are certainly numerous examples of ridiculous rate structures and terrible treatment of authors and musicians by various industries. I don’t like that, and in many cases it has driven my behavior to not purchase anything from those industries. It does NOT, in my mind, make it OK to pirate that music or book. Instead, I support the artist by going to his or her concert whenever I can.

Intellectual property protections apply to software, as well. If I write a program, I think it’s reasonable that I want to retain ownership of that program. Copyright law provides legal protection to producers of music, books, software and countless other bodies of work. Copyrights are a Good Thing(TM). There is no disconnect between copyrighting software and sharing it. A common misconception is that Open Source software is somehow ownerless, that it’s just out there on the Internet and anyone can do whatever they want with it. That’s not the case. Open Source software is generally copyrighted by a person or company – that person or company is legally able to do what they want with that code. There is no difference between a private, closed-source company copyrighting their code and an Open Source developer or company copyrighting their code. Copyright just protects ownership. It’s what happens after the code is copyrighted that makes a difference.

Closed source software vendors then release their software under a license. Open Source vendors do, too! The difference is, closed source licenses restrict what you can do with software. You may be restricted from installing the software on more than one machine. You will almost certainly be restricted from sharing the software, or from trying to figure out how the code is written (reverse engineering).

Instead of restricting your freedom to use software, Open Source software licenses guarantee those freedoms. Open Source licenses ensure you can install the software freely, on as many machines as you like. You can distribute the software and its source code freely. In fact, Open Source licenses require that when you share the software, you MUST share the source code, too. It’s the same with any changes you make… if you make changes to the software and distribute it, Open Source licenses require that you share the changes, too! It’s really a beautiful model… it protects the copyright holder and the community. It actually protects people who know absolutely nothing about software… it guarantees that the innovation of code that affects their daily lives can not be restricted.

It’s been demonstrated time after time that you can release your code under an Open Source license and still make a living off of it. My employer, Red Hat, recently celebrated its first billion dollar revenue year. JBoss (before Red Hat bought it), EnterpriseDB, MySQL (before Oracle bought it), Zimbra (before VMWare bought it), Alfresco, all are successful companies which have released their code under Open Source licenses. Unfortunately, some of these companies are not pure Open Source, and I think that’s a huge mistake, but that’s a topic for another post.

I’ll use Red Hat as an example of how you can make a living while giving away your code. Red Hat is successful on a number of levels. From a purely business viewpoint, they’ve made good money “selling free software.” From a community standpoint, they’re able to contribute more to various Open Source projects than almost any other entity on the planet. From very specific technologies like the Linux kernel, the C libraries and the compiler toolchain, to larger-scale projects like the GNOME desktop and cloud computing frameworks like OpenStack, Red Hat is able to lead contributions because of its commercial success. Through those contributions, everyone benefits, not just Red Hat and its customers. Even commercial “competitors” derive value from Red Hat’s work. Even that is a net gain, because those “competitors” have some really sharp folks, and hopefully they’ll improve and contribute code, too.

Red Hat’s success is driven by the subscription model. I have seen a lot of confusion about what a subscription is. I deal with folks all the time who talk about “Red Hat licenses,” and I try to gently remind them that the license under which they use the software is the GPL or LGPL or Apache Software License or some other Open Source license. The business arrangement under which they consume Red Hat-provided technologies and services is the subscription. A subscription to a Red Hat technology, whether it’s Red Hat Enterprise Linux, or JBoss Enterprise Application Platform, or Red Hat Storage, or any of the countless other technologies Red Hat offers, is not really about the bits. You can download those bits yourself, compile them, and use them all you want. At no initial acquisition cost!

The subscription is much more about the integration of those bits with other Open Source bits and putting them all together as a product. It’s about certifying those bits with third party (even closed source) software. It’s about certifying those bits with hardware vendors like Dell, IBM, HP, Cisco and others. It’s about documenting how to use those bits. It’s about customers being able to influence the direction the development of those bits takes. It’s about funding new bits via the innovation that comes from the Open Source developer community. It’s about having professional services to help customers with the adoption and deployment of those bits. It’s about getting updates to those bits to address bugs. It’s about getting newer versions of those bits when upgrades are available. It’s about getting someone on the line if you have problems with those bits. You’ll notice I listed support last. While support is obviously very important, it’s really only one part of the subscription.

As I wrote this post, I chatted with one of my good friends at Red Hat. He reminded me that intellectual property protection is, in some ways, MORE important to Open Source developers than to closed-source ones. Closed source developers can put technical restrictions into their code like license keys, “phone home” registration, license management servers, and things like that to prevent their software from being used in a way which is contrary to their license. Open Source developers don’t do that – it’s completely contrary to the ethos of Open Source. So the only thing that stops an unscrupulous developer from incorporating Open Source software into a closed source product is license protection, which is based on copyright.

There is no disconnect between creating and owning software and sharing it. The US and other legal systems allow us to preserve intellectual property rights while distributing code as Open Source. The waters get muddied when it comes to software patents, though, and I’ll talk about those in my next blog post.

What do you think? I’d love to hear any questions or comments!

What Open Source Means To Me

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.

Report on FUDCon Blacksburg 2012

I went to the 2012 FUDCon on the campus of Virginia Tech in Blacksburg (http://fedoraproject.org/wiki/FUDCon:Blacksburg_2012) last weekend. There was a ton of very cool knowledge transfer, especially around Open Source software (OSS) in cloud computing. I was able to meet several folks I have not seen in ages, and a bunch of folks I’d only met over Internet Relay Chat (IRC). It was great to put faces to names! It was bitterly cold (for this Texas boy, anyway), but the snow was just beautiful. I’m sorry it didn’t stick, but it was lovely to watch it fall.

I’ve been to Fedora events before, but this was my first FUDCon. I was a bit surprised at the BarCamp talk selection process. Usually, because of my job, I go to very structured conferences. This was anything but structured, and it was a combination of cool and frustrating. Cool in that the participants chose what they got to see (and that really trumps all), frustrating in that, as a presenter, you can show up after having made a proposal and not get to present. Luckily, I was selected and I got to present on Security Enhanced Linux (SELinux) and high availability application clustering. I also did an impromptu presentation of Red Hat Network Satellite and Spacewalk.

I think my presentations generally went well, although my SELinux talk was significantly disrupted when the presenter from the previous session not only didn’t finish in time, but stayed in the room presenting through the 10 minute break, then spent another 5 minutes of my 50-minute slot packing up! Courtesy much? Needless to say, the SELinux presentation was rushed and I didn’t get through everything I wanted to. My apologies to those who attended, and the full presentation is at http://people.redhat.com./tcameron

Saturday morning brought Jared Smith’s (http://fedoraproject.org/wiki/User:Jsmith) State of Fedora Address. Jared was very gracious and grateful to the community, and chatted about what Fedora has gotten done and what still needs to be done. I really love the Fedora project for making technology available to communities and populations that would normally be unable to obtain it for political, financial or geographical reasons. What Fedora does is really why I’m at Red Hat.

I was able to attend some really interesting presentations, and I learned a lot. Mike McGrath (http://fedoraproject.org/wiki/User:Mmcgrath) did his usual amazing job of presenting on OpenShift, Red Hat’s PaaS offering. I discovered that OpenShift has matured a LOT since I last looked at it. OpenShift allows developers to get a zero cost environment to develop and deploy cloud applications from Red Hat. I was impressed at how easy it was for Mike to fire up a web app. Even for a non-developer like me, it was very straightforward and looks very powerful. I wish Red Hat would make more noise about this – it feels like a real benefit to developers.

I also lurked with the Fedora Infrastructure folks for a while while the talked through staging software and some of the hurdles they have to jump to make that happen. I was not surprised but very pleased to hear them repeatedly talk about OSS solutions as opposed to closed source. This is one of the many reasons I love the Fedora project.

I watched the various cloud computing presentations, and it looks like all of the projects discussed are doing some good work. With many of the cloud management systems, the biggest gap I see is that they enable creating OS+app images for virtual and cloud computing environments. There is nothing about what to do after the image is deployed. Images are great, but the instant they get deployed, they’re pretty much out of date. While management of virtual networks, storage, OS and apps are incredibly important, you need to think beyond “ok, I designed and built the image and now it’s out there, I’m done” thought process. It doesn’t make sense to kick an image out into the cloud and then change infrastructure to manage it, but that’s exactly what a lot of cloud projects do. This is a whole other topic, though, and I’ll blog on it separately.

On Sunday I was able to put together an impromptu session on systems management, and I felt like it went pretty well. We went way over, since the room wasn’t going to be used, and talked about next generation systems management (Cloudforms) as well as Spacewalk.

Good times were had by all, and I loved seeing all the Fedora people. I look forward to the next Fedora event!

Excogitatus in patefacio

My high school Latin teacher would probably cringe at my abuse of the language, but I wanted to chat briefly about what this blog is about.

Excogitatus – (very roughly) to consider or invent. Patefacio – to disclose, expose, open, or make open. So very roughly, and much to the annoyance of anyone who actually knows Latin, this blog is “considering open,” specifically as in Open Source.

I’m new to blogging, so this will probably meander a bit. I hope you’ll be patient and provide feedback!

Also, as a point of clarification: I work for Red Hat, but this is my blog, and no one else’s. My opinions do not necessarily reflect those of my employer.