Like most nights, tonight I was reading the public GitHub News Feed to keep up with interesting projects that people I follow might create, follow or contribute to. One that caught my eye immediately is a project called FCBKcomplete, currently with over a 100 followers and 22 very active forks.
As I was glancing the list of files, I notice one called close.gif, which specially intrigued me: when I released the initial version of my project TextboxList (MooTools, jQuery), that’s exactly what I had called the sprite image which contained the normal, hover and active states of the boxes close buttons.
But there was a small problem: in the entire GitHub repository, I couldn’t find a single mention of my name or my website.
The early days of TextboxList
Around January 2008, I announced the first open source widget released under the MIT license intended to mimic the behavior of the Facebook tokenizer.
The header of the source file, still up today, contains two interesting bits:
Credits:
- Idea: Facebook + Apple Mail
- Caret position method: Diego Perini <http://javascript.nwbox.com/cursor_position/cursor.js>
I included credit for the ideas and sources of inspiration, and for a relevant key piece of source code which had been written by another developer.
The second interesting bit is my copyright message:
/* Copyright: Guillermo Rauch <http://devthought.com/> - Distributed under MIT - Keep this message! */
When I started writing this project, I was a 16-year-old high school student trying to seek some recognition for a piece of work given away for free. Today, with the message formatting unchanged we can find:
/* Copyright: Emposha.com <http://www.emposha.com/> - Distributed under MIT - Keep this message! */
The problems
- The file close.gif was copy-pasted
-
The stylesheet was entirely copy-pasted.
For the first release of the project, I wrote an article about the thought process behind the creation of the widget.
One of the core ideas emphasized in it is that you should start by having the markup and CSS be as bullet proof as possible, as you don’t want to hinder the JavaScript development with debugging related to style, positions, floats, and you don’t want to solve problems within JavaScript that CSS alone can solve. Years later, this is still a design principle I live by for the creation of web applications
-
At 550 lines of code, it has considerably less features than my very old version at 350 lines of code. Namely, no keyboard navigation of the boxes, one of the premises of the original Facebook tokenizer.
Since my first release, the entire codebase was re-written, with full documentation and many more characteristics. This version wasn’t released under MIT. However, hundreds of people are using it for free, others have chosen to willingly contribute (as I have no mechanisms to prevent unfair use), and special licenses were given to open source projects, companies with dozens of subdomains and very well known web application makers.
- Many parts of the code show a striking resemblance, which of course is not coincidental.
- Even the JSON data used to feed autocompletion values, which is a collection of my favorite argentinean writers, has been blatantly reproduced. Quite interesting considering the author seems to be from Israel, and I’m sure he wasn’t just including it out of passion for good foreign literature.
- Under these conditions, it managed to sneak dozens of commits from people in the community, including Chris Williams. It’s left for me to wonder if they ever learned of all the effort that took me to research this particular problem and execute its solution, now shown to the world under a very intriguing brand.
Update: special thanks to Chris Williams who updated his fork to reflect proper copyright