Skip to main content
LawHub
Search

The People's Filesystem

Dec 7, 2025
Listen to this episode

Kent Overstreet joins us for a full update on bcachefs. What's new, what's next, and the surprising upside of getting kicked out of the kernel.

Sponsored By:

Support LINUX Unplugged

Links:

Transcript

WEBVTT 00:00:11.249 --> 00:00:15.789 Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris. 00:00:15.989 --> 00:00:16.649 My name is Wes. 00:00:16.849 --> 00:00:17.689 And my name is Brent. 00:00:18.209 --> 00:00:21.709 Well, hello, gentlemen. Coming up on the show today, it's a big one. 00:00:21.809 --> 00:00:26.269 Kent Overstreet, the creator of BcacheFS, joins us to give us a full update 00:00:26.269 --> 00:00:31.109 on what's going on, what's new, what's next, and a surprising upside of getting 00:00:31.109 --> 00:00:32.169 kicked out of the kernel. 00:00:32.329 --> 00:00:34.909 And then we're going to round it all out with some great picks, 00:00:35.269 --> 00:00:39.449 some boosts, actually like a really loaded pick section, and a lot more. 00:00:39.449 --> 00:00:43.069 So before we get to all of that, let's give the old time appropriate greetings 00:00:43.069 --> 00:00:44.929 to our virtual lug. Hello, Mumble Room. 00:00:48.253 --> 00:00:52.853 Hello. Good afternoon. Hello. Just a couple of you in the on-air and a group 00:00:52.853 --> 00:00:55.793 of you up there in the quiet listening as well. Mumbarum always cooking. 00:00:56.133 --> 00:00:59.473 We're always happy to have everybody in there. And a big good morning to our 00:00:59.473 --> 00:01:01.433 friends over at Defined Networking. 00:01:01.553 --> 00:01:05.473 Defined.net slash unplugged. Go check out Managed Nebula. 00:01:05.733 --> 00:01:09.973 It's built on top of the open source Nebula project. They handle the tricky 00:01:09.973 --> 00:01:11.573 bits that you might not want to think about. 00:01:11.833 --> 00:01:13.833 100 devices totally for free. 00:01:14.293 --> 00:01:17.693 No credit card required. Defined.net slash unplugged. this 00:01:17.693 --> 00:01:21.253 is a mesh vpn optimized for speed simplicity and 00:01:21.253 --> 00:01:24.493 really great security but ultimately it kind 00:01:24.493 --> 00:01:27.753 of goes a little bit beyond when you're picking your network infrastructure if you've 00:01:27.753 --> 00:01:33.373 been in tech for a minute you know that there's also the company behind the 00:01:33.373 --> 00:01:37.233 product and what they're all about and what their goals are and i think the 00:01:37.233 --> 00:01:40.333 way they're configured the way they're designed all of that stuff ultimately 00:01:40.333 --> 00:01:46.053 ends up getting represented long term in the product and that's what I think to find has been really, 00:01:46.193 --> 00:01:51.013 really judicious in how they have built and designed themselves to really align 00:01:51.013 --> 00:01:53.833 with how I would like a company that's building this type of tool. 00:01:53.993 --> 00:01:56.433 And I think you would also probably align with that if you're a listener to 00:01:56.433 --> 00:01:59.453 this show. So it goes just beyond the software and the fact this is a truly 00:01:59.453 --> 00:02:01.913 free project that's totally self-hostable if you'd like. 00:02:02.733 --> 00:02:06.393 It's optimized for speed, simplicity. It uses less battery on your devices, 00:02:06.393 --> 00:02:07.553 less network resources. 00:02:07.853 --> 00:02:11.433 You can host it completely or you can use their managed solution. But beyond just that. 00:02:12.698 --> 00:02:15.258 It's about the company architecture. It's about the funding model. 00:02:15.378 --> 00:02:19.098 It's about all these things that go into a long-term sustainable product that 00:02:19.098 --> 00:02:20.618 you can build a network on top of. 00:02:20.818 --> 00:02:23.258 And they have been solid since 2017. They had to be. 00:02:23.478 --> 00:02:26.278 They had to go in production day one for Slack and their global infrastructure. 00:02:26.738 --> 00:02:29.138 Now, now it's incredible what they power. 00:02:29.798 --> 00:02:33.298 Rivian cars on the road, all the metrics they send back to Rivian HQ, 00:02:33.518 --> 00:02:34.938 that's secured by Nebula. 00:02:35.438 --> 00:02:39.958 Think about all of those road, all those machines on the road communicating over Nebula. 00:02:40.238 --> 00:02:43.218 They have to keep that secure that would be such a scandal if anything ever happened for 00:02:43.218 --> 00:02:45.918 rivian it's really impressive it has 00:02:45.918 --> 00:02:50.038 an incredible level of resilience speed and scalability that you can tune to 00:02:50.038 --> 00:02:53.718 your needs from a home lab to an enterprise so go get started 100 hosts absolutely 00:02:53.718 --> 00:02:59.438 free support the show no credit card required go to defined.net slash unplugged 00:02:59.438 --> 00:03:05.498 well you know it is actually very scary Very close. 00:03:05.598 --> 00:03:07.278 So we wanted to give everybody a 00:03:07.278 --> 00:03:11.718 heads up that your time to submit to the Holiday Home Lab is running out. 00:03:22.541 --> 00:03:26.841 We want your holiday home lab submission. Submit your home lab for Linux Unplugged 00:03:26.841 --> 00:03:28.181 holiday special coming up. 00:03:28.321 --> 00:03:32.921 We're looking for your creative or efficient or chaotic, overbuilt, just beginning setups. 00:03:33.141 --> 00:03:36.781 We want everything from the community and we'll feature some of the winners on our show. 00:03:37.281 --> 00:03:39.901 We'll have probably a batch that make it on the show. We'll have a batch that 00:03:39.901 --> 00:03:43.981 we'll maybe do in special editions and all kinds of stuff. We have a form over 00:03:43.981 --> 00:03:46.181 at LinuxUnplugged.com slash holiday. 00:03:46.661 --> 00:03:50.861 Your time is almost out because we have picked our live record date, 00:03:50.961 --> 00:03:52.581 which we would invite you to join us. 00:03:52.761 --> 00:03:59.001 It'll be on Friday, December 19th, 2025, when we record the holiday home lab special. 00:03:59.321 --> 00:04:02.181 So if you'd like to join us for the live event, especially if you've submitted 00:04:02.181 --> 00:04:05.341 your home lab Friday, the 19th, we'll have 00:04:05.341 --> 00:04:08.961 the exact details and time at jupiterbroadcasting.com slash calendars. 00:04:09.061 --> 00:04:12.721 We get closer, but more importantly, because I sometimes forget that bit. 00:04:12.881 --> 00:04:15.901 We always put it in the podcasting 2.0 feed. So if you have a podcasting to 00:04:15.901 --> 00:04:17.861 do app, you'll see it in there when we're going to be live. 00:04:18.241 --> 00:04:23.921 It'll be, I think our last live episode, maybe not, but one of our last live episodes of the year. 00:04:24.061 --> 00:04:26.881 We, we, I don't know if we have after Christmas quite dialed in yet, 00:04:26.881 --> 00:04:28.621 but it's getting pretty close. 00:04:28.881 --> 00:04:34.541 And so you have, um, well, you don't, you got to get in before the 19th because we need days. 00:04:34.761 --> 00:04:37.961 So I guess we should have probably told you a deadline, not just when we're going to do it live. 00:04:38.241 --> 00:04:43.941 So I'm going to say the deadline is the 17th. that gives us at least two days 00:04:43.941 --> 00:04:45.961 to go through all the submissions right yeah. 00:04:45.961 --> 00:04:46.701 That seems reasonable. 00:04:46.701 --> 00:04:52.221 So december 17th we're going to cut off no guarantees yeah so there's your cutoff 00:04:52.221 --> 00:04:56.721 and then the live show will be on the 19th and we'll hopefully have uh more 00:04:56.721 --> 00:05:01.541 details on exactly when probably we could probably just safely assume our regular time seems. 00:05:01.541 --> 00:05:03.541 Like it sure why not. 00:05:03.541 --> 00:05:06.421 Yeah there you works for me it's good it's gonna be fun it's gonna be a lot 00:05:06.421 --> 00:05:07.961 of fun and we've had some great submissions. 00:05:07.961 --> 00:05:09.821 You can't have a holiday without a home lab. 00:05:12.892 --> 00:05:16.112 No, you've got to play your Christmas mixes and stuff. Well, 00:05:16.192 --> 00:05:21.332 last week we played some clips to just get you up to date on the BcacheFS current 00:05:21.332 --> 00:05:25.392 status and the kernel and honestly our real-time reactions because a lot of 00:05:25.392 --> 00:05:26.312 that developed while we, 00:05:26.472 --> 00:05:30.072 in both times there were major developments while we were traveling. 00:05:30.532 --> 00:05:30.632 Yeah. 00:05:31.092 --> 00:05:33.012 So we were like processing all of that. 00:05:33.212 --> 00:05:38.032 Attempting to travel or attend a conference or, you know, not think about file systems. 00:05:38.172 --> 00:05:40.852 So if you missed that last week, you might want to go grab that context. 00:05:40.852 --> 00:05:44.892 So that way you have like sort of the full context for today's conversation when Kent joins us. 00:05:45.352 --> 00:05:48.312 And as the year rounds out, we thought this is a topic we should talk about 00:05:48.312 --> 00:05:50.032 because there's been a lot of changes. 00:05:50.152 --> 00:05:54.572 Bcache FS was kicked out of the Linux kernel. We talked about that last week. 00:05:55.192 --> 00:05:58.292 But I think it's best to get the information straight from the horse's mouth. 00:05:58.332 --> 00:05:59.752 And in this case, that's Kent Overstreet. 00:05:59.972 --> 00:06:03.252 So we're going to get into this in the way that only Linux Unplugged does with 00:06:03.252 --> 00:06:04.852 the details and the technical stuff. 00:06:06.092 --> 00:06:10.672 And the best source, of course, is Kent. He's the creator of Bcache FS. 00:06:10.852 --> 00:06:13.692 And he's a rare, rare breed of developer. 00:06:14.312 --> 00:06:18.172 And I think as you listen to our chat with him, this is going to become evident to you. 00:06:18.892 --> 00:06:21.472 I wanted to mention something that maybe isn't obvious, though. 00:06:23.030 --> 00:06:27.110 Kent is creating what I consider to be maybe the most modern file system, 00:06:27.490 --> 00:06:30.850 period, right now. And he's making it GPL and available for Linux. 00:06:31.910 --> 00:06:35.750 And he's doing it from what he calls a glamping tent attached to the back of 00:06:35.750 --> 00:06:41.650 a truck in South America via a Starlink connection, living off of the support of his patrons. 00:06:42.350 --> 00:06:46.810 And he is developing every single day. He committed, this is a Sunday morning, 00:06:46.930 --> 00:06:48.110 and he committed three hours ago. 00:06:48.250 --> 00:06:48.930 He sure did. 00:06:48.930 --> 00:06:52.610 And then he had released a major version, which we will get into, 00:06:52.730 --> 00:06:57.270 with major new features a few hours before our chat that day, 00:06:57.330 --> 00:06:59.050 because we talked to Kent on Thursday. 00:06:59.290 --> 00:06:59.590 Yeah. 00:07:00.330 --> 00:07:04.310 And he had just released a massive, massive update. 00:07:04.450 --> 00:07:07.210 And he's just constantly working. He's constantly communicating. 00:07:07.210 --> 00:07:12.750 And he's doing this while creating this project while being nomadic and keeping 00:07:12.750 --> 00:07:14.230 his cost of living as low as possible. 00:07:14.690 --> 00:07:17.830 So I just think he's an incredibly interesting developer from that standpoint. 00:07:17.830 --> 00:07:19.070 We're very lucky to have him. 00:07:19.630 --> 00:07:22.330 And just the insights here are great. So if you're not familiar with BcashFS, 00:07:22.570 --> 00:07:24.370 buckle up. And if you are, there's a lot to love in here, too. 00:07:24.950 --> 00:07:28.470 Ken Overstreet, welcome back to the show. It's great to have you, sir. 00:07:29.030 --> 00:07:29.730 Great to be here. 00:07:30.170 --> 00:07:36.130 And also, congrats. BcashFS 1.33 came out this morning, I think. 00:07:36.610 --> 00:07:37.810 Metadata version reconcile. 00:07:38.490 --> 00:07:39.230 Huge, right? 00:07:39.590 --> 00:07:40.270 Tied it perfectly. 00:07:40.570 --> 00:07:43.110 I think we should start right there, and then we'll kind of get into other stuff. 00:07:43.250 --> 00:07:46.690 But let's talk about the new reconcile system, because reading through the show 00:07:46.690 --> 00:07:50.250 notes, it It looks like it was, it looks like one of those things on the surface 00:07:50.250 --> 00:07:51.810 seems like a small amount of work. 00:07:51.810 --> 00:07:56.610 But then when you dig into the details, it was like almost a total refactoring of type. 00:07:56.850 --> 00:08:00.790 Total, but it touched all kinds of stuff. Yeah. Like had to get metadata plugged 00:08:00.790 --> 00:08:03.830 in, all kinds of just little bits here and there. 00:08:04.090 --> 00:08:10.050 Because whereas before, this grew out of Rebalance, which just did background 00:08:10.050 --> 00:08:11.290 compression and background target. 00:08:11.290 --> 00:08:16.630 Now we're aiming for strict correctness so that we can actually check the validity 00:08:16.630 --> 00:08:19.530 of all stored data against the IO path options. 00:08:19.950 --> 00:08:24.790 So if you're doing correctness checking, that tends to be a different level. 00:08:26.030 --> 00:08:26.990 So big project. 00:08:26.990 --> 00:08:34.150 And it's actually done now so um it's congratulations just reading through that i just like. 00:08:34.150 --> 00:08:34.670 This is a. 00:08:34.670 --> 00:08:38.090 Big piece of work and it's pretty cool that it landed right before you were 00:08:38.090 --> 00:08:43.330 able to join us now as a somebody who's using bcachefs now will i need to will 00:08:43.330 --> 00:08:46.170 i need to prepare or make any changes before i update. 00:08:46.170 --> 00:08:49.790 Uh the only thing to be aware of is uh there 00:08:49.790 --> 00:08:52.450 will be an upgrade process uh when you 00:08:52.450 --> 00:08:55.510 mount on the new version one of the things that should be coming soon 00:08:55.510 --> 00:08:58.350 but didn't land for this release is we should be able to do these 00:08:58.350 --> 00:09:01.070 upgrades in the background and we're still doing 00:09:01.070 --> 00:09:06.110 it at mount time and we still haven't got this communication with systemd going 00:09:06.110 --> 00:09:09.830 to let systemd know that we're actually doing stuff at mount and it just uh 00:09:09.830 --> 00:09:14.690 thinks that we've timed out so that's that's a little bit of an annoyance but 00:09:14.690 --> 00:09:18.550 just just let it go until the kernel log says it's finished start the d-message, 00:09:18.650 --> 00:09:19.370 whatever you're watching, 00:09:19.930 --> 00:09:24.030 and reboot it again if you need to because of the systemd thing and it'll be fine. 00:09:25.255 --> 00:09:30.335 We had a lot of that back in like the 614 upgrade for back pointers or i had 00:09:30.335 --> 00:09:35.135 to redo something some minor detail of the back pointers actually had to rewrite 00:09:35.135 --> 00:09:36.435 half of everyone's metadata. 00:09:38.075 --> 00:09:40.555 I think i remember upgrading from that one yeah. 00:09:40.555 --> 00:09:45.895 Yeah yeah no one noticed anything besides going hey why were my mouse taking 00:09:45.895 --> 00:09:50.375 so long people would kick it a couple times and it would just finally finished 00:09:50.375 --> 00:09:57.535 and so that was fun this is not as big an upgrade but okay okay. 00:09:57.535 --> 00:10:02.515 That puts it in perspective all right so let's walk it back a little bit it's 00:10:02.515 --> 00:10:06.555 been just about a year or more since we talked i can't quite recall to be honest 00:10:06.555 --> 00:10:10.175 but it feels like it's been five years i mean time flies it's. 00:10:10.175 --> 00:10:12.855 Just shy uh 693 days. 00:10:12.855 --> 00:10:15.355 Oh okay oh so okay yeah it's been. 00:10:15.355 --> 00:10:16.835 A bit so. 00:10:16.835 --> 00:10:20.975 Um things have changed a Let's talk a little bit about user base, 00:10:20.995 --> 00:10:22.635 who's using it these days. 00:10:23.115 --> 00:10:26.215 Uh, maybe how just off the top of your head, I know this is kind of a wild one, 00:10:26.295 --> 00:10:29.535 but how, how you say things have changed since 2024, just kind of a, 00:10:29.595 --> 00:10:31.435 the best recap that you can recall. 00:10:31.555 --> 00:10:34.855 The biggest, biggest changes that things have really stabilized. 00:10:35.995 --> 00:10:39.835 Even like six months ago, you can probably three months ago, 00:10:40.015 --> 00:10:44.295 like back in July, I was still in the midst of, you know, the, 00:10:44.295 --> 00:10:47.435 the bugs are coming in about as fast as I could handle them and things that, you know, 00:10:48.673 --> 00:10:54.033 I could see the trend back in, like, 6.14, but there was a noticeable inflection 00:10:54.033 --> 00:10:59.413 point, like 6.16, 6.17, and now it's like things are starting to feel calm. 00:11:00.053 --> 00:11:04.093 Past couple months were a giant slog with getting Reconcile out the door, 00:11:04.253 --> 00:11:07.073 but I'm feeling pretty good about where we're at. 00:11:07.553 --> 00:11:10.393 And we're getting really close to taking the experimental label off. 00:11:10.753 --> 00:11:12.153 I pegged that for Christmas. 00:11:12.853 --> 00:11:14.793 What a lovely present, huh? 00:11:15.653 --> 00:11:19.433 Yeah, yeah. Yeah, there's like almost nothing left. 00:11:20.133 --> 00:11:23.093 Yeah, I was going to ask, you mentioned sort of, you know, assessing stability 00:11:23.093 --> 00:11:25.973 and here getting ready to take off that experimental label. 00:11:26.153 --> 00:11:29.333 What actually are you looking for? Because I know you're helping people one-on-one. 00:11:29.333 --> 00:11:32.353 You've also got like actual, you know, bugs getting filed upstream. 00:11:32.353 --> 00:11:34.153 Probably you have like automated tests running. 00:11:34.493 --> 00:11:38.913 Lots and lots of automated testing, yeah. There's a whole cluster of machines off in Finland. 00:11:39.593 --> 00:11:43.933 Big 80 core R machines with a quarter terabyte Rm each. And I run those machines hard. 00:11:44.533 --> 00:11:47.353 So i'm constantly watching the test dashboard which is never 00:11:47.353 --> 00:11:50.533 as clean as i would like it but i'm always 00:11:50.533 --> 00:11:53.273 watching like triaging and okay that one can 00:11:53.273 --> 00:11:58.493 wait no that's actually something serious i need to jump on now and uh most 00:11:58.493 --> 00:12:04.813 of it is just how are user feedback am i are the bug reports coming in how severe 00:12:04.813 --> 00:12:10.553 are those bug reports how quickly are we dealing with them are we finding stuff that it's like, 00:12:11.113 --> 00:12:15.553 oh that repair path needs a ton of work or is it like oh that's a that's like 00:12:15.553 --> 00:12:17.173 a trivial 10 or 20 line fix, 00:12:18.370 --> 00:12:20.130 So it's a lot of things. 00:12:20.470 --> 00:12:24.590 I'm thinking back, it was really still pretty experimental at the time. 00:12:24.770 --> 00:12:28.750 It feels like now we're at a point where if I deploy it, I'm probably not going 00:12:28.750 --> 00:12:31.390 to see any big format changes or anything that's really going to be disruptive 00:12:31.390 --> 00:12:33.650 to my workflow. And that's huge, right? 00:12:34.330 --> 00:12:38.530 Yeah. One of the things with format changes is I've actually gotten less conservative 00:12:38.530 --> 00:12:42.470 with doing format changes since we're no longer upstream. We're DKMS. 00:12:42.670 --> 00:12:43.290 Interesting. Okay. 00:12:43.470 --> 00:12:47.990 Because, yeah, we no longer have users running a whole bunch of different versions. 00:12:48.370 --> 00:12:49.910 And maybe rebooting it to older kernels. 00:12:50.330 --> 00:12:54.110 It's very easy now for users to just stay on the latest version. 00:12:54.370 --> 00:12:58.310 And as long as I'm not pushing out regressions and we've been doing great on 00:12:58.310 --> 00:13:02.630 regressions, then there's no reason for users to have to roll back to older 00:13:02.630 --> 00:13:04.610 versions of the PCacheFS, which we can do. 00:13:06.449 --> 00:13:12.209 It was an expensive downgrade and then re-upgrade in the kernel. 00:13:12.369 --> 00:13:16.129 And now it's like, if we have to change something and there's a legitimate reason, 00:13:16.429 --> 00:13:22.709 like reconcile, we've got another one coming for per-device fragmentation LRUs. 00:13:22.709 --> 00:13:25.349 That'll fix some issues with copy GC and tiering. 00:13:26.549 --> 00:13:29.949 Then it's just not as big a deal, especially once in the next couple of weeks 00:13:29.949 --> 00:13:33.549 we could do those upgrades in the background. Then it'll be completely smooth. 00:13:33.829 --> 00:13:36.229 Yeah, then we really probably won't notice, huh? 00:13:36.449 --> 00:13:36.909 Yeah. 00:13:37.389 --> 00:13:41.249 So, Kent, when all of this was going down with the discussion, 00:13:41.589 --> 00:13:47.349 will they or won't they extract BcashFS, did this benefit even occur to you during all of that? 00:13:47.809 --> 00:13:52.409 No, that one actually did not. The whole DKMS transition went much, 00:13:52.469 --> 00:13:53.869 much smoother than I expected. 00:13:54.549 --> 00:13:57.409 I had a lot of concerns and fears at the time how things were going to turn 00:13:57.409 --> 00:14:00.549 out, and it turned out actually better than I could have expected. 00:14:01.069 --> 00:14:03.229 How so? I mean, besides obviously what we just talked about, 00:14:03.289 --> 00:14:04.129 but in other ways as well? 00:14:04.749 --> 00:14:08.849 Yeah, I didn't seem to lose users like I expected. 00:14:09.769 --> 00:14:14.229 The people who actually care stuck with it. We were able to get the DKMS packages 00:14:14.229 --> 00:14:17.509 done, all the automation, everything we needed. 00:14:17.689 --> 00:14:20.669 That came together really fast because a lot of people jumped in and helped out. 00:14:21.709 --> 00:14:27.689 It's shocker in hindsight, not so obvious going in, but it's a lot easier for 00:14:27.689 --> 00:14:30.789 people to help out with a non-core kernel file system stuff. 00:14:31.409 --> 00:14:34.809 And there's a lot of people who are interested and want to help out, 00:14:34.849 --> 00:14:39.829 but they're understandably intimidated by diving into a 100,000 line C code 00:14:39.829 --> 00:14:43.849 base, but like packaging stuff, yeah, that was a lot easier. 00:14:44.069 --> 00:14:47.069 I hadn't even thought about that, Kent, so I actually appreciate you bringing 00:14:47.069 --> 00:14:49.509 that up. I guess what I have been stuck on, 00:14:50.454 --> 00:14:53.534 I guess it seems like it's a good thing for Bcache in the short term, 00:14:53.694 --> 00:14:56.374 but it's not a great thing for Linux in the long term. 00:14:57.214 --> 00:15:01.974 I have really expressed on the show, I really think Linux needs a sophisticated, 00:15:02.374 --> 00:15:06.294 modern file system that's GPL and built in. I think it's imperative. 00:15:07.074 --> 00:15:10.354 Yeah, I don't think the Linux file system world is in great shape, 00:15:10.354 --> 00:15:11.914 and I feel for those guys. 00:15:11.914 --> 00:15:17.634 But, you know, a lot of this stuff, there's fairly deep-seated problems, 00:15:17.634 --> 00:15:23.054 and I wasn't able to make any headway, and I can't do anything if no one wants 00:15:23.054 --> 00:15:26.754 to, if everyone is stuck in their ways and doesn't want to change. 00:15:26.954 --> 00:15:31.694 Is it momentum of just history and people that have their fiefdoms? 00:15:31.694 --> 00:15:34.294 Is it just that? It's built fighting through that? 00:15:34.654 --> 00:15:39.674 That's some of it. Yeah. There's a lot of reasons. 00:15:39.674 --> 00:15:45.014 You know, the kernel is a big old project and, you know, basic processes, 00:15:45.234 --> 00:15:50.854 how we do things tend to, you know, in any big institution tend to ossify and 00:15:50.854 --> 00:15:51.854 become harder to change. 00:15:52.834 --> 00:15:56.694 And the Linux kernel came of age, you know, really back in the 90s, 00:15:56.794 --> 00:16:01.034 early 2000s, with everything being done on the mailing list, 00:16:01.174 --> 00:16:06.274 patch-based workflow, didn't even use source control for years and years famously. 00:16:07.474 --> 00:16:12.014 And the one place where it really lags today is like automated testing, QA. 00:16:13.214 --> 00:16:20.894 So one of the pain points for me of being in the kernel is I do rely very heavily on automated testing. 00:16:21.094 --> 00:16:25.254 And if you're in the kernel, you're expected to stay on mainline, 00:16:25.354 --> 00:16:28.394 rebase onto RC1s every time RC1 comes out. 00:16:28.574 --> 00:16:33.434 And that's a good thing. You want people to be dogfooding and catching issues like that. 00:16:35.096 --> 00:16:40.016 If the file system people are the only people doing really comprehensive stress 00:16:40.016 --> 00:16:41.996 and torture testing, and there's 00:16:41.996 --> 00:16:45.656 other subsystems in the kernel that aren't testing the code at all, 00:16:47.096 --> 00:16:52.176 that's really painful, especially if you're like me, where I'm just one guy 00:16:52.176 --> 00:16:54.096 with 100,000 lines of code, and if. 00:16:56.656 --> 00:17:00.956 Things aren't working right, it'd be like every other release. 00:17:01.516 --> 00:17:06.056 My test dashboard would blow up, and it'd be a couple weeks where it'd be tracking 00:17:06.056 --> 00:17:11.476 people down, and I can't get work done if my test dashboard is a whole bunch 00:17:11.476 --> 00:17:14.936 of red, and I can't tell if my own patches are buggy or not. 00:17:18.896 --> 00:17:23.996 Think about that for the kernel as a whole. It boggles my mind trying to get 00:17:23.996 --> 00:17:27.956 work done in that environment without automated testing and not being able to 00:17:27.956 --> 00:17:30.936 get good feedback on what code is working or not. 00:17:30.936 --> 00:17:38.316 They're spending way too much time chasing regressions and other people's code and it's not fun. 00:17:38.316 --> 00:17:41.016 It does make me reflect just on all the 00:17:41.016 --> 00:17:43.956 pros and cons to the coupling to the 00:17:43.956 --> 00:17:47.016 kernel if you are coupled you get the advantage that it's there by default but 00:17:47.016 --> 00:17:51.556 if you're uncoupled there's a lot of pros although also of course some cons 00:17:51.556 --> 00:17:55.476 I was just curious how you thought it was going being out of the kernel besides 00:17:55.476 --> 00:17:59.996 DKMS I know there were some symbols that were no longer exported that had to 00:17:59.996 --> 00:18:01.496 get Vendored like that kind of thing. 00:18:01.636 --> 00:18:05.396 Do you anticipate being able to keep the current model working without too much of us? 00:18:06.436 --> 00:18:13.576 I'm curious how that's gonna go The the core kernel interfaces that file systems 00:18:13.576 --> 00:18:17.856 depend on and be cache of us They've gotten a lot less journey than than they used to be, 00:18:18.376 --> 00:18:22.216 so I don't expect things to be too painful but, 00:18:23.650 --> 00:18:29.250 The kernel is not very friendly to out-of-tree projects and codes, so it's a question mark. 00:18:29.630 --> 00:18:32.390 It's fair. That's fair. It doesn't make me feel much better, 00:18:32.430 --> 00:18:36.350 but it's a fair answer. I'm sure you probably feel very much the same. 00:18:36.450 --> 00:18:36.630 We shall see. 00:18:37.110 --> 00:18:37.390 Yeah. 00:18:37.630 --> 00:18:37.850 Yeah. 00:18:38.270 --> 00:18:42.630 All right. Well, I really appreciate you addressing that. That actually gives 00:18:42.630 --> 00:18:45.630 me, I think, a better understanding overall of the situation. 00:18:45.950 --> 00:18:49.670 I mean, as us as users, I've been really impressed how some of my favorite distributions 00:18:49.670 --> 00:18:52.970 have just made it. But they've really stepped up to make it pretty simple for 00:18:52.970 --> 00:18:54.410 me to just keep using BcacheFS. 00:18:55.528 --> 00:18:58.648 Yeah, the NixWest and Arch people have been awesome to work with. 00:18:58.848 --> 00:19:02.768 I haven't had to do anything for those distros besides keep in contact and make 00:19:02.768 --> 00:19:04.528 sure we're on the same page. 00:19:04.648 --> 00:19:10.848 And those guys hang out in the BcashFS IRC channel and we give each other a 00:19:10.848 --> 00:19:13.928 shot whenever something comes up. And generally things are just chill and awesome. 00:19:14.268 --> 00:19:20.448 Okay, so you made a hint about a lab. And I've heard you kind of made reference 00:19:20.448 --> 00:19:24.588 to some pretty significant large BcashFS deployments. 00:19:24.588 --> 00:19:27.408 It's just, I don't know, off the top of your head, what are some of the larger 00:19:27.408 --> 00:19:30.248 that you're aware of that people have been experimenting with or using in production? 00:19:30.408 --> 00:19:37.208 Oh, actually, I'm not sure what references I've made because I honestly do not know. 00:19:38.348 --> 00:19:44.648 I hear from people when stuff breaks and if things are working great, 00:19:44.808 --> 00:19:50.288 then like there have been quite a few times when, you know, 00:19:50.768 --> 00:19:53.968 the rare regression, user impacting regression comes through. 00:19:53.968 --> 00:19:57.548 And I find out that there's actually a lot more users than I thought there were. 00:19:58.148 --> 00:20:05.128 Like the Debian brouhaha, where the maintainer shipped a package and broke the 00:20:05.128 --> 00:20:06.408 build and then sat on updates. 00:20:06.548 --> 00:20:12.328 And there was a bug in mount where users couldn't pass the degraded option. 00:20:13.148 --> 00:20:16.588 And I start getting all these bug reports from users I've never heard of that 00:20:16.588 --> 00:20:20.108 I just had a drive die and I can't mount my file system. 00:20:21.808 --> 00:20:27.308 So, yeah, I have no kind of telemetry or statistics, and I would really love 00:20:27.308 --> 00:20:31.888 to get telemetry and just see all the data I possibly can when something breaks, 00:20:32.128 --> 00:20:33.768 but I don't have that yet. 00:20:34.088 --> 00:20:34.888 Okay, okay. 00:20:35.148 --> 00:20:38.548 Have you run into any interesting systems, though, or heard from folks reporting 00:20:38.548 --> 00:20:40.388 successful or otherwise deployments? 00:20:40.628 --> 00:20:43.788 Oh, there's definitely some big file systems out there. There's been, 00:20:43.928 --> 00:20:48.428 for quite a while now, file systems north of 100 terabytes. 00:20:50.229 --> 00:20:54.829 I mentioned the 6.14 backpointers upgrade. That was specifically because people 00:20:54.829 --> 00:21:00.529 are running into scalability issues, and at 100 terabytes, FS checks were taking more than a day. 00:21:01.389 --> 00:21:06.949 And now we can scale up. We tested scalability up to like 10 or 12 petabytes, 00:21:09.529 --> 00:21:12.329 and no one's hitting scalability issues anymore. 00:21:14.309 --> 00:21:19.009 Okay, well, I'm nowhere near those numbers, but I've kind of this year started 00:21:19.009 --> 00:21:22.009 building my home lab, rebuilding my home lab. 00:21:22.109 --> 00:21:25.089 It's really gonna be a project for next year. And I think I want to do Bcash FS. 00:21:25.869 --> 00:21:30.189 And I just sort of wanted to pick your brain where you think Bcash FS is for 00:21:30.189 --> 00:21:34.649 home labbers, if that's maybe a good use case, some things I should maybe try or know about. 00:21:34.829 --> 00:21:36.889 Anything like that, you know? Like if I got you on the line, 00:21:37.069 --> 00:21:38.469 I gotta be selfish and I gotta ask. 00:21:38.809 --> 00:21:42.949 Yeah, yeah. Oh, I love working with the home labbers. Those are the guys that 00:21:42.949 --> 00:21:45.029 hang out in the IRC channel and that, 00:21:46.023 --> 00:21:49.983 We have the most productive working relationships because those are the guys 00:21:49.983 --> 00:21:54.003 that like to tinker and investigate and discover how things break. 00:21:55.103 --> 00:21:58.923 And that's where we find a lot of the weird corner cases. And that's where the 00:21:58.923 --> 00:22:00.503 polish comes from is working with those guys. 00:22:01.363 --> 00:22:03.983 Okay. So if I'm going down the route. 00:22:04.103 --> 00:22:04.783 Go for it. 00:22:05.023 --> 00:22:08.023 Yeah. I mean, just any tips, anything I need to worry about? 00:22:08.123 --> 00:22:12.283 Is it just deploy, any mount options? I want any pro tips you got for me. 00:22:12.303 --> 00:22:18.003 One angle might be like RAID 5.6. Is that available yet? like how she structures the array maybe if. 00:22:18.003 --> 00:22:18.743 You got any tips. 00:22:18.743 --> 00:22:21.543 Yeah uh aside from erasure coding we'll 00:22:21.543 --> 00:22:24.663 get to that okay everything should be pretty fire and forget if 00:22:24.663 --> 00:22:28.063 you've seen like the documentation on uh like how 00:22:28.063 --> 00:22:30.783 you set iopath options you know all that stuff can be set per 00:22:30.783 --> 00:22:33.923 directory application level uh target 00:22:33.923 --> 00:22:36.743 options you can set up whatever kind 00:22:36.743 --> 00:22:39.643 of tiering or caching setup or pin 00:22:39.643 --> 00:22:43.103 different directories to different devices there there 00:22:43.103 --> 00:22:46.083 really shouldn't be much to configure uh actually the 00:22:46.083 --> 00:22:50.983 one thing that i should mention is uh there is an outstanding bug on the bug 00:22:50.983 --> 00:22:56.003 tracker that looks like it might be a bug in z standard the title of the bug 00:22:56.003 --> 00:23:00.323 is uh data corruption after writing hundreds of gigabytes and it's only used 00:23:00.323 --> 00:23:03.263 with c standards so yeah maybe. 00:23:03.263 --> 00:23:04.323 Choose a different compression. 00:23:04.323 --> 00:23:08.223 Not the first c standard bug that we've tripped across right right and one of 00:23:08.223 --> 00:23:11.243 the hardening projects that's like next up on the to-do list will enable us 00:23:11.243 --> 00:23:16.683 to like pinpoint and flick up those guys like a test case or something and, 00:23:17.703 --> 00:23:22.803 hardness against uh compression algorithm library bugs or compression algorithm 00:23:22.803 --> 00:23:28.263 bugs and a couple other things in the data update path so yeah aside from that 00:23:28.263 --> 00:23:30.143 i mean you should be good to go you. 00:23:30.143 --> 00:23:32.183 Mentioned erasure coding though you mentioned something about erasure. 00:23:32.183 --> 00:23:38.003 Yeah that's coming uh hopefully like first half of next year there's not much 00:23:38.003 --> 00:23:43.363 left uh people have been running erasure coding and meant not much to say about 00:23:43.363 --> 00:23:45.823 it besides the fact that it's fast and seems to work well, 00:23:46.543 --> 00:23:50.763 The only thing that's missing there, which the reason you shouldn't use it yet, 00:23:50.923 --> 00:23:57.423 unless you really know the gotcha, is we're missing like resilver or like the 00:23:57.423 --> 00:23:59.523 erasure coding version of re-replicate. 00:23:59.803 --> 00:24:02.663 But drive dies and you've got degraded stripes. 00:24:02.923 --> 00:24:08.643 You can still read your data, but we don't have any kind of path to resilver those stripes. 00:24:09.303 --> 00:24:13.683 Does your recent reconcile work impact the implementation of that? 00:24:13.883 --> 00:24:16.983 It does, actually. uh that kind 00:24:16.983 --> 00:24:20.223 of gave us the hooks uh and 00:24:20.223 --> 00:24:24.183 the engine that's going to drive all that resilvering stuff and i reserve space 00:24:24.183 --> 00:24:28.503 and some metadata on this format stuff for exactly where erasure coding is going 00:24:28.503 --> 00:24:33.383 to plug into that when i got the rest of the design sketched out so it's it's 00:24:33.383 --> 00:24:37.243 looking like it's not going to be that much work but i got i got two more hardening 00:24:37.243 --> 00:24:39.163 projects to do before i can think about that stuff. 00:24:39.163 --> 00:24:44.243 So when you say hardening projects i think of security hardening But do you 00:24:44.243 --> 00:24:46.063 mean a different type of hardening? 00:24:46.683 --> 00:24:50.643 Yes. I mean, the file system, like this is file system land. 00:24:50.843 --> 00:24:54.183 The file system jobs is to never lose your data. 00:24:54.803 --> 00:24:58.463 I always tell people, I don't care what happens to your file system. 00:24:58.623 --> 00:25:03.483 I don't care if it, whose fault it is, if it's like user error or hardware error. 00:25:03.763 --> 00:25:07.683 As long as there's data on your file system, it's the file system's job to get 00:25:07.683 --> 00:25:09.683 back anything that can be gotten back. 00:25:10.743 --> 00:25:15.583 And repair it and get it working again fully read-write with no user intervention. 00:25:15.883 --> 00:25:18.743 That's the goal here. And we're, 00:25:19.826 --> 00:25:23.246 I mean, judging from the log reports that I'm seeing, we're basically there. 00:25:23.626 --> 00:25:28.446 I just got a bug report like last week, two device replicated file system, 00:25:29.486 --> 00:25:32.586 tons of Btree node errors on only on one device. 00:25:33.166 --> 00:25:39.126 Like you glance at the log at first and you think that must be a BcacheFS bug. 00:25:39.246 --> 00:25:43.906 But then you look further and all the errors are like got wrong Btree node, 00:25:44.126 --> 00:25:46.366 but on one device, the other device is good. 00:25:48.526 --> 00:25:51.266 And the amount is like there there's no way 00:25:51.266 --> 00:25:54.726 a bcashfs bug could like swap 00:25:54.726 --> 00:25:57.826 out all your btree nodes with the wrong btree node only 00:25:57.826 --> 00:26:04.286 on one device that's just not possible so my suspicion is that a device mapper 00:26:04.286 --> 00:26:09.266 like a configuration got screwed up or something and shifted all the offset 00:26:09.266 --> 00:26:15.666 of every data on that device so that's the only thing i can imagine that could do that oh man so. 00:26:17.309 --> 00:26:17.909 Okay. 00:26:18.309 --> 00:26:19.369 But it's those kinds of situations. 00:26:19.369 --> 00:26:22.129 You want things to just work from you want to be able to get your data back 00:26:22.129 --> 00:26:23.429 from that situation Yes. 00:26:23.469 --> 00:26:28.469 Yeah, yeah makes sense. Yeah, I am I am very very insistent and very hard line 00:26:28.469 --> 00:26:30.969 even more hard line than the ZFS folks on this, 00:26:31.889 --> 00:26:37.509 Like if you compare a bcache fx and ZFS ZFS was designed for enterprise deployments 00:26:37.509 --> 00:26:42.629 where you can depend on replication You can depend on hardware that doesn't screw up flush and FUA, 00:26:44.209 --> 00:26:48.029 uh and if you're running it in those kind of situations it should always work, 00:26:48.689 --> 00:26:53.329 but if you're running at single device mode on garbage hardware there are failure 00:26:53.329 --> 00:26:57.129 modes that zfs explicitly does not protect against and you'll be sending your 00:26:57.129 --> 00:26:58.769 drive to a drive recovery service, 00:27:00.409 --> 00:27:05.489 bcashfs handles those like i don't care if you metaphorically let your let your 00:27:05.489 --> 00:27:08.649 file system on fire it's we're gonna get your data back. 00:27:08.649 --> 00:27:11.469 We love that because we love garbage hardware i was gonna to say this is where 00:27:11.469 --> 00:27:15.029 it sounds like it fits our home webs anyway we're all about garbage 00:27:15.429 --> 00:27:20.549 make it last as long as possible right so it sounds like i mean i shouldn't 00:27:20.549 --> 00:27:23.889 even be asking this since you just released 1.33 this morning but it sounds 00:27:23.889 --> 00:27:27.609 like the next bit of focus is some of this hardening work that's kind of where you're going next. 00:27:27.609 --> 00:27:33.549 Yeah the other one is kind of cool too uh because it's again a garbage hardware 00:27:33.549 --> 00:27:39.149 thing we want to be able to run on devices where maybe flush and fuel it is 00:27:39.149 --> 00:27:42.589 just broken and we can't do anything about it like cheap sd cards, 00:27:43.669 --> 00:27:50.009 or usb controllers usb controllers often have buggy flush to have seen the bug 00:27:50.009 --> 00:27:54.909 reports this idea came out of meeting with valve a couple weeks ago what i'm 00:27:54.909 --> 00:27:59.949 going to be doing is we've got scrub now and then in recovery we've got a journal 00:27:59.949 --> 00:28:02.809 so we know what the most recently written data was, 00:28:03.569 --> 00:28:08.289 Why not just run a targeted scrub on only the last second of data we wrote? 00:28:08.869 --> 00:28:13.349 And then we can detect specifically and prove, 00:28:14.834 --> 00:28:18.434 it was broken flush fua in that case and 00:28:18.434 --> 00:28:22.794 even better we've also got whole file system rollback from the journal rewind 00:28:22.794 --> 00:28:27.514 thing i remember that that whole thing so if we detect that we could just roll 00:28:27.514 --> 00:28:32.054 your file system back to the last consistent point and you don't users don't 00:28:32.054 --> 00:28:37.114 have to care then we can run on garbage hardware and it does not matter ah. 00:28:37.114 --> 00:28:37.794 That sounds great. 00:28:37.794 --> 00:28:43.294 I love that But okay, so am I to get the impression perhaps that Valve is interested 00:28:43.294 --> 00:28:46.314 in a more robust file system for future use? 00:28:47.534 --> 00:28:48.634 They might be. 00:28:48.914 --> 00:28:52.174 Yeah, that's interesting. I mean, if they're paying attention, 00:28:52.174 --> 00:28:55.694 they probably should be. So that's good to know. 00:28:55.874 --> 00:28:56.874 That was going to make me... 00:28:56.874 --> 00:28:58.414 More people should be paying attention to file systems in my opinion. 00:28:58.594 --> 00:29:01.674 Yeah, I agree with you. I'm glad you are paying so much attention and I'm glad 00:29:01.674 --> 00:29:04.174 it sounds like maybe Valve is consulting with somebody that knows their stuff. 00:29:04.354 --> 00:29:07.834 Makes me curious. How's the support been like both in terms of, 00:29:07.834 --> 00:29:10.334 You mentioned some of the volunteers for DKMS, but also just, 00:29:10.334 --> 00:29:12.514 you know, monetary support as well. 00:29:12.714 --> 00:29:16.154 You mentioned during some of the turbulent times in the kernel that some of 00:29:16.154 --> 00:29:19.034 that back and forth was generating bad press that was maybe making it harder 00:29:19.034 --> 00:29:21.454 to find consistent support. Has anything changed there? 00:29:23.614 --> 00:29:26.674 Uh things have gotten gotten stable since 00:29:26.674 --> 00:29:30.014 since valve has jumped in and supporting yeah there 00:29:30.014 --> 00:29:34.094 there's it still really should be funded better if you better if you have any 00:29:34.094 --> 00:29:38.234 listeners with big pockets this is a project that really should have like three 00:29:38.234 --> 00:29:43.754 or five or six engineers working on it and so to me working it's ridiculous 00:29:43.754 --> 00:29:46.954 hours seven days a week that would be awesome uh, 00:29:47.494 --> 00:29:52.914 but it's it's stable and good and and i'm not i'm not sweating it like i like i was anymore Oh. 00:29:52.994 --> 00:29:53.754 Good. Glad to hear that. 00:29:54.054 --> 00:29:57.754 That's good. And that's mostly, is that due to Valve helping there? 00:29:57.834 --> 00:29:59.314 Is that stabilize things a bit? 00:29:59.314 --> 00:30:00.514 Yes. Yes. 00:30:00.774 --> 00:30:01.314 That's good to hear. 00:30:01.334 --> 00:30:08.774 And before Valve, a European funding agency, NLNet, they jumped in and helped 00:30:08.774 --> 00:30:11.154 out. And that was a big help. 00:30:11.454 --> 00:30:14.134 Yeah, it really would be nice if a few more folks would step up. 00:30:14.594 --> 00:30:17.294 A few companies that are going to probably no doubt one day make a lot of money 00:30:17.294 --> 00:30:19.834 off of BcashFS should step in now, right? 00:30:20.654 --> 00:30:21.454 No doubt. 00:30:21.794 --> 00:30:22.094 Yeah. 00:30:22.094 --> 00:30:22.734 No doubt. 00:30:23.034 --> 00:30:26.674 Hey, does that cross your mind? You are, you know, you're probably, 00:30:26.974 --> 00:30:29.634 you know, I'm sure you're not living, you know, luxurious. You're just, 00:30:29.874 --> 00:30:31.114 you know, you're getting by on this. 00:30:31.294 --> 00:30:36.214 And someday some companies are going to probably sell network attached devices that sell for $30,000. 00:30:37.594 --> 00:30:42.074 Yeah, but I'm also thinking long term here. Like one of the things about the 00:30:42.074 --> 00:30:48.594 whole criminal community is they've gotten too far down the route of just chasing 00:30:48.594 --> 00:30:50.254 where the money is going. 00:30:50.254 --> 00:30:56.354 And things in file system land got very project manager focused without enough, 00:30:58.353 --> 00:31:01.953 you know, engineering focus on long-term plans. 00:31:02.073 --> 00:31:04.393 Like, how are we going to architect things so we can do what we want, 00:31:04.433 --> 00:31:06.673 not just a year from now, but 10 years from now. 00:31:08.833 --> 00:31:12.833 And right now, Linux kernel funding is very much dominated by, 00:31:12.833 --> 00:31:14.193 you know, the big cloud providers. 00:31:14.893 --> 00:31:20.333 And the big cloud providers don't care about reliability the same way the rest of us do. 00:31:20.613 --> 00:31:22.513 Yeah, that's kind of the whole cloud thing, right? They're like, 00:31:22.593 --> 00:31:25.533 well, you'll just spin up more of these throwaway instances or whatever. 00:31:25.813 --> 00:31:30.413 Yeah. If a node dies, it's no big deal if you've got everything replicated across the cluster. 00:31:30.893 --> 00:31:35.313 But a lot of us actually do care about reliability of the single node. 00:31:36.193 --> 00:31:43.193 So I honestly don't care that much about the big cloud providers or the big 00:31:43.193 --> 00:31:46.693 money part of the tech industry because they're not pushing technology forward 00:31:46.693 --> 00:31:49.053 in the field that I care about. 00:31:49.293 --> 00:31:51.873 Yeah, they have a totally different approach to storage and how they manage 00:31:51.873 --> 00:31:55.793 this stuff that just doesn't really make sense for those of us trying to run regular-sized arrays. 00:31:57.113 --> 00:32:02.053 But there are people out there who do need a file system that will never fail, 00:32:02.133 --> 00:32:06.693 who do need the core part of the system to be as reliable as humanly possible. 00:32:06.973 --> 00:32:10.453 So I'm not thinking about big cloud providers. I'm thinking about like... 00:32:13.997 --> 00:32:16.837 I didn't even realize this until years ago i saw it 00:32:16.837 --> 00:32:19.837 on my github page there's a little sticker something about 00:32:19.837 --> 00:32:26.497 i had code uh on running on mars it is someone had noticed that everyone who 00:32:26.497 --> 00:32:29.497 had got code into the linux kernel and probably some time frame or whatever 00:32:29.497 --> 00:32:34.557 well nasa's running linux on the mars rovers which apparently they are that 00:32:34.557 --> 00:32:38.137 means i've got code on mars that's so cool so, 00:32:39.357 --> 00:32:43.777 yeah but they don't just need the kernel they actually need you know a file 00:32:43.777 --> 00:32:48.897 system that's reliable enough that it's not going to take down the rover if 00:32:48.897 --> 00:32:53.297 it crashes even if you're running in a high radiation environment where bit 00:32:53.297 --> 00:32:57.637 errors are just common and unexpected that really can recover from anything yeah. 00:32:57.637 --> 00:33:01.337 Hopefully you can save that data before you transmit it and have a chance of sending it. 00:33:01.337 --> 00:33:01.697 Out yeah. 00:33:04.567 --> 00:33:08.287 Unraid.net slash unplugged. You want to build your own dream server? 00:33:08.427 --> 00:33:11.767 Well, unraid 7.2 makes it easier than ever. 00:33:11.967 --> 00:33:13.887 Go unleash your hardware. 00:33:14.147 --> 00:33:19.447 Now with a fully responsive web GUI, unraid now works beautifully across all your devices. 00:33:19.667 --> 00:33:25.467 You can set there and build your favorite application stack from your couch if you want. 00:33:25.687 --> 00:33:29.507 I think what you're really going to like too if you do the ZFS thing is it also 00:33:29.507 --> 00:33:31.947 adds ZFS RAID Z expansion support. 00:33:32.067 --> 00:33:36.247 That means you can now grow your ZFS pools with having to start over. 00:33:36.967 --> 00:33:41.527 Man, that's great to see. And for those that maybe have a spare USB or external 00:33:41.527 --> 00:33:45.427 hard drive, Unraid 7.2 introduces support for Extended 2, 3, 00:33:45.507 --> 00:33:48.267 4, and NTFS as well as Extended Fat. 00:33:48.567 --> 00:33:52.467 And so if you've got grandpa's photos like I do on an old NTFS drive somebody 00:33:52.467 --> 00:33:56.047 gave you, you can just now instead of having to build that Windows box or try 00:33:56.047 --> 00:33:59.587 to load that NTFS driver on your Linux desktop, just plug it into your Unraid. 00:34:00.127 --> 00:34:05.247 There's also a new API. It's officially here. It's real. It's beautiful. 00:34:05.407 --> 00:34:07.587 People are building stuff on top of it, and it's open source. 00:34:07.907 --> 00:34:12.007 Fully integrated. It gives you secure, programmable access to system data for 00:34:12.007 --> 00:34:15.227 building dashboards, automations, or, you know, your own external apps. 00:34:15.887 --> 00:34:20.587 It even supports external authentication via OIDC, or OIDC, as you called. 00:34:21.187 --> 00:34:25.067 It's massive. I mean, 7.2's already had well over 25,000 downloads, 00:34:25.227 --> 00:34:26.707 lots of applications coming out. 00:34:26.827 --> 00:34:31.887 You can get a free 30-day trial and support the show when you go to unray.net 00:34:31.887 --> 00:34:34.727 slash It's the OS that grows with your skills. 00:34:34.947 --> 00:34:39.907 And 7.2 introduces the new Unraid API, and it's chef's kiss. 00:34:40.287 --> 00:34:42.927 Check it out, support the show, and get a free 30-day trial. 00:34:43.147 --> 00:34:45.487 Unraid.net slash unplugged. 00:34:48.554 --> 00:34:54.294 Okay, so speaking of architecture stuff, you seem pretty open to the inclusion 00:34:54.294 --> 00:34:58.554 of Rust code in BcacheFS in the future. Can you touch on that? 00:34:58.634 --> 00:34:59.154 Oh, I'm pushing hard for that. 00:34:59.574 --> 00:35:00.614 Tell me about it. 00:35:01.014 --> 00:35:06.074 Well, I mean, Rust is a sea change moment for systems programming. 00:35:06.774 --> 00:35:12.014 For decades, how we wrote systems code didn't change much. you just had to deal 00:35:12.014 --> 00:35:19.094 with, you had to know that your code is perfect and be able to prove to yourself 00:35:19.094 --> 00:35:20.934 that your code is perfect. 00:35:21.554 --> 00:35:29.194 But the dream for a long time has been code programs with embedded correctness proofs. 00:35:29.374 --> 00:35:35.834 Things like CompCert, the first C compiler that is written in a language cock 00:35:35.834 --> 00:35:40.894 where you can prove that it always generates code that matches the specification. 00:35:41.774 --> 00:35:43.954 Wouldn't it be great if all code is like that? 00:35:44.754 --> 00:35:47.594 Especially file system code. Yeah. 00:35:47.954 --> 00:35:50.454 I mean, I'd love that because I hate debugging. 00:35:50.954 --> 00:35:51.134 Yeah. 00:35:52.674 --> 00:35:57.354 So the question has been, is that stuff ever going to be practical? 00:35:59.034 --> 00:36:06.894 And Rust actually solves a huge chunk of the of the problem for you know in 00:36:06.894 --> 00:36:11.054 a language that we can actually use in the system space that's huge and there's 00:36:11.054 --> 00:36:15.554 deep reasons why Rust is designed the way it is and why it's well designed. 00:36:16.474 --> 00:36:23.574 Rust is about as close as you can get to a pure functional language in an imperative 00:36:23.574 --> 00:36:28.454 language as you can get, and you could argue that it's just as good as a pure 00:36:28.454 --> 00:36:30.134 functional language for all intents and purposes. 00:36:32.337 --> 00:36:35.257 And not just that what's also coming on the 00:36:35.257 --> 00:36:40.837 horizon uh there's been a big development in uh how you actually make embedded 00:36:40.837 --> 00:36:46.337 correctness proofs practical and not something that you that make you spend 00:36:46.337 --> 00:36:53.177 10 times as long to write something like concert which is uh dependent types, 00:36:54.177 --> 00:36:56.957 and idris is the language that's been exploring this it's 00:36:56.957 --> 00:37:00.577 a it's a haskell offshoot and it's one 00:37:00.577 --> 00:37:03.617 of those things were in hindsight if you're a kind 00:37:03.617 --> 00:37:06.377 of programming language nerd or a computer science nerd you go 00:37:06.377 --> 00:37:09.137 oh that was obvious because there's this 00:37:09.137 --> 00:37:14.177 thing called rice's theorem which is an offshoot of or kind of a corollary uh 00:37:14.177 --> 00:37:18.917 to the halting problem the halting problem says you know in in a try and complete 00:37:18.917 --> 00:37:25.557 language you can't prove or know ahead of time if a program completes You just 00:37:25.557 --> 00:37:26.717 have to run it and see what happens. 00:37:27.677 --> 00:37:32.117 Rice's theorem extends that to, in a Turing-Complete language. 00:37:33.597 --> 00:37:40.457 Any property of the program, anything that program does, is either a direct 00:37:40.457 --> 00:37:43.957 consequence of the syntax, or it's undecidable. You just can't know. 00:37:45.329 --> 00:37:51.369 So the direct consequence of the syntax thing is interesting because type systems 00:37:51.369 --> 00:37:54.369 are syntactical. You can reason about them syntactically. 00:37:54.809 --> 00:38:02.529 So what that kind of says is any practical advance in proving properties of 00:38:02.529 --> 00:38:04.589 programs has to be a type system thing. 00:38:04.909 --> 00:38:06.949 And that's what Idris and dependent types are doing. 00:38:07.449 --> 00:38:11.269 And it actually makes this stuff ergonomic. And I think one way or the other, 00:38:11.349 --> 00:38:14.469 that's going to make it into Rust someday. 00:38:15.329 --> 00:38:19.189 I mean, we could even do it because Rust has really, really good macros. 00:38:19.589 --> 00:38:22.829 We could probably add this stuff to Rust as procedural macros. 00:38:24.709 --> 00:38:30.129 And so my game plan is, you know, this might be like five, ten years out, 00:38:30.329 --> 00:38:33.109 five years before the Rust rewrite is mostly done. 00:38:33.749 --> 00:38:38.009 That won't be the big advance for BcacheFS. The big advance will be dependent types. 00:38:38.549 --> 00:38:39.829 Can you explain more? 00:38:40.409 --> 00:38:46.249 So there's file systems are giant. state machines. 00:38:46.429 --> 00:38:48.669 There's tons of things that just have to be consistent. 00:38:49.189 --> 00:38:53.889 Like in the B-tree code, like all the locking stuff for the B-tree, 00:38:53.889 --> 00:38:59.729 iterators, lots of higher level stuff. 00:39:00.829 --> 00:39:04.369 You can't model that stuff with the type systems of today. 00:39:05.269 --> 00:39:11.689 I have to write these very long and very heavy assertions in debug mode that 00:39:11.689 --> 00:39:15.949 just methodically hey, check, is the entire state of this object correct? 00:39:16.209 --> 00:39:19.929 So you have a giant state space to explore that you have to explore manually 00:39:19.929 --> 00:39:23.609 because the type system, the compiler can't because you can't fully describe 00:39:23.609 --> 00:39:26.629 the complexity to the type system as is. Is that right? 00:39:27.049 --> 00:39:32.929 Yeah, yeah. So anytime we mutate like the state of the objects that describe 00:39:32.929 --> 00:39:36.489 what locks we hold on the B-tree, we have to call these verify functions, 00:39:36.769 --> 00:39:38.649 the search that check, is this a valid state? 00:39:39.904 --> 00:39:45.524 All that stuff with dependent types, that becomes stuff that the compiler can check for us. 00:39:45.744 --> 00:39:47.664 Yeah, okay. That's great. 00:39:47.924 --> 00:39:51.224 Well, is there anything you're trying to do now? Obviously, dependent types 00:39:51.224 --> 00:39:55.084 takes getting to Rust and Rust getting that functionality, but are there things 00:39:55.084 --> 00:39:58.704 you're doing now practically today to try to prepare the code base in your approach? 00:39:58.704 --> 00:39:59.524 Years ahead, basically, yeah. 00:40:01.564 --> 00:40:04.084 Leading into something that I mentioned in the chain log, yeah. 00:40:06.604 --> 00:40:14.264 So, maybe a year ago, Well, rewind, C finally got the cleanup attribute, 00:40:15.024 --> 00:40:19.984 which lets you run a destructor for an object when it falls out of scope. 00:40:20.204 --> 00:40:24.944 Now, this is basically sudo RAII, like C++ and Rust have. 00:40:25.484 --> 00:40:28.724 And then the kernel wrapped this up into a nicer interface, the class thing. 00:40:30.324 --> 00:40:35.244 And I found that, I started refactoring code, and I realized as I was doing 00:40:35.244 --> 00:40:40.784 it, you kind of have to get rid of gotos, because go-to's don't play nicely with the RII stuff. 00:40:41.064 --> 00:40:41.444 Sure, yeah. 00:40:42.244 --> 00:40:45.684 So doing the whole conversion, going all the way, has real benefits. 00:40:45.924 --> 00:40:48.824 You kind of have to. You don't want to be in this weird intermediate state where 00:40:48.824 --> 00:40:51.144 you're trying to make sure the two don't conflict. 00:40:52.004 --> 00:40:56.464 I got kind of far along and I realized, okay, this is actually making the code 00:40:56.464 --> 00:40:59.644 fairly close to what the Rust version would be. 00:41:01.405 --> 00:41:05.005 Uh it's not going to be a full rewrite for a lot of the code it's going to be 00:41:05.005 --> 00:41:09.625 mostly syntactic so i've been pushing on this stuff for pretty hard for the 00:41:09.625 --> 00:41:15.745 past six months and we're pretty far along uh like six months ago when i started 00:41:15.745 --> 00:41:21.025 i i grew up and word counted and bcashfs had 20, 00:41:21.645 --> 00:41:27.425 2 600 go to's in the code base which was about the same number as xfs so a pretty 00:41:27.425 --> 00:41:29.085 standard for a C code base of that size. 00:41:29.945 --> 00:41:31.525 And now we're down to about 600. 00:41:31.925 --> 00:41:32.325 Wow. 00:41:32.605 --> 00:41:34.245 A lot of files don't have any at all. 00:41:36.385 --> 00:41:40.605 So the next step is gonna be, and we've already got some Rust code and some 00:41:40.605 --> 00:41:44.885 Btree iterator, Btree API and transaction interface bindings. 00:41:45.365 --> 00:41:48.485 Those need to be improved and fleshed out. And then we can start thinking about, 00:41:48.585 --> 00:41:52.705 just taking a file and just doing a, not a rewrite, but just a translation. 00:41:53.105 --> 00:41:56.545 If we've got the bindings, then it should start to become straightforward. 00:41:58.064 --> 00:42:00.804 It starts to become straightforward with giant air quotes because there's always 00:42:00.804 --> 00:42:04.044 things that comes up and there will be a lot of interface work. 00:42:04.344 --> 00:42:10.904 But it's actually looking tractable to convert a 100,000 line code base to Rust 00:42:10.904 --> 00:42:14.484 or at least large swaths of it. And that's freaking awesome. 00:42:14.764 --> 00:42:17.644 Kent, I think it always impresses me. And you just demonstrated it here. 00:42:17.644 --> 00:42:22.184 It's like you have a grasp of the really small, nuanced details that need to 00:42:22.184 --> 00:42:26.284 be addressed. And at the same time, you're holding space in your head for five-year 00:42:26.284 --> 00:42:28.944 changes and really big macro stuff. 00:42:29.084 --> 00:42:31.324 That's a pretty rare talent. 00:42:32.084 --> 00:42:34.924 I've been doing this for a long time at this point. 00:42:35.764 --> 00:42:40.224 Well, it's really impressive. Okay, so I think the listeners are probably wondering, 00:42:40.224 --> 00:42:45.164 what is your Linux setup like? Are you constantly breaking your system with 00:42:45.164 --> 00:42:47.704 new builds? Do you kind of have a standard box? 00:42:47.904 --> 00:42:51.424 Do you have a specific distro you go to? You know, the kind of things they might be interested in. 00:42:51.644 --> 00:42:55.924 Oh, I don't faff with that stuff much anymore. I got too much work to do to 00:42:55.924 --> 00:42:57.404 screw around like I used to. 00:42:58.444 --> 00:43:05.224 So the big workstation, which is still up in Canada, hosted by a friend in his 00:43:05.224 --> 00:43:12.924 Colo facility, that's a Debian installation that I haven't reinstalled in like probably 15 years. 00:43:13.104 --> 00:43:14.164 Oh, that's impressive. 00:43:14.164 --> 00:43:20.384 Situation yes that's a proper dead read yep yeah yeah so that's running uh not 00:43:20.384 --> 00:43:27.204 bcash fs yeah it's uh that's running ext4 on top of bcash on top of md raid 6, 00:43:28.544 --> 00:43:32.844 yeah and that setup hasn't changed in yeah forever i've swapped out every drive 00:43:32.844 --> 00:43:36.704 individually to like grow the array but that's literally the same array that 00:43:36.704 --> 00:43:38.784 i've had for like 15 years so. 00:43:38.784 --> 00:43:42.784 That's like a home base box that you you ssh into or whatever and it's kind of like your master. 00:43:42.784 --> 00:43:43.624 Machine Yeah, yeah. 00:43:44.264 --> 00:43:44.564 Okay. 00:43:44.864 --> 00:43:45.024 Yeah. 00:43:45.364 --> 00:43:48.724 And then do you have like a laptop or something with you that's sort of your own on the go machine? 00:43:49.064 --> 00:43:52.524 Yep. And the laptop is running BcacheFS and NixOS. 00:43:52.964 --> 00:43:53.404 Excellent. 00:43:54.124 --> 00:43:54.684 Ah, ha, ha. 00:43:55.344 --> 00:43:56.044 Hey, just like Glenn. 00:43:56.444 --> 00:44:02.584 Hey, very nice. Yeah, I mean, NixOS has made it very easy to run BcacheFS. It's really great. 00:44:03.438 --> 00:44:05.698 So we're all three of us to them. 00:44:05.838 --> 00:44:10.038 Elvis Jericho as well, right? Like from before it was in the kernel to in kernel 00:44:10.038 --> 00:44:13.378 to after kernel, like all of it has been seamless, which is great. 00:44:13.858 --> 00:44:17.358 Yeah, Elvis Jericho hangs out in the channel, and he's been interested in the 00:44:17.358 --> 00:44:21.898 System D stuff, and we've been talking about ideas about how to sort that stuff 00:44:21.898 --> 00:44:23.518 out and get proper keep lives. 00:44:24.098 --> 00:44:30.458 What I want to do is there's Plymouth, I think, has some kind of mechanism for 00:44:30.458 --> 00:44:32.338 giving you information about your boot up. 00:44:33.138 --> 00:44:37.778 I can't remember off the top of my head what exactly is there but what I want to do is, 00:44:39.098 --> 00:44:42.178 plumb proper progress indicators up to Plymouth, 00:44:42.878 --> 00:44:46.998 in the not too distant future, we shouldn't need it for upgrades but if there's 00:44:46.998 --> 00:44:51.558 major file system damage and we have to fall back to B3 node scan we want to 00:44:51.558 --> 00:44:57.338 tell the user what we're doing and how long it's going to take or if a drive 00:44:57.338 --> 00:44:58.878 is going bad and we know that, 00:44:59.038 --> 00:45:02.318 we want to be able to alert the user So yeah. 00:45:02.318 --> 00:45:06.578 That would be really nice. Okay. Now, uh, no judgment zone. Do you have a desktop 00:45:06.578 --> 00:45:08.998 environment? That's your go-to desktop environment on that laptop? 00:45:10.187 --> 00:45:10.667 Sway. 00:45:11.587 --> 00:45:14.287 How fun. All right. Why Sway? 00:45:15.067 --> 00:45:18.207 Well, before Sway, I was using Awesome for years and years. 00:45:18.327 --> 00:45:18.807 Nice. 00:45:19.007 --> 00:45:23.747 And I loved that, but it was X11 only, and it was never going to come to Wayland. 00:45:23.907 --> 00:45:26.907 And I finally did the Wayland switch for whatever reason. 00:45:27.147 --> 00:45:29.327 I don't have strong opinions on it. Wayland's been fine. 00:45:29.867 --> 00:45:34.147 But yeah, Sway was the Wayland option, and it's actually been really clean. 00:45:34.387 --> 00:45:38.087 I like how it does configuration, and it's pretty cool. 00:45:38.627 --> 00:45:42.687 So your Nix OS configuration, is it like a configuration you've brought with 00:45:42.687 --> 00:45:47.187 you from machine to machine, or do you start fresh when you've got a new laptop? 00:45:47.327 --> 00:45:50.367 Like the first time you set it up, did you start fresh, or is this something you drag along with you? 00:45:50.567 --> 00:45:55.387 Yeah, I try to keep my configs in a Git repository, which I am very bad about keeping up to date. 00:45:56.787 --> 00:45:59.607 So I generally just move the whole SSD to the new machine. 00:46:00.947 --> 00:46:04.667 That's such a fun system guy thing to do. That's great. 00:46:05.027 --> 00:46:05.967 How could I be laziest? 00:46:07.387 --> 00:46:09.127 Hey as long as the disc's still good right. 00:46:09.127 --> 00:46:10.787 It's all of it yeah that's. 00:46:10.787 --> 00:46:14.687 What matters it makes it easier well gentlemen do you have any other questions for ken oh. 00:46:14.687 --> 00:46:18.187 Did you want to talk about maybe um bcache fs top that was maybe something. 00:46:18.187 --> 00:46:21.107 Oh yeah yeah new tool or improve tool. 00:46:21.107 --> 00:46:25.567 Oh yeah yeah actually that's been out there for for a while but some improvements 00:46:25.567 --> 00:46:31.267 land yeah so bcache fs top is this little thing that just shows you counters 00:46:31.267 --> 00:46:36.227 for for your file system it's the simplest dumbest thing ever but let's see 00:46:36.227 --> 00:46:40.807 what your file system is doing it's like yeah do you think it's kind of thing we love we. 00:46:40.807 --> 00:46:41.487 Love it i like. 00:46:41.487 --> 00:46:42.007 All this i mean. 00:46:42.007 --> 00:46:48.287 There's a lot of stuff in here copy gc wait a whole bunch of error information io read io write oh. 00:46:48.287 --> 00:46:52.647 Yeah some of those are old and probably don't make much sense it should be swapped 00:46:52.647 --> 00:46:56.127 out for better ones but i've been doing a lot of work on like the the reconcile 00:46:56.127 --> 00:47:01.827 and data update path events and trace points so the big thing that i just did was uh, 00:47:03.337 --> 00:47:06.397 I was already moving in this direction, trying to hold to it, 00:47:06.557 --> 00:47:12.157 but I finally did a giant codebase refactoring so that now it's done and things 00:47:12.157 --> 00:47:12.997 will never get out of sync. 00:47:13.517 --> 00:47:18.177 Every counter has a corresponding trace point. So the idea is that you see what 00:47:18.177 --> 00:47:22.057 your file system is doing, you look at FSTOP, that will show you like what events, 00:47:22.217 --> 00:47:23.997 what code pass, like what is it doing? 00:47:24.397 --> 00:47:27.097 And then if you want to drill down and find out anything more, 00:47:27.537 --> 00:47:31.257 the name of the counter is the name of the trace point and the trace point gives 00:47:31.257 --> 00:47:33.517 you information about that specific event. 00:47:33.517 --> 00:47:39.717 Wow oh that's so great wow smooth that's simple enough we could actually we 00:47:39.717 --> 00:47:42.377 could actually do it maybe with a little lm help but we can get there. 00:47:44.061 --> 00:47:48.001 And if any of those trace points isn't showing you the information that you 00:47:48.001 --> 00:47:51.881 need in order to understand what's going on, it's dead easy now to just, 00:47:52.181 --> 00:47:54.861 you know, everything is pretty printer-based. 00:47:54.861 --> 00:47:59.081 We can just dump a couple fields in or dump another variable in there, 00:47:59.081 --> 00:48:00.561 and it's like a five-line patch. 00:48:00.941 --> 00:48:03.741 So you can just hop on the IRC channel and say, hey, I'm trying to figure out 00:48:03.741 --> 00:48:07.141 what this is doing. And it could be like, here's a five-line patch for you, 00:48:07.201 --> 00:48:08.181 and it'll be in the next release. 00:48:08.721 --> 00:48:12.961 That is i love how much just from the developer perspective how much is sort 00:48:12.961 --> 00:48:16.201 of the modern development affordances and workflow you are trying to impose 00:48:16.201 --> 00:48:19.481 on this otherwise very austere and like you know. 00:48:19.481 --> 00:48:20.041 Hard to. 00:48:20.041 --> 00:48:23.021 Use environment and it seems like it's really paying dividends i mean from the 00:48:23.021 --> 00:48:27.021 the file system as a database to insisting on automated testing to all the stuff 00:48:27.021 --> 00:48:27.801 you're just talking about. 00:48:27.801 --> 00:48:34.261 Yeah and a lot of the recent stuff as the project has grown a lot of the through 00:48:34.261 --> 00:48:37.961 a polish and the stuff that i really like to see has come from just working with users, 00:48:38.541 --> 00:48:41.241 a lot of you know developers think of support as a 00:48:41.241 --> 00:48:44.161 chore but what i've realized is that you 00:48:44.161 --> 00:48:47.221 know actually basically any support issue 00:48:47.221 --> 00:48:51.421 that comes up there's something that we as engineers can do to just make the 00:48:51.421 --> 00:48:56.121 system you know easier to use or tell you exactly what's going on or make the 00:48:56.121 --> 00:49:02.901 issue go away entirely so doing support it motivates you to to just improve 00:49:02.901 --> 00:49:06.961 that kind of polish and you get lots of really fruitful interactions about, 00:49:07.141 --> 00:49:11.481 hey, the system is doing something wonky and you just got to be talking to people and, 00:49:12.622 --> 00:49:13.022 Yeah. 00:49:13.282 --> 00:49:18.982 I feel like, you know, when I think about Bcache's contribution to Linux over 00:49:18.982 --> 00:49:24.802 the next 20 years, you are in a very unique period of time right now where it 00:49:24.802 --> 00:49:27.242 would be great to have a lot of engineers at the same time. 00:49:27.522 --> 00:49:31.202 You're really you're very hands on. I mean, Kent, you're you're not only like 00:49:31.202 --> 00:49:33.762 doing the day to day work, but you are communicating with users. 00:49:33.962 --> 00:49:37.562 You're writing comprehensive release notes that I think are better than most 00:49:37.562 --> 00:49:41.062 projects release. and then you're communicating with folks at us at the same time. 00:49:41.562 --> 00:49:45.902 And it's really, it's a special thing that's happening right now that 20 years 00:49:45.902 --> 00:49:49.042 from now is going to people be using a file system they may not even know that's 00:49:49.042 --> 00:49:52.842 had this kind of intention and energy put into it. But it's really great. 00:49:52.902 --> 00:49:56.502 It's a lot to juggle, but it's a lot of fun too. And let me flip some of those 00:49:56.502 --> 00:49:59.482 questions around too because you've been playing with BcacheFS a bit. 00:49:59.602 --> 00:50:02.502 What do you like about it? What do you find modern and interesting about it? 00:50:02.662 --> 00:50:07.022 I think I'm really kind of excited just having a file system that I can trust 00:50:07.022 --> 00:50:09.962 at the caliber that I would trust ZFS, 00:50:10.222 --> 00:50:13.702 but with features that feel more approachable, that it seems more reasonable 00:50:13.702 --> 00:50:18.702 on my type of systems and is built in to the kernel or is easy enough with like 00:50:18.702 --> 00:50:21.022 Nix OS to run as a DKMS module. 00:50:21.282 --> 00:50:26.242 And like you add all that stuff up and it's essentially, it feels like the true 00:50:26.242 --> 00:50:31.542 Linux competitor to ZFS that we've been waiting for since Sun Microsystems was a company. 00:50:32.422 --> 00:50:35.762 That's been the dream. That's what I and like funders and everyone I've been 00:50:35.762 --> 00:50:37.162 talking about for years and years. 00:50:37.342 --> 00:50:40.622 And not to take away from ZFS. They can have it. It's great, right? 00:50:40.802 --> 00:50:47.382 Oh, totally. Totally. ZFS deserves so much accolades and respect for showing 00:50:47.382 --> 00:50:51.062 us what a modern file system should be and demonstrating that it was even possible. 00:50:51.362 --> 00:50:54.002 Right, right. And it's made a lot of people happy. It's great. 00:50:54.822 --> 00:50:56.922 It's just we need something in Linux too, right? 00:50:56.962 --> 00:51:00.542 We need something that's GPL'd and something that's created kind of in the Linux 00:51:00.542 --> 00:51:04.162 ethos inside the Linux community for Linux, which is exactly what you're doing. 00:51:05.202 --> 00:51:10.982 And there's also legitimate technical advancements to be done beyond what ZFS did. 00:51:12.083 --> 00:51:18.903 Uh probably not a lot of non-file system nerds know about like the inner workings 00:51:18.903 --> 00:51:24.223 of this stuff but zfs was actually a very conservative design in a lot of ways technically, 00:51:25.343 --> 00:51:29.123 for very smart reasons if you're trying to do a very ambitious feature set you 00:51:29.123 --> 00:51:34.143 don't want to reimagine everything all at once right but the the core design 00:51:34.143 --> 00:51:38.583 it very much is in line with the original unix file systems of like radix trees 00:51:38.583 --> 00:51:42.243 of blocks hanging off the inode and like all the on-desk data structures, 00:51:43.123 --> 00:51:45.823 it's block-based, it's not extant-based. 00:51:46.283 --> 00:51:53.803 And we knew 20 years ago, 30 years ago, XFS did extents, that extents are the way to go. 00:51:54.403 --> 00:51:58.583 The trouble was that extents and snapshots are a very difficult combination, 00:51:58.963 --> 00:52:00.563 and one that took me years to figure out. 00:52:01.223 --> 00:52:04.863 And there's lots of other stuff, like the whole file system as a database thing. 00:52:06.363 --> 00:52:12.303 I could talk for a while about that one, but that was BcacheFS's biggest contribution 00:52:12.303 --> 00:52:15.743 that's really simplified the design and made a lot of feature work. 00:52:17.041 --> 00:52:19.561 Dead easy compared to what it would have been in previous systems. 00:52:21.081 --> 00:52:22.381 I'll give you one example. 00:52:22.961 --> 00:52:26.341 Towards the end of Reconcile, I was debugging with a user who was, 00:52:26.461 --> 00:52:31.021 there was some stuff with Btree nodes not going on the pending list or coming 00:52:31.021 --> 00:52:32.121 off the pending list or something. 00:52:32.721 --> 00:52:37.481 But he mentioned a slow evacuate, and he was running on rotating disks. 00:52:38.021 --> 00:52:44.201 And I went, hang on, the main Reconcile implementation scans the key space in 00:52:44.201 --> 00:52:48.701 logical key order, like I know number offset within the file but for rotating 00:52:48.701 --> 00:52:52.041 disks you really want to be doing it in like physical LBA order, 00:52:52.541 --> 00:52:55.141 the disk is laid out in the disks, 00:52:55.781 --> 00:52:58.781 and now Fitzroff in the channel pointed out that hang on 00:52:58.781 --> 00:53:02.681 the old style evacuate actually you mentioned this when I was already doing 00:53:02.681 --> 00:53:06.921 the fix but you mentioned that the old style evacuate code is already walking 00:53:06.921 --> 00:53:10.561 back pointers do it physical LBA order this is going to be a real performance 00:53:10.561 --> 00:53:16.701 regression and evacuate is something that actually you do want to run at a reasonable pace. 00:53:16.961 --> 00:53:17.161 Yes. 00:53:17.981 --> 00:53:18.541 So... 00:53:19.728 --> 00:53:28.808 I had to add extra indexes for indexing pending reconciled work by physical LBA order, 00:53:29.388 --> 00:53:33.808 plummet all into the triggers, add DFS check passes to make sure that that stuff 00:53:33.808 --> 00:53:35.668 is correct, hook it into the back pointers code. 00:53:36.208 --> 00:53:41.288 I was able to get all that done in a day, start to finish, from when I was thinking 00:53:41.288 --> 00:53:43.568 about the design to passing tests and working. 00:53:45.748 --> 00:53:50.128 That's like not everything is like that but that's right yeah what you can sometimes 00:53:50.128 --> 00:53:55.348 do when you've got a good solid foundation and you know like of course the database 00:53:55.348 --> 00:54:01.128 engineers are going that's just adding a table like we could do that and like yeah. 00:54:01.128 --> 00:54:02.508 Yeah we follow that yeah. 00:54:02.508 --> 00:54:04.008 Wow that's awesome. 00:54:04.008 --> 00:54:07.708 You know you said that i think that like a good a good solid foundation that's 00:54:07.708 --> 00:54:11.108 kind of what bcashfs feels like i'm using here with compression and the built-in 00:54:11.108 --> 00:54:16.068 encryption and we we use and like ButterFS on the show but it just feels like 00:54:16.068 --> 00:54:18.728 BcashFS is primed to be sort of like a, 00:54:19.208 --> 00:54:22.388 less sharp version that you could just sort of always trust. 00:54:23.694 --> 00:54:25.214 Something that you can debug. 00:54:26.054 --> 00:54:26.594 Yeah, yeah. 00:54:26.874 --> 00:54:29.694 Yeah, that tells you where it's wrong, that you know you can at least recover 00:54:29.694 --> 00:54:35.574 data off of, and where the features that are in, you know you can rely on them. 00:54:35.734 --> 00:54:35.974 Yeah. 00:54:36.834 --> 00:54:38.414 Yeah, that's kind of what I'm going for. 00:54:38.614 --> 00:54:41.934 I think it's one of the projects that we follow with the most interest and excitement. 00:54:42.194 --> 00:54:45.314 So thank you for just all of the work you've done, especially recently. 00:54:45.314 --> 00:54:47.954 It just seems like it's really been going from strength to strength. 00:54:48.494 --> 00:54:51.434 Yeah, the community feedback, doing it for the normal people, 00:54:51.754 --> 00:54:53.554 that's what I'm in this for. 00:54:53.694 --> 00:54:57.574 I don't care about what Red Hat or Facebook are doing. 00:54:57.794 --> 00:55:03.454 I'm just writing code that's solid and reliable and makes people happy. That's fun. 00:55:03.854 --> 00:55:08.614 Yeah, it is. Yeah. And there will be just every day more and more people using it every day. 00:55:08.754 --> 00:55:11.254 And it's going to solve more problems as people learn about it. 00:55:11.474 --> 00:55:12.894 And we're going to keep spreading the word too. 00:55:13.094 --> 00:55:16.954 If we do have users who give it a go after this and they do run into issues, 00:55:17.094 --> 00:55:18.594 what are the best ways for folks 00:55:18.594 --> 00:55:21.874 to actually interface with you and either get support or file blocks? 00:55:21.874 --> 00:55:24.814 So jump on the irc channel uh you 00:55:24.814 --> 00:55:28.634 can file a bug but it's generally a lot quicker to get stuff resolved if you 00:55:28.634 --> 00:55:33.034 can join the irc channel then we could just you know talk talk people through 00:55:33.034 --> 00:55:36.714 like gathering what information we need and just having a normal conversation 00:55:36.714 --> 00:55:40.054 makes things a lot a lot quicker and then we can bring them into the community 00:55:40.054 --> 00:55:43.394 and get them to do more testing and file file more bugs excellent. 00:55:43.394 --> 00:55:44.834 Thank you kent. 00:55:44.834 --> 00:55:45.654 Pleasure. 00:55:52.839 --> 00:55:58.359 1password.com slash unplugged. That's the number 1password and then unplugged 00:55:58.359 --> 00:55:59.639 and that's all lowercase. 00:55:59.839 --> 00:56:03.399 Go take the first steps to better security for your team by securing credentials 00:56:03.399 --> 00:56:07.719 and protecting every application, even the unmanaged one. So go learn more. 00:56:07.839 --> 00:56:10.639 You need to go to 1password.com slash unplugged. 00:56:10.859 --> 00:56:13.699 This is a real challenge. There's a lot of assets to manage. 00:56:13.819 --> 00:56:18.079 I mean, you have hardware, all the different devices from mobile to desktop to laptops and more. 00:56:18.579 --> 00:56:21.979 But there's also identities, of course, and there's applications. 00:56:22.239 --> 00:56:23.539 And there's more and more of 00:56:23.539 --> 00:56:26.399 those all the time that just spin up that you might not even know about. 00:56:26.699 --> 00:56:30.779 It's a lot. It creates a mountain of security risk. And you can conquer that 00:56:30.779 --> 00:56:35.219 mountain of security risk with 1Password extended access management. 00:56:35.539 --> 00:56:39.219 It's a big problem. Lots of people report this is their biggest challenge in 00:56:39.219 --> 00:56:43.919 IT, just a SaaS sprawl, you could say, which creates shadow IT, 00:56:44.219 --> 00:56:47.039 accounts, services you might not even know your users are using. 00:56:47.419 --> 00:56:50.259 And it's not hard to see why the users get more work done. 00:56:51.217 --> 00:56:58.497 I remember this when both Dropbox and Slack rolled out. It was a big user-up 00:56:58.497 --> 00:57:02.777 adoption, and it created friction between IT and the users. 00:57:02.997 --> 00:57:07.077 That's something that 1Password Extended Access Management really smooths out. 00:57:07.217 --> 00:57:10.417 And one of the ways you are empowered is with Trelica. 00:57:11.037 --> 00:57:16.077 Trelica by 1Password can discover and secure all your apps, managed or not. 00:57:16.297 --> 00:57:20.817 That means you're going to get an inventory of every app in use at your company. 00:57:21.217 --> 00:57:25.617 Trelica has pre-populated app profiles, so you can get an idea of the SaaS risks. 00:57:25.757 --> 00:57:29.757 You can get an idea of who has access to what if there's redundancies. 00:57:30.497 --> 00:57:34.397 You can really optimize your spend with tools like that, but probably most importantly, 00:57:34.537 --> 00:57:37.697 you can enforce best security practices across every app your employees use. 00:57:38.137 --> 00:57:43.097 You can actually manage the shadow IT. You can securely onboard and off-board 00:57:43.097 --> 00:57:46.557 employees, and you can make sure you're meeting compliance goals. 00:57:46.777 --> 00:57:50.737 Trelica by OnePass provides a complete solution for SaaS access governance. 00:57:51.217 --> 00:57:54.357 It's just one of the ways that extended access management helps teams strengthen 00:57:54.357 --> 00:57:55.977 compliance and security. 00:57:56.637 --> 00:58:00.437 So go check it out and support the show. You go to 1Password.com slash unplugged. 00:58:00.477 --> 00:58:03.497 You know about their award-winning password manager. It's trusted by millions of users. 00:58:03.737 --> 00:58:06.857 This goes way beyond just passwords. 00:58:07.737 --> 00:58:11.737 1Password Extended Access Management. It's powerful, and it gives you a complete 00:58:11.737 --> 00:58:15.017 oversight of the sprawling landscape of SaaS apps. 00:58:15.177 --> 00:58:19.077 Whether your company knows about them or not, that's a big deal. 00:58:19.197 --> 00:58:23.557 Go learn more. Support the show. go to the number one password.com slash unplugged. 00:58:23.657 --> 00:58:27.237 That's one password.com slash unplugged. 00:58:27.397 --> 00:58:30.377 You're going to change the way you look at managing it. 00:58:30.597 --> 00:58:34.057 And it's a great way to support the show. Go take the first steps to better 00:58:34.057 --> 00:58:38.337 security for your team by securing credentials and protecting every application. 00:58:38.597 --> 00:58:43.497 Even the unmanaged shadow it one password.com slash unplugged. 00:58:43.517 --> 00:58:46.537 That's one password.com slash unplugged. 00:58:48.718 --> 00:58:53.258 Join crowdhealth.com and use the promo code unplugged. It is open enrollment 00:58:53.258 --> 00:58:55.598 time, the season where the health insurance companies are going to hope you'll 00:58:55.598 --> 00:59:00.218 just sign up again for overpriced premiums and confusing fine print that never 00:59:00.218 --> 00:59:01.158 seems to work in your favor. 00:59:01.818 --> 00:59:05.558 And the prices just seems to get worse all the time. It's horrible. 00:59:06.078 --> 00:59:08.418 I had a tough call to make, especially as a small business owner, 00:59:08.518 --> 00:59:11.098 what direction I was going to go. My wife also owns her own small business. 00:59:11.918 --> 00:59:15.198 And we looked at all the options. We tried the traditional routes. 00:59:15.358 --> 00:59:16.398 It wasn't working for us. 00:59:17.118 --> 00:59:19.918 I was so grateful. over three years ago when I found CrowdHealth. 00:59:20.478 --> 00:59:22.638 I think it's time to stop playing the health insurance game. 00:59:22.798 --> 00:59:26.518 You can join CrowdHealth. It's a community of people funding each other's medical bills directly. 00:59:26.838 --> 00:59:31.318 No middleman, no networks, no nonsense. But don't just take my word for it. 00:59:31.418 --> 00:59:34.278 Go trust yourself and go take control of your future with CrowdHealth. 00:59:34.438 --> 00:59:37.658 It's a healthcare alternative for people who make their own decisions. 00:59:38.318 --> 00:59:43.838 Health insurance is, it's really stressful. It's confusing and you never really get what you want. 00:59:43.918 --> 00:59:47.538 And when you see the prices, you wonder what's ever gonna stop this train. 00:59:48.218 --> 00:59:52.598 Well, this is how we take the power back. And it's incredible how well it works. 00:59:52.698 --> 00:59:55.358 And they have a beautiful app that makes it really simple, straightforward. 00:59:55.538 --> 00:59:56.418 Of course, they have a website too. 00:59:57.078 --> 01:00:01.738 Chat, customer support's all right there. Really great leadership team. I've talked to the CEO. 01:00:01.898 --> 01:00:04.778 I've talked to people around there just casually and, of course, 01:00:04.858 --> 01:00:07.278 through the course of doing business with them now for the ads. 01:00:07.598 --> 01:00:11.498 And I'm really impressed. And not only do I like what I've seen over the last 01:00:11.498 --> 01:00:14.298 three years, but I like the momentum. 01:00:15.278 --> 01:00:19.038 I feel like I've picked a winner here. I think it's something you should really 01:00:19.038 --> 01:00:22.578 check out because it works well for me it works well for my wife and I, 01:00:23.178 --> 01:00:27.038 and you can get healthcare for under $100 you get access to a team of health 01:00:27.038 --> 01:00:31.678 bill negotiators low cost prescriptions lab testing tools as well as a database 01:00:31.678 --> 01:00:35.838 of low cost high quality doctors that get vetted by CrowdHealth it's an insurance alternative, 01:00:36.298 --> 01:00:40.718 and if something major happens you pay the first $500 then the crowd steps in to fund the rest. 01:00:41.845 --> 01:00:45.265 It's really the way it should work now. And of course, you'll join the crowd. 01:00:45.265 --> 01:00:48.245 It's a group of members just like you who want to help pay for each other's 01:00:48.245 --> 01:00:49.445 unexpected medical events. 01:00:49.825 --> 01:00:51.765 You'll be impressed of how well it works, too. 01:00:52.505 --> 01:00:57.485 The system is betting out there that you're just going to keep buying the same overpriced insurance. 01:00:58.305 --> 01:01:01.625 And man, are they just making a boatload of money. And it gets so complicated 01:01:01.625 --> 01:01:05.205 now. And if these subsidies expire, prices are going to go sky high. 01:01:05.765 --> 01:01:09.605 If you join CrowdHealth and use our promo code UNPLUGGED, you can get started 01:01:09.605 --> 01:01:13.025 for $99 for your first three months. That's fantastic. 01:01:13.385 --> 01:01:17.045 So far, CrowdHealth members have saved over $40 million in health care expenses 01:01:17.045 --> 01:01:19.025 because they just refused to overpay for health care. 01:01:19.625 --> 01:01:23.405 Now, CrowdHealth is not insurance. You should opt out and take your power back. 01:01:23.525 --> 01:01:25.305 This is how we win. This is how we change it. 01:01:25.625 --> 01:01:29.505 Joincrowdhealth.com, promo code UNPLUG, take your power back, 01:01:29.645 --> 01:01:31.085 and come join the crowd with me. 01:01:31.565 --> 01:01:34.965 I think you're going to be really impressed. Joincrowdhealth.com and use the 01:01:34.965 --> 01:01:39.265 promo code UNPLUG, and you will get your first three months for $99, 01:01:39.465 --> 01:01:43.345 which is incredible. Use the promo code unplugged at joincrowdhealth.com. 01:01:45.985 --> 01:01:51.485 While we have a special baller booster today, it is our dear PJ. 01:01:56.592 --> 01:02:01.132 Jeff Boosin, a row of McDucks, 22,222. 01:02:03.772 --> 01:02:08.952 Jeff says, okay, Brent. Brent, okay. Call me out for not boosting while I'm 01:02:08.952 --> 01:02:11.732 out running errands and can't defend myself. 01:02:12.012 --> 01:02:15.552 A guy only has so many sats to boost. That's true. 01:02:15.792 --> 01:02:19.612 Always down to boost a good soapbox episode, though. I should make some soapbox 01:02:19.612 --> 01:02:21.192 art for merch or something. 01:02:21.592 --> 01:02:22.492 Oh, great idea. 01:02:22.752 --> 01:02:26.472 That'd be good. Could you get me, if I'm on a soapbox, could it be me? 01:02:27.072 --> 01:02:32.232 In a soapbox with a dress shirt and shorts my traditional style for the summer 01:02:32.232 --> 01:02:37.692 and then like maybe holding like the like the a flag for Linux Unplugged it's 01:02:37.692 --> 01:02:40.872 like rah you know and I'm like crying to the sky with my, 01:02:41.512 --> 01:02:46.272 my rant I guess I don't know I wanted to you know invoke a real image your quest. 01:02:46.272 --> 01:02:47.272 For your desktop freedom. 01:02:47.272 --> 01:02:50.892 Yeah I think I just came up with a prompt yes. 01:02:50.892 --> 01:02:51.452 You did can. 01:02:51.452 --> 01:02:53.132 Someone just run that for. 01:02:53.132 --> 01:02:53.812 An animated Jeff. 01:02:53.812 --> 01:02:58.292 Thank you PJ for being our baller booster sir and glad you're listening. 01:02:58.492 --> 01:03:00.652 Appreciate that support. You know, also just a quick note. 01:03:01.612 --> 01:03:04.352 PJ mines those sats most, I don't know if these ones in particular, 01:03:04.492 --> 01:03:06.972 but often what he boosts in, he mines with solar energy. 01:03:08.112 --> 01:03:11.832 He uses clean solar energy to mine his sats and then he boosts in the show. 01:03:12.032 --> 01:03:13.272 How about that? How cool is that? 01:03:13.452 --> 01:03:16.772 For Jeff, those sats are as local as possible. They're made on his roof. 01:03:17.412 --> 01:03:17.532 Yeah. 01:03:17.832 --> 01:03:20.892 And, you know, Jeff sends us all kinds of value in all kinds of ways. 01:03:21.672 --> 01:03:27.172 Magnolia Mayhem comes in with 2,123 sats. That's two, one, two, three. 01:03:29.065 --> 01:03:34.225 Ah, I'm back at it, like an old pair of jeans. That's the last time I let my 01:03:34.225 --> 01:03:36.925 filthy clanker touch my Nix config. Uh-oh. 01:03:37.885 --> 01:03:41.205 Yeah, every now and then it goes bad, man. It can go real bad. 01:03:41.645 --> 01:03:43.365 Wipe out a user account or two on you. 01:03:43.545 --> 01:03:45.345 How would you know anything about that? 01:03:45.405 --> 01:03:48.625 Wouldn't know anything about that. Thank you for the boost. Thank you, 01:03:48.685 --> 01:03:49.585 Magnolia. Appreciate you. 01:03:50.305 --> 01:03:55.145 Southern Fried Sasa comes in with a row of ducks. Oh, it's for me. 01:03:55.265 --> 01:03:56.005 For Wes. Oh. 01:03:56.385 --> 01:03:59.985 If the family wants to rid themselves of that radioactive artifact. 01:04:00.285 --> 01:04:02.045 Oh, yeah. I don't know if the listeners thought this. 01:04:02.045 --> 01:04:02.805 This was from the members feed. 01:04:02.925 --> 01:04:05.665 Yeah, the members feed. You told us about something you discovered over the holiday. 01:04:06.465 --> 01:04:10.885 Yeah, radioactive personnel identification marker from the World War II era. 01:04:12.145 --> 01:04:16.045 Southern Sassa goes on to say, Most gun and knife shows will have at least one 01:04:16.045 --> 01:04:18.045 guy who pedals in World War II memorabilia. 01:04:18.145 --> 01:04:18.505 That's true. 01:04:18.725 --> 01:04:22.905 No shipping required. Also, I had to tune into the video stream to see the infamous 01:04:22.905 --> 01:04:26.125 kiddies. brent your co-stars are the true stars. 01:04:26.125 --> 01:04:30.425 That's true sorry hey i completely agree and good idea. 01:04:30.425 --> 01:04:31.105 There thank you. 01:04:31.105 --> 01:04:33.885 Uh during our chat with uh kent for most of it, 01:04:34.745 --> 01:04:39.565 brent's cat cosmo was completely wrapped around him like a scarf just completely 01:04:39.565 --> 01:04:48.645 wrapped around stylish yeah yeah it even purrs thank you southern fraud appreciate you well. 01:04:48.645 --> 01:04:51.085 So ham sent in 2000 sats, 01:04:53.817 --> 01:04:59.397 Just a clarification on Git here. I don't mean the people shouldn't learn or be taught Git. 01:04:59.657 --> 01:05:04.837 Rather, that it's basically impossible to teach people Git because of its incredible 01:05:04.837 --> 01:05:08.717 complexity and just downright weird UI and UX. 01:05:09.397 --> 01:05:13.637 For example, just take a look at, and they link us to a blog here, 01:05:13.737 --> 01:05:15.097 it looks like, maybe a man page. 01:05:15.437 --> 01:05:19.137 And tell me if that page is real or fake. 01:05:19.437 --> 01:05:21.657 Yeah, you should check this out because it's a great site. 01:05:21.877 --> 01:05:24.557 Okay, all right. What do you mean if it's real or fake? What do you mean? 01:05:25.397 --> 01:05:26.137 What are you talking about? 01:05:26.417 --> 01:05:28.497 Well, just take a peek. It's going to show you a man page. 01:05:28.757 --> 01:05:33.377 Okay. Oh, git saw command. Is this real? Git exhibits, which blob? 01:05:33.577 --> 01:05:34.697 Okay, I would have no idea. 01:05:34.957 --> 01:05:37.037 I'm going to guess this is not a real command. 01:05:37.197 --> 01:05:38.897 No, it's a generator of fake commands. 01:05:38.897 --> 01:05:39.537 This is funny. 01:05:39.797 --> 01:05:42.777 The point is they look shockingly like actual git. 01:05:42.897 --> 01:05:48.057 That's a pretty great way to draw that point. That's pretty clever. I appreciate that. 01:05:48.677 --> 01:05:54.377 You know, I was just, while Brent was reading that boost, I was just browsing GitHub.com. 01:05:54.517 --> 01:05:57.197 It's just fascinating how nowhere on there does it say Git. It says GitHub. 01:05:57.657 --> 01:06:01.237 Very little, but nothing about Git. Nothing. It's just... 01:06:01.237 --> 01:06:04.377 No, not until you kind of get into the details. And if you use their, 01:06:04.377 --> 01:06:07.557 like, you know, GH tool, even less. 01:06:07.757 --> 01:06:08.637 Yeah. It's interesting. 01:06:08.677 --> 01:06:13.517 You actually, with the web interface, you almost don't need to know Git if you're 01:06:13.517 --> 01:06:15.817 just, like, managing a project or something like that. 01:06:16.397 --> 01:06:22.517 Yeah. Yeah. Hey, there he is. It's Gene Bean, guys. He came in with a row of ducks, 01:06:24.933 --> 01:06:28.913 It's as though I use iOS as my daily driver, I always keep some kind of phone 01:06:28.913 --> 01:06:30.673 around running Lineage OS or something similar. 01:06:30.993 --> 01:06:34.713 Given a reasonable price, I'd absolutely love for that device to be one that 01:06:34.713 --> 01:06:35.913 shipped with Graphene OS. 01:06:36.013 --> 01:06:36.393 Oh, yeah. 01:06:36.653 --> 01:06:41.453 Mm-hmm. So that'd be fun. The kicker for me is that I need it to not be as pricey 01:06:41.453 --> 01:06:44.253 as a flagship phone so that I can justify it as a secondary device. 01:06:44.533 --> 01:06:45.373 Fair enough. Fair enough. 01:06:45.473 --> 01:06:48.753 You know, as crazy as it sounds, there's a market for a secondary phone device. 01:06:48.933 --> 01:06:50.433 I mean, I carry two phones. 01:06:50.713 --> 01:06:54.553 And I agree you don't need the second phone to be the most cutting-edge phone. 01:06:54.553 --> 01:06:57.613 They're small computers. And how many computers do we have already? 01:06:57.833 --> 01:07:00.933 Maybe that's where the new Yala phone will fill a gap. Thank you, 01:07:01.033 --> 01:07:03.753 Gene. It's always great to hear from you. Appreciate you very much. 01:07:05.033 --> 01:07:07.973 Hybrid sarcasm comes in with 10,000 sets. 01:07:10.653 --> 01:07:14.833 Just completed my holiday home lab submission. Well, thank you. That's great. 01:07:14.973 --> 01:07:15.253 All right. 01:07:16.453 --> 01:07:23.853 Be gentle, he implores us. Also, who's in the lead for the Boosties 2025 prize? 01:07:23.853 --> 01:07:28.193 Oh, okay. All right. And remember, there's going to be a giveaway, right? 01:07:28.313 --> 01:07:31.953 Hybrids mentioned this, a giveaway for a Jupiter Party membership. 01:07:32.093 --> 01:07:34.633 Now, we don't want to give away the winners or the totals. 01:07:34.833 --> 01:07:39.813 So we looked it up, we got the current numbers, and then Wes put the names through a randomizer. 01:07:40.013 --> 01:07:45.333 So this is who's currently in the top four for the most boost to this show in 2025. 01:07:49.144 --> 01:07:53.564 Black Host, Our Podcast, Adversary 17, and The Dude Abides. 01:07:54.224 --> 01:07:58.604 All in the range of top four. That list was in no particular order. It was randomized. 01:07:59.264 --> 01:08:05.684 And we are, I guess, in line with the Holiday Home Lab. I think the boosties will coincide, right? 01:08:05.824 --> 01:08:09.204 I think that's the way we'll do it. We'll do it together. So it will be one 01:08:09.204 --> 01:08:11.844 big spectacular episode for the holidays. 01:08:12.024 --> 01:08:16.404 Which would mean that you have until, say, maybe the 18th or 19th to get any 01:08:16.404 --> 01:08:18.044 boosts in if you do want to. 01:08:18.284 --> 01:08:18.784 Be at the top. 01:08:18.904 --> 01:08:20.664 Yeah. Reclaim your standing. 01:08:22.024 --> 01:08:23.084 Thank you, hybrid. 01:08:24.004 --> 01:08:28.464 Well, Daoma, Daoma boosts in 2,000 sets. 01:08:29.124 --> 01:08:32.824 Lately, I've been able to leverage more open source tools, namely Ansible and 01:08:32.824 --> 01:08:35.624 Open Tofu, at work as a sys engineer. 01:08:35.944 --> 01:08:41.064 I find myself thinking about it constantly and working much later hours while 01:08:41.064 --> 01:08:46.144 still feeling that I have a good work-life balance, even though I'm working for free, basically. 01:08:46.704 --> 01:08:50.844 Should I find other work that would better utilize this passion? 01:08:51.024 --> 01:08:55.824 Is it possible to just pick up an IT sysgig on the side, for instance? 01:08:56.664 --> 01:08:58.564 I'm not a dev, so I struggle to understand 01:08:58.564 --> 01:09:03.264 how I can contribute beyond submitting a PR on GitHub for a typo. 01:09:03.424 --> 01:09:06.764 Well, infrastructure is a great skill set. You don't necessarily have to be 01:09:06.764 --> 01:09:08.804 a developer, and of course they do blur more and more. 01:09:09.404 --> 01:09:13.124 Side gig question, yes. I think small businesses are always looking for help. 01:09:13.124 --> 01:09:17.364 They need somebody who can do part-time work because they can't afford a full-time 01:09:17.364 --> 01:09:20.104 IT person often. So if you know a small business in your area... 01:09:21.623 --> 01:09:24.103 It could be somebody that you patron and you've noticed they have computer problems. 01:09:24.243 --> 01:09:25.823 That has literally worked for me in the past. 01:09:26.423 --> 01:09:32.223 And then going back to essentially working for free, I often find myself when 01:09:32.223 --> 01:09:36.263 I'm in the learning phase, I've got a lot of energy to just really commit to this. 01:09:36.423 --> 01:09:40.983 And maybe sometimes an employer benefits from that. But I'm also benefiting. 01:09:41.283 --> 01:09:43.683 Yeah, I think you can probably frame it as like an investment in yourself. 01:09:43.683 --> 01:09:47.283 And there's a certain value, at least I have, I imagine you do too, 01:09:47.463 --> 01:09:52.943 on, you know, curiosity, learning, and the sort of the fun play discovery aspects 01:09:52.943 --> 01:09:54.003 of making this stuff work. 01:09:54.203 --> 01:09:58.143 What's that Dunder Mifflin curve too about learning stuff, you know, 01:09:58.303 --> 01:10:02.523 I'm talking about where at the beginning, you don't know what you don't know, 01:10:02.603 --> 01:10:04.503 and you start to think you're an expert. 01:10:04.823 --> 01:10:08.543 And then as you learn more, you realize you have so much more to learn, 01:10:08.603 --> 01:10:11.383 and then you kind of go down that curve and become an expert again. 01:10:11.383 --> 01:10:15.643 And I think, too, like you could burn through a bit of that phase during this, 01:10:15.923 --> 01:10:18.943 kind of learn what you don't know, have a better understanding, 01:10:19.063 --> 01:10:21.863 a wider context, and then absolutely make a career out of it. 01:10:22.003 --> 01:10:26.323 For me, this is also something to be said for having a way to apply the things you're learning. 01:10:26.503 --> 01:10:30.703 So sometimes the work environment is that place. And if you're going to be learning 01:10:30.703 --> 01:10:34.643 it on your own, maybe you don't have the same opportunity to solve a problem 01:10:34.643 --> 01:10:36.543 or implement a new solution. 01:10:36.843 --> 01:10:41.203 I do think you're right. Infra is often something open source projects need. 01:10:41.383 --> 01:10:44.143 Think it's probably a little tricky to get involved because you're probably 01:10:44.143 --> 01:10:46.123 going to have to hang around a little while to figure that out. 01:10:46.303 --> 01:10:50.163 It's not always advertised but I'm just thinking, you know, the Podverse folks 01:10:50.163 --> 01:10:53.003 are hard at work on their latest versions and I know there's some folks who 01:10:53.003 --> 01:10:55.963 are part of our community who help out on their infraside and that's... 01:10:55.963 --> 01:10:58.343 Podverse is a great shout out. It's a great idea. 01:10:58.563 --> 01:11:01.903 So I don't know about the particular communities that you're involved with necessarily 01:11:01.903 --> 01:11:05.063 but there's probably something out there somewhere that needs some love. 01:11:05.283 --> 01:11:05.723 Mm-hmm. 01:11:06.983 --> 01:11:10.523 Retro Gear boosts in with 2,998 sats. 01:11:13.374 --> 01:11:14.334 No, using Albi. 01:11:14.874 --> 01:11:18.714 Oh, cool. Oh, yeah, connected to Fountain now. That's a beta feature. 01:11:19.234 --> 01:11:19.594 Neat. 01:11:19.834 --> 01:11:22.234 Yep, yep, Albi Hub. Mm-hmm, mm-hmm. Nosterwall connected. 01:11:22.434 --> 01:11:28.054 Okay, Retro says, Gens, Proxmox NixOS actually works pretty well. 01:11:28.174 --> 01:11:31.734 This is the sort of hybrid, right? It's like Proxmox, but it's running on NixOS. 01:11:31.974 --> 01:11:34.674 I've been seeing a bit more buzz around this, so I'm interested to hear what he has to say. 01:11:34.954 --> 01:11:40.054 I'm running a few VMs on there that can't be done with modules or Docker containers. 01:11:40.374 --> 01:11:40.514 Ah. 01:11:40.754 --> 01:11:41.074 Cheers. 01:11:41.814 --> 01:11:42.794 I wonder what those would be. 01:11:43.374 --> 01:11:46.574 Well, so basically, I think just like stuff you might want to run in a VM. 01:11:46.734 --> 01:11:51.534 So as an alternative, right, instead of doing the setup we were doing with Home 01:11:51.534 --> 01:11:54.714 Assistant, you could write Home Assistant on Proxmox, still running on Nix. 01:11:55.314 --> 01:11:56.734 Right, right. Interesting. 01:11:56.974 --> 01:11:58.874 That's a lot of layers, but it could solve some problems. 01:11:59.174 --> 01:11:59.394 Yeah. 01:11:59.614 --> 01:12:03.134 I mean, you do it. You probably want to have all the Proxmox stuff, 01:12:03.274 --> 01:12:04.774 right? Like the API and all the... 01:12:04.774 --> 01:12:09.734 Yeah, and if you're like baked into the Proxmox backup system and you know that 01:12:09.734 --> 01:12:11.194 system, that makes a ton of sense. 01:12:11.574 --> 01:12:12.874 Appreciate the experience report. 01:12:12.874 --> 01:12:14.634 That's useful i'd love to hear more of them. 01:12:14.634 --> 01:12:20.214 Well turd ferguson here sends us a boost 14 444 cents, 01:12:23.248 --> 01:12:29.148 Hey, boys, did you see that Bazite pushed a petabyte of ISOs in the last 30 days? 01:12:29.548 --> 01:12:34.788 It looks like they also just crossed 40,000 active weekly users. 01:12:35.008 --> 01:12:39.108 Do you think everyone is loading these on Steam Decks or something? 01:12:40.148 --> 01:12:44.768 Hmm. If they're hitting 40,000 active users, there must be some Bazite, 01:12:44.968 --> 01:12:46.808 active Bazite users out in the audience. 01:12:48.488 --> 01:12:53.048 I also would love some feedback on if you put it on a Steam Deck. I have my Steam Deck. 01:12:53.748 --> 01:12:56.408 I have not been using as much the last few weeks because we went back to the 01:12:56.408 --> 01:12:58.468 Switch for a smoother Breath of the Wild playback. 01:13:01.128 --> 01:13:03.808 Priorities. I mean, that'd be a good time to reload that thing. 01:13:03.808 --> 01:13:05.528 I'd love some field experience out there. 01:13:06.148 --> 01:13:09.728 I kind of imagine it's people that are trying to do a Steam-like experience 01:13:09.728 --> 01:13:11.788 on non-deck hardware. That would be my gut. 01:13:12.568 --> 01:13:14.148 That makes sense to me as well. 01:13:14.388 --> 01:13:19.628 Although it would work just fine if you just game a fair amount and also need a workstation. 01:13:21.175 --> 01:13:24.795 Or if you've got, sort of like Jeff does, if you have a living room computer 01:13:24.795 --> 01:13:28.415 that you want to have a similar experience, that might be a nice option. 01:13:28.755 --> 01:13:28.955 True. 01:13:29.935 --> 01:13:34.115 I think that makes Bazite clearly the winner of the UBlue projects. 01:13:34.115 --> 01:13:37.635 That's great for them and probably great for all the other projects, too. 01:13:38.275 --> 01:13:40.655 Well, there you go. Thank you, everybody, that boosted this show. 01:13:40.655 --> 01:13:43.295 We really do appreciate it. And all of you who stream SATs. 01:13:43.395 --> 01:13:48.735 22 of you stream those SATs, and you collectively stacked 37,664 SATs. 01:13:48.835 --> 01:13:50.935 That would be one of our largest boosts for this episode. 01:13:51.175 --> 01:13:54.015 That would be the largest boost if you collected it all together. So thank you very much. 01:13:54.155 --> 01:14:00.855 When you combine that with our messengers, we stacked 98,395 sats just under 01:14:00.855 --> 01:14:02.555 that 100k sats line for this episode. 01:14:02.935 --> 01:14:07.015 Not our best week, but we do appreciate everybody who contributes to the show 01:14:07.015 --> 01:14:11.495 with their time, their talent, or their treasure, be it through a membership or through a boost. 01:14:11.675 --> 01:14:16.215 We are here every week for you doing the show that only Linux Unplugged can 01:14:16.215 --> 01:14:20.395 do. and that's because we're focused on our audience and not clickbait or things 01:14:20.395 --> 01:14:23.075 that might play well on shorts or YouTubes or things like that. 01:14:23.195 --> 01:14:26.535 We're just trying to make great quality content for our audience. 01:14:26.715 --> 01:14:30.095 And thank you everybody who boosts with something like Fountain FM or AlbiHub 01:14:30.095 --> 01:14:31.955 or one of those. We really do appreciate you. 01:14:34.755 --> 01:14:37.375 Fountain does just keep getting easier with lots of features. 01:14:37.555 --> 01:14:39.815 Fountain.fm for all of the hosted infrastructure. 01:14:40.695 --> 01:14:43.975 Podcastapps.com for those new apps. And of course, if you'd like to support 01:14:43.975 --> 01:14:49.375 with a membership, That's linuxunplugged.com slash membership and jupyter.party for all the shows. 01:14:49.515 --> 01:14:54.315 I gave you a lot of URLs, but I trust you. You're pretty clever. You're pretty clever. 01:15:00.908 --> 01:15:03.228 All right we got an overloaded pick section we should probably move through 01:15:03.228 --> 01:15:07.868 this pretty quick so let's start with the one you probably shouldn't use dot 01:15:07.868 --> 01:15:11.148 files installer dot files installer everybody what. 01:15:11.148 --> 01:15:11.868 Is going on. 01:15:11.868 --> 01:15:14.588 Here is this your. 01:15:14.588 --> 01:15:16.528 Way of not using home manager. 01:15:17.288 --> 01:15:21.888 No no no no no no no no i'm not using this although i did use it to back up 01:15:21.888 --> 01:15:27.408 my dot files that was great um so it's really for people that publish different 01:15:27.408 --> 01:15:31.008 different communities publish these curated .files. 01:15:31.108 --> 01:15:35.888 So you can pull down one file that has all these configurations for popular 01:15:35.888 --> 01:15:37.228 apps and desktop environments. 01:15:37.388 --> 01:15:42.268 And it's really, it's a way, it's way beyond theming. It's a whole system vibe. 01:15:42.728 --> 01:15:48.688 And you can have lots of different sources of these. You can have the problem 01:15:48.688 --> 01:15:49.908 where you're overriding things. 01:15:50.088 --> 01:15:53.788 What this application does is it lets you manage the various sources, 01:15:54.028 --> 01:15:56.708 turn things on and off, back up your own things, and essentially try to prevent 01:15:56.708 --> 01:16:00.688 any kind of loss that would mess your system up entirely while you're YOLOing 01:16:00.688 --> 01:16:02.348 everybody's different configurations down. 01:16:02.688 --> 01:16:06.808 And so it does try to prioritize data safety, offering a robust backup functionality 01:16:06.808 --> 01:16:09.068 before you start just YOLOing different configs down. 01:16:09.528 --> 01:16:12.288 And then you can also publish your own ones if you want to help other people 01:16:12.288 --> 01:16:13.908 just YOLO into their config. 01:16:14.108 --> 01:16:18.608 And it is a nice GTK application. It makes it very clear how you could possibly 01:16:18.608 --> 01:16:19.628 be messing your system up. 01:16:19.948 --> 01:16:21.308 You're making me like it. 01:16:21.528 --> 01:16:25.528 I know, right? I know. I mean, I don't think anybody should do this. 01:16:25.648 --> 01:16:27.988 Don't do this, blah, blah, blah. Safety first, all that. 01:16:29.248 --> 01:16:32.448 Don't do as we do. But if you just had a system where you didn't care a whole 01:16:32.448 --> 01:16:35.028 bunch or it was easy to roll back, this does make it kind of easy to roll back. 01:16:35.068 --> 01:16:36.088 Or you intentionally want an experiment. 01:16:37.329 --> 01:16:39.529 Okay, I'll try it. 01:16:39.629 --> 01:16:43.349 Yeah, say you wanted to get yourself on Hyperlender or Sway or one of these, 01:16:43.409 --> 01:16:46.069 and you don't really know how the hell to set up anything that looks nice. 01:16:46.709 --> 01:16:48.509 Sometimes these can be a nice starting place. 01:16:48.629 --> 01:16:49.109 That's a good point. 01:16:49.969 --> 01:16:54.489 So the Stop Files installer is GPL3. I believe it's on Flathub as well. 01:16:55.229 --> 01:16:56.829 Okay, now you ready for this next one? 01:16:56.949 --> 01:16:58.789 Yeah, this one I kind of like. 01:16:59.069 --> 01:17:04.389 This one for me, when macOS started getting good, now it's gone the other direction, 01:17:04.389 --> 01:17:06.389 But, you know, when the first releases, 01:17:06.549 --> 01:17:09.749 it was pretty rough, but they started getting to a point where a lot of independent 01:17:09.749 --> 01:17:13.909 developers started getting on board and creating these purpose-built applications 01:17:13.909 --> 01:17:17.749 that just make life a little bit simpler and easier for a lot of users on macOS. 01:17:18.009 --> 01:17:21.469 Right. They could just focus on this, like, one little task and do that well. 01:17:21.469 --> 01:17:23.949 And so it was pretty polished and it had all the, like, you know, 01:17:24.269 --> 01:17:26.209 features that would come with working on it for a little while. 01:17:26.209 --> 01:17:28.489 And it would kind of become, like, the go-to application for doing this. 01:17:28.809 --> 01:17:30.889 Well, I hope that's SSH Studio. 01:17:31.169 --> 01:17:34.249 It's a GUI that's GTK4, Libidwadia GUI. 01:17:34.389 --> 01:17:39.129 That is an easy-to-use config editor for your SSH setup. 01:17:39.209 --> 01:17:44.589 And it gives you what they call a visual host editor to edit common fields like 01:17:44.589 --> 01:17:48.389 the host name, the host, the users, the identity files, any forwarding agent 01:17:48.389 --> 01:17:50.389 setup. It does inline validation. 01:17:50.649 --> 01:17:53.189 Of course, it helps you search across your machines. But I think the bigger 01:17:53.189 --> 01:17:56.869 feature in here is really probably for folks who would be using a tool like 01:17:56.869 --> 01:17:59.009 this is maybe the SSH key management stuff. 01:17:59.569 --> 01:18:05.509 And it's if you connect to a handful of hosts, if this is an area that has sort 01:18:05.509 --> 01:18:07.009 of been troubling for you. 01:18:07.149 --> 01:18:11.029 Like this exact kind of example of these purpose-built applications that as 01:18:11.029 --> 01:18:15.049 a platform grows in user base, we just start to see a demand for it. 01:18:15.129 --> 01:18:18.109 And so in a way, I wanted to note it because I feel like it's important in that 01:18:18.109 --> 01:18:21.029 way, but B, it's actually kind of a useful app. It's pretty lean, pretty mean. 01:18:21.469 --> 01:18:24.249 Yeah, I mean, it just kind of shows you what's going on. It could be a nice 01:18:24.249 --> 01:18:25.389 way to investigate a system. 01:18:25.689 --> 01:18:29.349 It could also be a good way to discover some of the options that do exist for 01:18:29.349 --> 01:18:32.949 your SSH config and connections if you haven't taken advantage of those. 01:18:34.506 --> 01:18:36.826 And it's easy to install with flatback. 01:18:37.166 --> 01:18:38.086 GPL 3. 01:18:38.406 --> 01:18:38.846 Nice. 01:18:39.166 --> 01:18:43.346 Last but not least is what I'm calling the honorable mensch section of the picks 01:18:43.346 --> 01:18:44.926 because it's something we talk about too much. 01:18:45.326 --> 01:18:48.126 And you couldn't resist talking about it some more. 01:18:48.226 --> 01:18:51.666 They just came out with a great release. I found it personally very useful for 01:18:51.666 --> 01:18:54.446 tracking my total cost of ownership of my vehicles. 01:18:54.586 --> 01:18:57.966 We've talked about LubeLogger before, but a big version just dropped, 01:18:57.986 --> 01:19:01.026 and I want to let you know about it because I think these are great. 01:19:01.026 --> 01:19:05.006 First up, a new feature, inspections, pretty much what you'd expect is custom 01:19:05.006 --> 01:19:08.466 forms where you can go inspect your own vehicle and create reusable inspection 01:19:08.466 --> 01:19:10.546 forms, which is awesome for me. 01:19:10.686 --> 01:19:11.186 That's great. 01:19:11.566 --> 01:19:16.566 And create your own inspection checklist and then log that in LubeLocker. Huge, huge. 01:19:17.486 --> 01:19:21.606 Also now support for households. So this is one of the most requested features of LubeLocker. 01:19:21.706 --> 01:19:25.206 It's the ability to allow users to inherit vehicles in a garage and limit what 01:19:25.206 --> 01:19:27.906 actions they can perform on those vehicles, kind of like a permission structure. 01:19:28.566 --> 01:19:31.166 And so you no longer have to add a user and each vehicle. Instead, 01:19:31.306 --> 01:19:32.706 you can add them to a household. 01:19:33.366 --> 01:19:35.666 And then you just add that car, you add them to the household, 01:19:35.746 --> 01:19:37.786 they automatically get access to the vehicles in your garage. 01:19:38.726 --> 01:19:42.066 And they also created a viewer only, so a read-only user. 01:19:42.786 --> 01:19:46.846 They are handling, I think, the integration of AI in a pretty reasonable way. 01:19:47.106 --> 01:19:50.246 They say we know it's controversial. So what we're doing is instead of adding 01:19:50.246 --> 01:19:55.906 AI directly into LubeLogger, we're asking for an API key. and then we've decided 01:19:55.906 --> 01:19:59.246 to create an MCP server for LubeLogger that you spin up separately, 01:19:59.466 --> 01:20:01.006 probably like a container or something like that. 01:20:01.106 --> 01:20:01.246 Right. 01:20:01.406 --> 01:20:05.026 And then you would use that as a bridge between AI agents. So instead of having 01:20:05.026 --> 01:20:07.966 it built directly into main LubeLogger, it's like a sidecar. 01:20:08.426 --> 01:20:11.706 Yeah, I mean, it seems reasonable enough, right? Basically, it's just repackaging 01:20:11.706 --> 01:20:15.066 probably the existing API into the MCP standard. 01:20:15.266 --> 01:20:17.726 Now, there are some features in there that are kind of neat. 01:20:17.726 --> 01:20:21.446 It allows you to add fuel records from receipts, odometer records from a picture. 01:20:21.646 --> 01:20:22.366 Oh, that's nice. 01:20:22.526 --> 01:20:25.026 Yeah, so you just take a picture of your dashboard, Update the odometer reading. 01:20:26.846 --> 01:20:27.786 You might actually do it. 01:20:27.926 --> 01:20:33.326 Or like when we take our trips to any event that we drive to, 01:20:33.506 --> 01:20:34.966 we have to track all the receipts. 01:20:35.246 --> 01:20:39.246 And so like when we're on a road trip, we will sometimes just have like just 01:20:39.246 --> 01:20:42.706 a massive bundle of receipts when we're driving across the continent. 01:20:43.646 --> 01:20:48.866 And this time around, I was using, I think I don't quick scan and paperless, 01:20:49.106 --> 01:20:50.266 you know, to try to capture it. 01:20:50.806 --> 01:20:51.926 A little more real time. 01:20:51.926 --> 01:20:54.626 A little more, but something like this for my maintenance records and stuff 01:20:54.626 --> 01:20:57.706 like that, where I could just bring it right in. Just anything that makes that 01:20:57.706 --> 01:20:59.466 smoother is really, really, really great. 01:20:59.726 --> 01:21:03.166 And also invoices and those types of things to like for repairs. 01:21:03.806 --> 01:21:07.446 It's still an experimental stage, but that's an, I think, an idea where it's 01:21:07.446 --> 01:21:10.046 implemented not, so they're not slamming it in your face. 01:21:10.266 --> 01:21:13.746 You can run this sidecar and you have opt in. And then, by the way, 01:21:13.806 --> 01:21:17.026 once you do opt in, here's an actual couple of practical, useful things. 01:21:17.706 --> 01:21:18.286 Not bad. 01:21:18.506 --> 01:21:21.966 I think they nailed that. so I think that deserved an honorable mention huge 01:21:21.966 --> 01:21:23.746 release for Lublogger and it has been, 01:21:24.206 --> 01:21:26.966 it's really been a game changer for me because it helped me understand that 01:21:26.966 --> 01:21:30.466 like this vehicle is getting, actually two of my vehicles are now beginning 01:21:30.466 --> 01:21:34.146 to cost more than I want to spend on them in maintenance and you can track that 01:21:34.146 --> 01:21:35.606 kind of stuff in a way that isn't tedious, 01:21:36.106 --> 01:21:40.946 so I have not been historically great at that and Lublogger has made that very easy, 01:21:41.923 --> 01:21:46.943 So thank you to them, and congratulations. Also, thank you to Kent for taking the time to join us. 01:21:46.963 --> 01:21:50.043 He's a busy guy. He's got a lot of demands on his time, and we really appreciate 01:21:50.043 --> 01:21:51.403 him taking the time to chat with us. 01:21:51.903 --> 01:21:54.843 And we'll put some links to the new release in the show notes. 01:21:55.003 --> 01:21:58.063 And don't forget, he's also on Patreon. So if you want to support his work directly, 01:21:58.183 --> 01:21:59.283 that's how he's getting it done. 01:21:59.823 --> 01:22:02.363 We'll try to put a link to that in the show notes, too, so people can do that. 01:22:02.643 --> 01:22:06.983 And Wes, besides those show notes being over at linuxunplugged.com slash 644, 01:22:07.123 --> 01:22:10.523 if they're in a mobile client that has a few fancy features, 01:22:10.563 --> 01:22:13.823 they might get some bonus stuff. Some stuff that makes the show even better for them. 01:22:13.983 --> 01:22:20.123 Yeah, cloud chapters for one. That's right. JSON delivered live right to your podcatcher. 01:22:20.283 --> 01:22:24.423 And don't forget about those beautiful transcripts that are derived from individual 01:22:24.423 --> 01:22:29.523 tracks of each host. So it is the most pristine transcription we can possibly generate for you. 01:22:29.823 --> 01:22:32.983 And for the clients that support it, we are also doing attribution. 01:22:32.983 --> 01:22:34.923 So it tells you which speaker is speaking. 01:22:35.783 --> 01:22:39.103 That isn't easy, but we do it for you. And it's out there. 01:22:39.703 --> 01:22:42.583 And hopefully, you know, as we just do more episodes, we're going to create 01:22:42.583 --> 01:22:44.503 a huge data set that we'll use for something one day. 01:22:44.783 --> 01:22:48.243 I don't know what. And then last but not least, as we round out the year. 01:22:52.163 --> 01:22:57.523 We sure would love to have you join us live. JBLive.tv on a Sunday. 01:22:58.043 --> 01:23:01.323 Make it a Tuesday on a Sunday, 10 a.m. Pacific, 1 p.m. Eastern. 01:23:01.603 --> 01:23:04.183 Hey, that is also technically a magical feed feature. 01:23:04.563 --> 01:23:09.183 That's true. It's in those feeds. And then don't forget December 19th live. 01:23:09.443 --> 01:23:14.363 It is the home lab holiday special and you need to get your submissions in by that Wednesday. 01:23:15.163 --> 01:23:19.403 So that would be the 17th. Get your submissions in at Linux unplugged.com slash holiday. 01:23:19.643 --> 01:23:22.283 Thank you so much for joining us on this week's episode. We sure appreciate 01:23:22.283 --> 01:23:26.583 you listening and we'll see you right back here next Tuesday as in Sunday.
Previous episode Next episode

Search

Search