The sun outputs 3.91026 W. If you captured all that energy with 100% efficiency, you would need 1.3\*1036 hours or roughly 110^22 times the age of the universe to collect enough energy.
That's incidentally roughly the estimated number of stars in the universe.
So if you put a dyson sphere around every star in the universe, right after the big bang (ignoring that stars didn't form instantly after the big bang) and you ran them until today, then you'd have just about enough energy to crack one wallet with current tech.
Considering that you'd need a paradigm-breaking revolutionary and incredibly expensive device to do so, I'd find it hard to believe that you could stay under the radar with it.
What I'd expect to happen is that some big corporation and/or university manages to build a quantum computer capable of breaking 256bit encryption, and quite instantly after the announcement bitcoin will tank into nothingness or will change the algorithm to something quantum-computer safe. Well before some shady actor will get their hands on a quantum computer to crack wallets.
Bitcoin private keys are 256 bit long. That means, there are 115792089237316195423570985008687907853269984665640564039457584007913129639936 (1.1510^77) possible private keys.
Say you are using a bitcoin miner that's roughly 4x as fast as the curretly fastest one at 1PH/s (11015), they you'll need roughly 1\*1062 seconds or 310^54 years.
Lets say you got a million of these miners, then you are down to 31048 years, or 2\*1038 times as long as the universe has existed.
I was going to calculate how much electricity this would consume and how expensive it would be, but the answer to that is plainly "too much to imagine".
At that point though the whole concept of bitcoins will be moot. If quantum computers can crack lost wallets they can also crack active wallets, and at that point there's no reason to buy bitcoin at all, which will tank the value of bitcoin making it mostly not worthwhile to crack wallets.
So if we get to that point, there will be one proof-of-concept wallet crack, and instantly after that bitcoin will cease to exist in any relevant fashion.
The US is what happens if you push enshitification on a national scale for too long.
You start with a genuenly good setup. Then you reduce investment, cut corners and reduce spending as much as you can to squeeze out every possible bit of profit.
That works for a while, because you can coast along on prior investments, but at a certain point the game is over and all you are left with is a tide of shit that nobody wants anymore.
To even consider that projects carried mostly by volunteers and underpaid staff making a meager living off donations can rival the products of the world's largest software corporations is laughable, and yet here we are.
And not only because FOSS alternatives have gotten better over the years, but mostly because big CSS projects have tanked in quality.
Symbol names can be outdated as well, but what's worse is they can be flat-out wrong.
Real-life example that I had at my last job:
var isNotX = isX()
// somewhere else in the code:
var isX = isX()
fun isX() {
// Code returns isNotX
}
That part of the code had a bug and it wasn't clear whether the function should return X or not X (the function was much more complex but returned a boolean).
A comment could have given context and/or be used as parity check for which implementation would have been correct.
This way I had to step through the whole flow just to figure out what it's doing and what it's supposed to do.
Harry Potter, especially in the first few books, is really not hard fiction at all. Rowling's worldbuilding is only there to make for a nice, somewhat magical backdrop for a children's story. Close to none of the in-universe rules she sets up really work if you look at them hard enough.
It starts with Wingardium Leviosa (and many other spells) blatantly breaking the laws of thermodynamics, thus allowing for infinite energy generation and thus infinite matter generation, but this continues not only throughout the magic system but also throughout every other system she sets up. Because most of it is nothing but a whimsical caricature of real things.
The money system is a caricature of the old British pre-decimal £sd money system.
Quidditch is a caricature of football (thousands of ways to perform a foul), rugby (brutal tackling and violence on the pitch) and cricket (a game can last for months) rolled into one.
The house system and house cup are only slightly embellished versions of what exists in real-life British boarding schools.
Just a few examples. The books are specifically not written in a rational-logical way. Attacking that is so easy that it's just boring. It's like proving that raindeer noses don't glow bright or that gingerbread lacks the static properties to be used to build life-sized houses for witches.
Was that Harry Potter and the methods of rationality?
I read the first dozen or so chapters maybe 10 years ago, until I realized that the total number of chapters approaches infinity and it got pretty boring after some time.
Not only are generally experienced developers really valuable, but developers experienced with the project they work on.
It takes a long time to actually understand everything in a large project, and if you do, you save a ton of time because you just know a lot of context already. No need to research or figure things out, you just know.
That's why the constant reorgs in larger corporations are incredibly hurtful to performance. If you want performance, let people stick to the few projects they know instead of switching stuff around all the time.
I know it was just an example, and examples are always contrived. It was just a good example to show how complexity can increase a lot if you use classes/types as glorified comments.
This total denial of the existence of comments, which is a common attitude right now, can easily do more harm than good, when you add code not for functionality but instead just to have more space for symbol names to put text into.
The project I worked on in my last job suffered a lot from this. It would lead to some really weird patterns, like e.g. this:
class BaseCommand {
var commandType
}
class CreateCommand extends BaseCommand {
public CreateCommand() {
this.commandType = CREATE;
}
}
We had dozens and dozens of classes that didn't actually contain any actual code, but were just flavour for "readability", which in turn just created garbage lines of code and all that trash would negate any potential benefits to readability. And since the code was spread out over so many classes it would mean that even simple changes would require touching tons of files.
I had, for example, a very simple 1 Story Point task to do. The whole task was "rename a variable", nothing more than that. I had to change 40 files. Not an exaggeration, it really was 40 files.
Code is for code, comments and external documentation are for documentation. Don't abuse one for the other.
Of course. That's one of the basic requirements for something to be an actual hash function.