Hacker News new | past | comments | ask | show | jobs | submit
If the user is capable of setting an option which breaks everything then your code isn’t correct.

That’s the whole point, you can find all of these things which would take far too much manual effort.

The zero, one, infinity rule isn't directly relevant here but it's close enough to be worth mentioning IMO.

https://en.wikipedia.org/wiki/Zero-one-infinity_rule

The rule is about data structures but I feel it has wider applicability user choices in software. You should either give the user no choices, give them individual binary choices, or let them pick anything that could theoretically be valid and design your system to assume they'll sometimes pick invalid options which will need to be handled appropriately.

Here the user was the deployer and presumably owner of the deployment. An overall setup is only correct if they and the software define a setup that happens to be correct. The software is incorrect if it doesn't support the incorrect setup they require.
> The software is incorrect if it doesn't support the incorrect setup they require.

Is that what you intended to type?

Software is not required to support the requirements of every potential user. Only the ones they mean to support. That’s why Porsche and BMW ignore people complaining about how expensive they are. You aren’t their customer and they don’t want you.

A family of eight who buys a (classic) Porsche bought an incorrect car unless it is for an expensive gag like putting sugar in the gas tank then an EV would be incorrect, no?
As written you have stated that Porsche is wrong for ignoring this family's complaints. Because they didn't support an unsupported configuration.
You are confusing the wants of a manufacturer with a system that is being used by a person. The person owns the system that is either correct or incorrect for their needs and the manufacturer takes money and screws off. Or, you have the "soup Nazi" as proposed with the manufacturer makes sure you use the system as they imagined and not with a database setup beyond their control.
The user may be capable of undervolting the logic, issuing directed EM attacks, accessing JTAG, etc. Good luck.
The user doesn't have to be someone that grew up on Defcon talks and CTFs anymore though. Any Joe/Jane off the street can ask an LLM what is a JTAG or what is a 90 nop and keep asking until they're satisfied. So we have to assume the user is capable of all of those things.