Next time someone says that the Y2K bug was a load of rubbish, point them at this example of what happens when people don't test their software/hardware before rolling over a minor date change.
It's hit more than German cards. I seem to recall the Aussies got bitten too, as well as some US mobile networks (SMS datestamps IIRC) and things such as anti-virus updates and spam filters from some software companies.
Opinion seems to be it's likely down to code writing 10 into what it thinks is a decimal field when it's actually hex and the system thinking it's 2016. Thus the banks thought it was 2016 and therefore the bank cards had already expired and were rejected.
COBOL is fine for doing what it was originally designed to do (read in some text, manipulate it in a simple way, spit out some text, repeat for 100,000 policyholders). It's no good when it comes to very complex things (for values of "complex" that existed in the 1970s).
I've no idea how it compares to cobol, but perl is geared towards processing huge amounts of text and fast. It's what biologists use to process massive amounts of experiment data like genomes or stuff, somewhat unexpectedly.
For toolchains, it can be run as one-line commands rather nicely.
It's a standard one for a financial company :-> They pretty much all use mainframes. And they don't have command lines. They're too old-fashioned for that :->
And I know that Perl is fast - but, largely due to its simplicity, COBOL is ridiculously fast when processing text. It's designed to run very close to the metal - and remap bits of memory to extract different bits of text out of structured flat files.
Because the throughput you get on a mainframe is faster than on any other system. And they have ridiculously high uptimes. And it's still running code written in the 1970s. Some of which is written in Assembler.
You'll be glad to hear that the modern bits of the system are being written in DB2, Java and C# :->
no subject
Date: 2010-01-07 04:27 pm (UTC)Opinion seems to be it's likely down to code writing 10 into what it thinks is a decimal field when it's actually hex and the system thinking it's 2016. Thus the banks thought it was 2016 and therefore the bank cards had already expired and were rejected.
no subject
Date: 2010-01-07 04:31 pm (UTC)no subject
Date: 2010-01-08 01:17 pm (UTC)no subject
Date: 2010-01-08 01:36 pm (UTC)no subject
Date: 2010-01-08 01:40 pm (UTC)no subject
Date: 2010-01-08 01:40 pm (UTC)no subject
Date: 2010-01-08 01:49 pm (UTC)It's a bank, so I suspect it was two systems sharing data and specifying the format incompletely.
http://www.3480-3590-data-conversion.com/article-cobol-comp.html
If one is storing it as text (i.e. a two digit field with a number in each) and the other is expecting it in a binary format then there's scope for endless fun.
no subject
Date: 2010-01-08 02:24 pm (UTC)But yes. Write tests! as they say.
Apparently, "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."
I hate PHP slightly less today :)
no subject
Date: 2010-01-08 02:56 pm (UTC)no subject
Date: 2010-01-08 03:03 pm (UTC)no subject
Date: 2010-01-08 03:06 pm (UTC)no subject
Date: 2010-01-08 03:12 pm (UTC)For toolchains, it can be run as one-line commands rather nicely.
Your setup is just weird! ;)
no subject
Date: 2010-01-08 03:19 pm (UTC)And I know that Perl is fast - but, largely due to its simplicity, COBOL is ridiculously fast when processing text. It's designed to run very close to the metal - and remap bits of memory to extract different bits of text out of structured flat files.
no subject
Date: 2010-01-08 03:21 pm (UTC)I'll admit, this is wholly outside my experience. But: no command line? Gah!?! Do you edit the inodes with magnets too? ;)
no subject
Date: 2010-01-08 03:34 pm (UTC)Or you write a job and then submit it to be processed.
http://en.wikipedia.org/wiki/Job_Control_Language
will copy OLDFILE to NEWFILE And yes, it is defining how much space to allocate there. In cylinders.
I am rather glad I don't do work in COBOL any more. :->
no subject
Date: 2010-01-08 07:20 pm (UTC)I'd ask why the hell are people still using this old crap, but... *sigh*
no subject
Date: 2010-01-08 07:22 pm (UTC)You'll be glad to hear that the modern bits of the system are being written in DB2, Java and C# :->