For those who aren't aware, it says
1. If facebook sues you, and you counterclaim over patents (whether about software or not), you will lose rights under all these patent grants.
So essentially you can't defend yourself.
This is different than the typical apache style patent grant, which instead would say "if you sue me over patents in apache licensed software x, you lose rights to software x" (IE it's limited to software, and limited to the thing you sued over)
2. It terminates if you challenge the validity of any facebook patent in any way. So no shitty software patent busting!
DannyBee, I'm having a hard time envisioning what sort of scenario might trigger this, and what the repercussions might be. Any chance you could explain?
Assuming you mean the first part (the validity provision seems "obviously bad" to me), let's lay out some scenarios:
You make your important software dependent on this software. Congrats, facebook can now sue you with impunity because you can't afford to lose these patents.
Worse, the fact that they have given you a grant does not prevent them from suing you, and the second you counterclaim, you lose. Note also that the grant specifically does not cover "the Software in combination with any software or other technology provided by you or a third party." So if you take this stuff and run it in a pipeline, and facebook has a patent on running it in a pipeline, you don't get that patent and they can still sue you.
(Again, in the apache case, you'd only ever lose the patent grant if you sued facebook over the software in question).
Ignoring direct cases, facebook can also use this as leverage during acquisitions that use their software (Nice software, shame if you were to lose rights to it), etc.
There are potentially an infinite number of ways to use this kind of stuff.
Also note this kind of thing has been looked at in the past. There is an entire discussion here: http://mail-archives.apache.org/mod_mbox/archive-license/200...
from when v2 of apache license was being written, etc.
There are reasons the Apache grant has become pretty much the standard - most people and corporations find it a pretty good balance of various concerns (being able to defend yourself in patent lawsuits, etc).
What Facebook has done is entirely one-sided. It benefits Facebook only, and even then, it generally only helps them in situations where they want to sue people. None of this really helps defensively. If they wanted it for defense, they'd write it differently to cover defensive situations.
There is also a file with the industry-standard name LICENSE (https://github.com/facebook/fbcunn/blob/master/LICENSE), with a standard looking BSD license in it.
Surely somebody using it could claim that was the file that applied, and this other non-standard whimsical "PATENTS" file was irrelevant?
Or can people just bury random licenses deep inside copyrighted works, and expect them to apply?
That sounds pretty chilling considering that could mean that anything any of your employees say about any other Facebook patent could wreck your business, if you choose to use Facebook code from Github.
I wonder what would happen if every company offered patented algorithms under these terms. Still wouldn't stop patent trolls, I'd guess.
(and the other provisions are not defensive, they don't require you sue facebook to lose patents)
(the entire rest of the ... is clause (a))
For example, Facebook open-sourced Thrift, then proceeded to develop it internally, and recently released out a fork of thrift, not merging anything back into the original tree.
Likewise, they open-sourced Corona a few years ago, their Hadoop fork, and I'm pretty sure that branch has been abandoned too.
So I'm really hesitant to start using any projects out of Facebook unless they develop some processes to actually maintain these projects.
> We hope that these high-quality code releases will be a catalyst to the research community and we will continue to update them from time to time.
they just partnered with canonical: http://insights.ubuntu.com/?p=9373
IIRC, Lua is even more liberal than Python in that if you mistype a variable name, it will silently give you 'nil' rather than throwing an exception.
Also, the prototype system is a little wonky. It seems overly flexible and makes you do too much work yourself, which would make it hard on a large team all getting started at once.
If Torch gets popular I wonder if something like TypeScript or Facebook's own Flow would start to make sense.
Like most things in Lua, that is easy to customize. You can just add an __index metamethod to environment tables. There are various 'strict' modules which do just that.
Our team first picked up the Little Schemer and then jumped directly to lua.
A few of us had some experience with Lua before with game programming, so we took it on ourselves to teach the others Scheme (almost like an intro to programming class) and then teach how Lua worked in comparison.
I guess we lucked out because they were able to pick it up quickly after the education on functional programming.
Secondary goals might be: Spam detection and extracting info from the graph/pictures, etc
FB identify people from your Social Graph in Pictures, for example
I think it is more likely that this is just research software.
Is this actually true, or a glib answer? Ads certainly don't feel like much of the FB experience, nowhere near the level of Google, or even Twitter. They're negligible, really.
Whereas shaping the feed and identifying people in pics, etc, is central to the FB experience.