skysight-inc/HackerNews huggingface dataset:
GitHub's search is pretty interesting: every time I refresh the search page it shows a different number of results: 18,401,830; 17,751,631; 15,995,799.

Which is anyways quite a lot of results, but then this search finds ThisShouldNeverHappenException, the string "this should never happen" and stuff like

// *This* gets run before every test.
if (b > d) {
fail("XX *should never happen*");
}

With quotations it's only about 500,000.
It's not only conceptual difference.

It is a good practice to decouple state manipulation from drawing (even to do drawing in different thread, and with different frequency, than state manipulation).

This allows for computers with wastly different processing power to run the same simulation in sync, while the more powerful computer can draw 10 times as many intermediate frames.

Alternatives are variable step length (makes it hard to write deterministic simulation), or fixed step length and capping framerate to it (sacrifices animation quality on better computers for easy implementation).

EDIT: also - the ordering between drawManuel and drawBackground probably do matter, and there's probably some state related to drawing (like animation frame numbers etc) so there should be separate screenState that reflects that.

state = processInput(state);
screenState = drawBackground(state, screenState);
screenState = drawManuel(state, screenState);
It doesn't even have to be in salt water to suffer damage when near the ocean.
Show HN: DockerLabs – fast-track your Docker skills
Fennec / Firefox Mobile
The Official Docker documentation is great and DockerLabs (unofficial) is designed to be a progressive and practical way of learning the essentials. Each lab builds upon the last one and goes through a
range of technologies including: nodejs, dotNET on Linux through Mono, Redis NoSQL and the linking of containers together.

The content is released under GPL - so clone/fork/star on Github and feel free to submit a PR.

What people are saying from our meetup last night:

"Fantastic event. Thanks everyone for organising...""

"Thank you - very good evening"

"great talk on docker tonight Alex, thanks for all the time and effort you put in to it."

"An excellent self-paced session following lab notes and with plenty of people on hand to help out. Great job guys!"

Meetup link:
http://www.meetup.com/Agile-Peterborough/events/229407898/

Fire up DockerLabs.md over on Github:

https://github.com/alexellis/dockerlabs/blob/master/DockerLa...
I think he means open as in supporting more than one platform.
Are we already at the same point of history, as it was 1933?

Western democracies are unable to protect democracy or even stand for democratic rights. Instead they are more fearful about some refugees.

Who does not learn from history, is doomed to repeat it.
For all intents and purposes, Turks are white (i.e. the same race as the rest of Europe).

The issue, however, is religion. EU has enough problems as is with religion (less than the US, and less than it used to have, but still), but still people are wary.

Although IIRC Turkey used to be less religious than it is now, under Erdogan.
I'm pretty sure you have the things on the wrong sides of the "much less" in your first sentence (unless you intend to say that Microsoft is more like the company it was 25 years ago than the one it was 3 years ago.)
LLVM. Easiest way to write your own compiler pass.

However, it's going to be tricky to handle ownership between threads as those are not intrinsic to most languages and therefore not native for the compiler, instead they are just a call to a linked in function (fork/clone/pthread_create/std::thread). Compilers for are unaware that the function actually invokes a system call which performs 'odd' (spawning a new thread) behaviour for a function. So in order to have some notion of 'ownership' by a thread you'd need to recognize all different ways of spawning a new thread for the different operating systems and platforms your compiler should support.
So how many golf balls fit in 7-dimensional school bus?
Never ever EVER put bad language in any unexpected error cases or logs - even as you're developing it... it WILL somehow magically make its way to production, and it WILL appear!
Not just Java. I've seen similar classes in C++ and C# to indicate things which should never occur/are clearly bad programmer mistakes/... Think InternalErrorException/DevFailedError etc. Sometimes it's just a sane thing to do, and using such names means you don't need to write the dreaded 'should never happen' comment manually anymore.
TDOP, Pratt, precedence-climbing, I think they're all referring to the same, if not extremely similar, method of using a loop in the main recursive function that compares precedences and decides whether to recurse or loop:

https://www.engr.mun.ca/~theo/Misc/exp_parsing.htm#climbing

http://javascript.crockford.com/tdop/tdop.html

They're definitely very simple, and can be derived by refactoring a recursive descent parser and observing that there's no need to make a chain of nested recursive calls to the right level when the function can be called directly to "jump" to the desired level. The simplicity is probably why it's been rediscovered several times and has different names.
Maybe it's because C coders want to know why something happens more than coders in other popular languages; say popular since the frequency of an occurrence is proportional to the volume of source code in a given language.
Pretty hard to translate, most jokes are lost in translation.
If we're talking about programming having a college degree helps better ensure that the candidate has had good exposure to relevant theory (e.g. automata, graph, ...) and math. While understanding this stuff isn't essential for most CRUD apps, it's crucial if you're building something big like a new kind of datastore, a better search engine, an operating system, and so on. Yes someone without a degree can theoretically have an understanding of subjects that most people only have exposure to in a university, however if you're a company that plays things safe you're going to go for the better bet
I think the point with CockroachDB is availability/reliability and consistency. It might scale nicely, but I did not see any claims to that end.
"It's a bloated piece of crap"

Ah. Well. I don't know what makes it "bloated". I runs very smooth on my underpowered android phone.
Yes, Facebook is blocked in China but apps like WhatsUp work. I use very little WhatsUp and I think WeChat is far superior.

" of buttons called apps that do specialized things in a better and more simplified manner than WeChat can."

Not sure about this. I can text, call, send pictures end even money very easily. To use a different app and possible in each app every person has an additional ID (hence email, phone number, bank account number etc) would make things very inconvenient.

WeChat? Loving it.
Yeah, embrace, extend, extinguish. I don't think it is about that though as they can easily be ignored now. I imagine that they are genuinely losing enterprise traction. If I were on windows I'd run some docker or a VM. I would NEVER compile g++ via openssh from Visual >BARF< Studio. Really in your enterprise you should have a macbook/chromebook on your desk (at home or in the office) and a linux server in the cloud. Unix everywhere now. Bye bye windoze.
It's weird because a couple of answers here say that it's harder getting into higher positions without a degree.
Show HN: Gce-Docker – Google Cloud Engine Integration for Docker
Awesome, thanks! Works great!
It's hard to give small example with so general code, but in the end you either have very general flow (collision between any 2 objects can change state of the whole world, including the way the inputs are interpreted), that doesn't provide much protection against bugs, or you have very specific minimal flow (collision between 2 objects changes the state of these 2 objects, their parents, particle system, music system, and input interpretation, and nothing else) that protects against more bugs, but is a lot of work to maintain.

I was trying to imagine a system which could give you the best of 2 worlds.
The former, it translates Python 3.5 syntax and some of the core semantics to ES6+ JavaScript and then BabelJS is used to transpile that ES6 JS to ES5. All this retaining a sourcemap that maps back to the original Python sources.

It does all without the need for nodejs (even if it can be used of course), it uses an embedded js interpreter.
It's really weird to think of you as an expat, because we are used to thinking of the turkish in ways that are improper.

Most expats are expats because the grass was greener where they went. Why are some of us expats while others are merely "immigrants"?

Just using that word makes it seem filthy for people from the middle east to come to europe. How are they different from europeans leaving their countries behind? Language is powerful.

Do you feel welcome in germany? Just curious.
Tools Built on Top of the Docker API
Depends on who makes them. Motorola's are some tough radios. Only thing needed replacing were some diodes, then tuned up and out the door.

No Apple fan here (actually the opposite), but I'm with them on this.
This is desperately cynical and I'm struggling to picture an academic being told that. What did you teach, what was the university and what field were you in?
Does this actually mean I can now write python code instead of JS for websites?
I am a C lover.

It is because C has no exception handling, and C coders still want to be sure.

For example once I had a game where I ended putting a couple "should never happen" in my code related to some OS stuff, and... the "should never happen" happened once, after figuring how to reproduce it, it was a driver bug (or something like that, happened years ago, I don't remember the details anymore, only remember that it went away after I switched from Alsa to OSS4 on my Linux box).

EDIT: should never happen is good against compiler bugs too, I've seen my fair share of them.
Why is this getting downvoted?

https://www.google.com/search?q=IM+Raupe#q=IM+Raupe+gauck

https://www.google.com/search?q=IM+Raupe#q=IM+erika+merkel

There is one famous picture, showing Merkel at a very young age in the outskirts of Berlin in front of a house of a dissident that was under observation. WTF was she doing there? And why did she forbid any further publication of this picture, after is was shown by a Magazine from Switzerland?

I saw this picture myself and it is not available anymore in the internet.
He was lying.
Well I can't blame you - I have thought for years myself that I could 'pick up machine learning' like it was some web programming framework that you can be an expert at over a weekend. But I had to concede after a few years of trying on and off that it doesn't work like that. Which is also why it's a testy subject for me - like how ex-smokers are usually the most obnoxious anti-smoking crusaders.

I don't have a proper math-intensive CS degree myself, only a 'software engineering' degree, so I've been going back to uni and studying when I can to build a math foundation first. So what I wrote down above is basically the 'curriculum' I designed for myself, as well as what I already know from the software side and is needed for ML.

To make it relevant again to the topic at hand - this is also why a university degree (and a proper one) is required for programming jobs that are cutting edge. Sure, making websites doesn't require it - and neither do line of business CRUD applications. The interesting work though is not 'programming', it's 'using math to solve problems and using programming to get the computer to do the repetitive stuff for you'. When it's framed like that, it becomes obvious why a university degree is required.

(yes yes theoretically it's possible to study math by yourself - the number of people who have the discipline to do that though is minuscule compared to the number of people who can bootstrap themselves to be 'programmers' of simple applications like web applications, most mobile apps or CRUD applications)
Show HN: Track Amazon products for a price drop in your local currency
Will cygwin die?
I thought the same, then I searched for "This cygwin SIOCGIFCONF should never happen" and it finds only 319.

To me it seems like the search is grouping similar results in some way.
That's because Turks are treated in Germany the same way Moroccans are in Netherlands. Both parties are to blame, but no matter what a Turk does, it will at least be another 50 years before they're accepted as Germans. Just look at the German media. When somebody with a migration background would get some award, they're quick to point out (s)he is from Germany, hiding the background. But when (s)he does something people disagree with, they're easy to isolate the person as someone with a migration background. I've always seen this as a way of the German Germans (aka Christians and Jews) to feel better, being able to separate those people's behavior from their German German behavior. This basically goes back to the defeat in Vienna, basically. The mistake most of non-Turkish German population does is to conflate descendants of Turkish immigrants with Turks from current day Turkey. It's almost like comparing an African-American from Georgia with someone from Nigeria.

So, I can totally understand why the parents would want to move to Turkey for their retirement. And to be fair, there are many English and German retired couples who move to Turkey just as they do to Spain or France.
>WhatsApp will be offering a paid API soon that will make Chatbots available within WhatsApp and thus make all the above possible.

Is that a wild guess, or sourced somewhere?

Anyway, with Microsoft releasing this, and supported apps such as Telegram already having a bot API, this does put a lot of pressure on WhatsApp.
German here: I think extinguish works very well in this case because it translates into a genernal "auslöschen" which is not limited to flames and fire, e.g. "Die Dinosaurier wurden durch den Einschlag eines riesigen Kometens ausgelöscht".

I agree that it works better in German but it translates surprisingly well into English.
Not really much of an article is it, could be summarised as 'How I ordered a cheap PCB by choosing one of the many companies offering to build cheap PCBs'. I was expecting a little more DIY from the title.
I've not read the example and I take your point but I'd much rather see "Then we increment the current so that..."
Poland is steering a very problematic course, but who cares when we don't even act on Hungary, which is much closer to a dictatorship than Turkey.
How to Monetize a Mobile App Using In-App Surveys
Have a look at the example! ;-)
never run eval on anything, unless you have a very good reason.

reminds me of this gem google gave me as a top result once: https://gist.github.com/40/3192269
Moreover, the following theorem is easily proved: there cannot exist a useful general-purpose programming language in which all (or even most) programs can be efficiently verified to be correct, either by man or machine[1].

Where "useful general-purpose" means any language with forward branching and some form of looping recursion (even if bounded) -- it does not need to be Turing complete -- and "efficient" means done in time polynomial in the size of the program.

[1]: ... unless PSPACE = P, in which case some small class of languages that are not quite general purpose but useful nonetheless may have this property, because verifying useful finite-state machine languages is PSPACE-complete.
MIT (and even more so for CalTech, but they don't have a world class CS program) has substantial math and science requirements that are not part of the required ABET CS curriculum. Per e.g. http://www.abet.org/wp-content/uploads/2015/05/C001-15-16-CA...

One year of science and mathematics:
1. Mathematics: At least one half year that must include discrete mathematics. The additional mathematics might consist of courses in areas such as calculus, linear algebra, numerical methods, probability, statistics, number theory, geometry, or symbolic logic. [CS]

2. Science: A science component that develops an understanding of the scientific method and provides students with an opportunity to experience this mode of inquiry in courses for science or engineering majors that provide some exposure to laboratory work. [CS]

The General Institute Requirements for all MIT undergrads include 1 term of the calculus beyond the AP Calculus BC sequence, 1 term each of calculus based mechanics and E&M, and 1 term each of biology and wet or solid state chemistry. There's also a laboratory requirement that's satisfied by the new EECS introductory courses that replaced 6.001-3 (SICP plus EE fundamentals, now it's robotics and communications).

So a MIT (and CalTech) graduate is guaranteed to have more scientific and mathematical maturity than the generic CS degree holder from another school. It's also a degree that grew from its EE department like UC Berkeley and unlike (I think) CMU and Stanford, so there's some required low level EE learning (and last time I checked most in the department get a degree with lots of both).

It's all done at a very fast pace as well, about 13 weeks of learning per se for a term (vs. e.g. the 2-3 terms that seems to be common for covering the AP Calculus sequence), so being able to learn hard stuff fast is an implicit requirement, and officially stated as a virtue, seeing as how quickly so much in so many fields including most especially computers changes so quickly.

NOTE TO HIGH SCHOOL STUDENTS: if you want to attend MIT, don't despair. In addition to a new model financial aid system which disdains loans, the raw odds if MIT judges you can do the work are 1 in 3. Best thing you can do besides the usual things is to demonstrate in your application that you can do projects. E.g. do a significant block of programming (FOSS nowadays) work and do a good jobs of writing it up, as I did, in addition to a serious biology project at a NSSF Summer Science Training Program that would have been published if not for later realized reagent contamination.

Disclaimer: I was a MIT undergraduate pursuing a science degree, and interacted a lot with the EECS department (e.g. I lead the infrastructure part of their forced move from Multics to UNIX(TM) when MIT-MULTICS was shutting down due to Honeywell Brain Damage(TM)), and still have ties to the department.
From the perspective of a Turing machine, they're the exact same thing. We just created abstractions to separate them. And from the perspective of physics, you've just got yourself yet another isomorphic transformation of the above mentioned Turing machine, so still the same.
The Rise of China's New Consumer Class
How does this new fork differ from the already existing NtCreateProcess with a NULL section handle that was used to implement fork in the old SUA/POSIX subsystem?
I've worked with fantastic developers without a degree. Typically, I've had to point out gaps in their understanding of the "why" behind things. I also had these shortcomings because I had an MIS degree. The difference when working with CS graduates is simple business knowledge seems to be their shortcoming. So working in accounting, finance, etc. they have a knowledge gap.

No one comes out of college knowing it all, it's just figuring out where your shortcomings are and always trying to fill in those gaps. I'm a mediocre software developer at best. However, I'm better than about 90% of the people I've worked with (IMO). The 10% that are better than me I strive to learn from and discuss topics constantly instead of being intimidated by their expertise.

If companies would simply hire good people and make growing them into well rounded developers, they'd have a hell of a lot better return on their investment than simply having a checklist of "employee must have" when hiring.

I'm on (failed) startup #8 at the moment with one of these friends. Our primary goal is to hire people that haven't had job experience in the field so we can train them on the proper ways to build software (well, our opinions on what's "right"). Assuming we ever get to the point of replacing ourselves. :-)
Isn't that what assertions are for?
On calling people 'neckbeards' (and other pejoratives):
https://forums.meteor.com/t/why-no-stack-overflow/20158/16

I think he would say what he has always said about secret software. He's fairly consistent in that regard.
It's not a law in the strict sense.
WeChat about WeChat
Uncountably many.
To elaborate a bit, in C++ the relevant exception class is called `std::logic_error` (contrast with `std::runtime_error`). I like it. It is a bit more descriptive of the actual situation than "this should never happen".
New eBook: Building Prototypes with Framer
Facts aren't copyrightable.

They scrape everything in the world they can get their hands on.
UK is among least free countries in Europe
This feature is one thing i missed in windows and now i have no reason for not working on windows 10. i use Mac OS X for work it is cool, but i miss the windows shortcuts and navigations i am used to.
It's an awful name but I guess they'll eventually rebrand.
That speed limit for biological activity might not exist in the universe if you consider the interesting natural "applications" of quantum phenomena. The ability for a particle to travel infinite paths simultaneously has been shown in photosynthesis, and fascinating examples of entanglement are in the literature. So it makes you wonder if distance has anything to do with the capabilities such a large brain.
Visual C++ – Microsoft Pushes C++ into the Future
kdb+/q, apl, j for finance
Rules of Makefiles
Oh dear.

I read the first half of this article watching him take the simple OO game loop and iteratively make it worse and worse, leaving it nearly unreadable and impossible to follow the logic or know what the state would be at any given moment. Then I came to this line:

Let’s take a moment to appreciate a few of the things we’ve gained by rewriting this code in a functional style

He actually thinks that he has improved the program. By piling functions up six deep and replacing pos.x += 3 with four lines of object accessor code (using strings for property names). Oh dear.

The second half of the article, where he realizes that he has not actually gained anything by ruining his game is just the icing on the cake.

I don't feel as though I've been sold on the benefits of Immutability today.
Starting Out in VR and AR: Best Tools for Ambitious Beginners
Usually, you'd never actually _count_ the expected results for such stuff. Instead, you'd return the estimate number of records (think SQL EXPLAIN). I'd gather the number seems very dynamic because of the constant stream of commits.
I have to admit that watching the comments of all the "freedom philosophers" is entertaining. Even when something good happens...people running more free software...it's just not good enough. Never mind the massive amounts of "un-freedom" that are involved in producing computer hardware...or that their profit RMS developed his "freedom philosophy" on computers at MIT that were being used to literally build the most powerful technologically advanced military in history. Seriously, protesting password access to computers paid for by DARPA?

Tool. So are all of you fanboi's.
Nice, instead of supporting the PCB business 5 miles away, send it to China. The copper not on your PCB is probably floating down some Chinese river, hence "Dirty PCB".
The paper is linked in the article. I encourage you to take a look--for a breakthrough result it's unusually accessible, verging on self-contained.
I use "this should never happen" branches when creating new code fully expecting those branches to be hit so I can debug the case.

Those branches ought to disappear once the code and tests improve but we all know how that goes :-)
Could easily have been titled "no way back for America: how even small-time hobbyists can outsource to China now"
There's this too: https://www.metavision.com/
Thx for the tip about man pages, somehow I never thought about reading them.