skysight-inc/HackerNews huggingface dataset:
And yet, when the subject boils down to people and culture, testing is slow, complicated and unrewarding. Results need a lot of variable elimination and are rarely used for practical decision making. This applies to most “people” subjects.

Testing nature is much easier, and thus establishing norms in these subjects is easier.
You don't pay full price on perscriptions, like insulin is reimbursed in some part, you still have to pay some amount. Though for people in small villiges it still might be a lot.

I am not good on details because I don't take any medication, I only see my granmother having like 5-8 different things to take. She can afford that no problem, but still all is not free, and there are people who are a lot poorer than my granmother.
We start with hard "every module must have an end-to-end test" generally. This is a good level. Add tests as needed for debugging issues.

Lately I've hit some joker boss who thinks TDD can be done without automated tests. :(

The tests are semi manual (scripted), relatively slow to execute and a development bottleneck as the test machines are few. Some other jokers devs ignored even this limited testing and obvious breakage results.
I love this tutorial format. Below is my favorite series, which concentrates on pixel art but is also useful for animation, composition, color composition. Each GIF is a tiny work of art.

https://www.patreon.com/saint11
Yeah. A lot of journalists are ignoring the indigenous peoples that were massacred during colonization.

They even ignore the fact that for much of Hong Kong history, the people were treated as second class citizens.
CSS Houdini Today by Una Kravets
Guidance is easy. Throw on Ardupilot with a preprogrammed mission onto an EPP wing. 100km of range with 2kg payload is possible for under $1000.
With their butthole. ;)
I am more a fan of behaviour driven where the behaviours are written using specflow or cucumber almost like acceptance tests. Then the developer writes code but the behaviours are validated by the business analyst or product owner
https://en.m.wikipedia.org/wiki/Motorola_6809
I work for a Danish municipality and we buy quite a lot of development from various software houses. Being the public sector we track and benchmark almost everything, and we actually have a dataset on automated testing that’s been running for two decades.

It’s hard to use the data, because we’re comparing different projects, teams and suppliers but our data shows no advantage in choosing the companies that are very test-focused.

They are often slower, more expensive but have the same amount of incident reports as the companies which tests less or doesn’t do automated test at all.
Britain’s FBI secretly builds 'voiceprint' recordings database to catch crooks
If I had to hazard a guess, I’d say the conditional move means that both next values are prefetched into cache, whereas a branch means that fetch doesn’t happen until the comparison is made.
> He's right, but also wrong. It really depends on what you are developing.

The more useful thing to notice beyond TDD is how this is true of almost every development model and programming pattern (including the patterns built into languages that pretend they are not) - development processes and programming patterns are almost never generally applicable - The problems come when people who don't understand this attempt to apply them generally and blindly, e.g the classic go a read a patterns book or development strategy book and now everything is a nail for their preferred choice of hammer.

I'm not being defensive of TDD though, just because it's subjectively useful does not make it equal, to me TDD looks to have very narrow utility in general for the vast majority of projects it's going to get in the way.
Yes, for Senior/Principal talent. Please send through your details to the email above :)
You assume that changing a software that has tests is free, which is wrong.

Your previous-to-last sentence applies equally to a software project with or without tests.
Will backlash against Big Tech play into China’s hands?
> I'm currently working 40h/week as a backend PHP developer and I think I can put an extra 20 hours every week to increase my earnings. However, I struggle to find remote work or above the average freelancing projects.

Freelance is all about branding, word of mouth and selling your self. Maybe give blogging a shot and keep looking.

Shameless Plug: I was a PHP/Node developer. now I am trying to switching to go or elixir/erlang. I am already super comfortable with go. due to the fact, I have been using it since 2013 on hobby projects. As of now, I am working On a rest API using Clojure and react for frontend.

Here is more information about me: https://ooooak.github.io/

Github: https://github.com/ooooak/
Manual testing is where you click buttons on a device and observe results. Even that can be automated most of the time.

Pointless unit testing is a separate thing.
With Libra, Facebook wouldn't just make itself a bank. It would make itself a central bank. A world wide central bank.

Libra = inventing a new fiat currency and then replacing a significant portion of other fiat currencies around the world through a cloak of "we're just here doing the next big thing, also App, p2p payments, online crypto AI blockchain social network Facebook innocent whistling of a song". As a little bonus, they would be selling the Libra nodes (that handle all the payment traffic) to third parties. Initially for 10 million USD per node. That way they can shift the blame of selling payment data to third parties away from Facebook, while still making money by giving third parties the right to do whatever they want with that payment data.

Having a banking license doesn't allow you to replace a countries' fiat currency by some new invented token. The value of Libra in Europe would depend on a promise by an American tech company (led by 1 man). A promise to keep the value of the Libra tied to a predetermined basket of fiat currencies. Assuming that Libra would become popular, this would yield pretty much infinite international political and economical power to Mark Zuckerberg based on the mere perception of the possibility that this promise could be broken by him. This is also why Libra is not comparable to an actual crypto currency like Bitcoin. The value and existence of Bitcoin and the Bitcoin network is not dependent on 1 man and the contracts he has with Bitcoin nodes.

Germany and France aren't stupid. I guess.

Those are my thoughts on what's actually going on.
The original classic book "Psycho-Cybernetics" -Dr. Maxwell Maltz is based on the theory that our brains can't tell the difference between reality and a vivid imagining of an event. So true.

I urge you to buy and read the original--not the Dan Kennedy version.
Cartridge Printed Circuit Boards
Calling the umpteenth JS obfuscator a language is a bit of a stretch, but hey, it enhances the npm module swamp by one more instance.
For multirotor, sure. Fixed wing is more robust though.
Development is the ability to deliver/ship the things that increase your business metrics, consistently.

Sometimes the right thing to do is TDD, sometimes the right thing to do is to ssh into a production server and modify a Perl script.
I find it amusing to read posts like the authors. I bet he also does not even use Agile Methodology lol ;-)
> I just want a cross platform rsync style program built directly into the OS as a first-class citizen

Doesn't that again just come down to NIH and building a walled garden? I'm really sour about this too and have given up hope that anything like this will ever happen. My goto example here is Bluetooth and Apple. Not that Bluetooth is super elegant or suited for huge files but it's been a somewhat simple and straight forward way of exchanging some photos or whatnot with a person nearby. Sure it's low range, but it existed long before affordable data plans, WhatsApp etc.; and I can still exchange files between a modern Android device and my 15 year old Sony Ericsson. But not with a mighty iPhone, because why on earth should Apple support something that enables and open ecosystem?

So it's up to third parties to come up with some solution and implement it for every platform on this planet themselves, and no matter how hard they try it will always be a third party add-on that can never integrate as well as a native feature built into the system.
And what is software engineering then?
Blatantly false.

https://en.wikipedia.org/wiki/Hong_Kong_1967_leftist_riots
Requirements come before implementation.

In many organisations it often happens that the test team implements tests and is ready to test a feature before the dev team has actually implemented it.

IMO, that's the basis for TDD, really. When you start coding you should know what the result should be and thus you should write tests first to capture this and guide implementation.
On the other hand even a 1 mile (probably less) saving over a 5 hour (~200-250mi) trip through the rain might as well be a rounding error regardless of the fuel used. Many other methods for achieving the same saving are not as flashy though.

I imagine the most important way is to ensure optimal tire pressure at all times. Many people tend to ignore this even when having pressure sensors at hand which leads to a whole lot of wasted fuel.

The reason wipers only received minor optimizations over the decades is because they work well, are cheap and enviably reliable. So any new wiper system design has a high bar to pass, beyond using new tech.
There is a good amount of research on software engineering, I love love love "Making Software: What Really Works, and Why We Believe It" by Andy Oram, as it demonstrates the non-opinion-based way of thinking about software engineering. And has some really interesting insights to boot.
I'm not going to take any opinion seriously with a headline like that.
Companies: “We take security seriously but that’s low risk as we don’t want
As with most software engineering tools and practices, the context matters.

I'd imagine that TDD is good when you know exactly what the requirement that the project has. i.e. TDD is good in the implementation phase but not the design phase. In the design phase, you often don't know exactly what the problem really is, so you need to keep things as loose as possible because you're going to experiment. I imagine that in many small business scenarios these two phases are often fused together, so TDD wouldn't appeal that much for them.
After 15 years in technology/software development my impression is that your favorite methodology says more about you than anything else.

The sharpest engineers I know distinguish themselves mostly by how rarely they resort to running code at all. Instead they seem to have a mental model of the code base they are working on, similar to that of a mathematician. They can write code for days, weeks (or even months) and just know it will mostly work once they run it.
AR can replace every screen in your life.
There clearly are problems that are suited very well for TDD and others that aren't.

I guess the suitability of TDD depends on how much a feature involves "how" rather than "what":
Whenever it is clear what the feature should do (and what the feature's interface looks like) and the implementation is only about the "how", TDD seems to a very good idea. Almost every compiler-related task falls into this category.
I just wrote a blog article on how to implement Typescript refactorings using TDD ([1]) and I don't think anyone could argue against using TDD there.

If the feature is more about "what" (like UI/UX), TDD seems to be more of a burden than an useful asset.

[1] https://blog.hediet.de/post/implementing_typescript_refactor...
I was once in the hackrrspace in Pristina, Kosovo, where ingenuity and DIY-culture reign supreme.. the group has a beer-brewing project, which turns out to be quite popular, and as a result the freshly brewed batches don't last long.

So they did the hacker thing and wired up the keg to an EPS8266, and gave everyone an RFID chip with which to gain their weekly beer rations.

I found this immensely amusing. Truly a wonderful hackrrspace .. if anyone ever gets a chance to visit Pristina, check them out .. and bring them some hardware to play with, while you're at it ..
Dynamic systems are hard, but it is important that people are at least aware of them.

For example, market balances. They will probably not last either, habits and technology and become catalysts for change in the market. This I think people can grok, and on a very abstract level, the same happens in ecological systems where species and environments change and upsets the previous order.
That's the kind of titles that makes me love HN so much
You've just described brain-drain in its most common form. It's not a new phenomenon. It's at least as old as modern forms of transportation and probably way older than that.

A vicious self-reinforcing cycle that drains underdeveloped countries of the best and brightest - the very people most suited to lead and improve the countries they leave.

The US has also been historically the biggest benefactor.
The XPS 13 9380 is available with Linux pre-installed, why would you want to mess with that? Or was it a fun/hobby thing?
>Nobody is denying this person the right to talk about their frustrations.

bjornsing's comment is implicitly highly critical of them doing so.
how about gnome with paperwm extension?
Are you saying that if I turn on my phone's radio and set it between 91.1 and 93.3, I'd be able to hear what other people are listening to? Could you elaborate?
Because software projects fail for people reasons, and people reasons are usually subjective.

If you have a tight team of experienced devs building a simple CRUD app you can do almost anything short of building the thing in Polish BASIC with triple spaced lines, and you'll still get a result. Likewise if you have a team with 8 managers and your best dev has only done a couple of courses on codecademy, no set of engineering approaches is going to save you.

And that's just the factors within the engineering team. For every inexperienced team that doesn't deliver a result, there's 10 teams that are gutted from internal politics or management decisions, and 100 startups that fail to find a market fit. On the flip side of that, every month or so I find either a showstopping bug or a new puzzler of a UX decision in one of Uber's products, but it literally has no bearing on their success as a company. The simple fact is it doesn't matter whether they do TDD, or scrum, or whatever, as long as they don't do anything truly catastrophic.

Basically, the majority of success factors for the majority of projects come from outside the engineering team. And the ones that don't will be dominated by the team's basic development skills, which makes the signal much worse for measuring the effectiveness of anything from a project management, high level architecture, or testing perspective.
A more digestible explanation: https://www.nationalgeographic.com/animals/2018/11/wombat-po...
> If this code was fully tested and maybe refactored (isolated) when the need arises, the cost of change would almost go to 0 because you would only have to implement a new feature without touching the old code.

You don't even know the "change", you just assume that it will be a change that takes zero effort to implement, to satisfy your argument.
I think the idea is to avoid calling something "dumb" when you have not enough understanding and experience in it to pass such arrogant judgement.
This is skipping the purpose of TDD actually, TDD is basically binding your every code change to a test (basically it is a spec) You are supposed to write the minimum required code to satisfy a failing test. Basically it is kind of commenting every bit of your code with a test.

So every line of code you are writing has to have a purpose, and later on when you are fixing a bug or adding something new, you are making sure, you didn’t break any previous functionality.
"App player". That's a really curious term. Is there any chance this will run on 64-bit Arm cores in the near future? I may have gotten the wrong impression, but from the past few years that I've perused the market of Arm SBCs - including the incredible variety of highly affordable Chinese "Android TV boxes" - it seems that 32-bit Arm has more or less left the building already.
Thanks! so confusing trying to keep track of all these different services.
Glassdoor tends to underestimate because a lot of the datapoints are from several years ago.
TDD = tests before code.

That's not what you describe.
A video about the scale of black holes
I understand your perspective, but I think it's GREAT that it targets Arm. If anything finally can and finally should replace x86/64, to usher in a new era of power-efficient computing, it should be Arm.
"...I never understood why it was better to do things backwards...The idea behind TDD is that you’re able to write a test because you sit down and think about things first...."

Yeah no. You have been instructed poorly. It's not your fault.

Yes, you have to think about things, but that's not the real purpose of TDD. Just like making a good design, it's a side effect.

Straight coding is doing it backwards, as odd as that sounds. The reason is that the computer never lies, but it's really, really easy to lie to yourself, forget things, misunderstand your own variable names, and so on. When you're coding, you'll make all kinds of errors. The computer will not. So wouldn't it be better to have the computer constantly checking on you to see if you're making any new errors? Better still, not only will it check on you, it'll check on everybody else who touches the code too.

There are domains in which TDD does not make sense. Exploratory coding, like you'd do in startups, for instance. Small pure functional code. Academic learning. In each of these cases you are still doing TDD, it's just you're not coding the tests. You never get away from TDD, you just sometimes hide it or pretend it isn't happening. There's a test, it fails, you write code to make it pass.

In other cases, such as any non-trivial mutable OO commercial code that is going to be around for a while, not using TDD is malpractice. Whatever small hit you may take on initial productivity is insignificant compared to the endless amount of money you may spend later on maintenance.

Plus, I'm not so sure it's inefficient to begin with. Instead, I think a lot of coders code in an inefficient way writing code that is difficult or impossible to test. Once you start using TDD, you're going to have to come to terms with that and un-fuck your code. That's probably going to suck. Best to do it earlier rather than later. (Long discussion here about what to do with legacy codebases)
There’s already an electrified mode of transport for these short trips: the train.
> I find that writing _something_ can help me to get a feel for a problem. Start, then sitting back and thinking about it, helps me to move towards a better solution faster.

That summarizes the struggle that I have with TDD. I guess you could argue that I’m doing TDD wrong, but most of the time I feel like I don’t know what I’m going to be writing until I write it.

Basically most of my coding I feel like I’m prototyping until I iterate a few times and arrive at a solution I’m happy with and understand where the boundaries between various functions need to be. Until then, how am I supposed to pre-empt my solution with tests?
One thing to consider I think is that TDD isn't just about the tests. It's also about architecting the software into small functions and lightweight classes, which are easy to write concise tests for and then implement incrementally. To TDD advocates, this resulting characteristic of the code is a valuable goal in itself, even just as a side effect of TDD.
Thanks, much better. The posted article is insanely slow and clogged by ads (over 600 http requests)
Show HN: SSSMK1 – Noise sculpting synthesizer built with React
https://github.com/testdouble/contributing-tests/wiki/Test-D...

This wiki has great content about the different types of TDD. Reading it helped me get useful insights about my approach and my gripes with TDD. In particular it's interesting how different approaches to testing influence heavily the design of your code.
I like the idea. But I always wondered to what extend this holds up. Rigorously followed wouldn't that imply the old argument that playing brutal games makes people more brutal in real life?
Hasn't Aramco been in the process of doing an IPO for an awfully long time now?
Francmasoneria
I’m not really describing anything, am I?

Companies that sell themselves on TDD (among other things) are part of our dataset. Maybe “automated tests” isn’t the exact literal description of that, but I didn’t mean it as such.
There is no "free-for-all". On the contrary.
Coding, Components, and the Learning Ladder [video]
Microsoft AI Institute “Geometry of Deep Learning” 2019
Well, there is a very broad search for potential mechanisms to cause harm, and nothing has been found so far. After decades of trying...
And they told us it's all our fault by using plastic bags...
I find myself TDDing code when the problem space is well-defined, i.e. I know exactly what output I'm looking for. Last time I remember using it was, oddly, in making a game. I wanted to build a CLI 2048 clone. Specifying that was easy and fun.
Detroit-School TDD and London-School TDD
Well it depends what that function is doing. Do I need a full word2vec mapping? I've got small bits of data that would blow past that limit compressed despite the work I want done being a single easy function call.
Interesting thanks. A lot of people are using this power outage as an argument against wind power.
Any metrics on typescript vs vanilla js (assuming ya'll consume it:) ?
> The point of methodologies like TDD is they force people to follow the best practices even when it's easier not to simply by mandating a standard process.

I don't disagree with that, and I don't think the authour disagrees with that.

It's when the mandated process interferes with working in the actual world.

A better test-pipeline in the article's example might be, "We don't merge without full test coverage of changes" rather than "We must have a test before we've explored how a spec should look".

If the standard makes the real world overly difficult, then it will cause people to try and cut corners. It makes the developer seek to do the wrong thing.

There's nothing inherently wrong with TDD or a bunch of other processes. There is a problem if you're pushing yourself into a corner where you find yourself fighting the process rather than solving the task that needs solving.
And remember that certificates of completion are now for paying users only. I’ve personally got a passing grade on some courses that didn't translate into a certificate because it's not interesting to me professionally and therefore don't pay for it. I still wouldn’t call it a failure.
Since you are asking for the 'Return On Invest', I think there are two sides to this medal. I didn't have any large returns, but I like the content that comes up, so I try to limit the resources I invest.

I observed that giving my brain new(s) information in the morning makes it harder to concentrate later the same day. So I try to avoid visiting HN in the morning and wait until the afternoon.

To improve the noise to signal ratio, I also added a little widget to my new-tab-page showing me the current top 3 news of the 'best' list. That way I don't have to constantly monitor the site and don't miss the big stories either ;-)
Using Go 1.13’s new ReportMetric API to benchmark t-digest implementations