LINUX Unplugged - 571: Multi-Machine Lifestyle

Episode Date: July 14, 2024

Wes reports from the Skunkworks lab, and Brent tells us about his new computing lifestyle.Sponsored By:Core Contributor Membership: Take $1 a month of your membership for a lifetime!Tailscale: Tailsca...le is a programmable networking software that is private and secure by default - get it free on up to 100 devices! 1Password Extended Access Management: 1Password Extended Access Management is a device trust solution for companies with Okta, and they ensure that if a device isn't trusted and secure, it can't log into your cloud apps. Support LINUX UnpluggedLinks:💥 Gets Sats Quick and Easy with Strike📻 LINUX Unplugged on Fountain.FMNix Nerds Matrix RoomBeelink SER5 Mini PCMinisforum UM690 Propyenv-flake: experimental nix flake that can build pyenv pythonsdotenvx-flake: A nix flake for dotenvxauto-patchelf.sh - NixOS/nixpkgsPackaging/Binaries - NixOS WikiMembership Summer Discount — Take $1 a month of your membership for a lifetime!Try the JB Test Gathio Instance hosted by HybridSarcasmBerlin with Brent: September Meetup at Nextcloud Conference · JB EventsFix Kate sudo saves - use Plasma 6 version of Kate by MarkSort · Pull Request #3 · ChrisLAS/nixRunning OpenBSD 7.5 on your laptop is really hard (not) — I couldn't use OpenBSD exclusively; there's software that I need/want which isn't available. But I do appreciate certain of OpenBSD's qualities: it's a simple, ultra-lightweight, traditional UNIX. I have an ancient ThinkPad running OpenBSD configured as a minimalist desktop: it's nice for focused work. Sure, it can't run Steam or play Netflix, but sometimes that's a plus...@fabean's NixOS configsIBM Classroom LAN Administration System V 1.30 User Guide0xchat: Secure chat built on NostrGet NIP-05 verifiedPick: termscp — 🖥 A feature rich terminal UI file transfer and explorer with support for SCP/SFTP/FTP/S3/SMBLearn Nix The Fun Way — Sure, it’s sort of portable, if you tell the person running it to have curl and jq. What if you relied on a specific version of either though? Nix guarantees portability.

Transcript
Discussion (0)
Starting point is 00:00:00 Okay, so I think we all know that I am not a bleeding-edge Brent, but I am a slow adopter, slightly ahead of the major curve. But this week I came to realize that I am fully in the Brent forces NixOS on his loved one stage of learning a new technology. So this week I forced NixOS on my brother when he was having a couple little things like, oh, this will solve all your problems. The only problem for me is that he's completely taken to it and he's got flakes installed and everything way before I even do. So he's like lapping me now. It's really embarrassing.
Starting point is 00:00:37 Your brother's out NixJu? Yeah. Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris. My name is Wes. And my name is Brent. Before we go on, I think we have to, you know, Brent mentioned something. Yeah, I know. I know. I know.
Starting point is 00:01:05 I know. That's why. So right off the top of the show. Cheers, boys. The Knicks was mentioned. Here we go. There we go. It's out of the way right up front.
Starting point is 00:01:17 All right. Well, coming up on the show today, the boys have been cooking. And I am here to eat it all up. So Wes has been in the Skunk Labs working on a couple of cool things he's going to tell us about. And Brent and his brother have been off in the woods of Canada building their Forever system configuration and more. We'll hear about what they've been working on as the show goes on. Then we'll round it out with a great command line pick, some boosts, some feedback, and a lot more. So before we go any further, let's say time-appropriate greetings to our mumble room.
Starting point is 00:01:44 Hello, Virtual Lug. Hello, guys. Hey, Chris. Hey, Wes. And hello we go any further, let's say time-appropriate greetings to our mumble room. Hello, Virtual Lug. Hello, guys. Hey, Chris. Hey, Wes. And hello, Brent. Hey, there. Hi, again. Hello.
Starting point is 00:01:52 And hello up there to the quiet listening. Nice to have you up there as well. Good morning to our friends over at Tailscale, to tailscale.com slash unplug. Go try it for free for up to 100 devices and three accounts while you support the show at tailscale.com slash unplugged. It is the easiest way to connect devices and services directly to each other
Starting point is 00:02:12 wherever they are. Simple networks across complex infrastructure protected by Wired God. That's right. The easiest way to get connected directly. Try it out on 100 devices for free and support the show at tailscale.com slash unplugged.
Starting point is 00:02:29 Now, over the last couple of weeks, and we have these conversations in background, and we're like, okay, we've got to talk about this on the show. Over the last couple of weeks, I've got the sense, like since Brent's been home, he has been rethinking, in part inspired by conversations with his brother, it sounds like, the way his systems are done and just the way you compute in general, Brantley. So regale us once again. Tell us what's going on over there in Canavale. Well, for once, I'm home for more than four weeks. And that has the effect of my thinking about how to optimize my life, especially my computer digital life here.
Starting point is 00:03:04 It's the nesting instinct, except for us, that means it's the tech project instinct. Totally, totally. It's like, how can I screw things up around here and just change it up so that it all goes wrong? But I have been thinking a little bit like, is the way I'm doing things working for me? And it so turned out, as I mentioned, that my brother was sort of thinking the same thing he was well let's just say he was on tumbleweed because i previously you know was in the stage of hey i'm gonna put my loved ones on tumbleweed and i uh you don't sound pleased about this well detecting a negative tone that has crept into you know what it is it It's actually slight disappointment. Because as you remember, I was loving Tumbleweed, I think. So it's on this dev one in front of me. And it's been on there for what, a year and a half now, I think. And when I was first on there, if you remember, I was quite excited about it. It was working really well. And hence my subjecting my brother to this kind of torture as well. It turned out at around the same time.
Starting point is 00:04:06 So this is not just one machine, but both. We've both been struggling with every single time we go to update, there's some kind of conflict that you need to resolve. And it's not always straightforward, which, you know, path A or path B, which one do I go down? And if you make that decision, it's kind of like, well, I'm going down this path now. Let's choose your own adventure Linux, really. Every update is rough. I mean, I get, you know, I think we've all had the occasional experience where like, oh, okay, enough has changed that I need to intervene and correct something, especially on a rolling system. But yeah, it happens a lot. That's got to affect your, you know, how reliably you view the system.
Starting point is 00:04:42 Well, the system's been not so bad aside from like a couple of bugs that keep showing up. But what I realized because of being home a little longer is that I wasn't not updating the system because I was gone all the time. I was not updating the system because I didn't trust it to fully complete an update. And because this specific machine in front of me is my like podcasting appliance, it has to work. Like when we come to sit down on Sundays, which I never update on Sundays now for this very reason, Chris, I know you suggested I should, but now this machine just kind of never gets updated unless I'm feeling, okay, I got like an hour here
Starting point is 00:05:22 where I can, if something goes wrong, solve it. And that's just not the way I want to have my compute life exist. That was actually, when I first installed Tumbleweed, I thought, I'm going to keep rolling with this. It sounds great. But it's the opposite, I found. Even like this week, I tried to update the thing, and I got a bunch of errors. I sat down for the show today today and it didn't even complete. And so it's doing the opposite of what I was hoping it was doing when we first installed this thing.
Starting point is 00:05:51 And I realized this is just not a good long-term solution. It's a – the term I think we've kicked around internally a lot is fragility. There's a fragility to it. You don't even realize it's shaping the way you approach your system. And not everything's like this and not every, every system is like this, but some systems get themselves in this state. And it tends to be like when you've had to kind of go out on a limb,
Starting point is 00:06:17 maybe I'll use our old OBS machine as an example. It was an Ubuntu LTS 1804 install, but then like we had 18 what a fine release we had like these ppas for like audio stuff i can't remember the project name but we had falk tx and a bunch of stuff for jack yep yep we had a bunch of stuff in there and you know what we were doing was we were kind of making our own little special distro it turned out and as time goes on it gets more and more fragile and it got to the point where same thing like we wouldn't update it unless we knew we didn't have a show the next day and we
Starting point is 00:06:50 had two or three hours to fix it and that was a crappy way to use a system because it prevented us from experimenting with better and newer technology like pipewire and wayland and it wasn't until we had a system where we could do reliable rollbacks that worked in a way that we liked, where we were comfortable with them, that it became a system where we could experiment and test and try new things. And then we knew we could back out of it. And it went from something that was fragile to something that was very robust. And it just changed the way we approach the system and how we experimented and tested.
Starting point is 00:07:25 And this is where we find out Brent's switching to Alma. Is that what I'm getting? I've had many suggestions. There you go. I like this idea actually. Well, so like if you think about how Linux systems are developed and how users consume them,
Starting point is 00:07:39 right? The moment that you kind of move off of the curated path, right? The stuff that's included in the main repositories of the distribution, you're kind of accepting this fragility. And it actually doesn't matter what distribution you're using, whether that is Fedora, OpenSUSE, Nixos, or even something with Homebrew, even macOS.
Starting point is 00:08:00 You can experience this problem by mixing a bunch of taps together. The reason this happens is because unless you have central coordination or essentially central integration, there is essentially no guarantee that all the pieces are going to play well with each other. I mean, there's no guarantee regardless, but there's a much higher likelihood of everything working together when it is centrally curated. And this is essentially the function of Linux distributions. When you go outside of that, things start breaking down. And this actually is much more likely to happen with rolling release platforms because in rolling release platforms, you have no gates, you have no flags, like flag days in the sense of like, you have no API or ABI or interface stability of any meaningful sort,
Starting point is 00:08:54 right? Fedora is semi-rolling as some people describe it, right? Like it makes a new major release every six months and there are things that stay static within those six months. And that is essentially the promise that you can build upon. Then you go to enterprise Linux distributions, like say Red Hat Enterprise Linux or SUSE Linux Enterprise, and they take it a step further. But a lot of times people in the, you know, like you and I and others will kind of go a step backwards and we'll try to go, well, let's see, what if we want everything to be continually the latest? And yes, you can do that, but it comes with its own set of risks because if everything's continually the latest and coming as
Starting point is 00:09:36 it is being, you know, plugged in or packaged or whatever, you are accepting a lesser degree of integration work because there's just no possibility for that integration work to happen at the at the same kind of level as it does with so called checkpoint distributions, as I'm just going to throw that name out there, right? Like, if you have milestone releases, you all everybody's coordinated for working towards integration. Yeah, I think you brought up a good point, which is adding various repos to get a system to be exactly the system you want. And I think had I not done that at all,
Starting point is 00:10:14 maybe this system would be much more stable. And I'm almost positive that's the case. But what I've come to realize is that to get a good desktop system, and maybe this is different on the server but at least for the desktop i ended up needing to install a whole bunch of extra repositories to get i don't know even seemingly simple things to work so i did a little query here for us uh it looks like i got pac-man repos installed and OpenH264 repos and Talescale repos and the file system repo, because I was trying to solve some kind of issue a while ago. And also some security tools repos from the crew there.
Starting point is 00:10:56 And so I'm sure these are conflicting. Well, I'm sure because the error messages tell me so. But I wasn't able to build a desktop to even do various simple tasks without at least adding one or two of these. One of the downsides of both Arch and OpenSUSE is that they have tended towards having smaller core repos in favor of people building out their own independent projects and, and package builds, or non package builds, in the case of a URs. This is essentially the problem you're talking about, right? Like, no one is coordinating, and no one's working together, and nothing is getting integrated. And so you run into all these problems way more, I think it's partly that I'm,
Starting point is 00:11:41 I'm probably holding this distro wrong, you know. But also, maybe it's not that well suited to a desktop. Maybe it's an amazing server, Linux, for that reason. But I hear tons of people who are super happy with Tumbleweed working on their desktop as well. So I don't know. I tend to break everything, unless you say that I have like a bug field going on all the time. But at least I wanted to report on this experience because we've been kind of tracking it for the last year and a half. And I think I am at the stage where I need to untumbleweed myself. I think we're there.
Starting point is 00:12:16 Whoa. End of an era. All right. Brent, I think you and I have been kind of aligning on a – I'm curious. Maybe this is where you're landing. It's like maybe building very purpose-focused kind of MVP-style systems. I tried to do this with my last home system, but now I've just added more and more to it. But ideally something that would be just focused at, say, podcasting or just focused at work or just focused at gaming. Yeah, this is a brand-new concept for me.
Starting point is 00:12:42 You've been kind of applying this. You know, in the studio you've got very dedicated machines. And I took that as some inspiration, because not only am I thinking of changing this distribution, but I'm thinking of completely changing the way that I compute on the everyday. everything kind of computing person. And you've given me a hard time about that from time to time, but I'm thinking of doing the opposite now of having very dedicated machines for very dedicated lifestyles almost. So, you know, I've got a day job now, which is a brand new thing for me. And I've always worked from home for my entire adult life but I've recently got a desk at a co-working space and and now have I'm exploring the idea of creating these like both mental and physical and also like digital silos so when I go to this space I am only doing this type of work. And I have a dedicated
Starting point is 00:13:45 computer here that is like optimized exactly for that workload. So I've, you know, purchased myself a little tiny computer that we can talk about, but I'm switching from the, you know, the one laptop and I travel with it everywhere. And I use KD activities to like, try to separate things. So I've got like a JB, you know, workload on a certain activity. I've got a personal space where I try to like, you know, do my own tinkering and stuff like that. And I've got to work, you know, dedicated space there too. Ah, like these little tiny computers that we can get these days are so inexpensive and available and reliable that we can set them up in a variety of places. That's a hint. I think it's a hint as to what you got. Is it?
Starting point is 00:14:35 I think, now, your other route is you keep the laptop, right, but you do the K exec thing, right? Because Wes has got like a dozen different distros on one machine. And like one of them has like tails. So this is Wes Payne. When Wes wants to tail scale into any of our systems, he has to K exec into the distro that has tail scale installed. There were other reasons to do that K exec. I will have you know. Are you crazy?
Starting point is 00:15:05 You could also just install Talescale from Nix. It's great. KExec is a terrible idea. I love it, and I don't want you to ever rain on his parade. Give us a little hint, Bram. You bought a dedicated machine.
Starting point is 00:15:22 Sounds like a pretty reasonably priced one. I'll tell you what I wanted to buy, which we hinted sounds like a pretty reasonably priced one. I'll tell you what I wanted to buy, which we hinted at in a previous member stream. And I'll tell you what I actually got, which I think you might like both. So I was looking at a Minisforum UM690 Pro, which is a little tiny like sub-liter box that can do some surprising stuff for such a small package. It's a couple generations old, which is fine for me, but it compares quite nicely to some of the systems I have here, but it would cool better and all this stuff. So I don't need like a crazy top end system. I just needed something similar to what I'm used to, which is completely fine for my workloads, but that is kind of separate, right? That I can set up a dedicated environment on. What are we talking memory-wise here? Yeah, so this thing would have been 32 gigs,
Starting point is 00:16:16 I thought it was a good start, and upgradable to 64. It's got an AMD Ryzen 9 6900HX in there with DDR5. It's got 2.5 gig LAN on it. So it's like, you know, although it's two generations back, so they just last week came out with the UM890 Pro, so that thing's just blazing. I don't need the modern stuff. So this thing is totally fine for me. I'm looking at it right now. It's got dual Ethernet, dual 2.5 gigabit Ethernet.
Starting point is 00:16:48 Right, I forgot about that. It's also got HDMI and DisplayPort as well as USB-C. Yeah, it can run three monitors. You know, this is like no slouch. This little tiny box can really do some stuff. I would say this one compared to my Beelink, it's a little bit taller, and it looks like it has a little bit more robust of a cooling system on it. So the cooling system in this one specifically is well regarded, which is a problem with these small machines, as you might imagine,
Starting point is 00:17:15 especially when you're trying to get them to do some stuff. So that's the reason I chose that one. Great cooling system for such a small space. They're using like liquid metal on the CPU to transfer heat and stuff like that. And it's like about the third generation of this 690. So they've specifically iterated on the cooling. So this is a good box. Yeah. And again, it's the Minisform UM690 Pro, if you're curious out there. This is what I was thinking I was going to get.
Starting point is 00:17:43 So that's about $450 US. We did get some feedback from some folks, specifically Calder in our chat said, Hey, I've had a minis forum UM 790 Pro bare bones one for almost a year now. It's amazing hardware. I love it. I have a very portable setup that fits a 13 inch laptop bag with a portable USB monitor that works over a single USB-C and a 60% wireless low profile mechanical keyboard to go with it. So nice little package. Nice little setup. Yeah. That said, I would not get it again. The fans started making noises and my only option was to RMA that unit. Worked out fine and they're shipping replacement now,
Starting point is 00:18:25 but next time I'll just build a super slim mini ITX. If a part goes bad, everything would be standard and a simple swap. So having to RMA your entire computer because of a wear part going bad is very frustrating. That is true. That can be true for any system, though. Yeah, it's good advice. I unfortunately only got that advice
Starting point is 00:18:43 after I pulled the trigger on a different system. Do you want to hear about it? Yeah, tell us about it. All right. So I decided to go your route. I looked for something a little older because I kind of decided I didn't need such a fancy computer, even though it's easy to like go for the bright and shiny. So I decided on the Beelink Seer 5, which is three generations old for their stuff it's got an amd horizon 7 5800h it's still one of these little tiny mini pcs and i got the 8 gig ddr4 version
Starting point is 00:19:13 only because i have memory from my dev one sitting on the on the cupboard here that's been just sitting there ever since i got that thing so i'm gonna slip that in and you can pop that in yeah yeah yeah okay uh so it still supports three screens three monitors got nbme on that thing but it's a 270 us so i think that'll be enough for me but i'm curious chris i think this is very similar to what you got i don't remember yeah it's in that range um uh 270 is not a bad price uh i got i got i think a slightly beefier one for uh around that because it was on a lightning deal but they're pretty close and if i'm not mistaken you do have to go through you have to open up the top you have to remove the cooling on the motherboard to get to the ram it is a bit of a journey to dig down to it and you might consider once you've gone that far
Starting point is 00:20:02 you're like one layer away from the hard drive. So you could also at that moment upgrade the hard drive. So tempting. We'll see what actually happens when it comes in. It's shown up tomorrow. Okay. Well, I think you're going to be really happy with the Linux compatibility. Now, I talked about my B-Link I got a bit a couple episodes ago. That one died.
Starting point is 00:20:20 And I had to RMA the entire unit. And I got a new one. So there's that. The nice thing is they're very readily available. You can get them in some locations overnight. In a way, for a business continuity, you can deploy something that's Linux compatible and if one of them pops,
Starting point is 00:20:38 the night it dies, you can order it. It'll be at your door at 4 a.m. $270, you could actually afford to maybe buy another one and put it in the cupboard. Yeah, that's actually my biggest question mark around these machines. It's kind of a new foray for me
Starting point is 00:20:51 to go into these teeny little computers. And this is not an unusual story of these things actually either arriving just dead. It doesn't even boot up. Or, you know, a couple months into it, something just kind of goes out. So we'll have to see. I mean, you've reported already on yours,
Starting point is 00:21:11 and we'll have to see as we get a little bit more time on these. But the form factor is really attractive to me, and it's surprising what these little boxes can do. Yeah, and I think, you know, if you look at it, and this is the interesting question, and we don't really know the answer to this, but if you look at it in the context of, I'm just going to kind of use this box for this thing, this job. This is my XYZ job machine. Yeah, I want this to be an appliance. Yeah, so it doesn't necessarily need 32 gigs of RAM and a,
Starting point is 00:21:41 you know, 16 core processor, because the job that this machine is dedicated at just needs these resources for this long. And you can kind of spec it to purpose that way. But you do kind of end up with more computers at the same time and more to manage. So I don't know, Brent, it's kind of a roll of the dice. I'll be curious to see if the strategy works for you. It's something I'm trying new. it's something i'm trying new and i think part of the reason i'm even considering it is uh nix os i gotta say because i can set up this computer really quickly without like spending a day or two which i usually do which you know i really despise doing but i can take a subset of
Starting point is 00:22:18 my current config and just apply it to this computer because that's what i'm trying to do is just like take one of the activities that I currently have in Plasma on my main machine and just kind of you know take that out and and put it on a new dedicated system and actually I think the NexOS config is a good way of doing that for me yeah and if you do end up with a little bit of machine sprawl maybe this is the way to kind of manage that yeah Wes will tell me how I should manage all those different configs, right? And I bet the answer ends in flakes. Probably. I do have a question for everyone
Starting point is 00:22:52 out there. Am I going down the right path here? Have you tried this before? Like these separate computer ideas? Is this a good idea? But the biggest question I have is, what do you think of this do-everything computer versus dedicated appliances? Am I just in for a headache of trying to manage a bunch of stuff?
Starting point is 00:23:11 Am I going down the right path? Let me know. 1password.com slash unplugged. In a perfect world, end users would only use things exactly as IT setup for them, with managed devices, carefully curated and selected software, and of course, login credentials that always had the absolute best passwords and maybe even two-factor systems. And of course, it would never be a system that you hadn't seen before, or at least check to make sure that it was secure. That would be really great, but that's not how it works, right? Everybody's now got their own devices. Everything's scanning Wi-Fi and Bluetooth all the time.
Starting point is 00:23:49 And you can't put MDMs on any of that. You can't put security tools on any of that. You can't pre-check any of that. This is a huge problem, and it's what 1Password calls the access trust gap. And they've also created the first ever solution to fill it. 1Password Extended Access Management. It secures every sign-on for every app on every device. It includes the password manager you know and you love and the device trust solution you've heard me talk about before, which of course is Collide. One Password Extended Access
Starting point is 00:24:16 Management cares about the user experience and privacy, which means it can go places other tools like personal devices and contractor devices. It ensures that every device is known and healthy. Every login is protected. So stop trying to ban BYOD or fight the shadow IT. Start protecting everybody with 1Password Extended Access Management. It makes your life easier too. And you can manage it all with a beautiful pane of glass.
Starting point is 00:24:43 So go check it out and support the show. Go to 1Password.com slash unplugged. You go over there, you scroll down a little bit, they got a video demo that explains it in even more detail. It's a great way to kind of see what's going on while you also support the show. So try it. It's 1password.com slash unplugged. Well, down in the skunk lab, you have been sizzling up some hot Nix packaging. In fact, every time I turn around, you've packaged something else in Nix recently. Yeah, I don't know what's going on. I keep packaging things. It's a lot of fun.
Starting point is 00:25:16 I don't believe you. I mean, I believe you have fun doing it. I never thought I would say that, but here we are. Yeah. You never said that of Debian. Yeah, that's true i don't think you ever did um and some of the stuff you've been working on actually seems like stuff we could use but some of it probably is just scratching your own itch i imagine yeah i feel like i'm
Starting point is 00:25:33 getting to the point where i know enough nicks to you know do dumb and dangerous things um which is kind of fun so uh it's kind of useful just to take these as exercises and like can i figure out how to make this work and will it teach me a bunch of things about Nix I didn't know already? Sure. Yeah. Give me an example of something recently that was worth the time and effort. Yeah. Well, let's see. I was playing around with building custom ISO images. As one does.
Starting point is 00:25:57 Yeah, right. That would automatically, you know, that I would just keep on my Ventoy or whatever or use on a virtual machine or whatever. you know, that I would just keep on my Ventoy or whatever, or use on a virtual machine or whatever, that when it would boot up, it would have, like, firewall and stuff, but it would automatically connect to an overlay network and only listen to SSH there. And then you could set it up with, like, NetBird or Tailscale or Nebula, put it in a group where it only allows inbound SSH connections.
Starting point is 00:26:24 So you can kind of, like, worry a little bit less about having the key to join your network, just like sitting on this ISO file that maybe you lose track of or something. So it's a nice way to enable remote access on a private. Yeah, you just kind of boot it up and then you can just go SSH in and do whatever real stuff you're trying. And you're not exposing any kind of credentials in the ISO. It was just like a fun, I was like, oh, this seems easy enough to do. Let's do it real quick because I was going to reinstall some systems in my house and I didn't really want to drag monitors and stuff to them.
Starting point is 00:26:50 Solve it once. Yeah, exactly. So as part of that, I was just kind of, there's better ways to do it, but I was kind of hackily, when I was building the ISO, I was having Nix reference an environmental variable to pull in that setup key. Okay. And just for convenience, I was keeping that in like a.env file, which maybe you've heard of those.
Starting point is 00:27:09 A library came out for Node years ago called.env, which popularized in programming languages just being able to like pull in like information about environment variables, either from the actual environment of your program or from these like.env files. And that way you could easily have, say, one file that represented your testing debug environment, another one that was your real prod environment with real API keys and whatever else.
Starting point is 00:27:34 Yeah, you could specify credentials, ports, things run on, etc. So I already had one of these.m files, but I was kind of just loading it myself. It was more of there as just a a reference and easy way to store it. And then I remembered over on Coder Radio, you and Mike had talked about a new version of the library,.envx, which not only keeps the library API component, but it also adds a runtime component where there's a.envx binary that you run, and then it reads the.env file in whatever folder you're in
Starting point is 00:28:07 and then injects that into whatever subcommand you specify. Oh, cool. So this is a way to make it portable to any programming language or executable you were doing. And I was thinking, oh, yeah, well, that could be one way to run this ISO build. It's like, you know, I keep this.env there. That doesn't get checked into Git. I can make a new one if I need to, but I have, like, a local one there
Starting point is 00:28:24 that can build those ISOs. And then I could use.env there. That doesn't get checked into Git. I can make a new one if I need to, but I have a local one there that can build those ISOs. And then I could use.envx to invoke Nix, and that way it'll just automatically inject the key for me. Ah, bummer. .envx isn't packaged in Nix. A lot of things are. This is pretty new. Uh-oh. What are you going to do, Wes?
Starting point is 00:28:39 Yeah, so I was playing with that, and then separately some folks in our Nix nerds room were talking about using PyEmb, which I'm familiar with a little bit from my past work life. PyEmb is a Python environment manager. Basically, it lets you install different versions of Python. And this you'll see, especially if you're doing Python development work, right? Like your Ubuntu system ships with some standard version of Python that's like it included
Starting point is 00:29:01 at that time. Right. But it can get real messy if you're installing a bunch of like Python packages from like the Debian archives and then mixing that with like custom packages. Or what if that you're on an LTS base and you need a newer or want to deploy a newer version of Python and you're ultimately shipping it in a Docker container where you can pick the version. So PyM is a way locally to say like, oh, install these couple versions of Python that I want and it'll even just build them from source for you and install them locally and it provides a little bash script that lets you switch between
Starting point is 00:29:32 which one is active in your current environment. And it pretty much solves all those problems. Yeah. And so your experience as a user is you load PyEv up. PyEv is packaged in Nix, but then PyEv wants to go build a Python from source, right? That's where you start running into problems. And all of this like packaging.env, playing with Pyenv,
Starting point is 00:29:51 it made me start thinking a bit about like what makes, sometimes what makes Nix and NixOS so confusing for folks and like how it does things differently and what those real world impacts are when you're trying to like make stuff work. Can you give me an example? So in this case, let's talk about Python. Yeah. Right, so you got Python installed. You want to talk to a Postgres database because it's a great database. You know, you're storing some data in there.
Starting point is 00:30:15 Yeah, I love it. A common library you can use is PsychoPG2. Now, the way this works in Python is the PsychoPG2 library presents its Python code, but Postgres exposes a C library called libpq. And so there's some bindings from Python to libpq, and that way the PsychoPG library can construct the right shape of data and code things the right way and speak the network protocol to Postgres. So this is where things get hairy on a lot of distros, right? Where suddenly now I can go pip install PsychoPG2. I can use the Python native tooling to try to install this dependency, but it's going to fail unless I've got Postgres installed locally.
Starting point is 00:31:00 In the case of PsychoPG2, you actually need a command line version from the Postgres package, pgconfig, and then you also need like the development C libraries and headers to build against when you're like building the bindings that are going to work in this particular version of the of the library on your system and how that works on a lot of distributions right is when you go install like the postgres package and lib pq dev or whatever lib postgres dev there's like a global folder you know uh under like user lib, where there's just libraries, a whole bunch of libraries, just like all splatted there together, right in a mutable sort of environment that you just overwrite and add to and subtract from. And then when Python's running, it goes and tries to load, it's like, oh, this thing, you know, this module I'm loading,
Starting point is 00:31:41 it has a.sh file that links against this libpq thing. I'm going to go find it in this big old pile of libraries that I have in the corner. I know that's where I keep all my libraries. So let me just go fetch them. And so when you're like getting your development set up, you're like, you know, doing a new project, it talks Postgres. Things just assume that's where they can look. Yeah. So you're going to have to like, check this project out, do your pip installs of its local dependencies that's going to fail then you got to go to your os and install whatever the correct postgres libraries are it's going to fail on nix because it's going to look that up and be like i can't find anything
Starting point is 00:32:12 yeah well this will just fail anywhere this is like a problem with development environments on all in general yeah right because like you're trying you're a new dev you're working on this project you try to install it it doesn't find postgres on your system uh-huh you then have to install via your systems package manager the postgres stuff which will you know whatever the packages are on your particular operating system and ideally put the libraries in the right place yes which it should do on generally yeah next is a separate story but then you go back then you can install the package then it's going to work and there's just a lot of that that's all happening in the background to make that happen and there's nothing like you could have a readme file or a setup script but there's
Starting point is 00:32:49 nothing in your individual project that like tells the system that it needs this is where everything's at right and like the dependency part right like it doesn't say like yeah you can say like you're going to need to install these build dependencies but that's just that's just like a readme markdown file or maybe a bash script that, like, installs them. Somebody has to read and then still use their package manager. And it still has to be per OS, or maybe it's an Ansible script, but this is all the setup you have to do. So if you're trying to build this Python library and you're on NixOS, you're just going to fail, right? Because you don't have this global place where all libraries are packaged.
Starting point is 00:33:22 global place where all libraries are packaged. And that's one thing I didn't realize is, you know, there's environment dot system packages where you can put, you know, programs you want just available on the system, either like per user or if you do the global one. That doesn't set up paths for libraries and it doesn't build you one big folder with all of the libraries from those. Right. OK. So even though you've added, you might have the Postgres command line tools added from
Starting point is 00:33:45 that, that doesn't do anything for finding the development time files, the C header files that are needed. Sure. So what do you do? Well, that's where a Nix shell comes in. Because a Nix shell, you can tell it, build me a development shell, I need these libraries, and then you can conclude the Postgres library, and it'll automatically handle, at least for stuff
Starting point is 00:34:07 that supports Nix things, it'll automatically handle setting all the environment variables so that stuff running in that shell will find those. Okay. So then you could create, could you create a specific Python Nix shell that had all the little dependencies in the version specifically
Starting point is 00:34:23 that you needed for that project. Exactly. That's nice. In building, if you want to use PyEv and you want to build a custom version of Python, I made a shell for that. And so you do nix develop and then that gets all the stuff that you need. And then if you run PyEv install and then the version you want, since it has all the dependencies that are needed to build Python and it sets the right environment variables, this needed a couple i noticed that in the nix actually like if you build that use the proper packages in nix they patch python to look and all like the nix the other alternative is you just set more environment flags to change like sure where
Starting point is 00:34:59 libraries and include files are found but then that just works and the part that's nice there is it's it's a reproducible setup. You just clone the project, you run NixDevelop, and then you can use PyM. You know what I'd like to see? And tell me if I'm way off base here. But wouldn't this be freaking great for the base of a Proton gaming game manager?
Starting point is 00:35:20 Because you think about right now, there's the Steam runtime, and some people on Arch will sometimes install like the version of Steam that uses the native OS libraries. But you've really got to make sure you got everything. But if you get all of the native OS libraries and they're all up to date and newer than the stuff's in the Steam runtime, you actually get a little bit better performance in the game. And there's some games that need like a very specific version of proton you could almost see how you could use something like this to create the ideal kind of environment for a particular game where you're using all native local as up absolutely up-to-date versions of all the dependencies so the game performs as best as possible in this little environment so it's not
Starting point is 00:35:58 just something you'd use for maybe development but you could deliver end user applications absolutely and the downside right like you don't have this global library folder. There's downsides of that, which is stuff just expects it and doesn't work. Yeah. But the plus side is then it means you have to make individual ones that are customized and they don't step on each other.
Starting point is 00:36:16 And so you can have these like different requirements. Maybe another example that's a little bit like that kind of shows what you can do here is sometimes you just need to run you know you need to run binaries that aren't going to work on xos a lot of times it's for that reason because they're trying to they expect to be able to find some global folder that like satisfies these things yeah like last week listener jeff mentioned you know there's the steam dash run it kind of creates like a phony fake environment to run an application but that
Starting point is 00:36:41 doesn't solve everything right and that that you can at runtime, but there's ways you can deal with it at build time, too. And that's how sometimes you can package binaries that are meant to run on a regular Linux and get them to run on NixOS. And there's just a bunch of tooling for that that exists in Nix packages. As a smaller example, like a prelude, we use Reaper, the audio program, to record the show and do editing. It's a fantastic program. Great app. It doesn't talk Pipewire natively. It can talk to Pipewire over Pulse because it talks Pulse or it can talk to Pipewire over Jack, right? And so that's the one that we
Starting point is 00:37:16 usually do or talk to real Jack. There's a bunch of options. But the way you connect Reaper to Pipewire, if you want to go professional audio, low latency, Pipewire provides its own alternative jack library. So usually Reaper is running and at runtime it goes like, oh, I want to load the jack library. And it goes and finds it probably in that giant bucket of all your libraries. And then that connects to the jack server and it sends and receives audio. Pipewire ships its own library for this. So when you load it, instead of talking to the jack server,
Starting point is 00:37:47 you talk to Pipewire, which works great. You can either set some environment variables to make that happen, or if you use the pw-jack tool, which ships with Pipewire's jack support, it'll inject the right variables for you. So that totally works. But Nix has this setup. It has a hook called auto patch elf. And also it provides a tool called patch elf,
Starting point is 00:38:11 which goes along with it. And what you can do is you can say, okay, Reaper, you just find yourself this Jack library at runtime. But I want to declare right now that you need to link against pipewires jack library and you can use patch elf to modify the reaper executable to declare that and then auto patch elf runs at the end of your build and it looks at all your executables and says like oh do you
Starting point is 00:38:36 have stuff you have requirements that aren't like linked into the next store yet let me take care of that so then it links reaper against pipe wire and so when pipe or when reaper runs later and you put it in jack mode it's actually it automatically talks to pipe wire with no flags needed no pw jack yeah and it works and it works and what you're what you're really getting at there is this is tooling that shops that are using these things to produce something could actually take advantage of and that's our use case, but there's millions of those kinds of use cases out there. That's just a level of customization
Starting point is 00:39:10 and then reproducibility that is so slick. And you solve it once, and then we have it for every system we deploy. So that's pretty cool. Got some neat skunk work stuff. Is there more to the experimentation? And really, and we should mention again,.envnx is pretty cool. We should link to that.
Starting point is 00:39:29 That's critical here to what you're working on. Yeah, this was also exemplified there because.envx is a Node app, right? But it ships as like a single binary that you run. And that's kind of important for its whole updated API for how you use it if you're supposed to run it as a launcher. So I was like, how does it do that um well it's using versal's pkg library which does that i guess it's deprecated just recently because upcoming node or current node releases include like an official way to do this bundling but basically it handles it downloads a patched version of the node runtime and then bundles your code into that in a way where that Node runtime starts up
Starting point is 00:40:09 and loads the code contained in itself. So that's how it has like a single thing that you just run provides you with the CLI. Wow, the future's crazy, man. Yeah. So getting that in Nix was a little bit like, oh, well, we're going to have to use like, Nix has Node that's already set up to work with Nix,
Starting point is 00:40:25 but this thing wants to go download. Right, get its own thing. Yeah, so not only do you have to, like, first figure out how to get it to cache its download in a way that you can reliably hash to tell Nix, like, hey, this is what we're working with, but then you also have to figure out how to make sure that the patch node it's bringing in,
Starting point is 00:40:41 you can either build the same patches, that's one, right? You could probably do that better. Or you take the binary it wants to run with and then make it work with Nix. And what's neat is you can, in a lot of these cases, you can just add auto patch elf to your native build inputs and that makes it just sort of automatically run. And then
Starting point is 00:40:58 you can add whatever libraries you know that the thing needs in your build inputs. And then those all get handled at build time and like linked against those specific libraries that's and so instead of having a global set it links exactly against the libraries that you told it to at build time and just sits there and then those dependencies get brought in it gets brought in that also made me like a lot of these experiences have made me really reflect on how much packaging systems,
Starting point is 00:41:29 not necessarily the Linux core ones, but especially for programming languages, just do at runtime. Yeah, they're doing a lot of lift. Like with Node, like you can, you know, you can do your like, you can download and install most of your stuff. And then a bunch of packages have post install phases, which then might go download just binary things that they go stick in there. Yeah. But we just accept, you know,
Starting point is 00:41:46 like Nick's makes that very obvious because it wants to be reproducible and sealed off. But like without other tools, it's, I think we just, we think of the next way as weird. And I mean, yeah,
Starting point is 00:41:54 it is, but it's also because we're biased by like what is kind of a not great system that we are used to having. And I think we don't appreciate a little bit of how like unfortunate some of the ways it works is under the hood. Yeah. We've just, that's what we've always known. Yeah. And so this new thing comes along and it seems weird. Don't you think it's funny if you, at least to me, it seems like you've been packaging like half a dozen applications in the last couple of weeks and we've never really gotten there with RPMs or dabs or snaps or flat packs. What is that?
Starting point is 00:42:28 Is it the workflow? What is it about it that has made it so approachable? Yeah, I mean, there is the sort of expressiveness of, like, the Nix language and all the utilities that Nix packages have. There's maybe also sort of a critical mass of the stuff in Nix packages. It's like there's such a base that it becomes and you can so dynamically sort of bring it in that you have a lot of you know a lot of tools to work with like there's like in um building uh dot mx you need to you
Starting point is 00:43:00 need to install npm packages uh while there's a helper in nix packages that it looks for you know like your package lock.json file in your you know source repository and it'll handle automatically going and downloading all the packages from the npm repository so you don't have to run you have to have it done there like there's helpers for you to do it in a way that's plays by nix's rules automatically. So you just get this like wide set of tools and ability to like make functions and compute things, which makes it very flexible.
Starting point is 00:43:36 LinuxUnplugged.com slash boost. You can now boost from the web. Get your message on the show, support the pod and use a completely independent open source peer-to-peer network. If you would have told past Chris when he was starting all of this that there would be a system, there was no middleman, that nobody owned, that was using free software, using free software money to transfer value, oh my god, and then integrate it into the podcast apps? I don't know. I just don't think I could have seen it all come together. It's really impressive what's been built in the last few years. It might be time to try it yourself.
Starting point is 00:44:08 And one of the great things is when you boost the episodes, you're also supporting the podcast app developer. The spec calls for a percentage of like 1% or 2%, whatever they decide. The market kind of works it out. For the developer, a little percentage fee, it doesn't take away from the total that we see when you send in your boost, so you still get credit for the full amount, but the app developer can get like a 2% fee. And that gives them a sustainable way to continue development of the application that doesn't require like baking in ads, or you've seen how Pocket Cast has had to sell themselves a dozen times. It doesn't really end well for a podcast app that can't find a path to monetization because
Starting point is 00:44:45 surprisingly, and I've learned this now having a little bit of an inside track, podcast apps are more complicated and harder to make with way more edge cases than you'd ever imagine. And I say that as somebody who's been doing podcasts for like 18 years, then seeing behind the scenes a little bit, I was still surprised. It takes a ton of work, dedicated time, full-time work, especially when you build a little bit of a user base. So to build in a way for these developers to monetize just by the users supporting the content that they listen to, it's genius. It's part of what I love about podcasting 2.0. So when you boost the show, not only is it going to each one of us, like Drew and Brent and Wes and myself and the network, and we send a little off to some other developers, but you're also supporting the podcast index and the application developer at the same time. It makes the whole thing sustainable.
Starting point is 00:45:34 And it's all using a peer-to-peer open source network to make it happen. And now with Strike available in 100 countries, including the UK and even more places as they continue to grow, it's even easier to link Strike to Fountain and just get a boost in. Or for you, the web at linuxunplugged.com slash boost. You just need any app that can scan a QR code and send a lightning payment. You can send your message and say hi to us, and we'll read on the show while you support that individual production. While the sound effects are fun, it's about more than that. It's about supporting independent content directly from the audience to the creator with
Starting point is 00:46:06 no middleman. Try it out. Support the show and get your message on here. LinuxUnplugged.com slash boost. We have a little community note here from Hybrid Sarcasm saying that our events page through Gatio has been patched up. Remember, Chris, you were having a problem creating an
Starting point is 00:46:24 event. So that's all fixed now. You can go to jbevents.hybrid sarcasm.xyz to create your local JB events. Hey, give it a go. Give it a go. Hey, go give it a go out there. Go give it a go. It's jbevents.hybrid sarcasm.xyz.
Starting point is 00:46:43 Somebody go, you know, book a meetup, eh? And let us know how it works because I'm going to be on vacay, and I want this tested by the time I get back. You know, I think I could throw something on here. We've got that meetup happening in Berlin in September. Maybe that's a perfect thing to throw in here. So if you're going to that meetup and you've already signed up somewhere else or you didn't sign up yet, give it a try on Gatio here, and we'll see how that goes. Yeah, we'll toss a link in the show notes so you don't have to remember the strange URL.
Starting point is 00:47:09 But we also got a great note from Mark. Do you want to cover that, Brent? We did. We got some feedback from Mark in a very unusual way through a PR to Chris's NixOS config file GitHub repo. Now, that is some of the best kind of feedback to send in. You're sending in your feedback with a solution already built in. So Mark says here, I've been listening to Jupyter broadcasting shows since around the time Chris flooded Lady Jupes by leaving devices in the bathroom sink.
Starting point is 00:47:42 That's bad energy right before a road trip. I'm just putting that out there. I like how that marks an epoch there. I love that. Yeah. Yep. It continues. My awesome wife started my Jupiter party membership as a Christmas present in 2022.
Starting point is 00:47:56 That's a great idea. We should promote that in the holidays more. I love that. This continues as a family boost here. My son and I have been exploring NixOS together. In Linux Unplugged 568, you mentioned losing the ability for Kate to use pseudosaves. Well, we updated NixOS and Plasma, and I had the exact same problem. We did find a post on the NixOS discourse that pointed us in the right direction.
Starting point is 00:48:18 I don't understand the specifics yet, but it seems like Kate is maybe a deprecated package name. It doesn't show up on search.nxos.org slash packages for 2404. Changing it to kdepackages.kate worked for us, and I hope it works for you. Ah, in fact, when I checked my config, I was in fact using the old package name. That was indeed it. There's probably other stuff different,
Starting point is 00:48:44 but just in a quick next rep, all I see, top level Kate is 2308.5, and KDE packages.kate is 2405.2. So it's at least newer. I see. I see. It seems KDE packages.kate is something they changed with KDE 6 series. So I went in and changed a bunch of packages other than Kate as well. It seems like the new way forward if you're using KDE 6.
Starting point is 00:49:12 Ah, I need to pay attention. I need to modernize. I love this, Mark. Thank you for sending that PR in. That's a unique way. You've got, Chris, you've got the community helping you with your Nix config. That's a pretty good point to be at. I need it. I need it.
Starting point is 00:49:29 Alright, so we have some live boosts as we have been going along, and BHH32 is back with 5,000 sats. You're so boost! Just want to help out. First time I've been able to listen live, so here you go. Heyo! Thanks. Hope you've been enjoying
Starting point is 00:49:44 it, BHH. We've been enjoying it bhh we've been enjoying your boost appreciate it i'll listen to jeff boosted in with 12 100 sats oh i see what he's trying to do uh-huh back to the future clips for any boost that starts with one two one and then sends us some files as well as great scott i see all right let's give let's give this a try you ready you ready he's doing the work it's perfect yeah all right so there you go 12,000 great scott 100 you want to hear the great scott let me pull up the all right i got i got two let's do great scott number two you ready that's great. Thank you, Jeff. All right, we'll get those loaded up on the soundboard.
Starting point is 00:50:29 12,100 sats. Swamig 007 comes in with 2,000 sats. B-O-O-S-T. Hey, again, I'm trying to live boost. My journey with Linux started back in 98 with magazine and CDs that came. Oh, yeah, I remember that. He had a set of Slackware in there. I now have Fedora 40 on my home mini PC. I've always had a Windows instance
Starting point is 00:50:48 as a dual boot for edge cases, but I finally switched to Mint slash Fedora 40 dual boot on my work laptop. Yeah, let's hear it for you dual booters out there. Mint and Fedora dual boot. How about that? You don't hear that very often. Sounds pretty nice, actually. I run the official company Windows image of
Starting point is 00:51:04 the laptop as a VM under Fedora with GPU pass-through. Yes. Nice. When I first listened to Last back in the day and after a long break, it started with LUP and then started with LUP in 2022. I was distro hopping for a long time, Red Hat Sousa. Slash, slad, Lendo's, OpenSous, Caldera, even Knoppix. Whoa, this is a real hopper uh-huh uh-huh ubuntu manjaro mint you name it out of the blue i tried fedora 35 and i've been on it since i've
Starting point is 00:51:33 learned some things about how to survive with grub along the way among many other cool things that's your forever distro i'm glad you found it 007. Thanks for listening for so long, and thank you for the boost. Thanks for listening live, too. The Zack Attack boosted in 5,555 sets. That's not possible. Nothing can do that. My primary use case for Linux is on the desktop. I have a couple servers, but three desktops. Two running uBlue Bluefin, which you should look into,
Starting point is 00:52:04 and one Manjaro, about to be Fedora, that I interact with on the daily. So yes, more desktop-focused shows would be amazing. And thank you for the Fudo keyboard pick. It's a slick keyboard. I've been using it nonstop. Same here. Yeah? Uh-huh. Yeah, I switched out from the show last week. Yeah. What about you, Brent? You've been sticking with it?
Starting point is 00:52:21 I installed it and tried it. I need to configure it because there's a couple of things by default that I don't like. So I've not used it as much as I should. But I've heard from the community consistently that they're installing it and loving it. So I feel like I'm falling behind. Okay. No, okay. That's cool. It's because I already had a great keyboard.
Starting point is 00:52:43 No, no. No, I'm happy for you. I'm happy for you. That's my. It's because I already had a great keyboard. No, I'm happy for you. That's my favorite sound. The Fudo keyboard I think has been really great. And I'm surprised at how good the audio capture is. My only bit of feedback is it's so easy to tap the language selector when you're just trying to use the keyboard to swipe on the spacebar. It's a small thing.
Starting point is 00:53:06 It's a small thing. Bolapara comes in with 5,000 cents. You sub-boost! But no message provided. Thank you for the cents. Yeah, thank you. Zor Alchemist comes in with 17,087 cents across two boosts.
Starting point is 00:53:20 Coming in hot with the boosts! 9,001 cents. I've been daily driving desktop Linux at home and at work since 2015. Though I have Linux servers too, the vast majority of the time I spend using Linux is as a desktop or workstation OS. Hence, I gotta have a plus one for covering topics relevant to the Linux desktop, like KDE Plasma. Alright.
Starting point is 00:53:42 And then, 8,086 sets. If you're serious about the OpenBSD desktop idea, this guide is a good place to start. And then here's a link to k58.uk. Okay, we'll check that out. All right, okay. It does come in with a note, though. I couldn't use OpenBSD exclusively.
Starting point is 00:54:03 There's software that I need or want which just isn't available. But I do appreciate certain of OpenBSD's qualities. It's simple, ultra lightweight, traditional Unix. I have an ancient ThinkPad running OpenBSD configured as a minimalist desktop. It's nice for focused work. Sure, it can't run Steam or play Netflix, but sometimes that's a plus. There is that. Keeps you on task, doesn't it? That's typically what we're looking for, right? Simple, ultra-lightweight, and traditional Unix.
Starting point is 00:54:31 That's our flavor. Sometimes what you're looking for is a terminal. I think so. Yeah, but there is something actually to it. Like, you know, you can run basic applications you need to get the job done. Can't do other stuff. Keeps it focused. Flatbacks? Yeah.
Starting point is 00:54:41 you need to get the job done. Can't do other stuff. Keeps it focused. Flatbacks? Just saying. Yeah. Mr. Pibb comes in with 12,345 sats. Yep, Spaceballs boost.
Starting point is 00:54:55 So the culmination is 1, 2, 3, 4, 5. And Pibb writes, Desktop Linux has reached an impressive state. I started on Ubuntu 8.04 and was shocked how much just worked even back then. My daily driver is Pop!OS with GNOME, and I've been testing the new Cosmic desktop environment, which is already quite impressive and largely usable. I look forward to more desktop coverage. All right.
Starting point is 00:55:16 We look forward to Cosmic. Yeah, we do. This is good signal. You know, we asked the question because we're always trying to calibrate. Do we focus on the desktop too much? Should we focus more on like things you can do inside a terminal when you're SSH'd into a Linux box? Like, where are people listening? And I'm really pleased to hear how many of you are like all in on the desktop because we are.
Starting point is 00:55:37 Yeah, that's true. So that's good to hear. Space nerd Mo comes in with 12,345 sats. Yes. That's amazing. I've got the same combination on my luggage. Oh, using Podverse. I've been a user of Linux on desktop from the mid to late 90s.
Starting point is 00:55:52 Nice space nerd. I enjoy the coverage of desktop Linux alongside the other new and amazing things that make up the free and open source software ecosystem. And the occasional BSD mention makes it all the better. Love all that you do. Uh-oh, I can feel some BSD cover just sneaking in. Do you feel that? Yeah, why not?
Starting point is 00:56:09 Sneaking, I think it's over there in the corner in the shadows and it's sneaking its way in. Like, what's her face in that cliffhanger Star Trek The Next Generation when it turns out that her mom went back in time and then she had a baby and then her baby turned out to be a Romulan commander. You know what I'm talking about? I don't want? I do.
Starting point is 00:56:25 I don't want to say it. I don't want to spoil it, but I feel like that's open BSD right now. I feel like our policy should be we'll use anything as long as it isn't Windows. But if it's over there in the shadows, wouldn't it be ghost BSD? Ah, nice, Brent. Nice. And XSword came in with 2,345 sets, which I think is almost a Spaceballs boost. I crave ZFS. I always wanted to daily
Starting point is 00:56:48 drive Linux, but I never felt a need to switch 100%. All the games I play are on Windows, and I've managed my Windows installs carefully over the years. How do you do that? Even though I have upgraded to Windows 11 recently, it's still the same original Windows install from 2015, and it works
Starting point is 00:57:04 well. Whoa! That is should be in a museum. recently it's still the same original windows install from 2015 and it works well that whoa respect should be in a museum everything else is linux between my nas home assistant vps on linode if i need linux on my pc i use a vm or wsl are you saying you run home assistant on a vps on linode that's what it sounds like he's saying there how How do you do this? Do you have like a VPN that's going back to your LAN? And what is the advantage of this? I am perplexed and very intrigued, Dexord. Like, tell me about that. Or are they separate between my NAS, home assistant, comma,
Starting point is 00:57:36 and my VPS on Linode? Although now I just want to do what you're talking about. Yeah, me too. Like, I think that's an episode right there. I think that's my fault. I don't typically read the commas, but maybe I should start that. I got to figure that out. That sounds like a great project, a stupid project.
Starting point is 00:57:50 I think our motto, right, is like, can we? We don't ask if we should. That's for later. That's for the show. Yeah. First you do the weird work, and then. That's for the audience to decide. Right.
Starting point is 00:57:58 What's in our place? And Fergo comes in with 5,000 sats. You're supposed. I run Linux as a daily driver. I got challenged in college to install Arch because it was hard. And so I did. I run Arch and KDE on three computers now. And I've been using Wayland since it came out.
Starting point is 00:58:13 No issues, even with gaming. And I like the episodes about desktop environments. I always learn a new tidbit that I didn't know about yet. Oh, okay, great. I'm glad we could do that. We do try to dig in and find little nuggets that people might find interesting. Thank you, Infergo. Appreciate that boost. CMC Sun Moon comes in with 13,337 sets. Bun will now commence. While I cannot discuss the custom head scale control
Starting point is 00:58:42 server implementation due to the sensitive nature of the specific client. I think this is a response to you, Chris, asking more about. It's only in use for two user acceptance testing environments, not actually in production yet. Tail scale we are using to allow servers and different devices to communicate directly without opening firewall ports. These devices are usually behind high level firewalls in industries such as oil or universities. That makes sense. You've got a device embedded on someone else's network, and you need to talk to it.
Starting point is 00:59:09 That's some good insight. That pretty much answers my question. Thank you, CMC. Appreciate that. Fabian came in 5,000 sats over Fountain. Good, good. Daily Desktop Linux here from 2015. Currently, Hyperland on NixOS, and and previously i3 and Sway on Arch.
Starting point is 00:59:30 Also, because Nix, here is my setup, Fabian O. All right. I'm going to check that out. I've been kind of curious about a Hyperland NixOS setup. I'm surprised we haven't heard more from Hyperlanders out there. So thank you, Fabian. Appreciate that. That's something I'll definitely check in after the show,
Starting point is 00:59:47 or check out after the show, I should say. Caveman F-16 came in with two rows of ducks. Ah, fuck! Double ducks. How is this show taken seriously? I don't understand. And they write, Leroy Office, my wife has been pretty happy with it so far.
Starting point is 01:00:08 We did just ditch Office 365 last month, and Jellyfin also swooped in as a winning Plex replacement. Hey-o. He also sends in a boost to say, please do keep up the coverage on Linux desktops. Your updates have helped me find the sweet spot with Linux Mint on an old 2014 MacBook still running only Linux.
Starting point is 01:00:25 Ooh, great. That's awesome. Way to, like, extend the value. Yeah. Something Apple abandoned a long time ago. Linux makes it possible. Also, your testing of the pros and cons of each desktop is helping me reconsider which desktop to move to with my main AMD desktop rig when I finally do ditch Windows for good.
Starting point is 01:00:42 Exciting. You should boost in when you do that. Let us know. Yeah, absolutely. That sounds like a nice, sensible way to go about it too, Caveman. For a caveman, at least. Thank you for the boost. 412 Linux comes in with 5,000 cents. Coming in hot
Starting point is 01:00:56 with the boost! Oh, well here's a special shout out to me, Wes, as we both share an anniversary of sorts. I started listening regularly with WUP100. I believe that is also Wes's first episode. Yes, indeed. I haven't missed an episode since 100, and it has been nine years of awesome content.
Starting point is 01:01:13 Wes is still minty French. Oh, thank you. Can confirm. For the poll I daily drive Ubuntu Mate, it's a great day for Mate. Nice. Amazing. Nice, 412. And thank you.
Starting point is 01:01:25 Yeah, thanks for listening. You're doing better than I am. I've missed a couple episodes here. Not many, though. Jen from Matik comes in with 4,000 sats using Podverse. Hey, Chris, I do care about the desktop. I started on a Kubuntu in 2006. I couldn't get along with GNOME,
Starting point is 01:01:42 so I moved over to KDE Neon in 2016. I'm a power user, I suppose, and I love all the improvements they did along the years. I switched jobs many times and made sure that I can always use Plasma at work, or else I won't take the job. I love that as some dedication. I hope there's a Plasma developer that hears that. Like, they won't take the job. You hear that? He goes on to say, what's the use of loving KDE and being stuck with Windows and only being able to use SSH?
Starting point is 01:02:07 It always makes my colleagues roll their eyes because they develop on Windows. Why can't we say it's the year of the desktop Linux yet? Since he does daily drive, he would know. For you, it might be. Yeah. For Microsoft Office alternatives, and you want great compatibility, though, with Microsoft Office documents, maybe more so than LibreOffice, he writes. There is WPS Office and FreeOffice. Also, remember, folks, OpenOffice should be deprecated.
Starting point is 01:02:35 It's a thing of the past. Yeah, it's still out there, though, isn't it? Oh, gosh. Thank you very much. Thank you, Jen. Appreciate that. Lucas Burlingham came in with 5,000 sats. You supposed!
Starting point is 01:02:47 What elements of Plasma appeal to its users and can't be replicated on other desktops? I've tried it on and off, but never found it worked for me. I like the GNOME and macOS-type workflow, but haven't been able to replicate it on Plasma. But I suppose I shouldn't force something to work in a way that it's not designed for especially since something else works great out of the box. I think your last point there is probably the insightful piece. You know you definitely could if you really worked at it make Plasma function like GNOME or closer to macOS but I don't think that's the I just it's never going to be quite as good
Starting point is 01:03:21 as if you just use it kind of as it comes. You're always going to be struggling a little bit. Well, for me, what I really like about Plasma is the tools around it are best of class, like the console tools and the text editing tools, and they've been refined for years now. And then additionally, there's a lot of actual process isolation for some of the things that you're running in there that just GNOME doesn't have currently. Things like that that just like if, so say, for example, what I'm talking about is if a particular widget crashes, and I've had this happen, it doesn't necessarily take out
Starting point is 01:03:52 my entire desktop. Or if a panel crashes, it doesn't take out my entire desktop. Those things are isolated in their own processes. And also I can kill them and restart them individually too, which has been useful in the past. So there's kind of like that sort of process modularity to it, but then there's also sort of this cohesive design language and feature set that goes throughout the ecosystem of applications where, you know, hey, if I do this with this particular key combination in the Dolphin file manager, chances are I can also do that same combination in the text editor or that same combination in the photo manager. And so you kind of build up this sort of muscle memory to be able to navigate
Starting point is 01:04:28 through a common set of applications that all are sort of best-in-class feature set and all work and speak kind of the same design language. And the GNOME ecosystem has done a lot and they have a really nice look to it and there's a lot of great apps over there too. So it's really kind of
Starting point is 01:04:43 a spoil of riches. So HamG G, comes in with 2,000 cents. Pew, pew. In my opinion, RCS is dead on arrival. Ah, the new messaging standard. Indeed. Who thought it was a good idea to involve the worst group of companies ever, i.e. the carriers? Yeah. IMO, they should just find a way to map phone numbers to XMPP identities or something like that instead of reinventing the wheel how great would that be nostril numbers yeah yeah well maybe make you know maybe you're a nostril identity on xmpp you know i don't know i completely
Starting point is 01:05:16 agree i was one of my initial concerns about rcs as well i've been beaten into submission just so desperately wanting something yeah but you know now i Blue Bubbles, and that's been working pretty good. Altera the Blue comes in with 9,009 sats, which is... It's over 9,000! Using Fountain, they write, I've been running the Linux desktop full-time since about 2003. My first taste of Linux was Red Hat Linux at a friend's server. Yeah.
Starting point is 01:05:45 And then I've daily driven Fedora since about core two. Now it's pervaded my entire stack. Thanks for making me realize it's been more than 20 years and I'm officially old. I know. When these distros start celebrating 20 year anniversaries and stuff, you're like, oh, crap. I'm that guy now. I do have some gray in the beard. But, you know, Altair, you really stuck with it.
Starting point is 01:06:08 I was reading a Twitter thread, and it's like, oh, Linux sucks because I can't stop distro hopping, and all I can do is distro hop, and all these people jumped. Oh, I know. Me too. Me too. Me too. Look at Altair here. Sticking with it for 20 years.
Starting point is 01:06:23 How about that? Swamig 007 boosts in with 2,101 sats. Pew, pew, pew! This is my first real boost, so hi, y'all. Hey, thank you very much. Appreciate that. I met Brent at an Ubuntu event at Scale, Alex in the Tailscale booth,
Starting point is 01:06:41 Chris and listener Jeff, if I'm not mistaken, at the Yardhouse. Oh, great. I missed Wes. We'll say hi the next time. Oh, yeah, okay. Well, I look forward if I'm not mistaken, at the Yardhouse. Oh, great. I missed Wes. We'll say hi the next time. Oh, yeah, okay. Well, I look forward to that. Were you not at the Yardhouse?
Starting point is 01:06:49 Or maybe we just didn't get, there was a lot of people, so maybe we just didn't get to bump into each other. Remember how we maxed it out? There was that, yeah. I wanted to note a few things regarding mini-forum
Starting point is 01:06:58 that Brent was looking into in the last self-hosted episode. I've been using the UM773 light since April 2023, ordered directly as barebone. I started with Fedora Workstation 37 and have been doing in-place upgrades ever since. All right. So this is the Mini S-Form UM773 that we mentioned last episode. The build quality is okay, but runs very quiet and is snappy. Uh-oh. Okay? Well, at least it quiet and is snappy. Uh-oh. Okay?
Starting point is 01:07:26 Well, at least it's quiet and snappy. One totally unexpected part was that I received firmware updates for the box via the Fedora updates, and firmware was updated directly from Fedora. Nice. Which makes me very happy as to how far along Linux has really come. Back in the day, I had to create a special DOS boot disk to upgrade firmware on machines. Hope this helps. Cheers.
Starting point is 01:07:44 Well, Swami, thanks for the feedback. That's actually really super helpful. Thank you to Mr. Bond. Oh, yeah, I missed this. Please read my handle as SwamiG007. Okay, noted. There we go. We got it.
Starting point is 01:07:56 Thank you, SwamiG. Boise79 comes in with 5,000 sacks. It's a boost. I have a great double today, boys. I daily drive OpenSUSE Tumbleweed on both my laptop and desktop machines. Chris, here is a clue to help answer your question about my work from my last boost. You might have used this tool at your job. It links us to archive.org and then an IBM classroom for system 1.3 user guide.
Starting point is 01:08:24 Wow. I started out running on top of the Novell network servers using Token Ring, which we used to call Broken Ring back in the day, he adds. And then, of course, moved to a Baseband network. Keep up the good work. Oh, good old Token Ring. I will say when I came in,
Starting point is 01:08:42 Token Ring was still in production in a couple of places when I came into the industry, but it was really getting phased out. What I saw more, because again, I'm in the Pacific Northwest, so there's a Microsoft influence here. I saw a lot more of NetBui, and I saw a good amount of IPX. And those didn't route either. Those were all non-routable, but then you could set up routers to route like ipx and net buoy traffic and forward it and there was systems to accommodate all that but tcp ip was not initially a winner and i don't think that's something people now appreciate looking back at it we tried everything else
Starting point is 01:09:17 we tried all the other vendor standards before we went with the open one. And eventually it won. We never learn. Every time, over and over again. Well, Coach Rick boosted in 2024 Satoshis. The phrase decentralized identity really caught my attention and I got my family into Noster using OxChat. We are NIP05 verified and ready for the Circle of Trust future. Awesome. You got your family verified too? Neat.
Starting point is 01:09:47 That is really cool. And the fact that you can self-do it, you can self-host that verification system or you can use one of the commercial ones out there. Really nice. OxChat is secure chat built on Nostr. It uses the Nostr protocol. It prioritizes security.
Starting point is 01:10:04 It features private key login, encrypted private chats, contacts, encrypted group chats, and lightning payments. Additionally, it also offers open communications platform through public channels. So kind of like a telegram signal simplex. That's neat. But you're using your Nostra identity. You should report back in after a while. Let us know if you keep using it how it goes. Yeah.
Starting point is 01:10:25 I'd be very curious. I like this idea of having the family do it and just get it signed up. I mean, maybe they use it for other things down the road. Maybe they don't, but you got it for that at least. Sam H comes in with a row of ducks. In LUP569, you asked, do you daily drive a Linux desktop?
Starting point is 01:10:41 Well, yes. I use NixOS on my home desktop PC and laptop, both with Plasma 6. Oh, nice setup, Sam. At work, I have Windows on the laptop for IT management reasons, but I use TurboVNC sessions with the XFCE desktop on RHEL for most development. Nice. I mean, you're living in the TurboVNC session during the day, huh? That must work decently for you. Yeah, I wonder, do you have, like, you know, do you have other stuff forwarded in that environment? How does it work?
Starting point is 01:11:08 Yeah, that is, I mean, I've definitely heard, like, RDP. Have you tried any of the RDP solutions that are cooking? Also, I'd be curious to know about that. That's a fascinating setup. Thank you for sharing it with us. Appreciate it, Sam. All right, so that's all the boosts at the 2,000 sat cutoff and above, but thank you everybody who does
Starting point is 01:11:27 boost in at any amount. We save all those in the doc, and of course we appreciate everybody who also streams sats as they listen. This was across the last two episodes, and we had 40 total boosters, a good mix of live boosters in there too, and we stacked 364,481 sats. And we stacked 364,481 sets.
Starting point is 01:11:48 That's really fantastic. So thank you, everybody, who supports the show through the boost. This is a value for value podcast. So if something we talked about was helpful or you enjoyed it and got a good experience and just want to keep the show going or maybe there's some information in there or something like that, definitely consider sending a little value back by a boost or becoming a member or maybe sharing the show with a friend, you know, doing a little sales job for us. That's always much appreciated because honestly, word of mouth is the only way these kinds of podcasts get shared. People don't just go listen to an hour plus podcast randomly anymore.
Starting point is 01:12:17 They got other stuff to do, unfortunately. So we always do appreciate the word of mouth recommendation. Helps the show grow. All right. A theme. We have another feature-rich terminal application that gives you a terminal UI to do something. And I think you found this one too,
Starting point is 01:12:34 didn't you? That's right. Yeah, last week we talked about Stew, which is a quick little Rust app to check out S3 buckets. And this week we have an even more fully featured Rust application to check out S3 buckets and also things like SCP, SFTP. It's TermSCP. TermSCP, a feature-rich file transfer and explore with support for SCP, SFTP, FTP, and S3.
Starting point is 01:13:00 Oh, and SMB and WebDAV. So basically a terminal utility with a TUI to connect to any kind of remote server you probably want to. Works on Windows, Linux, FreeBSD, NetBSD, and yes, macOS. Samba and WebDAV is really handy. That's great. I could use that immediately. Thanks, Wes. Yeah, this one I used to, but then I needed to check out some other stuff, so I ended up exploring this one.
Starting point is 01:13:23 And Stu, I think, if you're just doing S3, probably a little leaner and easier to use. But if you have more sophisticated needs or you have a bunch of different stuff, for some reason that old FTP server is still hanging around, definitely recommend TermSCP. The entire tar file is like six megs for the whole thing, and you can get the whole thing.
Starting point is 01:13:40 Tiny little app. Yeah, they got DEBs available on their GitHub and RPMs as well if you want to go that way. So TermSCP. You know we'll have a link for that in the whole thing. Tiny little app. Yeah, they got devs available on their GitHub and RPMs as well, if you want to go that way. So term SCP. You know we'll have a link for that in the show notes. You got any of your favorite tools for accessing, displaying, working with remote files? Because if so, boost them in.
Starting point is 01:13:54 Yeah, let us know. I love TUI applications. That's what we're calling them. TUI. A TUI application. Also, speaking of questions that we put out there, remember, Brent was wondering if you agree with the path to purpose-dedicated computers, dedicated appliance machines. Is it too many?
Starting point is 01:14:12 We had a little live conversation about perhaps he's going down the wrong path, but I'd be curious to know what everybody else thinks out there. Do boost in and let us know. And then we should be back, assuming I made it from Montana at our regular bat time. See you next week. Same bat time, time same bat station nice and toasty it's the summer of linux here in the jb studios and we'd love to have you join us we do the show live at noon pacific 3 p.m eastern if you have a podcasting 2.0 app will show up right there in your list of subscriptions, and you can listen in the app. You can also just go to jblive.tv on a Sunday and tune in, or plug in jblive.fm to an app of your choice. Or just grab the RSS feed, don't worry about any of that crap, and just listen when you want.
Starting point is 01:14:57 We're just glad you do. Thanks so much for joining us on this week's episode of your Unplugged program. We'll see you right back here next Tuesday. As in summer. Before we wrap up, before we get out of here, there was like one other area to all of the packaging stuff and the reason why you've been doing a lot of packaging that we didn't get a chance to touch on in the show. Maybe we sneak it here in the post show. Yeah, in a word, portability. Portability.
Starting point is 01:15:59 I don't know. It feels like I'm less worried because you can use it on NixOS, because you can just use it with Nix on whatever old distro. I feel like the stuff I'm doing, that's just now part of my toolkit that I can use in whatever setup, whatever I need. And does it matter? When you say portability, you mean it doesn't matter if it's deployed on a VPS that's running Debian
Starting point is 01:16:16 or if it's on your local box here that's on a modern Ubuntu or our system here in the studio that's on a Qt. Yeah, as long as I can run Nix on it, then I can build those back. I mean, maybe there's some stuff that what about that architecture yeah right i mean there's yeah i don't mean to say it solves all those problems yeah but in terms of just like here's like what feels like a universal recipe to get that software working um maybe something that exemplifies this is a blog post i just recently saw from farid zakaria no not that farid zakaria uh called Learn Nix the Fun Way.
Starting point is 01:16:46 And it shows an example of a little what is my IP script, a little bash script that you'd run, tells you your IP address. It curls a website and then pipes that to JQ to parse the response and like output, you know, what your IP is from the response. And the point the author is making here is
Starting point is 01:17:04 you need curl and you need Jq and so it's sort of portable right like i can just give you that script the source to the script i just have to tell you to install curl and jq now a lot of people have those installed so it's probably just going to work but like if you turn that bash script into a nix bash script then nix handles that right Nix will get that. So you can just bring it with you. And I think especially for applications, it's one thing, and there's kind of more options, but I think for scripts especially,
Starting point is 01:17:33 which have felt a little ad hoc to me, and you make some scripts that have some implicit assumptions about the environment that they're going to be run in, and they live in some bin or scripts folder or whatever. I'll tell you where the rubber's really met the road for me in this is here in the Studes. I know, but this is where we've really applied this, is this machine that we're sitting in front of is an old 1804 box, and it just doesn't have certain things in Jack anymore
Starting point is 01:17:54 that modern applications expect. And it's truly gotten to the point where you would have had to upgrade and replace this machine, and we still need to do that. But this portability you're talking about has given us the ability to upgrade and replace this machine, and we still need to do that. But this portability you're talking about has given us the ability to build and link applications to versions of Jack that aren't even available for Ubuntu 18.04. But they're packaged in Nix, and you've been able to bring them in and install them, and then build applications that use those libraries. And so we can do routing and audio stuff that isn't actually possible on Ubuntu 18.04 on an Ubuntu 18.04
Starting point is 01:18:24 system. That's pretty cool. Then you mix that in with like, you know, kind of like the flakes and the sort of magic feeling of summoning software from the internet. So I made a little thing to build PyEnv versions of Python. I don't know that I would just use the next ones, but it was part of the experiment. So what you could do, PyEnv works when you like run a little eval, you put something in your bash rc that like loads Pyenv into your shell, and then it can control your path and show you which Python you're using or whatever.
Starting point is 01:18:49 I set it up so you could run the eval command in your bash rc, but run nix to reference the Pyenv build that I had, and then whenever you load your bash shell, you call out nix would run, nix would build you your custom version of Python, automatically put it on your path and you'd be done that's brilliant now should you do that no
Starting point is 01:19:08 there's no reason to do it like that don't do it like that but like that that you can do that it just it remains very exciting to me

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.