• MystikIncarnate@lemmy.ca
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    2 hours 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).

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

  • SapphironZA@sh.itjust.works
    link
    fedilink
    arrow-up
    3
    ·
    1 hour 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

  • finitebanjo@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    3 hours 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.

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

  • Letsdothis@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    4
    ·
    4 hours ago

    “Were being short-sighted”

    Lol Picard maneuver. Pretty sure your opinion wasn’t asked for.

  • BmeBenji@lemm.ee
    link
    fedilink
    arrow-up
    21
    arrow-down
    2
    ·
    12 hours ago

    We’re being short-sighted

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

    • dutchkimble@lemy.lol
      link
      fedilink
      arrow-up
      5
      ·
      7 hours ago

      The trick is to unplug our computer a few seconds before midnight on December 31st, 9999 and then plug in the wire again

    • dependencyinjection@discuss.tchncs.de
      link
      fedilink
      arrow-up
      19
      arrow-down
      6
      ·
      14 hours ago

      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
        link
        fedilink
        arrow-up
        29
        arrow-down
        1
        ·
        13 hours 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.

        • DogWater@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          8 hours ago

          That’s true until it isn’t. Automation is on its way. Marching ever onward.

          The factory I work in built a new building this year that employs 1/4 of the workers as the next newest one and does 2.5x the output.

          • GenosseFlosse@feddit.org
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            2 hours ago

            You still need loaders, drivers, retailers to get anything to the customer. A lot of rich ski and holiday towns can’t staff the stores and Cafe’s, because the employees can’t afford to pay rent in the same towns, so they face a similar issue…

  • Lucy :3@feddit.org
    link
    fedilink
    arrow-up
    115
    ·
    18 hours 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
      7
      ·
      5 hours 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
        4
        arrow-down
        1
        ·
        12 hours 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
          4 hours 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.

  • chetradley@lemm.ee
    link
    fedilink
    arrow-up
    32
    arrow-down
    1
    ·
    15 hours ago

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

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

    • toddestan@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      3 hours 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.

      • marcos@lemmy.world
        link
        fedilink
        arrow-up
        11
        ·
        17 hours 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.)

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

        • Ephera@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          ·
          15 hours ago

          Do you think so? Surely, it’s able to handle dates before the year 999 correctly, so I’d also expect it to handle years beyond 10000. The \d{4} is just our bodged assumption, because well, I have actually never seen a log line with a year that wasn’t 4 digits…

          • itslilith@lemmy.blahaj.zone
            link
            fedilink
            arrow-up
            6
            ·
            15 hours ago

            Kinda?

            Each date and time value has a fixed number of digits that must be padded with leading zeros.

            To represent years before 0000 or after 9999, the standard also permits the expansion of the year representation but only by prior agreement between the sender and the receiver.[21] An expanded year representation [±YYYYY] must have an agreed-upon number of extra year digits beyond the four-digit minimum, and it must be prefixed with a + or − sign[22] instead of the more common AD/BC (or CE/BCE) notation; by convention 1 BC is labelled +0000, 2 BC is labeled −0001, and so on.[23]

            • Ephera@lemmy.ml
              link
              fedilink
              English
              arrow-up
              3
              ·
              12 hours ago

              Oh wow, I really expected the standard to just say that however many digits you need are fine, because you know, maths. But I guess, this simplifies handling all kinds of edge cases in the roughly 7975 years we’ve still got.

    • Pennomi@lemmy.world
      link
      fedilink
      English
      arrow-up
      12
      ·
      17 hours ago

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

    • kevincox@lemmy.ml
      link
      fedilink
      arrow-up
      4
      ·
      14 hours 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.

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        11
        ·
        edit-2
        13 hours ago

        A common method of storing dates is the number of seconds since midnight on Jan 1, 1970 (which was somewhat arbitrarily chosen).

        A 32-bit signed integer means it can store numbers between 231 through 231 - 1 (subtracting one comes from zero being effectively a positive number for these purposes). 231 - 1 seconds added to Jan 1, 1970 gets you to Jan 19, 2038.

        The solution is to jump to 64-bit integers, but as with Y2K, there’s a lot of old systems that need to be updated to 64-bit integers (and no, they don’t necessarily have to have 64-bit CPUs to make that work). For the most part, this has been done already. That would put the date out to 292,277,026,596 CE. Which is orders of magnitude past the time for the sun to turn into a red giant.

        • pfm@scribe.disroot.org
          link
          fedilink
          arrow-up
          2
          ·
          11 hours ago

          Maybe it’s not LI5, but I certainly enjoy your explanation for including several important facts and context. I respect your skill and knowledge, dear internet stranger.

        • gandalf_der_12te@discuss.tchncs.de
          link
          fedilink
          arrow-up
          1
          ·
          11 hours ago

          midnight on Jan 1, 1970 (which was somewhat arbitrarily chosen).

          well not so much, as far as I remember the first end-user computers became available in 1971 or 1972 or something, and the internet also underwent some rapid developments in that time, so the date has a certain reasoning to it.

      • teije9@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        7
        ·
        13 hours ago

        Unix computers store time in seconds that have passed since january first 1970. one there have been too many seconds since 1970, it starts breaking. ‘signed’ is a way to store negative numbers in binary. the basics of it are: when the leftmost bit is a 1, it’s a negative number (and then you do some other things to the rest of the number so that it acts like a negative number) so when there have been 09999999 seconds since 1970, if there’s one more second it’ll be 10000000, which a computer sees as -9999999.

    • GissaMittJobb@lemmy.ml
      link
      fedilink
      arrow-up
      7
      ·
      17 hours 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

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        13 hours ago

        33,000 would come from other programs that store the year as a 16-bit signed int. Year 32,768, to be precise.

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

    • ERROR: Earth.exe has crashed@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      1
      ·
      18 hours ago

      Lol China used to use “Year 1” right after Xinhai Revolution.

      Its “民国” (ROC) followed by the year number

      Example: 民国一年 ROC Year One (aka 1912)

      (ROC stand for Republic of China, btw)

      Then the communists kicked the KMT out, and I think the ROC government in exhile in Taiwan stopped using it.

      • randint@lemmy.frozeninferno.xyz
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 hours ago

        and I think the ROC government in exhile in Taiwan stopped using it.

        Actually it is still used. It’s everywhere in legal documents, government documents and stuff. Though people more commonly say 2024 instead of 民國113年.