mergeconflict252 James: [00:00:00] Frank something pretty momentous happened today. Well, not today, this week, I would say. And it's something that's been in development for a while and our good friend, Scott Hanselman put me on to the. Niceties of this product inside of windows, an owner, and a windows person. We don't talk about windows that much, but I use windows every single day. However, there are a lot of people now that can fully use Linux on windows without dual booting into a Linux thing. They can just use Linux on their windows machine, including full graphical user interface, gooey applications, Frank. Frank: [00:00:51] Wait, wait. So you're, you're telling me the one time that we actually do talk about windows and we're going to talk about Linux and stuff. James: [00:00:59] Okay. Okay. Here's a few things. Here's what I want to talk about is that, um, it's kind of amazing that nowadays we write a lot of cross-platform code on different machines and we actually don't care where it's going to execute. Now, let me. Actually unpack that a little bit. Cause that's terrible phrasing. But what I mean is that we write an Azure function, we write a service and we publish that. Where, where does it run? Maybe it runs on windows. Maybe it runs on Linux. Maybe it's on a Mac machine. It doesn't matter because.net runs everywhere. However, If you're a developer, you may want to test their actual logic and code on those machines. And now if you're on a windows machine, you can literally run your applications from windows. In Linux and kind of debug it as if it was running on windows like this WSL, the windows subsystem for Linux is this like Holy grail, really cool technology that is also like tying into windows applications to debug into the windows app, into the Linux applications. Like, so it's like this weird, you know, it's like the matrix, it's like layers upon layers, like inside of layers, you know what I mean? It's like inception. It's like, it's an inception of. Operating systems. Frank: [00:02:27] This is going to be fun because I've never, I actually did use WSL once, so I have one time experiences in it. So I'm pretty sure everyone listening is going to have more experience with this than I do, but I'm still going to talk about, like, I know a lot of things about it because James, I actually do know a lot about the sub system. Uh, system and the empty Colonel, uh, this was a funny feature of how empty was designed. The anti Colonel, which is the basis of all modern windows operating systems. They, there is a deep down. Windows and T Colonel API, but they didn't want people actually writing programs against that. So instead they created these subsystems and the subsystem, most people know is the windows subsystem. Uh, but it, there was always also a post six sub system, which ran. Uh, some funny old versions of Unix, but the cool thing about WSL is we got Linux now. So Linux is running as the subsystem. So I just want to say that, that cool, fancy thing that you're talking about, like debugging between those layers. It's actually been in windows from the beginning times. It's an old, old feature. That's just having a really modern impact, which is really cool. James: [00:03:51] Yeah. And it's really, so it's kind of like this expansion into exposing these subsystems and opening them up. I mean, to the point that I can literally Ben the Microsoft store app and just type in Linux and it gives me a bunch of Linux distros that I can install like a bunch of flavors of in Boone too, and just have them running. It reminds me of, you know, VMware, like it's almost like VMware, but it's not a VM. Right? Like that's the cool part is like, it's actually running natively. There compared to like a VM or something in hyper V. That is in an instance that's running inside of itself. It's it's it's it's it's inside the computer. Frank: [00:04:30] Can I, can I Dever I lost the derailment. Number one, please. Uh, so a really cool new feature of Macko ass, big Sur, I'm going to go with big Sur is this added way to execute virtual machines from an Apple approved API? This has always been possible on max because they were Intel max. And you could just do your, you know, IntelliJ stuff to start up a hyper whatever, and, you know, hyper your way into virtual machines and all that stuff. But from a programmer, not many programmers like. Do you know how from an API to spin up a virtual machine, I certainly didn't. You went and downloaded VMware, you got a command line tool. You found some images, something like that. While they added API APIs to actually execute. Linux virtual machines and they have hardware, abstraction and APIs where you can respond to events from virtualized keyboards and virtualized mice and all that kind of stuff. And it's actually baked into the standard applicat API, totally accessible from Xamarin. Downside is absolutely none of it is documented. It is just a mystery on how to use the thing. It is an object oriented API. So you can guess around at it, me personally, I've never yet successfully gone it. To boot a Linux image. I've tried everything. I've tried giving it kernels. I've tried giving it disc images. I've tried like making raspberry PI devices for it to execute. I can not get this thing to boot, but I love the idea that there is a virtualization, API and Mac. So I guess my derailment to tie back into the main track is it's kind of interesting how, um, Linux has become this like virtual machine that we all just want to run because kind of servers do that. James: [00:06:32] But small, small, small, Frank: [00:06:35] uh, I'll I'll loop back that I agree with you with, like, if I'm creating an Azure function thing, I do not want to pick an operating system. That is the last thing I want to pick. Let the server people figure that part out. Um, all, you know, I even like I never do functions enough. I do web. Services on Azure and they make you pick these things like your machine and your operating system. Like I don't care. Give me a file system and a place to put my dotnet stuff. And so I can hit a run button one of these days. I hope it'll be that simple. James: [00:07:11] I'll tell you I've been writing so many functions recently. I'm I'm like functioned crazy right now. And yeah, I just, I just go, go, go. But I think you're kind of right on this sort of Linuxy as a rapid deployment little tiny thing that we want to like execute code in, um, because it's fast and it's small is when you think about Dockers and container, right? I think one of the really cool parts about WSL too specifically on windows is that you can now. Like run Docker on your windows machine without hyper V. Like it's running on the Linux subsystem, whereas before you'd have to have hyper V and like this, this other thing running, it can just literally run on WSL too. Um, you know, the second version, which is WSL two, uh, and you can. Debug into it from vs code from visual studio on windows. And it's transparent to you that your debugging, your Docker containers from windows, you know, and that is a really cool thing. And on top of that, they recently, and by they, I mean like the visual studio teams, they have integration into visual studio and vs code. That is to debug your.net app in WSL, too. So inside of the dropdown, the debug dropdown, where you would see, you know, uh, basically IAS, Castro, whatever, there's a little dropdown that says WSL two, and you debug your app inside of Linux. And it's transparent to you. Like you have no idea. And like, when you think about what you're saying, which is, I don't care where I'm running it, so just execute it. It's almost the same as like, okay, I'm just going to be deploying this. I'm just always going to do it on maybe Linux. I know that I'm always going to do Linux going forward. And to me, it's, it's easier to just. Pick one thing and go, right. Or if you're like, Hey, I'm only ever going to deploy on windows. You can ignore this entire podcast. Right. It doesn't matter. But, um, I think that's really neat that those integrations. So when you think of the windows machine, it is kind of like ultimate dev machine for only windows, but also for Linux now, too, which I think is, is really, really cool. When you think about that tooling, right? Cause there is no visual studio. Full on Linux. There's a vs code, obviously, but to be able to do all of your development stack, I think is really neat. Frank: [00:09:40] Yeah. And can I be thoroughly honest? The thing that kinda is impressing me the most slash freaking me out the most and everything that you just said, like the debugging stuff I'm like, yeah. Yeah. That makes sense. It's going through the blah, blah, blah. It's fine. Um, The part that I can't comprehend is getting the networking stack, correct? Because Docker is such an advanced networking stack that has all these virtual ports doing all sorts of crazy routing. And that's usually done easiest through a virtual machine. That's why it works nicely, but I am just really impressed that that is working with the network stack. Uh, wow. Some good engineers out there, you know, I would never, ever want to write that code. Yeah. Yeah. Um, right. So the, the part that really, I think freaked me out the most though, I guess a lot of freaking me out today was that there was a tweet going around about gooey apps showing up on windows now. And this was always a funny question that I had was, um, If that worked because I had never tried it or anything like that. And I guess it hadn't, it reminds me sorry to derail again, into the Mac world, but, uh, there are a lot of old Unix, X, 11 apps, the X window system. And you would. Execute these apps and they would download this crazy, like Cortes something executer thing, or, yeah. And if you cross your fingers and the magic world worked, this weird app would come up on your screen and it would sometimes even work. And that went away at some point, Apple just said, we're not doing that anymore. But, um, it really reminded me of that time. So have you tried this? Have you brought up any like crazy Linux gooey apps on windows? James: [00:11:39] Okay. So when I saw this blog post came up, come out and I watched the video from, I think it's Chris Craig. I wanted the at Craig who wrote this post, Craig wrote the post on the gooey apps, Craig low-end, but there's another blog post. That's very good from Steve Pronovost who, um, talked about WSL. G. Okay. WSL G is the windows subsystem for Linux gooey, which enables the support. So it's like another addition to the windows operating system. Now here's the only problem I have. For me, James, is that you need to install currently windows 10 insider preview build two one, three, six, two or greater. Hi, I'm not about that life. Sorry. Frank: [00:12:32] Right. So, so how hot off the press are we talking here? W when was that version released? James: [00:12:38] I assume it was released. Last week, this blog post went out. Right? So I think John, from my team, he told me he was updating to try this because he wanted to, um, mess around with some like Xamarin forms are done in Maui. Like, you know, open source stuff to see if it works. I would I'd have no idea how you would do that, but who knows, uh, in general, but, uh, you know, I was like, wow, this is really cool. So you can definitely do it. And then there's instructions on how to. To update and get things installed. Of course they're all like crazy pseudo commands and all this stuff, but literally it should be as easy as like sudo apt, install, gimp, right. Or VLC. And it would install the, the literally Linux versions of them. And then it will pop it up on your machine. And I think it's, I think that's cool. I think for a developer though, like, Oh, I'm going to open up the Linux. The gooey editing tools that I'm used to. That's really cool. I, I don't see myself like opening the Linux calculator app on my desktop. You know what I mean? But Frank: [00:13:43] burned you'd burn, you know, a Miguel wrote the first version of the numerics, so. It's kind of a calculator James: [00:13:50] app. Well, you know, the windows calculator app. It's very good. It's very nice. I use it all the time. It's Frank: [00:13:55] actually, it's a wonderful calculator out open source. It's funny. The example of VLC, all I could think of, like how much was it going to download? Like every Kodak ever invented every, like, how does it know which video API to use? Is it going to use open GL? Is it going to be hardware accelerated? Does Nvidia drivers work? Okay. Actually, that is kind of a good question. I'm sorry. I got to put on my, uh, neuro network nerd hat right now. James: [00:14:23] I have an answer for you. The answer. Yes. There are drivers for AMD, Intel, and Nvidia for WSL virtual. Wow. Frank: [00:14:36] That's scary. What kind of world that we live in James: [00:14:40] benefit from hardware accelerated open GL rendering. Frank: [00:14:44] Uh, just might have to try this. I don't want to build another PC. I I'm personally down to one Linux box, one Mac book and one iMac and, and, you know, life is good, but, um, and, and I've been using windows on a virtual machine and on a surface go. So basically I'm saying I should build a PC or I'm convincing myself as I speak that I should be building a PC right now. But hot off the presses. Um, has there been any downsides? Has everything worked so far? James: [00:15:21] I don't know. I mean, I haven't gotten to, to run it myself because I'm not, I'm not about that. Um, insider build on my main machine, my main rig, the one that I used to do stuff on was my surface go. And then I was like, I'm not going to put. You know, things on here, you know, what I should do is I should, I should boot up my surface book. That's sitting over here and get on and get on the ring and do it. Cause I don't use it for work anymore. Really. Except again, I have a big desktop machine. So it has been using that non-stop during, um, COVID um, but yeah, I haven't, I've seen all positive things like there's of course a bunch of comments and things like that, but the demos that they gave were really cool. I mean, they, they opened up via the Linux version of vs code. Um, G I think it's like. The Linux Dewey editor G edit or whatever. I think the funny part is that they, they did a demo where they opened the Linux version of audacity. And here's the crazy part. When you're talking about stacks like networking stacks and drivers, like the Linux application running on windows can not only display the gooey and let you like edit stuff, but it can play audio through the windows machine and access a microphone from the windows machine. Or is that, I don't even know how it works. It was magic. Frank: [00:16:36] That's what I'm saying, right? Yeah. Yeah. It's the same astonishment I was hearing with the network card. Like getting that stuff to work is always the trick. Gosh, you got, now I'm thinking, you know, wine, the, the windows API that you run on Linux. So if you want to go full circle with your crazy stack here, you could run a windows app under the Linux system on windows. Now. And I'm really surprised. No one did that in the demo that would have been so wonderfully circular and all of that stuff. It's it's fun. Right. Um, I, I wonder like, um, It's um, mouse clicks too, right? It's not just networking. It's not just audio. How does the mouse interact? Because Linux and AIX have such different user interface, conventions that who knows how any of that would work, you know? Um, Kind of for years, people have asked for Linux versions of my apps and there are very vocal minority. And so I've never done it. And, um, I'm kinda kicking myself because raspberry pies became kind of a really cool. I think that raspberry pies are Linux on the desktop. You know, it's, it's the URL Linux on the desktop. I think raspberry pies are about as close as we've ever gotten. There's so many of them out there running proper my next desktop software that I've always kind of wish I had, you know, done it or we'll do it someday support that Linux gooey. Why not? James: [00:18:18] The only problem I have. Is not necessarily with Linux, right. With, cause I'm not a big Linux person and I'm not a command line person. I'm not really a, I don't stray very far from the windows machine if you will. And, uh, even though I do spend a lot of time on the Mac, but it's not as, uh, as on a, it's not a comfort zone for me. Like windows is really comforting because I've been here all my life and I can do, I can be in and out of, of Linux in and out. But I have booted up a few Linux, the Columbia, the other PC solutions and it just didn't. Mesh with me, the problem is as like a solo developer, right? Or even just someone that's demoing, all of this stuff is you have to, if you're going to ship these apps, you have to test all these apps. You have to have all the hardware around, right. So at least this cuts out some of the picture, right. Of you developing that Linux app version based on need to test it and support it. Right. That's you got to pick and choose that's the hardest part. However, if your application though, Frank was just. Purely like open TK or open GL flavor, then that would be a pretty good start. Cause you wouldn't have to worry about like the, the Linuxy Chrome around it. You know what I mean? Frank: [00:19:31] Yeah. And we should say that visual studio for Mac currently right now is a GTK app. It's kind of a Linux user framework app. How do I know? Cause if beach balls once in awhile and when I go and look at the stack trace, I see a bunch of GBK function calls in it. So there are some, um, we love talking about like Maui and. I don't know, Maui does that run forms because we're mobile devs, but, um, on cross-platform desktop work, you definitely have the JDK. W which 1:00 AM I just blanking on? Is it not tickle? Is it not TCL? That's like a language also. There's one other one that I'm just completely T Q, T Q T QD. However, you're supposed to pronounce that QT. Yeah. Can you say cutie? I say cutie too, but then I was told once you call it QT, James: [00:20:32] QT, I've always called the QT. Yeah. Yeah. Frank: [00:20:35] So those, those are some, uh, basically Linux desktop frameworks that are very popular. QD is really popular in the embedded systems world, where again, the next is popular, you know, um, if you're building. Oh, touch screen. And I don't mean old. If you're building touchscreen new eyes, you're often doing that in QT. Just James: [00:20:58] how it is. Uh, what you know, what other app is, is QT is the stream. Deck application is QT. Frank: [00:21:07] Oh, interesting. Yeah. There's a lot of them, I think, even on Udacity that we mentioned earlier or there's so many of them. Yeah. I, uh, um, I'm holding my breath. I actually learned it at some point, you know, it's kind of like a XAML they have QML. She ever learned that? No, I was working at a company and everything was done in QML. So I learned meet some QML and I wrote you wise in it. It was, uh, it was actually productive, but it's. Mike, everything there's a big learning curve, but the benefit was it could run on most operating systems. James: [00:21:45] Mm. Yeah. That's true. That's true. It's, it's all your need, right? It's all your need that you have for your application. And that's why there's, I mean, there are so many out there, right? I think like Avalonia with.net, I think also has like a Linux gooey on it too. I want to say, uh, Frank: [00:22:03] uh, yeah. Right. I believe so because they have UIs for just about everything. And I have to give a shout out newest version of IUL spy that uses Avalonia now has a dark mode, dark mode, everyone update. I was very pleased to find it. I got to say, I don't love their dark mode, but at least it's dark mode. James: [00:22:27] I, uh, yeah, that's, uh, Yeah. Anyways, I agree. Um, yeah, I do like, there's a lot of options on your, I, I need to play around a little bit more with the Linuxy stuff just to see it. But I do think that that worlds would really, really cool. It was like if I was using Avalonia or I was using dynamo, if it had like a Linux version of it just being on my windows machine and debugging and boom, there it is. Right. That would be pretty neat. Yeah. Give me. You know, motivation to do it. Cause I just don't have a Linux machine sitting around and I never plan on having one. No Frank: [00:23:02] offense. I have one it's literally two feet away from me and I do my best never to log into it. Sometimes I have a set up my computer, so I have. Virtual machines and screen shares to my other computers. And I'll be like toggling between those, you know, on Mac. You can just like five, four fingers, swipe whatever many fingers swipe. And I can't even tell if I'm on a virtual machine or a real physical machine, what is a computer anymore? There's all just these things with operating systems. And then in the end, you end up just opening up a browser and every single one of them, I think that that's also why the, um, My next desktop didn't take off in a bigger way is because, um, if you wanted to support Linux, the easiest way to do that was a web app. Mm James: [00:23:56] yeah. Oh, web apps digs Frank: [00:24:01] throughout there. So you definitely need to try running Mozilla under a w S L G. I like it. WSL G does that include WSL too? Which is interesting because it makes the point that this is not just like some app you have to download. So it's really in the kernel. They really changed something James: [00:24:23] in it. In the computer. Yeah, I think, yeah. I don't know how it works necessarily magic, but it's in there. It's in there. Frank. Frank: [00:24:34] Yeah. So you're not going to rush out to write any my next apps. I'm not going to James: [00:24:40] much, I'm not going to out to upgrade my machine just yet. But that being said, I am intrigued. I just, I don't even, I think the problem that I have right now is. I know that I can easily get a Mac app or a windows app into a desktop app store, but I don't know what that story is for Linux and, uh, how to distribute Linux applications, how to monetize Linux applications. I think that's the thing is. Lennox is all open, right? And there's so many different flavors and distros, that becomes the downfall for me as a developer to really want to move forward. The reason I moved into mobile development right from desktop development is that there was this ecosystem that had this, um, magical it's an app store. It had a magical app store, right? And then magical app store. They gave you the frameworks to build the apps. They gave you the frameworks to put your app into the app, or they gave you the frameworks to monetize your application. And I know that there is like a lot of command line stores. I'm going to put in quotes for Linux. And again, I'm not a Linux expert, so please don't get too upset with me if I'm, if I'm incorrect and Frank will correct me, but to me, the problem, I. Have is like, okay, let's say I do do a Lenox version of my app. Like, but then how do I get it to the people? I think it's like a big barrier for me to overcome. And I may be sounding like, you know, I don't know. I don't know what I'm sounding like, but it's not someone that's like, I'm so excited to go do it. I am really, I think it'll be cool demos. And like there's definitely people out there that have. You have to talked to me and like, inquired about like what they're doing with Linux and Lennox, desktop, and like, this could be a good moving forward moment for them to really have like a one-stop shop to build their Linux and their windows and your applications and their web apps all in a single place. I think that's cool. Frank: [00:26:42] Yeah. Uh, sorry. I, you had me switching around there because I want to address that last part, but I'm going to go back to, I don't know of a good store on there either, so I can't correct you. I can say on ooVoo too, they do have like a neat little store front thing where you can search and download apps so that thing's there. And that's very nice. But I never actually caught whether you could, um, charge for apps and if you could buy apps, I would check into steam. And that's the real question is whether steam works on the Lennox's and that kind of stuff. Yeah. It's a tricky one. Um, like I think about like, I would love to have Kalka on the raspberry PI, but then I'm like, there are so few people that use raspberry PI and there are so few people that use Kalka, you know, like. For relatives, right? Uh, how big is the market? And I'm like, wow, you're really multiplying out there. So it's a tough one. But at the same time, um, what you were saying from a developer experience, they can still be great because when I'm doing neural networks, that's why I was asking about the GPU because you, you, the neural network stuff, these dates is quite often, it's almost always Linux machines. And it's quite often Docker files in Linux machines. And if you could run that without a virtual machine on your windows PC, without actually having to run an actual analytics machine, that is a win-win win, win, win situation just for accessing the file system and all that kind of stuff. So, I don't want to make any promises to anyone out there since I don't know anything about this, but, uh, that would be a wonderful use case. And that would actually tempt me to at least try on my next neuro network machine to try, start with windows first, before I tempt fate and install the next. Hmm. James: [00:28:38] Yeah. There you go, boom. I just moved here. I just hit this can over here. Oops. That was my boom. Uh, we did it. We did a full episode on Linux kind of windows, desktop, but mostly Linux desktop and the CA and the pair together. Best friends, best friends. Frank: [00:28:57] They look like best friends, you know what I appreciate it. It was, it wasn't like, um, the screen share or virtual machine window, it was each app actually got its own individual window. So they really were like cooperating, you know, it wasn't, they weren't boxed off into a little sandbox. So yeah, definitely getting along. James: [00:29:18] Yeah. I'll put links to all of the blog posts and the getup pages and all the things in the show notes. But yeah, I hope that, uh, People enjoy this episode. If you're using Lenox or developing for Lennox, definitely let us know, go to a merchant conflict that FM there's a contact button. There's a discord. There's a Twitter. There's all the accounts. Frank, we have all the accounts, so many accounts. Frank: [00:29:38] Should we get like a command line tool to list out all of our accounts and then people could affricate install that and run that on James: [00:29:46] windows. Well, that's going to do it for this week's podcast. That is for sure on that con no, no, I think I'll, I'm sure you can do that. Whatever. We can make a Linux gooey app that lists all the places that people can contact us. Frank. That's what I'm going to assign you to do. Frank: [00:30:02] Okay. Great. Perfect. Wait. All right. James: [00:30:05] Cool. Well, these everyone for tuning in and for being with us for over 250 episodes, we appreciate each and every single one of you. And it's your first time here because it's all Linux and the title. Well welcome. We talk about Lennox on occasion, mostly AI and ML, and that stuff happens in Lennox too. We're excited to be able to run down a code, absolutely everywhere, and we're excited to do it all with you. So I was gonna do for this week's emerge conflict. So until next time I'm James Monson Magno Frank: [00:30:30] and I'm Frank. Thanks for listening. Peace.