skysight-inc/HackerNews huggingface dataset:
> I am against writing unit tests in general, since experience shows that they actually prevent high-quality code from emerging from development--a better strategy is to focus on competence and good design.

False dilemma. Are competence and good design exclusively from people that don't TDD?

> The basic idea--amazingly, one of the most popular methods of software engineering (and growing in popularity!)--is that, after you figure out what you want to do and how you want to do it, you write up a set of small test programs--each testing some tiny piece of the program that will exist. Then, you write the program.

No. You are wrong. It is not that.

> Let me emphasize: you write the test cases for your program, and then you write your program. You are writing code to test something that doesn't even exist yet. I am not rightly able to apprehend the kind of confusion of ideas that could provoke such a method.

You are writing specifications for a program that doesn't exist yet!? Nuts.

> The most important argument is a practical one: Test-First doesn't work.

It doesn't work because it doesn't work. Sad argument.

> I was once one of these newly educated kids. So, for a few years, I worked exclusively with the Test-First strategy. When it was over, the results were undeniable. The code--all of it--was horrible. Class projects, research code, contract programs, indie games, everything I'd written during that time--it was all slow, hard to read, and so buggy I probably should have cried. It passed the tests, but not much else.

So it didn't work for you so it is everybody else's problem but yours.

> So this is the first reason TDD fails: You're trying to make a design before you learn anything about it.

No. You are not. Indeed, depending on how you decide to do your tests you should be able to change your design and the underlying implementation and no test should break. Please, take a look to the outside in approach.

> Week 3-4: Write tests.

> Week 5-10: Write code.

Oh my god. This is terrible. And no, this is not TDD either. This is inverse waterfall :P

> Even if you somehow succeed, TDD prevents incremental drafts by functionally requiring all tests for a module to pass before you get any real results.

Probably this is a misconception too. You don't write all the tests before. One test, small implementation pass, another test, small implementation pass... You get the results incrementally.

> There is literally no substitute for competence. If your coders don't have it, TDD won't fix it.

I fully agree on this. And probably this is a really common misconception. But false dilemma again. I don't think TDD came in this world to turn bad programmers into good programmers. It is just another tool in the toolset. You can have terrible programmers that do TDD and excellent programmers that do it.

My recommendation: https://vimeo.com/68375232
Today our sense of identity is intimately linked to our work, a dangerous trend
Because like the author says, there is no substitute for competence. If you can't write good code, then your assumptions about the future design will be wrong and/or bad, and your tests will be as poorly written. In other words, TDD (anecdotally) doesn't improve your code but only introduces extra levels of complexity. Which in the hands of an incompetent developer becomes an even bigger problem than if there was no TDD.
Liquid Democracy: True Democracy for the 21st Century
How  to Improve Word-Of-Mouth Marketing
Let's Solve Cross Set
I don't see Blue Origin claiming 'orbit' anywhere so I fail to see why that bit needed any clearing up. It is the L bit that SpaceX seems to have had some problems with to date. Musk could simply congratulate Blue Origin and leave it at that.
Introducing Concord – stream processing on Mesos
Quantum entanglement achieved at room temperature
Weighing yourself daily is not useless. The idea of doing it weekly is being spread explicitly because GenPop doesn't understand the concepts of a moving average and a low-pass filter - instead, they freak out over those daily fluctuations. If you weigh yourself daily and remember to always look at the average of the last few samples, you get a more useful indicator of your current weight trend.
How to make banks, HFT, VCs, Insurance irrelevant
BitDefender Internet Security 2016 Crack and Key Download
It would be if what got published were plenty of incremental papers. That's the case in certain fields (deep learning comes to mind) - but in other fields, such as the life sciences, you instead get a bunch of results that claim to be groundbreaking and novel - but in practice end up being very difficult to reproduce (like the STAP controversy).

Why? Because small incremental improvements cannot get published in high impact journals, and high impact journals are the currency to scientific prestige/grants/tenure.
DST is what makes them have to get up earlier. Dairy farmers (or any other kind of farmer) are/were generally against DST, despite the common myth it was created for them[1].

[1] https://www.washingtonpost.com/opinions/five-myths-about-day...
There have been one or two HN posts somewhat recently indicate that developers should stop calling themselves "engineers." Enter examples of how engineered solutions generally work the first time round, and how software almost universally does not. There's a fundamental reason for that: it's computer science.

One of the facets of science is that you have a hypothesis. Writing a unit test before you start is analogous to having the hypothesis: "the solution I come up with for this problem will work." The rest of the exercise of TDD is a scientific process of creating a solution and proving that your solution works (and adjusting your hypothesis if you find it to be incorrect), albeit in a slightly strange way.

I could have a hypothesis about how earth is really traveling through the stars on the back of a turtle. We know that is not true because Einstein came up with a solution, followed by him and others proving that solution. Relatively is only valuable because proof of it exists.

If computer science is a science (which it is) we must put our solutions to the same degree of rigor that other scientists do.

While I no longer follow the strictest form of TDD (starting with tests that fail to compile) I'll never forget the singular most important lesson that it has taught me:

A solution is worthless if you cannot prove that it works.

I'd take this article more seriously if Mr. Mallett provided an alternative for correctness proofing. I can't honestly sell software to someone if I don't know if it works myself.
In any halfway decent build your tests will run whenever you build the project, to prevent tests from ever getting outdated.

If any test fails, it is because you broke it just now, so you go in and see if your test is broken, or, as is often the case, your refactored code is breaking the expected behaviour of the tested code.
Absolutely no. However, as the parent comment pointed out, the root problem is the broken incentives - the lack of philosophical sophistication of scientists is at best a 3rd order term.
Probably. SpaceX clearly have a huge lead, but in either case we have competition. We've got a good old fashion biggest dick contest for rockets and space. Look what that did in the 1960s!
I'm not clear what technique this article is trying to describe, but anyone that spends two weeks pre-writing tests is not performing TDD. That simply isn't how it works.

The cycle is: red, green, refactor, repeat. That's per test. It shouldn't take long. It works nicely.
> Oil isn't like electricity which is wasted if not supplied.

To a first approximation, yes, it is.

Oil is very expensive to store, and the flow of most wheels can't change on short notice. Over a long time, production does change following price fluctuations, but in short times, it does not.
They are also a word of encouragement to whoever sees your code for the first time because he needs to make a change in it, five years from now.

"Look, this code looks strange to you, you would have done it differently, and you are afraid you might break things you don't even know exist. But fear not, there are tests, they run, and they will guide you."

It's always relieve to find that some random old crap is actually well tested.
They talked about brakes, I'm assuming its a combination of some gimballing and some brake modulation. Brakes can't be terribly effective at low speeds however.
The video speaks volumes about this accomplishment. The landing is spectacular.
I do it daily as a motivation trick.
The dog, who was loathed by the cat whom the mouse feared, barked.

Unwound and same meaning as your first and second sentences.

Or even simpler:

The dog, who was loathed by the cat who was feared by the rat, barked.

Come to think of it, this reminds me somewhat of tail-recursion optimization.
So this was just a vertical hop?

It would seem that SpaceX remains in a totally different league. By only going vertical, this is a very limited "spacecraft", more akin to the Virgin spaceplane than SpaceX's launch vehicles. For proper access to space, rather than tourist hops, everyone wants to see a reusable launch vehicle --> a craft to actually boost something towards orbit rather than an altitude record. That means returning to some sort of landing after huge downrange progress. So while this is an impressive achievement for space tourism (roller-coasters for billionaires) I still see SpaceX's efforts as the more revolutionary.
Anecdotal, but I've always found that if you can't write the test first it's a good indication that you probably don't yet have a good enough understanding of the problem you are trying to solve.

Regarding the rest of the article it is pure trolling with nothing really useful to add to the debate.
Nice work, thanks for taking the time to put this together. Bookmarked.
>Musk could simply congratulate Blue Origin and leave it at that.

If you actually read his tweet, copied in full in the post you are responding to and in the article, you'll see that he did exactly that.

Ok, fair cop. It looks like he didn't do just exactly that. The article I saw only gave his first tweet. My apologies.
Funny when it now seems we have to take seriously "hackers" whose best occurrence is to turn to Twitter to deal with their emotional issues. All very trustworthy...
But this is wonderful! In the context of the discussion..

The guy who had told the story before who had told the guy who had told the story before had forgotten had forgotten.
The article seems to be based on the following paper, published in 2012:
"Cosmic Rays Don't Strike Twice: Understanding the Nature of DRAM Errors and the Implications for System Design".
Newer research on the topic has since been published, for example this year: "Revisiting Memory Errors in Large-Scale Production Data Centers: Analysis and Modeling of New Trends from the Field" (from Facebook) and "Memory Errors in Modern Systems: The Good, The Bad, and The Ugly".
> One can't simply MITM a datacenter.

SSHing onto a Linux server in some secure datacentre doesn't magically mean that everything that server connects to outside of the datacentre is also going to be secure. I assume that you do actually understand how the internet works? :p

> I'm not breaking anything. It is supported by GitHub but not by many of the client machines (by default).

Of course you're breaking things. You're breaking the security of HTTPS by disabling cert checking. And you're breaking readability of your install code by using URL shorteners.

As for HTTPS not being supported by many of your client machines by default, it's so very easy to rectify:

$(which apt-get yum) install ca-certificates

This will work on Debian and its derivatives as well as the usual Redhat derivatives too. So that one line and works on all your supported platforms. It really is that simple. :)

> I unfortunately can't fix user stupidity.

But you're forcing user stupidity by using stupid defaults. It's quite literally your fault that they're being stupid as you're recommending they do stupid things.

> That's when you've proved you have no idea about what my user base is. Minimal images are very common for OpenVZ templates.

I happen run a hosting as a side project and almost exclusively use OS containers for personal projects. So I'm well versed in these kinds of containers and the kind of users you're targeting. You're just making excuses for bad security practices.

> Anyway, and to end this: you've already stated your points and I've given you my explanations.

You've given excuses, not explanations. I've demonstrated how easy it is to work around the limitations you've put in place. You've just given lazy excuses as to why you couldn't be bothered.

The crux of the matter is when building gateways you should NEVER default to insecure settings like you are currently doing. Period.

> feel free to fork if you don't like it.

To be quite honest, it could benefit from a complete rewrite. The code is functional but messy, your OS detection could use a little fine tuning too. But the real problem is that there's more instances within your script of code getting pulled from the internet with certificate checking disabled, and that would also need to be fixed (but at least you're not using URL shorteners there).

Your intentions are noble, but sadly your execution is less so. Which is what happens when you never listen to advice. And looking at the comments on your repo, this has been an issue that has been raised a multitude of times before. So it's not just me being an elitist :)
That's because there are only a few millions (or is it billions? not really an important difference) of books available, while we don't have names for the kind of number of proofs available in any mathematical system (when they are finite, it is).

You can lump all humans on the same group, your AI just won't find anything interesting for the group by a random search.
Hashes are generally used to check data integrity ...

When hashing passwords you want a function that is slow and have MANY (but not too many) collisions so that it can not be brute-forced in any direction.
I find it odd that one's exposure to and encouraging of bigger-thinking is somewhat reserved until the PhD level and that, after a long while of not exposing or encouraging such, our systems had ever expected people to suddenly think big once at the PhD level.

It may be more productive to have the expectation of bigger-thinking introduced earlier and let that expectation be realized more fully at the PhD level.
VC Bill Gurley Tries to Bust the Bubble
Elon Musk and Jeff Bezos competing with each other? That's great!
There is already a big sense of alarm on social media (particularly along new EU/NATO countries) that this can lead up to new confrontation between Russia and NATO. I would like to think that Russia is not going to start attacking Turkey or any other NATO country just because one plane was brought down near Syria. Thoughts?
I disagree on multiple levels. First of all, programming is not computer science. Sure, we probably do not deserve to be called "engineers", but what we do goes in completely other direction - away from science and towards art.

Secondly, I wouldn't try to fit unit testing into scientific process - because if the test is a hypothesis, then what you're doing is the exact opposite of how science is done. You do not design your experiment to make your hypothesis come out true!

While the quote you cited is interesting, I'd treat it with a grain of salt, given that you can't prove that your solution works - and if you think you did, it usually turns out the proof itself is wrong. It happened even for formally proven algorithms.

Testing gives you increased confidence. It's a worthwhile goal. But IMO, driving your design by tests is going a bit too far, and something you don't need to do to have tests that ensure your code works.
Thanks a lot for sharing, this was new to me.
In any other field, specifying a function by its value at a handful of points would be a bad joke.

If you don't know what you want your code to do then tests will just make it harder to experiment, and if you do know then there's no harm in writing them after the fact.
Dell admits installing security hole on laptops, apologizes, offers fix
Yes. I was going to come on here and say the same thing: this guy doesn't know what the heck he is talking about.

Your point is an excellent one. If you see hundreds of really smart people doing X and seemingly very happy with it, there's probably something going on there that's more important than just a bunch of fools with a fad. It might not be appropriate in your situation, it might be oversold by those folks -- but it's highly unlikely that's it's stupid and dumb.

I work with training developers all the time. It continues to amaze me how people go from being a novice to being an expert. One day they can't code at all. Next day they know everything there is to know about it -- and can go on at length about why process X is a terrible thing, without even trying or understanding it.

Of course, we have the opposite problem in development also. People get sold on ideas that will never work simply because they sound cool or the cool kids are doing them. This reminds me of the old saying "Always be open-minded -- just not empty-headed"
There are at least two tweets. The first one to congratulate, followed by the "clear up" tweet. I assume parent is referring to both, not just the first in isolation.

Either way, a vertical landing is pretty neat.
Russian Hackers Compromise EA Origin Accounts
Russian Hackers found a way to bypass passwords and security questions and got a lot of accounts hacked, check the EA's twitter for people who were compromised.
https://twitter.com/AskEASupport/with_replies
precisely. recoverable multi zone postgres without paying a sysadmin. we can manage basic maintenance on our own, but setting up something like that require a skilled consultant in short burst at each upgrade/maintenance check, and for a small operation like ours it's too expensive if we want to match what amazon gives.

we do have a custom AMI that just fetch and build the latest snapshot release when we need auto-scaling or auto-recovery, but our real problem is that we currently depend on sticky session, so users accumulated on the initial instances get sucky performances. (and yes we are currently working on fixing it, we cannot outright serialize sessions on dynamo because, reasons)
Of course, going slower means less acceleration, which means less high-G discomfort for paying passengers. A vertical hop makes perfect sense for meerkat-mission tourism.
Writing Clear Tasks
> Tests affecting the structure […] is […] a strong code smell

On the other hand, code being hard or impossible to test is often thought of as a code smell as well. Code that is easy to test is easier to understand — not in the least because there are tests demonstrating its use. Techniques such as dependency injection help a lot here.
It's a demonstration vehicle. The company is planning to scale it up: http://www.space.com/30543-jeff-bezos-blue-origin-florida-ro...

Essentially, it's the same goal as SpaceX' Falcon9, just a different approach (prove reuseability first, then make an orbital rocket). We'll see which turns out to work better in the long term.
Social media can do a horrible job of being alarmist when it comes to news of this sort.
Is this the proper use of Ironic? Complaining about Github by mentioning a superior alternative that is hosted on Github?
None. He's still in university. [0]

[0] http://geometrian.com/about/cv.pdf
The problem is scientific reductionism and the runaway success of science over the past couple hundred years. People think they don't need the suprarational.
You're probably right. But folks remember Franz Ferdinand. Caution is merited
Creating a career path
How Retailers Are Using Beacons for Massive Growth
How to use your full-time job to win more freelance business
I would like to think that Russia is not going to start attacking Turkey or any other NATO country just because one plane was brought down near Syria.

You're likely right. My guess is that they'll find ways to put more pressure on Turkey aside from threatening direct confrontation.
The next time a Russian plane observes a Turkish fighter plane approaching, it will be more motivated to react, it can be faster on the trigger, and then it's one NATO plane down, and then the NATO can escalate etc.

On another side, the area where "IS free to operate" is still huge:

http://ichef.bbci.co.uk/news/624/cpsprodpb/83ED/production/_...

On the third side: Turkey doesn't like that Russia bombs also the Turkmens in Syria in the areas controlled by the rebels.

http://www.theguardian.com/world/2015/nov/24/turkey-caught-b...

"Ömer Abdullah, commander of the Turkmen Sultan Abdülhamit Brigade called on Turkey’s government to intervene to halt the month-long offensive, the Cihan news agency reported.

“We are trying to survive under unbearable brutality and we need Turkey’s help,” Abdullah said. “Every day our Turkmen brothers are dying. We expect the government to support us … Why are we left alone?”

Abdullah said his forces were under attack from the Syrian army, Hezbollah and Iranian forces. “I don’t understand why our Muslim brothers remain silent. We need all kinds of support. It’s impossible to survive under such heavy bombardment,” he said.

Turkey’s National Intelligence Organisation (MIT) was accused of involvement in clandestine arms shipments to Turkmen forces earlier this year.

Cumhuriyet newspaper published a report on arms smuggling on 29 May that included images of weapons allegedly carried by trucks operated by MIT. Mehmet Şandır, a former Nationalist Movement party MP, told Today’s Zaman newspaper that Turkmens were facing ethnic cleansing in northern Syria."
This would make a great link for "Show HN". Adding "Show HN :" to the start of the title will put it there.
The switch to relativity seemed pretty incremental to me. Einstein's special relativity work builds hugely on that of Lorentz published one year before.
APIs for Innovative AdWords Campaigns
Isn't that like running your tests as root though? I have had too many experiences with people backdoor modifying Jenkins.
I did actually read his tweets. And I won't put into question whether you did but it's not just one tweet, it's three tweets:

https://twitter.com/elonmusk
Seconding this recommendation. It's not bashing the F-35 as an aircraft, but taking aim at the program. Sadly, as he points out, it's happened plenty of times before. The F-35 program just happens to be egregious because it started out so big.

Highly recommend this read.
I wouldn't say they "failed". QR-codes are one of the things which are now everywhere and weren't there a few years ago at all (see barcodes weren't use in all the places where now a QR-code stands).

The fact that not many people cares to scan them (citation needed) is a different thing... still they are quite popular.
Create and Share Unicode Emoticons (Text Faces)
new ArrayBuffer(3*1024*1024*1024) crashes the page in Google Chrome
You can meet your technology idol, while giving back to charity
"Throttle" is a term for rocket engines, not rockets. Being able to throttle a single engine to 25% doesn't matter so much if you can instead shut down 3 of 4 engines and throttle the remaining.

For a single-engine booster, 25% is still way too much thrust if you are shooting for orbit. A modern booster is 90+% fuel. So the empty or near empty returning booster will need an engine running at around 10% of launch thrust at the moment of landing. That's pretty much what SpaceX is doing by shutting down 8 of 9 engines and throttling the last to 80ish%.
I have an HLS live stream with less than 1 second of latency. If you have a keyframe interval around 5 frames, the player can start playing when it receives 15 frames.