Milijarde dolara se uložilo u rješavanje problema povezanog s bug Y2K, koji je mogao dovesti do mnogih problema. Svjetske vlade, vojska, i financijski sustav bili su pod velikim rizikom od kolapsa, a opet, kada je stigla 2000. godina, ništa se značajno nije dogodilo. Dali je priča o problemu sa softverom u 2000. godini bila prenapuhana, ili smo pronašli rješenje u zadnji čas?
Kako smo sami sebi postavili tempiranu bombu?
Priča o pogrešci u kodu, takozvanom Y2K bug započinje davnih 1950-tih i 60-tih, kada smo u svijetu računala koristili dvije znamenke za prikaz brojeva.
Jedan od razloga za takav standard je bio da smanjimo potrebu za memorijom. Prisjetimo se, računala iz tog perioda imali su zaista ograničenu količinu memorije. Programi su trebali biti kompaktni i što je moguće više efikasni. U to vrijeme smo programe učitavali u memoriju uz pomoć kartonskih blokova (Punched cards). Gdje god se pojavila prilika da se sačuva dio memorije, iskoristili smo je. Dvije znamenke za brojevne oznake bile su jedan način da se sačuva mjesto u memoriji računala. Ako smo pisali godinu 1966, da bi sačuvali vrijedan prostor u memoriji, upisali bi 66. Programi su radili s brojevima pod pretpostavkom da smo u 20-tom stoljeću, i logično je pretpostaviti da 66 označava 1966. godinu, 72 označava 1972. godinu i tako dalje.
Vremenom je hardver napredovao. Imali smo jače procesore, veće količine memorije i bolje medije za učitavanje programa i podataka u memoriju računala. Kompletna računalna tehnologija je napredovala, ali je sustav za označavanje godina i dalje ostao isti. Jednostavno, nismo reagirali na vrijeme. Programi su i dalje godinu upisivali i čitali kao dvije znamenke, i svi podaci kojima su kompanije, vlade i vojska upravljali bili su u formatu koji se koristio 50-tih i 60-tih.
Iz današnje perspektive, dosta šlampav pristup, koji se mnogima obio o glavu. Dakle, bug Y2K je uglavnom nastao zbog potrebe za štednjom u memorijskom prostoru, koji su tehničari riješili na način da su kompletnu arhitekturu računala i programe prilagodili radnim uvjetima u 20-tom stoljeću. Mnogi u tom periodu nisu razmišljali o budućnosti, ili nisu bili svjesni razmjera napretka koji je uslijedio kasnije.
Problemi sa nadolazećom 2000.
Ako koristimo dvije znamenke za prikaz godine, jednostavno ne možemo napraviti razliku između 1900-te i 2000-te. Obje godine će kompjuterski program ispisati kao 00. Isto tako, 1915-ta i 2015-ta će biti ispisane kao 15 i tako dalje. To znači da problem nismo imali sve dok smo još uvijek bili, i koristili programe, u 20-tom stoljeću. Kako smo se bližili 21. stoljeću, postali smo svjesni mogućih problema.
Danas su problemi Y2K iza nas, ali da spomenemo što se moglo dogoditi, i zbog čega smo osjetili globalnu paniku?
Vratimo se na dan 31. prosinac 1999., i zamislimo da programi još uvijek godinu koriste samo sa dvije znamenke. Dolazi nam 2000-ta, koju programi ne prepoznaju. U jednoj sekundi će svaka aplikacija, ili baza, 2000-tu ispisati kao 00, što interpretirano u kompjutorski kod može biti samo 1900-ta. Ako je riječ o kućnom računalu, šteta ne mora biti velika. Nije nam se jednom dogodilo da baterija za BIOS bude prazna, pa nam vrijeme na računalu ode u daleku prošlost. No, što bi se moglo dogoditi ako se znanstvene institucije, vladine organizacije i vojna oprema u jednom trenutku vrati u 1990-tu, umjesto da dočeka Novu 2000-tu? U tom slučaju se mogu očekivati veliki problemi globalnih razmjera. Zamislimo samo satelite, teleskope, servere i druge tehnološke čvorove koji ovise o točnosti vremena. Problemi koji se mogu pojaviti su neshvatljivih razmjera. Koliko god su nepredvidivi, problemi koji su mogli nastati su realni i gotovo 100% sigurni.
Neki su predviđali kraj svijeta, pa čak i nestanak čovječanstva. Najviše smo se pribojavali pogreški koje mogu nastati u sustavima nuklearnog naoružanja. Svijet je u kratkom vremenu upoznao opasnost pod nazivom milenijski bug „millenium“, „Year 2000“ ili „Y2K“ bug.
Jedna manje poznata činjenica je i to, da je 2000-ta prijelazna godina. Pravilo je, ako je godina djeljiva sa 400, onda je to prijelazna godina. Mnogi programi iz perioda prije 2000-te nisu programirani da prepoznaju to pravilo. Znanstvenici su se pribojavali i nadolazećeg datuma 29. veljače 2000. Nitko nije znao kako će se računala ponašati na taj datum.
Još i prije 1999-te godine, vlade i kompanije su započele sa pristupom o rješavanju problema s greškom u kodu Y2K.
Jednostavni pristup bio bi: proširenje prikaza godine na 4 znamenke, i dodavanje 1900 kao početne godine za pokazivanje datuma. Postojeći podaci bili bi sačuvani, a novi bi se upisivali po novom standardu koji je OK.
Na žalost, takvo rješenje nije moglo biti implementirano tek tako. Rizik za podatke, financijski troškovi, i veliki obim posla bili su ograničavajući faktori. Gdje je bilo moguće, rješenje koje smo spomenuli se moglo i jeste se primijenilo. Na taj način bi se korigirali podaci, ali je trebalo uraditi promjene u programskom kodu aplikacija koje su radile sa takvim podacima.
Analizirala su se razni pristupi. Recimo, mjeseci zauzimaju dvije znamenke ali imamo samo 12 mjeseci u godini. Dakle, 13,14…99 su oznake koje stoje neiskorištene, a opet zauzimaju mjesto u memorijskom adresnom prostoru. Neki programerski pristupi koristili su tu priliku da u programu označe mjesece od 1-12 za godinu 1900, dok će 41-52 biti oznake za 2000, a 21-32 mogu biti oznake za 1800-tu godinu. Trebalo je osmisliti način prepoznavanja i dekodiranja podataka koji su na prvu dosta zbunjujući. Ipak, pristup je bio funkcionalan i mnogi su ozbiljno pristupili rješavanju problema na ovaj način.
Drugi pristup rješenju bio je sljedeći: umjesto da koristimo format datuma MMDDYY, mogli smo to uraditi na sljedeći način. Format datuma DDDCYY zauzima isti prostor kao i prije spomenuti, ali daje mnogo više informacija o trenutnom datumu. DDD predstavlja dane u godini od 1-365 (366), C je oznaka za stoljeće, i YY daje ispis dvije znamenke godine. I ovdje smo trebali naučiti kako da iskoristimo rješenje na najbolji način.
Oba gore spomenuta pristupa bila su tek brze zakrpe, dok se čekalo na rješenje koje će biti dugoročno.
Matična spremna za 2000-tu godinu?
Mnogi se mogu sjetiti matičnih ploča, računala i drugih IT uređaja koji su na pakiranju s ponosom isticali oznaku Year 2K ready.
Mnoge kompanije su imale svoja interna rješenja za nadolazeću 2000-tu godinu. U tom periodu to je bila velika stvar, pa smo na originalnim pakiranjima imali istaknute oznake Y2K ready.
Današnjim klincima je teško i zamisliti probleme tih razmjera, a sve radi jedne tako banalne stvari. Smartphone uređaji u sebi imaju snagu pokrenuti najzahtjevnije igrice, aplikacije koje rade kompleksne radnje, a prostor za pohranu podataka se povećao do tih razmjera da je pohrana trenutne godine (ili bilo koje druge) najmanji mogući problem.
U jednom periodu je strah od pogreške Y2K bio toliko velikih razmjera, da su kompanije tražile izjave od proizvođača da je njihova oprema spremna za dolazeću 2000-tu godinu.
Prošlo je već 20 godina od „pandemije straha“ koja je vladala, i danas uživamo u tehnološkim novitetima kakve već imamo. Ipak, ne treba zaboraviti poteškoće na koje smo naišli, i rješenja kojih smo se sjetili.
Današnja informatička oprema uznapredovala je, i nema gore opisanih problema. Ipak, razvojem tehnologije, uvijek nailazimo i na nove poteškoće. Riješimo ih našim načinom razmišljanja, i prirodnom sklonošću da razmišljamo i budemo inovativni.
Problemi koji su se pojavili u 2000-toj godini
Nije sve prošlo bez incidenata. Problemi sa Y2K nisu u potpunosti bili uklonjeni, pa smo doživjeli neke neugodnosti. Na sreću, nismo doživjeli katastrofu većih razmjera, ali je incidenata nekih ipak bilo.
Što se dogodilo na prvi dan 2000. godine?
Dvije nuklearke u Japanu zabilježile su pogrešku povezanu sa bug Y2K u kodu softvera koji je nadgledao njihov rad. Pogreške su brzo zabilježene i na vrijeme uklonjene.
Rođenje prve bebe u Danskoj, u novom mileniju, zabilježeno je rođenje stogodišnjaka. I ta greška je uklonjena, naknadno.
Autobusne karte u Australiji su ispisane s pogrešnim datumom, i nisu bile priznate u sistemu za provjeru valjanosti kupljenih karti.
Nacionalni novinski servis u Egiptu je bio nedostupan na par sati, da bi ponovno bio pušten u funkciju s potrebnim korekcijama.
Američki špijunski satelit je također „osjetio“ Y2K bug. Bio je nedostupan određeno vrijeme, dok se nisu uradile određene popravke na kodu softvera.
Klijent jedne videoteke u New Yorku, nakon što je vratio film „The General’s Daughter“ dobio je račun od $91,250, odnosno na 100 godina, zbog pogreške u kodu. Naravno, nije platio toliko velik račun.
Bilo je tu još zanimljivih događaja, ali smo ih prepoznali i na vrijeme otklonili pogreške.
20 godina nakon Y2K problema
Danas uživamo u tehnologiji kao nikada prije. Tek neki od nas pamte Y2K oznaku, i prepoznaju je. Danas je tehnologija uznapredovala, i problemi koje smo imali su gotovo smiješni.
Ipak, trebamo spomenuti da još uvijek u svijetu imamo sustave koji rade na privremenim rješenjima s početka našeg teksta. Zanimljivo je to zbog odraza naše snalažljivosti. U kratkom vremenu smo pronašli rješenje koje radi, a dokaz o tome su godine neometanog rada koje su prošle. 20 godina nije malo, pogotovo ako ih promatramo kroz IT razvoj i korištenje sve većeg broja hardverskih komponenti, s raznim aplikacijama koje se stalno izrađuju i nadograđuju.