mergeconflict312 === [00:00:00] James: Frank. It is a new world of workloads, [00:00:15] Frank: workloads, the things I barely understand. Oh yeah. Welcome. Welcome. Welcome workload LORs. [00:00:23] James: Yeah. Now, if you have no idea what we are talking about, because literally we just said the word workloads, and that could mean so many things. We're talking about.net workloads and specifically not the ones that you install with visual studio. So if you go to visual studio and do the installer, you're probably thinking, well, there's this big, like ESPN I network loadworkload and this big Donna Mai workload and this, these, these. Big blocks that you check a button and a bunch of things get installed. No, no, no, no, no. We're talking about.net SDK workloads, and this is a new thing in.net six, introduced [00:00:59] Frank: Frank. You know, you're gonna get a historian and they're gonna be, well, actually it was in net five. We just didn't have any workloads but I, but I, I actually, okay. I already wanna disagree with you, but, um, I mean, it is a giant thing that you download and installs a bunch of stuff, but true. It's something you can do from the command line. You can do it on servers and they've tried to, they've tried really hard to make 'em small. They're still kinda huge, but yeah, they've tried really hard to make 'em small. [00:01:26] James: Well, cuz when you think about it, When you install visual studio, you're also installing the visual studio, studio tooling, um, on top of whatever workload you pick on the ID. So it's a combination of visual studio stuff and dot Nety stuff that you need. Comparatively. If you are, like you said, on the server, AKA like build server, right? Like I'm installing stuff. I need to get Don owie. How do I get it? That's a work. [00:01:54] Frank: Also, I'm just a weirdo. I prefer the command line. It's funny. We were talking about this topic before the show and you, you started to say something. Well, it installs with vigil studio and my eyes were rolling back so far in my head. I was like, I don't care how, if it installs with VIG, I wanna know how to do it from the command line because I'm silly and old. And I still like to do everything from there. Um, it's, it's. It makes sense though? Um, because, well, I, I just wanna point Android. I feel like you could probably fit iOS and Mac OS into like the standard SDK download, but, uh, Android's just too big. So we have to separate it up and complicate, uh, well, the whole thing. [00:02:35] James: Yeah. When you, when you install the Donnet SDK, you do get. Don net runtime, the, um, the ASP core run time and the Donnet desktop run time, but you don't get the other stuff that you may need. So for example, if you do need all the Donna Mount stuff, that's gonna be completely separate in general. And the reason [00:02:53] Frank: this came off, let me pause. I gotta pause again. How unfair the ASP net people got to be fully in the box. They should be a workload install. I get it. Azure marketing, fine. Microsoft. You invest a lot of money into it. Fine, but I can still be a slightly disgruntled . [00:03:10] James: I think that, I think, uh, I was, I think I was talking to Handman about this. I think they're like really they're really tiny, but also. They've always been there. That's it's [00:03:18] Frank: gotten big. Yeah. And it's always been there. Yeah. Yeah. I'll stop interrupting. [00:03:22] James: that's the reason why is like legacy reason. So I think when Donnet six was coming out and again, I need like rich or an emo or someone to really probably come under the pod and describe it is, Hey, Donnet Maui. Is this big workload. and a bunch of things like Iowas, Android, Mac, all these other things that catalyst is, how are we gonna support this thing? And what at the future? There's another one. Right. And I think that's where the workload system came out. But for us as Donnet Maui developers, it means that we have to learn kind of a whole new system to actually get it. And we've talked about, yeah, just do Donnet workload and sell. Maui's just gonna do it. Like that's fine until you start building things and wanting yeah. Version things in general. [00:04:05] Frank: And, and I, I, I need to be the representative native app developer here, app UI developer here. Um, although I, I'm not fully, you know, I haven't switched all my apps over to Maui and all that stuff, but what I am doing is switching my apps over to.net six, running the iOS workloads, the Mac OS workloads, and that's to be on the new run time, you know, keep up with the present and basically, so I don't get left behind. Um, so. Even from the native thing. I think the most interesting thing about the workloads and I, I guess it makes sense is they're actually hierarchical, like packages where they have dependencies. So when you install the Maui workload, you're actually getting all the native workloads. Plus the actual Maui UI SDK. Itself. Uh, but it has those dependencies on those native workloads. That's why it's so big. You can bring those in, but I just wanna shout out, I don't know how many of you are left, but if you're a native , uh, UI developer like me, you can actually install more minimal workload set by just saying, I just want. iOS or Macs or just Android or just windows. Uh, you can be that specific. [00:05:15] James: Yeah, I think that's a super great, um, identifier. And additionally, if you just type into the command line, there's a bunch of new things. And so we're gonna talk about today is do net workload is a keyword with a bunch of other keywords after it. So if you actually type in done net work, do net workload list, that's gonna show you what you have installed, but more importantly, you can do do net workload search. Three words, Donnet space, workload space search. And what you'll soon discover actually is that there is an iOS, Android Mac and Mac catalyst. And additionally, what I'm seeing right now is actually a Android dash 33, which adds on top of Android for API 33 preview support. This is very fascinating in general, which means that what the team has discovered, and this is mind boggling. Cause I just discovered this right now is they could release preview support for new APIs. Without having to release and muck up the actual official stable workload. And that is mind boggling by the way. And it's not just, you know, Maui stuff and iOS and Android stuff. There's the runtime for windows. There's WAM tools. There's TV OS in there too. So there's a bunch of stuff in here that is coming up. When you think about it is done at web assembly, build tools. That's a whole workload. So there's small utilities that can be workloads that can be installed independently from the main SDK. [00:06:39] Frank: Yeah. Um, which. BES the question can, can, can you make a workload? Can I make a workload? Like, I'm not even sure if these things are like new, get backed. I don't know where they're actually coming from on a server. I do still have those kinds of questions about exactly how they work. I don't fully understand it, but, um, otherwise at least they are versioned. You can do the list thing. You can do the search thing and find the neat ones, but you know, James, you know how you're actually gonna find out how to install work. [00:07:08] James: Documentation? [00:07:10] Frank: No, no, no one, no one reads the manual. you know how I found out about workloads? Yeah. Try to build your app and it's like, Nope, can't do that. It'll see something like, uh, net 6.0, hyphen iOS in your project file. Hmm. And thank goodness. There is actually a really helpful error message and I'm not even being sarcastic. Um, and it tells you, Hey, look, you're asking for this thing. I know it. But it's in a workload, you need to go install that workload and it actually gives you the command line to install that workload. Uh, so that's nice too. At least they have a good error message. I don't know if that applies to all the workloads, like with the wa of one complain and all that kind of stuff, but who knows? Hopefully. Well, we'll talk about some other command line, uh, little tricks, uh, to help you out too. That should alleviate [00:08:00] James: all that. So, so you went in, you were like on a new machine. Or, or you were on a build machine or what, what machine were you on? Uh, [00:08:08] Frank: all the above, you know? Um, I, I, I like to, I keep reinstalling this one Mac, the poor thing. I keep reinstalling this one windows computer. So I, I keep starting out from fresh UN unfortunately annoyingly. I mean, not that often, but what re. Month every couple months, maybe I'm doing a fresh install for one dumb reason or another. Uh, but like Docker files, you're gonna have to do it for that build servers. You're gonna have to do it for that. Um, yeah. I don't know. I just, I find myself installing software a lot lately. It's a little sad. I don't like installing software. [00:08:44] James: Well, the one thing that's nice here is you could, you know, create like a build script, right? And you could like run that script on. You could like save that script and then run that script and then set up your machine. [00:08:59] Frank: Yeah, but it it's it's per project too. So, um, lots of ways you wanna specify versions of things too. So like the most important version in.net now is the runtime version, the.net version. So we're 6.0 point 300 is kind of the one we're all rocking for Maui right now, though. I'm sure the version's a lot higher by the time you, you probably even hear this, uh, podcast, but, uh, I don't know, it's, it's, it's gonna be tricky to keep up. So you have to be able to lock things in. So you use like a global Jason file to lock in your runtime. I haven't quite figured out exactly the right way. And I'm curious what you think of how to a hundred percent lock in, um, the.net workload other than. I just kind of tie it to the runtime. And it seems that the.net tool knows that from the runtime, which versions of the workload to install, but it's, I don't know. Do we, do we wanna walk into that terrible basket of how do I know which version of the workload do I have installed, but it is something I have to think about. [00:10:05] James: Yeah. That's a great point. I mean, yeah, you're right. We're on, you know, 6 0 6, which is SDK six, hun 6 0 3 0 1 currently today. Right. And, uh, you, so, so the problem. That that happens here. And, and this is the same problem by the way, that existed with Damer in development. Right. Which was like, it was tied. It was actually maybe worse than Damer development. It was tied to a bunch of very specific things. Mono run times, all these other things that you needed to install to be like, here's this version, there was like a version like here's the release of iOS and Android and it's out where now it is literally, you know, part of in quotes here, the SDK via the workloads. SDK version 6 0 3 0 1 maps to a version of the workload for iOS. For example, if we keep it really simple and just say for iOS, that SDK has a specific version of it, the next SDK update will have a new version of the iOS one. So what you are concerned about here, which is, oh, I need to pin right pin and say, I maybe don't want the next version that might have some breaking changes or maybe it just. You haven't tested it yet, right? You're like, I know that I'm building on this one here. This is the one I, I wanna have installed and please install it. And, and right now today, all of your projects by default, if you don't do anything will just build against the latest SDK. Now there's two things here. One actually done it Maui. So if we talk about Maui at a high level, has a Maui version attribute associated with it and that you can pin, which is interesting because. It's also kind of then pinning the SDK at the same time, but I sorta like what you did, which was I'm gonna pin the SDK in a global JS O file, like in my folder, right. For this project. And then I'm going to, I assume it will always use that to build the thing, which means on the build server, I'm kind of committing into source code the version of.net that I want for all intents and purpose. [00:12:13] Frank: Yeah. Uh, my logic and I, I understand the versions of workloads are somewhat separate from the run time. My logic is, or I guess what I want is the latest workload version that's compatible with the run time that I've set. And that makes me feel pretty confident that I'll get good stable builds, and I'll be able to control when there's breaking changes and things like that. And I actually really appreciate your perspective, um, that you gave before, because I was thinking like, Sometimes I, I look at the past a little too rosy eyed and I was thinking like, how did I set the old versions of like Zin and mono on my build servers in the past? And then I was like, oh yeah, it was totally random. Uh, just whoever was maintaining those build servers would install. Hashtag the latest version of whatever. And that's what I would be rocking on that server. And so, although I complained about versions and the madness of keeping track of all these versions earlier, I, I do appreciate your perspective because I'm like, yeah, at least I can just pin the run time and tell I, yeah, you go, you go restore the workloads. James don't don't update the workloads. I want you to restore the. Workloads that is get a version that's compatible with this, uh, run time and let's all move on with our [00:13:33] James: lives. Yeah, no, I think that that's a good way of looking at it, cuz like I'm kind of been spoiled, but also not spoiled in a way like with like app center is a good example, right? Where like I build my apps and app center and I actually pick the version of iOS that I want. I don't know exactly what that means, but like, if like, if I look at it, I'm going in, it's like iOS 14, 14, and currently it's on iOS 15.4, like that's the current stable, so I'm just. Okay, but what do I even have on installed on my, my, my development machine? I have no idea. You know what I mean? Mm-hmm , I have no clue, which means that often what has happened by the way is two, two big issues. One is I'm on my development machine, which has newer versions. And I update new gets, which have been built against newer versions and maybe some APIs change under the hood or something like that. And then I committed into source code. and then it kicks off a build and that builds fails because something is outta whack because I'm building on a six month old version of, of Samin. Right. Mm-hmm but yet the build server shouldn't actually be the one specifying the version in my opinion. Right. Unless I always want latest, but ideally I want to tell the build server and I wanna tell my development machine build off of this. Like, just do what I'm telling you to do, right. [00:15:00] Frank: And there were ways to do that. Oh, you're just reminding me of the terrible past. Um, there were like custom steps you would do to, you know, download us very specific version of monos, Amin, and all the tools that you need. We, we did do that in the past. In fact, I think I still have a build script out there. That's doing the words of both worlds where it's downloading a.net six and downloading a specific version of mono right now, which is just like, oh God, I just wanna clean up that script, you know, to be so much. [00:15:27] James: Clean. Well, I worked with, um, pitching this idea to Jonathan peppers, which was, Hey, this is a problem with, you know, building these applications and C N CD and Azure DevOps. uh, and, and I think at the one hackathon, there was like a Microsoft hackathon every year that happens internally mm-hmm and he built something called boots, which is a bootstrap. Yeah. For tool. It's a Don global tool. Very much like this. And you could say Donnet, you know, boots, here's the package to URL, but you could actually do boots. Dash dash previews, Amer and iOS. And it would like, know what to go do or whatever. Yeah. And you could build cake SCR. I remember cake scripts and all this other stuff, but anyways, you could do all this stuff, but you gotta go figure out the versions and do this stuff and look at a bunch of different areas. It seems like a lot of work. [00:16:13] Frank: So I'm pretty sure I use boots. Yeah. That's how I do it. Yeah. But the problem is it's, you're, you're paying for build time and it's, it's, it's, it's not cheap , especially on those Mac build servers. And so if it takes 10 minutes to install this run time, then that's 10 minutes. I really, really want to avoid so I can get more builds out of that build server without going over my budget. Uh, that's something annoying to think about. So these workloads, um, I actually have them installing on my build server on every run. I download a very specific version of.net, the runtime that is tied to my global Jason. So that machine gets that. Then I get that workload and it's, it's worked out pretty good. I think it comes down. Couple minutes, something like that. And I do both tricks. Sometimes I do the Maui one, which includes basically the entire world. And other times I do the native ones, if I'm trying to, um, shorten up some build times, but overall, um, it's been reasonable a couple minutes. Uh, so it't been like a 10 minute or 20 minute install. So it's not that painful. So all this talk of servers, but you know, the truth is I think in the future, I do hope that visual studio just does all this for me with a cute little progress bar. So I don't have to pay attention to it. And I hope the APIs never breaks. So it always works with the server too. [00:17:41] James: Yeah. I think that's a good analysis too. And you're right. What I've been doing and I think I've been doing it wrong. We'll talk about it is on all, all my build servers. I do what you were just talking about, which is I, I might GitHub actions. I will literally do dot. Install Don net six or whatever. I think install Don at six, which is the latest version of Don net six. And then I say, do net workload install Maui because I'm like, oh, it's a Maui app. Right? Mm-hmm like, it's there. But even at Maui, by the way, there is fine green control. There is Maui, Android, Maui, iOS, Maui, mobile Maui, Matt catalyst, Maui windows. Oh. And those are very granular. Right. So if you, for example, Are just building an iOS app with Don M Maui, which is completely feasible. Right. We've talked about that before. You've done that with forms in the past, you could just do Maui dash iOS and it wouldn't install the world because you don't need all of the Android or desktop or Mac catalyst stuff. If you're just building iOS, like that's. Actually feasible to do. And that, that would save tons of insult times. Like if you pro tip, [00:18:46] Frank: sorry. Sorry. Pro tip. Thank you. Uh, I think I have to go check all my build server scripts right now. Please continue. Yeah, [00:18:54] James: because you know, when I think about it, like the easy thing that you see documented all the time is, oh, Don. Now when you workload install Maui, but you're right. When I was, when I was hearing you talk about I'm burning my, you know, my time. on here every minute counts. Right. And if you're installing stuff you don't need, then yeah. Then, then you shouldn't do that. yeah. [00:19:18] Frank: or find a more efficient way. You, you use a Docker file hosted somewhere, you know, like make your install proper. There, there are other tricks to do to speed up your builds, but, uh, yeah, in general, um, it, it, it is nice to have the fine control. I do predict the future and we're just gonna all be. Do network load restore or it's it's all just gonna be for Maui. I, you know, what's neat though, is that visual studio respects, um, all the command line stuff too. So like that global Jason file or at least sometimes when it's in a good mood, it respects that file and does all the right things supposed to yeah, exactly. and so, um, it, it's actually not that bad. I love being able to pin that version. I guess that's pretty old tech, but it's, you know, it's because it's been around for a while. The tools are finally starting to respect it and it's starting to become more and more useful. But, uh, do we wanna talk about, I, I keep bringing up, uh, dot net workload with [00:20:19] James: store restore. Yeah, not restore. Okay. So there's workload install. Okay. So there's there's list and search. Those make sense list is listing active search is searching the ones that are available, but then we have install, repair, restore, uninstall update, and some of those, oh gosh, seem familiar or similar. [00:20:42] Frank: Install update, restore those all sound pretty additive repair repair repair. Oh gosh, that sounds scary. Should I run a repair right now? Okay. So that [00:20:54] James: one will resol that one reinstalls all installed workloads. Okay. Says workloads are made up of multiple workload packs and it's possible to get into a state where some insult successfully, but others didn. Ouch. Oh, for maybe you lost internet. That's what it says. Like you lost internet while you're installing and then you would need to repair. Oh, it's like maybe the manifest or something. [00:21:19] Frank: Partial machine. that checks out. I'm just kidding. but keep in mind, you can always, uh, remove minus RF dot.net to sometimes fixes problems. No, don't do it. Okay. Uh, that, that makes sense. I know, definitely during the previews, I got myself into some terrible workload states. Mm. Uh, I think like, honestly, they were refining how the workload system works altogether during that. So you'd get into a weird state where you couldn't uninstall some or. You couldn't repair 'em you couldn't install anything. So I do remember some nasty times, but it's been a while since I've seen those kinds of problems, um, talking on my machine and on my build server. Uh, are you doing everything just through visual studio or are you doing any of this through the command line? [00:22:11] James: Um, you know, I went and during the previous I did everything via the command line, especially for visual studio for Mac, because there, there wasn't. The built in support, but now there is, and if you had an early preview visual studio from Mac and you, um, you know, aren't getting Don Maui and, and iOS and Android updated, unins install visual studio from Mac preview in, saw it again. And now there's a Don M Maui button and an iOS and Android button that you can click on and then it will do the updates there. So my assumption is what's happening is that now when a new version comes out, it's probably going to do the update command. So we, we just talked about the other command, um, repair, but update will update all installed workloads to the newest available version. So this is nice because if you install a new version of.net, you can then just say, Hey, I don't, I might have a bunch of workloads installed and I wanna do install this workload, install that workload, install this other one. What the done net workload update will do is look for all of the installed ones. And. Install it, but it also uninstalls all the old versions of each workload too. so that's, uh, you know, up to you what you want, right. That that's, uh, that's, uh, choose your own adventure, which to me, yeah. That's actually what visual studio does. Whenever you update visual studio, it uninstalls, you know, the, the minor versions of things. [00:23:39] Frank: Yeah, it's a little bit of a Yolo one. It's just, we're we're gonna update to the latest version and I know it. I know you're that kind of person, you're the kind of you right. Click on solution Explorer thing, and you're like update all new gets and you're just like, I want the latest, right. Is that you, or have you changed at all? [00:23:59] James: No. I mean, pretty much yeah. Okay. I'm like, let's do this I'm my, my, my source code is ready. Let's let's get this going. and I will say like for visual studio and all the hammer and stuff for years, I mean, I've always just been like, and the latest and the latest and the latest and go because it is out there. Like everyone should just always be on the latest, right. Unless you can't. [00:24:20] Frank: Okay. I, I agree with you. It's just, we've been through a few Rocky years, the last few years in wonderful transition states. And I think during the Rocky times, it's been really useful to lock things in at certain versions and be a little bit slower be, [00:24:34] James: but because the issue is, and you can con attest to this too, is the issue is not in like day to day development where I'm like, oh, I'm updated. I'm doing this. It's when, okay. I've shipped a new version on my app and. Um, I might not touch that app for six months and then I come back to it six months later and now down at seven is out. And I'm just like, uh, do I, yeah. Update everything to down at seven. Like what do I do now? Right. That's the issue like I'm looking at my cadence, which is my app, one of my apps, right. My cadence . And let me look at big number app, big, big, [00:25:10] Frank: one of the big app with the graphs you gotta pay for the graph. You know [00:25:13] James: it. Yes. And, and it hasn't been touched in, uh, almost three months. [00:25:20] Frank: Is the build server. Okay. So the build server probably just triggers off code changes. So like, yeah, the build probably hasn't even run. Hopefully you're locked in up versions. And if you went and made like a one line change, everything would build, but yeah, for sure. Um, I have five. Big apps out there and definitely, um, I, I can get into version trouble with each one. basically each one presents its own wonderful little bit of challenges and all that stuff. KKA KKA is the good one. K KKA never gives me version troubles. To you. Calca. Thanks. Thanks. Calca you're the best . Um, the rest are terrible and, and, and actually that's why I'm happy to switch over to.net six, because I do, I, I do see this as better than what we were doing in the past, and that's why I am, uh, converting everything over and learning these workloads and everything. But for me, um, the, the Yolo lifestyle is just not good enough. Uh, workload update is still a little bit too scary. So I definitely prefer.net workload restore, which digs into your solution. Project files looks at your global settings, obeys directory props, you know, all that nasty Ms. Build stuff that we all love to do. It actually obeys all those rules. And uploads the correct workload versions based on all of that. And that's the command I like.net workload restore. It puts the world into a wonderful, perfect state. [00:26:54] James: Yeah. That one I didn't know about until you and I were talking about this and I'm like, oh wow. Like that's super duper cool. Right. It's like, it will analyze the project, the solution, figure out what you need, figure out the stuff. Yeah. And it just does. [00:27:10] Frank: It's like doing your, your new get restore. It's gonna look at all the version requests from all the things, resolve all the version junk. Fortunately, right now our versions are pretty simple. You might get the Maui thing. You might get the WAM thing. I, I know everyone's probably gonna be releasing more and more workloads in time. But, um, you know, it's, it's gotta resolve, resolve all those dependencies and it's better that it does all that stuff and takes into account all the various cause there's a lot of different ways to pin these versions, uh, in different files and that kind of stuff. And hopefully hashtag hopefully it takes all that into account so that my life is. [00:27:51] James: Yeah, that's super duper. Cool. And does that mean, then you're gonna put a global JSON basically into every single project. Is that the strategy that you have? [00:28:01] Frank: Yeah, yeah. Yeah. I do that everywhere. Now. In fact, some projects I have global JS in different. Sub folders. And I do some really nasty tricks. I highly don't recommend doing that. try to try to get yourself at least per project onto one global Jason file, but that's been such a time saver for me. It's um, yeah, I, I do that for everything. It's it? It it's exactly that Calca problem where like Kaka can always be on the latest version of anything. It can live the Yolo lifestyle with you, but continuous, no continuous needs very specific versions of everything or else everything breaks. Uh, it's one of my hardest apps to work on, but even then, um, if I get that puppy fully switched over to.net six, that will simplify. Um, I won't have the crazy versioning madness. [00:28:59] James: Oh, wow. Yeah, that'll be nice. I like that. I think this is like the new go-to strategy. I like that. It'll just automatically pick it up via X, Y, Z. Right. You know? Um, um, I love it. I'm all in. I'm all in Frank. Smart. It's [00:29:14] Frank: smart. And because you, you try so hard in your build servers and I keep talking about build servers, but this is the dev machine too. Like no, no one likes updating their dev machine. I, I like getting new APIs and new features, but I don't like updating software otherwise. Um, but it, it it's, it's, , it's so easy to start repeating these version numbers everywhere. Like I was, um, apple has a tool, core ML tools. It's a Python library and they're in this crazy problem where version three point 10 of Python has been released. But their, none of their stuff works well that they work on 3.9, 3.8, 3.7, 3.6, all the threes, but they still haven't updated to work on three point 10. It kind of works. It kind of messes up in other places, in order for them to update. They've outlined the like 150 places that, you know, 30 different files have to be changed in all of that is to say, uh, this version madness is everywhere in software development, and it's really unfortunate. But at least your goal is always to just not repeat yourself, not have that version number repeated a hundred times everywhere, have it in one place and have the, uh, scripts respect it. That's why I love.net workload, restore, boom thesis. Completely [00:30:39] James: done. Yeah. Thesis come. Uh, I love it. And I love this conversation because to me, I think now that I am just getting into this world of, you know, basically. You know, The Don net six world. It's something I'm gonna need to be thinking about over and over and over again and say, okay, like, how do I want a version? This, how do I want this to be long term? What happens when Donnet seven Don net eight, Don net nine, come out. Yeah. How am I going to do this? So. I love it. I love it, Frank. And thank you for turning me onto this. And hopefully I also gave you some tips too. I like that we're exchanging tips on this podcast. If anyone else has tips, let us know, go emerge conflict fan, write us in. We'd love to know how you are, versioning your apps and doing all the great things. And if you knew about all these cool commands, cause I definitely didn't. So, um, that's it. Thanks Frank. I love it. Anything else? [00:31:27] Frank: Uh, version, version, version version. Did have we said that word enough in this version. thanks, everyone. That was fun. [00:31:36] James: All right. Well, I think that's gonna do for this week's merch conflict. Happy summer, everybody. It is here. We, I think we, yeah, today's the first day we're recording on the 21st. It's the first day of summer. Uh, hopefully everyone is enjoying their summer. If you have summer where you're at, you know, it doesn't summer doesn't actually happen in every single place in the world, Frank, because what? Yeah, not at the same time. Oh, okay. I mean it [00:31:55] Frank: does. Do they still call it summer or do they call it antis summer? [00:31:58] James: Well, I think the it's called they call like winter does the opposite of summer. Oh, that's boring because the earth rotates around the sun and, and, and as it does, you know what happens? There's, it's tilted an angle. So like some things are closer to the sun. Some things are farther away from, from sun. And then that, that's how you get seasons. I think. Oh, boy. Okay. Well, I hope everyone is great afternoon. Great evening, wherever [00:32:40] Frank: you're that's gonna do for this week's so until next time I'm Magno and I'm. Thanks.