338
Once in a lifetime they said…
(lemmy.nz)
1. Be civil
No trolling, bigotry or other insulting / annoying behaviour
2. No politics
This is non-politics community. For political memes please go to !politicalmemes@lemmy.world
3. No recent reposts
Check for reposts when posting a meme, you can only repost after 1 month
4. No bots
No bots without the express approval of the mods or the admins
5. No Spam/Ads/AI Slop
No advertisements or spam. This is an instance rule and the only way to live. We also consider AI slop to be spam in this community and is subject to removal.
A collection of some classic Lemmy memes for your enjoyment
FYI, there's going to be another Y2K.
https://en.wikipedia.org/wiki/Year_2038_problem
Can we please just handle thing one y at a time.
Isn't this one already largely patched including most 32-bit operating systems that were still getting updates like 20 years ago?
That was my impression as well, but we also really shouldn't underestimate the remaining percentage of unpatched software, especially for embedded software.
We are building hardware with software included right now, which will still be on roads, in doctor's offices, broadcast stations, manufacturing lines, water pumps etc. in 2038.
And I can guarantee you that some of the hardware manufacturers will cheap out and put in too little memory for a larger clock.
Mainly because no customer asks for it at this point, but also because they won't be liable in a decade from now.
Why would you use a signed int to represent system time...
In order to be able to reference times prior to the epoch. If you made the system clock unsigned, all that math would still break if you did calculations against it after the final bit flipped.
At the time all this was standardized, no one knew we'd ever have gigabytes of RAM, terabytes of storage, etc. 32 bits for a clock was already expensive and they figured we wouldn't be using any of this software by 2038.
64bit wasn't widely adopted when they had to fix the previous datetime crisis. The permanent solution is to upgrade your system to use x64 signed dates. Many systems are already starting to account for this
As the article mentions, the biggest problem will be embedded systems that get forgotten about and never get updated… many many things will break at that time, unexpectedly, and in subtle ways. As a normal consumer, your up-to-date devices like mobile phone and laptop should^TM^ be unaffected.
Doesn't need to be 64 bit to be unsigned... And the system clock generally only goes up, so no need to represent system time as earlier than 1970...
If you want computers to not have an arbitrary line in the sand when referring to the past, you need to be able to do calculations with time from before the epoch, that's why it needs to be signed.
Off the top of my head, working out the age of someone born before 1970 is going to be a calculation that happens countless times a day
You generally don't need the precision of seconds for that sort of calculation however, so can use a signed int representing date rather than datetime for that.
"Generally" is doing a lot of heavy lifting in your responses
Unless it covers all use cases, it's not good enough, because that's what we basically already have today.
We all settled on using seconds (and later smaller increments) since the 1970 epoch across systems because it makes moving data around easier.
It's better to have one source of truth value and then you derive everything else from that, keeping a 2nd counter of days (which would also need to be signed, there's no first date of all time) rather than just doing some maths when you need it isn't good system design