skysight-inc/HackerNews huggingface dataset:
Travelling internationally has reinforced my positive opinions of NYC's mass transit. Sure, it's occasionally gross, and certainly less polished than London or Paris, but it's 24 hour presence is truly special. It's redundancy and express/local service patterns are also unique. You seem to be able to afford cabs -- that isn't the case for a good portion of NYC's population. That I can go from Williamsburg to Inwood in ~1 hr. 15 min. for $2.50 at 2am Sunday morning....that's something special that other cities can't compare on.

I'm not excusing the cost overruns and budget mishaps the MTA is prone to, but these stereotypes of a cesspool-like NYC mass transit are dated and a disservice to their actual typical operating conditions.
There are very key points about GraphQL/Relay that the author of this post is missing.

For a Facebook user, all client-side cached data is stale. All of it. Posts are edited, profile pictures are changed (and those changes are referenced in other posts that must appear to be consistent with the image shown to the user). This is key to their value proposition - Facebook gives a new experience each time the user comes back to the site, thus the user will check the site multiple times a day. Now, you could cache if you could invalidate the caches... and this is fine to do on the server side, but it's downright impossible to push a client side cache invalidation at Facebook scale.

Another key insight is that "HTTP can fire network requests in parallel" is insufficient if your requests are dependent on each other's results. Let's say you want to crawl a graph of nodes. Are you going to do a BFS with a full HTTP round trip at each level, collecting touched nodes and transmitting the border each time? When the latency of that round-trip is at 2G speeds? How would you handle this in REST, under the assumption (as above) that it's fine to let the server handle caching?

Well, you might use the whole "HTTP's content types are a type system" concept that the author loves, and annotate your REST request with the structure of data you want back. UserWithPostsWithCommentsWithLikes is a type, after all, just as UserWithProfileInformation is a type. And at that point you don't want to name each of those separately; your Content-Type header would have some structure; it would almost read like a programming language. Oh, and you happen to have a server that can interpret that Content-Type piece by piece. You would eventually realize it's just more sane to break that out into the body of a POST request rather than holding on to REST just for REST's sake. And then, boom, you have GraphQL.

The post devolves even further towards the end, making a dubious link between Facebook's developer tooling and its grander ambitions. Making realtime graph search, and realtime insights from the graph of entities, effortless to the developer and the user... that's one way in which the web is evolving. Every company needs to be able to think outside the box. If everyone took "don't reinvent the wheel" completely literally, we wouldn't have airplanes.

Do I have gripes about the GraphQL syntax? Sure. Do I wish it was more like JSON Schema? Does grokking Relay migrations feel like reading a James Joyce novel? (With apologies.) Absolutely. But... are GraphQL/Relay a needed proposal to push innovation on the web forward? Yes.
That's what the author is trying to say, but it comes off as defensive. Sure, REST probably can do these things, but by the sounds of things it's not ideal.
Then you did yourself a disservice, because the rest of the writeup is kind of interesting.

Besides, for modern software development work, vanilla Windows is pretty terrible compared with any of the 'nix variants.
> In fact, binary floats use their storage better than decimal floats, so a binary float of a given size will have slightly higher accuracy than a decimal one of the same size.

Not necessarily. The inefficiency is coped with by using less data for the exponent (which thus offers a smaller range). 64 bit decimal floats actually even have more data for the mantissa than their 64 bit binary counterpart.

> Decimal floating point just changes how cancellation/rounding appears, it doesn't do anything to increase accuracy. E.g. suppose you're using a decimal float with 1 digit of precision (i.e. it can have 1.0, 1.1, ... 9.9 as the mantissa), and compute 100 + 1 - 100 (i.e. 1.0e2 + 1.0e0 + -1.0e2): 100 + 1 is 101, which rounds to 100 (1.0e2), and 100 + -100 is of course 0. Complete catastrophic cancellation.

It also changes how often it occurs. With binary floats it already happens when you do 0.1 + 1.0 (I don't mean the rounding error of converting 0.1 to binary).

When you enter 1.0 + 0.1 - 1.0 e.g. in python you will get 0.10000000000000009 as a result which is not equal to what you get when you enter 0.1. With decimal floats this doesn't happen.

With every calculation you do the amount of precision needed can rise. With decimals converted to binary floats you use all of the precision right from the beginning. With decimal floats you can often stay easily within the precision offered by the data type.
It's the end of man, obviously

http://imgur.com/deahE27
7 best Android libraries that Java developer should know about
I have an iPhone 6, and I'm seriously considering backing down to a non-smart phone in the future. These days I mostly use it for SMS, voice, and very, very light web browsing (basically HN and a few other news sites, and sometimes my mobile banking site). I don't do apps, and the only really compelling feature of the iPhone is Apple Pay. Now that my credit and debit cards are all smartchip enabled, even that is just a gimmick.

In fact, I'd say the only thing keeping me on a smartphone at all is playing Ingress, and my wife and I both are getting bored with it. Our local groups are also playing less and less.
Did I miss anything below (for anyone who wants to review)? The negative articles draw many more comments, but the general sentiment is not directed only against Amazon.

Inside Amazon: Wrestling Big Ideas in a Bruising Workplace

https://news.ycombinator.com/item?id=10065243 (424 comments)

Inside Amazon

https://news.ycombinator.com/item?id=10070115 (98 comments)

Amazon boss Jeff Bezos defends company's workplace culture

https://news.ycombinator.com/item?id=10072389 (73 comments)

My husband needed therapy after working for Amazon

https://news.ycombinator.com/item?id=10083475 (331 comments)
riofs (https://github.com/skoobe/riofs) seems much faster than s3fs and deserves a spot in any benchmarks.
I deal with REST zealots like this everyday :( just the fact that people spend so much time debating what is and what isn't REST should be a red flag that maybe it isn't the answer to everything.

All the simple REST examples make it look like it is the perfect solution for CRUD tasks. But in reality API endpoints are not a straight pass through to the database. An endpoint may do any combination of CRUD tasks, it can't be type casted as a single one with a HTTP verb.

Overloading HTTP error codes is another interesting problem. If the server returns 404 for a resource, what actually happened? Did the web server or my application return the 404. Conflating HTTP and application error codes leads to confusion.

HATEOAS is just superfluous. I've met zealots who will defend it to the death. I just haven't found a practical use for it.

Surface area and complexity are a big deal. REST encourages creating a CRUD interface for every single resource. I've met people who have created literally 100 endpoints upfront for a small application - how is that maintainable?

I like that Facebook is standing up to the zealots. I get attacked at work when I try to create simple API endpoints and they aren't 100% REST (if anyone could agree what that even is.)
> Unfortunately, I've interviewed people with 20 years of experience who were only marginally more skilled than someone with two or three years. The "1 year of experience ten times" effect is unfortunately a real one.

If you are not capable of identifying these people without spending hours of staff time and engaging in whiteboarding exercises, something is very wrong in my opinion. The person you're describing will not be able to pass a thoughtful 15 minute phone screen, and that's if a phone screen even happens because this type of candidate probably doesn't make it past a resume review if the person reviewing the resume is qualified.
> I think your conception of a Ph.D. is off by quite a bit. Outside of their dissertation topic I'd expect a Ph.D. to be on par with an undergraduate, from the time period they graduated.

Maybe? Maybe not? I've had very mixed experienced in interviewing folks where some had zero college and could code amazingly, great at solving problems, etc and I've had the exact opposite. I'm not convinced school education is any type of [significant] indicator for coding and problem solving at this point.

At least this is what's happened in my own experience hiring. Not sure if there are any good studies done in coding proficiency and problem solving versus education (though I could see those being hard to measure well).

> You also said that you're hiring for an engineering position, but you seem to only care about coding. Perhaps I don't know what you mean by engineering, but I'm under the impression that there's a lot more to engineering than any single skill, even by the loose SV definition. How do your Ph.D. applicants do outside of coding?

Well, software engineering involves reading and writing code so that's a huge part of it with the other part being problem solving. Really the problem solving is the most important part, the rest can be taught with time. But essentially we had some very, very basic coding questions (not even trick questions) just to get an idea where the person was as far as their ability to write code. We didn't care what language(s) they knew (they could pick) as long as they could demonstrate some basic knowledge of coding and then problem solving.

Since we were hiring for software engineers, if a candidate couldn't write code in any language they were simply not moved to the other interviews. Not much we can really do there.
Just look at the Wikipedia Timeline of Operating Systems with special attention to number of distinct OS's in any given time period. You'll find it drops off sharply as it nears the present if you count stuff that was actually deployed or in working condition. Well, that was the situation when I looked at it a year ago. Hopefully you come back with good, contrary news. :)

Another example is sheer amount of dead, search results I get for OS projects on sites that track them. Almost all are before 2010 with most closer to the late 90's. I'm not sure why this is but there's just hardly anyone doing it anymore. Maybe it's because they google it and see how hard it is with all the dead projects. ;)
> If an open technology from Facebook displaces another open technology from another source, I don't understand why we should be upset simply because the backer of the more popular technique was Facebook.

Facebook's future does not depend on the web being open, and in fact depends to some extent on it being quite a closed system. This makes them a poor choice of steward for core technologies in my opinion.

I think the article's point is that the open technology from Facebook is a poor one in the wider context of the open web, and therefore if it does displace other models, that will slow us down and cause issues in the long run.
> in your earlier comment you wrote that it's "a shame" that Trix is written in Coffee, without any rationale.

Where did I say that? I didn't say that at all. I'm on my threads page writing this reply to you and a search for shame only brings up your comment so whoever you're quoting isn't me.
"Where can someone go to read unbiased, well-researched, both-sides-of-the story news?"

I personally think we're spoilt for choice. Just bear in mind everyone, everywhere has an inherent bias. Some more so that others.

I read these to get what I feel is a well rounded opinion http://america.aljazeera.com/ http://www.bbc.com/news
I love my iPad. When I'm in bed or relaxing on the couch, it's the perfect form factor for screwing around on the internet.
This does not seem relevant to Go or Python.
It's a shame that this article spends most of its time ranting and throwing around irrelevant attacks at Facebook (we get it, you don't like their product). If I buy the author's premise that REST does everything graphQL does and that everyone is just using REST wrong, please show us how to properly do it. Now I have to take the article's word for it, without any practical explanation how to correctly design a REST API.
A large group of smart people often produce some really dumb ideas, like 'Google Wave' - so I wouldn't personally use 'Proof by Large Group of Smart People' in this case. Hacker News has been the home of many a bad idea by smart folk.

Instead, maybe we should all be critiquing the points raised.

In my limited experience, most engineers (yes including very smart ones) are more enamoured with their own ideas (and not discounting myself here!) than learning other people's work well. And the critique I read didn't seem unfair in that respect, more so it encouraged me to look deeper at HTTP first before I add something into my apps own protocols. Which to me is a good thing.

Especially around content negotiation which I had not looked at beyond a superficial understanding.

For the record I ain't no purist :-)
What If the Parties Didn't Run Primaries?
I would likely be millions of dollars richer if I happened to record a two minute conversation with my former boss's boss, who was an ecclesiastical leader at a church that I eventually left. He told me point blank that the reason I was fired was because I wasn't faithful enough and was no longer worthy of my (completely unrelated) employment. On the books, however, they made it out to be a performance issue. I had plenty of witnesses available to me that could have proven that it wasn't a performance issue, but in an at-will company, that doesn't get me anything at all.

I don't go around recording random conversations, and corporations have a lot of ways to cover their tracks. When that is your reality and the burden of proof is on you, you don't do anything. You get fucked and you learn from it.
A query on a graph or a tree can both be RESTful. You can describe traversals of the graph or tree in a query embedded in an HTTP endpoint. You don't need to make repeated round trip queries to do the traversal unless you are unwilling to use a suitable query description.

Metaphorically this is all pretty funny becuase the web is already a graph at a fundamental level.
Powerful new hardware, same Chrome OS: Dell Chromebook 13 reviewed
Why You Should Use a Performance Budget for a Faster Website
Regarding sharing employee evaluations, two things; if you go on the record with press discussing your evaluation and says it says one thing, but it actually says another, I think the company is entitled to respond. Anyway, it's not clear to me if the employee isn't on Amazon's side here (angry at being misquoted) so how do we know this wouldn't have been after getting permission from the employees in question? Obviously there's a long quote from Dina Vaccari contradicting the reporting.

As to sharing the reason an employee resigned from the the company, I don't think an employee's conduct while at a company is confidential, and if they are a strongly biased source, then the NYT needs to know that, and then adjust their reporting accordingly.
Ah, I thought you needed to by that Packrat thing. I guess that's only if you want unlimited history.
> Meanwhile in Shenzhen, nobody gives a fuck and you can get any permutation of electronics you can imagine for fraction of the western price, and it's often user-servicable.

And this is exactly why China is on the road to nowhere. With a lack of IP protection, blatant IP theft and rampant piracy, nobody (big businesses) will invest the time and money into China. In fact, those that have, have pulled out (see: Microsoft, Google, etc). It's why despite having over a billion people, nobody really seriously considers China a potential client.

And yet, despite having over a billion citizens, their innovation and technological breakthroughs are non-existent. They are simply not a technological innovative country. Nearly every article you find on google will back this up. Just do a quick google search. Again, see the link I included above.

> Check out the links at https://news.ycombinator.com/item?id=10397138; you'll see where the innovation really happens.

I'm sorry, but the data and reality shows otherwise. You're not going to find anyone saying "innovation happens in China". Quite the opposite in fact. The only way they've been keeping up with the rest of the world has been through theft and buying the technology from those who created it.

And that's the problem. Since they're so used to stealing and buying their technology, they don't have a foundation in which to create their own. That's what China hasn't grasped yet -- the process of creating new technology and being innovative (the discovery) is itself just as important as the end result because it's a foundation that allows you to move forward onto the next breakthrough. China doesn't have that. And they're getting left further and further behind.
A new station is only useful to the small minority of riders who use it, while system-wide infrastructure problems affect everyone.

Upgrading signalling on a train line would make life better for many more people than building one new station: trains would be able to run more often (which would make them less crowded) and the system would break down less often (the ancient signalling hardware is currently the least reliable part of the system). I heard that the new signalling on the L line is economically reviving a large part of Brooklyn now that it has reliable train service to Manhattan.

And wouldn't people who suffer daily from late and crowded trains and have to deal with leaky stations with perpetually broken elevators be likely to vote against the current politicians when they run for re-election?
Can someone explain to me how Relay compares to gRPC?
> The problem when using REST "correctly" is that the way your objects interrelate is not necessarily the same way on the backend as it is on the UI. So you end up creating custom REST endpoints for complicated UI that does not map directly to how your objects are related in the database.

Not defending the article here, but I don't see this as a problem at all. Yes, you API objects should not necessarily map directly to your persistence layer; that is a good thing. The problem domains of the UI and the persistence layer are completely different and should therefore be modelled differently. Your API mediates between the two, acting like a repository for your UI models and abstracting away the persistence layer completely.
Whiteboarding is pretty terrible for interviewing developers, the only time they whiteboard is when interviewing.
So in the end this is a good move? People who need wheelchairs can get them for cheaper, like how gluten-intolerant people get a lot more choices now that gluten-free options are getting so popular
And KVM/370 was first to do it with some security. Unfortunately, people need ACM/IEEE membership for those papers. At least VAX VMM Security Kernel papers are still around. Pretty much anything Karger wrote will help new efforts. :)
> Its also true that nine out of ten Americans don't have or use an iphone

[1] suggests that one in four americans own an iPhone.

1) http://fortune.com/2014/01/16/npd-better-than-1-in-4-adult-a...
> I'm pretty sure that is basically the definition of age discrimination people are facing.

Age discrimination is based on a fact you can't do anything about, your age. A company's culture is very important, a vital aspect of its identity. If you aren't open to making a change then you probably don't belong. Anyway, a lot of things people my age and older like are just the things 20 year olds liked when they were 20.
How often do you do that? Does it work consistently? I'd like to try it and see if it works - I have a problem where when I'm at dinner with my family, the two old men in the room (my dad and uncle) will shout over the other three people at the table, excluding us from the conversation. I wonder if this technique would work, but I have the feeling they wouldn't even notice.
A job you love quickly can turn into a job you hate if you're scraping by.

Further, I seriously question that a different job would be one that they hate.
> But it's 20 years later now, and the statically-typed languages have not been standing still. They're a lot easier to work in now, even for prototyping in my experience. Go, which I mention since it's on topic, is reasonably fluid with its interfaces and structural typing.

What type system feature does Golang have that was invented post 1990?

Interfaces certainly were not created post 1990—Java had them, to name one obvious example—and structural typing is very old as well (and I don't think the sort of pseudo-structural typing that Go has for interfaces is particularly important for usability anyway).
Yes I looked into it (I only found out about it after I started working on goofys). They have a stub flush() which does nothing (https://github.com/skoobe/riofs/blob/master/src/rfuse.c#L104...), so of course they are faster and the benchmarks won't be meaningful.
Calling the NYT left-wing is pretty amusing.
Even before the times article amazon had a rep as a place that ground through people in a year or two.
It suddenly dawned on me that I'll most likely live to experience certain categories of disability that'll grant you access to technology which will make you altogether more able-bodied than the average "non-disabled" person.
>These fat-cat, lazy ass, companies just get to skate by on pure inertia.

How long before young and sexy startup becomes lazy fat cat nowadays? Maybe ten years? So, now the older crowd needs to constantly re-do everything because the younger guys got lazy? I'm not sure what the solution you're advocating here is. Eventually, everyone becomes a fat cat it seems, at least to the eyes of the new guy. I suspect the $bad_vendor or $bad_project isn't that bad and the time/work commitment to constantly re-do it is non-trivial. Especially if by the time you finish this big rewrite its already obsolete or unlikeable in some way -- not HTML5 or not whatever is hot right now.

I think part of maturing is knowing how to recognize the grind and when to actually disrupt it in some way. Is $boring_logistics app really the problem that needs to be solved at $big_co? Arguably, the execs have better things to do and that judgement is what we're paying them for. When it becomes a problem they should know and address it, but to a young guy spoiled by ultra-shiny ipad apps, well, that logistics interface looks "old and boring" but its actually doing the job well.

> but he's just too comfortable.

Perhaps this is besides the point, but maybe there's a shelf-life on human 'can do' attitudes? Ten years ago I'd do anything that piqued my interest, obsess over it, and now its a lot more difficult to get excited and motivated especially if you have been in the grind long enough. At a certain point you realize this is all folly. Another product, another roll out, another set of unhappy/happy customers, another sales projection, another competitor to worry about, another thing that will obsolete in a week, etc. From a psychological perspective, we don't often talk about what it means to have a lifetime of work under your belt. How does it affect us? Is it reasonable to spend ages 22-65 working in the same industry/focus?

Imagine if we put monkeys in a cube and forced them to do the same-ish things for decades. We would probably be arrested for animal abuse. But its okay to do to people apparently. Maybe have some sympathy for the codgers, they're as much victims of this weird world we call work as anyone.
Dean Baquet Responds to Jay Carney’s Medium Post