00:00.28 James Welcome back everyone to Merge Conflict, your weekly developer podcast where Frank is tilted slightly to your right and or, oh, oh, oh, oh 00:09.27 Frank I don't know where center is. Hi, hi James. 00:10.78 James but you know you look sender 00:11.55 Frank I'm not centered. 00:12.88 James youre out centered 00:13.13 Frank Centering is boring. 00:14.42 James um yeah 00:14.62 Frank I like it when you are in the corner like Mr. Robot. I think we should do like dramatic video effects and things like that. 00:22.26 James It's hard to center a div and it's hard to center a Frank Krueger. So yes, Frank Krueger with me as always. I'm James Montemagno. We're back with an app filled week. I mean, we've been gone for a week and yet we may have crushed so much app code this week, Frank, that it is kind of crazy. And I've did some ridiculous things that I'm really excited about ah in not only just my existing apps, but porting of apps, updating of apps, 00:46.81 James ah porting other friends apps as well with them, with them in their repo, contributing back to the ecosystem. 00:51.03 Frank Okay. Ah. 00:53.97 James But I want to start with a new app this week, Frank Kruger, because it is but but but ban on lightning rounds, 520, put it, boom, boom, 520 episodes. 00:59.35 Frank Oh. Keeps coming. 01:02.84 James That is 10 years of podcasts. 01:03.65 Frank Wait, we have more than 500 episodes? Oh my god. 01:07.18 James Yeah, it's a lot. I mean, so there's 52 weeks in a year. 01:13.44 Frank Oh. Hello. 01:14.36 James and so So, you know, to but don't forget leap years, right? 01:17.24 Frank Ten-year anniversary, babe? Hi, James. 01:21.66 James Did leap year mess us up on the 10? 01:24.26 Frank Oh, okay. 01:25.08 James I don't think so Shouldn't have that much, but like did it? I don't know. 01:29.53 Frank No one understands calendars. It's fine. We'll just pretend it's our 10 year anniversary. How about that? And we'll make up like, is that the diamond anniversary? Probably not. We'll call it the um copper anniversary. 01:41.03 Frank It's the copper anniversary. 01:42.07 James Hmm. 01:42.47 Frank There's probably an anniversary for 10 years. 01:44.70 James It could be. What we should actually do is go all the way to the very, very tippity top. July 11th was our first episode. So if we went to like, but year over year, and we would get there. 01:51.74 Frank Okay, so close. Three more weeks, we'll be there. 01:54.94 James Yeah. Three more weeks. 01:55.90 Frank Or two more weeks in pod time. 01:56.29 James We'll see. Yeah. So let's talk about the new app, ah Frank, because weve got lightning topics, five minutes each. We'll see how we do here. ah So already, 02:08.24 James GitHub Copilot, at least my favorite agentic development tool um and and possibly yours, has been available. Obviously, it started its life and its breath sort of on inside of VS Code, moved to Visual Studio, other IDEs, GitHub.com, into the CLI, and then into a brand new GitHub Copilot app called the GitHub Copilot app. 02:20.00 Frank Mm-hmm. 02:29.16 James I like to call that they Tarantino'd it, where if other folks are starting with the CLI and the app and then going to other platforms, you know they started inside the editor that's there. 02:32.49 Frank Oh. Oh. 02:38.44 James And the GitHub Copilot app is out, and it is basically not just a home for GitHub Copilot, but sort of home for your entire software development lifecycle on GitHub and also with GitHub Copilot, because it is not just agent sessions that you have, but it's also... 02:56.92 James your backlog, your work, your pull requests, your automations, and a whole bunch other things in there. Now, have you been along for the MVP ride of the GitHub Copilot app for a while, Frank? 03:08.00 Frank I have, but I haven't been a good tester. You know, I'm the kind of tester that uses it for one hour, thinks a lot of bad thoughts and then moves on. That's how I like the beta test. And I appreciate everyone out there who's a better tester than I am. So I did try it out a long time ago, but I'll be honest, I haven't touched it. Basically, i went from beta one to release. So I ignored all the progression in between those two things. 03:33.34 James Yeah, it's really ah neat. So if you've ever seen like maybe ah Codex or Claude or the agent windows inside of VS Code, you can think of it as multi-session agent management. 03:45.09 Frank Mm-hmm. 03:45.36 James So you have multiple repos or folders on your machine. It doesn't matter where the code's at. it doesn't actually have to be on GitHub, spoiler alert. um But You're able to fan out these different sessions to work with different agents. You can do it locally or on work trees. 04:01.18 James The cool part about this is that it is it is extremely deeply integrated natively with GitHub. And what I mean by that is that when I am coding um with the agent, it is able to obviously get deep insight into my issues, and into other pull requests, but it has this concept of agent merging. 04:21.59 James um up to the point where you decide if you want the agents actually merge. And what this does is it will be aware of your CI CD pipelines, it will be aware of code reviews, and it can even be aware of pushing code, waiting for CI, kicking off builds, monitoring it, and getting that back. And it's not just an agent merge, it's even during like normal coding flows that you can kick off these different integrations that it's doing. So I have this all the time, especially with my Mac applications or Windows apps that I need to not only kick off things, but I need to run like a ah sort of a burst of different CI pipelines um that I may need to do that involve different signing that I may not do on my local machine. So it can not only start to merge, it can wait for those things to come in 05:11.22 James fix them in real time, also kick off a code review, respond to the code review in real time, implement that and say, hey, we've done not just your checks and balances, but also all of the other agent checks and balances. Are you ready to merge in at that point? Now, the cool part about all of this is that in addition to that, um, 05:32.21 James Sessions can kick off additional sessions. So you can say, hey, I want to just have one chat area, go find the top five bugs and it'll automatically do that. 05:36.25 Frank Yeah. 05:40.38 James And it'll orchestrate all those sessions, report back to the main session. But sessions, Frank, can hop across repos. This is unbelievable. 05:51.16 Frank Well, it's about time. 05:53.21 James This is unbelievable because if you're, for example, maybe working in a sub module and a sub repo and you want to say, Hey, I've just implemented this fix. I want to update this. This is working good. Go apply it to this. It'll kick off a session and it will report status back from a different session in a different repo back to the main one, which is bananas. 06:16.47 Frank Yes. um Thank you, GitHub, for realizing that we use multiple repositories you know for our projects. um It only took a couple of years for them to realize that, so thank you. 06:26.54 Frank um I do have to laugh a little bit because like i I felt like um it ah it can be a little bit of a token hog because it likes to use those tokens. And so when they announced the feature of like, it can kick off other sessions, I'm just like, well, there goes my monthly allowance. 06:41.22 James Ooh. 06:41.94 Frank And that's That's going to be gone instantly. And yeah, there's like a few like skills just for that. um I forgot what, what did they call the um skill that i'm I'm reading through my notes? Cause I took notes on this puppy um because we' we've always, we've had autopilot, we've had fleet. Now there's like some other skill where you can launch off all these multiple sessions and everything. 07:05.74 Frank I think it's called like super crazy mode or use all my tokens mode, something like that. um But it's cool. 07:10.97 James I don't know 07:11.79 Frank I did have a funny critique, though. I was really laughing because um my my first annoyance with it was it wasn't actually handling my sub modules very well because a lot of my apps use sub modules and it's like, hey, buddy, I would love to change that thing, but it's in a sub module and the sub module is not checked out. 07:20.89 James know. 07:29.18 Frank I'm like, dude, just check out the sub module. It's like, all right, sub module checked out. Now I can work on it. And then it's like, ah Gee, it would be nice if I could commit the sub module, but I don't have an SSH key for that. 07:39.57 Frank I'm like, babe, you're literally using an SSH key that can work with all this stuff. It's like, you're right, dude. I can totally do that. And then it checked in all the codes. Like, it's capable, but I think they got to tune the system prompts a tiny bit. 07:48.98 James You got it. 07:51.19 Frank You got to poke it a little bit. 07:51.51 James Yeah, there is It's a slash orchestrate, which is coordinate work across sessions and repos, multiple repo changes. 07:57.06 Frank There we go. 07:58.52 James There's rubber deck. There's also spar adversarial reasoning, uh, research. 08:01.20 Frank Spar. I haven't tried Spar yet, but that sounds fun. That sounds like what you do when you pit multiple networks against each other. So I do want to try out Spar a little bit more. 08:09.18 James Yeah. 08:12.28 James Yeah. 08:12.47 Frank um it's It's been good. It's been working for me. Like I said, my biggest complaints are it turns a little bit on tokens, which is a little annoying. But I like how it um it does work trees. So you can actually work on multiple things at once. It's just nice having that baked into it. 08:27.54 Frank um And it's actually it actually found my build tools. One of the early beta versions like refused to find any of my build tools and that was a little bit annoying. But like even with its multiple work trees, it's able to build everything. And I do like that it's PR focused. Because um I use codecs a bit too. 08:47.16 Frank And it's like pulling teeth sometimes to get it to like commit things into a PR and manage all that. Like it can do it, obviously it can do it, but it takes a lot of typing and prompting to get the little sucker to pave. So I like that this one's kind of like PR first. And I i prefer that kind of workflow. 09:03.26 James It is super duper PR first, um, which is great. They just added support for local models. So you can add a provider and you could add your own local model in there that came like a day later, by the way. 09:11.67 Frank Ah, okay. 09:12.14 James So under my under model providers, that's, 09:13.06 Frank That was going to be my major critique, and you've already, you've you've beat me to it. Okay, so they actually support local models. That's good. 09:19.48 James It's there. Plugins, MCP skills, all that stuff. Tons of themes. You can do random themes. have the default GitHub. Voice dictation in the box that also came in one day after a release. 09:27.93 Frank Yeah. 09:29.18 James And then, ah yeah, like you pointed at a folder, it picks up everything if you want, which is really nice. or You can automatically clone things. I do agree with you. I think that this... Working with PRs is so important when you're working with work trees because um it makes work trees are nice to work on multiple things at once. 09:47.54 James But this whole concept of work on multiple things causes merge conflicts in this. And that agent merge helps out all of that in real time instead of prompting it. 09:52.12 Frank Yeah. 09:55.42 James has all of these built-in school skills that handle it for you automatically. And that is super duper nice at the end of the day. And then additionally, yeah. Two other the things I want to point out is like, it does have the the concept of my work. 10:07.90 James So it has, you can filter all that stuff, but automations, if we remember agentic workflows, Frank, remember those, we talked about those kind came in the butt. 10:12.73 Frank Yeah, they they renamed him them again on me or something, so I probably have to redo all of mine. But yeah, they're they're back. What do they call them now? 10:22.36 James Just automations. 10:24.34 Frank Automations. Another word. Okay. 10:26.26 James at At least that's what they're called. And I think they might just be using agentic workflows. I don't know, but but you can set up like changelog drafts, issue triage, performance improvements, things that will happen on a recurring basis. 10:30.78 Frank Of course. 10:37.98 James Cron jobs, baby, they're back. And I'm super duper excited about that. 10:39.64 Frank so isn 10:41.45 James And this has been a great starting point. um And you can one click hop into VS Code. And the cool part about that integration is that it will not just open your work tree, but it'll also show you your... 10:54.55 James your actual session too. Like these sessions on that work tree will show up because the sessions are shared in the shared state across everything. 10:56.71 Frank Yeah. Right. 11:01.63 James So that's really nice. um You can open obviously in VS code or IntelliJ or any other things like that. It'll do the same thing, but it's been definitely one of the areas where I'm working on and I'm, spending a lot of time if I wanna be super agent first, right? And I'm not really caring as much as with the code, but I can hop into VS Code and and then pick up exactly where I left off, which is cool. The most interesting part that they showed at Build, and it took me a while to actually grasp this concept, is as developers, we install these developer tools and we are, for all intents and purposes, 11:38.39 James you know, we have the way that that team told us to work with agents. Like you are working with sessions in a list from repos. And for that repo, this is how you're working with your issues, assigning things and visualizing everything all at once. 11:54.78 James And the GitHub Co-op ad app has this concept of a canvas, which allows you to have a palette, an area, basically almost the entirety of the UI 12:04.07 Frank Metaphor. 12:05.34 James Yeah, it's a metaphor. 12:05.62 Frank Okay. Okay. 12:06.58 James i'm going to see if I could could grasp this. But a canvas allows you to create a canvas to say, I would like to work in a kanbans but Kanban style with my agents. 12:08.70 Frank ah 12:17.46 James I want you to create a Kanban board with all my backlogs. And when I drag and drop around, I want you to assign to agents and update them. in real time. Or maybe I would like to create a canvas that is aware of my repo and it'll draft all of my, you know, in my um release notes for me and it'll find open issues assigned to this and I can assign to the agent and it'll spin up things. 12:38.94 James So what I did recently is I created a canvas that is like Tinder. So it opens up a canvas and it has a stack of all of my issues. 12:45.18 Frank Okay. 12:47.91 James So I'm triaging my issues. So how do you triage your issues on getup.com? 12:50.45 Frank Mm-hmm. 12:52.72 James You open one. ah What do I do? What do I do? What do i do? So I open up this and has a stack of cards. Here's all of mine. I can swipe to the right to assign it to an agent that will start a session. 13:01.82 Frank 13:04.12 James It was a start a brand new session for me. 13:04.57 Frank h 13:06.17 James I can swipe to the left to close the issue for me automatically. I can swipe up and I can either get a pre-filled list of recommendations of comments to add, like we'll work on this later. We'll do this thing later. Need more information. 13:20.31 James Or I can type something in or I can swipe down to just come back to it later. So I can triage my backlog in this unique way, but it's integrated with the entire agent loop. 13:27.26 Frank Like it. 13:31.14 James The entire harness is available, which means you have access to everything ah your your issues, your workflows, your integrations, the agent sessions, anything you want, you can kind of envision working with these things. 13:44.34 James um And that's actually how the GitHub Copilot app team works on it. They open up a canvas, which is their backlog, and they triage and they assign things out through the GitHub Copilot app. 13:56.33 James It's crazy. So, 13:57.85 Frank I like that a lot because um even though I'm not 100% sold on the metaphor and how how you actually use it, like I would like to see a lot of pre-baked templates and all that stuff, but I haven't used the feature so I won't be too critical of it. 14:10.46 Frank But my biggest complaint with um these agent UIs is the user interface just has not improved in the last six months. Like we all we all got stuck with these silly CLI ways of interacting with these agents. And that was just a fun random detour. ah Hopefully we got all that out of our system. So now that we're moving back to GUIs, thank you, it'd be nice to see an actual... 14:35.30 Frank let's be honest, all these GUIs right now are just clones of the CLIs. They're still just checkboxes. They're still just chat windows showing a diff. So be nice to actually up the UI game a little bit. 14:46.06 Frank And it sounds like that's what Canvas is trying to do. 14:48.92 James Yeah. 14:49.02 Frank um Now, I would like them to actually pre-bake a few of these canvases in because like your Canvas sounds awesome. um i would I would like that to just be a view mode that I could switch to. But making it configurable um and making it... 15:02.07 Frank per what I want it to be. that That's a good idea too. But ah you know let's let's work on the UI, everyone. like get This whole chat-based thing is just for the birds. 15:13.21 James Yeah, the ah there's awesome copilot and I dropped a link that has a a bunch of extensions, a bunch of the team members and community members have done so far. There's about 11 in there. But the one I did is called backlog swipe triage. 15:24.44 James The accessibility Kanban, I think that's what the team uses. 15:24.74 Frank OK. 15:27.48 James you can kind of click on the image and see it' so it's like a Kanban style. And then the one that I really like, which I think is really fascinating, there's feedback themes that will like group all of your backlog by themes to help you dive through it. And it uses the copilot SDK. But the very bottom one is maybe my favorite because you can use it in any session. It's called, where was I? 15:51.13 Frank Yeah. 15:51.26 James And the so you have all these sessions and all these agents and 15:56.77 Frank Yeah. 15:57.88 James You come back to them the next day and you're like, what was I doing? And what did I do? And what it will do is it will give you all of your uncommitted changes, recent commits, and summarize everything that you've done. 16:02.33 Frank Yeah. 16:08.26 James And they'll tell you, when did you last do something on the session? 16:08.98 Frank yeah 16:12.46 James Which is crazy. It's ah very it's like it's like a history of of what this session was. 16:14.55 Frank Yeah. 16:17.14 James And then of course, you know it's it's it's just like a HTML window. But you know what I mean? It's kind of cool. It's just like right there. 16:22.00 Frank Yeah. 16:22.72 James Yeah. 16:23.45 Frank And this matters because I'll be honest, I am using three different AI agent programs like VS Code, Copilot, and Codex, as I mentioned, on a machine. Then inside a virtual machine on that machine, guess what? 16:36.15 Frank I'm using all three again. And then i have another computer over here. 16:37.77 James Hmm. Yeah. 16:39.91 Frank Guess what? I'm using all three over there too. So I have like nine apps. 16:41.82 James yeah 16:43.87 Frank Each app can have multiple sessions now. I don't know what's working on what. anymore I'm just like, i'm I'm like clicking through. I'm like, I know I started a session over here. So I know they can't solve the problem of like, I'm sure it doesn't integrate with the VS code and everything. 16:56.79 Frank But anyone who's working on this, please come up with an open standard for all these sessions and everything. I'm sorry. Another critique of the co-pilot app is like, it doesn't pull down all my sessions that are already on github.com. 17:08.73 James Well, 17:09.40 Frank Like there's a co-pilot section there that has all my agents and all a big session history there. And that session history doesn't come down. I'm like, guys, like... It's all the same thing. Just like they're all just chats. 17:20.99 Frank Like, pull them all together so I can find this stuff and index it, please. So I hope everyone will get on this. 17:28.33 James I won't announce or say anything, but I will drop a link or you can just Google with being agent host protocol. And you can give that a little looky. 17:34.01 Frank Okay. 17:35.57 James the The key here is it's from Microsoft and it says agent host protocol synchronized multi-client state for AI agent sessions. 17:42.10 Frank Thank you. 17:43.27 James Yeah. It's actually being integrated into vs Code and a bunch of other things already. 17:44.78 Frank Thank you. 17:47.47 James So anyways, take a look at that. i won't I don't have anything to announce at this point in time, but I'm sure that many things that you're talking about, if they annoy someone else, they probably are being worked on. 17:49.18 Frank ah Okay. 17:54.33 Frank consistent Yeah. Yeah. Yeah. 17:56.46 James But let's change topics because we're way over five minutes and the GitHub Copilot app deserves much more. But I think you need a lot of time to invest and get into it actually to use it more. and I'm still on my journey too, even though I've dogfooded it for a long time, but I use all of our tools so much. 18:08.79 Frank yeah I'll report back on Canvas. Yeah. 18:11.26 James Yeah. Give it a go. and There's a slash create canvas and you can come up with ideas and you can tell it to do stuff and it just builds it. um Let's talk about a little bit of Windows development. Frank, you and have been on a Windows app development tear this last week. 18:21.02 Frank he 18:24.98 James I'm interested in your journey to WinUI 3 development and what caused you to um bring, maybe it was build, like all the Windows dev stuff is back, but maybe that's what was your big boost for WinUI development this week. 18:33.47 Frank Yeah. 18:38.78 Frank but You know, that would be a good reason to do it. i have a much worse reason why I started doing some native WinUI development. You know what? It's the background ah shading they put on all the apps now, the little like purple shading. 18:52.60 Frank And specifically, i believe it's called the Mika back background or something like that. 18:53.00 James Mm-hmm. 18:58.64 Frank That's on all the apps. I'll be honest, I haven't used Windows in a long time. I'm a Mac person. So I'm a Mac first lifestyle. But I was trying Windows out for, i forgot what I was working on, but I was just trying it out. 19:11.86 Frank And I was like, you know what? Windows 11 doesn't look half bad. It's like they did some ah design work here and it's looking half decent. And then I opened my app in it and I'm like, that's not looking half decent. 19:24.03 Frank That's looking less than half decent. We'll call it a quarter decent. And I got a little bit upset with myself because I do pride myself on having good native UIs on all the platforms. But it had just been far too long since I did like a proper end-to-end UI refresh of iCircuit on Windows. And I'm like, you know what? Windows 11 is looking decent these days. I need to make my app look decent and adopt modern UI stuff. 19:52.44 Frank So I'll be honest. It's not the best business decision i ever made because I don't make a ton of money on Windows. But at the same time, it's more of a pride and quality thing. And I do have a bunch of Windows users out there. And I'm like, i need to I need to make these people happy, A for myself, B for them. And so I just wanted to make my app like a first class, good looking power app on Windows. And so I've been um porting iCircuit to Windows for maybe the fourth or fifth time. The first time I did it, I did Windows 8 RT, WinRT in Windows 8. 20:31.45 Frank in windows eight The second time I did it, um i think was I think it was UWP. And then i never quite finished that one completely because I couldn't make it pretty and happy. 20:45.70 Frank Then I worked on a WinForms WinDesktop version of it. 20:49.82 James Wow. Nice. 20:50.71 Frank Yeah. Yeah. And then I worked on a Maui version of it, and that was getting closer because that actually gives you a lot of the WinUI, Win11 stuff, but not quite enough. 20:55.32 James Nice. 21:02.23 Frank it just there There were parts of it that weren't quite native-y enough for me. So i'm like, you know what, just full in, 100% in, WinUI 3. 21:08.91 James Yep. 21:10.82 Frank We're not supposed to call it WinUI 3 anymore. We're supposed to just call it WinUI 3. So full WinUI app and just going for broke. And I just want to make a good looking, powerful native Windows app, which will also be Windows 10 compatible, but make it definitely look good on Win11. So that's been my ah crazy journey through Windows. And I'm mostly just looking forward to deleting all the old Windows projects and just having a nice, fresh WinUI version of the app. 21:39.93 James Yeah, I've been kind of in the same boat because I have Tiny Clips, which is my little clipping application. and never was going to bring it over to Windows ah because there's Snipping Tool. And I love Snipping Tool. I use it all the time. However, Snipping Tool snips extremely well, but it doesn't do some of the like editing that I want and some of the niceties that maybe I did into the Mac app. 22:03.54 James That would be kind of cool to pull in. 22:04.12 Frank Does it even make GIFs, bro? Okay. 22:06.46 James It doesn't make GIFs. It does record videos and it even does mic and audio things, which is nice. 22:09.24 Frank Okay. 22:11.66 James And I, and I do use it all the time, but you obviously have to like know the the keyboard shortcut or whatever, but I do want it in the toolbar. ah that's what I really like about my tiny clips is just right there. And I'm a button clicker, even though I have a, you know, keyboard shortcuts, but they're there. 22:26.07 James And I also always have this idea of that. I really, um 22:32.31 James There's like a markup that I do write a build apps for myself, but there's a markup that I do that. Yes, it's built into paint or yes, it's into Photoshop or whatever, but I want to just really lightweight, add an arrow, do a curved arrow, do a thing, do numbers, X, Y, Z. 22:44.95 Frank Right. 22:45.56 James Um, and I want that built in annotations. 22:46.74 Frank Annotations. Okay. I wasn't sure what you meant, Markup. Okay. and Yeah. 22:49.91 James Yeah. 22:50.22 Frank Gotcha. 22:50.87 James So the first thing that I did more importantly is that I've been messing around with the windows developer config. So this is a script that you can run on your windows machine that for all intents and purposes, like automates the setup for your machine for development. 23:04.54 Frank Now you tell me. 23:04.90 James So yeah. 23:05.82 Frank Oh my god, James. You know how many progress bars I've looked at over the last five days? I've just been living in progress bar land. 23:13.34 James I do want to remind everybody here, if you go back to the build episode, i basically told Frank all this before. So this will install all sort sorts of stuff. 23:21.13 Frank I'm sure I listen. 23:23.70 James So it'll install all of your PowerShell, Git, CLI, VS Code,.NET, Python, Node, Core Utils, OhMyPosh, PowerToys, a bunch of terminal integrations, Cascadia fonts. 23:34.82 James you know It sets up dark theme, developer mode, long pass, file explorer, start search cleanup, edge policies, other workspace de-spaults. 23:39.93 Frank ah 23:41.72 James It like removes all the widgets, all the things, sets up WSL, Ubuntu, run once, and a bunch of other stuff. It does all this stuff for you. and It takes a while to run, but it just runs it and it does it all for you. and I'm always setting up new machines, or i even ran this on my existing machine, and it worked great. 23:55.74 James and um The cool part about that is that it also installs, I think, the or at least somehow I got the WinUI CLI. And actually the WinUI development team has been on the team, or on the on a RIP, where they announced a new VS Code extension, they announced a new CLI, new WinUI templates, um and also a WinUI agent plugin for anywhere that you want to code. And what I realized is that there's a WinUI plugin agent and a bunch of other ones, like a debug, a test and whatever agents. 24:27.00 Frank Okay. 24:27.74 James And I was like, Hey bro, you have the CLI, you got the templates, you got these things. Let's, let's go. Let's, let's tear on it. 24:34.87 Frank hu 24:36.03 James And I was inspired because use tons of power tools and I wanted my, my right clicks. I wanted my UI, I wanted to be super good when UI, and I wanted to be beautiful because i agree. I think there's some beautiful UI. 24:46.75 James They've done a great job. And I really like it. And in under 24 hours, 48 hours, I had a full app like ready to go and a good prototype on there. 24:56.09 Frank nice 24:57.66 James And you go tiny clips dot app. Then you'll see there's a Mac and a Windows version ready to go for you because we'll talk about the next topic of me getting it on to Winget. But I'm on a tear. and And I actually made a statement on Twitter a while ago that I said I am rewriting all of my my, my windows apps in, in when UI now that might be through Maui or it may just be through when you, when you, depending on the app and what I'm doing. 25:20.07 Frank Yeah. 25:20.95 James But that is my, my goal at the end of the day. Cause I want these native apps because you and I are like native, you're native app people at the end of the day as well as, you know, we you can't get away from us. 25:26.84 Frank Yeah. 25:29.89 James It's just, it's, you if you know, you know, 25:33.82 Frank Yeah, it's like, um I mean, it it's such a, I don't know how many users actually care, but I care that like the background of the window is being rendered by the operating system. 25:43.98 Frank And it's not me choosing a random theme. It's when the user switches from dark mode to light mode, my app responds immediately. It obeys the user. 25:52.57 James Yeah. 25:54.10 Frank The font sizes, you know, one of my biggest critiques on Windows right now is like, feels like every app, different app has a different font size because like they're all doing DPI awareness incorrectly, mostly. 26:06.70 Frank They're all reading system settings, mostly incorrectly. And a lot of them are just web apps now and they're just off doing their own style sheets. So like it drives me a little bit nuts just looking at all the different font sizes and everything in Windows apps. 26:17.98 Frank So I just want all that provided by the OS. 26:21.05 James yeah 26:21.13 Frank I i think there's beauty in conformity. You know, and it also means like your app um kind of auto updates itself when Microsoft decides, oh, we're going to change how Windows Chrome renders, then your app just picks that up and it keeps your app looking and fresh. 26:24.60 James yeah 26:35.46 Frank And I don't have to recompile it for every little whimsical change Microsoft decides to do to their operating system. So there's those kind of benefits too. Plus, I just want to look good on the store. 26:46.10 Frank When you know people look at the screenshots on the store, they should be like, oh yeah, that looks like a modern app. That doesn't look like you know just a website in a shell. 26:51.62 James Yep. 26:54.56 James Yep, exactly. 26:54.95 Frank No offense to websites in a shell. I get it. there's program There's pragmatic reasons to do that. But I'm a solo dev. I can do a native app. It's fine. 27:05.59 James I agree. Like when I open a Mac app or an iOS app or Windows app, like, you know, I know, I know what it is. I know the toolbars, I know the things. And I agree. That was one of my biggest motivations of moving. you know, to modern stacks for my cadence and my stream timer and these other things, whether it be Maui or native language or, you know, native when you want, whatever it is, is like to get back to my native roots that are also important to me, whether the app is cross-platform or not. 27:27.39 James And I think that that has been one of my key 27:28.26 Frank Yeah. 27:30.97 James things that I've really enjoyed doing so far and tying in those isms to make all the apps that I'm using, especially ones that I create for myself, all have this, the native user interface. I can hop around and the things all make sense to me. 27:43.18 James The toolbars all make sense. All these things make sense. The slide out all make sense. So when Apple updates their UI, boom, it's the same thing. So I've been enjoying it. 27:49.53 Frank yeah 27:49.78 James And the this the third thing here that I think is so fascinating, you're not there yet. You might have it easier is the packaging of these up. 27:57.18 Frank Oh, no. 27:58.22 James Yeah. 27:59.10 Frank No, I don't have it easier. No. we We'll see. im I'm curious to see what you say here. But um packaging, I think, is still one of the biggest mystery boxes in my life when it comes to Windows, because I feel like I don't have enough apps on the Microsoft Store where I feel like intuitively, I don't have a good intuition for how to set up my app and get all the certificates right and get all the publishing identities right and all that stuff. 28:18.63 James Mm-hmm. 28:22.82 Frank I have two different Microsoft.com accounts and it feels like every piece of software uses the wrong one. No matter, you would think it's 50-50. It's not. No, no. They know which one to use and they use the other one. that's That's how the software seems to work. So I'll let you continue with packaging, but don't you dare for a second say I have it easy. 28:40.38 James ah well I've been spoiled because honestly, to get things onto the Microsoft store, it's usually inside of Visual Studio, right click, publish, go, and it does everything for you. Version number this, that, it'll upload your binary, do all the the whack tests, all these other things, and get it onto the store. 28:55.98 James And that's honestly the easiest, in my personal opinion, is inside of Visual Studio, you got the Win UI development, just now maybe the CLI does it for you automatically, which would be great for CI CD, but it automatically automatically will get the certs, get everything for you. 28:59.90 Frank Okay. 29:09.87 James It's kind of like Xcode, kind of like the build where it just like does it all auto, as long as you're logged into the right account, Frank. 29:12.98 Frank yes 29:15.80 Frank You say that. 29:17.18 James No, it does, I swear. 29:17.43 Frank ah Yeah, well, no, yeah, it does. But if you look in the CS Proj, there's like a bunch of random little properties that get set with like three paragraph comments saying when to uncomment and comment that one. They keep moving where publishing profiles go. You say they auto build for different platforms. Guess what? That's not auto magic. It doesn't always do that correctly, especially if you have native dependencies and stuff like that. So my my whole problem with it is like there's a lot of magic involved in that right-click publish. 29:49.27 Frank And when the magic works, great. When the magic doesn't work, oh boy, you're you're just reading some out-of-date docs and trying to figure it out. 29:57.43 James Yeah, and it's kind of like the Xcode cloud build. Like when it works, it's great. And then I was like, oh, I need to add widget support for live tile or for live tiles, for live tiles, for live activities in Dynamic Island. 30:08.75 James And i was like, I hope it has like, the I'm like, I hope this works in the thing. Like it it it it took me a while, but I did get it working. 30:13.50 Frank yeah 30:16.12 James and But like the right click did not just work in Xcode. 30:18.55 Frank Yeah. 30:18.84 James And I was like, okay, cool. 30:19.64 Frank So you know when I hit publish because you're going to get a thousand texts being like, James, try to install my app. 30:20.20 James But no. 30:24.04 Frank James, try to buy my app. 30:24.44 James Yeah. 30:25.16 Frank Like, I'm i'm just going to need testers. By the way, if you're listening to this and you want to help me, I don't know how to do beta tests on the Microsoft store, but I would love to do a beta test round because I'm pretty much guaranteed to mess up that first publishing. 30:27.27 James Okay. 30:37.63 Frank But I promise I'll get it right eventually. 30:39.96 James you You could, there's like a beta group. It's pretty simple. It's pretty simple. I swear. 30:43.22 Frank ah 30:43.48 James um The one thing I've been going down the rabbit hole though, is a lot of my Mac apps, like tiny clips I release with sparkle, which we've talked about for auto updating. 30:52.06 Frank Mm-hmm. 30:52.50 James And usually people can just download it. I do have it on test flight. have it on the app store, but you know, one of the ways that a lot of people get apps is homebrew, just doing brew, whatever, installing set app. 30:57.85 Frank OK. 31:04.44 James I went through the journey of putting tiny clips on Mac for that. It's relatively straightforward. 31:09.18 Frank Is it? 31:09.36 James There's like a CASC file. It updates. You have to just have like a few lines, like register the homebrew. It totally works. What I did is I just found another app that I use that uses homebrew. 31:18.12 Frank OK. 31:21.18 James And I was like, go copy what this does and put it in my repo. 31:21.66 Frank Right. 31:24.30 James And then it did it and it worked. 31:26.36 Frank Because I've never done that. I've never done homebrew deployments. 31:28.96 James Hmm. 31:30.20 Frank They seem difficult and confusing because it's all like Git based and it's it's worse than that. It's like all GitHub based. And so its it all is very confusing to me, um especially Mac apps are so much easier. 31:36.45 James Yep. 31:41.68 Frank You you just get a.app file, you put it in a zip and you upload it to your server. Like it's kind of trivial. um 31:49.14 James But the update the up the updates need to be somewhere, though. 31:49.18 Frank I know people make fun of that. The update is harder. You're right. 31:52.96 James Sparkle. 31:53.05 Frank cause But you use Sparkle. 31:54.42 James Yeah. 31:54.65 Frank You just use Sparkle. 31:55.04 James Yay, Sparkle. So on Windows, there's WinGet, which is you know package manager for Windows applications. 31:59.70 Frank Yeah. 32:03.03 James Now, what's interesting about this is that there is a like official WinGet package repo that has all of the information about every package that's on Winget. So if you want to be on the Winget registry, you submit a PR, it goes through a test validation, and and it actually gets on there. So anybody can put anything on Homebrew because you can add to Homebrew your repos. They allow James Montemagno's you know, things and it'll just add you to your, the local person's register, which is great. 32:31.21 Frank Gotcha. Yeah. 32:32.58 James There might be an official one, but don't know This seems to work fine. If you're going to use homebrew, you might as run two commands instead of one. So WinGet is great because i have it in all those setup scripts like that, that Windows app config. 32:44.79 James I actually have a WinGet config file that I have on my machine that has all of the apps that I use personally. And I get a new machine and I do WinGet 32:54.10 Frank Nice. 32:56.25 James um It's inget win, win get import this file and it'll install everything. And i have a bunch of machines that I need. 33:01.53 Frank Okay, that's pretty cool. 33:02.45 James Yeah, it's super cool, right? 33:03.45 Frank Yeah. 33:03.65 James And you can say like win get export it'll export all of your machine settings when you're jumping around. Now, if you're not jumping around a lot, you're like, whatever, not a big deal. 33:09.18 Frank and Okay. 33:11.05 James But I jump around machines all the time. i have machines that I'm reformatting every single week and it makes set up a breeze. 33:16.73 Frank Oof. Yeah. 33:18.58 James um for for work. I have like test machines, right? So Winget is super cool. 33:21.49 Frank Mm-hmm. 33:22.51 James And I was like, I'm going to get tiny clips for Windows first into Winget because I'll figure out the app store later, but i just want to get it into Winget. 33:28.59 Frank Okay. 33:29.22 James This will be cool. And it's wild. So I had an MSIX file, which is how it bundled the application up instead of an XE or a zip or whatever. 33:39.80 James And The first thing I needed to do is I needed to set up an Azure artifact artifact signing authentic ah ah certificate 33:47.18 Frank Oh God. I'm out. I'm out. I'm done already. Nope. 33:49.94 James now 33:50.02 Frank I'm out. 33:50.65 James Now, i don't I don't know if this is actually required to publish, but Copilot told me to do do it. And this was wild. It was like setting up um it was it was like setting up a DUNS number, in my opinion, but it was all through the Azure portal. 34:01.62 Frank Yeah. Great. 34:03.73 James So you go through Azure, set it up, type in your information, including your DUNS number. And so you're like official, right? 34:08.19 Frank Oh, 34:09.21 James so Because you're an official publisher of your package. 34:11.90 Frank okay 34:13.05 James So was really neat, just like if you were going onto the App Store. And then the crazy part is like through the, the the I have the like um the Microsoft app authenticator. um You have to create like an authorized identity to verify that you are you. 34:27.70 James And you have to do like facial recognition scan. 34:28.57 Frank oh my gosh 34:30.18 James It is crazy. Anyways, you get that set up. And then um honestly, to get it onto WinGet, it's not that hard. There's a bunch of scripts like CI that automatically does it for you. But it's very similar to... um Sparkle where you do a release, you do a tag, you get some hashes. 34:47.29 James And what you do is you submit the the the ah URL of like where the package lives and the hash of those packages that gets validated. 34:57.34 Frank Right. 34:58.91 James So you can't like swap a Rooney it out, right? Which is really neat. And then um that goes into the system. They have a whole CICD pipeline that installs your app on a whole thing. 35:09.03 James i actually got... um um a dependent list or yeah it's not self-contained. It has actually dependencies. So my app is only 14 megs. So it doesn't include.NET, doesn't include the Windows app SDK because it'll install it and use the machine-wide one automatically. 35:26.42 James um it was super cool. And I worked with the team because I was running into issues because my first time ever doing it. Uh-huh. 35:31.58 Frank Aren't you lucky? Work with that team. Yeah. 35:34.84 James Let me tell you. So mostly what they told me to do, their sweethearts, is they mostly were like, here's the logs, download the logs and see what went wrong. But they they got over. It was fun because I was running into issues and I was like, I feel as though we should have a skill that's like, prepare my app for And they're like, yes, we should. 35:48.86 Frank Yeah. 35:50.30 James So like I think they're working on that. 35:51.16 Frank yeah 35:51.94 James But it was really neat. So now Tiny Clips is on WinGet and then you can do WinGet and now... I have a CICD pipeline that when I tag a new release, it will automatically submit a new version to WinGet that gets validated and published automatically. 36:06.15 James So it's very similar to Sparkle in that regard, but that is off the app store, right? So stuff that you're not doing in-app purchases with, things that you're not charging for, it's a dev utility. 36:11.79 Frank Mm-hmm. 36:15.88 James You can get get you can get the GitHub Copilot app, Git, all these things. It makes it really nice. Don't sleep on WinGet, in my personal opinion. That's my... 36:23.93 Frank Yeah, no, I get it. It makes sense. I just, I tend to make two kinds of tools. Ones that I sell, and so I want to charge money for. And then other ones that just happen to be like.NET tools. 36:35.12 Frank And I don't think you can really beat like.NET tool install. 36:35.86 James Yeah. 36:37.76 Frank Like that's a pretty simple way to do it also. 36:38.22 James Oh, so good. Yeah. 36:40.24 Frank Or DNX or whatever. 36:40.92 James Yeah. 36:41.80 Frank So I just personally haven't had a need for Winget. 36:42.80 James Oh yeah. 36:45.72 Frank um But it's good to know it's it's doable. So anyone, if you're having trouble, just email James and he'll explain and he'll debug everything for you. 36:53.40 James Just go to the tiny clips repo. It's all there for you. Figure it out. 36:56.60 Frank ah 36:56.94 James You got this. Just copy paste. sell Say your agent to do it. um Okay, Frank. 37:03.10 Frank Okay, that was a good topic. 37:03.35 James um Topic number number four, it's does James matter? And the question we propose... 37:09.11 Frank What does this topic mean? i see it written down in our notes. It says, what does James matter? But matter is capitalized. So I'm like, does James matter? I'm just going to answer, yes, you matter, James. 37:20.55 Frank You matter to a lot of people. 37:20.78 James Oh, thank you. 37:22.55 Frank um But capital matter. Are we back to IoT? What are we talking about here? 37:28.09 James Yeah, we had an entire podcast of Matter Matters. And Frank... I had a good conversation with my buddy, uh, Craig and your buddy, Craig. 37:35.29 Frank Okay. Okay. 37:36.12 James And, um, they were talking about some of the work they're doing on their house. Some of the stuff that I've been thinking about doing on the house and a young wise, ah middle age wise, Frank Kruger once told me that if you're going to redo outlets and things in your house, make everything IOT compatible. 37:41.34 Frank boom 37:51.22 Frank Thanks. yeah 37:55.66 James And, um, 37:56.28 Frank Yeah. 37:58.17 James I don't think that that was realistic because I didn't want a thousand things on wifi, but I've been thinking, I've been, I've been thinking that, that maybe matter solves this problem for me. 38:11.57 James So let's say Frank, I want to redo every outlet yet again in the house with dimmers. 38:17.12 Frank Oh gosh, yeah. 38:18.41 James I want them all to be on dimmers and I want them all to be smart. 38:20.14 Frank That's what I'm saying. it's It's not a switch if it can't dim. 38:24.06 James yeah I agree. Um, now, 38:30.52 James it So how, okay. Okay, so let's say I have an Apple TV in one room and then I have all these switches throughout the house and they're they're all, I guess they're all Wi-Fi, but apple Apple HomeKit and Matter compatible. 38:39.74 Frank Yeah. 38:43.32 Frank Yeah. 38:49.82 James Like how does they, do they work? do they Are they on my Wi-Fi network or is the Matter compatible? 38:57.08 Frank yeah 38:58.33 James going to get from one side of my house to the other side of the house? Like are the matter devices, Daisy changing a mesh network. Do I need a receiver in between? And is my Apple TV, the, the, the hub, thing the thread, the thread matter? 39:07.61 Frank e 39:14.36 Frank it's not no it's all nice thanks 39:15.32 James Is it, is it a strand? Is it a fish wire? What is what is, what just give me the TLDR of what to do here. 39:22.54 Frank It's mostly a fish war. No, okay. You have your network stack, right? So matter, think of matter as kind of like HTTP. 39:32.11 James Hmm. Hmm. 39:32.24 Frank It's more of a way, ah a bytes level way of different devices to communicate with each other. So all these matter devices, that's just kind of the text protocol. 39:44.46 Frank It's not just text, but you get what I'm saying. It's the text protocol they're all talking to with each other. So when you have a Matter compatible Apple TV and a Matter capable switch, then the Matter is just how do they say, I'm a switch, oh, I'm a hub, and I'm going to control the switch. 40:03.32 Frank That's Matter. 40:03.51 James Yeah. 40:04.44 Frank That's the kind of the application level in the network stack. Now, what you also have in a network stack is the transport level. What actual trickery are they using to actually communicate with themselves? Now, this is where you have Wi-Fi because Wi-Fi is a transport level thinger. It's going to allow these things to communicate with each other. 40:27.99 Frank Now, I personally like Matter because it has a very simple Wi-Fi stack involved. It's really easy to um build little IoT devices yourself because most IoT devices can talk Wi-Fi now. Nothing special needed, no special radios, no special protocols, nothing. 40:46.46 Frank But Wi-Fi has downsides. Wi-Fi requires either um specialized mesh things if you want mesh. Like I have an Eero system, so it's doing its own little trickery for making my Wi-Fi expand to large areas. Basically, every router manufacturer out there has their own janky mesh system to make Wi-Fi expand throughout your house. 41:10.50 Frank That said, if you want an actual mesh network that runs purely matter, that's what Thread is. So Thread is a different transport protocol that is a meshing protocol, so that much like ZigBee or Z-Wave, each little switch kind of relays every message it has to the next switch, to the next switch, to the next switch. 41:35.95 James Yep. 41:36.04 Frank You don't have to have good Wi-Fi throughout your entire property to get to like your back garage or back sauna thing or something like that. um This little relaying of a mesh network through thread could do all that. 41:51.80 Frank But if you do have a good Wi-Fi system that's already a meshed Wi-Fi system, then you don't need that. Matter can run on Wi-Fi also. So matter is kind of the application protocol, and then it can run on different transport protocols, Wi-Fi being the most important transport protocol, Thread being a different transport protocol, which specializes in mesh stuff. 42:15.46 James Hmm. Hmm. 42:16.79 Frank And it can actually run over Bluetooth also, but they don't really like it when you run Matter over Bluetooth. So it tends to use Bluetooth just for setup and things like that. So technically, Bluetooth could be a transport for Matter, but no one does it. 42:31.21 Frank Don't do it. So those are basically your options, Wi-Fi or Thread as your transport protocols. I do everything personally over Wi-Fi because it's fine. It's fine, James. 42:42.74 Frank It's easy. i just have little Eero extenders wherever my switches aren't talking. It's fine. But I get it. People don't want all this stuff, every wall switch to be on their Wi-Fi network. So that that's would be when you kick over to Thread. 43:00.06 Frank Thread support is hardware dependent. It's a different radio. It's a different protocol. So does your Apple TV support it? I don't know. Look at the label. Does your Amazon dingus support it? I don't know. Look at the label. So you're going to have to find out because it is a different transport protocol. 43:15.93 Frank But if you have something that talks Wi-Fi, it definitely talks Matter Wi-Fi. 43:16.09 James I see. 43:19.57 Frank Or, yeah. Yeah. 43:20.79 James i see. Yeah, I think the Leviton ones are only Wi-Fi. 43:22.15 Frank Yeah. 43:26.26 James um 43:26.53 Frank Mm-hmm. 43:27.42 James Matter. 43:28.66 Frank Yeah, but it's OK because the application level will merge all this stuff. So you could have some thread, some Wi-Fi, and they'll all just work together because they're all just talking matter in the end. 43:36.41 James Speaking over matter. 43:39.82 Frank So long as you have some device bridging between those two different transport protocols. And that's where an Amazon dingus, a modern Amazon dingus, or I'm sure a Google dingus, or I'm sure an Apple dingus. I'm sure there's open source dinguses out there that can bridge between all these things. 43:58.21 James All right. 43:58.26 Frank But if you do have different transports, you'll need a bridge. 44:02.42 James Annoying. Okay. ah This has been very insightful and I appreciate you putting up with my not listening to the 45 minute episode that we did. Now this makes complete, this actually, because now it's real. 44:12.59 James Now it's like a personal, now it's personal, right? 44:14.55 Frank Yeah, it's personal. 44:15.51 James um It's personal. So I'm going down this route. My only fear, and then we went on the next topic is If you have like 50 switches on Wi-Fi, it's just going to flood your Wi-Fi network, right? 44:29.51 Frank Define flood. what What flood? 44:31.10 James I don't know. 44:32.30 Frank Things already flood the network. If you have one bonjour device on your network, go put up a network monitor. You'd be, its you'd you're already flooded, buddy. Don't worry. But B, if you truly are worried, and and that' this is also where all the mesh stuff can um help out because they'll do automatic channel swapping and things like that. 44:52.50 Frank But if you really are concerned, you can set up a separate guest network, which runs on a separate channel, and then it's not interfering with your precious YouTube downloads or whatever you're doing on your YouTube, on your Wi-Fi network that's so important. 45:06.00 James It's true. I do have an IoT channel. 45:07.22 Frank Because... think 45:08.60 James Yeah, I do. I do have an a whole IoT t thing. 45:09.69 Frank Yeah. and it's So it is a lot of chatting, because like but it's it's not high bandwidth. 45:11.39 James Okay. 45:17.69 Frank you know It's all latency based. 45:18.11 James Hmm. 45:19.33 Frank And there's a lot of chatting. If you put a network monitor up, you're going to get flooded with the amount of noise going on. But is it affecting your bandwidth? Not really. 45:29.90 Frank It's just not. it's Wi-Fi can handle all this stuff these days. 45:33.30 James Oh. All right, all right. Yeah, 45:37.18 Frank Your call, though. um And for the record, I have roughly 30 IoT devices on my Wi-Fi. And i I basically don't notice. It doesn't affect my bandwidth at all. What affects my bandwidth is clouds, because I have Starlink. 45:49.40 James yeah, that's true. 45:50.09 Frank So that affects it a lot more. 45:52.12 James Okay, okay, okay, okay. 45:52.37 Frank Mm-hmm. 45:54.04 James um Okay, let's get back to little AI development and then we'll wrap this puppy up in two topics. 45:57.05 Frank Yeah. 45:58.08 James So ah we've been doing a lot of Windows development, as you said. and i thought what was really fascinating is we talked a little bit about Visual Studio 2026 and I hopped a bunch into VS 2026 this week. 46:02.63 Frank Yeah. 46:11.70 James And I heard that you did as well. 46:11.86 Frank Yeah. 46:14.30 Frank Yeah, I did. um In fact, it's funny because I started because i'm i'm I'm used to not having Visual Studio. I started the way I would do it on the Mac. I installed the.NET 10 SDK and did.NET run in my app. 46:28.76 Frank It ran. like It built and it ran. I'm like, great. 46:31.43 James Cool. 46:31.67 Frank This is actually probably the first time I've done Windows development without Visual Studio. 46:31.96 James Yeah. Problem solved. 46:36.39 Frank And you know i got VS Code working. And i didn't quite get the debugger working in VS Code. But I'm like, OK, this is cool. I can compile my app. I can run my app. But then I hit a bug. I hit a nasty bug. It was so gross, James. that you would You would close the main window of my app and the stupid process would keep running. Like the icon would go away. Everything would go away. But the stupid process is just off doing something. It's even hung. It's not deadlocked. It's running. 47:00.41 Frank Just doing nothing. Just living and living a zombie life. So i decided I need a real debugger. So I installed the giant Visual Studio 2026. And it's it's not even that big, but it's like two gigabytes when you download it. And then if you check the Win UI box, it's like, I'm going to take up 20 gigabytes. I'm just like, oh, well, there goes my entire hard drive, but I'm going to do it. I need i need a good debugger. I know how to have a use the Visual Studio debugger. 47:26.04 Frank um And I just want to say, like it's been actually pretty great. I have it running on a very ancient old Surface Go computer. but twenty twenty Yeah, it's got like two cores, um four or eight gigabytes of RAM. 47:34.46 James Somehow. 47:39.32 Frank I think it has eight gigabytes of RAM and a 1.6 gigahertz processor. 47:45.30 James Intel gold processor, I believe. 47:47.90 Frank Yeah, it's not even... Is it even an Intel processor? It is an Intel processor. 47:50.84 James Yeah, I think it's an Intel gold. 47:52.10 Frank It's not a clone. 47:52.44 James It's an Intel gold. 47:52.90 Frank Okay, yeah. 47:53.24 James It's an Intel gold. Yeah. 47:54.18 Frank It's it's ancient. It's ancient. 47:55.52 James Yeah. 47:55.78 Frank And I gotta say, Visual Studio is not too happy, but it's running. And um I just wanted to give some shout-outs to some of the debugging capabilities of Visual Studio. 48:06.79 Frank Because when you hit F5, and then you wait 30 seconds... ah The app loads up and it has like the little performance graph and the little memory graph. And then those have been there for forever now. 48:18.08 James Yep. 48:18.58 Frank But um you can easily do. So I had a problem of it it was some kind of like memory. some Something was hanging around. Some object was hanging around and eating up a thread. And that's why it wasn't exiting. And so I actually got into um digging through the garbage collector root graph, you know, seeing what references are being held to this object and what roots are active and trying to figure out all that all that terrible event unsubscription we as.NET developers absolutely hate. That's why we use XAML binding as much as possible so we don't have to do our own event binding because it's impossible to tear down all those events correctly. 48:54.94 Frank But I had to dig through it. I had to do the terrible thing. But even on this tiny screen, it's a bitsy little screen, I was able to do a snapshot, get the full object graph up, look at all the um the roots. So why is this object still alive? And then what other objects is that object referencing? And I was able to get through all that stuff. 49:16.28 Frank So it's funny, like I've been living the Mac life where I basically use VS Code and the command line and I'm able to do good app development there. I really am. But it was fun to return to the old Visual Studio 2026 and actually get that debugger running. And it wasn't perfect. There's still a lot of like, they they obviously don't optimize for that screen size anymore. That's for sure. 49:39.61 Frank But um it it was fun to have all that power of Visual Studio 2026 there again. and to really dig in and debug through all these problems. So just wanted to give a shout out to Visual Studio 2026 and all the all the profiling features that are there. and Usually I'm a CPU profiler. This time I was doing memory profiling and got through that object graph, though. Thank goodness. 50:06.56 James I'll do one better, which is that you could have just done that profiling and then just given it to the profiler agent built into GitHub Copilot. 50:13.78 Frank Ah, of course. Of course. 50:14.80 James And it would have done all of that for you automatically. 50:15.67 Frank please 50:17.12 James It is deeply integrated into the profiler. And the reason I know this is because I was not using the profiler but but ah agent, but I was using kind of like a plan agent. 50:20.95 Frank Ah. 50:25.51 Frank Mm-hmm. 50:27.05 James There's a profile agent and there's a debug agent. And the debug agent is... 50:29.98 Frank Right. 50:31.16 James Beautiful because the the debug agent uses all that debugging goodness and sends all that stack trace, all the state of your application, everything over into the agent to diagnose and fix your problem. and That's what I was using this week. I had a crash that I just could not get the snapshot of see where it was happening when. and Obviously, i didn't have the logs like you because of the debugging that was happening. 50:53.91 James Boom, booted up Visual Studio 2026. Boom, solved in like under a minute. 50:57.78 Frank Right. 50:58.19 James It was brilliant because had that data. 50:59.51 Frank Oh, okay. 51:00.27 James So you can do the profile agent. Anyways, I'm just, that now you know, the more you know, the more you know. 51:03.29 Frank Under a minute. I spent like six hours on this. 51:05.02 James no now 51:07.09 Frank Thanks, James. 51:08.12 James Well, the the more now just just redo the profile agent and see what else you find. 51:08.29 Frank ah 51:12.28 James That's what I would tell tell you to do. 51:12.79 Frank Yeah. 51:13.56 James The other thing I'll point out that I really used this week, again, not to sleep on, is the powerful tools for hot reloading the UI. 51:24.21 James So the the app preview, the live visual tree, the property tree, you can open your WinUI app and you can do this with WPF and other things, and you can select the element just like you would on a web app. 51:25.53 Frank Yeah. 51:34.53 James You can send it to the agent, but you can also just legitimately open the XAML file, make the tweaks and boom, it's there. And this to me, again, knowing the stack, knowing how XAML works, knowing how WinUI, how Maui works, all these things are so important because when I open that XAML page, I know I can visualize it and I can see it. 51:53.18 James So I can make the edits by hand, artisanal XAML coding over here, or if you're doing NC sharp, whatever it is, and you can boom and then see it the app update in real time. 51:56.70 Frank so 52:01.80 James And I was just, all those little tiny tweaks that make the the native UI so good, I was able to do different paddings, different highlighting, different drop shadows, um different um alignment because I could just tweak it and see it in real time. 52:13.21 Frank Yeah. 52:15.65 James Whereas I kept telling the agent, I'll just move it like center the div, right? And it's like, I'm going to try, I'm going to try, I'm going to try. It's like no, you're going to try. 52:21.50 Frank Padding and margins. 52:22.27 James Yeah, it's hard. 52:22.34 Frank Oh my God. It's it's just like constantly tweaking padding margins. 52:25.11 James So that that stuff is good. 52:25.58 Frank I appreciate that because it's the one thing I missed from Maui. Maui, for whatever reason, had a more um reactive XAML editor when I first started doing it. So I would edit something in the XAML and it would pop up in the app. 52:38.27 Frank But for whatever reason, I didn't... install enough gigabytes worth of workloads, um I haven't gotten that live XAML experience. So I definitely need to get that working on, get that working next, because I'm totally in that point where I'm changing like padding values by two pixels, and deciding which one I actually prefer. 52:51.25 James Oh, 52:56.18 Frank So I'm 100% in that mode where I need that right now. 52:56.91 James yeah. 52:59.76 James It's probably there. You should see a little adornment, like a little thing that's on the top of your app, but also just open... 53:04.42 Frank It's super annoying. It's always there. 53:06.20 James you It's always there if you're debugging. But if you if you click on there, you can just like in in Chrome DevTools Edge Chrome Tools or whatever, DevTools, whatever the DevTools are, you can like highlight an element and then it'll just open the XAML. 53:17.53 Frank Ah. 53:18.14 James But it's open the XAML Live Preview. That's the window you want to look for. I guarantee it's art if if you have that adornment, it's in Visual Studio. 53:23.83 Frank Okay. 53:24.50 James You just need to find the window. 53:25.21 Frank Okay. 53:26.39 James so The Maui team like opened it automatically because they knew it was hard to find. 53:26.74 Frank Gotcha. 53:29.37 Frank Right. 53:30.11 James All right, last thing one more one more app. So this was one that I actually did with Burke Holland. We did this funnily enough with quad fable five before it got banned. 53:40.50 Frank Woohoohoo! 53:41.85 James so 53:41.95 Frank Pricey, baby! 53:43.16 James um so So I took his app, Resize Me, can go to resizeme.dev. um and he built it for Windows with some like Go thing. I'm gonna rewrite it on WinUI. Don't tell him that. um But I decided to port it to SwiftUI for Mac OS um and a native menu bar. 54:03.01 James And what this does is it's a little app that sits and you and you select a resolution and you can use a hotkey to resize that window to that resolution, which is perfect when you need to resize things 54:05.94 Frank Oh, I love it. 54:12.79 Frank Thank God. 54:16.39 Frank Screenshots when you need to do screenshots. 54:18.78 James When you need to do screenshots, you can favorite, you can do things, resize.me.dev. It's there. It's awesome. Give it a go It's on Homebrew. It's there. So give it a go. 54:30.52 James So yeah. 54:31.70 Frank And on Windows. Oh, i didn't I'm a big dummy. I didn't know homebrew ran on Windows. Okay, of course it does. Everything seems to run on Windows now. 54:40.95 James Well, Homebrew is there, but you can't like install things with Homebrew. 54:45.98 Frank Oh, okay, I'm confused then. Okay, got it, got it, okay. 54:49.90 James Yeah, I think i need to update his i want I need to update his website so it goes to like the right thing on the website. But if you go to the releases, you'll see the the Windows version that he has from four days ago. 55:01.34 James So, yeah. 55:01.75 Frank Okay, this one is good because I have not made my new screenshots yet, and that is gonna come, and I want i want beautiful screenshots everywhere. 55:09.27 James Exactly, 55:09.46 Frank this 55:10.70 James So it's good in there. You can grab it, resize me. We're just getting it. We're going to get into Winget. We're figuring it all out. It's all happening hot. So that one we did. Just little utilities like this are so good because like you're saying, it's like, yeah, I just need this resolution. Boom, boom, boom, boom, go. Now on Windows, I actually use power tools and you can set up the, what are they called? 55:37.21 James The zones. 55:37.56 Frank ah 55:38.13 James It's like... um 55:39.06 Frank Zones. You can do like fixed size zones or something. 55:41.66 James Yeah, you can basically slice and dice and then you hold down shift, drag a window and it snaps, snap zones basically inside of Power Toys. It's super nice. But, you know, that's this is still nice when you want sizes on demand for all intents and purposes. 55:56.06 Frank Okay. 55:56.74 James Yeah. 55:57.66 Frank Gotcha. 55:58.22 James I need resize me that dev. 55:58.32 Frank Resizeme.dev. Cool. 56:01.02 James I'm going to update. I'm going to open up the GitHub Copilot app and I'm going to fix the website because right now the Windows one is just pointing to the most recent release, which happens to be the Mac app. so um 56:11.50 Frank that's That's what caught me. That's why I got confused. I'm like, you have homebrew on Windows. Which I totally get it. 56:15.90 James Yeah, we don't. 56:16.42 Frank You probably could, but... 56:18.16 James Yep. So I can tell it, I'll say, hey, over there, can we clean up the website? So when we go to Windows, it goes to the latest Windows release and not actually the Mac release, check out the tags to figure that out. 56:31.07 James And then also make sure that's really easy to highlight those different brew commands on Mac because the the screen seems to be going away on the website. 56:38.56 Frank OK. See, it's that last 20% of releasing apps. 56:40.89 James Sent it off, boom. 56:43.62 Frank Somehow we we did another one of those episodes. I feel like every year we have the the last 20% of actually releasing these things. 56:50.25 James It totally is. Yeah. 56:51.42 Frank i 56:51.78 James Anyways. All right. That's going to do it for this week's Merge Conflict World Wind Tour. 10 minutes or less on each of those topics. I'm pretty sure this time time around. 56:57.20 Frank Uh-huh, totally. 56:58.31 James Yeah. Let us know if you have any thoughts, questions, comments, and concerns, or if you have found too many Wi-Fi switches using Matter or not on your network, or if you're using other ones. I was going to go with the Levitons, but they only seem to Wi-Fi. But let me know. Drop us ah comment on our YouTube video, youtube.com forward slash at Merge Conflict FM. We're getting squeakly close to 1,000. 57:18.74 James thousand subscribers to the channel. 57:22.05 Frank Sweet. 57:22.08 James We're at 914 with over watch hours a month. 57:29.01 Frank Not that you're counting. Everyone tell your 60 friends come join. 57:31.19 James there 57:34.26 James all of them 57:34.51 Frank Or I'm sorry, what did you say, 914? Yeah, so we need 86 more. Oh, God. 57:36.66 James nine fourteen 57:37.72 Frank ah 57:37.94 James That is correct. I will say on podcast downloads alone, we have officially breached 3 million downloads of Merge Conflict in the episode. 57:46.65 Frank oh my god 57:48.17 James So thanks to everyone that's been listening for all of these years and getting us a boost these last three months in usage. Tell your friends, tell your colleagues, all your app development goodness here. 57:58.54 James That's going to this week's Merge Conflict. So until next time, I'm Jason. DeMagno. 58:01.62 Frank And I'm Frank Kruger. Thanks for watching and listening. 58:04.76 James Peace.