views:

1163

answers:

11

I posted an open source project to Google Code a while back under the MIT License. Recently someone told me they saw a project on GitHub that looked "remarkably similar" to mine. So I go on there to check it out and it looks like they took all of my code and replaced the author name everywhere and posted it as their own. Although I'm happy to share my code, that doesn't mean I don't like a little credit. They say imitation is the greatest form of flattery but this is a little bit too much imitation for my liking.

Next step, I go back and forth for a few days about whether I should let this go or make an issue out of it. I send the guy an email. He writes back a few days later and says it must be some misunderstanding and we seem to have some overlap in our functionality. Right. I go back and check his source and he has restructured the project, renamed variables and stuff to make it look different from mine. So at this point my case is not quite as clear of a ripoff case any more since he's doing some smoke-and-mirrors to cover up what he's done.

I guess this is a somewhat subjective question at this point, since I'm not sure both what I can do and what I should do to address this situation?

A: 

One thing you could do is to spread his name all over the internet as a person who does this. Public embarrassment is usually the best way to get people to do the right thing.

Mark
He shouldn't do this without having evidence that that person stole his code. Defamation can be pretty expensive if taken to court.
Caotic
@Caotic - Yes, I agree. But also, I just don't want that kind of fight. I might consider going to court over it but I don't want to throw mud around.
Mark Brown
I thought about the slander issue as well, but in his original comment he indicated that he saw the original code and then the updated code. I think he would have a good chance of beating a lawsuit if the code stealer tried to slap one on him.
Mark
A semi-relevant story on this: http://74.125.77.132/search?q=cache:http://www.jonengle.com/2009/04/accused/
Ross
+11  A: 

Isn't it pretty obvious from the history though? Unless he's done nefarious things to github, you should be able to prove the original code was the same as yours.

Jon Skeet
I think the question is, what can he do and what should he do and not whether he is able to prove or not...
Diones
I no longer see my original code in history. So I think he deleted the original project? I'm not even sure how GitHub works but I assume that must be what he did.
Mark Brown
So now there's no history at all and he's got completely different code? I'd leave it alone, to be honest.
Jon Skeet
I'm surprised to hear you say that.
Mark Brown
Well, at this point what is the problem? Yes, he originally ripped you off, and that's naughty - but is there *any* damage at this point? If he's got completely different code, how are you suffering? Ultimately you'll just waste time by pursuing it, I suspect.
Jon Skeet
I mean, it depends on how similar the code still is. If he's *just* renamed things, that's still an issue. If he's gone and actually reworked the code, that's not really the same thing. I still think you'll have a happier life if you just leave it though. It doesn't make his actions right of course.
Jon Skeet
@Jon Skeet: +1 for common sense.
Michael Myers
Yes, agreed, pursuing it further will have an emotional and possibly financial cost, and to some extent people who do this kind of thing perhaps count on you to feel that way, but at the same time, there's just the principle of the thing that bothers me and also what it means for OSS generally.
Mark Brown
@Jon Skeet: agreed. If it's changed enough to not be readily recognizable as a copy, it's changed too much to allow for merges to be done readily.
intuited
A: 

It's Git, you can obtain previous version from it.

vartec
As I mentioned to Jon Skeet, I no longer see my original code in history. I assume this means he deleted the original project and created a new one with his changes.
Mark Brown
+5  A: 

It seems to me that they are violating the MIT License agreement unless they include your copyright statement. You did provide something like the following in your code right?

Copyright (c) YEAR Your Name Here

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

D.Shawley
+2  A: 

Even if he's restructured the code after you wrote him, it's in version control, so you should have a record of what it was like before. Even if not, depending on how much refactoring he's done, you should be able to take side-by-side screenshots to show that it's the same structure. Has he also renamed the files themselves? If your projects have the same file structure across tens/hundreds of files, that's a pretty clear give-away.

Essentially, collect as much evidence as you can. Get anything that shows a direct comparison, and note how your code was checked in at an earlier date than his. Then write back to him with the (presumably overwhelming) evidence, and see if he still denies it.

DNS
As I mentioned in a couple of the other comments, I no longer see my original code in history so I assume this means he deleted the original project and created a new one with his changes. So the challenge with a DMCA takedown request would be clearly demonstrating the extent of the similarities.
Mark Brown
+44  A: 

First step: have someone impartial look at your google code and the other guy's oldest version from github. If they say you're imagining things, drop it.

Step two: decide if you want a fight. If not, drop it.

Step three: send a DMCA takedown notice to github, giving them all the particulars, and stating that you'll retract the takedown if the terms of the MIT license are respected.

MarkusQ
That's a good suggestion. I didn't know GitHub provided a way for you to do that but it makes sense that they would of course.
Mark Brown
Thank you for educating me.
ojblass
+3  A: 

From this point forward, if you want to accomplish anything, you need a lawyer. Fortunately for you, there's not a lot of precedent in the field of open source related IP law and a lot of people looking to draw the lines more clearly, so you may be able to get someone to work pro bono.

Should you wish to undertake what could be a strenuous and lengthy process, even if it is free, your next step should be to contact the Free Software Foundation and ask them what sort of legal resources they have available for IP theft.

If they're not willing to help, you might also want to ask Google and/or MIT if they have any resources available. After all, it's their license boilerplate that's being violated. They might see some vested interest in protecting its enforceability.

Jekke
FSF - good resource, thanks. No one else mentioned that. I'll add it to my notes. I really don't see Google or MIT wanting to bother with this though.
Mark Brown
+5  A: 

Clone his Git repo, to make sure you have a record of the history of his code. Ask him nicely to include attribution (since that's all the license requires, and shouldn't be too much of a burden for him to include).

If he doesn't respond to that, or refuses to add attribution, and you've checked and are sure his work is based on yours and not an independent reinvention, then contact Github, and tell them that he is violating your copyright (which he is, because the license that you released the code under requires the copyright notice to be left intact). If it gets to this point, you can always file a DMCA takedown notice with Github, though that is getting a bit heavy handed and should likely only be used if everyone involved has been extremely uncooperative, and you are considering suing as the next step.

Brian Campbell
As I mentioned in some other comments, I no longer see my original code in history so I assume this means he deleted the original project and created a new one with his changes. Cloning is a good idea, had I done it when I first noticed the problem and before I sent the email.
Mark Brown
If the new code is different enough that you can't say it's copied from yours, there's probably not much you can do unless you want to get involved in litigation. If the new code is clearly copied from yours (rearranging and renames aren't hard to see through), it might be worth contacting Github.
Brian Campbell
+14  A: 

There is one big lesson everyone is missing from this thread. You should not contact someone in this regard until after you have gathered all of the evidence.

ojblass
I agree with you that I messed up by not doing what Brian Campbell suggested earlier in the process. I gave him a chance to cover his tracks.
Mark Brown
Fighting your initial reaction is difficult. I would avoid some of the suggestions to drag the guy through the mud. Think about it camly and speak to a professional if you feel strongly enough to do so.
ojblass
+2  A: 

Since he made his copy public, it means he probably did it to get some credit (for example, to get a better job). You can easily prove that he had stolen your code. If you used subversion repository on the Google code, you can show that latest revision of your code is identical to the first revision of his code on github. If you prove this, he won't get credit for the stolen code and maybe you'll be able to convince github maintainers to shutdown his account.

Eugene Morozov
As I mentioned in a couple of the other comments, I no longer see my original code in history so I assume this means he deleted the original project and created a new one with his changes. Brian Campbell suggested cloning his project - good idea if I had I done it earlier.
Mark Brown
+2  A: 

There are a number of tools available that can 'detect' or 'measure' plagiarism in source code. Some are free - here's one resource for them.

Comparing your code with his new "modified" code could help to determine how genuine his "rewriting" of the code is.

Roddy