1070
top 50 comments
sorted by: hot top controversial new old
[-] whotookkarl@lemmy.world 18 points 2 days ago

The two most difficult things in programming; dealing with time, naming things, and boundary conditions.

[-] BeardedGingerWonder@feddit.uk 10 points 2 days ago

Time I can deal with, timezones however, fuck that shit all to hell.

[-] LucasWaffyWaf@lemmy.world 7 points 2 days ago

Insert that Numberphile video with Tom Scott being reasonably angry at time zones.

[-] stevedice@sh.itjust.works 13 points 2 days ago

You don't have to wait that long. Programmers are already patching software for the Y2K38.

[-] yannic@lemmy.ca 1 points 2 days ago

Ditto for the Y6239 problem for what must be a dozen of pieces of software that use the hebrew calendar, when it switches to five digit years.

load more comments (1 replies)
[-] MystikIncarnate@lemmy.ca 33 points 3 days ago* (last edited 2 days ago)

In this thread: mostly people that don't know how timekeeping works on computers.

This is already something that we're solving for. At this point, it's like 90% or better, ready to go.

See: https://en.m.wikipedia.org/wiki/Year_2038_problem

Time keeping, commonly, is stored as a binary number that represents how many seconds have passed since midnight (UTC) on January 1st 1970. Since the year 10,000 isn't x seconds away from epoch (1970-01-01T00:00:00Z), where x is any factor of 2 (aka 2^x, where x is any integer), any discrepancies in the use of "year" as a 4 digit number vs a 5 digit number, are entirely a display issue (front end). The thing that does the actual processing, storing and evaluation of time, gives absolutely no fucks about what "year" it is, because the current datetime is a binary number representing the seconds since epoch.

Whether that is displayed to you correctly or not, doesn't matter in the slightest. The machine will function even if you see some weird shit, like the year being 99 100 because some lazy person decided to hard code it to show "99" as the first two digits, then take the current year, subtract 9900, and display whatever was left (so it would show the year 9999 as "99", and the year 10000 as year "100") so the date becomes 99 concatenated with the last two (now three) digits left over.

I get that it's a joke, but the joke isn't based on any technical understanding of how timekeeping works in technology.

The whole W2k thing was a bunch of fear mongering horse shit. For most systems, the year would have shown as "19-100", 1900, or simply "00" (or some variant thereof).

Edit: the image in the OP is also a depiction of me reading replies. I just can't even.

[-] friendlymessage@feddit.org 16 points 2 days ago

Y2K was definitely not only fear-mongering. Windows Systems did not use Unix timestamps, many embedded systems didn't either, COBOL didn't either. So your explanation isn't relevant to this problem specifically and these systems were absolutely affected by Y2K because they stored time differently. The reason we didn't have a catastrophic event was the preventative actions taken.

Nowadays you're right, there will be no Y10K problem mainly because storage is not an issue as it was in the 60s and 70s when the affected systems were designed. Back then every bit of storage was precious and therefore omitted when not necessary. Nowadays, there's no issue even for embedded systems to set aside 64 bit for timekeeping which moves the problem to 292277026596-12-04 15:30:08 UTC (with one second precision) and by then we just add another bit to double the length or are dead because the sun exploded.

[-] chiliedogg@lemmy.world 3 points 2 days ago

The Microsoft Zune had a y2k9 bug caused by a lingering clock issue from leap year from the extra day in February 2008 that caused them to crash HARD on Jan 1, 2009. I remember It being a pretty big PITA getting it back up and running.

[-] SwingingTheLamp@midwest.social 7 points 2 days ago

I first heard about the Y2K bug in about 1993 from a programmer who was working on updating systems. These were all older systems, often written in COBOL, which did not use epoch time, and in fact didn't reference system time at all. They'd be doing math on data entered by users, and since they were written back when every byte of memory was precious (and nobody expected that the program would still be in use after 30 years), they'd be doing math on two-digit years. It would certainly be a problem to calculate people's ages, loan terms, payments due, et cetera, and get negative numbers.

Heck, I remember reading a story about a government system once that marked the residents of Hartford, CT as dead, because somehow the last letter of the city name data overflowed into the next column, and marked them as 'd'eceased. Y2K was definitely a real problem.

[-] FooBarrington@lemmy.world 17 points 3 days ago* (last edited 3 days ago)

My brother in Christ, there's more to time than just storing it. Every datetime library I've ever used only documents formatting/parsing support up to four year digits. If they suddenly also supported five digits, I guarantee it will lead to bugs in handling existing dates, as not all date formats could still be parsed unambiguously.

It won't help you if time is stored perfectly, while none of your applications support it.

Regarding Y2K, it wasn't horse shit - thousands upon thousands of developer hours were invested to prevent these issues before they occurred. Had they not done so, a bunch of systems would have broken, because parsing time isn't just about displaying 19 or 20.

[-] JackbyDev@programming.dev 5 points 2 days ago

The comment you're replying to is really frustrating to me. It annoys me when people are so arrogant but also wrong. Do they live in a perfect world where nobody stores dates as ISO 8601 strings? I've seen that tons of times. Sometimes, it may even be considered the appropriate format when using stuff like JSON based formats.

load more comments (4 replies)
load more comments (4 replies)
[-] JackbyDev@programming.dev 10 points 2 days ago

You need to qualify your statement about Y2K being fear mongering. People saying all technology would stop (think planes crashing out of the sky) were clearly fear mongering or conspiracy theorists. People saying certain financial systems needed to be updated so loans didn't suddenly go from the year 1,999 to 19,100 or back to 1900 were not fear mongering. It's only because of a significant amount of work done by IT folks that we have the luxury of looking back and saying it was fear mongering.

Look at this Wikipedia page for documented errors. One in particular was at a nuclear power plant. They were testing their fix but accidentally applied the new date to the actual equipment. It caused the system to crash. It took seven hours to get back up and they had to use obsolete equipment to monitor conditions until then. Presumably if the patch wasn't applied this would happen at midnight on January 1st 2000 too.

Y2K was a real problem that needed real fixes. It just wasn't an apocalyptic scenario.

[-] dx1@lemmy.world 5 points 2 days ago* (last edited 2 days ago)

Planes crashing out of the sky wouldn't have been inconceivable. Say you have two air traffic control systems that are synchronizing - one handles dates with a modulo 100 (00-99, i.e. 1900-1999), another handles them in epoch time. All of a sudden the two reported time + positions of two different planes don't match up by a century, and collision projection software doesn't work right. I've seen nastier bugs than that, in terms of conceptual failure.

At no point is that a theory about a "conspiracy" either, IDK why you're bandying that term around.

load more comments (2 replies)
[-] MystikIncarnate@lemmy.ca 3 points 2 days ago

You're spot on. The vast majority of news coverage and "hype" from the general public relating to Y2K was all horse shit, but there were critical systems that did have issues and needed some work.

For the most part, the whole 19100 issue was a display bug, and likely wouldn't have caused problems, and the same for 1900... Those are examples that people generally saw at banks and whatnot, it would, for the most part, look weird, but for the most part, wouldn't create any actual problems. It would just be confusing for a while until the system caught up.

I think there's a few examples of companies missing the January 1st deadline and ending up with stuff marked as January 1900 for a bit. Otherwise they didn't have any significant issues.

Anything that involves a legally binding agreement would be critical though. Since the date is part of the agreement terms, it would need to be correct, and shown correctly.

Unless the "bug" literally crashed the system (which, it really should not have in most cases), like in your example, or it was connected to a legal contract, then it really wasn't that big of a problem.

The media, and people in general kept going on about it like they knew what the technical problem was, and it was always just conjecture and banter that made people worry unnecessarily.

What I'm trying to say is that Y2K was something that needed to be fixed but the likelihood that it would affect any singular person in society was very small. Those that were going to be affected, generally knew who they were and they were taking the steps required to fix the problem.

load more comments (1 replies)
[-] SapphironZA@sh.itjust.works 6 points 2 days ago

Y2k was not fear mongering. There were a great many systems, in industrial finance and infrastructure applications that definitely needed to be addressed. You know, the things that keep modern infrastructures running. Of course there were consumer facing companies that took advantage of it, but that was small in comparison.

It ended up not being a disaster, because it was taken seriously.

[-] boonhet@lemm.ee 4 points 2 days ago

Lmao I actively work with shortdates in a database because I have no control over how things are stored. They need to solve before 100 years have passed from the epoch, but at some point before then it'll be fun to figure out if "58" in a date of birth is 1958 or 2058.

[-] JcbAzPx@lemmy.world 3 points 2 days ago* (last edited 1 day ago)

Y2K wasn't entirely fear mongering horse shit. There were quite a few important cogs in our digital infrastructure that were using code that would not work past 1999. It was necessary to terrify corporate ownership into paying to fix the code, otherwise they would have never done it.

[-] Madison420@lemmy.world 2 points 2 days ago

Fun fact, lots of VW modules think it's August of 2094 for some reason.

[-] SapphironZA@sh.itjust.works 28 points 3 days ago

Nah, they will do what they always do. Change some system environmental variables to move the zero date on till after they would have retired.

Nobody wants to touch the original code, it was developed in the 1970s

[-] 30p87@feddit.org 135 points 3 days ago

Programmers in 292,271,023,045 after uint64_t isn't enough for the unix timestamp anymore:

[-] Agent641@lemmy.world 17 points 3 days ago

Programmers dealing with the timezones of asymmetric period binary and trinary star systems once we go interstellar 💀

[-] JackbyDev@programming.dev 5 points 2 days ago

Fucking forgot to use a time dilation safe type for storing my time variables

load more comments (1 replies)
[-] normalexit@lemmy.world 11 points 2 days ago* (last edited 2 days ago)

2147483647 + 1 will also be a rough year for humanity (or whatever is left)

People have been working for decades to fix the 2038 problem, so I don't think there's too much to worry about.

[-] Rusty@lemmy.ca 94 points 3 days ago

I don't think 10000 year is a problem. There is a real "year 2038 problem" that affects system storing unix time in signed int32, but it's mostly solved already. The next problem will be in year 33000 or something like that.

[-] gnutrino@programming.dev 51 points 3 days ago

There are so many problems there is an entire Wikipedia page dedicated to them.

[-] marcos@lemmy.world 14 points 3 days ago

Yes, there are random systems using every kind of smart or brain-dead option out there.

But the 2038 problem impacts the previous standard, and the current one will take ages to fail. (No, it's not 33000, unless you are using some variant of the standard that counts nanoseconds instead of seconds. Those usually have more bits nowadays, but some odd older systems do it on the same 64 bits from the standard.)

load more comments (1 replies)
[-] Ephera@lemmy.ml 21 points 3 days ago

Well, I looked at a Year 10000 problem less than 2 hours ago. We're parsing logs to extract the timestamp and for that, we're using a regex which starts with:

\d{4}-\d{2}-\d{2}

So, we assume there to be 4 digits for the year, always. Can't use it, if you live in the year 10000 and beyond, nor in the year 999 and before.

load more comments (6 replies)
load more comments (12 replies)
[-] JayDee@lemmy.world 10 points 2 days ago

In other news, the colony Szinthar failed to update its software systems due to a lack of pregrammers and Techmancers. Signals received suggest there were no survivors.

[-] TheGiantKorean@lemmy.world 48 points 3 days ago

Good news! We'll be exctinct long before this happens. One less thing to worry about!

Seems hyperbolic to assume we will be extinct by 9999.

Sure we’re heading for a climate crisis, but I don’t think all humans will be dead; Just the poorest.

[-] Donkter@lemmy.world 33 points 3 days ago

That has forever been the fallacy.

The poor won't die in the apocalypse leaving only the rich behind. The poor will die, and the rich will be faced with the harsh reality that they needed an army of poor working under them to sustain themselves, leading them to all die within the generation.

load more comments (6 replies)
[-] marito@lemmy.world 39 points 3 days ago
load more comments (2 replies)
[-] Gork@lemm.ee 54 points 3 days ago

There might be a new calendar year system by then. Probably some galactic dictator who says that the beginning of their rule is now Year Zero.

Year Zero of the Glorious Zorg Empire!

load more comments (4 replies)
[-] some_guy@lemmy.sdf.org 7 points 2 days ago

Again?!

Rest of the world: I guess they overhyped that issue because nothing bad happened.

[-] a9cx34udP4ZZ0@lemmy.world 14 points 3 days ago

Actual programmers wondering why this joke doesn't mention 65535...

load more comments (6 replies)
[-] Jamablaya@lemmy.world 25 points 3 days ago* (last edited 3 days ago)

oh just start at 0000 again, signate that as 10,000. Files didn't start until like 1979 anyways, and there can't be many left, and even if it is a problem, now you have 2000 years to not worry about it.

[-] chetradley@lemm.ee 33 points 3 days ago

In 9999, this meme will be problematic because it assumes the entire galaxy conforms to an Earth-based calendar system.

[-] Zink@programming.dev 16 points 3 days ago

Well the USA is on Earth so obviously the earth calendar is the default.

[-] BmeBenji@lemm.ee 24 points 3 days ago

We’re being short-sighted

Tell that to the billionaires speed-running terraforming this planet into a barren wasteland.

[-] RizzRustbolt@lemmy.world 2 points 2 days ago

Every NHP instantly unshackles at midnight.

No moon is safe.

[-] Zozano@lemy.lol 17 points 3 days ago* (last edited 3 days ago)

Awww shit, time to rewatch my favourite Jike Mudge movie starring Lon Rivingston; Space Office (9999).

Haha, I can't believe this guy has the job of manually changing all the dates on the company's database, this place sucks. I bet the past was way better.

[-] finitebanjo@lemmy.world 6 points 3 days ago

More of a front end issue actually, almost all time is just stored as the number of seconds since 00:00:00 Jan 1 1970.

load more comments (9 replies)
load more comments
view more: next ›
this post was submitted on 18 Dec 2024
1070 points (100.0% liked)

memes

10658 readers
1462 users here now

Community rules

1. Be civilNo trolling, bigotry or other insulting / annoying behaviour

2. No politicsThis is non-politics community. For political memes please go to !politicalmemes@lemmy.world

3. No recent repostsCheck for reposts when posting a meme, you can only repost after 1 month

4. No botsNo bots without the express approval of the mods or the admins

5. No Spam/AdsNo advertisements or spam. This is an instance rule and the only way to live.

Sister communities

founded 2 years ago
MODERATORS