LINUX Unplugged - 583: Nix on Easy Mode

Episode Date: October 7, 2024

Wes gives his shell superpowers to solve a tricky problem. Then, we share an update on our favorite Google Photos alternative, including breaking changes and a great new way to run it.Sponsored By:Jup...iter Party Annual Membership: Put your support on automatic with our annual plan, and get one month of membership for free!Tailscale: Tailscale 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.FMbda in the Nix Nerds Matrix Chat with Python WoesInstall a couple of Python packages : r/NixOSAnyone using python UV on NixOS? : r/NixOSdevenv — Fast, Declarative, Reproducible and Composable Developer Environments using Nixdevenn's direnv integrationPOLL: Do you use any tools to "move between machines"?Immich Release v1.117.0NixOS Immich ModuleImmich Nix Packageimmich-machine-learning.nixLINUX Unplugged 476: Canary in the Photo MineLINUX Unplugged 409: Launch Your Memories Into the FutureAnnual Membership — Put your support on automatic with our annual plan, and get one month of membership for free!Meshtastic Matrix Chatroom — Chatastic for Meshtastic.nixy — Nixy is a Hyprland NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.I'm not sure if Jeff can be called a ProducerSeattle GNU/Linux ConferenceDistroStu's Computer Keyboards! Talk on YouTubeNix from First Principles: Flake Edition — This guide is a beginner's guide to Nix and related tooling, focusing on the newer nix command, and flake.nix compared to older tools like nix-env and default.nix. It does not require any prior Nix knowledge, and instead builds up the Flake based world from first principles, so that it can serve as an introduction to Nix itself, as well as the concept and uses of Flakes.NixOS & Flakes Book — Want to know NixOS & Flakes in detail? Looking for a beginner-friendly tutorial? Then you've come to the right place!EtchDroid — An application to write OS images to USB drives, on Android, no root required. Use it to make a bootable operating system USB drive when your laptop is dead.EtchDroid on Github

Transcript
Discussion (0)
Starting point is 00:00:00 Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris. My name is Wes. And my name is Brent. Hello, gentlemen, coming up on the show today. I'm not sure if it's fair, but sometimes Nix gets a bad rap for being easy to do the hard stuff and hard to do the easy stuff. Well, today we're going to talk about reproducible and composable environments, what they are, and how they can be a very handy tool for anyone. It sounds like a complicated topic, but it's surprisingly simple.
Starting point is 00:00:39 Then we have an update on our favorite Google Photos killer. It had some breaking changes you need to know about, and I think we found a better way to package it. We'll tell you about that. And, of course, we're going to round it out with your boosts, great pick, and more. So before we go any further, we have to say time-appropriate greetings to our virtual lug. Hello, Mumble Room.
Starting point is 00:00:58 Hey, guys. Hello, guys. Hello, Brunt. We have a massive quiet listening this week, and then a few core in the on-air channel. I feel the energy. It's supportive. Including PJ's there.
Starting point is 00:01:08 Producer Jeff's in there. Hi there. Hello. We will have a Meshtastic update coming up later in the show as well. I want to say a big good morning to our friends at Tailscale. Tailscale.com slash unplug. This is the easiest way to connect your devices and services directly to each other, wherever they are, in a flat network protected by... WireGuard.
Starting point is 00:01:31 Yep, that's right. WireGuard. And man, is it fast. You can get it for free on 100 devices and three user accounts. It's not a limited time thing. That's the base plan. You can get it for free when you go to tailscale.com. That's the plan I'm on.
Starting point is 00:01:44 I built out my personal infrastructure and now the JB infrastructure on top of Tailscale. The nodes can be anywhere in the world, on any network, any VPS I want, or on a homeland, or in maybe a colo somewhere. It's so slick. Tailscale.com slash unplugged. So we wanted to respond to something that we see pretty consistently in the community. People get excited to try something out that we talk about, and then they run into a couple of hard spots. And maybe we can make that journey a little easier. I think this was a comment that was in our Matrix chat a few days ago by BDA.
Starting point is 00:02:20 And he says, I'm new to NixOS. I just installed it on a new PC I built. It's a Ryzen 7700 with an NVIDIA 3070. I'm using it for games and some work stuff. I also have Windows 11 installed and I'm dual booting. Sounds like a pretty nice rig, actually. It does. I like it so far.
Starting point is 00:02:35 He says, I'm getting up and running with ButterFS encrypted home and sub volumes and Cosmic Alpha 2. Hot damn, dude. Working with NVIDIA drivers was surprisingly easy. I just followed the wiki. So he's making the point. Here I got ButterFS encryption. I've got Cosmic Alpha 2, cutting edge stuff. I got working NVIDIA drivers.
Starting point is 00:02:54 This is a fancy setup. It was easy, he says. You love hearing that. That's nice. That's nice. But then he tried Python machine learning on NixOS, and he says it's been horrific. He's been spending several hours, been unable to get it working. He's been trying to follow the wiki.
Starting point is 00:03:10 Apparently he needs a Nix shell to LLMVM config and all you name some packages and all this stuff. He said he tried DistroBox with NVIDIA support using Ubuntu inside DistroBox, and is still unable to find my GPU. He says I can get the same thing working just fine on my Arch box and on a native Ubuntu 22.04 box, is anyone else here trying to do any Python development on Nix? I think Python's a pretty common example of, I just want to be able to, like, pip install a thing and have it work like I can on any other system.
Starting point is 00:03:40 Yeah, I mean, just as they say, on an Ubuntu box or an Arch box even, which is, you know, somewhat non-standard, usually Python projects are fairly easy to get going. And I think also just the problem of trying to create an environment where you can build a project where maybe you have a specific dependency or a particular library that you need is a tricky problem to solve on any distribution, especially LTS distributions. So this isn't like a Nix only problem, but I think it's a little extra complicated. And especially for people that are trying to get NixOS going and they just want to get their workflow functioning.
Starting point is 00:04:14 And this is where you and I kind of started talking about, is there a way to actually make this easier? People tried the DistroBox escape hatch. It hasn't been great for them. Yeah, I think that is a good option. You know, you do then got to go learn DistroBox and figure out it hasn't been great for them. Yeah, I think that is a good option. You do then got to go learn DistroBox and figure out how to make it work for you. There's also, you know, the usual other under the hood DistroBox is just containers and there's other container escape hatches like Docker or Podman.
Starting point is 00:04:37 I also think, you know, there's different levels of engaging with Nix in a language like Nix in Python as the example today. Are you trying to develop with Nix, right? Are you adopting Nix as part of your tooling or are you just trying to get your usual work done in the usual way while trying to use NixOS? And by that, do you mean like, are you going to install every dependency with Nix packages or are you going to install it with like, say, Python's native tooling? Yeah. And there's a spectrum sort of between there. I will say, I think if you're just trying to write a script or you're doing something where the dependency, like the Python package is packaged in Nix packages, and you don't care that much about a specific version, right?
Starting point is 00:05:14 Like if you need like bleeding head features or this particular thing for X reason for your product or whatever, okay, no. But if you're just writing some like sysadmin scripts or something, Nix and Python and the Nix packages Python part is really nice because if you have Nix on the system you want to run your scripts on, it handles the most annoying part about deploying Python scripts, which is, right, you can copy the files, but then you got to go run pip install on every machine or like you're giving it to some end user and like, can you please run this package? Which packaging library do you use? Yeah, that's a good point. Like, can you please run this package? Which packaging library do you use again? Yeah, that's a good point. Like, if you're not really particular about the exact version, it actually can be a very nice way to just have it just done and solved for you. Yeah.
Starting point is 00:05:52 So that works. But outside of that, if you are trying to take, like, a project for work or a project you're working in the open source community that hasn't been designed to work with Nix. Yeah. And you just want to get your work done. Like, you're seeing this a lot with people that are trying to set up machine learning tooling. Yes. And unfortunately, machine learning in particular is just egregiously hard for newbies because you're suddenly exposed. You're trying to do something relatively simple, but you're exposed to all the complicated bits and the reasons why Nix is different. If you're using a library that is just pure Python, it's mostly going to work.
Starting point is 00:06:23 The first things to know about Nix and Python is the Nix store is immutable. So you're not going to be able to do like as root or sudo install using pip to the system. So you should just probably plan to use a virtual environment or a similar setup, which is common and relatively best practice anyway. You can also use Nix. Nix works well to be the Python version manager. So there's tools out there like PyEnv and similar. But, you know, Nix has most of the supported PyThons available. So unless you need something very specific, you can totally just do that.
Starting point is 00:06:54 Where things get difficult is, you know, Python's not the fastest. And over the years, it's been a common technique to leverage native libraries, often written in C or something. it's been a common technique to leverage native libraries, often written in C or something. And so Python has been written in C, has good support for interfacing with native libraries, which is super handy. And it can be your escape hatch,
Starting point is 00:07:14 especially for things like machine learning, you know, SciPy, NumPy, things like that, where you have like accelerated libraries for matrix algebra written in Fortran that have been tuned for decades now at this point. But you actually need to be able to find the library. And on a normal Linux system, right, we've talked about this before, you have this sort of like default mutable global set of system libraries that are available for programs to reference. And programs sort of assume these exist under places like user lib and go look for
Starting point is 00:07:41 them automatically. That doesn't exist on Nix, right? Like the benefit of that is you get to compose them yourselves. And that means each individual package can have its own set. So you can have multiple versions installed and they don't conflict. And this gives Nix a lot of the superpowers that it has. Yeah, Nix is sort of inherently solving the problems that Flatpak and Snap set out to solve in that you can, in a very defined way, you can have these set of libraries available for an application. You can make sure that it always has those available. And a different application can use a slightly different version of the library
Starting point is 00:08:10 and they don't conflict, much like how flat packs and snaps try to keep those isolated. But Nix is managing that for you. So it's actually keeping them up to date. It's actually managing the packages. So it is, I think, a better way to do it. Like if systems had always been this had, if systems had always been this way, if Linux had always been this way, we maybe not have, we would have maybe not needed Flatpaks. Maybe we wouldn't have needed snaps. I mean, maybe. I think it's also a common experience
Starting point is 00:08:34 for folks where you've, you know, you're setting up a new machine and you go to, you set up your virtual environment with Python and you do a pip install of your requirements file and you install everything. And then, and then you realize that it's having problems where it can't find the library because you haven't installed that yet and you have to go then use a totally separate package manager for whatever it could be, DNF or Apt or whatever, and then go get the native library. And unless you're using something like Ansible or another sort of tool that will track both of those things, it's just immediate drift that then you kind of have to, every time you get it going again or when you have to go set up separate scripts to set up things in CI, you know, Nix can help with that. This is where we started talking about creating these composable environments, these developer environments, or they don't have to be developer environments, but these declarative, fast, reproducible environments that will work for people that solve some of these challenges where, you know, Nix is an immutable system.
Starting point is 00:09:25 It doesn't have like user lib. That's just going to have all the stuff in there that you can just write to. Yeah. So you like, you can manually sort of make this work. You can use the environment variable LD library. Yeah. Right.
Starting point is 00:09:35 And you can set that. Okay. You can even use the Nix REPL and go find the libraries you need. And then there's a library function in Nix packages that'll make a library path. You could give it a list of packages and it makes you the path variable. But you don't want to have to do that every time. And Nix provides stuff built in for this. So one option is you start learning more Nix and you make yourself a dev shell. And that has ways to add build dependencies, both in terms of things you
Starting point is 00:10:01 link against as well as executables you need in your build environment that's a nice path you can also do stuff where you use tools like patch elf and you can upgrade your python you can say like oh i know this python needs is going to need to link against these native libraries i'm going to supercharge it with those out of the gate so later when it goes and tries to import libraries uh that'll that'll just work but both of those options are kind of a little more nix forward. Like you're going to start making derivations and using the native DevShell tooling. And it does work. And if you want to do custom or blaze your own path kind of things, that's the way to go. But if you're just trying to get a development environment
Starting point is 00:10:39 or get a playground environment for a particular thing up and going and making it work. Yeah, or like the case of BDA. He's like, I've got this working on Arch. I've got it working on Ubuntu. I just want to make it work now on Nix. Yeah. I don't want to get into the details and understand like, how do I expose these things and how Nix works? Like I'm not ready. There is another way. Well, there's a lot of ways, let's be honest. But the way we're going to look at today is something called DevEnv. Yeah. DevEnv, which they describe as a fast, declarative, reproducible, and composable development environment using Nix. Develop natively, deploy containers, 100,000 plus packages.
Starting point is 00:11:15 Okay, you got my attention with this. Yeah, it's a project created by some of the folks behind CacheX, which is a company and an open source project, I believe, that basically provides binary caches for Nix. So if you have your own project, you have stuff that's not packaged in Nix packages, whether that's internally for your company or for an open source effort or something, they'll stand this up. But they also develop a bunch of useful libraries,
Starting point is 00:11:39 and they're invested in the Nix ecosystem. And one that's been seeing pretty rapid development is this DevEnv. Yeah, D-E-V-E-N-V. And it's very similar to using the built-in Nix native shell, makeshell environment, but it comes with a whole bunch of stuff that you have to construct yourself manually if you're going to go with Nix route, which if you want to learn Nix well, that's what you should do. But DevEnv just sort of brings it for you.
Starting point is 00:12:06 Yeah. So out of the gate, one thing I really like about it is it does have a Flakes native interface where you can just add it into your Flake and use Nix native tooling. But let's say you're trying to sell some of your coworkers or team members
Starting point is 00:12:17 who aren't really fully Nix and you're trying to get an environment going up. That's even more of a sell. So Devend also comes, and probably the way you should start using it is it has its own native little tool, DevIn. So you give that install. And let's think about like our little Python problem before, right, where we were installing things and we would go to import them and it would complain, right?
Starting point is 00:12:36 So one example for machine learning that's used sometimes is a library called Numba. It's like Simba, but, you know, for numbers. And it's a JIT, you know for numbers and it's a it's a jit uh just in time compiler and so you can take a python function you write in python apply this number decorator to it and the number uses llvm under the hood and a bunch of fancy math and computer science stuff to go emit native code that runs way faster it's sort of like on the fly creating like an assembly version of the code that you wrote in a high level in Python. That's cool. It's mostly for like, you know, numerical CPU bound
Starting point is 00:13:09 that kind of work. Yeah. So it gets used often with libraries like NumPy and then in implementations of algorithms and that kind of thing. So if you just go make yourself a virtual environment, the pip install part goes fine. Then you try to import it, it's going to start complaining to you about oh, I need lib standard C++.
Starting point is 00:13:29 And you're like, okay, great. You can actually go look inside the virtual environment and look at all the.so files, all the library files, and run LDD and find out all of the missing libraries. So you'll see stuff like standard C++. Lib Z is a common one, zlib, right? In this case, there's also some stuff here. One of them is like an Intel optimization library for parallel computing. There's another like math specific library from GNU in here. And depending on what you do with the actual library, you know, you may not need all of these, depending on what functionality you're relying on. So that's what you get out of the gate. In DevEnv, you just sort of do DevEnv init, and that's going to give you your basic file
Starting point is 00:14:09 structure right out of the gate. And then there's two files. Like a standard Linux file structure? No, I mean like in your project, right? Oh, okay. So it's like a folder in your home director or whatever, and it creates? Yeah. So you might imagine that could be for like, I'm using it for some of the backend tooling we're using around managing the feeds. So if you're making a new one, you do devenv. In this case, I'm trying to, like, run this. I'm making myself a little Python environment so I can run this Numba program and show it to you. So I do devenv in it, and then it pops up with a bunch of files, but two important ones.
Starting point is 00:14:41 There's a YAML file, and that's kind of like a junior-y Flakes introduction in that it gives you inputs, including like a Nix packages out of the hood. It also lets you configure options for that. So like there's an easy one-liner change you can make right there that's sort of commented and templated for you if you want to enable on free packages. So some of the like common, oh, how do I do this? You know, first out of the gate problems are kind of solved. You don't have to go look it up. It's just in there. And those ones are in YAML, so it's even friendlier. And then the main configuration is in Nix, devm.nix. And this kind of feels very similar to writing or to using NixOS,
Starting point is 00:15:16 because it's a module with options. And one of the things that's really great is it includes languages as an option. So in this case, we just say languages.python.enable equals true. And that's going to make sure that we have Python in our environment. And then it even has a functionality to set up a virtual environment for you. So you can turn that on, and then you can just give it a list of all the packages that you want it to install for you when it sets up the virtual environment. So we put Numba in there. Of course.
Starting point is 00:15:46 And then you run devenv shell. And that's going to build the shell and then put you into it. And so you'll be in your, you know, in your terminal. You'll be re-executed into a new version of your shell with all the environment configured and all the stuff to make Python understand where the libraries are handled. So you can just open up Python, type import number, and it imports clean. And it's, so you explain the entire thing. So it kind of sounds complicated, but it sounds like from an actual practical use case, it's
Starting point is 00:16:14 really just essentially two commands. Yeah. Okay. Devend init. And then you edit your devend.nix file and tell it like what languages you want, what programs and variables. So you could just go in there and say
Starting point is 00:16:25 I want rust I want Python yep I do it for closure no problem yeah okay and then you can also tell it like what
Starting point is 00:16:30 binaries you want available on your path inside the environment okay for Python specifically there's a language option to tell it the libraries you want on the path
Starting point is 00:16:38 for Python to find so like if you do need Zlib you just add it right there yeah devm handles some of the common ones. So lib standard C++, that's super common.
Starting point is 00:16:50 So that one is just included by default. So that's another example of ways where it just sort of smooths the path to just make it work. Yeah, well, I mean, they have 100,000 packages, over 100,000, and over 50 languages they support. So, you know, Python is obviously going to be in there. So, but there's a lot you could use this with and it creates a consistent environment where you can have all of these things that was just talked about and not have to worry about messing up your main system or getting it working in your main install. a lot more about that part of our system is just sort of an appliance. The OS and all of that stuff, we don't really touch it much. And the customization, the specialization, the one-off dependencies, we do those in environments like DevEnv or other places. And you mess that up or you make that specific.
Starting point is 00:17:37 And then not only is it not moving on you with the rest of the system, but you're keeping sort of that isolation of OS and project. Yeah. And one of the nice parts here, too, is in this case, but you're keeping sort of that isolation of OS and project. Yeah. And one of the nice parts here too is, you know, in this case, maybe you're using it because you want help to paper over the oddities of using NixOS as your system. But, you know, someone else working on it, once it's had DevM integrated, they just need Nix on their system and they get all the same benefits in terms of reproducibility and having it just work.
Starting point is 00:18:01 So an Ubuntu user? Oh yeah, totally. So it's not just a NixOS only thing? No, not, totally. So it's not just a NixOS only thing? No, not at all. It's just a tool that leverages Nix, and because it has some of those things to help do so well, it means it will work very well on a NixOS system.
Starting point is 00:18:15 Yes, of course. But where I was thinking that could be particularly handy is, you know, we have an old 1804 system in here that we've kind of done a lot to, but it's got a lot of old packages, and there's a lot of stuff that's, like, we can build it, but you, like, what was it you were building recently on here? I can't remember, Wes, but there was some tool where you had to go out, you know.
Starting point is 00:18:34 NextCloud client? Yeah, maybe, yeah, yeah. We wanted the newer NextCloud client that hasn't been packaged for 1804. So it's really nice to be able to have these sort of composable environments where we don't have to, like, rebase our entire production machine and do it, into like 2204, even though we should, we don't have to
Starting point is 00:18:49 do it that day. We can do it inside those dev environments. And you think about all the places out there that are running RHEL or Ubuntu LTS or Debian, and they have to fight with this problem. And if they just installed Nix, the package manager on those systems, and then they could take advantage of things like DevM, which makes it really simple because it just, like Wes says, is handling a lot of the most basic stuff to get that environment working for you. And, you know, if you, like Wes said, if you want to take the flake route, it makes it pretty easy to integrate with your system. Yeah, you don't have to use their custom tooling if you don't want to. They did just have some neat efficiency updates in terms of caching evaluations to make your rebuilds faster. So there's some
Starting point is 00:19:28 reasons right now to maybe want to use their tooling. Other things I like though, so it kind of started as a Nix native dev shell on steroids but it's really now I think targeting a whole sort of dev stack. So they've added stuff
Starting point is 00:19:43 like, well one small neat one is Durand integration. Durand is a handy little thing you add to your shell. And when you go to a folder, it knows to look for certain hooks in that folder. So in this case, all you do is you CD. If you set this up, you CD into the thing and the DevM shell will immediately activate. Oh, that's so nice. Yeah. So that's well supported.
Starting point is 00:20:02 So you just have a directory. You're in your regular old terminal. You CD in there, and the dev environment is triggered. Whoa, that's great. You know, this is a product. You and I know of companies that make products like this, too. Yeah, there's plenty of competitors. Yeah, there are entire companies that have lots of VC money to make this product. And this is as good as it gets right here,
Starting point is 00:20:27 and it's free. There's also services, which is basically sort of like NixOS services, right? So you can just turn on a Postgres server or a Redis server or a ton of common services are supported. So you need to dev one of those because that's what you run abroad. That makes it super easy. Yes. Under the hood, that's powered by by processes which are kind of just like a lower level version services are stewarded for you processes as a way you can kind of run your own process and i think by default it uses something called process compose which is like a lightweight little process runner i kind of think of it as like right so you were talking about nix the tooling solves a lot of the problems that containerization does in terms of isolated libraries.
Starting point is 00:21:06 These are the only dependencies you can see. So when you don't need to solve that part anymore, maybe you just want a thing to run your stack, to run a few different programs at once, and that's where Process Compose comes in. And does that hook into the host system, D? I think it's like a Go program that runs on its own and supervises whatever you tell it to run.
Starting point is 00:21:26 So, you know, you can have that running in your environment. Right. Oh, that's cool. I haven't tried it, but I think there's some support for like dev container configuration
Starting point is 00:21:33 and running containers in your environment if you need to. So there's just, there's like all kinds of hooks. It works with, if you have a.env folder that you want to source
Starting point is 00:21:43 into your environment, it supports those. There's a couple of limitations, but it supports that out of the box. Jeez. It really does seem like it makes life simpler. Yeah. And like, so for, I've been building some Clojure apps with it. Yeah, I love it.
Starting point is 00:21:55 You've been using this in production for some of the stuff you're building for us. And it's nice because it's like when you use the Devon setup on the dev side, it kind of just puts me in an environment where, you the jvm is available and closure is good to go and it feels very close to just how it would setting up a like a more imperative environment on a bungee box and it doesn't really conflict or get in the way with then i use you know another tool that helps package closure apps for nix and that builds me like an actual nix package but they don't you can make those things integrated but you don't have to and you can get a lot of flexibility to kind of keep things closer to like you don't, you can make those things integrated, but you don't have to. And you can get a lot of flexibility to kind of keep things closer to, like, you don't have to make everything forced into the next way if you don't want to. And Devon can help kind of like bridge that gap. So I have a straw poll that I would like you to take, Brentley, and everybody listening live, and maybe you too, Wes.
Starting point is 00:22:42 Do you use any tools to help you move between machines? Like you and I have talked about that KVM-like project that lets you move your mouse and keyboard between computers. I think it's time in the studio to change things up. So I am crowdsourcing all the different tools you use to move files, clipboard, mouse, keyboard, anything that you use between your machines, i i'd love to be able to be logged in on this computer to say like a google account be able to copy something like the url to a meeting and paste it on a different computer without having to be logged into google over there and those types of things so i put together a straw poll which we will link in the show notes
Starting point is 00:23:20 and i also just put in the live chat and it's a simple yes no, no. Do you use any tooling? If you do, would you boost it and tell me what you are using, what has worked and what hasn't worked? Doing a little survey because I think it's time to do some workflow improvements. And I also when I think about like integrating it with Tailscale, so maybe some of the same toolings installed on my nodes at home too. Oh yeah.
Starting point is 00:23:39 Could be a whole new Paul Game West. 1password.com slash unplug. That's the Wes. 1password.com slash unplugged. That's the number one, then password.com slash unplugged. Head on over there and check it out because I have a question for you, and I think this probably is a problem that affects most, if not all, IT. Do your end users always, and I mean always without exception, work on company-owned devices and use only IT-approved apps? Let's be real. That's impossible.
Starting point is 00:24:09 Even when I ran a tightly controlled Windows terminal server, people would still find ways to sneak applications on there. It's like herding cats trying to get everyone to stick to company-approved applications, and now especially devices. Staff are trying to use their own phones, their tablets, their laptops, maybe even their smart fridge. devices. Staff are trying to use their own phones or tablets, their laptops, maybe even their smart fridge. So the question is, how do you keep your company's data safe when it's sitting on all these unmanaged apps and devices potentially? Well, 1Password has the answer to that. It's extended access management. 1Password extended access management helps you secure every sign in for every app on every device because it solves problems that traditional IAMs and MDMs just can't touch.
Starting point is 00:24:47 And it's really, truly more flexible. It's security for the way we work today. And the best part, it's generally available for companies with Okta, Microsoft Entra, and it's in beta for Google Workspace customers. So there's more people that can use it than ever. It really helps reduce the friction
Starting point is 00:25:02 between IT and your end users. So check it out, support the show. You go to 1password.com slash unplugged, the number 1password.com slash unplugged. Well, I just came back from, I don't know how many trips I came back from, with a whole bunch of photos and videos. And that got me thinking, photos and videos. And that got me thinking, I have hesitated to use some of the more modern photo collecting apps that you boys have been suggesting to me, mostly because, well, image seems like it's pulled ahead these days. We've talked about it for, I don't know, on the show, three years, something like that. We've got a bunch of episodes where we've specifically
Starting point is 00:25:43 talked about image. but i want to get something going but i've always hesitated chris because every single time you mention image you say oh yeah but almost you know every time i update i got to do a special kind of thing and i know my personality saying that yeah i know for my personality like that's not for me i'm just gonna you know i'm gonna install it it's gonna three weeks, and then it's just going to be broken. Yeah, you're more of an all-in-one snap kind of guy, right? Hey, no. But I'm curious if there's been any, I don't know, updates in this area.
Starting point is 00:26:15 Do I have some kind of wrong picture about this whole landscape? Well, Image has seen a lot of development and progress since we last talked about it on the show. We have covered it. We've stayed pretty current on self-hosted. But big picture is they've gotten some funding now. So they have a couple of full-time developers. And it's one of those pay-if-you-like-it models. It's free.
Starting point is 00:26:36 But, you know, you got value from it. Can't get back to them. And I would say the breaking changes is a lot less now. You know, when I was really kind of complaining about it, it was like one of the last big ones. Of course, as I say that four days ago, they released 1.117.0, and there is a minor breaking change in that update. The image section of the config file structure for thumbnails and previews has changed. So if you use a config file and you set image settings in there, which I don't, they're going to be ignored until you use the new structure.
Starting point is 00:27:10 So as breaking changes go, not that bad. Not that bad. But image is one of these applications that I deployed as a Docker image. And one of the reasons was is because there's so much to it, right? Not only does it have, of course, a database and it has to have massive file structure storage but it also has some machine learning components in there it's doing back-end processing it has a web server so it's the it was the exact kind of thing back in the day that i would deploy as a container because i didn't want all that stuff spewed all over my system and if you think about a project that changes every couple of weeks and you've got to update it and you have to keep it current with the mobile app which is no big. But you kind of if you update the mobile app, then you kind of have to update the server and vice versa. So you kind of are compelled to
Starting point is 00:27:51 keep up with it, especially if you go too far, then, you know, there's a lot of changes that you might have to deal with. That's gotten better, but it still remains a core, I would say, thing to consider about images. It's a big a big project it is a full-on google photos killer right they're doing face recognition they're doing they're doing geotag stuff they're making it searchable they're giving you a fantastic fast app to review your photos because you know like that's a big problem when you roll your own photo backup is if what do you use to show people your photos app there's a lot of gallery apps but does it tie in with your backup? Image does that. It's a complete web front-end, app front-end, and backend server backup solution that does all the nice features like face tagging and stuff.
Starting point is 00:28:33 It even has an interface that looks pretty familiar if you're coming from some of the big players in the space. The thing is, is it is such a massive project. It's probably the exact kind of thing you're not going to be installing RPMs and devs of. You're going to have to find another approach. And while the container approach has been fine, for me, the line's kind of like if I ever have to like shell exec into the container and fix it, like that's kind of a knock against that approach. And if I'm only using it in a Docker container because I need some middleman to manage all of the software and all the dependencies this thing has? Well, that makes it another candidate. Maybe I don't need a middleman managing that software for me anymore. Maybe there's a better way to package it. So, Wes Payne,
Starting point is 00:29:15 I think the question that has been on my mind is, will it nix? You know it will, baby. So you have a brand new baby image instance up and running. Yeah, that's right. I've tried it a few times over the years since we first started playing with it, since it first came out, I guess. But I have never really quite invested. But when I saw that the long-awaited Nix packages merge for a, I think the package had been there, but like for a first-class NixOS, you know, service, predefined for you, ready to go, had landed, I knew it was time.
Starting point is 00:29:54 I needed to give it a try. So does this mean like a bunch of stuff is already sort of defined for you, like a lot of the legwork has kind of been done for some of the individual, like identifying all the packages, the dependencies, and some of the basic configuration? Oh, yeah. So, okay, it is only on unstable right now. So I did have to switch the server I was testing this on to unstable, but, you know, that was super easy. I'm surprised you weren't already. Yeah, well, I don't know.
Starting point is 00:30:19 I've been defaulting to 2405 until I need to change. And, you know, oftentimes you can just import stuff from unstable too. So lots of flexibility. But I switched it to Unstable and then I did services.image.enable equals true. And then because I was serving this over a mesh network, I did services.image.host. I changed that from just listening on localhost to listening elsewhere. Yeah, man. And that was it.
Starting point is 00:30:41 That's it. Wait, what? Yeah. Two lines? Two lines. Two lines to get it working? Mm-hmm. I figured I should try this before the show.
Starting point is 00:30:49 And yeah, those two lines. It sounds like I didn't even need one of those lines, actually. Here's a picture of your dog on my server. Oh, my God. That's Levi. That's amazing. Yeah, all I have so far are some pictures of him and then some AI-generated penguins. So have you connected the app to it yet? did yeah and that was super easy gosh see that
Starting point is 00:31:09 is so great and honestly and did not complain about no ssl or anything and and then if you just combine it with like a mesh vpn like tailscale or nebula or or uh what's the other one that we love netbird netbird you know you tie them all you know and then you tie that all together you never need to put this thing on the public internet, and you could have your phone backing up to it wherever you're at. And then two lines in a Nix config to get it working. But what is it all doing in the background?
Starting point is 00:31:34 It must be pulling in, like, yeah, it's got to be, I see here, it's got the database set. Yeah. Creates a user. Yeah, opens up the port, sets up Redis. Yep. Yeah, sets up database. Defines the mediais. Yep. Yeah, it sets up database. Defines the media location.
Starting point is 00:31:46 Yep. Yeah, so by default, that'll be var lib image, but you can make it yourself. It'll create it if it doesn't exist, and you can customize that path. And then this relies on the image package too, which I know builds all the JavaScript and builds the Go module and handles all those bits. Here's what I'm proposing. But it also includes handling the machine learning stuff. That's enabled by default,
Starting point is 00:32:07 so you don't have to skimp out on that either. Good point. Yeah, I'm glad you mentioned that. Here's what I suggest. Somebody out there that has an Ubuntu or a Debian or an Arch server, try this on your box. Install Nix, the package manager, and we'll have links in the show notes.
Starting point is 00:32:24 And if you want to try out Image, try it this way. Because much like NextCloud, we find some actual improvements just taking Docker out as the middleman, especially for projects that move kind of quick and have lots of bits and need access to hardware in multiple ways.
Starting point is 00:32:39 Because in the case of Image, obviously disk, right? Because you've got to store the picture somewhere. And obviously the network. and obviously the GPU. So these are all kind of things that are totally doable in Docker, but why not just get rid of the Docker and just use the native system tooling? So now I've just got to figure out how I'm going to migrate my Docker instance to this. I think this is so clearly the way to go. Well, it sounds like a fun post-show task.
Starting point is 00:33:11 I just want to take a moment and thank our members and everybody who boosts into the show. You know, we're almost two years into when the ad market really started to shift. We're one year into being a really deep winter. And the value for value model has been an incredible transition for us. Keeps the content free and accessible to everyone so we don't have to come up with crazy paywalls. So you get the show for free. And if you find it valuable,
Starting point is 00:33:33 you send a little something back our way. It's kind of like a voluntary thank you for the time we put in or the effort we put in or the value we've brought to you. Maybe telling you about a tool or a project or getting you excited about tech or something that's made you go, all right, I'll try that out, like maybe NixOS or something else. I don't know. If you found some value there, we just ask that you send a little back,
Starting point is 00:33:54 either in time, talent, or treasure. The Boost lets you do it at your own pace, at your own amount, the cadence you prefer. The Membership lets you put it on autopilot, and then you can just sit back and know that you're supporting the show, even if you don't catch every single episode, etc. And I did recently launch an annual membership for those of you who like that kind of thing. I'll put a link in this week's show notes too. It's for the whole network. It's the Jupiter Party membership, as we call it, and you get one month for free when you sign up with the annual version. I know some of you prefer month-to-month too, so of course we have that just for the show at linuxunplugged.com. You can find more details at our website, of course, or you'll find a link to the annual membership there in the show notes. But if you just prefer to do it your own way, you know, like you're just your own Wild West individual out there on the Internet,
Starting point is 00:34:41 blasting value across the Internet, you can boost into. I like Fountain a lot. I think it makes that process really easy. Cast-O-Matic is fantastic. Individual out there on the internet, blasting value across the internet, you can boost into. I like Fountain a lot. I think it makes that process really easy. Castomatic is fantastic. And if you're ready for an adventure and you want to do the self-hosting side of this, Albie Hub makes it really approachable. Linux box with like a couple of containers and you're done.
Starting point is 00:35:01 That's called Albie Hub. And that's a pretty neat way to do all the boosting stuff on a totally self-hosted infrastructure. Anyways, I just want to take a moment and say thank you to everybody who supports the show. Now, back to the program. Well, I want some Meshtastic updates. You boys have been doing some crazy stuff since I've been gone, and I want to know what the current state of our Meshtastic meetup is. We're getting really close. I don't know if we've got, we'll see.
Starting point is 00:35:28 I don't know if we've gotten enough takes or enough bites on a meetup, but it's like next weekend. And Jeff is getting, I imagine, ready to pack up. And he's here today in the mumble room. And he and I in the pre-show were chatting about just like some of the things you don't think about when you're trying to prepare a segment where there's hardware involved. He's been going through different types of batteries, trying to figure out which ones are best in outdoor environments where maybe there's some segment where there's hardware involved. He's been going through different types of batteries, trying to figure out which ones are best in outdoor environments where maybe there's some heat, there's some cold. He orders a new set of batteries.
Starting point is 00:35:50 They arrive in his mailbox and a thief walks by and steals them. So Jeff, what's the battery situation? Do you have like a plan B for batteries that you're trying to replace? Plan B? I've got a plan C. Yeah, it's been rough. The batteries I ordered, I was really looking forward to because they weren't only going to give us a bit of a capacity improvement, but they can take a much bigger charge and they're unmanaged. These were, in my opinion, they were going to be the fix for some of the low solar charging I was getting. solar charging i was getting so they got stolen that was a pretty big crush i ordered replacements but they're coming from across the country and they're gonna show up the day i leave so uh plan c i ordered oh i on top of that i also ordered some cheap amazon ones just so that i
Starting point is 00:36:39 can change the battery holders out because these are bigger 21700 cells and rather than 18650s so yesterday i swapped one of them out put the cheapos in and they're terrible as expected but that's just kind of getting me halfway there right we have the holders ready to go in one of them and if i need to go back to the 18650s i only need to change one of them if we're going to upgrade to the 21700s i still only need to change one of them. If we're going to upgrade to the 21700s, I still only need to change one of them. There's the gamble, right? Now, plan C was to order another set of batteries, 21700s. They're a little bit lower capacity, but have the better charge rate.
Starting point is 00:37:18 So we're going to lose about one watt hour. No big deal from the 18650s. And I'm shipping those directly to the studio like I should have done anyways. Yeah. I'll keep an eye out. Yeah. That makes sense. One watt hour for faster, better charging. Yeah. I take that trade. Yeah. It's important to have the faster charge rate. I think particularly up there, you know, when the clouds break, we want to get as much of that as we can. Yeah, isn't that the truth? What I like about the work that you've been doing is you've actually used these things.
Starting point is 00:37:52 You've had them outdoors. You've had them actually in production for a bit, discovered this component doesn't actually work great. Got to swap in with this. I mean, these batteries are an example of that. I thought I had a good component. If you read some forums online, these seem like they're fine. But in practice, these aren't actually the right batteries to use with this. I mean, like this, these batteries are an example of that, of, you know, I thought I had a good component. Like if you read some, some forums online, these seem like they're fine, but in practice, these aren't actually the right batteries to use with this. Like, that's what I'm really digging about the pre-work that you've done for us here. That's why you got the upgrade to a
Starting point is 00:38:15 producer, Jeff, because it really is, um, somebody, there was another suggestion for another title. I forgot what it was. Oh, that'll come in the boost segment. Okay. All right. Good. But I'm really grateful for that because we're going to be able to take a lot of that knowledge just right into the segment. So weeks, months, really? How long has it been now? Oh, shoot. Yeah. At least a month, month and a half, maybe. Hey, his job is doing Meshtastic, not counting months. Okay. Sorry. So I have a couple of updates. I created a Meshtastic matrix chat room, which I will have linked in the show notes, or you can find at bit.ly slash Meshtastic Matrix. And it's next episode. So I think we're about probably like roughly about 150,000 sats or so short of our goal to cover Jeff's travel costs to get up here to help us cover this in person.
Starting point is 00:39:04 So if you'd like to help us get there and you have any questions, like if you want to hear anything specifically about Meshtastic hardware or other general questions around this and you want to help support Jeff get up here, he is in the splits for this week's episode and that will go right to him in his own wallet and that'll help with his travel costs. It won't help with all the costs he's put into this, but it'll help with at least getting him up here and back home, hopefully. Which we'd be grateful for. Jeff, is there any other Meshtastic updates we should cover before we move on? No, just want to echo, yeah, please send in some questions and ideas and suggestions.
Starting point is 00:39:35 If you have been doing the MQTT stuff or have been using this in a certain way, software side of things, I want to know about it. I really do. Check out the Meshtastic room. Let us know. I haven't done much on the software side at all. I'm running these things completely independent with no MQTT or anything like that. And I'm really curious how people are getting
Starting point is 00:39:56 along with that stuff. Yes, please. Plus one to that. I'd love to hear how people's configurations if they're already using it. That could be very insightful. All right. Thank you, Jeff. And now it is time for the boost. Oh, we got some boost, boys. And I'm looking forward to this because I know there's a few things in here
Starting point is 00:40:14 that it's going to get us chatting. And our first baller boost comes from The Dude Abides with 240,920 two-sats. Hey, Richard! 922 sats. Hey, Richard! Coming in with Fountain, he says, hey-o! It's been a long time since I boosted, but with
Starting point is 00:40:34 a newborn in the house, it is hard to keep up. Congratulations, man! Anyways, fun listening to you gents. I'm now finally caught up. It takes some time because I'm listening to live episodes at 1X. Oh, bless you. Wow, yeah. This is a live boost, by the way.
Starting point is 00:40:51 Here's to help Jeff come to you and also contribute to Chris's health care. We need you healthy, dude. P.S. The sats amounts is the date my daughter was born. Aw, September 22nd. That's so great. That's close. That's in the range of my wife's birthday. September is a great birthday month because temperatures
Starting point is 00:41:08 cool down a little bit, but it's still nice enough to do outdoor stuff. You get fall colors. That's really great. Well, thank you, The Dude Abides. We really appreciate that boost. We got Bite Bandit coming in, too, Wes Payne. Yeah, that's right. 136,403 sacks. Hey, no
Starting point is 00:41:23 slouch either. I hoard that which your kind covet. Doubly so, because this is across three boosts. Okay. Hey guys, first lot boost and first boost funded with my own node. That's so cool. Congratulations. I'm a member and I love all the shows. I'm so down for a Jeff-tastic meetup. This is a zip code boost. Wes and his map will be able to tell you I wouldn't have too far to travel,
Starting point is 00:41:46 so I'm happy to help if there's anything I can do. Okay. I don't have any mesh-tastic nodes up and running at this point, but I have a lot of stuff left over from my experiments, mostly Haltex and RAK. The antennas my Haltex came with were trash. After improving the antenna, my distances went way up. I have two large antennas and have permission to permanently affix a node on the roof at my work.
Starting point is 00:42:09 Do you want to take the next one and I'll take this zip? Yeah, sure. That's so cool. Getting permission from the boss. The zip code where I started listening. Here it is. I'm a full-blown Nix junkie now because of this show. Everything in my house is slowly becoming a NixOS box.
Starting point is 00:42:24 I love the technical content. I'd be happy to do a survey if you guys asked. I run my own NixCloud, my own Noster Relay, and a NixBitcoin node. The first boost from my own Lightning node, by the way, all routed through a cheap Linode. My first episode was the ShuffleCake episode where the audience was invited to SSH and find a secret.
Starting point is 00:42:45 Oh yeah, that was a lot of fun. We should really do that again. We need a good attendance list. We'd have to schedule it ahead of time. So yeah, the audience SSH'd into a box and found the secret that we'd love there. I love the audience interactive content. I was also in the Olympia area
Starting point is 00:43:00 and I love the Linux suicide challenge. That was insanely fun. Keep up the amazing work. Oh, I'm glad you're at the... I think he meant to write at the Olympia meetup. Yeah, so that was fun where if you type the wrong command, it destroys your entire Linux box. Ruh-roh.
Starting point is 00:43:16 Yeah, yeah. And he also was asking for a little bit of mac and cheese on this boost. So while you get the location, I'm going to give him a little mac and cheese. Put some macaroni and cheese on there too. So while you get the location, I'm going to give him a little mac and cheese. Put some macaroni and cheese on there, too. You bet. He gives also a Nixie, which appears to be a pre-configured Hyperland config. He says, I haven't personally tried it, but I know Chris has been mentioning wanting to try it.
Starting point is 00:43:34 Oh, yeah. Looks like it's Nixie's Hyperland NixOS configuration with home manager secrets and custom theming all in one place. Oh, whoa. That does sound probably a great diving off point if you want to get started. That was worth a mac and cheese for sure. Yeah. Okay.
Starting point is 00:43:47 So let's start. Let's do reverse order. 3-1-3-2-2 where they started listening in Pooler, Georgia. Look at this. The guy who brought it like this old school calculator. This is adorable. Yeah. Well, Abacus or Bust.
Starting point is 00:44:02 Or Chatham County? Savannah. Oh, Savannah's in here too. Oh yeah. Okay. And then now, uh, nine,
Starting point is 00:44:08 eight, one, one, two is a Ardrier, Seattle, Washington. So yeah, not too far to travel at all.
Starting point is 00:44:15 Yeah, really. Okay. Well, thank you for the boost. That's great. Okay. Plus one.
Starting point is 00:44:22 Uh, we will see plus one on the mesh testing meter. We shall see. Oh one on the Meshtastic meetup. We shall see. Oh, no. And now Brent gets to dive into some debate around Jeff's new title. Yeah, there's a boost here. 100,000 sats from deleted. Hey-oh!
Starting point is 00:44:34 That which your kind covet. I'm not sure if Jeff can be called a producer. And then links to a Ren and Stimpy clip. Maybe he's a correspondent or a contributor. Either way, I'm excited to see what he can show us about Meshtastic. You know, typically, I think a producer is a financer. Although he spent enough money on the gear, he could probably consider him that. But maybe correspondent or Meshtastic correspondent.
Starting point is 00:44:59 But he does more than that, so he's a contributor. Contributor Jeff doesn't have the same ring as Producer Jeff. CJ is not a bad nickname, though. Can we call him just like Jingle Jeff? Well, Wes has got the soundboard guy on lock. I'll tell you what. Jeff, do you have an opinion on your name? Do you think Contributor Jeff or Producer Jeff?
Starting point is 00:45:19 No, it's going to be quite weird. Yeah, Mesh Jeff might be okay. It would be quite weird being on a meetup, though, and people who I am if it if my name tag doesn't say listener Jeff well we just got to get you a new name tag or you could wear two well what you could do is get put right listener Jeff on there cross out the listener and then write producer like above it or Jeff formally known as the artist formerly known as oh okay well we'll continue the debate deleted, but I just like the I think I like the way producer Jeff rolls off the tongue. Aaron also came in with a hundred thousand sad. I hoard that which your kind covered.
Starting point is 00:45:53 You guys are on fire this week. Thank you. Aaron writes, I grew up on a Mac, but was using Windows until a few years ago for gaming. Well, I keep hearing how far gaming has come on Linux. Pair that with Mac OS getting worse and my internal loathing of Windows, and you get me diving headfirst into NixOS as my daily driver. Whoa, that took a turn. Nice.
Starting point is 00:46:15 Yeah. Wow. Yeah. This will be a journey since it's my first Linux desktop experience. Oh, boy. Double lease. Amazing. Good luck. Good luck. Hopefully things like DevM and DistroBox are helpful. Thank you for the continued 10 out of 10 episodes across all the JB podcasts every week.
Starting point is 00:46:31 Cheers, gents. Well, cheers to you. Thank you very much, A.A. Ron. But Chris, I'm surprised about your reaction because you've been saying this is, you know, NixOS is maybe the perfect thing for someone who doesn't have all that Linux baggage. That's true.
Starting point is 00:46:46 That's true. If you're coming in fresh to Linux, it's not that big of a hurdle compared to just learning Linux in general. I worry about the thing that we tried to help for today is people want to just do something the way they've always done it. And you just got to think of slightly different paths sometimes with Nix. But it's a it's that's a it's a good thing not a bad thing the i like i was saying earlier the isolation of os and project on it doesn't matter what dish you're using it's really something you should strive for i mean it's kind of harkens back to the first docker days too right like when you're
Starting point is 00:47:16 first sort of trying to containerize a project that was not built for it or had in mind you find all the areas the pain points and the same is true for nix you're like oh gosh my like build process is you know downloading a bunch of stuff that could change out from under me, and I'd have no idea, and Nix won't let you do that. Yeah, yeah, I hope you enjoy it. Please, please do keep us updated on how it's going. It's a pretty big land shift for macOS. Cusuria boosts in with 45,000 sats.
Starting point is 00:47:43 Priority clearance recognition alpha one. I will say, as a security professional, stuff like the cup's vulnerability is a two-sided problem. On the one side, we tend to be terrible at people skills, so we sound like the boy who cried wolf for Chicken Little, which makes us, I think security people, easy to brush off. Then we are really quick to scream, I told you so, and give the means to exploit these bugs anyway.
Starting point is 00:48:04 On the other side, though, other people running projects, and give the means to exploit these bugs anyway. On the other side, though, people running projects tend to take the work researchers do for granted and can be quick to brush things off when they don't understand them, which is a huge problem because a lot of these bugs exist in the realm of, why would anyone ever do that? Yeah, it's very true. But it turns out people do dumb stuff or don't realize they've left it configured like that. Yeah. We were talking with the members in the pre-show that Akamai did a little scan and they found more than 198,000 devices
Starting point is 00:48:30 that responded to the scan. Roughly 34% of those could be used in DDoS abuse, they say, about 58,000. These are just machines that have cups listening on the open internet, 198,000. You shouldn't do that. It's ridiculous. No, don't do that. Don't do that, people. All right, 198,000. You shouldn't do that. It's ridiculous. No, don't do that.
Starting point is 00:48:46 Don't do that, people. All right, boost number two. Here's a Jeff-tastic boost. Hey-o. I want to see more nodes on my repeater. Wow, okay. Yes, let's do this. Also, another one here for the FreeBSD escape hatch.
Starting point is 00:48:59 Ah. And then some more feedback for us. If you want to get more professionals to use Linux, you need to attack corporate IT. Everywhere I've worked, there's a massive pent up demand for Linux and IT becomes a department with the most common reasons being. Oh, I see. We don't have the skill sets for it. Our software isn't designed for it.
Starting point is 00:49:18 It doesn't support it. Yeah. Yeah. I'm working on converting my third company to let me use Linux as my workstation. Yeah. Sometimes you really got to put in the cell and like, look, I know how to, you know, I'll update it. I'm going to, Wes, have you ever put it in like the I'll only work here if context? Like, have you ever done that move? No. I mean, I might consider for the, you know, if there was a, if there was a job that was really seeking you out and you were a perfect match and you had leverage, you could. And also, I tend to try to draw a pretty clean barrier between this is my work tech stuff.
Starting point is 00:49:51 And while I definitely prefer a Linux, it's like I'm only going to use it for work things on work hours. So I can make do with the work Mac that they ship me or whatever if I have to. Yeah, yeah. Thank you, Kirsten. I have once switched a machine to Linux and then run the Windows that it should have in a virtual machine. So I don't know where that falls.
Starting point is 00:50:11 Definitely done that. You know what, Curious, this reminds me of an old story if I could share really quickly. Stay a while and listen. There was one time where I was a consultant and they wanted to hire me full-time. And so I had a little bit more leverage
Starting point is 00:50:22 because they actively wanted me to work there. And I made the requirement that they buy me a system 76 laptop oh that was i think if not the first one of the very first laptops from system 76 that was ever ordered outside of friends or family of system 76 early days and i it was me mandating my employer buy that for me if they wanted me to work there and they did and it was a great little machine. And it got me using Linux in IT, which was fantastic because then we used it throughout the infrastructure. The whole back end became Linux.
Starting point is 00:50:57 We are slowly, I think slowly is tricky, but if there's bandwidth and support for management for corporate IT to try to find solutions, I think we are seeing more solutions in terms of end-user, end-machine software that you need is mandated by the security department or whatever actually working with Linux, including the one-password product formerly Collide. Yep. That does. It is becoming more common. Yeah. That's nice.
Starting point is 00:51:24 Kangaroo Paradox sent in 30,126 sets. I am your father. Great show. I just wanted to help Jeff build that mesh. Yes. I learned about the LoRa protocol in school and thought it had promise. Meshtastic seems like the way to go. I'm a little far to help you guys set up the mesh myself,
Starting point is 00:51:43 but looking forward to hear your progress in the coming weeks. P.S. This is a zip code boost, and a not-so-subtle hint, you used the accent of my fellow countrymen for your boost intro clip. Oh, okay, Wes. I don't know why you fold it up every time. I know, I'm going to give myself a paper cut because I'm just whipping this thing out. You're going to give me a paper cut. I'm really fast at folding it,
Starting point is 00:52:06 though. Are there still ads this week? Yeah. Yeah, I don't know how they get in there. I think you print it every time. I do, yeah. I just cut them out and stitch it on top. It's a bit of a pain. Okay, 30126 appears to be a postal code in Cobb County, Georgia, with cities
Starting point is 00:52:22 like Mableton and Smyrna. Well, you'd probably say that totally different. Well, shout out to Cobb County, Georgia, with cities like Mableton and Smyrna. Well, you'd probably say that totally different. Well, shout out to Cobb. Wait, I'm not convinced this is... Wait, if you go with the hint here, the hint says, you use the accent of my fellow countrymen in your boost intro clip, and I'm thinking it's,
Starting point is 00:52:38 you know... I can't believe you're challenging the paper map. Oh, yeah, okay. You're challenging the paper map. Well, he's got to flip it to the other side, I think. Well, I... Okay, let's see. Wes, you have it upside down. You're challenging the paper map. Well, he's got to flip it to the other side, I think. Well, I... Let's see. Wes, you have it upside down. You're right. Wes. Georgia looks just...
Starting point is 00:52:49 Let's find out. Okay. All right. Jeez. I did not... Whoa. Okay. All right.
Starting point is 00:52:57 That's it. Oh, yeah. Okay. Here we go. Good call, Brent. I think you get the map next week. No, I don't want it. Yay! There's also a 3-0-1-2-6 in France, which took a bit.
Starting point is 00:53:10 You got to clear all the Georgia results out of the map because the map was made in Georgia. There you go. That makes a little more sense, doesn't it? It does, yeah. All right. Well, that's awesome. Thank you, Kong. I really appreciate that.
Starting point is 00:53:25 Odyssey Western, our buddy Odyssey, comes in with 27,222 sets. Never tell me the odds. In response to last week's Baller Boost with Hank, there's another Linux conference coming up for Seattle called Seagull, happening next month on November 8th and 9th over at the Washington State University. I'd love to hear you guys cover it as well. You can find it at cgl.org. That's S-E-A-G-L.org. Also, another boost to help producer Jeff up there. I really want to drive over there as well, but would need a couch to crash on since it'd be tight on the budget.
Starting point is 00:53:53 Or I could camp in the backyard of the studio. Well, okay, so that's a plus two for the meetup? I wonder, okay, so I... Oh, there's an update, though. Oh, is there an update? Bum, bum, bum. I didn't realize it was going to be this weekend. Oh, can't so I... Oh, there's an update, though. Oh, is there an update? Bum, bum, bum. I didn't realize it was going to be this weekend. Oh, can't make it.
Starting point is 00:54:07 Oh. Still excited for Producer Jeff, either way. We appreciate that spirit, though. Yeah. Thanks. Okay, so back down to plus one. Distro Stu is boosting at you, actually at us, with 20,000 cents. The traders love the vol.
Starting point is 00:54:22 Brent, I'm not sure if you are still keyboard curious but i just gave a talk at work that may interest you oh that is sweet yes i am still keyboard curious uh i was so kindly given a keyboard well i got many offers from all of you for like keyboards you made uh in-house that you have since you know replaced and you for like keyboards you made in house that you have since, you know, replaced. And you're like, hey, you can have this thing. So thank you for everyone helping me with the keyboard journey. I do have. Somebody offered you their bespoke keyboard.
Starting point is 00:54:56 I want that. You didn't say yes to that. I said yes, but have not been in the area. Yeah, that sounds like you. OK. Well, this presentation looks great. I would definitely do. We'll have been in the area to collect it. Yeah, that sounds like you. Okay. Okay, well, this presentation looks great. I would definitely do... We'll have it in the show notes.
Starting point is 00:55:08 And I'm just skimming over the slides here, but there's like an amazing array of like all the variety and diversity and keyboards on display here. Had no idea, did you? That's great. All right. Well, we'll pick back up on that in the future. Producer Jeff comes in with 12,100 sats.
Starting point is 00:55:24 This is the way. I've been so busy I forgot to boost about the Sacramento meetup we had. It went great. Six awesome folks showed up to geek out about Linux and tech. And yes, hybrid sarcasm's ghetto instance was killer. What? Gather.io. Oh, Gather.io.
Starting point is 00:55:39 You used the Gather.io. Yes. No login required. Ah, good to know. Very easy to make the event. Add a photo. Send a link. Everyone who showed up said it was very simple to RSVP as well.
Starting point is 00:55:49 I really liked it. Okay. That's good to know. So that's an alternative to Meetup that we've been kind of considering. Thank you for testing that. Indeed. PJ. Bobby Pinn comes in with 4,000 cents.
Starting point is 00:56:03 But that's not possible. Nothing can do that. I would like to see a category for obtaining or storing sats for this year's tuxes. For newer people to Bitcoin, like myself, this could be useful to see what projects have the community around them. Right now I use Strike and Fountain. So he's asking for like the top ways people get their sats, I think, is what he's saying. Get and store. So I guess like wallets and then, yeah, sats sources.
Starting point is 00:56:34 He should check out This Week in Bitcoin because that's a pretty common topic on This Week in Bitcoin. That could be useful. We'll have a link? Yeah. Oh, yeah. Okay. I'll read this one too because this is a proxy boost by me for Magnolia Mayhem. Okay. Well, you know, Magnolia Mayhem. Okay.
Starting point is 00:56:49 Well, you know, Magnolia couldn't boost at the moment, and I was having to be by the boost machine, so it was just- So it's a Rhoadux from Magnolia via you. Gotcha. Yeah. Hey, Chris, Wes, and Brent. Yeah. It looks like there was some confusion in last week's episode in the boosts. React OS isn't the Rust first OS, that's Redux OS.
Starting point is 00:57:07 React OS is like if Wine was an entire OS to itself. Right. I can't believe none of us caught that. I noticed it, but it was by the time we'd already moved on to the next boost, so there wasn't a great opportunity, correct? Yeah, I thought Brent was going to be doing the fact-checking. I was jet-lagged. Oh, no, wait.
Starting point is 00:57:30 That doesn't really work out in timing. I'm glad that we got that caught, though. Really, we should try both, though, is the thing. Yeah, ReactOS, I think, though, is... What did we call it? We called it Redux or something. Yeah, so it's ReactOS. Okay, I see. ReactOS isn't the Rust OS. Redux something. Yeah, so it's React OS. Okay, I see.
Starting point is 00:57:46 React OS isn't the Rust OS. Redux is. Yeah, okay. I just got it messed up again. They're very close together. That's why we need, yeah, I bet if we use them, it'd be more cemented in our mind. That's right.
Starting point is 00:57:54 They're just like projects we read about, but they're not ones. So Redux, R-E-D-U-X-O-S. And that's actually, I think, an O. A further correction to the corrections, please. I'm going to name it. I need a vacation. I'm out of here. Yeah, I think, an O. A further correction to the corrections page. I'm going to do that. I need a vacation. I'm out of here. Yeah, I'm out of here. Yeah, Redox-OS.org. R-E-D-O-X. Unix-like, general purpose, microkernel-based operating system written in...
Starting point is 00:58:17 What'd you say? Written in white. No, wait. And gentlemen, to further prove that our memories are terrible uh we did an episode where we touched on redox os uh no yeah we played with it a little bit i remember specifically doing that so are you telling me we've actually run it i think you need a vacation oh no i have literally no recollection of that at all oh no oh that's bad well that means the next time you check it out it'll be a fresh review this is it's a weekly show okay we got 583 episodes under our belt it's a weekly show you do a few other shows that's true so uh is that can i can i have that as an
Starting point is 00:58:55 excuse i don't know oppie 1984 comes in with 4 000 sats coming in hot with the boost! With a Jeff-tastic boost, and congrats on the producer promotion, Jeff. Yeah, people liking PJ getting his upgrade. I'd say it's well-earned, really. He probably earned it at LinuxFest, let's be real. It's true. Yeah, or maybe the 10th time he saved LadyJupes or something. But, you know, this has been real content for the show.
Starting point is 00:59:20 Yeah, he keeps earning it. We only have so many titles to go around. Thank you, Oppie. Adversary17, yeah, that's how I say it. Adversary 17 comes in with 11,000 sats. B-O-O-S-T. Clever title. I kept seeing it thinking we had the Grapes of Wrath. Now we have the Cups of Disaster.
Starting point is 00:59:37 Yeah. Oh, and he's listening live today via Podverse as well. Awesome. Hey, adversaries. Adversaries, nice to have you. Monty 33 comes in with a row of them ducks. Attention
Starting point is 00:59:49 listener. If you are on the fence about becoming a member, the bootleg feed is completely worth it. The show planning discussion, side banter, and extra content are all bonus entertainment every week. I encourage you to take the one month challenge. Join for one month and see what you're missing out on.
Starting point is 01:00:06 P.S. Was I the only one who didn't know the paper map was a farce? Is it a farce? What are you talking about? What? It's a real big map. I have to lug it to the studio. I mean, don't you just hear it? Put up the mic there. Listen to that thing. What I'm impressed by is how Wes
Starting point is 01:00:21 folds it the same every single time. Well, it's well creased at this point. You notice how sometimes he twists up the power cords when he's sitting over there? It's like a fidget spinner for him. That's why I think he's putting collages on there and pasting on ads and stuff like that. Thank you for the endorsement of the bootleg. Yeah, it opens up with a song about Brent this week. So for members, you get to hear a special song we created all about Brent.
Starting point is 01:00:47 That's great, right? Brent does not sing in this song. They can listen and be the judge. Now, 5,000 sats came in to our node from Bun. You supposed! I've heard people talk about kids not knowing how to use keyboards because they're so used to screens. I think a physical keyboard is always better than a digital one i don't know if it's because i'm used to it but they don't work as well in my opinion well there's something about the touch typing right not having
Starting point is 01:01:15 to look like there's my kids are freakishly good at touch screens but i don't i don't think they'd claim they're faster typers on the iPad. I think they would agree that they're faster typers on their laptops. And then you throw in a proper mechanical one. Maybe if you've been split, it's shaped with your hand. It's just the mechanical sympathy is so good. Do you think Apple doing the... Do you remember
Starting point is 01:01:37 the keyboard that came out with the touch bar? Do you think that was a little test to see if they could make a whole digital keyboard instead of just F keys? And I think that went pretty well test to see if they can make a whole digital keyboard instead of just F keys. And I think that went pretty well, right? Yes. The boiling frog on this time, only this time the frog jumped out. And they had to go the opposite direction.
Starting point is 01:01:55 Do you remember those sort of like prototype products where it'd be like a little, you know, something like scans your fingers and just sort of picks up typing from them? A little like infrared style looking or not infrared. Yeah, maybe it projects a little red keyboard. Whatever happened to those? Where's my floating car? I think they're still around, actually. My floating keyboard. I think it's still a thing.
Starting point is 01:02:13 I just don't think it's a very common thing. RetroGear comes in with 10,000 sats. Fun will now commence. Gents, I've run a NixOS as a server for a year now. Really keen to get started with flakes at NixOS, but struggling to get started. Do you have any pointers? NixOS on the server for a year now. Really keen to get started with Flakes and NixOS, but struggling to get started. Do you have any pointers? NixOS on the MediaPC has been amazing. Meshtastic devices are rocking up on Friday, but I didn't make
Starting point is 01:02:31 it to the post office in time, so now I'm going to have to wait until Monday. Well, you did get a boost in, though, RetroGear, so you did something right. Tips for getting started with Flakes, Wes. Tips for getting started with Flakes. The way I ended up inevitably getting into it was just the project I
Starting point is 01:02:48 wanted. That was the best way to get it on my machine. So it was really project dependent. Yeah, I mean, the main thing here, I mean, for NixOS anyway, is that you'll first notice it's a different way to manage your inputs. You need to get Nix packages if you're using NixOS.
Starting point is 01:03:04 And by default, you do that with channels. And channels are stateful and not ideal for a variety of reasons. So flakes are a new method to do that. So the practical aspect of a migration is you'll make a flake.nix file next to wherever your configuration.nix is. And you'll add
Starting point is 01:03:20 an input that brings in the Nix packages that you want. Into the configuration.nix. Yep. And then you have an output section, and that's sort of a schema that tells Nix tooling how to work with it, and you'll make a NixOS configuration in there. And then in that, you can just import your existing configuration.nix,
Starting point is 01:03:36 and NixOS Rebuild will automatically notice there's a flake in there, and do the flake version. So you kind of just got to go read up a little bit about flakes and what it looks like to build a NixOS configuration. I always link to this Nix Flakes from the ground up thing. It's a little
Starting point is 01:03:52 more like goes into like derivations in the Nix side of it, but if you really want to understand where Flakes are coming from, it's a useful resource. And then there's like the My NixOS with Flakes guide, which is really great, so we'll link that too. And then, you know, last but not least, don't forget, our NixNerds room is a really great group of folks in there.
Starting point is 01:04:08 And if you're getting close but you just can't quite get it working, they could probably help you solve it, if you ask nicely. Hybrid Sarcasm comes in with $12,345. So the combination is 1, 2, 3, 4, 5. No message. Just didn't want to miss a week. That's so sweet. Oh, sarcasm. four, five. No message. Just didn't want to miss a week. That's so sweet.
Starting point is 01:04:27 Oh, sarcasm. I read you the best. Yeah, but I will argue again this week. Is that not a message? Brent's getting meta. Now, user 39480448 came in with 18,000 sats. There's coffee in that nebula. 18,000 sats. There's coffee in that nebula.
Starting point is 01:04:51 Hi, I'm a longtime Mac guy, but I'm slowly but surely moving over to Linux. I'm in the market for hardware and would love to know if Brent has any thoughts he could share on the Framework 13 he's been using. Ooh, great question. Yes. My old setup was to use a MacBook Air as both my desktop and laptop by pairing it with a display when at home. Is there any reason why a framework might not be up to that task? Is it capable of being a daily driver? Huh. Well, there's a lot there.
Starting point is 01:05:20 So it's been a journey with the framework. I have to say I still love the thing, but I've had some issues with it now i have a couple disclaimers one disclaimer is i actually did a little trade with listener tomash and i have the oldest uh motherboard in there the intel 13 motherboard it's 11th gen if i remember correctly So it's like the oldest motherboard that you could possibly run in that thing. So one of the problems I'm having with it is, of course, the battery longevity. But I kind of signed up for that by going with the older motherboard. So the newer motherboards are way better in that regard. So that's, you know, probably a unique situation that I put myself into.
Starting point is 01:06:03 So don't let any of your friends con you out of your motherboard. That's Brent's tip number one. Basically, yeah, don't succumb to being a nice guy. The other issue, though, I've been having recently is with the keyboard. I've never had a keyboard fail before, but I have a certain set of keys that just stopped working on me. And, you know, as happens, this happened to me during travel season. So I've been at times really struggling to log into my computer for the reasons that it just so happens, my password has a couple of those keys in it. So I know the solution is, well, you could just buy
Starting point is 01:06:42 another framework keyboard for like 50 which is pretty amazing and the swap is super easy as well but i've i've wanted specifically to work with their support team who's been amazing and like running me through a bunch of like tests and stuff i can do on the framework so i have to say despite the hardware failing it's actually been a great experience to go through trying to repair the framework, which is the whole point of the thing. So that answers some questions about the hardware specifically, but your, your question here in your boost was about pairing it with displays. And so I regularly pair that thing to two displays, uh, one 4k and like, uh, I don't know,
Starting point is 01:07:24 Jeff, you gave me, you gave me a display that you found in the trash uh that i also have set up the co-working space that i'm at um but traveling recently man i've been because of like hot desks and co-working spaces and using you know friends home setups and being at a conference where i could just like plug in any, any monitor I could find. I've been plugging that thing all over the place and it's been great. The strangest challenge I had was when I came back home, none of my monitors work when I plug it back in. I don't know how to explain that one, but for the most part, it's been like super solid. So I would say go for it. Tons of people I hear from love the framework and you asked, is it capable of being a daily
Starting point is 01:08:05 driver? I say 100%. Yeah, and it sounds like maybe with the newer Intel chipset as well, you probably have better battery life, maybe even a little better performance, maybe better thermals as well. Yep, it's all true. Don't do as Brent does. User 39, if
Starting point is 01:08:21 you go into your fountain profile settings, you can set a name there if you want to boost back in and tell us who you are. But, boys, I don't know if you realize, this is the second boost this week, this episode, where it's Mac users that are kind of getting a little tired with Mac OS, and they're looking at Linux. And this is something we've been talking about with DHH as well. I love hearing this trend. I'm really grateful that they took the time to boost in.
Starting point is 01:08:44 They also say at the end of the boost here, I would love to see a Texas meetup. Yeah. Keep an ear out around Texas Linux Fest. You know, nothing's in stone. We can't make it to every Linux Fest every year, but Texas is one of our favorites. So when we can, we like to get down there in the Austin area at least. So much meat. Oh, it's so worth it.
Starting point is 01:09:04 It's so good. It's so good. It's so good. Speaking of meat, High Five Connoisseur comes in with 4,000 sats. High five! You got to petition Ziply nearby for fiber. You've had it for years and it's great. Oh, I know.
Starting point is 01:09:16 He has a gig symmetrical for 80 a month. Very nice. Holy smokes. The context of that is today I'm on Comcast and I'm dropping packets. I'm dropping packets. I'm dropping packets. Very frustrating. Kenneth Runner comes in with 5,000 cents.
Starting point is 01:09:29 Oh, that's a Jar Jar boost. It's a boost. Hey, guys. Love the show. You're doing a great job. Well, thanks, Ken. Appreciate you taking the time to boost in. Can we get the Spock?
Starting point is 01:09:39 What? Live long and prosper? No, doing a good job. Oh. Superior ability breeds superior ambition. You're doing a good job. Oh. Superior ability breeds superior ambition. You're doing a good job. That's the one. I like both of them. So good. It's a good combo
Starting point is 01:09:52 actually. It's good to hear from you, Ken. Thank you for boosting in. Using Podcast Guru over there. Thank you everybody who boosted in. Also, thanks to those who just turn on the stream and the stats and they're just streaming them. And they come in.
Starting point is 01:10:08 I think when we set producer Jeff up, we set PJ up with his own wallet. I think that was one of the things that struck him as pretty novel is you just, you know, one, two sats come in because the lightning network makes that possible. As you're listening, we had 36 folks do that this week and collectively they streamed in 41,000 and 28 sats,
Starting point is 01:10:24 which is not bad at all. Thank you, everybody. When you combine that with the folks that boosted, it's been a banger week, boys. We had 58 total unique boosters come in. Of course, we only read the messages above 2,000 for time's sake. But when you bring it all together, we stacked 833,634 sats. Thank you, everybody who supports the show. You boost, if you're a member, whatever that is, or maybe you spread the word, you add value in our community. We really appreciate you out there. It's become a
Starting point is 01:11:03 community production. And we don't have open source labels for podcasts, but it feels like this is sort of like an open source project when everybody comes together. If you're interested in boosting, and there's a lot of other nice features as well, including expanded podcast features like live streaming support in the podcasting 2.0 apps, as well as boosting like Fountain FM, Cast-O-Matic, Podcast Guru. 2.0 apps, as well as boosting like Fountain FM, Castomatic, Podcast Guru. Just go to podcastapps.com to find the ones with the feature matrix you like, or you can become a member at linuxunplugged.com slash membership. And thank you, everyone. Fantastic showing this week, and producer Jeff is in the splits for this week. So we have one more week to get it in there.
Starting point is 01:11:43 You guys are the gosh darn best. You know what? For all of you, you get an eagle. Appreciate you. Alright, before we get out of here and change the sign to exit, you can release the seatbelts. Kind of a handy pick. I think, Wes, you found this one. But I could really see anybody just having this installed on their Android device in a pinch. It's called EtchDroid, and it's an application to write OS images to USB drives on Android, and you don't have to have a rooted Android device.
Starting point is 01:12:15 So you can make bootable operating systems. So like maybe your laptop dies, or maybe you're over at a friend's house or a family member's house. I installed it using Obtanium, but it's on FDroid and it's on Google Play. It's a pretty straightforward app. You got to have like a USB-C port you can plug it into and it'll write Linux boot drives. It'll write some of the Windows ones. I don't think it does Apple DMGs, although I was reading somewhere that they're actually
Starting point is 01:12:41 considering working on that. They have a Patreon or a GitHub sponsor where people that are contributing and kind of requesting features or whatnot. Yeah, there's a bunch of nuances around what it can and can't do that you can check in the documentation, but I think it covers that core use case of like, oh, my K exec went bad
Starting point is 01:12:58 and I got to recover and all I got is my phone. Yeah, it's a core use case. Right? No, but I mean, you think about it now, your Android device, you could download the ISO, because I'm sure you probably have the storage. And then you can write it to a USB-C flash drive all right there. And then you can go plug it into somebody's computer and rescue it with EtchDroid. And this could be like a lifesaver one day. I think it could be.
Starting point is 01:13:20 And the fact that it's open sourcing up on GitHub is pretty tasty. Yeah, GPL3 looks like. Uh-huh. I was just going to say, GPL3 licensed as well. It's been around for a minute, but... Yeah, I haven't seen an official release for coming up on a year, but there does seem to be active, some more recent development in the repo. Yep, as of just a few days ago, actually. So I imagine the releases will be coming.
Starting point is 01:13:44 So EtchDroid, we'll put a link to that in the show notes. I think it's going to be handy. Of course, you know me. I have like 200 apps on my phone. But I installed it immediately just so I have it. You know? Smart. Yeah.
Starting point is 01:13:56 Better safe than sorry, right? Go download like a rescue ISO. Well, that's the one. If I'm only going to burn, because I only want to have one ISO on there. Because I don't want to have a whole bunch. What's the one ISO you download? Is it like an Ubuntu ISO? Is it like a System Rescue CD?
Starting point is 01:14:13 Depends who you're rescuing. Yeah, Clonezilla. Right, you're trying to cover as many scenarios as possible. So I think it's probably maybe System Rescue CD, but maybe not. Maybe it should be Arch, so then I can get up and I can install any package I want. You could also build yourself a custom Nix one. Right. Yeah, but it certainly needs to be something that's a live disk, right?
Starting point is 01:14:37 Not all of these are live disks. They're install only. Yeah, it depends on which one you want to build. You probably should put a Debian net install on there. Yeah. Well, you know, you could do a collection of net install ISOs. You know, you could put a few different net install ISOs on there. Could you pre-set up like a Ventoy USB and then make that into an ISO?
Starting point is 01:14:55 Oh, Wes. That's good. That's good. Well, if you got any other ideas, boost in. Also, if you're not a Nix user and you made it this far into the show. Wow. Tell us how that was for you. Like, seriously, like, are you OK? Are you doing all right? Are you mad at us? Let us know. Send a boost and tell us.
Starting point is 01:15:14 And if you'd like to catch us live, we will be live next Sunday at noon Pacific, 3 p.m. Eastern. See you next week. Same bad time, same bad station. Of course, if you want a little bit more show, remember, you can always catch it live or get that bootleg feed when you become a member. Right now, that's clocking at like almost two hours and 20 minutes a show, almost. It's quite a lot of show. So you might like that. I don't know. Maybe you got a long drive.
Starting point is 01:15:37 Bootleg feed could be great. Take that one-month challenge. See how it goes. Lots of resources and links to what we talk about every week. You can find them in our show notes. For this week, that's linuxunplugged.com slash 583, or hopefully it should be in your podcast app of choice. If it's not, let us know. We'll give them a talking to. Okay, maybe not. Thanks so much for joining us on this week's episode of the Unplugged program. We'll see you back here next Tuesday, as in Sunday. Thank you. you

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