Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Y2K38 Watch Starts Saturday

Posted by kdawson on Tue Jan 15, 2008 03:42 PM
from the not-a-good-day-for-a-loan dept.
Jon Masters writes "I just wanted to remind everyone that Saturday, January 19th 2008 will mark the beginning of the 30-year countdown to the Y2K38 bug, when Unix time will overflow 32 bits. Some 30-year loan calculation software might start having problems with this over the weekend."
+ -
story

Related Stories

This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by ucblockhead (63650) on Tuesday January 15 2008, @03:44PM (#22056772) Homepage Journal
    I plan on making a mint using my mad C skillz in 2036 and 2037, just like all those Cobol guys who came out of retirement in 1998.
  • I can get a thirty-year $250,000 loan with monthly payments of -$1,200.
  • by corsec67 (627446) on Tuesday January 15 2008, @03:47PM (#22056836) Homepage Journal
    And, wouldn't 50 years or longer loan terms have shown this before now?
  • by Hatta (162192) on Tuesday January 15 2008, @03:48PM (#22056846) Journal
    Remind me again when it's 30 minutes.
  • Envy (Score:5, Funny)

    by argmanah (616458) * <.moc.oohay. .ta. .hanamgra.> on Tuesday January 15 2008, @03:50PM (#22056928)
    I envy the programmers who had the foresight to program their application using a 2 digit year field. They won't have to worry have to worry about this problem until 2099, and by then we won't be using the same systems we do today anyways!
  • My date of birth (Score:5, Interesting)

    by nogginthenog (582552) on Tuesday January 15 2008, @03:51PM (#22056940)
    Is 123456789, Unix time. No shit. 29 Nov 1973. Guess I'm a confirmed geek then?
    • by scaverdilly (902859) on Tuesday January 15 2008, @04:08PM (#22057248)
      Yeah, but 1234567890 comes just short of Feb 14th in a year (Fri, 13 Feb 2009 23:31:30 UTC).
      It just goes to show that true geeks will only ever almost get close enough to women for romanitc encounters.
  • by Malevolent Tester (1201209) on Tuesday January 15 2008, @03:55PM (#22057016) Journal
    Is this going to affect the Duke Nukem Forever release?
  • Incorrect.... (Score:5, Informative)

    by gweihir (88907) on Tuesday January 15 2008, @04:07PM (#22057232)
    Older flavours of Unix will wrap-around on 32 bit int. More modern systems use time_t instead of int and may or may not be affected by the problem. time_t can be unsigend (which gives another 68 years) or long long int/long long unsigned (which are both 64 bit long). In any case, fixing the basis library and recompileing is enough for properly implemented software.
  • by Anonymous Coward on Tuesday January 15 2008, @04:17PM (#22057394)
    I don't give a shit. And I mean that in the most literal, non-idiomatic way. If I had a pile of turds in my back yard, and you were to walk up to me and say, "Excuse me, sir, if you would let me relieve you of one of these useless pieces of feces I could guarantee a resolution to the Y2K38 computer issue," I would simply reply, "I'm sorry, but those are my shits, and I'm not giving one."

       
    • by Chris Burke (6130) on Tuesday January 15 2008, @06:20PM (#22059230) Homepage
      I don't give a shit. And I mean that in the most literal, non-idiomatic way. If I had a pile of turds in my back yard, and you were to walk up to me and say, "Excuse me, sir, if you would let me relieve you of one of these useless pieces of feces I could guarantee a resolution to the Y2K38 computer issue," I would simply reply, "I'm sorry, but those are my shits, and I'm not giving one."

      You are clearly a person who has their shit together.
  • by wytcld (179112) on Tuesday January 15 2008, @04:21PM (#22057440) Homepage
    Most often when I've set up date fields in databases, I've used the YYYYMMDD format (e.g. 20080115, YYMMDDHHMMSS of course is also an option). The simple regex to construct it and read it is barely more code than translating in and out of Unix timestamps, and there's the great advantage that the dates are human-readable in the tables, and ad hoc queries are easily constructed. So I should be good until the year 10,000. Am I the only one? It's always seemed the obvious best way to do it.
    • by Shados (741919) on Tuesday January 15 2008, @04:54PM (#22057942)
      Don't know about others but me I just use a DateTime field and stick a date object in it, and let the drivers handle the conversation... Now -that- to be seems the obvious best way to do it... Why convert at all, unless someone's using an archaic and incomplete RDBMS.
  • by zippthorne (748122) on Tuesday January 15 2008, @04:29PM (#22057524) Journal
    This is nothing like the two-digit date problem of Y2K. The conversion process shouldn't be anywhere near as complicated, since 32bit dates are just an arbitrary subset of a larger bit-count dates. There are really only two cases, signed and unsigned, and casting things into larger containers isn't exactly all that difficult: if unsigned, stick a bunch of zeros on the front. If signed, stick a bunch of zeros on the front, then swap the previous MSB with the new MSB.

    Furthermore, C programmers haven't exactly become a rare commodity in the intervening time like with COBOL. Y2K wasn't a problem, so why should we expect Y2K+38 to be a problem?
    • by Malevolent Tester (1201209) * on Tuesday January 15 2008, @03:48PM (#22056854) Journal
      Apocalyptic event? Last time I checked, the world was still here. Epochal, perhaps, as I suspect it will be the defining event for my generation, much like the moon landing or JFK forgetting to duck, but in the grand scheme of things it was no more apocalyptic than the 2005 tsunami.
      • by Anonymous Coward on Tuesday January 15 2008, @04:25PM (#22057472)
        I think your scales are off. The 2004 tsunami was a massive loss of life (225,000 people in eleven countries) compared to the 2,999 people killed in the airplane attack of 9/11/01.

        I was a little appalled at the lack of coverage and donations given to the victims of the tsunami compared to the massive outpouring given to the 9/11 victims. It must just be that fact that I am in America now, and the media / government is so stuck on only looking inside the country and not what happens in other countries (unless it involves oil).

        I am also continually amazed at how the governments of the world (mainly US and UK, but others too) are using the two events (9/11 and 7/7) to push all of these "security" measures. As a child growing up during the IRA bombings, I find it easy to compare the IRA to al-Qaeda, but the reactions of the governments are way out of proportion. Never did anyone think that a national ID should be implemented, and the background checks now-a-days are beyond what is needed.

        If 9/11 defines that generation, then I'm so happy to be an old fart. I never would let a terrorist act define me.
        • by hansamurai (907719) <hansamurai@gmail.com> on Tuesday January 15 2008, @05:01PM (#22058050) Homepage Journal
          Lack of coverage and donations? I would agree that at least coverage wise, the tsunami did not grab the nation the same way 9/11 did, but looking at the money donated is another story.

          First I would encourage you to look at this:
          http://en.wikipedia.org/wiki/Humanitarian_response_to_the_2004_Indian_Ocean_earthquake#List_of_Donors [wikipedia.org]

          The United States government donated nearly one billion dollars and another 1.9 billion came from its citizens and NGOs. That's nearly 3 billion dollars total. A total of 10 billion dollars was given to relief from around the world.

          Granted, that comes to around 0.0026% of our GDP (someone correct me if I'm reading that wrong, permilles aren't my strong suit), but it's still a massive out pouring of money if you ask me.
          • IRA (Score:5, Funny)

            by Anonymous Coward on Tuesday January 15 2008, @05:36PM (#22058570)
            Yeah my wife contributes to the IRA through some guy called Charles Schwab. I am surprised that guy hasn't been sent to Gitmo for funding a terrorist organisation.
          • by aproposofwhat (1019098) on Wednesday January 16 2008, @04:00AM (#22064098)
            Groups like the IRA and ETA are generally composed of local people fighting on what is basically a local issue.

            We understand the causes of their frustration, and their targets were / are generally predictable.

            The PIRA in particular rarely bombed without telephone warnings, usually accurate enough to allow an evacuation to take place.

            Bin Laden, on the other hand, holds beliefs that are alien to our culture, and unbelievers sit next to dogs on his scale of values.

            Islamic extremist bombers are unlikely ever to give adequate telephone warnings, since they value human life far less than the Catholics of the PIRA and ETA.

            Having said that (and probably being of an age with you, having grown up in the late 60s and early 70s), the current rage for intrusive and unwarranted legislation is, I believe, more of a product of the CYA culture and the 'preventative approach' mentality than it is a reflection of any real threat.

            Intelligence and law enforcement agencies have empires to build and budgets to inflate, and politicians have no spine in the face of public (read Daily Mail) opinion, so I see little hope of this trend ending soon.

          • by Gospodin (547743) on Tuesday January 15 2008, @05:43PM (#22058670)

            11/9 was just big because it was in the US. Anti-US sentiment aside, the US is simply a more influential country than any of those affected by the Tsunami. US has very a powerful media and politic, so of course its going to be well covered.

            9/11 was big because it was caused by people. The tsunami was caused by nature. Comparing responses to them is like comparing responses to a murder versus a heart attack.

    • by merreborn (853723) on Tuesday January 15 2008, @03:59PM (#22057100) Homepage Journal

      I always found it interesting that 1 billion seconds happened 2 days before 9/11.


      You can come up with any number of numerological associations for any event. Seriously. Try it some time. Pick any event, and you can come up with a dozen, if you try.
      • by Bob-taro (996889) on Tuesday January 15 2008, @04:30PM (#22057548)

        You can come up with any number of numerological associations for any event. Seriously. Try it some time. Pick any event, and you can come up with a dozen, if you try.

        Really?! So there are always at least 12 numerological associations with every event in history?! OMG, I'm totally freaking out!!!11!1!

        • by Arthur Grumbine (1086397) on Tuesday January 15 2008, @08:54PM (#22060964) Homepage Journal
          And of course "12" is composed of the digits 1 and 2.
          1+1=2
          1*2=2
          2/1=2
          1+2=1
          2^1=2
          What does this all add up to...?
          9
          But don't forgot...
          9 + 1*2 = 11
          Who has a UID with 9 as it's most common digit?! Bob-taro!!
          Whose UID without the 9s = 6+8+8 = 22, That's TWO 2s. 22 divided by 2...you guessed it... 11.
          That's right...9...11. 9/11!!!
          Who had the most to gain from 9/11?! Bob-taro!!
          Who brought down the towers?! Bob-taro!!
          Who fired a cruise missile into the Pentagon!? Bob-taro!!

          And to think, Bob-taro, you almost got away with it you sneaky sonuvabitch...
      • by Cajun Hell (725246) on Tuesday January 15 2008, @04:37PM (#22057668) Homepage Journal

        You can come up with any number of numerological associations for any event. Seriously. Try it some time. Pick any event, and you can come up with a dozen, if you try.

        Interesting that of all the numbers you could have mentioned, you just happened to pick dozen: the number of eggs that are most often sold together. This suggests you are a chicken farmer. Your uid is another clue: 853723. 8+5+3+7+2+3=28. 28 % 12 = 4, which happens to be your comment's score at the time I type this. 853723 %12 = 7. You bring your eggs to market every week.

        Look at all I have learned about you. And you think numerology doesn't work.

        • by kcornia (152859) on Tuesday January 15 2008, @05:11PM (#22058214) Journal
          40 and 50 year loans are really 30 year loans that will be refactored (or rewritten or reset, whatever terminology they used) at 10 and 20 years left respectively. From my recollection based on work in subprime IT for a few years, it has to do with laws that limit the life of a loan to 30 years or something.

          Regardless, 40 and 50 year loans are right up there with negative amortization adjustable loans. HORRIBLE ABUSE OF TEH SYSTEM. If you have to stretch that far to get into a house, rent a fucking apartment and save up some money for cryin' out loud.

          This credit crunch is a good thing, we as consumers need to get off the endless debt teat.
          • That and most of the Y2K problems were just display errors, not bugs in the actual calculations going on under the scenes. 2038 is much scarier and is a lot more difficult to fix. In fact the best way to fix the problem is probably to switch to a 64 bit representation of time, but thus far not too many people have made moves in that direction. Switching to 64 bits is not as easy as it might sound either, since lots of programs use timestamps and many of them make assumptions as to the size of their time fields. I do wish APIs would start to get transition structures (time_t64 or something) in place that people could start using now. If you do it early enough you can save yourself a lot of headaches down the road.

            The big problem of course is that most people figure their code won't be in use in 2038 and don't care. I'll be right about retirement age by then. Crap, I just realized I'm going to be the grizzled old guy they call when this problem finally rolls around. One of those crusty old farts that knows C (just like the crusty COBOL farts that got a lot of jobs back in 1999 for a few months).
    • by moderatorrater (1095745) on Tuesday January 15 2008, @04:23PM (#22057458)
      Yeah, kind of like how Christ was born so close to the changeover from BC to AD.
      • Re:2048 (Score:5, Insightful)

        by Inquisitus (937664) <{inquisitoruk} {at} {blueyonder.co.uk}> on Tuesday January 15 2008, @04:19PM (#22057422)
        Who the hell stores years as 11-bit integers?
      • Re:2048 (Score:5, Informative)

        by TheThiefMaster (992038) on Tuesday January 15 2008, @05:06PM (#22058130)
        It's "Number of seconds since midnight (0:00:00) January 1st 1970". Which in a SIGNED 32-bit number, overflows into negative in 2038.

        If they'd used an unsigned 32-bit number, then they would have had dates up to 2106 covered. Unfortunately whoever invented these timestamps chose to make them use signed numbers, with negative numbers being allowed on some systems (representing dates before 1970) and being errors on other systems (e.g. Windows)...

        Fortunately 64-bit numbers can now be handled by pcs, and can be used as an extended timestamp to get a few billion years of time. Most operating systems have already been converted, it's just legacy programs that would have issues.
    • by ewilts (121990) on Tuesday January 15 2008, @04:28PM (#22057504) Homepage
      > VMS has been Y10K-compliant for over a decade.

      It's much better than that. It's mostly DCL that has the year 9999 issue. For those of you who like history lessons and how to design real operating systems (and customer support, back when it actually existed), read this article:

        38 Why Is Wednesday November 17, 1858 The Base Time For VAX/VMS?

      COMPONENT: SYSTEM TIME OP/SYS: VMS, Version 4.n

      LAST TECHNICAL REVIEW: 06-APR-1988

      SOURCE: Customer Support Center/Colorado Springs

      QUESTION:

      Why is Wednesday, November 17, 1858 the base time for VAX/VMS?

      ANSWER:

      November 17, 1858 is the base of the Modified Julian Day system.

      The original Julian Day (JD) is used by astronomers and expressed in days
      since noon January 1, 4713 B.C. This measure of time was introduced by
      Joseph Scaliger in the 16th century. It is named in honor of his father,
      Julius Caesar Scaliger (note that this Julian Day is different from the
      Julian calendar named for the Roman Emperor Julius Caesar!).

      Why 4713 BC? Scaliger traced three time cycles and found that they were
      all in the first year of their cyle in 4713 B.C. The three cycles are 15,
      19, and 28 years long. By multiplying these three numbers (15 * 19 * 28
      = 7980), he was able to represent any date from 4713 B.C. through 3267 A.D.
      The starting year was before any historical event known to him. In fact,
      the Jewish calendar marks the start of the world as 3761 B.C. Today his
      numbering scheme is still used by astronomers to avoid the difficulties of
      converting the months of different calendars in use during different eras.

      So why 1858? The Julian Day 2,400,000 just happens to be November 17, 1858.
      The Modified Julian Day uses the following formula:

            MJD = JD - 2,400,000.5

      The .5 changed when the day starts. Astronomers had considered it more
      convenient to have their day start at noon so that nighttime observation times
      fall in the middle. But they changed to conform to the commercial day.

      The Modified Julian Day was adopted by the Smithsonian Astrophysical Obser-
      vatory (SAO) in 1957 for satellite tracking. SAO started tracking satellites
      with an 8K (non-virtual) 36-bit IBM 704 computer in 1957, when Sputnik was
      launched. The Julian day was 2,435,839 on January 1, 1957. This is
      11,225,377 in octal notation, which was too big to fit into an 18-bit field
      (half of its standard 36-bit word). And, with only 8K of memory, no one
      wanted to waste the 14 bits left over by keeping the Julian Day in its own
      36-bit word. However, they also needed to track hours and minutes, for which
      18 bits gave enough accuracy. So, they decided to keep the number of days in
      the left 18 bits and the hours and minutes in the right 18 bits of a word.

      Eighteen bits would allow the Modified Julian Day (the SAO day) to grow as
      large as 262,143 ((2 ** 18) - 1). From Nov. 17, 1858, this allowed for seven
      centuries. Using only 17 bits, the date could possibly grow only as large as
      131,071, but this still covers 3 centuries, as well as leaving the possibility
      of representing negative time. The year 1858 preceded the oldest star catalog
      in use at SAO, which also avoided having to use negative time in any of the
      satellite tracking calculations.

      This base time of Nov. 17, 1858 has since been used by TOPS-10, TOPS-20, and
      VAX/VMS. Given this base date, the 100 nanosecond granularity implemented
      within VAX/VMS, and the 63-bit absolute time representation (the sign bit must
      be clear), VMS should have no trouble with time until:

            31-JUL-31086 02:48:05.47

      At this time, all clocks and time-keeping operations within VMS will suddenly
      stop, as system time values go negative.

      Note that all time display and manipulation routines within VMS allow for
      only 4 digits within the 'YEAR' field. We expect this to be corrected in
      a future release of VAX/VMS sometime prior to 31-DEC-9999.
    • As a coincidence, nobody has actually used VMS in over a decade.
      • Re:The answer is 64! (Score:5, Interesting)

        by thegrassyknowl (762218) on Tuesday January 15 2008, @04:33PM (#22057612)
        Put simply, a lot of software is poorly written and uses int as synonymous with time_t (or somesuch). The two are often interchanged by programmers; particularly those with a Windows background who can't find CTime (or whatever it's called) on non-Windows platforms.

        Moving to 64-bit machines won't fix all the magic 32-bit binaries out there but software that's recompiled for 64-bit machines will automagically use 64-bit ints where the programmer held the time in an int.

        Of course, I've seen a lot dumber bugs than ignoring to use the operating system's time structures and methods for dealing with time so I don't doubt that there are some bugs that actually will need some serious considerations made.

        I guess it's a fault of the Unix people from way back. They made this epoch thing and used a 32-bit number to store the number of seconds since it. I guess they were assuming that all their software would have been replaced by something better on bigger machines. They shouldn't have written such reliable software and then maybe some of it would have been replaced by now ;)