Please Do Not Steal My Code, Mock My Analysis, and Present My Ideas as Your Own
minimaxir.com
minimaxir.com
I've seen exactly this sort of thing before in all sorts of walks of life, from school work to academia, from corporate environments to international politics - a bunch of mediocre, confused, out of their depth but don't know it types take someone (singular or plural) else's idea, barely repackage it, claim it as their own, wholeheartedly convince themselves that it is their own, and run with it - far too often somehow winning the battle of hearts and minds, as when the original author comes along going "Oi!", their readership or allies go "sore loser".
I've learned by this point in life to take people using my work, even if they do so spitefully or in ignorance, as a compliment. Fabricators usually get shown up sooner or later.
Originally there was the concept of reblogging where one site would publish something original and others would publish a small excerpt with a clearly defined link to them.
From there came the idea of the [via] link where another site published its own article based on information from the original publisher and attributed a small link.
And from there it seems like there is just so much republished content that sites think of the information as just public information and glean from wherever without any sort of attribution.
Maybe that's just me though.
[0] http://nedroidcomics.tumblr.com/post/41879001445/the-interne...
I.e. Hanlon's razor: https://en.wikipedia.org/wiki/Hanlon%27s_razor
Yes, a person can normally defend many matters without being attacked as identifying with any one matter. Yet this is one of those subjects, like plagiarism, where you would have to be ignorant or a thug to justify it.
(Note: Yes, I know the MIT license doesn't require it. I can read. But reading the Medium article, they KNEW they were replacing minimaxir, etc with "The Author". Doing this is really showing their ass.)
But I'm pretty sure many of them would if they saw it happening to their original works.
A fair number of times I've seen people accused of copying stuff that someone else copied form elsewhere (certain petty contacts I have on facebook who find jokes, repeat them without attribution, and don't like them being repeated again similarly without attribution). It often amuses me more than the original joke...
Fast forward a few months, I've presented 23 game concepts and they were all turned down as "not good game ideas. Two weeks later i stumbled into a meeting where one of those that turned down my idea, an artist, was presenting 3 of my ideas as his own. I companied to the boss who said: "Ideas are free". My retort was: "Sure, but the credit isn't".
That was many years ago and I still find those two people to be disgusting in their attitude.
You could have turned the whole thing into a game. If he's willing to steal a Smokey the Bear idea, just how ridiculous of an idea is he willing to steal?
I agree that it is good practice to show attribution, and not directly lie saying you wrote something yourself. However the MIT license doesn't require that.
There are a lot of open source licenses that give more protections to the original author. I have a theory that too many people choose MIT just because it is simple, but don't think through what they actually want from a license.
It's also kind of stupid to rip someone off. Assuming all the information here is accurate, this could really come back to bite the guy who ripped him off - someone is going to google what you've done and will end up with this blog post slamming you. If it was an honest mistake, the author should probably take the time to fix the posts and apologize.
EDIT: and also IMHO a dick move without talking to him first. Just wanted to remind people that these tools also can work for "normal" people, not just against them.
In this case, it was present in the LICENSE file in the github repository he links to.
Not preserving it is a clear license violation in this case, since they took substantial portions of the software.
If I made changes to the software, would I just add myself to the Copyright list of authors?
But it doesn't mean "claim it as your own", as long as it's not significantly altered.
No, you cannot relicense. Only the original authors can do that. You can add on top of the existing code stuff of your own under a different license, so that the combination of the two is under both licenses. Practically, it amounts to almost the same, but for example, you cannot remove conditions such as attribution, which only the original authors can do via a license that does not require attribution.
It depends what was meant by derivative and how this impacts the original code (encapsulated, modified, etc...). I was thinking more of when you use an MIT-licensed lib or 3rd party tool, or when you would reuse a code-snippet licensed as MIT and modify it. License and attributions remain, but only for that part of the code.
This is why a lot of projects (ie clojure) require some sort of contributor agreement so that the original authors can retain control while still accepting contributions.
Here's a super-long answer:
You can if you want attribution. the problem with this is that the licenses refer to the "above copyright notice", and most people put the license in headers.
So as you might imagine, if you have 50 files, with different contributors, and they all list their names in the appropriate notices so that you have different notices on each file, well then, Congrats, now people using the software have to reproduce 50 notices!
This becomes a mess, and it also turns out that other than the license referring to it, the notice is legally pointless.
It is cargo cult lawyering to have copyright notices for legal reasons. It isn't required in any berne signatory country (all 168 of them: http://www.wipo.int/treaties/en/ShowResults.jsp?treaty_id=15). It has basically no legal usefulness[1]
As a result, the better practice is to just use something that is legally okay, but more inclusive.
This is why when chromium was released, i had them put "The chromium authors" as the copyright owner. It's legally correct/valid, but means nobody has to add stuff to it.
[1] In the US, it prevents the innocent infringement defense. But the innocent infringement defense requires that A. you bought a license B. from someone you reasonably believed owned the code because of the incorrect copyright notice
Because of the legal standard, I cannot find a single successful innocent infringement defense since Berne.
Ass-hattery is often completely orthogonal to this concern. Just because I have the right to do something doesn't mean I should, and it doesn't mean I am not being a jerk by exercising that right it certain contexts.
There are all kinds of interesting claims you can make: https://www.law.cornell.edu/uscode/text/17/1202
That's ignoring any interesting state law torts.
(Of course, i agree with your general point that you shouldn't need a license to get people to stop doing any of this, but such is society and it has been for thousands of years)
Most communities have some unwritten social rules which participants have to adhere to (or be shunned). The open-source software community is open to anyone on the planet with an internet connection, so it's disingenuous to pretend they will all get along without conflict/misunderstandings.
> As my code is MIT-licensed, there’s nothing legally preventing the use of my code this way. However, I’m not going to change my workflow; I will still open-source my data visualization code, and it will have the same licensing. It wouldn’t be fair to punish others who have made very good use of my code.
> But outright using the code, without any attribution, and claiming it as your own when it blatantly isn’t, is a jerk move.
He's legally wrong, however ;-)
Let me clarify:
The MIT license does not prevent someone using the code to do a visualization without crediting him. It does, however, prevent taking those snippets without reproducing the copyright notice
For anyone who wants to argue about the copyrightability of it, i'll point out
A. Google is being sued for 2.6 billion dollars over 9 lines of range check code
B. While copyright has some notion of de-minimis, it's not a bright line in the code space. Copyright is more about originality. You can't really say, less than ten lines, do what you want. 10 lines of java does nothing. 10 lines of perl could be an entire OS.
If I were a Google exec I'd strongly consider dumping a few million in sponsoring some developers to make postgres's clustering options feature competitive with RAC. You'd never unseat it in some places but a long term commitment to support development from a heavy hitter like Google might go a long way.
No, there isn't. Which, by the norms and conventions of the gift economy that open source software defines, jerks like this should be named and shamed for this sort of parasitism. Which is what this blog article is doing.
You live by the sword, you die by the sword.
That's not true.
https://github.com/minimaxir/reddit-bigquery/blob/master/LIC...
> Copyright (c) 2015 Max Woolf
[...]
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
Neither the output of computer software, nor the ideas themselves within software, are protected by copyright. Not providing attribution is simply douchey.
Just following the minimum requirements of a license may not be a nice thing to do, but if you're going to be upset because someone did something you said they could but that you didn't really want them too, I can't really sympathize.
When I was a teenager I did something similar and was caught. I ripped off someone else's site design. The guy wasn't happy, but his response taught me a lot. I'm thankful he didn't put my name out there for the vigilantes of the internet to come calling and I learned to respect the work and creativity of others.
1. Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
That way, any reproduction of your work that wouldn't fall under fair use requires attribtuion. I'm not sure if the "substantial" part of the MIT license is the same scope as "fair use", but without that adjective, the BSD license might be more explicit about requiring attribution.I have had my own free software used in ways I don't like, but I don't write a blog post about it. After all, I made it free. You want to insult me, mock me, satirise me, print out the source code and wipe your butt with it; go ahead. That's part of what free software must allow.
Point is, require with legalese what you want people to do. It's your prerogative.
Above all, don't code call copying "stealing". This is not theft. It might not even be copyright infringement. Calling it "stealing" is undue indignation that indicates that they did something worse than what you explicitly allowed.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.[1]: http://www.pixelstech.net/article/1408152349-The-9-lines-of-...
It doesn't but the person lying about having written the code can still be shamed for it.
Separate code/assets/associated content, and license them accordingly.
False! This is the license:
>> The MIT License (MIT)
Copyright (c) 2015 Max Woolf
Permission is hereby granted [blabla do whatever you want] 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. >>
That copyright notice must be included and it wasn't.
I would normally try to avoid the snark, but, setting the code-duplication issue aside, the rest of your complaints seem a bit thin-skinned, put in the light of the kinds of criticisms you find in normal scientific literature.
See aakilfernandes' comment here [1], for the appropriate way to look at this other person's comments on your analysis.
Author of the medium post here. First I want to apologize to Max for not linking back to his blog, as he said I referenced his work and image multiple times and did not provide his name or blog in my post. I was in no way trying to pass this off as a novel idea as I said multiple times in the write up.
As for what was perceived to be critiques of his work I was merely trying to emphasize what I was doing differently in my analysis and project. His project is great, I just used a slightly different approach and wanted to highlight the differences. I definitely did not mean to come off as malicious or mocking, but upon rereading I definitely see how it did come off that way.
I stumbled across the code to make the day of week and times here https://github.com/minimaxir/hn-heatmaps/blob/master/hn_heat... after I had started the project. I had posted on StackOverflow http://stackoverflow.com/questions/33263015/converting-day-o... and had gotten an answer that seemed close but not quite perfect. So I researched it a bit, and happened to find that GitHub code. I figured that a couple of lines of code probably weren't worth attributing, but I can see now that I should have been more thorough in my attribution. I have since taken down the article.
I hope this doesn't happen to you, but in my experience version-2 is usually only a partial confession.
Good luck recovering from this with a lesson learned: you don't look bad when you shared credit and honestly represent your contributions. People will already associate you with the good thing you brought to their attention, deployed and customized for them, etc.
"Since this is a link to my blog post explaining how the visualization was created, I'm not sure if it's necessary to include a comment, but here goes:
"I used BigQuery to query this dataset, and then made the visualization in R using ggpot2. I normalized the data by dividing the total score for that hour of the week by the number of posts posted in that hour. For more info check out the article, or the commented code at the bottom."
I'm unable to see anything that calls for your comment, "As shown above, the quotes from the article itself were written with just as much unnecessary ego."
Do we really need more public shaming without at least a civil discussion between the belligerents? Remember Adria Richards anyone?
For example, I've used toooons of open-source code in my life, lots of snippets, and I've not attributed every single thing although I usually do. When I copy a pretty standard implementation of a sorting algorithm that is used in a minor way to present the final results of some fancy code I completely wrote myself, sure, contact me and ask me to attribute properly and I will. My intention is to build something new, and use some code here and there by others instead of reinventing the wheel, and sometimes you slip up and don't track your attributions properly.
But in this case, nothing new seems to have been created, it seems to have been almost entirely copied, variable names changed specifically for no real reason (it's one page of code, on a big project I understand changing variables to suit your project structure but on a one-pager...), and the work is even referenced as being inferior (by pointing to a 2 year old version, saying that is inferior, then copying the 1 month old version that already solved the issues you're pointing out on the 2 year old work, and not attributing anything). At that point, the notion someone is a cool dude looking to build cool stuff and made an honest mistake goes out the window, and the chances you're dealing with a guy who inflates his own ego while dissing an author he's copying and goes out of his way to muddy the evidence he's copying, pretty high. In this particular case I can really see where OP is coming from in not resolving this by email.
By visualizing the temporal position of posts matching a particular criteria, I suspect the author has accidentally just visualized the temporal position of all posts. There is no correlation between the criteria and the visualization.
It's a variant of the heatmap visualization error explained by xkcd[1]
The heatmap layout you're saying people copied has been done over and over again by almost everyone who's done data visualization on time series data. Is not it possible you looked at the same StackOverflow post?
Even if they where copying you I'd be ecstatic - you've inspired a bunch of people to pick up a dataset on go play around with it. That's wonderful thing, because the world needs more people doing this.
2) Complaining about your analysis being 'insulted' comes off as petty. Ideas/analysis aren't sacred and they should be insulted if someone disagrees with them.
I have zero problem with criticizing my analysis with contradicting information, but the manner it comes across is relevant.
You can say something is wrong without calling it "a key mistake."
I was also put off by that part of your article, even though I agree that he should've credited you. But I could not discover any insult in any of your citations.
(I'm not claiming wether or not there was a key mistake, just whether or not it is insulting.)
I can definitely now see why you would interpret what I wrote as being malicious or mocking. I'd just like to let you know that it definitely wasn't meant to be, and that I'm incredibly sorry that it came off that way. I did not intend to offend you; I was just trying to explain why I made the choices I made.
I'm surprised and disappointed - Woolf's victim complex is truly something to behold, and I hope it's not a sign of larger changes in our culture.
There, I paraphrased your post and threw it back at you. How do you feel now?
On one hand, you want to take the high road and not have to squeal. But on the other hand, if you don't speak up, that person will just keep on stealing from others, in theory.
Personally, I think the best thing to do is to call them out in a public but quiet way that doesn't make it sound like you are offended, e.g. posting a link to your work in the comments with a "Glad you could use my code: (link)". That way they know that you know that they did it, and that anyone who looks at the comments will see but maybe not make the connection that they stole it. This way you get the point across without having to publicly beat them over the head with it.
edit: guess this is an unpopular opinion. I don't understand why HN lately is so fond of public shaming, as seen in this thread.
The code posted in the "infringing" article does not appear to be a copy of the code in the OP's repository. Nor do the images (OPs are green, the "infringing" articles are blue).
The OP's code also does not have the header in the file, which makes innocent infringement a lot easier to do.
It really does look like the "infringing" author was inspired by the OP... but there's nothing being stolen that I can see here.
'For these reasons, all such projects are MIT-licensed, where anyone can freely evaluate, transform, and edit the code.'
'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.'
And that copyright notice on the code written by OP says 'Copyright (c) 2015 Max Woolf' (OP). The Medium author include that and posted his use of the code in the article and on github without this copyright notice.
Too many people see MIT as the same thing as public domain. It's not.
Wait, wouldn't normalization make the map look uniform, and not a population map?
The troublesome part is that there's not a good way for other people outside this group of comics to join in and ask for permission. All they can do is listen to the material live, and then kinda take it if they think they can get away with it.
I'm not sure if this is a problem that needs to be solved, but it's easy to see where these misunderstandings might arise. Everyone copies and steals. Sometimes it's unclear or uncool to ask for permission.
This is all separate from the main article here, where I think it's clear the copier is a huge asshole. I also need to listen to that podcast.
I'm not sure what the point of your comment is. Of course you can't prevent someone from copying your own without attribution especially if you're publishing it openly.
Apache License 2.0 seems to require more inclusions in its usage over MIT hence my thinking of switching to it but that doesn't mean people still won't. It's just a license.
And from one comment on medium, the guy was also trying to get help covering his tracks on Stack Overflow by cleaning up some code [0]. Seems like he outsourced pretty much every part of this ripoff.
[0] http://stackoverflow.com/questions/33263015/converting-day-o...
This sort of conflation has happened with my work as well - where a deliberate decision is taken by someone else as a "mistake" that must be fixed. Fine to have a differing opinion, but the author is right that the insulting tone is unnecessary.
Also unnecessary from the author's facebook post:
"I made a thing (again)!"
Wow, you made a thing! Again!? Good for you! This is so annoying, I can't help it.
Also, I think OP would have some legal recourse in that the MIT license didn't accompany the code in the copycat Medium post -- doesn't MIT require that you at least include the license in any modified or redistributed code?
Yep[1] (emphasis mine):
> 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.
> Copyright (c) 2015 Max Woolf
https://github.com/minimaxir/reddit-bigquery/blob/master/LIC...
So in this case, the MIT license would actually require attribution.
Also, you will always have people violating your unwritten assumptions unless you, y'know, tell them how you want them to use your stuff. Wishing people weren't dicks -> avoiding a social problem.
I can't help but think of K. C. Green and his tumultuous relationship with one of his early creations, dickbutt. He finally got sick of people stealing his work and got real[0].
https://community.smartthings.com/t/hack-the-amazon-dash-but...
I found that by Googling the code snippet, which the original author actually gives a shoutout for.
[0] https://medium.com/@edwardbenson/how-i-hacked-amazon-s-5-wif...
The kid is just really bad with appropriate attribution, but he does refer to the people that inspire him loosely. The issue is that he's posted code in various places without any direct reference, so anyone copying that code will attribute him, rather than the original author. Which sucks because he's literally copying large chunks of code 100%.
e.g. https://gist.github.com/theleybzon/4e721f17e5dfc642c738
is 100% similar to the source he copied it from (Benson).
https://gist.github.com/eob/a8b5632f23e75b311df2
He does refer to Benson in the article, but not the code or its repository. Anyone looking at the code would now attribute him, not Benson, the 100% original author. It's an issue but it's not out of malice or ego or anything like that in this particular case, I think he's just messing up a lot rather than trying to present other people's work as his own. (the OP's article does have hints of that, though)
Someone "stealing" your tools without attribution hurt's your internet reputation which can have a real world impact.