Recently in Free/Open-Source Software Category

OpenNMS Dev-Jam 2008 Developer Journal

| No Comments | No TrackBacks

So I've been meaning to do a Dev-Jam 2008 summary since we got back last weekend, and I can put it off no longer.

In summary: Dev-Jam 2008 was a huge success!

We loaded up in the Dev-Jam Express and started the drive from North Carolina to the Georgia Tech campus. After plenty of rest stops, food breaks, passing water towers that look like giant spanked butts, and picking up of supplies, we arrived.

We got settled in, got room keys, met with the other folks who had arrived, and recuperated from a long drive.

Tarus started out by welcoming everyone and doing a "State of OpenNMS." Since last year we blew away our goal, "2007: The Year of 4 Releases". Development has increased dramatically, despite the fact that off and on, OpenNMS regulars have been busier than ever with non-OpenNMS projects. Of course, new regulars have joined in the fray. (Does that make us "more regular"?) Anyways, OpenNMS has gotten easier to install, more robust, and just plain better in every way since the last Dev-Jam. Not only that -- we had 17 people come this year. Awesome!

Next, Matt talked about how things have progressed through the different Dev-Jams, and how we learned from each of them.

At Dev-Jam 2006, Spring was introduced, and while it was an educational experience, people spent too much time without really being able to dig their hands into the code, much less have fun with the other jammers.

Conversely, at Dev-Jam 007 (licensed to... er, GPL?), we had a very free-form conference. People hung around and worked on whatever took their fancy. Plenty of coding happened, but a number of things never wrapped up (and are still sitting in the devjam-007 branch waiting to be completed).

This year Matt proposed a hybrid of the two. Things were still free-form, people picked a project they felt like working on, and invited others to help out, but we were asked to spend a little time each morning talking about what we've done and getting input from the other folks. In the end, sometimes it was almost not morning by the time we did it (grin), but I think it helped add a little structure to the '007 style, and we all did better for it.

As for development, people were mostly just getting started.

  • Matt had been preparing a RESTful framework so it would be ready (or at least, almost ready) for Dev-Jam.
  • I had been meaning to work on cleaning up the remote poller code to not be different across the command-line and GUI interfaces, and to unify the webstart and jar-based versions of the remote poller startup code, so I started in on that.
  • DJ and Mike started playing with turning snmp-graph.properties into XML (actually continuing some work DJ did along those lines some time ago).

Things started picking up on Tuesday, as people settled into what they were working on.

  • Matt worked on upgrading our Spring code to Spring 2.5.
  • Jonathan started the first of many commits finishing up his work on OTRS ticketing integration.
  • Craig and DJ both committed some bugfixes and other updates to the 1.6 and trunk branches.
  • Alejandro and Matt both worked on the RESTful interfaces some, in a new branch dubbed the Jersey branch.
  • Joed started in on a new map based on OpenLaszlo that is shaping up to be pretty sweet! It features RESTful integration as well.
  • Paul helped out fixing a bug or two, and also helped out on Debian packaging issues, which he's done a lot of great work on in the past months.
  • I got the code pretty much finished on the webstart work, although I continued to hit strange Maven issues with bad plugins and the like.

Lots of commits, but mostly Joed setting up some directories for the OpenLaszlo maps. SourceForge was kind enough to announce Subversion downtime only 5 hours before it was scheduled to happen. Intermittent timeouts and other issues kept most people from doing much before the outage deadline.

  • Joed worked on the OpenLaszlo maps.
  • Jonathan spent more time on the OTRS integration, approaching completion.
  • I continued to fight with Maven, finally getting things to work shortly after SourceForge shut off SVN. =)
  • Alejandro did more good work on the RESTful interface, adding REST support for nodes, IP interfaces, SNMP interfaces, and services.

Lots of progress in a number of areas, and with Subversion back up, people could actually... commit things. ;)

  • Jonathan worked on wrapping up his OTRS integration.
  • I was able to commit my webstart code that I finished on Wednesday. Usage is documented in the wiki. I spent the rest of the day splitting out the trouble ticketing API into it's own module, as well as brainstorming with Matt on what the future "perfect codebase module layout" would be when we've had time to refactor everything. (Hah!)
  • Tarus worked on cleaning up bugs, in preparation for trying to get a 1.6 release candidate out the door.
  • Jeff played around with something in trunk relating to Windows? I dunno what that's all about. :)

A few new projects were opened, and a few completed. By Friday, commits were chugging along pretty nicely.

  • David (along with Walt from Hitachi, and a little help from Matt) spent the day working on a TL1 interface for OpenNMS.
  • Craig merged the existing work from the Jersey branch into trunk.
  • I spent some time cleaning house and merging useful work done in trunk back to the 1.6 branch.
  • Joed continued to fill out the OpenLaszlo map support.
  • Alejandro worked on the RESTful interface more, adding a few features and fixing bugs.
  • Craig M. also handed Alejandro a keychain as door prize for making the 10,000th commit!

And, officially, Friday ended Dev-Jam. We had a nice dinner and people started traveling. On Saturday, we made our way back to North Carolina.

Thanks to everyone who made Dev-Jam possible. I had a great time, and we got a ton of stuff done!

Edit: It's important to pay more attention to your calendar when reconstructing the dates that things happened. Turns out Dev-Jam started July 27th, not August. ;)

KDE 4.1 Beta 1 for Mac OS X

| 1 Comment | No TrackBacks

With the help of a number of folks, I'm happy to announce the latest KDE/Mac snapshot, based on KDE 4.1 Beta 1. Also, while it's been available for a while, I'd like to point out that KDE/Mac now has an official website, at mac.kde.org, using Benjamin Dietrich's pretty design.

Torrents are all seeded, and downloadable.

Note: Apparently bittorrent doesn't preserve executable flags. :( Before installing, run, in a terminal:
chmod a+x *.pkg/Contents/Resources/postflight

As always, questions are welcome in the comments, on the kde-mac list, or in a bug report. =)

Sometimes I Can't Help Myself (Rant)

| No Comments | No TrackBacks

After reading Tarus's post, I couldn't help posting my own response to Matt Asay's CNET blog. I know I shouldn't rise to the bait, but sometimes, you just have to get it out. I was as frustrated as Tarus after reading it... Feel free to read it yourself, but don't click the ads, click mine instead! (cough, sorry)

Anyways, CNET's lovely comment system apparently doesn't believe in carriage returns, you're only supposed to post in sound-bites I guess. ;) So, I'm going to repost my response here, in a form that looks less like a Giant Blob o' Text (and with a few changes for emphasis). Also, in my original comment I accidentally wrote "free-loaders" once instead of "free-riders."

I have read a few of your previous blog posts with interest, but I can only assume that this time you've gone the way of Dvorak and are posting sensational ideas for the purposes of ad revenue for CNET. It's the only explanation that makes sense.

You posit that because communities don't grow on software that gets "open-sourced", software doesn't grow on communities. You couldn't be more mistaken. Nearly every open-source project started as a few people and grew into a community, and then grew more software as a direct result of that community. Or, as you call them, "free-riders."

Now, you are correct that communities don't magically form when a closed-source company says, "Ahh, look! We are such benevolent and wonderful people that we are opening our software upon you plebes. Flock to us!" that does not mean that software can't be born the other way around. There are many many examples that prove the point. Heck, open-source software was not even on any business radar until the "free-riders" made it what it is today.

The "free-riders" are the ones who turned an open-source project with one guy scratching an itch into a project with multiple contributors because they said "hey, this is cool, I wonder if I can help out?"

The "free-riders" are the ones who ran the bleeding edge version first and found (and sometimes fixed themselves!) bugs so your Enterprise customers could take advantage of the rock-solid reliability of open-source software when those bugs got fixed.

The "free-riders" are the ones who helped other "free-riders" on the project's discussion list when they were trying to install the software, so the user-base grew, even though they couldn't contribute code.

In other words, the "free-riders" are not just some abstract pool of people from which you extract cash. In a true open-source project, they are the foundation that makes the project something great. Everyone who is a contributing part of an open-source project was once a "free-rider" who just wanted to try it out. Every person involved in any way at all adds momentum, even if it's just by asking a question and being answered on the list. That answer goes into the global pool of knowledge (which maybe a future user will find, while googling, and won't have to ask himself).

Of course, if you're an Enterprise-with-a-capital-E company that "value-adds" on top of open-source code, you see them as "free-riders" because you don't really have a community in the first place, you just have users. The users of the open-source part of your software are only there at the whim of the proprietary side of the business. There's too much risk the community will do something at odds with the direction you want to take the proprietary parts of the system for them to be able to form a true community in the sense "real" open-source projects can.

In the end, the "free-riders" are only a negative if you aren't truly an open-source company. They are an adversary that could cut away at the functionality you charge for, rather than users who are empowered and have the right to contribute and make stronger something larger than themselves.

I just really have a hard time believing that someone who is writing in the technology industry specifically on issues of open-source software and business could truly believe that the communities are not an integral part of what makes open-source software good, much less that they're "free-loaders." It boggles the mind.

He implies that open-source software is only created by taking a closed-source company and opening the code, when in fact, that is the rare, degenerate case. Most successful open-source software comes from a good idea, some hard work, and the "marketing" of that software by "free-loaders" to their friends, associates, and employers.

Some companies can be successful by doing it the other way around, but except for some of the counterexamples like Mozilla, the most likely outcome is being bought and then being closed-source'd by your new investors, or failing just like most other startups, "open-source" or not. True open-source software has legs commercial software doesn't specifically because it can keep going long after any commercial interest fails or wanes, as long as the community still wants it around.

So if you've followed my blog for a long time, you might have noticed me mention that I have, on occasion, written music.

Finally!

I've finally found some time to really work on getting everything set up again so I can write more music (and, in fact, I've got a guitar on the way as a birthday present from my wife!). This past month, I've worked really hard to do something I've meant to do for a long time: release an album.

Now, my music has always been freely available, it's a part of the demoscene culture, not to mention my open-source roots, working with OpenNMS, Fink, and tons of other stuff. One thing that's very hard to do, however, when writing tracked music, is get that "finished" sound.

I've spent the last month going through my catalog, dumping everything to Garage Band and ProTools, and re-mixing, remastering, and all-around cleaning up my tracks.

Without further ado, I announce my first single, Pointillize, available immediately on Amazon MP3 download, and soon on iTunes, Rhapsody, and other music download services.

On May 20th, my album, Finally, will be available as well.

Full versions of the songs from Pointillize and Finally are available for preview on last.fm. Just click on the album and hit play.

It's been a long time coming. If you like it, tell your friends; if you don't, um... well, don't tell anyone! Special thanks to Cynthia for putting up with me obsessively listening to these songs, over and over again, and spending way too much time mixing and remixing them. ;)

I'm Not Dead Yet

| No Comments | No TrackBacks

So I've been slack in posting to my blog, for any number of reasons, but I've been busy busy with lots of crazy stuff.

First, I've been spearheading the OpenNMS involvement in Summer of Code. Aside from one unfortunate incident things have been going well. I'm really looking forward to getting to know our students and seeing what they can come up with. It will be a learning experience for all of us. =)

We're also starting to gear up towards another beta on the road to OpenNMS 1.6. We've already got a bunch more bugs finished off, but also plenty to do still.

If you haven't noticed, my blog looks a little bit different. I'd been limping along with pretty much unchanged templates from upgrade after upgrade of Movable Type since version 3.1 or so. It's a testament to their software that everything's worked swimmingly without any major surgery for all of that time, but I've been itching to take advantage to the much cleaner HTML and CSS they're using in newer default templates, and other spiffy features which I have not been able to use without a ton of work. So I finally took the plunge and exported all of my existing data, and started over, making a CSS theme and only very small changes to the default templates. There's a bit more to do, but in all, I'm very happy with how it's gone. I should be future-proofed for another 6 years of blogging now. ;)

What's next? More OpenNMS bugfixing, to start with. I also have some Fink packages to update, as well as a few Rails-related packages to release (Mongrel and it's supporting cast of characters). It's also time to pick up my on-again off-again work on KDE/Mac, they're working towards and alpha of 4.1 and I still have a number of things I'd like to do before releasing somewhat stable packages.

Ah, well, a geek's work is never done. ;)

When "Do No Evil" Is Not Enough

| 3 Comments | No TrackBacks

I'm in the lucky position that I get to work on open-source software for a living. Not only that, but I work with a group of people who really believe in open-source software as more than just an alternate business strategy -- it's a philosophy that benefits everyone involved.

OpenNMS is completely open-source. There's no whacky $50-per-node "enterprise" version with extra features -- we put it all out there, and we stake our reputations on being the people you contact when you need something more than community support on the mailing list. The code is open, and anyone can become an OpenNMS consultant if they want. To survive as a services company, we have to be good at what we do, and not just keep the code hostage and force customers to go through us to get things done. We have to work our butts off to remain the go-to experts on OpenNMS.

That's what makes it frustrating when we see our code, and the code of lots of other contributors appear to be misused. The whole point of the GPL is that everyone benefits from improvements made to the codebase; taking that code and integrating it into a proprietary product goes against the letter as well as the intent of the project.

So on that note, it's official, we've retained Moglen Ravicher, LLC (an arm of the Software Freedom Law Center) to represent us regarding potential GPL violations in Cittio's Watchtower.

Obviously, since lawyers are now involved, there's a whole lot we can't say; it's their job to talk to Cittio and, if it comes to it, the courts, to prove our case. What I can say is, while I'm sad that it's come to this, I'm glad that we've decided to take the plunge and not just "Do No Evil" as Google says, but "Do the Right Thing" and defend our code and the community's code.

OpenNMS is part of the Google Summer of Code 2008!

| 2 Comments | No TrackBacks

I am honored, giddy, and totally stoked to announce that OpenNMS was accepted into the Google Summer of Code 2008!

The student application process starts next Monday, March 24th, so there's still time to get prepped, and suggest some ideas for projects on our wiki, or even get a head start on getting involved in the community and working on code.

Thanks again for everyone who's offered to mentor, come up with ideas, and volunteered their time!

In other news, we're gearing up for a 1.6 beta1 release hopefully sometime this week. We have a list of bugs we'd like to knock out before the beta, but many of those will probably fall through to the next beta milestone. Look forward to a release, there's a lot of good stuff getting cleaned up and fixed since 1.3.11!

On the Potential of GPL Violations

| No Comments | No TrackBacks

So Tarus posted about Cittio and their potential GPL violations last night, and it made Slashdot this morning. Once again I was reminded why I haven't read Slashdot comments for a number of years. ;)

It all boils down to a bunch of people saying:

  1. "OMG Get a lawyer!!!!"
  2. "It's the GPL, you're not a customer, they don't have to tell you anything! Shut up!" ...and...
  3. "DUDE. They totally say they use OpenNMS RIGHT HERE!"

Yes, they do mention OpenNMS on that page. They also say they use OpenNMS 1.0.2 which is either unfortunate for them, or very likely modified in a way that doesn't appear to be communicated to customers.

By the time I posted a response clarifying things, it was too late and it's buried way deep in the comments, so I would like to reiterate it here:

"So what's all this then?"

Well, that link says they're running OpenNMS 1.0.2, which, given the questions Cittio employees have asked on the OpenNMS mailing lists in the past, seems very unlikely (although technically possible). If they *are* using 1.0.2, they very likely *have* made modifications, 'cause that code has plenty of bugs that have been fixed in later OpenNMS releases. ;)

One thing that Tarus didn't really mention is that we (The OpenNMS Group) have had a few folks come to us wanting quotes to compare us to Cittio, and they've been rather surprised that Cittio is in fact already using OpenNMS under the covers. The problem is not with them using OpenNMS, OpenNMS is all about sticking not only to the letter but also the spirit of the GPL, and they can do whatever they want with it as long as they're complying with the distribution requirements of the license. The problem is whether Cittio *is* upholding their side of the GPL, and it's unclear whether they are -- and there are some signs that they might not be.

As for them not having to offer the source until they distribute the software, yes, that's true, but from what we've heard from existing Cittio customers, that is not being made clear to them. Not only that, but while the wording of the GPL may not make it obvious, the FAQ does:

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.

It seems likely that they've incorporated OpenNMS into their software at a lower-level than just screen-scraping it's output and stuffing it into their own UI. At that point, they should be prepared to provide the modified OpenNMS source to their customers. Not only that, but considering how tough companies are on open-source developers accidentally "tainting" open-source code with IP from their closed-source employers, it's more than a tad annoying that many closed-source companies taking advantage of open-source software are happy to use it, but ignore the spirit of sharing that is part of being in the community. "We won't say anything, but if you do ask us for the source, we'll fax it to you." ;)

Again, all this is unproven, and they've not been terribly responsive to private inquiries on the matter, and that's part of the reason Tarus posted, the question is -- what's the next step?

Update: Tarus also weighed in on the slashdot stuff here.

OpenNMS is Accelerating

| 2 Comments | 1 TrackBack

It has been 3 years and 10 days since the last OpenNMS development cycle closed and a stable version was released, and the OpenNMS landscape looked very different then.

Tarus took a big chance going off on his own to continue the OpenNMS codebase when the now-defunct Oculan Corporation discontinued their open-source services business and continued on developing a closed-source network management appliance, and it takes a long time to gain the trust of userbase. There is plenty of open-source software out there -- but while most open-source software has users, plenty of projects never develop a real community.

OpenNMS has grown a lot in 3 years. Not only has the general userbase bloomed, but the Order of the Green Polo (the "subject matter experts" of OpenNMS) has grown to a whopping 19 people. Considering it's a codebase that (at least at the start) was written pretty much entirely by the Oculan engineering team, that's amazing. People didn't just decide to use OpenNMS, they bothered to learn their way around a huge codebase to the point that they could make a significant contribution to the project. For that matter, The OpenNMS Group has enough interest to run regular training sessions, so it's clear we've got people dedicated to using OpenNMS for the long haul. Not to mention, the list of major features added since 1.2 is quite staggering. That wouldn't be possible without people from the community getting involved, fixing bugs, submitting code, and all-around being a part of the project.

The best part is, we're just getting started. Now that OpenNMS has simple installation on most platforms, the barrier is much lower for "release early, release often," and we have a much better process for making sure that it isn't 3 years until the next stable release.

We're working on the last few bugs which block an OpenNMS 1.6 release candidate. Why 1.6? Because so much has changed since 1.2 that calling it 1.4 would be doing it a disservice. I can't wait to announce the 1.6 release candidate and show all the great stuff people have made over the last 3 years, and I look forward to seeing the community grow even more in the coming years. Thanks to everyone so far that's been a part of making that possible.

KDE 3.5.9 in Fink Unstable

| 1 Comment | No TrackBacks

Now that KDE 3.5.9 is out, I've updated all of the Fink KDE/X11 packages to match it. Nothing new specific to Mac OS X or Fink, just a version bump with some bugfixes and a significantly updated kdepim.

It also includes a few things that are updated to understand Chris's new libflac package.

As always, let me know if you run into any issues.