Hacker News new | past | comments | ask | show | jobs | submit | dynamic's comments login

Checking the head of an empty list is a simple example. (Although see https://wiki.haskell.org/Non-empty_list for an approach to avoiding these runtime errors in Haskell).

Here's a more advanced example: https://news.ycombinator.com/item?id=14569605.


Last I heard, he had switched from Gmail to Inbox.


Even in this... implausible scenario, the contract would only need to verify the solution to the equation. The party creating the transaction would then be responsible for generating a solution.


It's a term used to refer to applications that run some of the same code client-side and server-side. See: http://isomorphic.net/


Good point and I'll concede that the overReaction had a real positive impact (that wouldn't have been possible if it had only been a few pedantic open source law geeks). It's really cool to see developers taking an interest in these issues, and in a bottom-up approach to reforming the patent system. I just hope people agree that explicit, well-designed defensive patent licenses (like Facebook's new language and the Apache 2.0 license) are a step forward.

> Today it's Facebook PATENTS, tomorrow maybe it's nation-wide automatic license plate tracking.

What happened overnight...


[Lawyer, but not a patent lawyer]

I was perplexed by the uproar on HN about the original patent language (in the thread announcing the release of React Native [1]). This kind of open-source patent license--which, in effect, allows Facebook to use its patents against users of React defensively but not offensively--is exactly what we need more of in the open source world. Why did people think that their defensive patent license was somehow worse than the industry standard (the MIT or BSD copyright license with no patent license, which made patent rights murky at best)?

But this new language eliminates the major limitation on the original language, which was that the license would be terminated if you attempted to invalidate one of Facebook's patents or defensively argued that it was invalid or unenforceable (or even, according to a strict though implausible reading of the language, if you publicly stated that the patent was invalid).

Glad to see Facebook paying attention, even if the original complaint was overblown.

[1] https://news.ycombinator.com/item?id=9271246


The problem was that under the original license, Facebook could sue you (as an initial aggressor) for an unrelated patent infringement, and if you claimed that the unrelated patent was invalid, you would lose your license/patent grant to i.e React. It did not just discourage you from suing Facebook, it made you defenseless if Facebook sued you.

This appears to remove that language and creates the much more desirable balanced situation you are talking about (IANAL).


I agree, and that's what I was saying in the second paragraph (I've edited it a bit to try to make that clearer). This is definitely an improvement from that original language.

But I don't see how the original license was somehow worse than the open source projects that use the MIT or BSD licenses without any patent license, thus potentially allowing the patent owner to use patents against you offensively or defensively. (As far as I know, it is still unresolved whether the MIT or BSD licenses include an implied grant of patent rights, but at the very least there would be serious legal uncertainty.)

For one example, see the license on this Google project: https://github.com/google/trace-viewer/blob/master/LICENSE. No mention of patent rights, and unless you could successfully argue that there was an implied license, Google could sue a user for patent infringement for using this software (not that Google has ever used patents offensively, to my knowledge). So it confused me to see a Google employee complaining in the other thread that they weren't allowed to use Facebook open source software due to the limited patent grant. I'd be really interested to know more about this policy.


Some lawyers appear to think that such an implied license exists. I'm not a lawyer and I'm not qualified to speculate on how accurate that is, but see these examples:

https://www.fenwick.com/FenwickDocuments/potential_defenses....

http://ipmall.info/hosted_resources/sipla/sipla_2005/raviche...

https://copyleft.org/guide/comprehensive-gpl-guidech7.html


I don't know what happened with trace-viewer; perhaps you could ask the developers?

In some cases, Google uses a BSD-style license with a separate PATENTS file. For example, here are the PATENTS files for Go [1] and Dart [2]. Apache 2 is also common and it includes a patent grant.

[1] https://go.googlesource.com/go/+/master/PATENTS [2] https://code.google.com/p/dart/source/browse/branches/bleedi...


"(As far as I know, it is still unresolved whether the MIT or BSD licenses include an implied grant of patent rights, but at the very least there would be serious legal uncertainty.)"

It's not really unresolved. There are dreamers who believe it's not the case. For everyone else, it's clearly the case until proven otherwise. There is a ton of case law on implied licenses. To believe it would simply not apply to software when it applies to every other area in which there are patents, for some magical unknown reason is ... strange and weird legal thinking?


The difference between the two situations is that without the facebook patent grant they could come after you for patents you infringed upon. With their patent grant you were no longer allowed to use react when they come after you for patents utterly unrelated to react.


I think everyone, including those who agitated against Facebook's original patent license, understands and agrees that patent licenses are important and should be encouraged.

Where the original patent license was perhaps "worse", in an ethical if not legal way, than no license at all, was that its limitations were non-obvious, and there was a feeling, right or wrong, that Facebook were attempting to restrict developers' rights by stealth. Licenses without any patent grant are problematic and uncertain, but they are at least problematic and uncertain in an obvious way, if that makes sense.

The original patent license felt akin to the Microsoft's early attempts at "shared source" versions of their libraries and frameworks, where just reading the source code could theoretically curtail developers' ability to work on open source implementations.

I think it's natural that people will react more negatively and forcibly to these kind of apparent bad-faith actions than to simple omissions. Furthermore, taking an aggressive stand against these sort of license tripwires hopefully makes it much less likely that others will attempt to insert similar clauses in future.


> which, in effect, allows Facebook to use its patents against users of React defensively but not offensively

> the original language, which was that the license would be terminated if you attempted to invalidate one of Facebook's patents

That clause is the exact reason many of us saw the old patent terms as being offensive rather than defensive. Why would it be valuable to Facebook to prevent people from arguing that their patents are invalid, if they weren't planning to sue for infringement of those patents? Facebook's calling the new terms "clearer" but the clause that they removed seemed pretty unambiguous in its intent.


But what if you have a legitimate patent claim against Facebook that doesn't relate to usage of react? It sounds like if you pursue that, then as a result, you can no longer use react. Or perhaps I'm missing something?


That seems entirely reasonable to me. If you want a free license to Facebook's patents, you have to implicitly give them a free license to yours as well. If you want to get money from them for patent violations, you should be prepared to then have to pay to use their patents.


Facebook only grants you patent license related to React, but you have to pay with every patent license your company have.

It's like saying Facebook can use all Google's patent, from search engines, Androids, Google car, etc. All because Google use React in a single presentation page.

It's even more viral than GPL. At least with GPL, your code only becomes infected with GPL in derived works. But Facebook has all access to even your unrelated patents.


But what about if you're a large company with a large patent portfolio, you don't intend to abuse silly software patents, but it would be irresponsible to de facto grant Facebook free license to all your patents?

If I'm doing a startup, this clause is no issue. If I actually have patent assets, this seems like a non-starter still.


I was among the people who warned about the unfairness of the previous license. I am a Free Software advocate, so I have no problem with allowing Facebook to use any patents I might later obtain, as long as using React (and similarly-licensed software) does not leave me defenseless against a FB lawsuit.


the license would be terminated if you attempted to invalidate one of Facebook's patents or defensively argued that it was invalid or unenforceable

I can understand people getting upset about that. It seems hardly a small limitation.

I wouldn't agree to terms of use that mean I cannot point out that an unrelated idea was previously thought of.


Also try to understand that a lot of software engineers, like myself, would rather that the source code license not implicate or involve patents at all.

Let the lawyers argue about the patents; I don't want to accidentally hobble the ones on my side or arm the ones on the other side, I don't want to accidentally harm other open-source contributors, I'd rather not be involved at all.

(In the BSD vs GPL debate I'm pro-GPL, but not GPLv3, because it involves the patents...)


I'm a developer as well. And I am politically opposed to software patents and would prefer that software not be patentable.

But I'm confused by your statement that you want the license not to mention patents because you want to leave patent issues to the lawyers. The license isn't software code, it's legal code--it's what the lawyers are arguing about!

If the license doesn't mention patents (and doesn't imply a particular grant of patent rights, which like I said is an open issue), then you haven't chosen "nothing." You've chosen the default: the patent holder retains all rights.


That's right, the default. (but also, see teraflop's comment about ambiguous implied patent license)

It seems that any variation either hurts my defense or comes off as aggressive (which is what happened to facebook).

In a hypothetical situation where the patent language matters, it's total war. Multiple concurrent lawsuits in opposite directions, ITC injunction requests, etc. Maximum pain to make the opponent capitulate. None of these patents are really valid anyway, it's either math or implementation detail. There's no reason or logic here.

Better to make no statement, leave the default unsaid, and stick your head in the sand, it may keep you under the radar of involvement.


The problem is, if you bury your head in the sand and leave the patents to the lawyers there's a good chance the lawyers will come after you eventually. Hostile ones, that is.

As an illustrative example of what can happen when some third-party profiteers file for patents on your software while re-selling it themselves, read up on the JMRI project's legal troubles:

http://jmri.sourceforge.net/k/summary.shtml http://lwn.net/Articles/181261/ http://lwn.net/Articles/294066/

That's why my preference is for licenses that explicitly deal with patents: ALv2, MPLv2, (L)GPLv3.


in effect, allows Facebook to use its patents against users of React defensively but not offensively

Was there any language in the license that bound Facebook to defensive use only and not offensive? Because otherwise this seems to be reading a lot of good intent into a place where none might be deserved.


Yes! This isn't legal advice, but, speaking loosely, the license gave you an irrevocable patent license to use React (that's the first sentence). That license only terminated when you brought a claim against Facebook (or a related party; check out the old license [1] for the details) for patent infringement or claimed that one of their patents was invalid.

Two important limitations--the original license terminated if you argued that a Facebook patent was invalid or tried to use patents defensively against them (this has been fixed in the new license, as far as I can tell), and Facebook can still sue you for patent infringement for something other than using React.

[1] https://github.com/facebook/react-native/blob/6938f4524676e2...


>claimed that one of their patents was invalid

You would (probably) only do this defensively against an aggression by Facebook. People don't generally have an interest in alleging patents are invalid, unless they are being sued for infringement of those patents.


Some people do! Check out the top story on HN right now, which is about EFF invalidating a patent held by a patent troll: https://news.ycombinator.com/item?id=9356767. Nobody was suing EFF (admittedly, that's almost a technicality since the patent holder was suing others, but EFF was trying to advance the public interest).

Also check out Ask Patents, which works on invalidating patent applications: http://www.joelonsoftware.com/items/2013/07/22.html.


Still, it means that, if Facebook sue you with stupidly-obvious-invalid patent on entirely unrelated product, say a patent that car must have a glass windows, then you can't even defend that such patent is invalid.


what about the Apache license? this seems to be the go-to for this particular issue, and is widely used by Google and MS as well as about a billion other projects. it directly addresses this issue. to me the biggest red flag initially was just the fact that they decided to create a new 'variant' for no obvious reason:

https://www.apache.org/licenses/LICENSE-2.0.txt

IANAL but Section 3. definitely seems to cover exactly the same thing, with quite clear, and moreover long established language:

> 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.


This is a very good point: with FLOSS it is generally wise to be wary of corporations that insist on custom drafted license text instead of established and well understood licenses; the corporate lawyers are always going to draft something that protects their corporation from any harm, hypothetical or not, but they don't necessarily have any motivation to ensure that the same protection applies to third parties.


If this is just a terminology debate, O'Hagan-style misappropriation theory cases are called "insider trading" cases by nearly everyone, including the SEC[1], the Justice Department[2] and the SDNY (a judge recently issued an opinion discussing "insider-trading cases prosecuted under a misappropriation theory"). They are usually contrasted with "classical theory" insider trading cases.

[1] http://www.sec.gov/answers/insider.htm

[2] http://www.justice.gov/usao/nys/pressreleases/December13/Wei...


Conceding! Conceding! Eject! Eject! Eject! :)


The copyrights are often dispersed, with different publishers owning different rights. It's not a matter of just "arrang[ing] for worldwide licensing." It's dealing with a completely different set of owners who may have no interest in signing on.

Of COURSE Amazon wants to access customers in other countries, it's not like they haven't thought of it!


> Of COURSE Amazon wants to access customers in other countries, it's not like they haven't thought of it!

Actually, I believe they are not fully aware of the adverse effect these kinds of restrictions have: as much as many people try to explain that it's not Amazon's fault (just observe the downvotes on my previous comment!), it is Amazon.com that rejects me as a customer.

But perhaps I should refrain from commenting, as downvoting based on opinions seems to have become the norm recently.


He isn't saying that there's a possibility "however remote"; he's saying that we have absolutely no reason to prefer one explanation over another.

"So although we have seen evidence for it time and time again": you're begging the question and assuming the principle of induction, which is exactly what Hume is saying you can't justify.


Great post. I don't know why you feel so hesitant--it's your design and implementation that made the game a hit.

Looking forward to trying your app version.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: