Give Some Learnin'

It’s that time of year again, and if you are at a loss for what to give that special network manager in your life, consider OpenNMS training.

(grin)

We have just announced dates for both training in the UK and training in the USA.

For the first time, The OpenNMS Group is able to offer in Europe our full, week long training course on OpenNMS. The class will be held in the city of Reading in the United Kingdom the week of 31 January – 4 February.

In addition, we will be holding our usual USA training in lovely downtown Pittsboro, North Carolina in March.

Registration is now open.

OpenNMS 1.8.7 (stable) and 1.9.3 (unstable) Released

This week we released two new versions of OpenNMS.

Infrastructure

Before I talk about the releases, I want to mention infrastructure. Running an open source project is only partially about the code itself. There is a lot of stuff that goes into managing that code and making it useful.

One major change that has been made is in the build system. OpenNMS depends on a number of outside projects, and the build system was not optimized to deal with different aspects of the code using the same libraries. Since we use maven, a lot of work went in to separating the “build” portion of the process from the “assembly” portion. This should make builds run much, much faster, and for once our Debian nightly snapshots are running (RPM-based snapshots have worked for some time).

Another change is that we’ve migrated from using Bugzilla as our issue tracker to Jira. The folks at Atlassian were kind enough to give us a license, and while we prefer open source solutions, Jira works a lot better with our Agile development methods.

Finally, while this isn’t new per se, for those of you who struggle with managing OpenNMS configuration files, you may want to consider using git. In our classes we teach best practices to make this easier, and combined with git it can be much, much faster to upgrade.

New in 1.9.3

Please remember that this release is the cutting edge of OpenNMS and is probably not suitable for production. There is a lot of work going on in this branch specifically around IPv6 support.

The architecture of OpenNMS is such that adding support for IPv6 definitely will not require a rewrite of the entire software, but there are a number of things that must happen before it can fully support IPv6.

Most of those things have been addressed, including changing the iplike function to deal with IPv6 addresses, and while it is possible to play with this now, it should be easy to explore in the next release.

One of the big issues is how to do discovery, since a particular IPv6 address range can be prohibitively large to scan. We plan to develop different “listeners” that can use wire protocols to discover IPv6 addresses. Of course, the ability to manually configure IPv6 addresses exists already, but it won’t scale to the enterprise.

For full details, visit New and Noteworthy.

New in 1.8.7

OpenNMS is our production, stable release and this version is recommended for everyone.

As such, we try not to make any huge changes that could introduce bugs, so these are mainly maintenance releases with bug fixes.

However, there are some new features. One of my favorite is the SNMP Asset Provisioning Adapter:

http://www.opennms.org/wiki/SNMP_Asset_Provisioning_Adapter

This allows OpenNMS to populate asset fields for nodes using SNMP. It has been around for awhile but since I haven’t mentioned it before now, I wanted to do so.

Also, we are continuously adding new database reports based on our JasperReports integration. We have added the ability to gather data from the JRobin RRD files and to include that in these reports.

As always, we welcome contributions from the community so if you come up with a cool report, be sure to send it in (just open an issue at http://issues.opennms.org)

For more info on 1.8.7 visit New and Noteworthy.

We hope that you enjoy these changes and find value in what we do.

How I Learned to Stop Worrying and Love Canonical

It used to be that Microsoft was considered the antithesis of open source, but now I would claim that Apple represents the opposite of “open” (which is a little ironic considering that the Darwin operating system that forms the basis for Mac OS X is based on BSD). From difficulties in getting software on such devices as the iPhone, to the addition of custom “security” screws on its hardware, Apple is the new icon for monolithic “cathedral-like” development.

Steve Jobs is a master of controlling the conversation, and he has attempted to reframe the “open vs. closed” debate into “integrated vs. fragmented“. There can be no doubt that his “integrated” approach has proven very profitable for Apple (poised to become the most valuable company on the planet this year, passing Exxon) but I don’t believe that his methods are ultimately sustainable. Truly open environments (as exemplified by Andy Rubin’s wonderful tweet in response to Jobs’ comments) can grow and adapt much more quickly than closed systems, and as more people are drawn to them this innovation accelerates.

Part of this may arise from frustration. When the iPad was announced, a friend of mine who uses a Kindle stated that he liked the fact that the Kindle didn’t rotate orientation, so he could read a book in bed on his side without it going into landscape mode. When the iPad came out there was a switch on the side that served as an orientation lock, given the iPad the same functionality.

However, in iOS 4.2, that switch became a mute button, and there is no way to change it. This is extremely annoying to people who use that feature and they have no recourse short of jailbreaking their device.

But the question remains: is it possible to create polished and “integrated” apps using open source? Many people opt for Apple’s products (myself included) because they “just work”. They trade freedom for ease of use, in much the same way that old quote mentions that in a fascist state the trains run on time.

I believe that from the fragmented chaos that is open source, order can arise, but in doing so it needs to adopt some of the methods of people like Steve Jobs. Many open source projects are run by committee. One of my favorite quotes about committees comes from Ferdinand Porsche:

“Committees are, by nature, timid. They are based on the premise of safety in numbers; content to survive inconspicuously, rather than take risks and move independently ahead. Without independence, without the freedom for new ideas to be tried, to fail, and to ultimately succeed, the world will not move ahead, but live in fear of its own potential.”

Now this may fly in the face of what most people think about open source communities, and I’m not saying that every project needs a benevolent dictator, but in any kind of chaotic system order can arise around certain people and ideas.

Take the web, for example. If I am traveling and I want to investigate a particular hotel, there are any number of web sites offering reviews and advice. But I tend to head straight for TripAdvisor. Over the years, that site has built a reputation with me as a great place for information. Even though there is no pay-wall, even though I access it the same way I can access all of those other sites, I go to TripAdvisor.

In much the same way, I expect Apple to start seeing serious competition from solutions based on open source.

To make this happen, the open source community is going to have to come to grips with the idea that certain leaders are going to arise and start making decisions that aren’t popular in order to achieve a high level of integration, where all the apps seamlessly interact and have a similar look and feel. One such person is Mark Shuttleworth of Canonical.

I doubt anyone reading this is unaware of Mark Shuttleworth. I first became aware of him when these “Ubuntu” CDs started appearing like mushrooms after a summer rain a few years back. At a time when the Linux desktop was considered to be all but dead, he put his energy and considerable resources into a new distribution based on Debian with a focus on the desktop experience.

While I rarely see a Linux laptop that isn’t running Ubuntu, Shuttleworth’s efforts have not been without criticism. He decided to include non-free, proprietary drivers in Ubuntu in order to make the user experience easier. There have been some claims that Canonical doesn’t contribute back to the communities of the software they use.

The most recent controversy arose when it was announced that future releases of Ubuntu would use the Unity desktop instead of being based on GNOME.

I got the idea for this, now increasingly, long winded post when I read a note on Jono Bacon’s blog about the need for respect in open source communities. Jono is the community manager for Ubuntu and a Canonical employee, and I can’t help but think that his post arose from the Unity decision.

I think it is quite natural for people in the open source community to be a bit wary of Canonical. There are a lot of people out there who want to exploit open source and even I have wondered about Shuttleworth’s motives. I’m always suspicious of altruism (at least the in the business world) and considering the millions of dollars that Canonical has put into Ubuntu I think we are all waiting for the other shoe to drop.

But, you know, it really doesn’t matter. It’s open source. This is the main reason, while Shuttleworth may create things as good a Jobs, that he will not become the next Jobs. He could decide to change the orientation lock button to a mute button, but it would then be a simple matter to change it back, or at least make it a configurable option.

Awhile back Shuttleworth made a hiring decision that seemed rather strange to me, as this person was kind of the poster child for everything wrong with open source business. At conferences in LA, Oregon and Ohio I asked members of the local Ubuntu communities what they thought about it.

The answer? They didn’t. One guy in LA said quite bluntly that they didn’t care much about what Canonical did. This, more than anything, is why open solutions are more powerful in the long run.

Sure, it takes someone with vision like Shuttleworth to make an Ubuntu, but he doesn’t control it. That is why it has such a rabid following. Prefer KDE? Switch to Kubuntu. Don’t like some aspect of it? Fork it.

Ease of use often means the removal of options. It is one of the reasons I describe OpenNMS as a network management application platform instead of an application. It has so many options that it can be hard for a newcomer to understand how to use it, but once that learning curve is climbed it is truly powerful and empowering. Fewer options would make it easier to use initially, but then you are stuck when, inevitably, a unique problem arises that needs to be addressed. That’s why we see such a migration from other “easier” tools to our project.

Critics of open source may look at our factions and our bickering as reasons why open source will fail. I look at the fact that we can’t all get along as a strength. It allows “ideas to be tried, to fail, and to ultimately succeed” in a way that closed culture simply can not match.

Windows Expert Needed for Contract Project

I am aware that there is an operating system called “Windows” by some company called “Microsoft”. A lot of people seem to like it, apparently, and since it supports Java it is possible to run that most amazing network management application platform, OpenNMS, on the beast.

In fact, a large number of people hitting the OpenNMS project website do so while searching with the term Windows.

The problem is that while OpenNMS runs on Windows, we don’t have any in-house windows expertise and our implementation could use some improvement.

Specifically:

1) Currently OpenNMS is started via a bat file and thus the window must remain open for OpenNMS to run. We’d love to have this run as a service by default.

2) Upgrades are truly painful. With Linux we have packaging systems that can remove old files, add new ones and keep track of configuration files. I assume this is possible with this Windows thing.

3) While OpenNMS is written mainly in Java, there is a small part that is in C. We have packaged up at least one DLL to handle the C portion of the application but occasionally, and for reasons that border on the truly random, users have problems executing it. We’d love to have that fixed.

I get to associate on a daily basis with experts in Linux and open source software, and I’m looking for someone of similar caliber in the Windows space. Someone for whom navigating the eccentricities of that operating system come as second nature, and someone who can improve our Windows installer and packaging to make it truly easy to install and maintain.

Of course I don’t expect this person to do this out of the goodness of their own heart. There is money involved – honest to goodness, folding money. I want to contract this particular task as a fixed price project, although I am hoping to literally be overcome with sweat at the abilities of the person we hire for this, and I hope it is the start of a long and fruitful relationship.

So, got what it takes? If not, know someone who’s got what it takes?

If so, let me know, and thanks in advance.