skysight-inc/HackerNews huggingface dataset:
I go a little deeper and more esoteric with my big gripe with C++... why can't it be parsed with a simple LALR(1) parser?

Donald Knuth summed this up much more elegantly than I could ever hope to do so, in his six character critique of C++:

a < b > c;

What the hell does that mean? What it means is that you cannot determine the meaning of those six characters without knowing in advance the types of a, b, and c. Is it an odd-but-valid C comparison? (a is less than b and b is greater than c) Or is it a template declaration? You cannot know these things without context.

Back when I studied compiler theory and was reading the Dragon Book, the simplicity, elegance, and precision of the LALR(1) parser design really touched me. And it was implemented on every Unix box with lex and yacc. This is how you write a compiler! This is how you understand structure precisely! To be syntactically valid, a statement must have one and only one meaning.

C++ cannot be parsed without interpreting variable types at parse time. LALR(1) does not work. It never has worked. C++ has been broken on this front since the 1980s, when it was just a preprocessor that cross-compiled to C. Why? What possible benefit is there to giving up that core bit of parser discipline?

"Because it's powerful!", someone sneers, as if that condescension justified bad design. "Because templates are so hard!" another whispers. But what about this?

a [< b >] c;

If the template declaration tokens were [< >] rather than < >, they wouldn't overload the comparison operators. The meaning of Knuth's example would be unambiguous, and both could be parsed without grief - both by machines, and by human eyeballs. This isn't difficulty. It's just not thinking through the consequences.

But that's okay. Smoke enough of that << and >> crack, and you'll soon forget those tokens are bitwise shift operators, not i/o. Sigh.
I wonder if English would be the c++. Large complicated mess, popular.
Yes, but that would be a rather poor business decision for us.
The way the "kickstand" is in the keyboard cover reminds me more of the iPad Pro than any Surface.
On a more serious note, just take the Google coding style and strike out everything it says about exceptions. Boom! A relatively painless C++. You don't have to use every trick in the book.
Palm really nailed wireless charging with the Pre. Magnets ensured it lined up correctly. And allowed it to be mounted on a stand at a great viewing angle.

Too bad about Palm...
Candid Reactions to the Oculus Toybox Demo and Social Presence
> With prices starting at $699/€799 (~£620) for a 128GB model with 4GB of RAM and a Core m3 processor, it's even cheaper than the competition too.

$699.
The keyboard is much more like the iPad Pro's "Smart Keyboard" than the Surface's keyboard cover. Surface keyboard is just a keyboard (no foldy triangle), relies on the tablet's kickstand for the computer to stand up, and sits at an angle instead of flat on the table.

MateBook looks like an iPad with an iPad cover: http://www.apple.com/smart-keyboard/images/keyboard_social.j...

Surface with keyboard for reference: http://az648995.vo.msecnd.net/win/2015/11/SP4-launch.png

And keyboard comic for giggles: http://hijinksensue.com/comic/surface-tension/ [2012]
Yeah, that's actually the track I had in mind when I wrote "almost". But most of his music gives me a really pleasant/chilling/surreal vibe that I haven't found anywhere else.
Genera is the Lisp of operating systems. :-)

I'm not sure what the Haskell of operating systems would be like.
Can't we all excel at different things?

The problem with those surveys could be the question as much as anything - one driver considered themselves above average because they can drive faster, another because they're safer, another because they have better fuel economy, ..., most drivers can be better than average as the meaning of average each driver users isn't being rigorously defined.
100 AUD is 71 USD.
serious questions.

Does public healthcare help you if you need to install a wheelchair ramp in your home? Or other lifestyle modifications that are a result of injury? Such as increased costs of transportation? Lost wages?
As a long time C++ programmer C# felt ... it felt good. Yeah, the memory and the non-native binaries make it a non-starter for most things I do. But wow, I loved it.
In support, I would mention the following:

[1] Mike Acton's talk: https://www.youtube.com/watch?v=rX0ItVEVjHc

[2] ZeroMQ article: http://250bpm.com/blog:4

[3] Cat-V harmful page: http://harmful.cat-v.org/software/c++/
I thought all the cool kids were using webpack instead of browserify now?
It is difficult to export electricity, (renewable or not) due to transmission infrastructure costs and losses.
We try to measure output of people instead of input. This is hard but we think it is much better than any alternative.

Having a well-defined job definition is important. We're a fast growing startup and our job definitions are by no means done. But you can find them by clicking on titles on our team page https://about.gitlab.com/team/ Each job should be defined. Merge requests are welcome!
>By far the most imprecise language I know, and I suspect this is by design (politeness), is Japanese. It basically has no subject and most of what we'd call grammar is derived from context.

First, the obligatory, any claim that a particular cultural element causes a particular language feature needs tremendous evidence; languages evolve on their own.

Second, Japanese has very explicit subjects, they are what comes before the は or が particle. By convention, stating the subject in a sentence is optional and generally omitted if it could be understood from context. You could argue that this is an imprecision, but if you need the precision for something, then just state the subject. There is only a 1 syllable overhead for doing so (beyond the syllables in the subject itself). From a technical (read linguistic) standpoint you could argue that what is marked by は and が is not really "subjects", but something else ("topics"), which is technically correct[0]. One could also argue that Japanese does not have adjectives, which is also technically correct, but both of these say more about how the field of linguistics chooses to model and define terms than about Japanese itself.

Third, Japanese has a very well defined grammar. Unlike English, it is largely not based on word order, but by particles that follow phrases to indicate what part of speech said phrase is (and yes, in my experience, this is very useful for poetry). Admittedly, colloquial Japanese sometimes omits these particles, but when they do so the sentences are arranged in very standard forms turning it into a word order based grammer.

[0] Mostly. Sometimes は and が really do mark the subject.
Egad, no! English is like Perl. It looks strange, but it's actually pretty simple and flexible, despite the ideas held in place with duct tape. Right->{}?

C++ is absurdly obtuse and complicated, for no good reason. It's not simple or flexible at all. If it were a natural language, it would be dead already. Native speakers would have been conquered by another people who could actually understand each other relatively unambiguously. Like English speakers.
Combat rocked. That was one of the best games.
Hoverboard electrical safety standard released
I thought Apple patented the round corners/edges [1], so is Huawei paying royalty to Apple?

[1]: http://www.theverge.com/2012/11/7/3614506/apple-patents-rect...
Using Node.js Event Loop for Timing Attacks
sergiotapia imagine in 5-10 years you leave a comment like this and then come back and write ... wow crap the AI is soo much better than the talented artist I loved for life! I just wanna go back to his stuff for nostalgia sometimes but honestly it's not even close. Can you imagine that?
And C++{n+15} would have tons of new fun features so you can enjoy learning them in the next 15 years!
I'm going back to my Nexus 5 after upgrading the internal battery by 30% [1], the S6 had great hardware but the memory management and overall software experience is horrible. Just give me AOSP!
I'm going to miss the camera and Samsung Pay, though.

[1] http://www.adamweld.com/2016/01/nexus-5-battery-capacity-upg...
What 5G Will Mean for You
> English speakers might be a little surprised that,if they listen very carefully, can understand a just a little Dutch.

Allow me to suggest some simple, easy-to-digest sample audio. Try listening to one of these five times. :P

https://www.youtube.com/watch?v=yOueN0sV2SY

https://www.youtube.com/watch?v=NkRvPFK5Ss4

https://www.youtube.com/watch?v=oQPiGqzZRGA
The privacy endgame
Whoops, thanks. Edited.
There's a theory that languages have sometimes evolved extra redundancy to help with understanding in noisy environments (in every sense of noisy, but especially if it's physically difficult to hear someone). This could be viewed as akin to a parity bit in telecommunications, where it's deliberately redundant to increase the chance of detecting errors on a noisy channel, or with other ECC methods of correcting them.

Noun gender might conceivably work that way some of the time, for example if there are nouns that otherwise sound fairly similar but are distinguished by their genders; if you heard an article or an adjective that agreed with the noun, you could get an extra clue about what it was.

An example that I thought of in Portuguese is ato/ata, two closely etymologically-related words with different grammatical genders. The former means 'act, deed', while the latter means 'record, minutes (of a meeting)'. If there were a context in which these could be confused when spoken, surrounding words would likely reveal which one had been said.

I'm not sure whether this is commonly understood to be a likely reason that languages actually have systems of agreement.

Edit: another example of an agreement mechanism that people have to spend time studying is agreement of verbs with their subjects (in various ways depending on the language -- for example Hebrew and Arabic verbs agree with their subject in gender!). This is more complex and more effort to learn than in languages that don't do this or do it less, like Chinese and Swedish (which don't even mark person or number in the verb). You can imagine that this redundancy is sometimes helpful when you mishear either the subject pronoun or the verb itself, like the different between "we want" and "she wants" or "we know" and "she knows" -- if you didn't hear for sure whether the subject pronoun was "we" or "she", having it be fully or partially marked in the verb conjugation would help you figure out which it could have been.
How Colleges Can Prepare Tomorrow's Entrepreneurs
Combat is, frankly, one of the greatest videogames ever made. Easily in the top ten. If you don't understand why, you've missed out on a great deal of history.

The Atari 2600 was designed, almost exclusively, to play Combat. It has the ability to animate only 3 sprites: player 1, player 2 and "ball". There are many hacks to get around this, but we're talking about the pre-release period of the Atari Video Computer System, AKA VCS, the Atari 2600.

The only other game in mind for the system was Pong, which actually come out for the system in the form of Video Olympics, and it was created by one of the 2600's TIA chip designers, Joe Decuir. That chip literally synced up the processor with the television's refresh rate, and had each scan line drawn out of processing exactly when the electron beam was moving over the proper position on screen. The 2600 has no frame buffer. Essentially, when it's in the CPU, it's drawn on the screen. The machine only had 1024 bits, not bytes, of RAM.

But that's neither here nor there. For more info on the fascinating hardware that was the Atari 2600, read Racing the Beam by Ian Bogost and Nick Montefort. https://mitpress.mit.edu/books/racing-beam

Video Olympics could be considered to be the 100-in-1 of Pong games, with dozens of variants on the Pong theme. Combat takes the same sort of approach, with lots of game modes, but the actual gameplay was based on another arcade game. Rather than just recreating the arcade game, however, Combat expands on the theme, as Video Olympics did.

Combat is, to my mind, the only game on the 2600 that really holds up to this day. It's still fun, despite it's graphical limitations. For its day, it was the Super Mario Brothers of the Atari: that cart you could always turn to for fun.

It's elegant in its simplicity, extremely deep in its variations on a theme, and even offers a few asymmetrical playing options: one player can be given a different set of planes from the other.

Combat is the Go of computer games. Oh, and all the graphics are drawn in 1's and 0's. Same for the numbers on screen: big binary sprite maps. Here, look! http://benfry.com/distellamap/150dpi/combat-illus-150dpi.png
I think one of the arguments for the more specific form of targeted advertising is for the measurement of impact, not that it is in some way more impactful.

Assumedly that measurement can lead to more impactful ads, but we are awfully new to programmatic advertising for that to be proveable.

I do know that advertisers believe targeting is valuable.
C++ is very, very hurt by not having a base Object type from which all other types derive. Because of this, we get templates, and templates suck a lot.

Generics in Java are even worse. All of the idiocy of C++ templates + Java type-erased containers, none of the benefits. I've been bit way too many times by Java generics just forgetting what type they contain.

Generics in C# are slightly better, especially in that there are a lot of different types of constraints you can apply to them. When applied judiciously, they can greatly simplify a lot of code. They are work best when everything is specified "correctly" with interfaces. Hold on a sec...

Sometimes I think templates/generics is all just a hack to get around the fact that I can't add interfaces to types I didn't define myself. When I'm designing a wholly closed system, I'm often going the old-old Java way of explicit interfaces for everything. It just keeps you honest about state encapsulation, which then keeps you honest about state transitions, which then basically just makes the program write itself.

So if you have a system like that, C# generics and its constraints work really well. But probably the entire reason you wanted generics in the first place was to not have to write all those interfaces. And you still can't add interfaces to things that you didn't write.

But at least you can write extension methods for them.

Of course, you can't get all the way to an algebraic type system with it. It makes you think you can. But you can't. That hurts.
> Boards of Canada...

I can't work to Boards, but...

https://www.youtube.com/watch?v=9GgWbgtjVow

Orange...
Have a look at .kkrieger - a beautiful 3D ego shooter from 2004 in 96 kilobytes

https://en.wikipedia.org/wiki/.kkrieger

Screenshot: https://en.wikipedia.org/wiki/.kkrieger#/media/File:Kkrieger...
Highly doubtful. In seven years and over a thousand cab rides in Taiwan that never happened to me. One one occasion my wallet fell out and the driver even called me to give it back.

Ripping off the foreigner is more of a mainland China thing.
I agree, I look back on what I did as a couple of years of harshness, character-building stuff that made me the man I am today, etc, etc.

That's not the same as what we're hearing from the millenials. We can choose to write that off as the whinging of an "entitled" generation. Or we can choose to listen to them and compare their stories to ours.

Talia made some mistakes. That's what your 20's are all about. But she's working a full-time job and is unable to eat properly. I don't think that's acceptable.

By writing her off as an entitled whinger I think we're putting our hands over our ears, going "lalalalalala" and ignoring a real problem in our society.
Is it wrong to think Kurzweil has gone off the deepend? I know he was extremely productive in his early years, but everything about him just makes him seem like a crank who spends most of his energy marketing himself as some kind of thought leader. IMO anyone who calls themselves a "futurist" has very little to contribute to the technology they are preaching.
The way to start is go to wikipedia and learn and understand all the algorithms that have been developed over the years in this field. You can get a list of all such algorithms on wikipedia. For each algorithm try some examples and see for what kind of problems they work and for what they don't and if possible try to think about why that is so. The goal of AI is to design "general purpose algorithms" that could be applicable to wide variety of tasks.

The other side of AI where people talk about AGI and ASI is nothing but intellectual masturbation at this point.
Yeah, even phone lines to established positions had to be buried to keep from getting cut by artillery bombardment.
FBI Director Comments on San Bernardino Matter
I don't think Java actually started that way. It was a lab experiment gone rogue, starting as a way of shoehorning complex application code into the very primitive web browsers of the mid-late 1990s. That never really caught on, but it was fashionable enough for Sun to invest in developing JEE as a way to build sophisticated server-side apps. Back then, we were hacking apps together with CGI and server-side includes - so primitive, so insecure. IBM took to the field with Sun and started selling Websphere so management could feel better spending millions on licenses rather than using that crazy open source stuff, and it all rolled from there.
> many founders of high-technology startups believe they stand a much greater chance of becoming wealthy by launching a startup than by ordinary employment. If many founders really do believe this, it appears they are largely wrong.

Not true. There is no massive upside to being an employee. There is one to launching a startup.

> All told, entrepreneurs earned 35% less over a 10-year period than they could have in a “paid job”.

Not true. An enterpreneur could just sell hours as a consultant to a client. In all practical terms, it would be the same as selling hours to an employer. The consultant pretty much always makes more money than the employee.

> And of course, founding a company is far more risky than earning a salary. This suggests that entrepreneurs are in most cases giving up security and making no extra money in return.

Not true. It is not more risky, if you are just selling hours, for example. It is often exactly the same as being an employee, with the difference that you send out an invoice instead of getting a paycheck.

> In contrast, the average unincorporated self-employed person earns 16.5% less than their salaried counterparts.

What it really means, is: the average unincorporated self-employed person declares 16.5% less as personal income than their salaried counterparts. It does not mean anything beyond that.

> Will you earn more if you become an entrepreneur?

An employer is just a middleman between you and the real customers. If you cannot sell to the real customers directly, that means that you will also have trouble selling to employers.

If you are actually able to sell to real customers directly, you will have a much better negotiation position when dealing with middlemen. Therefore, you will automatically make more, regardless of whether you do that as an employee or a self-employed person.
If you like Nujabes, try Fat Jon too.
> My understanding is that (a) utilization of dietary vitamin D is significantly lower than naturally produced D (from sun exposure)...

The end product of UVB irradiated skin (i.e., sunlight) is vitamin D3. (D3 is "activated" locally in tissues utilizing it.) Ingested D3 supplements effectively add to the body's supply, though the optimum intake is controversial and varies among individuals.

One difference between sunlight and supplements is that D3 production via UVB exposure has an upper bound, only so much can be made because there's a limited amount of substrate available in skin cells to convert to vitamin D. The upshot is sunlight is "safer" re: potential toxicity of excessive vitamin D intake.

AFAIK vitamin D is unique among nutritional factors in its reliance on UVB exposure. Don't know of any other micronutrients directly related to sunlight, but possible there's something I've overlooked.
Places that are cloudy and have very short days?
A major component to modern advertising is educating people that options exist.

In the no advertising model things simply wither on the vine with no support to keep them going.

Smart phones are an obvious example. They existed for ages before a powerful marketing company pushed them to the mainstream (plus the usability improvements). That sparked a technical revolution...
For comparison:

Surface Pro base model (specs look the same, though I didn't compare whether the M3 processor is identical) is $799 including the stylus. Keyboard is the same $130.

If you get the stylus but not the USB adapter, Huawei undercuts Microsoft by $40. IMO not significant enough to be a driving factor either way. I'd wait on someone to do an in-depth comparison of the digitizers before jumping on it.
Funnily enough, for all the bad press Apple gets for glued together devices, the battery is trivially easy to replace in iPhones.
Howard is a brilliant programmer. In Yar's Revenge, that fuzzy barrier on the left side of the screen is the graphics code from the program literally reading the game's own code as graphical data, thus creating the crazy static pattern of chaotic colors. Talk about a cool and space saving hack!
https://upload.wikimedia.org/wikipedia/en/8/85/A2600_Yars_Re...
"We used a support vector machine to maximize the "calmness" output of the band"

fyi, this doesn't make sense.
In the 'good old days' you could have a competition on the TV or radio that would require getting answers to questions correct. You would have to be very 'brainy' or well read, maybe even have educated friends to help you to get all the answers. You could also admire the 'genius' of those able to get the answers right.

To take a simple example, where was such-and-such an author born? If you had grown up in the same village as the author or read one of his/her books then you could answer the question. But, if you had no such head start, a trip to the library or asking a well educated friend would be the only way.

Nowadays, with Wikipedia, the answer is provided by 'OK Google' in the first paragraph of the first result. This effectively makes it impossible to run competitions on TV/Radio/print that require high levels of 'general knowledge'. In fact, even the phrase 'general knowledge' is not used as often as it used to be!!!

Although it is great to be able to look up everything and anything instantly, I liked it in the days when there was some rewards and respect for knowing stuff that nowadays is deemed to be 'trivia'.
So don't use it? These "Why X Sucks" posts mostly seem like clickbait rants an author writes when they have a frustrating programming day. C++ is a huge language used all over the place, it's been here awhile, its pitfalls and warts are known, it can be cumbersome to write, but it's fast and there are a huge number of quality libraries for it. It's hard to write in. We know. Use it where it makes sense, use something else where it doesn't.

If you want native code with fast speed and a nice development environment, give Rust a try if you haven't already.
I know content is king... But seriously this is just sad.
For my money, in terms of accessibility and fun while having a steep but manageable difficulty curve - the 2600 game that stands up the best today is Kaboom. It can induce an almost zen-like state that is very hard to capture in gaming.