skysight-inc/HackerNews huggingface dataset:
> There is already a canonical way to have timestamps: encode them as defined in RFC 3339.

That's not canonical at all. It's not even a de facto use of timestamps in JSON; most specifications I see call for ISO 8601.

> Done.

Well no, not done, because you then have to wrap it in a string, which essentially hides it from the JSON parser altogether and moves responsibility for parsing it out of the JSON parser into your application. As far as the JSON parser is concerned, it could be any old string, not a timestamp.

> a very specific data type that is used in only a specific corner case

I don't see how you can call timestamps a corner case – the article says "Among the RESTful APIs that I can think of, exactly zero don’t have timestamps." – and my experience is the same. Pretty much every API I've worked with has used timestamps in some form or another. They aren't a corner case at all – aside links, they are probably the most common data type without direct support in JSON.
This is actually a very good observation. Bandcamp is great as a music store (for both fans and artists), but the discovery mechanism is rather non-existent. We believe in the overall model and are trying to fix it here - http://tuneself.com – essentially providing music streaming (for free, without ads and legally) but integrating the same core model as Bandcamp has, so the fans could pay for the music only when they think it's worth it.
Completely agree. We should also be allowed to talk about downvoting (in the appropriate place, whatever that is) without fear of reprisal!

Downvoting should be for comments that don't add to the discussion, not for disagreement. I know pg said years ago that you could use downvotes for disagreement, but I propose that we revisit that...
Here in Europe we still keep them eggs at room temperature, which is a bit of an interesting cultural trivia itself http://www.latimes.com/food/dailydish/la-dd-heres-why-we-nee...
Then the problem would ALREADY be solved, because all developers would already be properly handling state within their application instead of second-guessing it at a browser level. But they don't.
Funny video :Dhttps://youtu.be/4C1cg2o-nHE
The analytics issue aside, how can a package manager not transmit what packages you install across the internet? At some point it has to request the package(s) you're installing from somewhere on the internet.
Right click and block.

Or disable javascript - which I did in my other browser after one too many sites popped up with "you need to disable your ad block on our site because we are fucking special".
I used to think this when I was younger but it was really just a bad habit I'd gotten into.

But, after suffering with tinnitus for the past ten years, it's a habit I am living to regret.
You and a friend are stranded on an island. You both spend all your working hours catching fish by hand in order to eat.

You use some leisure time to build a fishing rod, which enables just one of you to catch enough fish to feed you both.

It would be foolish to destroy the fishing rod to preserve both your jobs as fishermen. One of you would fish and the other would do something else, like build shelter and cut firewood.

It's just the two of you, so you don't literally exchange in barter, but an implicit exchange takes place when you share the fish, shelter and firewood.

You both enjoy a better standard of living thanks to the productivity increase created by the fishing rod.

A modern economy is much more complex but the same fundamental principle applies.

The ride-hailing apps make taxi drivers more productive by helping them connect with customers faster.

Now it takes fewer taxi drivers to satisfy the demands of customers. This frees up the labor time of the remaining taxi drivers to produce additional goods or services.

There is certainly temporary pain endured by workers who are displaced by the innovation. But it is folly to subsidize work that is no longer in demand.
Downvoting serves a purpose. Off topic comments or populist statements come with some level of resentment.

I agree that it's abused, but the notion of not contributing to the conversation should have some penalties.
>"in these countries children in the 5th grade can't properly read a newspaper because they need to already know 2000 characters and many more combinations of characters by rote."

This is completely false. I spent seven years working in Taiwanese schools, and saw a few precocious seven year olds reading newspapers and virtually any 5th grader able to. It's very similar to the situation in English speaking countries, though I would say that first graders growing up with characters are probably a bit behind their English-speaking counterparts and a bit ahead by the time they're in fifth grade. This only applies to developed places like Japan, Taiwan and Hong Kong. Obviously a poor child from rural China will have a different set of challenges and be behind.
introducing elements of lambda-calculus with lambdatalk: http://epsilonwiki.free.fr/lambdaway/?view=lambda_calculus
Shampoo: get a small bottle. Then just fill it up before travel from your large bottle. Upon returning, return remaining shampoo to large bottle and wash it.
Android users don't use the back button to edit text.

Some web apps can and do save their state, but not all of them do, and you can't force them to by administrative fiat, filing bugs with mozilla, huffing and puffing, or even holding your breath.

Does your phone or keyboard have dedicated Ctrl-R and Ctrl-W keys?
> If comma's are an annoyance, is that to mean there is no annoyance with XML markup? You can forget a closing tag just as easily

That's not the same thing at all. The commas in JSON are equivalent to the whitespace between attributes in XML. A missing closing tag in XML would be equivalent to forgetting to close an object literal or array in JSON. So no, there's no equivalent XML annoyance to what he's asking for, XML is already fixed in the manner he suggests.
Under the old model, taxi riders were/are suffering, and taxi drivers want to keep getting their monopoly rent.

"Taxi drivers are suffering" actually means "they cannot fleece their customers like they used to". This is a zero sum game - taxi drivers take money from taxi riders, so any change will be met with opposition. The difference is, taxi drivers are better organized and have PR people to tell us about their "suffering", while millions of taxi riders quietly enjoy better service and reasonable prices.
> The culture has changed a bit here

Did it, though? As the other commenter said, pg himself said 8 years ago that downvoting for disagreement was fine.

I don't think the culture really changed, it was just never a settled issue, sometimes it's just more visible.
Changed? When was it otherwise? There have been comments about downvotes-without-comments for years https://hn.algolia.com/?query=down-voted%20%20no%20replies&s... .

Here's an AskHN from 7 years ago titled "Ask HN: Downvote for disagreement in some cases?" The top answer is "This comes up all the time here. Most people use downvotes for disagreement. Gotta live with it." https://news.ycombinator.com/item?id=2020612 . Others express other opinions.

Back in 2008 pg said "I think it's ok to use the up and down arrows to express agreement. Obviously the uparrows aren't only for applauding politeness, so it seems reasonable that the downarrows aren't only for booing rudeness." - https://news.ycombinator.com/item?id=117171

How do you know that the hivement changed in the last 8 years in this regard?
If anything refrigerating eggs is a negative thing, as they'll slowly take on hints of flavour from the other things in your fridge.
Promises and pitfalls of applying computational models to mental disorders
You always have to pay the CGT tax (which is 13-30% in countries I know). The difference is whether you have to pay the tax every time the share price climbs, or only when you sell and pocket the added value.

It's a serious problem in California. When you are granted options at $1 and the company IPOes with a valuation of $100 per share, all employees who have exercised their options are reputated having made a $99 gain. So they have to pay, say, $30 per share. But it's so virtual money, because they may not have $30x number of shares in cash. So those people are forced to either borrow money or sell their shares to pay their taxes. Worse: Employees often aren't allowed to sell during a lock-in period after the IPO, and they can't sell their shares at all before the IPO. So they are constrained to borrow. Worse: If the company loses momentum and comes back to $1 the next year, then they can't get reimbursed for the $30 tax they paid. So they're in for $29. Per share.

Compare that to Australia. If an Atlassian employee was granted stock options, they only have to pay the CGT when they sell. It didn't matter that Atlassian went IPO in 2015, or that shares changed hands when the administrative location was moved to UK circa 2013 (which could have been considered an exit event in US). If employees keep their shares until 2080, they'll only have to pay the CGT in 2080 with the money they got from selling.

Disclaimer: I'm not a financial adviser and I'm not saying that employees should sell their shares.

As a side note, shares go from $1 to $10 partly because the company gets better than expected, and partly because they don't give dividends to employee-issued shares. A share valued $100 one year and $104 the next year is the same thing as another one which stays at $100 and gives you $4 dividends.
Also, toothpaste is much easier to pack than shampoo. Packing a regular shampoo bottle brings a real risk of it opening and leaking all over your luggage. Toothpaste, not so much.
Well, I live in Spain and we put the eggs in the fridge.
I'm about to start doing the exact same thing for RethinkDB using Kubernetes instead of Swarm so this article is very useful to me.

Has the author considered this scenario:

If the host which is running one of your RethinkDB instances dies, will Swarm reschedule it on a different host? What will happen to the data which was sitting on the now-dead host?

Is there a way to force stateful containers to stick to specific hosts (and wait for it to come back up) instead of moving them around in Swarm?

Or... Does RethinkDB offer a setting to allow you to automatically remove a RethinkDB instance from the cluster when it dies (and elect a new master for the shard)?

Last time I did some testing, I found that RethinkDB didn't let me write new data while the master replica for a specific shard was down and I couldn't find a way to tell RethinkDB to just forget the dead instance completely and elect a new master (among the replicas). I understand there may be some small data loss with this approach but it still seems reasonable in a lot of scenarios. Is there a way to achieve this?

Is this achieved by having 2 rdb-primary and 2 rdb-secondary instances? I can't remember what my setup was but I think I had 3 replicas. Maybe I had to have the rdb-primary and rdb-secondary clusters join each other (maybe that's what I was missing).
One feature Android's back button is NOT overloaded with yet is deleting the character before the cursor, and let's keep it that way, please.
They do, but the interface is a little different and the cost is often free. Just phone the front desk. ;)
If that driver with a criminal record keeps their rating high enough to keep driving, what's the problem? A reformed criminal who drives safely and is pleasant to their passengers would be better than half the taxi drivers I've ever had the displeasure of dealing with
> If Warren Buffet had his wealth spread amongst millions of families, would each one be willing to give up 90% of that wealth?

This question doesn't make a lot of sense. Of course they wouldn't be, because any middle- or working-class family can actually conceivably spend 90% of their wealth.

Instead of allowing Warren Buffett to accumulate such a large quantity of wealth and relying on his whim to donate that wealth to good causes -- something which most billionaires don't do -- shouldn't we have redistributive mechanisms in place to ensure this money goes to people who can actually use it?

> 2. The winnowing of the middle makes redistribution more palatable.

More palatable? If we accept that the rich are likely to attempt to hold onto their wealth, then why would they not spend much of their significant resources establishing and entrenching policy that does not affect redistribution?
This was discussed before [0] and I'll reproduce a comment of mine. TL;DR: downvoting promotes social standards thus it's neither antisocial nor pointless:

If nobody downvoted, then the author of the comment would be unable to distinguish between "the community doesn't value my comment" and "my comment was ignored". A downvote sends a clear signal vs. a lack of signal which is important to establishing/maintaining community norms. If we didn't have that signal, there might be reddit-style pun chains on HN and new users who see that might think it's accepted by the community since those threads are indistinguishable from other comments due to the scores being hidden. Seeing comments downvoted to grey is an important signal.

Of course, replying is also a signal but it's not appropriate in every circumstance. It's redundant when sibling comments provide correct information vs. the downvoted comment's incorrect information and an in-context reading of the thread will make that apparent. Or when the downvoted comment is flamebait/trolling and you don't want feed the trolls. Or when the comment clearly doesn't fit the community norms. And, most importantly, I have neither the time nor the inclination to reply to every comment on HN offering constructive feedback so I pick and choose carefully when I do that... as I'm doing here.

Long story short, HN deemed it acceptable to allow users with a minimum karma level to downvote. It's a feature, not a bug, and as long as it's used with discretion it sends a valuable signal to the comment's author. That feedback mechanism also confers positive benefits to the entire community.

[0] https://news.ycombinator.com/item?id=12070314
Sounds nice, is anyone using it? Is it somewhat readable by humans?
The article's technical merits are poor, as noted.

The game here isn't technical, it's financial. Advertising (and advertising countermeasures to ad-blocking) are based on revenue potential. Advertisers are creating ever-more complicated systems (technical debt) for serving ads users increasingly don't want to see.

And don't forget what the ads are there for: to provide revenues to publishers.

I've already been compiling lists of domains I block for having screwed up the payload (e.g., content) badly enough that I'm not willing to look at that. If you've turned me off the content, your ads aren't getting through, regardless. Even without other adblocking.

We've been watching a 7 or 8 year advertising-based, easy-money-fueled, opportunistic, liquidity-extracting Internet bubble. Some companies have gotten big. It's based on a $500 billion annual global advertising market, of which $100 billion is online. And of which the lion's share is itself FIRE industries: finance, insurance, and real estate, all of which feed off the same fundamental monetary policy that's been fueling tech.

What's not money-chasing-money is gadgets-and-apps-chasing-money-chasing-money (e.g., Samsung and Apple, etc., advertising their latest shinay). Or Amazon (Google's largest current single advertiser, ironically).
It's definitely coming back, that hopefulness.
And it bears reminding that some of this 200 years of history was pretty bloody precisely because people were fed up of being told to "suck it up" and do what the entrepreneurs say them to to survive. The mostly sane working conditions we enjoy today - like somewhat reasonable working hours, like leaves and insurances - things a lot of people in my generation work to destory, for some reason -- all those things were paid for in blood by our great-grandfathers.
Best reply of this thread.
I don't really understand your point. Not every speeder in the US are caught. Would you say the police doing temporary crackdowns is not a good thing?

We should celebrate the police here for doing a good job trying to uphold law and order. Perhaps if they had more resources they could go after the other cases of lawbreaking mentioned, not as part of the main story, in the article.
The tax collected should be forced to go directly to buyback of taxi licenses.
> * The concatenation of valid JSON blobs is never valid JSON.

You might want to check out JSON Lines:

http://jsonlines.org/
Time for a follow up on this long dead thread. Between making that post and now some changes in my original job made coming into the office less frequently viable, and I'm going back.
To add another egg-anecdote from another country: In German facilities like retirement homes eggs are not allowed inside the kitchen. They have to be prepared at a separate location like the basement, transported into the kitchen inside a cooking pot and put directly on the stove.
Learn RxJS
Physics is not just what happens in the Department of Physics
Content disguised as ads? To clickbait people to your content? Why?
(Note: most of the below applies to Lyft as well.)

> What aspect of Uber is better than a regular taxi?

Higher-quality, rated drivers. Single app that works consistently everywhere. Better reporting mechanism for problems, that also works consistently everywhere. Live mapping of the vehicle picking you up. Payment handled automatically and consistently everywhere. No payment step inside the vehicle.

> I can hail taxis from my phone just as well.

Using one app per city (if the city even has one), or a phone number (vastly worse, and you need to look it up), with the experience varying vastly in different locations. Uber and Lyft work identically everywhere.
Can I ask, what specifically do you find to be an anti-pattern about this?
I guess I'm one of those "too stupid" ones, it happened many times to me... you're tabbing between inputs, and in speed you press first Backspace and then Tab, and boom, you've lost all the data entered in the form...
From Solo Cup to an asteroid: NASA's newest space mission
I'm not saying that the taxi drivers are right, but your example ignores the education and certification that modern professions require. These days most professions require degrees. Taxi drivers need to be certified and that requires memorizing tons of routes. Taxi drivers are exactly the crowd that doesn't have a college education, severely hampering their mobility to other professions except ones which are worse.

Anyway, just another example of how the analogies the hacker crowd loves so much always fail at closer inspection.
Tiny assembler programs tend to abuse arcane x86 instructions that have one or two byte encodings, but aren't practical for real use (and compilers don't emit them). Add some binary format tricks on top.

A little bit of assembly writing (and more importantly, reading) should be a part of a good CS curriculum but these tiny programs aren't a good place to start.
Decision Trees with Kotlin
The fact that the first argument (the "name") is only used as a debugging interface so that the /proc/self/fd/... "symlinks" have the name you set. I don't agree that this is useful for any real debugging, and constructing your syscalls so that they "make debugging easier" is not something that I really understand the motivations behind -- your ABI should be consistent and logical, not based on what you think a good debugging interface should be.
Oh sure, I could do that. Or I could stay in a normal hotel, where they provide it.

(Or if I'm roughing it in the wilderness or something then I probably don't care that much about clean hair.)
Europe? Really?

Here in Germany, all people I know put their eggs into the fridge.
> As a thought exercise, what will/would software developers do once 90% are made redundant by A.I. or something?

An AI capable of doing 90% of the job of a software developer would likely be an AGI, and thus capable of doing 100% of the job of every human far better than the human can. At which point we stop worrying about details like "money" and "scarcity".
I wish I could upvote this 100 times. Especially:

"if you find a well-written comment you disagree with, you might even upvote it and disagree in text form."

"disagreement sometimes needs an outlet ... you might just upvote the best existing reply that you feel captures your feelings.

But AFAIK the HN guidelines (or pg?) say that disagreement is an acceptable reason for downvoting. It's really poor UX to have a single input that indicates wildly different things.

dang - is there any chance this rule will change? Or any particular reason why we don't want to change it?
In other words, just write a browser in JavaScript and HTML, on top of the existing browser.

And then you just have all the same problems over again, only much, much slower.

And who exactly defines "standard input events" and "standard commands" and "standard functions"?

Those terms don't have any meaning. Such standards do not exist, and never will. Hardware and software developers are not suddenly going to stop defining new input events, commands and functions because some yahoo on the internet proposed a hypothetical standard and insisted that everyone rewrite all their programs to use it and nothing else.
6. I'd love to see unquoted keys added to that list. Quotes could be used for cases when a key is not a valid identifier.
It creates a full inode using shmem[1], which eventually goes to ramfs[2]. It's a real inode in every sense of the word.

[1]: http://lxr.free-electrons.com/source/mm/shmem.c?v=4.2#L2949
[2]: http://lxr.free-electrons.com/source/fs/ramfs/inode.c?v=4.2#...
Defective C++
Egg cartons in Germany usually have two dates printed on them, one of them being the date after which it is recommended to put them into the fridge (18 days after they were stolen from the hen).
>eliminate downvoting

What you are asking here is to eliminate freedom of expression. By downvoting I voice my disagreement with your statement. Preferably there is a comment added, but that must not be necessary. Eliminating such a feature would give a distorted view of this community as a whole. One must live with the fact that not everybody has the same opinion.

>It's antisocial and pointless.

No, according to [0] antisocial is a behaviour that is contrary to the laws and customs of (a) society, in a way that causes annoyance and disapproval in others. In our society, or at least that is how I appreciate it, dissenting opinions are important and accepted. Yes, as mentioned above, a following argument would be nice, but isn't necessary. And also others must feel annoyed and be disapproving of it - not you. As to "pointless", see above.

[0]: http://www.oxforddictionaries.com/definition/english/antisoc...
I think we need to set up www.not-another-redis-clone.com
That was exactly part of my point: "main customers" are people who pay to Microsoft, e.g. for Windows licenses.
"revised 17 October 2009"
Or performing background checks of drivers.
Don't most major web browsers save unsubmitted form contents in history? I hit back followed by forward while composing this comment and it was still here.

Or is this one of those "web apps ruin everything" things...
The fact that there are many billions of poor people in the world does not mean that attempting to address inequality in America is pointless tinkering at first world problems.

Being well traveled isn't usually seen as helpful training for ignoring beggars and minimum wage people who need food stamps to eat, but there you go.
Animals “lie” to their own kind to get what they want (1995)
The app changes.

That's what is so great about the fluidity of Uber, without medallions and regulation and such.

If Uber starts to increase prices because they have a monopoly, a lone person can build an app that's cheaper.
Maybe make it so that a comment can't be downvoted until it has at least one reply?
In German my sentences are sometimes even more interlaced. :-)