skysight-inc/HackerNews huggingface dataset:
I've been programming 3/4 of my life and I'd fall over on that stuff. I'm a CTO of 12 years and I'd fall over on that stuff. I have a successful open-source project [1] which is all algorithms and data-structures, and I'd fall over on that stuff.

At some point interviewers must get it, that these artificial test environments bear no relevance to how we write code in the real world, and putting these false constraints on a candidate just creates stress, and in no way communicates their competence.

Luckily for me (as an interviewer) I do get it. And I suspect that's part of the reason why I've not had a developer leave my company in the 12 years we've been running. I do a first interview, which I keep super chilled and chatty, just trying to get the candidate to relax. I'll focus on projects on their CV, asking high-level questions. Again, no stress. Then if they say anything interesting about a part of a project I may drill down a bit more to make sure they understand the subject they're talking about. Which is slightly more stressful, but if they're competent, they'll know.

I very rarely go into algorithms and data structures. It'll usually be if I'm concerned about a junior dev not having enough CS knowledge.

I then send them an email post interview (if I think I want to see them again for the second interview). The email will have a link to a partially complete project, I ask them to finish it based on a written spec. It shouldn't take more than 45mins - 1hour.

The request in the spec is intentionally a bit obscure. I put at the end of the spec that "If you have any questions or problems, please email me. You won't be marked down for this." The obscureness of the test is to see who emails me to ask for help. That for me is a real positive sign.

So I'm trying to create a real world test:

* A spec to follow

* Programming in a comfortable environment

* Access to dev resource (Google/Stack Overflow/Their friends)

* Access to their boss for advice

And to avoid anybody trying to game it and blag their way with code that they didn't write, I quiz them about their decisions in the second interview.

It works amazingly well. My dev team is something I'm super proud of. A good team of people who collaborate well and believe in the product. No hierarchy or in-fighting. It's a happy place to be. So I endorse this method :)

[1] https://github.com/louthy/language-ext
The former constrains the scope of someFoo to if statement, while the latter does not. Minimizing variable scope is one of the things I find really helps reduce cognitive load, so I'm not sure I'd want to make that replacement.
FPGA type applications will probably pay way bigger dividends than GPU acceleration ever will.

GPUs excel at problems where you can apply exactly the same logic to lots of data in parallel. CPUs can handle branching cases, where each operation requires a lot of decisions, a lot better.

Sufficiently large FPGA chips could accelerate certain parts of the workflow, if not the whole thing, since they're extremely good at branching in parallel. This is why early FPGA Bitcoin implementations blew the doors off of any GPU solution, each round of the SHA hashing process can be run in parallel on sequentially ordered data if you organize it correctly.
I think the CIA's "heart attack weapon" which was exposed to the Church committee in 1975 qualifies well enough as an "elaborate technique". There's also the myriad utterly ridiculous ways that the CIA attempted to assassinate Fidel Castro, and the Bay of Pigs incident. None of these things are secrets and I think any well informed US person is at least familiar with some of the above. Any of the above ought to put to rest your apparent assertion that the CIA has an aversion to elaborate or even dubious assassination schemes. There's enough in the public record to suggest that the CIA might even prefer wacky assassination schemes over the boring straightforward ones.

>comments like this really have no place on HN and don't strengthen your position.

In your own post you admit that you know none of the relevant details (and apparently can't be bothered to look) about some recent event A which was covered widely in the press. But nevertheless, you can't believe that event A could have occurred in some particular way because you think it implausible or because you like a simpler or more familiar explanation. In fact, there is nothing at all implausible about steering a four wheeled vehicle by applying left or right brakes, and the correct spelling is brakes, not breaks FYI. Nor is it implausible for an attacker to take control of a vehicle's accelerator in a modern automobile. No, I am not going to prove that for you. If you think that I or any other poster on HN is your paid technical or historical research assistant / spoon-feeder, you are mistaken.
or add a cron job to `git mv` a file from `pending` to `current` and run the commit/publish cycle.
You're right, of course: hadn't had the morning coffee. It should have been 'takes 100% longer' in the 1 second/2 seconds example. The point I was trying to make is that you have to factor in the initial 100% which doesn't contribute to the final value.
London, Paris, NYC and Tokyo all have a comprehensive subway system and light rail covering the extended metro area. For many parts of LA, driving (or taking a bus through terrible traffic) is the only option.
>Growth is necessary for all companies, public or private.

Well, no. Only public ones have that pressure. If the owners of a private company agree, they can sit at any size and make a steady profit.
>What other major city in the world would you expect to be able to drive 15 miles through the centre at rush hour and get to your destination in under an hour

It takes thirty minutes to go a mile in traffic where I'm at (West LA, near Brentwood and Santa Monica).

Then an hour to go 5 miles in any direction on the 10 or 405.

It's really bad.
Even if it's a company-contractor relationship it has the same implications. You can't do business illegally, or else every company wanting to do something illegal would hire contractors.
Are you triggered?
Adding data types to JavaScript
Well Kiev is in Ukraine and Madrid is in Spain, so that is just the full width of Europe which makes it really funny for those who know (and those who know are - to honestly reply to your concern here - those who read The New Yorker)
The answer to any sales calls that won't stop (I found this out by happenstance):

"We're a consultancy selling services for these tools/products."

or

"We're a competitor, and I registered for your free trial for competitive research."

In my case, these are true answers, but I never get more than one sales call from anyone.

I can't help you on the email front, but it's easy to set up filters for those.
Sure, lets do a hole lot of stuff, costing billions, and moving businesses around, involved lots of planning and disruptions, and may not even work.

Or lets just introduce tolls, something that is proven to work, is easy to do, and raises funds to help fix the issue by improving roads and public transport.
> The problem is when have developers that are used to classical inheritance

That's a very, very broad category, and some implementations are very close to JS. Python is normally considered to have "classical inheritance", but as a practical matter for day-to-day programming Python inheritance works very similarly to how JS prototypes work (eg, having an inheritance chain and checking methods as you go up the chain until you find something that implements what you're looking for).

I find that when people try to emphasise how different JS is from other languages, what they generally mean is how different it is from Java. :)
No. Absolutely not I'd say - because the purpose of an infrastructure domain isn't obscurity. That is simply a minor side-effect. The #1 reason is to assist in separation of concerns for the control plane, especially given the human factors in managing trust relationships between devices. The name should a) be instantly and recognisably distinct, b) easy and quick to type, and c) not creating risks of fuzzing a trust boundary due to misunderstood hierarchical naming.

Also, no-one should be using AD for SaaS infrastructure. It is a pretty good product for your enterprise internal services, but cannot handle the rather different needs of a SaaS system directory.
Ok, this explains a lot.

What you are seeing is people taking specific C codying styles into other languages. This is a cargo-cult style and probably in detriment of your code base.

On the other hand, it makes perfect sense in a C code base. The purpose of this is to transform a semantic error into a syntactic error. In C, both this expressions are legal but semantics is different:

if (A == B) //Compare B to A, decide on boolean result

if (A = B) //Assign B to A, then cast B's type
//into a boolean value (non-zero true,
//zero false) and decide on that.

In theory, it should be possible to identify every instance of A=B, but then it is hard to tell if it is a typo or the actual intention of the original programmer. If you compound this with the tendency to write complicated code, you find monstrousities like this one:

if (!A & B = C == D || E == F = G)

I am sure there's a language lawyer that can tell you for sure that the above means. I, on the other hand, can only be sure that this will compile as long as B and F are L-values.
I've implemented balanced trees with partial sharing of subtrees in Rust too. Just use Rc everywhere.
Your tax dollars at work!
The problem is that there is still a syntax that's required to know. Look at AppleScript. It uses keywords that sound like easy English but knowing how to use AppleScript still takes a lot of reading.

After reading the article about RUST, I have been thinking about how a compiler could take source code and write it back with fixes/suggestions right into the source so if you make a silly mistake, the compiler can just say "I think you meant..." and offer to fix it for you.

In your language, it would be beneficial to avoid "Syntax error!" and implement something like "Did you mean...", or have synonyms like "says", "exclaims", "talks", etc that compile to the same thing but add flexibility (or the compiler automatically re-writes to the preferred syntax)
How a giant tree's death sparked the conservation movement 160 years ago (2013)
Wouldn't that create some incentive to move further out into the suburbs or rural areas to avoid taxes?
Because what isn't printed is often more important than what is. That's what editorial influence does.

In my city, the local Hearst rag often doesn't report on things that the city administration doesn't want published. For example, a city employee was indicted for killing a girl and burying her body on city property (probably while on the clock) and was on "paid suspension" (i.e. On payroll, not working) for two years. Awkward situation for the mayor.

The arrest happened on a Friday night. The story? Page 4, section B on Monday.

In a story like this Wikileaks thing, the context is missing. How are these things used? To what end? Snowden tried to provide that context.
Actually, I believe it is because the elites of the media probably don't know one scientist, programmer, engineer, that would be affected by H1-B. They certainly don't know working class Americans who are affected by illegal immigration.

I am especially disappointed that the economists that seem to have so much empathy for illegal immigrants seem not to have empathy for Americans who lose jobs because of unfair H1-B.

I don't think a single columnist in NYT or WaPo or The Atlantic has written anything about Trump and H1-B.
... along with VMware Fusion and Workstation keys, Microsoft KMS keys, and probably more I missed.
I don't actually think the concept is a good one (it's unworkable without a level of automation at which you'd have much better alternatives) but the exit problem is already frequently addressed with HOV/bus lanes—have dedicated left-sode exits so they don't need to cross the slower lanes to exit.
> my theory is that opinions, once formed, are difficult / impossible to change

How can you explain that this completely contradicts my experience, down to basic everyday experiences like: "I didn't like this album initially, but it has grown on me"?
This is such an awesome summary, I'm just going to start here without actually reading the paper :-). I'll say up front that I'm a TDD/Unit test kind of guy. I'm also not generally a fan of London School/Outside-In style (but will obviously use it when circumstances demand it). So I'm probably exactly the kind of person that should disagree with the above. But I don't really disagree that much.

One thing I've noticed is that there really is more than one way to skin a cat. Some people like to have a more linear style in their code. I've found that such people tend to have good memories and considerable ability at reasoning. They can see a fairly large piece of code and see quickly where the errors are. They can remember that one piece of code on the other side of the project did something one way and code on this side of the project does it another way.

These people will often look at my code and it looks disjointed to them. They can't read the code and get a sense of what it is doing. They find themselves jumping around through hundreds of files just to figure out what's going on. If I have any ability at all it's really much more in the spatial relations side. I can visualise networks easily and reason about them.

I can never remember the details about how things are implemented and I'm a very slow reader (I'm dyslexic). I depend on trust. I want to be able to see a function and tell in 5 seconds whether or not it is correct. I then rely on tests to tell me when I have violated some assumptions somewhere -- because I don't bother to learn and have no capacity for remembering all the assumptions in the system.

Unit tests and the intense factoring that occurs when doing TDD (at least in a non-mocking style) favours a style where you admit imperfect knowledge about the system. It then gives you a framework for reasoning about the system. People (even on my team) are often surprised that I haven't used a debugger for at least 10-15 years. Tests are really a misnomer -- they don't verify the correct execution of the code. What they do is probe the execution of the code. It tells me what the code is actually doing and documents my assumptions about what it should be doing. If there is an error, there will be a mismatch in the two. I may or may not have an explicit test that fails during that mismatch, but I should be able to reason about it effectively.

It's a different way to think and a different way to work. IMHO, I think it requires considerably less mental capacity to work in a TDD way. However, on the other side of the coin it requires considerably more training/experience to do well. You definitely want to decide upfront which way your team wants to operate, but I'm not about to say that you're "wrong" if you pick a different approach than I would.

Anyway, thanks for doing the summary! It was very evocative for me :-)
You do have to experiment, but I love mine. Some of my go-to recipes:

* 4-5 chicken breast, frozen. Add a half can of green enchilada sauce, or a cup of BBQ sauce, or a half cup of taco seasoning, plus 1/4 cup water. Cook on the "poultry" setting for 24 minutes. Quick release, remove chicken, set pot to saute, shred chicken and return to broth, boil off some of the excess liquid. Can serve by itself, or on hamburger buns (for the BBQ variant) or in tortillas/taco shells (for the enchilada and taco variants), or over rice. This has become a go-to because it's so quick and easy and we don't have to defrost anything ahead of time.

* 4-5lb chuck roast. Sear all sides (I do this on the stove for convenience), then coat in a seasoning of brown gravy mix, powdered ranch dressing, and italian seasoning. Add a half cup of water, and pressure cook on high for 38 (4lb) to 45 (5lb) minutes. While it's cooking, dice some carrots, onions, celery, and garlic. Once it's done, quick release, add veggies, cook for another 11 minutes. Remove meat and veggies from pot, sautee, boil down the remaining liquid for a few minutes until it reaches a thick gravy-like consistency. Slice the roast, serve with veggies and gravy. Making a roast like this takes 8+ hours in the slow-cooker, and it's done in <90 minutes this way.

* Brown 1lb of beef or ground sausage on "sautee" with half an onion, diced. Throw in several tablespoons of italian seasoning. Once browned, add 2 cans of diced tomatoes, 1 can of tomato paste, 1 can of chicken broth, 1 can of water, some garlic powder, salt, pepper, and a box of smallish pasta (macaroni and garden rotini are our favorites), pressure cook on high for 8 minutes.

* Throw a cup of dried mixed beans, 1 beef boullion cube, and any other seasonings you'd like (garlic, pepper, the usual suspects) and enough water to cover the beans by a couple of inches to the instant pot on the "warm" setting to soak for ~45 minutes, then pressure cook for 45 minutes. Makes a fantastic mixed bean soup. Probably even better if you have a hambone to throw in there, though I haven't tried this yet.
If you're interested in a more introductory talk, I gave one a few weeks ago that goes over the basics of Deep Learning, and how TensorFlow works internally.

https://www.youtube.com/watch?v=DYlHnxfrrZY
> the "class" keyword was a huge mistake

There is not a single fact proving that statement. People want to write Javascript in different ways, Javascript is no less OO that it is FP. I don't see why one camp should be more privileged than the other.

> prototypal inheritance you will write cleaner code with fewer errors.

JS Classes use "prototype inheritance". compare that :

function Foo(){}

function Bar(){
Foo.call(this)
}

Bar.prototype = Object.create(Foo.prototype)

with that :

class Foo{}

class Bar extends Foo{}

There is absolutely no debate as to what is more readable, cleaner,easier to parse for IDE, and less error prone. ES6+ is considerably making writing JS easier and safer. There is very little reason today to deal with prototypes directly. And in strict mode, calling Foo or Bar without using new yields an error.
Its easy to paint others as xenophobic when its not your job being shipped overseas.
Sometimes the state of the field at the time was inherently biased. See "How the Sugar Industry Shifted Blame to Fat" [0] for example. Science is not always a progressive quest for the truth.

[0] https://www.nytimes.com/2016/09/13/well/eat/how-the-sugar-in...
It mostly depends on the number of passengers.

If you have less than 1000-1500 passengers per hour, buses can work fine. You cannot stuff much more than 100 passenger per bus, and you cannot run buses much more frequently than once per 5 minutes, otherwise the buses tend to cluster and not stay on schedule. (The first bus stops at all stops to pick up all passengers, and the next bus gets less passengers and starts to catch up on the first.)

You can stuff 200-300 passengers into a tram, and a single driver can also drive two linked units, so we're up to 500 passengers. So a single line with 5 minutes intervals can serve up to 6000 passengers per hour.
From the point of view of world history, there is a Eurasian core (which includes the Mediterranean and eastern coasts of Africa as well as the lower reaches of the Nile) that ends up driving most of known history. That is absolutely not to say that there is nothing of interest outside of this core region (far from it!), but rather that most world histories are going to ignore those regions simply for lack of time.

Unfortunately, Africa gets a double-shafting here. During the main phases of European world exploration, Africa had the misfortune to be mostly explored in the era of greatest racism, when Africans were usually held with little more than contempt. In contrast, the racism that held during the exploration of the Americas mostly manifested in the idea of the "noble savage" which generally included some mild appreciation for native culture (particularly more distant).

Since I found the extreme Eurocentrism of "world history" in school to be distasteful, most of my subsequent fascination of history has inclined to the Americas, and sometimes Africa, instead. The Bantu migration is one of the two impressive preliterate migrations we know (the other one being Austronesian colonization of the Pacific and Madagascar).

Unfortunately, the reassessment of history, particularly in popular accounts, takes a long time. It's only been a few decades since historians started realizing that earlier historians were often racist egoists who didn't mind making stuff up to suit their agendas. Popular accounts still get the Medieval era wrong, despite it being most of what's shoved down students' faces (e.g., witch hunts didn't really start up until the Renaissance, and people were generally obsessed with cleanliness in the Middle Ages).
Ask HN: Why aren't there many back-end frameworks in C++ for web development?
C++ is fast, and with modern(C++14/17) features highly productive. I would have thought this would be one of the first choice to design web development frameworks, but that’s not the case. What am I missing?
Taken the bus occasionally in Melbourne and Brisbane. Brisbane went hard core for buses even giving them separate roads/overpasses to take in some sections and it was very efficient and also heavily used. Melbourne is more mixed and the trains and trams are definitely used more than buses. The bus system wasn't scary, but it is underutilized in the suburbs and just as crowded in the inner city as other options. But with much longer wait times.

The biggest problem with mass transit in most of the US isn't "socialism" it's that everything is so spread out that it's impossible to make it economical. The attitude is kind of a way to help people ignore the fact that alot of people can't drive and have trouble getting around to where they need to go with the way the cities are set up. I think the best solution I've seen is for the city to contract for minibuses or other transport to help pickup some of the people. But that only works because they are often disabled and get special funding to get transport that can pick them up.
He did cover that. He said specifically that regressions tests are a good thing, but that they are typically not done at the unit level.
> The technology used by the CIA and NSA is all stuff people on HN can totally grok.

Yep, the typical stuff: CentOS, Debian, Ubuntu, Python, Ansible, Packer(.io), vim, Sublime Text, SourceTree, Git, ...

Plenty of references to Stack Overflow, Reddit, and such too.
In all fairness the whole business of teachInG history is very, very bad about everywhere in the world. Add to thaT political agendas in such teachings and its just about junk and lies.
I just go with the simple "References available on request" and have had the same results (nobody ever ends up asking for them).
Russian Hackers Said to Seek Hush Money from Liberal Groups
You're right. That's totally the way we perceive Denmark, and pretty much the rest of Europe.
I know where Madrid is and I have lived in Europe and I just read an article in the New Yorker. I even have a spiffy Certificate in GIS.

I still don't find it to readily be a good comparison for a mostly American audience. If the point is to elucidate, I don't think it is a great example to use. If the point is to be all superior and imply or emphasize the idea that "if you don't know where these things are, you are dumb," hey, it works well.

But trying to make your audience feel stupid is not really a great place from which to start. I mean, unless the point is to be toxic. Then, sure, go with that.