skysight-inc/HackerNews huggingface dataset:
I have to disagree with some of these principles. The EU is in many ways primarily about free trade - and one of the tools used to make that effective is robust regulation. It's a very capitalist organisation, but with the belief that markets are most effective when subject to regulation!

I don't think for a second we will see streaming providers pull out of the EU. They want market access to sell their products, ultimately, and regulation isn't going to change that.
Functions are idiomatic in all languages. Personally, I'd rather APIs mostly stick to simple functions, and let the application developer build idioms around them if they like.

Idiomatic APIs can be a real PITA, especially when you call them from a different language. KISS should reign supreme. (With bad 80's special effects in a made for TV movie filmed at a carnival.) If you leave it up to the client developer to build the idiomatic facade/interface, then the API is simpler, the code is more properly idiomatic in the end, and everyone is happier.
Agreed--the culture always strikes me as a weird one and, having just had to dip back into Go for a project recently, your observations ring really true. I feel like there is a strong sense of epistemic closure around Go advocates (as separate from the Go team, I've had interesting and good conversations with a couple) that lead to contortions like "magical shifts of thinking" rather than an acceptance of problems and a desire to fix them. The advantages of a tool that is unmistakably disadvantaged in some areas (like Go's not-great ecosystem and relatively weak expressiveness compared to many of its competitors) may outweigh those disadvantages, but the amount of aggressive you-don't-need-thatting and the insistence that the emperor has the finest clothes is...weird.
Well p-zombies are a hypothetical concept which is usually considered indistinguishable by definition. But yes, it's interesting to consider a degenerate kind of p-zombie which can be detected by its failure to comprehend the concept of qualia.

However, I feel like if such p-zombies did exist, there would be far more significant differences, so I feel like some people just having intellectual difficulty with the idea is more likely.
Great sentiments. I don't see security being discussed nearly enough in terms of risk and ROI. I usually see it discussed only in absolute terms, i.e. unless a solution fits the "CIA" model to a T, then it's unacceptable.

I think that we should layer the CIA triad on top of the Time-Cost-Quality triad when implementing application security.
>Often times, your system doesn't need to be Fort Knox: it just needs to be a more difficult target than the other guy's system.

This is, of course, until someone actually wants to hack you.

>but the best defense against zero-day attacks is to make your system hard to probe for odd behaviors

This really isn't in line with the previous statement I quoted, rather unlikely that you'll get targeted with zero-day attacks unless someone is actually trying to hack you.
Yes, I would expect a similar 'limited support' by Visual Studio proper (may-be by simple regexp matching). I think Notepad++'s implementation is not very smart, but it does the basic job of syntax highlighting, function name auto-completion, arguments hinting etc. You should need to write a detailed extension using Visual Studio's Format Specifiers and Classifiers etc. only when you need a deeper integration IMO.
Thanks to ncd for clarifying, here are my own comments too. When you write

f: Int -> Int -> Int
f a b = a + b

the compiler (at least in Haskell) creates f as a function that takes a single argument, a, and outputs a function. That outputted function takes a single argument, b and outputs an Int.

When you apply the function f:

f 5 7

what's really happening here is that f is first applied to 5. This creates a new function, call it g, taking in a single integer and outputting that integer plus 5. Then, this new function is applied to 7. (The compiler may optimize a lot of this away, but that is how you should think of what's happening in my opinion.)

Hope that helps!
A couple weeks ago I got a "please come back"-type email from Duolingo with an identical image, but a more mundane message. Subject of the email is "We miss you!"

https://imgur.com/FOJubnI
Obesity rising in American women
Generally you build the new list using the tail of the old list (which is unchanged), your inserted value, and each of the values in front inserted onto that. So, immutability is preserved. Any existing references will not see their values changed. And the new references will share some memory with the old ones (how much depends on where in the list the value was inserted).

You can learn more in Okasaki's great book: http://www.amazon.com/Purely-Functional-Structures-Chris-Oka...
A proper type is one that has kind `Type` (or `*` in Haskell).
I don't really buy that. The last Mission Impossible got a 93% on RT. Civil War got a 90%. Genre movies that aren't trying to be more than simple entertainment tend to do well on RT if they're good.

It's more like Warcraft is being punished for being "a Battlefield Earth for the 21st century" according to the article.
I may be misreading this, but isn't that an example of lists being immutable rather than pervasive mutability?
Exactly :) Cool! Although it seems weird to me to have the revision in the middle of the URL.
I appreciate that they took the time to set up two different labs to differentiate AI from ML.

To my mind, the former is largely (though not exclusively) based on logical reasoning (as in formal logic) and the latter is largely (though not exclusively) based on statistical reasoning.

I hope one of these articles will take some time to bring us up to date on the recent developments in contrast to the other.
I love the Forbes.com one that said I should disable ad-block for a better experience - an experience they just made worse by preventing me from reading whatever half-assed article their editor approved.
How about when that operation is at the core of your business logic and happens multiple time a day? How about when it's a blocking operation?

There are plenty of cases where your rule doesn't hold true, and I don't think that they're that uncommon.

Plus having many machines has the advantage of a higher granularity of control over workload and balancing.
There are quite a lot of guides out there on sites like hackforums I reckon. The search keywords are "aircrack-ng WPA".

In short terms, you need to sniff the 4-way handshake between a legitimate client and the AP it connects to. This can sometimes be forced by spoofing a "deauth" (disconnect) packet from the client, but requires support in the chipset for your wlan-card. (Injection and monitor mode).

Once you have the handshake, your options are either aircrack-ng, hashcat or other password cracking tools. Some of these have a crazy amount of options and possibilities for cracking, and getting to know them can increase your success rate by a lot.

However, the easiest way these days is to exploit WPS in the AP. Look up Reaver and Pixiewps.
Use a separated or virtualized clone in a honeypot though. It is not good to risk your main servers and security for this.
> No time to think. I find I solve solutions by thinking about them, and I can imagine mob rule would lend itself to less thinking and more doing (fastest solution that sounds half-right gets done first). Similarly…

I could imagine maybe this one could go either way, depending on the loudest personality type. Every team has a range of skill levels and styles, so there are inevitably people who skew towards more time writing code and less time thinking (as well as the opposite. Some middle ground is probably optimal).

A lot of these people might just never have really thought about and might not know any other way, and if the majority and/or loudest voice of the mob is more conservative about thinking through things before starting to code, it'll rub off on everyone else.

That said I do agree with your sentiment to some extent, I find I personally do better thinking on my own than in a group. Part of it is needing to go off in a ton of different directions and then consolidate the ideas afterwards, and in a group setting there's a pressure to talk through things aloud which dramatically slows this ability to branch out.
> The obvious keyword here being reported.

EDIT: And that is why I gave an example of Saudi Arabia having lesser "reported" cases than India or USA.

That's precisely why there was a revolution of sorts in India regarding rape and reporting of cases. Why do you think the Indian people took to streets and stormed into one of the most well guarded places in the World: the President's House (Rashtrapathi Bhavan. See this video: https://www.youtube.com/watch?v=tWVGWH1e5xQ) if not for bringing a change in the society? How many countries do you see this happen where the general public takes to the streets to demand equality for women and their rights?

The problem is that people outside India chose to focus more on the rape culture itself rather than the response to it by the Indian public and that pains me as an Indian.
AMP always was such an obvious way to end run adblockers. How are carpet ads less annoying than a popup? On mobile I dread accidentally tapping almost anything so this is a troubling development.
Curious if the site works in Safari from S3. Which is a round about way of wondering if maybe it's a broken deployment or build rather than a hosting issue. That might explain, but perhaps not excuse, the lack of responsiveness.
Susquehanna International Group, LLP (aka SIG)| Philadelphia, PA| Full-Time

At SIG, we build some of the most powerful trading systems in finance. Our developers work on low-latency applications that directly impact trading. We focus on performance and optimization, while bringing our ideas into production quickly. We look for the best technology to build optimal solutions; that can include C++11 (clang, gcc) C++14, Linux, python, and high performance data structures, along with new technologies you investigate.

You can apply by submitting a resume to zanaya (dot) wagner @ sig (dot) com

OR
visiting our career page at https://careers.sig.com/
> What's needed is a movie based on a video game that's truly good even if you don't understand the source material.

There is one. Final Fantasy: The Spirits Within[1]. IMHO, it's the best video game-based movie so far, and arguably the only actually good one.

[1]http://www.imdb.com/title/tt0173840/?ref_=nv_sr_1
I guess this comes back full circle to the original point: you should think of everything being left-associative here, so by default the above is interpreted as

f: Int -> (Int -> Int)
...
(f 5) 7
What's so special about the opposite? It can easily be achieved.

10 users start 10 forms each, but leave them incomplete.

100 other users then finish one each of those forms.

So you have 10 users starting 100 forms and 100 users finishing said 100 forms, thus "more users finishing forms than users starting them".
They are not necessarily incompatible. Historically, Lisp pairs are mutable, but that doesn't have to be the case. See Clojure, it is Lisp-like, with most data structures immutable.

Your example is not possible in an immutable list. Also note that this reassigning of variables is a red flag even in standard Lisps. In fact, variables are not that common. The most common way of referencing something for later usage is the let form, which already creates new "variables" anyway. Just eliminate ways to reassign them (setf?).

What you would do is to create a new list containing the elements you want. You may or may not want to give it a new name afterwards. Most likely, you'll use as it is and pass on to some other function.

I can't comment on this particular implementation. But it does not necessarily have to be a bottleneck. In fact, by having immutable data structures, that means that you can share data like crazy, without fear of anything being replaced where it should not. All sorts of optimizations are enabled that wouldn't be possible otherwise. If this implementation uses them, it's another matter entirely. No idea.
I didn't mean to gloss over the go routine problems. You're absolutely correct, when there exist tools like the race detector it makes it evident that you can write incorrect concurrent programs. Becoming proficient at using the concurrency patterns in Go takes time but it is an advanced topic.

Thanks for writing up these common mistakes.
Yes. Please don't insinuate that others haven't read the article. It might be worth reading the HN guidelines here: https://news.ycombinator.com/newsguidelines.html

Also, from the article, please note paragraphs like:

"I configured my SSH daemon to listen on port 24 in addition to its regular port of 22 so I could see the difference in attempts to connect to each (the connections are usually password guessing attempts). My expected result is far fewer attempts to access SSH on port 24 than port 22, which I equate to less risk to my, or any, SSH daemon."

I was pointing out that this is silly. Those "attempts to connect" are totally meaningless, as I explained.
7 podcasts for big data, ai and vr
A thought experiment: Deface, a decentralized Facebook
It does happen. I am from a third world country and one year my friend worked on the databases for counting election results. In certain regions where the ruling party rigged the elections, there were more votes (for preferred candidates) than registered voters!

The internal database checks would not allow this and the minister in charge of elections called him in the middle of the night to complain that the system was not working :)
React CSS Modules does not allow you to use props or state to style your component. Say you wanted to use a button <Button color="#aeee00" /> you could map the color prop directly to CSS.
From the article: "Operators of Embraer Phenom 300 business jets are being urged to avoid the area entirely. “Due to GPS Interference impacts potentially affecting Embraer 300 aircraft flight stability controls, FAA recommends EMB Phenom pilots avoid the … testing area and closely monitor flight control systems,” the Notam reads."

That is beyond scary; how anyone can defend having critical aircraft control systems rely on an input which may be turned off at will is beyond me.

Let us at least hope the system fails gracefully and notifies the pilot that something odd just happened and you will have to do your own flying from this point on, rather than just going titsup and be done with it.
>If there's a remote-root buffer overflow for sshd that does not involve login at all, doesn't hiding the sshd add quite a bit of value ?

Then the attacker can just compromise every single sshd on the internet and have enough bandwidth to bruteforce most port knocking setups.
How can we design experiences that increase customer happiness?
I bet the author didn't count the account of time of downloading data to a single box. Scalability, sometimes, is not a choice.
How Did Consciousness Evolve?
We behave a lot more badly than we remember
> long lists of countries (most of which will never produce a paying customer for that site)

On the other hand, it's extremely frustrating to arrive to this step, fill in all your details, and there, right at the end, open the country list and... it's just a handful of large English-speaking countries including one that neighbours your own country, but not yours.

What would you suggest in order not to have an annoying long list of countries, but still allowing everyone to order even if you did not expect customers from Luxembourg or San Marino?
I don't think Swift is particularly mature in this area yet, and it's concurrency depends upon Grand Central Dispatch. Go on the other hand is rather mature, especially for its age.

Other than that, it really depends on what the server is for, but in general I would say Go is probably a better choice.

If you're interested in something similar to Swift for the server, I think Kotlin w/ Spring Boot would probably be a safer bet at this point.
Or a sneaky bit of packet sniffing on a close network.
Honest answer: I think it is hard to predict where the next ML/AI breakthrough will come from because almost all the algorithms are hard to predict and non-linear.

So they try one method, small improvement, try another, small improvement, try a third and suddenly they have a breakthrough in some field.

Trouble is that right now you don't know what technique will work in what field. That means that it could be in Go, or learning what to eat, or driving cars, or cancer diagnosis etc.

So wherever the next breakthroughs happen to be is probably where one of the "battles for AI" will be waged.

The one exception to this rule is an AI that can create other AI. If that happens, the war for AI is over. Whether it has been lost or won depends on your POV.
structural sharing is what clojure does. But you can have immutable data structures in old lisps if you only use cons, car and cdr, avoiding set-car and set-cdr.
actually thats what the Java G1GC (which will be the default in Java 9) does aswell.

However I would still favor java instead of go
That's odd. I think the absence of generics in Go is a reasonable answer for a JVM developer to justify they are not interested. No need to go petty.
Do dogs experience pain? Probably most would say yes, since dogs have been bred to convey their emotions better to humans (though you still have to look at their tail as much as their face).

How about pigs? Pigs are smarter than dogs on many levels, but we're largely okay with slaughtering them for food and not dogs. They haven't been bred to look cute.

Do bugs? Bugs are much simpler than mammals, but they also exhibit aversion to pain.

Have you squashed a bug before?

What I'm getting at is this: we have more empathy for those who look like us. This applies even among humans if you look at results from IATs.
If you haven't seen stackoverflows server architecture posts you'd probably enjoy them: https://nickcraver.com/blog/2016/02/17/stack-overflow-the-ar...

I still think containers are great, and I really like the abstractions kubernetes provides, but if I ever had enough traffic to worry about scaling, I envision running a small cluster of very powerful computers rather than 100s of weak ones.
From what I can tell with reasonable password length SHA512 still seems relatively secure. I'm not saying there is any reason you should use it - but if it does 8624.7Mh/s and your password is JUST numbers, lowercase and uppercase English letters and it's only 10 characters it would still take it (26+26+10)^10 / 8624.7Mh/s ~= 83929936 seconds which is still about 3 years for a single hash.

If it's 12 characters - then you're up to 10,000 years.
Why is Firefox adding CDM support at all? Do they not care about the security and well-being of their users? Or do they think that somehow making ideological compromises will further their proclaimed goals of respecting and helping users of the Web?

The whole point of CDMs is to prevent users from doing things (e.g. taking screenshots or clips of videos for fair use, or backing them up, or pirating wholesale). You can't claim that this is empowering users.

Any effective CDM implementation requires a media company having final control over the user's computer (or a nested computer as provided by TrustZone or SGX). This is not compatible with user freedom or security.

This seems like the opposite of what Mozilla is supposed to be working for. If Mozilla can't exist without market share, and they can only have market share by giving up on user freedom, then simple modus ponens tells us that Mozilla can't exist. If this is the case, those interested in continuing to pursue the goals of empowering typical computer users should look into some form of praxis more effective than developing a Web browser.
Swift is most likely not ready for this until 3.0/SPM release, but once it'll be very competitive. Swift generics are very good and Go's are not. There's no language-level concurrency, but there's GCD and https://github.com/VeniceX/Venice
If you're flying high enough before going over the cliff, you'd keep hovering... it's no different than a helicopter. These jets can definitely fly that high.

That said, if you're not flying high enough... if it's just the jet pushing air against the ground... you will go splat.
I mean you make the subject too broad. You can see this file in their repo:

https://github.com/mbakeranalecta/sam/blob/7f9eece97b30a2a5f...

It is like YAML+Markdown+(Custom Schema for Semantics). They are also considering embedding LaTeX document, not replacing LaTeX. "Lightweight" as they said.
Needs some work.

On my PC, it says “There’s nothing to record. Play some more and try again”.

NVidia ShadowPlay records good here.
GPS uses a certain frequency. Use the high side band for prod, the low side band for staging. Simple :)
Not for the whole internet, no.
Ultimately it depends on what your concerns are, and how you want to separate them.

I'm not just being silly either. Separation of technologies (e.g. HTML/CSS/JS) is just one of many ways of splitting things up. The component paradigm is essentially a fractal version of separating by feature. Ultimately it's an architectural choice and as such any best practices should be strictly scoped to the problems they're solving.

The reason why many of us in React-land are looking to bring everything related to a single component into one file, is maintainability and strict encapsulation. Some of this is to do with developer-experience (DX), i.e. adopt patterns that make our lives easier and ultimately minimise hard-to-fix bugs. But we're also trying to adopt patterns that benefit the user (i'll be the first to admit we're not there yet). To that end, a component architecture also makes it easier to let build tools automatically take care of the nasty problem of making sure users only download exactly what they need for what they've asked to do.
I use Go exclusively for command-line applications, previously using Perl (ducks). It's a fairly simple language, you can pick it up quickly, and gofmt/godoc/etc are useful utilities in reducing friction.
Interesting that the interference occurs 50' Above Ground Level, not sea level. I can't even imagine what technology that is that can somehow jam along the contours of the earth.
Five mistakes beginners make when working with databases Craig Kerstiens
Telenet, not telnet. There is a HUGE difference.
Indeed. Where is Haskell? OCaml? Rust? Scala? C#?
> Come to think of it, I don't think I even own a compass.

If you have an iPhone or (nearly any) Android phone, you have a compass.
You know, there's way less hacky solutions to this problem than SSH logs. Set up iptables to log scan attempts specifically targeting your server.
If it was a speed thing, the FBI could show "good faith" [1] and say that a judge should verify the request post-facto and (in)validate it.

But of course it doesn't do that, because the FBI doesn't operate in "good faith", and because it would prefer as little oversight as possible - which is what this request is really about anyway: the removal of judicial oversight, even beyond its rapidly growing abuse of NSLs [2].

[1] - https://www.techdirt.com/articles/20160605/09111034626/appea...

[2] - https://blogs.microsoft.com/on-the-issues/2016/04/14/keeping...
CNBC 2016 Disruptor List
IBM Launches Development Environment for Apache Spark – DEVOPSdigest
If you have a very good faraday cage / RF test chamber (such as a third party certification lab that does paperwork for FCC compliance has) you can test GPS jammers and their resultant effects on your gear...
Idle question: is 50 GB/s a reasonable throughput to expect for such a monster? DDR4 has a peak transfer rate of ~12.8-19.2 GB/s per stick (per https://en.wikipedia.org/wiki/DDR4_SDRAM), so I'd expect quite a bit more bandwidth for predictable accesses - are you using some useful rule-of-thumb, or just unduly pessimistic? ;-)