HPACK: the silent killer (feature) of HTTP/2 - <AUTHOR> http://blog.cloudflare.com/hpack-the-silent-killer-feature-of-http-2/ <comment><USER2> This really seems like overkill to me. We've made HTTP/2 that much more complex to implement (a custom compression and dictionary not used anywhere else) to compress headers. And complexity always leads to fun new vulnerabilities. I guarantee at some point we'll see at least a DoS come out of this.

I would add that it also consumes more resources to compress these headers (I know huffman is fast; but it's not as fast as plaintext), but you can probably cache a good portion of it, and then just encode the per-connection values at the end. Although I'd be surprised if Cloudflare has nginx doing that.

Right now, my domain's HTTP header is 192 bytes:

        Content-Type: text/html; charset=utf-8
        Content-Length: 3884
        Connection: keep-alive
        Content-Security-Policy: upgrade-insecure-requests
        X-Content-Type-Options: nosniff
        X-Frame-Options: deny

And more than half of it is just optional security enhancements.

So now I'm going to compress that header so that it's ... what, 100 bytes? Even on my site that's incredibly lean and lacks images, it's around 20-30 KiB per page of content. Modern web pages now average being larger than the original DOOM video game (2301 KiB.)

So we're doing all of this to chase roughly a 0.05% reduction in bandwidth per page? We're worrying about the spot on the carpet while ignoring the elephant in the room.

<comment><USER3> Many of your responses should be "304 Not Modified", in which case you don't send anything back but the headers. Or, for API calls, you may have a tiny response, or no response other than headers. In all of those cases, going from 192 bytes to (checking) 148 bytes the first time, or 6 bytes for a subsequent request, might make the difference between fitting entirely in the initial response packet or requiring an additional packet.

In addition, hpack also allows the client to compress their request headers, which decreases your incoming traffic. And in that case, the majority of requests will have very little data in them; ideally, only the path will change between requests.

<comment><USER2> > Many of your responses should be "304 Not Modified", in which case you don't > send anything back but the headers.

A 304 should be able to fit into a single frame, unless you're doing things _very_ wrong. You don't even need headers in that case.

> In addition, hpack also allows the client to compress their request headers, > which decreases your incoming traffic.

Yeah, that was the DoS concern I had. Lots of web server software checks the incoming header sizes don't exceed a certain length. But with huffman expansion, you can't quite make an INFLATE bomb, but if the implementation doesn't have a backout function during the decompression, you could consume a huge amount of memory by abusing this.

> ideally, only the path will change between requests.

Can you put the path at the bottom of an HTTP/2 request? Otherwise it would be tricky with lots of bit-shifting to reuse existing compressed headers but insert new paths onto the top of each one.

</comment></comment></comment><comment><USER4> Does anyone have any practical experience with client certificates and HTTP/2?

[https://news.ycombinator.com/item?id=13022596](https://news.ycombinator.com/item?id=13022596)

 _I had to abandon [client certificates] because of HTTP /2\. If one site on the web server uses TLS client auth, and then you go to another site on the same server you receive HTTP 421 Misdirected Request, because of connection reuse. And almost none browser can deal with them correctly (or could not few months ago) - I'm looking at you Chrome, mobile Opera etc..._ -samsk 2016-Nov-28

<comment><USER5> Chrome doesn't deal with (client) certificates well regardless of the HTTP version in use, to be honest.

</comment></comment><comment><USER6>
        Response #1:
        date:Wed, 07 Sep 2016 21:41:23 GMT
        expires:Wed, 07 Sep 2016 21:41:53 GMT

        Response #2:
        date:Wed, 07 Sep 2016 21:41:23 GMT
        expires:Thu, 07 Sep 2017 21:41:23 GMT

> Although the two expires headers are almost identical, they can only be > Huffman compressed, because they can't be matched in full.

It seems like it'd be be an easy win to round expiry times to the nearest minute/hour/day. At least for requests such as these where that value is one year in the future.

<comment><USER7> This. For HTTP 1.1 clients, Cache-Control already overrides anything set in Expires (a header dating to HTTP 1.0), so losing some precision on an approximate guess far into the future that's bound to be ignored by most clients should be a sensible trade-off.

</comment></comment><comment><USER8> No offense. But if you had a magic way to reduce HTTP headers to _zero_ , it would have no impact on me as a user.

The fact that a web page loads 40+ domains? Yeah, that's a problem.

The fact that a web page prioritizes serving me an ad so everything blocks until it gets that ad? Yeah, that's a problem.

The fact that a web page downloads 25 Megabytes of data? Yeah, that's a problem.

HTTP headers getting compressed? Not even on my radar.

<comment><USER9> Your complaints about the web are valid but totally out of scope for the HTTP spec.

<comment><USER8> Asking why everybody is wasting time on something _THAT WILL HAVE NO IMPACT ON END USERS_ is quite in scope, thanks.

This benefits a very small number of companies who manage to serve very small, highly optimized payloads and _nobody else_.

And _everybody else_ pays the cost in terms of complexity, security holes, and implementation bugs.

<comment><USER2> > This benefits a very small number of companies ... And everybody else pays > the cost in terms of complexity, security holes, and implementation bugs.

Yes, _exactly_!! SPDY, QUIC, et al are designed by Google for the Googles and Facebooks of the world. It is not prioritizing what most sites need most. Hell, most sites don't need this period. Optimizing even the most generous 1.4% that Cloudflare claims isn't going to have any meaning to sites ranked below 100,000 in Alexa (eg 99% of them.) They're not going to run out of bandwidth, and their traffic means they're only using ~3% of a $5/mo VPS.

You want software and website monocultures? This is how you get it. Unbelievable complexity creep. All the fun we've had with OpenSSL vulnerabilities? Get ready for them in the new QUIC-HTTP/2 servers.

TLS alone already basically makes it impossible to write your own web server anymore, but at least that's a necessary evil due to ISP and state actor spying abuses. If you're okay with a world where everyone has the choice between nginx or Apache, I guess that's fine. I'm not, though.

</comment></comment></comment></comment><comment><USER10> the worst thing of the spec is that it writes stuff like:

        An endpoint might choose to close a connection without sending a GOAWAY for misbehaving peers.

But it does not define how a misbehaving peer could look a like. Or

        WINDOW_UPDATE or RST_STREAM frames can be received in this state for a short period after a DATA or HEADERS

Actually it's really really hard to get such a time right. Since it's extremly depending on the client. Also the http/2 state machine is extremly complex vs. the statefulness of a http/1 client (no state machine at all). Also the spec gives a lot of weight to the server/client where they can treat some errors either as a stream only error or as a full error (i.e. goaway, reconnect/disconnect). Not sure if it is good at all.

Push Promises are probably not even useful to the most servers/users. And also have a flaky specification. It's okai to send them between data frames, but it makes no sense to do it.

WebSockets don't work over http/2 and even with a extension they would disconnect every 31-bit/2 streams (or less).

I think that http/2 is a good thing, but at the moment I would rather count on http/2.1 that will get everything correct and made stuff significantly easier.

P.S.: Hpack is probably the easiest to implement/get right

<comment><USER11> I don't think performing a clean shutdown for misbehaving clients is that important, as they are misbehaving anyway. The only thing were it helps is for debugging the misbehaving application: The developer can see the error message and see something got wrong instead of only seeing a closed connection. In doubt closing the connection is probably always the simplest way to handle invalid situations, as libraries will always have to deal with that situation. Handling close/shutdown/goaway messages is much harder. I also don't consider frames which are received for already reset streams as a big issue. Just ignore them if they are for an unknown stream ID which is lower than the highest established one.

However I agree there are a few rough edges in the HTTP/2 spec. The worst one for me are race conditions around SETTINGS negotiations. If one implementations wants to use a low window size or HPACK buffer size it must still cope with the fact that the remote might send more data before it knows about it - which it can only answer with a stream reset. This in turn might cause many clients to assume that the server is not working or shutting down and to create a new connection and try the same again. The only sensible way for SETTINGS in my opinion is to use the default settings or higher ones - which are unfortunatly so high that it makes HTTP/2 a poor fit for embedded or IoT applications, where it could otherwise shine due to the less demanding binary protocol.

The other thing that I don't like too much are the headers in special header frames without flow control. Getting overall flow control correct (and avoiding that attackers can exploit this) is hard. And from a layering perspective it would have been much clearer if there would have been a lower layer which allows to create flow-controlled multiplexed byte streams and a higher layer which defines on how to transport headers and body data inside these streams. Now we have one big HTTP/2 layer which covers everything. But I guess that was done to get HPACK working. HPACK itself is IMHO ok.

</comment></comment><comment><USER12> I recommend watching this video by Fast.ly on some real metrics comparing HTTP/2 and HTTP/1:

[https://www.youtube.com/watch?v=0yzJAKknE_k](https://www.youtube.com/watch?v=0yzJAKknE_k)

Overall, the performance gain is not as much (if any) compared to the hype we hear.

<comment><USER13> If it's the video I'm thinking of they ran a huge number of tests, introduced packet loss and saw some issues.

There's a few challenges here…

WebPageTest uses DummyNet to simulate packet loss and in a HTTP/1.x scenario the not all TCP connections in the test will experience packet loss, whereas all the HTTP/2 ones will. Now in the real world if there's packet loss on route how likey is it that TCP connections experience packet loss?

Our H2 implementations are still young, this Cloudflare work is one example, until they made this patch nginx didn't support HPACK and there are other issues in other browsers and servers too.

As the implementations mature and we understand how to make the most of H2 then performance gains will appear - there's already evidence from people like the FT that there are gains to be made now.

<comment><AUTHOR> Quite.

Real world experience beats synthetic tests. Shipping counts for a lot.

In the time that some other competitors have been talking about HTTP/2 we've had it out for a year and have been experimenting and improving (server push, HPACK, ...). Clearly, HTTP/2 is not the one-size-fits-all-answer-to- everything, but it amuses me to see competitors not shipping, yet talking a good game. See this sort of thing with HTTP/2, IPv6, ...

</comment></comment></comment><comment><USER14> I wonder if HPACK will discourage the creation of new headers... since they won't be in the static dictionary. Instead existing headers will be overloaded (not so pretty).

<comment><USER15> I doubt that because the information added would be similar in size. Contrast `Foo: old-value unrealted-option=bar` to `Unrelated-Option: bar`. There is almost no difference (only the overhead of another header in the protocol actually. They would have to get way more creative in the representation to get any real gains.

Also the HTTP authors haven't been too worried about header size in the past so I doubt this will change just because we have a new protocol.

</comment></comment><comment><USER14> Whats with those header fields that start with a colon:

      :authority:blog.cloudflare.com
      :method:GET
      :path:/assets/images/cloudflare-sprite-small.png
      :scheme:https

Isn't that going to confuse every header parser.

<comment><USER16> That's just a way to spell out the HTTP 2 request-line (its http/1 equivalent would be the very first line of the request like `GET / HTTP/1.0`) in human- readable form.

No parser is ever going to parse these strings.

HTTP2 supporting libraries see the well-known binary values and libraries without support for HTTP2 will fall-back to HTTP1 anyways where the human- readable form of the request-line is, well, just the request line itself.

<comment><USER14> Thanks, now I know.

</comment></comment></comment><comment><USER17> Significant smaller headers means significant smaller requests. That allows the client to inform the server in a shorter time more comprehensively which set of files are needed. Especially in the mobile use case where bandwidth in the up-link is limited and the channel is not always stable this may really improve user perceived performance.

I don't worry about compression effort too much - deflate has been used for a long time.

</comment><comment> grey-area I see a lot of patches for nginx coming from cloudflare, how much of their infrastructure is based on nginx, anyone know any good articles on their internal setup?

<comment><AUTHOR> I don't think we've every done a blog post on the overall architecture of a machine. But as of today it's a mixture of nginx (our own fork since nginx folks won't accept all our patches), rrdns (our own DNS server written in Go), a whole load of Lua (because we use OpenResty), a whole load of other services written in Go, ...

Depending on the protocol (or version) traffic may or may not be served via nginx.

<comment><USER18> >nginx (our own fork since nginx folks won't accept all our patches)

Is there any interest in publishing this whole fork? I know you already publish separate modules to github, beyond that is there crossover with nginx plus functionality they don't want to accept?

<comment><AUTHOR> The problem with publishing it is that we have to maintain it and sometimes we put stuff in there that we wouldn't normally want to make public or it would be a pain to extract because it's linked to our infrastructure.

Open sourcing stuff has a real cost. We do as much as we can.

</comment></comment></comment></comment><comment><USER19> Great savings. It would be great to know which upstream version of nginx these "full" HPACK patches were merged to. Does anyone know?

<comment><USER19> I had asked the same question on the blog post, and the author responded there saying the patches were not integrated into vanilla nginx yet, only "upstreamed" to the nginx-devel mailing list in December, 2015.

[https://blog.cloudflare.com/hpack-the-silent-killer- feature-...](https://blog.cloudflare.com/hpack-the-silent-killer-feature-of- http-2/)</comment></comment>


Open source CFR poker AI - <AUTHOR> https://github.com/fedden/poker_ai <comment><AUTHOR> Hey all, just wanted to share our progress on implementing a poker AI using Counter Factual Regret (CFR). There is definitely more work to be done, but we've been working hard over the past few years and have been making strides to improve the AI optimisation and adding ways to play against it.</comment>


My Teenage Video Game Obsession Wasn't 'Gaming Disorder' - <AUTHOR> https://reason.com/blog/2018/06/20/who-formally-classifies-video-game-addic <comment><USER3> As he quotes, this is how gaming disorder defined:

>For gaming disorder to be diagnosed, the behaviour pattern must be of sufficient severity to result in significant impairment in personal, family, social, educational, occupational or other important areas of functioning and would normally have been evident for at least 12 months.

The important parts are _significant impairment_ , and continuing even though you know it's doing harm.

But this is how he describes his life at the time:

> I spent hours nearly every single afternoon hovering around the game > machines at a local strip mall arcade within walking distance of my home > down in Sanford, Florida. If I had nothing else to do, that's where I spent > my time. If I had things to do, well, sometimes I played video games instead > of doing those things. Virtually all my free time was absorbed in video > games (oh, and Dungeons & Dragons as well).

> I was also a deeply depressed, closeted gay teen at the darkest, cruelest > point of the AIDS crisis, terrified that if anybody found out I'd get the > crap beaten out of me, and if I ever acted on my urges I'd get sick and die.

This isn't gaming disorder. This is the equivalent of someone reading a medical dictionary and thinking they have Dengue Fever (even though they've had no contact with mosquitos).

Psychologists wouldn't diagnose gaming disorder. They'd create a formulation that includes all the other things that the author thinks are important.

<comment><USER4> I think that's the author's point; the assertion here is that most people with "gaming disorder" probably "have" it as a symptom of one or more underlying disorders. Most people would - by a reasonable psychologist, at least - <USER2> diagnosed with those underlying conditions; the folks pushing for an official recognition of "gaming disorder" are not reasonable psychologists.

</comment></comment><comment><USER5> Somewhat related comparison: Apparently Americans watch an average of 30-35 hours of TV a week (4-5 hours a day).[1] Whereas many definitions I've seen for gaming disorders set a threshold of 20 hours a week or 2 hours a day to define gaming disorder.

Seems pretty likely that the concern over gaming is primarily due to it being a new medium. I fail to see how staring at a screen passively for 4-5 hours can be considered normal, while staring at a screen while actively facing challenges and solving problems for half that time is a disorder.

Edit: Forgot to add the link to the citation:

1\. [https://www.nytimes.com/2016/07/01/business/media/nielsen- su...](https://www.nytimes.com/2016/07/01/business/media/nielsen-survey-media- viewing.html)

<comment><USER6> I think the key is:

> the behaviour pattern must be of sufficient severity to result in > significant impairment in personal, family, social, educational, > occupational or other important areas of functioning

If anything behavior is messing with your life and you find yourself unable to control it then it could rise to needing help.

<comment><USER7> Watching TV for 4 hours per day does all that to you. Especially now when tv programs are so bad.

<comment><USER8> I'd argue that's a disorder, too

<comment><USER9> How about playing chess 5 hours per day? Is that a disorder, too?

<comment><USER10> Spending time doing something doesn't make it a disorder. Spending time doing something _to the extreme detriment of other aspects of your life_ is what makes it a disorder.

If you spend 5 hours a day playing chess even though you know it's ruining your life then, yes, it's a disorder. If that becomes common enough that chess is often associated with people ruining their lives, then it's reasonable for the WHO to recognise it.

This isn't complicated.

<comment><USER11> Exactly, and I don't know why we go to the trouble of defining specific categories. Why not just say that "I find myself doing X so much that it affects other aspects of my life and I would like to stop" is the definition of a disorder, no matter what X is, and just help people? Why do we need the label?

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Contrary to the premise of the source subtitle, the WHO isn't moving to _uniquely_ pathologize gaming (it is not the only non-substance-use addiction- style disorder that the ICD would recognize).

Further, the authors argument that the behavior pattern is _not_ gaming disorder is based entirely on a description of the perceived source of the problem which _does not conflict with anything that is defined for gaming disorder_ , merely with an implication that the author reads into the act of making the definition.

The attempt to use the narrative to attack the fact that the disorder is being identified is ludicrous, most generously it would support raising the idea that the proposed definition should recognize a distinction between any standalone problem with gaming and gaming as a peripheral manifestation of other problems by including, in the diagnostic criteria, a criteria specifying the absence of certain other simultaneous diagnoses (a not-uncommon feature of DSM/ICD psychiatric diagnostic criteria.)

</comment><comment><USER13> The author's point seems to be that yes, video games are addictive, but there's usually an underlying condition like anxiety or depression.

I think the truth is probably in the middle. Video games, screen, sugar, etc. are all inherently addictive and the addictive nature is probably exacerbated by emotional distress.

I spent much of my teenage years playing hours of video games like the author. I think it was a combination of the dopamine rush of winning and seeing my rating go up and a way to suppress feelings of loneliness.

<comment><USER14> Author is talking about 1980s games. He's missing an important point: new games are specifically designed to be far more addictive and harder to put down, especially those mobile incrementals.

Sure the situation is still faceted as today as back then, but now gaming, gamification and connected gaming loops (when short and long loop overlaps so a game is never in a "completed" state, see game dev from kayrosoft) are far more pervasive.

I'm a gamer, I can play long hours and I'm not addicted. But. Those new breed of mobile games scares the hell out of me. I designed some game I played some of those. They are actively addictive not because they are interesting but because they tie into your psicology with boxes keys rewards daily bonuses etc.

<comment><USER15> > He's missing an important point: new games are specifically designed to be > far more addictive and harder to put down, especially those mobile > incrementals.

Arcade games were the original microtransactions.

<comment><USER16> One thing you didn't have was the rat race involved in many modern multiplayer games.

When you want to be competitive and the top people are all playing all the time, you have no choice but to also play all the time. Doubly so when you have some sort of XP/loot system and some notion of resource consumption

<comment><USER17> Arcade games had top scores and even prizes.

<comment><USER18> This completely misses the point. In arcade games you can take a day off, come back the next day, and be just as likely to be "the best". In modern online mobile games, if you wanna be at the top and you take a day off, you might as well just give up. This is what was being referred to.

<comment><USER19> The primary difference however seem to be that in arcade you competed against dozen local kids most of whom did not cared at all, so it was easy to stay on top and feel like you are best of best.

Internet makes you compete against whole world, so there is unlimited supply of people who dedicate their whole life to this particular competition. Necessary, you have to settle for not being best or dedicate whole life too. And if this is your motivation, then anything competitive online will consume you - whether game or fiction writing.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> I can relate, for me it was bullying. Games are a good distraction because they give you a fighting chance. 5 vs 1 in real life is going to result in your defeat. And hey due to a love of games I became a programmmer and worked for two great game companies, without games I don't know what I'd be doing. Probably wouldn't be on hacker news. Not the worst 'disorder' to have.

</comment><comment><USER21> I've said it elsewhere, but for me I played a lot of games when I was younger because I was bullied and didn't really have many friends.

That changed later in life, but by then gaming wasn't just an escape - it was part of me, and my lifestyle - I play less, but still enjoy the odd marathon.

That said, I think there is an element of truth to gaming obsession.

MMO's had a heavy social element, and your perceived 'status' sometimes was linked in people's minds as your rank or your gear. This gear or rank often required heavy grinding for that perceived social benefit which made it a race to the bottom in the sense that fun had nothing to do with it anymore, it was competitiveness and/or obsession as well as maintenance of your status.

Nowadays the discussion (rightfully) is more around loot boxes, but that's a separate condition in my mind to the reward mechanism you get from ranks or loot.

I do also think it is important to distinguish addictiveness that comes from grinding and competitive gaming, to the escapism that drives others to play games for hours at a time. You can get so focused on competitiveness that it can eat into your life, making it imbalanced. The reason for that is totally different to someone who is trying to escape a bad social life/family/whatever.

There are plenty of completely healthy kids/adults who play way too much games because of the addictive nature of the games and not for any underlying reason, and that can be an issue in its own way, but that needs to be limited by parenting, and/or being raised in a way that allows someone to make good decisions.

</comment><comment><USER22> Good, level-headed post. Gaming is just another way to avoid real life for a little while, which is scary for almost everybody but more so for teenagers. It is also fun as hell, and builds certain skills such as reasoning and problem solving, hand-eye coordination, teamwork (at least some do), and so on.

Playing games is also a basic human activity and goes back for millennia.

Just imagine the amount of "social impairment" the top NBA players or Olympic athletes had in order to get to the top of their games? I knew a girl that had dreams of becoming an Olympic skater...her whole childhood and teenage years were utterly destroyed...and she failed. Was she sick? Did she need treatment?

I also knew a guy that tried to make pro baseball...his life was consumed into his late 20s or so. Didn't make it either. Did he need treatment?

Throwing away 20 years of your life in hopes of becoming the next Derek Jeter is ok but playing some video games for a few months is a disease? Oh, that makes sense.

Come to think of it, should I have been taken away from my mom because she encouraged my stamp collecting hobby, which took time away from other parts of my life? Just how far will they go with this.....??????

<comment><USER23> > I also knew a guy that tried to make pro baseball...his life was consumed > into his late 20s or so. Didn't make it either. Did he need treatment?

> I knew a girl that had dreams of becoming an Olympic skater...her whole > childhood and teenage years were utterly destroyed...and she failed. Was she > sick? Did she need treatment?

> Throwing away 20 years of your life in hopes of becoming the next Derek > Jeter is ok but playing some video games for a few months is a disease? Oh, > that makes sense.

I really don't think you understand what the WHO is talking about. Here's their definition for gaming disorder, emphasis mine:

A pattern of gaming behavior ("digital-gaming" or "video-gaming") characterized by _impaired control over gaming_ , increasing priority given to gaming over other activities to the extent that gaming takes precedence over other interests and daily activities, and _continuation or escalation_ of gaming despite the _occurrence of negative consequences_.

Doing something with all of your free time, dedicating your life to it, that's not an addiction. It's an addiction when you _can 't stop_ even if you want to, even though it's causing negative consequences in your life.

Someone who games for eight hours a day but still has a fulfilling life outside of gaming and could stop if they wanted to has no problem. Someone who games for 18 hours a day, regularly misses work or skips classes to play games, and can't stop playing has a problem.

If you're interested in hearing more about this, there's a subreddit dedicated to people who believe they are addicted to gaming and want to stop. It's got some decent reads on it.

[https://old.reddit.com/r/StopGaming/top/?sort=top&t=all](https://old.reddit.com/r/StopGaming/top/?sort=top&t=all)

</comment></comment><comment><USER24> I used to read a lot of books when I was in school as a form of escapism. I would stay up until the early hours of the morning reading books, usually until about 2 AM or so. Obviously this lack of sleep caused "impairment in personal, family, social, educational, occupational or other important areas of functioning", to quote the article. Does that mean I was addicted to books? Is reading addiction in the DSM?

There's unhealthy habits and there's addictions, and often the line seems blurry between the two. You can be an addict and a fully functional member of society. My uncle is an alcoholic of the symptoms of addiction in the DSM: "significant impairment in personal, family, social, educational, occupational or other important areas of functioning", he shows none. I've never seen him sober for more than half a day though, he usually cracks his first beer about an hour after waking up.

<comment><USER25> Compulsion is the other side of the coin, not just negative effects.

If your uncle can't give up the sauce he's an alcoholic, and if you _couldn 't_ stop reading then you were absolutely addicted to books.

You can be an addict (compulsive behaviour) without any negative effects at all.

It's not the amount of beers you drink, it's that you can't stop.

</comment></comment><comment><USER26> To be honest, this person seems to have a persecution complex. Most people view too much gaming in a bad light, but no more so than they view too much anything in a bad light.

</comment><comment><USER27> > Under new draft guidelines by the World Health Organization (WHO), I would > be classified as having a "gaming disorder,"

From what I've read of the definitions, I don't think that he would be classified this way. So possibly a bit of a straw man.

<comment><USER28> I think he might be saying that he would be classified as having a "gaming disorder" when he was a teenager and spent all his time on arcade machines, if the new draft guidelines were in effect then.

</comment></comment><comment><USER29> Wow, I always knew it!

Being forced to work 40h a week must be a disorder too according to their definition!

It significantly impairs my personal, family and social affairs (not to mention my back!)

And yet I keep doing it, even though I know it's doing me harm.

</comment><comment><USER30> I would go a step further than the author and say that all forms of substance abuse is fundamentally rooted in other disorders.

People with stressful and unfulfilling lives will naturely search for an escape in either gaming, drugs or other substance abuse.

Taking that escape away from them won't help them, it will only cause them to relapse over and over again.

</comment><comment><USER31> What makes me smile about this (and any) "disorder" classification is:

> For gaming disorder to be diagnosed, the behaviour pattern must be of > sufficient severity to result in significant impairment in personal, family, > social, educational, occupational or other important areas of functioning

But what if you just _really_ prefer gaming (or whatever your disorder is) to personal, family, social, educational and occupational areas of life :)

Based on this Einstein had a "disorder", always studying rather than outside playing.

<comment><USER19> Einstein was characterized as smart but lazy by his teacher, so probably not. Middle class kids in his time were not expected to play outside freely the way American nostalgia runs now afaik either.

More importantly, it is not about what you prefer, but how it impacts you. If you prefer gaming to job, but still sont miss important meetings, then it is not impacting you negatively. If your gaming is helping you to cope with bullying, then it is affecting you positively. If you ignore kids for weeks because you can't unglue yourself, despite feeling guilty about it, then it is affecting you negatively. (If you never cared about them in the first place, then it is non factor).

</comment></comment><comment><USER32> 'Fundraising Disorder', 'Working Disorder', 'Speculation Disorder' should be included as well.

Any system which has a reward as part of the system can lead to a disorder.

<comment><USER33> HN Commenting Disorder. >.>

</comment></comment><comment><USER34> When comparing self-destructive coping mechanisms, gaming isn't that bad relative to some of the alternatives.

Speaking from personal experience, it's vastly cheaper and moderately healthier than drowning your sorrows out with booze or drugs. Depending on the game and the skill involved, it may leave you mentally sharper than you'd otherwise be. You might even make some friends along the way.

Of course, it can still spiral out of control and ruin your life just the same.

<comment><USER28> I agree. Anything you do as a form of escapism might help you. For example if you watch a lot of TV and English is not your first language, after some point you'll ditch the subtitles and your English will vastly improve.

If you play a lot of puzzle games, you will be mentally sharper.

If you play a lot of shoot 'em ups, your reaction times will improve.

If you hang around in the internet and have an interest for computers, you'll eventually get into computer science and programming and you'll learn quite a lot whilst trying to escape reality.

I had a friend whom I would describe as a gaming addict. He was the brightest pupil I knew from the high school. He didn't eat properly, he always wore the same hoodie (his favorite) even in the coldest winter days. He refused to drink water and only drank ice tea. He went on to a college in a distant town and disappeared.

After 3 years I saw him, he was still the same. He told me he earned some money from the youtube channel he opened in high school. He had purchased a big box of chocolate marshmallows from the supermarket, which would be his meals for a couple of days while he was visiting his friends in a different town. He struggled at college. He played obscure anime games.

After another year, he told me that he changed his major (econ) after 4 years of studying. He started CS and his life turned around.

It could be the case that you resort to gaming to escape reality. But resorting to gaming could also make you unable to change that reality and break out from that spiral.

I don't know if he would've made the decision to jump ship and start anew sooner if he wasn't playing. But in the end he was able to break out of his habit with time.

I think with time the addictions wear off, whether it is TV (in my case) or gaming. I used to watch hours and hours of TV every day. If I didn't I would feel stressed out and couldn't function properly. But now that I've grown I don't feel the urge to bing. It resolved by itself.

</comment></comment><comment><USER35> I was playing about 10 hours/day of Starcraft a decade ago. It was replacing social interaction and gave some sort of satisfaction - but it wasn't something too important,I could skip playing it for weeks if i found something more interesting. It was concentrated gaming where i had nothing better to do. Eventually i got bored of it, since it was causing me losing hours of sleep at night.

</comment><comment><USER36> Video games are vice (like beer or cigarettes), not a hobby.

<comment><USER37> Why? Is stamp-collecting a vice? Listening to music?

<comment><USER38> Yes. A vice is anything you need enjoy. A virtue is anything that enables you or others to vice.

<comment><USER37> I see what you mean but that is a great corruption of the word.

</comment></comment></comment></comment><comment><USER39> I hate opinion pieces.

</comment><comment><USER40> It definitely is just a symptom but I am guessing mainstream media needs something to make digital look more scary to soccer moms.</comment>


Show HN: Paid, an API for invoicing - <AUTHOR> https://www.paidapi.com

<comment><USER2> It's just an invoicing program. There are lots of those. Intuit's is widely used. Oracle is also in that business. There's "Anytime Collect", "Zencash", "Esker", "Celtrino". and many others.

The more advanced players support electronic data interchange (EDI), where your accounts receivable system connects to the buyer's accounts payable system. Many large companies require EDI for suppliers who generate a lot of invoices, so they aren't re-entering invoice data into their own systems.[1] Any new system should have EDI interchange with at least all Fortune 1000 companies.

There are "gateway" companies which handle talking to large numbers of other companies.[2] Once you get this all working, your invoice goes out to the gateway, the gateway formats it and sends it to the paying company, the paying company's systems validate the bill, and they do a funds transfer to your bank account, which is matched to another EDI transaction indicating payment. For most routine transactions, there's no human intervention.

Make that all work for small/medium businesses, and you have a unique product.

The API is "dead simple" because it doesn't handle any of the hard cases. Like "We ordered 1000 but 200 didn't arrive. We're paying for only 800".

[1] [http://www.aepedi.com/apay.htm](http://www.aepedi.com/apay.htm) [2] [http://www.b2bgateway.net/](http://www.b2bgateway.net/)

<comment><USER3> "Paid is a simple API" and you are comparing to Oracle?

"Paid is a simple API" but yet you "Many large companies require EDI"?

"It's just an invoicing program." aka "Instagram is just a photo sharing app". Btw invoicing programs aren't trivial (speaking of experience). Even when looking at basic features it is still about actual money.

</comment></comment><comment><USER4> I really like the clean API docs, well done! Did you build it on your own or is that some REST doc framework?

The only thing I was missing from the API (maybe those are there but left out in the docs, which would be totally fine) are links between your resources (to make it a bit more actual REST). You already more promimently documented the usecase ("create an invoice") instead of listing URL endpoints, but with links between the resources, the API becomes even more discoverable for new developers.

Oh, one more minor thing: "Paid uses UTC unix timestamps for all dates and times." \-- I was under the impression that unix timestamps are always UTC anyway (i.e. it's defined as "seconds since 1970-01-01 UTC")? If I'm wrong, please correct me :)

<comment><AUTHOR> The docs are an awesome repo by TripIt ([https://github.com/tripit/slate](https://github.com/tripit/slate)). They aren't perfect, but they get you pretty far pretty quickly.

Not sure what you mean by "links between your resources." Have an example? May be there (or we can build it if not).

Correct on Unix time. Just being extra redundant.

<comment><USER4> Roy says[1] that to be truly RESTful, your resources (documents) need to be linked between each other, just like HTML pages. There are no definite standards yet (that I'm aware of), but JSON HAL[1] seems to be on the IETF standards track to be the one solution we settle on (just like we "settled on" <a href> in HTML). See also [3] for a broader overview on links in JSON and [4] for more information on resource linking and stuff in general.

[1] [http://roy.gbiv.com/untangled/2008/rest-apis-must-be- hyperte...](http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext- driven)

[2] [http://stateless.co/hal_specification.html](http://stateless.co/hal_specification.html)

[3] [https://www.mnot.net/blog/2011/11/25/linking_in_json](https://www.mnot.net/blog/2011/11/25/linking_in_json)

[4] [http://en.wikipedia.org/wiki/HATEOAS](http://en.wikipedia.org/wiki/HATEOAS)

<comment><USER5> What about JSON-LD and linked data platform. At least JSON-LD comes from the W3C Web payement workgroup

<comment><USER4> I haven't looked into the available techniques for a few months. JSON HAL works fine for me for now. ;)

</comment></comment></comment></comment></comment><comment><USER6> This is pretty cool. So, I am using Stripe, which is great, but has a few drawbacks right now. I'm also using churnbuster, which is nice (does your "chase" feature do what they do?)

Here's my problems:

1\. Some of my customers pay by check

2\. Sometimes my customers have an out of date credit card, or haven't given it to me yet, and Stripe won't let me change their subscription to one that charges them.

3\. I occasionally do both charges, credits and invoiceitems for in Stripe

4\. I have written a lot of Stripe specific code, and would prefer to gradually try out your solution (it might not work, no offense) Can I try it out without moving completely over?

<comment><AUTHOR> 1\. Many of our customers get paid by checks. We receive checks for some of them, and our goal is to make as easy as possible to reconcile those payments.

2\. If your customer's card is out of date, we prompt the customer to update their card and store it back to Stripe for you.

3\. You aren't alone. Some customers use us for pieces of their transaction volume (i.e. only the invoiced customers or only customer paying via ACH)

4\. A la #3, you can send us a portion or all. We're also happy to help you get started. It's free to get set up, so you can try it out. We also provide a test environment so you can play around with it as much as you want.

Feel free to always shoot us an email at email@example.com.!

</comment></comment><comment><USER7> It should be noted that this is a pivot of a failed YC startup: [http://blog.shoptheorem.com/post/109312542795/an-end-and- a-b...](http://blog.shoptheorem.com/post/109312542795/an-end-and-a-beginning)

<comment><USER8> Why should that be noted?

<comment><USER7> There's no About page or any context to the team and qualifications for running a high-responsibility service, so this is the only information available about the quality of the platform.

<comment><USER8> Before reading that comment, it should be noted that minimaxir has been rejected from Stanford.

</comment></comment></comment></comment><comment><USER9> Are there any companies who are using this currently? Can anyone speak to how it's working for them?

<comment><USER10> We (nomadbits.com) have been using it and everything has been great so far.

We help companies with APIs improve their developer onboarding process, which means we invoice both monthly services (like creating and maintaining high quality API libraries), as well as one-off consulting (like updating documentation and creating "Getting Started" guides), and Paid has been great for both use cases.

Do you have any specific questions?

 __Full Disclosure __\- Paid is a customer of ours as well, so we may be slightly biased :D

</comment></comment><comment><USER11> How does this compare with something like Xero?

<comment><USER12> It's really quick to start using. It's like a mashup of Segment and Stripe, you just start pinging events and it starts getting you money.

<comment><USER11> Could you integrate it with Xero? (Rather than relying on Zapier)

<comment><USER13> I'd love to hear why you don't want to rely on Zapier for this, any feedback?

<comment><USER11> Some of the APIs we use break often with Zapier (not Zapier's fault). It's easier to have direct integration and let the vendor deal with it.

</comment></comment></comment></comment></comment><comment><USER14> I don't see a "security" page. Did I miss it?

</comment><comment><USER15> Is there support for multiple currencies? Could I use this from Australia to invoice clients in multiple currencies (e.g. USD, AUD, CAD GBP)?

<comment><USER16> Not yet. Started with USD, but hoping to expand that offering soon.

</comment></comment><comment><USER17> I'm curious, on the technical side, what stack/technologies have you used? Also, did you scaffold the typical crud endpoints or manually wrote them, for each resource?

I'm trying to gain experience in building APIs and yours seems like a good model for doing so :)

</comment><comment><USER18> Do they actually process charges? I can't find a cost / transaction and a % taken.

<comment><USER16> We use whatever payment processor you us. So, for example, you'd connect your Stripe account and we process all credit cards using that account. Our pricing is at www.paidapi.com/pricing and based of the revenue tracked/invoiced.

<comment><USER19> are u the gateway?

</comment></comment></comment><comment><USER20> Does the laptop in the splash photo bother anyone else? It looks like they photoshopped the keyboard to be much shorter. Look how tall the screen is, then imagine you folded that down to meet the keyboard. That's no laptop I've ever seen!

<comment><USER21> The whole image is being stretched vertically in CSS ("background-size: 104% 160%;"). You can see the same distortion on the man's arm, the phone, and the pencil holder.

Definitely a "once seen, can't unsee" type of thing but I'll admit I didn't notice it initially. :)

</comment></comment><comment><USER22> Useful useful!</comment>


Write self-destructing blog posts - <AUTHOR> https://dspsbl.io/ <comment><USER2> Do the blog posts _eventually_ get deleted at some point? It sounds like they will only be made "private" in a certain sense after the time has lapsed, but not completely removed.</comment>


Ask HN: What's the best email client for managing multiple addresses? - <AUTHOR>

I'm a freelancer and every company I currently have a contract with (3) has given me an email. Right now, I'm just checking all three like a chump, but I'd like to find something compatible with an upcoming project: configuring my own mail server on some webspace I've purchased so I can use my domain in my personal email (i.e. firstname.lastname@example.com) instead of my current gmail setup.<p>Any thoughts on how I could accomplish this? <comment><USER2> Looking to possibly build a solution for this. I use a few different emails (school, personal, work) and find myself jumping back and forth. Wondering if there is room for a new web-based aggregator that provides simplicity of iOS Mail / Mailbox but on the web? Or is it too "against the grain" to focus on web instead of mobile?</comment>


Show HN : Review my startup : Dealites, a location based deal aggregator - <AUTHOR> http://www.dealites.com/

<comment><USER2> Some feedback:

1\. I am not a designer but I could'nt help notice that the footer is way too cluttered. You might want to group them.

2\. Dropdown box doesn't work well if JavaScript is disabled. Though I dropdown to Bangalore and hit search, the search results are for DelhiNCR. Ditto for after search results are displayed. Seems to work properly if I change the URL directly though. You might want to degrade gracefully for JavaScript disabled browser settings.

3\. Again, not a designer but a map background is not too original and gives me feeling that the page is too busy.

4\. Chennai search results are somehow fetching unrelated Jaipur deals. [Searched for Spa in Chennai.] In fact, only the top three were Chennai related I think. And in that, opening up the sasta.com result led to a "more- deals" template page.

5\. You might want to geoip and set the default city accordingly.

<comment><AUTHOR> Thank you hrasm for the feedback. 1\. We will try to make the footer less cluttered. 2\. We initialize cookies for 1st time users using the dropdown. So you are getting this error (wrong city). For the time being, we are not dealing with JS-disabled browsers. 3\. Our UI is undergoing major changes. We are readying a new design in which the map is removed. 4\. Can u click a snapshot and share the pic? 5\. Thank you for this suggestion. We will implement it soon.

Thank you again for the feedback :)

</comment></comment><comment><USER3> The default text in the search box "eg. Spa" could be improved. First of all, if you're going to abbreviate the Latin phrase "exempli gratia," the including the periods "e.g." is the correct way to do it. Just using "For Example:" would be better, and it would also be easier for non-native English speakers.

Giving more examples besides just "Spa" would also help.

</comment><comment><USER4> 1\. for each deal it will be good if the map location can be shown in an extra columen. 2\. fr each deal why is it reqd to go to a diferent web page, cant a ajax op help here directly interacting with the deal.. 3.provision to grab multiple deals at one shot thruogh ajax.

Regards Jyotirmoy Sundi

</comment><comment><USER5> I like the feel of it.

I tried putting "gold" and it kept going back to spa.

I would remove the e.g. or eg; just put the item that you think your ideal customer would look for.

You might create an array with several and randomly populate the value field so each time they come they see a new suggestion of items to search.

Also why not start with the main page that already has a item searched, then the person can change it. This way I can see what you have to offer. It also gets me thinking of what I might want to search for: <http://www.dealites.com/search/delhi-ncr/?phrase=jewelry>

I love the counter.

Your design has a good feel to it; I love the name. Good job! Do you have a marketing strategy?</comment>


Hacker's guide to Neural Networks (2012) - <AUTHOR> http://karpathy.github.io/neuralnets/ <comment><USER2> I've read so many of these, none of them include the information I need.

If someone wrote a "Hackers guide to Tuning Hyperparameters" or "Hackers guide to building models for production" I would ready/share the shit out of those.

<comment><USER3> The problem is, this really is different on each task. It's really hard to state any generic rules of thumb. Everyone has their own default parameters and intuitions but I would say most of them are heavily biased to the tasks you have worked with. For example, I work with deep bidirectional LSTMs on acoustic modeling for speech recognition, and I use Adam with a starting learning rate of 0.0005, Newbob learning rate scheduling, pretraining, dropout of 0.1 in addition to L2 regularization, and so on. I tried to collect these results here: [https://www-i6.informatik.rwth- aachen.de/publications/downlo...](https://www-i6.informatik.rwth- aachen.de/publications/download/1030/Zeyer-ICASSP-2017.pdf)

<comment><USER4> I know nothing about any of this, but has there been any work into using neural networks to guide and vary the parameter values during training?

<comment><USER5> There has been some work related to what you are describing:

 _Learning to learn by gradient descent by gradient descent_ [https://arxiv.org/abs/1606.04474](https://arxiv.org/abs/1606.04474)

Related (but less so), there are also some papers about learning neural network architectures:

 _Designing Neural Network Architectures using Reinforcement Learning_ [https://arxiv.org/abs/1611.02167](https://arxiv.org/abs/1611.02167)

 _Neural Architecture Search with Reinforcement Learning_ [https://arxiv.org/abs/1611.01578](https://arxiv.org/abs/1611.01578)

</comment></comment></comment></comment><comment><USER6> This has been submitted quite a few times in the past: [https://hn.algolia.com/?query=karpathy.github.io%2Fneuralnet...](https://hn.algolia.com/?query=karpathy.github.io%2Fneuralnets&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

<comment><USER7> Aw. And I was hoping Chapter 3 and 4 would be finished sometime soonish. It's the only part of the guide that you can learn from by example.

<comment><USER8> I don't think it'll ever be finished.

<comment><USER9> Yep, Andrej leads Tesla Autopilot now. Doubt he'll be following up here.

<comment><USER10> yep :(

<comment><USER11> I guess ancestor commenters need only wait for a weekend now :)

</comment></comment></comment></comment></comment></comment><comment><USER12> A good sit in probability theory and multivariate calculus is the first thing you should spend your time if you want to understand NN, ML and most of AI for once.

These hacker guides only scratch the surface of the subject which, in part, contributes to creating this aura of black magic that haunts the field; I'm not saying that is a bad thing though, but it needs to be a complementary material, not the way to go.

</comment><comment><USER13> When it comes to backpropagation, PyTorch introduction contains some valuable parts: [http://pytorch.org/tutorials/beginner/deep_learning_60min_bl...](http://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html)

</comment><comment><USER14> Static neural networks on Rosetta Code for basic things like Hello World, etc, would do a lot to aid in people's understanding of neural networks. It would be interesting to visualize different trained solutions.

</comment><comment><USER15> Knew this wasn't for me when he had to introduce what a derivative was with a weird metaphor. I like this approach to teaching things (it's Feynman-y) but half the time I end up hung up on trying to understand a particular author's hand-waving for a concept I already grok.

</comment><comment><USER16> Thank you for posting this! I hadn't seen it and have been looking for a simple guide like this one.

</comment><comment><USER17> thanks for sharing, apparently i missed past submits

</comment><comment><USER18> Hmm, I've just scanned through this, but it seems this gets the concept of stochastic gradient descent (SGD) completely wrong.

The nice part of SGD is that you can backpropagate even functions that are not differentiable.

This is totally missed here.

<comment><USER19> How do you compute the gradient of a non differentiable function? I'm not an expert, but that contradicts anything I've learned about gradient descent.

<comment><USER20> Pseudo gradients are a thing. You can pretend its a continuous function and get gradients that push it in the right direction.

</comment></comment></comment><comment><USER21> As someone who is quite new to this field and also a software developer I really look forward to seeing this progress. I write and look at code all day so for me this is much easier to read than the dry math!

</comment><comment><USER22> Wonderful guide, thanks for sharing!</comment>


Shenzhen Surpasses US$338B GDP Mark in 2017, Beats Hong Kong and Singapore - <AUTHOR> https://www.scmp.com/news/china/economy/article/2128310/shenzhen-88-cent-hi-tech-growth-roll-hit-y2tr-2017 <comment><USER2> A surprising effect of currency exchange rates in comparisons like this is that Shenzhen, despite its huge population, massive infrastructure, and gigantic product output has a GDP about the same as the Miami-Fort- Lauderdable-West-Palm-Beach metro area:

[https://en.wikipedia.org/wiki/List_of_U.S._metropolitan_area...](https://en.wikipedia.org/wiki/List_of_U.S._metropolitan_areas_by_GDP)

</comment><comment><USER3> > The city, which is roughly the same economic size as Singapore and Hong Kong

What does that mean? The population of Shenzhen is 12.5m, Hong Kong 7.4m, and Singapore 5.6m. Geographic areas are also in similar proportion.

<comment><USER4> Beats seems like a pretty stupid thing to say even for a headline. Exceeds per capita in some way would be much more impressive. Additionally, what part of this growth is directly from China state subsidies? And besides this, how is the difference in terrain not discussed? Both of the others are surrounded mostly by water so growth is notably harder in those competing cases.

</comment></comment><comment><USER5> Shenzhen not only has twice the population but millions more commute to Shenzhen from throughout Guangdong.

I remember it when it was a series of fishing villages.

</comment><comment><USER6> This will change somewhat... Shenzen exports a lot to the US, but that's going to get more expensive soon.

</comment><comment><USER7> "15 Jan, 2018"

This is only relevant now as the communist party wants to crack down on the Kong Hong people as it can afford to lose the city</comment>


Ultra-Processed Diets Cause Excess Calorie Intakeand Weight Gain: Randomized [pdf] - <AUTHOR> https://www.cell.com/cell-metabolism/pdf/S1550-4131(19)30248-7.pdf <comment><USER2> [https://news.ycombinator.com/item?id=19930970](https://news.ycombinator.com/item?id=19930970)

<comment><USER3> "[Dupe]" doesn't seem appropriate when so much time has elapsed that we can't even comment.

<comment><USER2> On HN the turnover is about a year: [https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html). If it were as short as two weeks, which is the commenting window, the same few hot stories would get rediscussed over and over.

</comment></comment></comment><comment><USER4> I think it's more likely that this conclusion is true than that it's false.

However, the fine article says: "We admitted 10 male and 10 female weight- stable adults".

That is a ridiculously small population to start with. Yes, yes, I know it's expensive to have many participants, but part of the broader problem in today's science is that too many experiments are accepted broadly even though they are based on tiny sample sizes. This is an excellent justification for conducting a larger study, not a conclusion in itself.

</comment><comment><USER5> From Table 3 Fasting Blood Measurement Baseline:

> PYY (pg/mL) 25.1 ± 1.9 34.3 ± 1.9

PYY is a hormone which regulates feeding in humans. From another study:

> Several lines of evidence suggest that low circulating PYY concentrations > predispose towards the development and or maintenance of obesity. [0]

A highly processed diet reduces the levels of PYY in the blood by around 30-40%. That's pretty damning evidence.

[0] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2670018/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2670018/)

</comment><comment><USER6> > Our study was not designed to identify the cause of the observed differences > in energy intake.

Would be great to see a factor breakdown (obviously hard). I can see several reasons why processed food leads to this result: chemically better tasting (optimal flavor blast + salt/falt), mentally better tasting (i.e. comfort food), or some deeper gut reasons?

because this then sets the agenda for how we fix this problem.

<comment><USER6> another thing could be that it's just calorically dense if ad libitum is encouraging people to eat until they're tastes are satiated

</comment></comment><comment><USER7> "While we attempted to match several nutritional parameters between the diets, the ultra-processed versus unprocessed meals differed substantially in the proportion of added to total sugar (54% versus 1%, respectively)."

It's an interesting study, but I would still like to see more strict calorie for calorie, and macro for macro match.

By allowing the participants to eat freely and by having so much more sugar in the processed diet, all this really shows is that processed diet was leaving participants more hungry so they ate more.

<comment><USER8> >> "all this really shows is that processed diet was leaving participants more hungry so they ate more. "

This is 99.9% of the reason why people are overweight.

Every biological being eats until they're full(the body stops sending hunger signals). this is true for human, as it is ducks, monkeys, dogs or pretty much any other animal. For many, eating junk food/processed foods, breaks this satiety mechanism (and not just in the short run, there may be long term effects that prevent people from going back to normal).

Not being hungry, having satiety is the holy grail of weight management. Unfortunately, we don't have the means to produce satiety without calories. Yes, fiber/protein/micronutrients densities do help a little, but it does not help enough.

And there hasn't been enough studies on it. Other than the Holtz studies I haven't found much done on this subject.

<comment><USER7> There are a number of prescription weight loss medications that increase the feeling of satiety. Maybe you meant that we haven't found a way to do it without side effects?

[https://www.niddk.nih.gov/health-information/weight- manageme...](https://www.niddk.nih.gov/health-information/weight- management/prescription-medications-treat-overweight-obesity)</comment></comment></comment>


A large, bloated JS framework with an unintuitive syntax and very few features - <AUTHOR> https://github.com/facebook/javelin/

<comment><USER3> Find the self-deprecating humor quite amusing, but even better is the actual description:

 _"Because Javelin's design focuses heavily on solving scalability challenges, it isn't appropriate for everyone. The design implies tradeoffs, and the cost of some of these tradeoffs is increased complexity, reduced ease of development, or less flexibility"_

This is really refreshingly honest, especially compared to some of the newer nosql sites we've seen lately.

Edit:

      - "We designed for x, y & z to fulfill these requirements: .."
      - "These are tradeoffs though, so if your needs a different,
         this may not be the best approach"

<comment><USER4> It is refreshing to see something not pretending to be all things to all people whose drawbacks are only widely known after the Hype Curve starts the downwards portion..

</comment></comment><comment><USER5> Ummm... when you goto the website in the top right corner it has what I think might be a chinese flag and says 'hacked' <http://www.javelinjs.com/>

But otherwise looks like a good effort.

<comment><USER6> Evan is a special soul, with the heart of a poet and the spleen of a troll.

<comment><USER7> I have found your sentence to be so succinct but explains a lot.

</comment></comment></comment><comment><USER8> <http://phabricator.org> I plan on using this, the site was part of the deciding factor.

<comment><USER3> you mean this: _"Facebook engineers rave about Phabricator, describing it with glowing terms like "okay" and "mandatory"_

? :)

Edit: Thanks for the link, that project looks awesome! I'm convinced already. Wonder if it was just the language that did the trick..

<comment><USER9> This is the part that got me: _Written in PHP, so literally anyone can contribute, even if they have no idea how to program._ Even babies and dogs can contribute

</comment></comment></comment><comment><USER10> There's an explanation for everything: [http://www.quora.com/Javelin- JavaScript-framework/best_quest...](http://www.quora.com/Javelin-JavaScript- framework/best_questions)

</comment><comment><USER11> <https://github.com/facebook/javelin/issues/9>

<https://github.com/facebook/javelin/issues/10>

<comment><USER12> I'm getting a kick out of those comments! I'm glad that they find humor in the little things. It's a nice reminder that people still have fun programming. Reminds me of some of the stuff the Github guys release.

</comment></comment><comment><USER13> Great site and self-deprecating humor. It's funny, but I don't Normally think "great JS" when I think of Facebook's Strengths...its backed and scalability seem quite impressive, but its frontend doesn't stand out in terms of performance (or consistency), but I'm likely not paying enough attention to all the factors that FB's interface has to deal with.

Ironically, this counterintuitive, lets-make-fun-of-other-JS-frameworks- overhyping-themselvs approach has already seeded into my mind, "FB must have awesome JS, remember how they could get away with parodying other JS frameworks?"

<comment><USER14> I really hate it when I'm browsing through images (in the pop-up) on a slow connection...

If I move to the next image before the current one finishes loading, the next one will be replaced by the old one when it finishes loading. Really annoying, a very simple thing to fix, but I guess that FB engineers never view their sites on slow connections...

<comment><USER15> Facebook's client is one of the most buggy pieces of web software I have ever seen, whether on mobile (iOS) or desktop (Windows - Chrome/IE/Firefox):

* pages frequently don't refresh correctly (content is missing)

* changes to your profile take hours to reflect or reflect inconsistently

* stale notifications persist despite reloading (CTRL+F5) a page

* notifications made within the space of 12 hours are listed as a combined notification

* image uploads fail with no way to recover (dialog just sits there) or often take me to an error page (with the album created)

* the timeline places items in weird locations with no way to fix it (changing the date doesn't work consistently)

* chat windows show inconsistent messages between two tabs on the same browser

That's just off the top of my head. Some of these seem to have been fixed, but I'm always running into new problems. (Note: I'm not suggesting it's _easy_ building a site like Facebook.)

<comment><USER16> I guess you should pay more attention to the software you use. Gmails or Docs have similar problems. They are not so visible though because most people's mailboxes don't exceed 1 GB and Docs is rarely used.

Comparing that to the variety of gadgets and clickables on Facebook's website, the complexity of other Webapps looks like a joke.

Most stuff you mention are issues you see in a lot of heavy-load AJAX-Apps.

"chat windows show inconsistent messages between two tabs on the same browser" That's XMPP, mate.

<comment><USER15> I'm not sure what you're trying to say. I said it's one of the most buggy web applications _I've_ ever seen. Maybe your experience differs, but I cannot see how that invalidates _my_ experience.

I don't really understand your point about complexity. It seems contradictory. You're saying other sites have most of these issues but you're also saying Facebook is much more complex _without_ having much more issues. That doesn't make sense, especially since you're also saying you think these issues are common to what you say is a fragile technology stack under these loads (AJAX) and suggesting that it's okay to then add extra "gadgets and clickables" to an already fragile stack.

With respect to your claims about Gmail, my 2 year old Gmail account currently consumes 815MB of storage across ~6K emails. I use Google Docs regularly. I have never seen the issues I listed w.r.t. Facebook on Google services. GTalk works perfectly across multiple platforms simultaneously. I even find www.gmail.com (mobile & desktop) to work better and more reliably than Apple's Mail application on my iPhone. I have never failed to attach a file to a Gmail email; I've also never failed to upload an image to Docs. Facebook's application - mobile iOS, under Safari on iOS, and on Windows - <USER2> consistently buggy.

You seem pretty heavily invested in defending Facebook in such a way that you take my observations as personal attacks. Are you currently employed there or have you been employed there by any chance? Or are you a non-native English speaker?

<comment><USER16> I'm not affiliated to Facebook in any way and non-native English speaker. Sorry if this sounds so offensive, I'm just becoming tired of people complaining about Web-Apps. Probably your problems solve by getting a better computer and a better network connection, or by removing some of your Facebook friends and deactivating Facebook Apps.

When using Gmail at work often, I frequently failed to sent attachments or I had issues with the mail client to load. Others had the same issue. It's always a question how you use applications.

</comment></comment></comment></comment></comment></comment><comment><USER17> Ha, fantastic! But if this was a Jeopardy questions, then I would have a tough time guessing which of the bigger client-side MV* frameworks this was targeted at.

</comment><comment><USER18> What got me was clicking the 'Run Javelin Tests' link on the navigation bar at <http://javelinjs.com/>. :)

</comment><comment><USER19> Best "Getting Started", EVER!

"GETTING STARTED

Eat a hearty breakfast. Breakfast is the most important meal of the day!"

<comment><USER20> Breakfast is even better when you eat it for dinner!

</comment></comment><comment><USER21> This doesn't look all that unwieldy. It looks like a concise library of choice front end utilities.

</comment><comment><USER22> "Its primary design goal is performance; it is consequently well-suited to projects where performance is very important. It is not as good for smaller scale projects where other concerns (like features or ease of development) are more important."

That's Javascript for you - you can't have both performant and nice code at the same time.

<comment><USER23> You can have performant codes?

</comment></comment><comment><USER24> Half the development team seem to bee MooTools alumni

</comment><comment><USER25> GETTING STARTED

Eat a hearty breakfast. Breakfast is the most important meal of the day!

</comment><comment><USER26> I love the tone of the README..

</comment><comment><USER27> Here is one more large, bloated JS framework with an unintuitive syntax and very few features

<http://jquery.com/></comment>


Why the video pros are moving away from Apple - <AUTHOR> http://arstechnica.com/apple/news/2012/01/video-pros-apple-needs-to-acknowledge-the-pro-industry-and-fast.ars <comment><USER2> People have been using Avid long before FCP started to take market share, and I guess there will be a resurgence now.</comment>


UK Labour Income Tax Calculator - <AUTHOR> https://calculate.forlabour.com/ <comment><AUTHOR> A little tool to illustrate changes to income tax under a Labour government in the UK.

Obviously income tax isn't the full picture for a party's taxation plans, but as one of the 'big factors' for individuals, I think it's important that people have a decent idea of how they will be affected.

Clicking the menu in the top right and then 'Advanced' will show a breakdown of the taxation under each marginal rate.

I'm not aware of anything similar based on the tax plans of any of the other parties,

Disclaimer: I am involved with the group who built this, although my involvement on this tool itself was minimal.

</comment><comment><USER2> Wading into political matters! Perhaps this should be flagged!

However - this is the independent Institute for Fiscal Studies initial response to the Labour plans. [https://www.ifs.org.uk/election/2019/article/labour- manifest...](https://www.ifs.org.uk/election/2019/article/labour-manifesto-an- initial-reaction-from-ifs-researchers)

<comment><AUTHOR> Is it really 'political' if it's based on published figures? It's an informational tool, not a political view.</comment></comment>


HTML5 client-side graphing calculator - <AUTHOR> http://graph.tk/

<comment><USER2> I can't tell if aantthony (the github handle of the creator) posted this. aantthony, are you here? Folks might want to ask you some questions.

<comment><USER3> Hello, I'm here now :)

I didn't post this, so thanks for posting it anigbrowl.

<comment><USER2> Hey! My question is: Where did this come from? An academic project? And, what are your goals? Writing a CAS system in JS could be a gargantuan undertaking!

<comment><USER3> Not an academic project, but the idea came out of thinking of what I could do with the canvas element. Originally a CAS was a joke :)

Goals - when it's finished I'm hoping for the following features: \- Showing points for intercepts, maxima, and minima. \- Calculating derivatives and integrals. \- Plotting inequalities and implicit equations. \- Solving differential equations (it would be great if it was with CAS, but that would be very difficult)

Other ideas include: \- Plotting in 3D \- Visualisation of discrete data - maybe.

I think it will be useful for places like schools where it's difficult to install software.

Thanks for asking.

<comment><USER2> I like the school idea. Maybe you can ping Khan (academy), for his interactive portion. I'm still fuzzy on the integrals and derivatives: are they for a predetermined set of functions?

</comment></comment></comment></comment></comment><comment><USER4> Do HTML5 applications play havoc on anybody else's browser? I'm running Firefox 3.6.13 on Ubuntu 10.04.

<comment><USER5> Works fine for me on Chrome latest dev channel and Safari 5.0.2 on Mac. That said, I've had issues with Firefox 3.6.x with HTML5 in the past, ranging from outright incompatibility to extremely slow performance. Firefox 4.x supposedly fixes all those issues. YMMV.

</comment></comment><comment><USER6> <http://news.ycombinator.com/item?id=2110106>

<comment><AUTHOR> Oops - sorry.

</comment></comment><comment><USER7> It is pretty good, but I think infinity resolves at some crazy small number. I entered in 999 in place of inf and it resembled the function I remembered from university much more clearly. Cool app though.

</comment><comment><USER8> This is one is good too and in 3d

<http://www.graphycalc.com/>

</comment><comment><USER9> get a better domain name - besides that... great job!

<comment><USER10> I like the domain name. It's short and catchy.

<comment><USER11> The .tk domain has been ruined so much that it just screams untrustworthy.</comment></comment></comment>


Show HN: Remote Presence – faking your presence on Slack - <AUTHOR> http://www.remotepresence.io <comment><USER2> My issues with this :

1) No privacy policy

2) No information about developer

3) Asking my slack username and password

4) HN Account 10 days old.

<comment><USER2> In short currently its looking like someone anon asking my slack username and password, there is no trust factor.

<comment><USER3> but that landing page looks so legitimate, it must not be a honeypot /s

<comment><USER2> The purpose of honeypot is to look like a honeypot</comment></comment></comment></comment>


Review my app: FoodFyt, FaceMash for food - <AUTHOR> http://foodfyt.com/

<comment><USER2> Great website! I just lost 20 minutes of my life rating food to then die in even to eat many of them. I think it is therefore a mission success!

I think a great concept you could add would be a food fight mode where you create your own fight between two image you added and can send a link to it. This would be great when two person argue about who cooked better or what tastes better between two thing. It would be a simple way to incorporate the classic human fight over two meal with a fun tool to get a result out the fight.

<comment><AUTHOR> Thanks! Great idea! allowing users to create custom pairs of photo and allow to share them is on the upcoming features list, and perhaps a facebook app would suit this purpose.

</comment></comment><comment><USER3> Very nice design.

One request: keyboard shortcuts.

If you'd like people to play a bunch (and I imagine you would), this would be a nice touch.

<comment><AUTHOR> true, will add this by today or tomorrow

</comment></comment><comment><USER4> Pretty cool! Noticed a possible bug though. Mouseover the left image gives me a vote url param of r and right image param yields l. Could cause some weird reports for ya if you hadn't noticed.

</comment><comment><USER5> Interesting idea. It would be a lot more valuable with a domain name that a potential user could spell after hearing it mentioned to them.

Also - A caption for each submission would be huge.

<comment><AUTHOR> that's the best domain name that I could think of at the time. As for the caption, I'm not sure yet... I'm still trying to see if I can pull the photo comment from Instagram.

</comment></comment><comment><USER6> Looks cool. You could do better with displaying the results like this site - <http://www.thematchinggame.com/>

<comment><AUTHOR> bar grahps is definitely a more powerful visual cue... will see when I can add it, thanks for the idea!

<comment><USER6> Not just the type of graph but the fact that you don't have to scroll down to see the results. I didn't notice the results until I scrolled by mistake. If you have to keep scrolling up and down, it's annoying.

<comment><AUTHOR> true! we could improve that by saving some of the spaces in the design to bring above the fold, will do that right away!

</comment></comment></comment></comment><comment><USER7> I think it's becoming the norm for these comparison sites to use the 1 and 2 keys to select between the two choices. You don't have it, I was disappoint.

<comment><AUTHOR> you're absolutely right! it was a weekend project of sorts, so we didn't have time to add everything we wanted to see

</comment></comment><comment><USER8> hey question, how did you overcome the network effect problem, since for voting games like these to be 'fun', would require a pool of 'items' to be in the universe.

</comment><comment><USER9> Thank you for not calling it a "startup." I like the site!

<comment><AUTHOR> can't call a weekend project a startup!

</comment></comment><comment><USER10> That's awesome, thank you!

Would love to be able to sign in via Instagram and add my images.

<comment><AUTHOR> Thought about this, but if we open it up to users some of them may upload photos that are not about food, right? Or maybe we can do some moderation before including them, or even allow users to weed out non-food photos.

<comment><USER10> There's your problem right there. If I can't upload my photos and compare them to others and be judged, then I have no use for the service.

There are solutions to this problem, but censuring, controlling or impeding user contributions is not one of them.</comment></comment></comment>


IoC Containers Compared. Single and Multi Threaded Speed Test - <AUTHOR> http://codetuple.com/articles/aspnet/HQMvY32Nzxp/ioc-containers-a-comparison <comment><USER3> Article says "IOC !== DI".

Actually that is wrong.

IOC = Composition Root + DI + Lifetime Management

Be wary of any IOC Container that supports a global static function like GetInstance<T>(...) As this is not IOC or DI. This is Service Location - <USER2> totally different pattern. IOC Containers that support that often have confused semantics all over the place.</comment>


"How the Web was Won" - Amazing Oral history of the Web - <AUTHOR> http://www.vanityfair.com/culture/features/2008/07/internet200807?currentPage=1

<comment><USER2> Pretty fun, but pretty fluffy, too.

I have fond memories of working right next to the Harvard CRCT (Center for Research in Computing Technologies, whose building has been replaced by the Gates/Ballmer "cheese wedge") IMP late at night, and having someone from BBN call the phone on the side of the big rack, asking anyone around to reboot it. Gee, 56Kb/sec leased lines! Seems amazing, but it was fast at the time of 150/300 baud modems.</comment>


Apple's glitch-filled Maps app could get someone killed - <AUTHOR> http://www.abc.net.au/news/2012-12-10/apple-maps-strands-motorists-looking-for-mildura/4418400

<comment><USER2> right, like select "Walking directions" and accidentally walk into the Bronx at 3 AM :)

Also, people should look at the directions of Apple max as a whole as well, you can tell that something is fishy when route looks dumb. Just use common sense</comment>


Node.js: Upcoming DOS security vulnerability - <AUTHOR> https://nodejs.org/en/blog/vulnerability/oct-2017-dos/ <comment><USER2> Scary with how many are using Node.js ... hopefully this gets upvoted more!</comment>


Dude, you broke the future (transcript) - <AUTHOR> http://www.antipope.org/charlie/blog-static/2018/01/dude-you-broke-the-future.html? <comment><AUTHOR> Corporations are optimization processes. Advertising is an optimization process. Social networks are. Smartphone addiction. Political polarization. Television, mobile games, and most forms of entertainment.

This prevalence, and the fact that it's not _EVIL_ doing it but just amoral goal-directed processes, seems to me to be the key to recognizing, fighting back, and fixing society.

We have to figure out some way to fight for our human values, against these optimization processes. I don't think Stross has (or claims to have) a strong answer there... any ideas?

<comment><USER2> It's almost like we need community-level organizations for people to participate in weekly dedicated to helping people become more selfless, humble, and generally more loving humans so that their actions can then be an influence to everyone around them for feedback effect. Fix society at the community level, and higher levels will follow.

<comment><AUTHOR> Haha... (at the cleverness of your description of church/religion)

Secular church is definitely one approach, one option to try to fight fire with fire. I've seen compelling analysis tying the increase in intense political tribalization to filling the void left by the general decline in societal religiosity.

Every cause wants to be a cult. (To quote, I think, eyudkowsky)

<comment><USER3> > I've seen compelling analysis

Have you any idea where you saw this? It doesn't sound right to me, as voter numbers are generally stable to falling the elections I pay attention to, while religion declines. I'm also not convinced that politics is more tribalised (perhaps it is in the US?) but have not read about this either.

</comment></comment></comment></comment><comment><AUTHOR> Meta note: I'm submitting this again, and don't think of this as a dupe, because I think the transcript/blog form is much more engaging than a video (and by accounts on the video thread, the transcript may be the better form here even if one likes videos).

Previous discussion on video: [https://news.ycombinator.com/item?id=16032643](https://news.ycombinator.com/item?id=16032643)

<comment><USER4> note that the authors own submission was marked as a dupe of the video: [https://news.ycombinator.com/item?id=16051337](https://news.ycombinator.com/item?id=16051337)

<comment><USER5> Ok, since people seem determined to resubmit it we'll mark this one as the dupe and revive that one.

</comment></comment></comment><comment><USER6> I think a way to look at it is this: The singularity happened, likely sometime in the 90s. It was, what any singularity is, the point where what came before it is not useful to predict what came after.

It is no surprise that the event defined by our inability to predict past it did not work out in the way we imagined.

<comment><USER7> By that definition there would be MANY singularities throughout history. Pretty much anything that caused a paradigm shift would fit, for example "the printing press", "the atom bomb", or "the internet".

It is definitely an interesting way of looking at things, but I think waters down the "singular" part of the singularity too much.

<comment><USER8> Well, the printing press was a singularity in the availability of information. The atom bomb was a singularity in defense and war. The Singularity is supposed to be a singularity in _everything_ , or at least in enough of them that we can become gods (immortal, all-knowing and close enough to all- powerful).

And this discussion prompts a new thought: What are the military applications of The Singularity? (Don't bother saying that we're all going to live in peace and harmony after it happens. We won't.)

<comment><USER7> It isn't that we all live in peace and harmony, but any conflict would happen so rapidly and conclusively that 99% of time after the Singularity would be peace time.

<comment><USER9> Very much not necessary. You clearly haven't played the paperclips game.</comment></comment></comment></comment></comment>


TaBERT: A new model for understanding queries over tabular data - <AUTHOR> https://ai.facebook.com/blog/tabert-a-new-model-for-understanding-queries-over-tabular-data/ <comment><USER2> I'd like to see something that could do this, handling the awfulness of real world tabular data. "What country has the highest GDP? Okay, which table has GDP? Is it the country_gdp table? No, that's an old one that hasn't been written to in 3 years. Ah here it is, but you need to join against `geopolitics`, but first dedup the crimea data, since it's showing up in two places, we're can't remember why it got written to twice there. Also, you need to exclude June 21 because we had an outage on the brazil data that day. What do you mean some of the country_id rows are NULL?" And so on. I dream that someday there's a solution for that. That's a looooong ways away, I'd bet.

<comment><USER3> The tough thing is that a common failure mode of many of the modern AI solutions is some output that looks superficially correct, but doesn't actually map correctly to the real world. When you want a table of data, it seems like the danger will be high that the table looks correct but isn't actually accurate. The problem here is about keeping sloppy data out of your table, which is tough for a statistical AI.

So yeah, I would expect this to be a long ways away.

<comment><USER2> For more interesting problems than "which country has the highest GDP?", it's about more than just sloppy data. If you want to include any covariates, how do you know which ones to include? You could try to include everything predictive, but then you'll use the client margin column to predict client revenue or something. Or you'll control for a column causally downstream, biasing your estimates, like estimating revenue differences and controlling for page views in an experiment that affects page views. There's so much that we just don't include in our databases that's crucial to using them, and it's not just about sloppiness.

</comment></comment></comment><comment><USER4> Does anyone know how it relates/compares to Google's TaPaS? [1] I notice this paper doesn't refer to it.

[1] [https://ai.googleblog.com/2020/04/using-neural-networks- to-f...](https://ai.googleblog.com/2020/04/using-neural-networks-to-find- answers.html)

<comment><USER5> They both report performance on WikiTableQuestions (called WikiTQ in the TAPAS paper).

Wang, et.al. (previous SOTA): 44.5

TAPAS: 48.8

TaBERT: 52.3

</comment></comment><comment><USER6> Git repo or it doesn't exist ;-)

Seriously, if this is not available, what are the alternatives?

I've seen in the past some NLP + Storage project but I don't recall them. (even remotely connected, there was something to convert PDFs into machine readable data).

Is this AwesomeNLP [https://github.com/keon/awesome- nlp](https://github.com/keon/awesome-nlp) a good starting point there?

<comment><USER7> it's in the paper

[https://github.com/facebookresearch/tabert](https://github.com/facebookresearch/tabert)

<comment><USER8> No pretrained models, though, unfortunately.

<comment><USER9> They do provide it. The link is in github repo. Google Drive shared folder : [https://drive.google.com/drive/folders/1fDW9rLssgDAv19OMcFGg...](https://drive.google.com/drive/folders/1fDW9rLssgDAv19OMcFGgFJ5iyd9p7flg)

</comment></comment></comment></comment><comment><USER10> Seems similar to this work out of Salesforce a few years ago: [https://www.salesforce.com/blog/2017/08/salesforce- research-...](https://www.salesforce.com/blog/2017/08/salesforce-research-ai- talk-to-data.html)

</comment><comment><USER11> TABERT no longer on the Spider leaderboard? - [https://yale- lily.github.io/spider](https://yale-lily.github.io/spider) . The top is "RATSQL v2 + BERT" testing at 65.6 for exact matches.

</comment><comment><USER12> NLP has come pretty far: "Released by Symantec in 1985 for MS-DOS computers, Q&A's flat-file database and integrated word processing application is cited as a significant step towards making computers less intimidating and more user friendly. Among its features was a natural language search function based on a 600 word internal vocabulary." [https://en.wikipedia.org/wiki/Q%26A_(Symantec)](https://en.wikipedia.org/wiki/Q%26A_\(Symantec\))

</comment><comment><USER13> Does the following mean that one can map/train to runtimes that give proper results based on the underlying data _results_?

"A representative example is semantic parsing over databases, where a natural language question (e.g., "Which country has the highest GDP?") is mapped to a program executable over database (DB) tables."

Could it be thought of in the same fashion as Resolvers in GraphQL integrated into BERT?

</comment><comment><USER14> Does anything like this exist for XML documents? Wonder if it could be used for identifying interesting information in web pages.

</comment><comment><USER15> I thought Google already did something similar?

Are we entering deep copycat culture?

</comment><comment><USER16> Honest version:

> Why it matters:

> Improving NLP allows us to create better, more seamless human-to-machine > interactions for tasks ranging from identifying dissidents to querying for > desperate laid-off software engineers. TaBERT enables business development > executives to improve their accuracy in answering questions like "Which hot > app should we buy next?" and "Which politicians will take our bribes?" where > the answer can be found in different databases or tables.

> Someday, TaBERT could also be applied toward identifying illegal immigrants > and automated fact checking. Third parties often check claims by relying on > statistical data from existing knowledge bases. In the future, TaBERT could > be used to map Facebook posts to relevant databases, thus not only verifying > whether a claim is true, but also rejecting false, divisive and defamatory > information before it's shared.

<comment><USER5> Why are you making fake quotes here?

Most of the data in the world is in tables, and most people don't speak SQL. A very large purpose of computers has been for managing and querying this data and there is nothing nefarious at all about that.

Translating between the two is something that there have been many attempts at.</comment></comment>


Rackspace Contributes Cassandra CQL Driver For Node.js - <AUTHOR> http://www.rackspace.com/blog/rackspace-contributes-cassandra-cql-driver-for-node-js/

<comment><USER2> Mongodb and Cassandra are two completely different technologies with completely different use cases. Mongodb is more of a general database although its apparently used more and more for analytics whereas cassandra is more for parts of applications that need very high throughput.

</comment><comment><USER3> I'm not experienced in using MongoDB or a relational database like MySQL, but from the examples I've seen, MongoDB (using mongoose) seems easier to use for javascript developers than CQL using SQL-like syntax.

<comment><USER4> I have no experience with X or Y but X seems better than Z.

<comment><USER3> Just because I haven't used either, doesn't mean I cannot speculate. I didn't claim to be the preeminent expert.

"CQL aims to be an easier way to read and write to Cassandra databases. CQL was designed to closely resemble SQL, easing the burden of developers being exposed to Cassandra for the first time."

Mongoose uses javascript objects to write to MongoDB. Unless you have a lot of SQL experience, I don't see how using SQL-like syntax will be easier than using mongoose.</comment></comment></comment>


Show HN: iPhone App - Icon based review for concerts - <AUTHOR> https://itunes.apple.com/us/app/chennai-music-season/id586643547

<comment><AUTHOR> This app was built to help people write quick reviews of the concerts they are attending.

The Chennai Music Season (also called Madras Music Season) refers to a set of concerts that happen in the months of December and January of every year. Concerts are held at more than 30-40 venues across the city of Chennai (a city in India).

Using this iOS / Android app, users can do a review of the concert within 5 seconds, by picking an icon (emoticon) that explains what a fan thinks of a particular piece of live-music that he just heard.

The idea of the app is to get maximum feedback from a fan from a live performance he is attending & at the same time share that with his social graph & also build some analytics for the artistes on how they can improve the performance. Essentially, we are building a platform that connects the performing musician with his fan-base.

We request the community to give us feedback on the Design also the app experience.

</comment><comment><AUTHOR> Some links about the Chennai Music Season:

<http://www.hindu.com/2005/02/03/stories/2005020301281000.htm>

<http://en.wikipedia.org/wiki/Madras_Music_Season></comment>


Wikileaks: Swiss bank closes Julian Assange's account - <AUTHOR> http://www.bbc.co.uk/news/world-11929034

<comment><USER2> I'm actually beginning to feel a little pathetic about not being able to help a cause I believe in... What can really be done technologically, economically and politically when the establishment is so anti-Wikileaks?

<comment><USER3> Mirror their site I-AM-SPARTACUS style?

</comment></comment><comment><USER4> PostFinance is actually not a bank, it has no such license. It is part of the swiss post. Wikileaks funds probably would have been safer at a private bank...</comment>