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