Fedora, Java and that Other Barbecue

Since this is the first week of June, I’ve started to get excited about the upcoming Dev-Jam at the end of July. We are hoping to raise enough sponsorships to be able to fly in our Google Summer of Code students, so I’ve been beating the bushes for sponsors. Since Red Hat is down the street, I decided to ask around to see if I could meet their community person.

I’m an unabashed fan of Red Hat. Now I know the company has some detractors, and they have some valid points, but all in all Red Hat is a true open source success story. They have done well financially, and despite having to deal with the whims of Wall Street they have kept true to the ideals of free and open source software. Red Hat employees contribute an enormous amount of time to open source projects, and almost all of the software they create is available without a fee (otherwise CentOS could not exist).

Most importantly, Red Hat has remained independent. With a market cap of over US$4 billion, I would challenge anyone to name a more successful open source business.


Red Hat Stock Price Since 2001

So why doesn’t Red Hat get more respect? One reason is that they are not headquartered in Silicon Valley. The Valley is a funny place. There are some very clever people there, but sometimes I wonder if that cleverness gets in the way of getting things done. Red Hat gets things done.

One of the most intelligent moves Red Hat made was the creation of the Fedora Project. The open source mantra of “release early, release often” doesn’t work well at the enterprise level, so how can one both embrace open source and yet provide the stability required in mission critical applications? By creating and supporting the free software playground known as Fedora, Red Hat not only stimulates the creation of the next version of Red Hat Linux, there is an obvious and distinct separation between the “commercial” product and the “community” project.

I introduced myself to Greg Dekoenigsburg (known as gdk) via e-mail. As the Community Development Manager for Red Hat, I thought he may be able to help us out with Dev-Jam, and as we exchanged messages it became clear that here was a guy who “got it” when it came to open source.

At OpenNMS we’ve been wanting to get more involved with our friends down the road at Centennial Campus, but since OpenNMS is a Java application, that hasn’t been easy since Java was non-free. OpenJDK changes that. Now that Java is free, Fedora is eager to bring enterprise-grade Java applications into the distro, and part of that will be figuring out how to package it. Like many other Java projects, we just bundle all of the jars we need in with our app and drop it in /opt. Since I work with one of the best software packagers on the planet, Ben Reed, I knew his input would be invaluable and we all decided to meet for lunch.


Michael, gdk, Ben and me at Crazy Fire

It was a lot of fun. gdk brought along Michael DeHaan and the four of us talked open source, geek stuff and ate Mongolian barbecue for a couple of hours. It was nice to deal with people who understood the value of open source communities while still running a business around it. Or as Michael put it in an e-mail to me afterward “It was very nice to meet some other folks that are following the real open source way of doing things.”

There is still a lot of work to be done, and you can get involved. gdk has decided on an appropriate mailing list, and you can also join the #fedora-java channel at irc.freenode.net.

And don’t forget to consider sponsoring Dev-Jam, too. (grin)

Free Riding in Commercial Open Source Companies?

I am way too tired to be writing what is sure to be a controversial post, but I don’t think I can help myself. In fact, I have little self control at all and I tend towards Wilde’s comment that the best way to get rid of a temptation is to yield to it.

[Note: on re-reading this it is a little harsh, even for me, so feel free to skip this post and move on to my travelogue from Milan]

I like Matt Asay. I think he’s a really smart guy, and he’s even gotten our back in the past. But lately I have to wonder what he’s been thinking. Today, especially, he went off on what he calls “free riding” in open source.

It really pissed me off.

Let’s revisit the definition of open source, shall we? The “open source definition” has 10 items (sort of a Bill of Rights), and the first three are:

1. Free Redistribution of software
2. Source Code to the software
3. Derived Works can be made from the software

Let me be blunt: the “enterprise” versions of so-called open source products built under the hybrid model violate all three of these rights. You purchase software under a restrictive license that doesn’t include the source code and doesn’t allow you to modify it. Sure, there is some small part of the code that meets the definition, but the hybrid company exists solely to profit from the sale of software.

That’s a pretty stupid business model.

Open source implies free distribution of software, which is the antithesis to commercial software. So the only reason I can think of why a commercial software company would tie itself to the term “open source” would be for marketing reasons. They want to capitalize on the success of projects like Apache and the Linux kernel, but without making the commitment to free the software. Why does this bother me so much? Because now I have to constantly explain to people what open source really means with respect to OpenNMS and it affects my ability to truly market OpenNMS as a free and open alternative to OpenView and Tivoli.

In his post, Matt divides open source communities into three groups, those that contribute code, those that contribute cash, and “free riders”. Now, when he says cash he means “folks that pay for a license to our proprietary code”. In that sense Microsoft must have a huge open source community.

People who contribute code are pretty self-explanitory, but what about the freeloaders – I mean “free riders”? What is their usefulness?

He comes up with two reasons, which I’ll paraphrase here:

1) They give the commercial “open source” company an edge by eating away at the market share of the commercial “closed source” company.

2) They provide numbers to help create a market share around the “open source” company’s software, thus increasing their valuation to investors as this is a greater pool of people to “convert” to “cash customers”.

Is that it? Without working hard I can think of several others:

3) They find and report bugs.

4) They contribute useful documentation if the community has a decent wiki or other such system.

5) They answer questions from new users on mailing lists and forums, thus driving interest in the application.

6) They suggest new features that may make the software better at its chosen task.

7) They promote open source software within their organizations.

There is some serious monetary value to these tasks, but it seems from Matt’s post that unless is its converted into actual cash it is not worthy. It isn’t a problem in a truly open project, since it is the community that should benefit from this work, but if your business model is to sell software licenses then, yeah, I guess all of those freeloaders would get you down.

Then he goes on to say

The more free-riders, the more encouraged would-be purchasers will be to free-ride, as well. Why should you be the only sucker paying for what everyone else is using for free, and quite comfortably?

This sucks for a commercial software company, but it doesn’t bother me at all. The OpenNMS Group is a services company. We don’t sell software, so if you don’t need our services why should we charge you for them?

If you are a commercial software company with an open source component, however, this can be a big problem. In fact, if you can’t meet your software revenue targets the smart thing to do would be to withhold crucial pieces to push more people to buy your proprietary code. Can you really call this model open?

Then comes the paragraph that sent me straight to the keyboard. I’ll break it up into pieces:

Ultimately, someone must pay for software in order to have it written.

If he means cash, that’s bullshit. It is quite possible to develop great code without a cathedral of paid developers. It will take longer at first, but it can be done.

Of course, “pay” could mean donations of time and effort, which do have a monetary value, but I don’t think that was his point at all.

There are huge benefits from open sourcing one’s code, but open source is not a substitute for the hard work of development, sales, marketing, etc.

Hard work of sales and marketing? Excuse me? When has a commercial software salesman ever added benefit to an open source project. The sheer idea of a seller of free software is ludicrous. Yeah, good sales and marketing will help one sell commercial software, but it is hardly necessary for the health of a truly open source community.

So what are the “huge benefits” of open sourcing one’s code? Well, if we rule out cash and freeloaders, that only leaves contributed code. Note that these benefits are “huge” so there must be some monetary benefit from the sweat equity of these volunteers. But how are these volunteers paid back? By having their efforts commercialized. They are barred from free access to the entire code base, which is only available in exchange for cash, yet their efforts obviously save the commercial entity money since they get features for free and usually with a copyright agreement that lets them create commercial derivative works from that code.

All companies, mine included, have some idea of an “exit strategy”. In the case of these hybrid commercial software companies, the idea is to get bought. The purchase price will be determined by their software revenue, so you can bet your life that the acquiring company will do little to open up the software, and may in fact commercialize more of the code.

If you ask me the entity getting the free ride is the “commercial open source” company. Was the purpose of this post to make people feel bad for just using the code and thus drive software revenues? Software license revenues have no place in free and open source software.

Nor is [open source] a winning business model, in and of itself.

Again, wrong. My company posted a 21% net profit last year. We used that money to almost double our staff, and we plan to do it again this year, and we did it without a single software license being sold. It may not be a palatable business model for Silicon Valley, but it works fine in the rest of the world.

If you have to violate the definition of open source for your revenue, why call yourself an open source company? The emperor is naked, folks, and his little hoo-hoo-dilly is hanging out. Perhaps if enough of us laugh at him, he’ll put some clothes on and get the frack out of our damn yard.

How to Protect a US$1 Billion Product Line

It seems like every day I find out about a new company or new organization that is using OpenNMS, and whether they purchase services for it or not I am just happy that people find it useful.

A lot of the advocacy for the project comes from the community itself, and that is one reason why we strive to keep the project side of OpenNMS separate from the commercial side. To me a user is a user, someone finding benefit from our work, whether or not they actually pay any money. The power of free and open source software is only realized when the software is truly free and open.

It is probably that attitude that also keeps us from sending out a press release every time we get a new commercial client. I am humbled by the pedigree of our client list, and I just feel a little uncomfortable advertising it. This doesn’t mean we won’t – I thought it was pretty cool when IdleAire chose OpenNMS mainly because I really like their product – but on the whole we prefer to be discreet.

This morning I was reading the news and I came across an article on CNN about Papa Johns Pizza. They just reached a milestone of US$1 billion in online sales. They were the first major chain to set up online ordering and it has really paid off.

And they use OpenNMS to insure it works.

Papa Johns has been an OpenNMS client for over three years. I really like those guys, and I’ve even been out to Louisville once. I can’t talk too much about their network (NDA) but they’ve really thought out this whole online ordering process and they can even deal with remote areas without broadband. Plus, I like their product, and I assume they like OpenNMS since they have been using it for so long.

Now if we can just get oven temperature into OpenNMS we’ll be set (grin).

While I was very much aware of how important online ordering was to their business, the “one billion” number was still a bit shocking to me. But even more shocking was the thought that we are indirectly responsible for protecting that service. It kind of brings home the fact that network management is just not some nice add-on but is integral to the bottom line.

OpenNMS often doesn’t get the respect I think it deserves, but the fact is that the project has been around for over 8 years and has reached a certain level of maturity and robustness. Enterprises trust it, and they trust our company to support it. Since commercial support is available, it can be (and has been) deployed in mission critical situations.

So congratulations to PJI for hitting this milestone. I hope that OpenNMS will insure they reach two billion quickly. Now if they would only open a Papa Johns in Pittsboro I could help with that.

[UPDATE: Similar story on Yahoo.]

The GSoC Process: A Tragedy in One Act

In just a few weeks I will hit the sixth anniversary of the day I became a maintainer of OpenNMS, and the day I started making a living selling services around open source software.

I know a lot of people thought I was crazy and that there was no way I was going to survive “selling free software” but I could see the real power in an open source approach to network management. To this day I can’t explain it to anyone who hasn’t experienced it. I often use the line from The Matrix that it is one thing to know the path, and another thing to walk the path. Not only have I survived, OpenNMS has prospered and grown tremendously over the last 6 years.

Unfortunately, the term “open source” has been so abused that it is being used by any company that makes even a token attempt to expose some of their code. It’s a marketing term used to sell expensive “enterprise” software licenses – licenses that are as closed and locked as anything from, say, Microsoft.

I’m not sure where things went wrong. Recently something happened that caused me to spend a lot of time thinking about it, so I thought I share some of those thoughts.

esr referred to open source as a “gift economy“. It dawned on me that perhaps some of the problem is in that term “gift”.

According to Webster, a gift is “something voluntarily transferred by one person to another without compensation”. The key there is “without compensation”. If compensation is required or expected, then it isn’t a gift.

We produce OpenNMS with no expectation of anything in return. When I was at LugRadio I met a number of people using OpenNMS without having purchased any of the commercial services products available for it, and they seemed a little embarrassed about not having paid anything. I told them not to worry about it – if you don’t need our services, don’t buy them. OpenNMS is a gift. Now, if you do buy commercial services then that money goes directly into making the project better, and the more services we sell the faster the product can improve, but there is absolutely no obligation to pay a cent.

(Note: unlike a true gift with no strings, there is one obligation with OpenNMS: honor the license.)

This doesn’t seem to be the case with the people who use “open source” as a marketing term. At SCaLE David talked with one such vendor, and the sales guy said that it really pissed him off when people came up and said they just used the “core” (or free) part of the product – he thought they should feel obligated pay for it. I was talking with the CEO of another similar firm about a controversial change he was proposing and how it would affect the community. He said that since they gave them the product in the first place, if they “didn’t like it, f*** ’em”.

It’s just so foreign to my experience. Back in 2002 when it was just me, it was the community of strangers around OpenNMS that kept me going. I didn’t have anyone else: no venture capital, no investment, just a project and some people who thought it was worth doing. Their involvement was a gift to me, something given without any expectations in return. I will always be grateful. In recognition of that time I came up with my two rules for OpenNMS:

1) OpenNMS will never suck.
2) OpenNMS will always be free.

So with that long preamble let me get the real meat of this post: Google.

I am an unabashed Google fan. Yeah, they are worth a lot of money and they make a lot of money, but if you look at the first Google page to the current one, not much has changed. It’s still minimalist and clean. They avoided the temptation to clutter it up.

And Google isn’t open source.

While they may use a lot of open source technology, Google is not and has never claimed to be an open source company. Yet with the Google Summer of Code they have done more for open source projects that any other vendor I can name. OpenNMS was lucky enough to become involved this year, mainly due to the efforts of Ben as an admin for our involvement, and we were awarded seven slots – seven people to help make OpenNMS a better product.

To put this into perspective, this is as if Google had given us US$35K.

Unfortunately, there was a downside. There was a person we were really interested in having work with us, but we thought he had been accepted by another project. When we found out that wasn’t the case, it was too late and we were out of slots. The guy was extremely enthusiastic and we thought he’d be a great member of the team, so we sprang into action to see what could be done.

I was on the west coast and was pretty removed from the action, so all I knew to do was to write Chris Dibona, one of the few people I know at Google. Ben, meanwhile, was talking with Leslie Hawthorn, the self-described “Den Mother” for GSoC, to see if something could be done. He was so concerned about getting this straightened out that he was doing this during breaks of Spamalot, a play he was attending.

Unfortunately, the person involved was taking the news poorly. Maybe somewhere along the way the gift of a GSoC slot turned into an expectation. My guess is that anyone as enthusiastic as this guy would quickly channel his disappointment into anger. This anger took the form of lashing out at Google, which was pretty unfair.

Tragically, at the very moment Ben had convinced Leslie to award us an extra slot for this guy, he posted another attack that ruined any chance he had of a slot within GSoC. He claimed to have been “betrayed by open source”. It was as when Romeo plunged in the knife seconds before Juliet woke up. So not only did he not get to be part of GSoC, OpenNMS lost a slot that could have been used to better the project.

If there is a lesson to be learned, it is to never forget the gift aspect of open source. It requires a certain amount of patience. Everyone is walking the path, although some are taking a more direct route than others. I hope that this GSoC candidate has learned something from the experience, just as I hope that the clients of the open source poseurs realize that they are paying for proprietary code that is no different, in the end, than commercial software.

By running our organization profitably, OpenNMS will be around for years to come, and thanks to companies like Google and the efforts of Leslie Hawthorn it just keeps getting better all of the time. Many thanks, Leslie, for your gift. We won’t squander it.

Fire-Retardant Underpants

I woke up this morning to find out that my Slashdot post had been accepted, as well as an e-mail from a friend saying “I hope you’re wearing your fire-retardant underpants today…”

I learned early on that to do open source you need a thick skin (there are hundreds of critics willing to tell you what *you* should do), so I was pretty prepared for the usual raft of somewhat negative comments to my post. But, hey, Bruce Perens (or someone posing as him) actually replied. That’s pretty cool.

Most of the comments advised “Get A Lawyer”.

(sigh)

I don’t want to involve lawyers. Why is it in this country the first knee-jerk reaction is to sue someone. Yes, I did post it under “The Courts” but that is because there wasn’t a better category on Slashdot. There was no “licensing” or “open source” category to choose, so I went with that one.

A lot of people pointed out that there are several references on the Cittio website that mention open source projects like OpenNMS. I was aware of them. My point in the original post was that a potential Cittio customer was totally unaware of their rights under the GPL. Part of the license is “you must show them these terms so they know their rights.” (GPLv2, Preamble) The exact timing of this would be up to the individual company, but my guess is it would have to be before reaching the quote stage. Sure, you don’t have to distribute the actual source code until ownership changes hands (i.e. I can’t demand a copy, only a customer can) but I can’t see where the license requirements for full disclosure can be upheld by revealing the information after the fact.

Note that this is not a one time thing. We have talked with other Cittio clients and potential clients in the past and they tell a similar story. This was the first time, however, that the person was actually concerned about it. I didn’t screw up on the quotes with the statement “That really irritates me” – that came from the client.

This came on the heels of a post on the opennms-install list from a Cittio developer (anonymously) about very recent OpenNMS code. The Cittio site claims they use OpenNMS 1.0.2, which to be quite frank is damn near unusable these days. While it isn’t proof that they are modifying OpenNMS code, it is enough to suggest it.

Which brings me to the open source double standard.

Open source projects are constantly under scrutiny for the potential to incorporate “non-free” code into an open source project. This is very easy to pursue, since the code is out there for anyone to see. Proprietary companies, on the other hand, can easily hide behind binaries. It is very hard to deliver proof that someone has used your code. With all of the amazing stuff being done in the open I can guess that the temptation to use open code in a closed application is strong, especially since the chance of getting caught is slim. I am *not* implying that Cittio in particular does this, but I could see it happen in general.

One might say (as many Slashdot readers did) that this is the domain of the Free Software Foundation (of which I am a member) and its legal arm the Software Freedom Law Center. I tried that route. In 2005 I got an e-mail from Daniel Ravicher that stated “SFLC unfortunately cannot generally represent for profit entities, as such could jeopardize our not-for-profit status.” As the initial code base for OpenNMS is copyright Oculan and most of the rest is copyright The OpenNMS Group (both for-profit companies) they can’t help. We are exploring ways to deal with this, but for now the SFLC can’t help.

This problem raises a number of questions for me, and I think points out a weakness in the GPL. The reason the copyright to OpenNMS is held by a number of entities is due directly to the collaborative nature of the GPL. Suppose Joomla!, a fork of Mambo, modifies under the GPL some original Mambo code, and a third party takes it and uses it in violation of the license. Does Joomla! have any right to pursue action against that party, or do they need Mambo’s permission? It’s very unclear to me.

My favorite comments were those that implied that Cittio would sue me for libel. Again, my bad for asking for advice on Slashdot, and I expected as much. Libel can be defined as “the communication of a statement that makes a false claim, expressively stated or implied to be factual, that may harm the reputation of an individual, business, product, group, government or nation.” I made only two claims:

1) A potential Cittio client that had reached the negotiation/quote stage was not fully aware that OpenNMS was being used as part of Watchtower.

2) A Cittio developer was anonymously asking questions about fairly recent OpenNMS code.

Neither of those are false. These two facts raised doubts within me about whether or not I could take Jamie Lerner at his word that Cittio was obeying the GPL, and I invited Cittio to set the record straight.

It’s not libel.

One has to remember that in 2002 Jamie Lerner contacted us about a commercial license for OpenNMS. We told him there wasn’t one and probably wouldn’t ever be one, yet he went on to use OpenNMS anyway. In 2005 we revisited this and he again assured me that Cittio was just using OpenNMS 1.0.2 and was in no way violating the GPL. This resulted in the few references to OpenNMS that can be found on the Cittio website, but no real details as to how the integration was accomplished. Per the GPLv2 FAQ:

The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can’t treat them as two separate programs. So the GPL has to cover the whole thing.

If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs–but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.

What I want to know is how “well separated” are OpenNMS and Watchtower?

Outside of spending a bunch of money on lawyers, which I didn’t want to do, I figured I could just appeal to the community. Slashdot seemed like a perfect choice, and as Bruce Perens pointed out “You’ve achieved your desired goal”. As I’ve mentioned a couple of times, I welcome Cittio to explain how they integrate with OpenNMS, how they tell clients and potential clients about the open source tools they use, and how they distribute the source code. Perhaps this was all a big misunderstanding.

Note that I’m really not doing this as part of my day job. The OpenNMS Group is a services-only company. We don’t sell software and so the potential loss of a client to Cittio is pretty much a non-event as far as our bottom line is concerned. But I felt compelled to do this for our community. It would be just plain wrong for a company to take their work and to attempt to profit from it, so I look forward to Cittio putting all of our doubts to rest.

I was really surprised at the small amount of Slashdot comments with, for lack of a better word, “righteous indignation” at a possible GPL violation (although we did get support from unlikely corners). Perhaps we in open source are really in our own little world, and stuff like this doesn’t matter to the world at large. Well, it matters to me.