 This video is part of the public health to data science rebrand program. Hi everyone, it's Monica here, unpacking public health data science for you, giving you more unsolicited advice. I'm just so happy you joined me today to listen to me talk about obscure database related topics. Okay, I confess this video is a confession video. On January 11th, 2023, the United States component of the notice to air missions database system known as the no time system actually went down. That literally has never happened. This is the first time ever this database has gone down like in history. And that first I honestly thought it was my fault, but I'm happy to say I actually verified that it is not my fault. In fact, the system didn't even technically go down. So to my relief, what started as a confession video is now just an instructional video. Okay, so first, why did I think it was my fault that the no time system went down on January 11th, 2023? The answer is because I just published my new online course application basics on January 3rd, 2023. This course has a lecture in it that literally has this slide in it where I compare new normal relational databases to old flat databases, basically old IBM mainframes. See how on the slide it says legacy databases from the mainframe era are extremely stable, like they don't crash. There, that's the smoking gun. That's why I became worried. Did I cause no temps to crash by publishing that lecture in that course on January 3rd and saying that thing? But then I got suspicious. I said, let me look more into this. First, I was like, what is this no time system anyway? I started looking around online and I thought it would be hard to learn about, but it was just the opposite. Here's the online no time system. Anyone can query it. Okay, up in the upper left, it says no time retrieval enter up to 50 I cow identifiers separated by a space. Aha, another clue. What is an I cow identifier? So the first thing I tried, I admit was entering BOS and MSP and LAX because I live in Boston and I used to live in Minneapolis. And well, I guess I always just think of LAX when I think of airports. I don't really go to LAX a lot. I'll cut to the chase. LAX is not an a cow identifier. Okay, well, here we are in Wikipedia. You probably guess this might be our next stop. It says here list of airports by a cow code. Then it says a and I'll save you the trouble. You can't just go to L for Logan Airport or B for Boston Airport. I'm not even going to pretend I understand these I cow codes. What I am going to highlight, however, is the fact that I am a Francophile. How do we know this? Well, I managed to find the code for Charles de Gaulle Airport in France. See here we are on page L of the I cow codes on Wikipedia and LF is obviously France, right? Right. Let's go to the list of I cow codes for the airports in France. Okay, I admit I've never been to France. I'm not a very good Francophile. Still, I had no idea France would have so many airports. I mean, look at all of these. They are in alphabetical order by a cow code. And I had to get all the way down here to P L F P G to find Charles de Gaulle Airport and gay party. All right, now we have an I cow code for the Paris Airport. Let's go use it to query the no time system. Okay, it says we can enter up to 50 of these codes, but I just have one L F P G. Let's enter it and click view no terms. So first, what are these data? Well, actually, they are geographic data. See all these coordinates? They explain stuff that is on the runway or by the runway. If you live in Boston, you might think these look a little like the station alerts the tea puts out online, like the escalator is disabled at back base station. Surprise, surprise, right? These are the airport versions of those. So you can see why the US airports had to shut down when the system went down. I really knew where it was safe to go in the runway area because they couldn't look up all these documented obstructions. To be absolutely clear with you, I do not have any documentation that says for sure that the US no time system is an IBM mainframe that is still running today. But I believe it is because of many things that have been said on the news, as well as some clues I see here. First, you might remember back when I did the query that the database was really, really fast, like suspiciously fast when you think of all the data in it. That's a clue. These databases are faster than a kitty cat with the zoomies even today. Next, you will see the attractive, elegant, all caps presentation and the hyper standardized entries like the time steps and location coordinates. Finally, to me, it looks like the columns have a fixed width, meaning if you have a column that accepts two characters, you actually have to put in two characters. You can't just have one, or it will throw off the whole row. And since the rows are all connected, like one long necklace, it will throw off the whole database. Imagine typing 0102, and then finally getting to the row where you can type the value 10 for that column, and you don't have to do the leading zero anymore. So what I'm basically revealing is, is that I did too much data entry into the fixed width databases at some point in my early life. Okay, so I showed you the evidence that I crashed the database. I declared in that course, I published that these old IBM mainframe legacy databases never crash, even today, like never. But they are hard to maintain. I said that in the course for sure. So how do we know for sure that me saying that in the course on January 3rd, didn't inadvertently curse the no time system into crashing on January 11th? Here's a twist in the plot. No times did not actually crash. According to an article in CNN, here's what really happened. Somehow some corrupt data got entered into the system and made it through all the validation rules, got committed, and even got saved in the backup. Now, if you take my application basics course, you'll learn that a flat structure will break if something like that happens. All the data depend on the location of the other data. Remember that fixed width thing I just said? Imagine a zero got erased from one of those characters, and there was nothing there. No zero, no space, no character, nothing. It would throw off the entire database. Basically, it's like dropping a stitch and knitting. You are screwed. I'm telling you, if that happens, you are totally screwed. You have to unravel all the rows you knit and go back and re-knit them, or you have to pick up a stitch. So here explains how you pick up a stitch. See that hole there? That's the dropped character. That's the corrupted character. Okay, see here? We take in a crochet hook, and we pick up the stitch we dropped a few rows back. In other words, we use a big data editor to find the corrupted character. Then we weave the dropped stitch up the rows until we get to the current row. In other words, we fill the corrupted character position with a real character, and that bumps the daisy chain of all the characters in the big flat database into place. Actually, what they probably did was edit the backup, then upload the edited data into the mainframe as it was coming back up, and that picked up the stitch, so to speak. Which actually gets back to the real problem we are having here. No, no times didn't crash. Legacy IBM mainframe databases are still faster than a cat with zoomies. The sun still rises and sets over polluted Lake Wobegon. The problem really is that we don't have people who can program these things anymore, because they are programmed in COBOL. I don't know COBOL, and I can't begin to explain to you what COBOL is. I just know it has impacted my life immensely, and also I am scared of it. The reason COBOL has impacted me so much, yet I am scared of it and don't understand it, is because my mom was a COBOL programmer. And I admit I just don't understand her. Like, there are no comments in COBOL. All your curation is offline. And, like, you have to compile it separately before you run it. You know how when you run SAS, it first compiles and then errors out if you have a code error? Well, that's a totally separate step in COBOL. My mom always would say things to me like, look at those automatic compilers back in my day. And to be honest, we just couldn't connect. So I tried to inspire her. I even begged her to please become a COBOL consultant and fix our infrastructure. But she's having too much fun doing things like vacationing in Florida. Like, why? Well, thanks for watching this confession video where I basically explained how I thought that the no-time system going down was my fault, but was relieved when I actually figured out it was my mom's fault. If you learned something from this video or you didn't learn anything and just somehow felt entertained, please give it a like. And hey, maybe my mom had some co-conspirators. Do you think you might add something to do with no-times or any other mainframe legacy system going down? Don't be shy. Leave your confession in the comments. I'm using the link in the description.