Problems in Open Source
When I designed the Maximite (a small computer running BASIC) I primarily saw it as a fun project for people to build and use and so I released the design and software under the GNU General Public License open source license.
This turned out to be a mistake. The GNU GPL license is focused on ensuring that someone who modifies publicly available software also makes their modifications publicly available. While doing this it tends to ignore the rights of the person who wrote it in the first place.
This is the story of my experience with Open Source and why I believe that you require more than the GNU General Public License to protect your ideas and effort.
I won't go into the details here but the Maximite is a small low cost computer running the BASIC language. I published the design in Silicon Chip magazine in March 2011 and it became an instant hit. Visitors to my website multiplied by 20 times and thousands of Maximites have been built spawning an active community which also includes a number of companies selling copies of the hardware.
The Maximite consists of three important components:
- The Concept of a small, self contained computer that mimics the computers of the 80's where you could plug in a keyboard and screen and start entering your programs.
- The Design which included the choice of the microcontroller that powered it, the schematic and the interfaces.
- The Software which included a full BASIC interpreter with floating point, arrays, string handling, etc.
Because the Maximite was published in a magazine the concept and the design were on the public record but I licensed the software under the open source GNU General Public License. This was a rather naive move on my behalf - but I always liked the idea of open source so I did not think twice before using it.
At that time it seemed like a reasonable decision, I wanted the design and software to be open and free, so what was there to defend? I certainly did not see why anyone would (or could) do harm to me.
A few months after the Maximite's release a sizeable community had built up including a discussion forum and people who were making clones and add-on boards. However, with success the Maximite also drew a number of people who wanted a "piece of the action" so to speak.
One commercial group in particular took a look at the Maximite and could see that there was an opportunity to make some money and gain a little glory - so they decided to simply move in. They created websites using the Maximite name, they dominated discussion groups and presented themselves as the manager of the Maximite world.
I hasten to add that their intentions were not necessarily evil, they just saw a good opportunity and simply trampled over me in their effort to get it.
Part of their technique was to design an improved hardware board based on my Maximite design and then claim that they had a better solution. Key to this was my software which they downloaded from my website and made some small changes to suit their board. What really distressed me was that they also took my name off my software and assigned the copyright to themselves.
This was something that I had not anticipated; a takeover that used my own hardware and software against me - and when I resisted they responded with a nasty campaign of public criticism and attacks. It was obvious that if I did not do something I was going to be relegated as a footnote in the Maximite's history.
Fortunately they made a few mistakes which damaged their credibility and this gave me an opportunity to recover the situation. I did this by releasing a significantly upgraded version of my software with a license that did not allow commercial exploitation. They still had access to my earlier releases under the GPL but they could not claim that their version of my software was "better" in any way and this forced them onto a parallel path and out of competition with me.
I have glossed over the details of this unhappy story but it was a hard six months as I battled with these people. I had put a huge amount of effort into creating the Maximite and at one stage it looked like I would just have to walk away from my work and leave them to claim it as their own.
The biggest lesson that I learnt from this is that if you give your work away for free, that is how some people (a minority) will value the effort that you put into it.
The second lesson is that the GNU GPL provides little protection for the software author. It is focused on protecting the public nature of the software, not the author's rights.
Finally, in the open source world, the value is in the software but the money is in the hardware. My antagonists needed my open source software so that they could sell their "open source hardware" (still based on my design). The difference was that they were making money from the hardware while I was expected to give them the software for free (ironically, because it was also open source).
When I look back at this saga it is easy to pinpoint the mistake that I made, which was to rely only on the GNU General Public License. This license offers minimal protection against someone who wants to take over your work and claim the whole software package as their own (as happened to me).
In this modern Internet age there is a lot of glory associated with writing and making available some new and innovative software or device. Just look at the Arduino and Linux for examples. The problem is that there are many people who want the glory but are not prepared to do the work to achieve it. I am not sure how pioneers such as Linus Torvald have handled the open source minefield but I am prepared to bet that they have had their share of battles.
If I had known at the start how popular the Maximite was going to be, I would probably have trademarked the name Maximite and then worked to make that name the defining feature. That would have left the design and software as open but my rights as the creator would have been protected.
Another approach would have been to charge a small royalty for the design and software. That would have given me a say in what eventuated and would have at least provided me with a reward when my antagonists took over. But, then, I would have had to enforce the licenses, hire an accountant and engage in all the other paraphernalia associated with making even a small amount of money.
My new license is simple, it is still open source, it is just not based on the GNU GPL. It says (in summary) that the executable program produced by me is free to be distributed in any way for any purpose. The source is freely available and can be modified for personal use but it, and any executables generated from it, may not be distributed without first consulting me and obtaining my permission.
This licence is legally binding (see this reference) but, having said that, it still gives no protection from someone who will take what they want regardless of licensing provisions. Only a million dollars and a team of lawyers would prevent that.
This does not mean that people cannot make programs from the source and distribute them. I just want the chance to negotiate some sort of simple agreement first. I do not necessarily want royalties or payment but I would like the name MMBasic to be retained, the startup copyright notice to remain intact and attribution given to me as the author. Given what has happened in the past these requirements seem to be reasonable.
A few people have complained about my new license but they tend to be either purists or commercial people who see it as a restriction on their rights. It has also caused problems for some who would like to genuinely contribute to the source but also want a large share of the glory. In practice I have distributed the source (under the new license) to many people and they have had no problem with my license. Also, a multinational corporation is designing MMBasic into their equipment and they are happy to take the source under a NDA (Non Disclosure Agreement) which, in practice, achieves the same thing as my license.