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