skysight-inc/HackerNews huggingface dataset:
Why would you the government care so much about one specific crime but not all the others?
My favourite as well. So harsh, but so fair.
I've talked to at least one persons who works on production Haskell applications, and Jane Street, a company that was discussed on HN just yesterday makes heavy use of OCaml, but yeah they're pretty rare and I suppose the people working with them are just lucky. I've heard particularly about the Haskell market that if you want a chance of competing for the few jobs available you have to be among the top-haskellers, but I'm not sure.
I definitely see a lot less of "TDD as religion", where all code is written in TDD, without exception, and no code exists or is added to a project without a failing test to demonstrate its need.

Most developers I work with (as well as myself) will use TDD as a technique that can be useful in certain circumstances.

When it's easy to use and reason about code as an isolated unit without any dependencies outside of straightforward libraries, TDD is usually useful and yields good results.

Things get uglier when there's more dependencies involved, which tends to lead to excessive mocking that results in your tests just testing a very specific implementation (expect method A to call method B on object X), or to alter your code in a way that's purely in service of the tests (the "test induced damage" that DHH talks about).

To take a Rails example - I think there's little to no value in doing TDD style testing for controllers. The tests will almost by definition test a specific implementation (since well-written controllers will often just connect various other models and service objects), and any efforts to get around this will just introduce unnecessary abstractions that make your codebase much more difficult to comprehend.
The president of Brazil uses video game music for his promotional videos
Free Webinar: “#TryHackMe – Behind the Curtain”
The key to TDD is to write tests that evaluate on the order of 10ms. A whole test suite should take less than 1s.

Only this way does TDD not interfere with development velocity.
The Great Adaptation: Building a Company in 2020
Well, I already moved to Paypal whereever I'm forced to do this dance. It is also completely unusable for me when travelling, because I like to keep the stuff to authorize unlimited transactions from my bank account at home.

Use using credit card numbers is IMHO a very conventient way of paying with the liability for fraud being setup exactly in the right customer-friendly way.
> I think it is preposterous for US citizens to get obsessed after this one when more kids are dying to malaria every single day or for multitude of other problems.

This is like saying it’s preposterous to get obsessed with kids dying from malaria when more people die from heart disease.

You can care about more than one thing.

Not surprising the one tragedy that happened in front of our faces on national television affected us a lot.
Well, people building/buying Wagner's busts are some big fans of his music who want somehow to materialize their fandom.

They certainly are not fans of his life, his life is extremely irrelevant, it may as well be totally forgotten, and it would not hurt.

About your last edit: here I beg to disagree.

I love his work as a filmmaker, it made me love the sea and nature in general and made me want to protect it. When I was a child he contributed to educate me and make me an environmentalist. On me at least, his work was tremendously successful.

As an engineer, he created a lot of devices used today for diving. His boat Alcyone was even sporting revolutionary static turbosails.
The long command names are really only something you use in scripts. Powershell is my main shell for both scripting and interaction and at least on my system it comes installed with tons of short aliases for common commands.

For example: Get-ChildItem was already aliased to both ls and gci on my system.
That should itself be rather telling. TDD is extremely well known, in my experience. I bet if I stuck a microphone under the nose of random passersby at any development convention [1], 90%+ will be able to tell me what 'TDD' is short for, and even if they don't, they'll have heard of the concept at least. Hell, I bet most would tell me they 'aspire to do it'.

And yet, more or less nobody does.

So either it is next to impossible to begin doing it (seems like a bizarre conclusion), or, perhaps more likely, nobody wants to do it, and the few dev teams that do manage to do this have not managed to turn that into a competitive advantage. Which makes the value of TDD rather questionable based on simple evidence.

To explain this observed behaviour that TDD is clearly not a competitive advantage[2], I can name a million pet theories. But without going into any of those, the sheer fact that it's __this__ rare in practice says a lot, no?

[1] I mostly go to java related ones, maybe it's less well known amongst other communities.

[2] What other explanation is there? Clearly not 'ah, but, TDD is brand new and you have to give it some time for teams to get familiar with it, and for the concept to percolate through, maybe wait for tooling support to catch up' - TDD's quite an old concept!
Cement doesn't work like that. They would have been more successful nailing, screwing, or even gluing the door shut.
Thinking about becoming a Software Engineer?
By "family" I meant Cousteau's family during the war, not all his descendants of course. Sorry if that was unclear.

But he was a Nazi sympathizer and was protected by the Germans during the war. Then he falsely claimed to have been a member of the Resistance. This is all documented in his biography.
I am surprised this article exists, but then I noticed it is from 2014. TDD is not a magic bullet, but the moment I have ventured into codifying a critical part of business logic, I have written test first. Not always unit tests, many times an integration test. But the confidence I get when adding/modifying things around that business logic is just mind-blowing.
Most people who come to US are escaping horrid conditions of their home countries (a good portion of which is not unrelated to US foreign policy).

Most immigration is not a luxurious, touristic affair but comes out of necessity. There are even people who would consider immigrations as voluntarily getting themselves colonized, coming here for the country to extract their resources in exchange of a promise of better life circumstances. We certainly extract more out of immigrants economically, academically, psychologically, who were raised and educated elsewhere, who are incentivized to work very hard or go back, who also suffer mentally from this process.

Requiring them to pitch in assuming they had perfect information and made a completely free preference is at best ignorant. Of course it is the honorable thing to answer the suffering of fellow humans, but that goes both ways, and thinking that that problem is always the one and only problem of this world is plain, pure narcissism.
I wonder, why that propaganda shitbag (RT) is not banned yet?
I treat it like a tool. I use TDD when I encounter a problem that is complex enough that I cannot consider or remember all of the possible inputs/outputs during development. Getting all of those dumped into a test is the best way to reduce cognitive load.
Random Forest vs XGBoost – Comparing Tree-Based Algorithms (With Codes)
The best talk on this topic, IMO is Ian Cooper: "TDD, Where did it all go wrong?" https://www.youtube.com/watch?v=EZ05e7EMOLM

Couple of notes:

- TDD, much like scrum, got corrupted by the "Agile Consulting Industry". Sticking to the original principles as laid out by Kent Beck results in fairly sane practices.

- When people talk about "unit tests", a unit doesn't refer to the common pattern of "a single class". A unit is a piece of the software with a clear boundary. It might be a whole microservice, or a chunk of a monolith that is internally consistent.

- What triggers writing a test is what matters. Overzealous testers test for each new public method in a class. This leads to testing on implementation details of the actual unit, because most classes are only consumed within a single unit.

- Behavior driven testing makes most sense to decide what needs tests. If it's required behavior to the people across the boundary, it needs a test. Otherwise, tests may be extraneous or even harmful.

- As such, a good trigger rule is "one test per desired external behavior of the unit, plus one test per bug fixed". The test for each bugfix comes from experience -- they delineate tricky parts of your unit and enforce workign code around them.
I've always had trouble with TDD. I'm a mostly self-taught dev, and I had my first jobs in high-velocity startups that themselves were made up of engineers who'd prefer a quick-and-dirty approach.

Later in my career, I've worked for more traditional software businesses, but they didn't encourage testing either. It was always an afterthought, and time was better spent on building flashy and fancy new features to pacify customers.

When I founded my first bootstrapped businesses, it was the same thing: things had to be built quickly, almost always as easily scrapped experiments. A SaaS that is well-tested but missed it's market opportunity window was something I didn't want to risk.

Even with the SaaS FeedbackPanda that finally worked out (and which I sold with my co-founder last year), testing was more or less non-existant. We truly tested in production, and trusted the infrastructure and framework choices we made to bear the most of the burden. It worked out for us, and even our acquirer didn't expect much in terms of TDD in the properties they were looking for.

I have the feeling that the concept of rapid prototyping has developed into a cultural phenomenon that expanded into software engineering—and people have adopted to it.
That’s rather presumptuous of you. I’m an immigrant (and now a naturalized US Citizen), and I want no part of
“reparations”.

Only 1 in 5 Americans supports it: https://thehill.com/homenews/news/504511-1-in-5-supports-rep...

Also you say this as though the US is the only country that had slaves. Chattel slavery was (unfortunately) the predominate form of labor in the entire world for centuries. The US was the 3rd to last country in the Americas to abolish it. https://en.wikipedia.org/wiki/Timeline_of_abolition_of_slave...

Other societies in the world have largely decided that we’re better off just burying the hatchet.
You can downgrade but you have to redo all your configuration.
Fortnite has also demonstrated how sloppy third party developers are with respect to security.

https://arstechnica.com/gadgets/2018/08/fortnites-android-vu...

And at least Epic wasn’t purposefully installing back doors. Unlike Zoom.

https://www.zdnet.com/article/zoom-defends-use-of-local-web-...
I think this is because, in the 2000s, when a lot of these companies were founded, Ruby and Python hit an pretty much empty sweetspot for web application development in between quickly thrown together scripts and the super heavy enterprisey frameworks.

But since then, that space has gotten a lot more crowded from all sides. There is now a pretty big selection of mature technology to pick from depending on your needs.

In the case of Python, it got also a massive boost from its popularity in datascience. Couple of years ago I thought Python web development is dying out slowly, but seems to have swung back quite a bit.
I don’t think it’s “this day and age”. I think that the reality is that TDD has never been the norm (even the article were lamenting over is 6 years old), for reasons you gave but also because it’s just not that good of a pattern. Is it useful? Probably. Is it useful relative to the trade off in shipping time? Less of an obvious answer.
.NET Core can deploy to Linux now.

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy...

It's also faster than Node. Significantly faster. I was troubleshooting a connection issue to a db from a .NET Core API so I set up a NodeJS API hitting the same db to isolate it to the connection. After I was done fixing things, I compared the API response speeds for the same thing. .NET Core outperformed Node dramatically just like in benchmarks.
If I build underwater real-estate, there are no laws governing it? There probably aren't laws anywhere in the world about it? Probably I can still be harassed if it's in national waters. But if it's in international waters? Nuclear reactor test site?
> fool both ends into thinking you weren't there and was kind of violating the spec.

Long-range USB (e.g. for conference rooms) has the same problem. The maximum one-way propagation delay is a hard restriction in the standard. You have to somehow cheat the host into thinking the device is busy before the peripheral at the far side is able to respond. To this day, I believe no standard solution exists, it seems everyone's reinventing the wheel in their FPGAs. Although it's only a niche application, standardization is unlikely [0]. BTW, FireWire did have a perfect solution to this problem because good networking was one of its design goals.

[0] And for relatively shorter runs it's not usually a problem - cascading USB hubs is good enough, it's how most active extension cables work - as one-port hubs.
"From my point of view as Polish citizen 911 is a problem that US developed for itself through their actions in the Middle East."

Dude, from my point of view as an American citizen, I agree.
The design damage from TDD is very real, I'm unsure if the complexity added is of any real value. But once you turn your mind to it, it becomes second nature. I wonder if people's woes about it are because it's hard to change?

Regardless, TDD doesn't work for my org, it's too expensive. Our business logic is very unstructured, requirements are built up over years of projects being layered on top of each other. Decisions about business logic are made on a whim and need to implemented quickly to support the rest of the organization. Given how quickly and randomly the work changes, I'm not tempted to implement anything further than automated smoke tests. Besides, I have a QA team that is triple the size of my development team, it's their responsibility to test the end to end solution.
So, you're arguing against guilt-tripping by guilt-tripping those who guilt-trip? Nice :-)
What a dream that would be. But unfortunately not super realistic on a project of any real size.
Sure, for new projects I choose Rust over C++ whenever feasible.

But a huge amount of the worlds software is written in C++, and will remain so for decades.

Getting some of that code to run well in WASM can be a big win for certain domains.
Most articles on the Scots Wikipedia are by an American who can’t speak Scots
So let's say you buy a game for $10 and the creator gets only $7 (as Apple keeps $3). But there could be an alterative app store, where the same game would be sold for $9, and the creator would get $8 (the store would keep $1). So the reason is, that with competition, the price of software could decrease and you would save money.

I don't mind that Apple keeps a large commission. But I mind the fact, that Apple has a monopoly on iOS software distribution, and the monopoly is always bad for the customers.
Pretty sure the parent comment was talking about the time to write the tests, not the time to execute it.
It helps that the Bill and Melinda Gates Foundation has a hyper focus on outcomes and a track record of delivering. It's an example of what is possible to accomplish when philanthropy is done well.

While I can understand and in some sense agree that it's unfortunate our current best solution to tackling some of these problems is for someone with a lot of resources and no bureaucratic entanglements to focus on solving the problem once and for all. I can also recognize that few governments are capable of solving it regardless of political philosophy.

I'm more than happy to celebrate a solution that works today over a hypothetical solution that hasn't been successfully deployed yet. Maybe I'm too pragmatic.
If you were able to do this I think you’d find card readers built into laptops would be much more ubiquitous. It’s very commonly an option on business laptops already (probably thanks to the US government making heavy use of contact smartcards).

And as for transactions on mobile phones, most of them have NFC as well; contactless payments could work there too.
Jane Street being the only company that anyone ever mentions when discussing OCaml is even worse in my opinion. It means the ecosystem is going to be heavily driven by their needs, not to mention that banks tend to have idiosyncratic development cultures.
Homebridge: Apple Homekit Adapter
You can compile languages like C/C++ and Rust to it. Sometimes this gives a performance boost, but most of the time it gives you just more uniform performance behavior.

Then you can compile stuff like Java or C# to it, but end up with huge runtime bundles. But you get much of the C# behavior from TypeScript without the huge runtime, because it compiles directly to JavaScript.
Just want to say thanks. This made my morning. :D
I use powershell full time and quite honestly I think it's better than bash. The main selling point for me was that I only need to learn posh and how it works vs having to learn 20 different utilities with varying UX.

The best example of this I think is ConvertFrom-Json vs something like jq. Jq's syntax is extremely difficult to learn, but with powershell I just built upon the knowledge I already had and got to use the same commands I use everywhere else.
> Apple allows all apps to access the iOS APIs

No: it allows very specific kinds of apps that follow very specific rules that are selectively enforced, to use iOS APIs.

That's the problem. You can't, for example, build an app that competes with the app store itself.
“I'm doing a (free) operating system” (1991)
> one test per bug fixed

this, and you should try to write the test before fixing the bug - you cannot trust a test that you haven't seen failing
Installing DOS on the IBM 5155 in 2020
Show HN: Subtrack – Track Subscriptions
An app that helps you track and manage your subscriptions. Available for iPhone, iPad and Mac.
I saw on hover where it would lead to, but I clicked anyway because the site deserved it. I listened to the whole song.
Verily, Google’s health-focused sister company, is getting into insurance
How to Make the Most of Direct Mail in Your Cross-Channel Strategy
Wouldn't you get that same confidence if you wrote verification tests instead of tests first?
A study on the impact of both methods? I don't understand how it can be claimed 'active' is better than 'passive'?
I'm not very familiar with the scientific landscape of Haskell or OCaml, but if you would allow an educated guess...

Languages like R, Python, Matlab, and Mathematica have a LOT of built-in capability in this area to do symbolic and numerical methods and data analysis kind of stuff (large sparse matrices... etc). You can do a ton in the high level language without ever dropping down to C or Fortran. So a scientist can just do their job without having to worry about how the plumbing works as others (open source community for Python and R) or vendors (Matlab and Mathematica) take care of that, which is a huge win.

Back when I thought about doing scientific work in Ada, Rust, OCaml, and Haskell, I was dissapointed to see that either there were many libraries missing that I would need, or the existing ones were incomplete. The solution is usually just to FFI to Python or C, but at that point, I think you lose a lot of the magic of sticking to 1 high level language. Just my 2 cents. If you're comfortable in doing all the scientific bits in C and just calling from OCaml, then you should be fine. On the data analysis side though, R or Python + Pandas just have sooo much inertia.

I'll add that this book's table of contents seems to have some really neat topics, but a lot are just a single page long and I still think a lot of areas (Ex: linear algebra) are going to be a lot less complete than what Python has to offer. With that being said, the scientific scene I'm seeing in this book is much farther along than I would've guessed, so that is a good sign.
AzureFunBytes – 8/27/2020 2 PM EDT – IaC, Terraform, and Azure with zdeptawa
No.

If you have a large, critical system you need tests. Whether you write the tests first or not is largely immaterial, the tests and functionality get merged and deployed together.

Once your system is of sufficient complexity, you need those tests to prevent regressions unless you’re working on something very isolated.
> We make bird baths and dog parks and cat trees and hummingbird feeders and hamster wheels...

For the entertainment of the creator. Maybe you are right that AGI will be entertained by watching humans turn into vegetables as they aimlessly watch a screen for hours at a time, but I suspect not.
Give it a try. Thought about that the same, but it is so in my muscle memory now that is not pulling me away from any flow :D
Gitlab Commit 2020: You belong here
I'm just trying to put GP's dubious numbers in their proper context. Of those 1000, how many would you estimate are killed without reasonable cause? Could it be 30? 300? 970? We shouldn't turn off our brains just because somebody said someone died. USA society is fine with the carnage on the highway and throughout the Middle East; I think we can deal with a tiny amount of carnage in order to improve.
+1 especially to the final point.

If there was a bug, this bug should be replicated in the test. You then solve the bug, make sure the test (and others pass), and you'll be (relatively) sure the bug will not be reintroduced with a later change.

Every bug you find is an "edge-case" you didn't anticipate. Leave it in the test for the future. I find that the "table test" approach of Go works surprisingly well with this. You just add a case to the table, and often that's all you have to do.
I used TDD for unit tests, less so when I have to start mocking things, not at all for E2E tests.
I agree with the last part, but the ordering isn’t crucial. For example you can stash your changes in the implementation to check that the test fails when the change is not present and passes when it is. For this (among other reasons) it is nice to have a test runner that re-runs when it detects file changes.

The ordering is one part of TDD that always bugged me- you have to write the tests first. But I often prefer to experiment and try a couple approaches before deciding on one. Having tests first would make a lot more overhead for that way of working.
I was born decades after the vaccine, but the reality of polio was prominent in my mind because a friend’s mom was left with a limp wrist after having polio as a child. So I was cheering for Dikembe Mutombo, one of my favorite NBA players, when I heard he was putting some of his fame and fortune towards fighting polio. On April 13, 2011, the Johns Hopkins Bloomberg School of Public Health gave Mutombo the Goodermote Humanitarian Award for his work against polio both globally and in Congo, his home country.
They said that about Addons on Desktop too...
That book was published in 2005, so I guess they will not be close competitors.