skysight-inc/HackerNews huggingface dataset:
I think the best way to explain it is that a recursive function is a function which should return either:

- A 'base case' value

- The result of a call to itself (could be multiple calls to itself also)

Basically when you call a recursive function, unless it hits the base case (usually decided by an if condition), it will keep calling itself (often with slightly different arguments each time) until it returns the base case.

Once the function returns the base case, the recursion will start to 'unwind' - In the unwind phase, you can use the return values of the previous recursive calls to do more interesting stuff.

The best way to visualize recursion is to imagine that you have a stack of function calls; each time a function calls itself, it creates a copy of itself with new arguments and puts that copy on top of the stack - Then the program pointer moves to the copy (but it keeps a reference of were it was in the previous call) - And it keeps building up the stack with new copies of the function until it reaches the base case (when the function finally returns a concrete value).

The 'unwinding' phase is just when the functions start returning (after the base case has been reached) and all the function 'copies' just get popped off from the top of the stack one by one - Each time the program will continue running from wherever it was in each call stack.
Most of us actually do. Not all humans respect all other humans all the time, but most of the time we behave quite decently against each other.
The problems I see are mostly with the word. When you face a word you don't understand it can be a huge obstacle unrelated to the concept it represents.

Its especially bad when the definition is given to you as code you barely understand performing either a trivial task in a weird way that would seem to be a simple for-loop or a more sophisticated task involving say trees that you struggle to grasp even without the $5 word hanging over it telling you that you don't understand something.

Terms like self-reference are more intuitive.
Is this something unique to British-brewed beers? According to https://en.wikipedia.org/wiki/Isinglass "Isinglass finings are widely used as a processing aid in the British brewing industry to accelerate the fining, or clarification, of beer". I cannot recall ever seeing anything like this on the ingredients lists of cans from other countries (e.g. French or Spanish beers), but maybe it doesn't count as an ingredients for some reason or maybe other countries use something worse to clear the beer.
...mostly because it's so expensive. But you can use call/cc for all kinds of things: exceptions, python-style generator functions, delimited continuations, and famously, webservers.
Facebook now censoring Dakota Pipeline livestreams
How does a conversion of one of your Win32 exes run with the new system?

Can do a manual convert (https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop...) or use the tool to create the appx then double click to install, I believe...
Pretty cool. I can only imagine how unpopular you were, though.
The skewed view given in the article is hilarious.

"Nobody really wants to advertise that they filter their beer through dead fish"

Well that would be because they don't. Isinglass has a long history of use in beer and wine, and is a refined collagen. If you don't want animal products in beer, awesome, go for it. The slightly hysterical language is unnecessary though.

-- edit --
Another technique sometimes used is to fine with beef gelatin... Not sure how widespread this is commercially, but it seems relatively popular with homebrewers. Vegetarians do need to be careful with beer.
Larceny isn't particularly vanilla, AFAIK.
Inequality and Unearned Income Kills the Economy
http://filebin.ca/2v9C6MeDhDop/funnylist.txt
It's used in champagne and all sorts of other products, but as it's used in processing and not considered an ingredient, it can probably be left off in a lot of places.
Well, Chrome crashed for me after that page was loaded... not a very convincing demo.
I once went to a sports doctor about my knee pain. As I recall, he charged me $600 for an evaluation, and prescribed orthotics. The orthotics did not have any effect, despite my wearing them for years.

Bah.
This is a duplicate, and I feel like this comment from the other article shows how ridiculous this is

https://news.ycombinator.com/item?id=12503157
A society not prioritizing job market and a society where somehow not being able to get a job is a something you boast about are two different things.
Maybe it was the type definition I used...
More and more clients are now IPv6 only (notably on mobile). If your service is only accessible through IPv4, the client will access it some kind of stateful equipments to do the conversion between IPv6 and IPv4. You are likely to get a small latency hit but also a lower reliability. As the bigger sites are IPv6 ready (Google/Facebook), the reliability of the translator equipment may not be the top priority.
10 easy ways to get rejected by an investor
WaveNet implementation in Keras
Yes, some of us have been around long enough to know that implicit declaration of variables is a bad idea, not a brilliant one overlooked by everyone else :-)
The hacker news readership is focussed on startups and technology. It's a career, a business and in some cases an interest in technology.

So privacy as a social good may not be the primary perspective and it often devolves into how this affects readers personally rather than the society they live in or side tracks into technology nuances.

Technology is enabling new negative possibilities but it does not follow that technologists can make a difference. There is no ethical code of conduct. Like everyone else they are another cog in the wheel and software engineers may not have an interest or priority on privacy, social and political issues.

There are a large number of folks working in the nsa, gchq, google, facebook, palantir, hardware vendors and elsewhere actively enabling this.

Like technology itself politics, liberty, privacy and the evolution of modern system from the time of feudalism requires interest and priority. From this perspective the need to tape up your webcam may have completely different ramnifications.
How is that a lot of overhead? A few extra function calls is not "a lot of overhead"...
I think such cases call for a more professional / serious project management tool. I mean, GitHub projects is just a webapp, one that lets you move some rectangles around with a mouse. I'll be happily using it to manage issues on my small open-source projects (that incidentally are usually self-contained within a single repo), but for anything bigger / more serious, I'd rather use an external tool.
Sounds awesome, let's get the ball rolling.
Apparently in Germany it fell out of use – mechanical filtration systems are better and cheaper nowadays –, and is only used for some traditional wines (and possibly beers).

However, it is not considered an ingredient, and so does not need to be listed on the bottles.
Well it is also for sale in Germany, which probably wont be leaving the EU anytime soon.
>Isinglass has a long history of use in beer and wine, and is a refined collagen.

A long history before modern manufacture of crappy commercial beers?
>> (I'm reminded of the apocryphal Prolog compiler which, if you gave it a program with a syntax error, would just reply 'No.'.)

I don't believe you remember this correctly.

The Prolog interpreter will raise an error for syntax errors. If you misspel something but don't cause a syntax error then you may get an unexpected "no" (or "false") but a syntax error causes compilation to fail, in Prolog as in any language.

In any case, a "no" ("false") is the proof procedure failing to prove your query true (or, more accurately, finding a way to prove it false). It's not an error and it's not a failure of the interpreter.
Apple Surveying MacBook Pro Users About Headphone Jack and Other Ports
Even long ago, I discovered that once I reached a certain level of tiredness, it was pointless to keep coding, because after a night's sleep I'd realize it was all garbage and had to revert to a previous version.
Here in the UK they spent the last 25 years dumbing down the education system so that A grades are now average and fully half the population get a university degree. Surely that can only serve to reinforce the impression of young people that they're smarter than older generations?
I believe that it's likely to be too expensive for use in most crappy commercial beers, which are likely to be heavily filtered instead.
The man who grew his own forest
Right! I tried to construct a terse example in hurry but apparently missed the mark. Usually loop comes handy when conditions and the way to extract values gets more complicated.
Many thanks for your work, will be putting it to use! Please consider integrating it with https://gym.openai.com/ for easy reinforcement learning tasks.

Some similar efforts (though not with open source engines)

http://download.visinf.tu-darmstadt.de/data/from_games/

https://arxiv.org/abs/1608.01745
I'm not familiar with the situation in Ireland but in Scotland the Celtic / Rangers rivalry has a strong religious element to it.

https://en.wikipedia.org/wiki/Old_Firm
Right now, I'm considering which works best for me. Requirements: App for Android & iPhone plus Web-based app. The most complex part is a Graph with interactions (such as highlighting a specific value). It should feel snappy, although I don't make heavy use of neither gestures nor OS-related features.

Ionic 2 + Angular 2 seem to be the best choice, since I can basically write the app once and release for all three platforms.

React Native has the downside that React and React Native are two different things. Be aware that there is no such thing as React Native for the web. There's something in development right now, but nothing stable.

Truly native: I can't support three platforms as a single developer and I don't feel like outsourcing it.

I'll go with Ionic 2 + Angular 2, although Ionic 2 still has quite a few bugs. For example, the zoom attribute on <ion-scroll> doesn't work – which is critical for my app.

Sure, there are hacks and this reminds me on the
discussion from the other day: https://news.ycombinator.com/item?id=12477190

Yes, it's all very hacky. But there's really no alternative I guess.
Microsoft is now the leading company for open source contributions on GitHub
The types of mistakes a human and a car are prone to making are different. Neither one has to be a superset of the other. For example, cars are probably better at going round corners at a safe speed while humans can easily misjudge and end up skidding. You could make the opposite argument and say only the most malfunctioning self driving car would choose the wrong speed for a corner yet humans make that error all the time, so humans are even worse than the worst self-driving cars.

Another example. If a self driving car is hit by another car that's running a red light while speeding, we might be more forgiving and say "well nobody could have avoided that accident" but actually we'd be being too soft on the self driving car since it has access to more data and faster reaction times and should probably be expected to avoid that type of crash even when a human can't.
I know someone whose camera and microphone were taken over. A window showed on her computer where the person watching her chatted with her and told her things that he only knew because he was watching her. It scared her to death and made her cry.

Beyond blackmail, it is probably close to the psychological equivalent of a stranger just suddenly appearing in your home watching you.

I think that every electronic camera and mic device should have a hard switch/button that physically disables both the camera and mic. Having to use tape or a cover does not keep you from being spied on; it only eliminates the visual spying. The attacker can still listen.
And when I lived in Australia I noticed a bottle of pink champagne (I think it was veuve cliquot rose?) had a notice about fish parts on the side, which I've never seen in the UK. Labelling laws may be different in different places.
Yup, I'd be the Philosopher King in Plato's Republic. First thing I'd do is ban JavaScript programming.
May want to give Sentry a try for error logging: sentry.io/for/angular2

Let us know if there's anything we can be doing better :)
> if I ran on my toes instead of heel strikes I can run now without pain

I can't for the life of me understand how people bear to run landing on heels. The whole ankle system is "designed" to recover as much energy as possible by loading up the Achilles tendon while at the same time saving both the knee and hip joints.
Yup, that's the only thing happening at schools in social terms.
In my experience the untrained people are the ones that gets problems early when they age. If you can't run when you are 50, don't expect to walk without problems when you are 70. If you are a decent runner when you are 60, you have a good chance of being in quite good shape when you are 85.
Google does not index my ng2 site without prerendering.

There will be always limits for search engines on interpreting js.
Hello from sunny Nuremberg. Wish you were here.
I understand that each port has a circuit-breaker which can be reset (by unplugging everything and powering it off and on again, or something like that).

EDIT: Apologies, it looks like they used to use fuses before they switched to resettable circuit breakers. Here's a Reddit post where somebody shares an (excellent IMHO) customer service email from Anker on the issue:
https://m.reddit.com/r/perktv/comments/2fd00z/anker_dead_por...
I don't think this fits the 'Show HN' category. "Show HN is a way to share something that you've made on Hacker News." (https://news.ycombinator.com/showhn.html)
As always, releavant: https://xkcd.com/979/
The FBI isn't telling you this so you could protect yourself from the government. They are telling you this because they know how easy it is for someone else to take control of the camera and make your life hard. So it is a common sense step for you to take if you're concerbed about security.

You took a pretty huge jump from that to the FBI listening to your mic.
But how can you be sure the problem is not in specific element implementation? DBMonster tests show that performance in rendering is ok.
FWIW - I develop on firefox with shady DOM and then test in full shadow DOM in chromium - performance was very good for us in both firefox and IE (at least for the things we used).
If you are hacked, the camera light won't tell you. The camera light also won't protect your microphone or your personal data.
There was lots of new recently about Guinness moving away from isinglass so that should be vegan friendly soon too!

In wine they also use egg whites to filter it, my dad get some kind of allergic reaction from these too so we stick to vegan wines in our house.
Companies with this behaviour regarding my work tools lower my personal life quality.

It might be Software Business 101 now, but when enough executives note that it makes you hated after a number of years, the course content might change...

(For example, what makes me vary about this case is: I expect the Linux subsystem under Windows to start working worse and worse, sometime in the future.)
Disclaimer: I'm just talking from a REST developer perspective.

The nice thing of REST calls in the current form is that they are that - just calls. With proper monitoring you could just see which ones do you get more or less and with these or those parameters. They can be optimized as best possible, but separately. You are right, it needs more analytics to figure out a series of calls (based on some token?) and maybe bundle them up, introducing a new endpoint (thus not breaking old clients).

But yet again, that is that one "query". With GraphQL it could be anything, and that's what bugs me. I find it challenging, in a good way.

Another thing what I'm also not sure about are the queries themselves, or rather, the number of different ways you can write a query. Multiple users can request the same data, or almost same, with queries written in different ways. Backend developers should then guarantee that those queries will be executed in a similar way, with predictable performance. I guess in a similar way SQL query optimization does. I had the "joy" of working with a database that had hugely different performance just with trivial changes in the query (it was not relational, actually it is discontinued now, thankfully). It was a huge PITA. I wouldn't like to serve an API like that.
A brilliant point and a salient quote. Why must we continue to live, collectively, with our heads in the sand?
> Why would any non-retarded person need any help getting recursion? Recursion is not hard.

As I think was implicit in rosstex (https://news.ycombinator.com/item?id=12504541 )'s comment, this attitude is worthless. Evidently recursion is not hard for you, but there are people who find it hard. If someone else has found an educational approach that works for at least one such person, then what is the use of sneering at it, without even offering anything constructive in return?

A teacher who said such a thing would not only not help his or her students this time, but ensure that they'd never look for help in the future.
Seems I didn't pick the best example :) it has actually great reviews!
>>I prefer not to have to bother removing stickers every time I want to do a Skype call.

I solve that by never talking to anyone ;)
Depends.

Is it another strike on a Doctors Without Borders hospital? How about a school or a wedding?

What about some jarheads in a chopper gunning down unarmed civilians?
Here's a linux-running laptop that has 2 hardware switches:

https://puri.sm/librem-13
The issue is the camera being used to violate your privacy. A hardware switch that lets you physically disable the camera, or a a lens cover that stops it seeing anything, stops the possibility of that happening completely. You'd obviously need a second system in order to stop an attacker using your microphone.

All a light does is inform you that the camera is active. That is not a defence. It doesn't tell you that you've been hacked because an attacker might not access the camera (a mic and data are still accessible), and the camera light might activate if you haven't been hacked (eg any piece of software that you're using might result in the camera activating regardless of whether you want it to or not) which would lead to many false positives and as a consequence people would ignore the light.

A light is only information, and any amount of information won't stop an attack. Information is only available after you've been attacked, so you haven't stopped or mitigated the problem. A hardware solution that stops people accessing the camera mitigates the result of an attack before it happens. That's why it's much better. You just have to remember that blocking the camera only stops attacks that use the camera. You still need to be diligent about other attack surfaces.
A simple web application boilerplate using Common Lisp
But the light won't tell you because of a flawed design. It should be trivial to design a webcam LED which can not be turned off while the camera is being used.
Beyond getting things done, I read recently that older, experienced developers shape culture. It is really true, and I didn't realize it until recently. You have much more obligation when you are older to act in the way that you want your team to act and approve what you think should be approved. You are usually a mentor and role model whether you want to be and think you are or not, and you can't just work hard and that rub off on your team; you need to show them how to help themselves rather than do their work for them, otherwise you're setting yourself up for problems.
The big fat lie
Without Chinese, though, you're going to have trouble.
When we used this, we used the first directory to be the env, so it looked like.

/prod/...
/stage/...
/dev/...
/feature-xyz/...

It's not elegant, but it made for really simple scripts that let us prepend /${env} to every key to access what we needed.

And of course, each service per env had different access tokens so apps in the stage env couldn't read prod keys.
"Ask somebody to list the classic ingredients of beer and the chances are they will come back with: hops, malt, barley and water, with a bit of yeast thrown in for good measure."

It seems strange listing both "malt" and "barley". Malt is just partially sprouted barley (or occasionally other grains). In most beers all the barley is malted. Some beers do contain both malted and unmalted barley, for example Guinness, but unmalted barley can make beer cloudy so it's usually only used in dark beers.
I thought people do programming because they "can't do math"?
I haven't used Angular yet. From it's description it seems to be geared for making single page apps. Or a app with a few pages because it's good a binding data to an interface.

Is this accurate? What is a good use case for Angular?
I'm just writing a first React app, and read beforehand that it was going to be difficult to choose which libraries to use, and to get them to work together, but I haven't found that to be much of an issue in practice.

create-react-app set up all the build tooling, for a router the clear recommendation is react router, and for a flux implementation the clear recommendation is Redux. It feels like there's a well defined path for beginners. Over time you'll have to figure out how everything works, as is always the case, but you can learn more as and when it's necessary.

The bumps were more whether to use ES5 or ES6 (but then I found an official position in favour of ES6), and whether or not you need to use flux (although that was really just learning how flux worked, which wasn't wasted time).

The only uncertainty I have now is whether TypeScript will be necessary/useful in future, and if so how to integrate it.
WW3 RUSSIA USES ARK OF GABRIAL TO COMBAT EVIL VIDEO AVAILABLE,
Edge Blocker
30% cut from your revenue.
So I have never used Angular before but work with Vue. Looking at the tutorial, why is there the syntax of [(ngModel)] (equivalent would be v-model for me) and ngFor= (v-for)? Why are they different? It looks kind of unnecessary to me. I would really appreciate if someone explained it.
read recently that older, experienced developers shape culture

Do you really believe this is true? Do you think general industry culture reflects experience and maturity? No, it is the exact opposite!
I'm 48 and been a programmer since I was at school. I do contracting/consulting work so regularly change jobs, and I personally feel I have encountered surprisingly little ageism. I suppose a lot of it comes down to your attitude and enthusiasm.

I think the following generally helps:-

* Keep your CV/resume impressive. Nothing says "unemployable" like 10 years running an outdated DB system at a boring company;

* Change job or interview frequently;

* Don't try to adopt all the latest fads (impossible, anyway) - instead, play to your strengths and focus on your general area of expertise, and every few years learn a new relevant language or system in depth;

* Keep those old-school skills sharp! You can always impress a 21-year-old hacker in a hoodie if your command line / regex / disassembly / wireshark (or tcpdump!) skills are better than his.
Purism has a laptop with 2 physical switches, and it runs linux too.

https://puri.sm/librem-13
> "Do you ever use the headphone port on your MacBook Pro with Retina display?"

Interesting - I thought they would know that anyway, as OS X should realize when I plug in a headphone.

If Apple's vision is a world without wires, I'm all for it given the mess of wires on my desk.
Or shoes with shock absorption are more prevalent now