TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

How TaxCloud Stole My Code and How I'm Doing Something About It

50 pointsby drewtempover 12 years ago

16 comments

chazover 12 years ago
TaxCloud posted sample code for Zencart in December 2010, and it appears to me that the variable names were already established. Some of it is below.<p><pre><code> // func.taxcloud.php function verifyAddress($address, &#38;$err) { global $client; // Verify the address through the TaxCloud verify address service $params = array( "uspsUserID" =&#62; USPS_ID, "address1" =&#62; $address-&#62;getAddress1(), "address2" =&#62; $address-&#62;getAddress2(), "city" =&#62; $address-&#62;getCity(), "state" =&#62; $address-&#62;getState(), "zip5" =&#62; $address-&#62;getZip5(), "zip4" =&#62; $address-&#62;getZip4()); [...] </code></pre> Post: <a href="http://dev.taxcloud.net/2010/12/30/taxcloud-example-code-ready-for-zen-cart-developers/" rel="nofollow">http://dev.taxcloud.net/2010/12/30/taxcloud-example-code-rea...</a> Code: <a href="http://morecarts.taxcloud.net/cartcode/" rel="nofollow">http://morecarts.taxcloud.net/cartcode/</a>
mdasenover 12 years ago
I'm curious what license you're using (since there's no mention in the readme). It seems clear that you wrote this to be open source and help people. Since there's no license information, third parties (ie, people who aren't you) should assume that they have no right to use it (that it's proprietary since there's nothing offering other rights). You've said it's open source, but under what terms can I (or TaxCloud) use it?<p>A lot of open source licenses don't require attribution. If you had licensed this under the GPL2 or MIT licenses, would you still consider what they did wrong?<p>It's crappy (in the plagiarism way) to take someone else's code and try to make people think you wrote it. You haven't explicitly licensed your code under any license and so, to be conservative, third parties should operate under the assumption that the code is proprietary. However, many times open source does allow you to fork something and make it your own. For example, Joomla is a fork of Mambo. The codebase has evolved, copyright notices have been changed, and there isn't credit back to Mambo on the website. If it were a less known project, many people might assume that it all originated with Joomla (and, in fact, with Mambo seemingly dead and it having been quite a while since the fork, I'm guessing a lot of newer people wouldn't find out).<p>Often times, open source licenses don't require attribution. It might have been that the person at TaxCloud got your email telling them about your open source project and assumed an MIT license for it. One shouldn't assume things like that, but people make more egregious errors.<p>Anyway, it would be nice to know what license the open source code is governed by (and this is true for many more projects that just don't have a license file) and I hope you're able to resolve the situation in a way which makes things better for you.
评论 #4650769 未加载
评论 #4650828 未加载
autarchover 12 years ago
Looking at the examples it's really hard to know if this stuff was copied. How else would you write this sort of stuff? This seems like really simple, straightforward code.<p>A lot of it seems to be about creating a hash based on a well-defined data type. Is there some other way of doing this that makes sense in Ruby?<p>Similarly, he points out similar variable names. If you have a variable containing an API key what do you call this besides "api_key"?<p>Maybe these are just poorly chosen examples, but if these are the best evidence the author has I don't think there's grounds for flipping out quite yet.
评论 #4650690 未加载
评论 #4650719 未加载
jakejakeover 12 years ago
The author writes about his love of contributing to open source, but since his code has no license this may not even be open source code at all. The author should put some kind of license with his code so that it is used the way he wishes. If he wants credit, there are attribution licenses out there. GPL may help to get contributions back to your code. Different licenses will have different results.<p>Also, hypothetically, if the official API was GPL and he used that as a starting point - in fact he could be the one in violation of the GPL for not including copyright info in his code.
评论 #4650775 未加载
jrockwayover 12 years ago
Although you still get copyright protection without it, a comment at the top of every source file with your name and the license makes it very easy for people to figure out who owns what. You didn't have any license, you didn't have any authorship or copyright headers in your source code, and then you asked the company that "stole" your code to take a look and share the code with others.<p>The problem is that you're communicating in a very vague manner: you should be explicit about all of your expectations and intentions so others interacting with you don't have to guess what you're thinking.<p>Imagine how this interaction would have gone if your source file started with:<p><pre><code> # Copyright (c) 2012 My Consulting Firm # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see &#60;http://www.gnu.org/licenses/&#62;. </code></pre> And you emailed them saying:<p>"Hello. I've created a gem that's licensed under the GPLv3 for interacting with your service. Please feel free to link to it or redistribute it on your website under the same terms."<p>My guess is: this problem would have never occurred.
paulsutterover 12 years ago
What do you really expect from them? Being vague isn't helping the situation.<p>- If you just want attribution and an apology, ask for that.<p>- If they dont know what you want, they may just remain silent.<p>It was probably a lower-level mixup, some programmer was in a hurry, had too many tickets under his name, and rushed out a solution. The company was probably unaware.<p>Making veiled references to some action you might take just means they will refer it to a lawyer, who will say, "Just keep quiet and dont change anything right away. It's unlikely he has an Oracle-vs-Google sized budget to make a case, and anything you say or do might work against you. Rewrite it as soon as you can think of another justification, and be sure to create an email trail for that."
评论 #4651256 未加载
calvinover 12 years ago
Drew's gem doesn't specify a license. It may be open source, but it's not clear what the license is. That doesn't help in this kind of a situation.
评论 #4650681 未加载
评论 #4650676 未加载
评论 #4650680 未加载
jpalomakiover 12 years ago
A general request (not specifically towards the author): If you release a project under open source license, please be specific about what kind of attribution you would like to get when your project is used within a product.<p>Giving credit would be so much easier if one could use for example Maven or npm to automatically create a list of attributions that could be then formatted and included in the "About page".
评论 #4650948 未加载
syntaxgoonooover 12 years ago
I think you are creating a storm in a tea cup. I agree that there has been some copy pasting of code blocks. But that's life and the nature of writing.
Cushmanover 12 years ago
That require is a smoking gun for sure, but I'm not too sure about the copyright claim. It's <i>their</i> copyright on the API in the first place, and there are a limited number of ways to wrap an API in Ruby.<p>It's sleazy to cut and paste code without attribution, but this post comes off as way too confrontational considering the company hasn't had a chance to respond yet. (Which response is perfectly likely to be "Ah shit, brain fart, sorry.")
评论 #4650808 未加载
jenandreover 12 years ago
I think the arguments here are weak. Using a builder is extremely common in API wrappers like this (I just did this myself wrapping an API in Ruby). In the second example, the code you pointed out was similar really wasn't that similar. Someone else made a good point: because this is an API wrapper there's really only a limited number of ways to do things.<p>Still, there's a good chance that someone looked at it to see how you did things -- these things are hard to prove. Regardless, I think your response is a bit over the top? Does it warrant this nasty blog post, or could you have just emailed the dude and said, "Hey, I noticed you guys may have been inspired by my code, a lot of appeared similar. I am licensing under GPLvXXX [or whatever your license is] and it requires some attribution if you guys did use some of my code." I suspect they would have happily given it to you. If they refused, well, then maybe then would have been the time for the rant. :)<p>No offense, but the way you handled this, you are coming off like some guy having a temper tantrum on the internet, instead of a developer with valid grievances handling this maturely.
lubujacksonover 12 years ago
Depends on the open source license... some of them totally allow commercial ripoffs without attribution.
zunkyover 12 years ago
Out of curiosity, what program was it he used to view the source code? The one in the screenshots.
onedevover 12 years ago
I sent a message to them regarding this, and I hope they do something about it.
kposehnover 12 years ago
What text editor is that you are using?
评论 #4650659 未加载
评论 #4650658 未加载
评论 #4650666 未加载
phpluverover 12 years ago
fuck em