Na de millenniumbug nu de decenniumbug
Was het nu 2010 of 2016?
‘Gelukkig nieuwjaar!’. ‘Uitgeslapen?’ ‘Al wakker?’. Ontvangen: 1 januari 2016. Nog slaperig lees ik op nieuwjaarsdag de laatste berichten op mijn gsm. Euh, 1 januari 2016? Wat is dat allemaal? Vandaag is het toch nieuwjaarsdag 2010? Gisteren was het 31 december 2009. Daar ben ik zeker van. Wat scheelt er dan? Wat heb ik gedronken? Maar neen, zoveel heb ik niet teveel gedronken. Ik heb ook niet als Rip Van Winkle of een zevenslaper jaren aan een stuk geslapen. Het probleem ligt elders, bij de computers. Een gelukkig en gezond 2016! Heeft u op 1 januari ook sms-berichtjes ontvangen die op januari 2016 gedateerd waren? Een softwarefout die ondertussen al tot decenniumbug herdoopt werd, was er de oorzaak van dat Windows Mobile telefoons en andere gsm’s datums zes jaar in de toekomst dateerden. Niet alleen mobieltjes, maar ook de bankwereld werd getroffen. De eerste berichten kwamen uit Duitsland. Maar liefst dertig miljoen krediet- en bankkaarten weigerden dienst. Dat is zowat een vierde van alle kaarten die bij onze oosterburen in omloop zijn. Het betreft allemaal kaarten die voor maart 2009 werden uitgereikt. Elke bankkaart heeft een ingebouwde chip. De chip in de Duitse kaarten herkent blijkbaar het jaar 2010 niet. Later bleek dat Australië door hetzelfde probleem was getroffen. Hier waren het de betaalterminals van de bank van Queensland die dachten dat het al 2016 was. Betaalpassen werden niet meer aanvaard want … al lang vervallen. Ook andere Australische banken zoals Bank West gaven vervolgens toe slachtoffer van de decenniumbug te zijn. Informaticatijdschriften meldden dat ook Symantec, SAP, Cisco en Spam Assassin enige last ondervonden van het decenniumprobleem. Zelfs Apple ontsnapte niet: de spamfilter van Mac OS X server kampte met de decenniumbug en filterde ten onrechte sommige mails weg. Apple heeft ondertussen wel al een oplossing vrijgegeven, waarbij de filtering op datum wordt stilgelegd. 10 = 16 Wat is de oorzaak? Vermoedelijk wordt de 10 (in ons decimale talstelsel) als hexadecimaal geïnterpreteerd en geeft dan het getal 16. 2010 wordt dan ten onrechte als 2016 beschouwd. In onze dagelijkse wereld rekenen we met het tiendelige of decimale stelsel. We kennen de cijfers 0 tot 9. Ons talstelsel is bovendien positioneel. Dat betekent dat de positie van het cijfer in het getal aangeeft of het cijfer met een macht van tien moet vermenigvuldigd worden. 321 staat voor 3 maal 100 plus 2 maal 10 plus 1. Maar er zijn ook andere talstelsels zoals het binaire en hexadecimale talstelsel. Het binaire talstelsel wordt in informatica gebruikt; u weet wel, de nullen en enen. Het binaire talstelsel kent inderdaad slechts twee cijfers: 0 en 1. Ook het binaire talstelsel is positioneel: nu vermenigvuldigt u met machten van 2. Na 1 komt 10 (lees decimaal 2) en dan 11 (lees decimaal 3) en vervolgens 100 (lees 4). Het zestiendelige of hexadecimale talstelsel kent zestien cijfers: de cijfers 0, 1, 2 tot en met 9 en dan A, B, C, D, E en F. De hexadecimale F komt overeen met 15 in het decimale stelsel. Na F komt de hexadecimale 10. Het hexadecimale stelsel is ook weer positioneel, ditmaal vermenigvuldigt u met machten van 16. 10 leest u ditmaal bijgevolg als 1x16 + 0. En de hexadecimale 11 is dus decimaal 1x16 + 1 = 17. Millenniumbug Een gelijkaardig probleem werd eind vorige eeuw aangekondigd. Eind jaren negentig bestond de vrees dat het jaar 2000 niet zou herkend worden. Dit werd Y2K of de millenniumbug genoemd. Een datum als 14 februari 1997 werd als 140297 opgeslagen. Om plaats te besparen werden enkel de twee laatste cijfers van het jaartal bijgehouden. Daarom waren informatici bang dat 1 januari 2000 als de eerste dag van januari 1900 zou geïnterpreteerd worden. Zoals we allen konden ondervinden, bleef de schade in 2000 zeer beperkt. De doemdenkers waarschuwden vooraf voor neerstortende vliegtuigen, levensnoodzakelijke apparatuur in ziekenhuizen die niet zou werken tot zelfs het ongewenst lanceren van raketten en het uitvallen van wereldwijde communicatiesystemen. Maar op enkele kleinere problemen na gebeurde dat allemaal gelukkig niet. Uitkijken voor 19 januari 2038 Gelijkaardige overgangen waarbij een datum of tijdnotatie op ‘nul’ belandt komen nog voor. Op 22 augustus 1999 liep de weektelling van het gpssysteem over van 1023 naar 0 waardoor sommige gpsontvangers tijdelijk problemen ondervonden. In heel wat beheerssystemen die op Unix voortbouwen, wordt de datum in een tweeëndertigcijferig binair getal opgeslagen. De kalender start bij 1 januari 1970. Na 2 exponent 31 seconden of op 19 januari 2038 kunnen er zich problemen voordoen. Maar dan moeten we eerst 2012, wanneer de Mayakalender ‘overloopt’ en in 2029 de komst van planetoïde Apophis overleven! Frank Beckers |