00:00.31 James Welcome back everyone to Merge Complex, your weekly developer podcast talking about all things in the world of development and probably AI as well. I'm one of your hosts, James Bonson-Magnon with me as only the one, the only, the beautiful Frank Kruger. 00:11.43 James How's it going, buddy? 00:12.00 Frank Ooh. Hi. Yeah, I think I'm the only other host. Sometimes you replace me, though. So I guess we do have three or four or five hosts, but I'm usually the one here. I'm usually the one talking to AI. It's not true. I think you get paid to talk about AI now. Someday I hope to get paid to talk about AI. 00:29.46 Frank Hi, James. That was a long intro. Good to see you buddy. 00:32.73 James Good to see as well. Yes. I think ah Burke, was talking about holiday hacks from last episode. ah Burke put out a blog post about his holiday hacks and how he was making all this stuff and how Opus 4.5 like changed his life and all this stuff. 00:45.67 James And then it got featured on Hacker News. And then i decided to analyze all the comments and things. 00:48.77 Frank Oh. 00:51.27 James as there was like hundreds of hundreds of comments. 00:52.40 Frank Right. 00:52.75 James And people are, people are mean on the internet. don't 00:55.48 Frank Oh. Why? What did they say? What was the meanest thing? 00:59.03 James know. 01:00.22 Frank ah 01:00.57 James You know, I'm not going to find the meanest thing, but you know there was, there that i i ran it through feedback flow and the sentiment was about 60% positive, which is actually pretty good. 01:03.29 Frank Okay, I'm just kidding. 01:11.35 James you know you know And ai AI skeptics or AI haters and AI folks out there, you know they'rere they're going to show their counterpoint and back and forth. 01:11.45 Frank Okay, yeah. 01:19.43 James I think one thing that people talked a lot about was Greenfield versus Brownfield. 01:19.80 Frank Yeah. 01:24.19 James That was a big topic. And then additionally to your kind of point was they're like, oh, well, look at this guy's ah Twitter account. Isn't this guy just like paid to talk about AI? 01:34.31 James It's like, Yeah, like Burke works on the VS Code team in advocacy at Microsoft. Like, yeah I mean, I mean, 01:41.72 Frank It's not hiding it. but Yeah, it's tough. it's but That's always the pros and cons of Hacker News. The pro, obviously, is you get a bunch of exposure. The con is there's a bad... On Hacker News, everyone is trying to show how smart they are. This is an over over summary of it, but there's a lot of machismo and people trying to sound smart, look smart, prove that they're smart. 02:07.12 Frank And they often do that by being contrarian. I'm sorry. I'm jaded. Hi, I'm Frank. I'm jaded. um I love being featured on Hacker News, but you get tired of it after a while because there is a very competitive thing where no one can just say, hey, that's great. 02:22.88 Frank They have to say, hey, that's great. And here's where I would have done it better. You know, it's always that little extra. 02:28.63 James Yeah, it's a yes, but instead of yes, and. Yeah, and and I do think that, so one thing to kind of note, which we talked about on the podcast many times is the topics that we talk about are things that are passionate and interesting in our lives. 02:43.32 James And those things have e been flowed over the years. They usually revolve around mobile development, usually around c Sharp, but not always. 02:46.34 Frank Yeah. 02:50.00 James We talk a lot about different things and we experiment with a lot of different things, more experimentation than ever. But inherently, you think about developer relations and developer advocacy and community things that people do at any company, 03:04.15 James you know, the reason we do it is because we actually enjoy that technology, right? And like, we enjoy it and we use it. Like Burke wouldn't be talking about it if he actually didn't use it and enjoy it. 03:17.30 James and But, ah you know, there's obviously some bias because we work at like, take the bias at heart. 03:19.31 Frank Yeah. 03:22.35 James Like we've always said, I work at Microsoft. There's inherent bias there. Just like if I worked at Google or you worked at Meta or you worked at Anthropic, you know what I mean? There's inherent bias towards, well, yeah, my thing's the best thing. 03:33.02 James you know, that I'm going to use all the time. And I'm not me, it might not be the best, but at least for my scenario, it's the best. And I love it, right? I'm a company man. So I think, you know take the bias, but of course everyone's going to bias because everyone there's bias in everything. 03:45.81 Frank Yeah. 03:46.09 James Right. So, but inherently every single person I work with actually really, really likes the product and they also know that it's perfect. 03:46.75 Frank There's no such thing. Yeah. 03:54.26 James so we drive feedback as well. So I think that's kind of a ah thing to remember in general, but I think it actually gets me talking about this, Frank. 03:56.61 Frank Mm-hmm. Mm-hmm. 04:02.39 James which was when it comes to ai coding assistance, we often do talk about, um a lot of greenfield applications. I talked to a lot about brownfield applications recently, by the way, i mean, my grading and adding new features to existing applications that I built many years ago, which can completely be done by the way. um I think the coolest part is when does something greenfield turn into brownfield? So for example, uh, Mads, uh, Christiansen, um, 04:29.58 James who's world-renowned for Visual Studio extensions. It works on my team. 04:33.05 Frank Smart. 04:34.04 James And he made this awesome extension for Visual Studio, which was called ah the GitHub node. And as we know, the.github folder is very important in the world of AI. And in VS Code, it shows you a folder view. It's all there. Visual Studio does not, which means that you can't see those files. So he literally made a node that just shows up in your solution, shows you the files. 04:56.38 James And I said, that's pretty cool and I love it. And he vibe coded it out and extensions are not easy to make by the way, cause they're not, there's not a lot of them. 05:02.81 Frank No. No. 05:03.98 James Like there's like the, the, the, the corpus of data is not a lot. 05:07.38 Frank up 05:07.54 James I guess Mads has his own to like, but he should probably create in his own model. But I was like, you know, be really cool is if there was a node that showed you the MCP servers, because it's actually really hard to find your user system, your system setting, this thing and see what's inside of it. 05:21.33 James I want to click, go at it. It's actually quite difficult in visual studio. You can do it, but it's not in your face. So I vibe coded out this afternoon in 30 minutes. Like was his thing that is now shipping Brownfield and and then I added to his Brownfield app or is it all Greenfield? I don't know. Like when you win window when does it change? But I think that gets me to the bigger point really quick, which is using AI to work on things that like inherently don't make any sense really to use it on it, but also gives us a superpower to work on 05:58.17 James crazy things that don't make any sense. And I'll talk about it like this. Like, what if, for example, you could use it to like write like Arduino code, like, and write little circuitry and things for the SB, right? 06:09.25 Frank Yeah. 06:12.43 James And then, or you could take it and you could reverse engineer things and you could like write bunch of, you know, like a really crazy old C code. Or I'm i'm saying like things that aren't modern. We're talking web applications, talk about this, but I think about that little heart that you made. 06:25.45 James So Frank for our wedding made this little heart which um has an LCD display in it. It's like Arduino ESP32 in it or SP32 in it. and And it shows like the countdown to I think our our our medding and then our wedding until then it counts up. 06:39.81 Frank Count up. Oh, yeah, yeah. 06:41.08 James counts up 06:41.24 Frank Yeah. 06:41.66 James But it needs Wi-Fi and I have no idea how to program it or how to do anything. However, Um, now like I could take that source code and i could actually modify it, add features and do a lot of stuff to and that's something that i would never think about doing before. That's not even that crazy. I'm thinking like cobalt code, like older code, older things, crazy embedded code, all these things for train code, right? Like this, this thing that we don't think about as modern flashy web in your face, but actually you could do this. I think Jeff was Fritz over the holidays was doing like this. 07:13.43 James you know, it kind of reminded me of that. i Remember that um LED d board that would like connect to like my web server and show a number on it, but vibe coding that out, like little IOT devices that have this embedded code, I think is this other scenario that I'm starting to see kind of light up in general. 07:18.56 Frank Yeah. 07:29.84 James doesn't have be this flashy, you know, mobile app or website or something like that. And I know that you've been up to some craziness as well, but it had me thinking because over the holidays, yeah, yeah, I did a bunch of websites. 07:35.12 Frank Mm-hmm. 07:39.61 James That's easy. But like, also like, crazy little embedded whatever like I think of this like I'm gonna shut up like there's this you know i got my Nintendo Switch I have this this um this little Nintendo switch pinball cabinet that was 3d printed. The guy from Japan makes it has a little board inside of it has a little controller to do this. 07:58.42 James But what if I wanted this to work on Nintendo switch too? Like I could like now write code that would go on that little board that would do stuff that i can, you know, I could program it and it would like be able to like, you know, speak these programming languages that I never would imagine that even aren't necessarily modern or updated or or anything like that. 08:14.35 James So that's kind of my head's out for today's topic. 08:15.30 Frank me Yeah, um it's a great topic. And it's a good timing, James, because I have exactly the right project I want to talk to you about with without regard to all of that. 08:25.94 Frank But first, I actually I want to address your Greenfield, Brownfield. Are we really calling it Brownfield? Is that a thing? um 08:31.60 James That's what it's called. 08:32.50 Frank Okay, it's just what it's called. 08:33.62 James Hmm. 08:34.11 Frank old code new code let's go with that um i i've actually been thinking about it a lot today because i have been adopting the james style of programming which is sit on your butt all day and just tell github copilot to do all your work for you i call it the james way uh and i enjoy it but i found the the control freak in me freaks out a little bit because it's hard to give it architectural suggestions or it might get some broad architecture things differently than how, say, I prefer it or some UI things. 09:06.47 Frank And what I think you're supposed to do is fill out a bunch of agent MDs and instruction MDs and give it a lot of prompts and that kind of stuff. But I'm a little too lazy and I haven't perfected my agent's MD or anything. And so I found in the great, like, I think there is an argument for AI is great in Greenfield because you just start, you vibe it out, you just keep telling it features, it starts programming its thing. But there is this moment where I kind of manually go through the code and just kind of push it a little more in the direction that I like. And I don't want to type out all the instructions, all the prompts it would take to do that. it is 09:43.25 Frank I'm an experienced programmer. I can actually sit down and edit the code much faster than I can describe the changes. I think this is always the problem like tech leads have with junior programmers. you know It's like, do I take control and just edit the code or do I tell the junior programmer in my case, 09:58.54 Frank i try to I try to tell the junior programmer, the co-pilot, to do most of my work, but then there's always this moment where I want to um lead it down into my style and just force it back into my style. 10:10.00 Frank I'm getting to my point, I swear. And this is a part where i actually think that AIs and brownfield code, terrible term, is kind of great because then it's already locked into your style. 10:23.12 Frank It's locked into your architecture. And yeah, it can do damage. 10:25.27 James Yeah. 10:26.97 Frank It can go and blow away your architecture. But if you have a substantial code base, it's going to work within your architecture. And I almost feel like it's better because then I trust, okay, the overall design of my app is there. 10:41.09 Frank My data flow is mostly baked. the The way I have services run, the way I have services talk to each other, that's all kind of baked into the code. And now I'm having it do refinements and features and UI work, and it's doing that all within the context of my code. 10:57.22 Frank And so I'm finding I actually, i think ai is really shining for me as a control freak in the brownfield scenarios, because I don't have to worry about it creating some ridiculous architecture that I don't like and that I have to go back and clean up. 11:10.29 Frank So I just wanted to put that out there. 11:10.73 James Well, I think what I've also noticed, is for example, when I use it in the skiing app, I didn't have to give it a bunch of instructions about how I wanted to architect my code because it could infer, like you're saying, in many ways, oh, this is a view model. 11:25.43 James I'm going to create another view model and it should probably look like the other view model. that's inside of it, right? 11:30.21 Frank Yeah, exactly. 11:31.03 James ah Like I can see they're using this. Oh, this is a controller. It should probably look like, oh, I'm making another RESTful endpoint. 11:35.86 Frank Yeah. 11:37.10 James It should probably look like the other RESTful endpoint. ah However, I think the other powerful feature of this is that if you have your code in a place, you can then ask AI to come up with the best practices based on your code base and then generate the instructions for you. 11:51.49 Frank Mm-hmm. 11:54.02 James Like there is a generate inside of VS code, you can generate custom instructions, but I would almost be more pointed on it. Like I would take a look at what that's doing, take a look at the prompt, and then I would customize it and run it again. And then I would maybe would do one for your your UI, for your view models, for your CSS. 12:14.42 James But give it and say, look at all of my CSS, understand how I structure my CSS, understand how i structure my XAML, how I structure my JSON files and how I structure and deserialize JSON or whatever it is, and then write the best practice guide for this. 12:29.02 James And funnily enough, in a Greenfield app, I did this ah with Apple. 12:30.01 Frank Yeah. 12:35.06 James I went and I said, go look at all of like the Apple... samples and best practices for writing Swift code and go document Swift best practices and adhere to that. 12:47.21 James i'm not saying that that's what I wanted, but I don't know anything about Swift, but I'm like, if you're going to write it, write it in the way and then go generate those instructions and put them all in there of how you do these things. 12:50.15 Frank Sure. 12:55.98 James And that worked really well. So I do totally agree with the the greenfield brownfield. 12:58.16 Frank Mm-hmm. 13:00.09 James um ah And I also would say that because the models have gotten so much more more better and they're grabbing more context in their windows and things like that. That's the other part is I don't think we could sit sit here a year ago and have said that 100% the same. 13:13.25 Frank h 13:13.53 James It didn't feel that way per se as much as it does today. 13:18.13 Frank Yeah, it's it's it's definitely trickier now, though, too, because like it's a little bit hard. It's both easy to control its context and hard to control its context um in that you can point it at some files, but if the files are a megabyte each, it's not going to read in the whole file. It's going to use its own regexes and go look around for things. you've got to kind of point in that direction. 13:41.17 Frank ah Speaking of which, so I was working on a fun project. It's actually a project from years and years ago. So in a past life, I used to work on naval ships. 13:52.88 Frank Do you remember that part of the the Frank story we did on Merge Conflict like 20 years ago? 13:58.07 James Yes. I think it'd go back to emerge conflict episode. I'll find it while you're, while you're talking, go ahead. 14:01.99 Frank Oh no you won't. Okay, yeah. 14:03.21 James know, 14:04.00 Frank So many years ago i used to work on naval ships and I worked on rudder controls and autopilots. And it's it's, I'm a controls engineer, it's fun code. 14:14.80 Frank This is what brings me happiness in the world is writing embedded systems. I don't love working for militaries anymore so I don't do it anymore. But I do love working on robotics and control systems and that kind of stuff. 14:28.17 Frank Well, years and years ago, James, I ran into some code. Not even code. I ran into a chip. The chip fell off the back of a truck. Well, I guess in this case, it fell off the back of a boat. And i was able to read the code off the chip, but this is machine code. This is like actual binary data off of an EEPROM. So this is like... really baked into a little chip. So back in the day, before we had hard drives and all this fancy stuff, um you would actually hard code all your program code to a little chip, little chippy guy. And then the processor would read the code off the little chippy guy, the ROM, and it would execute that code. 15:12.05 Frank Well, this began a long process of I was curious how that code worked. and it was 6809, 6805, 6809, whatever, some ancient old Motorola code. 15:19.11 James you 15:25.99 Frank And it's been sitting on my hard drive, James, for 20 years. And for 20 years, I've always wondered, what was on that little chippy? And about a month ago, I decided, you know what? We have AIs now. 15:39.62 Frank And I'm going to investigate what's on that little chippy. And so this is definitely up your alley of like, here is something I am not comfortable with, editing and reading raw machine code. 15:52.38 Frank I wonder if AIs can help me. So do you think AIs can help me? 15:57.24 James I think that it can do anything. So, yes, i think well, i what it depends, right? 16:00.30 Frank Anything. 16:02.98 James Because, you know, when we think of the AI, in a way, we think about the model basically having this... um 16:15.26 James corpus of data that it has, you know, trained on. And the question really becomes, is this 6890 or 68, I don't know, whatever it is, 3825 code, 16:27.49 Frank ah Sure. 16:28.31 James is it is it aware of this and the Interesting part about this is I was watching like a Microsoft copilot, like the copilot app, like the GPT app doing the vision stuff. 16:38.66 James And I think Mustafa, you know, went somewhere and went to someone that had this old machine where they were working on shoes and stuff. It's like, oh, this machine's from the sixties. I can't fix it. 16:48.64 Frank Yeah. 16:48.78 James And he's like, oh, just like. let me just take a photo of it or blah, bla blah, blah. And then it's like told them how to repair it because like somewhere in the training data, it could find the instruction manual, like whatever language it was written in. 17:00.47 Frank Oh gosh, yeah. 17:02.09 James It like knew, you know, it just, it has this corpus of data. So the question is, is this, does the corpus of data 17:06.10 Frank Yeah. 17:09.14 James know and can you refine and can you tell it to actually either suck it in and make a custom model off of it and let's stream what it is or does it just have the knowledge to do it? 17:15.24 Frank Mm-hmm. 17:17.85 James So I actually don't know. My assumption would be probably, but then it could also be not at all. 17:23.06 Frank Yeah, and that's honestly how I felt about it. I know, i not to brag, but I know a lot about machine learning. And even I was like, I'm not sure. Because there's really not that much 6809 code out there. 17:36.28 Frank um It was popular in the 80s. I personally used it. I used the 6812 6811 in the late ninety s i programmed that at General Motors. 17:47.16 Frank So I was vaguely familiar with the chip, but there's just not that much code out there. 17:47.44 James Yeah. 17:50.60 Frank In the same way that all these models do JavaScript better than Fortran, they do Python better than beta. 18:01.38 Frank I don't know, name a language, name a programming language. um I still complain about their um quality of Swift code. You say it's fine. I still think it's generating subpar Swift code. Yeah. 18:13.24 Frank um So I was really curious myself. The one, the one, and I've been wanting to try this experiment ever since basically GPT-3, because fundamentally, all these new AIs, everyone calls them, they're transformers, they're the transformer architecture. 18:31.03 Frank And that transformer architecture came out of translation. Right? So from the very beginning, these kind of networks, before we were using them to, you know, predict the stock market and blah, blah, blah, they're just good translators. That's what actually they were designed for, and that's what they happen to be really excellent at. 18:52.18 Frank And so I remember thinking, I'm like, oh, I wonder, can this thing translate from machine code into high level code? And I'm going to talk about C code because I think C code for this is high enough level. 19:00.95 James Yeah. 19:05.02 Frank you know I don't need it to become all object oriented or anything like that. And in fact, I remember years ago, back in the GPT-3 phases, we were all joking like, well, compilers are useless now because compiling is just taking one language and converting it to another language, machine code. 19:21.99 Frank So why don't we just have AIs be the compiler? Like, you know, just here's here's some code, generate the machine code, generate the x86, generate the ARM or something like that. 19:31.76 James Yeah. 19:33.08 Frank I don't think anyone's actually done that experiment because we're all too suspicious of it hallucinating some code or something like that. But if you think about it there's no technical reason it couldn't do it. 19:43.77 Frank And if it can do that, why can't it do the reverse? So I thought I had to give it a try finally. So there's multiple steps you have to take. So step one was to convert from machine code into assembly code. And by machine code, I just mean it's it's bits and bytes. You know, it's just numbers. And humans can't read numbers. And these these networks aren't going to be able to read numbers like that. It's too too obscure, too esoteric. 20:10.40 Frank And so I was happy I was able to dig up some old 6809 disassemblers. So this would go from the binary into assembly language. 20:16.56 James Yeah. Okay. 20:22.88 Frank Do you do any assembly anymore, Jane? 20:23.52 James And once youre once, once, well, once you're in assembly, I think you're okay. No, I do not do any assembly anymore. 20:27.86 Frank Yeah. 20:28.54 James No. Um, um, I've, I've, I've partaken very, very, very long, uh, time ago and, uh, begin in the beginning of, uh, there, but it lasted not very long cause I'm a higher level. 20:35.46 Frank Mm-hmm. 20:40.95 James programming language type of dev, but there is a lot of assembly in in the world. 20:41.24 Frank Yeah. Yeah. 20:46.29 James Like assembly is out there and has been out there and how much of it's you know publicly on GitHub, but I bet there's quite a lot of assembly to be honest with you. 20:54.81 Frank Yeah, and in fact, um the problem with assembly, so assembly is a high level language. 20:55.22 James It's been around. 21:02.23 Frank It's meant to be read and written by humans, not computers. 21:02.61 James Yeah. 21:05.57 James Yeah. 21:06.07 Frank Computers talk machine code. So even if you have a bunch of assembly, you still need an assembler to compile that assembly down into machine code, bits and bytes that um the processor can actually read. 21:18.81 Frank And so my thought was, if I can get it into assembly, then these transformers that understand a lot about programming, perfect at 6809. But if they see something called like load address register the value 42 into register a it can figure out, well, OK, something called A is going to have the value 42 now. 21:39.74 Frank If it's JSR jump subroutine into something, it's going to figure out. a JSR is a classic one. It's been around for a while. So I was excited. 21:48.22 James Yeah. Smart. Smart. 21:49.78 Frank Smart. Yeah. There was just one more catch, though. So this EEPROM is 64 kilobytes, which generated 1.2 megabytes of assembly language. 22:02.14 Frank So you see, that's that's the human readable part. 22:02.19 James Wow. 22:05.36 Frank There's a lot there. And the biggest, it's not just assembly though, because the ROM is also data and code. So it has to kind of figure out what's data and what is code. And these are hard things. So maybe like 10 years ago, I thought, oh, I got i got the assembly like 10 years ago. I'm like, 22:23.63 Frank I am going to by hand look for every JSR jump subroutine, and I'm going to hand decompile all this assembly into high level C functions. 22:33.99 Frank I was able to find my old notes. I got about 10 functions in and then gave up. It was just way too much work. 22:38.74 James Ha ha ha ha. 22:43.42 Frank So it was always sad. It was like this project that I always wanted. I've had this EEPROM forever. I've had the disassembly forever. And I just lacked the time and patience to actually convert it over to something high level. 22:57.21 Frank And that's when I had the brilliant idea of, well, we've got these giant machines now, these ah large language models. Let's just pump it through. Do you think it worked, James? 23:08.09 Frank what worked Do you think it worked? What model do you think I tried? And did it work? 23:12.31 James ah It's a good question. 23:14.39 Frank What would you do? 23:14.45 James Yeah. 23:15.19 Frank You have 1.2 megabytes of assembly and you want C code out from that. And I should say there are decompilers out there, but it's hard. Decompilation is a very difficult task. 23:28.73 James yeah 23:28.82 Frank And that's why I think I've even, I think I even tried to use some like heuristic based ones, but they don't work well. 23:35.03 James I guess does the model for, it for the model to know about the code, does it need all of that assembly code? Is it going to need all of it? in general? So does it mean that you're going to then have to generate like a custom model off of it? 23:45.47 Frank Right. Mm-hmm. 23:48.70 James Like take the foundation model and then put this in there, do some training on it so that it knows about it? Or is it like, hey, here's this big file, kind of chunk it and do some things and kind of just crank on it for a while so you understand the code base and then write up something? 24:07.17 James Because you know the thing with, yeah when when you go into VS Code, or or wherever your AI code editor of choices. um It only knows what it knows. 24:19.80 James You know, it's it's if you're like, Hey, here is my code. i mean, I maybe they have memories now. But like, in general, the it's just calling the found, you know foundational model at at the end of the day, it's not like it and maybe it is a custom model. 24:31.66 Frank Mm-hmm. 24:33.28 James but It's not it's not taking your code and taking your things and then training a custom model for you. 24:37.84 Frank No. 24:38.62 James be cool, but it's not doing that. 24:39.34 Frank No. 24:40.06 James Right. If anything, it's maybe taking some memories and storing some things and then it goes into his context window and then shoves it back out. Right. But it inherently, it's not rebuilding a new foundational model, Frank, dash dash Frank. 24:48.32 Frank Yeah. 24:52.99 James You know what i mean? 24:53.72 Frank Yeah. 24:54.07 James So I think in this case, if this is unique code, the The right way to do it probably is what I talked about, which is like, hey, I'm going to have to now do some machine learning. I'm going to take a foundational model. want to take this data, put it in, understand it so it actually understands what it's doing so I can ask questions about it and do some stuff. 25:11.58 James if it doesn't know about the code, the first thing I might do is just like pop it over into into sonnet. If I wanted to waste and to just kind of use a bigger heftier model, maybe I throw Opus ah ah Opus at it, because why not? 25:19.71 Frank Yeah. 25:25.40 James The context windows are all kind of the same, I guess you could use a GPT codex and that maybe get a huge but you maybe need someone with a huge context window, the Gemini 25:36.60 Frank yeah 25:38.07 James four three pro, I don't know how big, like whatever the tokens are, but you, but you probably have to pay one of those providers, right? You're not just going to get an off the shelf code, you know, what, you know, VS code, like that has like ah this huge context window to suck it all up into it. So what I would probably end up doing is, um, 25:56.50 James is where inferencing comes in or something like that. We got to like do some stuff. i don't know. I'm just now I'm using AI words. I don't know anything. 26:00.66 Frank Cool. cool 26:01.66 James But my thinking is are you using like, ah hey, okay, I'm going to take a off the shelf model, like a Quinn model or something like that, a Quinn three model or something like that. and then say, okay, we're going to take this. I can run it locally. 26:12.21 James I'll spin up, do some training on it, build up the neural network, do a bunch of stuff. And then I'll have this local model. that I could run that could then prompt questions on? Is is that the route you went? because I feel like that would be the route that you would go if that is a route that even logistically makes sense in my very small knowledge of machine learning. 26:34.61 Frank I love your faith in me. And i I love that you think I have nearly the hardware it would take to do that. um It is great, though. 26:41.27 James You don't have a bunch of Blackwells sitting around? 26:43.13 Frank i got I've got three H200s back there. 26:43.15 James God, where's your infinite... 26:47.33 Frank They're just sitting doing nothing. 26:49.17 James They're chill and they're ready. They're ready to burn some energy. Come on. Put those GPUs to work, Frank. 26:56.44 Frank i like you I like your idea. it does have the problem. Let's assume I actually did have the hardware needed to do that because this is a large context. That is the biggest problem here. It's a big chunk of assembly code. 27:08.28 Frank um The problem is to fine tune a model, you still got to give it training data. And I'm not sure what the training data would be in this case. I could feed it a bunch of Motorola stuff. I could take a bunch of C code, compile it down, disassemble it, 27:23.58 Frank show, hey, this is assembly code, this is C code, A, B, learn how to do A to B. 27:27.69 James Yeah. 27:29.38 Frank That would be that would be if I was funded, if I was at a lab, or if I was at Google and someone wanted to throw me some money, sure, I might go that route, but no, that's not going to happen. 27:29.78 James Yeah. 27:39.89 Frank what um What did happen was all of a sudden all these big providers started saying, we got a million token context window, baby, come use our million token context window. 27:49.30 James yeah 27:50.74 Frank What they don't tell you is these LLMs are absolutely atrocious once you get past, say, 50,000 tokens. So it may support a million tokens, like on the spec. And if you give them two, three dollars, they might actually consume a million tokens. 28:08.54 Frank But they get dumb. 28:08.75 James Yeah. 28:09.82 Frank They get really dumb after a couple hundred thousand tokens. 28:10.53 James Well, well 28:13.64 Frank Yeah. 28:13.69 James and this is like when you're when you're when you're ripping in in VS Code, you know, you see it it'll compress the context windows. it actually keeps it, real you can see the context windows. 28:20.88 Frank Yeah. Yeah. 28:22.92 James It's like 124 for most of them or 108 for some of them or some are 64. But like um when you go, you'll see it summarize. And what I've noticed is, yeah, eventually, 28:34.50 James Once it's compressing, compressing, it does, it's compressed so much that it has lost some of the things that wanted to know about the conversation. 28:41.69 Frank yeah 28:42.06 James And it just kind of struggles to figure out the compressed and figure it out. It's like, okay, we just got green field, this chat right now, you know, it's, it's gone down. 28:50.14 Frank yeah 28:51.24 James we' were going to close down this factory and like start a new, you know what I mean? Because of it, because you can only have so much context. 28:54.56 Frank Mm-hmm. 28:58.07 Frank Yeah. So the fundamental problem here is the ROM is actually three things. um It's 64 kilobytes, no matter what the code is. So that means actually a good chunk of the ROM is blank. 29:11.35 Frank It's all zeros. Because if they didn't need to use that part of the ROM, then it's all just zeros. And there's actually no code there. There's no data there. But that still got disassembled. And it still consumed a bunch of stuff. 29:24.86 Frank So um one step I actually took was I manually went through and started to look where are all the zeros beginning and all that kind of stuff. So I manually trimmed down the disassembly just with my knowledge of. 29:36.79 James we wait We call that data cleansing. ah Clean the data. 29:40.44 Frank I cleansed that. oof Scrubbed it, scrubbed it clean. 29:42.61 James Cleanse that data. 29:44.05 Frank Yeah. 29:45.12 James Scrub those zeros. Get out of here. 29:47.06 Frank Yeah, and the the other problem with a ROM, if you think about like generating an executable for your code, is what I was saying, data is mixed with static data, is mixed with code code. So imagine um you have a function in your code, and then on the next line, you declare a big static array, like, I don't know, a picture or something like that. And then after that, you have some more code. So now we're mixing code, data, code So the way around that for a human or a decompiler is, well, for these chips, for this processor in particular, you know there are some fixed memory addresses. 30:26.39 Frank When the thing gets rebooted, it goes to this memory address, it reads these bytes to find out what address to jump to and all that stuff. 30:32.26 James Hmm. Hmm. Hmm. 30:32.47 Frank So sophisticated machine. If it has what's called the vector interrupt table at the end of the code, it can know which parts to go into. And then it can recursively do it. Start there, go find a function, decompile that function, find what functions that calls, go decompile those. That's what I wanted it to do. 30:51.42 Frank But you still have to kind of blast the whole context at the thing. And so Google's out here bragging about their Gemini 3. I'm like, you know what? 31:01.70 Frank I'm going to give Gemini 3 shot at this. 31:04.82 James 10 bucks. 31:05.22 Frank I'm just, yeah, not not even that bad, actually. 31:05.62 James There we go. 31:09.53 Frank I forgot what the trimmed code size was, but it was smaller, obviously, than a megabyte. The hardest part for me was deciding what the prompt should be. um So I wanted to be very clear to it. I'm like, I want you to decompile this assembly code. Do not hallucinate. Do not assume what this code is doing. I want a line for line conversion of this code to C code. 31:32.41 Frank But at the same time, i want it to be readable. I want good variable names, all this stuff, because I could do a line for line seed disassembly or decompilation that would not be pretty. 31:43.45 Frank And so that's what I did. i wrote out my prompt, i filled that context window all the way up, and shot it off to Gemini. 31:52.57 Frank This is, I don't want to give too much shade against Google here, but I'm going to give a little shade. oh my God. It just hallucinated the entire thing. It came back to me. It's like, well, I heard you're working on a, it's like Clippy. I heard you're working on a rudder control system. ah We think when you turn the helm left, the ship should probably maybe go left. And so we wrote code and I swear to you, the code was like, if helm left, turn rudder left. And I'm just like, is that, 32:18.55 Frank Is that really what the assembly Is that what I'm getting for my $2? I just gave you guys. I forgot what the cost of Gemini is. But I was so disheartened because, you know, like I said, I've been thinking about this ever since GPT-3. 32:31.55 Frank And I finally got around to working on it. 32:31.78 James Yeah. 32:34.49 Frank And it just hallucinated all the C code, even though I specifically told it not to. And I was all sad, James. I was sad. Have you ever worked on something, realized you're not good enough, and then gave it to a machine to do it and realized the machine's not good enough either? It's just like like, oh, technology. 32:54.01 Frank It's like, I'm passionate about this stuff, but it was very frustrating. 32:57.42 James I, uh, I recently, i was working on baby smash and if you listen the last podcast and you should, you should get the source code now and like running after this. 33:07.48 Frank Okay. 33:08.89 James Um, It's at actually when you run it, it it it won't run in kiosk mode, but if you run it and release it run in kiosk mode, it covers everything. And then it also now ties into the accessibility features and it additionally blocks spotlight, which is like impossible by the way, like blocking spotlight, like took unbelievably forever. 33:17.67 Frank I'll kill 33:29.97 James Also, if you try to exit the app, you can't, 33:31.26 Frank Might have some assembly code in there. 33:33.11 James if if you try to exit the cap the the app, if you try to force quit, right, which would be um option command escape, you can't because the kill activity thing comes up behind it. 33:35.64 Frank Yeah. 33:44.26 James And I also block command que so you can't quit the app. So I had to build in a special way to exit the app. And I even had an emergency backup, which was press the the period button 20 times within five seconds. 33:56.93 James So emergency mh emergency escape app. 33:57.42 Frank Hilarious. 33:59.90 James But in this, the spotlight, the funny part is like, I couldn't get it. The machine couldn't get it. I went to Stack Overflow. 34:06.82 Frank Ah. Ah. 34:07.54 James I found a thread on Stack Overflow of all of these ways of hacking it, gave it that to the AI. 34:12.26 Frank Right. 34:12.98 James And it's like, oh, you know what? I think one of these might be correct. And it analyzed everything and it put one in. Sure enough, it worked. 34:18.94 Frank I love it. 34:19.42 James like It actually had to write like C code, C++ plus plus code, and invoke it from Swift to do some crazy... I have no idea what it's doing, but it worked. But it was the thing. It's like, I couldn't get it to work. It couldn't get it to work. But somebody else on the internet got it to work, Frank. 34:32.50 James So... 34:32.94 Frank It's probably Quartz. I love that like Mac is old enough that it still has like some Next Step code in still has some Quartz code in it. They want you using SwiftUI, but man, it's got the old stuff if you need it. 34:45.21 James i was I was just, I was just, I was just watching a YouTube this a side tangent is, there's this video on like tips and tricks for stream decks. 34:45.55 Frank It's back there somewhere. 34:54.65 James Cause I got this new stream deck and it has all the dials. I'm like, how do people use it? I'm just kind of curious tips and tricks. And, and the, and the one guy was like, oh you know what I have is I have a dedicated, a theme toggle. He's like, sometimes I'm recording a podcast. 35:05.38 James Everything's in light theme. Cause my Mac changes by a time of day. He's like, so I have the thing. He's like, you know what I wrote? He's like, I asked chat GPT for an Apple script. to do it. 35:14.21 Frank Okay, yeah, of course. 35:15.22 James So, so it actually keeps an Apple script and like funnily enough, apparently like these models are pretty good at Apple script, which I would never use automator and use Apple scripts ever. 35:15.23 Frank Yeah. great. Mm-hmm. 35:22.39 Frank I... 35:24.62 James Cause I'd have no idea to do it, but apparently just ask the model to do it. And it'll write I was like, dude, that's, that's a pretty smart idea. He was like, he's like, I wrote an, uh, uh, an, an Apple script to toggle, like do not disturb or whatever. 35:39.48 Frank who 35:40.36 James Cause it's, it's in there. 35:42.55 Frank um and I've tried to write AppleScript before, and that is a weird programming language, and I've given up every time. So maybe, thanks for the tip, pro tip from James. 35:52.16 James AppleScript. 35:52.69 Frank make Make the AIs write the AppleScript. 35:55.64 James I'll figure it out. Yeah. so I was like, wow, that's, that's pretty cool. Yeah. Anyways, I digress. 35:59.69 Frank oh okay 35:59.84 James So, so where were we at in this story? 36:01.05 Frank Okay. So ah so um I'm all depressed because I tried i tried to do it the advanced. And then i decided, what would James do? This is what I always ask myself all day long. 36:09.49 James no. 36:10.05 Frank And I'm like, James will just ask Copilot to do it. So I opened up the code in VS Code, opened up the little chat window, set it to Sonnet. didn't even use Opus because I was feeling kind of cheap. 36:22.59 Frank that day. 36:22.97 James Yeah. 36:23.13 Frank i was already depressed. 36:23.24 James Yeah. One X. 36:24.82 Frank on One exit, baby. 36:25.05 James Yeah. 36:26.73 Frank that's One's already enough. One's way bigger than zero, you know. So, I just set it to Sonnet, gave it basically the same prompt. I'm just like, and What's it hurt? 36:37.61 Frank You know, copy, paste, hit enter. 36:38.49 James Yeah. 36:39.80 Frank Just let's see what happens. And what happened had to be the longest chat history. You know how like when it goes a long time, vs Code's like, do you want to continue doing this? 36:50.38 Frank This thing's been running for like six days now. You're like, yep. Yep. Keep going, baby. And it's like summarizing context. Did that like five, six times, but it's actually doing what it should be doing. 37:00.39 James Oh, yeah. 37:01.86 Frank Like how was describing of actually trace into the function. Okay. This function calls these other functions, subroutines, whatever you want to call them in this is assembly code. Go find those, go find those, go find those. 37:13.55 Frank And my God, James, it started pumping out code and it started pumping out code with like comments. Like this function is replicated at this assembly memory ah address. It does this and that and this other thing. And then it would have like pump pump out another one. It's like, Ooh, I see you are emulating 32 bit math. I'm like, yes, I am emulating 32 bit math. I'm like, I hope I'm, em I guess that's what the code is doing. And it was a fascinating walk down history. It was really exciting to see this thing slowly pry apart. This is what I was imagining 20 years ago, what I would do myself as like a hobby project. 37:50.78 Frank But instead, I got to watch the robot do it. And this was much better because he just sat back. And it's like watching a movie unfold. It was like, okay, i i think ah I think you're reading a button here. like oh yeah, I think you're displaying something on an LCD screen. I'm like, well, I am displaying something on an LCD screen. 38:08.55 Frank And it just started tearing through that code. to the And it was great that it kept having pointers back at the assembly, too. So I think this is where i kept telling it, like, please don't hallucinate. Like, everything has to actually be, you read this in assembly, this is a faithful representation of that. 38:28.65 Frank And um yeah, this was Sonnet and it just, I want to give all credit because it just crushed it. Like out came a PID controller, a proportional integral derivative controller, a closed loop control for how this thing should work. 38:43.69 Frank I always thought this code was a rudder control system. Turns out it's a rudder control system plus autopilot. Little little extra feature there. 38:51.81 James Wow. 38:53.11 Frank it had subroutines for measuring its own consistent um consistency with the ROM. So like and you know today we would like we have like hash functions and we would compare the hash of the code to make sure that the ROM wasn't corrupted. 39:09.26 Frank It had that. It implemented it. It did the like RAM startup, you know, remember the old PCs, they'd be like testing memory whenever you're booting them. 39:17.08 James yeah 39:17.88 Frank That code was in there. And so it would write like different memory patterns to the memory, read them back and make sure those memory patterns were there. That code was there. 39:28.28 Frank The hardware abstraction was there. Things that I always wonder, I write PID controllers all the time. They're like baby's first control algorithm. Everyone uses them. We all use them for things they absolutely should not be used for. But it's such a simple, elegant algorithm that we all just use it. 39:44.92 Frank But there's details to it, James. The integral. The integral can get very large and then of a sudden you're feeding very large control signals to something. It's called integral windup and everyone, every single controls engineer in the world has their own way of solving the integral windup problem. 40:03.98 Frank And it broke out exactly how this code does its integral windup. One of the simplest possible ways to do it, you just clamp the values at certain means and maximums. 40:16.55 Frank um But it was so cool to see like real embedded code come out of this thing, not hallucinating stuff. like This is good, well-engineered code because it's literally running on warships out at sea like that are functioning today. 40:32.61 Frank um you know This chip fell out of the back of a working vessel. 40:33.39 James No. 40:35.57 Frank So like this is real code. 40:36.69 James yeah 40:38.71 Frank And so it was so cool to see very well engineered code coming out of what was the 64 kilobyte file sitting in my Dropbox for the last 20 years. 40:49.09 Frank And finally all its little secrets had been revealed to me. It wasn't perfect the first time, but we're getting along in this podcast. I just want to say, like, it succeeded, and it was awesome. 40:59.19 James Wow. 40:59.73 Frank And I just, I loved it so much. It was so exciting for me. 41:05.06 James That's crazy. That's so cool. It's a cool journey. Also, you can ah listen to Frank's crazy journey, mergeconflict.fm slash 132. 41:13.11 Frank Ooh. 41:13.33 James That would be it um yeah that's wild. I mean, I think it's such a cool journey. And also, to your point, we have all of these different AI services out there to generate stuff. 41:26.39 James Give it a go. And you'd be really surprised. ah A good example of this is not as complex as what you're talking about. 41:33.67 Frank Yeah. 41:34.38 James However, I will say this. I asked, I was working on Baby Smash and and need a new app icon. And, you know, this is a transparent background for the app, the icon composer thing. i wanted, you know, different shapes and things and smiley faces. 41:50.26 James And I asked GPT-5, I asked Sonnet to do this inside of VS Code, which it does it does generate images fairly decent, um but it didn't it' it's mostly SVG art and it doesn't do a super great job at it. 42:02.61 Frank yeah Yeah. 42:04.82 James So I was like, you know what I'm going to do is because it's not an image generator, right? 42:04.96 Frank Yeah. 42:09.10 James It's not inherently, that's not what it's due it's made for, right? 42:09.86 Frank who 42:13.02 James But it can generate SVGs and then convert those to PNGs. So I just booted up like Microsoft Copilot. Like you would open up, you know, ChatGPT. And I was legitimately like, hey, bro, like, can you just go and create an image for me that I, well, what I did first, by the way, 42:34.26 James which I think is really funny. i'm going to send it to you on iMessage. So i I asked, I said, this is this is amazing. This is a good prompt for everybody. I went to my app and I said, I want you to generate a prompt for me for an AI system that generates images 42:41.91 Frank you 42:48.95 James but I want you to take into consideration all the requirements and what this app is and what a great app icon would look like. So it came up with this beautiful prompt, design requirements, 1024 by 1024. 42:59.86 James It's a Mac OS application, transparent background, playful, fun, child-friendly aesthetics, bright, vibrant colors, gradients, include large bold A letters in the in the center with pink, coral greens, colored geometry, numbers one, two, three, floating numbers like BC, cartoon illustrations, joyful. 43:15.38 James like i I asked it for a prompt and said, do not include. 43:17.43 Frank Oh! 43:18.14 James all this stuff, right? And I'm going to send it to you on my iMessage. It's going to have the transparent background, but you imagine like what I did here for it. And it generated this stunning, just ah beautiful. 43:31.11 Frank woo 43:31.96 James um and this made sense because it's like very kid-friendly application. and it generated this like beautiful, like art that I dropped in. 43:44.61 Frank This was an SVG. I hope you'll put this in the show notes so everyone can see. um This is fantastic because... 43:50.01 James So i I went in, so this this was not inside of GitHub, not inside of GitHub Copilot, but inside of Microsoft Copilot, the Copilot app. 43:50.98 Frank Mm-hmm. 43:57.43 James And it generated a PNG, g not an SVG, a PNG, g because it's an it's an image generator, right? 43:59.80 Frank Okay, got it. Okay, okay. 44:02.27 James And it knows how to generate images, just like... 44:02.61 Frank Right. Okay. 44:04.83 James um and you know, GPT-5 does or whatever, you know what i mean? Like ChatGPT does. 44:08.63 Frank Mm-hmm. 44:09.14 James So it's just like, but inherently the code editors aren't like, pump they're going to pump out SVGs. 44:10.11 Frank Mm-hmm. 44:16.28 James They're going to pump out PNGs. But this thing can create beautiful artistic artwork because it can generate beautiful images. 44:17.70 Frank Right. Yeah. Yeah. 44:22.62 James So, have you know, I was like, wow, this is so cool. 44:26.05 Frank Graphic design. You know, it's it's funny how many of them won't do a transparent background, though. Or you ask for a transparent background and it actually renders like gray and white squares. 44:30.87 James Mm-hmm. 44:33.84 Frank You're like, oh, buddy, so close. Almost. You almost got there. No, this is a great icon. Good job. i love that now that Apple has Icon Composer, we're all having to actually do very boring gradient backgrounds and then just separate the foreground image and all that kind of stuff. 44:47.09 James Yep. Yeah. 44:49.88 Frank Yeah. 44:50.58 James yeah 44:52.32 Frank Oh, yeah, yep, okay, so you went, okay, yep. um Cute. 44:57.21 James So that's what it looks like. I sat sent you the app icon and and anyone can go to my GitHub and you can go to the Baby Smash repo and you can see the art. 44:57.98 Frank Very cute. Yeah, rendered. 45:04.16 James I have an art folder. But yeah, it's like really good. I was like, wow, this is this is really good. 45:07.30 Frank ah 45:07.88 James You know, you know, I'm not saying it's as good as a professional icon designer, but I was like, you know what? 45:08.86 Frank Yeah. 45:13.88 James In literally three minutes. So that was ai using AI when AI, one AI thing wasn't good at one thing. 45:16.73 Frank Mm-hmm. 45:18.96 James Like your Gemini thing wasn't good at it. Try another AI assistant to do it and see how it bumps out. 45:21.88 Frank Yeah. 45:25.11 Frank I do hope they all get better at SVGs, though, because doing it at the pixel level is just a little much. 45:27.89 James Yeah, me too. 45:31.26 Frank But um yeah, excellent, excellent, excellent. 45:31.42 James Yeah, yeah. 45:36.03 Frank Well, now you can generate me an autopilot icon. So the worst part is like, this was all just for my own fun educational experience, because as a controls engineer, I want to know what other controls engineers are doing. 45:41.34 James There you 45:50.11 Frank Like, am I doing a good job? 45:51.18 James go. 45:51.65 Frank Am under engineering? Am I over engineering? 45:53.94 James Yeah. 45:54.98 Frank Am I at the right engineering level? And it was great to see like a production run hunk of code. You know, I learned to program by reading other people's code. And so this is the weirdest extension ah of that ever, that I was able to take like a binary image, convert it to assembly, convert that to C, and then learn from that code to like compare and contrast my own algorithms with all that. I should say that like i already had my own rudder control and autopilot that I wrote 20 years ago, so I'm not actually going back and changing anything. But it was fun to see like where they line up and where they don't line up. And I just thought it was a just one of those fun, not possible five years ago. And now it's just something I did in an afternoon for funsies. 46:39.20 James That's crazy. Yeah, that's cool. Well, if you can, if you can, you know, 46:42.01 Frank Good world. good 46:47.58 James If you can, so so somebody, somebody once told me that and I'll leave on this is there's a, some, you know, always controversy on the internet, but someone made like a bold statements. Like, Oh, I would have never done this with that. I, without AI. 47:04.12 James And that is is is partially true and possiblyly partially part partially false. It's that we wouldn't have the time, effort, or energy or to be able to prioritize some of these things. 47:12.17 Frank Mm-hmm. 47:14.48 James And I was talking to Hanselman about this. And what he was telling me is like, we we're now able to kind of up-level, up-shift some of those lower priority things to a higher priority because you can parallelize them and and spend a lot less time on them to maybe get something out of it or get something out of it completely. 47:33.62 James Cause you've had this, you've tried, you've done some stuff. 47:35.84 Frank here 47:36.33 James You could, you probably given me um a vast amount of infinite time, you could have figured it out. Right. However, it's not going to be your priorities cause this isn't your business, right? 47:42.01 Frank Yeah. 47:44.69 James Frank has to make eye circuit and get that sweet circuitry money out there. 47:45.38 Frank Yeah. 47:49.19 James Right. So I think that's the thing that is, is that I wouldn't have time to put effort and energy into so many projects. I'd be more focused in on it. So would I have holiday hacked and built a thing? 48:01.39 James Yes. Would I have holiday hacked and built 10 things? Probably not. You I think that's the thing. Would you have ever done this without it? Maybe. Right. But I think in this regard, like this is a really cool example of taking something that is 48:18.01 James not unfathomable, but doing it in however little time you did and then have a really cool story about that journey that you went on. 48:20.61 Frank Yeah. 48:25.46 James So that's cool. Thanks for sharing, Frank. 48:26.36 Frank yeah 48:26.94 James I really appreciate it. 48:28.51 Frank Yeah, and I just want to add, like, if it was about the journey, then it would have been worth, you know, spending three months, go off to an an abandoned island and work on it. 48:35.45 James Yeah. 48:37.03 Frank But that's not what I wanted. What I wanted was the knowledge of the code. And this got me to that actual place I wanted to be. i i There was nothing to be gained by the hard work of decompiling this myself. 48:47.92 Frank Everything was to be gained by the knowledge I could get from the actual thing that I could actually read. 48:48.42 James Yeah. Yeah. 48:53.44 Frank So that's why i don't feel like I shortchanged myself at all in the process. 48:58.30 James Yeah. And I think also you said it earlier, but when you're going through this process, you get that deep insight into what and how it's thinking really fast, right? You see those messages, the thinking bubbles come up. that la' thinking you' doing so I love to try to parse those. 49:08.38 Frank Yeah. 49:10.57 James I go back, I expand them. I'm like, what were you thinking? 49:13.05 Frank h 49:13.13 James Oh, okay. i' and i mean i'm I'm interested, right? 49:14.13 Frank h 49:16.01 James I'm interested in its thinking process. Is it going down how I would have went down it? Maybe could course correct in a different way and the next prompt to go down every way. But anyways, Frank, I love it um We are at episode, good gracious, 497. 49:31.95 James We better do something spectacular for 500 that is coming up before, I think, the end of the month. So let us know what you want us to do. Go to our YouTube, go to our Twitters. 49:42.94 James I'm sure we'll do a live stream. Maybe I'll put a form maybe in here, like a question bag that you can just submit to. i'll put that in the show notes. So if you're in the show notes, I'll have form that you can fill out an anonymously. 49:54.30 Frank Cool. 49:54.97 James write any question about anything. So that way don't have leave a public comment. you know Some people don't want to do that. So there'll be ah there'll be a Microsoft form because I'm a company man. You can do that. It's just like any other form that you use on the internet, but it's included with my Microsoft 360 subscription. 50:07.93 Frank I can't throw it. 50:09.58 James um All right, let's it for this week. Merge conflict. No, oh we got something else. Oh gosh, go ahead 50:13.46 Frank Oh, no, I was just going to say so throw it throw in some of your favorite moments and things, too, because I love reminiscing. If you can remember, it's been 500 episodes, but if you can remember anything that's happened in the past, throw those into the form, too. 50:21.71 James Ah. 50:25.77 James I'm going to, the form will be ah just one blank box. 50:29.94 Frank ah Okay, great form. 50:30.04 James Merge conflict. It's going to be called, it's going to be new. I'm doing right now, new form. 50:33.88 Frank Okay. 50:34.74 James no co No, no, no, no, no copilot for needed for this. Merge conflict 500. 50:39.67 Frank No. 50:42.81 James Start with. 50:42.82 Frank Freeform. Prompt us. Prompt prompted James. Prompt Frank. 50:45.85 James Ooh, text. I'm even going to give you a long answer. It is going to be required long box. Anything you want. Boom. 50:53.71 Frank Yeah. 50:54.42 James Ship it. Saving. 50:58.58 James So whatever it is, you tell us all right that's go do it for this week's Merge Complex. Until next time, I'm Chase Montemagno. 51:04.73 Frank And I'm Frank Kruger. Thanks for watching and listening. 51:08.38 James Peace.