Merge Conflict === [00:00:00] James: Welcome back everyone to Merge Conflict, your weekly developer podcast, talking all things development cuz we're developers. I'm James Monte Magno, my buddy over here, Frank Kruger is with me. And this is a podcast where we do not have a. 30% developer tax cause you podcast for free. Did you know that Frank? [00:00:28] Frank: Uh, free. What a deal. . Hi everyone. I, I hope we're worth at least free, but if you do want to be. Paying more than free. Who, who wants? People should do that. They can do that at Patreon. Did you know we have a Patreon, James? [00:00:44] James: I'm literally, as you mention, I am posting our bonus episode of Merch Conflict called the Hidden Apple Tax, where we deep dive for 20 minutes on the hidden apple tax that Elon discovered by himself and shared with the world. Um, so if you wanna get our deep inside knowledge on that, you can become a patron that helps, uh, support the show. Uh, I think it's as little as $2 a month and you get access to everyone gets. Everything. Um, and I don't have a blue check mark to give you, but you can message us and we read them. That's. [00:01:16] Frank: I mean, the backlog of those Patreon episodes is basically just tracking our insanity levels over time. We try to sound very sane on the podcast here, but in the Patreon, we're, we're not sane. [00:01:28] James: You can, you can deep dive on riveting con riveted riveting content. Riveting riveted. It's riveted cuz it was in the past, but such as, uh, last week's bonus title Water before that bonus episode titled Grumpy Old James. Bonus episode before that. Uh, bonus.dot.bonus.dot dot bonus net. Seven time bonus X codes bonus. Spicy James audio edition. Ooh. Um, yeah. So anyways, those are the riveting, uh, podcast that you can get over on the website. I'll put a link. There's already, there's been a link in the show note forever. They've always been there and there are 6 57 Patron. That are hanging out with us, so we appreciate that. [00:02:16] Frank: Thank you all. Yeah. I love making those episodes too. So if you do want us very unfiltered, Yeah. Please think of joining. [00:02:24] James: Yeah. Make it super simple. Ooh. Okay. Um, Frank, this week we have a very delectable topic that surprisingly we haven't. Covered it all. Um, but I was using a new piece of technology that we may have mentioned in the past, but I actually was using this for like an entire day yesterday, and it was because I was getting the.net podcast application up and running on net seven. We, we highlighted this at done at comp. And the Don Net podcast app is a, um, a Blazer website, an HP Corp website, net Maui apps, blazer, hybrid apps. It has microservices, has database integration, it has Azure container apps, has all the things in it. and at donnet Comp 2022 that just happened last month, um, there was, it was part of the keynote that added new features such as, uh, the new, uh, minimal API grouping, inversing. They showcased dev tunnels with it. They showcased the docker list. Or Docker file lists, um, microservice imaging container stuff with it, . And then additionally they showed off some new like logging and insights and all this other stuff. And I have been maintaining this with a few other folks. I helped, uh, build it moons ago and managed the project, uh, when it first came out. And. Something recently happened in this, which is the deployment mechanism that we use is all GitHub action based. But the deployment does many, many things. It not only builds all of those things that I just told you, but it will also deploy all the microservice backends. It'll configure all of the endpoints and app secrets that it needs, and then it will also deploy. Website as well. And if those resources in Azure don't exist, it'll also scaffold them out cuz it uses something called bicep files. Ooh, bicep files, you know about bicep files, Frank? [00:04:30] Frank: No, but you're, you're scaring me a little bit with all this. I know this is everything every website has to go through, but when you enumerate it the way you have been, it's just like, oh my God, there's so much here. But tell me more. Uh, so. Microservices. Please tell me, this has nothing to do with the [00:04:47] James: microservices. No, we're actually everything that I just talked about, we're not gonna be talking about any of that. I'm not gonna, I mean, I wanna talk a little bit about bicep files, but only in the context in which I needed to edit and test the bicep files out and things like [00:04:59] Frank: that. What in the world is a bicep file? Okay. James, do you, [00:05:04] James: do you remember ARM template? [00:05:06] Frank: Arm templates. Are we speaking a different language? No. What's an ARM [00:05:10] James: template? Uh, an ARM template is an Azure resource management template. [00:05:15] Frank: Oh, arm. Arm, okay. Got it. Yep. Okay. Is this like an XL file? Is that a power shell file? What [00:05:24] James: is it? It's like a JSON file, of course. Mm-hmm. . Okay. Mm-hmm. , um, bicep is. The kind of the next generation of that. I would say it's a domain specific language that uses declarative syntax to deploy Azure resources. And what's nice about it is it has per, it has very simple things like paras for parameters and variables, and you have these resource groups that have names and it's kind of like a mixture between. It's a language. It's, it's a lang It's language as, as it's code, as infrastructure, right? Instead of file as infrastructure. That's the differe. [00:06:09] Frank: Yeah. Cynical me. Wants to say all configuration, file formats grow until they become a programming language. That's what it sounds like happened here, . Yes. Yes. And um, I, I've heard of these, what's, what's the famous.net one pmi, I think they're actually using like C Sharp to do resource management so that they gave up on config files. Instead of creating a brand new programming language, they just use C Sharp. I think. I hope I'm getting that right. [00:06:39] James: I think that, and then also like Cake does some stuff like that as well. There's a bunch of different things. Very, very similar, but it's all for setting up and configuring Azure resources. Right? So, got it. Where you would use your GitHub, uh, code space YAML files for your inf, you know, code as infrastructure. This is a way of just specifying and scaffolding out. Your Azure resources, so this is nice cuz you can easily say, So my backend api, for example, I have a very simple resource SQL server and it has a specific, you know, instance of it, kinda like version, it's Microsoft SQL Servers, and then there's a name, location, properties, SQL db. You can set up a SQL Firewall rule, a storage account, uh, you know, workspace at Kubernetes environment. You know, API container app. So you specify all these things inside of it and mm-hmm. , um, Marcus, uh, who, um, works on a bunch of different products, but worked on the, the, the playwright team and works on a bunch of other stuff. Um, Um, helped add playwright tests to this repo, which is really cool. And playwright tests is a, is a web UI testing framework, so similar to like Selenium or Cyprus, but it's from Microsoft Open Source and works on every programming language basically. And, uh, he had created a bunch of playwright tests that, that were demoed as well. So that was really neat. And uh, Debbie, who works on my team, they did demoed it, um, actually at Don at comp, which was really cool. But, And so he was like, Hey, you have all these arm templates, like we should upgrade those to bicep. And I was like, cool. Yeah, go do that. And then he did it . And then I noticed that there was a bunch of hard coded values in it, and I was setting up a staging environment. So what I wanted to have happened was, here's the scenario, is like we have basically deployment. We had a staging slot, but then we didn't have a staging slot for like the api. So I was like, okay. Really, we're moving from Don at six to down at seven. So I need to actually have a fully separate staging environment so I can run everything on Don at six. That's in, in prod and everything in done at seven other ones. So I was setting that up and doing all this stuff and I needed to edit the files. And I was like, okay, well I'm not compiling anything. These are just configuration files. I don't need anything special. So I went into vis, into GitHub and I do what everyone does, which I hit dot. And when you hit dot , that sets up, uh, github.dev, which, um, is a lightweight code editor. [00:09:18] Frank: Interrupt. It's an amazing, lightweight code editor. It, I, I think I was the last person on earth , except maybe if anyone hasn't heard of it before here on the podcast, uh, about it. Yeah. Hit, hit the dot and GitHub and you get basically vs. Code in the browser. Might take a second to load if the, if the repo is kind of giant or something like that. Mm-hmm. , but then you get all the good search functionality, you get all the syntax highlighting. It's a way better way to interact with GitHub than with trolling around in the file ui, which I always ended up doing anyway because I'm an idiot. But every so often I remember to hit the dot button and it's [00:09:57] James: fantastic. And all that does is it change is github.com. And whatever the URL is of like the stuff of the file location to github.dev, and you can do this anywhere, and especially if you're doing markdown file editing, this makes it super nice and there's source control built into it. So like I actually write blog posts in it, um, which is really, really nice. It does support some like deployment types of things, but I mostly think of it. Just a lightweight, not even just a file editor, file browser explorer, . You can have all this search stuff, right? So if you're, if you wanted to do, for example, my favorite part of VS code, my favorite feature of VS code, it's silly, but it's literally the search and the red searching that you can do. It's super powerful and the replace is like amazing. Yeah. [00:10:46] Frank: Yeah, it's, it's what I use it for 90% of the time, , I, I have a million windows open that are mostly there just for the search. Yeah. Yeah. I agree with you and. Uh, GitHub search has a lot of things it's trying to do. Um, but if you ever use GitHub, search the search code. Stop it. It's not doing it Well, Yeah. Get, get yourself over to integrated vs. Code. So where's this story going? Okay. So the story is you guys have a very complicated. Infrastructure thingy for some app that has lots of little moving pieces, lots of little services and everything. Yep. That is up and running, but you're trying to migrate it to net seven, so you want a second or third or fourth staging environment. Mm-hmm. to do that. Deploy to. Hmm. For some reason you are doing this, James, I don't know why you got tasked with this job, but for some reason you are doing this. It was [00:11:37] James: on the DevOps board. Yep. [00:11:39] Frank: And you are learning a lot of DevOps in right now. Um, okay, so you hit dot because you're, you're lost in the code and you're trying to find something. Please continue the [00:11:49] James: start. Exactly. So I opened the bicep file and I'm like, cool, here's the bicep file. I'm just like, here's the things I can go in, I can edit it, I can save. My life is good. My life is great. Cause I don't, I don't even need to pull down the code. I don't need to sync this branches. I don't need to do anything. I don't, I don't, I could just open it up. I could do all this stuff locally, but why do it locally when I can just hit dot and edit in the browser to make one line code change? You know what I mean? Yeah. [00:12:14] Frank: So, but prs it's also you have a good PR system and all that. I I'm all for it. [00:12:19] James: Exactly. And, and correct. Like you can make branches and stuff inside of this thing. It's really great. It's, it's fantastical now. Became the problem. The next, next part, 22 minutes to get to the actual , uh, hook on this one. What's the [00:12:33] Frank: topic today? James, please tell [00:12:34] James: me. So I go and I'm, I'm talking to Marcus and I'm like, Hey Marcus, like, can you help me solve this problem, blah, blah, blah, and do a code review. And I share my tab And he's like, um, What's going on here? He's like, he's like, how come all of your bicep files just, you know, text? He's like, oh, install the bicep extension for, for the, for this thing for vsco. Yeah. So I tap in vs code and it says the bicep extension is not available in visual studio code for web. And he is like, oh, you're in VS. Code for web. He is like, get into a code space. And I was like, oh boy. And I was like, am I not in a code space? I thought I was in a code space, but spoiler alert, I'm not in a code space. I'm in a different, the code space looks exactly the same. But it's not basically is what, what I've, what I've now found is I thought that when I had dot, it was kind of a code space, but no, a code space is different. Frank, when Okay, . [00:13:34] Frank: Sorry. I want to try to decode, uh, Microsoft marketing and, and naming of things. Okay, so let's do this. What do you call that little editor and GitHub that you get with a. [00:13:47] James: That is Visual Studio Code for Web. Awesome. [00:13:52] Frank: Okay, so I know of another technology. I know we've talked about dev containers. These are fun. You put little dev container configuration files in your route of your project and then vs. Code runs itself in a container or all configured like. Like all set up for you doing the right thing, and that's great, but that's still running on your machine. It's running on your Docker instance now. Code space is James. What in the world is a [00:14:19] James: code space? It's your workspace in the cloud. Um, , that's what it says. So in marketing, so when you click on the code button to clone the code, there's. . That makes sense. And there's, you know, here's the HTTPS for the, the good stuff. There's open and get up Desktop Open and Visual Studio. Download a zip, I don't know why you download a zip, but you could . Then there's a code space and then what you can do is you can say, create a code space and then when you create a code space, it gives it a really long, weird, funky url. But it is@github.dev. Now the different here is, it's doing what you just said. It is basical. Creating an environment, a virtual environment on the web that is backed by not just bits and pieces of a lightweight file editor. It's actually like Visual Studio in the browser, visual studio code in the browser with services that are running inside of this environment. So for example, you can. Dot net and no JS and, and you can install extensions because it's literally up in there from my understanding. So I, the difference here is now I can go into the extensions and type in bicep and I can hit install and it's going to install this extension into my code space made for me of this running up. Now the cool. As well is that once you have the code space run, you can actually open the code space. A bunch of different scenarios that support code spaces. So a code space obviously supports the browser, but it also supports Visual Studio code, JetBrains Gateway, and Jupiter lab. So you can open it in those areas and you can boot up the code space there. So that enables you to go in and you have a full terminal available. You have ports, you can forward a port, you have a debug council. It's basically vs code. In the browser, . [00:16:30] Frank: Cool. Uh, so is this a, how, how does one configure this environment of their dreams that is running in the code? Uh, is this a different configuration file than my dev container configuration file? I'm, I'm assuming it is. And tangential to this question is, are you actually running. Apps in it too. Are you setting up the infrastructure for your app to run a staging environment, I think you called it, uh, or is this just still separate from that? You're, you're doing this mostly to get, um, Free extension installation without modifying your machine. [00:17:07] James: Yeah. Correct. It's, it's, it's enabling me to work as a developer without having to install anything on my machine. Now the difference is the dev container. Think of it as a preconfigured code space. This is my understanding, and if anyone wants to correct us or like the code space in the def containers team wants to like come on to the show and lemme know how wrong I am, let me know. But my, my thinking and like my understanding, I think. There's basically a pre, if I just, if I open the code space and I don't have a dev container configuration, it just gives me a default one that has stuff installed for me, but I can create my own that a code space or VS code could open and connect to it. I think code space as a dev container, that's preconfigured, but that could be the wrong notion. But like rest assured, I opened this inside of, I opened it up. There's a terminal and I said.net version and it returned 7.0 like yeah, it's installed and it's ready to go. And I have my workspace, which is my code files, and if I do, you know, CD source slash web, um, I should be able to go in. I just do this, I wanna do that best web and I should be able to like run my. [00:18:25] Frank: So is that a Linux machine? A Windows machine? What is that? Uh, your virtual machine, your dev container. What is it? App. [00:18:33] James: Oh, it must be [00:18:33] Frank: Linux. Okay. Yeah. Mm-hmm. . So that's neat. Okay. So it's a dev environment, but you can still obviously run your app and that makes sense. Uh, right. So you can run.net, run. And hopefully your little website will pop up. It, I, I am guessing the URLs are terrible. Hopefully for security purposes, , [00:18:52] James: that's what I'm, that's what I'm, hop I am at this point running do net run. I'm gonna see what happens. I haven't, I didn't try this, but what ended up happening to my surprise is like I installed the extensions, like I installed the, yeah, the C sharp extension. I installed the bicep extension and then everything just like lit up and it was magical. And I got insense for all these things. And it was like amazing. [00:19:17] Frank: Okay. I, I have to pop the amazing balloon just to say this is, it is actually a free service up to like 60 hours per month. Mm-hmm. . But after, I think different pricing, everyone would go, go check the pricing, but this is a pay service. You get some free upfront, so, I am curious, James, how does it remember state at the end of your deving time, do you really have to commit to a repository or will it save away, uh, an image of your hard drive at snapshot time? [00:19:50] James: Well, the code space is associated. This is the difference actually with, um, with what we're talking about the, the code space. I just don't go to GitHub and say, gimme a code space, a code space. Mm-hmm. is of my re. Okay. [00:20:06] Frank: Okay. Mm. I'm still thinking, I'm hoping you still have some, um, temporary storage. So if you just put a file hello text, I wonder how long it would persist for without committing [00:20:18] James: it or anything. So I think what happens is when you said a snapshot of your desktop, I think what happens is when I say Stop, stop code space, it. Tears down my code space and takes a snapshot of that. So it, it's a, it's a snapshot of a VM, I believe, or, or similar type of scenario is my understanding of it. Cause like right now, cause I did this like two days ago. I had some changes in a, in a code space and it was all checked out and I didn't commit anything yet. Right. So things are there. I opened up the code space again, it booted it back up, and then it just returned me to my state of where I was. [00:20:54] Frank: Very nice. Okay. That, that's always my concern with cloud services. I'm like, but I never finish anything. All my tasks are half done . Yeah. So I need a way to resume tasks without having to actually be a good programmer and create branches and all that kind of stuff. Yep. That's good to know. Yeah. And so that's pretty generous. 60 hours free that you can basically abuse Microsoft servers for . Yeah, I'm sure there's gotta be a million limits on that, but 60 hours for free, you get a virtual machine, that's not bad at all. [00:21:27] James: Yeah. And there's even a whole setting up your C Donnet project for GitHub code spaces tutorial that they have. They have a little template. Um, that's really nice. One thing to your point. Um, get up code spaces Does use a dev container dot js on file so you can, if you're already using a dev container, your code space will use that. Dev contain. [00:21:51] Frank: Okay. See, that's the connection I was hoping for. Mm-hmm. , I kept bringing it up because I'm like, I hope these two things are united because they make obvious sense for them to be, I've already put the time into make into dev container. Yeah. So that's great. So I don't have to . The reason I'm actually thinking about this is, um, I hate installing Docker on the M one. It works, all the virtualization works on my, sorry, on my MacBook. M one. Um, but it's still, I hate keeping Docker configured. It takes up all this space with its images and everything. And the truth is, I don't do 60 hours of web development a month. I just don't . And so this is actually a really nice fit for me to, uh, yeah, just keep all my junk in this code. [00:22:38] James: And I, and I think the, the powerful part of this ends up becoming that, you know, as those extensions and all those things update, you just get access to them. But then the other part of it is to your point is I can be working in this code space and I can just jump from computer to computer or. I could open it technically on my phone if I wanted to. Right. , you know, um, and commit that code. And there are definitely ways and editors to do that, like continuous. And then there's of course other, um, um, GI integrations, but mm-hmm. , you just had your iPad with you. Like this is not a bad way of doing some on the go code coding in the browser right inside of Safari. Yeah, a [00:23:20] Frank: hundred percent. Especially for server work. I like, I, I wish we could do this for app development. You know, I wish I could do this with all the iOS tooling because just today I'm installing a new version of Xcode because this is incompatible. That's incompatible. I wish I could just change a configuration file and all of a sudden I had new versions of Xcode. Won't that be a dream? You could do that with hub actions, but it's terribly expensive. yeah, try to do that. But for Webby stuff where you're using Linux or Windows, whatever, um, this makes perfect sense, especially cuz you, you hate installing like databases and things on your own machine. So already you're gonna be using containers or something on your own machine, so you might as well let let Microsoft give you 60, 40 hours [00:24:07] James: Exactly. Yeah. Yeah. And here's what's also cool about it too, is when you go and create a new code space, you can. You can just say, gimme one from my branch. Like, just gimme one. Just gimme the default. Or you can go in and say, Hey, give me a code. Here's what's really neat. Give me a code space for this branch, for this region. Like let's say you're in Europe, you could say, Hey, gimme a code space. Like make it in Europe. Like, take my code, bring my computer so it's closer, right? So some people, oh, it's just VPN in, right? But then you can also say, Give me a 32 core machine with 64 gigs of Ram and you know what I mean? My [00:24:45] Frank: pricing chart does not include that. James, the pricing chart I see says two cores, 60 hours free, four cores, 30 hours free, eight cores, 15 hours free. So I'm assuming you're 32 core gives you about two hours free. But I don't, we're even gonna let you do that, I think. I think you have to give them money if you want those machine. [00:25:04] James: I, I'd assume so. I mean, I'm at Microsoft, so it's a Microsoft repo, so I get, I get to do that I guess. Oh, I see. Um, I think you have to request those maybe cuz there is a, there is a um, um, you know, actually if you go to one of your repos you can do like create for repo or whatever, and then it'll say machine type and then it says, need even more power. Contact our team. So I'm assuming that that's the case there. Like, let me see what happens when I go to my profile. If I go to like, let me just go to like a repository here. Like, okay, source generators. Oh no, maybe the down seven feature one. Let's see. So I go there and then I tap on code. Give me a new, Ooh, there's set of pre-built. What is that? See, there's like so many things. Oh, there's pre-built set up. A pre-built. [00:25:52] Frank: Well code, I think it's only the people lucky enough to work at Mega Corpse that are gonna get to use the 32 core versions, at least for now. Uh, I, I loved all those Microsoft demos of like 256 core arm machines, so I, I'm waiting for those, but for now, I think I'll stick to my two cores. [00:26:08] James: That's fine. For, for me, it allows me to pick 16 cores inside of my dropdown on my personal. Really. Okay. And then it says, need even more power. Contact our team to enable 32 cores or GPU machines. What does that even mean? [00:26:25] Frank: Oh my God. Do training or something like that. That's [00:26:29] James: inference. That's cool. That's pretty cool. I don't know. Ah, well, [00:26:33] Frank: they're making it very easy to spend money, so , keep it with the person, but I, I do love the ease. Like I said, I already have a dev container file, so this is perfect. I'm hoping I can do next to nothing to enable this and take advantage [00:26:46] James: of it. Yeah, and yeah, then like you said, you could use that dev container locally too, inside of VS. Code, which has that support or visual studio, and then boom, you're good to go. It's nice that it's kind of like standard, you know, for at least for what we're. [00:27:00] Frank: So should, is there anything to continue on your story? So you were you, you had too many arm files, you turned them into bicep files. Mm-hmm. . Then someone showed you the bicep extension. I just need a little conclusion to this story. Was the bicep extension worth all this effort? Was it glorious? Did you finally figure out how to deploy this thing to a new staging environ? [00:27:23] James: That's all I did. So the cool part then is then once I got all the inte sense, it would like gimme the lin and hinting all the stuff that I needed, um, to figure out all that stuff. That, that was super duper cool. Um, so that really helped me, like set up parameters. It was like I was coding for real. So before when I was just doing it in the, in the browser, it was like I was opening notepad and editing. Now it was like I was opening. Vs code with all my extensions and all my stuff in it, and I just booted it up for five seconds. So I dunno. That was to me, so super cool, uh, in general and yeah, we, we totally did it and we pushed out the updates and I committed the code into Maine today and everything was deployed and totally good to go. And yeah, it happened. So, I dunno, just kind of a cool experience where I haven't really found a need where I was like, oh, I'm gonna go. You know, create a code space and start my development on it yet, like mm-hmm. , because I do a lot of client development. However, in this, this instance, I was doing a lot of backend development. So it would give me the ability to scaffold out that infrastructure that I need in there, and I could, they could then see how cool this would be is if you were, for example, Working on a big open source project that you wanted to standardize what people were, were using to build and deploy and created those, you know, dev containers or concurrently at an organization, right? You're all working on projects together. If you used, again, now, you know, code. Configuration as a dev environment. I don't know. It seemed, it just seemed like it was cool, and I was like, I don't know. I just want to talk about how cool this was in my experience of how I got there, which was a long, crazy journey, but I got there. [00:29:09] Frank: Yeah. I, this is all bad because I'm, I'm realizing I, I got very excited for this at one point and it was all because I just got a random PR for someone on, uh, the Fugate website. Mm. people wanted to be able to work on it without installing all the garbage and everything. And the, uh, dev containers were an elegant way. And I, I was just curious cuz I was looking back and they're like, and this could be used for code spaces in the future. Mm-hmm. . And I'm like, oh my God, we're finally living in the future. Even though, um, these people had to drag me into it kicking and screaming because I was like, what is this thing? It sounds complicated. I'm against this, but it's great that. Technology has really grown up. Yeah, and it's pretty easy to use. [00:30:00] James: Now, the next thing I need to figure out is dev boxes. [00:30:06] Frank: I'll stop it. So I am noticing, just, just for reference, um, I do have a dev container in the Fugate Gallery, but there is not a default code space. Of course, like you said, you can create a default code space, but I think I'm gonna take the time to go through all my open source projects and make sure there's a good, easy to use code space there too. Just wanted to put that in there. It, it does take a little opt in. You gotta hit a plus sign. Things like. [00:30:34] James: Boom. Yeah. And to the point of client development, what I'm really, really interested in, and I'm trying this out now, is there's dev boxes, which are in preview and that is literally your work STA workstation in the cloud. Right. So I think the idea there is instead of it being you're limited to, Um, the [00:30:56] Frank: repo it's configuration. [00:30:59] James: Yes. Here's an entire dev box in the machine, but Okay. Unlike a vm, there's preconfigured projects, task based things, deployment scenarios that you can, I guess, I guess, and they're self-service a little bit, so they're different than a VM that's up there. I definitely wanna try that out. Cause I'm like, okay, is that the thing I could get? Which is I have my dev box in the cloud and then I just boom tap it. I'm good to. [00:31:32] Frank: Yeah, I get the argument for that. But I, I think I really like the elegance of the dev containers and, um, code spaces just being very specific to the project. But I get it, like, um, you know, I. I, I'm sure the dev container doesn't support Mac. Maybe it does, maybe I'm wrong, but Mac is never supported. Uh, but it would be neat to get like a dev box for Mac. I'm not sure if they're announced that or anything, but just saying sometimes virtual machines are nice for that. There, there are Mac, uh, cloud providers out there, but it'd be nice if it's all integrated into one place. To use config file. [00:32:11] James: I think, I think it's really fascinating because you have dev container or dev containers and um, code spaces, which is like Linux based, right? I don't think you can be like, gimme a Windows based one. No, I don't think that's a thing, but then Oh, okay. I don't think so. I don't know. I could be wrong. But I think dev boxes are window based thing things. [00:32:32] Frank: Ah, okay. Gotta get the windows in there somehow. Yeah. That sounds like you're just getting a temporary virtual machine with good backups, hopefully. Yeah. And all that security stuff figured out for you. And no long term contracts, all that good stuff that we like. But I don't know, um, I, I feel a little silly that I, I was so deep into dev containers and I never really took advantage of these code spaces, so I'm really glad that we did. This episodes a little eye opening, I'm sure we've mentioned in the past, and I was like, yeah, yeah. That sounds okay. But I think you've really made it clear how advantageous this is. Yeah, I [00:33:12] James: think so. I think it's pretty neat and I want to just kind of. Test it out a lot more and see what is next. You know, I was kind of against this a little bit in the very beginning. Um, oh, this is cool. I'm like, testing out Deb Box. This is in preview, but you know, I was kind of against it in some form. Cause originally I was like, oh, like, you know, don't tell me, you know, don't tell me what I'm gonna install, you know, on my machine. But then it really comes down to like, oh, actually, like maybe that's pretty, pretty cool. [00:33:47] Frank: And I'd like it for like, take an app like Ice Circuit. I, I can't do like the Mac builds in there, but I can certainly do the, um, test builds and run the tests. Mm-hmm. . So I can definitely set up a code space even for ice circuit that I, I can at least play around with logic and different things like that. I mean, there's even a web version of Ice Circuit in that folder somewhere. I could even run that. But, uh, yeah, so I think even, even if. Even if your code is for an app, I think there's still nice tricks you can do with this just for quick, quick coding without having to set up your [00:34:24] James: environment. Yeah. Well, I'm also interested what other tools people are using too. I know that these aren't the only tools that gotta be out there. There's gotta be a bunch more. So if you're using some other cool tools with your get up projects, or maybe you're not using it up and you're using other things, like let me know what that experience is like. Or maybe we've actually, you know, [00:34:45] Frank: Doesn't everyone, everyone does everything in the cloud now, right? We're, we're probably just old people because we still like dev machines, . I [00:34:51] James: think so. Could be. Well, you. God, I could go deeper on this, but I think that was sort of the, the final frontier that people are saying is like, don't people just really like their dev machines and they don't want that stuff? And I would say yes, but also no be because I do like having all my things local, but here's what I don't like Frank. I don't like having to install all, like when I need to like do one specific thing, then I gotta go install a whole. You know, a whole workload or a whole thing. And then there's all these new gets, like I was clearing out my, you know, I was clearing out my machine packages. Okay. Yeah. My packages, I was clearing out my packages and all this other stuff. And sure enough, like I just had like a ridiculous amount of, um, storage, like being used and it was just cluttered up. It's what it was. What it was, and I was like, okay. Like it'd be nice to not have this all cluttered on my machine, for example. Mm-hmm. . [00:35:54] Frank: So good. Uh, I just want all of this for iOS development too. Please let it. That'd be cool. , [00:36:02] James: that's the final frontier. That is for sure. So . Cool. That's Apple. All right. Anyways, so that's what I had. I don't know, I didn't really have a lot, but I thought that was [00:36:12] Frank: okay. I dunno. It's funny, we, we keep talking about web , but uh, it's, it's even funnier that you got put in charge of, uh, making sure this deployment is gonna work. And so I'm glad you persevered and I'm glad you learned something and got to share it with all of us. Yeah, I think it worked out in. Yes. [00:36:29] James: And if I ever, whenever dev boxes become a thing, I'll test it out. I mean, they're in preview. I don't know if I have access to it, but if I do, and once you do, that'd be cool to try out too. But yeah, go try this on some of your projects. I think especially for libraries, you have test projects, like I feel like it'd be really neat. I don't know. It's cool. Especially if you're just like, I don't want it to clone a whole thing. Do a whole thing, get a whole thing going. Mm-hmm. that, that's what I think I, I realized what I really liked about it. [00:36:53] Frank: And like you said, it's, it's those vs extensions. I never have the right ones installed cuz some are annoying and so I install 'em, uninstall 'em per project. Oh yeah. So I'm taking advantage of that . Exactly. [00:37:04] James: Funny. Exactly. So. All right, well thanks everyone for tuning in. Let us know what you think. Um, Yeah, I don't know. This is so cool. I like just new technologies and I know where like code spaces aren't like new, but you know, whatever. They're new to me. So that's all I, that's all I care about. So, um, yeah, that's it. Thanks everyone. [00:37:26] Frank: Thank you James. [00:37:28] James: Yeah, I think we did it. Cool. All right, cool. Talk to y'all later. Bye. Bye. Wait, let finish it off in the right way. Well, Frank, that has been yet another episode of Merge Complex, so until next week, I'm James Ack now. [00:37:42] Frank: And I'm Frank Ruger. Thanks for listening. Peace.