skysight-inc/HackerNews huggingface dataset:
> You can't just pull numbers out of thin air to make your point.

> Experience has shown us that antivirus software does not do what it says on the tin.

Whose experience?

I built WildFire at Palo Alto Networks[1]. We analyzed a few tens of millions of new potential threats daily, including the VirusTotal firehose.

As part of our internal efficacy and competitive monitoring, we took the top 5 enterprise antivirus products and ran everything coming into WildFire through them.

The delta between ground truth and what the antivirus engines caught using only static scanning and emulation was about a third, i.e. better than the pessimistic estimate of half I threw out. (In the real world, antivirus actually does better because malware is easier to catch after it starts running.)

The danger of antivirus, on the other hand, is wildly overstated in this thread. A small fraction of attacks use vulnerabilities to begin with, and in the scheme of things, very few antivirus vulnerabilities have been found. 1% is just a nice, round number chosen for illustrative purposes; it's orders of magnitude greater than the real risk.

Now, this will surprise exactly no one who works in security, since most new malware is a minor variant of existing malware and exploits are relatively uncommon, but for the less experienced folks reading these comments, I implore you: Don't listen to people who say antivirus is useless or, worse, makes you less secure.

It isn't. It doesn't. They're wrong.

1. It's the biggest ATP product out there, took the crown from FireEye c. 2015. https://www.paloaltonetworks.com/products/secure-the-network...
1. Too much technology. Without their gadgets American soldiers would be helpless.

2. Too much money. Warships costing billions, war plans costing $100m. A ship is sunk? Let's just throw more money at the Navy.

3. A superiority complex. "We're the best, biggest, strongest, richest, and morally superior to all other nations. We can't possibly be wrong."
This article sounds woefully out of touch with the realities of the modern web.

So many of the arguments surrounding Damore talk as if this is in a vacuum, when frankly, it isn't. Much of the message it carried(and did little to discourage) came off as insulting to a group of people who commonly spend every day harassed just for what they are, anytime they have gone online.

The article talks a lot about the fear of an online mob shaming people for doing something, yet completely ignores that many of those in said mob are harassed daily based on their mere existence, and often their "shaming" comes from a place of just not wanting to be hurt again.

Is it necessarily the most effective means of accomplishing this? Certainly not, and I'm not about to claim to support what it becomes, but to call question to that and speak from such a "Nice problem to have" place to people suffering a much worse version of what you're talking about reeks of "Let them eat cake".
The longer you keep your branch around "to be battle tested and swapped across teams or modules", the more attention and time you have to pay keeping it updated. Cost increases as your branch "gets battle tested". If your company can afford that, it's fine.

This applies to pretty much any version control where you can create a remote branch.
Pick one value for x, now you have a single variable polynomial. Verify that it is equal with above mentioned technique.

Pick another value for x, do the same.

Pick a third...

I didn't prove this works, but I think it should. It is however exponential in the number of variables which may be seen as a downside.

Edit:

This can be proven by induction. Let V = (y, z, ...). Then the polynomial can be expressed as

p = (x-x2)(x-x3)f(V) + (x-x1)(x-3)g(V) + (x-x1)(x-x2)h(V), where x1, x2, x3 are the values we test for x. By inductive hypothesis we can prove each of f, g and h to be zero by testing. But if those are all zero then p is zero.
> while it was created to be used like in Linux kernel development.
[ ... ]

> * You have one online repository for every project (or even the entire code in case of a monorepo).

> * Your repository/repositories have one branch that everyone branch from and develop their changes against. (Release branches don’t count.)

The kernel has one main repo that integrates things from the others, the "torvalds/linux.git":

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...

This keeps Linux together as One Thing. This is Linux's CVSROOT, so to speek.

> You have one process that everyone have to follow to review the code; one review system and one place that runs all your tests.

No kidding; also: one payroll from which everyone gets paid and one product that customers understand: not seven versions of the product based on whose cubicle it came from. See the trend?
A linked list is a binary tree, and using git in a centralized fashion is a legitimate use of git.

Not everyone wants a distributed version control system, and not every team is ready for a more complicated process.
This sort of attitude is never going to win over people that you are talking about. I hate to bring politics into things, but it's like calling all Trump supporters hopeless and backwards. Yeah maybe they are, but they're going to react to that by never listening to anything you say again, so even though it's true, it's not helpful.

The 'state of the art' is increasing, over-the-top complexity to a truly ridiculous level. Go programmers don't want to open up the documentation for a library and see this:

http://i.imgur.com/ALlbPRa.png

or look at the language reference and see this:

http://en.cppreference.com/w/cpp/language/constraints

and I don't blame them.
You might find this article about a blogger in South Korea interesting. The blogger was posting financial analysis and opinion, which was apparently causing disruptions in the market. No one would have known who he was if not for the South Korean system of mandatory Internet user registration. I doubt we will see this in America, but it's interesting to consider.

https://www.wired.com/2009/10/mf_minerva/
See my reply to the other comment. In fact antivirus does better than that. I was being knowingly pessimistic.
It's fairly common (at least in Europe) for people to have two sets of wheels, on with summer tires and one with winter tires.
These are nice ideas and I must confess that I never douted the way we use Git before reading the article. However, in the companies I worked for (and I think it applies to a lot of companies), the time constraints were too tight to allow more than form-based reviews. I do feel these reviews are sub-optimal and should be replaced, but checking out the repo and testing yourself is a very slow process that we mostly can't afford.
Most of the time the "go fast, break things" motus is applied and it's fine if you are not building critical applications like a kernel...
Its about time for facebook to buy medium and roll it into some sort of longer form content portion of their offering.

LinkedIn/Microsoft acquiring them would also be interesting since writing on LI is absolutely horrible.

Seems medium is lost product wise. It is getting progressively worse and the new "clap" feature is hilariously bad.
The difference is that in Go, it is unidiomatic to share mutable state across threads, while in C/C++/Java it's not.
The first example that comes to my mind of this manifesting over the internet would be the Korean woman harassed relentlessly over failing to pick up her dog's poop on a subway train in 2005. It was one of the major incidents that drove the country to implement a Real Name policy for Korean website operators.

http://www.washingtonpost.com/wp-dyn/content/article/2005/07...
What's the difference between Flowspace ( AWS for warehousing) and already existing Flexe ?
The article you linked to indicates that places with good weather and good roads could see the technology in 3 years. For all places in all conditions it may take 30 years: "this technology is almost certainly going to come out incrementally. We imagine we are going to find places where the weather is good, where the roads are easy to drive — the technology might come there first. And then once we have confidence with that, we will move to more challenging locations."
My degree is in mechanical engineering, but I work in software development. Software is eating the world for good reasons.

How many gates would it take to have a pure hardware decoder for ATSC?

A microcontroller-based dishwasher timer is much cheaper to design and manufacture, and wears out more slowly under many conditions, than a mechanical timer.

I wouldn't be surprised if a micontroller could wring another 1% efficiency out of your refrigerator vs. an analog or mechanical controller.

A microcontroller inside the speaker could perform some digital signal processing to account for the speaker's frequency response, so that the receiver doesn't have to know any details about the speakers.

Now, I do see little reason to make any of the non-TV appliances you mention reliant upon network connectivity or anything outside themselves apart from power and physical consumables (soap, water, etc.). Ideally, the television itself would be split into a screen with only HDMI in, and a small box or dongle that performs ATSC reception, decoding, and any smart TV functionality. The television itself should be something like a Chromecast.
Okay, that's seriously awesome. Nice job!
Super interesting! Totally worth a post in itself IMHO.
> Things like Google Glass, which were expensive consumer products people shelled a lot of money for.

Glass was never a consumer product; Explorer Edition was fairly clearly marketed to people developing apps or investigating potential.
Coming back to this before I finally sleep.

I missed your point about selector matching and style application. I think that is ultimately where my hip shot missed on this. (I have never had to reserve the right to be wrong. Just to assume it. :)

I still feel there is some danger there, but I think that is just clinging to an initial shot. I am curious why rust's help was needed to get this, now. A basic thread pool seems like it would have been somewhat easy to wire up in any language.
> The way code review is done: by looking on an output of diff command, pretty-printed in a web-browser, and pointing out obvious mistakes is very inefficient and fundamentally insufficient

> open in IDE/text editor of their choice with or along diff viewer, jump around the new code, run tests and even write some new ones, toy with it

This doesn't scale. I know team leads in large projects where reviewing
external contributions is their main responsibility; this style would be impossible.

Instead, I think the human, diff based approach with CI running against the reviewed code is enough. A reviewer going over the tests which are shown to be passing should be sufficient after the usual diff read-through.
A team within Titan investigated the possibility of using spherical wheels — round like a globe — instead of the traditional, round ones, because spherical wheels could allow the car better lateral movement.”

Somebody liked the Audi RSQ from Minority Report.[1]

[1] https://en.wikipedia.org/wiki/Audi_RSQ
We need a git repo holding the production version.

This is also where the continuous integration tests usually take place.

What is a good point of the OP is that people may not be sharing and testing code enough before pushing to the reference repo.
> Whose experience?

Off the top of my head, users of Bitdefender.

You're right of course, my point is that without some evidence you're just making up numbers to prove your point and any jerk with a keyboard (like say, me) can do the same thing. Thanks for providing some background to those numbers.
I'm sorry, but I don't think you're arguing in good faith here. "Per capita" means "per head", i. e. per person. That means that any population growth due to immigration is already factored in.

If you click on the little question mark, you'll also learn that inflation is also factored in already:

"Aggregates are based on constant 2010 U.S. dollars."
Yeah, the items on her list aren't that unpopular. Your item isn't on her list, or anything like it. Even an article listing unpopular opinions isn't going to dare list actually unpopular opinions.
Refreshing to see narrative discussed as a tool to get a good story out, and to help an audience, rather than as a tool to bend an audience to a particular view.
I remember visiting my grandmother many years ago in an assisted care facility in Kyoto for people with dementia/Alzheimer's and was struck by how hard the nurses work was. I shudder and am in awe even recalling it today.

I agree with everything you've said regarding cultural assimilation when you can't speak the language. If you're a knowledge worth in a major city, then you can get by since people respect you and your peers can speak some level of Japanese. But as unskilled labor life would be very difficult.
Are most of these companies using bootstrap as a JS template? This look feels very familiar.
The js landscape changes really fast, they could probably never keep up.
And engineers who can recognize every possible failure and make the car react to them.

There are two things where human beings far outpace AI in competence. The first is the ability to recognize when inputs just simply don't make sense and thus the intended algorithm is going to return garbage results. A related, but important issue (particularly if you talk about networking cars together) is being able to recognize malicious inputs.

The second issue is that humans are good at higher-order planning. An example as it relates to driving is what we do when we can't tell the state of the traffic light (direct sunlight, say). Humans naturally look for ways to indirectly infer the state: the status of the traffic light in the cross direction, the current disposition of cars around the intersection.

Autonomous cars will only be better at handling these situations if the engineers are aware that these situations need to be handled and take measures to make the cars aware of them. And history suggests that is sufficiently unlikely to happen to make me fearful of the future.
This part of the etiquette is obviously not uniformly respected. HN is still better at this than sites like reddit, but something tells me it's against human nature to upvote things we don't agree with - no matter how relevant they are.
Why are you patting yourself on the back for getting a nazi [sic] fired.

The fact this is consider acceptable is the whole problem.

We should not be using cop outs of 'where the mob gets it wrong'.

The only reason you should get someone fired is they are bad at their job and they have been given a chance to improve.
We use SVG diagrams as the basis of numerous displays in our system. From basic navigation controls (we draw a 'curated' subset of a complex hierarchy) to some relatively static dashboards. We often want to enrich those diagrams to add basic interactivity (do something when particular section is clicked, modify the style of elements based upon an external property etc). This job s made far simpler if we can add additional data to the nodes in the diagram itself. Visio sort of supports it through custom properties but they are clunky to use and parse.
Get Sheet Done – using Google Spreadsheets as your data back end
I'm young and I'm already burnt out on tech work. Could I get some life advice?
I have used those 2 frameworks in the past. Could you point me to the documentation about ViewModel in Vue.js I wasn't able to find anything relevant other than:

> Although not strictly associated with the MVVM pattern, Vue’s design was partly inspired by it. As a convention, we often use the variable vm (short for ViewModel) to refer to our Vue instance.

I am sure it wouldn't be very hard to develop such a layer within React if needed.
Maybe. But cars seem to get a free pass with regulation, since they kill about 1.3 million people a year. We have all pretty much decided that this is acceptable, and having something traveling at 50 miles an hour a few feet from where you are walking is ok.
I'll give you a hint. Its the technology. More specifically, over reliance on it. I'm speculating, but my cyberwarfare spider sense is tingly all over. Perhaps some entity is testing new GPS spoofing, hijacking, or other similar things?

What confuses me the most is someone with NVGs should a seen the thing and raised hell. Either they didn't, or did and didn't get a response in time. The human factor of having sailors should always be part of the failsafes to prevent exactly this kind of complacence, if that's what it is.

For what its worth, I am speaking outside of my expertise, being from the men's department of the Navy.
I think she's correct to compare our situation now to a primitive band of people. Marshall McLuhan famously called this the global village. Close communication is paradoxically causing the fragmentation and balkanisation of the internet. A process which nations like China (with its own internet) and companies like Google (by getting into politics) are accelerating.

The goal of political correctness, adopting Daniel Dennett's intentional stance, is to control thinking. Individuals who are able to resist are in some ways more isolated now than the old communist dissidents. They at least got moral support from each other in prison.

http://www.beyondeasy.net/2015/09/mcluhan-new-tribalism-equi...
https://mitpress.mit.edu/books/intentional-stance
Amazon sells retail themed logistics. Apple sells consumer computing themed user experience.
Lynching, soccer mobs, religious wars, boycott campaigns, advertising pushback...

I think the biggest change is that it's pretty low effort to send harassing tweets, relative to (say) figuring out someone's address and sending them threats via snail mail or phone call.
Seems like a recipe for clapbait.
That's fine for a competent developer with a lot of time on their hands, but do you consider this to be a practical approach for the average Linux user?
Looks like pretty impressive monthly revenues for some of them eg. Leon & George. If YC is the first investor (which is what I expect) they have done very well being bootstrapped so far.
It was legitimately advanced up until the mid 90's or so wrt consumer electronics. Imo it's well behind the states now for sure as the most advanced economies has shifted to post manufacturing service sectors.
One interesting thought this article provoked:

Code review often catches typos, or edge cases that should be tested. As the OP points out, you end up serializing the problem into a comment, which the other developer has to deserialize, implement, and send back. Worse, these sort of issues often come across as nags - I'd be happy to fix a typo myself, but feel like a jerk calling someone else's out. I rather like the idea of pulling down somebody's diff, amending it, and pushing it back up. I'll have to try that sometime.
Where is dystopian literature when you need it? Anybody know some good sci-fi exploring these ideas?
Isnt really online mobs the sort of thing we signed up for when people started using email and then Facebook?

See Zuck's own words: https://www.facebook.com/zuck/posts/10100933624710391

Theres really two sides to this, one where the positive is that information is no longer closed and flows freely and the other is that negative information about other people flows so fast and wide that it cannot be fathomed.

Its an interesting feeling because its really similar to dystopian notions such as the Giver where too much of a good thing easily turns bad.
Feedback loops and vicious cycles are more accurate, I'd say: https://en.wikipedia.org/wiki/Virtuous_circle_and_vicious_ci...

Also if anyone's interested, the article I was referring to is this: http://www.mauldineconomics.com/the-10th-man/black-monday
Wait, you get fired after three months of every new job? Why? Do they give you a reason? This is not normal, even when you're a teenager.
Deep Learning AMI Amazon Linux Version on AWS Marketplace
Something to keep in mind is that "software" (usually meaning system integration) is distinct from "web services companies" in Japan.

They've made significant headway in the latter at least for consumer services.
The Don’ts That Turned Alexis Ohanian into the Leader He Is Today
In our company, every developer must fork the main repo to their own account, and every change that they want merged into master needs to be done as a PR that is then reviewed by the right person. That's a completely distributed process, and works great for a small company. We obviously need a central repo because apps need to be deployed from a single history -- a central master branch is not an antipattern, as suggested by the author. Even Linux has a central master branch.
Daemon by Daniel Suarez comes to mind
I couldn't care less if people say mean things about me on Twitter, and I'm pretty sure that I wouldn't lose any friends if I became the target of an online mob. My significant other certainly wouldn't think less of me.

The scary bit is employment. If a bunch of Twitter users wrote me mean emails, I'd spend about a minute creating a filter to drop them all and then go back to my life. If those emails went to my employer, on the other hand, there is a very real chance that they would determine that I'm more trouble than I'm worth.

This is a new and unique security hole in our social fabric, and it's one that didn't exist 20 years ago. I don't have a good solution, but this will keep getting worse until we find one.
> against human nature to upvote things we don't agree with

In this case you don't have to agree with the statement, only agree that it's unpopular. Maybe they're disagreeing with the facts in the statement's premise? Then they should say so, I think.
I disagree that this is elegant.

import socket
import threading
import socketserver

class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):

def handle(self):
data = str(self.request.recv(1024), 'ascii')
cur_thread = threading.current_thread()
response = bytes("{}: {}".format(cur_thread.name, data), 'ascii')
self.request.sendall(response)

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

def client(ip, port, message):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((ip, port))
sock.sendall(bytes(message, 'ascii'))
response = str(sock.recv(1024), 'ascii')
print("Received: {}".format(response))

if __name__ == "__main__":
# Port 0 means to select an arbitrary unused port
HOST, PORT = "localhost", 0

server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
with server:
ip, port = server.server_address

# Start a thread with the server -- that thread will then start one
# more thread for each request
server_thread = threading.Thread(target=server.serve_forever)
# Exit the server thread when the main thread terminates
server_thread.daemon = True
server_thread.start()
print("Server loop running in thread:", server_thread.name)

client(ip, port, "Hello World 1")
client(ip, port, "Hello World 2")
client(ip, port, "Hello World 3")

server.shutdown()

Why not this:

def handle(request):
data = str(request.recv(1024), 'ascii')
cur_thread = threading.current_thread()
response = bytes("{}: {}".format(cur_thread.name, data), 'ascii')
request.sendall(response)

and this:

options = socketserver.ServerOptions(
concurrency=socketserver.Threading,
sockets=socketserver.TcpSockets)
server = socketserver.Server((HOST, PORT), options)

There's really not any use of inheritance here anyway: it's just a hack. It's such a hack that you need to inherit those two classes (ThreadingMixin and TCPServer) in that order, because one overrides a method of the other, and if you inherit them in the other order it just doesn't work.

It might simplify the implementation, I don't know, but it definitely doesn't simplify the interface.