The Spirit of Open Source - Netiquette can be subtle
I got a disturbing email today on Flo's mailing list (of Notepad2 fame). Florian Balmer is the author of the most excellent Notepad2. This is a great "it just works" editor. It's Notepad, but goes one better, I like to say. I've promoted it on my Tools List and in countless talks. Notepad2 has been developed over ten years and is in active, ongoing development. Florian has posted most recently about his adventures in Unicode.
Flo was surfing and discovered http://www.notepad3.org.
This is uncool for a number of concrete reasons.
UPDATE/CORRECTION: I screwed up the licensing so my only complaints to the author of Notepad3 is that the name makes for a tacky fork and that the changes appear to be not significant in their scope. I apologize.
Notepad3 is a fork of a older version of Notepad2, specifically the GPL'ed Notepad2 1.0.12 rather than the BSD Licensed Notepad2 2.1.19. The GPL'ed Notepad2 was released on June 25th, 2004. The BSD licensed version was released on April 7th, 2007.
See, it turns out Netiquette CAN be subtle!
The distributor of Notepad3 did not include Florian's license.
- UPDATE/CORRECTION: The license still is intact in the .c source code files, just not in the main license.txt. The full copy of the original Notepad2 license.txt also appears in Notepad3's source zip in c165/license.txt.
Notepad2 is distributed with this license (I snipped the copyright all caps at the end for brevity) as its main license.txt. Florian's name doesn't appear anywhere within the Notepad3 root license.txt, which appears to be an aggregate of a number of licenses of the sub-components.
- UPDATE/CORRECTION: Flo's website is referenced in the license.txt's header.
- The Notepad3 "creator" didn't make any attempts to include his changes in Notepad2 or give Florian a heads-up.
Now, these next reasons are my own opinions, and possibly subtle. You tell me. These are my opinions.
- Mildly Tacky: They made up a new name and registered a new domain for the project. The new source can be only by found by digging around the main site.
Can you find it?
UPDATE/CORRECTION: I think the source should be linked directly to from the main page. Rather, it's under download/src using the navigation on the left of their site.
- Tacky: The new entity, Notepad3, arguably doesn't contain substantive improvements, certainly not enough to be called an entirely new version, and definitely not Notepad3. You can see the sum total of the changed lines on Flo's post.
- Rather Tacky: They took the time to put the new entity has been put up on Softpedia and promote it without a single reference to Florian or Notepad2.
It's not that Florian doesn't appreciate improvements. He has put a number of modified versions his side, including a very minor update by Wesner Moise and I. If he wanted to incorporate these changes into the mainline he could easily. I included a source diff for him, but most importantly I didn't make it look like his work was mine!
Modified Versions of Notepad2
- Notepad2 with Lua syntax highlighting - based on Notepad2 1.0.12.
- Notepad2 with NSIS syntax highlighting - based on Notepad2 2.0.18.
- Notepad2 with Ruby syntax highlighting - based on Notepad2 1.0.12.
- Notepad2 with Ruby syntax highlighting - based on Notepad2 2.0.15.
- NotepadCrypt - Notepad2 2.0.15 with file encryption features.
- Notepad2 MOD - SourceForge project based on Notepad2.
When people do Open Source work, one of the things that is almost universal is the natural human need for appreciation. For attribution. One overarching intent of the whole Creative Commons with Attribution license and most Open Source Licenses is "just don't remove the part that says *I did this!*"
Flo says it well, albeit with some understandable passion:
Nonetheless, the author has chosen the name "Notepad3". Compared with the original Notepad, Notepad2 represents an evolution with new features. "Notepad3" implies the same, but with even less features, without any new development. Seems that the play on words is used to fool users into believing that "Notepad3" is something more advanced. The popularity of Notepad2 is being taken advantage of to attract some attention ― I have no idea what else might be the motivation of the author.
The author justifies the publication of "Notepad3" with the added installation and documentation (which is actually my documentation, and has always been there). Innovation equals zero. This causes confusion about the different versions available, and the reputation of my software is harmed when associated with that kind of sloppy, offending descendants (and, it makes me think how indiscriminate some well-known software sites are concerning additions to their repositories).
I have no problem with new versions of my software being released, even with minor changes ― my licensing conditions are fully met. The problem here is that the author made minor changes to the code and branded it in a very disingenuous and deceiving manner.
Perhaps this is just a faux pas, a minor misunderstanding. However, I would encourage Readers who are interested in getting into Open Source to think about these issues when getting involved in projects.
My Own Experiences in Open Source
I've had a lot of great experiences and one speed bump.
When I wrote WatirMaker and released the source, I had written it from scratch. Each time it got forked or written again or modified, the folks who did it let me know! They asked for help! I offered help! It was a lovefest - the kind of lovefest that I think Open Source should be.
The email conversations usually went like this:
Dude, heads up, I want to do _____
Sweet! Rock on, let me know if you want help with ____ or if/when/how we can put _____ back into the source. Wanna join the project!
Sweet! Dude! Rock on!
And the results were cool.
- Michael Kelly and John Hann wrote WatirMaker.rb, and command-line script in Ruby. Sweet.
- Rutger Smit overhauled the app and we re-released it as WatirRecorder++ and put it up at http://watir-recorder.openqa.org/
- My English buddy Richard Griffin not only fixed a bunch of my sloppy bugs but created WatinRecorder++ (Yes, that's WATIN, not WATIR!) and blogged about some cool design patterns using Wati*Recorder as a jumping off point.
- Alex Elder emailed me to refactor WatirRecorder. I said rock on. You can see there's a burst of work happening over there with checkin's just last months.
Notice how everyone is genial, chatting, and attributing? Even in Richard's WatinRecorder post, by now likely a complete re-write of my stuff, was thoughtful enough to thank a bunch of folks.
DasBlog, now the work of dozens, originally came from Clemens Vasters, who originally got it from Chris Anderson's BlogX had a similar issue happen when a gentleman forked our Source Code and created an entirely different project out of it with an all new name. This happened two years ago and he's since changed/refactored the project pretty substantially, but it still felt crappy at the time and the team was rightfully torqued. At the time, all that had been done was a recompile under VS2005 and a check-in as a new project with a new name.
Justice Gray blogged about it soon after:
Saying that "in the long term, ThinkJot will move away from the original dasBlog source code", implies that all you've done is make some minor project ports, throw in a new DatePicker and call this your own project. For sure, it's probably legally fine given the terms of the open-source license, but it leaves a bad taste in my mouth. How would you feel if you worked on something for a long time and then someone just took all the work you did, rebranding it and called it their own? I mean, c'mon!
Fortunately the author posted about this later and admitted this most important point:
"My biggest mistake has been that I never talked to the dasBlog team previously about this. I admit it, and apologize."
And I give him full credit for that simple admission. Folks that copy/fork are rarely evil or malicious. We're all just trying to move the ball forward, and perhaps that's the same in the case of Notepad3. However, that doesn't change the fact that talking to folks up front can make all the difference.
Unfortunately, at this point, this issue has soured Florian considerably:
I have been working on Notepad2 over more than 10 years, altogether. The above hacks may have been done in a few minutes.
There have been similar cases in the past, already, but this one really beats everything. I'm not sure if I'm going to release any more open source versions of Notepad2, in the future. Ain't fun like that.
Let's encourage Florian to keep up the great work and as we go about our lives as members of the Open Source community, let's remember to appreciate all the hard work that folks put into their various projects and that just because Copy/Paste is easy doesn't make it right.
My Tips? When in Doubt...
If you're doing Open Source and you're unclear about Netiquette, then:
- Just ask.
- Ask someone working on a project how they do it.
- Err on the side of attribution.
- You can't attribute or thank too many people, especially if you've copy/pasted something.
- Reach Out.
- Email the authors. Talk to people, join mailing lists and for goodness sake, avoid working in a vacuum.
- I still get emails about GlucoPilot, a shareware app I wrote almost 8 years ago. If I had the rights to the source, I'd give to the world. (Still working on that, actually)
- Appreciate your peers and everyone that contributes to the community.
- Jeffrey Blankenburg has a clever idea, declaring July 3rd, "Contribupendance Day," while slightly ethnocentric ;) it's a great idea where Jeff is going to tell 5 people in his peer group how much he appreciates what they do and how they contribute by writing compliments and recommendations on their LinkedIn and Plaxo or Facebook pages. I think I'll do the same!
What do you think?