Миленијумски баг (познат и као „Проблем 2000. године“ или „Y2K“) односи се на потенцијалне компјутерске грешке повезане са форматирањем и складиштењем календарских података за датуме у и након 2000. године. Многи програми су представљали четвороцифрене године само кроз последње две цифре (нпр. 1985 као 85), што је чинило да 2000. година буде непозната у односу на 1900. Неспособност система да правилно разликују датуме могла је угрозити глобалну инфраструктуру индустрија које зависе од рачунара.

У годинама које су претходиле преласку у нови миленијум јавност је постепено постајала свесна овог проблема, а поједине компаније су предвиђале да ће штета коју изазове „миленијумски баг“ захтевати између 400 и 600 милијарди долара за исправке и санацију. Недостатак јасних информација навео је неке људе да прикупљају залихе хране, воде и оружја, купују резервне генераторе и повлаче велике суме новца у очекивању компјутерски изазване апокалипсе.

Супротно очекивањима, током 2000. године догодило се врло мало озбиљних грешака. Компаније и организације у многим земљама су унапредиле своје системе како би решиле проблем. Председник САД Бил Клинтон, који је организовао напоре да се минимизира штета у Сједињеним Државама, означио је ову грешку као „први изазов 21. века који је успешно савладан“. Ретроспективе догађаја обично хвале програмере који су спречили очекивану катастрофу.

Критичари су тврдили да су чак и у земљама где је врло мало урађено на припреми софтвера проблеми били минимални. Исто је важило и за секторе попут школа и малих предузећа, где је усклађеност са Y2K политикама била недоследна.

Историја Y2K је уобичајена скраћеница за „Проблем 2000. године“. Скраћеница комбинује слово Y за „year“ (година), број 2 и слово K за SI префикс кило (1000) - дакле, 2K означава 2000. Називана је и „миленијумски баг“, јер је била повезана са популарним, али не дословним, преласком миленијума, иако су се слични проблеми могли јавити на крају било ког века.

Акроним Y2K се приписује програмеру Дејвиду Едију из Масачусетса, који га је први употребио у е-мејлу 12. јуна 1995. године. Он је касније рекао: „Људи су га звали CDC (Century Date Change), FADL (Faulty Date Logic). Било је и других предлога. Y2K ми је једноставно склизнуо са прстију.“

Проблем је настао јер је меморија на мејнфрејм, а касније и на персоналним рачунарима, била скупа. Цена се 1975. године кретала од најмање 10 долара по килобајту до више од 100 долара по килобајту. Због тога су програмери сужавали коришћење меморије. Пошто су рачунари нашли широку примену тек у 20. веку, програми су једноставно додавали префикс „19“ уз годину, чувајући само последње две цифре. Ове стратегије су штеделе простор и новац, али су постале неупотребљиве након 2000. године.

Неке владе су формирале посебне одборе за планове ванредних ситуација, нарочито у кључним секторима попут телекомуникација. Док су поједини стручњаци тврдили да је извештавање о проблему представљало застрашивање, тек безбедан пролазак 1. јануара 2000. године у потпуности је смирио јавне страхове.

Грешке настале због програмирања датума Складиштење комбинације датума и времена унутар фиксног бинарног поља често се сматрало решењем, али могућност погрешног тумачења датума и даље је постојала. Прелазак оваквих система могао је изазвати различите грешке, на пример:

Системи кредитних картица имали су проблема са картицама којима је истекао рок у новом миленијуму, па су купцима биле наплаћене погрешне камате. Један луксузни супермаркет је 1997. године имао квар на 10 каса због истека рока картица у 2000. години, што је довело до прве тужбе повезане са Y2K. Microsoft Excel је погрешно третирао 1900. као преступну годину ради компатибилности са Lotus 1-2-3. Поред тога, године 2100, 2200 и даље су третиране као преступне. Грешка је касније исправљена, али старије верзије и даље чувају компатибилност. JavaScript је мењан због забринутости око Y2K, па су се вредности година разликовале између верзија, што је приморало програмере да поново пишу код. Старије апликације за UNIX Source Code Control System нису могле да обраде године које почињу цифром „2“. У Windows 3.x File Manager-у датуми су се приказивали као „1/1/19:0“ за 1/1/2000, јер је знак „:“ у ASCII табели долазио одмах после „9“. Неке апликације, попут игре Math Blaster Episode I: In Search of Spot, приказивале су године као „1900“, „1901“ итд.

Програмерска решења За решавање проблема коришћено је неколико приступа:

Проширење датума - двоцифрене године проширене су на четвороцифрене. Било је то најчистије решење, али скупо и захтевно. Прозорско датирање (Date windowing) - двоцифрене године су задржане, а век се одређивао само када је био потребан. То је било јефтиније и једноставније решење. Компресија датума - датуми компресовани у бинарне бројеве од 14 бита, што омогућава представљање 16.384 различите године. Поновна расподела датума (Date re-partitioning) - у старим базама података троцифрене године и ординални дани су коришћени да одложе проблем до краја 2899. године. Софтверски пакети – комерцијални пакети попут Millennium Bug Kit су нудили брза решења за кориснике.

Почетак новог миленијума Проблеми који су се појавили 1. јануара 2000. године су се углавном сматрали за мање оперативне проблеме. Последице се нису увек јављале тачно у поноћ пошто неки програми у том тренутку нису били активни, па су постајали видљиви тек када би били покренути. Није свака забележена грешка била директно повезана са Y2K програмирањем јер се мањи технолошки кварови редовно јављају.

Пријављени проблеми:

Аустралија: машине за валидацију аутобуских карата у две државе нису радиле. Јапан: машине у 13 железничких станица кратко време нису издавале карте; у Ишикави, нуклеарна електрана Шика је пријавила да је опрема за мерење радијације отказала неколико секунди после поноћи (није било опасности по становништво); у 00:02 телекомуникациони оператор Osaka Media Port је открио грешке у управљању датумима, грешке су решене до 02:43; NTT Docomo, највећи мобилни оператер, пријавио је да су неки модели телефона брисали нове поруке уместо старих; Јужна Кореја: две болнице у провинцији Џејонџи су пријавиле кварове пошто је једна новорођенче регистровала као рођено 1900. године, а четири пацијента у Тегуу добила су рачуне са датумом из 1900; суд у Сувону је послао позиве са датумом суђења 4. јануара 1900; видеотека у Гванџуу је генерисала казну од 8 милиона вона (око 7.000 $) јер је систем израчунао да је трака каснила 100 година; Универзитет у Кореји је издао дипломе са датумом 13. јануар 1900. Хонг Конг: полицијски алкометри су отказали у поноћ. Кина: таксиметри су отказали у поноћ. Грчка: око 30.000 каса (10% укупног броја) је штампало рачуне са датумом из 1900. Данска: прва беба рођена 1. јануара је евидентирана као стара 100 година. Француска: Метео-Франс је приказао прогнозу са датумом „01/01/19100“. Немачка: у опери у Берлину систем за плате је тумачио нову годину као 1900, па је погрешно ускратио субвенције за децу, рачуновође су морале да врате систем на 1999; једна банка је грешком пребацила 12 милиона немачких марака клијенту и издала извод са датумом 30. децембар 1899. Италија: судски компјутери у Венецији и Напуљу су приказали датум пуштања затвореника као 10. јануар 1900, а неки затвореници су добили казне продужене за 100 година. Мали: програм за праћење возова је отказао. Норвешка: вртић у Ослу је понудио место жени старој 105 година, јер је регистар грађана бележио само последње две цифре године рођења. Шпанија: радник је добио позив за судски спор са датумом 3. фебруар 1900. Бразил: у луци Сантос компјутери нису могли да читају старе царинске регистрације али је проблем решен 10. јануара. Сличан квар јавио се и на аеродрому Виракопос. САД: Поморски опсерваторијум је приказао датум „1 Jan 19100“; Биро за алкохол, дуван, оружје и експлозив пет дана није могао да региструје нове продавце оружја; У Њу Мексику није било могуће издати нове возачке дозволе; Сајт председничког кандидата Ала Гора је приказивао датум „3 January 19100“; Касе у продавницама Godiva Chocolatier су отказале, али су поправљене до 3. јануара; MasterCard и Visa су пријавили да је мали проценат клијената недељама био више пута наплаћиван; Microsoft је пријавио да су Hotmail поруке из октобра 1999. или раније приказивале датум слања као 2099.

Референце

Категорија:2000-е Категорија:Рачунарство