LINUX Unplugged - 626: The Btrfs Blues

Episode Date: August 4, 2025

A Btrfs bug that bites is in the wild, and we discover whole home audio that works like a charm.Sponsored By:Managed Nebula: Meet Managed Nebula from Defined Networking. A decentralized VPN built on t...he open-source Nebula platform that we love. 1Password Extended Access Management: 1Password Extended Access Management is a device trust solution for companies with Okta, and they ensure that if a device isn't trusted and secure, it can't log into your cloud apps. Unraid: A powerful, easy operating system for servers and storage. Maximize your hardware with unmatched flexibility. Support LINUX UnpluggedLinks:💥 Gets Sats Quick and Easy with Strike📻 LINUX Unplugged on Fountain.FMHow to recover from BTRFS errors | Support | SUSEbtrfs-zero-log(8) — btrfs-progs — Debian Manpages — This command will clear the filesystem log tree. This may fix a specific set of problem when the filesystem mount fails due to the log replay.2018 PatchGit: Btrfs: fix warning when replaying log after fsync of a tmpfileGit: btrfs: fix fsync of files with no hard links not persisting deletionproblematic patch pulled into 6.16 on May 26thproblematic patch pulled into 6.15.3 on June 19thIncreased reports since 6.15.3 of corruption within the log tree - Peter JungNull deref during attempted replay of corrupt TREE_LOG in newer kernel - Russell HaleySystem failed to boot – Btrfs log tree error / System Administration / Arch Linux ForumsPATCH: btrfs: fix log tree replay failure due to file with 0 links and extents — When attempting to mount the fs, the log replay will fail patch on for-next branch of btrfs treegeneric: test fsync of file with 0 links and extentsMusic Assistant — Music Assistant is a music library manager for your offline and online music sources which can easily stream your favourite music to a wide range of supported players and be combined with the power of Home Assistant!Music Assistant Installation InstructionsInstallation InstructionsMusic Assistant Music ProvidersMusic Assistant Player ProvidersHome Assistant PluginHome Assistant Voice Preview Edition - Home AssistantSYMFONISK Sonos WiFi bookshelf speaker, black smart/gen 2 - IKEA USHomePod - AppleBelkin SoundForm Connect AirPlay 2 Adapter & Airplay 2 ReceiverWiiM Mini AirPlay 2 Wireless Audio StreamerGoogle Chromecast - Streaming Device with HDMI CableGoogle Chromecast Audio Media Streamer - *** 2 PACK *** | eBaydroans/mass_queue — Actions to control player queues for Music Assistantpunxaphil/maxi-media-player — Media card for Home Assistant UI with a focus on managing multiple media players, but not excluding single player setups.NinDTendo/homeassistant_gradual_volume_control — Home Assistant integration providing a service to gradually change the volume of media_players over a given timespan.Chawan: TUI web browser — A text-mode web browser and pager for Unix-like systems, with a focus on implementing modern web standards while remaining self-contained, easy to understand and extensible.SilverBullet — SilverBullet is a tool to develop, organize, and structure your personal knowledge and to make it universally accessible across all your devices.HeliumOS — An atomic desktop operating system for your devices.LINUX Unplugged 620 - Brent Loves Building Things — Off-the-shelf didn’t cut it, so we built what we needed using open hardware and open source.rust-motd — Beautiful, useful, configurable MOTD generation with zero runtime dependenciesrustdress — Self hosted Lightning Address Serverrustdress: init at 0.5.2 by jordan-bravorustdress in nixpkgsPlausible Slop: Generative AI and Open Source CybersecurityPlausible Slop Timecode LinkDeath by a thousand slops | daniel.haxx.sePick: PlexRipper — A cross-platform Plex media downloader that seamlessly adds media from other Plex servers to your own!PlexRipper DocsPick: kde-control-station — A modern configuration center for KDE plasma based on the awesome kde_controlcentre by Prayag2Pick: kAirPods — Native AirPods integration for KDE Plasma 6 with real-time battery monitoring, noise control, and panel widgetAmilieCoding/gnomePods — Native AirPods integration for GNOME with real-time battery monitoring, noise control, and panel widget. Built off of kAirPods

Transcript
Discussion (0)
Starting point is 00:00:00 Hello friends and welcome back to your weekly Linux talk show. My name is Chris. My name is Wes. And my name is Brent. Hello gentlemen, we're 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 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
Starting point is 00:00:47 time of probes to our virtual lug. Hello, MumbleRoom. Hello, Chris. Hello, Chris. Hello, Chris. Hello, everybody in the MumbleRoom. Thank you very much for joining us over 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.
Starting point is 00:01:17 I have. Yeah, you're getting to 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 is decentralized design Means that you can build out your own network as you like and make it as resilient as you need.
Starting point is 00:01:48 So great for a home lab, great for a global enterprise, whether 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. And they're starting to roll out desktop clients. It's gonna get even easier to use Nebula, which I'm really excited about, because anything that just opens us up to more users is gonna be fantastic. And Nebula takes advantage of things like
Starting point is 00:02:17 the noise protocol framework for key exchange and symmetric encryption, so you know they're using good stuff in there. And whether you wanna self-host the entire infrastructure or you want to check 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
Starting point is 00:02:42 at define.net slash unplugged. 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 side cars 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 an hour or so,
Starting point is 00:03:11 just for sort of office hours. Nice, simple meetup right there. No meetup page required. Just where is it? The Casbar 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.
Starting point is 00:03:26 You don't even have to be at Def Con if you're just in the Vegas area. That's true too. Come say hi to Westpane. Absolutely. Brent and I can attest he's a delight to hang out without a bar. Or at dinner. Wherever it is. So do recommend you go check it out.
Starting point is 00:03:39 And where do they go for details? Is it nix.vegas? Is that, or is it, do they have a website? That's right, yeah, nix.vegas. There's, or is it, do they have a website? That's right, yeah, nix.vegas. No, there's a dot, 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 ButterFS users on more recent kernels like 6.16 and 6.15.3.
Starting point is 00:04:02 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 has left some systems unbootable.
Starting point is 00:04:19 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 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.
Starting point is 00:04:38 Yeah. Okay, so copy and 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 like the database world or the 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 that you're doing, especially because like, you know, 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
Starting point is 00:05:10 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. But the snapshot version has it. So there's a bunch of bookkeeping and updates when you go to like, you know, LS that directory, it actually points at that updated copy and not the old copy. But the snapshot version has it.
Starting point is 00:05:27 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 gonna 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.
Starting point is 00:05:46 And then you can kind of check to see like, do I need, is it, 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,
Starting point is 00:06:03 where they're getting pretty current kernels and they're using Butter FS on the root, they experienced some 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 basically
Starting point is 00:06:32 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 fsync 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 going again, is you run butterfs rescue, which is a whole sub command for rescue commands, and then zero dash log.
Starting point is 00:07:02 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 gonna complain with the same thing. I think there is also a mount option you can do
Starting point is 00:07:16 to say like skip replay, but. 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. It's just, it kind of has an interesting history.
Starting point is 00: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 f-sync of a temp file and the thing with temp files is there they generally like they're meant to be discarded at reboot Right, and so they they don't actually like have any extents on disk They just sort of have like the I know 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?
Starting point is 00:08:03 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. Because you basically have two sides of this. When you're going to do an operation, you write into the log to say, I'm about to do X, right? I'm about to delete this temp file, say.
Starting point is 00:08:20 So before I take the action, I log that I'm gonna 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, we don't really care about these temp files in the log anyway, so we'll stop adding new stuff to the log going forward.
Starting point is 00:08:43 And when we're in replay mode, we'll just skip these. Cause they're gonna 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 when they're writing this patch. There's multiple different stages you can be in replay. And so there's one called replay inodes,
Starting point is 00:09:00 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 and had an unclean,
Starting point is 00:09:22 or you were mounting something unclean shut down 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 615 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 It just by no longer putting this like these temp files 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 counting kind of was broken the other way, where instead of like losing stuff, it would keep stuff
Starting point is 00:10:02 you were trying to delete around. So not a huge issue, but it's like incorrect behavior according to how you expect the file system to work. Kind of crufty over time. Yeah, exactly. If we fsync 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 like fix this by not ignoring
Starting point is 00:10:27 inodes with zero hard links. 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 kinda need something to happen weird with the file system when you have stuff to replay in there.
Starting point is 00:10:47 It has to be triggered by some kind of event. Yeah. It doesn't just happen if you got Butter FS and it's running and you have 6.16. 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 6.16
Starting point is 00:11:01 and it is Butter FS on route. So that's why I was curious if, yeah, that's, it has to be, I'd have to crash or something. Crash or yeah, maybe, I don't know. So it could be like something, maybe there's a, yeah, kernel has a problem and it forces the file system offline without doing it correctly. Out of memory kill something, I mean, you never know. So it gets like, this gets thrown out there
Starting point is 00:11:17 sometime in May in the Linux Butterfess lists and kind of gets, and then eventually gets pulled in for 6.16 and then once that kind of gets pushed along, it also gets backported to 6.15.3 and you can see it's just this one commit from there that as 6.15.3 started rolling out pretty much by a week later or so, kind of the end of June 26th, 27th, cache EOS users were some of the first folks who really started running into these things. And then by July 7th or so, a kernel mailing list thread gets going and people start trying to...
Starting point is 00:11:51 It's a good collective effort. The Cache folks, Arch folks, Fedora folks, they're all kind of like... And Butterfest developers. Yeah, they're reaching out to the Butterfest devs who are kind of like, well, we really need dmessage output or more than just the one error. They had to work out 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
Starting point is 00:12:12 by proxy right where like the distro folks are talking 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.
Starting point is 00: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 Yeah, but that got proposed to the Linux ButterFS list, so presumably that will get pulled into 6.17, and then probably backcorded as well, but that's all gonna take time. And in the meantime, if this were to happen to you,
Starting point is 00:12:54 you could go into a live environment, run that rescue command, and you'd be all right. 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?
Starting point is 00:13:11 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 1,000, but I don't know. Yeah, I don't know. Because it's kind of like you have to have some event that triggers it, and you have to be on 6.16 or 6 15 3 or newer and with butterfests as root
Starting point is 00:13:29 Yeah, yeah, I mean it could be on a knot 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 know definitely folks who have self-reported also having sort of known sketchy power supplies or source or situation. That'll do it Yeah, it is worth calling out here. This has all been The initial issue as part of fixing a bunch of other stuff have there's all been the same person's work across the years Felipe Manana from Suce has been
Starting point is 00:14:04 responsible for fixing up all kinds of Butter FS issues and working on the file system. And it just works out that 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 exactly these kinds of things that make file systems, you know, so hard to debug. I mean, 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
Starting point is 00:14:42 failure and like there's all kinds of failure points where you can have happen to the file system And take cases edge cases that are just hard hard to test 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 them I wanted to get that info out at the top of the show because like my system just updated 616 fedora users are obtained So it's something to be aware of a butter FS is still safe to use. So let us know, does this give you any pause using Butter FS? Did it bite you maybe? I hope not. But if so, please tell us. 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,
Starting point is 00:15:17 but maybe I'm wrong or maybe you have one from the past. Boostin, it's a great way to support the show and we love reading those messages. It is kind of funny just, you know, course, it's the mechanism in the file system to be robust That is in fact causing the problem 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 second order effects is what I'm trying to say. It's not just what you change It's all that changes around you order effects is what I'm trying to say. It's not just what you change, it's all the changes around you. OnePassword.com slash unplugged. Take the first step to better security for your
Starting point is 00:15:52 team by securing credentials and protecting every application, even unmanaged shadow IT. Go learn more at OnePassword.com slash unplugged. This is number one password dot com slash unplugged all This is number one, password.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. More devices, more identities, and more applications,
Starting point is 00:16:17 and it becomes a mountain of security risks over time. But fortunately, you can conquer that mountain of security risks with one password, 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. And I kind of get it. You know, you've got SaaS sprawl essentially happening.
Starting point is 00:16:38 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 One Password can discover and secure access to all your apps, managed or not. See, Trellica by One Password inventories every app in use at your company. Then, pre-populated app profiles assess SAS risks,
Starting point is 00:17:05 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 and meet compliance goals. Cetrelika by One Password provides a complete solution for SAS access governance.
Starting point is 00:17:25 And it's just one of the ways extended access management helps teams strengthen compliance and security. You know OnePassword and their award-winning password manager. Now go check out Extended Access Management and Trellica. You can take the first steps to better security for your team by securing credentials and protecting every application, even the unmanaged ones.
Starting point is 00:17:45 Go find out more and support the show. You go to onepassword.com slash unplugged. That is the number one password.com slash unplugged. Well, Chris, you teased about whole home audio, and when I've been in Lady Joops, 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.
Starting point is 00:18:14 And my whole home audio solution has been HomePod audio for years now. And it's embarrassing. And... I mean, you're a big Mac guy. Yeah, yeah. Yeah, it's really great because of your ecosystem. Well, you're a big homebody guy, anyway. I love the ecosystem, Wes.
Starting point is 00:18:29 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,
Starting point is 00:18:43 and then ideally create subgroups for like the living room and 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 and 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.
Starting point is 00:19:01 And so I have dabbled in a lot of different things. We 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, 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
Starting point is 00:19:31 them and mix them. 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 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,
Starting point is 00:20:07 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. 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 title account.
Starting point is 00:20:32 It was exceptionally easy to integrate it into title. Once you're, you know, if you're logged into your title account, it's just a, would you like to authorize app? It synchronizes all your playlists. So this is nice because my wife creates playlists pretty frequently, and then they are immediately available on the music assistant within, you know, the next time she goes to use it. That's great.
Starting point is 00:20:49 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 of that in a moment. Were you able to just do like a point it at a folder? How does the, for your flax, like that sort of? Yes.
Starting point is 00:21:10 So you have a lot of options there. You can point it at a Samba share 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 2.
Starting point is 00:21:23 And one of them that a lot of us have out there is Chromecast. 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 still have a Chromecast audio, that works. Yeah, I got to go to my Google TV. It took a little bit. There was some discovery process
Starting point is 00:21:46 I toggled it on and off once 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 And so you have to make sure that's getting passed through to the application So we 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 to 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 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 it
Starting point is 00:22:14 going. It does take a minute to discover. I think the other one that works really well 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 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?
Starting point is 00:22:45 Yeah, it does, you know, announcements and stuff like that too. AirPlay. So any AirPlay target that's not the Apple TV, 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,
Starting point is 00:23:08 and it has an aux out port. It's really nice. So that was the direction I thought I would go. 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.
Starting point is 00:23:28 And while you could definitely do that, and I think it would work really well, because you know, it's all an open ecosystem, the prices are pretty good. What I discovered is that the open source community has so successfully reverse engineered AirPlay that the AirPlay supporting 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 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 home pods they do sound
Starting point is 00:24:02 good. Just go check the Koder 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. It really is bonkers. And it's crazy how good it works with music assistant.
Starting point is 00:24:22 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 symphonic speakers. Oh IKEA speakers huh? 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.
Starting point is 00:24:57 And the Home Assistant community and the Music Assistant community rave about these. So they range, depending on where you buy them 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,
Starting point is 00:25:20 you plug them in, hook them up to your network, and then Music Assistant will automatically discover them and they just work. And you can play them in, 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 out ports.
Starting point is 00:25:39 Oh, now that is something. 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 you can just sort of target it with the music assistant
Starting point is 00:26:06 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 Which is a progressive web app to all your music and your audiobooks from all your different approval factor high, family approval factor high. Because having Music Assistant and having one interface, which is a progressive web app, to all your music and your audio books from all your different,
Starting point is 00:26:28 you can put Apple Music in there, you can put Spotify in there, you can put Tidal in there, you can put SoundCloud in there, these are like, there's dozens you can add. It searches, I think it's the iTunes index, but it searches that for podcasts, or you can just put in RSS feeds manually.
Starting point is 00:26:42 Yes, too, so you can do that as well. So while that is nice to have and then manage all of that from one interface, what 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 queue things up.
Starting point is 00:27:04 So I've designed, we have a media card. We have a media dashboard. 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 audiobooks and selecting which speakers it plays on and I'll have links to these
Starting point is 00:27:28 in the show notes but this is how the family interfaces with this right they're not loading the music assistant app entirely through they're going to the tablet they already manage stuff in the home with going to the media tab and then just selecting the playlist and it's just it plays I'm gonna have to check that out because so far I did get like the very defaults auto discovered like it can detect and control the music assistant state in home assistant side I'm gonna have to check that out because so far I did get like the very defaults auto discovered like It can detect to control the music assistant state in home assistant side, but I hadn't gone past that So when you install the music assistant integration into home assistant, they find each other
Starting point is 00:27:57 In fact, you can if you have a hasso s music assistant is just an add-on You can just install from within hasso s and it all just connects up But I run on a separate machine and they discover each other over the DNS broadcast stuff Music Assistant is just an add-on you can just install from within HasOS and it all just connects up. But I run it 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 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, which is a couple of, you know, you choose a few boxes.
Starting point is 00:28:29 And then, where I took it to the next level, and I'm very proud of this, it's that audio bookshelf integration. 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.
Starting point is 00:28:54 You push a button and I've labeled it book and you hit that 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. 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 0% over 25 seconds. So the book fades out quietly and then it stops playback.
Starting point is 00:29:34 That's, that's, wow. This is bonkers. I want to take a nap at your house. It is so nice because it takes something that is rather complicated, right? And it just automates it with a push of a button because the automation is happening to Home Assistant. I've told Home Assistant when this button is pressed, go play that audio book at its last position.
Starting point is 00:29:54 Audio Bookshelf server is remembering the position. So when Music Assistant requests that, Audio Bookshelf is handling that aspect of like the metadata and whatnot. But what's really neat about it is none of my devices are in use. So I no longer need to bring the phone to the bedroom to listen to the audiobook. I can leave the phone out in the charging area. Right? 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 back-end infrastructure so I can be rebooting my phone, I could be not using my phone, my phone could be off, whatever. It doesn't matter because
Starting point is 00:30:33 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 for playlists. And so some of our favorite playlists are one button away, and then it starts playing on all the speakers
Starting point is 00:30:59 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, it plays. You get that dump and tanks playlist. You sure could.
Starting point is 00:31:14 You know, or like I'm on the way home, I open up the Home Assistant app on the phone, I hit the playlist so the wife knows I'm coming home. It's, you know, 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
Starting point is 00:31:28 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 that builds on top of itself. So first you get the Home Assistant running, then you get Z-Wave going,
Starting point is 00:31:45 and then you get buttons figured out, and then you start stacking this 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,
Starting point is 00: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
Starting point is 00:32:17 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 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
Starting point is 00:32:34 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, because you have to go get some cookie for YouTube DLP. That's a bummer.
Starting point is 00:32:49 But you need, you know, YouTube DLP 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 assistants struggles is if you mix protocols. So if you mix AirPlay and Chromecast or Homecast, Home Assistant Cast and AirPlay or whatever.
Starting point is 00:33:15 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. And so where it seems to really nail it is if you have the same type of protocol for the 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
Starting point is 00:33:48 for all the speakers you're playing to, it seems to just really nail synced audio, especially with AirPlay. 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 wanna be able to have the same content like a podcast or streaming radio,
Starting point is 00:34:04 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 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.
Starting point is 00:34:29 But having probably used Home Assistant in this entire stack for five years or so, somewhere around there, maybe six, Music Assistant really feels like it's 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 Homelessness 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. Yeah, true. So if you add a podcast like ours
Starting point is 00:35:01 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 listen to. Unless maybe you're some sort of database hacker and you could go in there and fix it that way.
Starting point is 00:35:24 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,
Starting point is 00:35:40 you mix it with Home Assistant. Unraid.net slash unplugged. Unleash your hardware. I don't know. You mix it with Home Assistant. You can join the 20-day birthday bash packed with 20% off select licenses and 20% off all new merch No purchase necessary giveaways are throughout the celebration. It's all gonna lead up to the grand finale on August 30th there will be a live virtual event with unraids founder and Also several others from unraid where they're gonna 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 in RSVP now to celebrate two decades of self-hosting innovation with the Unraid community. Go to unraid.net slash unplugged. 20 years if you can believe it and Unraid continues to get better and better. Around the corner, not too far out, will be Udraid 7.2.
Starting point is 00:36:47 7.1 is a blow away release, but 7.2 is going to bring things that people that use the web dashboard or are looking for a full featured API, no spoilers, but people that might be interested in those things, or maybe even NTFS support and extended force 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
Starting point is 00:37:14 structure and if you go to unraid.net slash unplugged you can try it for free for 30 days. 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 shoutouts for new members of Jupiter Party We want to say hi to the party to Kyle Quinn Like last week, we do have some shout-outs for new members of Jupiter Party.
Starting point is 00:37:45 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- version of the show, 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
Starting point is 00:38:12 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. This week, you might get tired talk. Yeah, I feel like you did get a little tired talk. That's true.
Starting point is 00:38:35 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. Yeah, that's true. I'm not even anti-CBDs,
Starting point is 00:38:51 but like we've been getting hit up by a lot of CBD makers. Oh, I mean not a lot, but in the last month, I've heard from three different CBD makers who wanna sell their product directly. I don't, I think this is like, it's like, it's really nice just being in the position to say no thank you.
Starting point is 00:39:06 So that goes to our members and same with Dynamic Ads and also to our boosters too. Thank you everybody. We really appreciate you. Another round of applause to those new members. We've got some emails too Wes. Sebastian wrote in, long time listener, writing in with some rare critical feedback.
Starting point is 00:39:22 Zotero deserves way more love. It's one of the most important open source projects, especially in the closed world of academic publishing. 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
Starting point is 00:39:47 So if there's anything in my field I can do for you over from the ocean Let me know also if Brent ever ends up in the southern part of Germany 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 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?
Starting point is 00:40:12 Charles also sent us an email. He says, hi, guys, I enjoyed the Terminal 2E 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 2E browser with JavaScript support, C-H-A-W-A-N dot net. you were trying it. Anyways, check out Chawan, the graphical 2-E browser with JavaScript support chawan.net.
Starting point is 00:40:25 It's a text mode web browser and pager for Unix-like systems, with a focus 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 NIM programming language. Wow. Cool. That's really neat.
Starting point is 00:40:55 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, too. He sent us some geeking out about emacs, too. Oh, yeah, okay It does sixes 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
Starting point is 00:41:14 Hey regarding the ask for a note taking and to-do list tools 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. 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.
Starting point is 00:41:50 Yeah, I appreciate that, Matthew. Silverbullet.md is the website. Gotta love a queryable database of tasks. So I, you know, this isn't quite the same level, but what I decided to do after the show is I'm 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 you kind of create the task with a pretty simple markdown syntax.
Starting point is 00:42:16 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, Matthew. SilverBullet.md. I may keep that in the zone yet though. But thank you 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 flat hub flat pack only world,
Starting point is 00:42:35 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. 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. Very true. Yeah, that I don't think can ever really fully go away.
Starting point is 00:43:15 Because some of this is based on all of that. But to your point about Fedora being six months and being a pretty solid, but sometimes a little a little, you know, edgy with certain hardware. I wonder if, Joe, you would find Helium OS interesting. So they just released version 10, and Helium OS is an atomic distro
Starting point is 00:43:37 that uses CentOS Stream and AlmaLinux, 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. 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 was cloud-native, you know, modifying the base. Like if this is, for example, if you had a server that was image-based, you know, that was cloud native,
Starting point is 00:44:08 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. 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. Boostergram. And we did get some boosts we wanted to shout out this week. A lot of people supported the show.
Starting point is 00:44:32 But one of them stood out as our baller booster no doubt about it, and that is Blackhost coming in with 100,000 SETS! thousand sets. Hey Rich Lifestyle! You're the best around nothing's gonna ever keep you down You're the best around nothing's gonna ever keep you down, you're the best Thank you Black Hosts is just helping you
Starting point is 00:44:58 help me help us all because of course that's the value for value cycle. Thank you for helping us help you help us all because of course That's the value for value cycle Thank you for helping us help you help us all that came in live as we are going So thank you black holes for the live boost and being our baller. You're doing very well We really appreciate that I that's gonna turn around this episode right there How about that injecting some last-minute energy into the show as we go out? Thank you black host really. Really appreciate that.
Starting point is 00:45:25 Turd Ferguson comes in with 64,000 cents. There he is. Turd Ferguson. Duxstation Dev is dropping Linux support. Oh yeah. The Duxstation Dev is dropping Linux support and blocking Arch builds. Fed up with quote, headaches and hacks
Starting point is 00:45:44 for a 2% 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. 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 it's a they do ship an app image but I'm not an expert on the license but
Starting point is 00:46:13 it just kind of shows you the intent going on here. Well and and maybe a bit of the friction point that we were getting to last week too as well 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. And we have seen other projects get frustrated by downstream packaging and adding certain patches to it. A perennial Linux problem, unfortunately.
Starting point is 00:46:49 Yeah, 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 DuckStation developer do that. Thank you, Turd. It is also just, I don't know. I sympathize with devs having to provide support, but there's also just, you know, I like free and open source software and the code flows and that means, you know, people are going to ship it in all kinds of ways.
Starting point is 00:47:14 True, true. Well, A-A-Ron comes in with 50,000 sets. Where is A-A-Ron right now? I hoard that which all kind covet. A-A-Ron! 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,
Starting point is 00:47:45 soldering techniques, best practices, all of that, I'd gladly appreciate it. I bought a kit to build a lightsaber from the Khyber 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,
Starting point is 00:48:04 but I'm having fun doing it. A new hobby has been unlocked. I'm sure my wife won't mind at all. 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.
Starting point is 00:48:25 That's true, that's true. So as you probably know, we did dive in to some ESP 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.
Starting point is 00:48:48 But what I hear you saying here more is kind of the physical part of it as well. Like soldering, you mentioned quite a bit, which is, 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,
Starting point is 00: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 that I can use to measure how full a tank is. This
Starting point is 00:49:37 is a great use for an ESP here in 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 you can buy things today that are built around the esp32 platform and There 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 a Iran nice to hear from you. I hate building PCs. I hope we'll hear from you again. A Aeron! Marcel boosted in with 20,000 sats. Way back in Linux Unplugged 4.28, you featured my project R's message of the day in the PIX.
Starting point is 00:50:25 R-U-T-S-M-O-T-D in the PIX. 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. 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
Starting point is 00:50:54 compose stats. Brilliant idea, Marcel. Good to hear. Rust message of the day. Oh, was that a typo? That's right. Oh, it was a typo. Oh, okay.
Starting point is 00:51:04 That's like, that was weird. There you go. Rust message of the day. There we go. There now it's, now it's official. And it is indeed written in, well, okay. It's 98.8% Rust because 1.2% is Nix. Dealing with Nix too. I love it. Thank you, Marcel. Appreciate that. Doornail7887 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 Flap Packs are the future, it seems like it will complicate things for this kind of use case, enterprise usage. Another downside might be storage in 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 to dore nail is
Starting point is 00:51:57 that these technologies could all be pointed at local repositories. So they don't, so if you use flat packs and you ship it with FlatHub as default, 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.
Starting point is 00:52:17 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 bake into the image anyway. So there would be less packages that people probably dynamically pull down because 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.
Starting point is 00:52:40 Well, I mean Flatpak does have some facilities for that, right, in terms of relying on base images that other things can build on. Yeah, right. So if you are building your own and like you can actually take advantage of that. I do think, you know, to 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,
Starting point is 00:53:07 the integrations with other systems, those may just have to be stuff that people do work on as there's enough pressure 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 DDoPAL and tools around it. Well, Wine Eagle has a series of boosts here, totaling 9,001 Satoshis. It's over 9,000! Well, last week my laptop's battery suddenly died.
Starting point is 00:53:36 When I booted it again, my Butter FS plus LVM Lux partition was totally fried. Whoa, whoa, I wonder if he hit this bug. Maybe. Although, if totally fried. Whoa. Whoa. I wonder if he hit this bug Maybe 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 eagle continues here Fearing a repeat I formatted my laptop gaming PC and NAS to ZFS on route thanks to NixOS for making it that easy
Starting point is 00:54:08 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 data directories. I almost gave my wife a heart attack regarding Bitwarden. Thankfully, we were still logged in for the export. Oh, well, I'm glad to hear this didn't go as poorly as it could have. Oh, 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 risk using ZFS with a kernel module that is developed outside the kernel. Now in this particular case it was ButterFS that
Starting point is 00:54:49 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 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 do,
Starting point is 00:55:25 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.
Starting point is 00:55:43 Same is also true for the Butterfest developers. So just being aware that when it's a 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 ButterFest recently. It just happens to be this time ButterFest was unlucky. To Wynegles point about setting data directories, that's just a handy thing that tons of NixOS services have, where you can just define
Starting point is 00:56:15 where do you want to store your data, and a lot of them default to slash var slash lib. You can also have that whole directory be at map 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. Why, Nego, I like that part I feel for you. I like I said, just a moment ago, I was picking up and obsidian again. And so I went I opened up obsidian and I
Starting point is 00:56:37 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 took a I took a beat And I closed the window and I wrote I suck it It's it should be marked down on the file system still sorry 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 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 feeling, that gut punch of losing data, it, oh I hate that so much. Sorry to hear you went through that, Wineagle. And thank you for the boost. Jordan Bravo comes in with a row of ducks.
Starting point is 00:57:22 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 Nostr NIP 5 name verification.
Starting point is 00:57:41 Shout out to Natesh, 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. Uh huh. We'll have to check that out. That's amazing. And now with Jordan's packaged it. Jordan, thank you. And we would need it in Nix too, because we have Bitcoin Nix nodes. That's something we're working on the back end this week.
Starting point is 00:58:00 And name verification using Nip5 is that's really the chef's kiss there. Thank you for letting us know, Jordan, and thank you for the value. Appreciate it. Well, OutdoorGeek boosted in 5,000 sats. Everything's under control. From Fosse in Portland, Oregon, AI-generated reports of non-existent bugs
Starting point is 00:58:19 are clogging up bug bounty programs. The talk on this plausible AI slop starts at about 643.00 in the schedule. 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 developers complaints directly. Because a lot of the talk this gal gives is predicated on the fact that the curl developer
Starting point is 00:58:51 is concerned. So therefore she is concerned. She actually says that. And then I think actually our 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 that will come to a resolution. And so I don't necessarily love the fear mongering. I mean, the reality is, 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.
Starting point is 00:59:26 And one thing I think we should keep in mind, 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 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
Starting point is 00:59:46 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. 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.
Starting point is 01:00:07 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 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
Starting point is 01:00:38 banning people and if I 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, is these tools are likely going to get better, and when they do get better, these people may be contributing something of value.
Starting point is 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,
Starting point is 01:01:15 but we take these sort of dramatic hyperbolic reactions with global ban lists and things like that, I think we may actually be blocking future contributors to free software in our attempt to reduce spam. global ban list and things like that. 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
Starting point is 01:01:34 the curl developers concerned about AI slop. And keep in mind that it's a evolving problem. But I really appreciate that 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 a flat. I fly 4,444 sats Cornish game head boost
Starting point is 01:01:58 Mmm, we gotta get that he just says one thing and says a boldly boost Thank You PJ appreciate that and I pulled up a Brewer Seth, just because why not 500 sats to us, just to say enjoyed the show this week for 625. Well, thank you. You make me wanna be a better man. Appreciate that, thank you everybody who boosts. We do have a 2000 sat cut off for airtime,
Starting point is 01:02:18 but every now and then we pull a few forward and we appreciate everybody who boosts or stream sats as they listen, which is really neat too. You 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 sets that way. Now, thanks to our baller boosters, we stacked a healthy 276,602 sets.
Starting point is 01:03:06 Who Sets? and really just walking 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. 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
Starting point is 01:03:32 in this category before. 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 ripped the DVDs into Plex servers to your own. Okay, so we've gone past the part where we ripped the DVDs into Plex. Right.
Starting point is 01:03:48 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? It's a neat idea, because you establish a Plex content network, which is, I think, the core feature
Starting point is 01:04:01 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 backend that's multi-threaded and resumes downloads. It's ready for some big rips. 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 and I are no longer together, and I've been happily seeing Jellyfin now for
Starting point is 01:04:25 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? 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, can't do that. Or you can't use it to circumvent restrictions. So it won't download PlexPass stuff. Yeah, that makes sense.
Starting point is 01:04:50 Yeah. Written in C sharp, interesting. Cool. GPL3. Then this next one, it's just for us plasma users out there. 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
Starting point is 01:05:07 Mac OS 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, 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. It is using a Mac inspired UI, which I'm not a fan of, but the functionality is good enough that I'm going to suck that up and I'm going to recommend of, but the functionality is good enough that I'm gonna suck that up
Starting point is 01:05:45 and I'm gonna 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 add the, you know, go where you can search widgets and just put in KDE Control Station, it'll come up for you. Yeah, I just thought that, I mean,
Starting point is 01:05:57 it seemed handy enough for the look. Okay, do what you will with that, but it is nice functionality. And now how about this one? K AirPods, native AirPod integration for the Plasma 6 desktop with real-time battery monitoring, noise control, and a panel widget. Now, I was always shocked that you could pair AirPods at all
Starting point is 01:06:20 to a Linux desktop, but you missed all these features. Now with this widget, you can toggle things like their sound transparency mode, 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,
Starting point is 01:06:40 because I know AirPods are very popular, and there's probably some of you out there that have this and also this is a GPO Add-on as well GPO 3 written and rust. Oh it is. Well, there you go. You got one more in there You know you have a pair of Sony airpods or pods, right? Do those pair okay with the Linux desktop? They do especially under pipeline really no issues. I have the pixel pods That's what I use and they also pair 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 Sonys
Starting point is 01:07:09 either, I would imagine. No, that's true. That's a nice feature. Sophisticated. 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 linuxged comm slash six to six Remember to we also want to know if you've been spooked off of butter FS Or 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 Wow, it's crazy, but we love hearing those things, war stories, and your success stories.
Starting point is 01:07:48 That's true. That's true. And also, if you're crazy enough to run Butter FS en route. Of course, over here, Westpans run B-Cash FS. This is true. Yeah. See you next week. Same bad time, same bad station.
Starting point is 01:07:59 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 ice cast stream. Just plug in JBlive.fm and tune in or get a podcasting 2.0 app. Because you also get that's your partner.
Starting point is 01:08:20 Transcripts. I think you do. Do I have to remind you now? No. We gotta remind them. Well, yeah, we do gotta remind them. And the livestream. It's all in there. Cloud chapters, no less, okay?
Starting point is 01:08:30 No less. Someone undersell these chapters. Super fancy. Both baked into the file and JSON in the cloud. Boom! Thank you for joining us. See you right back here next Sunday. day. Thanks for watching!

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