Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:11):
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. Well, coming up on episode 626 of your Unplugged program,
we're digging into a Butterfest bug that is biting people in the wild right now.
So we want to get the word out there as fast as possible.
Then, over the week, I discovered how to actually get whole home audio that's working.
(00:36):
And it's working like a charm. And there's a little extra twist in there,
too. So I'll tell you about that.
Then we'll round the show out with some great boos, killer picks, and a lot more.
So before we get into all of that, let's say time of props to our virtual lug. Hello, Mumble Room.
Hey, Chris, here we're St. Hello, Brent. Hello, gang.
Hello, everybody in the Mumble Room. Thank you very much for joining us over
(00:58):
there. And shout out to everybody who's joining us live and shout out to all
the members that make it possible.
And go check out Managed Nebula at define.net slash unplugged.
Decentralized VPN built on open source software that we love,
the Nebula platform, which you've been playing around with, Wes.
I have.
(01:18):
Yeah, you're getting me really jealous. We'll talk about that more at some other
point. But Nebula is optimized for speed, simplicity, and it has industry-leading security.
And the way this manifests for day-to-day life, less battery usage on your mobile
devices, less network traffic, and less load on your servers.
It's really light it's really light and unlike traditional vpns nebula's decentralized design,
(01:42):
means that you can build out your own network as you
like and make it as resilient as you need so great for a home lab great for
a global enterprise whether you're using their managed product or the self-hosted
option which chef's kiss is top-notch one of the reasons why we love it so much
they don't hold back on the self-hosted product that's what they build on top
of and That's what's available for all of us.
(02:04):
And they're starting to roll out desktop clients.
It's going to get even easier to use Nebula, which I'm really excited about.
Because anything that just opens us up to more users is going to be fantastic.
And Nebula takes advantage of things like the noise protocol framework for key
exchange and symmetric encryption. So you know they're using good stuff in there.
And whether you want to self-host the entire infrastructure or you want to check
(02:26):
out their managed product, which makes it really straightforward,
you got an option. In fact, if you go to define.net slash unplugged, you support the show.
You can also get started with 100 hosts absolutely free. No credit card required.
Go see why we're really excited about Nebula by playing around with it first
at define.net slash unplugged.
(02:46):
We've got a little bit of exciting housekeeping. This is approaching really fast.
Yes, I'll be giving a talk at Nix Vegas at DEF CON this year.
So if you'll be going to, you can find me there.
Come check it out. We'll be talking about mesh sidecars for NixOS services.
And then an attempt to find other people in the chaos, if anyone's interested,
I think I'll try to post up at the Casbar Lounge on Saturday around 6.30 for
(03:11):
an hour or so, just for a sort of office hours.
Nice, simple meetup right there. no meetup page required just where is it?
The Caspar Lounge in the Sahara Hotel at what time? 6.30.
On Saturday so if you're in the area or.
You can I don't know ping me on Matrix.
You don't even have to be at DEFCON if you're just in the Vegas area that's
true too come say hi to West Payne absolutely Brent and I can attest he's a
(03:32):
delight to hang out with at a bar or at dinner,
wherever it is so do recommend you go check it out and where do they go for
details is it nix.vegas is that do they have a website that's right yeah nix.vegas
slash schedule There's a dot Vegas?
Of course there's a dot Vegas.
So we wanted to talk about a file system corruption issue that is affecting
(03:54):
ButterFS users on more recent kernels like 6.16 and 6.15.3.
And we are now at a point with ButterFS adoption where there's enough leading-edge
kernels and users out there and distributions that are actually deploying and
testing these things kind of right as they ship.
And thanks to them, we've discovered there's a bit of a problem going on that
(04:17):
has left some systems unbootable.
Yeah, it turns out there's a lot of root file systems out there now,
too, which is a great thing. We know how much we like it, except if,
you know, your root file system won't mount.
That's not good.
No.
Yeah, so the bug itself didn't do any damage to the data, but it did prevent
the system from properly mounting the root device.
(04:38):
Yeah. Okay, so copy-on-write file system. We're also aware, generally,
right, like ext4 is a journaling file system.
And these journals are something like what's known as a write-ahead log in the
database world or ZFS has the intent log which is somewhat different but very similar also.
The idea is for data consistency and crash consistency you can write the things
(05:02):
that you're doing especially because with copy and write let's say you're updating
our show notes a markdown file well what happens?
You make a new copy of that so you can do snapshotting so you have all the features we love
but there's also this tree structure and you have to kind of go update all the
tree to make sure that like all the way at the root when you go to like you
know ls that directory it actually points at that updated copy and not the old copy,
(05:25):
but the snapshot version has it so there's a bunch of bookkeeping and updates
you need to make just for that write,
and what happens if you crash in the middle so the idea is you make a note that
you're like I'm going to do this update,
and then you flush that to disk and then you can move that out of the log but
if you crash in the middle you can see from the log oh i hadn't finished that
(05:46):
and then you can kind of check to see like do i need,
Can I fix it? Can I just replay that? Most of the time, if you have an unclean
shutdown, it just automatically replays that journal from the log,
brings your file system back to a clean state. You don't even really need to know about it.
So a handful of users, like on CacheOS and Fedora, where they're getting pretty
current kernels and they're using ButterFS on the root, they experienced some
(06:08):
sort of crash, and then when they reset their system, they couldn't boot.
Yep, you just get an error that it can't replay the log, which means it sees
that there is data there.
For some reason, your file system, whether it was like a total shutdown,
forced shutdown, or maybe something just happened on the fly before as it was
shutting down, you have stuff in that replay log.
And so, of course, it doesn't want to just drop that because you could have,
(06:31):
basically, the amount of data loss you could have if you didn't replay that
is roughly constrained by how
often you're doing these background commits sort of flushing to the disk.
Usually it's like 30 seconds, maybe it could be a couple of minutes if you have
some configuration or doing tons of fsyncs or lots of disk I.O. or something.
And so what the fix ends up being in terms of just like I want to get my stuff
(06:52):
going again is you run butterfs rescue which is a whole sub command for rescue commands,
and then 0-log and that pretty much does what it says clear the tree log and.
You essentially do that from a live environment because if you were to say to
boot into a live environment you wouldn't be able to just mount that file system because of this.
Problem no anytime you mount it it's just going to complain with the same thing
(07:14):
I think there is also a mount option you can do to say like skip replay.
And so now this is sort of splitting hairs, but this is technically not a ButterFS
bug so much as it is something kind of related to a series of other patches
that kind of led to this issue. Am I following this right?
No, so it is ButterFS.
Okay.
It's just, it kind of has an interesting history.
(07:37):
Yeah, okay. That's what I was trying to follow, and that's a piece I wasn't getting. Yeah.
So it all goes back to 2018, actually. A commit called fix warning when replaying
log after fsync of a temp file.
And the thing with temp files is they're, they generally like they're meant
to be discarded at reboot, right? And so they don't actually like have any extents on disks.
(07:57):
They just sort of have like the inode for tracking and they can live in memory
and the cache and all that, but they don't actually make it to the disk.
Right. And so they were running into some warnings.
So they went to go patch this up. And to do that, they made essentially two changes.
One, because you basically have two sides of this. When you're going to do an
operation, you write into the log to say, like, I'm about to do X,
(08:17):
right? I'm about to delete this temp file.
So before I take the action, I log that I'm going to take the action.
Exactly. And then you have the state where you're booting up and you're mounting
the file system and you're replaying that log if there's stuff in there that
hasn't been synced with the disk yet.
So in this case, what they did was they said, all right, well,
we don't really care about these temp files in the log anyway,
(08:38):
so we'll stop adding new stuff to the log going forward.
And when we're in replay mode, we'll just skip these because they're going to
end up getting deleted anyway. We don't care about them. the problem,
which was not apparent at the time, because basically...
Back in 2018.
Back in 2018.
When they're writing this patch.
There's multiple different stages you can be in replay. And so there's one called
(08:59):
replay inodes, and that's where they sort of did this skipping.
But there's another one called replay all.
And then it turns out that the way this change was made, it didn't apply during that stage.
But because they were also making the change at the same time where they were
just not going to add that stuff to the log anymore, the only way you could
trigger it back then was if you were somehow, like you had upgraded your kernel
(09:21):
and had an unclean, or you were mounting something unclean shutdown from an older kernel.
Okay. So this is the bit. So then later on, there was like an additional patch
that compounded this problem?
Yeah. So just in May, it started and got picked up and added to 6.15.3 and 6.16.
Uh-huh. So that's why it's in the most recent kernels.
Yeah. So then we noticed a problem that it turns out by not,
(09:43):
just by no longer putting this, like these temp file stuff in the log at all,
it meant that we could have a problem where we actually
left them undeleted like they were still kind of hanging
around in like when you did have an unclean shutdown
the accounting kind of was broken the
other way where instead of like losing stuff it would keep stuff you were trying
to delete around okay so not a huge issue but it's like incorrect behavior according
(10:07):
to how do you expect the file kind of crufty over time yeah uh exactly if we
f-sync a file that has no more hard links because while a process had a file descriptor open on it,
the file's last hard link was
removed, and then the process did an fsync against the file descriptor,
after a power failure or crash, the file still exists after replaying the log.
Okay.
Right? So they'll fix this by not ignoring inodes with zero hard links.
(10:29):
So now we're putting that stuff back into the log again.
Okay.
And that means suddenly this issue, which had actually technically sort of been
there since 2018, can now be hit again.
Fairly easily it turns out i mean you still kind of need something to happen
weird with the file system where you have stuff to replay it has to be triggered.
By some kind of event.
Yeah it.
Doesn't just happen if you've got butterfs and it's running and you have 616.
(10:52):
You basically need to be in a state where it finds stuff in that replay journal
when it's booting up and mounting the file system my.
System upstairs by the way is on linux 616 and it is butterfs on root so that's
why i was curious if yeah that's it has to be i'd have to crash or something.
Yeah crash or yeah maybe i don't know Some application dumps.
Yeah, kernel has a problem and it forces the file system offline without doing it correctly.
(11:13):
Out of memory kills something. I mean, you never know.
So it gets like, this gets thrown out there sometime in May in the Linux ButterFS
lists and then eventually gets pulled in for 6.16. And then once that kind of
gets, was pushing along, it also gets backported to 6.15.3.
And you can see it's just this one commit from there that like as 6.15.3 started
(11:34):
rolling out pretty much like by a week later or so,
kind of the end of june 26 27th cache eos users were some of the first folks
who really started running into these things and then by like july 7th or so
uh a kernel mailing list thread gets going and people start trying to it's a
good collective effort the cache folks arch folks they're all kind of like.
(11:54):
And butterfest developers.
Yeah they're reaching out to the butterfest devs who are kind of like well we
really need d message output or like more than just you know sort of like the the one error they.
Had to work out like a standard operating procedure to get these systems and
these file systems back up so they could pull logs.
Like, they had to come up with procedures and processes they could communicate to people.
And then kind of by proxy, right, where, like, the distro folks are talking
(12:14):
with the kernel folks and getting what the kernel folks needs and then reaching
out to the users they're doing end-user support for to, like,
tell them how to get this data and shepherd it around.
But eventually enough stuff throughout July kind of comes together that there's
now a fix out there that correctly does this skipping and replay of these temp
files in all the stages that are actually necessary.
(12:37):
Okay, so I basically just need to keep an eye out for a kernel update.
Yeah, but that got proposed to the Linux ButterFS list, so presumably that will get...
Pulled into 6.17 and then presumably backported as well, but that's all going to take time.
And in the meantime, if this were to happen to you, you could go into a live
environment, run that rescue command, and you'd be alright.
(12:58):
Yeah. The only data loss you should be risking is, like we were saying,
is just whatever had been sort of not flushed to disk yet as the unclean shutdown was happening.
Do we have a sense of how many users have been affected up to now?
And I would imagine because of the fixes we're not going to see too many more
users being affected as well?
My sense is it's less than a thousand but i don't know.
Yeah i don't know because it's kind of like you have to have some event that
(13:21):
triggers it and you have to be on 6 16 or 6 6 15 3 or newer and.
With butterfest's root yeah yeah.
I mean it could be on a not it could affect a non-root file system just it wouldn't break your boot you.
Know who i think it's happening to the most is users that game and then the
game crashes their system.
There's been multiple reports of that yeah that's.
The seemingly the most affected because that seems to be what crashes linux the most i don't.
(13:44):
Know definitely folks who've self-reported also having sort of known sketchy
power supplies or sorts or situations sure that'll.
Do it yeah.
Uh it is worth calling out here uh this has all been uh
the initial issue as part of fixing a bunch
of other stuff this has all been the same person's work across the
years uh felipe manana from seuss
has been oh responsible for fixing up all
(14:05):
kinds of butterfs issues and working on the file system and it
just works out that like he was the person who made the
change in 2018 and the one that
made it more apparent now and is the person who figured all
of that out and made an excellent explanation and commit
in the fix to patch it all up so props there for
sure and it's
(14:27):
exactly these kind of things that make file systems you know so hard
to debug i mean he he's been
proposing tests you know test cases and stuff as going for all of these stuff
so it's not like they aren't testing it's just especially with situations of
power failure and like there's all kinds of failure points where you can't have
happen to the file system and take cases edge cases that are just hard to test
(14:49):
so it's a community effort to squash those bugs.
Thank you for digging into that I was aware of just bits and pieces of that
and I wanted to get that info out at the top of the show because like my system
just updated 6.16 Fedora users are updating so it's something to be aware of.
ButterFS is still safe to use.
So let us know does this give you any pause using ButterFS.
Did it bite you? Maybe I hope not. But if so, please tell us.
(15:10):
I'm kind of also just generally interested in file system war stories.
It really seems like it hasn't been a problem as much these days,
but maybe I'm wrong or maybe you have one from the past.
Boosted, it's a great way to support the show and we love reading those messages.
It is kind of funny. Just, you know, of course it's the mechanism in the file
system to be robust that is in fact causing the problem.
(15:32):
It is. And it also just shows you how complicated kernel development is and
as things get integrated into the kernel there's a lot of other second order
effects is what I'm trying to say It's.
Not just what you change, it's all that changes around you.
1password.com slash unplugged. Take the first step to better security for your
(15:52):
team by securing credentials and protecting every application,
even unmanaged shadow IT.
Go learn more at 1password.com slash unplugged. That's the number 1password.com
slash unplugged, all lowercase.
Okay, if you're a security IT professional, you know this problem already.
You have more and more assets to protect as time goes on.
(16:13):
More devices, more identities, and more applications, and it becomes a mountain
of security risks over time.
But fortunately, you can conquer that mountain of security risks with 1Password
Extended Access Management.
The reality is that when surveyed, over half of IT pros say securing their SaaS
apps is actually their biggest challenge now.
(16:34):
And I kind of get it. You know, you've got SaaS sprawl essentially happening,
and it creates the shadow IT where users sign up to things and use things because,
quote unquote, it makes their job easier or better.
So it's kind of understandable, but it's a hard problem to fix.
Thankfully, Trellica by 1Password can discover and secure access to all your apps, managed or not.
(16:57):
See, Trellica by 1Password inventories every app in use at your company.
Then pre-populated app profiles assess SaaS risk, letting you manage access,
optimize spend, and enforce security best practices across every app your employees use.
Yes, even the shadow IT stuff. You can securely onboard and off-board employees
(17:17):
and meet compliance goals.
See, Trelica by 1Password provides a complete solution for SaaS access governance.
And it's just one of the ways Extended Access Management helps teams strengthen
compliance and security.
You know 1Password and their award-winning password manager.
Now go check out Extended Access Management and Trelica.
You can take the first steps to better security for your team by securing credentials
(17:40):
and protecting every application, even the unmanaged ones.
Go find out more and support the show. You go to 1password.com slash unplugged.
That is the number 1password.com slash unplugged.
Well, Chris, you teased about whole home audio, and when I've been in Lady Joops,
(18:01):
that has typically been a proprietary system, but something tells me things have changed.
I am so, so...
So ashamed of my love for the HomePods. And my whole home audio solution has
been HomePod audio for years now. And it's embarrassing.
I mean, you're a Big Mac guy.
(18:24):
Yeah, it's really great because of the ecosystem. I love the ecosystem, Wes.
It's just, it has been a shame of mine. And I wanted to solve for this for a while.
I've been looking for a long time for a whole home audio solution where I can
put speakers anywhere in my house using whatever device i want and then be able
to play synchronized audio across all of them and then ideally create subgroups
(18:45):
for like the living room and you know different rooms where maybe you want different
content or you don't want music playing.
Right yeah your wife's having a nap in the back.
Room you're.
Trying to get some work done you wouldn't mind listening to a podcast while you do it.
Actually that is that is one of the number one use cases wes you'd be surprised
and so i have dabbled in a lot of different things we have dabbled in a lot
of different things but i've never felt confident enough to come on air and say,
(19:08):
this is the solution that you should implement in your home.
Because I've wanted something that was really flexible and nothing really matched it.
I finally this week gave Music Assistant a go.
And it's a library manager for your offline and online music sources.
I'll get more to that here in a second.
And then you can stream to a wide range of supported players and you can combine them and mix them.
(19:32):
And then as the name kind of implies if you want though it's optional you can
also integrate it into home assistant and i'll talk about more of that later
so music assistant itself has the music assistant server,
it also has what it calls music providers so you can import from various sources
it has player providers so you can play music on a wide different range of ecosystem
(19:55):
from like dlna devices sonos devices,
Chromecast devices, AirPlay devices,
Home Assistant voice preview devices. It goes on and on.
And then they also have plugins, so you can add additional functionality in there.
And the thing that I think I didn't appreciate about Music Assistant until I
started using it is how well it integrates local sources with remote sources.
(20:22):
Calling it Plex for your media is way underselling what this thing is capable
of. Plex wishes it could do this.
So first of all, I have a Tidal account. It was exceptionally easy to integrate it into Tidal.
If you're logged into your Tidal account, it's just a would you like to authorize app.
It synchronizes all your playlists. So this is nice because my wife creates
(20:43):
playlists pretty frequently.
And then they are immediately available on the music assistant within the next time she goes to use it.
That's great.
It supports the high quality playback. But it also easily integrates my local flax.
And then another source that is exceptionally useful is it supports audio bookshelf servers directly.
That's killer.
So all my audio books are in there. And I'll get more to that in a moment.
(21:04):
Were you able to just do like a point it at a folder? How does the,
for your flax, like that source?
Yes. So you have a lot of options there. You can point it at a SambaShare directly
or just a local. And in my case, it was just on that local box.
It was just a local file system.
Sure.
That I just brought into the Docker container.
Nice.
So there's lots of options for your speaker endpoints with Music Assistant too.
And one of them that a lot of us have out there is Chromecast.
(21:27):
And it works really well with Chromecast. And it can be anything like one of
those stupid little Google, you know, assistant display boxes,
or it can be a Chromecast hanging off your TV.
Or if you're lucky enough to have a Chromecast audio, that works.
Yeah, I got it going on my Google TV. It took a little bit.
There was some discovery process. I toggled it on and off once.
(21:47):
But then since then, it's been just fine.
It does. Music Assistant does rely on a lot of like that, you know,
DNS discovery stuff. So you have to make sure that's getting passed through to the application.
So if you've got a firewall or if you're running a container,
you have to make sure a lot of that stuff gets passed through.
I guess they had two, like, multiple. They had, like, a newer,
better way that they were doing the casting.
So, like, once I, at first I tried that and it wasn't, I tried the old one that
(22:09):
worked and then the new one works totally fine.
So I don't know. It probably was all just still booting up because I just got to go.
It does take a minute to discover. I think the other one that works really well
is Sonos. Have not tested that, but I guess the Sonos integration is pretty tight.
Fully kiosk browser, I thought was an interesting one because this is what I
use on my tablets for my home assistant displays around the house.
So I think, you know, you could in theory have a speaker plugged into the headphone
(22:31):
out port on that tablet and then turn that into a player.
Pretty neat.
I mean, you could just see that for, yeah, I don't know. You have some sort
of small office setup too, and those are just on there for displaying calendars
already. Now you've got a PA system.
Why not? Yeah, it does, you know, announcements and stuff like that too.
AirPlay. So any AirPlay target that's not the Apple TV.
(22:52):
The Apple TV is not currently supported because there's like a two-way pairing
process, but, you know, anything else that's an AirPlay target.
And this is a really interesting one. Any supported Home Assistant media player,
like the Voice Preview Edition hardware, which is a little puck with an iPod-like
wheel on it you can use for volume control and it has an aux out port.
It's really nice. So that was the direction I thought I would go.
(23:13):
I thought I would buy a handful of these at a time because they're 50 bucks-ish
a pop so buy a couple, set them up.
I already have two so I would only need a couple more and then I would use these
as streaming endpoints for my music assistant server.
And while you could definitely do that and I think it would work really well
because it's all an open ecosystem, the prices are pretty good,
(23:35):
what I discovered is that the open source community has so successfully reverse
engineered AirPlay that the AirPlay supported Music Assistant is as if it was
a native open source protocol.
That's so killer.
It's bonkers how good it is. And so it sort of was just, well,
(23:55):
I already have these AirPlay devices. And it's- I mean.
That's best case for you, really.
It's kind of unbelievable because I bought these stupid expensive HomePods. They do sound good.
Just go check the Coder Radio backlog for years on this.
This has been years now, so I think the investment may have,
quote unquote investment, may have paid off.
But you would not think I would have gotten this much mileage out of some stupid
proprietary speakers that only have a power cord coming out of them.
(24:17):
It really is bonkers. And it's crazy how good it works with Music Assistant.
So I just went with the practical route and I'm actually, I'm mostly just using AirPlay.
But I do have some, based on some of the testing I did, I have some quick recommendations.
If you just want easy speakers that work, i
don't know how you say this but ikea makes these symphonisk speakers
(24:38):
what kea speakers and they're wi-fi speakers that actually have a sonos control
board in them but they're like you know 100 200 cheaper than an equivalent sonos
speaker and they also support airplay and they support dlna and they support
the sonos streaming protocol.
And they sound decent. And the home assistant community and the music assistant
(24:59):
community rave about these.
So they range, depending on where you buy them, between $99 and $120 US dollars.
So these are not super cheap for the sound.
But the functionality, people. So my wife is buying a couple of these for her studio, for her clinic.
And so I'll have kind of a real world report on these pretty soon.
But these are, you plug them into your network. You plug them in,
(25:21):
hook them up to your network.
And then music assistant will automatically discover them. and they just work.
And you can play them in pair synced up. It's really nice.
Obviously, the HomePods, those work well, but you can also buy standalone AirPlay
adapters that just have audio outports.
Oh, now that is something.
(25:42):
So you can use big speakers or hook it up to whatever you want.
And those range from $90 to $110 US dollars.
And then, of course, the Chromecast. I found a two-pack of the Chromecast audio
streamer for $30 on eBay.
Nice.
Yeah.
I also noticed that they had Snapcast support.
Yes, sir.
So if you have that or want to build out that infrastructure,
(26:02):
you can just sort of target it with the music assistant.
And that really seems like something I should look into in the future.
I would love the listeners' feedback on Snapcast or if anybody has experimented with this stuff.
But I want to tell you how I made this sort of spousal approval factor high,
family approval factor high. because having music assistant and having one interface,
(26:25):
which is a progressive web app to all your music and your audio books from all
your different, you can put Apple music in there.
You can put Spotify in there. You can put title in there. You can put sound cloud in there.
You know, these are like, there's dozens you can add searches.
I think it's the iTunes index, but it searches that for podcasts or you can
just put in RSS feeds manually.
Yes too. So you can do that as well. So while that is nice to have and then
(26:46):
manage all of that from one interface, I,
Where I think it really kicks it up and improves the family approval factor
is if you can integrate it in with Home Assistant.
And the Home Assistant integration allows you to create simple dashboard interfaces
to actually play things and cue things up.
So I've designed, we have a media card, we have a media dashboard,
(27:08):
I'm sorry, in Home Assistant, where we have remote controls for our TVs.
And now I've added another, you could call, it's like the size of a large badge
or like a large thumbnail image.
It takes up about that much space. But what it is, it's a media player control
with an interface for selecting our favorite playlists and our favorite audio
books and selecting which speakers it plays on. And I'll have links to these in the show notes.
(27:29):
But this is how the family interfaces with this, right? They're not loading
the music assistant tab.
Oh, entirely through.
They're going to the tablet they already managed stuff in the home with,
going to the media tab, and then just selecting the playlist.
And it's just, it plays for them.
I'm going to have to check that out. Because so far I did get like the very
default auto discovered, like it can detect and control the music assistant
state in home assistant side. But I hadn't gone past that.
(27:51):
So when you install the music assistant integration into home assistant, they find each other.
In fact, you can, if you have a Hass OS music assistant, it is just an add on.
You can just install from within Hass OS and it all just connects up.
But I run on a separate machine and they discover each other over the DNS broadcast
stuff. and then every speaker that's in Music Assistant shows up as a speaker
(28:13):
in Home Assistant and vice versa.
And so now Home Assistant can change the volume, it can do playback and pause,
it can cue up new songs and then there's lots of community dashboard tools to
build easy playback controls,
A couple of, you know, you choose a few boxes. And then where I took it to the
next level, and I'm very proud of this, it's that audio bookshelf integration.
(28:36):
Having the audio book integration that syncs book playback between all my devices
because the audio bookshelf server keeps track of that. So our mobile devices get synced.
The web interface and now music assistant.
And I have added Z-Wave buttons in our bedroom on both sides of the bed.
You push a button, and I've labeled it book, and you hit that button.
(28:57):
The book button.
Yep. And that resumes our current audio book at our last left off position on
one speaker in the bedroom, preset to just the right nighttime volume.
It then plays for 25 minutes, and then using a new integration that I installed
that allows you to gradually change the music. It's called gradual volume control.
(29:20):
For the last 25 seconds of that 25 minute period while the book plays for the
last 25 seconds i have it gradually turn the audio down to zero percent over
25 seconds so the book fades out quietly and then it stops playback.
That's that's wow this is bonkers i want to take a nap of your ass.
It is so nice because it takes something that is rather complicated right and
(29:44):
it just automates it with a push of a button because the automation is happening
in home assistant i've told home assistant, when this button is pressed,
go play that audio book at its last position.
Audio bookshelf server is remembering the position. So when music assistant
requests that audio bookshelves handling that aspect of like the metadata and whatnot.
But what's really neat about it is none of my devices are in use.
(30:08):
So I no longer need to bring the phone to the bedroom to listen to the audio
book. I can leave the phone out in the charging area.
I don't have to interface with any screen. I don't have to blast light in my face.
I don't have any of those. I just push a button and the backend infrastructure.
So I can be rebooting my phone.
I could be not using my phone. My phone could be off, whatever.
(30:32):
It doesn't matter because the server system is handling the book playback and
then Home Assistant is handling the time and the fade out.
And then it pauses through Music Assistant.
And the end experience is so simple and so nice. I just, I love it for this one feature alone.
But we also now have these, you know, with this dashboard, we have these buttons
(30:53):
for playlists. And so some of our favorite playlists are one button away.
And then it starts playing on all the speakers in the home in sync.
And there's just something really fun about that. When you're doing some chores
and you didn't have to even open up anything, you didn't have to go dig through
anything. It's just right there. It's all ready. Boom. Click. Good place.
You get that dump in tanks playlist.
You sure could. You know, or like I'm on the way home. I open up the home assistant
(31:16):
app on the phone. and I hit the playlist so the wife knows I'm coming home.
There's a lot of fun you could have with it too. And then you can also integrate announcements.
So you could have it announce the upcoming track, but you could also slip in
sort of like house-wide time for dinner or whatever you want.
You can slip in house-wide announcements because it supports that as well.
It's so much fun playing with this stuff. It's like tinkering with a system
(31:40):
that builds on top of itself.
So first you get the home assistant running, then you get Z-Wave going,
and then you get buttons figured out.
And then you start stacking the stuff. So then you get Music Assistant going
and you add, now I know how buttons work and I know how Home Assistant works.
And you can just complete this whole stack of stuff that works really, really well together.
And while you can completely use Music Assistant on its own,
(32:01):
it's just like a container somewhere or whatever you want on a system.
If you connect it to Home Assistant, it really kicks things up.
And it's so much fun to play around with.
Even if you don't care about turning on lights on and off, this kind of stuff
is really choice. And the fact that you have this wide range of hardware it's
compatible with means you could likely just get started right now.
That's what's so impressive to me. Like the scope and the amount of integrations
(32:25):
that already exist and are just kind of all ready to go.
I was doing it on Nix. And so it's a little more apparent where,
like I was looking at some of the packaging for it, right?
So you can tell some plugins, you know, they need some extra packages to be
included in the whole build as well.
So like if you want the YouTube music integration, which is just such a pain,
(32:45):
uh, cause you have to go get some cookie for YouTube DLP, but you need,
you know, YouTube DLP is the, uh, as part of the packages, but,
It's just neat because like some of them, they just, I think like titles,
they don't even need any extra Python packages or anything. They're just ready to go.
Yeah. I think there's a couple of caveats people should be aware of.
I think where music assistant struggles is if you mix protocols.
(33:07):
So if you mix AirPlay and Chromecast or Home Assistant Cast and AirPlay or whatever.
Even just trying to mix sometimes like playback in the browser and.
Yeah, or even sometimes if you're combining network speakers that are on different
major versions of their local OS, there can be issues where it loses sync.
(33:30):
And so where it seems to really nail it is if you have the same type of protocol
for every speaker in that group.
So if you stick to one thing, maybe it's the Home Assistant Preview hardware,
maybe you're a Sonos person, or maybe you've already got AirPlay or Chromecast.
If you stick to one streaming technology for all the speakers you're playing
to, it seems to just really nail synced audio, especially with AirPlay.
(33:53):
But when you mix and match, you get mixed results.
Now, if you're in a space where you cannot hear the other speakers,
you just want to be able to have the same content like a podcast or streaming
radio. Streaming internet radio is also supported.
And, you know, if you have a couple of second overlap when you're in the garage
versus the kitchen, maybe you don't care.
But if you're if you're standing in a space where you can hear all
(34:15):
of the speakers at once the synchronization really matters
then and that's where you want to keep it to the same protocol and that's
where i think it's worth just going with one stack and i
put the stuff that i feel like works the best in the
show notes but having probably used home assistant in
this entire stack for five years or so
somewhere around there maybe six um music assistant
(34:37):
really feels like i've taken it up to the next level now and it's
so much fun to be able to just hit a button and set a tone
set a vibe and then anybody that has the home assistant app can also pull it
up and pause or change it or anybody that goes up to a tablet or if you use
the voice control too you can do it that way it's really it's it's it's really
a great experience it's not the best podcast player i will make that disclosure
(34:58):
true so if you add a podcast like ours or any podcast that has years of back catalog.
It sorts it and wants to play the oldest episode first, which maybe you want to do that.
Or maybe you just imported your favorite podcast in your current and you want
to play the current episode.
Well, if they have hundreds of episodes, you have to manually go through one
by one and mark them listened to.
(35:20):
Unless maybe you're some sort of database hacker and you could go in there and
fix it that way. But there is no native way to mark a whole bunch of podcasts listened to.
And that was a real bummer because
playing podcasts around the house is a great use of Music Assistant.
So if you get the time, check it out. You can use it on its own.
Or if you really like your peanut butter and your jelly or chocolate or whatever
it is, I don't know. You mix it with Home Assistant.
(35:44):
Unraid.net slash unplugged. Unleash your hardware.
Self-hosters and home labbers unite. If you can believe it, Unraid is turning 20, 20 amazing years.
And from August 7th to August 26th, you can join the 20-day birthday bash packed
with 20% off select licenses and 20% off all new merch. No purchase necessary.
(36:09):
Giveaways are throughout the celebration.
It's all going to lead up to the grand finale on August 30th.
There will be a live virtual event with Unraid's founder and also several others
from Unraid where they're going to look back at 20 years of Unraid and also
unveil a new short film and maybe even give a peek at the future of Unraid.
So you can learn more and RSVP now to celebrate two decades of self-hosting
(36:33):
innovation with the Unraid community.
Go to unraid.net slash unplug.
20 years if you can believe it. And Unraid continues to get better and better.
Around the corner, not too far out, will be Unraid 7.2.
7.1 is a blowaway release. But 7.2 is going to bring things that people that
use the web dashboard or are looking for a full-featured API,
(36:57):
no spoilers, but people that might be interested in those things,
or maybe even NTFS support and Extended 4 support in your pools,
those things, I don't know, Little Birdie tells me they might be coming.
I mean, Unraid really goes from strength to strength. and they've been doing it for 20 years.
They have a straightforward model. It's a really simple licensing structure,
and if you go to unraid.net slash unplugged, you can try it for free for 30 days.
(37:21):
If you like it, you pick it up, you support the development,
and they keep going for another 20 years.
So don't forget, it runs from the 7th to the 26th. You can join the 20-day birthday
bash, and I have reason to believe you might want to.
Get started at unraid.net slash unplugged.
Well, like last week, we do have some shout-outs for new members of Jupiter Party.
(37:44):
We want to say hi to the party to Kyle, Quinn, Athlon, Linus,
John, and Scott, who all joined either the core contributors or Jupiter.party. Welcome to the party.
Yes, thank you for the support. Shout-out to our new members.
I hope you take advantage of either the ad-free version of the show.
(38:05):
A little bit tighter runtime, but still with all Editor Drew's nice touches.
Or get the raw bootleg version that's clocking in usually around double the
length of the regular show, but lots of content in there.
And also it's a way to support the show directly. And on top of that,
it lets us continue to be extremely choosy about who we work with.
And it's, I think, 100% why we don't have dynamic ads at this point, I would say.
(38:28):
This week you might get tire talk.
Yeah, if you listen to the bootleg, you did get a little tire talk.
That's true. But we really appreciate you guys.
Thank you for keeping the show going through the bad times. And thank you for
also letting us say no to dynamic advertising or weird VPNs and weird other
kind of, you know, another one that's been really.
I don't even know what kind of mattress you have.
(38:49):
I'm not. Yeah, that's true. I'm not even anti-CBDs, but like we've been getting
hit up by a lot of CBD makers.
I mean, not a lot, but in the last month, I've heard from three different CBD
makers who want to sell their product directly.
I don't like this. It's like it's like it's really nice to just be in the position
to say no, thank you. So that goes to our members, and same with the dynamic
ads, and also to our boosters, too.
(39:10):
Thank you, everybody. We really appreciate you. Another round of applause to those new members!
We got some emails, too, Wes.
Sebastian wrote in, long-time listener, writing in with some rare critical feedback.
Zotero deserves way more love. It's one of the most important open-source projects,
especially in the closed world of academic publishing.
(39:31):
Zotero 7 is fantastic. Citation management, PDF sync via web dev,
annotations across devices, even figure extraction, all open source.
It's a self-hosted essential in my book.
Okay.
I'm a cardiologist practicing in Germany, so if there's anything in my field
I can do for you over from the ocean, let me know.
(39:52):
Also, if Brent ever ends up in the southern part of Germany and wants to check
out rock climbing or mountain biking, also let me know. Oh, that's so sweet. Thank you, Sebastian.
Yes, please. Thanks, Sebastian. And I'm assuming that invite for mountain biking
is open to these two boys as well?
Who, us?
Maybe, if you make it over there on the other side of the ocean.
Southern Germany meetup?
(40:12):
Charles also sent us an email. He says, hi, guys. I enjoyed the Terminal TUI challenge.
But you missed a browser. But maybe it hadn't been released at the time you were trying it.
Anyways, check out Chawan, the graphical TUI browser with JavaScript support, C-H-A-W-A-N.net.
It's a text mode, web browser, and pager for Unix-like systems with a focus
(40:34):
on implementing modern web standards while remaining self-contained,
easy to understand, and extensible.
It includes functionality like CSS, inline images inside the terminal,
and JavaScript through a small, independent browser engine.
It's written from scratch in the memory-safe NIMH programming language. Cool.
That's really neat.
(40:54):
It's in Homebrew, NixOS, and the AUR, and it looks like there's also an app
image. so go check it out neat.
But i thought only rust was memory safe.
I love to he sent us some geeking out about emacs too oh yeah.
Okay it does sixles or the kitty protocol so.
She'll play nice.
With kitty too.
Well that's good to hear.
Well matthew sent us a note here too hey regarding
(41:15):
the ask for a note taking and to-do list tools i'd
like to recommend a silver bullet it's very customizable if
you want it to be has built-in queryable database of tasks works on mobile and
desktop syncs between everything and is all marked down i found it suits my
brain very well indeed it allows me to have separate work and personal workflows
without causing friction or forcing me to work in a particular way i highly recommend it.
(41:39):
Oh i'd seen some other folks kind of chatting about this more generally so i've
been on my list to try but um yeah now with a little feedback from our smart audience yeah.
I appreciate that matthew silverbullet.md is the website gotta.
Love a queryable database of tests.
So i you know this isn't quite the same level but
what i decided to do after the show is i'm
(42:01):
giving obsidian one more go for task management it has this concept of a daily
note and then i found some plugins that allow me to pull tasks forward and render
them in kind of like this visual way and uh you kind of create the task with
a pretty simple markdown syntax so it might work for me we'll see it did work okay for me last week,
I don't think I'm quite in the zone yet, though. But thank you,
(42:24):
Matthew. Silverbullet.md. I may
keep that in the back of my mind if the Obsidian stuff doesn't work out.
Joe wrote in, answering the distro choice question in a FlatHub,
Flatpak-only world, I would still consider update and upgrade frequencies to be pretty key.
Fedora is six months and normally pretty solid, but I've seen some issues with
lesser-used hardware, that kind of thing, and so I might still prefer a longer LTS.
(42:49):
Also, I like flat packs for most desktop apps, but I think they could be a nightmare
for server-side services.
Apache, Samba, NFS, SFTP, they can be deployed a lot of ways,
and even the Docker files will often need to get updates or get specific packages.
File permissions and keyboard input are still edge cases, and it'd be sad to
lose all development to traditional package types.
(43:11):
Very true. Yeah, that I don't think can ever really fully go away,
because some of this is based on all of that.
But to your point about Fedora being six months and being pretty solid,
but sometimes a little edgy with certain hardware, I wonder if,
Joe, you would find Helium OS interesting.
(43:31):
So they just released version 10, and Helium OS is an atomic distro that uses
CentOS Stream and Alma Linux and kind of combines it together for a long-term
support plasma atomic desktop.
That could be pretty fascinating. I don't know if you get access to DNF still
or those types of things.
Because to your point, Flatpak isn't really a solution for server-side applications.
(43:57):
But containers, snaps, you know, modifying the base.
Like if this is, for example, if you had a server that was image-based,
you know, that's cloud native, you would probably just modify your base image
to include the Apache, Samba, NFS, and SFTP you needed. and then you would just
ship your image with that stuff baked in.
(44:18):
And for at least as long as we keep building things that way,
where we do have these base images built from individual packages,
I imagine we'll have to keep developing on those too.
For sure. And we did get some boosts we wanted to shout out this week.
A lot of people supported the show, but one of them stood out as our baller
booster, no doubt about it.
And that is Blackhost coming in with 100,000 sats.
(44:55):
Thank you, Blackhost. This is just helping you help me help us all.
Because, of course, that's the value for value cycle.
That came in live as we are going. So thank you, Blackhost, for the live boost and being our baller.
We really appreciate that that's going to turn around this episode right there
(45:18):
how about that injecting some last minute energy into the show as we go out
thank you black host really appreciate that.
Turd ferguson comes in with 64 000 cents.
There he is.
Duckstation dev is dropping linux support oh yeah the duck the duckstation dev
(45:38):
is dropping linux support and blocking arch builds fed up with quote headaches
and hacks for a two percent user base for something i don't use says to grip
the source for wayland to understand yeah.
I saw this i also saw something about their they said their license explicitly
prohibits linux packaging.
(45:58):
I looked at that very briefly. It seems like patching at least.
I don't know if it didn't actually say packaging to my read.
Oh, I thought they did say packaging. Maybe I misread that. Maybe I did.
You know, they do ship an app image.
But I'm not an expert on the license. But it just kind of shows you the intent going on here.
Well, and maybe a bit of the friction point that we were getting to last week too as well.
(46:21):
And this developer is getting quite fed up. You know, they're talking about
dropping support because it's, quote, 2% of the user base. I feel like we should
send people over to DuckStation, get more Linux users using it,
bring that number up, and maybe provide some helpful input.
They ship a Windows binary, a Mac binary, and an app image, and I think that's
probably their way of having you run it.
(46:41):
And we have seen other projects get frustrated by downstream packaging and adding certain patches to it.
A perennial Linux problem, unfortunately.
Yeah, but at the end of the day, it's end users that kind of suffer when these things happen.
So it is unfortunate to see the Duck Station developer do that. Thank you, Turd.
It is also just, I don't know, I sympathize with devs having to provide support,
(47:05):
but there's also just, you know, I like free and open source software,
and the code flows, and that means people are going to ship it in all kinds of ways.
True, true.
Well, A-Ron comes in with 50,000 sats.
(47:26):
On the network, has there been any talk or consideration around small embedded
systems like using ESP32s with Home Assistant or similar niche projects?
I was curious if you all had ever talked about doing a deep dive in this area
specifically for an episode.
Maybe best devices, use cases, gotchas, soldering techniques,
best practices, all of that.
(47:47):
I'd gladly appreciate it. i bought a
kit to build a lightsaber from the kyber temple and it is way more soldering
than i realized i know a little bit about this area but would like to know more
it's taking me probably 10 times longer to put it together than i probably should
but i'm having fun doing it a new hobby has been unlocked i'm sure my wife won't mind at all.
(48:09):
Well depending on where you are we could just send our roving brent technician to you.
This is quite true you.
Know that would work Although it may take a little longer than you expect,
but it's going to be done great.
And probably, you know, watch your budget for the food portion of the project.
That's true. That's true. So as you probably know, we did dive into some ESP
(48:30):
use cases in Linux Unplugged episode 620.
Yeah. And that episode called Brent Loves Building Things, because occasionally I do.
We did explore, I think, a little bit more of the
software side of things and how to integrate things
into home assistant and get your esp going with
some configurations but what i hear you saying here more is
kind of the physical part of it
(48:52):
as well like soldering you mentioned quite a bit
which is um i would say a set of skills that i have been developing only recently
as well and we certainly thanks to our dear producer jeff have a bunch of collective
knowledge about sort of shortcuts, what to use for connectors,
(49:13):
what to use as a great cheap soldering iron to get you started.
All these tips and tricks that I think a lot of us have been interested in as a shared hobby.
And of course, we should have expected that listeners would get interested too.
So that's a great idea for another episode in the future.
I will say the next one kind of on my radar, Aeron, is an ultrasonic sensor
(49:34):
that I can use to measure how full a tank is.
This is a great use for an ESP here and a little ultrasonic sensor.
But yeah, this is an idea we'll kick around some more because there is so much
to this ecosystem and I think probably just people fully wrapping their heads
around it is what's needed to really appreciate the value there.
Because you can buy things today that are built around the ESP32 platform and
(49:56):
it's inside the product. You don't even know it, but it can be pretty nice to
know what's actually in there.
So thank you very much. Appreciate it, Aaron. Nice to hear from you.
And I hope we'll hear from you again,
Marcel boosted in with 20,000 sats.
(50:17):
Way back in Linux Unplugged 4.28, you featured my project, RUT's message of
the day in the pics, R-U-T-S-M-O-T-D in the pics.
Well, version 2.0 was just released and it's better than ever.
The new feature that I am the most excited about is showing the status of your Docker Compose stacks.
(50:37):
Not only individual containers, it would be great to have some listeners go
and test on it for me and feature requests are welcome.
It's available in Nix and it's also in the AUR. So this is a neat idea.
So you'll log into your box on the terminal and you get, amongst other things
now, Docker Compose stats.
Brilliant idea, Marcel. Good to hear.
(50:59):
Rust message of the day.
Oh, was that a typo?
That's right.
Oh, it was a typo. Oh, okay. That was weird. There you go. Rust message of the
day. There we go. Now it's official.
And it is indeed written in Rust. Well, okay. It's 98.8% Rust because 1.2% is next.
Building it with nicks too i love it thank you marcel appreciate that.
(51:23):
Doornail 7887 comes in with a row of ducks,
With the slow shift to immutable, I wonder about offline and sensitive networks.
With RHEL packaging and Apple, we get one-shot approvals, easy ingress mirrors,
patching, all that kind of stuff.
If flatpacks are the future, it seems like it will complicate things for this
kind of use case, enterprise usage.
(51:44):
Another downside might be storage, and scientific computing application packages
add up quick. Am I missing an easy answer?
Well, I think the one thing that gives me some confidence that this won't be
a huge problem doornail is that these technologies could all be pointed at local repositories.
So if you use Flatpaks and you ship it with Flathub as default,
(52:07):
there's no reason why somebody couldn't.
If they were shipping their own internal image, they could modify that base
image to point to their own local repository for Flatpaks and their own local
repository for brew even or whatever it might be.
Now, your point is well taken that, well, that eats up a lot of storage.
But you could probably argue that you could probably whittle it down to just
the applications actually needed and the ones that are standard you would just
(52:29):
bake into the image anyway so there would be less packages that people probably
dynamically pull down because if it's a if it's a standard suite of applications
everybody's using you're just going to build that into the image anyways and
the user won't have to install that.
Well i mean flat pack does have some facilities for
that right in terms of relying on base images that other things yeah
right so if you are building your own and like they you can't actually take
advantage of that i do think you know uh to
(52:52):
the side where you're not necessarily missing something easy i think
is the side of just there probably is a fair amount of work in
this kind of thing anytime you get new formats that just all the
all the extra tooling on top right like the nexus
proxies the approval systems the integrations with other systems those may just
have to be stuff that people do work on as enough there's enough pressure to
(53:13):
to use these new systems but at least a lot of it is built on oci stuff and
so there's already some pressure there in terms of storage and deduple and um you know tools around it.
Well wine eagle has a series of boosts here totaling nine thousand and one satoshis,
Well, last week, my laptop's battery suddenly died.
(53:36):
When I booted again, my ButterFS plus LVM Luxe Partition was totally fried.
Whoa, whoa. I wonder if he hit this bug.
Maybe. Although totally fried sounds worse.
Yeah, I mean, but it does look totally fried because it's unmountable and it
won't boot. So you could consider it totally fried. Oh, Wine Eagle. Oh, no. Let us know.
Eagle continues here. Fearing a repeat, I formatted my laptop.
(54:01):
Up gaming pc and nas
to zfs on route thanks to nixos for making
it that easy but i made a huge mistake i
forgot not all my data on the server was in the pool many services kept data
in slash var slash lib whoops lesson learned on that one don't forget to set
(54:22):
data directories i almost gave my wife a heart attack regarding bitwarden thankfully
we were still logged in for the export Oof.
Well, I'm glad to hear this didn't go as poorly as it could have.
And thank you for telling us about it. I mean, I'm sorry to hear.
I should have made this point earlier in the show. I would like to point out
that you are actually more at
(54:42):
risk using ZFS with a kernel module that is developed outside the kernel.
Now, in this particular case, it was ButterFS that was impacted.
But if you think about it, a system that is properly integrated with the kernel had an entire team,
you know, I mean, dozens and dozens of people that were able to work on this
(55:03):
problem from the kernel side, the file system side, the distribution side,
the user side, they were all able to collectively work together to solve this
problem because it's GPL code and it's integrated into the kernel.
If it's an external module that is getting linked to the kernel,
it is actually more likely that internal changes to the kernel will break it.
And when it does break, which it is more likely to
(55:24):
do there will be less people that can collectively work
on it to solve the problem so you're not really safer with root on zfs now that
said zfs is a great file system the people that work on the kernel driver and
modules are very very professional and they try to do a great job and the kernel
team does everything they can to try to prevent breakage same is also true for
the butterfest developers,
(55:46):
So just being aware that when it's an external, if it's a proprietary driver
like for NVIDIA or a file system that has wonky drivers because Oracle,
or I mean wonky licenses, you are actually at more risk of this problem that bit ButterFS recently.
It just happens to be this time ButterFS was unlucky.
To Wineagle's point about setting data directories, that's just a handy thing
(56:10):
that tons of NixOS services have where you can just define where do you want
to store your data, and a lot of them default to slash var slash lib.
You can also like have that whole directory be a mount point somewhere else
if you want to. Lots of good ways to sort of make sure you put that data where you want.
It just sounds like that was a massive hassle. I mean, you know, scaring the wife.
(56:30):
Why do you go, I like that part I feel for you. Like I said just a moment ago,
I was picking up Obsidian again.
And so I opened up Obsidian and I opened up all, I opened up the extensions and I said update all.
And then I closed the settings window and all my notes were gone.
And i had a heart attack like i felt my heart sank and i and i and i i took a i took a beat,
(56:54):
and i closed the window and i realized it's okay it's it
should be marked down on the file system still so i i very quickly navigated
to the directory and i verified all of the markdown files were there and i very
quickly tarred them up set it aside and then opened up obsidian again and they
were all back but that that that feeling that gut punch of losing data it oh i hate that so much.
(57:15):
Sorry to hear you went through that, Wineagle. And thank you for the boost.
Jordan Bravo comes in with a row of ducks.
Hey, guys, I wanted to share that I made my first contribution to Nix packages.
Hey!
Nicely done.
Congratulations.
You can now find that package. It's called Rust Dress in Nix packages unstable.
It's a lightning address server written in Rust that also provides Noster NIP 5 name verification.
(57:41):
Shout out to Nitesh, the author of Rust Dress.
Hey, this is exactly what we need.
It does seem like kind of exactly what we need.
This is exactly what you and I were talking about this week.
Uh-huh. We'll have to check that out.
That's amazing.
Now with Jordan's package.
Jordan, thank you. And we needed it in Nix, too, because we have Bitcoin Nix nodes.
That's something we're working on the back end this week. And name verification
using NIP5 is, that's really the chef's kiss there.
(58:05):
Thank you for letting us know, Jordan. And thank you for the value. Appreciate it.
Well, Outdoor Geek boosted in 5,000 sats.
From Fosse in Portland, Oregon. AI generated reports of non-existent bugs are
clogging up bug bounty programs.
The talk on this plausible AI slop starts at about 6.43.00 in the schedule.
(58:30):
Really good layouts of the problem and an abstract. Any links to the recording?
Thank you, Outdoor Geek. I watched this this morning as we were preparing the show.
And I think my takeaway would be is possibly skip this talk and just go read
the Curl developer's complaints directly. because a lot of the talk this gal
gives is predicated on the fact that the curl developer is concerned.
(58:52):
So therefore she is concerned. She actually says that. And then I think actually
Outdoor Geek, she kind of builds a lot of straw man cases.
Well, I read on Reddit or I saw this blog post about one person complaining.
And I think it's not a bad talk and it is a problem.
But it feels like one of those things that we're getting really worked up about
(59:12):
that will come to a resolution.
And so I don't necessarily love the fear-mongering. I mean, the reality is it
creates an issue today, but the tools will get better over time,
and the tools on the other side will get better over time.
And one thing I think we should keep in mind, and I'm not saying this is the
direction it's going to go, but I think this is just something to keep in the back of our mind.
In the free software and open source community, we're constantly saying we want
(59:35):
to bring in new people. We want the new generation to come in,
the next generation. We need more people contributing.
Well, maybe this is how new people contribute. Because I don't necessarily buy
into this sort of unspoken theory that's being floated that there's all these
bots out there that are auto-generating patches and bug reports and then somehow
submitting them to projects.
(59:56):
I don't buy the idea that LLMs are spinning up on their own and then bots are
using them autonomously to generate all of this.
I think it's more likely that it's people that are
seeking kind of glory they're looking for recognition
they have a favorite project they want to contribute to and this is their perhaps
they don't speak English these types of things and this is their way to now
(01:00:18):
have a tool and an avenue to contribute for the first time and they're doing
so and the results I'm not saying that's all of it some of it probably is bought
traffic but that is costly.
What I'm saying is we may, in our effort, to hate everything that's AI,
because what that gal proposes is some sort of global ban list where you start banning people.
(01:00:39):
And if I ban them, then you automatically ban them and we all ban them together.
I think before we start getting into some sort of global ban list,
we need to consider that who we might be banning are the very new contributors
that we want to come join us.
And the reality is these tools are likely going to get better.
And when they do get better, these people may be contributing something of value.
(01:01:00):
Maybe it's only one out of three, but that's something.
And then if the tools on the other side get better to manage it,
there actually may be a decent middle ground here.
But if we are getting all worked up about it now while these tools are still
nascent and the social issues haven't been worked out yet and the culture hasn't
been established yet, but we take these sort of dramatic hyperbolic reactions
with global ban lists and things like that,
(01:01:21):
I think we may actually be blocking future contributors to free software in
our attempt to reduce spam.
And so it's a very complicated topic, and I don't think it really got the full justice it deserves.
And I think what I would recommend is people just go look up the curl developers
concerned about AI slop.
And keep in mind that it's an evolving problem. But I really appreciate that
(01:01:42):
because it was a great video to watch this morning. Thank you, Outdoor Geek.
Well, look, it's PJ there, and he comes in with a big old double,
I guess, duck boosts, which would be an Aflac.
4,444 sats.
Cornish game head boost?
Mmm, we got to get that. And he just says one thing and says it boldly.
(01:02:02):
Thank you, PJ. Appreciate that.
And I pulled up Brewer Seth just because why not 500 sats to us just to say
enjoyed this show this week for 625.
Well, thank you. Appreciate that. Thank you, everybody who boosts.
We do have a 2,000-sat cutoff for airtime, but every now and then we pull a
few forward and we appreciate everybody who boosts or stream sats as they listen,
(01:02:23):
which is really neat too. You're just streaming those over a peer-to-peer network
as you listen to the show.
18 of you did that, and we stacked 18,670 sats that way.
Now, thanks to our baller boosters, we stacked a healthy 276,602 sats.
(01:02:48):
Thank you, everybody. Appreciate that. Of course, our members who set that support
on Autopilot and those of you who took the time to set up a boost and send it in.
Fountain.fm really makes it easy because they host the wallet for you and really
just walk you through the process of connecting it to, like,
Strike or Stripe or other fiat systems as well.
But, of course, there's an entire self-hosted stack out there, all open source.
(01:03:10):
That journey starts at podcastapps.com. Thank you so much for supporting episode
626 of the Unplugged program. It means the world to us.
Now we have a few good picks this week. A few good picks, Wes.
And I bet you're a little surprised by this one.
I don't think we've ever really had one in this category before.
(01:03:33):
It's called Plex Ripper, and it is a cross-platform Plex media downloader that
seamlessly adds media from your friends' Plex servers to your own.
Okay, so we've gone past the part where we rip the DVDs into Plex.
Right.
Now we rip out of Plex.
Yeah, buddy.
Or get back into another.
You got a buddy who's been backing up your media for you, I guess?
(01:03:55):
It's a neat idea because you establish a Plex content network,
which is, I think, the core feature that Plex still offers over Jellyfin for some people.
And this thing has a really nice interface. You can run it as a container if you like.
And you can even log into multiple Plex accounts. And it has a back end that's
multi-threaded. and resumes downloads.
It's ready for some big rips.
(01:04:16):
Yeah, dude. I mean, it's a fun idea. I will be honest with you.
Plex and I are no longer together, and I've been happily seeing Jellyfin now
for a while, but if I still ran Plex...
I mean, this is a pretty cool idea.
Oh, there's also guides for Unraid and Synology. So you don't have to have a
crazy self-hosted super setup or anything.
(01:04:36):
It's GPL3, but they say they prohibit downloading content from servers without
proper authorization. They say if you use a tool to bypass copyright, you can't do that.
Or you can't use it to circumvent restrictions. So it won't download Plex Pass stuff.
Yeah, that makes sense. Written in C Sharp. Interesting. Cool.
GPL3. Then this next one, it's just for us Plasma users out there.
(01:04:57):
But Wes and I came across a couple of handy Plasma add-ons recently.
This first one, I'm a little embarrassed that I'm recommending because it is
inspired by macOS a little bit.
And I generally don't go that way. It's KDE Control Station.
And it's a widget you can add to your desktop or to your toolbar.
And it gives you a menu to really easily toggle things like do not disturb,
(01:05:21):
Wi-Fi, Bluetooth, display brightness, system volume, night dark mode,
night mode, battery status, log in, log out, all in one little menu.
Where Plasma sort of separates those out into about four different menus right
now, this is all in one spot.
But it is using a Mac-inspired UI, which I'm not a fan of, but the functionality
(01:05:43):
is good enough that I'm going to suck that up, and I'm going to recommend it
to you this week. So it's KDE Control Station.
If you're already running Plasma, you can actually just go add a widget and
go where you can search widgets and just put in KDE Control Station,
and it'll come up for you.
Yeah, I just thought that, I mean, it seemed handy enough. The look,
okay, do what you will with that, but it is nice functionality.
And now how about this one?
(01:06:05):
Kairpods native airpod integration for the plasma 6 desktop with real-time battery
monitoring noise control and a panel widget,
I was always shocked that you could pair AirPods at all to a Linux desktop,
but you missed all these features.
Now, with this widget, you can toggle things like their sound transparency mode,
(01:06:27):
or you can turn on active noise blocking.
You get individual pod battery level.
This really is kind of that last piece that was missing on the Linux desktop.
And I'm bringing this up again because I know AirPods are very popular,
and there's probably some of you out there that have this. And also,
this is a GPL add-on as well, GPL3.
(01:06:48):
Written in Rust.
Oh, it is. Well, there you go. You got one more in there.
Now, you have a pair of Sony AirPods, right? Yeah. Do those pair okay with the Linux desktop?
They do, especially under PipeWire. Really no issues.
I have the PixelPods. That's what I use. And they also pair with the Linux desktop.
But I don't have any control for the noise stuff. You probably don't with the
(01:07:09):
Sonys either, I would imagine.
No, that's true.
That's a nice feature.
Yeah.
That is really nice to see.
Sophisticated.
Mm-hmm.
What a weird world. Suddenly, AirPods might be a great option for your Linux desktop.
Yeah, yeah. Well, there you go. Links to all of that in the show notes,
which you will find over at linuxunplugged.com slash 626.
Remember, too, we also want to know if you've been spooked off of ButterFS or
(01:07:30):
if you have any file system war stories that you'd like to share with us,
recent or not. It's funny. I was just saying we haven't heard very many file system issues.
And then, there we go.
Oh, wow, that's crazy.
But we love hearing those things, war stories, and your success stories.
That's true. That's true. And also, if you're crazy enough to run ButterFS en
(01:07:51):
route, of course, over here, Wes Payne's running BcacheFS.
This is true.
Yeah.
Yeah. Why not join us live? Make it a Tuesday on a Sunday.
We start the show at Sunday, 10 a.m. Pacific, 1 p.m.
Eastern, in your local time over at jupiterbroadcasting.com slash calendar.
Anything that supports an audio stream an icecast stream just plug in jblive.fm
(01:08:14):
and tune in or get a podcasting 2.0 app because you also get that's your part,
transcripts chapters you do do I have to remind you now no we gotta remind them well.
Yeah we do gotta remind.
Them and the live stream it's all in there cloud.
Chapters no less.
Okay you.
Don't undersell these.
Chapters super fancy both.
Baked into the file and JSON on the cloud.
(01:08:36):
Boom thank you for join us. See you right back here next Sunday.