skysight-inc/HackerNews huggingface dataset:
> I want to stress this once more – for an average app you can skip React or other virtual DOM at start and only go for it once it gets too slow (or never).

I don't think this is good advice. It would be better to just start by using something like React, then if things get too slow, implement shouldComponentUpdate, because you will almost certainly need something that can make efficient DOM updates instead of just naively recreating whole DOM trees.
Why is asking about particular facts considered a reliable way of finding bad candidates?
I think the biggest issue with this article is that most places aren't trying to hire people who aren't bad, they're trying to hire people that are good. You might use fizzbuzz as a weed-out question, but then you have to determine whether the person is good or not. I don't think there's a pervasive fear that terrible engineers will accidentally be hired. There's a desire to weed those people out and then sift through what's left for the best.
There are two separate points here. One is the false-positive problem: people whose social skills and connections get them a series of good jobs despite a lack of merit. And even in companies like Google those people can make $500k and up if they become managers, PMs, or non-programming celebrity engineers whose code sucks but who are good at making executive types (who value confidence over ability, because they can judge the former) listen to them. The other problem raised is the false-negative rate that comes from finicky and stressful (for some; I always liked hard technical interviews) interview tactics, due to our internalized low status.

These problems may be related but they're superficially opposite and this should probably be two separate essays. One about our industry's severe false positive problem (especially in management and PM roles) and another about why our extreme but mostly cosmetic selectivity (doesn't know MongoDB? Worked at Oracle? Forty-seven? No hire!) is so stupidly ineffective.
Talented people will come back voluntarily to a society that invests in that talent, I agree with you that it does seem like an impossible problem to solve in the near future.
No, user software should not dictate kernel versions, unless there is no alternative (e.g. security issues). Maybe I'm unique in this, but I don't have a single-purpose workstation. My computer does not exist to run Google Chrome; I have lots of applications I like to use.

Consider a workplace setting where someone may have other software which is much more conservative about using new features. A newer kernel may cause that software to stop working entirely; upgrading a kernel rarely introduces just the feature Google Chrome wants to use. You could tell those people to just use a different browser, but there are a lot of workplace users - is this new feature right now really worth losing those users?

For all the effort the Linux community has put into keeping Linux distributions secure and making them easier to use, now Google is saying Linux users have to either know how to update their kernel outside the provided package manager to use Chrome, or use whatever older version of Chrome still supports their kernel. This is going to frustrate or alienate most new Linux users as well as veteran users who like stability and package management. Is using this new feature right now really worth losing those users as well?

Chrome is arguably the most popular browser on the Internet. They ought to be more conservative about things like this; the right way to handle a new kernel feature is to either delay its use until supported by the majority of your users, or to detect it at runtime and use it if available. IMO, what they have done here is lazy and arrogant. A very poor decision.
>A typical, politically-inept programmer will say, "the low performers are Alice, Bob, and Charlie", just because he's asked. You don't have to offer him anything. He ends up losing in the deal for two reasons. First, if people find out that he's a snitch who tried to endear himself to management by selling others out, then everyone will hate him. That's just human nature. Second, low performers can be good for your job security because (a) you don't have to outrun the bear if layoffs or stack-ranking come-- you just have to outrun the other guy; and (b) they can anchor compensation favorably. The fact that a mediocre investment banker gets $500,000 per year means that a good one makes millions. That's how you play a large, rich organization that isn't going to die because of a few passive low-performers. You want to move against the active low performers (i.e. those who create problems for other people) and the politically dangerous, but it's generally good to protect people who are benignly below-average because their making average wages puts a case forward for you (as an average or better performer) to make above-average wages.

I don't think that most people will argue with this. but... I don't think it makes as much of a difference as you think it does to industry wages as a whole.

The average person at McDonalds is better at playing politics than your average person in my industry, but we're still on the good side of a 10x wage differential.

Clearly, there are factors that don't have to do with political skill at work here, and those factors have effects that can completely swamp the effects of political skill.
http://jmonkeyengine.org/showcase/

It could technically be less relevant. But not by much.
I was wondering this weekend about an anonymous chat app, where abusive or nasty comments were changed by the service, in one of many ways, like reversing the focus of the comment, negating it, or simply changing it to something like "I like roses; they are pretty and smell nice". And the more someone tries to be obnoxious, the more it changes their comments. Almost like a chat version of the justice zone from the BBC comedy series Red Dwarf, where you were not able to do any wrong, as it came straight back to you.

Might just give it a go...
You're forgetting the other important one: sorting. Why do banks, consulting firms, and even tech companies go gaga over Stanford and Harvard grads? Because the UCLA grad doesn't have the requisite skills? No, because they trust them to sort the top 1% from the top 5% from the top 20%.

Neither MOOCs nor certification programs offer that key function. When Coursera only accepts people with a certain SAT score, then issues "degrees" ranking candidates by class performance, I think we'll see employers take them more seriously.
How about shedding light on the matter with actual information rather than trying to score with empty rhetoric? I'm sorry if I'm asking for too much.
It is probably the case in other languages though (I believe — though I'm open to being wrong — it is in Go, string slicing is implemented through array slicing, so a substring will share the parent string's storage and keep it alive).
People can down vote if they want, but it's still not acceptable. It's been interesting watching my comment's score going up and down like a yoyo though.
Gov't data scientists who are on the GS scale can certainly be paid that
JRuby's ruby VM runs on top of whatever JVM you choose. You just have to make sure you have the JVM in your path.
Also self-taught with an ME degree (also from Rose-Hulman. Hi Keith!).

I'm an engineer at Twitter. Due to the interview process, I have yet to encounter anyone (myself included) who doesn't have a pretty sound understanding of algorithms and data structures. The biggest difference I've noticed between self taught folks and CS majors is comfort level with bit-twiddling. All the high-level stuff I know I've had to learn to do my job. All the algorithm and data structures stuff I've had to learn to pass interviews. Moving bits and bytes around is hard for me because it's so rare for me to encounter it in my day-to-day work.

As for how I learned all this stuff? Read Steve Yegge's Google interview post[1], buy the Algorithms book[2], learn everything Steve suggests you learn.

1: http://steve-yegge.blogspot.ca/2008/03/get-that-job-at-googl...
2: http://www.amazon.com/Introduction-Algorithms-3rd-Thomas-Cor...
It might help to cut costs by removing products that don't really have a future, but I don't see how this would help with the real problem: where are the new growth products that will define what Yahoo is going forward. They've acquired companies left and right and not seen anything from it.
HTTP is stateless. You need to generate some kind of token that can be checked for each admin action a user takes.
I've just gone through a rather prolonged search and hiring process, which involved hiring and then having to (regretfully) release some candidates (near the end, we were bringing them on as contractors so as not to create too many expectations). After dozens of interviews and resumes and a few attempts at hiring, we finally got a great candidate fit.

But here's the thing -- only a very few of those candidates actually were "flat-out" incapable of programming, and it was pretty easy to figure that out. Of the others, most of them were capable of programming, but not capable of developing, which seemed to be the dividing line.

Part of my interview consisted of data-modeling exercises (from workflow documentation) and slightly more-than-basic algorithm exercises (in which I wasn't looking for good code, so much as to understand how the candidate attacked the problems). I wasn't trying to bigfoot the candidates, but it was amazing how many couldn't work their way through relatively simple modeling or algorithm design problems at all.

And yet these were professional programmers. They had degrees, sometimes graduate degrees, from good universities; they had spent years in the field; they had solid references from good employers. I refuse to believe that so many practicing programmers could simply be incompetent and never raise any kind of concerns.

Which leads me to think that there's something wrong with our discipline. (I remember an old USENIX symposium where one of the talks was, "If computers had blood, they'd call us doctors." My reply at the time was, "If computers had blood, they'd call us serial killers.") If we built bridges, we'd assign a different engineer to each leg of the bridge, start at both sides simultaneously, never bother to check flood gauges or soil samples until halfway through the project, and try to swap out the cable suspension design two weeks after opening it to traffic.

In other words, we take perfectly capable programmers and turn them into useless cogs. Programmers who can't see the forest for the trees or the trees for the leaves. Who never are exposed to systems design problems, who use HashMap as the solution for every problem because we need that code yesterday and there's no time to discuss more elegant solutions (seriously, at least half of those candidates were obsessed with HashMap, for a problem where a hash table made no sense), who are shoved into a tiny chunk of the code of a massive enterprise monstrosity and expected to keep making changes and bugfixes until the code bears no resemblance to a reasonable solution to the problem.

Bad programmers who don't learn aren't the problem. Good programmers who don't teach are. Not brilliant programmers, not rock stars or code ninjas or whatever the fuck we're calling them this week, just good, solid programmers, the sort we say we can't find. If we don't give good programmers the time, space, and incentives to teach by praxis -- if the only way to be a good programmer is to bootstrap your way up -- what right do we have to complain?
If you really want to get "technical", then the first one is when the site is "crawled" and the latter is when it's "served". "Indexing" happens in-between the two.
The reason why "Laconian wit" is normally frowned upon is because it's actually almost disruptively lazy. In the event that almost everyone agrees with you, then that's okay.

But should anyone disagree with you, now they're going to have to do the heavy lifting for YOUR side. That disrupts the willingness someone has to even converse with you, and if someone retorts with similarly Laconian wit, you can see the conversation breaks down really fast, because nobody is willing to put in the extra effort to flesh out someone else's opinion when there's no reciprocity or show of effort.
Shoeboxed.com is amazing. Try it.
I kinda liked the idea (yes, I see the irony of this in this particular thread :)) about having these post not being liked to the karma of a user.

Then again, perhaps the best thing about hackernews is the simplicity of the system without having these complex scenarios tied to posts.
> Why is in-browser encryption considered so different that even smart people like tptacek get all worked up about it?

There's two issues that I can think of.

The first is philosophical, and not technological: in all these examples (e.g. this post) doing encryption on the client side gets you nothing. Furthermore, although it is in fact exactly as secure as not having client side encryption, it misleads users into thinking that now the backend can't read their data, etc.

Assume the server operators are 1) competent and 2) trustworthy. Then let them use the standard, time-tested technology of SSL to send data in the clear, and trust them to encrypt it on their end.

If you can't assume (1) and (2) above, remind me why I'm trusting the javascript code they deliver instead?

The point is, with web apps you have to either trust the provider or not. If you do, just use SSL. If you don't, then nothing they can provide via javascript should convince you otherwise. And them providing client side encryption so that you "don't have to trust them" is infuriatingly wrong.

The second point is technological. Let's say the developers are competent, and you understand that you have to trust them. Why then should you prefer that they write the encryption stuff on the backend rather than the frontend? This one I'm not so clear on and would like to hear more. It makes sense that the backend is a more controlled environment, but beyond that I don't know.
I went to an interview once, for a company that makes online games (gambling). We spoke about my education and lack of a degree. They seemed to be saying how it important it is for them that the team is good at maths. I said I had a decent mathematical grounding, and understanding, and while I'd not be able to instantly answer maths questions I'd be able to think about how to answer it, and research the problem.

I was posed a question... how would you simulate the appearance of a fruit machine wheel (3D rendering). I explained that I did not have the answer with all the details already, but probably would not need to know them all either and could use what's already been done to a large extent. This was put to me as the kind of thing that an employee there would be expected to know. I asked my two interviewers what the answer was, how they would solve such a problem. There was a lot of umming and arring for a few (uncomfortable for them) minutes. I found it very funny.
First, this is a serious problem. Severe bullying is one of the better outcomes if you have unrestricted, anonymous localized trolling.

Second, it seems like this could be easily fixed without compromising anonymity, using standard moderation techniques. And Yik Yak can in theory do even better than an online discussion board - acquiring a new phone number is much higher cost than creating a new online account.

In fact, this feature could enable Yik Yak to be one of the better online communities, since effective moderation is actually possible while still maintaining anonymity.
That's great, but if I'm hiring a person with ten years of experience whose resume is full of "senior developer" stuff, I don't think that either of us is interested in them doing an unpaid internship while we teach them the basics of programming.
def printall(files) {

for (f in files) {

print(f);

}

}

# cwd, ls, and cd are all builtin functions.

dir = cwd();

files = ls();

print("Files in current directory $dir:");

printall(files);

cd("/");

files = ls();

print("Files in root directory:");

printall(files);

Whats wrong with this, much shorter Bash sequence:

echo Files in current directory `pwd`:

ls

cd /

echo Files in root directory:

ls
Combating Forest Destructing Insects with Data Analysis
Awesome WPO – Resources for web performance optimization
> And yet you grouped all races together for some reason.

Oh you mean when I said "male behavior" instead of "white male behavior".

Social issues in the US are complicated. Can black men benefit from the patriarchy, do they have some privilege because they're male, even though they're black? Yes. Do white women have some privilege solely because they are white? Yes. Are black men or white women part of the patriarchy? No. The patriarchy is a white, male institution that oppresses anyone that isn't.

White women can be racist against minorities, but they can't be sexist against men. Black men can be sexist towards women, but they can't be racist against minorities. This is because racism and sexism are cultural and institutional. They can be rude, they can be discriminatory, but they can't bring cultural and institutional pressures to bear on members of the oppressing group. That power is reserved solely for members of the oppressing group.

> woman behavior...

Sexual harassment is almost entirely male behavior, white, black, etc. It's up to men to stop it. Women have no obligation here. The incidence of women sexually harassing each other is so low, it has practically no social consequences. Therefore, it's not a societal problem we have to fix, and this suggestion is a strawman.
Now I'm really confused. You're saying that if Alice is in Bob's blind spot, it is impossible for Alice to see Bob on his phone? Are we talking about the same blind spot?
Posts without a url in the "url" field get penalized, so you'd be better off reposting your link that way and then adding your text as a first comment to the thread. Email us at hn@ycombinator.com if you have any further trouble. Good luck!
It very much seems like KiA is subbreddit of the day.

If you have reason to believe otherwise, please bring the links. ;-)

(Now, if you don't mind, take a minute to consider what you have just said in your last comments.)
Who Cares about the Apple Watch Edition?
If you gave your credit card company an address that you say is your primary address but isn't, you'd be committing fraud. This might never be caught under normal circumstances, but if you ever defaulted on your credit card debt and they were unable to collect, you could be hit with criminal charges - the money you got from them wouldn't be a debt anymore, it would be stolen money obtained through fraud. (The credit card company might consider people without permanent addresses to be high-risk, and not normally extend credit to them.)

Also, the state or country that the address was in might come after you for unpaid personal or corporate taxes.
The King of Kombucha
Yep. If KiA isn't Subreddit of the day that should be easy to prove.
Check: http://www.feltron.com/
Ohh, someone, please figure this one out!

My understanding though, is that it's not hard, just expensive. Therefore, everyone just end up using illegal content. There should be an easy way way to track views and pay per 1K/M, etc. Or better, pay with revenue share of commercials alongside.
Loadshedding Widgets for Websites
If an Algorithm Wrote This, How Would You Even Know?
My bad. I thought "racial profiling" was more generic and not about law enforcement in particular. I meant "racial profiling" as in all everyday racism that is motivated by other people being suspicious, cautious and actively hostile towards people because they associate them with, or have bad experiences with, other people of the same race.

If you want to talk about "justifiable", then we can also talk about how "racial profiling" can be very pragmatic and not just blind racism. Maybe being extra suspicious around a black man keeps you from being mugged? Maybe you have lived in a bad part of town and "racial profiling" has helped you keep out of trouble?

And although it might be pragmatic, it's a disturbing practice in itself, and it's not really fair either. It's not simply "justifiable", end of story. It has wider implications. But people like you have too much tunnel vision to see the similarity, and the common hypocrisy around this subject. "Schrodinger's rapist"? Nice hate speech, if I'm allowed to use that as a more generic term.
Reminds me a job I had early on in life working under several intelligent people but unknowningly replacing 3.

Out of the 3 the 1st pushed me and encouraged me to move on when we debated who should stay, the 2nd was a surprise because I asked her why she was training me but sadly it was then I learned of her animosity toward me and her 30 years on payroll.

Which brings me to the last person I was replacing - the data scientist, the man that verfied my numbers and surely was verifying a lot of other things.

so having the guilt of the first two I happened to have a situation outside of my control land in my lap, I left the company immediately, positive they kept him onboard for atleast another 6 months to a year.

great experience nonetheless.

tldr: cost reduction hire, had to be vetted 1st - split before my conscience weighed too heavy.
> Lawyers and doctors are asked trivial questions just a handful of times in their careers during their bar examinations and boards.

True, but they are also asked lots of tough questions when they go to interview for jobs. It's not like you walk into a law firm, say "I passed the bar", and they hire you. Comparing the legal/medical licensing requirements to the software engineer interview process is apples-and-oranges.
Yep, file sizes alone leak sufficient information to be an issue, but it's a bit of a hypothetical because that's not what actually happened. Clearly, Mike shouldn't have allowed multiple files (or should have specified some kind of overhead for multiple files), and clearly there are other tricks Patrick could have used, but with these unfortunate rules and this submission nothing seems to require keeping file order intact.

It's a good point about needing to know which files are compressed. On a philosophical level, I'm not sure whether that means there actually should be a way to know which file(s) are the compressed data, or that the rules are simply broken...
<i>Kobayashi Maru</i>
Needlessly pedantic.
Silicon Valley Synopsis: Fundamentalism in Technology
Thanks for a thoughtful response.
The really horrifying thing about FizzBuzz is that it actually has useful power as a screening tool. No, I don't know how the hell these people accumulated years on their CV while being literally unable to even approximately code a FizzBuzz. But they're out there.

(I suspect Joel Spolsky's theory that it's the same 100 terrible guys applying for all the jobs.)

It's the same for sysadmins, by the way. We just went through a hiring round for a good Windows sysadmin. (Us Unix guys could all do Windows to pointy-click level, but needed someone who knew its evil little ways when something went subtly wrong.) Holy crap, you would not believe how many clearly useless bastards have literally twenty years as a Windows admin on their CV. We got someone who's great (and picked up the Linux side in short order), but it was slightly trepidatious.
What about the opposite? A website that created when it is indexed? Start with nothing and content is added each time the site is visited by Googlebot, or shared on Facebook, tweeted, posted on Reddit, etc. The website exists only so that it can be shared, and the act of sharing it defines what the website is.
That story could have been taken directly from my own brain. People like this get hired not infrequently and it's always frustrating to get one on your team.