184: Asynchronous Programming - Episode Artwork
Technology

184: Asynchronous Programming

In episode 184 of the podcast, the hosts dive into the world of asynchronous programming, discussing its importance and practical applications. They also explore the alarming rise of AI-driven scams, ...

184: Asynchronous Programming
184: Asynchronous Programming
Technology • 0:00 / 0:00

Interactive Transcript

spk_0 Progaming through down episode 184 a synchronous programming take it away Jason. Hey everybody, um, this is a gonna be a fun topic
spk_0 I think this is something that I don't think they teach this
spk_0 Well, you know, this is gets back to my like I took so many theoretical classes
spk_0 I didn't really take anything practical and college but but they didn't I don't remember learning about this at all in college
spk_0 It's extremely important and useful so I'm excited for us to get into it
spk_0 But before we do all that I wanted to talk about something that kind of blew my mind that happened recently to have someone in our neighborhood
spk_0 Okay, so imagine you get a call and it's your son's voice like it's actually actually I don't know if it literally was his voice or if it was just a voice of a child is age
spk_0 But basically it's it's this voice telling her it sound like her son saying hey, I am
spk_0 Actually, I'm not gonna say her son's name even if I could remember it
spk_0 But I'm so and so you're actual son right and yeah, I fell and I need some money to like you know help me get to the hospital or whatever right
spk_0 And it's a scam, but it's like in your family members voice like they've cloned their voice and it says it's from them because they probably
spk_0 Go on your Facebook and figure out if you've ever posted publicly like hey me and my son. It's just they dug
spk_0 So it's a call you and it's like hey, it's Doug you know, I fell and I need your wire me some money or something like that
spk_0 so you know the person knew it was a scam, but
spk_0 It really kind of blew my mind. I've been getting a lot of
spk_0 AI scams on my phone where they text me I
spk_0 Don't say I want to fall for it fall for it in the sense like I didn't lose anything
spk_0 But the first time it happened it was like hey, you know, I'm in Austin at the six street parking garage. Where are you?
spk_0 and
spk_0 I was like well
spk_0 Who is this it's like oh you didn't save my number?
spk_0 I'm like okay. No, I didn't save your number. Who is this? It's like oh?
spk_0 Jolene or so whatever the name was the name I didn't recognize and I was like okay. Yeah, this is clearly
spk_0 But when I feel like you know, I could have proved that that one's AI
spk_0 But I feel like people are using AI to scam people and the one over the phone was definitely some AI thing
spk_0 and
spk_0 Yeah, I just wanted to throw that out there and get your thoughts free mind blowing down be careful
spk_0 I I mean scams in general are
spk_0 kind of an intro well
spk_0 Bad but interesting topic. I don't know how you say that like it's actually really unfortunate and scammers suck
spk_0 I don't know I don't understand
spk_0 Anyway, whatever that's in a side, but I think that big money, right? That's that's yeah, but still like
spk_0 I a lot of the people that they scam right so part of it that's confusing to me is like
spk_0 Oh, this is an obvious scam and it's like well, that's part of it though. They want
spk_0 To kind of weed out people who are gonna be like they want someone who's not gonna catch on later and so you know
spk_0 They want someone who isn't gonna ask questions like you're insistent of who is this or
spk_0 Potentially looking for you to to fall into it sort of the you know when you're sometimes you're young you tell these jokes
spk_0 Where like you're hoping the person will give a certain reaction so that you can sort of like say something funny in response
spk_0 And so they're sort of you instead of saying who is this and they say oh you didn't save my number and go oh is it
spk_0 Sarah and then like yeah, it's Sarah and then you're like oh it's Sarah and then but it's not right like they were just letting hoping you would say a name first
spk_0 And like you said it can be really easy to fall on these and I do worry like you're pointing out
spk_0 AI on two fronts scaling these out so that they don't even need someone to be attentive to all of these different threads
spk_0 That you know they can just mass do them and have auto responders and people people busy until they like figure out something is scary
spk_0 And then the voice cloning eventually video cloning
spk_0 I the video cloning the video stuff is getting to the point where everyone goes
spk_0 Oh, it's so obvious. It's so obvious and they do like some frame by frame like look at the and it's like
spk_0 But who in the small little window when you're scrolling through social media can see like this frame by frame pixel
spk_0 Analysis where you know the pinky finger glitches out for for one frame or whatever. It's you know
spk_0 I remember you and I discussing on this the Will Smith eating spaghetti. Oh, yeah, that wasn't that long ago. Yeah, now now
spk_0 Like I saw some video from a
spk_0 Football game over the weekend where one of the coaches had an issue and somebody made an AI video of him like like
spk_0 Basically super vulgarity like dropping like saying how bad it was whatever and it just turns out it was like completely fake and
spk_0 They they said it underneath but you had to like click it and look for it a lot of people probably reshared it thinking was funny
spk_0 Like look the coach like basically going off on on reporters and stuff and so it's becoming more and more
spk_0 Revolent and it only takes you being off guard for for sort of a moment to get wrapped up on this
spk_0 Um, so yeah, definitely be careful, but I actually have a
spk_0 Observation about this. Okay, so you mentioned like you know
spk_0 We all kind of go. Oh, yeah voice cloning. It's dangerous. You and I have lots of you know audio out there
spk_0 It's you know whatever you but now like you see demos on YouTube or people showing hey from even just maybe 10 seconds have an arbitrary
spk_0 Sentence they can sort of you can use a different voice or clone the person's voice, you know do voice to voice sort of transition
spk_0 Yeah, I so I've seen these before so then I wanted to do this for for
spk_0 For basically like an audio enhancement thing. I was I had some audio I'd recorded somewhere and I was like oh
spk_0 I want to use voice cloning. I know it should be possible to like
spk_0 Feed it my own voice from a podcast recording or something high quality
spk_0 Feed it the like not good quality and have it basically reread that stuff in the high quality voice
spk_0 Which is a use case that supposedly possible and then you immediately bump into the fact that like
spk_0 It's actually really difficult like like as much as people say oh there's gonna be this get it's non trivial
spk_0 Like I guess there's a lot of pay solutions
spk_0 But it's often unclear if the paid solutions are any good or if they're just like the open source stuff that someone's charging for
spk_0 But like cobbling together all of the like you go download this model
spk_0 You run it on comfy UI you do that like it's still in the realm of like this is difficult reasonably difficult to access
spk_0 So for all of these AI things everyone's like oh, it's so easy to do this and then you're generating an AI video
spk_0 Like we all know we've all seen some crazy AI video that was hilarious or partly convincing
spk_0 And then you go try to do it and I know maybe I'm just not smart enough for paying enough attention
spk_0 But they seem a little cherry-picked like people may have gone through a lot of work to cherry-picked the one convincing video
spk_0 And if you go do it you think it's gonna be magical and it's actually a little disappointing
spk_0 That's been my observation. Yeah, I think there's there's two things there one is um
spk_0 You know definitely
spk_0 It's uh the open source stuff is not trivial to get up and running
spk_0 I do think that the paid solutions are like you know pretty accessible
spk_0 But but you're also right that
spk_0 That um you often have to iterate a lot and you have to get it's almost a skill in and of itself getting it
spk_0 To sort of behave and feeding in the right sort of negative props so that it doesn't go off the rails and all of that
spk_0 So yeah, that's a whole skill in and of itself
spk_0 Yeah, I someday it is getting better fast so I think we are getting close but uh
spk_0 It's one of those things where I was thinking about this the other day. It's like if you could describe where we are right now with AI
spk_0 People be like oh, that's gonna be so magical. It's gonna change everything the world like
spk_0 And then we got hearing is like oh, huh, you know like I don't know like and AI could clearly probably pass the traditional sort of
spk_0 Turing test. I mean maybe that's controversial and then now it turns out like oh yeah, but it
spk_0 It didn't just solve all of life's problems like you know
spk_0 Yeah, yeah, I think that I to double down on that. I think AI is just not going to create the kind of monetary value that people thought it would
spk_0 You know like the thing about it is
spk_0 The reason why Fang got so incredibly rich is that
spk_0 Now people can like be super productive
spk_0 anywhere
spk_0 You know and so like you could be waiting in line for
spk_0 Uh ride at Disney and like working, you know like you could be answering emails talk to the people on slide like
spk_0 That was something that in you know
spk_0 1999 you couldn't do if you were waiting in line for an hour at Disney you couldn't do your job right and so you know
spk_0 combination of of apple
spk_0 Google for search. She's other things like allowed people to be like super productive
spk_0 um you know and they're even when they're idle and
spk_0 Uh and for AI it might it might do that
spk_0 Um, but it hasn't done that yet. It might take a lot longer to get there
spk_0 Okay, we're way off the AI scam thing
spk_0 But I have heard some recent interviews alonglines and they said actually like the the thing the like what will be the inflection point or the
spk_0 The turning point is when all of these advances sort of make it into robotics
spk_0 I could see that. Did you think that's like a different economic equation like when
spk_0 Not just oh you can be
spk_0 taking the AI and
spk_0 Making programmers more effective or making people's email responses better or like sure all of those things maybe
spk_0 Economic value is a little like but like if you had
spk_0 The level of improvement we've seen there in sort of like robotics. Is that gonna be a major unlock if you totally
spk_0 Totally. Yeah, so here's a very simple example like
spk_0 Think how many parents
spk_0 Have to like either change their work schedule or do something kind of wonky
spk_0 Um to just like
spk_0 Shuttle their kids around. Oh, yes, you know. Yeah. Yeah. Yeah, just driving. It's like oh, I pick
spk_0 Uh one of my kids up from school. I drive them to the soccer field and especially when they get older
spk_0 They don't even want you know, they don't want parents to be sitting there like watching the practice
spk_0 Yeah, exactly. It's kind of hard to see you
spk_0 Yeah, yeah, so they either go home then or whatever like that just what example
spk_0 Like you could have a robot that goes up and down the street taking everyone's trash or the curb
spk_0 I mean, there's just so much you get unlocked with robotics, but I think it'll take a while
spk_0 All right, yeah, well, let's keep let's keep moving through the agenda back
spk_0 So yeah, don't get scammed don't get scammed by AI
spk_0 I'm careful folks be careful and and warn your parents and grandparents or you know family that like as well
spk_0 Who may not be as aware that that's a thing?
spk_0 Yeah, um, yeah very true very true. All right
spk_0 What's the first news of the show? All right, so I have I have no news this time
spk_0 But I do have two good video links that I wanted to shout out
spk_0 And so the first one was a recent video by
spk_0 Sebastian actually didn't look up how to say his last name. I know I'm not gonna try so log log
spk_0 Okay
spk_0 Okay, anyways, and it's coding adventure
spk_0 Ray tracing glass and caustics. This is a series of videos that Sebastian's been doing. They're sort of like the
spk_0 In a similar vein as I guess like um
spk_0 Three blue one brown like you know, it's like sort of a nice quiet pace
spk_0 But like deep content and just sort of like working through something so they're not like five minute YouTube shorts
spk_0 They're they're sort of longer form videos
spk_0 And he's walking through the process of coding he's been working on a ray chaser recently
spk_0 But going a little step further than the normal and so in this one he's sort of talking he gets to try a little bit about like
spk_0 Physics physical based rendering and sort of like how
spk_0 Glass has certain attributes and indexes of refraction and sort of if you build up from like really simple
spk_0 Sort of rules you get very complex interactions almost
spk_0 Becomes a physics simulation, right? Like the caustics is the like very bright shiny thing that if you have like a
spk_0 Glass object you get you know sort of like rainbow diffusions in some areas and some areas you get you know like very bright
spk_0 shiny spots or whatever
spk_0 And if you play video games often you won't see those kinds of things because they're not really meant to be simulating physics
spk_0 They're meant to look nice uh and right past
spk_0 Yeah, but in ray tracing you can be kind of more physics based but uh a lot of videos on his channel that are just like really really good
spk_0 Um, but this one's really nice
spk_0 And then the the reason why I wanted to bring it up here other than like you know, I mean
spk_0 Maybe this is really cool to you. It's great background photo
spk_0 This is kind of tends to be the YouTube I watch
spk_0 I tried to explain to people there's people who watch YouTube and it's like you know
spk_0 More the shorts content or entertaining, but there's a lot of this like
spk_0 Science engineering kind of stuff out there that I feel is at least a little bit better than I'll just call like brain candy
spk_0 And it's sort of replacement for you know the TV growing up
spk_0 We were like watch film either science guy or something that would be like you know a little and even that was yeah a
spk_0 High-strung I guess but you know teaching teaching sort of uh science concepts and an entertaining way
spk_0 Um, and there's a bunch of people in this vein
spk_0 But I will say that I also began to realize that a lot of the classes I took in university you can kind of end up
spk_0 Not building a curriculum, but if you just watch some of these channels about how
spk_0 Micro processors work or people kind of building their own circuits some of this stuff about ray tracing
spk_0 You get a lot of what a traditional at least
spk_0 When I was in college sort of like computer science degree would cover
spk_0 So if you can kind of get through the basics of programming learning about like graphics learning about like data structures
spk_0 He gets into debugging because by necessity he like oh here
spk_0 I didn't check the sign properly or I did a dot product and I didn't think about like this this set of inputs
spk_0 And so you actually end up
spk_0 Backing your way into a lot of that education and so I think that's really an interesting thing to say if you can if you find this at all entertaining
spk_0 I think there's like a a definite learning ability that can come here from sort of watching this
spk_0 And sort of seeing how how they kind of go about problem solving and working through things and it is a little bit more entertaining than just watching
spk_0 I you know
spk_0 I don't know if he does it anymore but not choose to do like live streaming of him
spk_0 Programming or whatever like and I really yeah, I know we should do that
spk_0 No, no, no, no, I don't know. I never made able to watch one of those. This is a more edited form of that
spk_0 Cool um, I have to check that out. I used to do a lot of that ray tracing stuff back in college. It's very fun
spk_0 Um, all right my news is
spk_0 Actually, okay, so it's kind of related to the to the voice quoting oh, okay
spk_0 Um
spk_0 There's a new open source model called higgs audio v2 and it's from a company called a boss on AI and
spk_0 It's it's like really really good um
spk_0 So historically this company called 11 labs had been kind of dominating the space
spk_0 So if you wanted to voice-cloning actually 11 labs. That's the way I've never seen before it's this day which is
spk_0 You can describe a voice and then say what you want that voice to say and it'll do it
spk_0 So you could say uh, you know any evil smelly ogre
spk_0 Says who's in my dungeon and it'll actually like make up a voice for that description and then say who's in my dungeon and that voice
spk_0 It just made up um this doesn't do that but but
spk_0 Um, the labs is paid though, right? I love the labs is paid that's right um, but this is totally open source and um
spk_0 It can clone a voice so you give it you know an mp3 of you kind of narrating something and then now it has your voice
spk_0 It could say anything um it handles like
spk_0 You know, you can do kind of like in a movie script or in brackets you say you know laughs or chuckles or whatever
spk_0 And it'll actually laugh while it's talking
spk_0 Um, it's really really really good. Uh, it's definitely just like heads and tails above
spk_0 anything I've seen
spk_0 Um in the open source world
spk_0 So um, I'm gonna try and play with it. I have some funny things I want to do. Oh not I'm not gonna run a scam call center
spk_0 Oh, no, no, no, please don't but I have some other funny things that I I would like to do with it
spk_0 Um, so I'm gonna try and and mess around it, but I I saw a demo that one of my co-workers
spk_0 presented um where they cloned um their own voice and it sounded really believable
spk_0 So so it's like we're getting to that that place you talked about where anyone with the GPU could just do this
spk_0 Yes, so what is the I guess for examples like a lot of these they don't need to be like super fast real time
spk_0 I know they could run in a city, but I don't feel
spk_0 Maybe we're just still too early that so for text llms open source
spk_0 And and maybe it's just because I've never spent time there's something like lm studio kind of gets there
spk_0 So it's like a gooey that you download and then you from there it offers you links
spk_0 And I hope someone in my family was trying to use some offline llms stuff
spk_0 And so I was able to walk them through pretty easily like you go there
spk_0 It offers you models um that are appropriate for where your computer tells you you big tells you if they're too small
spk_0 Has filled drink and you download it gives you the nice traditional sort of like chat gpt style like you can type in text in the bottom
spk_0 It has prompts in it'll answer, but it has like you can go deep on it
spk_0 But it sort of harnesses a bunch of the open source stuff under the hood
spk_0 So you can do like traditional chat app with one of these offline llms
spk_0 You can switch models midstream and it'll like just feed the context into the new model like it kind of just
spk_0 Works as a as a graphical user interface, but for a lot of these other ones like the image generation
spk_0 I don't feel like it says good video generation not at all these like audio ones sort of I've never seen anything like that
spk_0 I feel there's still like a bunch of this
spk_0 Maybe we're just still too early, but like
spk_0 Single front end so we're audio right you're either wanting text you want like the thing that target the source
spk_0 What did like they're feel like there's only a few moving pieces
spk_0 Maybe there's just not enough users, but it feels like you'd be really easy to just build an app
spk_0 That's like a front end and handles like I'm looking at the get hub link for the one you were just talking about in it
spk_0 How to set up conda or virtual environment or it's like
spk_0 But I'm never going to describe to someone in my family how to do these steps like they would never be able at this level to use this
spk_0 Yeah, we're still we're still not quite there yet on the user experience totally agree
spk_0 I think the quality is getting there though like the the flux
spk_0 Text to image model is really really good mind blowing
spk_0 It just needs a better user experience
spk_0 And the new one we don't have it in our news, but the new one Google did nano banana or whatever have you seen this one too?
spk_0 I played with it a little it yeah
spk_0 Specifically for like image editing tasks so like
spk_0 Saying I have an image and I want to change it in some way like I was asking it to do like
spk_0 people removal from background and
spk_0 It works really good. Yeah, it's gonna scare you
spk_0 Yeah, now that one's paid right that's a Google product, but still like yeah, you're right. We are getting really close on the image stuff
spk_0 Yeah, totally
spk_0 Okay, my next news article is a YouTube channel as well. Okay, that's a thing anyways
spk_0 And this is on my as as people have listened to the podcast before no
spk_0 Machine learning AI is not my background
spk_0 But um understanding sort of how the back propagation works how the gradient descends and sort of the model trainings is all very like interesting to me
spk_0 I had a book of the show
spk_0 A little bit ago
spk_0 That you know kind of similar or maybe it was even a news article, but I think that
spk_0 I'm continuing to try to learn and sort of work going back not just as a how do you call like practitioner like user of these things
spk_0 But trying to understand some underlying thing and I think there's some concepts there that can cross apply to other
spk_0 Sort of like traditional computer science sort of applications
spk_0 So it's just definitely like an interesting thing to learn about it is pretty wild to see AI go kind of mainstream
spk_0 It's it's been just a really weird experience like all these people are now talking about stuff that was like really not that cool
spk_0 About that longer. Yeah
spk_0 Yeah, oh, I'll tell you off. I just observation about that
spk_0 But I know you've been in the field for a very long you were in the field before it was cool and now it's cool
spk_0 So like that makes you cool
spk_0 Maybe yeah, I don't know or maybe it makes me too early. I don't know. We'll find out
spk_0 But too early everyone's too early for something right that's the thing so even now you might be too early if it grows another 10x
spk_0 So yeah, that's a good point. It's like Bitcoin
spk_0 Oh, yeah, well, I wasn't okay. Yes, that was what I was
spk_0 Okay, but I have to I focus so the channel name is Welsh alabs
spk_0 And they have a sequence of videos that they were doing called how models learn
spk_0 So this is the first video that I've linked in the show notes. You can just look up Welsh labs
spk_0 It's called the misconception that almost stopped AI now. I am not Jason. So I cannot vouch for the sort of like
spk_0 how
spk_0 Truthful versus narrative the backstory is or any of that stuff
spk_0 But they're kind of talking about gradient descent and how if you give the
spk_0 Sort of how I understand gradient descent to work the very simple
spk_0 You kind of heard about it and computer science
spk_0 Classes you've seen it on the internet once or twice
spk_0 And the way that you would kind of assume it might work
spk_0 It just feels like you would get stuck in local minima all the time with how big these models are right like these models
spk_0 The dimensions are really high the parameter counts are obscene like you would just say there's
spk_0 Intuitively that was sort of what I thought too. I didn't really understand the unlock of deep learning
spk_0 And sort of like what happened because in my mind, you know, you kind of picture the 3d
spk_0 3d scene with all the noise in it and some well in the middle
spk_0 But how do you get there? How do you know where it is without just search for the
spk_0 What is it called the like it's called a Gaussian like does that some brero hat function?
spk_0 We kind of get trapped outside of the hat. Yes. Yeah, so I
spk_0 You're right and the video series kind of walks through the same same thing like this is the simple explanation about gradient
spk_0 Here's why it would work except you like as you point gotcha like it doesn't really work
spk_0 Not really a gotcha but it doesn't really work except wait it did work
spk_0 Why what happened you know like and they walk through how some of the things about higher dimensional spaces about batch
spk_0 Batching about some of the techniques that are applied sort of help actually
spk_0 Almost always guarantee you sort of get where you want to go to some degree
spk_0 With you know obviously probably some caveats, but it just a really well handled explanation
spk_0 And they do a couple really interesting things I've not seen before so rather than just sort of give it as a simple explanation
spk_0 they actually take some
spk_0 Deep models some like early versions of GPT's and extract some of the layers and sort of talk about what is happening
spk_0 Sort of like visually saying hey at this layer if we go here in this actual model. Maybe not state of the art
spk_0 You know, I trained it and this is what you kind of see developing over time as a consequence of this technique
spk_0 Um, and then later on even after this one of the videos is talking about
spk_0 sort of how you would take
spk_0 Coordinates and divide them up with a sort of classifier into boundaries for a really complex country boundary
spk_0 It's one of these ones where like there's a city which one
spk_0 Polygon of the city is a part of one country and the rest is another
spk_0 It's like some some really weird place and how that as you sort of take these linear equations
spk_0 Stack them up do these other techniques that you can sort of start approaching a generalized representation
spk_0 Of even very very complex sort of shapes and and spaces and I just really think it was well handled
spk_0 It really helped me um, it's one of those things like I kind of had to watch it again
spk_0 Just to kind of like okay, I see where it's going
spk_0 But definitely also kind of entertaining
spk_0 So if if you I guess like me have some understanding of some of these things
spk_0 But there's a there's like a gap right there's a goal from okay
spk_0 I kind of know what gradient scent descent is I could have a casual conversation about it
spk_0 But how that ends up getting applied to giving us you know these AI models that we have today is there's some
spk_0 Some steps thising steps in between and this isn't gonna take you all the way or make you sort of like
spk_0 Able to design state of art models are improved them, but giving you better glimpses into sort of some of the the the techniques that are used to cross that chasm
spk_0 Yeah, totally um, yes, it's really interesting. I think um
spk_0 Um, it is pretty remarkable that it works. Uh, I will say that
spk_0 That people get hung up on on a lot of these like it's not optimal or you know theoretically this can't work or doesn't work
spk_0 or etc. And um
spk_0 My always my sponsor that is like it just has to be better than what's out there now
spk_0 And so if what's out there now is nothing it just has to be better than nothing um and uh
spk_0 And so the bar is just a lot lower than like the theorists want it to be
spk_0 Um, you I actually think the thing that almost made AI not happen was people's fear about getting wrong answers like remember when
spk_0 You know gpt is as infancy and facebook released this thing that like wrote research papers. I don't know if you remember that
spk_0 um
spk_0 I forgot what it was called, but you know it was panned and someone made a research paper where it's like uh
spk_0 um like the benefits of
spk_0 Of like drinking urine or something. There's some
spk_0 August thing and you know because it's like um
spk_0 You can talk past the sale with AI you could say like
spk_0 Hey, there's there's incredible benefits in drinking urine write the research paper that kind of explains this phenomena
spk_0 And it'll kind of take what you said
spk_0 For granted and then just go off and do the thing
spk_0 Um, so you can trick people you know, that's what people are doing with the research paper thing
spk_0 But you could also just encounter problems like the famous uh how many ours are in strawberry
spk_0 Um, you know, should you put glue on pizza?
spk_0 It is always famous examples where the AI's gone wrong
spk_0 and and people were just really fixated on um
spk_0 On all these on on the worst case scenario and there's actually like uh there's a um
spk_0 Uh, there's like a i don't know what called a mental disorder, but there's like a uh
spk_0 I went to this like a
spk_0 Career coaching thing it was like a big seminar is a lot of people and they still the lady who was giving a seminar
spk_0 Spent a bunch of time talking about worst case scenario thinking
spk_0 And she's like this is one of the biggest problems. I see as a career coach as a life coach is people doing worst case scenario thinking
spk_0 And not thinking about average case scenario um or or also best case scenario
spk_0 But more importantly average case scenario right and so there was a there was a phenomena of worst case scenario thinking with AI
spk_0 For a long time and and people
spk_0 You know, just didn't want to release something like chat gbt and uh we'll give open AI a bunch of credit
spk_0 that they basically put it out there
spk_0 and uh and got it to be really popular and as you know
spk_0 They got a bunch of pushback they dealt with that, you know, in a in a way that allowed that to eclipse that problem
spk_0 Yeah, and I think it is still like people talk about the hallucinations and the incorrectness
spk_0 I mean, I think it's not fully solved but like you said that's not
spk_0 Meaning it isn't beneficial. We just have to learn
spk_0 You know, I think the same to your point you kind of say
spk_0 Uh, take almost anything we have today. Oh a car like a car is dangerous like cars are gonna kill people
spk_0 They're gonna drive fast and it's like yeah, that's true um
spk_0 But like there are still benefits there are still other things, you know, we have to learn
spk_0 Collectively individually how to like be responsible with the use of of tools and
spk_0 Yeah, I think to always with the new things there's a debate about like usefulness versus
spk_0 Danger I guess and you just say we're scathing you can always hyper fixate
spk_0 Have anything we do has sort of danger right going outside and exercising people I someone told me oh, you know
spk_0 You exercise you can have a heart attack like people say often when you exercise you you like you can cause a heart attack
spk_0 And it's like
spk_0 But by ex like but also by exercising you are lowering other issues that lower their probability of having a heart attack so like
spk_0 You know
spk_0 So your solution is like sit inside don't go outside don't exercise don't move like it
spk_0 You're gonna you're gonna die from that for sure, you know, and so yeah, these balances can be really difficult to find
spk_0 Okay, wow, we took that in a different direction, but only well
spk_0 I guess it segway is nicely to my last news, which I won't dwell on because we're we spend a lot of time talking about news
spk_0 But it's basically an interview with Peter teal and there's a lot of content there, but the thing that I took away that was really interesting was
spk_0 You know one point the interviewer says why AI? Why is there so much focus on AI?
spk_0 And I expected some kind of answer like unlimited productivity or you know wages can go to
spk_0 You know the price of oil or something, right, but but actually what he said was um
spk_0 It's the only thing like AI is like the only like really exciting thing out there and uh
spk_0 That that was pretty mind-blowing. It's like
spk_0 Is that you know if that's true like why aren't there more exciting things and maybe like
spk_0 I do feel like there is
spk_0 Attendancy for everyone to kind of chase one thing at a time like remember when
spk_0 Car play and android auto and just like getting
spk_0 Getting stuff in the car was such a big deal and all the companies were copying each other
spk_0 And and now we're kind of seeing that with AI and it's like we just for some reason in society we get like just fixated on one thing at a time
spk_0 Um
spk_0 But but I thought that was really interesting
spk_0 Um, I wonder if
spk_0 If this is like a recent he's he's trying to make it sound like this is a recent thing
spk_0 But I wonder if we've just always just been fixated on one thing
spk_0 Interesting
spk_0 I think the
spk_0 In a similar being what I've heard a bit as well like the focus the drive towards it from
spk_0 For on variety of facets is
spk_0 It feels close to something like akin to an escape velocity
spk_0 So like getting into a post-scarcity world way you can get whatever level of like engagement you want with it
spk_0 But basically if we can develop in somebody can develop an AI system that becomes sort of super intelligent
spk_0 And then you can assign it to the task of improving the AI systems somebody will will basically like break past
spk_0 The barrier right get into orbit whatever reach escape velocity
spk_0 And then they it'll be like winner take all and so you see a press from country level from
spk_0 Company level as almost an existential risk because if some other company does that
spk_0 Then they will have a system which can basically build any system and so search you know chat
spk_0 Image and like we'll just get one by somebody who can
spk_0 Basically devote all of the you know computational power they have to just building all of the other competitors
spk_0 Stuff and then those competitors will only have whatever resources remain from their sort of war chest
spk_0 To spend to to also get there or they'll just be drained of you know financial inputs
spk_0 And so maybe it's a bit the same it's like the only interesting thing but like there is also this
spk_0 Maybe it's like focusing on the danger part you were saying it's like there's this focus that if you could get to this
spk_0 Sort of recursive AI that improves itself then
spk_0 That will be so transformational that whoever if someone gets there first like before everyone else by enough of a margin
spk_0 That the like everything changes
spk_0 Yeah, it's interesting. I wonder
spk_0 Wonder to what degree that's true
spk_0 um
spk_0 You know, I feel like
spk_0 It
spk_0 Yeah, it's that's a that's a really interesting perspective. I think that people
spk_0 I think that okay, even if the AI can do general things
spk_0 When you go to evaluate it you're going to evaluate it on your specific thing that you care about and so
spk_0 In that sense like that part is not going to scale
spk_0 um
spk_0 But but maybe we can get the evaluation to be
spk_0 Somehow like it okay in our case, you know, the earth is our evaluator, you know
spk_0 It's like it's like we went out and we hunted the tiger and one person
spk_0 You know got the tiger and the other person didn't that second person goes hungry
spk_0 And so we have the planet earth is our as as early man's evaluator
spk_0 um
spk_0 But you know, now we have to have synthetic evaluators for synthetic problems. I wonder if that
spk_0 Maybe that's like the next big job title, you know AI agent evaluator
spk_0 It's like the new data scientist or something. I mean there yeah people are talking about
spk_0 In the similar vein, I guess moving to completely synthetic input instead of using sort of the Wikipedia
spk_0 The x tweets
spk_0 Well x x is right in what they're called anyways
spk_0 The leagus x yeah the x is the x x. Oh
spk_0 The x is on x. Yeah, I don't know the the reddit post, you know
spk_0 Basically instead of all of the corpus is just not enough like can you move equivalent to alpha go, you know moving from
spk_0 the
spk_0 You know recorded games of go to just self-evaluation like can we shift that and like what happens if you
spk_0 invent basically like a parallel
spk_0 universe of input and train on that and like what does that unlock or or enable
spk_0 Yeah, so he uses a robot example
spk_0 um
spk_0 You know can the robot effectively know if it if it when it goes to take your your uh trash can to the curb
spk_0 Can it effectively? Can it know is high accuracy whether it did a good job or not
spk_0 You know, I mean, I guess it could take a picture of
spk_0 You know your your trash can on the curb, but like
spk_0 It's the robot did a bad job. Maybe it also does a bad job of knowing if that picture is correct
spk_0 You're like maybe what if it dumps your trash out on the in the driveway and then takes a picture of that
spk_0 Is like I did a great job, you know, so it's like it's like it's just kind of you have you've sort of moved the problem
spk_0 And they still have a problem
spk_0 But maybe that is actually gonna and that's the self-driving thing you were kind of alluding to car stuff like
spk_0 It's a bit difficult fitting in current systems, but I mean, I think maybe the
spk_0 It what about if you think about the whole solution so the the job well done is
spk_0 did the trash end up in the dump?
spk_0 And that's did the robot system take the can to the curb did the garbage truck robot pick up was it able to successfully pick up without like so maybe the
spk_0 garbage can knows the mass of the trash that was in it and the mass that comes out at the end and if that ratio
spk_0 You know is less than one you get a bad score if it's over one you get a bad score
spk_0 It needs to be exactly the mass in is the mass out at the end
spk_0 Maybe you have to account for evaporation or something, but like yeah
spk_0 And then actually it becomes this end-to-end measure and you have to attribute
spk_0 Talk like you can improve the garbage truck you can improve the like roller outers you can you know whatever it
spk_0 And it
spk_0 tries to iterate collectively so for a while
spk_0 We just to end up with like giant dump trucks that back up to your house and try to like
spk_0 Go into your garage door and extra you know, so you just crazy stuff
spk_0 Yeah, yeah, I think I think that's kind of where we're stuck now is is we're using human even you know open AI all these companies are using people
spk_0 to evaluate the models and
spk_0 um
spk_0 And and that's where we have to get beyond it the models need to be evaluated by the earth somehow by the environment
spk_0 But I don't have a counter to what else is super interesting right now for everyone to focus on so I can't disagree with the thesis from yeah
spk_0 I mean either you know that's that's what made it so fascinating like if I could point to like oh
spk_0 You know gig economy is still a thing or something then you know, but there really isn't anything else
spk_0 Just kind of while I was like VR. I mean VR is dead maybe AR
spk_0 Potential yeah, it'd be cool. Yeah, space travel, but like it feels high barrier to entry
spk_0 Yeah, you know space travel I have a hard time getting excited about space
spk_0 Um, I don't know why it just doesn't really like
spk_0 It doesn't sit doesn't it doesn't excite me for some reason unless there's like gold on the moon. I just don't know about it
spk_0 Well, maybe I can only be excited about one thing and that's AI. Maybe it's a meat problem
spk_0 What about AI in space? Oh, mine is blown Dyson's your program to power AI. I can't get back into that
spk_0 All right, all right time for a book at the show all right
spk_0 I will confession corner. I have not had a ton of time to read recently. Oh, I I have not made a lot of time to read recently
spk_0 So I went back into my
spk_0 history of books and I'm gonna give a shout out to
spk_0 The Hobbit if you have not read the habit if you've not sort of
spk_0 Dove
spk_0 Jumped into the Lord of the ring
spk_0 Delved dived. Yes, it's belonged
spk_0 If you've not
spk_0 If you've not picked up your hammer and gone with the door
spk_0 Door foods to mine and okay, I'm gonna stop because someone's gonna call him out. I mean you haven't gone to Moria
spk_0 That's what I was gonna say, but I was like I'm gonna I'm gonna use it wrong because like I don't remember which ones the one that had the problem
spk_0 anyways
spk_0 The Hobbit is a sort of good entry into the world of
spk_0 Um the Lord of the Rings of JR token. Obviously a classic hobbit is I will say like a pretty easy self relatively self-contained
spk_0 contained read
spk_0 So definitely worth picking up if you've if you've never done. I do think there's a lot of folks and disagree who kind of said this
spk_0 It's JR are our token sort of set up a lot of the
spk_0 Arch type archetypes that we have today of
spk_0 Sort of dwarves elves humans and like some of their characteristics people complain those tropes are overplayed today
spk_0 But if you read modern fantasy
spk_0 There's a lot of built up stuff that you can kind of trace back um to the origins
spk_0 And I think it is a good story. I think sometimes
spk_0 People will say you know like for me the first time I watched the three stooches as like
spk_0 I didn't find it that funny. I'm like I seen these sticks before
spk_0 But it's like yeah, but when they did it
spk_0 It was like they were the people like they invented it
spk_0 But other people took it on I think the Hobbit to me doesn't really
spk_0 I don't know how to like suffer the same thing like you can read it
spk_0 And it is still good even though other people have continued to like pick up
spk_0 And sort of run with those concepts like it itself is still a sort of fun and exciting read
spk_0 Yeah, totally. I think if I remember correctly it's been a long time since I read it, but there is a ton of world building
spk_0 and um
spk_0 And it because it's older it does go at a slower pace. I feel like uh, you know, we're such dopamine fiends in the 21st century that like
spk_0 It's uh, it feels like
spk_0 um
spk_0 But like we just can't have something it goes as slow pace which if you've ever seen like old movies from the 50s or even like space
spk_0 Odyssey, you know, these kind of movies they go it's such a slower pace. It kind of blows your mind
spk_0 It's kind of the pace is cropped up over time. It's like a boiling water frog type of thing
spk_0 But um, so it is going to be a slower pace and a lot of world building
spk_0 But if you stick through it to the end
spk_0 I think it's a phenomenal book and it leads you into all the other Tolkien books
spk_0 Yeah, I've always heard it like called prequel to the Lord of the Rings
spk_0 But it was written before the Lord of the Rings so it's I don't think it technically qualifies as a
spk_0 As a prequel like it was the book written and then Lord of the Rings was written after so I don't know what you call that but it does
spk_0 The story contained does proceed the rest of the story of the Lord of the Rings which is even a larger tomb
spk_0 Even I think actually a little slower a lot more world building
spk_0 But Hobbit is definitely shorter. I think it's even considered kind of a kid's book
spk_0 But you know don't let us carry off if you're an adult, but it should be a pretty quick read
spk_0 Yeah, totally all right my book of the show is even more of a cop out
spk_0 It's it's what I've been doing instead of reading which is maybe a shame
spk_0 But it's in it's a New York Times game. So this is an app a lot of the games are free
spk_0 You can subscribe to get at access to the crossword puzzle the the famous crossword puzzle of your
spk_0 Times and some other stuff but um
spk_0 Um, but it's very fun. It's a simple app. It works offline
spk_0 So if you're off the grid you could still use it. I think
spk_0 I think it's something we're like after a couple of days. It'll stop working
spk_0 But if you go off the grid for you know an afternoon or something, it's fine
spk_0 And uh, it just kind of keeps your keep your mind go. He's got wordle the famous wordle
spk_0 But it's also got you know a few other ones and it's a nice kind of thing to help you kind of build your
spk_0 Vocabulary and literature skills
spk_0 Um, it's uh, if you want to kind of continue sharpen that axe. So
spk_0 I did see something that wordle
spk_0 We'll have to end in 2027. Did you see this? They're gonna run out of words
spk_0 Yeah, so basically they have like a dictionary of 2,300 words. They're on like whatever in the mid-thousands
spk_0 And so like in 2027 they'll they'll run out of like words and then people are going out
spk_0 Yeah, but they could just expand the dictionary sort of change the rules
spk_0 It's only like under their current rules have
spk_0 Not allowed to repeat words
spk_0 And stick to the words in that in that sort of like word list
spk_0 But yeah, I guess in its current form it has a finite number of like puzzles to have from its sort of dictionary
spk_0 Man, it's like we thought why 2k was fake, but it's real. It's just coming in 27
spk_0 World's gonna end what's gonna happen. They'll have to release wordle v2. They'll have to add an extra letter
spk_0 Yeah, that's right
spk_0 Oh
spk_0 Let it it'll be wordle light. They'll take away a letter and then world the luxe will add a letter
spk_0 And each one of this is a micro transaction
spk_0 Oh, man. Oh, okay, or two dollars you can have a wordle that is not expired. I'm terrible at word game
spk_0 So I thank you for this pick. I won't be picking it up
spk_0 Ha
spk_0 You can you I'll do it in space. How about that that way we both get it?
spk_0 We're all making him furious. I just don't got the answer. It makes me feel dumb
spk_0 Like I can't even get good guesses to keep progressing like I know I have I just purposely make bad guesses
spk_0 Just to try to get more clues and it's like I know I should be able to form a I can't and then I just like rage quit
spk_0 Oh, man. I have to confess or admit I am a wordle god. I am actually so good a world
spk_0 I actually sent one to my wife the other day where it was like the first word only had one letter is out of place
spk_0 And then the second word I picked had no letters
spk_0 So all I had to go on after two words was one letter that was out of place
spk_0 And I still got it on the third try because I just eliminated so many vowels and and other
spk_0 Things that like there's only one thing left. I got on my first try. I looked up what the answer was
spk_0 Yeah
spk_0 Yeah, take that
spk_0 Remember for a while scrabble was really big words with friends or whatever and
spk_0 I'm sure that cheat
spk_0 Yeah, I used to play oh man. I played so much
spk_0 So many games of words with friends, but you're right. It had to be with friends. You couldn't play an
spk_0 Anonymously you just get wrecked by a person who's cheating
spk_0 All right, or that's not fine. Oh man
spk_0 All right, and if you want to
spk_0 Support our New York Times addictions or our trips to space please
spk_0 Give us some money on patreon. I'm just kidding actually none of that money actually goes to us
spk_0 We put all of it back into the show. We've literally haven't taken a dime of it
spk_0 But we have used it to do advertising and reach out and get guests and and all of that good stuff
spk_0 So so if you like the show if you want the show to reach more people
spk_0 Please support us on patreon. It's not
spk_0 Technically a non-profit, but it is a nonprofit. We go and put all that money back into supporting the podcast
spk_0 All right time for tool of the show. All right. What's your tool of show Patrick? It's a game shocker um
spk_0 Escape Academy. I look I I thought for sure. I must have shouted out this game like on the show before and I if I did
spk_0 One, I don't care because it's worth it to I searched through all of our show notes and website
spk_0 I couldn't find it
spk_0 So I don't care. I'm double down on it doubling down on it escape academy is a great game
spk_0 It's about playing a
spk_0 Escape room with a story
spk_0 narrative about being in an academy that
spk_0 Challenges you to solve puzzles and like you know has a
spk_0 Kind of life or death set up situation about problems, but
spk_0 In reality, it's just like a really good
spk_0 well-paced you know escape rooms can be
spk_0 For me there's something I've done before and it's just like
spk_0 Really like how is I supposed to know you just need to like randomly kick around until you you know find this thing or like
spk_0 The path to progress is not obvious
spk_0 I don't like this sort of just search around and find that's not my you know cup of
spk_0 Yeah, I was talking about this with a friend of mine about
spk_0 At my cousin when we were nine years old he made a choose your own adventure game in basic on our Commodore 64
spk_0 And it was like you're in a town
spk_0 There's a bank and you can also walk down the road
spk_0 Which do you want to do so it shows you know walk down the road?
spk_0 It's like you meet a guy you die
spk_0 Do you know that's like okay?
spk_0 So like whenever you make one of these you know point and click adventures choose your own adventures
spk_0 Like you have to like
spk_0 Somehow like very subtly
spk_0 Into the person what the right answer is but it has to be subtle enough that when they pick the right answer
spk_0 It's satisfying and it's like I feel like there's an art forum to that that's you have never made one of those
spk_0 But it feels actually a lot more complicated than you think
spk_0 I'm sure it is and I'll say for me
spk_0 The subtlety of the answer can be problematic
spk_0 But even just understanding like what the puzzle is so like in your example like making sure that it's clear that
spk_0 There's some bit of information you should figure out to make the choice
spk_0 If you just presented as a like trivial choice and I make the choice and then like I'll game over
spk_0 It's like that that's just I'll just quit like I don't want to play like this not that's not fun
spk_0 And I would I did play one the other day where there was like a hidden number like you know sort of in very faint
spk_0 Sort of color that you were supposed to see but I didn't see it and then I just kept bumping my head against the wall
spk_0 I asked for a hint using the hint I was able to solve a puzzle
spk_0 I wasn't supposed to be able to solve yet and then I bypass like a third of the thing and I'm like
spk_0 That I only found out at the end when it's like oh you were supposed to do that and I'm like
spk_0 But I missed a very subtle clue
spk_0 The game didn't help me and like a bypassed a bunch of it because I was able to kind of like brute force a problem
spk_0 I wasn't supposed to solve
spk_0 Because it was the obvious puzzle and I just assumed it was what I needed so I asked for a hint and it gave me okay
spk_0 All that aside escape academy isn't really like that. It does have a good hint system
spk_0 It's reasonably easy to play through if you're really expert at you're probably like oh
spk_0 This is this is really easy, but it is fun. It has a cooperative mode. It's just really cool. So for me
spk_0 Oh interesting kids and they got really into like getting out the piece of paper to like you know sort of solve some of the problems or write down the notes or you know figure out
spk_0 It doesn't require a ton of that
spk_0 But there is a little bit of it um and some word play and stuff, but there's overall I loved it. I it's
spk_0 I probably the only game where I've like
spk_0 paid for the DLCs and like played all the DLCs like
spk_0 Wow, I don't think any other game. I always I hate DLCs like yes and can't express how much I hate them
spk_0 But I just probably the only game I've ever like paid for DLC like played it and feel like I've gotten my money's money's worth and like
spk_0 Absolutely would have done it again. Oh, that is amazing. I'm gonna have to try this out
spk_0 You've had some amazing game recommendations like I I never finished Dave the diver, but I really enjoyed my time with Dave
spk_0 and uh, yeah
spk_0 But you know the first half of the game is amazing like I feel I feel like I'm super satisfied
spk_0 I don't think I really need to see the ending. Yeah, I kind of the same
spk_0 And escape academy is available on like steam. I think you know, it's on switch. I think it's on Xbox as well
spk_0 So most of the the sort of gaming platforms and it's not super expensive because it's been out for a while
spk_0 Very cool. All right my tool of the show and this might start to become more of a trend
spk_0 But it's basically using AI like using LLM
spk_0 So I'm putting a link to chat GBT, but you can use really any of them
spk_0 But it's multimodal so for folks. I know that just means you know combining several modalities such as text
spk_0 Audio visual, etc
spk_0 multimodal LLM's to make calendar meetings. So
spk_0 for example, uh, you know my kids do typewondo
spk_0 And I'm always forgetting like what times because they have different times or different ages and all that
spk_0 I literally just took a picture of the typewondo schedule
spk_0 And I said create me a calendar. There's this thing called an ICS file
spk_0 I guess the C is for calendar. I don't know, but but it's a file that you can then when you open it
spk_0 It creates a calendar meeting. So I said like create an ICS file that has like a recurring meeting
spk_0 For me at these times like I have one kid who's this age, one kid is this age and so fine
spk_0 You know from the picture find the times that I have to be at typewondo with them and create an ICS file done
spk_0 Done like now in my calendar every whatever day there's there's meetings for that and on Saturday and everything
spk_0 um, you know one of my kids does
spk_0 uh
spk_0 He's like a
spk_0 Vocalist right and so he does a bunch of like choir shows
spk_0 So I took a picture of that schedule. I'm like just put on my calendar all the choir shows from this grade done and that has like
spk_0 In amazing like just taking pictures of things. I took a picture of
spk_0 of um, I guess I'm getting off topic a little bit, but I took a picture of my trees in the backyard
spk_0 Now I was like are these trees healthy?
spk_0 Uh, you know what type of tree are they what should I do to make them healthier and it gave me a really solid advice
spk_0 um, the whole thing is amazing
spk_0 but uh, but but uh, especially the calendar thing I talked to a few friends about this and they had never thought to do that
spk_0 And so I figured it'd be a good thing to talk about on the show because it helps so much
spk_0 Yeah, I um, I think this is one of those cases. I was tempted to bring up an example where I tried doing this and it didn't work very well
spk_0 But have you done it recently? Yes. Oh, okay. Oh, that's okay
spk_0 It was a bit bit more complicated than what you were saying, but I think that
spk_0 I won't take that that bait and when instead I'll say is what do you have to lose like if these ICS files suck or like they just delete it
spk_0 like yeah like the bar is really loud like if it screws up
spk_0 To fall back is what you wasted what maybe three four minutes like trying to like prompt it to give you what you want
spk_0 And then like it didn't work. I'll get you to go back to doing it by hand anyways. Yeah, so I feel like
spk_0 I have been trying to encourage uh, like people I work with whatever
spk_0 The bar isn't and I think you alluded to this earlier the bar for AI isn't the magic everyone with how I gotta be 10x better
spk_0 100x is gonna replace all the engine no like can you be 10% better?
spk_0 Can you find a way or a place or a set of things it can do to make you 10% better
spk_0 5% better 1% better like
spk_0 Can you enable you to do something when you win?
spk_0 Otherwise do it right like I think into your point there
spk_0 A lot of the barriers is trying it like just just try it like who cares
spk_0 I mean it's not like that stuff's private like it's a
spk_0 Taekwondo schedule is probably on their website like yeah, there's no privacy concern there either so like
spk_0 In my opinion, otherwise, I guess maybe it knows where you are so it can send Uber food to you or breads food
spk_0 Just like like advertising hey, we know you're at Taekwondo would you like french fries?
spk_0 Um, oh man, it sounds delicious. This is getting better and better
spk_0 Um, I think that you know, this is another thing I've done kind of also of topic but related is um
spk_0 I actually put in a loop. I said find python files that don't have a corresponding test underscore file
spk_0 and create a test for them and then
spk_0 verify like that the test pass and
spk_0 uh, I actually ran that in a loop
spk_0 So like it just it just kept doing that and I just let it go for for hours
spk_0 And when I was done it created like 80,000 lines of tests. I should probably more than that um
spk_0 And it's just like that's amazing like these are all 10 now. I'm gonna have to go through them today and a lot of them
spk_0 You know might be crap, but some of them aren't right and like you said
spk_0 It's these are things like I wouldn't have done um, you know because I still have time
spk_0 But if if the AI goes and does it I can check the work
spk_0 And uh, that's easier than doing all the work
spk_0 Um, and then eventually we'll get this evaluation problem fixed. I won't have to do that either
spk_0 So are you saying it helped you asynchronously right to the test?
spk_0 Yeah, that's right. Yeah, I had a I had a global lock on my time
spk_0 It's called family and while I was locked it went off and
spk_0 So what would you say is the uh what and why of asynchronous computing? No, I'm just getting we're transitioning into our main topic
spk_0 All right, so here's the reason why uh, I've decided I reached out to Patrick to cover this topic
spk_0 Because I've been asking this in interviews
spk_0 Um, we uh, we were looking for one more person to add to the team. I think we found them
spk_0 Um, but um, but I was asking
spk_0 Um, this kind of question like what's what's asynchronous what's multi-threading and very few people
spk_0 New the answer which is really surprised me so um, so I thought hey, this is a good topic for us to cover um
spk_0 I like to think of it and this is a term I kind of made up but uh, I think it kind of sums up pretty well
spk_0 A synchronous programming is multi-threading between the lines. So in other words
spk_0 um, you know, you're writing lines of code and
spk_0 One of only one of your lines can really be executed at a time
spk_0 But in between the lines there might be areas where you can do multi-threading so for example
spk_0 um, you might have a line that says
spk_0 um, download this image off the internet and so
spk_0 So
spk_0 The system can only read and understand that line sequentially
spk_0 It can't do other things while it's doing that
spk_0 But then the part that actually does the reading over the internet and waits for those packets to come from across the world
spk_0 That actually could be done kind of off to the side
spk_0 Um, and so you're doing multi-threading in between the lines. You don't have to worry about
spk_0 About semaphores and and and mutex isn't all that stuff
spk_0 Because of this constraint instead makes your life easier
spk_0 Um, and so
spk_0 You get kind of the benefit because really like when you want to it depends on the problem you're trying to solve but but for web applications
spk_0 For example, what you really want is
spk_0 To not be waiting on the internet and if you're not waiting on the internet
spk_0 then
spk_0 You're pretty close to optimal for your
spk_0 You know web service because usually you're waiting on the internet to get your request, you know complete
spk_0 Waiting on the internet to send that request to or intranet maybe to send that request to some database
spk_0 You know waiting for that database to come back
spk_0 And so if you eliminate all that waiting you don't also need
spk_0 To do a lot of multi-processing you don't necessarily need to do a lot of instructions at the same time
spk_0 um
spk_0 So that's that's kind of the big motivation for for async and so
spk_0 um
spk_0 You need a couple of like core building blocks to do asynchronous programming so
spk_0 You need thread local memory. So in that example I gave um
spk_0 Where you know, you're waiting to get some data
spk_0 um, you know over over the internet that data needs a place to go that you know no
spk_0 other
spk_0 Routines can access that that data. So for example
spk_0 um, you know, one way it's done in in go is through something called go routines and so go routine
spk_0 Is not like a new process on your OS. It's not like a whole new process
spk_0 But it just kind of keeps track of the state of
spk_0 Execution in this code and it also has some thread local or routine local memory. So
spk_0 um
spk_0 So if you say something like you know, I want to
spk_0 um
spk_0 You know download this packet of data from the internet and then I want to store it in this variable
spk_0 You know, it has a place to go that it knows is kind of protected
spk_0 And then while it's doing that protected operation, you know, reading from the internet to some protected thread local memory
spk_0 It can kind of say other threads can do other things
spk_0 Other threads can be reading other things from the internet or they could be doing arithmetic or whatever because I know
spk_0 Then none of those other threads can affect this this operation that I'm doing right here
spk_0 And so because I know there's no side effects. I can now let those other things go and and so you could have
spk_0 100 routines all downloading things from the internet at the same time
spk_0 Even if your program is is single threaded
spk_0 um
spk_0 So
spk_0 So you'll hear about like blocking versus non blocking operations and that basically means
spk_0 um, you know a blocking operation is one where
spk_0 You know, they're it's not kind of releasing that lock so if you just say
spk_0 Imagine you have two
spk_0 Kind of routines and both of them are just running a for loop
spk_0 And they're just adding to really large arrays. Airwise, right?
spk_0
spk_0 Well, those are blocking operations. So it's going to happen is the first routine is going to run
spk_0 And it's going to do that entire for loop and that second routine is just going to have to wait
spk_0 And then when the first routine is completely done then
spk_0 um, then it'll finish and the second routine will will do its for loop
spk_0 And so you haven't achieved really any parallelism, right?
spk_0 But now take that same scenario
spk_0 But instead of just adding things in a for loop you're going to have a for loop that's downloading from the internet
spk_0 Well that that operation that download from the internet operation has been built to be non blocking
spk_0 and so
spk_0 um, in the case of let's say like type script
spk_0 Where it's single threaded you know, you have a way of telling the type script or the java script of VM
spk_0 Like hey, I'm about to do something now that is isolated that's non blocking and so you know other routines can go into work
spk_0 While this routine is just frozen on this operation
spk_0 And then once you've downloaded what you needed from the internet
spk_0 Then you go back to the virtual machine and say hey, I'm ready
spk_0 You know, I'm ready to block and take this take this take six take some time
spk_0 And it when it gives you that that time back then you can go and copy that information into that variable and all of that
spk_0 um in the case of python
spk_0 um, python actually
spk_0 Uh has
spk_0 co-routines and threads and so what that means is
spk_0 You can actually have multi threading in python where um you have several different threads, you know, accessing memory at the same time um
spk_0 Um
spk_0 But there is a global interpreter lock so um here's here's a good way of thinking about it
spk_0 In the case of let's say type script if if you're inside a type script function
spk_0 You kind of have to wait until there's a non blocking call so the example I gave it the for loop you're just stuck right
spk_0 Um in the case of python it would be a little different if you're using threads what would happen is
spk_0 Um, the first thread would do part of the for loop and then it would release
spk_0 And then the second thread will do part of the for loop and then release and they'll just kind of you know checker board this
spk_0 And so it's not the first one goes to a completion. There's sort of this you know striping effect
spk_0 Now it might take the same amount of time in the end as the type script version
spk_0 But but you know they're both making progress at the same time
spk_0 versus type script is single threaded
spk_0 And the way python achieves this is through a mutex
spk_0 So this is called the global interpreter lock or gill and it basically says
spk_0 You know you can have many threads that are all sharing
spk_0 um
spk_0 You know your your your VM but only one of them can execute at a time
spk_0 So here's if you wanted to accomplish the same thing with type script
spk_0 Imagine the for loop example I gave with type script so you have a for loop goes from one to
spk_0 10 million adds these arrays together
spk_0 um, but after every
spk_0 iteration of the for loop you put a yield
spk_0 So yield is a special keyword in asynchronous programming yield basically says
spk_0 I just want to give up my time slice like I'm not done yet
spk_0 But I feel like the right thing to do is to give up my spot and let another thread do some work
spk_0 And so as a programmer you might have various reasons for doing this right
spk_0 So imagine if your for loop said you know for you know a one to 10 million
spk_0 Take these two arrays and add the that element together and then yield
spk_0 So now you're going to get that striping right
spk_0 So now the first process will yield the second one will be able to do one iteration of the for loop
spk_0 And then it will yield back to the first one
spk_0 And so
spk_0 You know it the python multi-threading is the equivalent of like having a yield after every operation
spk_0 Um, uh, and so you know the gill kind of enforces all of that
spk_0 That kind of uh
spk_0 What do you think Patrick any any holes in that that we could cover?
spk_0 I think
spk_0 For me my introduction is probably like a bit different
spk_0 But I think it parallels
spk_0 So I don't think it's contrary to what you're saying
spk_0 But I for me it was um and you kind of bump into this if you ever do like Arduino programming but like embedded programming
spk_0 And there
spk_0 Sometimes the mapping is actually really weird from something like python to something like
spk_0 For I think c++ and an embedded micro controller because it just sort of like different paradigms like networking is
spk_0 Well now it's more common when I was doing it was it was very rare that you would you know kind of do networking related stuff in in these contexts
spk_0 Um, and there we would talk about like interrups
spk_0 And so the idea is if you imagine
spk_0 Like a microcontroller wants to talk to a sensor
spk_0 That sensor it communicates over something called i squared c
spk_0 All it is is like a set of wires and voltages that move up or down in a certain pattern to send data from
spk_0 Like your piece of silicon to like another piece of silicon glued to your like thing with wires or on a printed circuit board
spk_0 Or something else and so you want to measure let's say temperature of the room
spk_0 Um, and you want to record this and
spk_0 sort of the
spk_0 Way that it used to kind of always be done was something called bit banging and so bit banging would be hey
spk_0 I'm a microcontroller. I need to read this so I'm going to set up an i squared c library in code
spk_0 That says move the voltage on this wire from low to high
spk_0 Wait this amount of time where a weight is go into a loop that is like a certain number of instructions long
spk_0 time to be like the right
spk_0 amount of wall clock time based on the like rate of the processor
spk_0 So it's just sitting there doing like no op instructions
spk_0 But it's running the instructions. It's using all of the power of the full CPU
spk_0 Which has like all sorts of peripherals on it
spk_0 So it's sort of consuming the most and you sort of like go high for a certain amount of time
spk_0 Then you go low and you're moving along the sort of data to be sent out to ask for a temperature reading
spk_0 Then you have to wait and then it starts coming back in but you can imagine like
spk_0 Thousands tens of thousands of like no op cycles waiting for like the voltage to move up and down due to
spk_0 Capacitance and the rise rate and like the data transmission
spk_0 So the CPU is really bored
spk_0 But it's sitting there doing nothing right and so this is the equivalent of like polling or
spk_0 Single threaded and you're doing all of the work in one context
spk_0 Then people realize well, we have more sophisticated silly can why don't we make like
spk_0 A sort of finite state machine and accelerator like another like set of transistors where
spk_0 You you sort of said it's thread local memory the equivalent here is we have to call it a register
spk_0 So you have a set of registers and you could like write into them. Hey, I want to send out this data stream
spk_0 Um, and then you would say go
spk_0 And what you could do then is put the CPU into a low power state like go to sleep
spk_0 And then you're going to save power right and then or you could go do other processing if you had it
spk_0 But saving power is also really really important in a lot of these contexts
spk_0 What's going to happen is the little bit of circuitry is going to like send the thing out
spk_0 It's going to wait for it to come back and then it's going to interrupt and you're going to have a little function
spk_0 That is mapped to say when this
spk_0 Thing is done
spk_0 It's going to call the instruction that you've loaded into this register
spk_0 So the instruction there needs to be jump to a function that you wrote
spk_0 And then that function when it runs is going to push the current thread the current running CPU thing into the stack
spk_0 It's going to allow you to run some piece of code and that code could be
spk_0 Copy the data out of the registers into a set spot in memory or into a queue or
spk_0 Just handle like write it into
spk_0 Write it into the you know flash memory, but that could take a long time
spk_0 So maybe you don't want to do it and you can imagine as you're handling
spk_0 10 15 20 sort of like peripherals all coming in at different rates
spk_0 doing all of that and sort of making sure that none of it gets dropped becomes harder and harder if you
spk_0 Don't sort of have some mechanism that allows the sort of distributed handling to kind of happen
spk_0 And so the asynchronous context maps pretty cleanly to what you're saying
spk_0 You're sending some data to the network and saying hey, I need you to transmit this
spk_0 It's going all the way across the world. It's coming all the way back
spk_0 And you can sit there and wait for it and that's called blocking but under the hood
spk_0 The blocking is still just basically sitting there. Are you done? Are you done? Are you done? Are you done? Are you done?
spk_0 It's not doing any work. It's not bit banging anymore
spk_0 It's just waiting on the other little processor
spk_0 To do all the work and so I think as you kind of pointed out there's like this clear mapping about blocking versus non-blocking
spk_0 I think the
spk_0 Rest of the conversation becomes an abit what you're you're kind of getting into is like there are kind of two ways to
spk_0 Handle it one is sort of in line in the code
spk_0 I want to ask for something to happen and while it's happening
spk_0 That
spk_0 Set of consciousness that execution is just kind of paused there and maybe other stuff can run
spk_0 And then when it's done, I'm going to pick back up and that is one method
spk_0 The other method if you think about like interrupt as a form of like a callback
spk_0 You could just have like almost a dag
spk_0 Which is I'm going to ask for something to occur
spk_0 I'm going to transfer control to that thing
spk_0 When that thing's done it's going to call the next stage. Oh, sorry deck directed a cyclic graph
spk_0 So it's just a pipeline
spk_0 And so you call to the send networking and when the networking is done
spk_0 It's going to call some function
spk_0 But that function is completely different part of the code
spk_0 But it's responsible and it has enough context to say
spk_0 And maybe you even pass a little bit of context. Hey, I'm getting a response
spk_0 And when I get a response is what I do
spk_0 So if you think like a graphical user interface and I say type in my text to my friend and I click send
spk_0 And then I don't need like control to return really when my friend sends a response back
spk_0 That code just needs to know to write it to the screen like write it into the next line of the message conversation
spk_0 And so you can kind of have this feed forward and so you don't really return back to the same point of control
spk_0 And there are these kind of
spk_0 And they can be mixed but these kind of two paradigms where you
spk_0 Well, I guess there's a third one but like there's this sort of block and wait
spk_0 And then control returns there and that can be blocking or a synchronous for allowing for cooperation
spk_0 You can have this like feed forward sort of dagger approach and then the vinyl med that is like
spk_0 Kind of just spoiler will get to it in a minute
spk_0 But like the the sort of future promise where you're getting some
spk_0 State back that somebody else is filling it and you're going to go check on it later
spk_0 You're going to go ask later
spk_0 Hey, was that done yet or wait for it to be done or something else
spk_0 I think that's like a little bit of like a different handling
spk_0 So there are these kind of different methods but under the hood they're all really the same thing
spk_0 They're just how the programmer wants to relate to that work
spk_0 And how how you want to set up and what other kinds of systems things in your system
spk_0 And if you have nothing else to do letting it sleep can be a really good answer in some context
spk_0 But in other contexts you have other background processing or other things that need to be handled
spk_0 And so depending on the paradigm of your program you'll kind of choose a different asynchronous behavior
spk_0 Yeah, yeah, that makes sense. I mean, I'm reminded of and I should have made this a news article
spk_0 But but if you
spk_0 You read like the history of engine X so engine X it's spelled
spk_0 ng
spk_0 i n x
spk_0 But basically it's
spk_0 The super fast, you know web handler web service handler and it does routing proxy et cetera
spk_0 Um, and when engine X was invented or we know was was initially being developed the best thing that that was out there
spk_0 Or for doing web stuff was something kind of like tomcat
spk_0 You know tomcat is a Java thing. There was other it's written other languages
spk_0 But the way these these things would work is
spk_0 You know when you started tomcat it would spin up like let's say eight processes like OS level processes on your computer
spk_0 And it's like okay here's your eight
spk_0 Processes and and then the main process when it sees there's a new web request
spk_0 It would just send it to one of those eight or or all eight of them would listen
spk_0 I'm not sure at that point what exactly happens there
spk_0 But basically one of those eight, you know receives a web request
spk_0 Handles it which might include like going to the database and doing other stuff. Maybe it's a
spk_0 It's over i2c. It's like talking to a temperature sensor or something and then responds with the response
spk_0 but
spk_0 Because you had eight processes you could only do eight things at a time
spk_0 And it could be that all eight of those are waiting on the database
spk_0 And you really could add a ninth one or a tenth one without affecting that computer's load because it's it's they're all idle right
spk_0 And so engine X was pretty revolutionary in that they basically said okay
spk_0 We're going to create the same eight processes or we're going to use asynchronous programming and so
spk_0 um
spk_0 um, oh and so you know
spk_0 if if uh
spk_0 If if one of these, you know eight processes is waiting on a database then that same process can go and like fetch another web request
spk_0 While it's waiting on the database and so you could actually have you know eight processes handling
spk_0 A thousand web requests at the same time instead of eight at the same time and this like blue everybody's mind
spk_0 uh like i remember uh
spk_0 We're using tomcat on something this is like a 2003-ish and um
spk_0 uh, yeah and and
spk_0 Just yeah constantly running into issues with quality of service where you know we'd get um
spk_0 I was working at a online school and so registration day there'd be a ton of people hitting the site and they would inevitably bring it down and
spk_0 Um, and so you had this machine that was mostly idle, but then also just blocking everyone's requests so so engine X was it was amazing
spk_0 Um, the the thing about it is if you were to do this yourself like what Patrick was saying you know if you were to
spk_0 you know
spk_0 To to try to implement this asynchronous thing yourself what you would have to do is and i'm going to use
spk_0 The pire level terms is probably doesn't work in our do you know you could you could help translate
spk_0 You basically have to say
spk_0 Okay, what things am I doing right now? Okay, I'm doing these eight things
spk_0 Okay, can I sort of peek at each of these eight things to see if one of them is ready. Oh the sixth one is ready
spk_0 Okay, you know execute that function
spk_0 Uh, oh now like that function got a little bit further, but now it's blocked again
spk_0 Okay, put it back on the list and so you could imagine like what a nightmare that would be to have to code up
spk_0 You know for every application. So
spk_0 So so in this case like that whole nightmare of just peeking at a zillion different things all the time and finding the one that's
spk_0 Available and doing it like someone else has implemented that nightmare for you
spk_0 So that you can just kind of work at at a higher level
spk_0 Okay, there's a bunch there. That was really good. So I think to be clear. This is all a bit
spk_0 How do you like recursive fractal? I so the operating system is doing kind of what you're saying
spk_0 So it has a scheduler modern commuters normally like a preemptive like scheduler which means exactly that you have some thread running
spk_0 That gets stucker is not or is laps its time and the operating system will like suspend it and run a different thread in order to like time share
spk_0 Um and and sort of hopefully some of them are just doing like busy loops polling for something and you're getting a win
spk_0 but there is like some
spk_0 Like you're it's not magic. None of this stuff is magic. So everyone who always it's kind of one of those two sides of the coin
spk_0 In some cases it sure seems like magic
spk_0 But in other cases you're like I don't get it. It like there's still only one CPU and yeah, you're right
spk_0 There is really only one CPU
spk_0 So in like your database example
spk_0 It let's say you have sort of like the database is local on disk and you really are kind of bottled like let's say you're already maxing out the like hard drive ram transmit speed from your CPU
spk_0 Whether you have one eight nine ten a hundred like database jobs queued up
spk_0 You're not gaining any more throughput by like
spk_0 Knowing that you have a hundred jobs or knowing that you have eight jobs like there's nothing more to do
spk_0 Mm-hmm the trick comes in that that isn't
spk_0 Normally the case. It's not that every job coming in needs the database some jobs
spk_0 You will already have a cached answer
spk_0 It just wants to say what is the list in your example of like you know registration?
spk_0 It's like what is the list of all classes?
spk_0 Well, you could have numinized you could have cached that like you know the list from five seconds ago of all possible classes
spk_0 You don't know their current state
spk_0 But you know all the things and so some requests can be quickly turned back around so that the server feels more responsive
spk_0 And so while you're waiting on the hard drive ram to transmit database responses
spk_0 You're sort of getting these things back and the question
spk_0 It comes a little bit on like the scale. Are you running?
spk_0 Are you the only thing running in the operating system or are other things running?
spk_0 Are do you have other threads running? Do you have like
spk_0 There is still a sort of like fundamental limit to how much stuff can happen and going to an asynchronous solution isn't to cure all
spk_0 But it is one of these cases as you're you're pointing out often
spk_0 We can know more about the problem than the generic operating system solution would give you and so letting eight OS threads handle something
spk_0 Isn't going to be optimal if we know that the work is very heterogeneous because if we are having
spk_0 One in ten come in that needs a database
spk_0 But it takes a long time to get a database response
spk_0 Then as soon as you have the few queued up everybody else even that doesn't need the database is stuck waiting
spk_0 If you sort of have this sort of asynchronous thing that you're mentioning
spk_0 You can just burn through the entire queue of everybody who doesn't need the database
spk_0 People who need the database may still get a failure
spk_0 Right like you know they may still have a timeout but overall your metrics are better
spk_0 The responsiveness feels better and you're you can kind of guarantee your maximizing the proper throughput
spk_0 Yeah, yeah, totally. I mean this is also like
spk_0 There's a dynamic app player which is like throughput versus latency. So imagine oh, yeah, okay good
spk_0 Yeah, like imagine like the connection imagine like the database is like a giant sewer pipe
spk_0 But the water can only go you know one meter a second and so
spk_0 You know you you could put like a ton of
spk_0 Of water through but it can only go throughout a certain rate
spk_0 And so that's where yeah having like a zillion connections the database actually a little better because you're just hiding all of that latency
spk_0 But but you're right you with asynchronous programming you do run into a lot of problems
spk_0 around
spk_0 You know now you can do a thousand things
spk_0 But that also means that
spk_0 Potentially there's a thousand things that are in a bad state or or if there's a bottle neck further down in the chain
spk_0 Then now all those thousand things are sort of fighting for
spk_0 For resources. So even in asynchronous solutions like if you look at um uh fast API for example
spk_0 Even though it's asynchronous and you could handle a thousand requests on one thread if you wanted to
spk_0 Even there you would specify a limit. So you typically would say something like
spk_0 If I have I'm just going to make up a number if I have 32
spk_0 requests simultaneously on this machine and a 33rd comes in I'm just going to reject it and return a HTTP 503
spk_0 And then my client will call again and hopefully get a different machine because
spk_0 Even though the machine might not even be very busy
spk_0 You just don't want to be in a weird situation where
spk_0 There's a thousand things that aren't getting done
spk_0 Because that's usually a sign that something else is wrong. So so asynchronous to your point it's not a free lunch like you do have to
spk_0 You know now that you've been given this power you do a fuser responsibly
spk_0 Yeah, you bring up a good thing those like an interplay here we didn't have an in notes but like
spk_0 Q management and there's like stacked up cues everywhere
spk_0 So as you're going to mention you're going to have like a load balancer and the load balancer will have like a little bit of a cue
spk_0 It's sending stuff if you just consume a thousand things even though you can't handle them
spk_0 Some other server may have finished everything it's doing and you're just like holding those thousand waiting for
spk_0 expiration basically and
spk_0 In reality, I just said if you returned an error code after a certain amount it'll just run back to the load balancer
spk_0 and hopefully get assigned to a machine
spk_0 That like isn't having an issue or isn't overloaded or whatever and those have their own cues
spk_0 So there's like this very interesting whole system dynamic the other thing about asynchronous program although it is like
spk_0 Important to know about and be aware of is you do have to just like multi-threading you do have to be concerned about
spk_0 Like race conditions datey data safety issues depending on what all is happening, right?
spk_0 So you can imagine I send a network request and then I have an update from the user or I want to do something different
spk_0 I've changed my state
spk_0 I send the new networking request that I kind of want to supersede
spk_0 But the old one comes back and I think it's an answer to you know
spk_0 I mean like you have to manage that wait a minute like I have to be really careful
spk_0 I'm doing more than one thing at a time and so you can end up with all of the traditional
spk_0 Things you would hear about related to sort of thread safety being careful making sure that you know
spk_0 You're aware of whether the data structures like cues and other things you're using are multi-thread safe
spk_0 Even if you're only doing async stuff because you can end up in these weird situations where out of sequence stuff is occurring or overrides or
spk_0 You just can be aware that
spk_0 It does add a lot more complexity to the system
spk_0 But there is a lot of gains to be made in in many situations
spk_0 Yeah, totally and this is really what separates
spk_0 Kind of like masters of their craft from apprentices
spk_0 You know, it's like all of the lessons learned
spk_0 Around oh, you know, we got burned this way or that way or we
spk_0 You know the database kind of like fell over because we weren't monitoring it and what it really comes down to
spk_0 um
spk_0 is
spk_0 Just setting up a ton of monitoring
spk_0 and constantly tweaking the knobs, you know, it's if if um
spk_0 If the machine is like mostly idle
spk_0 Then maybe you can handle more processes, but um you have processes are getting backed up. Why are they getting backed up?
spk_0 And so there isn't a
spk_0 Like a there isn't a system you're going to build
spk_0 That that has concurrency that's going to work perfectly for the first time and forever
spk_0 You know as as the load profile of changes
spk_0 Um, you'll have to adapt to it and it becomes kind of a living system
spk_0 Um, this is this is pretty unavoidable. So async, you know helps with
spk_0 you know
spk_0 All of the mistakes that come from multi-process, you know async, you know, you can eliminate a lot of those as
spk_0 As candidates like if we were doing our if we were basically building async ourselves
spk_0 We'd have to wonder oh did I get the process pool correctly? Am I
spk_0 releasing the semifore at the right time and so because of async you don't have to worry about that
spk_0 But the consequences you still have to deal with
spk_0 You bring about a really a point actually. I think if you're going to go to this
spk_0 Approach so there are some like UI frameworks. I feel are much more
spk_0 commonly written in an async at the framework level
spk_0 Because you want to make sure that the user interface stays responsive
spk_0 So you shouldn't ever do anything blocking and so they're actually really set up from the start to
spk_0 be asynchronous
spk_0 But people who write that well, I should say a lot of people I work don't write you guys
spk_0 They're not actually even familiar with that as you pointed out if you ask them about it
spk_0 They wouldn't really be aware of like the nuances of these tradeoffs and the decisions and the complexities and
spk_0 measuring and all of the parameter like having reasonable parameters and monitoring whether or not like they're set well
spk_0 Would just be stuff not present so it is really weird like on the one hand
spk_0 It's common enough that you would sort of say like it's in every UI framework to have like asynchronous stuff
spk_0 What do you mean like people don't know what it is?
spk_0 But it's like this very weird division of practitioners where sort of like I think there are a whole classes of people who go a very long career without really getting into any of it
spk_0 Yeah, yeah totally
spk_0 Which is why you need to subscribe to programming throwdown
spk_0 It's a perfect segue
spk_0 To to our outro. I mean we you know, I feel like we gave a pretty good background
spk_0 um
spk_0 I think you know the sort of maybe the call to action here is really learn async programming. I mean if you
spk_0 um if you're doing UI stuff you pretty much have to I think it's at the point now where
spk_0 I think android and iOS if you try to do a network request on the main thread it'll just like give you a error like a run time error
spk_0 um
spk_0 It just literally will not let you use the main thread to do non blocking stuff
spk_0 Um, so it's a non starter
spk_0 But but even if you're doing anything with distributed anything with queue processing
spk_0 You'll have to you'll encounter this in some way shape or form so so if this is all new definitely dive in
spk_0 This is an area that's worth learning um, I think with
spk_0 with um
spk_0 You know, I think with AI and agents and and all of these things it's going to become even more important
spk_0 You know an agent might
spk_0 Send a text message and wait to get a response from somebody
spk_0 And it can't just block the machine while it's doing that right you want you want to run like 10 000 agents on one machine
spk_0 So uh so super important area um, I think that
spk_0 Um, it's definitely something it's worth researching and
spk_0 um
spk_0 If you have any questions you could always go on discord the discord channel is is uh hitting more engagement
spk_0 I always try to reply to uh to stuff on there um to check us out on discord so just an email and
spk_0 Is a great cover in this
spk_0 Yep, thank you everyone all right catch you all later
spk_0 you
spk_0 Music by Eric barn dollar
spk_0 Programming throwdown is distributed under a creative commons attribution share alike 2.0 license
spk_0 You're free to share copy distribute transmit the work to remix adapt the work
spk_0 But you must provide a attribution
spk_0 uh to uh Patrick and I and uh share alike in kind