Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Apple Businesses

Macs not Y2k Compliant After All? 94

XBS writes "It seems that Macs are not quite Y2K compliant. They are hardware compliant, but software wise not quite. This is research done by Pedagoguery, which makes a Y2K-testing tool for the Mac. So if you open a file with dates that only contain 2 digits,that does a 'StringToDate' routine currently interprets '89' as 1989. Next year it will interpret '89' as 2089. The rule of thumb from Pedagoguery said. "So, after the year 2000, most Mac applications will work correctly, as long as you don't open any files that contain dates." "
This discussion has been archived. No new comments can be posted.

Macs not Y2k Compliant After All?

Comments Filter:
  • by Anonymous Coward
    The call String2Date is part of the international script handling functions introduced with IM-VI in 1991. Its most common use is to parse free form dates typed by a user.

    Obviously if a user types a 2 digit year this is going to be ambiguous and its interpretation will depend on the current date. A programmer would be a fool to use this routine and character coded dates as some sort of internal file format, but of course most of us have been and continue to be fools on occasion.

    (My mac programs always used the binary representation in their file format. :-)

    Apple recently changed the disambiguating algorithm from "add 1900" to something like a 10 year window in the past and 90 in the future.

    I work on a major program which actually uses 1 digit years in its user interface and YES, we had a Y1990 problem and had to release all sorts of fixes then. Even on a two digit year, the window is going to have to slide according to some policy.

    Enter Pedagoguery which is trying to sell a Y2K tool and their press release gets coverage because its POSSIBLE for programmers to screw up using an apple supplied function after apple did the Y2K superbowl commercial. They want $38 for a single machine up to $8888 for 10,000 machines. I tried their crippled 'free' version and was quite unimpressed. I suspect they are aiming at the corporate IT "give me tools to make complex looking reports that sau I'm Y2K compliant" crowd. They should do well at that.

    Show me the list of applications that really do use this function to parse text formatted dates as part of their file formats, then I might get excited.

    - jim
  • Nothing will save you from a programmer who represents dates with two digits. That's true on any machine running any operating system.

    The interesting problem here isn't technical, it's PR-based: how's Apple going to deal with stories about people using MacBozoPro who get burned?

  • Posted by Anhydrous Cowboy:

    Yes, we do realize this. Everyone knows it, and not in a good way. Apple has shown time and again that they can and will do whatever is best for Apple, and everyone else can go to hell, because they don't deserve a company like Apple in the first place.

    Fortunately Apple has given up on the enterprise market, which is totally uninterested in its sole-sourcing clone-killing collective ass, and set its sights on Grandma and Cousin Goober. This is sure to postpone the death spiral a bit longer.
  • Posted by [naden]:

    Isnt it interesting how SOME linux users criticise Mac Users. I mean Apple has gone more out of its way than some other companies to assist Linux's market reach.

    Its probably those annoying sKripT KiDDi3Z users starting most of the trouble. They are usually the ignorant, single-minded few that seem to think Apple "sucks" just because it doesn't have a CLI.

    Leave Apple alone, I mean dont hate it just because it isn't Linux. Surely our best efforts would be to take down Microsoft.

    Because some of us happen to like and use both. They are both excellent in their respective niches.
  • Posted by [naden]:

    Apols for posting twice.

    Just an interesting point.

    Of Apples total sales revenue, 2 percent of it is attributed to software sales. The remaining is dedicated to hardware sales.

    Now I sure as hell wouldn't let anything (such as cloning) affect such a major revenue stream.

    Jobs did what any sensible person would have done, particulaly with cloners showing little to no respect for Apple's markets.
  • Where would you be if Linux never really got popular, or wasn't around (this is general, you may have been a hardcore programming madman before Linux came around/became popular)

    I would still be using OS/2, which didn't have a Y2K problem that I could find.

    C'mon, the only reason the non-Mac people are having a bit of fun with this stuff is because of the often-smug, "the Macintosh is superior to every other type of computer, for every imaginable application", "if you don't use a Mac, you must be using Windows", arrogant attitude often displayed by the rabid Mac heads here.

  • Blah. I got my beer during the boring football,
    and watched the commercials.

    Monster.com wins my award for creativity.
    (the pasty-faced kids aspiring to bureaucracy)

    Victoria's Secret gets the "Most Effective" award.
  • The Mac hardware is OK.

    When I was a sysadmin, I decided to do a little Y2K analysis for my company, who was trying very hard to avoid the subject. So I forced the issue. (My boss wasn't happy about that. That should tell you a lot about the culture of this company..)

    ANYway.. I went to a lot of companies web sites, and read up. Most everything we used was OK -- Mac OS, AppleShare, MS Word, Photoshop... but not FileMaker!

    Being this little agency I worked at was more than a little technologicly-having-its-head-up-its-ass, we were using FileMaker 2.1. This was when 4.0 wasn't even new. It had been out for a long time.

    And FM 2.1 isn't Y2K compliant.

    Nope. FM 2.1, which I'm sure a lot of companies still use, isn't Y2K comliant. Our Macs were, and the rest of our software was, but our database wasn't. Big problem.

    I doubt they've decided to act on it yet.
  • # All operating systems will return unexpected values if given garbage as
    # input. (Try passing a 100MB string to sprintf(), for example). There is
    # no proper way for String2Date to read the programmer's mind if they are
    # stupid enough to use 2 digit dates.

    Right. If you have good date, StringToDate will have no problems. If you have bad data, fix it on the way in based on your own assumptions, or pass it in and accept what may be a wrong answer. Apple chose the least confusing choice, which is not the right choice for many people. They may have chosen poorly. But they did not choose incorrectly. Any guess -- and make no mistake, any function like this has to guess if the data is bad -- any guess is a guess, and will be sometimes right and sometimes wrong.


    # >"Apple's Web site says Macintosh computers can handle
    # >internally generated dates correctly all the way to the
    # >year 29,940 as long as the software running on them manages
    # >dates correctly as well."
    #
    # This is absolutely WRONG.
    #
    # The only Mac routine that can read the system clock is GetDateTime().
    # GetDateTime() returns a 32-bit integer, which overflows before 2040.
    # There is no 64-bit version of this call! In addition, HFS and even HFS+
    # disks allocate only 4-byte integers for the date/time. This means that
    # all file dates go screwy around 2040.

    You are saying it says something it does not say. Apple can absolutely handle internally generated dates correctly all the way to 29,940. It cannot currently get those dates from the system clock. But that does not change the fact that it can handle internally generated dates all the way to 29,940. The truth of the above sentence is determined on how you interpret the vague "internally generated": does it mean the system clock only, or other dates, and does it mean all internally generated dates, or just some? Taking it as literal as possible, we must conclude that it means not necessarily all internally generated dates (esp. because of the word 'can'), and that "internally generated" does not necessarily mean just from the system clock.
  • <laugh mode='nelson'>Haaah Haaah!</laugh>

    Seriously, though, even if the OS is compliant (like Unix), sloppy programming can still result in Y2k problems! Assuming much of Mac code is in C (or derives from a C API), you should check the manpages for various C time/date functions.. particularly tm_year. Yes, the manpages are pretty explicit about tm_year = year-1900, but who's to say that the programmer read those pages, or understood that part of the API? People fuck up. They're lazy and/or ignorant. Shit like this has been known to happen.

    Yes, maybe that's the fault of a sloppy programmer, but the code remains even if the programmer doesn't. You can't pass the buck to someone who's quit, been fired, or dead..

    Check your code. Check your predecessor's code. That's the only way to be sure.
  • ... but make sure to get a BIOS version which will update the 32h location! Many BIOSes before 1997 will _not_ update that memory location, and almost no RTCs will update it. Newer Dallas clocks will, but barely anyone has 'em, and many sysboards have the RTC soldered onto the MB (and use Lithium batteries), though my MB has the RTC 'chunk' and a compliant BIOS.

    Very few applications require a compliant RTC, but all PCs should have a compliant BIOS. check out www.rightime.com for test2000, a free PC tool which will show you all kinds of diag info (actually the viewcmos util included in the package) on your BIOS and RTC..

    Have a compliant day,
  • Hi,

    Anyone have any pointers to work on checking Linux and GNU/*GPL code for Y2k problems? I've done some work in this area for an investment bank but I quit that gig some months ago and I'm interested in contributing..

    Cheers,
  • But some of the software is not. This CNet Article [news.com] says that.

    "...if improperly used by an application, would result in improper date readings."

    "Apple's Web site says Macintosh computers can handle internally generated dates correctly all the way to the year 29,940 as long as the software running on them manages dates correctly as well."

    So as long as programmers don't get stupid, and know what they should know...then, there would not and will not be a problem. So any problems encountered on a Mac are due to incompetent developers, or unaware developers (no blame can be laid on the unaware though), and MicroSoft (hehheh). So my question is, is it really a problem at all? I mean, which programs were done incorrectly and will have a problem, and does anyone use them? If they are used...well, I guess their competition could have a leg up.
    I wonder how many MS Mac programs are not Y2K compliant.

    Question 2: What about Winhoes and other OSes? How y2k comp. are they and are their apps y2k comp. too? Has anyone seen a study or some work looking at all the OSes out there and their compatability with a new millenium (or the end of this one actually)?
    And is the report WinCentric or OS-nuetral (and actually objective)?
    How does Linux and *BSD stand? Or will they fall victim?
  • You do realize Apple can do whatever it wants?
    It makes it's own hardware and software afterall, they are by no means required to support ANYTHING else. So there seems to be no link between MS and Apple in that department. If MS made it's own hardware and slaved the OS to its hardware...more power to 'em, that is their decission, no one elses. And no one has the right to bash Apple, or any other company that choose a closed system.
    As long as a company keeps its product competitive and as good as it can be under various circumstances, then who gives a damn if it's a closed or open system?

    Also, on a side note..i think Apple will actually be offering other OSes. Namely Mklinux, and MacOS X Server.
    And also be aware, it is NOT Apple's fault the Cloners quite making PPC mobos, there are plenty of PPC OSes out there that they could have picked up. But they wanted to make MacOS clones, and not support LinuxPPC, BeOS, etc. Can't blame Apple for the lack of hardware from other vendors. Can only blame Apple for not licensing out the ROM (which is their ROM, their choice and only their choice).

    Now if you don't mind Edgy, would you reply and lay out the problems with a closed system? And/or compare and contrast Closed vs Open?
  • Apple sucks because they would be just as bad as Microsoft if they had market share.

    Think about it. The hardware is tied to the OS. They are a completely closed company. You have no choice in what vendor you buy hardware from, what operating system to get with the computer, or anything else. They are the epitome of closed systems.

    That's why they never were about to compete against PC's.
  • They brought this upon themselves! That is what the whole commericial was implying: Macs are Y2K compliant, therefore you will not have ANY Y2K problems. Bullshit and anyone with a little computer knowledge knows that it does not matter how compliant your hardware or OS is, if the programs are written with Y2K bugs, you will have problems.

    I'm glad this whole "Macs are Y2K compliant, unlike PCs" thing blew up in their face. They tried to mislead the public, and now they have to face the music. Maybe now they will learn about truth in advertising.
  • No, you missed what I said completely.

    I was saying that Apple designed their commericials to mislead the public and give them the impression that since they have a Mac, they will not be affected by Y2K problems. We both know that this is untrue, and I was just saying that maybe now with this blowing up in their face, they will stop trying to mislead the public. Don't get me wrong here, I am not saying that other companies do not do the same thing, I am just saying that this will hopefully teach a lesson.
  • It most likely was NT service pack 2. But then again NT isn't nearly that cool.

    I liked the ad though. It seemed to stand out from those flashy ads that are desperately trying to get your attention while you are in the kitchen getting more beer from the fridge.
  • You just can't trust an HAL 9000 series. Their operating system is based on code from Windows 2000.
  • Okey, not being a programmer...Can someone who does program for the mac fill us in? How often is 'StringToDate' used? Is this a problem within the OS(I guess the API?) Throughout all versions of the MacOS, if so? Okey..is it something that would be seen in Carbon as well? Article gave me more questions than answers..

    C
  • > How so? PCI is PCI, whether its on a proprietary system or a relatively open system. Works the same either way. I haven't had any problem adding peripherals to my x86 Linux box.

    Yeah, I thought PCI avoided a lot of the problems with adding cards, but you can *still* have IRQ conflicts with PCI cards ! Is this because the cards are inadequate, or due to something in the x86 architecture ?
  • gah, /. ate my <'s, lemme try again:

    instead of adding the current century to it, they could just look at the number, and if it's <40 add 2000, if it's between 40 and 199 add 1900, if it's after 1800 leave it alone, and otherwise complain. or something like that.

  • Dude, your dogs barking. Up the dosage and grow a sense of humor. There were some posts a couple of days ago about M$ posting fake "isn't M$ great" articles in forums. I simply applied that to your defense of Apple. Lighten up.
  • So... this is what we're left with after YEARS of incessant WHINING about the 'innate superiority' of the Mac? 'We're no worse than those other guys we've been making fun of'? PLEASE...

    Crackintosh fans, SPARE ME the smug crap in the future, OK? And take a good, hard look at some of the comments you've been posting. How the HECK do you EVER expect Apple to make it any better when your responses cover their collective backside instead of calling them to task?

  • Comment removed based on user account deletion
  • 1) The "look and feel" lawsuit.
    2) Proprietary, undocumented hardware.
    3) Killing off the clones after they became cheaper and better than Apple hardware.
    4) Insipid marketing.

    I won't even go into software/UI religion.


  • The main reason I hate Apple is pretty simple.
    I was a huge Apple // fan, and when the //gs came out, I was thrilled to death. All the // magazines I subscribed to loved it, but Apple didn't do a damn thing for it...they were cash-cowing the //'s for the Mac. The super-hackable //'s were set aside for the closed API of the Mac, and at the time, I thought that stupid little box was very lame (9" screen?).

    On top of that, when Apple destroyed the clone market, I lost my bonus (I work for Motorola and the write-off was huge).

    Guess my real enemy is Steve Jobs :).



  • Not really, StringToDate("89") could check the current year, if it's before the current year, ie in 2010, 2089 will be in the future, so you would assume 1989. If the date is in the past "01" you would assume 2001. Both of these ways are broken, but then again, using a 2digit date is broken.
  • Actually it is Apple's fault that the clones died out. When Jobs took over Apple again he killed the clone market by revoking the licenses of the clone makers.

    And what's wrong with a closed system is that you have to rely on the hardware vendor to produce things like operating systems or device drivers. With an open system anyone can write anything they want. PCs killed apple because PCs were open.
  • Yeah right, dude. All Apple needs to do to fix this bug is to program in magic API's available from Bill and figure out (from a two digit date) what 4 digit date the user/programmer wanted.

    If your programmer is a moron, your programs come out moronic. There is no way to get around the two digit problem from the OS side. Anybody who still stores/manipulates their dates as two digit dates deserves what they get.

  • See! Told you it would sell well!

    Macs have NO trouble with Y2K, I just made sure. I've just tested most of my apps, even created my own out of 3 languages just for testing! No problems! Whoever conducted this research is buying MS products I see...
  • Thank you for purchasing MS Bullshit.

    Please mister, just shut the fuck up. You are annoying.
  • No. This thread is going nowhere.
    I can't find further attribution than the original post here, and the only thing I can find on a Mac that isn't Y2K-ready is software from MS.

    Unfortunately, many Mac users are forced to use MS software.

    DON'T believe the hype unless we get more sources.

    caut10n
    user of all platforms
  • Wow. Your posts are so articulate and factual that I am forced to sell all my Macintosh hardware right this instant and purchase a herd-following Dell, Gateway or Compaq.

    You mean I've been using a Macintosh all this time, and now, after reading this great information, I find that Apple sucks?

    What would I do without you guys?

    Here's a big clue:
    No one cares if you don't like Macintosh computers. Me thinks thou dost protest too much.
  • If this has been pointed out already I appologize. This is exactly how the stringToDate function in the current MacOS works (taken from Apple's web site, URL listed below). Obviously some dumbass programmer somewhere can find a way to screw this up. However the comments quoted above are false and the person doesn't have a good understanding of the OS.

    When one of the date components is missing, such as the year, the current date value is used as a default. If the value of the input year is less than 100, StringToDate determines the year as follows.

    1. If (current year) MOD 100 is greater than or equal to 90 and the input year is less than or equal to 10, the input year is assumed to be in the next century.
    2. If (current year) MOD 100 is less than or equal to 10 and the input year is greater than or equal to 90, the input year is assumed to be in the previous century.
    3. Otherwise, the input year is assumed to be in the current century.


    If the value of the input year is between 100 and 1000, then 1000 is added to it. Thus the dates 1/9/87, 1/9/987, and 1/9/1987 are equivalent.

    http://developer.apple.c om/techpubs/mac/Text/Text-290.html [apple.com]
  • Actually, since HAL was so screwed up, and he was designed by IBM (because of the alphabet thing) He's probably running on one of those cheapo Cyrix chips that IBM fabs under license from Cyrix.
  • I belive the year you are reffering to is 2037.
  • I hope people realise that this isn't the MacOS that is not Y2K compliant, it is the method that the programmer is using. If he/she wrote proper code then their program would be compliant along with MacOS.

    This is like any other Y2K compliant OS. It just means the OS won't crash but some poorly written programs will. It's not Apple's fault.
  • "Open is better because:

    I can buy hardware from a vendor other than Apple if I don't like Apple's prices/support/whatever, without
    having to go to an entirely different architecture. I can put my own PC together from parts I can get without
    buying them from Apple. "


    Look, this is mostly a Linix site, so most people here like open. And I agree it has some very good merits. Yes it is good that a security bug can be found and fixed within hours/days. It is great that you can continually download bug fixes. But I DONT WANT TO. For many, myself included, a closed system works better. I don't want to have to keep so up to date with all the fixes. I like having just one GUI to contend with, and only one flavor of OS. (If you can use Mac OS 6, you can use 8.5)

    For many, closed is better.

    "I can put my own PC together from parts I can get without buying them from Apple. "

    I dont want to build my own box. I want to just buy one that works. And if it doesn't, have one place to complain to. Not get a run around from the os company, hardware company, and whatever else may be the problem. I get this from a company that has influence in the chip and hardware and os and software dev. It provides a certain consistancy that I can rely on.
    Some people want to build their own car, getting components from different makers and making them work. (my mechanic does this.) But I just want to go to a dealership and get one that works, And IF it works the way I want, I don;t care if they made all the parts themselves.

    Also, in many ways it IS better to have one company having influence in chip and hardware and OS and software dev. This is what has kept the mac fairly consistant, and mac apps fairly consistent. Many problems with windows and intel/etc boxes in general is you don't know what is in there. There is much more chance for parts to conflict. M$ knows this, and is why it is trying to start controling what hardware is used in the boxes.




    " Lots of vendors make hardware for PC's because of its open architecture. "

    Actually, there are lots of vendors making hardware for Macs also. Just not making entire machines. And the reason there are multiple PC box makers is because IBM and MS are not the same company. Therefore anyone could liscence MSWin and make a box. If IBM made the OS, or had a different agreement with MS, they would not have moved to cloning (IMHO)
  • It seems that this isn't so much a bug in the
    Mac's StringToDate function, but in two-digit
    representations for dates. That is, *no* computer
    can deal with StringToDate("89") properly, save
    to interpret it as 1910 years ago.

    I'd regard a computer which generated 89 from a
    DateToString call for a recent time as buggy, but
    I don't see any better way to handle this.
  • I have an old PowerBook 100 that just for grins I changed the date on the computer from 6/20/98 to 6/20/02; I left the date in the 2000 range during a month or so of use with really old versions of Word, Excel, FileMaker Pro, and Photoshop, and near as I can tell everything worked fine.

Anyone can make an omelet with eggs. The trick is to make one with none.

Working...