My experiences with Open Source as a developer and advocate

in #software8 years ago

This story starts back in the 1990s, when I was a regular contributor to Freshmeat and Slashdot.

I first got my fingers burned when I received hate-mail from a couple of scientists because I'd posted a link to their open source project on Slashdot. Apparently, it was open source for political reasons. They didn't want anyone actually obtaining the code or using it in any way, shape or form.

About a year later, I started getting venom from electrical engineers because I'd posted a link to THEIR open source project. This is getting silly. If you use the GNU license and post the source code on your website, expect people to find it. I'm not made of asbestos and I do not like getting flammage merely because I am capable of using a search engine and because I don't believe science and engineering should be done behind closed doors. As a scientist-engineer, from a long line of scientists and engineers, I find the idea nauseating and puerile.

Ok, now onto my projects. I started the Free Film Project (where I was told that Internet resources were not there to be used, by various groups). It actually did ok for a bit and I see that open source tools for serious independent movie making are now fairly mainstream. I couldn't tell you if the FFP was responsible, I can only tell you that you got a shift towards serious development on Linux towards making it a system for controlling stage equipment, fully handling real-time audio/video capture and processing, fully handling script editing and rendering CGI in actual production works. When an idea's time has come, lots of people will have the same idea, so I simply cannot credit the FFP with any of the results, I can only tell you that we were amongst the first. I like to think that there is a connection, several members were working at Red Hat at the time and were significant figures in the Open Source world. As with all my work, there was serious push-back from open source projects who wanted to be exempt from actually having open source work used by another open source project.

The next project I started was the Functionally Overloaded Linux Kernel, an ambitious attempt to combine every single obscure Linux kernel patch into one single, gigantic, overwhelming showcase for what was out there. It managed to score quite highly on the SourceForge rankings, a couple of times. Here, I do know the impact. People had been doing mega-patches for years, at this point, but they were often minor features, bugfixes, general improvements. These were patchsets you used to make things actually run and run well. They were very good for that and I raise a glass to all those who worked on them. They inspired me to do the exact opposite. Find everything that could be done, however unstable, however in total violation of coding standards, however depraved the idea, and hack the code viciously until it would compile and run. Not necessarily run well, I had no means of testing the new code or looking for side-effects, but it ran well enough for me to jam seven MUDs, a webserver, an FTP server, a mailserver, a DNS server and software routers in IPv4 and IPv6 mode onto a 386SX-16 computer. And have everything actually respond. A decent stress-test, I'd say.

Part of the purpose of FOLK was to highlight what Linux could do, what people were getting Linux to do, what areas Linux could become a serious competitor in, but mostly to highlight the large number of extremely skilled Linux kernel developers who weren't known, and to highlight the unnecessarily conservative approach taken by the mainstream coders.

The developers of several kernel patches were furious! GPL be damned, they wanted their code under absolutely their control, no forks. They also wanted to be the sole users. Most of these projects collapsed. I can't think why. Ego, perhaps. I took a couple to task, though, and involved Richard Stallman to clarify what I could and could not do.

My FOLK project inspired a major Linux kernel developer to spawn the WOLK project (Working Overloaded Linux Kernel), which cleaned up a lot of the garbage and eliminated the disputed code. The result was a superb piece of software engineering, but also a superb piece of social engineering. The patches by Alan Cox (a guru of the highest order, IMHO) were doing everything they should for stability, it was time the bleeding edge to bleed a little more. But, more importantly than that, it was time the kernel community overcame what was dangerously close to insularism.

It would have happened anyway, I didn't make anything happen there, but there's no question that attitudes shifted as a result of FOLK and WOLK. Credit where it's due, FOLK was never intended to be stable, WOLK was stable and for that reason was key to making everything after happen, including the current range of kernel branches that specifically handle projects that are bubbling under the horizon. FOLK merely made it extremely public as to just how many projects that was.

One should not assume from any of this that I only ever faced criticism. I got a fair number of compliments along the way, too. I am highlighting the criticism solely because I want to demonstrate what advocates and developers have to go through. Far, far too many have been burned out and have abandoned such work. I'm still here because I don't know any better. That and because I've tended to avoid the frontline infighting. The obscure and the weird are my domains. Had I actually ploughed into the heat of things, I probably wouldn't have survived. What I went through was mild in comparison to the experiences of some.

The usual submitted bugfixes (albeit to lesser-known tools such as pchar) followed on from that. It was safer territory.

However, I'm pushing back onto the scene and am working on a kernel that really belongs in the FOLK series that highlights the little-known add-ons out there for the network stack.

And, guess what! Push-back! This time, a vendor is demanding extensive proof of commercial business in order for me to get the GPL code they've got. It's questionable as to whether that's OK under the license, it's certainly not ok under their own additional licensing. This is annoying, I need that code to get to the next stage in setting up my start-up. But until I have a start-up that's actually doing business, I can't get the code.

Time to smash my head against a wall.

Hey, I don't have any objection to businesses using open source as part of their business practice, but it has to be per the terms of the license (you play by the rules you chose). The same would be true if I ever get this start-up going. I chose to go GPL, I have to play by the GPL, no exceptions and no complaints, no matter what headaches that causes. If I switch from GPL to BSD, that's fine, but I hold a very firm view of the GPL and anything that was GPL has to stay GPL and in my opinion that means I have an onus on making sure that anything I did that was GPL is available in machine-readable form as long as the code is not functionally extinct in the wild or forked after I stop distributing it. I'm not responsible for hosting forks or their derivatives.

Personally, I don't see me moving from GPL, because of the way I think. I like diversity, flexibility, options. I dislike being crampt into someone else's style. As long as I can ensure the reliability, then being able to assemble structures (aside: Mecchano was the best stuff, growing up) however I want, tuned to whatever parameters I feel matter, that's what drives me on. BSD is a good license, but it doesn't invite that kind of style, which I find curious. You'd think it would encourage it more, as the BSD license was developed for researchers and academics, and is often used by people with that kind of thought process. Research and academia are nothing without peer review and reuse through citation and experimentation.