• MystikIncarnate@lemmy.ca
    link
    fedilink
    English
    arrow-up
    23
    arrow-down
    4
    ·
    edit-2
    7 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.

    • FooBarrington@lemmy.world
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      7 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.

      • friendlymessage@feddit.org
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        7 days ago

        I would hope that these kinds of parsers are not used in critical applications that could actually lead to catastrophic events, that’s definitely different to Y2K. There would be bugs, yes, but quite fixable ones.

        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.

        “There’s no glory in prevention”. I guess it’s hard to grasp nowadays, that mankind at some point actually tried to stop catastrophies from happening and succeeded

        • FooBarrington@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          7 days ago

          Even if such parsers aren’t used directly in critical systems, they’ll surely be used in the supply chains of critical systems. Your train won’t randomly derail, but disruptions in the supply chain can cause repair parts not to be delivered, that kind of thing.

          And you can be certain such parsers are used in almost every application dealing with datetimes that hasn’t been specifically audited or secured. 99% of software is held together with duct tape.

          • friendlymessage@feddit.org
            link
            fedilink
            arrow-up
            1
            ·
            7 days ago

            True. But I wouldn’t see this as extremely more critical than the hundreds of other issues we encounter daily in software. Tbh, I’d be glad if some of the software I have to use daily had more duct tape on it…

            • FooBarrington@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              7 days ago

              I think you might be underestimating the potential impact.

              Remember the Crowdstrike Windows BSOD? It caused billions in damages, and it’s the absolute best case scenario for this kind of issue. Our potential Y10K bug has a bunch of additional issues:

              • you don’t just have to patch one piece of software, but potentially all software ever written that’s still in use, a bunch of which won’t have active maintainers
              • hitting the bug won’t necessarily cause crashes (which are easy to recognize), it can also lead to wrong behavior, which will take time to identify. Now imagine hundreds of companies hitting the bug in different environments, each with their own wrong behavior. Can you imagine the amount of continuous supply chain disruptions?
              • fixes have to be thought about and implemented per-application. There’s no panacea, so it will be an incredible amount of work.

              I really don’t see how this scenario is comparable to anything we’ve faced, beyond Y2K.

    • friendlymessage@feddit.org
      link
      fedilink
      arrow-up
      7
      ·
      7 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.

      • LovableSidekick@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        6 days ago

        Not a storage problem but still a possible problem in UIs and niche software that assumes years have 4 digits or 4 characters. But realistically if our civilization is even still around then AI will be doing all that for us and it won’t be an issue humans even notice.

        • AppaYipYip@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          6 days ago

          This would be a great short story if for some reason the AI didn’t realize there was going to be a date issue and didn’t properly update itself causing it to crash. Then the problem is it was self sufficient for so long no humans know how to restart it or fix the issue, causing society to have a technology blackout for the first time in centuries.

          • LovableSidekick@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            6 days ago

            Yes, it’s kind of a familiar sci-fi trope - a supercomputer that has no built-in recovery mechanism in spite of being vitally important. Like the Star Trek episode where they made smoke come out of a robot’s head by saying illogical things.

      • chiliedogg@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        7 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.

    • boonhet@lemm.ee
      link
      fedilink
      arrow-up
      3
      ·
      7 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
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      5 days 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.

  • JayDee@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    7 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.

  • some_guy@lemmy.sdf.org
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    7 days ago

    Again?!

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

  • Lucy :3@feddit.org
    link
    fedilink
    arrow-up
    75
    ·
    8 days ago

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

    • Agent641@lemmy.world
      link
      fedilink
      arrow-up
      11
      ·
      7 days ago

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

      • Lucy :3@feddit.org
        link
        fedilink
        arrow-up
        5
        arrow-down
        1
        ·
        7 days ago

        Don’t worry, we’ll be extinct soon, hopefully. Maybe even before int32_t runs out. Unfortunately not soon enough to stop the humans impact on earth before the worst damage is done.

        • BlanketsWithSmallpox@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          7 days ago

          I’ll let you in on a secret.

          Humanity and the animals that we like will get through just fine.

          Humans in general and the vast majority of biodiversity will be fucked if it ever happens.

          I firmly believe it won’t. Too many good people in the world doing far more than the shitty ones.

  • Rusty@lemmy.ca
    link
    fedilink
    English
    arrow-up
    54
    ·
    8 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.

    • Ephera@lemmy.ml
      link
      fedilink
      English
      arrow-up
      10
      ·
      8 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.

    • Pennomi@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      8 days ago

      It’s a UX problem rather than a date format problem at that point. Many form fields require exactly 4 digits.

    • GissaMittJobb@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      8 days ago

      It’s going to be significantly more than the year 33000 before we run out of 64-bit epoch timestamps.

      The max value for signed 64-but epoch values is more than 292 billion years away, or 20 times the age of the universe itself.

      So yeah, we’re basically solid forever with 64-bit

    • kevincox@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      8 days ago

      it’s mostly solved already

      I wished I believe this. Or I guess I agree that it is solved in most software but there is lots of commonly used software where it isn’t. One broken bit of software can fairly easily take down a whole site or OS.

      Try to create an event in 2040 in your favourite calendar. There is a decent chance it isn’t supported. I would say most calendar servers support it, but the frontends often don’t or vice-versa.

    • toddestan@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      7 days ago

      I’ve been curious about that myself. On one hand, it still seems far away. On the other hand, it’s a bit over 13 years away now and I have gear actively in use that’s older than that today.

  • Gork@lemm.ee
    link
    fedilink
    arrow-up
    37
    ·
    8 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!

  • Jamablaya@lemmy.world
    link
    fedilink
    arrow-up
    16
    ·
    edit-2
    7 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.

  • BmeBenji@lemm.ee
    link
    fedilink
    arrow-up
    17
    arrow-down
    1
    ·
    7 days ago

    We’re being short-sighted

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

  • chetradley@lemm.ee
    link
    fedilink
    arrow-up
    17
    arrow-down
    1
    ·
    8 days ago

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