What should I say to the guy who ripped off my project?
March 29, 2012 6:18 PM   Subscribe

I'm a novice programmer. Someone just took a recent Python web project of mine, rewrote it in Ruby, and published it as his own work. My code was open, and I don't really mind, but I'd like credit. How can I ask politely but firmly and avoid triggering a defense mechanism? Lots of details inside.

I've been teaching myself to program over the past year. It's gone well: I've built a few basic applications in Python, JavaScript, and Django. The most complicated thing I've coded was a little web application inspired by Kevin Kelly's life countdown, which displays the number of days you have left to live, and asks Ben Franklin's favorite question: "what good will you do today?" (There's a link in my profile). It was a simple idea, a good way to learn a web framework, and something that's been online in some form ever since browsers could do basic arithmetic. I shared it with a few of my friends, and planned to post it to Projects sometime soon.

Today I discovered that a recent subscriber to my blog ganked the Django project (I posted my code on GitHub), rewrote it in Ruby, and published it as his own work. Here's a screenshot of his site, and here's one of mine with the same data plugged in. He didn't even bother to change the copy or the styling, although he changed all the CSS classes and cleaned up the HTML a little.

I understand that GitHub is open, and posting code there means someone else might use it. I understand that this is a trivial project, and these things happen on the internet. But I thought there was a pretty strong community norm on GitHub to give credit and ask project creators to clear up the conditions on using their work in the absence of an official license. (To be fair, he mentions using the actuarial tables from my application in his readme, but nothing about the design, copy, or concept).

This guy styles himself a professional programmer and wrote his version in a couple days. I was a complete novice when I started my project, and spent about a month learning Django the hard way. It really bothers me to see him tweet about his creative idea and read that the site was "Made for you by Doug."

What should I do? I'm annoyed, but I don't think I want him to take the site down, and I like the idea that my code is freely available, even if it means others might use it in a way I don't like. I've also already earned the biggest reward I'll get from the project by learning a lot of Django. But it still feels dishonest. My first instinct is to send an email and ask him to attribute my original site. How should I phrase this to avoid triggering the embarassed reflexes that accompany plagiarism? Should I even try to avoid this? Is there anything else I should think about or do before I contact him? I didn't think this would be an issue until I was programming more interesting things.
posted by ecmendenhall to Human Relations (16 answers total) 6 users marked this as a favorite
 
Send him an email. If he doesn't respond appropriately, make a blog post about it, post it on twitter, make sure you @ him.
posted by empath at 6:23 PM on March 29, 2012 [2 favorites]


Best answer: A relevant StackOverflow answer. The other guy did not have the right to do this. But it's not something where you had a lot of money or time at stake. So assuming for the moment that credit on his site or in his source code does you any good, you might consider whether the reverse accrues from looking petty about it anywhere people might see it (including, potentially, the other guy's blog) and whether you're better off sticking a generous license on it and just writing a blog post about how great it was to see this other guy borrowing your stuff.
posted by Monsieur Caution at 6:31 PM on March 29, 2012 [10 favorites]


I would suggest letting it go on the basis that people who do this kind of thing can't really be reasoned with in a way that will achieve the result you want (I mean, it's not like he did it accidentally and didn't realize, right?).

Of course he's not going to give you credit for the design, copy or concept - that would be akin to saying - hey, everyone, I'm a professional programmer, but I stole this whole thing from someone else!

Monsieur Caution's advice is a great way to deal with it in a positive way for you (makes you seem like a much bigger person than him). Everyone's a winner.
posted by mleigh at 6:38 PM on March 29, 2012 [1 favorite]


Best answer: Take it as a complement and move on.
posted by Fidel Cashflow at 6:41 PM on March 29, 2012 [5 favorites]


So when the next person comes along and sees this guys code and re-implements it in Perl, do you still want your mention in addition to to the Ruby guy's? And then somebody notices the Perl version and writes it up in Javascript do they have to have a "based on Perl version by C based on a Ruby version by B based on a Python version by A based off a similar idea by 'The First Guy' based on a relatively common idea seen round the world".

Forget about it, you've already worried enough about a trivial bit of code. Learn from it, pick a favorite license depending on whether you want your recognition as a condition of usage or not and use it in the future and move on.
posted by zengargoyle at 6:47 PM on March 29, 2012 [4 favorites]


This is not nearly an original enough idea for you to be worried about attribution.
posted by phrontist at 6:56 PM on March 29, 2012 [11 favorites]


Response by poster: Thanks, everyone. Please bear in mind that I'm really new at this, which is why I chose to ask for advice from a community I trust. I don't think my idea was original, but I also don't know enough to understand when to worry about attribution yet! I'm still in the phase where I get really excited when the thing I made doesn't break.
posted by ecmendenhall at 7:19 PM on March 29, 2012 [2 favorites]


I hate to be the bearer of bad news here, but he did not "steal your code".

He took your idea and wrote his own code in a completely different language.

The supposed stolen copy is incredibly generic. If you put 100 people in 100 rooms and asked them to write the copy for this particular app, dozens of them would produce basically identical syntax. Also, the look and feel is totally different.

So what's left? The idea. One that isn't even particularly original.

You don't own the idea.

Move on.
posted by toomuchpete at 7:45 PM on March 29, 2012 [4 favorites]


Best answer: Most of me is in the "Move on" category, since you're not out anything. However the part that bothers me about this is the guy is claiming it as his original work and using it in his portfolio as his own original work. If I was looking to hire him (and I sometimes hire programmers) I would be very interested in this. And I will Google code samples, etc to see how original it is.

There's nothing definite you can do about it but you might create a reverse paper trail so that if I do a search for the other guy it might bring up your code. I'd add comments and notations to your code and on the page that it has been ported into Ruby by [this guy]. Call him by name and include a link to his project page. Don't make it passive aggressive or anything. Just make the info available for those who might be interested in a Ruby version.
posted by Ookseer at 7:52 PM on March 29, 2012 [7 favorites]


I think you're entirely within your rights to be irked; 'stole' is strong, but if he really just re-implemented the structures you took the time to think up then certainly a little basic credit is the least he could do.

Personally I wouldn't sweat too much whether he got defensive; after all, the credit doesn't do you any good. You're irked by a lack of basic courtesy from this guy. If he gets his hackles up when you mail him and say "hey bud, my github was free for the looking but it sure would be nice if you just credited the work I saved you I think that would be basic courtesy."

Is it possible he didn't liberate/reimplement your stuff?
posted by phearlez at 8:24 PM on March 29, 2012


Best answer: Hiya! I'm that guy!

I saw you added me on Twitter (or Tumblr?) and through looking you up found out your cool What Good site and became a member of it, thinking it was a lot further along than it appeared to be. Finding out you were also a beginning coder, and had put the project up in Github, I thought to fork a quick Ruby/Rails version of just his home screen (the lifespan remaining part).

The fact that it was forked in Ruby instead of Python probably shouldn't matter, being public code, but I can see that this has caused you at least enough stress to Ask Metafilter. I have no interest at all in doing any of the other parts of your project, I just thought the time remaining section was a cool way to give distance_of_time_in_words a workout and threw it together that morning.

As for everyone else's debate over "theft," "talk is silver, code is gold," "he can't be reasoned with," and a lot of other angles made here, people will argue and make assumptions far outside of what the reality of a situation is. I assumed that because you had found me first and had at least one way to contact me that you'd have said something were there a problem, but I should have also contacted you to show you the fork.

So less than two hours after the Ask above, I've found out about there being an issue, and this should at least get the conversation ball rolling away from strangers and at least toward each other. Absolutely email me (doug@dougstewart.org), or tweet, or Tumblr-message if you want to talk more about this. I've already added a link to What.gd in the meantime.
posted by Doug Stewart at 8:47 PM on March 29, 2012 [27 favorites]


Additional blah-blah: I had taken its availability in Github and its own footer of "A totally non-commercial thing by E.C. Mendenhall" as signs to be open game for your data.

"Made for you by Doug" (google link) is a dumb tag I add to many projects so I can see if they've ever made the Google index, and like your footer, "a totally non-commercial thing."
posted by Doug Stewart at 8:50 PM on March 29, 2012 [1 favorite]


(This is the last I hope to comment here, I really shouldn't have read the comments of others)

As for google-searching for the "originality" of code, and for people who don't actually program, the part "taken" is a one-trick-non-technical pony called a date difference, which is developer talk for addition or subtraction of two numbers.

You have a beginning date supplied by the user (birth date) you have in this case an expectancy (an addition) and from that you can get a lot of other boring side-numbers. How many days, minutes, hours, etc. separate the two, what one is when added to the other. It's the same cake shown from as many angles as you want to slice that number up, but it's nothing more than addition or subtraction. This is literally a one-line function built into the core of most languages, and is in no way an actual business method. (Or in this case it's not even the same line being Python is not Ruby.)

While he might be able to make something great and commercial from the What Good project of tracking what good someone has done in a day, the comparison of two numbers is not going to be the core of anyone's commercial project or even "portfolio piece."
posted by Doug Stewart at 9:02 PM on March 29, 2012 [2 favorites]


Response by poster: Hi Doug! I realized this might happen after posting the question. We're both fans of "Notebook on Cities and Culture," which probably correlates with MeFi membership. I'll send you an email.

I guess this question is pretty much resolved. I think the real lesson is to put clear licenses on everything from the start. That would have prevented the ambiguity and assumptions made by both of us, and made me think about how much I care about copying and re-use before it was possible at all instead of immediately after it happened. That's the whole point!

I'd also like to point out that I was very careful not to call this "stealing" in my question, because it never was. It's clear that Doug saw my project and copied it, but that's an entirely different thing, and after stopping to think for a while, I don't really mind.
posted by ecmendenhall at 3:51 AM on March 30, 2012 [4 favorites]


I don't know..."ripped off my project" pretty much says "he stole it" to me.

There's some of this happening in the WordPress community. Someone builds a plugin, someone takes it, improves it greatly, and sells/distributes it. The original person feels like they're owed something beyond recognition.

That's kind of human nature, but at the same time, you agreed to release your code to the wild for anyone to do what they wanted with it. I think many new programmers don't fully understand what their agreeing to, and this is SUCH an important part of the programming community from a learning aspect (I'd bet you looked at someone else's code in your learning process).

The benefit for the community as a whole is exponentially greater when people understand and agree to abide by things like the GPL.
posted by chrisfromthelc at 8:04 AM on March 30, 2012


Yea, as a professional software engineer, this sort of thing happens all the time.

One of the things which distinguishes a 'professional' from a 'beginner' is, a professional knows how to leverage the work of others instead of reinventing the wheel every time.

One should always give appropriate credit, and the easiest way to ensure other professionals properly respect your work is to pick a good license and have a comment on every page of source code to indicate the licensing scheme.

Consider the many algorithms a programmer uses as they write code, sorting algorithms, data structures, parsing algorithms, etc. The vast majority of these algorithms were created in the past 50 years, by devoted computer scientists who wanted nothing more than to push forward the envelope of human knowledge, and to help their fellows build better, more efficient software systems.

Software development is a unique discipline; copyrights and patents will only slow down the pace of software evolution, and I think every developer should be thrilled to participate in the grand human art/math/logic experiment which is the information revolution.
posted by satori_movement at 10:14 AM on March 30, 2012 [3 favorites]


« Older Did I just give Daniel Day Lewis a penny?   |   Bar/Restaurant for board gaming near Midtown... Newer »
This thread is closed to new comments.