1. 3

    The diff.

    Notwithstanding the foregoing, if Facebook or any of its subsidiaries or corporate affiliates files a lawsuit alleging patent infringement against you in the first instance, and you respond by filing a patent infringement counterclaim in that lawsuit against that party that is unrelated to the Software, the license granted hereunder will not terminate under section (i) of this paragraph due to such counterclaim.

    IANAL. Is this good enough for me to be able to stop thinking about the Patent Grant included with React?

    1. 1

      Did a lawyer tell you to be worried in the first place?

      1. 4

        Never said I was worried, just that I don’t want to think about it anymore. :-)

        1. 2

          Yes, DannyB, open source lawyer at Google said to be worried.

          1. 2
        2. 1

          So this makes the patent cold war even colder. Some companies might start using React now, but anyone using React will think N+1 times before filling a lawsuit against Facebook.

          I think companies like Google will still not use React because they might want to fill a lawsuit themselves, and it appears only counterclaims are exempt from termination.

          1. 3

            Trading Pokemon over the internet http://pepijndevos.nl/TCPoke/

            1. 1

              On my previous laptop I could hear some tone when scrolling my terminal, I wonder if it’s related.

              1. 2

                http://pepijndevos.nl

                It seems common that people want to write more than they do. I wonder if there is a solution.

                1. 1

                  But it’s too bad they have to shoulder the responsibility for badly behaving garbage collectors. When they can choose (and there is a choice) to use collectors that don’t pause.

                  Which collectors is he talking about? AFAIK there is Azul with their special hardware, and Rust, which does task-local GC.

                  [edit] Oh, he is CTO and co-founder of Azul Systems. So that explains that. Though I’m not sure where I got that hardware part from, Zing seems to be just software.

                  1. 1

                    Rust doesn’t and has never had a GC. It might get one in the future (likely after 1.0).

                    1. 1

                      I remember there was a big discussion around Rust removing GC around a year ago, and sticking it in a library. It looks like recently they got rid of the GC managed pointers too. From the description, it sounded like managed pointers worked by doing reference counting, and then were also able to free cyclic references through a similar mechanism. Are you drawing a distinction between reference counting GCs and tracing GCs?

                  1. 3

                    I love this book. Timeless. While I like Forth, the book is much more about designing and engineering than actual Forth.

                    I persuaded the maintainer to make a Kindle version at the time.

                    1. 7

                      I think functional programming (even in non-pure langs) leads to easy to read code. Thinking of a function as returning something rather than doing something makes it easy to reason about.

                      I don’t think this has any relation to efficiency. You can still use local mutable state.

                      Although in some cases using immutable state is actually faster, as can ben seen in Om, a ClojureScript wrapper for Facebook’s React.

                      As for languages, I think Python is very readable. Maybe I could get used to Haskell, which is very maintainable, but… at some point I feel like keeping monad transformers in your head is not much different from keeping mutbale state in your head. I think Clojure strikes a good balance, although parens take getting used to as well.

                      1. 7

                        I feel like keeping monad transformers in your head is not much different from keeping mutbale state in your head

                        Not even close. I know what ListT and an EitherT are at any given point in my program and they don’t add that much for me to think about. Partly due to parametricity.

                        If I have untracked mutable state I have as many possible program paths as there are discrete values of my state combinatorially exploded by the number of sequence points in my program.

                        They’re not even in the same order of magnitude.

                      1. 1

                        I assume this uses AWS Glacier?

                        1. 1

                          Good call, it seems to use a combination of S3 and Glacier. It’s interesting how many businesses there seem to be in providing nice APIs to AWS. Cf heroku, docker, dropbox, vagrant.