6 ms·
Facebook iPhone app takes OSS code without attribution
- losethos 16y agoYou realize the hipocracy of you OSS clowns, demanding protection while hating patents. Do you wish for no professional programmers? Is that utopia? No one gets paid for programming? I for one will fight OSS brainwashed zombies. Wake-up, everyone! Why do you side with OSS? Earlier I explained how you could get to the top of this site with "Canabal neandertals evolved huge brains." The psychology of all these people on the sites I visit is so transparent. I for one don't believe OSS claims without proof. http://www.archive.org/web/web.php http://www.archive.org/web/web.php That site has timestamped code. Where's your code? Unfortunately, that site lags a year or two. We are in an epic battle where the vary programming profession is at stake. To arms! Fight OSS everywhere! It's funny when OSS guys complain about privacy. You gotta pay the piper one way or another, duh! I made LoseThos and had no option but free with the existence of Linux. It did save me from stress of warrantees and actually running a business.
- iaskwhy 16y agoThe title is somewhat misleading since the author of the post (and also the coder of the OSS feature used) is not against Facebook using it on its iPhone app. He talks about how they use his code on their three20 library without attribution.
- billforsternz 16y agoI don't see anything misleading. The problem is the lack of attribution. The title clearly indicates that.
- iaskwhy 16y agoThe problem is not the lack of attribution on the iPhone app but on the three20 library which is something different even if the iPhone app uses it.
- mikeknoop 16y agoDoes anyone have a video of this UI element in action for those of us without iOS devices?
- mortenjorck 16y agoHere is an example of the behavior implemented in Titanium: http://vimeo.com/12169097 http://vimeo.com/12169097
- netaddict 16y agoThat is rude and also a license violation.
- deleted 16y ago[deleted]
- eli 16y agoYeah, that wasn't very polite. But... didn't they do exactly what the license asks of them? If you don't want people to be able to use your code that freely, then don't use such a permissive license.
- deleted 16y ago[deleted]
- steve19 16y agoThey used the Readability algorithm and did attribute. How is that anything like taking opensource code and not attributing?
- deleted 16y ago[deleted]
- Mathnerd314 16y agoThe files do essentially the same thing. So consider: is it possible that two development teams, implementing the same feature, will use the same style of implementation? The code diff he presents seems to be UI code. How many ways are there to set a label's font? (though having the same exact pixel values is perhaps a bit odd) The code is structured differently, named differently, and (to my untrained eyes) even appears to differ in some implementation details (such as setUpdateDate, which uses NSDateFormatterShortStyle, versus setCurrentDate, which uses its own custom format). Perhaps the author is simply feinting at shadows.
- flyosity 16y agoIt's not about setting the label's properties in the exact same way & order (okay, that's also fishy), it's that they named all their UI elements the exact same names: _lastUpdatedLabel, _statusLabel, _arrowImage and _activityView. I'm not sure why you said it's named differently, all the UI elements are named the same according to the screenshot they posted.
- Mathnerd314 16y agoHe states that the code in the screenshot is "normalized" for a better diff. I believe this involved adding underscores to all of the variable names.
- jfager 16y agoI wondered that, too, but if you go in and look at the projects, the pedigree is clear. Even if you're going to use a similar implementation style, the likelihood that you independently come up with the exact same instance variable names and initialize them in the exact same order is pretty small. That said, this really seems like an out-of-proportion response to me. As much as I dislike FB, they're pretty decent OSS citizens. I think you have to give them a chance to make it right before throwing up a blog post.
- mtigas 16y agoI agree that implementation-wise, there are probably only so many ways to do this. While the overall algorithm is basically the same (see http://github.com/facebook/three20/commit/0edd0ca58bf3b352e7ab4b001c3470a8c1b70ae5#L2R89 http://github.com/facebook/three20/commit/0edd0ca58bf3b352e7... versus http://github.com/enormego/EGOTableViewPullRefresh/blob/master/EGOTableViewPullRefresh/Classes/Controller/RootViewController.m#L189 http://github.com/enormego/EGOTableViewPullRefresh/blob/mast... ), I'll give the Three20 folks credit for cleaning their implementation up into a view+delegate system. It's a bold claim to say that your particular implementation has been "taken" when this sort of open idea and algorithm reuse happens all the time. In this situation, I'm sure once the dust clears credit will be given where it's due. Tangent: Who wants to guess that some of the HN commenters up-in-arms about this are some of the folks who are cry foul about software patents?
- andy 16y agoI'm going to use pull-to-refresh in three20. They probably just forgot to include the license. Not malicious. I tip my hat to the author of the code.
- deleted 16y ago[deleted]
- grinich 16y agoBefore anybody blows this out of proportion... I've used Three20 a ton, and actually build my Hacker News iPhone app using it.[1] I've used the drag-to-refresh header a bunch. This code was added to the Three20 framework months ago via somebody on GitHub. One pull request, and it was in the main repo. The project is currently maintained by Jeff Verkoeyen, a full-time student. Three20 makes use of a ton of other open-source projects (JSON parser, etc.). Whoever submitted this code just didn't add any attribution. When Facebook updated their app, it was probably only 2-3 lines to add. And since it's been in the codebase for months now, and a bunch of other apps use it, they probably figured it was no problem. Although flaming blog posts feel good to write, a much more constructive action would be to call up Facebook and talk to them. Or email Jeff. Or post to the Three20 Google Group (almost 1k people). Or submit an issue on GitHub. Or anything really. Not to mention the fact that they stole it from Loren Bricher (Tweetie) in the first place... [1] http://michaelgrinich.com/hackernews http://michaelgrinich.com/hackernews
- JMiao 16y agoagree that it would've been wiser to contact jeff directly before the press-friendly call out. jeff is straightforward, and this looks like an honest mistake.
- mtigas 16y agoInitial commit: http://github.com/facebook/three20/commit/0edd0ca58bf3b352e7ab4b001c3470a8c1b70ae5 http://github.com/facebook/three20/commit/0edd0ca58bf3b352e7... jverkoey looks to have implemented this himself. Actually, looking back through the network graph (http://github.com/facebook/three20/network http://github.com/facebook/three20/network) and commit log (http://github.com/facebook/three20/commits/master http://github.com/facebook/three20/commits/master) there really aren't ANY credits regarding merged-in patches or other contributions.
- mtigas 16y agoI take that back: There are rare commits such as http://github.com/facebook/three20/commit/807dbda1c8cb85f09b98767de67ca7d7454b4fbf http://github.com/facebook/three20/commit/807dbda1c8cb85f09b... which explicitly credit an author for the patch. <del>I hate to say it, but the current system (i.e. all commits through jverkoey) has the major drawback of putting code accountability in nobody's hands but Joey's.</del> --- Rescinded: http://github.com/facebook/three20/blob/master/CHANGES#L93 http://github.com/facebook/three20/blob/master/CHANGES#L93
- deleted 16y ago[deleted]
- rob_rasmussen 16y agoThe three20 code has shuffled around a lot in the last 8 months or so, but if you look at the change log here http://github.com/facebook/three20/blob/master/CHANGES#L93 http://github.com/facebook/three20/blob/master/CHANGES#L93 you can see that the maintainer, Jeff (who was a college student at the time and has worked his butt off on three20) is thanking a 3rd party for contributing that code. There's attribution for other code in three20, so I think it's safe to say that Jeff didn't know. It's also possible that there was simply a miscommunication somewhere along the chain. I wouldn't assume this is anyone being evil or devious until we hear the full story, and I expect the lack of attribution will be fixed quickly.
- quadhome 16y agoThe three20 dev admitted it was a mistake and took immediate corrective action. http://developers.enormego.com/view/what-happened-common-courtesy-facebook#comment-70135140 http://developers.enormego.com/view/what-happened-common-cou... The majority of developers don't understand the nuances of copyright law; and, so OSS code is often mis-integrated and mis-attributed. I hazard most times an honest developer is informed of their missteps, they handle it similar to how we're seeing here. Simple. No drama. Honest. Let's not blow this out of proportion.
- halostatue 16y ago"The majority of developers don't understand the nuances of copyright law; and, so OSS code is often mis-integrated and mis-attributed. I hazard most times an honest developer is informed of their missteps, they handle it similar to how we're seeing here." What you just said, if it's true, is a problem. The basics of copyright aren't hard (if you didn't write what you're including, you have to have permission to include it). Even dealing with the basic software licensing options (NewBSD/free-for-all/CC; OldBSD/free-with-attribution/CC-BY; GNU GPL/free-share-alike/CC-SA; etc.) aren't that hard (the CC folks have done a good job of coming up with easily understandable terms that capture the spirit). It's not until you get into the real esoterica (largely in music and movies, IMO) that you have to really understand things at a weird level (I still don't quite understand where things went wrong for Sita Sings the Blues). While this may be an easily fixed error, what should we be doing to make sure people "get" basic copyright law as part of the software development profession? More than that, what do we have to do to get people to think in terms of simple fairness: I should give credit to others for their work.
- quadhome 16y agoOf those licensing schemes, which are compatible? There's the spirit and there's the complex reality. This code, on my screen is copy-paste'able. And it's 'open source.' That means I can use it! If it's an education issue, do we hit 'em in university? Primary school? Make a slick website: canicopyit.org? wrt. to the "simple fairness," it's striking the number of people who have chimed in with (paraphrased), "How do we know it's copied? There can only be so many ways to write this!" That says to me the speaker doesn't write code, but rather puts it together. And that's a group with very different motivation than you and I.
- daveman692 16y agoI'm David Recordon and head up our open source programs at Facebook. I'd like to point out Jeff Verkoeyen's comment about where this specific piece of code came from. http://developers.enormego.com/view/what-happened-common-courtesy-facebook#comment-70135140 http://developers.enormego.com/view/what-happened-common-cou... Back in February a developer outside of Facebook sent a GitHub pull request which included this pull to refresh functionality. At the time we believed that the developer wrote the code themselves and thus didn't realize that it actually came from Shaun's open source library EGOTableViewPullRefresh. I'm sorry that we messed this one up. Three20 has over a dozen different contributors (http://github.com/facebook/three20/blob/master/AUTHORS http://github.com/facebook/three20/blob/master/AUTHORS) and we try really hard to give credit where it is due. As for fixing this, the code clearly came from EGOTableViewPullRefresh and we're updating the four file's within Three20 to directly reflect that and link back to Shaun's project. This patch will be pushed to GitHub shortly. While it isn't the most well known address, please always feel free to email opensource@facebook.com or me directly at davidrecordon@facebook.com.
- djcapelis 16y agoThanks for the quick and classy response.
- hboon 16y agoMinor nit: the code didn't come from Tweetie 2. The idea and first implementation did.
- daveman692 16y agoYou're right, thanks!
- gojomo 16y agoNever mind Reddit, HN is turning into Slashdot!
- deleted 16y ago[deleted]
- kqueue 16y agoI know the author is showing that he is disappointed, but we all know he is proud, more than anything else.