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

There's a lot of confusion and concern in here about the release of a new major version very soon after the release of another major version (v4.0.0 was released just a month and a half ago). Please note that this is a special release prompted largely by the odd timing of a new release of Google's V8 [1].

If you're looking for solid, long term stability, you are perfectly fine sticking with v4.0.0, as its marked an "LTS" release. This means it'll be actively receiving minor- and patch-level updates for 18 months, then for 12 months thereafter it'll get updates for severe bugs and security problems (what they call "maintenance" mode) [2].

[1] https://twitter.com/rvagg/status/659871982670884864 [2] https://medium.com/@nodesource/essential-steps-long-term-sup...


Re: From the linked Twitter: "Don't feed the trolls."

I personally don't have an opinion on the quick release and am happy to just use the LTS but calling the developers "trolls" seems unnecessarily harsh for people voicing a reasonable concern, even if they were just misinformed.


Yes, I'm very excited about the spread operator! I've been spoiled by Firefox.


Looking at documentation.. does this only work on lists (or list like object)? I.e. you can't "expand" a k:w object? Or is there another operator for this? Example:

    function foo(a=1, b=2, c=3) { return a * b * c;}
    dict = {'b': 4, 'c': 6};


Technically, the spread operator works with iterables [1]. If you wanted to spread an object `obj`you'd need to define `obj[Symbol.iterator]` [2].

[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... [2] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...


Yes and no.

You can still do something like:

    foo(... Object.keys(dict).map(name => dict[name]))
(Maybe someday you might be able to use Object.values() to achieve the exact same thing without needing to use .map)

However, the spread operator doesn't match the argument names to the object names. So the above call would mean the following:

    foo(4, 6)
And not what you'd like:

    foo(undefined, 4, 6)
However, note that you can rest an object too:

    let x = { a : 1, b : 2, c : 3 };
    let { a, ... rest } = x;

    console.log( ... rest ); // { b : 2, c : 3 }


There is a proposal for this but I'm not sure what stage that's in


Stage 2

https://github.com/tc39/ecma262 https://github.com/sebmarkbage/ecmascript-rest-spread


You still have to simulate named arguments with an object:

    const foo = ({ a = 2, b = 2, c = 3 } = {}) => a * b * c;
    const dict = {b: 4, c: 6};

    foo(); // 12
    foo(dict); // 48


Mainly the upgrade of V8. The release of v5 so soon after v4 is a special scenario prompted by the odd timing of the release of the new V8. It's worth noting that v5 is not an "LTS" release (that is, it won't have the same long-term support that v4 does). I believe even number releases are LTS releases.


I poked around your code; it's quite clean and readable!

I've never heard of Avro, but it looks really interesting. Could you enlighten me on some use cases, and situations where it really shines?



I like to think of Avro in two (related) parts:

+ A very compact binary serialization, which lets you efficiently store or transfer data over the wire. (Avro actually also defines a way to encode your data as JSON in cases when you need a human-readable representation.)

+ A way to define "data types". For example this schema [1] defines what we expect a "Human" entry to look like, and we can now do things like check whether we are missing any information, make sure all fields are valid, sort, efficiently copy objects, etc.

This is glossing over many things (files, RPC, ...) but I hope this helps a bit! You can find a lot more information in the official Avro documentation [2] if you're curious.

[1] https://github.com/mtth/avsc/blob/master/etc/benchmarks/sche...

[2] https://avro.apache.org/docs/current/index.html


Ah, I was hoping for a Rick and Morty comment. Such a great show


That's not correct. Unused money rolls over. See https://support.google.com/contributor/answer/6182619?hl=en&...


I stand corrected, thank you for pointing that out.


Any unused money rolls over to the next month, according to Google [1]. I've been using it for months at $15/month and I've never seen it not use all of the money. I do use the internet constantly at work, though, and see many websites.

[1] https://support.google.com/contributor/answer/6182619?hl=en&...


Oh nice! Ok, well that might be enough to push me over to give it a try. Thanks.


It could be argued that affiliate links on thewirecutter.com aren't ads so much as they are content. I realize they are advertising affiliates, but since that's what I go to the site for, I'm definitely not going to want to pay to get rid of them!


You're exactly right. Growing up with the words removes them from being recognizable as dirty. Note also, Dick is a name (or nickname for Richard). Language is weird sometimes...


From my own experience, vyvanse (lisdexamfetamine) pairs quite well with my SSRI (lexapro). I'm not sure what most of the other substances in this thread are, or if vyvanse would even be considered a nootropic by any standard, but it has greatly enhanced certain cognitive abilities for me (most notably task saliency, but also multitasking and recall, among others).

Of course, my need (or desire) for the two drugs is probably linked to the same root cause since serotonin and dopamine are very much related in their uses by the brain, so it would probably be best to consult with your doctor to help ensure that the amphetamine doesn't interfere with your SSRI. The two are often prescribed together, from what I understand.



Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact