skysight-inc/HackerNews huggingface dataset:
I'll take another look at parser combinators. I keep hearing people talking about them, but I had never seen them used for anything big. Now that I check again, I see that the ShellCheck lexer/parser in Haskell is written with Parsec, and it seems to do a pretty good job, and has good places to insert error messages and so forth.

Do you have any other examples of a production quality parser done with parser combinators?

The Lisp parser I was thinking about was Julia, which is bootstrapped in femtolisp. It looks like straight imperative code in Lisp to me.

I'm mainly concerned large parsers, like bash, Julia, Ruby, or C. You can write a small parser with any technology. FWIW I have a lot of posts about parsing here, towards the beginning of the blog: http://www.oilshell.org/blog/

EDIT: What's the benefit of parser combinators over recursive descent in Python or say Java? Is it just that it's point-free so you don't have to explicitly pass the input around?

I suppose if I saw the same parser written in parser combinators and recursive descent it would be easy to tell what the benefit is, if any.
Strictly speaking, it's not parallelism, but multi-threaded code that operates on shared memory and which is not limited to arrays over scalars.
That was an extremely pleasant and convincing introduction, thank you for that. I'm definitely going to give this a try in future projects.
You are wrong. 5 employees saying that they were fired right before they were due to vest is a very high number and it is unlikely they interviewed too many. Judging from what else we know of the CEO, this isn't surprising at all
Uber and competitors are essentially worthless without their mobile apps; I suspect such an acquisition would get blocked as anticompetitive. (or have some crazy terms associated with it)
Also looks like the coreboot payload/distro they'll be shipping is Heads! https://puri.sm/posts/purism-collaborates-with-heads-project...
How did you get that out of their statement?
As the story alleges, they might be adding value but enough value to offset your loss of majority control.
Because they're adding less value than the amount to be vested but more value than someone who (economically speaking) should be fired earlier.
Wonderful, I'll definitely make a LinkedIn and start building a portfolio. Thank you for the advice!
I can think of a ton of everyday problems that will require actual AI: Following detour signs. Understanding a cop's hand signals. Understanding crossing guards in school zones. Making room for emergency vehicles on crowded streets. Driving on dirt and gravel. Navigating parking garages (ever notice that signage in garages isn't standardized? Probably not, because you're not a robot).

Most of the self-driving crash videos I've seen involve a car that lost it when it couldn't follow the white line. Following the white is not good enough.
Ocaml is a great language. But the sad fact is I'm not going to be as productive in it as I would be in worse languages that have more libraries and tools.
If Edge uses ~36% less power then yes, it's a valid tip. MS are obviously also angling for more Edge users, but it does legitimately increase battery life.
Ah, I see, and reading more it sounds like Zelda only outputs 900p rather than 1080 docked. So maybe there's also an element of the hardware really not being up to doing demanding game scenes well at a higher res at all, and it's not just that doing it would draw too much power. Huh.
They should make the black bar a clickable link to the relevant HN submission, or make it so that it has alt text that names the person who has dies, or both.
You can talk about how that would be tax evasion and it would be illegal but in practical terms that is exactly what they are doing.

They just have hired a bunch of lawyers to tell them how to do it so that it is legal.

By the way, when you talk about selling product to international subsidiaries you are actually talking about putting their IP ownership in international subsidiaries and then having the American subsidiary pay licensing fees so that no profit is made in the US.
There is already common-lisp implemented in elisp
It's interesting to note the relationships different nations/cultures have to bread.

For example, a lot of bread (French, Italian, Turkish), while tasty enough, is very dainty compared to the rough, rustic, whole-grain stuff we eat in Scandinavia:

http://imgur.com/a/OD8Jt

In Norway, where I'm from, supermarkets carry a couple of types of white bread (refined, processed wheat), which is no longer popular. And even in the tiniest grocery stores, almost all breads were made fresh the same day.

This comes from tradition, but also from government guidelines that have always held whole-grain flour to be healthier than the more refined kinds, as is other kinds of wholesome, unrefined, down-to-earth stuff.

Meanwhile, in NYC, where I live, it's difficult to find fresh bread that isn't just white bread. The shelves are bulging with dozens of types of plastic-wrapped, pre-sliced, mass-produced, mind-numbingly boring bread with long shelf lives and containing preservatives and even sugar (!) or high-fructose corn syrup (!).

In Oslo, one of my favourite places is this:

http://i.imgur.com/CeOUqoE.jpg

Notice the "coarseness" chart on the right, showing the percentage of whole-grain flour in each product.

I live a kilometer away from a Danish bakery that does a decent rustic loaf, but it's still frustrating.
A lot of UB is quite portable, like, oh, converting between void * and function pointers, for instance.
Russian Disinformation Technology
Why not give employees a % of their amortized stock options per day of employment? Any other scheme is nonsensical and the power balance is clearly on the side of employers. If you're worried about the employee not adding value then maybe they shouldn't be hired to begin with.

A challenge anyone who doesn't like this to explain why they think it is bad.
Ask HN: What's the best way encrypt data for a journal app I'm releasing?
I've been working on a journaling app for iOS for a little while.

One of the last pieces is to encrypt the data. Since there will be alot of sensitive information in here, I want to know the best way to do that.

I've found some libraries that will help me do this. But I have questions around implementation.

1) Is it necessary for me to ask each user for a password & use that as the key? Because if they lose it, I have no way to recover their data
2) Should I just create a global key to encrypt the whole app and use that?
Back when HTML only had a handful of basic color names ("red", "green", "gray", etc.), I recall there being a browser that, if you tried to use the spelling "grey" would show the color green instead, since that was what it matched based on the first three letters of the word. The question reminded me of that, but I can't find any sources for it now--I guess it's a 20-year-old problem at this point.
I've moved to doing ocaml development on my windows 10 machine under the windows subsystem for Linux. The Linux ocaml tool chain works pretty seamlessly there. Works very smoothly relative to past experiences with native ocaml compilers on windows.
An insider’s tale of how biography works
Besides Italian, there are 12 officially recognized languages (Albanian, Catalan, German, Greek, Slovene, Croatian, French, Franco-Provençal, Friulian, Ladin, Occitan and Sardinian), four of which are co-official languages (French in Val d'Aosta, Ladin and German in South Tyrol and Slovene in Friuli).

Officially recognized languages can be taught in schools for example, along with Italian. Co-official languages enjoy equal status with Italian, all road signs are bilingual, all official state material is bilinugal, etc.

Besides there are many other dozens beyond the official languages, to get an idea of how crazy this is Italy: https://en.wikipedia.org/wiki/Languages_of_Italy

Sources: https://en.wikipedia.org/wiki/Italy#Languages, http://www.parlamento.it/parlam/leggi/99482l.htm
I find a lot of Europeans - particularly Irish - to get unduly upset when Americans use the term "Irish" to mean "Irish American". Sometimes it gets downright childish, ie "you're not really Irish we are!".

People should pick up on the context a bit.
So... is it potentially illegal?
I'll note that some of the aspects don't necessarily work out like that in practice:

1. The GC part is true, but one has to remember that this was written at a time when GC was still a bit of an unusual feature in mainstream languages.

2. Tail recursion doesn't really make much of a difference for walking trees, which is recursive, but (mostly) not tail recursive.

3. OCaml in particular uses 63/31-bit ints due to implementation details, which isn't a good fit for 64/32-bit integers. The strings and bignum part is mostly right, though.

4. ADTs can be good or bad for describing ASTs. Once you enrich ASTs with semantics shared by all variants (such as source coordinates), inheritance can become a better fit than ADTs.

8. Type inference doesn't really extend to module signatures, which you have to write out explicitly (though tooling such as `ocamlc -i` allows you to let the compiler help you write them). I also generally find it better to explicitly annotate functions with types. Not only does it make the code more readable later in its life, but you get fewer truly impenetrable type error messages because you forgot parentheses or a semicolon somewhere.

That said, there are several good points still.
It's all in perception, she could also have seen those as triumphs of humans coming together, including space travel which wasn't even considered remotely possible or understood when she was a young woman. I have doubts anyone can live to be that age with a perpetually negative outlook on life
A Day in My Life
Fun quiz. Go to a page like http://codepen.io/tholman/pen/EwlKd. Try the following colors. Without looking it up, which ones are real named colors and which are artifacts of the bizarre scheme?

"fire" "campfire" "firebrick" "firefly"

"cornflower" "cornflowerblue" "cornflowerred"

"seablue" "skyblue" "seagreen"
"seafoam"
I agree with everything you wrote except the 'level-5-autonomous-car-ubiquity. I don't think Uber's success depends upon it; Uber is the next iteration in the domestic logistics industry (USPS>UPS>FedEx). One way for Uber to communicate this to the market would be to have all its functionality available in a single application (of course, some of their products are limited availability because they haven't figured out how to scale them). Amazon had/has similar financial metrics over many quarters. Amazon is also a potential acquirer.
VoiceOps is hiring product engineers in SF to build AI for b2b voice data
Feel free. Enjoy your already bond-level returns that asset class enjoys.
Heavily discussed 2 days ago:

https://news.ycombinator.com/item?id=14111923
VAT is how most countries that aren't the USA handle this problem. But even then, this isn't global taxation that the USA wants to implement uniquely, if something was made and sold outside of the USA, the USA would never have a chance to VAT it.
But progress is relative, and it may be that the potential is far greater than what it is. We don't know, because most people aren't allowed to try things. And that isn't merely what money represents, it's what it is. Money is allocation. Those that have it literally decide, broadly, what gets done and what doesn't get done.
I don't care about your investments, I care about entities paying their taxes.
Corporations don't pay taxes, customers do. Lowering taxes means prices go down which increases economic velocity far more than redistribution. Dead-weight loss is a real thing. $1 collected in taxes results in < $1 in economic benefit. $1 in tax cuts result in $1 in economic benefit.
And at 117 you might have to specify which 20s!
How do you handle mode as a swap for something like a socket, or a file handle in that case?
They add more value than their salary.
But not more value then their vested shares most recent strike price.

That said, firing them on day 364 is a shitty thing to do.
Yes, but they're marketing something which benefits users and competitors. Unlike, for example, Google's constant in-your-face marketing when you use any of their services from outside Chrome. That doesn't benefit anybody but Google (assuming it even benefits them - in my case it causes a loss of respect which means nobody sees any benefit)

Companies will always engage in marketing and other profit-driven, competitive activities. Some companies manage to do so while having a positive effect on the world around them, some do not. Most long-lived companies (such as MS) will go through all the possible phases at various stages of their life.

Right now, MS is being a good player. They are releasing useful products and doing so in a way that benefits more than just themselves. They haven't always been like this, and won't always be like this, but deserve credit when they are. Like all other companies.
Neural networks have very little in common with how our brains work
James Baldwin’s Archive, Long Hidden, Comes Mostly into View
> Going by Crafty's ELO, it would win against Magnus Carlsen 80% of the time

Careful with that logic, I'm not sure that engine ELOs are in the same rating pool as human players (and so rating comparisons between the two are sort of meaningless).
There's a few more answers about choosing Windows on a Slashdot QA

https://games.slashdot.org/story/99/10/15/1012230/john-carma...
I wish I could upvote you twice.
Does correlation equal causation? You could also argue that the threat of a Soviet war led to the highest periods of economic growth as well.
The question implies "how many jobs require college to do". A better question is "how many jobs require college to get".
Only if you ignore population growth.
It's hard to imagine that even a dozen employees stock options would transfer majority control. Surely the share split can't be so tight that tenths of a percent would make a difference?
Most of those exemptions are relevant, and anyways, the accounting of what constitutes income can be deceiving. I worked in china for 9 years and paid 0% USA taxes because I took a foreign tax credit (I still filled all my income in the 1040). Should that be counted as USA income? Does my 0% drag the average down? Likewise, if that 24% includes foreign income and tax credits, then it is in no way comparable to European numbers that don't include foreign income at all (since no one else taxes global income except a small country in Africa, which isn't a big economy).
> Sometimes in C/C++ land programmers 'cheat' by adding fields to the end of a struct that's used in multiple modules, and initially only recompile the modules that need to know about the new field. (For purposes of compilation expediency/iteration speed.)

How would that work, with some modules assuming an incorrect size for a given type?

I agree with your concerns regarding debuggers and crash dumps, though in my experience you need debuggers far less often when writing Rust code, and when you do need them (e.g. for unsafe code) you've often already used `repr(C)` on the types of interest.
>2. Tail recursion doesn't really make much of a difference for walking trees, which is recursive, but (mostly) not tail recursive.

Non-strictness helps here more than TCO in a strict language.

>4. ADTs can be good or bad for describing ASTs. Once you enrich ASTs with semantics shared by all variants (such as source coordinates), inheritance can become a better fit than ADTs.

Since this article was written we have better ways of augmenting/annotating ASTs. There's a lot of this out there, but here's one example: https://brianmckenna.org/blog/type_annotation_cofree

There are other alternatives that are like inheritance but with better reasoning properties as well. Finally tagless comes to mind.

>I also generally find it better to explicitly annotate functions with types.

This Haskeller whole-heartedly agrees for all the reasons stated.
Same guy probably thinks no one "needs" health insurance either (while both having premium internet access and health insurance).
Why? It was earned outside the US so how does the US have any moral claim to it?
Ah. Yes, completely right -- I was musing more on the top comment relating to cliffs and the practice in general.

In most cases if you're hiring where options are seen as necessary to get that talent - seems like it's going to be an odd (but not impossible) case where you're happy to walk that talent out the door too.
> If you implement a move as a swap (as in the examples I saw when I first heard of move constructors back when it was called c++0x) you don't need an empty state.

You do to e.g. default construct the temporary you'll be swapping with in the first place. Problematic if you're trying to construct e.g. a reference-like type with no null state.
Yeah I don't have a strong preference about when they're taught. I think college is probably best because the 17-23 age is probably the earliest that most people are equipped to start learning stuff like this, but then again if you can vote when you're 18 maybe it should start a lot earlier.

I think there's too much siloing between, say, STEM majors and Liberal Arts majors. You get Philosophy majors who are pretty good with concepts like confirmation bias (just for example), but super bad when it comes to things like "why is the sky blue" and "just what is the Internet, anyway". Conversely you get engineers who are pretty good programmers or EEs, but really don't understand things like "Affirmative Action isn't racist" or "taxation isn't government theft or class warfare".

I... mostly think high school is useless? I guess it's more accurate to say I think middle school (6-8th grade) should be more like high school, and high school should be a lot more practical, applied learning. If you're interested in cars, do that. If you're interested in chemistry, do that. Do them both at the same time, and do some music too, whatever.
Ooh, I just hope that no eels were harmed in putting that together!
you are assuming that torrents only work when there are seeders, but that's not true at all. Seeders simply provide surplus bandwidth, allowing a torrent to operate on altruism. In the worst case where almost everyone is downloading it degrades into tit-for-tat behavior where everyone gets as much as others are willing to provide based on their current contribution, which still scales with the number of downloaders.

Maybe I should have mentioned one other condition. The network must be distributed and consist of nodes with symmetric bandwidth. If you have symmetric bandwidth you can upload as fast as you download and thus on average the network won't need altruistic nodes to saturate everyone's downlink.

We could go even further and demand ISP-local source-specific multicast, then you would have massive bandwidth multiplication for uploaders, making it trivial to replicate popular content. Alas, that seems to be a pipe dream.
I've only done a little Python, so am not up on the finer points of the language, so a question if I may.

I'm a bit confused by the use of the

if __name__ == "__main__":

construct in this script. My understanding of that construct was that it is true when Python is invoked directly on the containing file, and is false if the file is being invoked as a module loaded from something else.

In your script, the parts that are outside the "if __name__" construct do not appear to be things that would be useful for something else to load as a module. So my question is why aren't they inside the "if __name__" construct?
A repatriation tax holiday is being talked about. A whole bunch. I think it's currently priced into the market.
> and returns me a completely filled in object of type T

What if type T contains a pointer to type U ? Or a list of pointers to a type U, with some duplicates in the list? What if T contains a floating point number, and the application is compiled with ffast-math?

What if the object contains a reference to some unknown type (a file, or socket)?

There are lots of ways of solving these problems, but each of the solutions has trade offs which may be acceptable to you, but aren't acceptable to me and vice versa.
World War III Search Trends
The nice thing about a percentile score is that you have enormous leeway in how difficult the questions are.

And it's not that hard to find people that are mostly not experts on a subject.
Many characters have multiple uses depending on context; e.g. A single asterisk, or a single ampersand
Is there a market for privacy respecting ISP? For example, Start the ISP in places where consumers have no choice.
9/10 they aren't using it to mean 'Irish American' though. Many, many Americans I know and have met claim to be 'Irish' despite they and their parents never having set foot in the place and they genuinely mean they are of Irish nationality. Sure it can be used as shorthand for 'Irish American' but that's generally not what is meant (in my experience). Ireland's diaspora is more than 10x the country's population so it's definitely not something we rebel against or dislike. There are LOTS of people abroad who can rightly claim to be Irish. When you claim it with virtually no actual ties to the country mainly so you can try to claim some stereotype it's irritating. Irish people are generally pretty proud of our American links and contributions. "you're not really Irish we are!" is not a thing.
I agree - although I think there are three options:

1. Deep learning - therefore any deep learning framework
2. "Classical AI" - use OpenCV for most of it
3. APIs as you mentioned above
Sounds interesting, but I don't want to try it out myself because I know that the internet is dark and full of terrors. Also, I don't want to get Rick-rolled.
Also, professors do steal money. There's all sorts of guidelines at my university now about how grant money can be used because a prof in the medical school used a grant for cancer research to renovate his kitchen (more or less).
His internet browsing history is needed.
Those figures are both good and depressing to know, thanks.

I figured the PGP usability problems were severe enough that I did not call you out by name in the post. This aspect was merely a darkly amusing aside leading into the main point of how the Golang devs handled this so well.

You didn't know the content of the report, so the irony is only clear in retrospect: the whole point of the report was about vulnerability to MitM attack and email MX->MX delivery is highly susceptible to that without some kind of trust anchoring in place, whether DANE or MTA-STS, neither or which is in place for the golang.org domain.

So the fact that TLS is _advertised_ by the gmail servers, which handle golang.org mail, doesn't mean that the advertisement reaches the sending mail-server.

I've since configured my mail-servers to always require verified TLS for outbound mail to the golang.org domain, as a manual override.
Using YubiKeys for SSH, GPG, GIT, 2FA, All in One
I believe thats in her late stages I guess.

Don't forget, old people have issues with chewing etc.

I'd say good olive oil is the answer! And no fast food?

We'll see, personally I think its a big mystery... life that is.
Well I use a parser combinator to build the Lua parser here.

https://github.com/meric/l2l/blob/master/l2l/lua.lua#L429

The parser generated is recursive descent.
That's a rabbit hole I'll be digging up now. It was quite interesting. There should be a dedicated website for such obscure things. Reddit helps but doesn't cover a lot of ground.
It's a shame that nearly all of gamequoter's history is gone.
Why don't we just go back to using horse-drawn carriages while we're at it?
Let's fix that: it's ridiculous that I pay US taxes on income I earn overseas. Other than Eritrea, the US is the only country that taxes its diaspora.