Oh my god! We've got a Code 19 already, guys! Welcome to Jurassic World! Oh, also, yes, we've got pro-copter, so hello everyone, welcome to Jurassic World the Game! Yes, not the first bit, yes, this is the one that gets the intro. Okay, so we have a Code 19, somebody in the dinosaur park has come down with the pandemic, and it is Red Bull himself! Also, guys, just want to mention that there is a competition going on in the Discord to design the banner for our Discord, the Game and Beaver Corner. So if you do want to be... well, want to enter, it does need to be digital art. You can find the dimensions and everything in the Discord, it'll be on the channel on the left, somewhere on the left. You also do need to be 13 or over to be part of the Discord. That's just part of Discord's rules and all that jazz. All about safety, you know. So, yeah, I just thought I'd let you guys know on here just in case. But we have a lot to go over in this episode there is being... Oh, Jesus, did you see that? Well, that's a pro-play there, James. That's a big brain. Big brain. Okay, have we got another one? I can still hear it. Oh, we have another one! Here we go! Oh, T-Rex herself is wanting to break out. No! We got this, guys, we got this. We can contain Rexy herself. Come on, I can do it. I swear, it'll be good. So, yeah, there is a new hybrid in the game. There's also Procopterdon. I finally saw... Are you kidding me? How does that even work? I clicked it and it went, nah!  I wonder if it thought that I took my finger off it. I didn't. But maybe I need to clean my iPad, maybe. I don't think so. It looks clean, but... I've had that in the past, like, on that one in particular where I click it and it goes, nah, fail. And I thought to myself, oh, maybe I... Maybe what I did was start at the wrong end, but I definitely didn't that time. I know that for a start. Okay, well, that's that done. Great. Oh! And we're all good to go. So, before we get into anything extra, let's go into coins. And let's just get some good hybrids. And let's collect our coin again. Just to make sure that we get the most out of our money. And go to here and what do we get? Oh, a Pryon, so just... This is all free DNA, by the way. Coin and Jurassic again, and an Oster Fracassaurus. Every day. Every day I can get three legendaries. Oh, it's awesome. I love that. Please don't break it, Ludi. I know what you like! God! Oh! Upgrade for 50 and speed up. Oh, I didn't realize it was going to take books to upgrade, but I guess, fair enough. We were also... I don't know if it's gone now. The Juggernaut was here. Oh, not Juggernaut. Sorry. Omega. Oh, nine was here. Is it still here? No, it's gone! Oh, we missed it. I was going to do it for the video. Anyway, we've got plenty to do anyway. So we have the Jurassic Park Week event. Now we've got the Jurassic World defeat nine opponents to win the Jurassic World pack, which gives us only resources. Alright, fair enough. Is there anything extra? So now I faced up against Procopterdon, and oh my God, I never realized how tiny the thing is. It's... and now... We did things on an accurate size in this game. We know that. We know like... It's just the Jurassic Park Builder as well. Jurassic World, the game they didn't bother. These are like solid. Nobody cared about Jurassic Park Builder. Procopterdon is the size of our mouse in comparison to our mammoth. It's ridiculous. So we are going to spend 50,000. The most expensive pack, I think, for VIP points is this. This is only for VIPs. I never wanted to spend this. But here we are, would you believe? So Procopterdon, I got 4,500 bucks, which you know what isn't bad at all. That is a good amount of bucks. Procopterdon, and how many VIP... Yeah, VIP points do we get back? We get back 3,900, which really doesn't reimburse us. And we can save with another one. Should we? Should we? I mean, we save... Ah, my leg! 7,500, right? And then plus the 3,000. So we're saving 10,000. And there is no way to get Procopterdon without buying another pack for 50,000. So we could have one for level 10 for the rest of this game's life, because I'm not going to buy another one for 50, or we could just buy this now and get at least a level 20. And I think even a level 20, it's probably going to be worth it. So you know what? 42,000, there you have another one. Didn't get as lucky this time. So in total that is 6,000 bucks we've got, plus 15,000 DNA. So the DNA is pretty decent as well. It's just a shame that it's so expensive, but we do get the same amount. So we did save like 10,000 on that. So there's another 3,000. And there you have it! Wow, so would you get in a solid gold plus pack? Okay.  Bollocks! But it is 35,000, so yeah. It's really not too much cheaper. So actually if you do want a Procopterdon that is probably the best way to get it. So what I'm doing still is just it's crazy this takes a week, it's crazy! I'm still just rattling through the tournament creatures. Once they're out of the way I can finally start working towards getting rid of my surplus of dinosaurs. Because you know me guys. I mean look, these are commons, right? Look at the amount, 30, 30 in 1920. Rez, still up to 30. Super Rez, 13, 13, 5, 5, 13, 40, 15, 21, 18, 18, 35 of those.  It's just as about 8, 3, 19 Sarcosuchus, 10 Sionosaurus. Like I have so much, 23 there is! I have so many dinosaurs. Just so much DNA just sat there doing nothing. I'm wondering if it's, if I, what I could do instead of getting books or sorry, buying more from the trades is just selling them. So maybe I could trade like a dinosaur for DNA and maybe that would be better, that could be worth it. So if I have a chance, I'd rather do that. Just get rid of it. If I can sell a dinosaur for DNA, I'll do it. Maybe I'll make a little bit of a loss, but I don't care, dear. No, no, no. So, not only, but we all going to have to speed up, actually we don't have to actually. Or maybe, yes we do, we do. So we are going to spend some books and some DNA to get the new hybrid that was added to the game. That is another level 10 monostegatops. We could make another level 20. We could make a level 40 monostegatops and that would be so good. Should we get a level 40? That's what we're going to do this episode. This episode we're going to get a level 40 monostegatops. Now, this will be our first ever super hybrid level 40. Because I don't think, I definitely don't have Indoraptor. I don't have the Diplosuchus. Monostegatops is going to be the only level 40, I think. I don't think there's anything else. I could be wrong, but here we go. There's a level 20. Already, you can look at the stats. Oh God, look at the stats of level 20. 4,000 health and 1,277 attack. So, I use this guy all the time. It's not necessarily in the highest leagues. I use it like if it's, you know, where I'm facing up against level 40 Pritrodons. I would use this though, against it. Level 30, definitely. But at level 40, I'm definitely going to use it all the time. 100% all the time. And because eventually down the line, we're going to be getting what you call it. We're going to be getting the building that allows us to speed up creatures. It's a probability I'll be using it for this guy. So here we go. Level 40 monostegatops. Oh my God, yes. It has taken so long, so long to get this guy, but we're finally close. I don't believe it. There you go. Boom. Level 40 collect. So, 5,000 health, 1,588 attack. That's only level 31. And at level 40, 6,033 health and 1,885 attack. And look at the colors and the horse. Oh my God, it's gorgeous. I love it. Wow, yeah, that's cool. You're the New York Super Red Bull is what you are. Damn, damn. So, I mean, the stats aren't too different. If you compare a level 20 to a level 40, but it makes a difference overall and the fact that it's only super. If the stat change was for an interrupter this much, which it is, it's not worth it. Especially when I use interrupter at level 10 all the time. You know, it's got 2,000 attack at level 10. It's crazy. So, we may as well collect the final one, which is 80 free books and 1,500 free DNA, as well as like 1,822,000 food. Modest egg tops is heavily armored and can inflict serious damage with its powerful charging attack. Well, there you have it. It's a dangerous something to be trifled with. No, not to eat it. Don't eat it. So, if we look at our roster, that's only commons. Is it this one? Nope, there are only amphibians. Do I have any battle work? Yes, here we go. So, where is it? Where does it stack? Like, these are all like, legendary tournament hybrids or super legendary hybrids up here. Where does it stack? There. Look at that. Better than a VIP, or just a legendary hybrid level 40. Better than that. In terms of health? No, not in terms of attack, but it's like 100 less, if that. Really flippin' good. And look, I mean, look, when you consider a level 10 Indoraptor is on par in stats, basically, with Modest egg tops level 40, it says everything. So, with that said, we've done that. It frees us up to get the new hybrid. So, if we look, I have, apparently, 14 dinosaurs in total I don't have in the park at all. I haven't created. So, we haven't done the... I missed out on, I think, these two. I don't know if the crocodile's been done yet, but I missed out on the deer, Euclidoceros. I missed out on that, but the Tapigella Salad. Tapigella Salad! That thing. I am getting close. I'm 100 off. But everything else I have made and fused, and that's why it doesn't no longer exists. But we still have Procopterdon. So, we'll have a look at Procopterdon because Procopterdon will be pretty easy to get. It's a VIP creature. It'll be in the hatchery two seconds. So, we could just speed that up. So, here it is. Procopterdon. 100 books. Really nothing when you compare it to Arkanthostega, whatever that thing is, which is 1,500 books. And it's nowhere on par with Procopterdon. Are you ready? Oh, it looks pretty sizable, doesn't it? It doesn't look too bad. It's got them child bear nips. But look at it. Oh, it's great. Let's see the animation. Skipping the... Ooh. Yum, yum, yum, yum, yum. Oh, look at that. No little cheeky camera cuts to hide animation. Well done, Lydia. Oh, scratch it on. It's so cute. We've got level 10. Almost 1,000. But look at the attack. 506 at level 10. Remember, it's never worth keeping something level 10 because level 20, all you need is one more and you get so much bang for your book. So with that in mind, we do have one extra. So we're going to go back into the hatchery and we're going to spend another 100 books on that guy. Also, I forgot to see what kind of type it is. Oh, it's a savannah. Okay, then. Not bad at all. So we'll get you to back up there and a level 20, unfortunately. But look at it. It looks big, right? I mean, it looked big in the thing. It looked big in... Even when it's in the test tubes, it looks big. But when it's in battle, it is the smallest thing ever. Totemo... What is it? Totemo... Chisu desu? Totemo chisu desu, although it's very small. Very, very small. And I think that's to do with the app trying to save space. So you've got these really detailed models, but the actual model itself is tiny. So it takes up less space in the app. So here we go. Level 20, 867 attack and 1665 health. So it gets like an extra 300 attack? Yeah, not a great deal of health, but 300 attack. Two attacks? That's like, what? 800 damage in just doing two attacks extra. That's crazy. So ProCoptodon... ProCoptodon lived in Australia. Would you believe it? Lived in down under? During the police you've seen surviving until about 50,000 years ago. How crazy is that? 50... It's not that long when you think about... I mean, it is long, but it's not really in the grand scheme of how long the world's been around. One type of ProCoptodon, P. Golia, stood up to 8 to 10 feet meters tall, making it the largest kangaroo to ever live. I mean, 8 to 10 foot.  And that's just for a kangaroo. Imagine how powerful those legs are. Good God. He could tear you in two with a kick. So, that is still... We are 50 minutes into the video, guys, and we have still not seen everything that is in this game that has had to offer. I do want to check this to see if any of this is at all worth it. No. These lotteries of... I mean, if you want to watch videos for free and then maybe spend coins on these, it's probably worth it. But as me making a video, I don't have time to watch it. I can't be bothered to edit. You kidding me? So, we have another thing to do. And if I remember right, it's the Leedsicty. So, the Lea... I was going to say, the most newest... Oh my God. Most newest. Is that a word, James? Most newest? Just the newest. The newest aquatic creature in the game has a hybrid, which is crazy because it came out like a week ago and then it got a hybrid straight away. So, we need to evolve it to get to level 40. So, we need to buy seven more. Oh. Unlocked via special event. What? What do you mean unlock by special event? Didn't I unlock it by a special event? Or did I bought it? Oh. Okay. Never mind. I can't make it. And something else has caught it. Ah, something else has caught code 19. I bet my video is going to be demonetized now. Dammit, Lydia. You can spy it against me, AJ. Oh, you don't break it out. Oh God. Okay. We're not getting too much DNA for this, though. It's like the strongest set. It's like the second strongest dinosaur in the entire game. And I'm not getting much DNA for it at all. Okay. Say, look, that worked that time. Come on. Don't fail me now. Don't fail me now. You don't having such a good time. It's having a ball.  All right. Come on. Getting some good free DNA here, though. That's not bad. And finally the bottom one. He did it. Taking 225 DNA, too. Two, 390. Wow, look at that. Perfect containment. And getting one-tenth closer now to the hybrid that we do not have. So with all of our new creatures, we do have Quetzacoatlis. Quetzacoatl. So let's get the common one. The common one's pretty easy. We'll just put in these guys. That's easy-peasy. But I do want to take on the unlimited battle to try and get the common pack.  As hard as they have been. Like, I've seen battles in just the regular, like, some sort of a battle event which are super tough. So unfortunately we are- Oh, wait. There's a triceratops? Whoops. Well, even still, it's only got 105 attack. Bless it. And I can kill it in three hits. So as long as it attacks, oh, well, you know what? I might as well, get a block for two. We're still going to do damage. And it didn't. Fantastic. It makes my job easier. That's for sure. Okay. So we've got two more battles. And Haiyungasaurus kills that in one hit. And then I think I can kill Hatsucoperix in one hit. I need to make this level 40. And I saw somebody say that I needed to make a hybrid or level something up. That's it. It's the Smilodon hybrid in the glacier. That's apparently really good. So I need to level that guy up. And hopefully we're against fires this time. And I'm just putting the Labyrinth dinosaur. Yep. There it is. And there we go. One hit right off the bat. And I'm pretty sure Yutoraptor dies in two hits. Woosh. You know what? This event is probably the best in the game because it's super easy. It's basically free food, which you're going to use anyway. And it's free VIP points as well. So did he block? Oh, he did block for one. Oh, you buggy. You still died one more hit, though. So it made no difference.  Woo-hoo-hoo. I'm just... Guys, I'm a pro at this game. I've been playing...  Is that a title? You know what? I'm still going for speedrun. I'm still going for the speedrun there. For unlocking everything. Can you speedrun this game? That'd be amazing. I want to type that into like speedrunners.net or whatever it is. Jurassic World the game? What? There's no speedrun for it?  So we're still getting closer to unlocking Megalosaurus. Right. So we have to welcome Jurassic World. So this is only defeat nine opponents, right? It can't be that hard. So let's put in dinosaurs that, you know, we don't see too often. Like Zalmonodon. That's a good one. Glyphonex. And what else is that we don't see too often? That's around about this area. Let's see. Sopranotide? A concavenator. Let's see. Now it can't be too tough, right? Yeah, look at that. You've even got the type of advantage and I kill him in one hit. Fantastic. Now hopefully it doesn't get too hard. This is the Jurassic World event. So assuming that we're going to face up against everything that's in Jurassic World, ending with Indominus Rex. So that was a triceratops. We've got Galamimus. So I'm assuming that we'll see well, a conator. We'll see Baryonix. We'll see Apadasaur. We'll see T-Rex. And Kylosaur. Yep. Maybe Parasaur as well. I mean there's so many dinosaurs. Is there anything else in Jurassic World that we might see that's in this? Brachiosaurus? No. That was in Jurassic World. Although it was retconned in for Jurassic World Fallen Kingdom. And then one million percent Deloffasaur will be retconned in for the final movie. One million percent. I mean if Colin Travaro can retcon an entire bit of the park like the lagoon to go into the because it was landlocked and then they were like there goes into the ocean. They can definitely retcon Deloffasaurus. They could definitely do that. Okay. They did have the hologram for Deloffasaurus so technically it was like why would you have a hologram of a Deloffasaurus if it wasn't even there in the park. So I'd assume it is there just we're finally going to have like the the hoot of it in the movie and everyone's going to go hey there it is coming it's coming and I mean I get it. I get it. I just wish that it wasn't this like finally here it is. It's kind of like the Rupur sound effect like I'm pretty sure everyone will be psyched to see it. I know I will be but it's like come on it hasn't appeared in any movie since the first one and yet it's had a toy in like every dinosaur toy line. Lost World it existed Jurassic Park 3 it existed in between it I think it existed Mattels, oh sorry Hasbro, Jurassic World line it existed and eventually Mattel got it they made it Deloffasaurus as well so they cannot stop making it. I mean what other dinosaurs had an impact on the franchise that big that it hasn't appeared in any of the movies except for the first one has had toy line in everything and gave loads of people nightmares it has to be Deloffasaurus it's the icon actually it's better than the T-Rex because everybody knows what it is but it has only been in one movie Wow that is a that is a legacy like to leave behind okay so we did get the power we did get the power ooh Winnie's cooking food downstairs ooh I can smell that smells gorgeous ooh ooh oh no there's no no in Deloffasrax oh okay I thought we'd finish with like a level 10 in Deloffasrax or something but oh and oh the queen takes out Glyphonix and in comes Concaveinator who made the appearance in Fallen Kingdom would you believe that just went on Netflix so if you do have Netflix it should be I mean it's on UK Netflix I don't know if it's in America it might be in America but yeah I watched Fallen Kingdom again for the first time in like three years um and it's alright like I have no strong opinions to it I don't hate it I don't love it it's alright there was one thing that I noticed and we'll do the same again we'll just put in like low level creatures if it's gonna be the same is it? oh it's oh it's hard oh no okay yeah Deloffasaurus did not feature in the movie except for Oliver whatever speaking of Deloffasaurus yeah there was one point right and I think the problem I have is Chris Pratt's character Owen Grady in Fallen Kingdom for example I want him to have a motion so badly like he he's stuck outside the gyrosphere and a carnitaurus is facing him down and he shows about like 10% of an emotion he's like got his mouth open looking at like oh and then the Brachiosaurus dies in front of him his emotion mmm just like looking down like oh there's like so many scenes where he can have so much more emotion like it's like they I mean Chris Pratt is a he's a superstar right he's an actor like a I don't know what you call it I guess yeah there was a certain term and I was like if an actor has that term they just play themselves like Jeff Goldblum's a star he always plays Jeff Goldblum mostly in fact actually in Fallen Kingdom he didn't really play himself too much he did have like a little bit of a I mean if you compare him to Thor like that Thor movie what was it Ragnarok that's just Jeff having fun and that's just Jeff being himself where his email comes like a little he does actually act a little bit I noticed that and wow we're there at the end we're already here and a Patasaur's the finale not not in Dominus Rex a Patasaur yeah and I want because Chris Pratt's character Owen Grady is a watered down star lord star lord is funny he's charismatic he's stupid and he's a lovable oaf and he like Poxum Wreck Chris Pratt lovable oaf in Andross at World he's like he's a lot he's kind of a lovable oaf but not really he's kind of a badass and it's like he's stuck in this weird realm of like I'm you know I'm Chris Pratt but I'm not really I'm kind of a badass but I'm lovable like oaf but I'm not really I don't really emote you know kind of thing and he's got this backstory with blue and he should care about blue and all you see is you see him watch this video and this he doesn't emote anything he's like oh yeah I forgot about this yeah I do care about it oh god Chris give us a maybe it's the direction maybe it's the character he's been told to play but I think that's the reason why I just don't relate too much and as far as Clare Deering I'm not too much of a fan of Bryce I think she's an alright actor but I'm I'm I'm alright I'm not too I'm not too fussed oh my god ooh it's going to be amphibians well this is going to be easy I thought I was going to have to use mono stego but oh tell you that though 5000 attack good lord yeah let's just put in those guys not goga sutures it's not too crazy because we are nerfing their attack saying that though I do need to go for a block oh my god whoa this is the toughest team oh my god go for two attack please thank you good lord okay now pro pro what's this guy called pro to pro to ro gra oh my god pro to pro to go greenius greenius I think that is okay whatever have you heard the story of Darth Studios right I'm just I mean presses you just got more attack oh and that's perfect I think we won but it's hard to say when we are facing opponents that tough so 2800 definitely kill it in three hits two hits oh two hits it does okay so I have to go for what I mean what's the attack on this thing three I have to go for three block I can't take one like two hits I can only take one barely look at that this is crazy numbers you expect me to do this whoa oh and he goes for four anyway Jesus okay one two three does kill him and three reserve Sonic and there we go with one that is so tough and pro to pro to a true don should have more attack oh no it doesn't ah well there you have it we've won oh my god thank you win oh that is lovely num nums I could smell it from downstairs don't how dare you like alright well we've won this one I'm just going to put that seven do you mind if I eat just have like a um num num num just turned into ASMR oh she's made me a lovely stir fry what is this asparagus broccoli egg noodles mince carrots oh my god it's gorgeous do you want a picture should I send you a picture where's my phone where's my phone oh okay well we'll end the episode here because I don't want to keep on eating while we're playing oh god I almost flew it out hit the fork I'm like coming woo hoo oh we've got a langersaw you know I have all the commons I could get I think you can get more maybe would if I can get all the commons I'd put a langersaw you know what that means I need to I need a maxim so what we'll do is we'll go into the hatchery oh god it's a rare next time fantastic um we'll go into hybrids and there he is and he shouldn't take too long 51 minutes yeah yeah um and look at that even more DNA getting close to another monostake getting close to another Indoraptor I don't know how this happens I end up um getting an Indoraptor and before I know I'm over a thousand again so yeah we'll leave it there we have done so much so many well not too many battles but we've done enough battles we've done a lot and we've seen so many new creatures the level 40 monostagatops unfortunately I didn't have a chance to use it yet but I mean look at that look at those stats for herbivore as well there's not too many like tanky and uh high attack herbivores apatosaur is the only VIP I think no uh is it VIP yeah I think it is hold on let me have a chat I think sticky mollock is well oh god oh you know what ok fine we'll end with a code 19 um because apatosaur it's got loads of health but because it's a herbivore uh carnivores don't carnivores are mainly attacks they have high attack so having I only got 5 DNA for this are you kidding me so only for um yeah a what was it called what was it gonna say yes apatosaur has high health but that means nothing when it's always facing up against carnivores which have high attack um I mean yeah I guess it makes sense if it's against a tranodon and it has loads of health and it nerfs tranodons or flyers attacks so yes but against its weakness it is it's like it's like in pokemon it's got a times 4 weakness too it's you know it's weakness it's like a dragon like a dragonite it's times 4 for ice weakness or it's like a garrados times 4 for electric weakness because it's flying and water type that's what apatosaurus it's horrible even against whatever it's not even like a garrados it's like an electric cop having a times 4 weakness it just isn't good it splashes around and does no damage to anything but anyway guys if you enjoyed this video leave a like and until next time I'll see you later or buh-bye


It's going to be good. It's going to be great. It's going to be great.  Come on, let's get the energy out. Well, this is not a broadcast. This is, you know. OK, here comes clappy time. Three, two, one. So, OK. So. Lists of things are pure clickbait, right? It works, doesn't it, when you say like your. Oh, you mean like the 10 things that you can do to be rich? Number four, well, blow your mind. Yeah, and like that stuff, I know it's clickbait, but it still works on me. I just can't stop myself. So I thought, I want to get in on that tasty, tasty click action. So this is 3.143 ways to synchronize across documents. I'm actually going to talk about six things, but. This is annoyingly far off of pie. Like, couldn't you have made it 3.141? Yeah, well, I don't know. No, I decided not to. Do you know what, I noticed the exact same thing as well. And that did bug me. And I thought. But also I like that you never use this font. You use, this is your clickbait font, I presume. Yeah, yeah. And it's the only time I'm going to be using in this presentation as well. So enjoy it. Good. Enjoy it right now. Yeah, I use some decimals because I'm not, all the things that I'm going to show, I'm not sure all of them count as one complete way. So I've, I've docked a few points here and there. So, OK. Well, when doing clickbait, at least do it fairly. Exactly. Yeah, I do have some principles, some. So be prepared for a shock. Did you know that you can have multiple tabs open to a page? Dun, dun, dun. I know. It's actually really annoying because whenever you write your service worker update code, that's the case that makes everything a lot harder. Yes. Well, not just that, it's also the overlap between one page refreshing. There's a kind of time when both pages are somewhat alive. Or certainly the request for the new page is going out while you're paid. Anyway, topic for another day. The thing I want to talk about is page state because, well, some state is in your page, but some application level state is across those tabs. Like login state, right? You log in and one tab, you would now be expected to be logged in and another tab. But quite frequently, a lot of sites don't do anything about this. No, I think barely any site. I don't think Google sites do that. Well, that's shame on them, I say. And this is worse for single page apps because in a multi-page app, your next navigation is going to pick it up, right? So. Yeah. But a single page app, it might be around a lot longer. So these differences in state are going to become more noticeable the longer two tabs are alive. There's also client-side state stuff. Like if you've got a dark mode toggle on your site, like is that per page or is that for your application? There's this. So you remember this when we built the demo website? We wrote this. I was really proud of this because this is the one thing I really wanted from any other global event. And so it's a time zone toggle, like tell me the times where I am or tell me the times where the event is. Because if you're going to the event, you want to know the San Francisco time. When do I have to get up? Exactly. And if you're watching at home, again, when do I have to get up? It's probably going to be a less sociable time. How long do I have to not go to sleep? Yes, that was mainly the difference. So yeah, in one tab, change the time zone because this is going to be used in multiple pages. You want it to be updated everywhere. So how do we do this kind of stuff? Did we do that? Yeah, yeah, I did. And I'll talk about the way I did it as well. Let's go through a number of different ways of doing stuff like this. Here's number one. There you go. Post message. Job done. That's one way of doing it. How do you know your other window? I guess the service one kind of is all the windows. That's correct. You don't know the other windows because the only way you'll get one of these is if you do window.open or if it's an iframe. So I'm going to have to dock a load of points for that. I'm afraid this is not a proper method, is it? It's an eighth of a method, apparently. Yeah, well, yeah. But also, it has some good parts. You can, the stuff you can transfer, it could be not just string data, not even just JSON data. It can be binary data, blobs. You can have circular references and your objects is a structure cloneable. So it supports all of that. Have you heard of comlink? Yes, and I'm sure comlink can help here as well. And I should say that this is the only method we're going to look at here that actually works cross-origin. So I'm actually going to give it some points back for that. So it has sort of specific use cases, but not, like you said, not generally useful like this. It's good at what it does specifically, but for keeping state across the whole app, it's just 0.248 other way. I would say I don't have time to go through the very complicated and scientific scoring system I'm going to be using here, but just trust me that it is... Just trust you that this is absolutely, deeply thought out and completely accurate. Absolutely, absolutely. If I did the same test again, the same numbers would come out. I've not just picked these out of my...    You picked them. All right, let's leave that behind. Next one. This is a vent source. So this is a persistent server connection. There's other ways of doing this. You could use Vetch. Vetch streams, have you heard of them? But that doesn't work in Edge, annoyingly. Well, old Edge, sorry, the old Edge engine. And there's WebSockets as well. And you need a server. That's, I mean, come on, this needs a server. And this needs a server. So, yeah, that's... Don't like it. Don't like it. Well, and do you know what you're right? Because if you've got eight tabs open, that's now eight connections you're keeping. And the same data being sent to you eight times. So I'm sorry, gonna have to dock some points for that. That's no good, is it? But it does mean you can communicate cross-device, which is pretty good. How do you know that the event sources are coming from the same client on the server side, reliably? Well, cookies. So using cookies you have state, you'll know the login. Fine. Yeah, I mean, sometimes you don't need that. I don't know, I find it really satisfying if I close an issue or merge an issue on GitHub, on my phone, and I see it happen on the screen as well. It's like, ooh, that's good. But that's public. Okay, I was still thinking in like the time zone thing, which is an inherently personal adjustment while something like an issue that's, quote unquote global state, so that makes sense. Yeah, okay, I'm with you. Yeah, so I'm actually gonna give it a few points back because it's useful for, you can do some smart cross-device stuff, but yeah, it's very specific. And yeah, it's a shame that we don't really have a way right now to sensibly de-jupe, like a connection. So if you're trying to do that, you've got eight tabs open, you kind of want one to be the main tab and then do a different method of communication to give that information to the other tabs. SharedWorker is a great way of doing this, but it's not well supported. I was waiting if I should, if I can bring up SharedWorker if you have it in here because that is the thing that I wanted to use for my actor model stuff as well, but it's so horribly, badly supported that it's just not a realistic option. I literally just thought of another thing you can use for this. The WebLocks API, you could have one thing set up a connection and create a WebLock and then the other tabs will wait on that WebLock to expire before they try and do it. I don't know, there's probably some race conditions in there. Anyway, anyway, I haven't thought about it properly, so I'm not gonna talk about it anymore for fear of embarrassing myself. Here's another one. This is like, when you change local storage or session storage, all the other windows, they get this event. I did not know this. I think this is really cool because you get the old valve, the new valve. You even get the URL of the page which made the change. Can local storage store objects? No, it can't. Just text data, so I'm gonna dock some points for that reason. But it's fine for small bits of data. You could also use it, I've done this before, use it as a signal just to say this thing's changed, even though the data is actually somewhere else, like indexedDB or cache API, I can use this a little. Yeah, I think this would have been useful for my actor model thing because what we ended up doing is using IDB and polling it, it's the word, polling, polling. Yeah, still, that's harsh, yeah. So one reason you might not have used it in your actor model is it only works in a window, not a worker, because local storage, right? So. Yeah, that would make it a non-starter. Yeah, exactly. So let's dock some more points for that. Although that hasn't been a problem in practice for me when I've used this in the past, this is actually how I did the time zone change because it was only ever reflected in a page. That makes all of sense to me. So I used it, yeah, and it was dead simple. If you're only dealing with dedicated workers, you could have the page here, this event, and then post-message the worker, whatever. True. But my main problem with this is it only alerts other windows to the changes, which is a little bit of a pain. So in this case, I've got another component on my page and it's listening for this event as well. But if the other component updates a value, my component's not gonna hear about it because it's only gonna tell other windows. Oh, it doesn't. You don't get an event on your own window. Okay. Exactly. Yeah, that's annoying. That is annoying. Yes, that's a problem. So yeah, I'm gonna dock some more points. I mean, it's still really useful, but I'm gonna say this is like 0.763 of a method due to, according to my calculations. Okay, let's keep going. Broadcast channel. Ah, love it. Love it. If it was real. Yes, it is real. This is real. You can use this today. Barely. It's, but one of the nice things about this is like, it's structured cloning, which is great. Works in workers, which is great. So, you know, all different kinds of objects and whatever. But also it will message other channels on the same page. It won't message itself, but it will message any other channels of the same names. You don't have that problem that I showed before. It just works around that, which is really nice. But, and I think you were slightly alluding to this. It's not supported in Safari, is it? It's not. And that's the only modern browser that doesn't support it. Chrome was late to the party with this. Like it was in Firefox for a while before it reached Chrome. But we've had it for a few years now. And this is like top of my list of things I really want in Safari. Yeah, anyway, anyway. I'm not over it, but we'll move past it for now. Service worker. So, this listens for events that are sent by the service worker to other clients. So, this works in workers, it's structured cloning again. A little bit more complicated because you have to do things manually when it comes to sending, so. Yeah, the service worker side is a bit convoluted as well. Yeah, so here I am post messaging to the service worker to say, hey, please broadcast this for me. And then the service worker is going to pick up that event and then broadcast it back. This is useful in the multi-component case as well because you get to decide whether it posts back to the same client. And I tend to, I always post back to the main client. In fact, I use that as my source of truth. Like one component will send the data to the service worker, but then it won't apply that data change until it hears back about it. And that works in a multi-component, like web components case, so. But that's preference, you get to do whatever you want. So that's one way of doing it. And I'm actually gonna leave that at one because that's my favorite method when I need all of those features. And the post message, sending something to the service worker will wake it up in case it's been killed and it will have always a correct and complete list of all the clients, right? Yes, yeah. When you call match clients, that's when it will go and get all of those. By default, it's only controlled clients, but there's an option to say, give me the uncontrolled ones as well. By default, it's only pages, but there's another option where you say, I know I want the workers as well. So that's kind of, yeah. That's all in your control and up to you. One last one. Here we go. Oh, look at this. This is, are they finally a thing? An IDB observer. Yes. So you create a callback and then you say what you want to observe. Works and workers. You get the complex type because it's all of the IDB stuff. It has everything. So you can just use your index TV as like the central store for your state and then just your components can listen for when the bit they care about actually changes. So it's a way for... And it's not supported. It's just an explainer. It's, I think there's a partial experimental implementation in Chrome, but like, and worse, this explainer hasn't been touched in 2017. Oh. There's a lot of years in web years. You got me hopeful there for a second. I know. I knew they were working on it and I was like, is it happening? Are they a thing? I just wanted to play with your emotions a bit there because it's better to say that we both really want this, right? This is how we want to build apps. We want to be able to store all the data in index TV and then use observers to, you know, so one component is like, I only care about this bit. I only care when this thing changes. So just let me, let me know. Yeah, imagine if you could put your redux state into IDB and have all the other components just subscribed to it via IDB observer. And if the page reloads, it doesn't matter, all the state is still there. It's like, it would be so many things I wanted to try if they are actually feasible. Actually, I would love to also have a session index TV store as well. So a way that you would say like, I want this, but just for this tab, and if this tab closes, I can get rid of the data. And that also means like, depends again, depends who you ask whether this is the spec behavior or not, session storage in some cases survives a tab crash. So tab crashes, reload, and you know, you've only lost whatever happened before your last commit to IDB, which is great as well, right? So yeah, I know I'm not, I'm ending on a sad, sad story. On a point zero, zero, five. That's all I've got. Hopefully one day we get this, but in the meantime, yeah, I think the service won't go away. Now I'm thinking, do your numbers actually add up to 3.145? I hope so. 3.143? I hope so, because I sort of panic added it up at the end, but it is entirely possible. I miss it. But you did at least add them up. If it was me, I probably would have just written math.random on every slide here. I definitely attempted to add them up, whether I got it right or not. Do you know what? I reckon we'll hear about that in the comments. Oh yeah, we will. And you will get told off if it's not correct. It's all I deserve. Just one second, because I'm really worried because my fan went off during that episode. So I just want to double check that everything actually recorded. I'm not, I don't have any error messages. And I have 17 minutes of recording. Yeah, yeah, yeah, yeah, it's all recorded. Thank Christ for that.


Welcome back everyone. In the news, Robinhood, a stock trading application, had a security breach and lost the records of almost 7 million people. In the security incident, they claimed that unauthorized party socially engineered a customer support employee by phone and obtained access to certain customer support systems. It appears like they detected the incident only after the suspect asked for payment. And you might be thinking, okay, big companies get hacked all the time. Why is this interesting? Well, one of the most interesting things I think about this case is that Robinhood is revealing that social engineering was used. Most people, in a case like this, would expect technical systems to be hacked or just not secured properly, but Robinhood is making the claim that social engineering was used as the first step in the overall attack. And this is extremely common. So I wanted to talk about this case specifically because many people tend to overlook social engineering and how common it is in different types of attacks. We're not always looking at the technical vulnerabilities, although there could be a lot of them, especially if a system is very well locked down. Social engineering is really a way that a lot of people get footholds into networks. And really, social engineering starts by taking advantage of the person that they're talking to. Now it could be through trying to befriend them, associate with them. We don't know exactly how this one happened, but maybe if they were getting access to a customer support system, the social engineer probably called in saying that they were a support technician that forgot their password and couldn't get access. It's not really surprising that this is one of the ways that an attacker got into the network. What is surprising is that more people don't detect it and claim that they were socially engineered. What to do specifically about this attack? If you have an account with Robinhood or really any organization that gets attacked like this, the first thing you want to do is change your password. If the attacker is still in the network, there's nothing you can really do about it. But as long as you're changing your password, that's pretty much the most you can do until the organization remediates the situation. Second is make sure that all websites that you use are using different passwords. So if Robinhood's password is leaked, then you can be sure that all of your other accounts are still really secure. The third thing that you need to do is enable two-factor authentication on all of your accounts. At least if that two-factor is enabled, then if your password was leaked, then the attacker will have a much harder time getting into your account and will focus usually on easier accounts to access. Change your password, make sure all websites use a different password and enable two-factor authentication on every website that you possibly can. What's next? You've gone through, you've changed your passwords and everything. What can you expect to happen if your information was used in this breach? Well, first, you can expect a lot more email spam. Because email addresses were what was leaked, they're probably going to be released in a list and spammers are going to get that list and you are going to receive a lot more spam. Second, people will try to use those emails with password lists to try to log into other financial websites. So if you are using the same email address and password on another financial website, make sure you change all of those passwords as well. Third, financial themed emails claiming to come from Robinhood or other similar financial websites will start coming into your email box. The attacker already knows that this list is from Robinhood and they know that your email is on it. So what an attacker is likely to do is craft an email that looks like it's coming from Robinhood, send it to you asking for account transaction information or something like that and then whenever you click on it, they either steal your credentials, try to get your second factor authentication or just maybe initiate a transfer. Be very careful about any emails that you're receiving, especially financial related emails and don't click on anything. Anything that comes in about financial transactions, do not click on that email, go to your browser, go to the website directly, log in and see if you have any information. Never click on emails from financial institutions. This was a really interesting case because like I said, it's about social engineering. A lot of cases start with social engineering. That's really the research part of the case is people going around and socially engineering as many people as they can to collect as much information as they can eventually get access to systems and organizations and then you can access a lot of user information. So it's an extremely common technique. I'm glad that Robinhood at least admitted that that was the initial stage of the attack and then we'll see if any any technical vulnerabilities come out as this investigation goes on. If you are subject to this attack or anything similar, make sure you are changing your passwords, enabling two factor authentication and then especially after your email has been leaked, monitor your emails coming in. Do not trust any emails that look like they're coming from financial institutions. They're more likely to be fraudulent. So everyone take care, be safe and keep an eye out for social engineers. Thank you very much.


Hello, everyone. Thanks for being here. Today, we'll be talking about how the work we're doing to bring AI to the edge by using WebAssembly and Onyx. And before starting, my name is Francisco Cabrera. I'm a technical program manager at the Azure agent platform team. For the past couple of years, I've been working on Kubernetes, Linux, and since I met Ralph, WebAssembly. And I'm Ralph Scolacci. I'm a program manager in the Azure core upstream team. And so we're going to kick off with Francisco for a while, and then I'll come in and talk a little bit at the end. So before starting talking about the technology and the work we did, let's start by talking about what are the kind of customer use cases that we're seeing for edge AI and, you know, at the Azure agent platform team and specifically working on Kubernetes on the edge. We're seeing a lot of kind of different use cases for this AI on the edge. And because the edge is, you know, every time we talk about the edge, it's like so big and it feels like everything that is not in the cloud now, it's the edge. So we kind of try to divide this edge in these different buckets, right? The first bucket that we talked about is what we call the highly distributed edge. And here it's just that we're talking about more the PC class hardware devices. We're talking more about, like, sensors. We're talking about two editors doing this. They're running, like, four GB, right, small devices. And we can see these devices, for example, in industrial scenarios. So for industrial scenarios, we're seeing demos where, for example, they're using, they're doing welding detection to actually determine if a welding is correct or not.  We're seeing use cases, for example, to actually use data analysis, like predictive kind of maintenance. Or we're also, you know, seeing a lot of kind of visual AI to actually determine if somebody can just go through a specific zone or not. And based on that, actually, you know, create an alarm. We do have also customer, for example, in the kind of medical vertical. There we see also a lot of kind of vision AI, you know, using kind of these algorithms, you know, to help doctors with, you know, diagnosis. And then finally, a lot of retail. So in retail, we see use cases, for example, where people are using these kind of AI and models to actually determine customer patterns. And so, you know, in these retail shops, how are you moving around? How is the customers moving around? How are they interacting with the different products? And also, you know, like, we're now working, for example, with some food chain restaurants, right, where you actually can use edge AI to take the order. For example, right, use, you know, gen AI to actually take the order and then prepare the order and have another kind of algorithm to do vision AI and determine if that order was prepared correctly. You know, by the human, you don't want to arrive home and have the wrong barrier. So, you know, it's pretty important that.  And here we have, you know, the customer data centers, the CDNs. So customer data centers were seeing a lot of kind of, for example, industrial scenarios with these kind of specific, you know, just GPTs kind of trained for, let's say, industrial kind of scenarios where you could just, you know, train your model with a specific guide on, you know, how to use a machine.   And, you know, those functions that right now, maybe they could also get, right, edge AI as part of those functions. And then finally, if you think about it, almost every computer right now with, you know, the whole co-pilot, you have the office co-pilot, we have the GitHub co-pilot there also, it's just running edge AI.  And that right now is being done in the cloud when it comes to GitHub co-pilot, but it's going to come back, right, all the way to the edge. So the different kind of, you know, kind of buckets here of the edge. In our case, you know, we're working what we call this highly distributed edge and we're working on this specific kind of what we call utility inferencing. So basically, these devices will be doing, like, small kind of inferencing. We're not talking about big models, we're talking about small models, right, and we're not talking about training on the edge, but actually just doing the inferencing on the edge. So what are the kind of the challenges that we see on this kind of, you know, edge computing scenarios? So the first thing is about, you know, resource constraints. So we're seeing that a lot of these kind of devices, the small devices, generally they don't have a GPU. They just were talking about i5, you know, i3, 4GB of RAM, you know, like really kind of, when I was talking about the big on-prem servers. The second thing is, this is a really heterogeneous environment. So when we talk with customers, we see customers that are using Windows, they're using Linux, they're using ARM32, ARM64, X64, now RISC5. So it's just this matrix is getting bigger and bigger. Also cost, so you know, and when we talk about cost, it's not only the cost of purchasing these devices, which maybe, you know, you have a fleet that has like 20,000 devices, but also actually also the cost of running your solution. So if you're running, for example, let's say an AI model and all these kind of 20,000 devices, if you're running a modelized energy efficient, that could actually have a big impact. The same right when you're doing your connectivity. If you're running, if you're downloading a container that actually was not optimized and maybe it's like 200, 300 MB, there's going to be a cost right in that kind of, in that connectivity and that bandwidth that you have. So we, you know, like sometimes we're working with a lot of customers that they're running, for example, AGI right on the ships. And then, you know, the connectivity that they have is really limited. Sometimes it's just satellite. Sometimes they're disconnected for like, you know, a couple of months. And then you actually know, once they buy them, they reach support, they just have a really limited connectivity. And then finally security, when you're running an AGI, kind of an AI workload on a cloud, you actually know where that's running. You're running a specific data center, you know, who has access to that data center. Then you have security on the hardware layer, the security on the software layer. But when you come to these edge AI kind of solutions, you know, this kind of device could be running on any kind of retail shop on top of a shelf there, and anyone can just go ahead there and connect, you know, like a USB device and inject them outward. So, you know, when you're trying to do this kind of solution, there's a lot of these challenges that you need to tackle. But when you AI, it gets even worse, right? And, you know, what we've been talking with these customers that are you trying to get AI to the edge, they need to tackle all these kind of challenges that we talked about, but now also they need to define, okay, what's going to be the hardware acceleration that I want to use? It's going to be CPU, it's going to be GPU, NPU, FSN, PNG, right? It feels like every day there's something, there's a new hardware that we need to support. Also, there are multiple frameworks. So, sometimes when we talk about, you know, these models, you have, well, I'm using Keras, I'm using PyTorch, I'm using TensorFlow, OpenVINO, right? So, there's so many kind of frameworks that, you know, these kind of, our developers need to choose when they're doing this kind of AI solution. And finally, we have multiple models. So, now with just GPT, you all know, that's at 3.5, that's just GPT-4, we have, you know, mid-journ if you want, V2, Lama, and even in Lama V2 you have the 7 billion, the 70 billion, the 30 billion. So, you know, the matrix that you actually need to kind of support is really, really big. So, over the past kind of few months, we've been working with Rolf's team in order to kind of, you know, use and develop these kind of edge AI solutions and address most of these kind of edge AI problems by using WebAssembly and Onyx. And we believe, you know, we can tackle kind of these main edge AI problems because by using WebAssembly and Onyx, first of all, you cannot get a reduced footprint.  At the same time, right, there's also better memory kind of usage. The second thing is just like, right, as we talk, this environment is really terogeneous. We have ARM64, right? X64 Windows Linux. So, by using WebAssembly, you can actually get one unified kind of architecture and compilation.  It kind of starts making sense when you're using WebAssembly. The third thing is around improved security, right? We all know that containers do have some kind of flaws. And, you know, the WebAssembly kind of security posture is much better, you know, by having this kind of denied by default. And we, you know, like, we can get a much better kind of security approach when using WebAssembly. And finally, by using Onyx, you can get this unified AI framework. So, you know, Onyx is kind of open, kind of open source standard, you know, how you can compile these models.  So, what's the work that we've been doing? So, the first thing was just, like, let's go ahead and pick a model and convert it to Onyx. So, in our case for this demo, we just used a really simple model, it's a SqueezeNet model in order to do image classification.  The second thing was just that right now, the Onyx runtime, it's only, it's, well, there's no Rust support for it, but there is a C kind of support for it. So there's an open source library that's called Onyx runtime.rs, which was a bit outdated, so we updated that. It's fully now with the latest kind of Onyx runtime support. We already test that with macOS, with Ubuntu and Windows. It works. We're going to be upstreaming that in the next couple of weeks. After that, we had to actually bring the Onyx compatibility with WASNN. So WASNN had the backend implementation for OpenDino, and I think it was for PyTorch, but had no compatibility with Onyx. So we had to actually implement that in order to be able to run these Onyx models directly with WASNN. And then the final thing was just that once we finished that, we actually needed to create, right, this bring this compatibility to WASM time and run WASI. So we need to actually add our own kind of Onyx WASNN implementation to this WASM time and run WASI versions, which also we have a PR open here, right, and we expect to be upstreaming right in the next couple of weeks. So now let's go ahead and do a really quick demo of what's the work that we've been doing. So I'll just go here. So I'll start by just going over the process of what we did. So the first thing is just, like, going over a model. In our case, again, we were using an Onyx model. This is a really simple model. It's a squeeze-net model.  You can just download from here, and you'll get, you know, what are the kind of steps that you need to do in order to run the model. In our case, it's just as an input, it's getting an image, right, which is 224 by 224. Pre-processing, we just need to do some there. Pre-processing there, just like to move from FP32 to actually, right, to kind of do the range of 01 and doing the normalizing. And then as an output, right, what we get is, okay, what's the probability for each of these 1,000 classes that ImageNet was kind of trained for? And then finally, right, there's a post-processing also there, you know, to run a softmax. So this is just really simple. I can go ahead here, and this is our example. We can see that we have, this is the model, which is, you know, the SqueezeNet 1.1-7 ONIX, and we have the labels here. But before going into kind of the demo that we have here, let's go a bit, go over our wasian and implementation. So if we are here right now, right, this is the wasian and kind of wasum time implementation. We can go here to, you know, the mod, and we can see here that we now have, right, the ONIX backend, right? So this is one of the things that we added. And here we have the ONIX kind of implementation. And basically this implementation, what it's doing is just implementing this kind of interface, the main kind of functions here, which, you know, the load function, which is actually loading the module. We have the init execution context, which actually will execute kind of, start this execution context and the graphic execution context. And finally, you know, maybe the most important one, which is the compute one. So this is what it's going to do is actually get as an input. This is a byte vectors. That's how it is defined when you're using wasian and, you know, the input is always a vector of bytes. So here you can see, right, that we're getting the bytes. Then we transform that right from bytes to FP32, because right now our label, the ONIX runtime dash, whereas it's just using FP32 kind of vectors.  It's an FP32, so we need to convert it back to bytes so that we are kind of conformed with the wasian and implementation. So now let's go ahead and check the example. Yeah. One of the things that we did here, right, was actually we, as part of kind of this implementation, we added an example of how you can run this right now. So what we're going to be doing here is just doing really simple inferencing. So here I have a dog image, right? So we'll go ahead and check our main here. So what I'm doing here is basically, first of all, I'll just define the path of where I have the image. I'll go ahead and import all the width here, and specifically I'll import all the wasian and kind of modules that I need. So I have the graph here, I have the inference kind of thing, and then I have the tensor with the different kind of tensor definitions. So then the first thing that we need to do is actually load a model. So in our case, we'll just load it locally here. We have it right, this is under fixture model, you know, squeeze it 1.1. Once we have that model created, we'll create the graph, the execution graph. We need the context here. Then we're going to be loading the labels. So this is just the model was trained on 1,000 labels, so we're just going to load that so then we can actually show the final result of it for each label, what's the probability. And here is one of the most important part, which is actually we need to go ahead, grab the image, and prepare the wasian and tensor. So if you see here, right, we have this function that is called the image to tensor, and this is actually doing that conversion. So if we go here to actually the implementation of this, we can see that it's basically reading the image. Then it's just cropping the image to a specific size. So this model needs a 224 by 224 kind of image. Then we'll just grab the bytes. This is just an RGB kind of a matrix. Do the normalization of each pixel. And then finally just put it down right into a vector of bytes so that we can put that right as the input for wasian n. So once we have that right, which is the data, we'll just say, hey, we're going to be creating a wasian n tensor, which is going to have these dimensions. It's going to be of type fp32, and this is the data that we'll be using. We set the input tensor, and then we just go ahead and run the inferencing. So you can see here we have the compute. This will actually execute the inferencing directly on the Onyx model. Once we get finished that, we'll retrieve the output. Again, the output is a vector of bytes. We need to migrate that while we transform that into fp32 bits, kind of a floating point. And as part of the post-processing, we need to actually apply the softmax layer because that's not part of the model. So we'll just apply a softmax layer, and then finally we'll arrange the different probabilities and print the final kind of inferencing. So now let's go ahead and run it. So before running this, because we was sometime, right now the public version has no kind of Onyx support, we'll have to build was sometime hours. So I'll just do it here. So I'm going to just build was sometime with these specific features, right, with the component model and the wasian n. So there it is. I already have that compiled. I'm going to get it also. Now I'm going to run, right, I'm going to create my component of these kind of examples. So if you see here, we're in wasian n examples and this classification component Onyx. So I'm going to go ahead and create that. There's there, and this is going to create, you know, the WebAssembly module. And then now I'm just going to go ahead and run this. So how I'm going to run it is I'm going to go use my own kind of was sometime bits. I'm going to say that I need the component model. Also I need as a module in the experimental wasian n kind of implementation. And then what I'm doing here is actually I'm going to, you know, mapping one directory from my machine to actually inside the module so that I can get, you know, the images, the labels, and the Onyx model. And then finally I'm just here, right, just running my WebAssembly module that I just created, right. So classificationcomponent.onyx.wasm. So I'll just run it here. And there it is. It's pretty fast, right. So you can see that it was reading the model, something like 45 MBs. It loaded the graph into wasian n. It actually created the wasian n execution. It executed the graph inference. And then finally we get here, right, that this is a golden retriever with a 99% probability. So now I can just go ahead and do another example. I'll just go ahead and change the image. So let's say I have a panda here. I'll just change it. Just change the image. It's really quick. I'll just recompile, right, the component with a new kind of image. And I can then just go ahead and run it again. But now with the panda image. And we get, right, okay, this is a panda bear with something else, that 97% probability.  And now Rolf is going to talk a bit about, you know, what's next. You know, this is work that we started, but now we're working on things for the next couple of months. Right, so if you can hear me, apparently I did a little feedback in front of the speaker. Forgive me. So when we talk about what's next, first I want to reset some of the context. So like wasian n for this, I think it's a proposal for a component interface that people who don't know is a proposal for a wasi interface, a component interface, that it would be standard in the component model for things like models. The original implementations, as Francisco said, were things like TensorFlow, I think originally it was. TensorFlow and OpenVINO. OpenVINO, that's right. And so that's really good, good approach and implementation as well. Wasian n is fine, but so one of the aspects of wasian n being open source means it's a proposal, means that anybody in the component, and if this is interesting to you, you can actually go and participate in the evolution of that proposal. It's the experience that we had here. We're going to talk about a couple of variants that are clearly going to be part of the evolution of wasian n. By the way, Onyx and wasian n, all of this stuff is open source. So much runs everywhere, and so that's really a critical part of what we're doing here. And as Francisco mentioned, this is also going to be supported in the run wasian kubernetes shims, where you can run essentially everything in kubernetes, no matter whether it's an edge kubernetes like k3ds or something like that, or whether it's a large cluster and you want to really use some big engines on it, for example, and that's all open source in the run wasi repository of the container d project in the CNCF. So all of this stuff is open source. However, there are two things. Francisco mentioned a couple of things. One is the size of the models. Now, the way the interface is defined, you load the model into the module, you pass the model into the API, and if the model is quite large, you can imagine that's going to really slow things down. So if you're interested in size, you're in a constrained space, or if you're networking, it's not really that great, regardless of the resource space that you have. You know, passing a 40, 50 megabyte model is going to take some time, and it's not time that you want. You can't pass it on every indication, for example, and you don't want to actually put it in the WebAssembly, because now your WebAssembly is essentially pretty substantial and you run into the same capacity problems. So for larger models, it's possible that the interface for WASI-NN isn't really the final approach. In the repository and the proposal, you might want, if you're interested in larger models, you might want to look at something that in the issue queue is called named models. That was not my fault, whatever it was. And that's the idea that you can actually have, essentially side loaded some big models or in a cache, something like that, sitting next to the module execution environment and merely refer to that. In other words, the larger model is already loaded and you're using only the module for the compute of the inferencing, for example. So that's one area where either the WASI-NN API might be expanded or evolved, and so if you have opinions about that, I'd love to have you upstream to help us out thinking about how that might work. Or it's possible that there's another proposal for large models because if you think about it, smaller models for the kind of inferencing that Francisco was showing here are super useful for inventory things or factory sensors. He was mentioning things like looking at seams for welding, making sure those are okay. We even had an Azure space, there was a situation where one of the things that the astronauts do is they examine gloves for faults every time they come in from a spacewalk and that's actually prone to human error so they want to use that, this kind of inferencing to examine gloves automatically to get a lower error rate for reuse of those gloves. So these kinds of inferencing comes up quite a bit. So we think of those smaller models and focus models as very utility-related. So you think of that as the 80% case. When you get to the larger models, a bigger panoply of targets and you almost always need the other thing, you may want hardware support. You probably do want hardware support, especially for a bigger model. So things like GPUs and other kinds of customized chips are gonna be really, really important for those kinds of models. And now the question of how do you detect a particular GPU and lean into that optimization becomes part of your question. So for things like big models and for hardware optimizations that are required for your scenario, it's possible that Wazianin needs some evolution or we're looking at a different approach or a different proposal. So that doesn't mean that Wazianin is unsuccessful and so far it's been really successful. But another example of an evolution we already know is gonna happen because we've been talking with the community and we sort of turns out everybody is sort of thinking about is that FP32 that I mentioned, right? Having to convert the model into a vector of FP32 and then convert it back after you've done the compute is pure waste, right? It's pure computing waste. And so one of the evolution is clearly gonna happen and Wazianin working with everybody up there is that there's gonna have to be some elaboration of the API proposal to take in larger, more complex types to pass those kinds of things so that they don't actually have to be converted merely to do the work that we'd hope to do. So that's another example of the future, though. So a couple of other things we wanna do go ahead and click that because I wanted to call out a couple of people here. For the Wazimetime implementation that'll be submitted upstream in a PR to Wazimetime so that people can use Wazimetime. We obviously hope to participate with other runtimes and get that adopted as a proposal so that people can use it anywhere. It's super useful, right? And then also the Wazianin implementation will be proposed if it is not... I don't know if it's already proposed. Have we already put the PR in? We'll put the PR in. So the gentleman over there, David Justice, whose name is up there, he can nod or raise his hand. If you want it immediately in the proposal, go yell at him to submit the PR because that's our intention as part of the evolution. And this is all part of the component model. So we're really looking forward to Preview 2. That's something that we think is really, really important. But in addition to calling out David to embarrass him, I also want to thank him and Joe specifically for their work trying to update the component model definition, get the new runtime compiling to it, recompile Wazimetime, and get the PRs ready for upstreaming. So I want to thank them. But I also want to call out Radu Matai who used to be on the Microsoft team and is part of the new Fermion team. He's here at the conference. He's out there. He originally compiled Onyx to WazInn about a year and a half ago, two years ago, and his code was so good, which is great, that David and Joe and everybody were able to just pick it up and update it and get it running really, really fast. So I want to call out Radu's earlier work that we're building on here. So thanks to everybody, including you two. So that's about it. Do we have another slide? Are there any other questions? Thank you very much. All right, I don't know if we have a mic. Do we have a mic? It doesn't matter. I will repeat the question. Go ahead. Yes. So this is interesting. It's actually going to be a big, how shall I say it? It's going to be an experiential thing as we roll forward with components in WebAssembly. And the reason is because WebAssembly has certain constraints. We'll call them constraints, but they can also be spun as benefits depending on what you're doing with respect to the kind of performance you're going to get because, for example, you don't have a really robust threading model there and async and things like this. And that means that for scale-out computing that you normally think of as a server process, something pretty heavy that can make use of a lot of async work and pool things and stuff like that, that's how you get throughput in a container workload or a regular workload, right? So wazzy right now, that's a little bit difficult. So only when we get those threading and async will we be able to sit there and go, hey, I could take this big model and really burn some threads on it inside the module as well as outside. Well, what that means is right now, you're going to do the computing work for the implementation in the runtime. So that's why we're compiling here to wasn'time or whammer or whatever your runtime might be. That's where most of your heavy host implementation will be and the guest is going to route that to the implementation in the runtime for now. As we go forward though, once you get the ability to have all the async power, the threading, the networking that you might need in a web assembly, you'll begin testing for those environments where you're not highly centralized. So specifically when you're talking about distributed edge, you're not necessarily going to have high-powered machines. And so it's probably easier and maybe better in some circumstance, actually ship all the stuff in a module and you'll get the kind of performance you need for the kind of utility, the small model work inside the module itself. You can ship the whole thing in the module. That will make sense in certain environments. But then even in that case, if you're thinking about a centrally hosted service, where like a CDN service or like, for example, I work in Azure, so let's say we have a Microsoft Azure Onyx service, which we're not going to have. But the point is if we did, that kind of centralized service would be trying to target and support the whole world. For that kind of optimization, you'd almost always not run it in a module. You would actually have a custom built implementation in the runtime part of things. And all of these scenarios are merely different use cases. But if that answers your question, that's how I see it right now. So the answer to the question is, will this make it possible to actually run models without knowing whether you have hardware acceleration? Actually, yes, it's possible. Again, you get into one of those utility versus optimization scenarios. So in small cases with big modules where you know you have a specific chip, because of the resource constraints or because of the size of a model, you'd be required to optimize on a particular piece of hardware, because you know it's there. And so that's a case where you're not talking about utility inferencing, you're talking about something that you really need to dive into the hardware. However, in most cases, say, for example, when Francisco is referring to cases where you don't really know all the hardware you got and stuff like this, sometimes there's going to be a GPU, sometimes they're not. You really are going to want a generic model that actually can pick up the GPU and use it if it's there. And so you are going to see implementations. Radu's original implementation for us actually checked to see if it had GPU support, and if it did, it used it. And if it didn't, it just did CPU inferencing, right? And so that's entirely possible. So the answer is yes, you can do that. And again, the choices you make, whether you do everything in an agnostic fashion or whether you lean into your optimizations for hardware or for size or things like that are going to be dependent on the scenario you're trying to address. That makes sense? Any other questions? Obviously we'll hang out, so if you have questions you'd like to ask us afterward, feel free to come on up. Thank you very much. Thank you so much.


YouTube team keep it clean. What's going on is engraving here with another video and John hardball He did it. He officially named Bradley bozeman the starting center for the Baltimore Ravens this upcoming season And this was something that was a bit surprising to me at the same time It wasn't but it still was because I remember a little while back at a presser Hardball was like, oh, yeah Bradley Bozeman He's gonna be in competition for the starting spot at center and when he said that I was like no, I don't believe you I don't believe you But now hardball doubled down on it and not only doubled down on it because he didn't say that Bradley Bozeman was gonna be in competition for none. No. No. He said Bradley Bozeman is the Ravens starting center So they may actually have their offensive line set It may be from left to right Ronnie Stanley and hopefully he comes back healthy Ben Cleveland, I know that spot is not officially his but again the vibe that you got to feel right now is that it's gonna end up being He is but we'll see we'll see it's still to be determined Bradley Bozeman at center Kevin Zyler right guard and that right tackle Alejandro via Nueva shout out to my guy Augusto So that that seems to be Ravens starting offensive line now see one of the best things about that about their starting offensive line is The starters, but then the backups too Because you have a backup in Patrick McCurry that he can play center and yet we know how it last season ended It was very unfortunate But this is one of the reasons why I am very glad that they put in Bradley Bozeman at center Because we had a question from subscriber a few months ago on this very subject Why the Ravens they draft these offensive linemen and they make them switch positions They don't draft offensive linemen and play them at their natural position And of course, you know Ravens they love players at every single level that can do more If it's a wide receiver that could play defensive in they would do it I mean they had a tight end playing defensive in if it's a linebacker that can drop back and play safety They'll have them do it. I mean not technically, but you know what I mean Ravens like guys that can do more So with that being said they take that same approach with their offensive linemen if a center can play guard or for Guard can play tackle.  He stepped in he could play center, but even though he had never played center before Back in 2019 he never played center before 2019 and then he stepped in and he picked up right where Matt's girl left off But you have Patrick McCurry he can move around and you have Tyree Phillips now I know a lot of people a lot of people weren't big fans of Tyree Phillips now with with me I like them because I thought about the potential. Yeah, he has some hiccups here and there But then you got to remember the situation. What was the situation last year? Tyree Phillips was a rookie in an offseason where there was no offseason So for a lot of rookies from last year, you got to cut them a lot of slack You you have to you got no choice, but to because they didn't have a proper. They didn't have a full offseason They didn't have a normal offseason So you got to give those guys a break. So Tyree Phillips especially being an offensive lineman in this offense in this offense Yeah, you you got to cut him a break But I'm looking forward to watching his growth and his development with the Baltimore Ravens Now, of course the Ravens they still have been powers to they still got been powers They still got Ben Bredesen and the jury still out on him. We we don't know much about him So it's still to be determined But they have some depth But back to the starter back to Bradley Bozeman Him playing his natural position. This is what he played in college at Alabama And the thing about this too that really makes a big difference is the experience And my guy Marcus shout out to my guy Marcus Holmes He pointed this out to me months ago when it was before the draft It was before free agency was when we were wondering what the Ravens were gonna do at the center position He said we need somebody a sinner who is a natural sinner, but somebody who's played in cold weather games Because you know like When you play in football Whether you've ever played organized football Even if you just play street football if you play in football playing in the warm weather, it's cool It's nice. I mean you come down here. You want to play some flag Which we should throw off team keep it clean flag football event down here, South Florida But if you come down here and play football Lovely the weather is gonna be great It may rain for like two minutes and then it's gonna end up stopping it's gonna pass over But you're gonna be playing it's gonna feel great. You're gonna be like, okay, man I ain't know I was this fast and I know I had hands like this cause somebody slipping But if you go up north in the wintertime and you want to play some football then and it's cold Especially if you're hitting there if you play a tackle if you play an organized football If you just playing tackle street football, it's different because when it's cold Oh, you feel everything that much more you do and With the Ravens that one of the biggest reasons they need a sinner who has played in that cold weather That has that experience playing in that environment is Not so much for the regular season because again This is the theme of this offseason for me and it actually was last year to shout out to my god Josh Hoffman I know it was for him last year for sure to the theme for the Baltimore Ravens It's not what's gonna happen in a regular season The worry is not in the regular season for the Ravens. Of course, we want them to do great in the regular season We want them to go out there and just kill it in the regular season But that's not the worry the worry is in the postseason in January when it gets cold outside and when it's pressure time when it's one and done when it's winter go home Because we just want things to be right Last year It showed throughout the entire season. It was not a thing where it was just like oh man All of a sudden in the playoffs are offensive line. They didn't underperform it a bit. No, it was like that through the entirety of the season and The offensive line was the Ravens their killies Hill That they suffered there all year long since week one since week one and They they did some patchwork and whatnot and again Maybe it was because of what the offseason was or really what the offseason wasn't But now with them having a full offseason Hopefully this improves the quality of the offensive line play Guys can get a better feel for each other and just the camaraderie both on and off the field like yummy You saw everybody going out to dinner.  That's But whoever the waiter was I'm sure they got a nice tip. So shout out to whoever the waiter was I hope you got a lot of money But this this is a good thing. This is a good thing Because this makes the Raven situation at center and it makes the Raven situation an offensive line It makes it clear moving forward and that's what you want the earlier the sooner the better Because you don't want to be going into training camp and this happened with the Ravens before and it's not necessarily a bad Thing, but this is a better thing. This is a better situation. You don't want to go into training camp like oh man Who's gonna win the job as center? Who's gonna be our starting left guard? Who's gonna be a starting right guard?  And you you want guys to compete for those starting jobs and whatnot But at the same time, it's nice when you go into camp with a clear head knowing, okay These are our expected starters really the only job that's up for grabs is that left guard right now That's the only one that is the only one that's up for grabs Because Ronnie Stanley is is the starting left tackle and again. That's assuming that he comes back 100% Bozeman is a starting center Zitler they didn't sign that guy to be a backup He's a starting right guard and Alejandro via Nueva via via Nueva. Sorry He is the starting right tackle because you saw the money that he got that one year eight million dollar deal That's not backup money So the only job that is essentially up for grabs is the battle of the bends at left guard It's gonna be Ben Cleveland.  So y'all know who I think is gonna be I'm sure y'all got the same vibes that I do or a lot of y'all maybe not everybody But hey, we'll see what goes down, but it's nice to have that clarity on 80% of the offensive line So shout out to hardball and the Ravens for making this move happen and making it official So now we know moving forward what to do and how it's gonna go down So let's just hope all the execution across the board is good to go. Let's just hope Bradley Bozeman. Hey, he doesn't forget Well, I mean he is a natural. So if you you played center your entirety of college. So yeah, I'm sure he'll be just fine now one thing that I do want the Ravens to implement no matter who the starting center would be is You don't have to have every single play out of the shotgun what I think the Ravens need to implement is Snaps under center Snaps under center and it doesn't just have to be here for goal line formation But snap they need to implement some plays with Lamar take snaps under center not just in a pistol not just in shotgun So just my two cents though. Anyway team keep it clean appreciate y'all. I love y'all and we out


Harper Collins and Harper Audio present The Dutch House, a novel by Ann Patchett, performed by Tom Hanks. This book is for Patrick Ryan, Part 1, Chapter 1. The first time my father brought Andrea to The Dutch House, Sandy, our housekeeper, came to my sister's room and told us to come downstairs. Your father has a friend he wants you to meet, she said. Is it a work friend, Maeve asked? She was older and so had a more complex understanding of friendship. Sandy considered the question. I'd say not. Where's your brother? Window seat, Maeve said. Sandy had to pull the draperies back to find me. Why do you have to close the drapes? I was reading. Privacy, I said. Though at eight I had no notion of privacy, I liked the word, and I liked the boxed in feel the draperies gave when they were closed. As for the visitor, it was a mystery. Our father didn't have friends, at least not the kind who came to the house late on a Saturday afternoon. I left my secret spot and went to the top of the stairs to lie down on the rug that covered the landing. I knew from experience I could see into the drawing room by looking between the Newell Post and the First Ballester if I was on the floor. There was our father in front of the fireplace, with a woman, and from what I could tell, they were studying the portraits of Mr. and Mrs. Vannubeck. I got up and went back to my sister's room to make my report. It's a woman, I said to Maeve. Sandy would have known this already. Sandy asked me if I'd brushed my teeth, by which she meant how I brushed them that morning. No one brushed their teeth at four o'clock in the afternoon.  Sandy would have laid the fire and answered the door and offered drinks and, on top of all that, was now responsible for my teeth. Sandy was off Mondays. Sandy and Jocelyn were both off Sundays because my father didn't think people should be made to work on Sundays. I did, I said, because I probably had. Do it again, she said, and brush her hair. The last part she meant for my sister, whose hair was long and black and as thick as ten horsetails tied together. No amount of brushing had ever made it look brushed. Once we were deemed presentable, Maeve and I went downstairs and stood beneath the wide archway of the foyer, watching our father and Andrea watch the van who bakes. They didn't notice us, or they didn't acknowledge us, hard to say, and so we waited. Maeve and I knew how to be quiet in the house, a habit born of trying not to irritate our father, though it irritated him more when he felt we were sneaking up on him. He was wearing his blue suit. He never wore a suit on Saturdays, for the first time I could see that his hair was starting to gray in the back. Standing next to Andrea, he looked even taller than he was. It must be a comfort having them with you, Andrea said to him, not of his children, but of his paintings, Mr. and Mrs. Van Who Bake, who had no first names that I had ever heard, were old in their portraits, but not entirely ancient. They both dressed in black and stood with an erect formality that spoke of another time. Even in their separate frames they were so together, so married. I always thought it must have been one large painting that someone cut in half. Andrea's head tilted back to study those four cunning eyes that appeared to follow a boy with disapproval, no matter which of the sofas he chose to sit on. Maeve, silent, stuck her finger in between my ribs to make me yelp, but I held on to myself. We had not yet been introduced to Andrea, who, from the back, looked small and neat in her belted dress, a dark hat no bigger than a saucer pinned over a twist of pale hair. Having been schooled by nuns, I knew better than to embarrass a guest by laughing. Andrea would have had no way of knowing that the people in the paintings had come with- Sample complete. Ready to continue?


This study investigates the potential of using waste iron filings, WIFs, as a filler material in glass fiber reinforced epoxy, GFRE, composites. The results show that WIFs can increase the density, surface hardness, Young's modulus, and tensile strength of the GFRE composites. However, the addition of more WIFs leads to lower elongation at break and electrical conductivity. This suggests that WIFs are not suitable for all applications, but they may be useful for certain applications such as structural dynamic monitoring systems in the construction industry. Additionally, the use of WIFs supports the effort toward a circular economy.


Hey guys, I am Ken Ross here I'm a business consultant that specializes in reducing costs for businesses by looking at their essential expenses and today I want to do something a little different today. I'm going to talk about my five favorite black youtubers So let's get into it All right So number five is one that I that's near and dear to my heart because my brother is actually featured on this channel at times And that is our family plays games and it's based out of my hometown Omaha, Nebraska They have over 23,000 Subscribers on their channel they feature content about board games and other such things they talk about a lot of details When it comes to producing games different mechanics They feature different board game designers like I said before my brother is a board game designer And he is featured on their channel at times. They are really doing big things for this space They also were featured if you haven't seen it on good morning America And I'll post a link to that underneath where their channel is as well And you can subscribe to their channel and check out their video where they're interviewed by good morning America It's great. It's a great time. It's great to see Such incredible talent get get featured in that way and get highlighted Okay, number four on my list once again, I'm gonna stay with my homework picks. These are I promise you this is it But it's my list like I said, I could do what I want. There are a lot of YouTube creators out there who Do reaction videos, but none better than screwface John now I don't know if you've actually had a chance to look at what he's doing He's a rapper and he does reaction videos. He's one of my favorites He's got a really good kind of personality talks about Don DeMarco a lot of times He's really just all over the place when it comes to that He was also featured on epic rap battles of history Now, I don't know if you've seen epic rap battles of history or if you know much about it But if you're into YouTube at all Most likely you've turned into this channel one time or another to see a rap battle And I don't want to get into what they do necessarily, but they have over 10 million followers. They have lots of views It's crazy what they've done and screwface John has actually been on that channel, which is something I truly admire some and one of the reasons why he's on my list because of all the reactors that I've seen There's a lot of reactors out there Screwface John is one who you could actually sit down and enjoy some of his content if you enjoy watching reaction videos Okay, number three one yet yet another one for me that is really near and dear to my heart And he's based out of Massachusetts and that's rich Benoit of rich bit Rebuilds now. I don't know if you've seen rich rebuilds I don't know if you know much about rich rebuilds and what rich has done but rich took a tether flooded Tesla and Rebuilt the Tesla and it's been a working Tesla for several years now I don't know how many I'll let rich tell you on his channel, but he features videos Every Sunday and he talks about cars and he's a car enthusiast He's got his own shop where he does car Videos and he does repairs on different videos. It's a very interesting channel very engaging There's a lot of things you could take from it and if you love cars not just Tesla's you should check out rich rebuilds You should see what he's about really explore that because he's doing some exceptional things and stuff that I really admire So thanks rich okay, number two number two is kind of a Different area entirely and I have a very eclectic taste when it comes to YouTube and different content creators but I am really into law enforcement and Different aspects of law enforcement debating those things actually watch court cases live sometimes so there are a lot of live streamers that feature court cases as well, but one of the YouTubers that I really admire that's black. That's doing some of these things is the real Nathan daily and he's based out of Atlanta, Georgia He's a really great content creator very engaging to his audience. He spends a lot of time Really focusing on different topics breaking things down. He gives a lot of law enforcement experience He has a law enforcement background. He's done work in law enforcement. So he knows kind of both sides of Situation and can and can give you a lot of context when it comes to that I really admire what he does because he really tries to involve his audience. He engages with them He wants the discussion. He welcomes it. He he puts you in a really Uncomfortable spot of time because he really wants to help you understand the different perspectives And that may change your view about things that you see and how they how they really are and can't say enough About the real Nathan daily and what he's doing There are others out there obviously that are doing this and I and I know of several of them and I follow them as well But I just had to I had to give Nathan his due here on what he's done for the for the YouTube community He's got 17,000 subscribers and I would love to see him get lots more subscribers because his perspective is one I think is very needed when it comes to some of these Hot button issues that you see all throughout social media and all throughout regular media for that matter And how to best look at some of them from a different lens Okay, last up and if you've been on my channel for a while, you may already know who number one on my list is I don't necessarily say this is my favorite black youtuber and Ultimately in this in this list He he has to be kind of is at the top of the list because he is someone I really do admire I think he's spent a lot of time perfecting the craft of YouTube and he's built quite a career and if you Have seen some of my videos before you probably know who it is because I featured him once on my channel and that's MKBHD I can't say enough about what he does for the tech Segment for electric vehicle segment for everything that he does He's got quite a repertoire of things that he that he covers and he covers them very well He's very detail-oriented. I could tell just based on how he's Built his career over YouTube over time and how he's actually focused on a lot of those things and and one could say There are a lot of tech youtubers out there. There's a lot of youtubers out there covering different things But I know MKBHD has his own Style his own lane and his unique touch on things that make it very hard to say I can't see what his view is on this and take it along with all the other views So for me, there's no one better right now than MKBHD when it comes to tech related reviews If I'm looking for something in the tech world or I'm looking for advice on it and he's covered it I'm going to consider it heavily. I'm gonna look at it and ultimately Brother you I am so proud of where you've come from if you're actually watching this I don't even know what to say, but you are at the top of my list I can't I can't say that there would be someone that could replace you in my heart because I love tech I'm a big tech guy. I follow a lot of tech related youtubers, but You're you're the man with that. That's my video. I really hope you enjoyed my top five list I know I didn't cover a lot of different avenues when it comes to these five people though These are the five I wanted to feature there are many other black youtubers out there as well as Hispanic youtubers or white It doesn't matter. I color is not necessarily an issue But what I'm out to out to do today is since it is Black History Month And it is something that I know I've noticed a lot I wanted to feature these five people because I feel like for me It's it's an inspiration for me I'm I'm a youtuber myself now I feel like and these are folks that inspire me that I can see that are like me and that's why I wanted to do it so With that, please put in the comment section below who you like as a youtuber and what are some of your favorite youtubers? I'd love to have a discussion about that. I'd love to actually check those channels out I may not have ever seen those channels and that's the brilliance of youtubers you always can discover new people and interact with them and and see what they have Out there and that's something I'm wanting to do so put that in the comment section below Please visit my website. I am ken ross calm and until I see you next time. I'll see you around. Thank you for watching