 Let me just do that. Okay, I want to start talking about debugging your code. We've all been in that situation where your code doesn't work. You wrote it once and the first time and why would it not work? I mean, you just look at it and it should work. And there's two schools of thought on debugging. There's people who like to use debuggers, right? I'm actually probably going to show you a debugger next time, I'm a next module in a month, but there's a whole different school that says using debuggers is a bit, well it's not great practice in that it gives you really fast feedback and you seem like you're in the code, you're literally in the code and you're solving problems, but you're not actually, you're actually wasting more time than you're actually saving. And the school of thought is more, I guess the print statement school of thought that if you instrumentize, so that's the fancy way to say, put in print statements in your code, you can log different parts and see a whole course of action instead of having to parse through your code yourself so next and next in the debugger, you'll just let it run and see what behavior emerges that way. I'm gonna show you a tool you can use, a really simple library that'll help you instrumentize this, your code in a simple way that's easy to manage, right? So let me just show you, the module is called Q, right? Very simple. I am going to make everything complicated for you. So Q logs to a file, usually slash temp slash Q. So let me just tail that file. Yeah, temp Q, right? And as you execute your code, right? It will log to that file, different things that you write. So let me just start an iPython shell. Let me import, come on, there we go. So my module amount for Q. I have two functions here, I have a function called F, right? In F, dirt simple, all I'm doing is importing date time, calling now and returning. But you have this little statement here, Q now. What does this do? Well, if I call my thing, why did I not dot F, right? So the function runs fine, in your main shell doesn't change a thing. So it just spits out that date time, but in my temp slash Q file, prints out the name of the variable, it figured out black magic, and the value it is at that time. So many times you call it, it'll print it out that way, right? You can do, you don't have to be Q now, right? You can just, if I modify my code a bit, you can just wrap Q a bit everywhere. So just say Q, yeah, right? Let me reload that module, right? And, oh, and if I call it again, it just says F date time, because that's what was wrapped in Q. So you can, you can spruce up your code for these build calls and logs to one file and see what happens at the end. There's another one, another way to use it, which is called as a decorator, CCQ2. This is more interesting. So if I call dot F2, 999, so the function's really easy. It takes a year, takes now, replaces with now. So if I call it here in my main shell, you see what it does. It takes the 10th of March, 1999. But you see, why is it not doing what I thought it would do? Yeah, let me try it out again. Yes. Here we go. So, so the file stays around. It gets appended and you see, so this Q operator will take all the arguments you've given to your function. So it says, you called F2 with 91999 as an argument and gives you to return type. So if you have this function, might be a black box function, might be something that you sure pretty much works, but you're wondering what's getting passed in, what's returning. You can wrap your functions like that and instrumentize your code that way. It's available on PyPy. I think it's the one file. You can literally download it from GitHub if you need to. And pretty much it, there's a few more odds and ends just to make things weird in it, which are kind of cool. They overload a couple of the operators, but other than that, it's pretty much it. It's really simple, but it's a bit, I know it's a bit complex here, but if you have code like a web server running or embedded code or something where you don't have access to standard out. Well, you can just import Q. It doesn't have to be, here it's slash temp slash Q. That's parametizable, paramet, you can change that. And you can set it to whatever you want. So you can sort of instrumentize your code easily. Bye. Thank you very much.