Hacker Newsnew | past | comments | ask | show | jobs | submit | lozzle's commentslogin

Hey, zigzigzag! The reason we went with JSON initially was for ease to work with, debug, and general ability to tweak and make the development process for this project much easier. That's definitely not to say there aren't some notable improvements we can make to this library!


Hey, everyone!

I'm one of the developers at Facebook who worked on this library since its conception! Really excited to be able to share this library today! I'll be checking up here periodically and can help answer any technical questions that you have!


Why does the software license [1] include the following clause:

> provided Your Software does not consist solely of the Software

Why didn't you guys choose MIT or BSD? It feels like the custom Facebook license is close to the intent of these, but it has that mysterious gotcha.

In any case, thanks for the software! It looks really slick, and I definitely have a use case for using it to replace the sprite sheet I used for Donald Trump on jungle.horse.

[1] https://github.com/facebookincubator/Keyframes/blob/master/L...


Note that, by publishing this repo publicly on GitHub, there is a right to fork granted by GitHub's ToS[0], which this license seems to conflict with (though IANAL of course...). Not sure what "fork" means in this context, whether it's just duplicating a repository or also modifying it.

[0] https://help.github.com/articles/github-terms-of-service/#f-... Section F.1: "By setting your repositories to be viewed publicly, you agree to allow others to view and fork your repositories."


Agreed. I've already contacted GitHub to report abuse.

This license seems to directly contradict GitHub's Terms of Service. It says:

> [...] you are hereby granted a non-exclusive, worldwide, royalty-free copyright license to (1) use and copy the Software; and (2) reproduce and distribute the Software as part of your own software ("Your Software"), provided Your Software does not consist solely of the Software; and (3) modify the Software for your own internal use. Facebook reserves all rights not expressly granted to you in this license agreement.

Where as GitHub's Terms of Service state:

> By setting your repositories to be viewed publicly, you agree to allow others to view and fork your repositories.

It seems impossible for me to fork this software without violating Facebook's license. To fork it on GitHub would require that I make the repo public (meaning I would be distributing the Software as "My Software" even though it consists solely of the Software). And any commits I made to the forked repo would violate their license because I am only licensed to modify the Software for my own "internal use".


(2) only seems to apply if you publish the fork yourself - "reproduce and distribute"

"reproduce and distribute the Software as part of your own software ("Your Software"), provided Your Software does not consist solely of the Software;"


If you click on the "Fork" button from GitHub's website then that is exactly what you'd be doing.


If the folks who uploaded it can't grant that right, github's TOS does not actually suddenly grant that right. It just makes it a TOS violation.


Interesting, thanks for the actual-lawyer perspective! So is it that ToSes are less legally binding than copyright law? Or is there special meaning behind "can't grant that right"?

Seems like a clear abuse of GitHub's goodwill towards real open-source projects, though. Luckily, it looks like they're going to change the license: https://github.com/facebookincubator/Keyframes/issues/24


They aren't less legally binding, necessarily, it's a question of "what is the end result".

The TL;DR is: You can't grant more rights than you have or can sublicense, no matter what the TOS does.

The same is true of most property. You can't gain an interest greater than the one the person who gave it to you had.

Otherwise, you'd be able to create greater title out of thin air (IE a guy with a life interest can't grant you a fee simple)

Imagine instead github's TOS said "by uploading, you grant the right to use the software under the BSD license". Bob, who has no rights at all, uploads your commercial software. Is it suddenly BSD licensed? No, because Bob didn't have the right to grant "the right to use the software under the BSD license". Even if Github made Bob sign the contract with his blood, it doesn't give away any rights Bob doesn't own.

Here's the truth table version. Note: We assume the validity and bindingness of the TOS, which would certainly be a serious issue in any litigation.

A has necessary rights to grant right to fork. A uploads thing to github with license that prevents forks.

end result -> You probably have right to fork.

A has does not have necessary rights to grant right to fork. A uploads thing to github with license that prevents forks.

end result -> You probably do not have right to fork. Any TOS violation is a separate contractual issue.

A has necessary rights to grant right to fork. A uploads thing to github with license that is silent on forks.

end result -> You probably have right to fork.

A does not have necessary rights to grant right to fork. A uploads thing to github with license that is silent on forks.

end result -> gray area. You probably do not have right to fork. You may or may not be able to argue an implicit license.

Note that this gets even more complex if A is a member of a corporation, as you have actual and apparent authority issues.


That makes a lot more sense, thanks.


We've fixed the license for the project and merged it in: https://github.com/facebookincubator/Keyframes/pull/32



Hello all, I'm on the open source team at Facebook. We're about to fix the license file for the project so stay tuned. - Thanks


This is a huge overpromise.

Why not say something like "We're asking the legal team to consider whether we can still publish our projects on GitHub"


I'm not sure why it's a huge overpromise. It's the same as when i fix screwups on behalf of Google. You are assuming a lot about the authority structures of the company that may or may not be true :)

I generally would assume that if someone makes that comment, and you can verify that they are who they say they are, that they will in fact, be able to accomplish what they say.


You are misreading it.

Software = Keyframes software.

Your Software = Whatever you are releasing.

So basically they are saying you can't redistribute just the Keyframes software library by itself. Which also means, if I understand this right, you can't fork it and modify it either.

I agree however, not a good license.


I'm not misreading it. The license says we cannot fork the software. That's not open source.


They had better start paying their lawyers overtime. You can't do a PR without forking and people fork on Github for a multitude of reasons (I often fork into a group as a lazy form of bookmarking or collecting projects).

Hell. I just clicked the 'fork' button. Where's my cease and desist?


I would argue that GitHub should remove this software. It just runs counter with their TOS.


A PR isn't the only way to contribute. You can also check out the repo and send in patch files.


Just wondering: for lazy repo bookmarking, why fork rather than star?


For me, forks are like super stars. I have an order of magnitude more stars than forks.


Isn't a different interpretation that a fork is, presumably, their software _plus_ your modification(s)? Thus, a fork is not "solely" their software anymore and is allowed.


The issue people are (rightly, imo) pointing out is that forking without modifications—say, to remain locked to a particular commit for whatever reasons one may have—appears to directly violate the terms of the custom license (which itself appears to directly violate the terms of Github's TOS.


Yes, but forking on GitHub means that initially it will be just their software.


If I understand right, you can fork it and even redistribute it, as long as your software isn't a blatant plagiarism of this repo. So technically, taking this library and putting it together with some other library yielding some meaningful application is enough to satisfy that clause.


I read it as only allowing you to redistribute unmodified copies, because clause 3 only permits modification "for your own internal use."


Also, even if were to improve on it and release it as a fork, as an example, it still falls into the definition of "software" and is in violation of the terms.


Do you have access to the source? Yes? It's open source.

Open Source need not be free as in beer, nor as in freedom.


No. Call that "source available", "source access" or something, but "Open Source" is pretty much established to be defined by the OSI definition of the term: https://opensource.org/osd


The OSI should trademark the phrase "open source". License it for anyone claiming their software is open source (as defined by OSI), and send cease and desists to anyone who is using the phase incorrectly.


They can't:

We have discovered that there is virtually no chance that the U.S. Patent and Trademark Office would register the mark "open source"; the mark is too descriptive. Ironically, we were partly a victim of our own success in bringing the `open source' concept into the mainstream.

https://news.slashdot.org/story/99/06/17/0213251/esr-on-the-...


> ... but "Open Source" is pretty much retconned to be defined by the OSI definition of the term

"Open source" as a term or development methodology is older than both the OSI definition and the Debian manual it is based on.


what is the motivation to release the library on github with such a license? If you can't fork it you can't improve it.


They want the user adoption, without giving up control, presumably.


this might be silly, but why? what does Facebook gain by getting this library user adoption (beside some bug-reporting). I would think that for fb user adoption of the open source projects is not the goal, but getting OSS developers attracted and getting fixes/features etc. developed from them. Or is it some kind of pride? Fake internet point for having repositories on github?


My long-time-range guess is that this is FB's play for becoming a standard replacement/upgrade for GIFs. From the post:

"Initially, we looked at common static image formats such as PNG sequences and GIFs, as well as even more compressed formats like WebP. It quickly became clear that these wouldn't work without drastically simplifying the animations for file size, and that we'd have to accept the drawback of static images not scaling up or down very well."

So, reading between the lines, they've made what they think is a better GIF. And perhaps it is, and if so, that's big business[1], and so having a first-mover advantage on mobile could be highly profitable. (They're a public A-corporation, after all.)

But who knows; I could be reading too far into it or just flat-out wrong, too!

[1] http://www.popularmechanics.com/technology/a21457/the-gif-is...


I don't think any vector imaging format could ever replace a raster one (regardless of whether it's animated). Each has their own pros and cons.

Keyframes competes with animated SVGs, but not GIF/APNG/WebP.


But what is equivalent After Effects tool for creating animated svg's? I'm not aware of any existing simple/robust tool to animate svg's in a traditional manner. And definatly not with a tool many already know how to use, as well as tutorials for accomplishing anything one might come up with. Is there anything?


Dev mindshare.


I find clause 3 of the license bad also, since it says that you can only use changes internally. Taken together, I read the license as saying that you may only release unmodified copies of the code and only as part of a larger project.


I take it as reading you may only release modified copies as part of a private project, but may not publicly release a modified/improved copy and call it your own project without violating the license. Which is, if right, insanely anticompetitive, and a gross violation of the spirit and purpose of releasing open-source software.


It's not the first time they've used this license: https://github.com/facebook/transform/blob/master/LICENSE

(in that case, they even used it to distribute a patch to ffmpeg, which is LGPL)


From your jungle.horse "more info" panel:

> Word of warning: while I'm not a vampire, I may or may not be a night owl.

That totally sounds absolutely non-suspicious... Also, you may or may not be having a HN-driven traffic spike.


Oh no, I've been outed. ;p


Well it sounds like the MO of a modern vampire: "let's meet for an artistic collaboration -- after the sun has settled" :P


What's the rationale behind putting this on github and asking for contributions, but having the code under a proprietary (non open source) license?


The project author and Facebook legal appear not to be in sync. The license does not grant the right to distribute the software as-is (a fork) or publicly with modifications, but the CONTRIBUTING.md file asks potential contributors to do both of these things:

> We actively welcome your pull requests. Fork the repo and create your branch from master.


Any plans to wrap this in a React Native Component (either as custom component or a part of the RN distro?)


I get grey flashes over the animations/text in my HN reader (Materialistic).


Is there any way you can share a part of the composition, or something that produces a similar bug?


I can only replicate it in that app, I don't see it elsewhere.


Also on materialistic. Worked fine on Nexus 6P


I wouldn't be surprised if this was perf-related, I have a 5X and it's worse when I scroll.


Hi, I'm new to this, does it work with 3d animations ? Like something generated with blender ?

Thanks.


I'm not actually familiar with blender or how that works with AE. I didn't work much on creation of the different compositions, just the end product, so I'm not sure what technologies our designers and animators may have worked with.

Presumably, if blender formats the composition in the supported structure and doesn't drift outside what the library recognizes and supports, it should work.

https://github.com/facebookincubator/Keyframes/blob/master/d...


[flagged]


Please comment civilly and substantively on Hacker News or not at all.

https://news.ycombinator.com/newsguidelines.html


> So you got your CS degree, worked for years in IT, passed tough interviews, joined FB, and now you're proud of animating those annoying emojis.

What kind of work do you do?

I'd say this project is much better than your words suggest. It's full of interesting technical problems unique to the domain of animation. That's way more fun than writing a standard CRUD Ruby on Rails web app, at least in my opinion.

And hey, some people are janitors and garbage men/women. Any job in engineering beats that.


> Any job in engineering beats that

In what sense? Usefulness to society? Comfort? Pay? I'd argue that the janitors and garbagemen are doing much more of a public good than the proportion of software "engineering" that goes into a social media application, despite any technical smartness behind it.


Comfort and salary. I should have been clearer.


Quite possibly the most rude comment I've read on HN.


Ohhh, you haven't seen a [deleted] comment before it was [deleted].


Way to rude, far from the worst IMO.

But I too find animated icons REALLY annoying and would have preferred if they were opt-in.

In fact I send : ) instead of :-) on Skype because I feel the smileys makes me look like an annoying kid.


Rude but it's the truth. It's not because you work at Facebook that your job is cool.


Nice ad hominem.

Just take it as a proof of concept - it animates emojis today, but it can be useful for some other "useful" things in the future.


I have a question: how do you feel working for a company that actively works on censorship and suppression of information in countries where political opponents have to face death?

http://www.nytimes.com/2016/11/22/technology/facebook-censor...


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

Search: