We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
Analysis Summary
Worth Noting
Positive elements
- This video provides a rare, unvarnished look at low-level systems programming (Odin language) and the messy reality of memory management and UI rendering logic.
Be Aware
Cautionary elements
- The host uses financial status ('you're broke') to deflect technical criticism, which can lead viewers to conflate wealth with engineering best practices.
Influence Dimensions
How are these scored?About this analysis
Knowing about these techniques makes them visible, not powerless. The ones that work best on you are the ones that match beliefs you already hold.
This analysis is a tool for your own thinking — what you do with it is up to you.
Transcript
What's going on ladies? Beautiful morning everybody. down. Ashton Reef, what's going on, baby? Big kiss for you, my man. Is this still safe to drink? I suppose so. Jam brothers. Salute. Salamkum. Bonjour. Meaba. I always said that. Nihow. Namaste. Bjouro greeting everybody in his own language. He probably sleeping here before HFG. I don't know what he's doing. HFG is sleeping. HFG is sleeping. He's sleeping. Okay, we're almost ready with the update, guys. New update today, probably in a couple hours. One more thing I want to I want to do is saving the plot ratios of these panels, right? So you have these things. Some people say, "Okay, I want to have this bigger. I want to I want to save these ratios because if I let's save this to I don't know, let's say template 19, right?" So you see it resets this right. So if I load the books or I load this thing I want to save morning, afternoon or evening to you. What are we cooking? That's what we cooking guys. It's very difficult and I actually going to have so much issues because it's complex. It is what it is, ladies and gentlemen. It's morning for me. It's like 9:00. I'm already 3 hours awake. I'm going to have a heart attack as well because my chest Okay, guys. We're going to do this, huh? Okay. So, how do we fix this? The thing is that we have uh plot ratios in the chart here. Plot ratios dynamic F32. I think we can start with um say something like in the config, right? plot ratios it's going to be I'm dynamic dynamic F32 as well right so if we delete the config we also need to delete the plot ratios because that's an uh it's a slice slices being allocated on the heap yada yada yada so we need to delete that uh config plot ratios right we want to delete this if we clone our config we also need to clone the plot ratios because it's allocated on the heap and if you basically clone your config without cloning the heap allocated array. You're basically going to keep adjusting something that's not yours. Right up Tony Hawk Tony Hawks Pro Skater one. I don't know if you can actually hear the music by the way. It's like copyrighted as [ __ ] but it doesn't really matter. You know what I mean? I'm Superman. Man, I feel like I'm 16 again. Holy [ __ ] Uh, so we're going to say for ratio yn config.ios ratios plot ratios new config plot ratios y equals ratio. So we copy this slice. [Music] I'm Superman. The question address. Couple ways we can do this. The safe way and the unsafe way. Serialize. How do I actually write serialize, bro? See, he Feeling right. Can actually do the same technique. I can hold on to what I am super [Music] The thing [Music] The thing is that's [Music] [Music] So the problem is that we going to append uh a plot ratio each time we add plot. That makes a lot of sense. But the problem is in the we are playing chess. Programming is playing chess. Okay. So and you're playing chess against yourself. That's the thing. So, you need to be a couple steps up front. The better you are, the more steps ahead you're going to be. What's the problem? The problem is that if we load plot ratios from the config but we are calling at plot each time we restore from restore from a config. We're going to add a layer. This layer is going to add a plot if it's not an overlay, which basically means it's going to add a plot ratio on top of a plot ratio that's already below from config, which basically means we're going to have too much plot ratios with all the problems that come with that, you know. So, Anthony, are we going to fix this? Well, I don't know. [Music] Um, let's let's just start with step number one. If we do not know the the direction where we're going to go but we know that in able to move forward we need to put our left leg before our right leg first. Let's do that. So if we serialize I'm going to put the plots ratios from the chart into the config. Let's do that. Let's do that. We copy [Music] Do we need an allocator? Well, if we clone everything with a temporary allocator, I think we're going to be good here as well, huh? Temp allocator. We're going to make these and we're going to loop over the ratio again. It's calling. You're writing golden hell. Writing go. So sayless chart widget. Now we have the config. Pot ratios are in here. Pot ratios are good. So we can actually make this and we going to see wait we cannot see this. Uh we need to do load from config and then wait but that's going to reset. That's not true. Legit. The CFG actually just CFG is fine. [Music] [Music] Hi. That's why I want to That's why I I don't want to do it. [Music] That's why I don't want to do it. Uh, it's because it's like, what's going on? Skywatch shot. [Music] Dynamic disase. It's not Maybe we should not do it, guys. Not yet. Not yet. Huh? [Music] [Music] Such a loved one involved. Sleepy morning. Yeah. You got to be kidding me, bro. You got to be kidding me. The problem is that if I if I'm in a debug build like now and then we have the console thing open, it's it's going to be so [ __ ] slow. ESG ain't going to they ain't got they ain't gonna they ain't gonna get me, man. It's allerg I hate them so hard. It's like each time I see such an error, I'm getting like panic attacks and anxiety and and and everything at the same time because it's like so hard to debug them. It's I swear to God that's why you use rest as well, right? Clean up for him. Since since when is this this error in in in in here? Where's cleanup frame? Where's cleaner? Put him here. Where's Groove Books? Here, bro. I don't even understand. And since when is this problem? Okay. We got this, baby. Is this platform in production? Yeah, of course. Of course in production, baby. 5K users. Now you. And now you. And now you baby. Yes. One shot. Two shot. at the door. Somebody There's basically a cleanup function, right? So, um you cannot clear layers in in in the middle of a render. So, you need to basically add them to a list and at the end of the frame. At the end of the frame, we clear all the layers. So, we check if we have layers to remove. We're going to loop over the layers. And if the layer is the layer, we remove the layer. And then we destroy the layer. How do you name branches? Not good. [ __ ] So destroy since when is this thing? I had such a good day. until this problem came. This is prediction. One shot. [Music] It's very funny. people. The reason why I don't do any programming YouTube anymore like uh like tutorials and all that stuff is because you have these idiots and they come to my channel and then they say like, "Hey, you're code this, your code that." But the thing is these guys have like two zeros, two digit on their bank accounts, right? And then they they they think all these patterns they need to follow and then they come like, "Hey, your code sucks. I don't care." You know what I mean? You're broke. You're broke as [ __ ] bro. That's the problem because you you don't know how life works. So, shut up. I'm recently so I don't know what it is with me, but I'm so heart triggered these these these days. Like, I don't know what it is. Like, legit everything triggers me. Like, I I don't know what's going on with me. Do I need to go to therapy or something? I really need to do Yeah. So, the thing is this this cleanup frame, I don't know where is it coming from. I tested this. What What did we changed? I thought it was like a double three on this layer destroy, but it's not. Thing is that I cannot even. I'm gonna I'm gonna close my thing because otherwise it's going to be super slow. Okay. You see it's like a welcome Okay. Is this asor guys? Please leave me alone, man. Stop asking me questions. Please. Oh, man. Okay. I need to think here. This is actually hard. We We want to do something else and then we we stumble into this Okay. Okay. Where do we start? Unsafe. Remove all layers instantly. I mean, no, it's Lutron coffee, huh? I mean the moment you see assert lines in in a in a in a development guard then you know how late it is then you know the code stinks and that's perfectly fine. start and safe clear plots because that's what's happening, right? That's what's happening. So we just re the thing is we are actually like live reloading a a complete new configuration which is always sketchy. A lot from config. Boom. Clear everything. Load from config. And now we have a problem. So what I think is happening. This is all your fault. Lot from conf. Okay. Wait, wait, wait, wait, wait. So Why is this unsafe? Because we are not waiting. We are not marking them for removal. These are unmarked elites which is perfectly fine. Where is my function here? The HTTP library. Oh man, I don't know. They don't even have an HTTP library. is we don't remove layers with this. That's the thing. So if we load from if we load from from this thing There is no way we have manually set layers to delete at all. Where's the stick size, brother? Yeah. You see? Okay. So, that's the thing. So, there's a small book, a human book, my book. This start cleanup frame triggered cleaning things up that not that that it's already gone. They're already destroyed. Uh causing like uh double free uh read from memory that's garbage yada yada yada. All all problems that come with this. But this only happens when the early is to remove. So the question is who is who is setting this because this not going to work anymore. You see, of course not because we are returning it. I mean from the one GitHub. Yeah, there is one uh good uh HTTP library. I think one actually which actually a good one. I use that. And you also have like an MBO uh Q system. Pretty good stuff, not going to lie. But everything HTia related, I wouldn't rewrite an olden. I wouldn't do that. I would use go all the time. I would use go all the time. It's not worth to change. You need to pick. Depends on what you want, of course. But I would I would um Okay. You know what? You know what I think is happening is like a recursion here. Like a recursion. And something that I was already thinking of yesterday, like who is in charge of removing stuff? Is it the chart widget or is it the chart component itself? Because each of these guys are basically a chart on its own. And then you have the chart widget which basically is the parent system encapsulating all the the charts and they all have their state you know. So what I think is happening is that when we do this load from a config we clear right chart widget unsafe clear all plots. Then we call this destroy the layer. That's what's happening. We destroy the layer and then we destroy it again in the cleanup frame. Chart widget. The move plot plots to the move. Look, this is this is what it is. Plots to the move which are getting deleted at the beginning of the frame. Beginning at the middle of the frame. Char destroy. Clear. Destroy. Double free. Unless the layers are already gone and that was Yeah. I I ended up buying lip curl. Well, is a very good language, but it's like it's for it's it's for for for for low-level things, right? For like But guys, I'm so confused. I want to fix this. This is like a small little bug here. Well, small um if through this thing cleanup frame [Music] in this town sleeps with chart clean up. lay us to the move. My drive to home tonight is my kind of Yeah, Go is fine for that. Go is our server, bro, is like crazy. It's all Go. It's like you have no clue what we do there. It's like insane. Uh Go is good. The problem is that Go doesn't have uh Yeah, like they could make Go the best language ever, but they they are just [ __ ] The whole [ __ ] Go team and its community, bro. It's annoying. Small things they need to do. They need to stop. They need to remove garbage collectors on demand. They need to have a native um they need to make sure they don't have the stupid runtime in their wasm. But I agree. I mean it's like it's it's fine. It's not made for that. So we can't complain. They need to stop. Um, there are so many issues with God that I didn't know before I used the other langu used Odin. Like there are a lot of like escaping to he like you never know when when something where is what allocated you have no [ __ ] clue where it is but it doesn't really matter. Go doesn't it's best that's why the language actually shines in my opinion where you can just do do whatever you want and it's fine you know and don't think about it. So remove layer chart. Huh? I like it. Oh yeah. Hello. Damn. He Yo, where the [ __ ] are they coming from? Hiest. Oh, hold up actually. Good. Sometimes an error is good. It's on load up. So something is marking. Something is using this function this function. So h how do you know what's using this function in the Anthony GG way? Is to remove the function. Wow. Wow. So this this means My rest is good. Sometimes I regret spending so much time rest. Like you're going to appreciate rest once you The problem with rest is like it's good but it's also like rest could be such a good language if they if they just did not type masturbated so hard that the type system and all that stuff is is too much like butter checking and all that stuff. I like it like hey you cannot do this. Okay, makes sense. Um but it's like it the the the fact you need to write something like um like arc mutx box. It's actually first book but it's like makes that it's just why why the [ __ ] is happening? Keep it simple. Just like tell me like hey [ __ ] you're you're doing unsafe stuff. Oh sorry. Okay, cool. Cool. So, we are only using this function in one [ __ ] place that can mark the layers. But listen here. So it but it's the where is this thing? Where is this thing? Bro here. This is the only function that marks layers to remove. Correct. Yes. Because but what does this mean? It does mean that somebody me made a mistake of basically calling a pent directly right somewhere. Actually, we could do. Wow. What the [ __ ] is going on? Search everywhere. Search everywhere, man. No, if it it's nowhere. I'm using sometimes Z search because Z search is superior. Guys, this is the weirdest thing I ever seen in my life. So, huh? We never append to this thing. So, how is this? How does Is this is this like in an an initial? Wow. Shut up. Wow, man. Nobody's calling this. Nobody's calling this. Nobody's calling a pan to this. There is there is no reason it good morning uh Mr. on the is combined neutron and gamma radiation. Is this like is it reading from I I thought it was automatically the length is zero. Is it some do am I blind? Do I miss Do I miss something? What's going on here? Can somebody please help me here? And now we going to make sure. Now we're going to make sure because you never know with these magic hocus pocus witchcraft. We're going to make sure that these [ __ ] are being printed in the same thing in the same because it could be like in a in a frame that it's different, right? And then so we're going to do this to make sure. Yeah. Yeah. The length of this thing is zero. What's going on? Yeah, guys, I I don't even What is going on? It's very simple. The length of the array of the dynamic slice is zero. That's what's going on. Clearly cannot even type length. length is zero. Assert the length of this thing is not zero. So it it's zero, but it's triggering the alert. Can you explain me that? And that's a book that caused this uh this annoying thing. You're asking to assert that it isn't zero. But it is zero. Exactly. But I I could be wrong because I'm Wait, let me let me initiate. Let's do charged plays to remove the move equals. Let's do this. Make dynamic dynamic layers. Just like that. Radiation. Normally you don't need to do this Mansour. Nor you don't need to you don't need to make these. You don't need to Bro, what the [ __ ] is going on? Just move it in the beginning of the You never know the length is guys. What is going on? This is This is insane. This makes no sense. This is never going to give they're never going to give a problem, you know, What happens if you loot inside of a Hey Guys, I'm confused. I need to pee and all that stuff. Yeah, we did. Good morning. How are you? There's something going on. We need to fix that. This is like I need to PM us a bit at Holy [ __ ] What's going on? [Music] You said bey. state of love drinks. [Music] It's [Music] [Music] only heartbeating. And when it stops, it stops. My heart stopped beating out loud. My life's a mess. [Music] [Music] hearts. Okay. Wait. Wait. What? Huh? All right, there's going to be this thingy. [Music] [Music] My heart stopped beating. Guys, [Music] am I alive? [Music] Yeah, this layers to remove should be zero because we are not removing any layers manually. That's the thing. It's telling us that it's empty, but the asserts get triggered. And if I Remove this cleanup frame thing. This is all This is all just nothing fancy. This is more like rendering stuff. Nothing really Render logo. Render yada yada yada. Check and zoom. Render the context menu. Clean up frame does nothing. cannot remove anything. Sush. Every dry. Makes sense. Makes sense that we cannot add one. Makes sakes makes sense. We cannot remove one because makes a lot of sense. Makes a lot of sense. That makes a lot of sense. makes makes all sense. So, it's not removing it, right? Makes sense. That's that's correct. But if I want to add one, we It's the cash. Is it the cash with the Ocean just in cash. Maybe this is it. Oh, wait. But yeah, nobody fight me. Fight me. Just fire me. People say it. People say them. I chat and I just ignore them. Now we're going to trigger, right? Boom. Okay. Okay, I'm so sorry, guys, but still caps. I need to caps without caps. Even the best can make mistakes. Huh? Even the best can make these mistakes. Yeah. Yeah. Pretty sure the cashed. Pretty sure it was a cash problem. Pretty sure was sitting here working 1 hour on a cash problem. 1 hour Good luck, Captain. Yes. You see problem Yeah, it's just with the console open. What's going on, baby? What's going on, ladies? Why am I saving this? I need to loot. This makes no sense. There's no such thing as a race condition. It doesn't exist in this in this scope. So, guys. You're safe, too. Reverse the loop for the plots. I think you need to reverse the loop for removing the layers. Um, so much fun. So much fun. So much fun. Yeah. The thing is it should never be in heat in the first place when we load a template. That's the thing. That's the the thing what I'm trying to figure out is why is loading a template causing to remove this [Music] [Music] I remember so much fun. Where's this function? We don't have that. And save this one. We did remove the move plot. Clearly it is remove block pl. Mhm. Chart destroy. This should be empty. It should already be empty. But that's not the issue. The issue is which I cannot replicate anymore for some reason. Wait, I have an idea. Uh, maybe we should do this. Stop. Yeah. Okay. Yes. Look at how much we need to try to get this errors. It's going to be a hard one. Not going to lie. That's a nice base. Thank you. It's Tokyo splits one. I know. I think I know what it is. I think it's just like so the the the the the weird stuff that's going on in here is it triggers this function, right? It triggers this function. cleanup frame. Okay. So, what's happening in here is actually very very straightforward. He should not be chart layers to remove the move. We destroyed ourself already. And it's this is nil. So the problem actually is Nil is we print nil he nil. It makes sense because this chart is is is destroyed, right? And it's this it's this book. It's where we plot student to the move. We call chart destroy. It's stinky cold in here. Well, stinky. There is some kind of a thing that we don't know what it is. I think we can fix it with saying n chart layers or remove is not nil. Can we please do this? I'm going to try to replicate it again. It's too boring. But the thing is this is just like a stinky guard, right? It doesn't make sense. because if this can cause troubles. I mean, so the thing is that the problem sits in The problem is You you we are rendering and you're basically like clearing and doing stuff inside of the same loop. [Music] Young featuring Treats all over the world. like a [ __ ] Yeah, but we cleared for the street [Music] [ __ ] Young Tuck plus all the magic combo. Yo, Young Tuck, baby. I think we're good. Serious. [Music] The question is where do we feel? It's probably marked for removal. It's marked for removal. This is a safe removal, but the problem sits in here. So, we remove all the plots, but not the not not not the first one because that's the main plot. So serious destroy. I think we call start destroy, but we still to be honest. Is it fixed? I need to debug it. Actually, I'm going to install Jet Brains ID. I need a better ID for this because like first of all is already like I need a debugger and I never need a debugger in my life but now I need to What can I say? What can I say here? Oh my god, everywhere can't protect me from this. I need to revisit this. This is um I need a debuggish. I really need one. I need to check what's going on. It's just like one misplacement when you call something. and you're [ __ ] And this is the downside of using a language like this with a bigger brain like like me, you know, that's the downside. This what they call shooting yourself in the foot. That's why they invented the garbage collected languages. That's why they invented Rust. prevents this. Prevents these as you see, right? Pros and cons for everything in life. I swear to God, guys, I'm going to dip out trying to fix this a little bit more. Relax. Um, so we can release today. Hey, thanks for being on the stream here. 1 hour and 40 minutes. A little bit of a chilling in the morning. Thank you so much. Have a nice work day. Don't forget tomorrow is never guaranteed to be honest. It could be that we are dead in one hour. Who knows? Nobody exactly.
Video description
► Join the Market Monkey Discord community 👉 https://discord.com/invite/AuuVAEBmYv ► Start using Market Monkey 👉 https://marketmonkeyterminal.com ► Follow me on Twitter 👉 https://twitter.com/anthdm ► Follow me on GitHub 👉 https://github.com/anthdm SUBSCRIBE OR NO MARGARITAS ╔═╦╗╔╦╗╔═╦═╦╦╦╦╗╔═╗ ║╚╣║║║╚╣╚╣╔╣╔╣║╚╣═╣ ╠╗║╚╝║║╠╗║╚╣║║║║║═╣ ╚═╩══╩═╩═╩═╩╝╚╩═╩═╝