Thursday, March 1, 2007

What makes an Open Source Company?

Earlier this week Nat Torkington noted that there are an awful lot of companies out there that are calling themselves "Open Source" in some way shape or form, but aren't really all that close to what he'd consider an "Open Source Company". Alison Randal followed up with some comments about Enterprise DB, which isn't open source in the classical sense, but does make a lot of contributions back to PostgreSQL, the database engine they build their product on top of. Can they reasonably call themselves "Open Source"? Today r0ml weighed in on the subject, noting that just about any software product made today contains some sort of open source software, so by some estimations even Microsoft could be considered an "Open Source Company".

Now, personally I think both Alison and r0ml are missing the mark a bit by focusing on the code. Yes, use of open source code is bound to be a part of what makes an "Open Source Company", but it's not the most important thing. The big thing to ask yourself is how the company participates in the community around the projects they're making use of. Do they contribute changes back? Are they seen as leaders within the community? Are they just leeches that suck what they want without ever taking a second to help fix someone else's problem? These are the questions that in my opinion should be answered when taking stock of a company that claims to be "Open Source".

Lets take a look at my job history since college. I've worked at four companies, FactSet Research Systems, Ask Jeeves (now IAC Search & Media or something like that), CollabNet, and finally Joost. None of these companies, it's important to point out, are "Open Source Companies" in the sense Nat seems to be pushing for, where their entire product lines are freely available and developed in the open, presumably with some sort of support offering on top of that to make money. That said, all of them make use of and contribute to Open Source software in one way or another, and I would consider at least one and maybe two of them to be "Open Source Companies" in a very real way. Lets take them one at a time.

FactSet is very much a proprietary software company. Its products may use Open Source Software internally, but none (to my knowledge) of them are free as in speech. Heck, none of them are free as in beer either, this is the financial industry, after all. On the other hand, there are FactSet employees who contribute to Open Source projects as part of their jobs. You can find @factset.com email addresses on the perl5-porters mailing list, and at least one FactSet engineer spent a lot of time working on the VMS port of a recent emacs version, although I have no idea if that code ever got integrated back into the main emacs tree, but that was the plan when I was there. So, here we have an example of a company that does contribute to Open Source, but not in a way that is significant enough to justify referring to it as an Open Source Company. Of course, the fact that FactSet isn't trying to bill itself as an Open Source Company is another big part of that ;-)

Ask Jeeves (and when I talk about Ask Jeeves I'm speaking largely of the Bloglines team, as that's where I worked, I don't know a whole lot about the rest of the company) is another example of a company that uses Open Source products to produce a proprietary system. There are a number of open source contributors who are employed to work on Bloglines (at least there were when I was there, and there still are some to the best of my knowledge), but contributing changes back is not a huge priority to the company, although it does happen when possible. Again we have a company that while it makes use of Open Source and does contribute from time to time really can't be considered to be an Open Source Company.

On to CollabNet, the first company I worked for that I would consider an Open Source Company. CollabNet makes huge contributions to the Subversion project, provides free hosting to a large number of Open Source projects at Tigris and over the years has had many employees that are participants in various Apache projects. Nobody would say that they're just sucking in the fruits of the Open Source community without giving back. On the other hand, the core product the company sells, while based on many open source projects is itself proprietary. Still, I think due to the way the company both makes use of and contributes back to the Open Source world it's safe to call CollabNet an Open Source Company.

Finally there's Joost. Our product is nowhere near open source, right? Well, maybe and maybe not. We employ more open source developers than any of the companies I've talked about, and we're built on top of a huge host of Open Source products, many of which we fund development on and contribute changes back to. The details are all available on our web site, but suffice it to say that despite the fact that our product itself is not Open Source (and indeed contains some very proprietary code that is never ever going to see the light of day) it's not outside the realm of possibility to call us an Open Source Company.

So what am I trying to say here? Well, just that the mere use of Open Source code in a product is a poor way to judge a company as Open Source versus Proprietary. There are other criteria (including my personal favorite, community participation) that are at least as necessary if not more so, and those really need to be taken into account. For what it's worth, that's why I'd call EnterpriseDB an Open Source Company, even though their product is proprietary.

Of course, in the end we need to also ask why we're asking this question. If it's to help Nat decide who he's going to invite to OSCON the answer is different than if it's to help figure out how we can call bullshit on a company's marketing department who really wants to call themselves Open Source despite the fact that they're not.

As far as the OSCON thing goes, my personal opinion is that as long as the company is actually participating in the community in a positive way they should be welcome, but on the other hand I'd expect the speakers from that company to be talking about something relevant to the community, not to be pitching their possibly proprietary product that just happens to be built on top of Open Source software. That's why when I was at CollabNet my conference presentations were always about Subversion, not about CollabNet Enterprise Edition, and why I wouldn't expect to see any Joost engineers at OSCON speaking about our internet-tv system, but instead about the Open Source components used to build that system and how they are helping to make those components better, both for us and for the rest of the community.

Thursday, February 22, 2007

One of those days...

You ever have one of those problems where even though you find and fix any number of things that were clearly wrong it still won't work?

I mean for crying out loud, everything I've changed in the past hour or two has clearly been a step in the right direction, but it's STILL NOT WORKING.

Maybe I'd be less annoyed if it would at least not work reliably, instead of only not working maybe 1 in 10 times. Some consistency would be nice.

More interesting perhaps is how the hell this worked yesterday, considering the number of things I've fixed that were clearly wrong and the still lurking problem that's preventing it from working now...

Tuesday, February 6, 2007

Unix Network Programming Volume 1, How I've Missed You...

It's been a long time, but today I actually broke out my copy of Unix Network Programming Volume 1 to look some stuff up. I'd almost forgotten what a great book it is. The third edition even talks about kqueue! Exactly what I was looking for! What a great book...

Friday, January 26, 2007

I've got great references

His taste in television is as enigmatic as it is terrible.
- Rob, who seems to have forgotten his own truly wretched habit of watching the OC...

Tuesday, January 2, 2007

Yearly Evaluation

So, my two roommates are both saying that they didn't enjoy 2006, and are quite ready to get on with 2007. With that in mind, I'm going to swim against the current and admit that I actually rather enjoyed 2006. I moved back to the east coast, went to some cool conferences, found a great apartment with aforementioned roommates, started a fantastic new job, and last but not least started dating a truly wonderful girl. All in all, I think the year went pretty damn well, and I'm looking forward to more of the same in 2007. Well, without the moving and the changing jobs, of course ;-)

Sunday, December 31, 2006

The Baroque Cycle

So, if you haven't gotten around to it yet, you should really go read The Baroque Cycle, by Neal Stephenson. I attempted to say something to that effect when I finished it a while back, but simply didn't have the time and energy to put forth the required effort. Fortunately, I don't have to, as MJD already did it. I don't agree with everything he says (for example, I enjoyed Stephenson's earlier stuff, despite its flaws), but he does a fantastic job of explaining the core stuff you should understand about the books before you dive in to them, primarily the fact that they are really just one really long book, so you shouldn't form an opinion after the first half of Quicksilver, as you really need to get to the end of System of the World in order for it all to fit together properly.

Saturday, December 16, 2006

Annotea investigations

So, back when I was working on the first edition of my book I spent a lot of time looking at PDF documents generated by the publisher, annotating them in various ways, and then sending them back. Usually what I'd do is use Adobe Acrobat to add little notes to the places in the document that needed to be fixed. If you've never used this feature of acrobat, notes show up as little squares in the document, and you can click on them to open them up, at which point they expand and show you their content, almost like little minimizing sticky notes.

Now, there were a lot of things to hate (and I mean really hate) about this workflow, but the ability to annotate documents like this was pretty slick, and if it was implemented correctly I could see it being really useful in other contexts (say, the web). So, every so often this idea gets stuck in my head, so I poke around trying to find out if someone has already implemented a magical sticky-note annotation system for Firefox.

The most promising stuff appears to be built around the w3c Annotea system, which oddly enough we appear to be using at work for some stuff. Annotea is a RDF vocabulary and HTTP protocol designed for annotating web pages and storing the results as RDF. Annotations can refer to each other in various ways, store bits of arbitrary metadata, and generally do all the things the Semantic Web people seem to be nuts about, and despite that association (which generally in my experience means "will never do anything useful") it actually seems to do a reasonable job of filling the requirements.

There are at least a few implementations of the server side of Annotea, which is nice, and there are at some Firefox plugins that make use of it, but none of them really seem to do what I want. I'm looking for something that just lets you create a note at some arbitrary point in a html page, expand that note to show its content, allow editing of that content, and then later on when you browse back to the page it should attempt to insert any existing notes into the appropriate places. The Firefox extension that comes closest to doing this kind of thing is Annozilla, but it seems to have a UI that's way more complex than it needs to be (why the hell is there a sidebar damn it, that's totally unnecessary, this should be a single context menu item, and maybe some dialogue for searching existing annotations, that's it!), and on top of that I can't seem to get it to actually work (the annotations show up in my local server, but Annozilla keeps saying there's an error).

So, am I missing something here? Has someone actually implemented my magical web-based sticky note system, either with or without Annotea? Would other people find this sort of thing useful? Do I really care enough to dive into attempting to learn enough about Firefox extensions to make it happen?

Wednesday, December 13, 2006

Speedyfeed Moves To The Labs

So, a while back I spent some time playing with mod_speedyfeed, an Apache module that let you filter your atom feeds as they were being served, removing entries that the client had already seen. It never really got finished (although it did work), and now it's rather out of date, doesn't support current versions of atom, etc. Additionally, it never really grew a user or developer base other than myself, so it's pretty much just a mostly abandoned experiment.

Anyway, since we recently kicked off the Apache Labs, a place at the ASF for Apache committers to play around with experimental projects that may or may not actually grow into something that develops a community, I figured that speedyfeed would be a perfect candidate. The rest of the labs people agreed, so I moved it over. You can now find it in svn at http://svn.apache.org/repos/asf/labs/speedyfeed.

In addition to the somewhat out of date mod_speedyfeed (which I will be updating real soon now, I promise!) there's also a prototype of a java servlet version, which is built on top of Apache Abdera. I've been messing around with that off and on over the past week or two, hopefully it'll turn into something useful eventually.

Anyway, just figured I should blog about it, since if people search for mod_speedyfeed it would be nice if there was a pointer out there to its current home.

Monday, December 11, 2006

An Interesting Package

So, I was heading out the door to run some errands this morning, and I practically tripped over a package sitting on the steps. It turned out to be the author's copies for the second edition of Practical Subversion.

Now, this is both cool and weird at the same time.

It's cool because Practical Subversion has been rather out of date for some time (I have this vivid memory of committing a change a month or two before the book was scheduled to go out that made something in the book that couldn't be changed obsolete, so I personally contributed to my own book being out of date before it even hit shelves), and this second edition brings it up to date with the great stuff that the Subversion developers have been doing over the past few years.

It's weird because it's just a little bit odd to get an author's copy of a book that I didn't really do any significant work on. All the heavy lifting on this edition was done by Dan Berlin, with technical review by Malcolm Rowe. All I had to do was say "Sure, lets have Danny do a second edition", and everything between then and publication was totally out of my hands.

Anyway, if you liked the first edition, but wish it was more up to date, or if you haven't read it yet and are looking for a book on Subversion that doesn't assume you don't know the first thing about version control, I suggest you check it out. From what I've seen so far, the new edition has been well worth the wait.

Monday, December 4, 2006

Snow

It appears to be snowing. My roommates are way too excited about this. At least I don't have to drive anywhere today.

Oh, and I'm back from .nl. It was fun. There will likely be pictures later when I get around to getting them off my camera.