WEBVTT

00:00:11.249 --> 00:00:15.789
<v Chris>Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.

00:00:15.989 --> 00:00:16.649
<v Wes>My name is Wes.

00:00:16.849 --> 00:00:17.689
<v Brent>And my name is Brent.

00:00:18.209 --> 00:00:21.709
<v Chris>Well, hello, gentlemen. Coming up on the show today, it's a big one.

00:00:21.809 --> 00:00:26.269
<v Chris>Kent Overstreet, the creator of BcacheFS, joins us to give us a full update

00:00:26.269 --> 00:00:31.109
<v Chris>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
<v Chris>kicked out of the kernel.

00:00:32.329 --> 00:00:34.909
<v Chris>And then we're going to round it all out with some great picks,

00:00:35.269 --> 00:00:39.449
<v Chris>some boosts, actually like a really loaded pick section, and a lot more.

00:00:39.449 --> 00:00:43.069
<v Chris>So before we get to all of that, let's give the old time appropriate greetings

00:00:43.069 --> 00:00:44.929
<v Chris>to our virtual lug. Hello, Mumble Room.

00:00:48.253 --> 00:00:52.853
<v Chris>Hello. Good afternoon. Hello. Just a couple of you in the on-air and a group

00:00:52.853 --> 00:00:55.793
<v Chris>of you up there in the quiet listening as well. Mumbarum always cooking.

00:00:56.133 --> 00:00:59.473
<v Chris>We're always happy to have everybody in there. And a big good morning to our

00:00:59.473 --> 00:01:01.433
<v Chris>friends over at Defined Networking.

00:01:01.553 --> 00:01:05.473
<v Chris>Defined.net slash unplugged. Go check out Managed Nebula.

00:01:05.733 --> 00:01:09.973
<v Chris>It's built on top of the open source Nebula project. They handle the tricky

00:01:09.973 --> 00:01:11.573
<v Chris>bits that you might not want to think about.

00:01:11.833 --> 00:01:13.833
<v Chris>100 devices totally for free.

00:01:14.293 --> 00:01:17.693
<v Chris>No credit card required. Defined.net slash unplugged. this

00:01:17.693 --> 00:01:21.253
<v Chris>is a mesh vpn optimized for speed simplicity and

00:01:21.253 --> 00:01:24.493
<v Chris>really great security but ultimately it kind

00:01:24.493 --> 00:01:27.753
<v Chris>of goes a little bit beyond when you're picking your network infrastructure if you've

00:01:27.753 --> 00:01:33.373
<v Chris>been in tech for a minute you know that there's also the company behind the

00:01:33.373 --> 00:01:37.233
<v Chris>product and what they're all about and what their goals are and i think the

00:01:37.233 --> 00:01:40.333
<v Chris>way they're configured the way they're designed all of that stuff ultimately

00:01:40.333 --> 00:01:46.053
<v Chris>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
<v Chris>really judicious in how they have built and designed themselves to really align

00:01:51.013 --> 00:01:53.833
<v Chris>with how I would like a company that's building this type of tool.

00:01:53.993 --> 00:01:56.433
<v Chris>And I think you would also probably align with that if you're a listener to

00:01:56.433 --> 00:01:59.453
<v Chris>this show. So it goes just beyond the software and the fact this is a truly

00:01:59.453 --> 00:02:01.913
<v Chris>free project that's totally self-hostable if you'd like.

00:02:02.733 --> 00:02:06.393
<v Chris>It's optimized for speed, simplicity. It uses less battery on your devices,

00:02:06.393 --> 00:02:07.553
<v Chris>less network resources.

00:02:07.853 --> 00:02:11.433
<v Chris>You can host it completely or you can use their managed solution. But beyond just that.

00:02:12.698 --> 00:02:15.258
<v Chris>It's about the company architecture. It's about the funding model.

00:02:15.378 --> 00:02:19.098
<v Chris>It's about all these things that go into a long-term sustainable product that

00:02:19.098 --> 00:02:20.618
<v Chris>you can build a network on top of.

00:02:20.818 --> 00:02:23.258
<v Chris>And they have been solid since 2017. They had to be.

00:02:23.478 --> 00:02:26.278
<v Chris>They had to go in production day one for Slack and their global infrastructure.

00:02:26.738 --> 00:02:29.138
<v Chris>Now, now it's incredible what they power.

00:02:29.798 --> 00:02:33.298
<v Chris>Rivian cars on the road, all the metrics they send back to Rivian HQ,

00:02:33.518 --> 00:02:34.938
<v Chris>that's secured by Nebula.

00:02:35.438 --> 00:02:39.958
<v Chris>Think about all of those road, all those machines on the road communicating over Nebula.

00:02:40.238 --> 00:02:43.218
<v Chris>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
<v Chris>rivian it's really impressive it has

00:02:45.918 --> 00:02:50.038
<v Chris>an incredible level of resilience speed and scalability that you can tune to

00:02:50.038 --> 00:02:53.718
<v Chris>your needs from a home lab to an enterprise so go get started 100 hosts absolutely

00:02:53.718 --> 00:02:59.438
<v Chris>free support the show no credit card required go to defined.net slash unplugged

00:02:59.438 --> 00:03:05.498
<v Chris>well you know it is actually very scary Very close.

00:03:05.598 --> 00:03:07.278
<v Chris>So we wanted to give everybody a

00:03:07.278 --> 00:03:11.718
<v Chris>heads up that your time to submit to the Holiday Home Lab is running out.

00:03:22.541 --> 00:03:26.841
<v Chris>We want your holiday home lab submission. Submit your home lab for Linux Unplugged

00:03:26.841 --> 00:03:28.181
<v Chris>holiday special coming up.

00:03:28.321 --> 00:03:32.921
<v Chris>We're looking for your creative or efficient or chaotic, overbuilt, just beginning setups.

00:03:33.141 --> 00:03:36.781
<v Chris>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
<v Chris>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
<v Chris>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
<v Chris>at LinuxUnplugged.com slash holiday.

00:03:46.661 --> 00:03:50.861
<v Chris>Your time is almost out because we have picked our live record date,

00:03:50.961 --> 00:03:52.581
<v Chris>which we would invite you to join us.

00:03:52.761 --> 00:03:59.001
<v Chris>It'll be on Friday, December 19th, 2025, when we record the holiday home lab special.

00:03:59.321 --> 00:04:02.181
<v Chris>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
<v Chris>your home lab Friday, the 19th, we'll have

00:04:05.341 --> 00:04:08.961
<v Chris>the exact details and time at jupiterbroadcasting.com slash calendars.

00:04:09.061 --> 00:04:12.721
<v Chris>We get closer, but more importantly, because I sometimes forget that bit.

00:04:12.881 --> 00:04:15.901
<v Chris>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
<v Chris>do app, you'll see it in there when we're going to be live.

00:04:18.241 --> 00:04:23.921
<v Chris>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
<v Chris>We, we, I don't know if we have after Christmas quite dialed in yet,

00:04:26.881 --> 00:04:28.621
<v Chris>but it's getting pretty close.

00:04:28.881 --> 00:04:34.541
<v Chris>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
<v Chris>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
<v Chris>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
<v Chris>to go through all the submissions right yeah.

00:04:45.961 --> 00:04:46.701
<v Wes>That seems reasonable.

00:04:46.701 --> 00:04:52.221
<v Chris>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
<v Chris>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
<v Chris>details on exactly when probably we could probably just safely assume our regular time seems.

00:05:01.541 --> 00:05:03.541
<v Wes>Like it sure why not.

00:05:03.541 --> 00:05:06.421
<v Chris>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
<v Chris>of fun and we've had some great submissions.

00:05:07.961 --> 00:05:09.821
<v Wes>You can't have a holiday without a home lab.

00:05:12.892 --> 00:05:16.112
<v Chris>No, you've got to play your Christmas mixes and stuff. Well,

00:05:16.192 --> 00:05:21.332
<v Chris>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
<v Chris>status and the kernel and honestly our real-time reactions because a lot of

00:05:25.392 --> 00:05:26.312
<v Chris>that developed while we,

00:05:26.472 --> 00:05:30.072
<v Chris>in both times there were major developments while we were traveling.

00:05:30.532 --> 00:05:30.632
<v Wes>Yeah.

00:05:31.092 --> 00:05:33.012
<v Chris>So we were like processing all of that.

00:05:33.212 --> 00:05:38.032
<v Wes>Attempting to travel or attend a conference or, you know, not think about file systems.

00:05:38.172 --> 00:05:40.852
<v Chris>So if you missed that last week, you might want to go grab that context.

00:05:40.852 --> 00:05:44.892
<v Chris>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
<v Chris>And as the year rounds out, we thought this is a topic we should talk about

00:05:48.312 --> 00:05:50.032
<v Chris>because there's been a lot of changes.

00:05:50.152 --> 00:05:54.572
<v Chris>Bcache FS was kicked out of the Linux kernel. We talked about that last week.

00:05:55.192 --> 00:05:58.292
<v Chris>But I think it's best to get the information straight from the horse's mouth.

00:05:58.332 --> 00:05:59.752
<v Chris>And in this case, that's Kent Overstreet.

00:05:59.972 --> 00:06:03.252
<v Chris>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
<v Chris>the details and the technical stuff.

00:06:06.092 --> 00:06:10.672
<v Chris>And the best source, of course, is Kent. He's the creator of Bcache FS.

00:06:10.852 --> 00:06:13.692
<v Chris>And he's a rare, rare breed of developer.

00:06:14.312 --> 00:06:18.172
<v Chris>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
<v Chris>I wanted to mention something that maybe isn't obvious, though.

00:06:23.030 --> 00:06:27.110
<v Chris>Kent is creating what I consider to be maybe the most modern file system,

00:06:27.490 --> 00:06:30.850
<v Chris>period, right now. And he's making it GPL and available for Linux.

00:06:31.910 --> 00:06:35.750
<v Chris>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
<v Chris>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
<v Chris>And he is developing every single day. He committed, this is a Sunday morning,

00:06:46.930 --> 00:06:48.110
<v Chris>and he committed three hours ago.

00:06:48.250 --> 00:06:48.930
<v Wes>He sure did.

00:06:48.930 --> 00:06:52.610
<v Chris>And then he had released a major version, which we will get into,

00:06:52.730 --> 00:06:57.270
<v Chris>with major new features a few hours before our chat that day,

00:06:57.330 --> 00:06:59.050
<v Chris>because we talked to Kent on Thursday.

00:06:59.290 --> 00:06:59.590
<v Wes>Yeah.

00:07:00.330 --> 00:07:04.310
<v Chris>And he had just released a massive, massive update.

00:07:04.450 --> 00:07:07.210
<v Chris>And he's just constantly working. He's constantly communicating.

00:07:07.210 --> 00:07:12.750
<v Chris>And he's doing this while creating this project while being nomadic and keeping

00:07:12.750 --> 00:07:14.230
<v Chris>his cost of living as low as possible.

00:07:14.690 --> 00:07:17.830
<v Chris>So I just think he's an incredibly interesting developer from that standpoint.

00:07:17.830 --> 00:07:19.070
<v Chris>We're very lucky to have him.

00:07:19.630 --> 00:07:22.330
<v Chris>And just the insights here are great. So if you're not familiar with BcashFS,

00:07:22.570 --> 00:07:24.370
<v Chris>buckle up. And if you are, there's a lot to love in here, too.

00:07:24.950 --> 00:07:28.470
<v Chris (Interview)>Ken Overstreet, welcome back to the show. It's great to have you, sir.

00:07:29.030 --> 00:07:29.730
<v Kent>Great to be here.

00:07:30.170 --> 00:07:36.130
<v Chris (Interview)>And also, congrats. BcashFS 1.33 came out this morning, I think.

00:07:36.610 --> 00:07:37.810
<v Kent>Metadata version reconcile.

00:07:38.490 --> 00:07:39.230
<v Chris (Interview)>Huge, right?

00:07:39.590 --> 00:07:40.270
<v Kent>Tied it perfectly.

00:07:40.570 --> 00:07:43.110
<v Chris (Interview)>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
<v Chris (Interview)>But let's talk about the new reconcile system, because reading through the show

00:07:46.690 --> 00:07:50.250
<v Chris (Interview)>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
<v Chris (Interview)>seems like a small amount of work.

00:07:51.810 --> 00:07:56.610
<v Chris (Interview)>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
<v Kent>Total, but it touched all kinds of stuff. Yeah. Like had to get metadata plugged

00:08:00.790 --> 00:08:03.830
<v Kent>in, all kinds of just little bits here and there.

00:08:04.090 --> 00:08:10.050
<v Kent>Because whereas before, this grew out of Rebalance, which just did background

00:08:10.050 --> 00:08:11.290
<v Kent>compression and background target.

00:08:11.290 --> 00:08:16.630
<v Kent>Now we're aiming for strict correctness so that we can actually check the validity

00:08:16.630 --> 00:08:19.530
<v Kent>of all stored data against the IO path options.

00:08:19.950 --> 00:08:24.790
<v Kent>So if you're doing correctness checking, that tends to be a different level.

00:08:26.030 --> 00:08:26.990
<v Kent>So big project.

00:08:26.990 --> 00:08:34.150
<v Chris (Interview)>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
<v Kent>This is a.

00:08:34.670 --> 00:08:38.090
<v Chris (Interview)>Big piece of work and it's pretty cool that it landed right before you were

00:08:38.090 --> 00:08:43.330
<v Chris (Interview)>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
<v Chris (Interview)>i need to prepare or make any changes before i update.

00:08:46.170 --> 00:08:49.790
<v Kent>Uh the only thing to be aware of is uh there

00:08:49.790 --> 00:08:52.450
<v Kent>will be an upgrade process uh when you

00:08:52.450 --> 00:08:55.510
<v Kent>mount on the new version one of the things that should be coming soon

00:08:55.510 --> 00:08:58.350
<v Kent>but didn't land for this release is we should be able to do these

00:08:58.350 --> 00:09:01.070
<v Kent>upgrades in the background and we're still doing

00:09:01.070 --> 00:09:06.110
<v Kent>it at mount time and we still haven't got this communication with systemd going

00:09:06.110 --> 00:09:09.830
<v Kent>to let systemd know that we're actually doing stuff at mount and it just uh

00:09:09.830 --> 00:09:14.690
<v Kent>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
<v Kent>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
<v Kent>whatever you're watching,

00:09:19.930 --> 00:09:24.030
<v Kent>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
<v Kent>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
<v Kent>to redo something some minor detail of the back pointers actually had to rewrite

00:09:35.135 --> 00:09:36.435
<v Kent>half of everyone's metadata.

00:09:38.075 --> 00:09:40.555
<v Wes (Interview)>I think i remember upgrading from that one yeah.

00:09:40.555 --> 00:09:45.895
<v Kent>Yeah yeah no one noticed anything besides going hey why were my mouse taking

00:09:45.895 --> 00:09:50.375
<v Kent>so long people would kick it a couple times and it would just finally finished

00:09:50.375 --> 00:09:57.535
<v Kent>and so that was fun this is not as big an upgrade but okay okay.

00:09:57.535 --> 00:10:02.515
<v Chris (Interview)>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
<v Chris (Interview)>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
<v Chris (Interview)>but it feels like it's been five years i mean time flies it's.

00:10:10.175 --> 00:10:12.855
<v Wes (Interview)>Just shy uh 693 days.

00:10:12.855 --> 00:10:15.355
<v Chris (Interview)>Oh okay oh so okay yeah it's been.

00:10:15.355 --> 00:10:16.835
<v Kent>A bit so.

00:10:16.835 --> 00:10:20.975
<v Chris (Interview)>Um things have changed a Let's talk a little bit about user base,

00:10:20.995 --> 00:10:22.635
<v Chris (Interview)>who's using it these days.

00:10:23.115 --> 00:10:26.215
<v Chris (Interview)>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
<v Chris (Interview)>but how, how you say things have changed since 2024, just kind of a,

00:10:29.595 --> 00:10:31.435
<v Chris (Interview)>the best recap that you can recall.

00:10:31.555 --> 00:10:34.855
<v Kent>The biggest, biggest changes that things have really stabilized.

00:10:35.995 --> 00:10:39.835
<v Kent>Even like six months ago, you can probably three months ago,

00:10:40.015 --> 00:10:44.295
<v Kent>like back in July, I was still in the midst of, you know, the,

00:10:44.295 --> 00:10:47.435
<v Kent>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
<v Kent>I could see the trend back in, like, 6.14, but there was a noticeable inflection

00:10:54.033 --> 00:10:59.413
<v Kent>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
<v Kent>Past couple months were a giant slog with getting Reconcile out the door,

00:11:04.253 --> 00:11:07.073
<v Kent>but I'm feeling pretty good about where we're at.

00:11:07.553 --> 00:11:10.393
<v Kent>And we're getting really close to taking the experimental label off.

00:11:10.753 --> 00:11:12.153
<v Kent>I pegged that for Christmas.

00:11:12.853 --> 00:11:14.793
<v Wes (Interview)>What a lovely present, huh?

00:11:15.653 --> 00:11:19.433
<v Kent>Yeah, yeah. Yeah, there's like almost nothing left.

00:11:20.133 --> 00:11:23.093
<v Wes (Interview)>Yeah, I was going to ask, you mentioned sort of, you know, assessing stability

00:11:23.093 --> 00:11:25.973
<v Wes (Interview)>and here getting ready to take off that experimental label.

00:11:26.153 --> 00:11:29.333
<v Wes (Interview)>What actually are you looking for? Because I know you're helping people one-on-one.

00:11:29.333 --> 00:11:32.353
<v Wes (Interview)>You've also got like actual, you know, bugs getting filed upstream.

00:11:32.353 --> 00:11:34.153
<v Wes (Interview)>Probably you have like automated tests running.

00:11:34.493 --> 00:11:38.913
<v Kent>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
<v Kent>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
<v Kent>So i'm constantly watching the test dashboard which is never

00:11:47.353 --> 00:11:50.533
<v Kent>as clean as i would like it but i'm always

00:11:50.533 --> 00:11:53.273
<v Kent>watching like triaging and okay that one can

00:11:53.273 --> 00:11:58.493
<v Kent>wait no that's actually something serious i need to jump on now and uh most

00:11:58.493 --> 00:12:04.813
<v Kent>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
<v Kent>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
<v Kent>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
<v Kent>a trivial 10 or 20 line fix,

00:12:18.370 --> 00:12:20.130
<v Kent>So it's a lot of things.

00:12:20.470 --> 00:12:24.590
<v Chris (Interview)>I'm thinking back, it was really still pretty experimental at the time.

00:12:24.770 --> 00:12:28.750
<v Chris (Interview)>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
<v Chris (Interview)>to see any big format changes or anything that's really going to be disruptive

00:12:31.390 --> 00:12:33.650
<v Chris (Interview)>to my workflow. And that's huge, right?

00:12:34.330 --> 00:12:38.530
<v Kent>Yeah. One of the things with format changes is I've actually gotten less conservative

00:12:38.530 --> 00:12:42.470
<v Kent>with doing format changes since we're no longer upstream. We're DKMS.

00:12:42.670 --> 00:12:43.290
<v Chris (Interview)>Interesting. Okay.

00:12:43.470 --> 00:12:47.990
<v Kent>Because, yeah, we no longer have users running a whole bunch of different versions.

00:12:48.370 --> 00:12:49.910
<v Kent>And maybe rebooting it to older kernels.

00:12:50.330 --> 00:12:54.110
<v Kent>It's very easy now for users to just stay on the latest version.

00:12:54.370 --> 00:12:58.310
<v Kent>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
<v Kent>regressions, then there's no reason for users to have to roll back to older

00:13:02.630 --> 00:13:04.610
<v Kent>versions of the PCacheFS, which we can do.

00:13:06.449 --> 00:13:12.209
<v Kent>It was an expensive downgrade and then re-upgrade in the kernel.

00:13:12.369 --> 00:13:16.129
<v Kent>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
<v Kent>like reconcile, we've got another one coming for per-device fragmentation LRUs.

00:13:22.709 --> 00:13:25.349
<v Kent>That'll fix some issues with copy GC and tiering.

00:13:26.549 --> 00:13:29.949
<v Kent>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
<v Kent>we could do those upgrades in the background. Then it'll be completely smooth.

00:13:33.829 --> 00:13:36.229
<v Wes (Interview)>Yeah, then we really probably won't notice, huh?

00:13:36.449 --> 00:13:36.909
<v Kent>Yeah.

00:13:37.389 --> 00:13:41.249
<v Chris (Interview)>So, Kent, when all of this was going down with the discussion,

00:13:41.589 --> 00:13:47.349
<v Chris (Interview)>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
<v Kent>No, that one actually did not. The whole DKMS transition went much,

00:13:52.469 --> 00:13:53.869
<v Kent>much smoother than I expected.

00:13:54.549 --> 00:13:57.409
<v Kent>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
<v Kent>out, and it turned out actually better than I could have expected.

00:14:01.069 --> 00:14:03.229
<v Chris (Interview)>How so? I mean, besides obviously what we just talked about,

00:14:03.289 --> 00:14:04.129
<v Chris (Interview)>but in other ways as well?

00:14:04.749 --> 00:14:08.849
<v Kent>Yeah, I didn't seem to lose users like I expected.

00:14:09.769 --> 00:14:14.229
<v Kent>The people who actually care stuck with it. We were able to get the DKMS packages

00:14:14.229 --> 00:14:17.509
<v Kent>done, all the automation, everything we needed.

00:14:17.689 --> 00:14:20.669
<v Kent>That came together really fast because a lot of people jumped in and helped out.

00:14:21.709 --> 00:14:27.689
<v Kent>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
<v Kent>people to help out with a non-core kernel file system stuff.

00:14:31.409 --> 00:14:34.809
<v Kent>And there's a lot of people who are interested and want to help out,

00:14:34.849 --> 00:14:39.829
<v Kent>but they're understandably intimidated by diving into a 100,000 line C code

00:14:39.829 --> 00:14:43.849
<v Kent>base, but like packaging stuff, yeah, that was a lot easier.

00:14:44.069 --> 00:14:47.069
<v Chris (Interview)>I hadn't even thought about that, Kent, so I actually appreciate you bringing

00:14:47.069 --> 00:14:49.509
<v Chris (Interview)>that up. I guess what I have been stuck on,

00:14:50.454 --> 00:14:53.534
<v Chris (Interview)>I guess it seems like it's a good thing for Bcache in the short term,

00:14:53.694 --> 00:14:56.374
<v Chris (Interview)>but it's not a great thing for Linux in the long term.

00:14:57.214 --> 00:15:01.974
<v Chris (Interview)>I have really expressed on the show, I really think Linux needs a sophisticated,

00:15:02.374 --> 00:15:06.294
<v Chris (Interview)>modern file system that's GPL and built in. I think it's imperative.

00:15:07.074 --> 00:15:10.354
<v Kent>Yeah, I don't think the Linux file system world is in great shape,

00:15:10.354 --> 00:15:11.914
<v Kent>and I feel for those guys.

00:15:11.914 --> 00:15:17.634
<v Kent>But, you know, a lot of this stuff, there's fairly deep-seated problems,

00:15:17.634 --> 00:15:23.054
<v Kent>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
<v Kent>to, if everyone is stuck in their ways and doesn't want to change.

00:15:26.954 --> 00:15:31.694
<v Chris (Interview)>Is it momentum of just history and people that have their fiefdoms?

00:15:31.694 --> 00:15:34.294
<v Chris (Interview)>Is it just that? It's built fighting through that?

00:15:34.654 --> 00:15:39.674
<v Kent>That's some of it. Yeah. There's a lot of reasons.

00:15:39.674 --> 00:15:45.014
<v Kent>You know, the kernel is a big old project and, you know, basic processes,

00:15:45.234 --> 00:15:50.854
<v Kent>how we do things tend to, you know, in any big institution tend to ossify and

00:15:50.854 --> 00:15:51.854
<v Kent>become harder to change.

00:15:52.834 --> 00:15:56.694
<v Kent>And the Linux kernel came of age, you know, really back in the 90s,

00:15:56.794 --> 00:16:01.034
<v Kent>early 2000s, with everything being done on the mailing list,

00:16:01.174 --> 00:16:06.274
<v Kent>patch-based workflow, didn't even use source control for years and years famously.

00:16:07.474 --> 00:16:12.014
<v Kent>And the one place where it really lags today is like automated testing, QA.

00:16:13.214 --> 00:16:20.894
<v Kent>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
<v Kent>And if you're in the kernel, you're expected to stay on mainline,

00:16:25.354 --> 00:16:28.394
<v Kent>rebase onto RC1s every time RC1 comes out.

00:16:28.574 --> 00:16:33.434
<v Kent>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
<v Kent>If the file system people are the only people doing really comprehensive stress

00:16:40.016 --> 00:16:41.996
<v Kent>and torture testing, and there's

00:16:41.996 --> 00:16:45.656
<v Kent>other subsystems in the kernel that aren't testing the code at all,

00:16:47.096 --> 00:16:52.176
<v Kent>that's really painful, especially if you're like me, where I'm just one guy

00:16:52.176 --> 00:16:54.096
<v Kent>with 100,000 lines of code, and if.

00:16:56.656 --> 00:17:00.956
<v Kent>Things aren't working right, it'd be like every other release.

00:17:01.516 --> 00:17:06.056
<v Kent>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
<v Kent>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
<v Kent>of red, and I can't tell if my own patches are buggy or not.

00:17:18.896 --> 00:17:23.996
<v Kent>Think about that for the kernel as a whole. It boggles my mind trying to get

00:17:23.996 --> 00:17:27.956
<v Kent>work done in that environment without automated testing and not being able to

00:17:27.956 --> 00:17:30.936
<v Kent>get good feedback on what code is working or not.

00:17:30.936 --> 00:17:38.316
<v Kent>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
<v Wes (Interview)>It does make me reflect just on all the

00:17:41.016 --> 00:17:43.956
<v Wes (Interview)>pros and cons to the coupling to the

00:17:43.956 --> 00:17:47.016
<v Wes (Interview)>kernel if you are coupled you get the advantage that it's there by default but

00:17:47.016 --> 00:17:51.556
<v Wes (Interview)>if you're uncoupled there's a lot of pros although also of course some cons

00:17:51.556 --> 00:17:55.476
<v Wes (Interview)>I was just curious how you thought it was going being out of the kernel besides

00:17:55.476 --> 00:17:59.996
<v Wes (Interview)>DKMS I know there were some symbols that were no longer exported that had to

00:17:59.996 --> 00:18:01.496
<v Wes (Interview)>get Vendored like that kind of thing.

00:18:01.636 --> 00:18:05.396
<v Wes (Interview)>Do you anticipate being able to keep the current model working without too much of us?

00:18:06.436 --> 00:18:13.576
<v Kent>I'm curious how that's gonna go The the core kernel interfaces that file systems

00:18:13.576 --> 00:18:17.856
<v Kent>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
<v Kent>so I don't expect things to be too painful but,

00:18:23.650 --> 00:18:29.250
<v Kent>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
<v Chris (Interview)>It's fair. That's fair. It doesn't make me feel much better,

00:18:32.430 --> 00:18:36.350
<v Chris (Interview)>but it's a fair answer. I'm sure you probably feel very much the same.

00:18:36.450 --> 00:18:36.630
<v Kent>We shall see.

00:18:37.110 --> 00:18:37.390
<v Chris (Interview)>Yeah.

00:18:37.630 --> 00:18:37.850
<v Kent>Yeah.

00:18:38.270 --> 00:18:42.630
<v Chris (Interview)>All right. Well, I really appreciate you addressing that. That actually gives

00:18:42.630 --> 00:18:45.630
<v Chris (Interview)>me, I think, a better understanding overall of the situation.

00:18:45.950 --> 00:18:49.670
<v Chris (Interview)>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
<v Chris (Interview)>have just made it. But they've really stepped up to make it pretty simple for

00:18:52.970 --> 00:18:54.410
<v Chris (Interview)>me to just keep using BcacheFS.

00:18:55.528 --> 00:18:58.648
<v Kent>Yeah, the NixWest and Arch people have been awesome to work with.

00:18:58.848 --> 00:19:02.768
<v Kent>I haven't had to do anything for those distros besides keep in contact and make

00:19:02.768 --> 00:19:04.528
<v Kent>sure we're on the same page.

00:19:04.648 --> 00:19:10.848
<v Kent>And those guys hang out in the BcashFS IRC channel and we give each other a

00:19:10.848 --> 00:19:13.928
<v Kent>shot whenever something comes up. And generally things are just chill and awesome.

00:19:14.268 --> 00:19:20.448
<v Chris (Interview)>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
<v Chris (Interview)>to some pretty significant large BcashFS deployments.

00:19:24.588 --> 00:19:27.408
<v Chris (Interview)>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
<v Chris (Interview)>that you're aware of that people have been experimenting with or using in production?

00:19:30.408 --> 00:19:37.208
<v Kent>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
<v Kent>I hear from people when stuff breaks and if things are working great,

00:19:44.808 --> 00:19:50.288
<v Kent>then like there have been quite a few times when, you know,

00:19:50.768 --> 00:19:53.968
<v Kent>the rare regression, user impacting regression comes through.

00:19:53.968 --> 00:19:57.548
<v Kent>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
<v Kent>Like the Debian brouhaha, where the maintainer shipped a package and broke the

00:20:05.128 --> 00:20:06.408
<v Kent>build and then sat on updates.

00:20:06.548 --> 00:20:12.328
<v Kent>And there was a bug in mount where users couldn't pass the degraded option.

00:20:13.148 --> 00:20:16.588
<v Kent>And I start getting all these bug reports from users I've never heard of that

00:20:16.588 --> 00:20:20.108
<v Kent>I just had a drive die and I can't mount my file system.

00:20:21.808 --> 00:20:27.308
<v Kent>So, yeah, I have no kind of telemetry or statistics, and I would really love

00:20:27.308 --> 00:20:31.888
<v Kent>to get telemetry and just see all the data I possibly can when something breaks,

00:20:32.128 --> 00:20:33.768
<v Kent>but I don't have that yet.

00:20:34.088 --> 00:20:34.888
<v Chris (Interview)>Okay, okay.

00:20:35.148 --> 00:20:38.548
<v Wes (Interview)>Have you run into any interesting systems, though, or heard from folks reporting

00:20:38.548 --> 00:20:40.388
<v Wes (Interview)>successful or otherwise deployments?

00:20:40.628 --> 00:20:43.788
<v Kent>Oh, there's definitely some big file systems out there. There's been,

00:20:43.928 --> 00:20:48.428
<v Kent>for quite a while now, file systems north of 100 terabytes.

00:20:50.229 --> 00:20:54.829
<v Kent>I mentioned the 6.14 backpointers upgrade. That was specifically because people

00:20:54.829 --> 00:21:00.529
<v Kent>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
<v Kent>And now we can scale up. We tested scalability up to like 10 or 12 petabytes,

00:21:09.529 --> 00:21:12.329
<v Kent>and no one's hitting scalability issues anymore.

00:21:14.309 --> 00:21:19.009
<v Chris (Interview)>Okay, well, I'm nowhere near those numbers, but I've kind of this year started

00:21:19.009 --> 00:21:22.009
<v Chris (Interview)>building my home lab, rebuilding my home lab.

00:21:22.109 --> 00:21:25.089
<v Chris (Interview)>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
<v Chris (Interview)>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
<v Chris (Interview)>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
<v Chris (Interview)>Anything like that, you know? Like if I got you on the line,

00:21:37.069 --> 00:21:38.469
<v Chris (Interview)>I gotta be selfish and I gotta ask.

00:21:38.809 --> 00:21:42.949
<v Kent>Yeah, yeah. Oh, I love working with the home labbers. Those are the guys that

00:21:42.949 --> 00:21:45.029
<v Kent>hang out in the IRC channel and that,

00:21:46.023 --> 00:21:49.983
<v Kent>We have the most productive working relationships because those are the guys

00:21:49.983 --> 00:21:54.003
<v Kent>that like to tinker and investigate and discover how things break.

00:21:55.103 --> 00:21:58.923
<v Kent>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
<v Kent>polish comes from is working with those guys.

00:22:01.363 --> 00:22:03.983
<v Chris (Interview)>Okay. So if I'm going down the route.

00:22:04.103 --> 00:22:04.783
<v Kent>Go for it.

00:22:05.023 --> 00:22:08.023
<v Chris (Interview)>Yeah. I mean, just any tips, anything I need to worry about?

00:22:08.123 --> 00:22:12.283
<v Chris (Interview)>Is it just deploy, any mount options? I want any pro tips you got for me.

00:22:12.303 --> 00:22:18.003
<v Wes (Interview)>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
<v Chris (Interview)>You got any tips.

00:22:18.743 --> 00:22:21.543
<v Kent>Yeah uh aside from erasure coding we'll

00:22:21.543 --> 00:22:24.663
<v Kent>get to that okay everything should be pretty fire and forget if

00:22:24.663 --> 00:22:28.063
<v Kent>you've seen like the documentation on uh like how

00:22:28.063 --> 00:22:30.783
<v Kent>you set iopath options you know all that stuff can be set per

00:22:30.783 --> 00:22:33.923
<v Kent>directory application level uh target

00:22:33.923 --> 00:22:36.743
<v Kent>options you can set up whatever kind

00:22:36.743 --> 00:22:39.643
<v Kent>of tiering or caching setup or pin

00:22:39.643 --> 00:22:43.103
<v Kent>different directories to different devices there there

00:22:43.103 --> 00:22:46.083
<v Kent>really shouldn't be much to configure uh actually the

00:22:46.083 --> 00:22:50.983
<v Kent>one thing that i should mention is uh there is an outstanding bug on the bug

00:22:50.983 --> 00:22:56.003
<v Kent>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
<v Kent>is uh data corruption after writing hundreds of gigabytes and it's only used

00:23:00.323 --> 00:23:03.263
<v Kent>with c standards so yeah maybe.

00:23:03.263 --> 00:23:04.323
<v Wes (Interview)>Choose a different compression.

00:23:04.323 --> 00:23:08.223
<v Kent>Not the first c standard bug that we've tripped across right right and one of

00:23:08.223 --> 00:23:11.243
<v Kent>the hardening projects that's like next up on the to-do list will enable us

00:23:11.243 --> 00:23:16.683
<v Kent>to like pinpoint and flick up those guys like a test case or something and,

00:23:17.703 --> 00:23:22.803
<v Kent>hardness against uh compression algorithm library bugs or compression algorithm

00:23:22.803 --> 00:23:28.263
<v Kent>bugs and a couple other things in the data update path so yeah aside from that

00:23:28.263 --> 00:23:30.143
<v Kent>i mean you should be good to go you.

00:23:30.143 --> 00:23:32.183
<v Chris (Interview)>Mentioned erasure coding though you mentioned something about erasure.

00:23:32.183 --> 00:23:38.003
<v Kent>Yeah that's coming uh hopefully like first half of next year there's not much

00:23:38.003 --> 00:23:43.363
<v Kent>left uh people have been running erasure coding and meant not much to say about

00:23:43.363 --> 00:23:45.823
<v Kent>it besides the fact that it's fast and seems to work well,

00:23:46.543 --> 00:23:50.763
<v Kent>The only thing that's missing there, which the reason you shouldn't use it yet,

00:23:50.923 --> 00:23:57.423
<v Kent>unless you really know the gotcha, is we're missing like resilver or like the

00:23:57.423 --> 00:23:59.523
<v Kent>erasure coding version of re-replicate.

00:23:59.803 --> 00:24:02.663
<v Kent>But drive dies and you've got degraded stripes.

00:24:02.923 --> 00:24:08.643
<v Kent>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
<v Wes (Interview)>Does your recent reconcile work impact the implementation of that?

00:24:13.883 --> 00:24:16.983
<v Kent>It does, actually. uh that kind

00:24:16.983 --> 00:24:20.223
<v Kent>of gave us the hooks uh and

00:24:20.223 --> 00:24:24.183
<v Kent>the engine that's going to drive all that resilvering stuff and i reserve space

00:24:24.183 --> 00:24:28.503
<v Kent>and some metadata on this format stuff for exactly where erasure coding is going

00:24:28.503 --> 00:24:33.383
<v Kent>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
<v Kent>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
<v Kent>projects to do before i can think about that stuff.

00:24:39.163 --> 00:24:44.243
<v Chris (Interview)>So when you say hardening projects i think of security hardening But do you

00:24:44.243 --> 00:24:46.063
<v Chris (Interview)>mean a different type of hardening?

00:24:46.683 --> 00:24:50.643
<v Kent>Yes. I mean, the file system, like this is file system land.

00:24:50.843 --> 00:24:54.183
<v Kent>The file system jobs is to never lose your data.

00:24:54.803 --> 00:24:58.463
<v Kent>I always tell people, I don't care what happens to your file system.

00:24:58.623 --> 00:25:03.483
<v Kent>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
<v Kent>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
<v Kent>back anything that can be gotten back.

00:25:10.743 --> 00:25:15.583
<v Kent>And repair it and get it working again fully read-write with no user intervention.

00:25:15.883 --> 00:25:18.743
<v Kent>That's the goal here. And we're,

00:25:19.826 --> 00:25:23.246
<v Kent>I mean, judging from the log reports that I'm seeing, we're basically there.

00:25:23.626 --> 00:25:28.446
<v Kent>I just got a bug report like last week, two device replicated file system,

00:25:29.486 --> 00:25:32.586
<v Kent>tons of Btree node errors on only on one device.

00:25:33.166 --> 00:25:39.126
<v Kent>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
<v Kent>But then you look further and all the errors are like got wrong Btree node,

00:25:44.126 --> 00:25:46.366
<v Kent>but on one device, the other device is good.

00:25:48.526 --> 00:25:51.266
<v Kent>And the amount is like there there's no way

00:25:51.266 --> 00:25:54.726
<v Kent>a bcashfs bug could like swap

00:25:54.726 --> 00:25:57.826
<v Kent>out all your btree nodes with the wrong btree node only

00:25:57.826 --> 00:26:04.286
<v Kent>on one device that's just not possible so my suspicion is that a device mapper

00:26:04.286 --> 00:26:09.266
<v Kent>like a configuration got screwed up or something and shifted all the offset

00:26:09.266 --> 00:26:15.666
<v Kent>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
<v Chris (Interview)>Okay.

00:26:18.309 --> 00:26:19.369
<v Wes (Interview)>But it's those kinds of situations.

00:26:19.369 --> 00:26:22.129
<v Chris (Interview)>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
<v Chris (Interview)>from that situation Yes.

00:26:23.469 --> 00:26:28.469
<v Kent>Yeah, yeah makes sense. Yeah, I am I am very very insistent and very hard line

00:26:28.469 --> 00:26:30.969
<v Kent>even more hard line than the ZFS folks on this,

00:26:31.889 --> 00:26:37.509
<v Kent>Like if you compare a bcache fx and ZFS ZFS was designed for enterprise deployments

00:26:37.509 --> 00:26:42.629
<v Kent>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
<v Kent>uh and if you're running it in those kind of situations it should always work,

00:26:48.689 --> 00:26:53.329
<v Kent>but if you're running at single device mode on garbage hardware there are failure

00:26:53.329 --> 00:26:57.129
<v Kent>modes that zfs explicitly does not protect against and you'll be sending your

00:26:57.129 --> 00:26:58.769
<v Kent>drive to a drive recovery service,

00:27:00.409 --> 00:27:05.489
<v Kent>bcashfs handles those like i don't care if you metaphorically let your let your

00:27:05.489 --> 00:27:08.649
<v Kent>file system on fire it's we're gonna get your data back.

00:27:08.649 --> 00:27:11.469
<v Chris (Interview)>We love that because we love garbage hardware i was gonna to say this is where

00:27:11.469 --> 00:27:15.029
<v Chris (Interview)>it sounds like it fits our home webs anyway we're all about garbage

00:27:15.429 --> 00:27:20.549
<v Chris (Interview)>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
<v Chris (Interview)>even be asking this since you just released 1.33 this morning but it sounds

00:27:23.889 --> 00:27:27.609
<v Chris (Interview)>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
<v Kent>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
<v Kent>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
<v Kent>just broken and we can't do anything about it like cheap sd cards,

00:27:43.669 --> 00:27:50.009
<v Kent>or usb controllers usb controllers often have buggy flush to have seen the bug

00:27:50.009 --> 00:27:54.909
<v Kent>reports this idea came out of meeting with valve a couple weeks ago what i'm

00:27:54.909 --> 00:27:59.949
<v Kent>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
<v Kent>so we know what the most recently written data was,

00:28:03.569 --> 00:28:08.289
<v Kent>Why not just run a targeted scrub on only the last second of data we wrote?

00:28:08.869 --> 00:28:13.349
<v Kent>And then we can detect specifically and prove,

00:28:14.834 --> 00:28:18.434
<v Kent>it was broken flush fua in that case and

00:28:18.434 --> 00:28:22.794
<v Kent>even better we've also got whole file system rollback from the journal rewind

00:28:22.794 --> 00:28:27.514
<v Kent>thing i remember that that whole thing so if we detect that we could just roll

00:28:27.514 --> 00:28:32.054
<v Kent>your file system back to the last consistent point and you don't users don't

00:28:32.054 --> 00:28:37.114
<v Kent>have to care then we can run on garbage hardware and it does not matter ah.

00:28:37.114 --> 00:28:37.794
<v Wes (Interview)>That sounds great.

00:28:37.794 --> 00:28:43.294
<v Chris (Interview)>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
<v Chris (Interview)>in a more robust file system for future use?

00:28:47.534 --> 00:28:48.634
<v Kent>They might be.

00:28:48.914 --> 00:28:52.174
<v Chris (Interview)>Yeah, that's interesting. I mean, if they're paying attention,

00:28:52.174 --> 00:28:55.694
<v Chris (Interview)>they probably should be. So that's good to know.

00:28:55.874 --> 00:28:56.874
<v Wes (Interview)>That was going to make me...

00:28:56.874 --> 00:28:58.414
<v Kent>More people should be paying attention to file systems in my opinion.

00:28:58.594 --> 00:29:01.674
<v Chris (Interview)>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
<v Chris (Interview)>it sounds like maybe Valve is consulting with somebody that knows their stuff.

00:29:04.354 --> 00:29:07.834
<v Wes (Interview)>Makes me curious. How's the support been like both in terms of,

00:29:07.834 --> 00:29:10.334
<v Wes (Interview)>You mentioned some of the volunteers for DKMS, but also just,

00:29:10.334 --> 00:29:12.514
<v Wes (Interview)>you know, monetary support as well.

00:29:12.714 --> 00:29:16.154
<v Wes (Interview)>You mentioned during some of the turbulent times in the kernel that some of

00:29:16.154 --> 00:29:19.034
<v Wes (Interview)>that back and forth was generating bad press that was maybe making it harder

00:29:19.034 --> 00:29:21.454
<v Wes (Interview)>to find consistent support. Has anything changed there?

00:29:23.614 --> 00:29:26.674
<v Kent>Uh things have gotten gotten stable since

00:29:26.674 --> 00:29:30.014
<v Kent>since valve has jumped in and supporting yeah there

00:29:30.014 --> 00:29:34.094
<v Kent>there's it still really should be funded better if you better if you have any

00:29:34.094 --> 00:29:38.234
<v Kent>listeners with big pockets this is a project that really should have like three

00:29:38.234 --> 00:29:43.754
<v Kent>or five or six engineers working on it and so to me working it's ridiculous

00:29:43.754 --> 00:29:46.954
<v Kent>hours seven days a week that would be awesome uh,

00:29:47.494 --> 00:29:52.914
<v Kent>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
<v Wes (Interview)>Good. Glad to hear that.

00:29:54.054 --> 00:29:57.754
<v Chris (Interview)>That's good. And that's mostly, is that due to Valve helping there?

00:29:57.834 --> 00:29:59.314
<v Chris (Interview)>Is that stabilize things a bit?

00:29:59.314 --> 00:30:00.514
<v Kent>Yes. Yes.

00:30:00.774 --> 00:30:01.314
<v Chris (Interview)>That's good to hear.

00:30:01.334 --> 00:30:08.774
<v Kent>And before Valve, a European funding agency, NLNet, they jumped in and helped

00:30:08.774 --> 00:30:11.154
<v Kent>out. And that was a big help.

00:30:11.454 --> 00:30:14.134
<v Chris (Interview)>Yeah, it really would be nice if a few more folks would step up.

00:30:14.594 --> 00:30:17.294
<v Chris (Interview)>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
<v Chris (Interview)>off of BcashFS should step in now, right?

00:30:20.654 --> 00:30:21.454
<v Kent>No doubt.

00:30:21.794 --> 00:30:22.094
<v Chris (Interview)>Yeah.

00:30:22.094 --> 00:30:22.734
<v Kent>No doubt.

00:30:23.034 --> 00:30:26.674
<v Chris (Interview)>Hey, does that cross your mind? You are, you know, you're probably,

00:30:26.974 --> 00:30:29.634
<v Chris (Interview)>you know, I'm sure you're not living, you know, luxurious. You're just,

00:30:29.874 --> 00:30:31.114
<v Chris (Interview)>you know, you're getting by on this.

00:30:31.294 --> 00:30:36.214
<v Chris (Interview)>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
<v Kent>Yeah, but I'm also thinking long term here. Like one of the things about the

00:30:42.074 --> 00:30:48.594
<v Kent>whole criminal community is they've gotten too far down the route of just chasing

00:30:48.594 --> 00:30:50.254
<v Kent>where the money is going.

00:30:50.254 --> 00:30:56.354
<v Kent>And things in file system land got very project manager focused without enough,

00:30:58.353 --> 00:31:01.953
<v Kent>you know, engineering focus on long-term plans.

00:31:02.073 --> 00:31:04.393
<v Kent>Like, how are we going to architect things so we can do what we want,

00:31:04.433 --> 00:31:06.673
<v Kent>not just a year from now, but 10 years from now.

00:31:08.833 --> 00:31:12.833
<v Kent>And right now, Linux kernel funding is very much dominated by,

00:31:12.833 --> 00:31:14.193
<v Kent>you know, the big cloud providers.

00:31:14.893 --> 00:31:20.333
<v Kent>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
<v Wes (Interview)>Yeah, that's kind of the whole cloud thing, right? They're like,

00:31:22.593 --> 00:31:25.533
<v Wes (Interview)>well, you'll just spin up more of these throwaway instances or whatever.

00:31:25.813 --> 00:31:30.413
<v Kent>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
<v Kent>But a lot of us actually do care about reliability of the single node.

00:31:36.193 --> 00:31:43.193
<v Kent>So I honestly don't care that much about the big cloud providers or the big

00:31:43.193 --> 00:31:46.693
<v Kent>money part of the tech industry because they're not pushing technology forward

00:31:46.693 --> 00:31:49.053
<v Kent>in the field that I care about.

00:31:49.293 --> 00:31:51.873
<v Wes (Interview)>Yeah, they have a totally different approach to storage and how they manage

00:31:51.873 --> 00:31:55.793
<v Wes (Interview)>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
<v Kent>But there are people out there who do need a file system that will never fail,

00:32:02.133 --> 00:32:06.693
<v Kent>who do need the core part of the system to be as reliable as humanly possible.

00:32:06.973 --> 00:32:10.453
<v Kent>So I'm not thinking about big cloud providers. I'm thinking about like...

00:32:13.997 --> 00:32:16.837
<v Kent>I didn't even realize this until years ago i saw it

00:32:16.837 --> 00:32:19.837
<v Kent>on my github page there's a little sticker something about

00:32:19.837 --> 00:32:26.497
<v Kent>i had code uh on running on mars it is someone had noticed that everyone who

00:32:26.497 --> 00:32:29.497
<v Kent>had got code into the linux kernel and probably some time frame or whatever

00:32:29.497 --> 00:32:34.557
<v Kent>well nasa's running linux on the mars rovers which apparently they are that

00:32:34.557 --> 00:32:38.137
<v Kent>means i've got code on mars that's so cool so,

00:32:39.357 --> 00:32:43.777
<v Kent>yeah but they don't just need the kernel they actually need you know a file

00:32:43.777 --> 00:32:48.897
<v Kent>system that's reliable enough that it's not going to take down the rover if

00:32:48.897 --> 00:32:53.297
<v Kent>it crashes even if you're running in a high radiation environment where bit

00:32:53.297 --> 00:32:57.637
<v Kent>errors are just common and unexpected that really can recover from anything yeah.

00:32:57.637 --> 00:33:01.337
<v Wes (Interview)>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
<v Kent>Out yeah.

00:33:04.567 --> 00:33:08.287
<v Chris>Unraid.net slash unplugged. You want to build your own dream server?

00:33:08.427 --> 00:33:11.767
<v Chris>Well, unraid 7.2 makes it easier than ever.

00:33:11.967 --> 00:33:13.887
<v Chris>Go unleash your hardware.

00:33:14.147 --> 00:33:19.447
<v Chris>Now with a fully responsive web GUI, unraid now works beautifully across all your devices.

00:33:19.667 --> 00:33:25.467
<v Chris>You can set there and build your favorite application stack from your couch if you want.

00:33:25.687 --> 00:33:29.507
<v Chris>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
<v Chris>adds ZFS RAID Z expansion support.

00:33:32.067 --> 00:33:36.247
<v Chris>That means you can now grow your ZFS pools with having to start over.

00:33:36.967 --> 00:33:41.527
<v Chris>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
<v Chris>hard drive, Unraid 7.2 introduces support for Extended 2, 3,

00:33:45.507 --> 00:33:48.267
<v Chris>4, and NTFS as well as Extended Fat.

00:33:48.567 --> 00:33:52.467
<v Chris>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
<v Chris>gave you, you can just now instead of having to build that Windows box or try

00:33:56.047 --> 00:33:59.587
<v Chris>to load that NTFS driver on your Linux desktop, just plug it into your Unraid.

00:34:00.127 --> 00:34:05.247
<v Chris>There's also a new API. It's officially here. It's real. It's beautiful.

00:34:05.407 --> 00:34:07.587
<v Chris>People are building stuff on top of it, and it's open source.

00:34:07.907 --> 00:34:12.007
<v Chris>Fully integrated. It gives you secure, programmable access to system data for

00:34:12.007 --> 00:34:15.227
<v Chris>building dashboards, automations, or, you know, your own external apps.

00:34:15.887 --> 00:34:20.587
<v Chris>It even supports external authentication via OIDC, or OIDC, as you called.

00:34:21.187 --> 00:34:25.067
<v Chris>It's massive. I mean, 7.2's already had well over 25,000 downloads,

00:34:25.227 --> 00:34:26.707
<v Chris>lots of applications coming out.

00:34:26.827 --> 00:34:31.887
<v Chris>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
<v Chris>slash It's the OS that grows with your skills.

00:34:34.947 --> 00:34:39.907
<v Chris>And 7.2 introduces the new Unraid API, and it's chef's kiss.

00:34:40.287 --> 00:34:42.927
<v Chris>Check it out, support the show, and get a free 30-day trial.

00:34:43.147 --> 00:34:45.487
<v Chris>Unraid.net slash unplugged.

00:34:48.554 --> 00:34:54.294
<v Chris (Interview)>Okay, so speaking of architecture stuff, you seem pretty open to the inclusion

00:34:54.294 --> 00:34:58.554
<v Chris (Interview)>of Rust code in BcacheFS in the future. Can you touch on that?

00:34:58.634 --> 00:34:59.154
<v Kent>Oh, I'm pushing hard for that.

00:34:59.574 --> 00:35:00.614
<v Chris (Interview)>Tell me about it.

00:35:01.014 --> 00:35:06.074
<v Kent>Well, I mean, Rust is a sea change moment for systems programming.

00:35:06.774 --> 00:35:12.014
<v Kent>For decades, how we wrote systems code didn't change much. you just had to deal

00:35:12.014 --> 00:35:19.094
<v Kent>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
<v Kent>that your code is perfect.

00:35:21.554 --> 00:35:29.194
<v Kent>But the dream for a long time has been code programs with embedded correctness proofs.

00:35:29.374 --> 00:35:35.834
<v Kent>Things like CompCert, the first C compiler that is written in a language cock

00:35:35.834 --> 00:35:40.894
<v Kent>where you can prove that it always generates code that matches the specification.

00:35:41.774 --> 00:35:43.954
<v Kent>Wouldn't it be great if all code is like that?

00:35:44.754 --> 00:35:47.594
<v Chris (Interview)>Especially file system code. Yeah.

00:35:47.954 --> 00:35:50.454
<v Kent>I mean, I'd love that because I hate debugging.

00:35:50.954 --> 00:35:51.134
<v Chris (Interview)>Yeah.

00:35:52.674 --> 00:35:57.354
<v Kent>So the question has been, is that stuff ever going to be practical?

00:35:59.034 --> 00:36:06.894
<v Kent>And Rust actually solves a huge chunk of the of the problem for you know in

00:36:06.894 --> 00:36:11.054
<v Kent>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
<v Kent>deep reasons why Rust is designed the way it is and why it's well designed.

00:36:16.474 --> 00:36:23.574
<v Kent>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
<v Kent>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
<v Kent>functional language for all intents and purposes.

00:36:32.337 --> 00:36:35.257
<v Kent>And not just that what's also coming on the

00:36:35.257 --> 00:36:40.837
<v Kent>horizon uh there's been a big development in uh how you actually make embedded

00:36:40.837 --> 00:36:46.337
<v Kent>correctness proofs practical and not something that you that make you spend

00:36:46.337 --> 00:36:53.177
<v Kent>10 times as long to write something like concert which is uh dependent types,

00:36:54.177 --> 00:36:56.957
<v Kent>and idris is the language that's been exploring this it's

00:36:56.957 --> 00:37:00.577
<v Kent>a it's a haskell offshoot and it's one

00:37:00.577 --> 00:37:03.617
<v Kent>of those things were in hindsight if you're a kind

00:37:03.617 --> 00:37:06.377
<v Kent>of programming language nerd or a computer science nerd you go

00:37:06.377 --> 00:37:09.137
<v Kent>oh that was obvious because there's this

00:37:09.137 --> 00:37:14.177
<v Kent>thing called rice's theorem which is an offshoot of or kind of a corollary uh

00:37:14.177 --> 00:37:18.917
<v Kent>to the halting problem the halting problem says you know in in a try and complete

00:37:18.917 --> 00:37:25.557
<v Kent>language you can't prove or know ahead of time if a program completes You just

00:37:25.557 --> 00:37:26.717
<v Kent>have to run it and see what happens.

00:37:27.677 --> 00:37:32.117
<v Kent>Rice's theorem extends that to, in a Turing-Complete language.

00:37:33.597 --> 00:37:40.457
<v Kent>Any property of the program, anything that program does, is either a direct

00:37:40.457 --> 00:37:43.957
<v Kent>consequence of the syntax, or it's undecidable. You just can't know.

00:37:45.329 --> 00:37:51.369
<v Kent>So the direct consequence of the syntax thing is interesting because type systems

00:37:51.369 --> 00:37:54.369
<v Kent>are syntactical. You can reason about them syntactically.

00:37:54.809 --> 00:38:02.529
<v Kent>So what that kind of says is any practical advance in proving properties of

00:38:02.529 --> 00:38:04.589
<v Kent>programs has to be a type system thing.

00:38:04.909 --> 00:38:06.949
<v Kent>And that's what Idris and dependent types are doing.

00:38:07.449 --> 00:38:11.269
<v Kent>And it actually makes this stuff ergonomic. And I think one way or the other,

00:38:11.349 --> 00:38:14.469
<v Kent>that's going to make it into Rust someday.

00:38:15.329 --> 00:38:19.189
<v Kent>I mean, we could even do it because Rust has really, really good macros.

00:38:19.589 --> 00:38:22.829
<v Kent>We could probably add this stuff to Rust as procedural macros.

00:38:24.709 --> 00:38:30.129
<v Kent>And so my game plan is, you know, this might be like five, ten years out,

00:38:30.329 --> 00:38:33.109
<v Kent>five years before the Rust rewrite is mostly done.

00:38:33.749 --> 00:38:38.009
<v Kent>That won't be the big advance for BcacheFS. The big advance will be dependent types.

00:38:38.549 --> 00:38:39.829
<v Chris (Interview)>Can you explain more?

00:38:40.409 --> 00:38:46.249
<v Kent>So there's file systems are giant. state machines.

00:38:46.429 --> 00:38:48.669
<v Kent>There's tons of things that just have to be consistent.

00:38:49.189 --> 00:38:53.889
<v Kent>Like in the B-tree code, like all the locking stuff for the B-tree,

00:38:53.889 --> 00:38:59.729
<v Kent>iterators, lots of higher level stuff.

00:39:00.829 --> 00:39:04.369
<v Kent>You can't model that stuff with the type systems of today.

00:39:05.269 --> 00:39:11.689
<v Kent>I have to write these very long and very heavy assertions in debug mode that

00:39:11.689 --> 00:39:15.949
<v Kent>just methodically hey, check, is the entire state of this object correct?

00:39:16.209 --> 00:39:19.929
<v Wes (Interview)>So you have a giant state space to explore that you have to explore manually

00:39:19.929 --> 00:39:23.609
<v Wes (Interview)>because the type system, the compiler can't because you can't fully describe

00:39:23.609 --> 00:39:26.629
<v Wes (Interview)>the complexity to the type system as is. Is that right?

00:39:27.049 --> 00:39:32.929
<v Kent>Yeah, yeah. So anytime we mutate like the state of the objects that describe

00:39:32.929 --> 00:39:36.489
<v Kent>what locks we hold on the B-tree, we have to call these verify functions,

00:39:36.769 --> 00:39:38.649
<v Kent>the search that check, is this a valid state?

00:39:39.904 --> 00:39:45.524
<v Kent>All that stuff with dependent types, that becomes stuff that the compiler can check for us.

00:39:45.744 --> 00:39:47.664
<v Chris (Interview)>Yeah, okay. That's great.

00:39:47.924 --> 00:39:51.224
<v Wes (Interview)>Well, is there anything you're trying to do now? Obviously, dependent types

00:39:51.224 --> 00:39:55.084
<v Wes (Interview)>takes getting to Rust and Rust getting that functionality, but are there things

00:39:55.084 --> 00:39:58.704
<v Wes (Interview)>you're doing now practically today to try to prepare the code base in your approach?

00:39:58.704 --> 00:39:59.524
<v Chris (Interview)>Years ahead, basically, yeah.

00:40:01.564 --> 00:40:04.084
<v Kent>Leading into something that I mentioned in the chain log, yeah.

00:40:06.604 --> 00:40:14.264
<v Kent>So, maybe a year ago, Well, rewind, C finally got the cleanup attribute,

00:40:15.024 --> 00:40:19.984
<v Kent>which lets you run a destructor for an object when it falls out of scope.

00:40:20.204 --> 00:40:24.944
<v Kent>Now, this is basically sudo RAII, like C++ and Rust have.

00:40:25.484 --> 00:40:28.724
<v Kent>And then the kernel wrapped this up into a nicer interface, the class thing.

00:40:30.324 --> 00:40:35.244
<v Kent>And I found that, I started refactoring code, and I realized as I was doing

00:40:35.244 --> 00:40:40.784
<v Kent>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
<v Wes (Interview)>Sure, yeah.

00:40:42.244 --> 00:40:45.684
<v Kent>So doing the whole conversion, going all the way, has real benefits.

00:40:45.924 --> 00:40:48.824
<v Kent>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
<v Kent>you're trying to make sure the two don't conflict.

00:40:52.004 --> 00:40:56.464
<v Kent>I got kind of far along and I realized, okay, this is actually making the code

00:40:56.464 --> 00:40:59.644
<v Kent>fairly close to what the Rust version would be.

00:41:01.405 --> 00:41:05.005
<v Kent>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
<v Kent>mostly syntactic so i've been pushing on this stuff for pretty hard for the

00:41:09.625 --> 00:41:15.745
<v Kent>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
<v Kent>i i grew up and word counted and bcashfs had 20,

00:41:21.645 --> 00:41:27.425
<v Kent>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
<v Kent>standard for a C code base of that size.

00:41:29.945 --> 00:41:31.525
<v Kent>And now we're down to about 600.

00:41:31.925 --> 00:41:32.325
<v Wes (Interview)>Wow.

00:41:32.605 --> 00:41:34.245
<v Kent>A lot of files don't have any at all.

00:41:36.385 --> 00:41:40.605
<v Kent>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
<v Kent>Btree iterator, Btree API and transaction interface bindings.

00:41:45.365 --> 00:41:48.485
<v Kent>Those need to be improved and fleshed out. And then we can start thinking about,

00:41:48.585 --> 00:41:52.705
<v Kent>just taking a file and just doing a, not a rewrite, but just a translation.

00:41:53.105 --> 00:41:56.545
<v Kent>If we've got the bindings, then it should start to become straightforward.

00:41:58.064 --> 00:42:00.804
<v Kent>It starts to become straightforward with giant air quotes because there's always

00:42:00.804 --> 00:42:04.044
<v Kent>things that comes up and there will be a lot of interface work.

00:42:04.344 --> 00:42:10.904
<v Kent>But it's actually looking tractable to convert a 100,000 line code base to Rust

00:42:10.904 --> 00:42:14.484
<v Kent>or at least large swaths of it. And that's freaking awesome.

00:42:14.764 --> 00:42:17.644
<v Chris (Interview)>Kent, I think it always impresses me. And you just demonstrated it here.

00:42:17.644 --> 00:42:22.184
<v Chris (Interview)>It's like you have a grasp of the really small, nuanced details that need to

00:42:22.184 --> 00:42:26.284
<v Chris (Interview)>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
<v Chris (Interview)>changes and really big macro stuff.

00:42:29.084 --> 00:42:31.324
<v Chris (Interview)>That's a pretty rare talent.

00:42:32.084 --> 00:42:34.924
<v Kent>I've been doing this for a long time at this point.

00:42:35.764 --> 00:42:40.224
<v Chris (Interview)>Well, it's really impressive. Okay, so I think the listeners are probably wondering,

00:42:40.224 --> 00:42:45.164
<v Chris (Interview)>what is your Linux setup like? Are you constantly breaking your system with

00:42:45.164 --> 00:42:47.704
<v Chris (Interview)>new builds? Do you kind of have a standard box?

00:42:47.904 --> 00:42:51.424
<v Chris (Interview)>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
<v Kent>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
<v Kent>screw around like I used to.

00:42:58.444 --> 00:43:05.224
<v Kent>So the big workstation, which is still up in Canada, hosted by a friend in his

00:43:05.224 --> 00:43:12.924
<v Kent>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
<v Chris (Interview)>Oh, that's impressive.

00:43:14.164 --> 00:43:20.384
<v Kent>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
<v Kent>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
<v Kent>yeah and that setup hasn't changed in yeah forever i've swapped out every drive

00:43:32.844 --> 00:43:36.704
<v Kent>individually to like grow the array but that's literally the same array that

00:43:36.704 --> 00:43:38.784
<v Kent>i've had for like 15 years so.

00:43:38.784 --> 00:43:42.784
<v Chris (Interview)>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
<v Kent>Machine Yeah, yeah.

00:43:44.264 --> 00:43:44.564
<v Chris (Interview)>Okay.

00:43:44.864 --> 00:43:45.024
<v Kent>Yeah.

00:43:45.364 --> 00:43:48.724
<v Chris (Interview)>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
<v Kent>Yep. And the laptop is running BcacheFS and NixOS.

00:43:52.964 --> 00:43:53.404
<v Wes (Interview)>Excellent.

00:43:54.124 --> 00:43:54.684
<v Chris (Interview)>Ah, ha, ha.

00:43:55.344 --> 00:43:56.044
<v Wes (Interview)>Hey, just like Glenn.

00:43:56.444 --> 00:44:02.584
<v Chris (Interview)>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
<v Chris (Interview)>So we're all three of us to them.

00:44:05.838 --> 00:44:10.038
<v Wes (Interview)>Elvis Jericho as well, right? Like from before it was in the kernel to in kernel

00:44:10.038 --> 00:44:13.378
<v Wes (Interview)>to after kernel, like all of it has been seamless, which is great.

00:44:13.858 --> 00:44:17.358
<v Kent>Yeah, Elvis Jericho hangs out in the channel, and he's been interested in the

00:44:17.358 --> 00:44:21.898
<v Kent>System D stuff, and we've been talking about ideas about how to sort that stuff

00:44:21.898 --> 00:44:23.518
<v Kent>out and get proper keep lives.

00:44:24.098 --> 00:44:30.458
<v Kent>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
<v Kent>giving you information about your boot up.

00:44:33.138 --> 00:44:37.778
<v Kent>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
<v Kent>plumb proper progress indicators up to Plymouth,

00:44:42.878 --> 00:44:46.998
<v Kent>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
<v Kent>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
<v Kent>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
<v Kent>is going bad and we know that,

00:44:59.038 --> 00:45:02.318
<v Kent>we want to be able to alert the user So yeah.

00:45:02.318 --> 00:45:06.578
<v Chris (Interview)>That would be really nice. Okay. Now, uh, no judgment zone. Do you have a desktop

00:45:06.578 --> 00:45:08.998
<v Chris (Interview)>environment? That's your go-to desktop environment on that laptop?

00:45:10.187 --> 00:45:10.667
<v Kent>Sway.

00:45:11.587 --> 00:45:14.287
<v Chris (Interview)>How fun. All right. Why Sway?

00:45:15.067 --> 00:45:18.207
<v Kent>Well, before Sway, I was using Awesome for years and years.

00:45:18.327 --> 00:45:18.807
<v Chris (Interview)>Nice.

00:45:19.007 --> 00:45:23.747
<v Kent>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
<v Kent>And I finally did the Wayland switch for whatever reason.

00:45:27.147 --> 00:45:29.327
<v Kent>I don't have strong opinions on it. Wayland's been fine.

00:45:29.867 --> 00:45:34.147
<v Kent>But yeah, Sway was the Wayland option, and it's actually been really clean.

00:45:34.387 --> 00:45:38.087
<v Kent>I like how it does configuration, and it's pretty cool.

00:45:38.627 --> 00:45:42.687
<v Chris (Interview)>So your Nix OS configuration, is it like a configuration you've brought with

00:45:42.687 --> 00:45:47.187
<v Chris (Interview)>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
<v Chris (Interview)>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
<v Kent>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
<v Kent>So I generally just move the whole SSD to the new machine.

00:46:00.947 --> 00:46:04.667
<v Chris (Interview)>That's such a fun system guy thing to do. That's great.

00:46:05.027 --> 00:46:05.967
<v Kent>How could I be laziest?

00:46:07.387 --> 00:46:09.127
<v Chris (Interview)>Hey as long as the disc's still good right.

00:46:09.127 --> 00:46:10.787
<v Kent>It's all of it yeah that's.

00:46:10.787 --> 00:46:14.687
<v Chris (Interview)>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
<v Wes (Interview)>Did you want to talk about maybe um bcache fs top that was maybe something.

00:46:18.187 --> 00:46:21.107
<v Chris (Interview)>Oh yeah yeah new tool or improve tool.

00:46:21.107 --> 00:46:25.567
<v Kent>Oh yeah yeah actually that's been out there for for a while but some improvements

00:46:25.567 --> 00:46:31.267
<v Kent>land yeah so bcache fs top is this little thing that just shows you counters

00:46:31.267 --> 00:46:36.227
<v Kent>for for your file system it's the simplest dumbest thing ever but let's see

00:46:36.227 --> 00:46:40.807
<v Kent>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
<v Wes (Interview)>Love it i like.

00:46:41.487 --> 00:46:42.007
<v Kent>All this i mean.

00:46:42.007 --> 00:46:48.287
<v Wes (Interview)>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
<v Kent>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
<v Kent>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
<v Kent>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
<v Kent>I was already moving in this direction, trying to hold to it,

00:47:06.557 --> 00:47:12.157
<v Kent>but I finally did a giant codebase refactoring so that now it's done and things

00:47:12.157 --> 00:47:12.997
<v Kent>will never get out of sync.

00:47:13.517 --> 00:47:18.177
<v Kent>Every counter has a corresponding trace point. So the idea is that you see what

00:47:18.177 --> 00:47:22.057
<v Kent>your file system is doing, you look at FSTOP, that will show you like what events,

00:47:22.217 --> 00:47:23.997
<v Kent>what code pass, like what is it doing?

00:47:24.397 --> 00:47:27.097
<v Kent>And then if you want to drill down and find out anything more,

00:47:27.537 --> 00:47:31.257
<v Kent>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
<v Kent>you information about that specific event.

00:47:33.517 --> 00:47:39.717
<v Wes (Interview)>Wow oh that's so great wow smooth that's simple enough we could actually we

00:47:39.717 --> 00:47:42.377
<v Wes (Interview)>could actually do it maybe with a little lm help but we can get there.

00:47:44.061 --> 00:47:48.001
<v Kent>And if any of those trace points isn't showing you the information that you

00:47:48.001 --> 00:47:51.881
<v Kent>need in order to understand what's going on, it's dead easy now to just,

00:47:52.181 --> 00:47:54.861
<v Kent>you know, everything is pretty printer-based.

00:47:54.861 --> 00:47:59.081
<v Kent>We can just dump a couple fields in or dump another variable in there,

00:47:59.081 --> 00:48:00.561
<v Kent>and it's like a five-line patch.

00:48:00.941 --> 00:48:03.741
<v Kent>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
<v Kent>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
<v Kent>and it'll be in the next release.

00:48:08.721 --> 00:48:12.961
<v Wes (Interview)>That is i love how much just from the developer perspective how much is sort

00:48:12.961 --> 00:48:16.201
<v Wes (Interview)>of the modern development affordances and workflow you are trying to impose

00:48:16.201 --> 00:48:19.481
<v Wes (Interview)>on this otherwise very austere and like you know.

00:48:19.481 --> 00:48:20.041
<v Kent>Hard to.

00:48:20.041 --> 00:48:23.021
<v Wes (Interview)>Use environment and it seems like it's really paying dividends i mean from the

00:48:23.021 --> 00:48:27.021
<v Wes (Interview)>the file system as a database to insisting on automated testing to all the stuff

00:48:27.021 --> 00:48:27.801
<v Wes (Interview)>you're just talking about.

00:48:27.801 --> 00:48:34.261
<v Kent>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
<v Kent>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
<v Kent>a lot of you know developers think of support as a

00:48:41.241 --> 00:48:44.161
<v Kent>chore but what i've realized is that you

00:48:44.161 --> 00:48:47.221
<v Kent>know actually basically any support issue

00:48:47.221 --> 00:48:51.421
<v Kent>that comes up there's something that we as engineers can do to just make the

00:48:51.421 --> 00:48:56.121
<v Kent>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
<v Kent>issue go away entirely so doing support it motivates you to to just improve

00:49:02.901 --> 00:49:06.961
<v Kent>that kind of polish and you get lots of really fruitful interactions about,

00:49:07.141 --> 00:49:11.481
<v Kent>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
<v Kent>Yeah.

00:49:13.282 --> 00:49:18.982
<v Chris (Interview)>I feel like, you know, when I think about Bcache's contribution to Linux over

00:49:18.982 --> 00:49:24.802
<v Chris (Interview)>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
<v Chris (Interview)>would be great to have a lot of engineers at the same time.

00:49:27.522 --> 00:49:31.202
<v Chris (Interview)>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
<v Chris (Interview)>doing the day to day work, but you are communicating with users.

00:49:33.962 --> 00:49:37.562
<v Chris (Interview)>You're writing comprehensive release notes that I think are better than most

00:49:37.562 --> 00:49:41.062
<v Chris (Interview)>projects release. and then you're communicating with folks at us at the same time.

00:49:41.562 --> 00:49:45.902
<v Chris (Interview)>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
<v Chris (Interview)>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
<v Chris (Interview)>had this kind of intention and energy put into it. But it's really great.

00:49:52.902 --> 00:49:56.502
<v Kent>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
<v Kent>questions around too because you've been playing with BcacheFS a bit.

00:49:59.602 --> 00:50:02.502
<v Kent>What do you like about it? What do you find modern and interesting about it?

00:50:02.662 --> 00:50:07.022
<v Chris (Interview)>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
<v Chris (Interview)>at the caliber that I would trust ZFS,

00:50:10.222 --> 00:50:13.702
<v Chris (Interview)>but with features that feel more approachable, that it seems more reasonable

00:50:13.702 --> 00:50:18.702
<v Chris (Interview)>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
<v Chris (Interview)>Nix OS to run as a DKMS module.

00:50:21.282 --> 00:50:26.242
<v Chris (Interview)>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
<v Chris (Interview)>Linux competitor to ZFS that we've been waiting for since Sun Microsystems was a company.

00:50:32.422 --> 00:50:35.762
<v Kent>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
<v Kent>talking about for years and years.

00:50:37.342 --> 00:50:40.622
<v Chris (Interview)>And not to take away from ZFS. They can have it. It's great, right?

00:50:40.802 --> 00:50:47.382
<v Kent>Oh, totally. Totally. ZFS deserves so much accolades and respect for showing

00:50:47.382 --> 00:50:51.062
<v Kent>us what a modern file system should be and demonstrating that it was even possible.

00:50:51.362 --> 00:50:54.002
<v Chris (Interview)>Right, right. And it's made a lot of people happy. It's great.

00:50:54.822 --> 00:50:56.922
<v Chris (Interview)>It's just we need something in Linux too, right?

00:50:56.962 --> 00:51:00.542
<v Chris (Interview)>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
<v Chris (Interview)>ethos inside the Linux community for Linux, which is exactly what you're doing.

00:51:05.202 --> 00:51:10.982
<v Kent>And there's also legitimate technical advancements to be done beyond what ZFS did.

00:51:12.083 --> 00:51:18.903
<v Kent>Uh probably not a lot of non-file system nerds know about like the inner workings

00:51:18.903 --> 00:51:24.223
<v Kent>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
<v Kent>for very smart reasons if you're trying to do a very ambitious feature set you

00:51:29.123 --> 00:51:34.143
<v Kent>don't want to reimagine everything all at once right but the the core design

00:51:34.143 --> 00:51:38.583
<v Kent>it very much is in line with the original unix file systems of like radix trees

00:51:38.583 --> 00:51:42.243
<v Kent>of blocks hanging off the inode and like all the on-desk data structures,

00:51:43.123 --> 00:51:45.823
<v Kent>it's block-based, it's not extant-based.

00:51:46.283 --> 00:51:53.803
<v Kent>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
<v Kent>The trouble was that extents and snapshots are a very difficult combination,

00:51:58.963 --> 00:52:00.563
<v Kent>and one that took me years to figure out.

00:52:01.223 --> 00:52:04.863
<v Kent>And there's lots of other stuff, like the whole file system as a database thing.

00:52:06.363 --> 00:52:12.303
<v Kent>I could talk for a while about that one, but that was BcacheFS's biggest contribution

00:52:12.303 --> 00:52:15.743
<v Kent>that's really simplified the design and made a lot of feature work.

00:52:17.041 --> 00:52:19.561
<v Kent>Dead easy compared to what it would have been in previous systems.

00:52:21.081 --> 00:52:22.381
<v Kent>I'll give you one example.

00:52:22.961 --> 00:52:26.341
<v Kent>Towards the end of Reconcile, I was debugging with a user who was,

00:52:26.461 --> 00:52:31.021
<v Kent>there was some stuff with Btree nodes not going on the pending list or coming

00:52:31.021 --> 00:52:32.121
<v Kent>off the pending list or something.

00:52:32.721 --> 00:52:37.481
<v Kent>But he mentioned a slow evacuate, and he was running on rotating disks.

00:52:38.021 --> 00:52:44.201
<v Kent>And I went, hang on, the main Reconcile implementation scans the key space in

00:52:44.201 --> 00:52:48.701
<v Kent>logical key order, like I know number offset within the file but for rotating

00:52:48.701 --> 00:52:52.041
<v Kent>disks you really want to be doing it in like physical LBA order,

00:52:52.541 --> 00:52:55.141
<v Kent>the disk is laid out in the disks,

00:52:55.781 --> 00:52:58.781
<v Kent>and now Fitzroff in the channel pointed out that hang on

00:52:58.781 --> 00:53:02.681
<v Kent>the old style evacuate actually you mentioned this when I was already doing

00:53:02.681 --> 00:53:06.921
<v Kent>the fix but you mentioned that the old style evacuate code is already walking

00:53:06.921 --> 00:53:10.561
<v Kent>back pointers do it physical LBA order this is going to be a real performance

00:53:10.561 --> 00:53:16.701
<v Kent>regression and evacuate is something that actually you do want to run at a reasonable pace.

00:53:16.961 --> 00:53:17.161
<v Wes (Interview)>Yes.

00:53:17.981 --> 00:53:18.541
<v Kent>So...

00:53:19.728 --> 00:53:28.808
<v Kent>I had to add extra indexes for indexing pending reconciled work by physical LBA order,

00:53:29.388 --> 00:53:33.808
<v Kent>plummet all into the triggers, add DFS check passes to make sure that that stuff

00:53:33.808 --> 00:53:35.668
<v Kent>is correct, hook it into the back pointers code.

00:53:36.208 --> 00:53:41.288
<v Kent>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
<v Kent>about the design to passing tests and working.

00:53:45.748 --> 00:53:50.128
<v Kent>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
<v Kent>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
<v Kent>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
<v Chris (Interview)>Yeah we follow that yeah.

00:54:02.508 --> 00:54:04.008
<v Kent>Wow that's awesome.

00:54:04.008 --> 00:54:07.708
<v Wes (Interview)>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
<v Wes (Interview)>kind of what bcashfs feels like i'm using here with compression and the built-in

00:54:11.108 --> 00:54:16.068
<v Wes (Interview)>encryption and we we use and like ButterFS on the show but it just feels like

00:54:16.068 --> 00:54:18.728
<v Wes (Interview)>BcashFS is primed to be sort of like a,

00:54:19.208 --> 00:54:22.388
<v Wes (Interview)>less sharp version that you could just sort of always trust.

00:54:23.694 --> 00:54:25.214
<v Kent>Something that you can debug.

00:54:26.054 --> 00:54:26.594
<v Chris (Interview)>Yeah, yeah.

00:54:26.874 --> 00:54:29.694
<v Wes (Interview)>Yeah, that tells you where it's wrong, that you know you can at least recover

00:54:29.694 --> 00:54:35.574
<v Wes (Interview)>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
<v Chris (Interview)>Yeah.

00:54:36.834 --> 00:54:38.414
<v Kent>Yeah, that's kind of what I'm going for.

00:54:38.614 --> 00:54:41.934
<v Chris (Interview)>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
<v Chris (Interview)>So thank you for just all of the work you've done, especially recently.

00:54:45.314 --> 00:54:47.954
<v Chris (Interview)>It just seems like it's really been going from strength to strength.

00:54:48.494 --> 00:54:51.434
<v Kent>Yeah, the community feedback, doing it for the normal people,

00:54:51.754 --> 00:54:53.554
<v Kent>that's what I'm in this for.

00:54:53.694 --> 00:54:57.574
<v Kent>I don't care about what Red Hat or Facebook are doing.

00:54:57.794 --> 00:55:03.454
<v Kent>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
<v Chris (Interview)>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
<v Chris (Interview)>And it's going to solve more problems as people learn about it.

00:55:11.474 --> 00:55:12.894
<v Chris (Interview)>And we're going to keep spreading the word too.

00:55:13.094 --> 00:55:16.954
<v Wes (Interview)>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
<v Wes (Interview)>what are the best ways for folks

00:55:18.594 --> 00:55:21.874
<v Wes (Interview)>to actually interface with you and either get support or file blocks?

00:55:21.874 --> 00:55:24.814
<v Kent>So jump on the irc channel uh you

00:55:24.814 --> 00:55:28.634
<v Kent>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
<v Kent>can join the irc channel then we could just you know talk talk people through

00:55:33.034 --> 00:55:36.714
<v Kent>like gathering what information we need and just having a normal conversation

00:55:36.714 --> 00:55:40.054
<v Kent>makes things a lot a lot quicker and then we can bring them into the community

00:55:40.054 --> 00:55:43.394
<v Kent>and get them to do more testing and file file more bugs excellent.

00:55:43.394 --> 00:55:44.834
<v Chris (Interview)>Thank you kent.

00:55:44.834 --> 00:55:45.654
<v Kent>Pleasure.

00:55:52.839 --> 00:55:58.359
<v Chris>1password.com slash unplugged. That's the number 1password and then unplugged

00:55:58.359 --> 00:55:59.639
<v Chris>and that's all lowercase.

00:55:59.839 --> 00:56:03.399
<v Chris>Go take the first steps to better security for your team by securing credentials

00:56:03.399 --> 00:56:07.719
<v Chris>and protecting every application, even the unmanaged one. So go learn more.

00:56:07.839 --> 00:56:10.639
<v Chris>You need to go to 1password.com slash unplugged.

00:56:10.859 --> 00:56:13.699
<v Chris>This is a real challenge. There's a lot of assets to manage.

00:56:13.819 --> 00:56:18.079
<v Chris>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
<v Chris>But there's also identities, of course, and there's applications.

00:56:22.239 --> 00:56:23.539
<v Chris>And there's more and more of

00:56:23.539 --> 00:56:26.399
<v Chris>those all the time that just spin up that you might not even know about.

00:56:26.699 --> 00:56:30.779
<v Chris>It's a lot. It creates a mountain of security risk. And you can conquer that

00:56:30.779 --> 00:56:35.219
<v Chris>mountain of security risk with 1Password extended access management.

00:56:35.539 --> 00:56:39.219
<v Chris>It's a big problem. Lots of people report this is their biggest challenge in

00:56:39.219 --> 00:56:43.919
<v Chris>IT, just a SaaS sprawl, you could say, which creates shadow IT,

00:56:44.219 --> 00:56:47.039
<v Chris>accounts, services you might not even know your users are using.

00:56:47.419 --> 00:56:50.259
<v Chris>And it's not hard to see why the users get more work done.

00:56:51.217 --> 00:56:58.497
<v Chris>I remember this when both Dropbox and Slack rolled out. It was a big user-up

00:56:58.497 --> 00:57:02.777
<v Chris>adoption, and it created friction between IT and the users.

00:57:02.997 --> 00:57:07.077
<v Chris>That's something that 1Password Extended Access Management really smooths out.

00:57:07.217 --> 00:57:10.417
<v Chris>And one of the ways you are empowered is with Trelica.

00:57:11.037 --> 00:57:16.077
<v Chris>Trelica by 1Password can discover and secure all your apps, managed or not.

00:57:16.297 --> 00:57:20.817
<v Chris>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
<v Chris>Trelica has pre-populated app profiles, so you can get an idea of the SaaS risks.

00:57:25.757 --> 00:57:29.757
<v Chris>You can get an idea of who has access to what if there's redundancies.

00:57:30.497 --> 00:57:34.397
<v Chris>You can really optimize your spend with tools like that, but probably most importantly,

00:57:34.537 --> 00:57:37.697
<v Chris>you can enforce best security practices across every app your employees use.

00:57:38.137 --> 00:57:43.097
<v Chris>You can actually manage the shadow IT. You can securely onboard and off-board

00:57:43.097 --> 00:57:46.557
<v Chris>employees, and you can make sure you're meeting compliance goals.

00:57:46.777 --> 00:57:50.737
<v Chris>Trelica by OnePass provides a complete solution for SaaS access governance.

00:57:51.217 --> 00:57:54.357
<v Chris>It's just one of the ways that extended access management helps teams strengthen

00:57:54.357 --> 00:57:55.977
<v Chris>compliance and security.

00:57:56.637 --> 00:58:00.437
<v Chris>So go check it out and support the show. You go to 1Password.com slash unplugged.

00:58:00.477 --> 00:58:03.497
<v Chris>You know about their award-winning password manager. It's trusted by millions of users.

00:58:03.737 --> 00:58:06.857
<v Chris>This goes way beyond just passwords.

00:58:07.737 --> 00:58:11.737
<v Chris>1Password Extended Access Management. It's powerful, and it gives you a complete

00:58:11.737 --> 00:58:15.017
<v Chris>oversight of the sprawling landscape of SaaS apps.

00:58:15.177 --> 00:58:19.077
<v Chris>Whether your company knows about them or not, that's a big deal.

00:58:19.197 --> 00:58:23.557
<v Chris>Go learn more. Support the show. go to the number one password.com slash unplugged.

00:58:23.657 --> 00:58:27.237
<v Chris>That's one password.com slash unplugged.

00:58:27.397 --> 00:58:30.377
<v Chris>You're going to change the way you look at managing it.

00:58:30.597 --> 00:58:34.057
<v Chris>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
<v Chris>security for your team by securing credentials and protecting every application.

00:58:38.597 --> 00:58:43.497
<v Chris>Even the unmanaged shadow it one password.com slash unplugged.

00:58:43.517 --> 00:58:46.537
<v Chris>That's one password.com slash unplugged.

00:58:48.718 --> 00:58:53.258
<v Chris>Join crowdhealth.com and use the promo code unplugged. It is open enrollment

00:58:53.258 --> 00:58:55.598
<v Chris>time, the season where the health insurance companies are going to hope you'll

00:58:55.598 --> 00:59:00.218
<v Chris>just sign up again for overpriced premiums and confusing fine print that never

00:59:00.218 --> 00:59:01.158
<v Chris>seems to work in your favor.

00:59:01.818 --> 00:59:05.558
<v Chris>And the prices just seems to get worse all the time. It's horrible.

00:59:06.078 --> 00:59:08.418
<v Chris>I had a tough call to make, especially as a small business owner,

00:59:08.518 --> 00:59:11.098
<v Chris>what direction I was going to go. My wife also owns her own small business.

00:59:11.918 --> 00:59:15.198
<v Chris>And we looked at all the options. We tried the traditional routes.

00:59:15.358 --> 00:59:16.398
<v Chris>It wasn't working for us.

00:59:17.118 --> 00:59:19.918
<v Chris>I was so grateful. over three years ago when I found CrowdHealth.

00:59:20.478 --> 00:59:22.638
<v Chris>I think it's time to stop playing the health insurance game.

00:59:22.798 --> 00:59:26.518
<v Chris>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
<v Chris>No middleman, no networks, no nonsense. But don't just take my word for it.

00:59:31.418 --> 00:59:34.278
<v Chris>Go trust yourself and go take control of your future with CrowdHealth.

00:59:34.438 --> 00:59:37.658
<v Chris>It's a healthcare alternative for people who make their own decisions.

00:59:38.318 --> 00:59:43.838
<v Chris>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
<v Chris>And when you see the prices, you wonder what's ever gonna stop this train.

00:59:48.218 --> 00:59:52.598
<v Chris>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
<v Chris>And they have a beautiful app that makes it really simple, straightforward.

00:59:55.538 --> 00:59:56.418
<v Chris>Of course, they have a website too.

00:59:57.078 --> 01:00:01.738
<v Chris>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
<v Chris>I've talked to people around there just casually and, of course,

01:00:04.858 --> 01:00:07.278
<v Chris>through the course of doing business with them now for the ads.

01:00:07.598 --> 01:00:11.498
<v Chris>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
<v Chris>three years, but I like the momentum.

01:00:15.278 --> 01:00:19.038
<v Chris>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
<v Chris>check out because it works well for me it works well for my wife and I,

01:00:23.178 --> 01:00:27.038
<v Chris>and you can get healthcare for under $100 you get access to a team of health

01:00:27.038 --> 01:00:31.678
<v Chris>bill negotiators low cost prescriptions lab testing tools as well as a database

01:00:31.678 --> 01:00:35.838
<v Chris>of low cost high quality doctors that get vetted by CrowdHealth it's an insurance alternative,

01:00:36.298 --> 01:00:40.718
<v Chris>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
<v Chris>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
<v Chris>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
<v Chris>unexpected medical events.

01:00:49.825 --> 01:00:51.765
<v Chris>You'll be impressed of how well it works, too.

01:00:52.505 --> 01:00:57.485
<v Chris>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
<v Chris>And man, are they just making a boatload of money. And it gets so complicated

01:01:01.625 --> 01:01:05.205
<v Chris>now. And if these subsidies expire, prices are going to go sky high.

01:01:05.765 --> 01:01:09.605
<v Chris>If you join CrowdHealth and use our promo code UNPLUGGED, you can get started

01:01:09.605 --> 01:01:13.025
<v Chris>for $99 for your first three months. That's fantastic.

01:01:13.385 --> 01:01:17.045
<v Chris>So far, CrowdHealth members have saved over $40 million in health care expenses

01:01:17.045 --> 01:01:19.025
<v Chris>because they just refused to overpay for health care.

01:01:19.625 --> 01:01:23.405
<v Chris>Now, CrowdHealth is not insurance. You should opt out and take your power back.

01:01:23.525 --> 01:01:25.305
<v Chris>This is how we win. This is how we change it.

01:01:25.625 --> 01:01:29.505
<v Chris>Joincrowdhealth.com, promo code UNPLUG, take your power back,

01:01:29.645 --> 01:01:31.085
<v Chris>and come join the crowd with me.

01:01:31.565 --> 01:01:34.965
<v Chris>I think you're going to be really impressed. Joincrowdhealth.com and use the

01:01:34.965 --> 01:01:39.265
<v Chris>promo code UNPLUG, and you will get your first three months for $99,

01:01:39.465 --> 01:01:43.345
<v Chris>which is incredible. Use the promo code unplugged at joincrowdhealth.com.

01:01:45.985 --> 01:01:51.485
<v Brent>While we have a special baller booster today, it is our dear PJ.

01:01:56.592 --> 01:02:01.132
<v Brent>Jeff Boosin, a row of McDucks, 22,222.

01:02:03.772 --> 01:02:08.952
<v Brent>Jeff says, okay, Brent. Brent, okay. Call me out for not boosting while I'm

01:02:08.952 --> 01:02:11.732
<v Brent>out running errands and can't defend myself.

01:02:12.012 --> 01:02:15.552
<v Brent>A guy only has so many sats to boost. That's true.

01:02:15.792 --> 01:02:19.612
<v Brent>Always down to boost a good soapbox episode, though. I should make some soapbox

01:02:19.612 --> 01:02:21.192
<v Brent>art for merch or something.

01:02:21.592 --> 01:02:22.492
<v Wes>Oh, great idea.

01:02:22.752 --> 01:02:26.472
<v Chris>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
<v Chris>In a soapbox with a dress shirt and shorts my traditional style for the summer

01:02:32.232 --> 01:02:37.692
<v Chris>and then like maybe holding like the like the a flag for Linux Unplugged it's

01:02:37.692 --> 01:02:40.872
<v Chris>like rah you know and I'm like crying to the sky with my,

01:02:41.512 --> 01:02:46.272
<v Chris>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
<v Wes>For your desktop freedom.

01:02:47.272 --> 01:02:50.892
<v Chris>Yeah I think I just came up with a prompt yes.

01:02:50.892 --> 01:02:51.452
<v Brent>You did can.

01:02:51.452 --> 01:02:53.132
<v Chris>Someone just run that for.

01:02:53.132 --> 01:02:53.812
<v Wes>An animated Jeff.

01:02:53.812 --> 01:02:58.292
<v Chris>Thank you PJ for being our baller booster sir and glad you're listening.

01:02:58.492 --> 01:03:00.652
<v Chris>Appreciate that support. You know, also just a quick note.

01:03:01.612 --> 01:03:04.352
<v Chris>PJ mines those sats most, I don't know if these ones in particular,

01:03:04.492 --> 01:03:06.972
<v Chris>but often what he boosts in, he mines with solar energy.

01:03:08.112 --> 01:03:11.832
<v Chris>He uses clean solar energy to mine his sats and then he boosts in the show.

01:03:12.032 --> 01:03:13.272
<v Chris>How about that? How cool is that?

01:03:13.452 --> 01:03:16.772
<v Brent>For Jeff, those sats are as local as possible. They're made on his roof.

01:03:17.412 --> 01:03:17.532
<v Chris>Yeah.

01:03:17.832 --> 01:03:20.892
<v Wes>And, you know, Jeff sends us all kinds of value in all kinds of ways.

01:03:21.672 --> 01:03:27.172
<v Chris>Magnolia Mayhem comes in with 2,123 sats. That's two, one, two, three.

01:03:29.065 --> 01:03:34.225
<v Chris>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
<v Chris>filthy clanker touch my Nix config. Uh-oh.

01:03:37.885 --> 01:03:41.205
<v Chris>Yeah, every now and then it goes bad, man. It can go real bad.

01:03:41.645 --> 01:03:43.365
<v Chris>Wipe out a user account or two on you.

01:03:43.545 --> 01:03:45.345
<v Wes>How would you know anything about that?

01:03:45.405 --> 01:03:48.625
<v Chris>Wouldn't know anything about that. Thank you for the boost. Thank you,

01:03:48.685 --> 01:03:49.585
<v Chris>Magnolia. Appreciate you.

01:03:50.305 --> 01:03:55.145
<v Wes>Southern Fried Sasa comes in with a row of ducks. Oh, it's for me.

01:03:55.265 --> 01:03:56.005
<v Chris>For Wes. Oh.

01:03:56.385 --> 01:03:59.985
<v Wes>If the family wants to rid themselves of that radioactive artifact.

01:04:00.285 --> 01:04:02.045
<v Chris>Oh, yeah. I don't know if the listeners thought this.

01:04:02.045 --> 01:04:02.805
<v Wes>This was from the members feed.

01:04:02.925 --> 01:04:05.665
<v Chris>Yeah, the members feed. You told us about something you discovered over the holiday.

01:04:06.465 --> 01:04:10.885
<v Wes>Yeah, radioactive personnel identification marker from the World War II era.

01:04:12.145 --> 01:04:16.045
<v Wes>Southern Sassa goes on to say, Most gun and knife shows will have at least one

01:04:16.045 --> 01:04:18.045
<v Wes>guy who pedals in World War II memorabilia.

01:04:18.145 --> 01:04:18.505
<v Chris>That's true.

01:04:18.725 --> 01:04:22.905
<v Wes>No shipping required. Also, I had to tune into the video stream to see the infamous

01:04:22.905 --> 01:04:26.125
<v Wes>kiddies. brent your co-stars are the true stars.

01:04:26.125 --> 01:04:30.425
<v Chris>That's true sorry hey i completely agree and good idea.

01:04:30.425 --> 01:04:31.105
<v Wes>There thank you.

01:04:31.105 --> 01:04:33.885
<v Chris>Uh during our chat with uh kent for most of it,

01:04:34.745 --> 01:04:39.565
<v Chris>brent's cat cosmo was completely wrapped around him like a scarf just completely

01:04:39.565 --> 01:04:48.645
<v Chris>wrapped around stylish yeah yeah it even purrs thank you southern fraud appreciate you well.

01:04:48.645 --> 01:04:51.085
<v Brent>So ham sent in 2000 sats,

01:04:53.817 --> 01:04:59.397
<v Brent>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
<v Brent>Rather, that it's basically impossible to teach people Git because of its incredible

01:05:04.837 --> 01:05:08.717
<v Brent>complexity and just downright weird UI and UX.

01:05:09.397 --> 01:05:13.637
<v Brent>For example, just take a look at, and they link us to a blog here,

01:05:13.737 --> 01:05:15.097
<v Brent>it looks like, maybe a man page.

01:05:15.437 --> 01:05:19.137
<v Brent>And tell me if that page is real or fake.

01:05:19.437 --> 01:05:21.657
<v Wes>Yeah, you should check this out because it's a great site.

01:05:21.877 --> 01:05:24.557
<v Chris>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
<v Chris>What are you talking about?

01:05:26.417 --> 01:05:28.497
<v Wes>Well, just take a peek. It's going to show you a man page.

01:05:28.757 --> 01:05:33.377
<v Chris>Okay. Oh, git saw command. Is this real? Git exhibits, which blob?

01:05:33.577 --> 01:05:34.697
<v Chris>Okay, I would have no idea.

01:05:34.957 --> 01:05:37.037
<v Chris>I'm going to guess this is not a real command.

01:05:37.197 --> 01:05:38.897
<v Wes>No, it's a generator of fake commands.

01:05:38.897 --> 01:05:39.537
<v Chris>This is funny.

01:05:39.797 --> 01:05:42.777
<v Wes>The point is they look shockingly like actual git.

01:05:42.897 --> 01:05:48.057
<v Chris>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
<v Chris>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
<v Chris>It's just fascinating how nowhere on there does it say Git. It says GitHub.

01:05:57.657 --> 01:06:01.237
<v Chris>Very little, but nothing about Git. Nothing. It's just...

01:06:01.237 --> 01:06:04.377
<v Wes>No, not until you kind of get into the details. And if you use their,

01:06:04.377 --> 01:06:07.557
<v Wes>like, you know, GH tool, even less.

01:06:07.757 --> 01:06:08.637
<v Chris>Yeah. It's interesting.

01:06:08.677 --> 01:06:13.517
<v Brent>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
<v Brent>just, like, managing a project or something like that.

01:06:16.397 --> 01:06:22.517
<v Chris>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
<v Chris>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
<v Chris>around running Lineage OS or something similar.

01:06:30.993 --> 01:06:34.713
<v Chris>Given a reasonable price, I'd absolutely love for that device to be one that

01:06:34.713 --> 01:06:35.913
<v Chris>shipped with Graphene OS.

01:06:36.013 --> 01:06:36.393
<v Wes>Oh, yeah.

01:06:36.653 --> 01:06:41.453
<v Chris>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
<v Chris>as a flagship phone so that I can justify it as a secondary device.

01:06:44.533 --> 01:06:45.373
<v Wes>Fair enough. Fair enough.

01:06:45.473 --> 01:06:48.753
<v Chris>You know, as crazy as it sounds, there's a market for a secondary phone device.

01:06:48.933 --> 01:06:50.433
<v Chris>I mean, I carry two phones.

01:06:50.713 --> 01:06:54.553
<v Chris>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
<v Wes>They're small computers. And how many computers do we have already?

01:06:57.833 --> 01:07:00.933
<v Chris>Maybe that's where the new Yala phone will fill a gap. Thank you,

01:07:01.033 --> 01:07:03.753
<v Chris>Gene. It's always great to hear from you. Appreciate you very much.

01:07:05.033 --> 01:07:07.973
<v Wes>Hybrid sarcasm comes in with 10,000 sets.

01:07:10.653 --> 01:07:14.833
<v Wes>Just completed my holiday home lab submission. Well, thank you. That's great.

01:07:14.973 --> 01:07:15.253
<v Chris>All right.

01:07:16.453 --> 01:07:23.853
<v Wes>Be gentle, he implores us. Also, who's in the lead for the Boosties 2025 prize?

01:07:23.853 --> 01:07:28.193
<v Chris>Oh, okay. All right. And remember, there's going to be a giveaway, right?

01:07:28.313 --> 01:07:31.953
<v Chris>Hybrids mentioned this, a giveaway for a Jupiter Party membership.

01:07:32.093 --> 01:07:34.633
<v Chris>Now, we don't want to give away the winners or the totals.

01:07:34.833 --> 01:07:39.813
<v Chris>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
<v Chris>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
<v Chris>Black Host, Our Podcast, Adversary 17, and The Dude Abides.

01:07:54.224 --> 01:07:58.604
<v Chris>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
<v Wes>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
<v Chris>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
<v Chris>big spectacular episode for the holidays.

01:08:12.024 --> 01:08:16.404
<v Wes>Which would mean that you have until, say, maybe the 18th or 19th to get any

01:08:16.404 --> 01:08:18.044
<v Wes>boosts in if you do want to.

01:08:18.284 --> 01:08:18.784
<v Chris>Be at the top.

01:08:18.904 --> 01:08:20.664
<v Wes>Yeah. Reclaim your standing.

01:08:22.024 --> 01:08:23.084
<v Chris>Thank you, hybrid.

01:08:24.004 --> 01:08:28.464
<v Brent>Well, Daoma, Daoma boosts in 2,000 sets.

01:08:29.124 --> 01:08:32.824
<v Brent>Lately, I've been able to leverage more open source tools, namely Ansible and

01:08:32.824 --> 01:08:35.624
<v Brent>Open Tofu, at work as a sys engineer.

01:08:35.944 --> 01:08:41.064
<v Brent>I find myself thinking about it constantly and working much later hours while

01:08:41.064 --> 01:08:46.144
<v Brent>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
<v Brent>Should I find other work that would better utilize this passion?

01:08:51.024 --> 01:08:55.824
<v Brent>Is it possible to just pick up an IT sysgig on the side, for instance?

01:08:56.664 --> 01:08:58.564
<v Brent>I'm not a dev, so I struggle to understand

01:08:58.564 --> 01:09:03.264
<v Brent>how I can contribute beyond submitting a PR on GitHub for a typo.

01:09:03.424 --> 01:09:06.764
<v Chris>Well, infrastructure is a great skill set. You don't necessarily have to be

01:09:06.764 --> 01:09:08.804
<v Chris>a developer, and of course they do blur more and more.

01:09:09.404 --> 01:09:13.124
<v Chris>Side gig question, yes. I think small businesses are always looking for help.

01:09:13.124 --> 01:09:17.364
<v Chris>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
<v Chris>IT person often. So if you know a small business in your area...

01:09:21.623 --> 01:09:24.103
<v Chris>It could be somebody that you patron and you've noticed they have computer problems.

01:09:24.243 --> 01:09:25.823
<v Chris>That has literally worked for me in the past.

01:09:26.423 --> 01:09:32.223
<v Chris>And then going back to essentially working for free, I often find myself when

01:09:32.223 --> 01:09:36.263
<v Chris>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
<v Chris>And maybe sometimes an employer benefits from that. But I'm also benefiting.

01:09:41.283 --> 01:09:43.683
<v Wes>Yeah, I think you can probably frame it as like an investment in yourself.

01:09:43.683 --> 01:09:47.283
<v Wes>And there's a certain value, at least I have, I imagine you do too,

01:09:47.463 --> 01:09:52.943
<v Wes>on, you know, curiosity, learning, and the sort of the fun play discovery aspects

01:09:52.943 --> 01:09:54.003
<v Wes>of making this stuff work.

01:09:54.203 --> 01:09:58.143
<v Chris>What's that Dunder Mifflin curve too about learning stuff, you know,

01:09:58.303 --> 01:10:02.523
<v Chris>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
<v Chris>and you start to think you're an expert.

01:10:04.823 --> 01:10:08.543
<v Chris>And then as you learn more, you realize you have so much more to learn,

01:10:08.603 --> 01:10:11.383
<v Chris>and then you kind of go down that curve and become an expert again.

01:10:11.383 --> 01:10:15.643
<v Chris>And I think, too, like you could burn through a bit of that phase during this,

01:10:15.923 --> 01:10:18.943
<v Chris>kind of learn what you don't know, have a better understanding,

01:10:19.063 --> 01:10:21.863
<v Chris>a wider context, and then absolutely make a career out of it.

01:10:22.003 --> 01:10:26.323
<v Brent>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
<v Brent>So sometimes the work environment is that place. And if you're going to be learning

01:10:30.703 --> 01:10:34.643
<v Brent>it on your own, maybe you don't have the same opportunity to solve a problem

01:10:34.643 --> 01:10:36.543
<v Brent>or implement a new solution.

01:10:36.843 --> 01:10:41.203
<v Wes>I do think you're right. Infra is often something open source projects need.

01:10:41.383 --> 01:10:44.143
<v Wes>Think it's probably a little tricky to get involved because you're probably

01:10:44.143 --> 01:10:46.123
<v Wes>going to have to hang around a little while to figure that out.

01:10:46.303 --> 01:10:50.163
<v Wes>It's not always advertised but I'm just thinking, you know, the Podverse folks

01:10:50.163 --> 01:10:53.003
<v Wes>are hard at work on their latest versions and I know there's some folks who

01:10:53.003 --> 01:10:55.963
<v Wes>are part of our community who help out on their infraside and that's...

01:10:55.963 --> 01:10:58.343
<v Chris>Podverse is a great shout out. It's a great idea.

01:10:58.563 --> 01:11:01.903
<v Wes>So I don't know about the particular communities that you're involved with necessarily

01:11:01.903 --> 01:11:05.063
<v Wes>but there's probably something out there somewhere that needs some love.

01:11:05.283 --> 01:11:05.723
<v Chris>Mm-hmm.

01:11:06.983 --> 01:11:10.523
<v Wes>Retro Gear boosts in with 2,998 sats.

01:11:13.374 --> 01:11:14.334
<v Wes>No, using Albi.

01:11:14.874 --> 01:11:18.714
<v Chris>Oh, cool. Oh, yeah, connected to Fountain now. That's a beta feature.

01:11:19.234 --> 01:11:19.594
<v Wes>Neat.

01:11:19.834 --> 01:11:22.234
<v Chris>Yep, yep, Albi Hub. Mm-hmm, mm-hmm. Nosterwall connected.

01:11:22.434 --> 01:11:28.054
<v Wes>Okay, Retro says, Gens, Proxmox NixOS actually works pretty well.

01:11:28.174 --> 01:11:31.734
<v Wes>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
<v Chris>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
<v Wes>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
<v Chris>Ah.

01:11:40.754 --> 01:11:41.074
<v Wes>Cheers.

01:11:41.814 --> 01:11:42.794
<v Chris>I wonder what those would be.

01:11:43.374 --> 01:11:46.574
<v Wes>Well, so basically, I think just like stuff you might want to run in a VM.

01:11:46.734 --> 01:11:51.534
<v Wes>So as an alternative, right, instead of doing the setup we were doing with Home

01:11:51.534 --> 01:11:54.714
<v Wes>Assistant, you could write Home Assistant on Proxmox, still running on Nix.

01:11:55.314 --> 01:11:56.734
<v Chris>Right, right. Interesting.

01:11:56.974 --> 01:11:58.874
<v Brent>That's a lot of layers, but it could solve some problems.

01:11:59.174 --> 01:11:59.394
<v Chris>Yeah.

01:11:59.614 --> 01:12:03.134
<v Wes>I mean, you do it. You probably want to have all the Proxmox stuff,

01:12:03.274 --> 01:12:04.774
<v Wes>right? Like the API and all the...

01:12:04.774 --> 01:12:09.734
<v Chris>Yeah, and if you're like baked into the Proxmox backup system and you know that

01:12:09.734 --> 01:12:11.194
<v Chris>system, that makes a ton of sense.

01:12:11.574 --> 01:12:12.874
<v Wes>Appreciate the experience report.

01:12:12.874 --> 01:12:14.634
<v Chris>That's useful i'd love to hear more of them.

01:12:14.634 --> 01:12:20.214
<v Brent>Well turd ferguson here sends us a boost 14 444 cents,

01:12:23.248 --> 01:12:29.148
<v Brent>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
<v Brent>It looks like they also just crossed 40,000 active weekly users.

01:12:35.008 --> 01:12:39.108
<v Brent>Do you think everyone is loading these on Steam Decks or something?

01:12:40.148 --> 01:12:44.768
<v Chris>Hmm. If they're hitting 40,000 active users, there must be some Bazite,

01:12:44.968 --> 01:12:46.808
<v Chris>active Bazite users out in the audience.

01:12:48.488 --> 01:12:53.048
<v Chris>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
<v Chris>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
<v Chris>Switch for a smoother Breath of the Wild playback.

01:13:01.128 --> 01:13:03.808
<v Chris>Priorities. I mean, that'd be a good time to reload that thing.

01:13:03.808 --> 01:13:05.528
<v Chris>I'd love some field experience out there.

01:13:06.148 --> 01:13:09.728
<v Chris>I kind of imagine it's people that are trying to do a Steam-like experience

01:13:09.728 --> 01:13:11.788
<v Chris>on non-deck hardware. That would be my gut.

01:13:12.568 --> 01:13:14.148
<v Brent>That makes sense to me as well.

01:13:14.388 --> 01:13:19.628
<v Wes>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
<v Brent>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
<v Brent>that you want to have a similar experience, that might be a nice option.

01:13:28.755 --> 01:13:28.955
<v Wes>True.

01:13:29.935 --> 01:13:34.115
<v Chris>I think that makes Bazite clearly the winner of the UBlue projects.

01:13:34.115 --> 01:13:37.635
<v Chris>That's great for them and probably great for all the other projects, too.

01:13:38.275 --> 01:13:40.655
<v Chris>Well, there you go. Thank you, everybody, that boosted this show.

01:13:40.655 --> 01:13:43.295
<v Chris>We really do appreciate it. And all of you who stream SATs.

01:13:43.395 --> 01:13:48.735
<v Chris>22 of you stream those SATs, and you collectively stacked 37,664 SATs.

01:13:48.835 --> 01:13:50.935
<v Chris>That would be one of our largest boosts for this episode.

01:13:51.175 --> 01:13:54.015
<v Chris>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
<v Chris>When you combine that with our messengers, we stacked 98,395 sats just under

01:14:00.855 --> 01:14:02.555
<v Chris>that 100k sats line for this episode.

01:14:02.935 --> 01:14:07.015
<v Chris>Not our best week, but we do appreciate everybody who contributes to the show

01:14:07.015 --> 01:14:11.495
<v Chris>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
<v Chris>We are here every week for you doing the show that only Linux Unplugged can

01:14:16.215 --> 01:14:20.395
<v Chris>do. and that's because we're focused on our audience and not clickbait or things

01:14:20.395 --> 01:14:23.075
<v Chris>that might play well on shorts or YouTubes or things like that.

01:14:23.195 --> 01:14:26.535
<v Chris>We're just trying to make great quality content for our audience.

01:14:26.715 --> 01:14:30.095
<v Chris>And thank you everybody who boosts with something like Fountain FM or AlbiHub

01:14:30.095 --> 01:14:31.955
<v Chris>or one of those. We really do appreciate you.

01:14:34.755 --> 01:14:37.375
<v Chris>Fountain does just keep getting easier with lots of features.

01:14:37.555 --> 01:14:39.815
<v Chris>Fountain.fm for all of the hosted infrastructure.

01:14:40.695 --> 01:14:43.975
<v Chris>Podcastapps.com for those new apps. And of course, if you'd like to support

01:14:43.975 --> 01:14:49.375
<v Chris>with a membership, That's linuxunplugged.com slash membership and jupyter.party for all the shows.

01:14:49.515 --> 01:14:54.315
<v Chris>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
<v Chris>All right we got an overloaded pick section we should probably move through

01:15:03.228 --> 01:15:07.868
<v Chris>this pretty quick so let's start with the one you probably shouldn't use dot

01:15:07.868 --> 01:15:11.148
<v Chris>files installer dot files installer everybody what.

01:15:11.148 --> 01:15:11.868
<v Wes>Is going on.

01:15:11.868 --> 01:15:14.588
<v Chris>Here is this your.

01:15:14.588 --> 01:15:16.528
<v Brent>Way of not using home manager.

01:15:17.288 --> 01:15:21.888
<v Chris>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
<v Chris>my dot files that was great um so it's really for people that publish different

01:15:27.408 --> 01:15:31.008
<v Chris>different communities publish these curated .files.

01:15:31.108 --> 01:15:35.888
<v Chris>So you can pull down one file that has all these configurations for popular

01:15:35.888 --> 01:15:37.228
<v Chris>apps and desktop environments.

01:15:37.388 --> 01:15:42.268
<v Chris>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
<v Chris>And you can have lots of different sources of these. You can have the problem

01:15:48.688 --> 01:15:49.908
<v Chris>where you're overriding things.

01:15:50.088 --> 01:15:53.788
<v Chris>What this application does is it lets you manage the various sources,

01:15:54.028 --> 01:15:56.708
<v Chris>turn things on and off, back up your own things, and essentially try to prevent

01:15:56.708 --> 01:16:00.688
<v Chris>any kind of loss that would mess your system up entirely while you're YOLOing

01:16:00.688 --> 01:16:02.348
<v Chris>everybody's different configurations down.

01:16:02.688 --> 01:16:06.808
<v Chris>And so it does try to prioritize data safety, offering a robust backup functionality

01:16:06.808 --> 01:16:09.068
<v Chris>before you start just YOLOing different configs down.

01:16:09.528 --> 01:16:12.288
<v Chris>And then you can also publish your own ones if you want to help other people

01:16:12.288 --> 01:16:13.908
<v Chris>just YOLO into their config.

01:16:14.108 --> 01:16:18.608
<v Chris>And it is a nice GTK application. It makes it very clear how you could possibly

01:16:18.608 --> 01:16:19.628
<v Chris>be messing your system up.

01:16:19.948 --> 01:16:21.308
<v Wes>You're making me like it.

01:16:21.528 --> 01:16:25.528
<v Chris>I know, right? I know. I mean, I don't think anybody should do this.

01:16:25.648 --> 01:16:27.988
<v Chris>Don't do this, blah, blah, blah. Safety first, all that.

01:16:29.248 --> 01:16:32.448
<v Chris>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
<v Chris>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
<v Wes>Or you intentionally want an experiment.

01:16:37.329 --> 01:16:39.529
<v Wes>Okay, I'll try it.

01:16:39.629 --> 01:16:43.349
<v Chris>Yeah, say you wanted to get yourself on Hyperlender or Sway or one of these,

01:16:43.409 --> 01:16:46.069
<v Chris>and you don't really know how the hell to set up anything that looks nice.

01:16:46.709 --> 01:16:48.509
<v Chris>Sometimes these can be a nice starting place.

01:16:48.629 --> 01:16:49.109
<v Wes>That's a good point.

01:16:49.969 --> 01:16:54.489
<v Chris>So the Stop Files installer is GPL3. I believe it's on Flathub as well.

01:16:55.229 --> 01:16:56.829
<v Chris>Okay, now you ready for this next one?

01:16:56.949 --> 01:16:58.789
<v Wes>Yeah, this one I kind of like.

01:16:59.069 --> 01:17:04.389
<v Chris>This one for me, when macOS started getting good, now it's gone the other direction,

01:17:04.389 --> 01:17:06.389
<v Chris>But, you know, when the first releases,

01:17:06.549 --> 01:17:09.749
<v Chris>it was pretty rough, but they started getting to a point where a lot of independent

01:17:09.749 --> 01:17:13.909
<v Chris>developers started getting on board and creating these purpose-built applications

01:17:13.909 --> 01:17:17.749
<v Chris>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
<v Wes>Right. They could just focus on this, like, one little task and do that well.

01:17:21.469 --> 01:17:23.949
<v Wes>And so it was pretty polished and it had all the, like, you know,

01:17:24.269 --> 01:17:26.209
<v Wes>features that would come with working on it for a little while.

01:17:26.209 --> 01:17:28.489
<v Chris>And it would kind of become, like, the go-to application for doing this.

01:17:28.809 --> 01:17:30.889
<v Chris>Well, I hope that's SSH Studio.

01:17:31.169 --> 01:17:34.249
<v Chris>It's a GUI that's GTK4, Libidwadia GUI.

01:17:34.389 --> 01:17:39.129
<v Chris>That is an easy-to-use config editor for your SSH setup.

01:17:39.209 --> 01:17:44.589
<v Chris>And it gives you what they call a visual host editor to edit common fields like

01:17:44.589 --> 01:17:48.389
<v Chris>the host name, the host, the users, the identity files, any forwarding agent

01:17:48.389 --> 01:17:50.389
<v Chris>setup. It does inline validation.

01:17:50.649 --> 01:17:53.189
<v Chris>Of course, it helps you search across your machines. But I think the bigger

01:17:53.189 --> 01:17:56.869
<v Chris>feature in here is really probably for folks who would be using a tool like

01:17:56.869 --> 01:17:59.009
<v Chris>this is maybe the SSH key management stuff.

01:17:59.569 --> 01:18:05.509
<v Chris>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
<v Chris>of been troubling for you.

01:18:07.149 --> 01:18:11.029
<v Chris>Like this exact kind of example of these purpose-built applications that as

01:18:11.029 --> 01:18:15.049
<v Chris>a platform grows in user base, we just start to see a demand for it.

01:18:15.129 --> 01:18:18.109
<v Chris>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
<v Chris>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
<v Wes>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
<v Wes>way to investigate a system.

01:18:25.689 --> 01:18:29.349
<v Wes>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
<v Wes>your SSH config and connections if you haven't taken advantage of those.

01:18:34.506 --> 01:18:36.826
<v Wes>And it's easy to install with flatback.

01:18:37.166 --> 01:18:38.086
<v Chris>GPL 3.

01:18:38.406 --> 01:18:38.846
<v Wes>Nice.

01:18:39.166 --> 01:18:43.346
<v Chris>Last but not least is what I'm calling the honorable mensch section of the picks

01:18:43.346 --> 01:18:44.926
<v Chris>because it's something we talk about too much.

01:18:45.326 --> 01:18:48.126
<v Wes>And you couldn't resist talking about it some more.

01:18:48.226 --> 01:18:51.666
<v Chris>They just came out with a great release. I found it personally very useful for

01:18:51.666 --> 01:18:54.446
<v Chris>tracking my total cost of ownership of my vehicles.

01:18:54.586 --> 01:18:57.966
<v Chris>We've talked about LubeLogger before, but a big version just dropped,

01:18:57.986 --> 01:19:01.026
<v Chris>and I want to let you know about it because I think these are great.

01:19:01.026 --> 01:19:05.006
<v Chris>First up, a new feature, inspections, pretty much what you'd expect is custom

01:19:05.006 --> 01:19:08.466
<v Chris>forms where you can go inspect your own vehicle and create reusable inspection

01:19:08.466 --> 01:19:10.546
<v Chris>forms, which is awesome for me.

01:19:10.686 --> 01:19:11.186
<v Wes>That's great.

01:19:11.566 --> 01:19:16.566
<v Chris>And create your own inspection checklist and then log that in LubeLocker. Huge, huge.

01:19:17.486 --> 01:19:21.606
<v Chris>Also now support for households. So this is one of the most requested features of LubeLocker.

01:19:21.706 --> 01:19:25.206
<v Chris>It's the ability to allow users to inherit vehicles in a garage and limit what

01:19:25.206 --> 01:19:27.906
<v Chris>actions they can perform on those vehicles, kind of like a permission structure.

01:19:28.566 --> 01:19:31.166
<v Chris>And so you no longer have to add a user and each vehicle. Instead,

01:19:31.306 --> 01:19:32.706
<v Chris>you can add them to a household.

01:19:33.366 --> 01:19:35.666
<v Chris>And then you just add that car, you add them to the household,

01:19:35.746 --> 01:19:37.786
<v Chris>they automatically get access to the vehicles in your garage.

01:19:38.726 --> 01:19:42.066
<v Chris>And they also created a viewer only, so a read-only user.

01:19:42.786 --> 01:19:46.846
<v Chris>They are handling, I think, the integration of AI in a pretty reasonable way.

01:19:47.106 --> 01:19:50.246
<v Chris>They say we know it's controversial. So what we're doing is instead of adding

01:19:50.246 --> 01:19:55.906
<v Chris>AI directly into LubeLogger, we're asking for an API key. and then we've decided

01:19:55.906 --> 01:19:59.246
<v Chris>to create an MCP server for LubeLogger that you spin up separately,

01:19:59.466 --> 01:20:01.006
<v Chris>probably like a container or something like that.

01:20:01.106 --> 01:20:01.246
<v Wes>Right.

01:20:01.406 --> 01:20:05.026
<v Chris>And then you would use that as a bridge between AI agents. So instead of having

01:20:05.026 --> 01:20:07.966
<v Chris>it built directly into main LubeLogger, it's like a sidecar.

01:20:08.426 --> 01:20:11.706
<v Wes>Yeah, I mean, it seems reasonable enough, right? Basically, it's just repackaging

01:20:11.706 --> 01:20:15.066
<v Wes>probably the existing API into the MCP standard.

01:20:15.266 --> 01:20:17.726
<v Chris>Now, there are some features in there that are kind of neat.

01:20:17.726 --> 01:20:21.446
<v Chris>It allows you to add fuel records from receipts, odometer records from a picture.

01:20:21.646 --> 01:20:22.366
<v Wes>Oh, that's nice.

01:20:22.526 --> 01:20:25.026
<v Chris>Yeah, so you just take a picture of your dashboard, Update the odometer reading.

01:20:26.846 --> 01:20:27.786
<v Wes>You might actually do it.

01:20:27.926 --> 01:20:33.326
<v Chris>Or like when we take our trips to any event that we drive to,

01:20:33.506 --> 01:20:34.966
<v Chris>we have to track all the receipts.

01:20:35.246 --> 01:20:39.246
<v Chris>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
<v Chris>a massive bundle of receipts when we're driving across the continent.

01:20:43.646 --> 01:20:48.866
<v Chris>And this time around, I was using, I think I don't quick scan and paperless,

01:20:49.106 --> 01:20:50.266
<v Chris>you know, to try to capture it.

01:20:50.806 --> 01:20:51.926
<v Wes>A little more real time.

01:20:51.926 --> 01:20:54.626
<v Chris>A little more, but something like this for my maintenance records and stuff

01:20:54.626 --> 01:20:57.706
<v Chris>like that, where I could just bring it right in. Just anything that makes that

01:20:57.706 --> 01:20:59.466
<v Chris>smoother is really, really, really great.

01:20:59.726 --> 01:21:03.166
<v Chris>And also invoices and those types of things to like for repairs.

01:21:03.806 --> 01:21:07.446
<v Chris>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
<v Chris>implemented not, so they're not slamming it in your face.

01:21:10.266 --> 01:21:13.746
<v Chris>You can run this sidecar and you have opt in. And then, by the way,

01:21:13.806 --> 01:21:17.026
<v Chris>once you do opt in, here's an actual couple of practical, useful things.

01:21:17.706 --> 01:21:18.286
<v Wes>Not bad.

01:21:18.506 --> 01:21:21.966
<v Chris>I think they nailed that. so I think that deserved an honorable mention huge

01:21:21.966 --> 01:21:23.746
<v Chris>release for Lublogger and it has been,

01:21:24.206 --> 01:21:26.966
<v Chris>it's really been a game changer for me because it helped me understand that

01:21:26.966 --> 01:21:30.466
<v Chris>like this vehicle is getting, actually two of my vehicles are now beginning

01:21:30.466 --> 01:21:34.146
<v Chris>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
<v Chris>kind of stuff in a way that isn't tedious,

01:21:36.106 --> 01:21:40.946
<v Chris>so I have not been historically great at that and Lublogger has made that very easy,

01:21:41.923 --> 01:21:46.943
<v Chris>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
<v Chris>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
<v Chris>him taking the time to chat with us.

01:21:51.903 --> 01:21:54.843
<v Chris>And we'll put some links to the new release in the show notes.

01:21:55.003 --> 01:21:58.063
<v Chris>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
<v Chris>that's how he's getting it done.

01:21:59.823 --> 01:22:02.363
<v Chris>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
<v Chris>And Wes, besides those show notes being over at linuxunplugged.com slash 644,

01:22:07.123 --> 01:22:10.523
<v Chris>if they're in a mobile client that has a few fancy features,

01:22:10.563 --> 01:22:13.823
<v Chris>they might get some bonus stuff. Some stuff that makes the show even better for them.

01:22:13.983 --> 01:22:20.123
<v Wes>Yeah, cloud chapters for one. That's right. JSON delivered live right to your podcatcher.

01:22:20.283 --> 01:22:24.423
<v Chris>And don't forget about those beautiful transcripts that are derived from individual

01:22:24.423 --> 01:22:29.523
<v Chris>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
<v Chris>And for the clients that support it, we are also doing attribution.

01:22:32.983 --> 01:22:34.923
<v Chris>So it tells you which speaker is speaking.

01:22:35.783 --> 01:22:39.103
<v Chris>That isn't easy, but we do it for you. And it's out there.

01:22:39.703 --> 01:22:42.583
<v Chris>And hopefully, you know, as we just do more episodes, we're going to create

01:22:42.583 --> 01:22:44.503
<v Chris>a huge data set that we'll use for something one day.

01:22:44.783 --> 01:22:48.243
<v Chris>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
<v Chris>We sure would love to have you join us live. JBLive.tv on a Sunday.

01:22:58.043 --> 01:23:01.323
<v Chris>Make it a Tuesday on a Sunday, 10 a.m. Pacific, 1 p.m. Eastern.

01:23:01.603 --> 01:23:04.183
<v Wes>Hey, that is also technically a magical feed feature.

01:23:04.563 --> 01:23:09.183
<v Chris>That's true. It's in those feeds. And then don't forget December 19th live.

01:23:09.443 --> 01:23:14.363
<v Chris>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
<v Chris>So that would be the 17th. Get your submissions in at Linux unplugged.com slash holiday.

01:23:19.643 --> 01:23:22.283
<v Chris>Thank you so much for joining us on this week's episode. We sure appreciate

01:23:22.283 --> 01:23:26.583
<v Chris>you listening and we'll see you right back here next Tuesday as in Sunday.

