Mainly because Microsoft wants to have "connected standby": the CPU is running in a low power mode (not powered off like "old" S3 sleep), can be turned on periodically and can turn on other devices even when the computer is "sleeping".
My Zen2 based Lenovo laptop has 6-7 hours of battery when doing basic tasks in both Windows and Linux, but sleep on Linux lasts a week while on Windows it's empty in 24 hours.
> Mainly because Microsoft wants to have "connected standby"...
And that is OK, as long as they provide a way for you to disable it. I do not want my laptop to be doing things when I put it in sleep mode. Nothing at all. Save battery life above all else when sleeping. But Microsoft does not appear to provide a way to do that. At least none that I can see.
Macs have that too, just implemented well. In addition, CPUs with connected standby don’t have the normal sleep so even on linux they run in connected standby. Maybe its less buggy in your case? Consider yourself lucky, lots of people encounter problems with sleep on linux
I was looking into hibernation on my Framework 13 with Ubuntu. Debian doesn't support it with SecureBoot enabled. Now you might say "just disable SecureBoot", but that is a whole new concept to understand.
I've found suspend performance has improved since upgrading to a kernel that supports the AMD 7640U NPU cores. I have no concrete evidence of that though.
I'm happy to accept poorer sleep performance to have a repairable laptop and Linux OSS (with good support), but I wouldn't say its problem free.
And it can fail in great ways. Last example: I asked claude for a non-trivial backup and recovery script using restic. I gave it the whole restic repo and it still made up parameters that don't exist in the code (but exist in a pull request that's been sitting not merged for 10+ months).
Interesting. I don't think I've seen hallucinations at that level when it's referencing source code.
Though my workflow always starts in plan mode where Claude is clearly more thorough (which is the reason it takes 10x as long as going straight to impl). I rarely skip it.
It will be a mix. There is certainly still a lot which can be done on the demand side, e.g. when to cool a cool storage house during the day, or when to run certain production lines.
SNI routing is such a bad way to do what should be L3 problem that people implemented PROXY protocol to send information about user's endpoint address without doing MITM.
All desktop/mobile OSes today use "Stable privacy addresses" for inbound traffic (only if you are hosting something long-term) and "Temporary addresses" for outbound traffic and P2P (video/voice calls, muliplayer games...) that change quickly (old ones are still assigned to not break long-lived connections but are not used for new ones).
And the worst part about CGNAT is that you have two bad solutions:
Either EIM/EIF (preferably with hairpinning) where you can practically do direct connections but you have to limit users to a really low number of "connections" breaking power users.
Or EDM/EDF where users have a higher number of "connections" but it's completely impossible to do direct connections (at least not in any video/voice calling system).
My Zen2 based Lenovo laptop has 6-7 hours of battery when doing basic tasks in both Windows and Linux, but sleep on Linux lasts a week while on Windows it's empty in 24 hours.