1 00:00:04,400 --> 00:00:07,800 Speaker 1: Welcome to Tech Stuff, a production from I Heart Radio. 2 00:00:12,080 --> 00:00:15,040 Speaker 1: Hey there, and welcome to tech Stuff. I'm your host, 3 00:00:15,200 --> 00:00:18,520 Speaker 1: Jonathan Strickland. I'm an executive producer with I Heart Radio, 4 00:00:18,680 --> 00:00:23,040 Speaker 1: and I love all things tech. And if you are 5 00:00:23,120 --> 00:00:26,640 Speaker 1: in your early twenties or you are younger than that, 6 00:00:26,960 --> 00:00:30,240 Speaker 1: you missed out on a pretty big deal in tech. 7 00:00:30,640 --> 00:00:34,639 Speaker 1: And that's the Y two K problem. So Y two 8 00:00:34,720 --> 00:00:38,760 Speaker 1: K stands for the year two thousand and by the way, 9 00:00:39,400 --> 00:00:42,960 Speaker 1: there's somewhat of a delicious irony at work here, because 10 00:00:43,120 --> 00:00:45,000 Speaker 1: Y two K is a way for us to shorten 11 00:00:45,520 --> 00:00:48,200 Speaker 1: the year two thousand and the Y two K problem 12 00:00:48,200 --> 00:00:51,800 Speaker 1: itself stems from our tendency to shorten stuff for the 13 00:00:51,880 --> 00:00:56,040 Speaker 1: sake of convenience, even at the expense of long term results. 14 00:00:56,360 --> 00:01:00,360 Speaker 1: But I digress. By the late ninety nineties was this 15 00:01:00,440 --> 00:01:03,760 Speaker 1: growing concern that a great deal of the technology that 16 00:01:03,800 --> 00:01:06,959 Speaker 1: we rely upon was just going to fail on the 17 00:01:07,000 --> 00:01:11,240 Speaker 1: stroke of midnight. As New Year's Eve n turned to 18 00:01:11,319 --> 00:01:15,280 Speaker 1: New Year's Day two thousand, people were worried about everything 19 00:01:15,319 --> 00:01:19,600 Speaker 1: from toasters to airplanes that we're all gonna just fail spontaneously, 20 00:01:20,040 --> 00:01:23,080 Speaker 1: and clearly the latter would have a much more catastrophic 21 00:01:23,120 --> 00:01:26,080 Speaker 1: result than the former. So today I thought I would 22 00:01:26,120 --> 00:01:28,400 Speaker 1: really go through what was happening with the HYE two 23 00:01:28,480 --> 00:01:33,319 Speaker 1: K problem, how various companies tried to solve it, and 24 00:01:33,360 --> 00:01:37,280 Speaker 1: what actually happened at the turn of the millennium. Uh, 25 00:01:37,400 --> 00:01:40,039 Speaker 1: that last bit I should probably back off of, since 26 00:01:40,080 --> 00:01:43,080 Speaker 1: you know two thousand was actually the end of the millennium. 27 00:01:43,120 --> 00:01:46,160 Speaker 1: Two thousand one would have been the beginning of the millennium. 28 00:01:46,200 --> 00:01:49,520 Speaker 1: Don't at me. Years don't start at zero, we start 29 00:01:49,600 --> 00:01:53,040 Speaker 1: at one. So that means one to one hundred would 30 00:01:53,040 --> 00:01:55,200 Speaker 1: be the first century, one oh one to two d 31 00:01:55,240 --> 00:01:59,640 Speaker 1: would be the second. That that's my stance. You might disagree. 32 00:02:00,360 --> 00:02:03,320 Speaker 1: Let's just agree to disagree and go our separate ways. 33 00:02:03,360 --> 00:02:06,480 Speaker 1: But I'll also talk about some related issues in tech, 34 00:02:06,560 --> 00:02:11,160 Speaker 1: including how the Y two k problem resurfaced just last year, 35 00:02:11,960 --> 00:02:15,920 Speaker 1: because that actually did happen, and there's there's a reason 36 00:02:16,040 --> 00:02:22,400 Speaker 1: for it, and that reason is kind of tragically funny. Now, 37 00:02:23,120 --> 00:02:26,320 Speaker 1: the easiest thing to do here is to just summarize 38 00:02:26,360 --> 00:02:29,680 Speaker 1: the whole issue in this way. The Y two K 39 00:02:29,840 --> 00:02:35,160 Speaker 1: problem emerged because of a convergence of several factors. Factor 40 00:02:35,240 --> 00:02:39,680 Speaker 1: number one is that computer memory is finite. It has 41 00:02:39,960 --> 00:02:43,920 Speaker 1: a limit. Factor number two is that we often build 42 00:02:43,960 --> 00:02:47,680 Speaker 1: on top of what came before, meaning the stuff we 43 00:02:47,800 --> 00:02:50,919 Speaker 1: create twenty years ago becomes the foundation for the stuff 44 00:02:50,919 --> 00:02:54,440 Speaker 1: that we create today. And factor number three is that 45 00:02:54,520 --> 00:02:58,400 Speaker 1: sometimes people are lazy. Even if they have the resources 46 00:02:58,440 --> 00:03:01,400 Speaker 1: to do more than what was capable in the past, 47 00:03:02,120 --> 00:03:05,600 Speaker 1: they may just still do the bare minimum. Alright, And 48 00:03:05,680 --> 00:03:09,399 Speaker 1: because the world did not go up in flames when 49 00:03:09,400 --> 00:03:13,640 Speaker 1: the calendar switched from two thousand, many people assume that 50 00:03:13,680 --> 00:03:18,000 Speaker 1: the whole brew haha was over nothing. But it wasn't nothing. 51 00:03:18,200 --> 00:03:23,280 Speaker 1: Companies had spent billions of dollars, hundreds of billions of 52 00:03:23,320 --> 00:03:26,920 Speaker 1: dollars to address the issue. They were reconfiguring systems, they 53 00:03:26,919 --> 00:03:30,440 Speaker 1: were updating code in order to avoid the problem. Some 54 00:03:30,560 --> 00:03:33,560 Speaker 1: of them really just punted the problem a little bit 55 00:03:33,560 --> 00:03:36,800 Speaker 1: into the future. And even today, we still occasionally have 56 00:03:36,880 --> 00:03:40,320 Speaker 1: instances in which an antiquated system or piece of software 57 00:03:40,720 --> 00:03:44,000 Speaker 1: generates an incorrect result because of the y u K bug, 58 00:03:44,320 --> 00:03:46,840 Speaker 1: though that sort of thing never really makes the news 59 00:03:46,880 --> 00:03:50,600 Speaker 1: these days. After all, a computer producing an error isn't 60 00:03:50,640 --> 00:03:56,240 Speaker 1: really newsworthy unless something particularly catastrophic results because of that, right, 61 00:03:56,360 --> 00:03:59,720 Speaker 1: So let's get to the root of it. In the 62 00:03:59,800 --> 00:04:04,520 Speaker 1: early days of computer programming for companies and organizations, you know, 63 00:04:04,520 --> 00:04:07,800 Speaker 1: when programming was moving out of like the research labs 64 00:04:07,800 --> 00:04:10,720 Speaker 1: and the military institutions. So we're talking about like the 65 00:04:10,800 --> 00:04:15,440 Speaker 1: nineteen sixties here. Computer memory was a really precious resource. 66 00:04:15,680 --> 00:04:18,040 Speaker 1: There just wasn't a whole lot to work with, so 67 00:04:18,160 --> 00:04:21,919 Speaker 1: programmers would try and cut corners wherever possible, trying to 68 00:04:22,000 --> 00:04:26,320 Speaker 1: make code in an efficient and effective way. And one 69 00:04:26,360 --> 00:04:29,040 Speaker 1: decision a lot of coders made in those early days 70 00:04:29,400 --> 00:04:31,359 Speaker 1: was to take a bit of a shortcut when it 71 00:04:31,440 --> 00:04:36,280 Speaker 1: came to designated the year. Rather than using a four 72 00:04:36,360 --> 00:04:41,560 Speaker 1: digit designation for the year, like you know nineteen sixty one, 73 00:04:42,000 --> 00:04:46,040 Speaker 1: programmers often shorten the year down to the last two digits, 74 00:04:46,480 --> 00:04:49,240 Speaker 1: and heck, to be fair, we humans, we do this 75 00:04:49,320 --> 00:04:52,960 Speaker 1: all the time in casual conversation as well as Brian 76 00:04:53,040 --> 00:04:56,360 Speaker 1: Adams songs or for those of you post two thousand 77 00:04:56,360 --> 00:05:00,719 Speaker 1: babies bowling for soup songs. So nineteene seventy five just 78 00:05:00,800 --> 00:05:05,119 Speaker 1: becomes seventy five. Computers would just assume that the two 79 00:05:05,320 --> 00:05:09,960 Speaker 1: unincluded digits would be one nine, So the two digit 80 00:05:10,080 --> 00:05:14,120 Speaker 1: year designation was with the assumption that this year fell 81 00:05:14,279 --> 00:05:18,960 Speaker 1: somewhere in the century of nineteen hundred to nineteen Well, 82 00:05:18,960 --> 00:05:21,920 Speaker 1: I shouldn't say century, the one hundred year period between 83 00:05:22,000 --> 00:05:25,039 Speaker 1: nineteen hundred and nine. No need to go back on 84 00:05:25,080 --> 00:05:28,480 Speaker 1: that nineteen o one thing, And at the time that 85 00:05:28,560 --> 00:05:33,200 Speaker 1: was okay. There were still decades left in the nineteen hundreds. 86 00:05:33,240 --> 00:05:37,000 Speaker 1: While this computer programming was going on. Computer memory was 87 00:05:37,040 --> 00:05:40,719 Speaker 1: bound to improve, and surely the future programmers would move 88 00:05:40,760 --> 00:05:43,760 Speaker 1: to a four digit designation for the year once they 89 00:05:43,760 --> 00:05:46,640 Speaker 1: had the elbow room to do it. Now, to be clear, 90 00:05:46,960 --> 00:05:50,200 Speaker 1: this problem was not a new one. In fact, you 91 00:05:50,240 --> 00:05:53,200 Speaker 1: could argue that this problem actually dates back to before 92 00:05:53,279 --> 00:05:56,559 Speaker 1: there were computers. So let us take a journey all 93 00:05:56,600 --> 00:06:01,159 Speaker 1: the way back to eighteen eighty one. You probably didn't 94 00:06:01,200 --> 00:06:03,440 Speaker 1: think the Y two K problem dates all the way 95 00:06:03,760 --> 00:06:08,159 Speaker 1: back beyond a century before the pivotal event. Huh. But 96 00:06:08,400 --> 00:06:12,440 Speaker 1: eight eight one, or really eighteen eighty was a census 97 00:06:12,560 --> 00:06:15,400 Speaker 1: year here in the United States, and the US holds 98 00:06:15,400 --> 00:06:18,839 Speaker 1: a census every ten years. Now, the one in eighteen 99 00:06:18,920 --> 00:06:23,200 Speaker 1: eighty presented a particular challenge that was evident by eighty one. 100 00:06:23,360 --> 00:06:26,640 Speaker 1: So that was that it was going to take a 101 00:06:26,640 --> 00:06:30,720 Speaker 1: long time to tabulate all the results of that census 102 00:06:30,760 --> 00:06:35,240 Speaker 1: in fact, Ultimately, it took eight years to tabulate the 103 00:06:35,279 --> 00:06:38,440 Speaker 1: results of the eighteen eighties census, and this is something 104 00:06:38,480 --> 00:06:42,479 Speaker 1: that is to happen every ten years, right. And meanwhile, 105 00:06:42,839 --> 00:06:46,200 Speaker 1: in the United States, population was growing, and it was 106 00:06:46,440 --> 00:06:49,080 Speaker 1: pretty much a guarantee that the next census was going 107 00:06:49,120 --> 00:06:51,680 Speaker 1: to take even longer to tabulate unless there was some 108 00:06:51,720 --> 00:06:55,080 Speaker 1: sort of major change. And then along came a fellow 109 00:06:55,360 --> 00:06:59,240 Speaker 1: by the name of Herman hollerith and engineer with a 110 00:06:59,279 --> 00:07:03,960 Speaker 1: goal to create a machine capable of tallying census results automatically. 111 00:07:04,600 --> 00:07:10,200 Speaker 1: He was building upon Joseph Maria Jacquard's invention the punch card. Now, 112 00:07:10,280 --> 00:07:15,040 Speaker 1: Jacquard used punch cards to guide looms as in weaving machines. 113 00:07:15,880 --> 00:07:19,520 Speaker 1: These these punch cards automated the weaving of certain patterns, 114 00:07:20,120 --> 00:07:22,640 Speaker 1: so that these intricate patterns that would normally take a 115 00:07:22,800 --> 00:07:24,920 Speaker 1: very long time to do by hand, could be done 116 00:07:25,000 --> 00:07:28,680 Speaker 1: very quickly through the use of these punch cards. Holler 117 00:07:28,720 --> 00:07:32,480 Speaker 1: has saw this as a way to designate results on 118 00:07:32,520 --> 00:07:35,440 Speaker 1: a census response. You would have a clerk who would 119 00:07:35,480 --> 00:07:39,360 Speaker 1: take a response. They would punch some holes into a 120 00:07:40,280 --> 00:07:44,119 Speaker 1: punch card that would represent those responses, and then feed 121 00:07:44,160 --> 00:07:47,480 Speaker 1: those two tallying machines that could tabulate the results quickly. 122 00:07:47,920 --> 00:07:51,840 Speaker 1: So Hollow designed cards that measured seven inches by three inches, 123 00:07:52,240 --> 00:07:56,280 Speaker 1: capable of holding just eighty characters total. Now, if you 124 00:07:56,560 --> 00:08:02,600 Speaker 1: only have eighty characters to work with, every character is precious, 125 00:08:02,640 --> 00:08:05,680 Speaker 1: So using four of those eighty characters to designate a 126 00:08:05,760 --> 00:08:09,480 Speaker 1: year would be pure luxury. And so you decide you're 127 00:08:09,480 --> 00:08:11,640 Speaker 1: gonna cut a corner. You're just going to use the 128 00:08:11,720 --> 00:08:16,880 Speaker 1: last two digits of the year instead of the whole thing. Um, 129 00:08:16,960 --> 00:08:19,040 Speaker 1: if anyone's used Twitter back when it was at a 130 00:08:19,120 --> 00:08:21,920 Speaker 1: hundred forty characters, you know, like once you started getting 131 00:08:21,960 --> 00:08:24,320 Speaker 1: close to those hundred forty characters, he had to rethink 132 00:08:24,360 --> 00:08:27,200 Speaker 1: your message as and how can I how can I 133 00:08:27,200 --> 00:08:29,800 Speaker 1: make this more concise so that I can get across 134 00:08:29,840 --> 00:08:33,640 Speaker 1: my meaning? Well, the same sort of thing here. Now, 135 00:08:33,679 --> 00:08:36,920 Speaker 1: that was for nineteenth century punch cards, which, by the way, 136 00:08:36,920 --> 00:08:40,640 Speaker 1: that actually did work. The nine senses took two years 137 00:08:40,679 --> 00:08:44,200 Speaker 1: to tabulate compared to the eight years of the eighty 138 00:08:44,280 --> 00:08:48,240 Speaker 1: cents is but that need to conserve precious memory space 139 00:08:49,000 --> 00:08:53,040 Speaker 1: persisted well into the twentieth century. The prevailing thought was 140 00:08:53,120 --> 00:08:57,040 Speaker 1: that computer memory would improve over time and would eliminate 141 00:08:57,120 --> 00:08:59,880 Speaker 1: the need to be so frugal with the programming code. 142 00:09:00,559 --> 00:09:05,040 Speaker 1: But then people didn't really bank on something called Worth's law. 143 00:09:05,160 --> 00:09:08,880 Speaker 1: That's w I R t H. Now in the tech world, 144 00:09:09,120 --> 00:09:12,920 Speaker 1: there are a few observations that we've collectively decided to 145 00:09:13,080 --> 00:09:18,160 Speaker 1: call laws. Arguably the most famous one is Moore's law. 146 00:09:18,440 --> 00:09:21,600 Speaker 1: That's based on an observation made by Gordon Moore, and 147 00:09:21,720 --> 00:09:25,439 Speaker 1: his observation centered more on the trend of the doubling 148 00:09:25,640 --> 00:09:29,960 Speaker 1: of the number of transistors on integrated circuit every two years. 149 00:09:30,640 --> 00:09:33,040 Speaker 1: Actually gets a little more persinkty than that it brings 150 00:09:33,040 --> 00:09:37,400 Speaker 1: in market pressures and finance and things. But that's a 151 00:09:37,400 --> 00:09:40,920 Speaker 1: decent summary. But these days we typically say that Moore's 152 00:09:41,000 --> 00:09:44,760 Speaker 1: law is a trend in which computers double in processing 153 00:09:44,840 --> 00:09:48,840 Speaker 1: power and or speed every two years, so that the 154 00:09:48,840 --> 00:09:52,240 Speaker 1: computer you buy two years from today will be twice 155 00:09:52,280 --> 00:09:55,240 Speaker 1: as powerful as the one you are currently using. Assuming 156 00:09:55,360 --> 00:09:58,400 Speaker 1: the one you're currently using as a new computer. Well, 157 00:09:59,120 --> 00:10:03,160 Speaker 1: Worth's law is a little bit different. Nicholas Worth wrote 158 00:10:03,160 --> 00:10:06,520 Speaker 1: in an article in n It was an article titled 159 00:10:06,679 --> 00:10:11,800 Speaker 1: a Plea for Lean Software that software was placing greater 160 00:10:11,880 --> 00:10:15,320 Speaker 1: demands on hardware at a rate that was even faster 161 00:10:15,400 --> 00:10:19,199 Speaker 1: than Moore's law. So, in other words, software was requiring 162 00:10:19,240 --> 00:10:24,079 Speaker 1: more processing power than computers could easily provide. And that's 163 00:10:24,200 --> 00:10:27,880 Speaker 1: even taking into account the incredible growth rate of Moore's law. 164 00:10:28,200 --> 00:10:32,040 Speaker 1: Programmers were not being efficient and companies were eager to 165 00:10:32,080 --> 00:10:35,480 Speaker 1: throw in all the possible bells and whistles and programs 166 00:10:35,480 --> 00:10:38,560 Speaker 1: to attract customers. And when you're trying to build in 167 00:10:38,600 --> 00:10:42,440 Speaker 1: the capability for your word processor to also play video files, 168 00:10:42,440 --> 00:10:45,000 Speaker 1: for some reason, you might not have the room to 169 00:10:45,160 --> 00:10:48,480 Speaker 1: also use four digits to mark the year. You cut 170 00:10:48,559 --> 00:10:52,640 Speaker 1: corners where you can so. Ironically, while computer memory would 171 00:10:52,640 --> 00:10:55,920 Speaker 1: improve and in theory allow for a change from the 172 00:10:55,920 --> 00:11:00,559 Speaker 1: two digit year format to a four digit year format, 173 00:11:00,840 --> 00:11:04,079 Speaker 1: a lot of programmers just didn't take that route. Whether 174 00:11:04,120 --> 00:11:06,680 Speaker 1: it was because they had fallen into a habit and 175 00:11:06,760 --> 00:11:09,160 Speaker 1: they just used two digits because this is how we've 176 00:11:09,160 --> 00:11:12,319 Speaker 1: always done it, or because they literally wanted to save 177 00:11:12,400 --> 00:11:15,760 Speaker 1: that space for something else, just comes down to a 178 00:11:15,800 --> 00:11:19,720 Speaker 1: case by case basis. Also, hey, quick side note, the 179 00:11:19,840 --> 00:11:22,760 Speaker 1: argument we do it this way because we've always done 180 00:11:22,800 --> 00:11:25,960 Speaker 1: it this way is a dumb argument. Now it could 181 00:11:25,960 --> 00:11:29,120 Speaker 1: be that the old way is the best way that 182 00:11:29,160 --> 00:11:31,560 Speaker 1: would be totally valid. If it is in fact the 183 00:11:31,559 --> 00:11:34,000 Speaker 1: best way, sure keep doing it. You're not doing it 184 00:11:34,040 --> 00:11:36,240 Speaker 1: because that's the way you've always done it, but because 185 00:11:36,280 --> 00:11:39,240 Speaker 1: that's the best way to do it. But to only 186 00:11:39,280 --> 00:11:42,400 Speaker 1: do things one way, because that quote is how it's 187 00:11:42,400 --> 00:11:45,400 Speaker 1: always been done, en quote, is more often than not 188 00:11:45,520 --> 00:11:48,000 Speaker 1: an impediment to progress. Anyway, let me get back to 189 00:11:48,040 --> 00:11:51,240 Speaker 1: the story now. Part of the story is also about 190 00:11:51,600 --> 00:11:56,080 Speaker 1: standards and why we have them and why it's so 191 00:11:56,200 --> 00:12:00,920 Speaker 1: darn frustrating when we refuse to actually use um when 192 00:12:00,960 --> 00:12:04,560 Speaker 1: it comes to expressing dates and time. There is an 193 00:12:04,640 --> 00:12:08,120 Speaker 1: international standard we could follow, and it goes like this, 194 00:12:08,559 --> 00:12:12,160 Speaker 1: four digits for the year, then two digits for the month, 195 00:12:12,600 --> 00:12:15,760 Speaker 1: then two digits for the day, than two digits for 196 00:12:15,800 --> 00:12:19,679 Speaker 1: the hour, two digits for the minutes, two digits for 197 00:12:19,720 --> 00:12:23,320 Speaker 1: the seconds. And if you followed that then there would 198 00:12:23,360 --> 00:12:26,840 Speaker 1: never be any confusion. Uh. This provides a precise way 199 00:12:26,840 --> 00:12:30,720 Speaker 1: to document the specific time, and if we had relied 200 00:12:30,760 --> 00:12:33,360 Speaker 1: on such a standard, then the Y two K problem 201 00:12:33,679 --> 00:12:36,280 Speaker 1: wouldn't have been a problem at all. Of course, that 202 00:12:36,280 --> 00:12:39,599 Speaker 1: would have required us to have the computer memory available 203 00:12:39,720 --> 00:12:42,640 Speaker 1: to use that standard every time. We needed to have 204 00:12:43,200 --> 00:12:49,439 Speaker 1: a year in the code, but it would actually work. 205 00:12:50,400 --> 00:12:55,240 Speaker 1: And uh, you know, sometimes we just don't incorporate standards 206 00:12:55,240 --> 00:12:58,760 Speaker 1: because incorporating standards requires effort, and you know, sometimes it's 207 00:12:58,840 --> 00:13:01,559 Speaker 1: just not feeling it that day. You know, you get 208 00:13:01,640 --> 00:13:03,640 Speaker 1: up and you're like, you know, I I just don't 209 00:13:03,679 --> 00:13:08,040 Speaker 1: feel like living up to standards. I certainly can identify 210 00:13:08,120 --> 00:13:11,520 Speaker 1: with that on a personal level. Well as early as 211 00:13:11,600 --> 00:13:15,800 Speaker 1: the nineteen eighties, some programmers began to wonder about issues 212 00:13:15,800 --> 00:13:18,520 Speaker 1: that might come up closer to the New millennium. In fact, 213 00:13:18,960 --> 00:13:21,319 Speaker 1: there were some industries that were already dealing with this, 214 00:13:21,440 --> 00:13:23,680 Speaker 1: but we'll get into that a bit later. This was 215 00:13:23,760 --> 00:13:30,320 Speaker 1: more about people actually using publications to talk about this issue. 216 00:13:30,840 --> 00:13:33,200 Speaker 1: So if a computer is looking at dates as two 217 00:13:33,280 --> 00:13:40,079 Speaker 1: digit numbers, what happens when goes to zero zero? Let 218 00:13:40,080 --> 00:13:42,559 Speaker 1: me tell you a quick story about a pinball machine 219 00:13:42,559 --> 00:13:44,520 Speaker 1: that used to play back when I was in college. 220 00:13:44,920 --> 00:13:47,880 Speaker 1: I promise this relates. And also I just love pinball 221 00:13:48,280 --> 00:13:50,760 Speaker 1: and it's one of my favorite stories. I went to 222 00:13:50,800 --> 00:13:54,480 Speaker 1: the University of Georgia and at you g A's student center, 223 00:13:54,600 --> 00:13:57,120 Speaker 1: we had a game room that included a row of 224 00:13:57,160 --> 00:14:00,079 Speaker 1: pinball machines and they were also about two dozen and 225 00:14:00,320 --> 00:14:04,640 Speaker 1: arcade games, and the pinball machines included some true classics 226 00:14:04,679 --> 00:14:08,400 Speaker 1: like Adam's Family, which is to date my favorite pinball 227 00:14:08,440 --> 00:14:12,720 Speaker 1: machine of all time. Twilight Zone another great, very difficult 228 00:14:12,720 --> 00:14:15,480 Speaker 1: pinball machine. But once in a while we would also 229 00:14:15,520 --> 00:14:19,040 Speaker 1: have someone rotate in a new or sometimes a very 230 00:14:19,160 --> 00:14:22,640 Speaker 1: old pinball machine, and I suppose they must have belonged 231 00:14:22,680 --> 00:14:28,160 Speaker 1: to some you know, alumnus is private collection or something. Anyway, 232 00:14:28,360 --> 00:14:31,960 Speaker 1: at one point, for some reason, we got a nineteen 233 00:14:32,120 --> 00:14:35,840 Speaker 1: seventy nine Star Trek pinball machine from Bally and just 234 00:14:35,880 --> 00:14:38,560 Speaker 1: so y'all know, I was in college in the nineties, 235 00:14:39,040 --> 00:14:42,560 Speaker 1: so this was a vintage pinball machine even back then. 236 00:14:43,040 --> 00:14:46,560 Speaker 1: The playing field on this machine had this one little 237 00:14:46,680 --> 00:14:48,920 Speaker 1: button in the floor of the playing field up at 238 00:14:48,920 --> 00:14:51,600 Speaker 1: the top left part, and it was designed so that 239 00:14:51,640 --> 00:14:54,720 Speaker 1: when the pinball would roll over it, it would activate 240 00:14:54,760 --> 00:14:58,600 Speaker 1: the button. And this button was in charge of activating 241 00:14:58,640 --> 00:15:00,960 Speaker 1: an extra ball after it has hit a certain number 242 00:15:00,960 --> 00:15:04,960 Speaker 1: of times. However, this particular machine had a button that 243 00:15:04,960 --> 00:15:08,480 Speaker 1: would stick a little bit, so it didn't take very 244 00:15:08,560 --> 00:15:11,720 Speaker 1: much effort to get that extra ball, and I, being 245 00:15:11,760 --> 00:15:16,200 Speaker 1: the enterprising sort pun intended because of Star Trek, I 246 00:15:16,280 --> 00:15:19,440 Speaker 1: decided one day that. You know, I didn't have any 247 00:15:19,440 --> 00:15:22,480 Speaker 1: classes that day. I was going to use this knowledge 248 00:15:22,480 --> 00:15:25,400 Speaker 1: to my advantage, and my goal was at the beginning 249 00:15:25,440 --> 00:15:28,640 Speaker 1: of each play just just focus on getting the ball 250 00:15:28,800 --> 00:15:31,600 Speaker 1: up in that upper left part of the playfield and 251 00:15:31,640 --> 00:15:34,960 Speaker 1: to activate the extra ball. That was goal number one. 252 00:15:35,480 --> 00:15:37,800 Speaker 1: Once I did that, from that point forward, I could 253 00:15:37,840 --> 00:15:39,600 Speaker 1: just play the game. I could do whatever I wanted 254 00:15:39,640 --> 00:15:43,000 Speaker 1: because I had an extra ball already, and even if 255 00:15:43,040 --> 00:15:46,040 Speaker 1: the ball drained, I wouldn't lose a life because that 256 00:15:46,160 --> 00:15:48,240 Speaker 1: was the extra ball. And as soon as I started 257 00:15:48,280 --> 00:15:50,760 Speaker 1: playing the extra ball, I would do it all over again. 258 00:15:51,080 --> 00:15:53,000 Speaker 1: And this meant that as long as I could get 259 00:15:53,040 --> 00:15:54,960 Speaker 1: it up into that upper left part of the game, 260 00:15:55,600 --> 00:15:59,600 Speaker 1: I could effectively play this game forever or until I 261 00:15:59,720 --> 00:16:04,240 Speaker 1: was exhausted. Well, the score of this particular machine could 262 00:16:04,240 --> 00:16:06,920 Speaker 1: only accommodate up to a certain number of digits, and 263 00:16:07,120 --> 00:16:10,240 Speaker 1: I can't remember what it was. Let's say it was 264 00:16:10,240 --> 00:16:13,840 Speaker 1: a million or just under a million. So I decided 265 00:16:13,880 --> 00:16:16,600 Speaker 1: I wanted to see what would happen if I exceeded 266 00:16:16,760 --> 00:16:20,400 Speaker 1: that number. I had the methodology there, and sure enough, 267 00:16:20,840 --> 00:16:23,520 Speaker 1: when I got to that point, you know whatever, it 268 00:16:23,600 --> 00:16:28,760 Speaker 1: was like nine thousand, nine nine or whatever. I saw 269 00:16:28,960 --> 00:16:31,440 Speaker 1: that the next point, the next thing that I hit 270 00:16:31,560 --> 00:16:35,840 Speaker 1: that generated points sent me back over to the zero 271 00:16:36,280 --> 00:16:42,160 Speaker 1: starting point, and the score keeping started over. So satisfied 272 00:16:42,200 --> 00:16:45,400 Speaker 1: that I had turned over the machine, I had rolled 273 00:16:45,640 --> 00:16:49,600 Speaker 1: over the score, I quickly finished out the game, and 274 00:16:49,640 --> 00:16:51,320 Speaker 1: I wanted to see if it would let me set 275 00:16:51,360 --> 00:16:55,200 Speaker 1: a high score, or if it would, you know, choose 276 00:16:55,280 --> 00:16:57,760 Speaker 1: my score as the high score. It did not. It 277 00:16:57,840 --> 00:17:03,000 Speaker 1: reverted back to the previous high score that was technically lower. Um. 278 00:17:03,040 --> 00:17:05,199 Speaker 1: So there was a rollover problem. In other words, like 279 00:17:05,240 --> 00:17:09,960 Speaker 1: once it hit zero, the computer interpreted that to mean 280 00:17:10,480 --> 00:17:14,560 Speaker 1: that we were back at ground zero. Well, in the 281 00:17:14,560 --> 00:17:17,159 Speaker 1: early eighties, a few programmers were starting to worry that 282 00:17:17,240 --> 00:17:20,920 Speaker 1: a lot of systems in software had a similar rollover 283 00:17:21,040 --> 00:17:23,280 Speaker 1: problem and it was going to all come to a 284 00:17:23,320 --> 00:17:27,879 Speaker 1: head in two thousand. With the two digit designation for years, 285 00:17:28,160 --> 00:17:30,640 Speaker 1: it could mean that computer systems would think the year 286 00:17:30,720 --> 00:17:33,199 Speaker 1: was starting back over at zero and work up to 287 00:17:33,240 --> 00:17:37,760 Speaker 1: a maximum before rolling over again. And this could potentially 288 00:17:37,840 --> 00:17:40,240 Speaker 1: be a big problem. So, for example, let's say you 289 00:17:40,280 --> 00:17:43,760 Speaker 1: were a go getter in and you got yourself one 290 00:17:43,760 --> 00:17:46,840 Speaker 1: of them fancy credit cards, and your credit cards expiration 291 00:17:46,960 --> 00:17:50,080 Speaker 1: date is in let's say two thousand two, and then 292 00:17:50,480 --> 00:17:52,440 Speaker 1: you go out and you take your fancy credit card 293 00:17:52,480 --> 00:17:55,000 Speaker 1: to buy you and someone special, you know, a really 294 00:17:55,240 --> 00:17:58,600 Speaker 1: nice meal, and you've got, you know, plenty of credit 295 00:17:58,680 --> 00:18:02,040 Speaker 1: on your card. Everything should be fine. Only when the 296 00:18:02,080 --> 00:18:06,320 Speaker 1: fancy restaurant runs your credit card, the underlying retail system 297 00:18:06,400 --> 00:18:09,720 Speaker 1: detects and error. The system is attempting to verify that 298 00:18:09,760 --> 00:18:12,760 Speaker 1: your card is valid, so it checks the expiration date, 299 00:18:13,040 --> 00:18:16,720 Speaker 1: but it's essentially saying, you know, is today's date before 300 00:18:17,119 --> 00:18:20,240 Speaker 1: or after the expiration date on this card. If today's 301 00:18:20,320 --> 00:18:23,760 Speaker 1: date is before the expiration date, everything's fine. If it's after, 302 00:18:23,880 --> 00:18:26,320 Speaker 1: that's a problem. And if the system was using a 303 00:18:26,400 --> 00:18:30,240 Speaker 1: two digit year designation, it would say, oh, zero two 304 00:18:30,280 --> 00:18:34,040 Speaker 1: is less than That means this card expired like ninety 305 00:18:34,160 --> 00:18:38,480 Speaker 1: seven years ago, and the transaction would get declined. This 306 00:18:39,240 --> 00:18:44,440 Speaker 1: really happened a lot. Now that's just a sample scenario 307 00:18:44,480 --> 00:18:47,240 Speaker 1: of something that could happen, the sort of you know, 308 00:18:47,359 --> 00:18:50,800 Speaker 1: tiny thing that would be inconvenient on an individual basis. 309 00:18:51,119 --> 00:18:53,439 Speaker 1: But it was just the tip of the iceberg for 310 00:18:53,520 --> 00:18:56,960 Speaker 1: possible problems. I'll talk about it more when we come 311 00:18:56,960 --> 00:19:07,719 Speaker 1: back after this break. I mentioned a small scale problem 312 00:19:07,760 --> 00:19:10,159 Speaker 1: the one that's you know, huge when you apply it 313 00:19:10,240 --> 00:19:13,960 Speaker 1: to the entire population. But how about something that's even 314 00:19:14,000 --> 00:19:16,720 Speaker 1: bigger than that, And let's stick with the financial world 315 00:19:16,760 --> 00:19:19,960 Speaker 1: and talk about banks. So let's say it's nineteen eighty 316 00:19:20,040 --> 00:19:23,320 Speaker 1: five when you establish a savings account and you put 317 00:19:23,320 --> 00:19:25,240 Speaker 1: some money in the account and it begins to earn 318 00:19:25,320 --> 00:19:28,560 Speaker 1: interest at a certain percentage per year. And the way 319 00:19:28,600 --> 00:19:31,479 Speaker 1: the bank system determines this is by taking the current 320 00:19:31,560 --> 00:19:35,919 Speaker 1: year let's say, in this scenario, the current years, and 321 00:19:35,920 --> 00:19:37,879 Speaker 1: then you subtract from that the year in which you 322 00:19:37,960 --> 00:19:40,760 Speaker 1: established your account. So in this example, it would be 323 00:19:40,840 --> 00:19:45,359 Speaker 1: nine eighty five. That gives us ten that's ten years 324 00:19:45,359 --> 00:19:48,680 Speaker 1: of earning interest, which then can be calculated and then 325 00:19:48,720 --> 00:19:50,600 Speaker 1: you know how much interest you've earned on your account, 326 00:19:50,600 --> 00:19:53,640 Speaker 1: which is pretty simple. But let's say instead, now it's 327 00:19:53,640 --> 00:19:56,600 Speaker 1: the year two thousand, and you're still using these two 328 00:19:56,640 --> 00:19:59,560 Speaker 1: digit year designations, and now the bank system is trying 329 00:19:59,560 --> 00:20:04,560 Speaker 1: to subtract from zero zero. Now, remember the system is 330 00:20:04,600 --> 00:20:07,159 Speaker 1: assuming that both of these are happening in the century 331 00:20:07,280 --> 00:20:12,040 Speaker 1: or the one years between ninet So now the figure 332 00:20:12,080 --> 00:20:15,200 Speaker 1: it comes up with is negative eight five, and that 333 00:20:15,240 --> 00:20:18,800 Speaker 1: means that you've earned negative interest which gets pulled from 334 00:20:18,840 --> 00:20:22,840 Speaker 1: your account, it overdraws your account. So the real concern 335 00:20:23,000 --> 00:20:24,919 Speaker 1: was that the Y two K bug was going to 336 00:20:25,000 --> 00:20:29,000 Speaker 1: lead to numerous computer systems, particularly in the financial world, 337 00:20:29,280 --> 00:20:31,960 Speaker 1: but not exclusively there, and it was going to cause 338 00:20:32,000 --> 00:20:35,080 Speaker 1: them to miscalculate things like this, and as a result, 339 00:20:35,280 --> 00:20:39,960 Speaker 1: you would have widespread system failures. Accounts could get wiped out, 340 00:20:40,080 --> 00:20:45,280 Speaker 1: insurance policies could get canceled, mortgages could be flagged for foreclosure, 341 00:20:45,440 --> 00:20:48,760 Speaker 1: and so on. It would be catastrophic and a huge 342 00:20:48,880 --> 00:20:52,480 Speaker 1: headache to clean up, and all because we had migrated 343 00:20:52,520 --> 00:20:56,000 Speaker 1: to computer systems that we're using a two digit format 344 00:20:56,080 --> 00:20:58,840 Speaker 1: for the year. A few people became aware of this 345 00:20:58,960 --> 00:21:02,119 Speaker 1: pretty early on, but it took a surprisingly long time 346 00:21:02,200 --> 00:21:04,520 Speaker 1: for the concern to kind of filter out beyond a 347 00:21:04,600 --> 00:21:09,840 Speaker 1: small collective. The problem extended well beyond the financial industry. 348 00:21:09,840 --> 00:21:12,800 Speaker 1: Anything that was dependent upon a year, even something as 349 00:21:12,800 --> 00:21:16,760 Speaker 1: simple as sorting a group of files chronologically, started to 350 00:21:16,800 --> 00:21:20,560 Speaker 1: fall apart. If the computer systems interpreted two thousand as 351 00:21:20,720 --> 00:21:26,120 Speaker 1: really being nineteen hundred, it could affect navigation systems, communication systems, 352 00:21:26,119 --> 00:21:29,080 Speaker 1: and all sorts of other industries. Now, from what I 353 00:21:29,080 --> 00:21:32,080 Speaker 1: can tell, people began to see this as an issue 354 00:21:32,960 --> 00:21:37,520 Speaker 1: UH and started talking about it beyond internal groups around 355 00:21:37,600 --> 00:21:40,760 Speaker 1: the early nineteen eighties, but didn't get much attention. Back then. 356 00:21:41,200 --> 00:21:45,239 Speaker 1: Some companies like IBM were probably more aware of it. 357 00:21:45,320 --> 00:21:48,240 Speaker 1: I mean, the company certainly claimed as much, but they 358 00:21:48,320 --> 00:21:51,119 Speaker 1: kept those discussions for the most part internal, so the 359 00:21:51,160 --> 00:21:54,760 Speaker 1: outside world wasn't really aware of it. In nineteen eight six, 360 00:21:55,080 --> 00:21:58,639 Speaker 1: Bruce Olmes wrote an article in the IBM Systems Journal, 361 00:21:58,920 --> 00:22:03,280 Speaker 1: Volume twenty five, issue two. It has the title computer 362 00:22:03,400 --> 00:22:07,919 Speaker 1: processing of Dates outside the twentieth century, and in this article, 363 00:22:08,080 --> 00:22:10,760 Speaker 1: Olms points out that there's a need for a different 364 00:22:10,800 --> 00:22:15,199 Speaker 1: approach than this two digit year designation. Omas's solution was 365 00:22:15,240 --> 00:22:19,840 Speaker 1: to use the Lilian date format, which was his own proposal. 366 00:22:20,359 --> 00:22:23,080 Speaker 1: This format actually takes the date of the formation of 367 00:22:23,080 --> 00:22:27,520 Speaker 1: the Gregorian calendar, which was October four two, and thus 368 00:22:27,560 --> 00:22:33,679 Speaker 1: designates October two as date one. So the date of 369 00:22:33,760 --> 00:22:36,880 Speaker 1: the creation of the Gregorian calendar is zero, The next 370 00:22:36,920 --> 00:22:39,320 Speaker 1: day would be one, the day after that would be two, 371 00:22:39,880 --> 00:22:43,000 Speaker 1: and so the format goes up one per each day 372 00:22:43,040 --> 00:22:46,320 Speaker 1: after that date. That would make today's date one hundred 373 00:22:46,359 --> 00:22:49,800 Speaker 1: sixty thousand, two hundred sixty two today, by the way, 374 00:22:49,840 --> 00:22:54,119 Speaker 1: being July one, in case you're listening from the future. 375 00:22:54,920 --> 00:22:58,840 Speaker 1: Olms also suggested an approach that would use windows of 376 00:22:58,920 --> 00:23:03,120 Speaker 1: time to try get around the two digit problem, generally 377 00:23:03,160 --> 00:23:06,760 Speaker 1: speaking for modern systems that weren't dealing with dates and antiquity. 378 00:23:07,320 --> 00:23:11,760 Speaker 1: He was suggesting that for any years designated as fifty 379 00:23:11,960 --> 00:23:15,800 Speaker 1: or lower, we assume that those are for the year 380 00:23:15,840 --> 00:23:19,280 Speaker 1: two thousand, and for any years fifty one or higher, 381 00:23:19,840 --> 00:23:23,000 Speaker 1: we assume that those are for the year nineteen hundreds. 382 00:23:23,040 --> 00:23:26,680 Speaker 1: So with a little coding, the computer system interprets any 383 00:23:26,800 --> 00:23:30,080 Speaker 1: two digit year number above fifty one to belong in 384 00:23:30,119 --> 00:23:34,879 Speaker 1: the nineteen hundreds. Any two digit year belonging below fifty 385 00:23:35,240 --> 00:23:38,080 Speaker 1: belongs in two thousand's. So if the year was listed 386 00:23:38,080 --> 00:23:41,120 Speaker 1: as seventy seven, then it would mean it's nineteen seventy seven, 387 00:23:41,160 --> 00:23:43,520 Speaker 1: But if it were listed as thirty three, it would 388 00:23:43,560 --> 00:23:46,840 Speaker 1: be two thousand thirty three. So he was proposing this 389 00:23:46,960 --> 00:23:50,440 Speaker 1: as a stop gap solution because it only lasts as 390 00:23:50,480 --> 00:23:53,240 Speaker 1: long as whatever you're dividing year is, and we'll get 391 00:23:53,280 --> 00:23:58,719 Speaker 1: back to that. And this would end up being a 392 00:23:58,720 --> 00:24:02,840 Speaker 1: pivotal part of many companies Y two K strategies, which, 393 00:24:03,520 --> 00:24:06,600 Speaker 1: as we'll see, as part of a problem. Ohms also 394 00:24:06,640 --> 00:24:10,720 Speaker 1: pointed out how simple the problem was in concept, but 395 00:24:10,760 --> 00:24:15,280 Speaker 1: how complicated it was in practice. Conceptually, the only thing 396 00:24:15,320 --> 00:24:17,520 Speaker 1: anyone really has to do is go in and change 397 00:24:17,520 --> 00:24:20,520 Speaker 1: a tiny bit of code and a file. So on 398 00:24:20,560 --> 00:24:24,439 Speaker 1: an individual file basis, it was trivial. It was incredibly simple. 399 00:24:24,880 --> 00:24:28,280 Speaker 1: You could do it in a in just a few minutes. 400 00:24:28,359 --> 00:24:30,879 Speaker 1: But of course reality is way more complicated, because in 401 00:24:30,960 --> 00:24:35,119 Speaker 1: reality we have suites of software that all connect to 402 00:24:35,200 --> 00:24:39,160 Speaker 1: one another, and a change in one of those has 403 00:24:39,240 --> 00:24:42,639 Speaker 1: consequences for everything else that connects back to it. The 404 00:24:42,680 --> 00:24:47,399 Speaker 1: interconnectedness of software requires that for these systems, all of 405 00:24:47,440 --> 00:24:50,440 Speaker 1: these changes to the way that we designate years really 406 00:24:50,440 --> 00:24:54,760 Speaker 1: needs to happen simultaneously across all software, or else you're 407 00:24:54,800 --> 00:24:58,640 Speaker 1: gonna have issues with compatibility. Now, at this point, you're 408 00:24:58,640 --> 00:25:02,400 Speaker 1: not talking about just go into a bunch of individual files, 409 00:25:02,440 --> 00:25:05,679 Speaker 1: even like millions of them, and changing a couple of numbers. 410 00:25:05,920 --> 00:25:09,240 Speaker 1: You're talking about trying to keep an entire software ecosystem 411 00:25:09,359 --> 00:25:13,120 Speaker 1: stable while you do it, and so you don't interrupt 412 00:25:13,200 --> 00:25:16,119 Speaker 1: the daily operations, and you also, you know, fix the 413 00:25:16,240 --> 00:25:21,240 Speaker 1: underlying issue. That's a non trivial problem. So Ohams writes, 414 00:25:21,280 --> 00:25:24,040 Speaker 1: this piece for IBM and lays out the challenge and 415 00:25:24,119 --> 00:25:27,080 Speaker 1: the two digit year format is likely to cause at 416 00:25:27,119 --> 00:25:30,679 Speaker 1: least some problems as the year rolls over from ninety 417 00:25:30,800 --> 00:25:33,560 Speaker 1: nine to zero zero. And the scale of the problem 418 00:25:33,720 --> 00:25:37,400 Speaker 1: for large systems is daunting. It will require a lot 419 00:25:37,440 --> 00:25:40,600 Speaker 1: of time and effort to address with a careful approach 420 00:25:40,680 --> 00:25:43,919 Speaker 1: so as not to disrupt normal operations. And this is 421 00:25:43,960 --> 00:25:47,840 Speaker 1: in n when he writes this, so you would think, oh, well, 422 00:25:47,880 --> 00:25:50,120 Speaker 1: that gives you plenty of time to fix things, right, 423 00:25:50,160 --> 00:25:53,119 Speaker 1: I mean, you've got fourteen years. And it means that 424 00:25:53,520 --> 00:25:56,320 Speaker 1: people working on the next generation of software products and 425 00:25:56,359 --> 00:25:58,960 Speaker 1: systems can just avoid the problems of the past, right 426 00:25:59,000 --> 00:26:03,560 Speaker 1: and just use a four digit year from that point forward. Well, 427 00:26:03,600 --> 00:26:07,320 Speaker 1: obviously that didn't happen quite like that. Olams's article and 428 00:26:07,440 --> 00:26:11,479 Speaker 1: IBMS publication of that article acknowledged that there was an 429 00:26:11,560 --> 00:26:15,080 Speaker 1: underlying problem in software and computer systems, but the article 430 00:26:15,119 --> 00:26:18,200 Speaker 1: didn't really go so far as to define the scale 431 00:26:18,400 --> 00:26:21,000 Speaker 1: of the problem nor the amount of work and money 432 00:26:21,040 --> 00:26:24,840 Speaker 1: it would require to address the problem. But it certainly 433 00:26:24,960 --> 00:26:29,439 Speaker 1: established that, y'all, we got a problem. That problem was 434 00:26:29,600 --> 00:26:34,080 Speaker 1: one with a specific countdown every moment that passed would 435 00:26:34,119 --> 00:26:38,119 Speaker 1: bring us closer to January one, two thousand. It was, 436 00:26:38,640 --> 00:26:43,680 Speaker 1: as many people would describe later, a technical time bomb. Now, 437 00:26:43,720 --> 00:26:45,719 Speaker 1: from what I can tell, the first person to actually 438 00:26:46,080 --> 00:26:50,840 Speaker 1: describe the rollover problem as a time bomb was Chris Anderson, 439 00:26:51,119 --> 00:26:55,600 Speaker 1: who published a half page advertisement in the South African 440 00:26:55,720 --> 00:27:00,440 Speaker 1: journal Computing back in June of six. And the top 441 00:27:00,480 --> 00:27:03,800 Speaker 1: of the ad read the time bomb in your IBM 442 00:27:03,880 --> 00:27:07,560 Speaker 1: mainframe system. And I'll just read you a small part 443 00:27:07,720 --> 00:27:13,119 Speaker 1: of the copy for that ad quote the date time bomb. 444 00:27:13,680 --> 00:27:17,440 Speaker 1: The cause is that no IBM mainframe operating system software 445 00:27:17,520 --> 00:27:21,160 Speaker 1: or compiler properly caters for a date subsequent to December 446 00:27:21,280 --> 00:27:26,520 Speaker 1: thirty one. The hardware can cope, but the main system 447 00:27:26,600 --> 00:27:31,600 Speaker 1: software has a bug. Vmsp vs, e v S e S, 448 00:27:31,680 --> 00:27:35,320 Speaker 1: p m vs all have the same glitch. This is 449 00:27:35,359 --> 00:27:40,840 Speaker 1: also true for the compiler's cobal assembler at al end quote. 450 00:27:41,160 --> 00:27:45,679 Speaker 1: So Anderson's message continued and issued warnings against investing in 451 00:27:45,720 --> 00:27:49,600 Speaker 1: companies that rely on outdated systems and making certain that 452 00:27:49,640 --> 00:27:53,760 Speaker 1: you know your affairs are all in order before two thousand, 453 00:27:53,800 --> 00:27:56,440 Speaker 1: that your money's in a safe place, that kind of thing, 454 00:27:57,040 --> 00:28:00,760 Speaker 1: And he paints a pretty bleak worst case an areo 455 00:28:00,800 --> 00:28:03,800 Speaker 1: in this ad, which you know you could go back 456 00:28:03,840 --> 00:28:06,600 Speaker 1: and argue and say all of this is is true. 457 00:28:06,760 --> 00:28:09,119 Speaker 1: If nothing were to be done like this could have 458 00:28:09,160 --> 00:28:13,320 Speaker 1: been a pretty catastrophic event at least one that would 459 00:28:13,320 --> 00:28:16,840 Speaker 1: have been incredibly disruptive for more than a month at least. 460 00:28:17,560 --> 00:28:20,240 Speaker 1: And he ends his ad with a reveal that he's 461 00:28:20,240 --> 00:28:24,040 Speaker 1: setting up a group called Deadline two thousand to investigate 462 00:28:24,600 --> 00:28:31,120 Speaker 1: and and and coordinate implementation of immediate solutions to this problem. Now, 463 00:28:31,160 --> 00:28:35,600 Speaker 1: IBM responded to this, and in that response, a company 464 00:28:35,640 --> 00:28:39,959 Speaker 1: rep argued that it had already anticipated this problem and 465 00:28:39,960 --> 00:28:42,480 Speaker 1: in fact had taken steps to mitigate it, which changes 466 00:28:42,560 --> 00:28:47,200 Speaker 1: to hardware architecture and updated software that uses four digits 467 00:28:47,320 --> 00:28:51,280 Speaker 1: to designate the year, thus sidestepping the two digit problem. Further, 468 00:28:51,400 --> 00:28:54,240 Speaker 1: the company said that there are some legacy systems that 469 00:28:54,320 --> 00:28:57,880 Speaker 1: cannot be upgraded and updated to this this format, but 470 00:28:58,000 --> 00:29:01,720 Speaker 1: these are limited and work around could follow. And essentially 471 00:29:01,720 --> 00:29:03,880 Speaker 1: IBM was saying, this is not the big deal that 472 00:29:03,920 --> 00:29:06,480 Speaker 1: Anderson says it is, and we think he's just trying 473 00:29:06,480 --> 00:29:10,360 Speaker 1: to drive up business for his consulting company. Now, IBM 474 00:29:10,400 --> 00:29:13,040 Speaker 1: was a really big advertiser with this particular magazine, and 475 00:29:13,080 --> 00:29:17,120 Speaker 1: perhaps coincidentally, the magazine failed to carry any other deadline 476 00:29:17,160 --> 00:29:22,400 Speaker 1: two thousand notices moving forward. And by perhaps coincidentally, I 477 00:29:22,440 --> 00:29:28,960 Speaker 1: mean almost certainly not coincidentally. IBM's response did acknowledge that 478 00:29:29,200 --> 00:29:34,000 Speaker 1: some legacy systems like disc directories and tape labels wrote 479 00:29:34,000 --> 00:29:38,160 Speaker 1: alied on the two digit year designation, and that these 480 00:29:38,200 --> 00:29:41,640 Speaker 1: could conceivably cause problems for people down the line if 481 00:29:41,680 --> 00:29:45,920 Speaker 1: they never address that problem. I bet you can't guess 482 00:29:45,920 --> 00:29:49,280 Speaker 1: what happened next, you know what. I'll tell you what 483 00:29:49,400 --> 00:29:52,640 Speaker 1: happened next in just a moment. But first, let's take 484 00:29:53,040 --> 00:30:02,920 Speaker 1: another quick break, all right. I mentioned before the break 485 00:30:03,000 --> 00:30:04,800 Speaker 1: that a big part of this had to do with 486 00:30:05,000 --> 00:30:08,600 Speaker 1: tape files, and we're talking about magnetic tape here, the 487 00:30:08,640 --> 00:30:12,880 Speaker 1: physical medium of storage that we used way back in 488 00:30:12,920 --> 00:30:16,160 Speaker 1: the day to store information. And some of you might 489 00:30:16,200 --> 00:30:20,240 Speaker 1: have even had experiences with magnetic tape, whether I mean 490 00:30:20,280 --> 00:30:22,600 Speaker 1: it could have been cassette tapes. Those are magnetic tape 491 00:30:22,600 --> 00:30:26,160 Speaker 1: as well. Those are used for for audio, but uh, 492 00:30:26,280 --> 00:30:30,160 Speaker 1: some old computers used cassette tapes. Personally, I've had experience 493 00:30:30,360 --> 00:30:34,360 Speaker 1: with magnetic tape because at one point I was working 494 00:30:34,400 --> 00:30:37,320 Speaker 1: with a consulting firm where part of my job involved 495 00:30:37,720 --> 00:30:41,320 Speaker 1: making sure that the company's files went to tape back 496 00:30:41,400 --> 00:30:43,080 Speaker 1: up at the end of each night. So the idea 497 00:30:43,200 --> 00:30:47,400 Speaker 1: was any file that had been changed during that day 498 00:30:47,640 --> 00:30:51,240 Speaker 1: needed to go into a backup, and I regularly would 499 00:30:51,280 --> 00:30:54,600 Speaker 1: have to switch out reels of tape and store the 500 00:30:54,640 --> 00:30:57,080 Speaker 1: older ones away just in case someone needed a version 501 00:30:57,080 --> 00:30:59,480 Speaker 1: of a proposal from you know, I don't know, five 502 00:30:59,560 --> 00:31:02,880 Speaker 1: years a go or something, which, to be fair, did 503 00:31:02,920 --> 00:31:08,120 Speaker 1: occasionally happen. Now. As part of making tape files, administrators 504 00:31:08,160 --> 00:31:12,080 Speaker 1: would assigned to each a file, each file and expiry date, 505 00:31:12,360 --> 00:31:14,880 Speaker 1: so essentially beyond that date, the file would be seen 506 00:31:14,960 --> 00:31:19,160 Speaker 1: as being invalid, something that a system could overwrite without 507 00:31:19,160 --> 00:31:22,240 Speaker 1: an issue because the data in that file is no 508 00:31:22,240 --> 00:31:26,480 Speaker 1: longer relevant and it goes into what was essentially called 509 00:31:26,480 --> 00:31:29,400 Speaker 1: a scratch directory, meaning it's it's ready to be overwritten. 510 00:31:30,040 --> 00:31:31,840 Speaker 1: But this meant that if you were to try and 511 00:31:31,880 --> 00:31:35,440 Speaker 1: insert one of these scratch tapes into a system, rather 512 00:31:35,520 --> 00:31:38,960 Speaker 1: than pulling data off of that tape, the system would 513 00:31:39,000 --> 00:31:43,040 Speaker 1: just overwrite the data on the tape. So anything that 514 00:31:43,120 --> 00:31:46,320 Speaker 1: was on the tape, even if it was valuable and relevant, 515 00:31:46,720 --> 00:31:49,640 Speaker 1: the system would erase because it was beyond that expiry date. 516 00:31:50,240 --> 00:31:52,200 Speaker 1: That was a real issue was that, you know, with 517 00:31:52,240 --> 00:31:55,760 Speaker 1: this two digit format, once you go to zero zero, 518 00:31:56,520 --> 00:31:58,520 Speaker 1: there was a worry that all of this stuff that 519 00:31:58,560 --> 00:32:01,640 Speaker 1: was being stored on magnetic tape would just be marked 520 00:32:01,760 --> 00:32:04,480 Speaker 1: to be erased the next time it was put in use. 521 00:32:05,080 --> 00:32:07,560 Speaker 1: So the time bomb in this case would be the 522 00:32:07,600 --> 00:32:10,640 Speaker 1: tape files that would definitely expire by the beginning of 523 00:32:10,640 --> 00:32:13,720 Speaker 1: two thousand due to that two digit date designation, but 524 00:32:14,240 --> 00:32:17,720 Speaker 1: IBM wasn't too concerned about this at the time because 525 00:32:17,720 --> 00:32:22,280 Speaker 1: there were fourteen years left to go. Complicating matters is 526 00:32:22,320 --> 00:32:26,959 Speaker 1: that these discussions were happening in a pre Worldwide Web environment, 527 00:32:27,320 --> 00:32:31,120 Speaker 1: which meant that the forums for these discussions were typically 528 00:32:31,360 --> 00:32:35,440 Speaker 1: computer magazines, and those, by their very nature have a 529 00:32:35,480 --> 00:32:39,640 Speaker 1: fairly niche and limited audience. That meant that the folks 530 00:32:39,720 --> 00:32:43,760 Speaker 1: having these discussions made up a very tiny sliver of 531 00:32:43,840 --> 00:32:48,360 Speaker 1: the population, and usually it didn't include people who had 532 00:32:48,440 --> 00:32:53,200 Speaker 1: decision making authority at higher levels within various organizations including 533 00:32:53,640 --> 00:32:56,840 Speaker 1: companies and governments. So the folks who really needed to 534 00:32:56,920 --> 00:32:59,640 Speaker 1: know about this, you know, the executives who are in 535 00:32:59,720 --> 00:33:03,400 Speaker 1: charge to big institutions like financial companies or airlines or 536 00:33:03,400 --> 00:33:07,320 Speaker 1: what have you largely remained ignorant of the impending issue 537 00:33:07,480 --> 00:33:14,760 Speaker 1: until it became undeniable and you know, a critical, acute problem. 538 00:33:14,800 --> 00:33:18,000 Speaker 1: So then we get to the early nineteen nineties and 539 00:33:18,040 --> 00:33:20,760 Speaker 1: the birth of the Worldwide Web. That invention would make 540 00:33:20,800 --> 00:33:24,120 Speaker 1: it possible for, you know, to to issue communications on 541 00:33:24,120 --> 00:33:26,960 Speaker 1: a much more broad scale and allow individuals to spread 542 00:33:26,960 --> 00:33:30,920 Speaker 1: the word about things much more effectively. And now stuff 543 00:33:30,960 --> 00:33:32,880 Speaker 1: that might have been buried in a few inches of 544 00:33:32,880 --> 00:33:35,680 Speaker 1: column space in a magazine could get the same spotlight 545 00:33:35,760 --> 00:33:39,240 Speaker 1: as major news. At least in theory, people still needed 546 00:33:39,280 --> 00:33:42,640 Speaker 1: to be able to find that respective web page and 547 00:33:42,640 --> 00:33:44,480 Speaker 1: then read it and all that kind of stuff, but 548 00:33:44,480 --> 00:33:48,440 Speaker 1: the potential to spread information quickly became a really big deal. 549 00:33:49,680 --> 00:33:55,000 Speaker 1: In ninete, Peter di Yeager wrote a couple of articles 550 00:33:55,160 --> 00:33:58,320 Speaker 1: about the rollover problem. The first was in a Canadian 551 00:33:58,320 --> 00:34:02,719 Speaker 1: computer magazine with a relatively small circulation. That article received 552 00:34:02,720 --> 00:34:06,560 Speaker 1: a fairly derisive response from the Globe and Mail, a 553 00:34:06,720 --> 00:34:10,120 Speaker 1: national newspaper in Canada that really downplayed the scope and 554 00:34:10,200 --> 00:34:14,760 Speaker 1: impact of the problem. The second article, published in Computer World, 555 00:34:15,080 --> 00:34:19,400 Speaker 1: had the sensational title Doomsday two thousand, a title that 556 00:34:19,480 --> 00:34:22,440 Speaker 1: Dieger says he did not pitch, but was rather assigned 557 00:34:22,480 --> 00:34:26,680 Speaker 1: by an editor to that piece, and that ended up 558 00:34:26,719 --> 00:34:30,160 Speaker 1: getting a little bit more attention. But even then, even 559 00:34:30,280 --> 00:34:34,239 Speaker 1: people that Dieger was associating with, who were in the 560 00:34:34,280 --> 00:34:38,839 Speaker 1: I T world, even they didn't seem terribly concerned at 561 00:34:38,880 --> 00:34:41,800 Speaker 1: that point. Now, while much of the focus on the 562 00:34:41,920 --> 00:34:44,680 Speaker 1: Y two K problem really centered on the years n 563 00:34:46,800 --> 00:34:50,480 Speaker 1: you know, when it was imminent, that's when organizations and 564 00:34:50,520 --> 00:34:53,800 Speaker 1: companies were feverishly trying to fix their back end systems 565 00:34:53,800 --> 00:34:57,719 Speaker 1: in software to avoid catastrophe. There were earlier cases of 566 00:34:57,800 --> 00:35:00,480 Speaker 1: groups kind of coming to grips with it, just they 567 00:35:00,480 --> 00:35:04,120 Speaker 1: were doing so quietly on an individual basis, which wasn't 568 00:35:04,160 --> 00:35:09,320 Speaker 1: too helpful for everybody else. For example, I mentioned mortgages earlier. 569 00:35:09,600 --> 00:35:13,120 Speaker 1: A common mortgage length is a thirty year mortgage, which 570 00:35:13,160 --> 00:35:15,840 Speaker 1: meant that back in the nineteen seventies, banks and credit 571 00:35:15,920 --> 00:35:19,320 Speaker 1: unions were starting to put together mortgages that would terminate 572 00:35:19,400 --> 00:35:23,480 Speaker 1: in the early two thousands, and these financial institutions discovered 573 00:35:23,640 --> 00:35:27,520 Speaker 1: that the software they were using to determine things like 574 00:35:27,600 --> 00:35:31,120 Speaker 1: mortgage payments and such, we're having problems because of the 575 00:35:31,239 --> 00:35:36,200 Speaker 1: rollover issue. So they were already seeing the effects of 576 00:35:36,239 --> 00:35:38,760 Speaker 1: the Y two K problem back in the nineteen seventies 577 00:35:38,800 --> 00:35:41,720 Speaker 1: because they were projecting out beyond the year two thousand, 578 00:35:42,040 --> 00:35:44,279 Speaker 1: and that's where they were seeing that their software was 579 00:35:44,280 --> 00:35:48,120 Speaker 1: was sputtering. By the nineteen nineties, as I mentioned, we 580 00:35:48,160 --> 00:35:50,759 Speaker 1: started seeing those those credit card examples that I gave 581 00:35:50,800 --> 00:35:53,600 Speaker 1: you earlier. People would get a new credit card in 582 00:35:53,640 --> 00:35:55,760 Speaker 1: the nineties that would have an expiration in the early 583 00:35:55,800 --> 00:35:59,160 Speaker 1: two thousands, and then discovered that the card processing systems 584 00:35:59,160 --> 00:36:03,480 Speaker 1: at various retail establishments were generating a card expired error 585 00:36:03,600 --> 00:36:06,400 Speaker 1: error code even though the actual expiration date was in 586 00:36:06,440 --> 00:36:09,160 Speaker 1: the future, but to the computers that look like it 587 00:36:09,200 --> 00:36:12,160 Speaker 1: was in the distant past. So in these cases, the 588 00:36:12,360 --> 00:36:16,319 Speaker 1: financial institutions like the mortgage companies on one hand, and 589 00:36:16,360 --> 00:36:20,240 Speaker 1: then the retail companies on the other hand, all created 590 00:36:20,800 --> 00:36:23,840 Speaker 1: problem fixes to kind of work around these these problems. 591 00:36:23,920 --> 00:36:27,920 Speaker 1: But these were isolated incidents of companies and organizations taking 592 00:36:27,920 --> 00:36:32,320 Speaker 1: the steps necessary to fix or at least sidestep this problem. 593 00:36:32,440 --> 00:36:35,720 Speaker 1: In the short term, the world at large was still 594 00:36:35,840 --> 00:36:39,160 Speaker 1: under prepared, which is one of the big issues with 595 00:36:39,160 --> 00:36:41,360 Speaker 1: the Y two K problem. It wasn't just that the 596 00:36:41,360 --> 00:36:45,359 Speaker 1: problem was serious, it was that as people were encountering it, 597 00:36:45,960 --> 00:36:50,719 Speaker 1: they were readily sharing that with other companies and other organizations, 598 00:36:50,760 --> 00:36:53,040 Speaker 1: which meant that everyone was having to go through it 599 00:36:53,200 --> 00:36:55,920 Speaker 1: kind of individually, and it was not the most efficient 600 00:36:55,920 --> 00:36:58,759 Speaker 1: way to tackle a problem. So there was the sort 601 00:36:58,800 --> 00:37:02,600 Speaker 1: of hatch work awareness going on. Companies that had any 602 00:37:02,640 --> 00:37:05,640 Speaker 1: sort of programs that would project results into the future 603 00:37:06,000 --> 00:37:09,040 Speaker 1: were likely to run up against the Y two K 604 00:37:09,239 --> 00:37:12,440 Speaker 1: problem at some point. If the company had either a 605 00:37:12,480 --> 00:37:16,319 Speaker 1: product or some internal system that made projections, and if 606 00:37:16,360 --> 00:37:19,080 Speaker 1: that system relied in whole or in part on a 607 00:37:19,160 --> 00:37:21,839 Speaker 1: two digit representation of the year, there was a good 608 00:37:21,920 --> 00:37:24,960 Speaker 1: chance that someone noticed something hinky was going on, that 609 00:37:25,040 --> 00:37:27,680 Speaker 1: programs were not behaving the way they were supposed to. 610 00:37:28,280 --> 00:37:31,839 Speaker 1: But it wasn't until nine in the United States when 611 00:37:31,880 --> 00:37:36,600 Speaker 1: Congress passed the Year two thousand Information and Readiness Disclosure 612 00:37:36,640 --> 00:37:40,960 Speaker 1: Act and President Clinton signed it into law. The law's 613 00:37:41,000 --> 00:37:43,680 Speaker 1: purpose was to encourage companies to share their Y two 614 00:37:43,760 --> 00:37:48,680 Speaker 1: K strategies and in return receive limited liability coverage. The 615 00:37:48,760 --> 00:37:52,960 Speaker 1: hope was that companies that had found successful workarounds could 616 00:37:53,000 --> 00:37:55,680 Speaker 1: share those methods with others and speed up the process 617 00:37:55,719 --> 00:37:58,240 Speaker 1: of getting everyone on the right track. Essentially, to address 618 00:37:58,320 --> 00:38:01,640 Speaker 1: this issue of every on kind of going it alone, 619 00:38:02,400 --> 00:38:07,640 Speaker 1: and they're not being established best practices and workarounds. This 620 00:38:07,760 --> 00:38:11,320 Speaker 1: also included state and federal government offices. These were lagging 621 00:38:11,560 --> 00:38:14,600 Speaker 1: way behind the private sector. There was a survey done 622 00:38:14,640 --> 00:38:18,080 Speaker 1: in ninety eight that showed that the government in the 623 00:38:18,160 --> 00:38:23,120 Speaker 1: United States was far behind the private sector world, you know, 624 00:38:23,160 --> 00:38:27,040 Speaker 1: private companies and publicly traded companies. So out of this 625 00:38:27,160 --> 00:38:29,759 Speaker 1: grew a new industry. You had consultants who would come 626 00:38:29,760 --> 00:38:32,160 Speaker 1: on board to try and bring an organization into Y 627 00:38:32,239 --> 00:38:35,960 Speaker 1: two K compliance, which essentially meant just addressing any gaps 628 00:38:36,239 --> 00:38:38,920 Speaker 1: that would cause the sort of mis interpretation of the 629 00:38:39,040 --> 00:38:42,640 Speaker 1: year on the part of computer systems. The big stop 630 00:38:42,640 --> 00:38:45,720 Speaker 1: gap measure, as I mentioned, was windowing, that is, creating 631 00:38:45,719 --> 00:38:48,320 Speaker 1: a way for a computer system to interpret two digits 632 00:38:48,440 --> 00:38:51,400 Speaker 1: as being four digits. And again I mentioned it earlier 633 00:38:51,400 --> 00:38:53,439 Speaker 1: in this episode, and it works well enough for any 634 00:38:53,480 --> 00:38:56,799 Speaker 1: processes that you know originate in the twentieth century, But 635 00:38:56,840 --> 00:38:59,200 Speaker 1: if you go back further you run into problems as 636 00:38:59,239 --> 00:39:02,560 Speaker 1: the whole thing repeats itself again. But since computers and 637 00:39:02,560 --> 00:39:07,040 Speaker 1: software weren't really a thing back before nineteen six, generally 638 00:39:07,040 --> 00:39:10,560 Speaker 1: it was considered a non issue and an effective stop gap. 639 00:39:11,200 --> 00:39:15,400 Speaker 1: Making these changes proved to be time consuming and expensive. 640 00:39:15,440 --> 00:39:20,000 Speaker 1: The world at large spent hundreds of billions of dollars 641 00:39:20,040 --> 00:39:23,080 Speaker 1: to update code and get things on track for the 642 00:39:23,160 --> 00:39:27,320 Speaker 1: change to two thousand. In that process, the media reported 643 00:39:27,360 --> 00:39:30,560 Speaker 1: on the issue in a way that one could be 644 00:39:30,640 --> 00:39:35,200 Speaker 1: forgiven to describe as hyperbolic. Now, as I've mentioned in 645 00:39:35,200 --> 00:39:39,120 Speaker 1: this episode, there was a very real problem, like a 646 00:39:39,160 --> 00:39:41,400 Speaker 1: host of very real problems that could arise as a 647 00:39:41,400 --> 00:39:44,560 Speaker 1: result of the rollover, and we, in fact we did. 648 00:39:44,640 --> 00:39:47,520 Speaker 1: We saw this happening with mortgages and credit cards, like 649 00:39:48,120 --> 00:39:51,319 Speaker 1: there was definitive proof that this is an issue. The 650 00:39:51,400 --> 00:39:55,120 Speaker 1: problems were not imaginary, and in many cases they were 651 00:39:55,200 --> 00:39:58,200 Speaker 1: not trivial. I've seen some blog posts that have been 652 00:39:58,200 --> 00:40:00,440 Speaker 1: written over the last few years that kind of ridicule 653 00:40:00,520 --> 00:40:03,000 Speaker 1: how people were preparing for Y two K, and it 654 00:40:03,040 --> 00:40:05,799 Speaker 1: trivializes the scope and the reach of the problem, And 655 00:40:05,840 --> 00:40:09,480 Speaker 1: I think that's about as irresponsible as over exaggerating the 656 00:40:09,560 --> 00:40:14,240 Speaker 1: effects of the problem. But anyway, some of the cynical 657 00:40:14,320 --> 00:40:18,520 Speaker 1: response is understandable because media outlets were talking about how 658 00:40:18,560 --> 00:40:22,520 Speaker 1: to stockpile necessities like food and water and toiletries and 659 00:40:22,640 --> 00:40:26,600 Speaker 1: cash just in case the financial systems and payment systems failed, 660 00:40:26,920 --> 00:40:29,600 Speaker 1: and as I mentioned before, we had seen them fail 661 00:40:29,719 --> 00:40:33,000 Speaker 1: in the past. So the idea was that people should 662 00:40:33,000 --> 00:40:35,360 Speaker 1: have a cushion to get them through the worst of 663 00:40:35,400 --> 00:40:39,280 Speaker 1: it and wait for solutions to arise. But some media 664 00:40:39,280 --> 00:40:41,560 Speaker 1: outlets took this to an extreme and it began to 665 00:40:41,600 --> 00:40:45,759 Speaker 1: sound a bit like stockpiling a bunker for protection for 666 00:40:45,960 --> 00:40:49,200 Speaker 1: like nuclear fallout or something, and that the very fabric 667 00:40:49,239 --> 00:40:51,400 Speaker 1: of society would break down and we'd all live in 668 00:40:51,440 --> 00:40:54,960 Speaker 1: the walking debt. There were fears of elevators stopping between 669 00:40:55,120 --> 00:40:58,720 Speaker 1: floors and just not moving again, or climate control systems 670 00:40:58,760 --> 00:41:02,200 Speaker 1: failing entirely. There were fears that airplanes would fall from 671 00:41:02,239 --> 00:41:06,120 Speaker 1: the sky, and most of these fears were well beyond reality, 672 00:41:06,400 --> 00:41:11,080 Speaker 1: but they circulated and they grew. This was the other 673 00:41:11,320 --> 00:41:15,160 Speaker 1: edge of having access to the web. We're coming up 674 00:41:15,200 --> 00:41:17,480 Speaker 1: on the end of this story, but before I get 675 00:41:17,480 --> 00:41:27,759 Speaker 1: to that, let's take one last break. You know, by 676 00:41:27,880 --> 00:41:31,719 Speaker 1: the late nineties, being online was fairly common. You know, 677 00:41:31,760 --> 00:41:33,360 Speaker 1: the World Wide Web was the thing. We had not 678 00:41:33,480 --> 00:41:36,839 Speaker 1: yet had the dot com crash, So the dot com 679 00:41:36,880 --> 00:41:40,359 Speaker 1: world was starting to really take off and information could 680 00:41:40,440 --> 00:41:43,920 Speaker 1: spread very quickly, and a lot of the information was 681 00:41:43,960 --> 00:41:47,719 Speaker 1: about y two K. I still remember New Year's Eve. 682 00:41:49,800 --> 00:41:53,520 Speaker 1: My spouse and I went to a club with some friends. 683 00:41:54,200 --> 00:41:58,000 Speaker 1: It was a ridiculous end of the year slash potential 684 00:41:58,200 --> 00:42:02,720 Speaker 1: end of the world celebration. Uh. They played Prince's nineteen 685 00:42:02,800 --> 00:42:05,600 Speaker 1: nine way too many times. In fact, I would argue 686 00:42:06,040 --> 00:42:08,760 Speaker 1: that although that song is amazing and I love it, 687 00:42:08,760 --> 00:42:12,480 Speaker 1: it makes no sense to play it during because you're 688 00:42:12,480 --> 00:42:16,960 Speaker 1: supposed to party like it's nine. Anyway, we counted down 689 00:42:17,040 --> 00:42:20,320 Speaker 1: the year, I think three times because no one actually 690 00:42:20,360 --> 00:42:24,320 Speaker 1: had access to an accurate time countdown. That seems pretty 691 00:42:24,360 --> 00:42:27,799 Speaker 1: appropriate for y two K. And in the end, once 692 00:42:27,800 --> 00:42:32,680 Speaker 1: everything was over, it was peaceful. Nothing catastrophic happened, and 693 00:42:33,160 --> 00:42:35,680 Speaker 1: the next day we went home, and over the course 694 00:42:35,719 --> 00:42:39,040 Speaker 1: of the following month we saw an outpouring of frustration 695 00:42:39,239 --> 00:42:44,680 Speaker 1: and exasperation and ridicule. Rather than a sense of relief that, 696 00:42:44,760 --> 00:42:47,319 Speaker 1: you know, the various computer programmers out there had spent 697 00:42:47,440 --> 00:42:50,960 Speaker 1: countless hours creating stop gap solutions to get us through 698 00:42:50,960 --> 00:42:54,440 Speaker 1: the transition, we saw people get upset about it, and 699 00:42:54,480 --> 00:42:57,760 Speaker 1: the prevailing sense was that it was much ado about nothing. 700 00:42:57,960 --> 00:43:00,879 Speaker 1: That those billions of dollar or is that we spent 701 00:43:01,520 --> 00:43:05,080 Speaker 1: were spent on a non problem, and that seems pretty 702 00:43:05,080 --> 00:43:08,239 Speaker 1: weird to me. I mean, the reason there weren't that 703 00:43:08,360 --> 00:43:12,200 Speaker 1: many problems here in the United States is precisely because 704 00:43:13,120 --> 00:43:15,719 Speaker 1: that sort of money had been spent on the solutions. 705 00:43:16,120 --> 00:43:19,520 Speaker 1: The solutions prevented the problems from happening. That was the 706 00:43:19,520 --> 00:43:23,200 Speaker 1: whole point. So I'm gonna use a dom analogy. Let's 707 00:43:23,239 --> 00:43:26,080 Speaker 1: say I got a big, old farm and I happened 708 00:43:26,120 --> 00:43:30,360 Speaker 1: to see reports that there's this unusual migration of deer 709 00:43:30,680 --> 00:43:33,120 Speaker 1: moving across the region, and that within a couple of 710 00:43:33,120 --> 00:43:35,840 Speaker 1: weeks they're gonna be where I am, and those deer 711 00:43:35,960 --> 00:43:39,279 Speaker 1: could spell doom for my harvest. So I decided, I'm 712 00:43:39,280 --> 00:43:41,080 Speaker 1: going to spend a large amount of money, and I'm 713 00:43:41,080 --> 00:43:44,279 Speaker 1: gonna get a bunch of construction workers out there, and 714 00:43:44,280 --> 00:43:47,759 Speaker 1: we're gonna put a deer proof wall around my farm. 715 00:43:47,880 --> 00:43:49,520 Speaker 1: And so I spend all this money, we get the 716 00:43:49,520 --> 00:43:53,320 Speaker 1: wall up, and then the day comes when the migration 717 00:43:53,360 --> 00:43:54,920 Speaker 1: is supposed to be in my area, and I go 718 00:43:55,000 --> 00:43:57,960 Speaker 1: outside and I look at my farm inside these walls, 719 00:43:58,000 --> 00:44:00,080 Speaker 1: and there are no deer in the farm. I'm not 720 00:44:00,120 --> 00:44:03,200 Speaker 1: gonna say, man, I wasted that money. I'm gonna say, hey, 721 00:44:03,320 --> 00:44:08,720 Speaker 1: the wall worked well. Our y two K wall worked mostly. 722 00:44:09,320 --> 00:44:11,640 Speaker 1: There were some scattered issues with systems that had not 723 00:44:11,760 --> 00:44:14,719 Speaker 1: yet become Y two K compliant, but they were the 724 00:44:14,840 --> 00:44:17,800 Speaker 1: exception rather than the rule, at least here in the 725 00:44:17,880 --> 00:44:20,800 Speaker 1: United States. In other parts of the world there were more, 726 00:44:21,520 --> 00:44:25,120 Speaker 1: you know, prevalent issues. For example, there were places in 727 00:44:25,160 --> 00:44:29,360 Speaker 1: the UK that had trouble processing card transactions for the 728 00:44:29,440 --> 00:44:32,719 Speaker 1: very reasons that I mentioned earlier in this podcast. Not 729 00:44:32,760 --> 00:44:35,840 Speaker 1: only that, but we actually saw another outbreak of Y 730 00:44:35,880 --> 00:44:40,879 Speaker 1: two K problems just last year in twenty This comes 731 00:44:40,920 --> 00:44:46,400 Speaker 1: back to win doing so addressing Y two K problems, 732 00:44:46,440 --> 00:44:51,880 Speaker 1: you you broadly had two major solutions. You could go 733 00:44:51,960 --> 00:44:58,200 Speaker 1: in and actually reprogrammed stuff, but that was incredibly time 734 00:44:58,239 --> 00:45:03,279 Speaker 1: consuming and expensive, and for certain legacy systems it was 735 00:45:03,320 --> 00:45:06,759 Speaker 1: not practical because you still had those memory limitations in 736 00:45:06,800 --> 00:45:10,000 Speaker 1: place for some of those legacy systems and you literally 737 00:45:10,120 --> 00:45:14,600 Speaker 1: couldn't make those changes. Windowing was seen as a stop gap, 738 00:45:14,760 --> 00:45:16,480 Speaker 1: the idea of being that, well, we're going to have 739 00:45:16,520 --> 00:45:19,640 Speaker 1: to migrate stuff off of those legacy systems onto more 740 00:45:19,719 --> 00:45:24,200 Speaker 1: modern systems that can have a four digit year, but 741 00:45:24,280 --> 00:45:29,080 Speaker 1: in the meantime, let's use windowing. So again, windowing is 742 00:45:29,239 --> 00:45:34,080 Speaker 1: about picking a two digit year and saying anything above 743 00:45:34,160 --> 00:45:38,560 Speaker 1: this number should fall into the nineteen hundreds. Anything below 744 00:45:38,600 --> 00:45:40,960 Speaker 1: this number is in the two thousand's. So again, if 745 00:45:40,960 --> 00:45:43,719 Speaker 1: you pick fifty, as I mentioned earlier, sixty six would 746 00:45:43,760 --> 00:45:46,680 Speaker 1: mean oh, well that's above fifty, so it's nineteen sixty six. 747 00:45:46,960 --> 00:45:50,400 Speaker 1: But twenty two would be interpreted as, oh, that's below fifty, 748 00:45:50,480 --> 00:45:54,120 Speaker 1: that means two thousand twenty two. That works for a while, 749 00:45:54,680 --> 00:45:57,440 Speaker 1: and a lot of programmers who put in a windowing 750 00:45:57,520 --> 00:46:01,960 Speaker 1: stop gap happened to choose twin t as the dividing line, 751 00:46:02,239 --> 00:46:05,760 Speaker 1: perhaps because this put nineteen seventy in a prominent spot 752 00:46:05,840 --> 00:46:09,240 Speaker 1: near the middle. Nineteen seventy also relates to a similar 753 00:46:09,280 --> 00:46:12,759 Speaker 1: issue called UNIX time, which I will talk about at 754 00:46:12,800 --> 00:46:16,160 Speaker 1: the very end of this episode. So when it was 755 00:46:16,200 --> 00:46:20,920 Speaker 1: two thousand to two thousand nineteen, everything was fine because 756 00:46:20,920 --> 00:46:24,719 Speaker 1: that windowing stop gap meant that computers were interpreting the 757 00:46:24,800 --> 00:46:28,239 Speaker 1: year's zero zero to nineteen as being two thousand to 758 00:46:28,280 --> 00:46:31,279 Speaker 1: two thousand nineteen. But then we hit twenty twenty, and 759 00:46:31,360 --> 00:46:34,320 Speaker 1: now the computers were saying, oh, we're back in nineteen 760 00:46:34,320 --> 00:46:36,680 Speaker 1: twenty now, because that was the number that was chosen 761 00:46:36,680 --> 00:46:39,800 Speaker 1: by these programmers and the windowing stop gap and systems 762 00:46:39,840 --> 00:46:44,000 Speaker 1: began to experience problems. This, by the way, really illustrates 763 00:46:44,200 --> 00:46:47,680 Speaker 1: two big things. One is that windowing was really just 764 00:46:47,960 --> 00:46:50,640 Speaker 1: man as a temporary patch. It was not a long 765 00:46:50,760 --> 00:46:53,719 Speaker 1: term solution. The second is that we didn't learn a 766 00:46:53,800 --> 00:46:56,920 Speaker 1: ding dang darn thing from the Y two K experience, 767 00:46:56,960 --> 00:47:00,520 Speaker 1: because it's just the same gosh darn problem as why 768 00:47:00,600 --> 00:47:04,320 Speaker 1: two K. All we did was punted down twenty years 769 00:47:04,480 --> 00:47:06,880 Speaker 1: and then didn't do anything to prep prep for that, 770 00:47:06,960 --> 00:47:09,760 Speaker 1: and so we had the problems again. Also, here's here's 771 00:47:09,760 --> 00:47:12,719 Speaker 1: a fun bit. One of the pieces of software that 772 00:47:12,800 --> 00:47:16,759 Speaker 1: was affected by this, fittingly enough, was w W E 773 00:47:17,000 --> 00:47:21,359 Speaker 1: two K twenty, a wrestling video game, which had more 774 00:47:21,400 --> 00:47:23,640 Speaker 1: than its share of problems. In fact, I could probably 775 00:47:23,680 --> 00:47:28,600 Speaker 1: do a full episode about the incredible train wreck that 776 00:47:28,719 --> 00:47:32,040 Speaker 1: was w W E two K twenty, but I will 777 00:47:32,120 --> 00:47:34,560 Speaker 1: leave it here anyway, The company that made it, too 778 00:47:34,680 --> 00:47:39,319 Speaker 1: K eventually issued a patch that fixed things for as 779 00:47:39,360 --> 00:47:41,920 Speaker 1: far as that goes. Anyway, There are other problems, but 780 00:47:42,520 --> 00:47:46,840 Speaker 1: again we'll leave that for a future episode. Now, I 781 00:47:46,880 --> 00:47:50,040 Speaker 1: did mention just now that Unix time relates to nineteen seventy, 782 00:47:50,160 --> 00:47:54,320 Speaker 1: so the Unix time stamp uses a thirty two bit integer, 783 00:47:54,719 --> 00:47:58,200 Speaker 1: and it traces the origin of time to January one, 784 00:47:58,480 --> 00:48:03,200 Speaker 1: nineteen seventy at zero hours, zero minutes, and zero seconds. 785 00:48:03,200 --> 00:48:08,400 Speaker 1: That is when time began according to Unix. But because 786 00:48:08,680 --> 00:48:12,360 Speaker 1: it's using a thirty two bit integer to mark the 787 00:48:12,400 --> 00:48:15,239 Speaker 1: passage of time, and because it's marketing it all the 788 00:48:15,239 --> 00:48:19,200 Speaker 1: way down to the second, that means there's a limit 789 00:48:19,239 --> 00:48:21,920 Speaker 1: to how far this process of timekeeping can actually go. 790 00:48:22,440 --> 00:48:26,440 Speaker 1: And we'll hit that limit on January nine, two thousand 791 00:48:26,480 --> 00:48:33,239 Speaker 1: thirty eight, at oh three hours, fourteen minutes, oh seven seconds. 792 00:48:33,840 --> 00:48:37,040 Speaker 1: At that point, we will have run out of space 793 00:48:37,040 --> 00:48:41,359 Speaker 1: in that thirty two bit integer designation for time, and 794 00:48:41,400 --> 00:48:44,480 Speaker 1: then all future time stamps will appear as if they 795 00:48:44,520 --> 00:48:48,239 Speaker 1: are a negative number because of integer overflow, which will 796 00:48:48,280 --> 00:48:52,239 Speaker 1: put the time back to nineteen o one. And you know, 797 00:48:52,480 --> 00:48:55,120 Speaker 1: just in case you thought travel to the past was impossible, 798 00:48:55,320 --> 00:48:58,840 Speaker 1: according to computers, it's only not possible at least for 799 00:48:58,920 --> 00:49:04,040 Speaker 1: timekeeping purposes, and everything that is using a Unix based 800 00:49:04,160 --> 00:49:07,080 Speaker 1: system will be treating the year as if it's nineteen 801 00:49:07,080 --> 00:49:11,640 Speaker 1: o one at that point forward. So for Unix based systems, 802 00:49:11,680 --> 00:49:14,640 Speaker 1: that means that we have an ongoing issue. There have 803 00:49:14,760 --> 00:49:17,200 Speaker 1: been some proposed solutions, but they tend to be on 804 00:49:17,239 --> 00:49:20,719 Speaker 1: a case by case basis, not too different from the 805 00:49:20,760 --> 00:49:25,200 Speaker 1: early days of the Y two K problem and UH, 806 00:49:25,280 --> 00:49:28,120 Speaker 1: if recent past is anything to go by, we can 807 00:49:28,160 --> 00:49:31,040 Speaker 1: expect to see some stop gap solutions thrown in there 808 00:49:31,400 --> 00:49:34,000 Speaker 1: that don't really fix anything, but they do push the 809 00:49:34,040 --> 00:49:38,279 Speaker 1: problem further into the future because we're really good at that. UM. 810 00:49:38,320 --> 00:49:42,600 Speaker 1: It's unfortunate because with a little work, well not a 811 00:49:42,640 --> 00:49:45,680 Speaker 1: little work, with a lot of work, we can avoid 812 00:49:45,680 --> 00:49:50,000 Speaker 1: the issue and not have to do triage every few 813 00:49:50,040 --> 00:49:54,320 Speaker 1: decades to correct the issue we have of not creating 814 00:49:54,520 --> 00:49:58,680 Speaker 1: a permanent solution UH and replacing a stop gap and 815 00:49:58,719 --> 00:50:02,080 Speaker 1: instead our habit is to go with the stop gap 816 00:50:02,120 --> 00:50:06,280 Speaker 1: approach because it's faster to implement, it's cheaper to implement, 817 00:50:06,960 --> 00:50:11,240 Speaker 1: and we just collectively think that's a future me problem. 818 00:50:11,280 --> 00:50:13,359 Speaker 1: And I'm as guilty of doing this kind of thing 819 00:50:13,360 --> 00:50:15,799 Speaker 1: as anybody else's. In fact, I would argue I'm even 820 00:50:15,800 --> 00:50:17,640 Speaker 1: more guilty of it. So I'm casting a lot of 821 00:50:17,640 --> 00:50:20,000 Speaker 1: shade here, But someone that's got to hit on me. 822 00:50:20,080 --> 00:50:23,080 Speaker 1: Even though I'm not a programmer, I've definitely fallen into 823 00:50:23,120 --> 00:50:26,040 Speaker 1: that same sort of trap. But I hope this gives 824 00:50:26,080 --> 00:50:29,279 Speaker 1: you a better appreciation of what the Y two K 825 00:50:29,520 --> 00:50:33,919 Speaker 1: problem was and is, and why it's such a big 826 00:50:33,960 --> 00:50:37,920 Speaker 1: deal and why like people were flipping out about it. Uh, 827 00:50:37,960 --> 00:50:40,160 Speaker 1: And yeah, it can be kind of funny to see 828 00:50:40,200 --> 00:50:42,919 Speaker 1: the extent to which some people were flipping out about 829 00:50:42,960 --> 00:50:45,120 Speaker 1: it and worried that it was going to just bring 830 00:50:45,120 --> 00:50:48,160 Speaker 1: about the end of civilization. But you can also understand 831 00:50:48,320 --> 00:50:52,919 Speaker 1: for a society that had in recent memory ported over 832 00:50:53,000 --> 00:50:58,280 Speaker 1: all of its most essential operations onto digital computer systems, 833 00:50:58,560 --> 00:51:01,040 Speaker 1: how a failure in that system could be seen as 834 00:51:01,040 --> 00:51:04,640 Speaker 1: being beaten times. I mean that parts understandable, right, especially 835 00:51:04,640 --> 00:51:08,479 Speaker 1: if you don't have a deep knowledge of how computers work. 836 00:51:08,960 --> 00:51:10,600 Speaker 1: To you, it could just be a mystery and it 837 00:51:10,680 --> 00:51:13,879 Speaker 1: just means that all your stuff stops working the next day. 838 00:51:14,160 --> 00:51:18,160 Speaker 1: That's a pretty terrifying prospect. As we know, it wasn't 839 00:51:18,160 --> 00:51:21,520 Speaker 1: necessarily accurate, but that doesn't mean the Y two K 840 00:51:21,680 --> 00:51:26,240 Speaker 1: problem was not a problem. It certainly was. I hope 841 00:51:26,280 --> 00:51:28,960 Speaker 1: that you enjoyed this episode. Will be back later this 842 00:51:29,040 --> 00:51:33,600 Speaker 1: week with some tech news and a new Smart Talks episode, 843 00:51:34,080 --> 00:51:36,720 Speaker 1: and if you have any suggestions for topics I should 844 00:51:36,719 --> 00:51:39,200 Speaker 1: cover in future episodes of tech Stuff, reach out to 845 00:51:39,280 --> 00:51:41,960 Speaker 1: me on Twitter. The handle for the show is tech 846 00:51:42,120 --> 00:51:45,240 Speaker 1: Stuff h s W and I'll talk to you again 847 00:51:46,160 --> 00:51:54,840 Speaker 1: really soon. Tech Stuff is an I Heart Radio production. 848 00:51:55,040 --> 00:51:57,880 Speaker 1: For more podcasts from My Heart Radio, visit the i 849 00:51:58,000 --> 00:52:01,440 Speaker 1: Heart Radio app, Apple podcast wherever you listen to your 850 00:52:01,480 --> 00:52:02,200 Speaker 1: favorite shows.