Oregon

I really like visiting the state of Oregon, from Portland all the way down to Roseburg. While I haven’t been to the eastern side, the western side is beautiful, and there is also a lot of OpenNMS history there. The City of Portland uses OpenNMS, as does Earthlink Business Solutions (currently across the river in Vancouver, WA, but with a data center in Portland). Ken Eshelby, who works for the State of Oregon, has one of the most amazing installations of OpenNMS I’ve ever seen (he takes my definition of OpenNMS as a platform very seriously).

But my heart always resides with Oregon State University down in Corvallis. When I first started out on my own back in 2002, OSU was the second organization to purchase a Greenlight project. They’ve been using it for ten years, and last week they invited me back to do a “Tune My OpenNMS” project in order to get them on the latest version and to show them ways to maximize how they are using the tool.

The “Tune My OpenNMS” project (once called “Pimp My OpenNMS” but we had a client warn that he could never submit a purchase request with the word “pimp” in it) is three days long, so I decided to come in a day early to visit friends down in the Peoples Republic of Eugene. Sunday we sat outside drinking microbrews and feasting on salmon caught off the coast, and on Monday I got to go hiking in the Tamolitch Valley.

The area has both old and new growth forests, and there are some pretty extensive lava flows. Here’s a picture of my friend Kate where you can see the lava starting to be overgrown with brush.

The path we took followed the McKenzie River, which made me wish I had brought along my waders and fly rod, but since I didn’t I had to content myself with just pointing out those places where the monster trout would live.

Our destination was a place called The Blue Pool. This is a small pool that contains (so I learned) a lot of dissolved silica. While it shows up as white on the tree trunks and rocks downstream, in the still water of the pool it shows up as an incredibly rich blue (as it scatters blue light). There were once falls on one side of the pool but a lava flow covered them up. There is still water flowing under the rock and it comes out under the water, so they call it a “dry” falls.

I said goodbye and headed up to Corvallis Monday night. On Tuesday I met with Joel Burks at OSU and we got down to business migrating their existing 1.6.7 install to 1.10.5. For lunch we met Bill Ayres (OGP) who was one of the leaders of the OSU OpenNMS project until he retired, and the three of us had a lot of fun.

One night we drove out to Newport to eat seafood at Local Ocean. It was amazing.

I also got to see the controversial mural located downtown that illustrates atrocities committed by Chinese soldiers against Tibetan monks.

I thought it was quite the coincidence that I was in Corvallis when a news story broke that wasn’t about OSU athletic scores.

I didn’t get a paper accepted at OSCON this year so this was my only trip to the area, and I had missed it. I hope to return soon.

Montréal

I just finished a week in Montreal. This was my first time in Québec, and while the weather could have been better, I really enjoyed the trip.

Québec is like France but with subtitles.

The primary language is French, but many signs are also in English. The rule seems to be that the English translation has to be below, and in a point size no larger than 50%, of the original French. Hence, subtitles.

I stayed downtown and took the Metro out to the customer site. They are a managed service provider with a goal to manage more than 50,000 access points across the country. They had been using OpenNMS for awhile, so it was a lot of fun for me since I got to help solve interesting problems, but it was also a lot of work because I got to help solve interesting problems. They worked my brain pretty hard to come up with a way for OpenNMS to address their needs, not just from a functionality standpoint but to come up with solutions that could also be automated and scaled. It was amazing how flexible OpenNMS can be, and with one exception we were able to address everything without changing the code.

I can honestly say that they would not have been able to do this with any other product out there. Not only are other solutions too rigid, their cost struction (i.e. per node pricing) would make them prohibitive on cost alone. Score one for open source.

It wasn’t all work. I did get to sample some fine cuisine (Montréal has a large number of nice restaurants) as well as local favorites such as “steamies” (hot dogs) and poutin (fried, fresh cut potatoes covered in a gravy sauce and cheese curds).

We also went out to see a midnight showing of “The Avengers” (review: very good, but unless you are a huge comic fan, maybe not as great as some of the reviews suggest – and stay until the very end of the credits) so I”m beat.

Plus I only had 30 hours at home before heading to Germany for the OpenNMS Users Conference Europe.

(sigh)

I’m sitting at DFW as I write this, on my way to FRA. The trip started out poorly since I forgot both my jacket and my headphones (which usually live in my case but were in my jacket since I’d only been home for a short while and, hey, I’d obviously remember to get it on the way out) but I did manage to find an inexpensive jacket at the airport (thank goodness for the changing seasons).

But things started to get better as I managed an upgrade on the first flight, and as I walked into the Admiral’s Club I almost bumped into Snoop Dogg, who was heading out. I’m glad I didn’t as the enormous bodyguard with him would have crushed me like a piece of paper.

I’m looking forward to seeing everyone in Fulda, and I’ll try to keep the blog updated throughout the week. Remember that we are bringing the goodness that is the OpenNMS Users Conference to the US this year. Hope to see you there.

NetCologne

I spent last week (the last of my three week trip to Europe) in the German city of Köln (Cologne). I’ll probably keep referring to it as “Köln” since I just figured out how to easily print special characters on my Ubuntu desktop. (grin)

I was working with a service provider called NetCologne, specifically on a project where they are rolling out a Fiber to the Building (FTTB) project. Ronny Trommer, one of our guys in the European office, did most of the heavy lifting, but I was there to help out (at least in the beer drinking capacity).

We needed to monitor and collect data from a growing number of remote devices, and when I last checked we were polling 26110 distinct devices and 51690 interfaces. One thing that came in handy with this deployment was the Instrumentation Log Reader.

If you haven’t seen this feature, you should check it out. Under Admin there is a menu item called the “Instrumentation Log Reader”. This will generate a very useful report from the instrumentation logs concerning how many devices are being scanned for data collection, how long it takes each scan to complete, the time period between scans and the number of failures.

At NetCologne with 300 threads (the default is 50) the system was not able to poll fast enough to provide five minute samples, so we needed to increase the number of threads. While it was not easy to do a weighted average, it seemed that a conservative estimate would be about 10 seconds per device to perform collection. There were some of them in the 20-30 second range, and quite a few below 5 seconds, but for calculation purposes 10 seemed like a good number.

This meant that each thread could collect on six devices a minute, or 30 devices per five minute period. Since we needed to collect on 26110 devices, that meant we needed a little over 870 threads. We made it 1000 just to be sure, and then data collection started performing well.

A lot of the time was spent integrating their internal systems with OpenNMS through the provisioner. Much like Towerstream, any service provider with this many devices needs to be able to automate adding and removing devices to their management system. I am certain that the strength of our provisioning system is the one major reasons large enterprises and carriers should consider switching to OpenNMS.

On my last night in Köln I was taken out to a brewery near the Cologne Cathedral, or Dom, to partake in large amounts of the local brew called kölsch.

I found out on Google Plus that a number of people have very strong opinions about the quality of that particular beer, but I liked it. It was very light and clean, which was helpful in that we drank quite a bit of it. It came to our table in a “ring” of glasses:

and we went through several rings (I lost count).

No matter what you may think of kölsch, I don’t think anyone can deny the beauty of the cathedral:

Even at night covered in part by scaffolding, it is a gothic, fractal masterpiece.

I had fun, and I look forward to the opportunity to go back as this project progresses.

Here In My Car, I Feel Safest of All

This week I doubled the number of countries outside of the US in which I’ve driven a car.

Previously, I had driven in Canada and New Zealand. Canada doesn’t really count. Sorry to sound like a bigoted American, but the experience was no different than driving in the US. New Zealand was a much different story, since they drive on the opposite side of the road.

This trip I added Austria and Germany to the list.

As I’ve mentioned, I spent this week working with Antonio. He flew up for Uwe’s wedding and we drove down to Italy to do a Greenlight+ project. His flight back was at 06:00 Saturday morning, so we needed to leave Vipiteno and get him back to Germany Friday night. Considering that it was at least six hours and we were leaving at 16:00, I offered to drive so he could relax and maybe sleep.

Plus, I would get to drive on the autobahn.

Antonio drove for the first hour, getting us out of Italy and halfway through Austria. The weather was grey and wet, and as we climbed into higher elevations it started to snow.

Before we left, I asked for a few CDRs to burn some music. For some reason that escapes me, modern car manufacturers are still reluctant to put an AUX jack in their stereos. With so many people carrying portable music devices and being able to play music from a phone, you would think this would be a common practice. The reason I bring this up is that Antonio surprised me several years ago by breaking into song. This isn’t unusual for an Italian, but the song he was singing was “Supper’s Ready” by Genesis. It’s over 23 minutes long.

So that is how I found myself riding through the Austrian Alps in the snow while listening to that prog-rock classic “A Lamb Lies Down on Broadway“. Antonio also had to suffer through me singing along with James Taylor on his “Greatest Hits” album – one that I know every lyric, pause and breath having listened to it endlessly in high school.

Anyway, we were lucky that we left early enough that the temperature was above freezing and nothing was sticking on the roads.

When we crossed into Germany, I was finally driving on the fabled German highway without speed limits. This had almost mythical significance to me, as at one time in my life I was really into cars, so much so that I read Autoweek, and my friend John and I used to race to the mailbox so that we could read the Satch Carlson column.

Note: For those of you who have never heard of Satch Carlson, he is one of the best auto sports writers I’ve ever read. I would literally choke from laughing so hard at his stories. Unfortunately, he was involved in a scandal involving one of his students, and he pretty much disappeared after that. There is still an ancient website that is worth checking out if you want to see what was cool in websites 20 years ago.

Back to the autobahn. The experience did not live up to my expectations.

First, you have to understand that in most places the autobahn is two lanes. The right lane is where the trucks are, and they have a legal top speed of 80 kph. The left lane is where you can pass and go as fast as you want.

Or should a say “as fast as you can”. I wanted to go a lot faster.

Second, I was in a rented Mercedes A160. The car I usually drive is a supercharged C230, which is much faster than this car, so moving from the right lane to the left was not without a little risk.

If you look up the “0 to 60 mph” specification for the A160, Mercedes has written in the word “yes”.

Often I’d move over to pass only to see a set of headlights magically appear in my rearview mirror, prompting me to get back over as quickly as possible to avoid getting squashed. I swear some of those headlights were tinted blue.

Third, around the time we got to Ulm (birthplace of Albert Einstein) the amount of traffic had increased greatly and we were all forced to slow down. By Stuttgart, it was “stop and go”, or should I say “stop and go like hell”. There was a lot of construction, and coupled with the weekend traffic it was pretty high stress.

The way I dealt with it was the way I deal with any unusual situation in which I find myself. I find someone who looks like they know what they are doing and mimic them. So I’d get behind a car and do what they did – speed up when they sped, move over when they moved. Worked pretty well as long as I could keep up.

Finally, once the traffic started to thin, there were these road projects that would cause the entire highway to shift over to the left. Southbound traffic was limited to two lanes, while we took over the shoulder and one of their lanes. Separating our leftmost lane from theirs was a little temporary wall that stood about two feet high and looked like you could push it over with a finger. It was only as wide as the line drawn on the road, which meant that you were always perilously close to the oncoming cars as well as not having much room between that wall and the cars on your right. Seriously, the A160 is not a big car but at times it felt like I was driving a Winnebago. I wouldn’t have felt much more comfortable on a motorcycle.

Anyway, according to the GPS, Antonio had hit a top speed of 169 kph on the way down, so I was determined to top that. After driving for about a mile on a nice, flat stretch of highway with the pedal completely pressed to the floor, I managed a measly 170 kph, or a little over 105 mph. I was hoping to hit at least 200 kph, which is close to the highest speed I’ve ever driven (and that was on a motorcycle), but unless I was going to get a head start coming down a mountain with a decent tail wind, it wasn’t going to happen in an A160.

The Leitner Group

It worked out that after the training week in Fulda, a new client of ours wanted to start the first week of their Greenlight Plus project, so I just stayed in Europe another week.

Headquartered in Vipiteno, Italy, the Leitner Group is one of the two largest producers of “ropeways”, what we would probably call ski lifts and gondolas. Through a number of mergers, their products have grown to include snow grooming equipment, other passenger transport (through their Sigma subsidiary, they built the cabins for the London Eye), as well as small wind turbines (with the awesome name of Leitwind).

It was because of this recent growth that OpenNMS was needed to replace their Nagios instance that just couldn’t be used to manage the 600 devices spread out across 60 or so locations. It was a fun project, made even more so by the fact that Antonio Russo, our go-to man in Italy, worked on it with me.

I am planning on writing up a more detailed post on the transition, but it was pretty straightforward. OpenNMS was used to replace Nagios, Cacti and Smokeping, and with only two exceptions we were able to replace the Nagios “check scripts” with built-in OpenNMS monitors. For the ones we couldn’t migrate we just used the General Purpose monitor and ran them as external programs. Since Nagios runs all of its checks as scripts, it must fork-exec each one which severely limits its scale. All of the OpenNMS monitors run inside the OpenNMS process itself (well, with the exception of the GpMonitor), and the fact that you can also do data collection and event management without extra integration steps was a bonus. Antonio took the Nagios configuration files and ran them through a script which automated moving the devices into OpenNMS using the provisioner, so it was pretty simple to get the nodes into our application.

Working at Leitner was fun for a number of reasons. First, the technology is cool. If you have ever been on a ski lift you know that the speed of the cabin changes when it reaches the ends so that people can get on and off, and this is usually accomplished by having the cabin disconnect and then reconnect from the main cable (which moves at a constant speed). The equipment that does this is pretty complex, not only due to the size and weight of the components involved, but also due to the safety concerns (don’t want to be dropping your paying customers).

Second, working with the client, Michele, was a lot of fun. I’ve often bragged about the fact that OpenNMS users are self-selecting. We don’t go out of our way to market the application, so the people who find it, download it, install it and decide that they want to spend money on services are pretty special. They are all amazingly bright people, friendly and witty, and without exception tend to be very good looking.

(grin)

Third, Vipiteno is an incredibly beautiful place. Nestled in the Italian Alps, it is a very clean and walkable town. It has a split personality, since for much of its history it was located in a German speaking country. Like Canada, almost all of the signs are in two languages, and when I am talking about it to Germans I have to refer to it by its German name of Sterzing.

The whole week I had to keep reminding myself that I was actually at work – getting paid to have this much fun seems criminal.

On Wednesday, Antonio drove us down to Bolzano to visit some of his friends. As you cruise down the highway, it was not unusual to see castles – old school, Holy Grail, storybook castles.

Whenever you saw one, you often could look across the valley and see another. I keep wondering if they ever went “Game of Thrones” on each other, and thought about the logistics of waging war in this terrain.

Yes, I’m a bit odd, I realize that.

Unfortunately, it got dark so I couldn’t enjoy much of the countryside. Most of the castles were illuminated with exterior lights, however, so they seemed to float in the air as we sped past.

Bolzano was a cool place – a much larger city than Vipiteno. One of Antonio’s friends works for the hockey team, so we got to see them practice.

According to Wikipedia, the Bolzano-Bozen Foxes “is the most successful team in the history of the Italian ice hockey league, with 18 championships.”

It was a fun visit, although we stayed out so late that it made getting up on Thursday a lot harder.

Thursday night we visited another city, Trento, about 50 kilometers further away than Bolzano. It was a business meeting with a potential client, and I hope to be able to talk about that project soon. Driving back it started to rain, and thus we woke up on Friday to see snow on the mountains.

Friday was my last day at the office (we had to drive back to Frankfurt that afternoon), so we spent the morning finishing up the migration. When it came time for lunch, I was expecting that we would take Michele out to a restaurant, but he had a surprise for us. We walked over to his house and met his family, and his wife cooked me the best meal I’ve had in Italy this trip.

Michele speaks at least three languages, his wife is fluent in five, and even his oldest son (who I think is around four or five) can speak three. I had a very nice conversation with him in English. Michele’s youngest son was sleeping, so I didn’t get to spend much time with him, but even at two he’s probably studying ancient Greek and Relativity. (grin)

It was a great ending to a wonderful week.

As I’ve mentioned before, there is something about the Open Source Way that brings vendors and clients closer than usual. I have even grown hate that term “vendor”, as I much prefer the term “partner”.

Or better yet, “friend”.

German Unity Day

Today is German Unity Day, commemorating the day that East and West Germany, created after the end of World War II, were reunified into one country. I have friends who grew up in Germany before 1990 who remember a divided country, and while the process hasn’t been easy, it has made Germany one of the dominant countries in Europe. While our similarities bring us together, it is our differences that make us strong.

I, however, don’t get a holiday as I am in Vipiteno, Italy, working with a customer. To get here, Antonio and I drove down Autobahn 7, south through Austria. It is my first time in serious alpine country as well as my first long ride on an Autobahn. Here is Antonio in our noble chariot for the week, a rented Mercedes A160.

In the US, the Autobahn is this mythic highway without speed limits. While I don’t think it would work well in the US (our fierce independent streak seems to include a desire to ignore good driving practices, such as staying right unless to pass), it is pretty efficient in Germany. According to the GPS, our top speed was 169 km/hour , which I believe is close to 105 mph, and on several occasions we were passed as if we were standing still.

We also saw solar panels and windmills in abundance. Quite often several of the towering giants would stand sentinel over the highway.

As I mentioned above, the whole process is pretty efficient … up to a point. About halfway through our trip we saw the dreaded line of brake lights, and our progress slowed to a crawl. As there was no accident, the only thing I can figure is that with the holiday there were a large number of people heading toward the Alps, and it was a good ol’ traffic jam.

We took a slight detour through the country (where I paid 80€ for 50 liters of gasoline) and eventually the traffic let up, which was about the time we saw the mountains in the distance.

I’ve been in the Alps before, specifically in France, but this was my first time approaching them from Germany. It is impressive, since they rise from the ground like a forbidding wall. We entered a 1km tunnel and when we emerged, we were in Austria.

I’m glad Antonio was driving, because this is beautiful country and I got to watch it. I live in the Eastern half of the United States, and while we have mountains, they are relatively old. The highest mountain east of the Mississippi river is Mount Mitchell, and it is only 6685 feet (2037 meters) high.

These mountains are young, rocky and sharp, and a lot of people were out enjoying their beauty. Since there is almost no snow, the main attraction at the moment seems to be hiking, and I can only imagine the workout one would get.

We had missed lunch, so we decided to visit Innsbruck. Of course we brought Ulf, who seemed to be happy to be out of the car and in the mountains.

Innsbruck is a nice town – with a cold, fast moving river and brightly colored houses surrounded by the ever present ring of mountains. We found a nice outdoor cafe for a light meal, and as usual, Ulf was up to his old tricks.

This is Johanna, our waitress, who was kind enough to stop for a picture even though the cafe was very busy.

Ulf then introduced us to two young ladies sitting at the next table, Carina and Varina. They grew up together across the border in Germany, but are attending school in Innsbruck to study pharmacology. When I mentioned that my sunglasses were older than they were, Carina brought out her own pair of Wayfarers. They seemed excited to be in school, and we talked a lot about travel.

After lunch we hopped in the car for the drive through the Brenner pass into Italy. Vipiteno (Sterzing) is an interesting place, since it is a Germanic town in Italy. It kind of reminds me of Canada, as most of the signs are in both languages.

We got checked in to the hotel, which is lovely with the exception of the Internet connection. It is both 5€ an hour and limited to HTTP and HTTPS (sigh). The night ended with dinner, which was at a Thai/Japanese/Chinese/PIzzeria Restaurant. We thought the combination was so funny we had to try it, and I had hot and sour soup with a pizza.

More on Vipiteno and Italy to come.

A Wedding in Fulda

I have been working with open source software for over a decade now, and I do hate it when people describe it as some sort of utopia, where wandering bands of freedom loving coders roam the countryside handing out gifts of free applications.

The fact of the matter is that most of my business transactions are simply that – business transactions. The client gives us money in exchange for services and we try very hard to deliver those services.

But there is something about open source that makes the whole experience much more personal. I consider almost all of my clients as friends, and a few of them very good friends. I never really got that when I worked in commercial software.

So it was with a feeling of honor that I was invited to the wedding of Daniela Barbaro and Uwe Bergmann.

As you may be aware, Uwe is an OpenNMS services partner in Germany through his company Nethinks, and he is the main sponsor of the annual OpenNMS Users Conference – Europe.

It was nice to be invited to an event that usually only includes family and close friends, and so we scheduled training in Germany the week before in order to make sure we would be in the country on the big day. Both David and I were invited, along with Antonio who came up from Naples.

I had never been to a German wedding before, especially one where the bride’s family was Italian, so while most of the service was in the German language, when the hymns were sung each verse would alternate between the two languages. Not being very fluent in either, I was pretty much equally lost, but I could easily understand the love and admiration that was in the room.

After the service there was a reception outside the church, complete with Italian sweets, German bread, champagne and gelato. When I got to the bride and groom they looked very happy.

I also ran into a few people from Nethinks.

The two gentlemen on the left are Michael Batz and René Kleffel. The are Nethinks OpenNMS consultants who helped out with the class this week.

The cute couple on the right are Jeri Ryan and Justin Timberlake.

Actually, it’s Christoph Seipp and his girlfriend Caroline. Christoph used to work at Nethinks but now he is working to get Cloud services like Google Apps adopted in Germany.

After the reception there was also an evening party. It was outside of Fulda in a town called Grebenhain-Bermuthshain. David wasn’t feeling well (he’s been on the road non-stop for some time) so he stayed back while Antonio and I drove out through the beautiful German countryside with Ulf, our Kiwi mascot.

Ulf wasn’t able to make it to the wedding, but he did have fun giving his best wishes to the bride and groom.

Antonio and I wandered around and met a lot of amazing people. Christoph introduced me to Kümmel, and I returned the favor by reintroducing him to the North American exports tequila and Jack Daniels.

Ulf seemed to have his own agenda.

I had a wonderful time, and the only thing that could have made it better was if my own bride had been able to join us. I used to travel a lot for business before working with OpenNMS, and I found it kind of lonely. Now am I always come back home richer for it, not just in money but in friendships, and I have a feeling I know which will last longer.

The Brotherhood of the Traveling Kiwi

One of the favorite parts of my job is OpenNMS training. OpenNMS is a large, complex and powerful system (which is why I refer to it as a “network management application platform” instead of just an application) and it is difficult for someone new to easily get involved with it.

Perhaps you can imagine how much fun it is to watch interested people start out on Day One of our training course finally understanding the basics and end up on Day Five going “wow – OpenNMS can do a crazy amount of things”.

It’s a rite of passage and it can be a bit intense. So much so that at the end of the week I sometimes feel like I’m dealing less with a student and more with a brother.

This is stronger during our remote training courses. Uwe Bergmann, CEO of our German partner Nethinks, set up training this week at his office in Fulda. This allowed me to go out with the class in the evenings. Usually when I teach I have others things demanding my attention, but when I am overseas it is too much fun to pass up.

Last night we all went out to a local brewery in Fulda called the Wiesenmühle. They had an amazing “Swartz Bier” called “Dunkel” and after a few of those it is hard to say no to a shot of schnapps.

OpenNMS has turned a number of strangers into my friends, but I am more excited about seeing friendships evolve between members of the community.

At this year’s Dev Jam, Craig Miskell brought a stuffed Kiwi toy from New Zealand. He gave it to Ronny and Markus from Germany, and now “Ulf” is extremely well traveled – going wherever OpenNMS takes him.

I’m not sure what Ulf was up to last night, but on the left is a card from the Toro Negro Rodizio restaurant where we ate on Monday night, and the one on the right is a card for Stefan Junger, one of our students, featuring his photography website (may not be safe for work).

I can’t explain all the cash.

While not every student comes up to us afterward and says “this is the best training I have ever had”, a surprisingly large number do. It is rare that we do better than break even with training, but the long term relationships (and often future support customers) more than make up for it.

Our next training is scheduled for December. Perhaps I’ll see you there.

On the Nature of MySQL Closed Extensions

Matt Raykowski pointed out a couple of notes about the recent announcement by Oracle that it would begin supplying closed source extensions to MySQL, which it acquired when it bought Sun Microsystems (such as this one from Simon Phipps and this one from Monty Widenius)

I can’t say that the move surprised me, but I’ve been busy teaching this week and am newly obsessed with De Rerum Natura by Lucretius, which was rescued from obscurity by Poggio the Florentine when he found a copy at a Benedictine Abbey in Fulda, where I happen to be.

I believe I have tracked down that abbey, so I am now free to once again bore my three readers by discussing the open core business model.

First, when it comes to Oracle, one must surely realize that they are a commercial software company and their customers consist of people both used to and comfortable with buying proprietary code. I don’t really see this move as “open core” since Oracle has never, to my knowledge, described itself as an open source company. Instead, they join the ranks of Microsoft, Google and Apple who sell proprietary products based on open source code. There is no market confusion here, as the vast majority of companies who buy these products realize that they are buying commercial software.

I think it is more interesting to examine the role of commercially licensed software within the realm of an open source business.

To use MySQL AB as an example, I had no problem with the company both providing MySQL code under an open license as well as selling it under a proprietary license so it could be imbedded into commercial products. As long as all the bits are the same, I think it is a great way to fund open source development. We offer the same model with our “Powered by OpenNMS” program.

The problem arises when features are withheld from the “open” version. One of the powerful aspects of open source software is that the community of users and developers around it allow it to develop rapidly. OpenNMS is able to compete with products that have yearly R&D budgets in the tens of millions, mainly because features can advance rapidly due to a large, disparate development community.

This “withholding of features” is a key part of the open core model. It doesn’t work, and it is why open core companies are running away from it as fast as they can. Take Hyperic for example. Just recently on their messaging boards came a post asking about the next community release, since the “enterprise” release has been out for awhile now. Because the software has this separation, someone has to make the decision on how much of it to release as open. Thus, the decision on how to manage, test, distribute and improve the code has been removed from the community and placed in the hands of the vendor. The code is hidden until the vendor decides to release it, which all but removes the advantage of having it as open source in the first place.

Again, to contrast that to OpenNMS, anyone with access to the Internet can get to our git repository and see the latest and greatest code whenever they want. If they want to run our next stable release before its time, they can download testing (the next point release), unstable (the next major release) or snapshot (the raw, unrefined, latest code) which are built nightly.

The second major issue when talking about the role of commercial software within an open source business is the topic of copyright assignment. MySQL required that developers contributing code assign the copyright to them. Only the copyright holder can set the terms of the license, so Oracle would not be able to create a proprietary version of the MySQL database without it.

At OpenNMS, the discussion was lengthy when we were deciding on a copyright assignment strategy. We had been stung by the fact that a company had taken our code and turned it into a commercial product in violation of the license, and when we pursued legal action, that company’s response was that if they were using the OpenNMS code, it was from an earlier version to which we did not own the copyright. Now that The OpenNMS Group holds the entire copyright to OpenNMS, it makes such issues easier to defend.

We adopted, at the suggestion of DJ Gregor, the Sun contributors agreement, in which the copyright is assigned to the project but the contributor also maintains copyright.

There is one huge positive to this and one minor negative.

The positive is that the contributor retains ownership of their work. Think about it – supposed you wrote some part of MySQL and assigned the copyright to MySQL AB. Now you want to improve that code and submit it to another project. Since MySQL owns the copyright to the original work, you are bound by whatever license under which it is published. If it was published under the GPLv2, you wouldn’t be able to submit it to a project licensed under GPLv3 without express permission from MySQL. You don’t own your own work.

In the case of “dual copyright”, you still maintain ownership and you can license it any way you want.

The negative is that dual copyright may not be enforceable around the world, and it has not, to my knowledge, been tested in court. But this was the same FUD spread about the GPL in the beginning, and numerous court challenges have upheld the license’s validity. I am confident that should this ever be tested in court, it too will be found valid (just as if, say, William Gibson and Bruce Sterling decided to write a book together, they could each share in the ownership of the final product).

Publishing all the bits under an open source license (even if they are also sold commercially) and having a permissive contributors agreement that favors the developer are key to being successful as an open source business.

I’m afraid I have little sympathy for the developers of MySQL. They took their 40 pieces of silver when they sold themselves to Sun for US$1 billion. At that valuation, they had a ton of options, including an IPO, but somewhere along the way they made decisions that eventually led to Oracle owning the project.

I think this is more a lesson in foresight versus some strange and unexpected strategy by Oracle.