WEBVTT

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

00:00:16.085 --> 00:00:17.005
<v Wes>My name is Wes.

00:00:17.225 --> 00:00:18.125
<v Brent>And my name is Brent.

00:00:18.705 --> 00:00:21.805
<v Chris>Well, hello there, gentlemen. Here we are getting ready to head out.

00:00:21.985 --> 00:00:26.325
<v Chris>But before we go, we're going to tell you how KDE Linux surprised us after we

00:00:26.325 --> 00:00:27.685
<v Chris>gave it a little recent run.

00:00:27.845 --> 00:00:28.765
<v Chris>And then a friend's going to

00:00:28.765 --> 00:00:31.965
<v Chris>stop by the show and tell us about his really handy new open source tool.

00:00:32.385 --> 00:00:36.185
<v Chris>And we'll round out the show with some great boosts, some picks, and a heck of a lot more.

00:00:36.305 --> 00:00:39.025
<v Chris>It's a big show. So before we get there, let's say time-appropriate greetings

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

00:00:41.905 --> 00:00:45.725
<v Mumble>Hello, folks. Hello, folks. A real great way in North Alaska.

00:00:47.225 --> 00:00:51.005
<v Chris>Hello, everybody. Hello. We don't know for sure if we'll have a mumble room

00:00:51.005 --> 00:00:54.425
<v Chris>next week because we will be in our Airbnb or on the floor of scale or something

00:00:54.425 --> 00:00:56.945
<v Chris>like that, so you just never really know because we don't know.

00:00:57.085 --> 00:00:57.685
<v Brent>Can we do it in the car?

00:00:58.785 --> 00:01:02.825
<v Chris>Maybe. Maybe. I'm thinking about bringing some mobile connected internet with

00:01:02.825 --> 00:01:06.705
<v Chris>us. I was thinking about it. It's just big. But that could be handy for going down the road.

00:01:06.785 --> 00:01:07.085
<v Wes>Yes.

00:01:07.525 --> 00:01:08.625
<v Chris>And you know what we would do?

00:01:09.591 --> 00:01:12.411
<v Chris>Hook up our Nebula network. We'll talk more about that later.

00:01:12.511 --> 00:01:17.271
<v Chris>But go check out Nebula, define.net slash unplugged. Go meet managed Nebula

00:01:17.271 --> 00:01:18.251
<v Chris>from Define Networking.

00:01:18.311 --> 00:01:23.271
<v Chris>It's a decentralized VPN built on the open source, bulletproof Nebula platform that we love.

00:01:23.691 --> 00:01:26.671
<v Chris>Optimized for speed. And this is a quick way of saying it's going to use less

00:01:26.671 --> 00:01:31.051
<v Chris>battery and less network resources than the other mesh network tools you use. It's really simple.

00:01:31.731 --> 00:01:34.171
<v Chris>I love how simple it can be when you just want a couple of nodes.

00:01:34.331 --> 00:01:38.671
<v Chris>But it's engineered for serious security and a global mesh network.

00:01:38.671 --> 00:01:41.891
<v Chris>originally built for Slack's infrastructure and had to scale to their worldwide

00:01:41.891 --> 00:01:45.231
<v Chris>data center immediately, just systems all over the place, you can imagine,

00:01:45.671 --> 00:01:47.891
<v Chris>and how important Slack's data is.

00:01:47.971 --> 00:01:51.551
<v Chris>They got all of the company's data in the world, basically, and there has to be bulletproof.

00:01:51.851 --> 00:01:55.611
<v Chris>But unlike traditional VPNs, Nebula has a decentralized design,

00:01:55.611 --> 00:01:59.911
<v Chris>so there's no fragile control plane or a hub-and-spoke choke point.

00:02:00.751 --> 00:02:03.971
<v Chris>And your network always stays resilient. You can be in complete control of that,

00:02:04.051 --> 00:02:07.131
<v Chris>or you can use Manage Nebula and let them manage it for you.

00:02:07.131 --> 00:02:12.111
<v Chris>It's a kind of control and flexibility that I think our audience expects from their infrastructure.

00:02:12.491 --> 00:02:16.431
<v Chris>Originally built for something that's massive but can scale down to just a couple

00:02:16.431 --> 00:02:19.871
<v Chris>of nodes, it's really great. And you can get started for free and support the show.

00:02:20.051 --> 00:02:23.271
<v Chris>You just go to define.net slash unplugged.

00:02:23.611 --> 00:02:26.731
<v Chris>Sign up. 100 machines. Absolutely free. No credit card required.

00:02:27.111 --> 00:02:34.331
<v Chris>And gentlemen, they just added always on VPN mode for Nebula on Android and iOS.

00:02:34.451 --> 00:02:34.931
<v Wes>Oh, nice.

00:02:35.551 --> 00:02:36.071
<v Brent>Boom.

00:02:37.071 --> 00:02:42.411
<v Chris>Defined.net slash unplugged. Big thank you to Defined for being our sponsor

00:02:42.411 --> 00:02:43.711
<v Chris>of the unplugged program.

00:02:46.144 --> 00:02:50.364
<v Chris>Well, we're just one day away from hitting the road to go to scale 23x. It's happening.

00:02:50.864 --> 00:02:55.384
<v Chris>The largest Linux and open source event in Northern America,

00:02:55.384 --> 00:02:57.944
<v Chris>I'd say. Maybe not in the world, but definitely in our neck of the woods.

00:02:57.984 --> 00:03:00.424
<v Wes>For sure. And long running.

00:03:00.764 --> 00:03:01.104
<v Chris>Yeah.

00:03:01.584 --> 00:03:02.824
<v Wes>Great mix of communities.

00:03:03.004 --> 00:03:08.544
<v Chris>Yeah. And you can get 40% off registration when you use the promo code UNPLG. Unpludged.

00:03:09.104 --> 00:03:12.924
<v Chris>We'll be at Planet Nix, too, which is bringing all kinds of engineers and builders

00:03:12.924 --> 00:03:15.924
<v Chris>from around the world. Microsoft, Anthropic, Shopify.

00:03:16.264 --> 00:03:18.284
<v Chris>I mean, the list is crazy.

00:03:18.444 --> 00:03:20.744
<v Wes>Way more companies than you think using Nix, it turns out.

00:03:20.864 --> 00:03:21.024
<v Chris>Yeah.

00:03:21.084 --> 00:03:22.504
<v Wes>Planet Nix is a great way to find that out.

00:03:22.624 --> 00:03:26.484
<v Chris>Yeah. Phlox is making it possible. They're making reproducible dev environments

00:03:26.484 --> 00:03:29.484
<v Chris>actually usable. So they're just in the right place at the right moment.

00:03:29.924 --> 00:03:34.024
<v Chris>And they're helping us get down there. And to that end, and this is the last

00:03:34.024 --> 00:03:38.904
<v Chris>housekeeping update you guys have to listen on any of this, we are making a

00:03:38.904 --> 00:03:40.124
<v Chris>meetup super combo deal.

00:03:40.124 --> 00:03:45.304
<v Chris>We have decided since our meetup was on the same day and the same time as the

00:03:45.304 --> 00:03:49.404
<v Chris>Planet Nix after party, it was silly to split the crowd.

00:03:49.584 --> 00:03:53.864
<v Chris>Instead, we're going to do one giant Planet Nix after party meetup.

00:03:54.224 --> 00:03:58.464
<v Chris>So Phlox and JB are hosting happy hour for the community.

00:03:58.644 --> 00:04:02.264
<v Chris>I'll have the details now. It's all updated at meetup.com slash Jupiter Broadcasting.

00:04:02.424 --> 00:04:04.584
<v Chris>It's going to be Friday, March 6, 6 p.m. to 8 p.m.

00:04:05.024 --> 00:04:07.924
<v Chris>Instead of two events at separate times, we're going to do one awesome event

00:04:07.924 --> 00:04:13.404
<v Chris>on Friday night. combining our powers into one giant meetup. So come hang out.

00:04:14.766 --> 00:04:19.146
<v Chris>We also in this got roped into appetizers. So if you're listening and you would

00:04:19.146 --> 00:04:23.606
<v Chris>like to help your other listeners have a good time, we would love some some

00:04:23.606 --> 00:04:24.966
<v Chris>boost support for appetizers.

00:04:25.446 --> 00:04:28.626
<v Chris>We're going to be probably feeding over 100 mouths and it's in California.

00:04:28.826 --> 00:04:30.946
<v Chris>So you can imagine that's going to be expensive.

00:04:31.706 --> 00:04:33.906
<v Chris>But I think it's the right thing to do. People are going to come out.

00:04:34.066 --> 00:04:35.946
<v Chris>It's our way to contribute to the Knicks after party.

00:04:36.326 --> 00:04:40.026
<v Chris>And we'd love some support. We'll be on the road, but you could send a boost

00:04:40.026 --> 00:04:43.906
<v Chris>our way and we'll add it to the boost to bite pipeline, if you will.

00:04:44.766 --> 00:04:48.246
<v Chris>Thank you, everybody, who's going to meetup.com slash Jupiter Broadcasting 2

00:04:48.246 --> 00:04:49.766
<v Chris>and signaling their intention.

00:04:50.006 --> 00:04:52.426
<v Chris>We really appreciate that. It helps us plan. And we're really looking forward

00:04:52.426 --> 00:04:56.746
<v Chris>to the Planet Nix after party and seeing everybody down there. It's getting close.

00:04:59.146 --> 00:05:04.526
<v Brent>Well, this year, KD is having quite a moment. Plasma 6.6 just dropped with HDR

00:05:04.526 --> 00:05:09.246
<v Brent>support, better Wayland performance, and is finally stable enough to daily drive.

00:05:09.986 --> 00:05:16.206
<v Brent>The desktop Linux market, as you know, last year hit 5% desktop chair and,

00:05:16.206 --> 00:05:18.326
<v Brent>well, KD has been right at the center of that.

00:05:20.860 --> 00:05:28.680
<v Brent>KDE Linux, as you remember, is not Plasma, but its own thing. Not Neon either.

00:05:29.200 --> 00:05:29.720
<v Chris>Right.

00:05:29.840 --> 00:05:34.040
<v Brent>It's definitely not Neon. It's a new project by the KDE crew that we've been

00:05:34.040 --> 00:05:38.780
<v Brent>super excited about because, well, it's brand new. It's throwing in some super

00:05:38.780 --> 00:05:43.060
<v Brent>modern technology and is very actively under development right now.

00:05:43.160 --> 00:05:49.720
<v Brent>It aims to be one of the best ways to get the front row seat to KDE and Plasma.

00:05:49.720 --> 00:05:54.120
<v Brent>and well it's just it's code name project banana so what is there not to like.

00:05:54.120 --> 00:05:56.240
<v Chris>I see this is very much a brent pick.

00:05:56.240 --> 00:05:59.960
<v Wes>Right plasma bananas i mean did he force us to do this maybe.

00:06:01.180 --> 00:06:03.820
<v Chris>You know also it's it's a

00:06:03.820 --> 00:06:06.820
<v Chris>great time to check out because plasma is

00:06:06.820 --> 00:06:09.900
<v Chris>in such a great space yeah it's oh

00:06:09.900 --> 00:06:12.900
<v Chris>man you know being on hyperland for a little while now and then coming back

00:06:12.900 --> 00:06:18.960
<v Chris>to absolutely modern plasma it is looking so so good uh and it is a bit of an

00:06:18.960 --> 00:06:21.320
<v Chris>adjustment we've talked about this before and we're going to get more into this

00:06:21.320 --> 00:06:25.440
<v Chris>some of the weeds here with this episode there's no package manager traditionally

00:06:25.440 --> 00:06:27.840
<v Chris>here right you got flat pack you got app images,

00:06:28.380 --> 00:06:33.440
<v Chris>this is an image-based immutable whole os idea they have built it on arch but

00:06:33.440 --> 00:06:42.180
<v Chris>pac-man is not on this thing it is a self-contained single 4.8 gigabyte uh is it erofs image yeah.

00:06:42.180 --> 00:06:46.460
<v Wes>Erofs erofs yeah um i'll let you come up with your own pronunciation but.

00:06:48.563 --> 00:06:50.243
<v Chris>I'm just going to say E-R-O-F-S.

00:06:50.343 --> 00:06:50.923
<v Brent>E-R-O-F-S.

00:06:51.423 --> 00:06:54.403
<v Chris>Yeah. So that's the image layer. And that's like these are the image.

00:06:54.483 --> 00:06:56.263
<v Chris>And that's like almost five gigs on its own.

00:06:56.363 --> 00:07:00.263
<v Chris>And then you layer on the flat packs you want up to that. It's really meant for user space.

00:07:00.523 --> 00:07:05.183
<v Chris>And KDE's goal here is to create what they say is, quote, a bulletproof OS that

00:07:05.183 --> 00:07:06.423
<v Chris>showcases the best of KDE.

00:07:06.863 --> 00:07:09.283
<v Chris>And we've also talked about Gnome's creating Gnome OS.

00:07:09.963 --> 00:07:14.983
<v Chris>And what you get to see is something, if you're a Plasma fan,

00:07:15.123 --> 00:07:18.843
<v Chris>that is really, really nice. It's very lean, mean, and focused.

00:07:19.043 --> 00:07:23.283
<v Chris>The beta is coming along, right? This is still very early. They're about 65% complete right now.

00:07:23.563 --> 00:07:26.443
<v Chris>They're in some refinement areas. I know they've been working on Whalen stuff.

00:07:26.483 --> 00:07:29.643
<v Chris>I couldn't say exactly where they're at with that, but it looks like multi-monitor

00:07:29.643 --> 00:07:32.483
<v Chris>stability was a priority and high refresh rate, which I love to see.

00:07:33.003 --> 00:07:37.243
<v Chris>But the technical details, Wes, are... I mean, that's what I think is maybe

00:07:37.243 --> 00:07:40.943
<v Chris>most appealing to KDE Linux to us, is some of the practical decisions they've

00:07:40.943 --> 00:07:44.483
<v Chris>made, because they could have gone off in the weeds and done some really crazy stuff,

00:07:45.432 --> 00:07:49.752
<v Chris>But I think part of what's making this distribution so solid this early is they

00:07:49.752 --> 00:07:52.052
<v Chris>made some really sound, practical, technical decisions.

00:07:52.312 --> 00:07:57.412
<v Wes>Yeah. You know, it sounds a lot kind of similar to maybe like the uBlue type immutable service.

00:07:57.532 --> 00:08:00.872
<v Wes>We've talked a lot of different shades of immutable Linux versions.

00:08:02.012 --> 00:08:06.052
<v Wes>But this one is very lean and it feels conceptually simple because it really

00:08:06.052 --> 00:08:10.452
<v Wes>is relying a lot on a bunch of stuff that has been developed in a lot,

00:08:10.512 --> 00:08:12.852
<v Wes>mostly the systemd, but a slightly wider community than that.

00:08:12.852 --> 00:08:15.752
<v Wes>especially after if you remember um leonard had a blog post in

00:08:15.752 --> 00:08:18.572
<v Wes>2021 uh putting things together i think it was called yeah

00:08:18.572 --> 00:08:21.332
<v Wes>it was kind of like a lot of modern ideas that's where we got maybe like the

00:08:21.332 --> 00:08:24.712
<v Wes>ideas behind systemd home d and like a lot of stuff we've seen develop over

00:08:24.712 --> 00:08:29.932
<v Wes>the years including um unified kernel kernel images you can't ukis which kd

00:08:29.932 --> 00:08:36.132
<v Wes>linux does use and so as part of that you get um what's called mkosi or mcosi

00:08:36.132 --> 00:08:37.132
<v Wes>i don't know what do you like there i.

00:08:37.132 --> 00:08:39.772
<v Chris>Like mcosi So M-K-O-S-I.

00:08:40.072 --> 00:08:43.692
<v Wes>Yeah. So this is a tool to make operating system images.

00:08:43.932 --> 00:08:44.092
<v Chris>Ah.

00:08:44.712 --> 00:08:48.812
<v Wes>And the core philosophy is building an OS image should be reproducible,

00:08:49.132 --> 00:08:51.912
<v Wes>declarative, and unprivileged, right?

00:08:51.932 --> 00:08:53.452
<v Wes>Because often when you think about this, you think about like,

00:08:53.672 --> 00:08:58.572
<v Wes>oh, loop devices and like F disk and formatting and like making new file systems,

00:08:58.752 --> 00:08:59.972
<v Wes>all of which sounds like root permission.

00:09:00.192 --> 00:09:00.832
<v Chris>All needs root. Yeah.

00:09:01.052 --> 00:09:05.192
<v Wes>Yeah. So what's great here is instead you run this, you give it a single config file.

00:09:05.352 --> 00:09:05.472
<v Chris>Okay.

00:09:05.472 --> 00:09:09.532
<v Wes>And it uses systemd repart under the hood and it's got some clever stuff.

00:09:09.672 --> 00:09:13.572
<v Wes>There's also, of course, because of systemd, cgroups and namespaces and unshare

00:09:13.572 --> 00:09:17.332
<v Wes>and basically it's able to look like it has root inside of a specially crafted

00:09:17.332 --> 00:09:19.652
<v Wes>namespace that has the permissions it needs to do.

00:09:19.652 --> 00:09:23.872
<v Wes>a whole bunch of clever, modern Linux plumbing engineering under the hood so

00:09:23.872 --> 00:09:28.032
<v Wes>that at the end of the day, you can create stuff like raw GPT disk images,

00:09:28.252 --> 00:09:32.352
<v Wes>EROFS images, squash FS, container directories, UKIs, tarballs,

00:09:32.652 --> 00:09:37.072
<v Wes>all from just something that can run without crazy permissions,

00:09:37.252 --> 00:09:39.552
<v Wes>run in CI, or run right in your terminal.

00:09:40.232 --> 00:09:43.012
<v Wes>And then, of course, there's a bunch of other stuff that layers in there.

00:09:43.012 --> 00:09:45.472
<v Wes>So you do get EROFS, which we'll go more into, but...

00:09:46.287 --> 00:09:51.227
<v Wes>Okay, you use MKOSI to make yourself like a disk image, maybe an EROFS,

00:09:51.627 --> 00:09:54.447
<v Wes>but what do you do with that?

00:09:54.587 --> 00:09:57.167
<v Wes>Well, there's more tools. There's systemd sysupdate.

00:09:57.347 --> 00:09:57.787
<v Chris>Okay.

00:09:57.947 --> 00:10:02.147
<v Wes>And this is the thing that actually handles the cool rollback and like slot

00:10:02.147 --> 00:10:04.967
<v Wes>sort of A-B functionality that's going on.

00:10:04.987 --> 00:10:08.327
<v Wes>So when you want to do an update, you're not pulling down app packages.

00:10:08.807 --> 00:10:11.827
<v Wes>You're not, you know, there's no DNF. There's no Pac-Man involved.

00:10:12.027 --> 00:10:14.767
<v Wes>You download a whole big new disk image.

00:10:14.767 --> 00:10:14.907
<v Chris>Right.

00:10:14.907 --> 00:10:18.407
<v Wes>We'll get to the Delta update story later. But you download a new image.

00:10:18.567 --> 00:10:22.687
<v Wes>Systemd puts that in the right spot and hooks up all the bootloader stuff for

00:10:22.687 --> 00:10:26.407
<v Wes>you so that automatically you can boot into the new version.

00:10:26.467 --> 00:10:28.647
<v Wes>If it doesn't go well, it can boot back to the old one.

00:10:28.747 --> 00:10:31.347
<v Wes>And it understands that all at the Systemd layer.

00:10:31.507 --> 00:10:34.647
<v Chris>Well, and to the point earlier, they didn't invent that tool.

00:10:34.867 --> 00:10:37.427
<v Wes>Nope. They didn't have to roll that. They didn't have to iron out all the logic

00:10:37.427 --> 00:10:39.027
<v Wes>to make sure it was robust and reliable.

00:10:39.627 --> 00:10:42.327
<v Chris>That's an example of a practical technology choice where, yeah,

00:10:42.387 --> 00:10:45.647
<v Chris>they could have invented their own system and maybe even have like a nice little

00:10:45.647 --> 00:10:47.387
<v Chris>plasma integration and all of that.

00:10:47.567 --> 00:10:51.187
<v Chris>But instead they chose to go with something that's already been built and in production.

00:10:51.707 --> 00:10:53.667
<v Chris>So it's already stable, that aspect of it.

00:10:53.827 --> 00:10:57.107
<v Wes>And then, you know, you get to layer on stuff too. So then there's systemd system

00:10:57.107 --> 00:11:00.987
<v Wes>extensions because in this model you have slash user that is hermetically sealed,

00:11:01.007 --> 00:11:05.187
<v Wes>that is this EROFS that you can't touch, that has a bunch of nice cryptographic properties.

00:11:05.667 --> 00:11:08.907
<v Wes>So maybe that's your base system. And then on top of that, like in the testing

00:11:08.907 --> 00:11:12.447
<v Wes>edition we've been playing with, you can layer in all the plasma stuff as its

00:11:12.447 --> 00:11:15.807
<v Wes>own systemd system extension that you can update, that you can swap in and out,

00:11:15.867 --> 00:11:18.947
<v Wes>and you don't have to mess with all of the Arch packages underneath necessarily.

00:11:19.187 --> 00:11:23.527
<v Chris>Do you want to talk about system extensions more later, or could we expand on that right now?

00:11:23.647 --> 00:11:26.787
<v Chris>Because systemd sysextent seemed like at the announcement of the project,

00:11:26.967 --> 00:11:30.247
<v Chris>well, this is the way I'm going to layer in my mesh networking,

00:11:30.247 --> 00:11:34.467
<v Chris>or this is the way I'm going to modify this otherwise immutable distro to have

00:11:34.467 --> 00:11:36.267
<v Chris>this particular customization I want.

00:11:36.407 --> 00:11:39.207
<v Wes>And it does work for that, but it's a little heavyweight. It's still getting

00:11:39.207 --> 00:11:43.027
<v Wes>kind of ironed out sometimes, especially like services that are served in there

00:11:43.027 --> 00:11:44.527
<v Wes>can be a little bit flaky, which is...

00:11:44.659 --> 00:11:47.499
<v Wes>a little unexpected considering the origins

00:11:47.499 --> 00:11:50.719
<v Wes>of all this stuff um but what it works really well for is something like plasma

00:11:50.719 --> 00:11:54.779
<v Wes>or libraries frameworks where you don't just have a single file like if you're

00:11:54.779 --> 00:11:57.399
<v Wes>just trying to install something like a you know that's like a single binary

00:11:57.399 --> 00:12:01.359
<v Wes>download from some rust or go project or whatever you can do it but it's more

00:12:01.359 --> 00:12:04.239
<v Wes>work than you need right there's already places to just stick that like opt

00:12:04.239 --> 00:12:06.419
<v Wes>or user local or whatever or what about like the.

00:12:06.419 --> 00:12:07.559
<v Chris>Case of nebular tail scale.

00:12:07.559 --> 00:12:10.299
<v Wes>Yeah so those are too easy to distribute basically but if

00:12:10.299 --> 00:12:13.399
<v Wes>you're trying to add something that needs libraries it needs png assets it has

00:12:13.399 --> 00:12:17.859
<v Wes>all this stuff that is expected to be under those normal slash usr like stuff

00:12:17.859 --> 00:12:21.159
<v Wes>that a linux operating system expects that's where system extensions really

00:12:21.159 --> 00:12:25.559
<v Wes>shine so it's really for the core system extension and not as much of the story

00:12:25.559 --> 00:12:28.839
<v Wes>necessarily you can do it right but for like user apps but.

00:12:28.839 --> 00:12:31.379
<v Chris>If yeah if you could get a user app that's a go binary you just go that route.

00:12:31.379 --> 00:12:32.019
<v Wes>Yeah i.

00:12:32.019 --> 00:12:37.139
<v Chris>Got you so let's talk more about this er ofs which stands for enhanced read-only

00:12:37.139 --> 00:12:39.839
<v Chris>file system it came out of huawei for Android.

00:12:40.059 --> 00:12:44.679
<v Chris>We've had it in Linux since Linux 5.4. So again, it's been around since 2019.

00:12:44.859 --> 00:12:47.919
<v Chris>It's a technology that is stable. It's in use in Chrome OS.

00:12:48.179 --> 00:12:51.259
<v Wes>It's actually required for Android now. All the system partitions are using it.

00:12:51.359 --> 00:12:54.779
<v Chris>And they're using it in KDE Linux. So I think the obvious question,

00:12:54.859 --> 00:12:56.499
<v Chris>because if you're going to ask a Linux user, how would you do this?

00:12:56.579 --> 00:12:57.839
<v Chris>They'd say, well, I would use SquashFS.

00:12:58.679 --> 00:13:03.279
<v Chris>It's been around forever. SquashFS has been in Linux since kernel 2.6.29.

00:13:03.539 --> 00:13:03.919
<v Wes>Wow.

00:13:04.259 --> 00:13:07.219
<v Chris>Yeah. Yeah. But there's a difference and it matters here.

00:13:07.319 --> 00:13:10.139
<v Chris>So SquashFS takes a fixed chunk of uncompressed data, like, say,

00:13:10.559 --> 00:13:13.979
<v Chris>128 kilobytes of data, and it compresses it to a variable-size output.

00:13:14.179 --> 00:13:18.699
<v Chris>And the blocks land arbitrarily and offsets, and reading one random byte means

00:13:18.699 --> 00:13:21.599
<v Chris>loading and decompressing that entire 120-kilobyte.

00:13:22.120 --> 00:13:25.660
<v Wes>So the whole point for SquashFS is maximizing the compression,

00:13:25.880 --> 00:13:28.720
<v Wes>which is great, right? Especially when it was made and the internet was super slow.

00:13:28.780 --> 00:13:30.440
<v Chris>Back in the two six days when you're squashing.

00:13:30.700 --> 00:13:33.540
<v Wes>Yeah, right. But it kind of means that the output is variable,

00:13:33.680 --> 00:13:37.920
<v Wes>which means you can't easily, like, you have to unpack kind of everything or at least big chunks.

00:13:37.980 --> 00:13:40.940
<v Wes>If you want just one file, you can't get that.

00:13:41.240 --> 00:13:45.520
<v Chris>Right. So this is where the enhanced rate only file system flips it.

00:13:45.720 --> 00:13:49.580
<v Chris>It has fixed output for compression. Like, you know what you're going to get.

00:13:49.580 --> 00:13:52.960
<v Chris>the compressor is told give me exactly four kilobytes every block

00:13:52.960 --> 00:13:59.020
<v Chris>is page size block aligned and indexed and then so i guess to your point much

00:13:59.020 --> 00:14:02.860
<v Chris>easier to extract the exact piece that you need memory overhead per block drops

00:14:02.860 --> 00:14:07.840
<v Chris>in this example from say 128 kilobytes with the squash fs to just four kilobytes

00:14:07.840 --> 00:14:09.920
<v Chris>with the enhanced read-only file system.

00:14:09.920 --> 00:14:13.260
<v Wes>And it kind of just directly maps to memory because it's meant to match the

00:14:13.260 --> 00:14:17.200
<v Wes>page size and so instead of having to like unpack stuff and copy stuff you can

00:14:17.200 --> 00:14:19.740
<v Wes>kind of just go mount it into memory and.

00:14:19.740 --> 00:14:22.600
<v Chris>Get reading and you can imagine that matters a lot

00:14:22.600 --> 00:14:25.820
<v Chris>like at boot time you've got a train you've got a chain of

00:14:25.820 --> 00:14:30.400
<v Chris>trust you're trying to get everything from secure boot signing to the UKI embeds

00:14:30.400 --> 00:14:34.260
<v Chris>all this crap that I barely even understand to actual like kernel loading and

00:14:34.260 --> 00:14:37.760
<v Chris>you want it all done as fast as absolutely possible and you're using these images

00:14:37.760 --> 00:14:41.460
<v Chris>this is the exact kind of scenario where you need a solution where you know

00:14:41.460 --> 00:14:44.040
<v Chris>the predictable size of the compression and where it's going to be at.

00:14:44.763 --> 00:14:47.683
<v Wes>And it's just a really neat technical idea that's worked really well.

00:14:48.323 --> 00:14:53.483
<v Wes>It's also kind of neat because SquashFS has been hard to work with cryptographically

00:14:53.483 --> 00:14:56.643
<v Wes>and work with DM Verity and kind of all the nice stuff that people want when

00:14:56.643 --> 00:15:00.263
<v Wes>you are taking the time to use Secure Boot and to use signed UKIs and all that

00:15:00.263 --> 00:15:02.783
<v Wes>kind of stuff that you might want for enterprise trust at scale, right?

00:15:04.023 --> 00:15:08.143
<v Wes>and EROFS works really well with that which means you can have nice cryptographic

00:15:08.143 --> 00:15:12.523
<v Wes>checksums and actual DMV protection so that if someone does try to mess with

00:15:12.523 --> 00:15:15.023
<v Wes>your root file system, the kernel can detect it immediately.

00:15:15.203 --> 00:15:15.563
<v Chris>That's great.

00:15:15.823 --> 00:15:18.243
<v Wes>It's not all roses though.

00:15:18.403 --> 00:15:18.523
<v Chris>No?

00:15:18.803 --> 00:15:22.123
<v Wes>Well, I bet you're feeling this one right? One of the bigger friction points

00:15:22.123 --> 00:15:27.143
<v Wes>is it's not a scientific limitation, it's more like an engineering problem that is being worked on.

00:15:27.163 --> 00:15:27.843
<v Chris>It is a problem though.

00:15:27.963 --> 00:15:30.083
<v Wes>But there are no delta updates.

00:15:30.163 --> 00:15:30.763
<v Chris>It sucks man.

00:15:30.763 --> 00:15:36.043
<v Wes>So you go change a couple little bits. That's a whole new five gigabyte download.

00:15:37.240 --> 00:15:39.140
<v Chris>They'll get there, though, right? I mean, that's on the roadmap.

00:15:39.460 --> 00:15:41.960
<v Wes>And, right, you do have this layered ability. And especially,

00:15:42.120 --> 00:15:46.100
<v Wes>right, where with, like, EROFS and other things, you can keep all the nice cryptographic

00:15:46.100 --> 00:15:49.180
<v Wes>signing for the bottom, even if you add some system extension that isn't itself

00:15:49.180 --> 00:15:52.280
<v Wes>signed. So you don't have to go, like, break the whole trust of the system just

00:15:52.280 --> 00:15:53.620
<v Wes>to add on some stuff at the top.

00:15:53.740 --> 00:15:54.780
<v Chris>That's elegant. I like that.

00:15:55.820 --> 00:15:59.260
<v Wes>Composable things. So there's some hope that, like, maybe you don't have to

00:15:59.260 --> 00:16:03.700
<v Wes>update the core tiny layers, like, all the time for that rebuild.

00:16:03.700 --> 00:16:08.340
<v Wes>and there there are things in progress upstream i think even there's been some

00:16:08.340 --> 00:16:12.000
<v Wes>work from like various parts of the community i think leonard had one at one

00:16:12.000 --> 00:16:15.780
<v Wes>point so i expect this will get solved it's just it's just early days.

00:16:15.780 --> 00:16:21.500
<v Chris>So we all had a little chance to kick the tires and um i thought let's start

00:16:21.500 --> 00:16:24.420
<v Chris>with brent's observations because i'm brett you're probably the most act well

00:16:24.420 --> 00:16:27.840
<v Chris>actually wes you're on plasma all the time too but when we think of our biggest

00:16:27.840 --> 00:16:31.560
<v Chris>plasma fan i think of brent so i'm curious what your observations of kde linux were.

00:16:31.560 --> 00:16:35.520
<v Brent>Well i was fully expecting like the reference kd

00:16:35.520 --> 00:16:38.660
<v Brent>implementation i've used many spins and

00:16:38.660 --> 00:16:41.320
<v Brent>such over the years and it

00:16:41.320 --> 00:16:45.760
<v Brent>always feels like there's of course opinions thrown into spins which is the

00:16:45.760 --> 00:16:50.460
<v Brent>whole purpose but it never quite felt like unless you were running neon that

00:16:50.460 --> 00:16:55.900
<v Brent>you had the reference that the kd software developers were building plasma to

00:16:55.900 --> 00:16:58.960
<v Brent>work perfectly with and to see you know the future of plasma.

00:16:59.340 --> 00:17:03.100
<v Brent>So as soon as I installed and booted KD Linux,

00:17:03.500 --> 00:17:07.920
<v Brent>that's the feeling I got was like, Oh wait, I'm learning like even the tour

00:17:07.920 --> 00:17:12.900
<v Brent>for the first boot up tour that you get, which I, you know, over the years have

00:17:12.900 --> 00:17:14.740
<v Brent>seen them and don't really click on them now.

00:17:14.780 --> 00:17:20.240
<v Brent>I was like, wait, this is teaching me new ways that the developers intended

00:17:20.240 --> 00:17:24.880
<v Brent>for me to use plasma that I haven't been doing. And it made me realize like,

00:17:25.566 --> 00:17:29.766
<v Brent>Even though I'm a huge Plasma fan, I don't know that I understand how they want me to use it.

00:17:29.886 --> 00:17:34.126
<v Brent>And I'm learning new ways to use it just through booting for the first time

00:17:34.126 --> 00:17:36.466
<v Brent>KDE Linux, which was a nice feeling to have.

00:17:36.566 --> 00:17:40.686
<v Brent>Because I felt like, well, I'm a big fan, but I could become even more of a

00:17:40.686 --> 00:17:43.846
<v Brent>fan if I understand all of the different paradigms that they're building into

00:17:43.846 --> 00:17:45.606
<v Brent>Plasma that I don't even know about.

00:17:46.046 --> 00:17:51.186
<v Brent>Did you get that feeling too, Chris? Because I think I saw you mention something about that.

00:17:51.766 --> 00:17:57.026
<v Chris>I think my takeaway was more like, it's just so well done. It felt smooth,

00:17:57.366 --> 00:17:59.586
<v Chris>clean, professional, polished.

00:18:00.346 --> 00:18:04.266
<v Chris>I don't know how you strike that tone with an introductory wizard, but it got there.

00:18:04.446 --> 00:18:09.106
<v Chris>Like, I was like... I made a note in my... Like, this is a great introductory wizard.

00:18:09.186 --> 00:18:13.286
<v Chris>I've seen versions of this with other distros, but this one felt particularly polished.

00:18:13.426 --> 00:18:15.666
<v Chris>Wes, what did you think? We all went through it.

00:18:15.786 --> 00:18:16.186
<v Wes>Well, and...

00:18:17.574 --> 00:18:21.594
<v Wes>It was just so light and clean and solid and fast.

00:18:21.834 --> 00:18:24.914
<v Wes>I mean, the install was super fast. I did only try it in a VM this time,

00:18:25.014 --> 00:18:27.074
<v Wes>but it was a great virtualization.

00:18:27.094 --> 00:18:27.614
<v Chris>Oh, super great.

00:18:27.674 --> 00:18:29.974
<v Wes>Like, less than five minutes, had it installed, rebooted.

00:18:30.094 --> 00:18:30.754
<v Chris>Snappy the entire time.

00:18:30.774 --> 00:18:35.234
<v Wes>It had all the virtio drivers and, like, graphics support. So it almost just

00:18:35.234 --> 00:18:36.714
<v Wes>felt like using my native Plasma.

00:18:36.934 --> 00:18:41.654
<v Chris>And it was visually consistent in a way that feels like some of the stuff in

00:18:41.654 --> 00:18:44.894
<v Chris>Plasma maybe hasn't been visually consistent, too. I think maybe that was...

00:18:44.894 --> 00:18:48.514
<v Wes>This was the first time I didn't turn off the light theme. I'm a big dark theme guy.

00:18:48.694 --> 00:18:52.054
<v Wes>Part of it was like, I'm running plasma and plasma here, so it's a little less

00:18:52.054 --> 00:18:53.334
<v Wes>confusing if one of them's a different theme.

00:18:53.514 --> 00:18:55.654
<v Wes>But it was also like, the light theme just looked really good.

00:18:55.774 --> 00:18:59.134
<v Wes>I instinctively went to Switch. I was like, wait, this looks great. I don't need to.

00:18:59.274 --> 00:19:02.414
<v Chris>I know. I feel like with the latest plasma and the stuff they're doing with

00:19:02.414 --> 00:19:04.834
<v Chris>Breeze, I'm a light theme guy again.

00:19:04.934 --> 00:19:07.674
<v Chris>It just looks, the light theme looks better than the dark theme.

00:19:08.114 --> 00:19:08.694
<v Wes>It does.

00:19:08.774 --> 00:19:12.274
<v Brent>As you guys are mentioning this, I'm realizing I didn't even realize I was in

00:19:12.274 --> 00:19:16.714
<v Brent>a light theme and I never changed it. And that is like the first time that ever happens.

00:19:17.574 --> 00:19:19.714
<v Chris>It looks good. It really does.

00:19:19.794 --> 00:19:21.934
<v Brent>I'm redefining my identity all of a sudden.

00:19:24.254 --> 00:19:26.014
<v Chris>Brent finds himself in KD Linux.

00:19:27.614 --> 00:19:29.874
<v Brent>You think by now I would have figured that out?

00:19:32.114 --> 00:19:36.374
<v Chris>I think that was a very good first impression, right? When that comes up, it's good. It was good.

00:19:37.002 --> 00:19:38.442
<v Chris>Clearly made an impression on all of us.

00:19:38.582 --> 00:19:42.522
<v Brent>I found the installer too was just simple and straightforward.

00:19:42.882 --> 00:19:45.922
<v Brent>I, of course, did my usual test of trying out the encryption,

00:19:46.642 --> 00:19:53.342
<v Brent>which worked perfectly fine, except for on first boot, I forgot the password that I put in.

00:19:53.942 --> 00:19:54.422
<v Wes>No.

00:19:54.802 --> 00:20:01.022
<v Brent>More because I've adopted our JB Studio temporary password in my own home lab now.

00:20:01.022 --> 00:20:01.802
<v Wes>We don't have one of those.

00:20:01.842 --> 00:20:02.922
<v Chris>No, no, we never do that.

00:20:02.942 --> 00:20:03.762
<v Wes>We're OWASP certified.

00:20:03.762 --> 00:20:06.402
<v Chris>We always generate unique passwords for every temporary thing.

00:20:06.402 --> 00:20:09.682
<v Brent>I usually put Cosmo as a password, to be honest. But anyway,

00:20:09.842 --> 00:20:13.162
<v Brent>so I like briefly, you know, I was having breakfast and it was early.

00:20:13.522 --> 00:20:17.802
<v Brent>So I put the wrong password in at the encryption screen when you first boot just to unlock the disk.

00:20:17.942 --> 00:20:20.962
<v Brent>And I was like, oh, no, OK. All right, right. I put the wrong one in.

00:20:21.062 --> 00:20:22.242
<v Brent>So I'm going to get to try again. Right.

00:20:22.862 --> 00:20:26.522
<v Brent>And it just dropped to a rescue shell, which I hadn't.

00:20:26.882 --> 00:20:30.482
<v Brent>That's not the usual flow. Usually it lets you at least try three times.

00:20:30.702 --> 00:20:34.862
<v Brent>So that was interesting. But once I, you know, put in the right password,

00:20:34.962 --> 00:20:36.722
<v Brent>everything worked just fine. And so that was nice.

00:20:37.162 --> 00:20:41.342
<v Brent>But what surprised me the most was, I think, what we talked about earlier.

00:20:41.562 --> 00:20:46.542
<v Brent>And what I would like to bring even more attention to is the underlying technologies

00:20:46.542 --> 00:20:53.322
<v Brent>that are making this image-based distribution work for the KDE team.

00:20:53.622 --> 00:20:57.602
<v Brent>And I discovered some software under the hood in their docs,

00:20:57.822 --> 00:21:01.862
<v Brent>actually, which are pretty light, but answer all of the most important questions

00:21:01.862 --> 00:21:04.962
<v Brent>when you're first booting into KD Linux.

00:21:04.962 --> 00:21:09.082
<v Brent>One of them was like, well, how do I get other software on here?

00:21:09.142 --> 00:21:12.902
<v Brent>Of course, Flatpak was built in to discover, which was nice.

00:21:12.902 --> 00:21:15.982
<v Brent>But they list a bunch of other options for geeks and nerds like us because,

00:21:16.202 --> 00:21:17.482
<v Brent>well, that's who they're building it for.

00:21:17.742 --> 00:21:24.122
<v Brent>So I discovered, of course, Nix is a first-class citizen for how to get additional

00:21:24.122 --> 00:21:25.902
<v Brent>software on your KD Linux.

00:21:26.462 --> 00:21:29.722
<v Chris>Now, hold on. Let's pause here for a second. Because I know some of the audience

00:21:29.722 --> 00:21:30.722
<v Chris>is going to roll their eyes.

00:21:30.842 --> 00:21:31.082
<v Brent>Sure.

00:21:31.082 --> 00:21:37.282
<v Chris>But I actually think this is a very notable differentiation between the Bluefin

00:21:37.282 --> 00:21:39.342
<v Chris>crowd and maybe KDE Linux here.

00:21:39.942 --> 00:21:44.462
<v Chris>What KDE Linux has done is just made sensible steps to make it possible to sideload Nix.

00:21:45.202 --> 00:21:50.042
<v Chris>What that does is that gives you the world's largest package repository on an

00:21:50.042 --> 00:21:52.302
<v Chris>immutable distribution that doesn't have a package manager.

00:21:52.502 --> 00:21:56.402
<v Wes>In Ubulu's defense, they do have some more difficulties because they're doing

00:21:56.402 --> 00:22:00.382
<v Wes>a composeFS thing that sort of makes an EROFS, and that's for the whole root.

00:22:00.422 --> 00:22:01.282
<v Chris>The root of the file system.

00:22:01.302 --> 00:22:03.942
<v Wes>Right. Whereas here, it's just slash user right now, mostly, that's like...

00:22:03.942 --> 00:22:06.942
<v Chris>So you can create a new root directory, which in this case is slash Nix.

00:22:06.942 --> 00:22:11.222
<v Wes>But it did stand out because, like, right away, there is a fair amount of stuff.

00:22:11.222 --> 00:22:14.282
<v Wes>Actually, I was kind of looking at it, and you get, by default,

00:22:14.462 --> 00:22:19.982
<v Wes>like, a bunch of development utilities and a fair amount of common file system

00:22:19.982 --> 00:22:22.382
<v Wes>stuff. So it's not totally Spartan, but it doesn't have everything.

00:22:22.622 --> 00:22:25.542
<v Wes>And if Flatpaks are your primary way to get, like, user apps,

00:22:25.622 --> 00:22:29.562
<v Wes>that doesn't really get me Netcat very well, which I need on every system I have, apparently.

00:22:30.162 --> 00:22:33.282
<v Wes>And Nix kind of, especially if you have this whole, like, I want an immutable

00:22:33.282 --> 00:22:37.242
<v Wes>rock solid, the way Nix works, then you can just sort of ephemerally summon

00:22:37.242 --> 00:22:39.442
<v Wes>a tool, and then you don't have to worry about it and it didn't pollute your

00:22:39.442 --> 00:22:41.322
<v Wes>system, and it's not going to get in the way of future updates.

00:22:41.342 --> 00:22:42.522
<v Wes>It really makes a lot of sense.

00:22:42.902 --> 00:22:47.242
<v Brent>And they list a few different options. I know we were looking for Nix as one

00:22:47.242 --> 00:22:50.382
<v Brent>of the options, so certainly it's nice to see it there in the official docs.

00:22:51.022 --> 00:22:54.942
<v Brent>But they do list other options for software that might not be packaged in a

00:22:54.942 --> 00:22:59.942
<v Brent>flatback. So DistroBox, of course, is an option, which I think we would expect to see.

00:23:00.142 --> 00:23:04.022
<v Brent>But I did discover a project called Capsule, which KD is working on as well.

00:23:04.202 --> 00:23:08.582
<v Brent>And its description here is Incus-based container management with native KD

00:23:08.582 --> 00:23:09.642
<v Brent>and Plasma integration.

00:23:10.002 --> 00:23:15.202
<v Brent>So it's a DistroBox-like tool using Incus as the container or VM backend,

00:23:15.202 --> 00:23:17.922
<v Brent>and it's designed specifically for KD Linux.

00:23:18.242 --> 00:23:20.282
<v Chris>I love the name Capsule, of course, with a K.

00:23:20.342 --> 00:23:21.242
<v Wes>It's cute, yeah.

00:23:21.462 --> 00:23:25.002
<v Chris>But it perfectly describes what it does. It's one of those good names where

00:23:25.002 --> 00:23:27.562
<v Chris>it's got branding and it describes what it does. Capsule with a K.

00:23:27.842 --> 00:23:31.762
<v Wes>Yeah, the use of Incas is interesting. I'm curious. That one especially seems

00:23:31.762 --> 00:23:34.262
<v Wes>very early, but I'm curious to see where they take it.

00:23:34.502 --> 00:23:37.982
<v Chris>This is exciting. I mean, I think the takeaway I'm having...

00:23:38.585 --> 00:23:43.465
<v Chris>When I tried it, and it sounds like when you guys tried it, is there's more

00:23:43.465 --> 00:23:45.525
<v Chris>here, there's more meat on this

00:23:45.525 --> 00:23:48.505
<v Chris>bone than we thought. And there's a real contender in this distribution.

00:23:48.805 --> 00:23:53.165
<v Chris>Because they've managed to strike customizability and flexibility with that

00:23:53.165 --> 00:23:56.265
<v Chris>image-based immutability for some of the sections of the system that matter.

00:23:56.725 --> 00:23:59.905
<v Chris>And if you're a Plasma user, you're getting super fresh Plasma.

00:24:00.305 --> 00:24:05.685
<v Chris>we decided to try to set up nebula between our kde linux instances just because

00:24:05.685 --> 00:24:10.305
<v Chris>how easy it is to just set up a mesh vpn and some of these basic services on

00:24:10.305 --> 00:24:14.885
<v Chris>an immutable distro is actually a decent baseline test because it turns out

00:24:14.885 --> 00:24:17.925
<v Chris>that's often one of the first couple of things end users want to do i.

00:24:17.925 --> 00:24:19.525
<v Wes>Need to get it connected to the rest of my stuff.

00:24:19.525 --> 00:24:23.065
<v Chris>And so like the ublue folks have done have made this really easy to get tail

00:24:23.065 --> 00:24:28.825
<v Chris>scale going but what if you wanted to get nebula going And could you get Nebula going on KDE Linux?

00:24:29.285 --> 00:24:33.445
<v Chris>And I think you and I both took a different approach to solving this.

00:24:33.505 --> 00:24:33.845
<v Wes>Yeah, true.

00:24:34.205 --> 00:24:36.445
<v Chris>Because I was going to experiment with Nix anyways...

00:24:37.696 --> 00:24:40.976
<v Chris>I installed Nix just using the, you know, like the curl command from the NixOS

00:24:40.976 --> 00:24:45.596
<v Chris>website, then proceeded to use Nix to set up Nebula, which I found to be very

00:24:45.596 --> 00:24:47.236
<v Chris>straightforward and worked flawlessly.

00:24:47.976 --> 00:24:51.536
<v Chris>You went more like blasting binaries and setting up configs and stuff like that.

00:24:51.636 --> 00:24:53.536
<v Chris>But I liked it. It was like you could do either approach.

00:24:53.856 --> 00:24:57.956
<v Wes>Yeah. You know, Nebula provides just regular releases. You can go download and

00:24:57.956 --> 00:25:00.016
<v Wes>you basically just need the two binaries that they ship.

00:25:00.076 --> 00:25:03.396
<v Wes>One's Nebula that actually runs like the VPN service and the other is Nebula cert,

00:25:03.576 --> 00:25:06.476
<v Wes>which handles dealing with all the certificates and handling your

00:25:06.476 --> 00:25:09.536
<v Wes>ca if you need to do that so you might not even need that one necessarily but

00:25:09.536 --> 00:25:14.776
<v Wes>they come in the same little uh tarball so yeah i just had um an lm buddy whip

00:25:14.776 --> 00:25:18.956
<v Wes>up a little install script to go download the latest release and go drop it

00:25:18.956 --> 00:25:24.076
<v Wes>i think i did var it looked like the like var lib area was um writable and opt

00:25:24.076 --> 00:25:25.656
<v Wes>was writable and etsy's right etsy.

00:25:25.656 --> 00:25:28.576
<v Chris>As well which i didn't know at first i wasn't sure when i was yeah.

00:25:28.576 --> 00:25:32.796
<v Wes>So i was able to have it like just stick the binaries in a reasonable location

00:25:32.796 --> 00:25:36.996
<v Wes>yeah i think it went with var lib nebula bin in this case and then set stuff

00:25:36.996 --> 00:25:41.696
<v Wes>up with like a default config under etsy nebula and then also add in a systemd

00:25:41.696 --> 00:25:45.436
<v Wes>service to start it and then after that it worked pretty well and.

00:25:45.436 --> 00:25:49.676
<v Chris>This is what i'm saying like it's the balance of it's immutable but wes can

00:25:49.676 --> 00:25:54.336
<v Chris>write systemd units and to etsy and when he updates and reboots it persists,

00:25:55.207 --> 00:25:59.547
<v Chris>So you can do that kind of customization you need to actually make it a functional workstation.

00:26:00.187 --> 00:26:05.027
<v Chris>And I like that. I think that's very approachable for most Linux users today.

00:26:05.447 --> 00:26:08.387
<v Chris>They got something real nice here. What was your experience overall?

00:26:08.587 --> 00:26:13.607
<v Wes>I found it surprisingly workable and refreshing in the simplicity.

00:26:13.807 --> 00:26:17.527
<v Wes>Like, I really like what Ublue is doing, and they're cooking on some good stuff over there.

00:26:17.607 --> 00:26:19.207
<v Chris>Yeah, yeah. I mean, I'm running it right here in front of me.

00:26:19.347 --> 00:26:23.027
<v Wes>But it was cool to see sort of like, Like, you know, Yubo's come out a lot of

00:26:23.027 --> 00:26:27.787
<v Wes>the Bootsy and Upstream Red Hat and Fedora work, which is excellent,

00:26:27.887 --> 00:26:28.807
<v Wes>but has its own heritage.

00:26:29.047 --> 00:26:33.007
<v Wes>And this being sort of a fresh attempt, which uses Arch, but like not at all

00:26:33.007 --> 00:26:37.147
<v Wes>at runtime, entirely just as like a base for the software to put together like

00:26:37.147 --> 00:26:38.487
<v Wes>the core part of a distribution.

00:26:38.827 --> 00:26:43.987
<v Wes>And then is otherwise sort of embracing a lot of the Lenart and SystemD ideas.

00:26:44.147 --> 00:26:48.187
<v Wes>It's just, it's neat from a technical standpoint, and it's cool to see it working pretty darn well.

00:26:48.187 --> 00:26:51.027
<v Chris>We should try to dig up that original blog post because it really did inspire

00:26:51.027 --> 00:26:52.007
<v Chris>a lot of this from Lenart.

00:26:52.207 --> 00:26:57.567
<v Chris>And it's a lot of great ideas there combined with a lot of technologies that

00:26:57.567 --> 00:26:59.087
<v Chris>already exist and work today.

00:27:00.227 --> 00:27:04.167
<v Chris>And so while they are very much still in the testing and building phase,

00:27:04.267 --> 00:27:06.847
<v Chris>this isn't a daily driver yet. This isn't production ready yet.

00:27:07.227 --> 00:27:11.647
<v Chris>The fundamentals are pretty solid. And I think early adopters,

00:27:11.647 --> 00:27:14.467
<v Chris>it's probably getting there. I think it's probably getting there for early adopters.

00:27:14.467 --> 00:27:18.747
<v Wes>It is kind of funny they mention, right? Like it is a terrible place right now, mostly.

00:27:18.907 --> 00:27:22.607
<v Wes>You kind of use DistroBox or containers if you want to actually develop on Plasma.

00:27:23.127 --> 00:27:25.007
<v Wes>But if you just want to use it, it's great.

00:27:28.390 --> 00:27:31.930
<v Chris>Well, we have no sponsor for this slot, but we would very much appreciate if

00:27:31.930 --> 00:27:35.370
<v Chris>you wanted to become a member or send us a boost to help support the appetite

00:27:35.370 --> 00:27:38.210
<v Chris>budget, the appetizer budget. I am hungry, though.

00:27:38.630 --> 00:27:41.430
<v Chris>We would very much appreciate it. We've been running lean these days,

00:27:41.430 --> 00:27:44.330
<v Chris>and so every little bit of support absolutely matters.

00:27:45.210 --> 00:27:47.590
<v Chris>And Fountain FM makes it really easy to boost. And, of course,

00:27:47.610 --> 00:27:50.770
<v Chris>we have the meetup that is coming up in just a couple of days.

00:27:50.770 --> 00:27:54.350
<v Chris>So if you can support us, that'd be great. And a membership is also very much appreciated.

00:27:54.930 --> 00:27:57.550
<v Chris>LinuxUnplugged.com slash membership for just this show. You get the bootleg

00:27:57.550 --> 00:28:01.170
<v Chris>or you can get the totally ad-free version that still has all of Drew's edits,

00:28:01.270 --> 00:28:02.890
<v Chris>which is always a great option.

00:28:03.410 --> 00:28:06.310
<v Chris>And jupyter.party if you want to support the entire network and get the launch

00:28:06.310 --> 00:28:09.730
<v Chris>bootleg and all of that. Thank you, everybody who supports us.

00:28:10.190 --> 00:28:10.970
<v Chris>Appreciate it very much.

00:28:14.131 --> 00:28:20.011
<v Chris>Well, Mr. Bearded Tech joins us from the sunny state of Alaska to talk about

00:28:20.011 --> 00:28:23.551
<v Chris>his project that he's been working on called Nebula Commander.

00:28:24.531 --> 00:28:26.611
<v Chris>Mr. Tech, welcome to the show, sir.

00:28:27.231 --> 00:28:28.671
<v Mumble>Well, thank you, Chris. Glad to be here.

00:28:29.071 --> 00:28:33.191
<v Chris>So tell us a little bit about Nebula Commander. I know it's self-hosted control

00:28:33.191 --> 00:28:37.991
<v Chris>panel to get Nebula going, but that's kind of where my knowledge ends.

00:28:38.511 --> 00:28:43.571
<v Chris>and I'm just kind of looking for an overview of what the project is and what

00:28:43.571 --> 00:28:48.671
<v Chris>it can do and kind of like, you know, an elevator pitch for it, if you will.

00:28:49.091 --> 00:28:54.971
<v Mumble>Well, a little background to start off. This all goes back to when you made

00:28:54.971 --> 00:29:02.291
<v Mumble>call-outs for NixOS configs to be made fun of on air.

00:29:02.491 --> 00:29:04.451
<v Chris>Yeah, the config confessions, of course, yeah.

00:29:05.091 --> 00:29:11.371
<v Mumble>So uh i i started that nix os router project because of that prior to the complete

00:29:11.371 --> 00:29:16.491
<v Mumble>confessions uh and you guys roasted the fact that there was no way to configure

00:29:16.491 --> 00:29:20.371
<v Mumble>nebula or tail scale so i uh i created nebula commander.

00:29:20.371 --> 00:29:24.471
<v Chris>Oh my goodness that's a bit of a response man that's a bit of a response wow

00:29:24.471 --> 00:29:31.251
<v Chris>that's incredible yeah because this is uh this is really turned into i mean

00:29:31.251 --> 00:29:34.051
<v Chris>possibly it It could be something people want to go grab and deploy right now

00:29:34.051 --> 00:29:38.091
<v Chris>because it's a way to manage a fleet of a nebula overlay.

00:29:38.431 --> 00:29:42.151
<v Chris>Explain what it's doing. It's more than just like what Wes and I are playing

00:29:42.151 --> 00:29:44.271
<v Chris>around with, which is like kicking keys around.

00:29:45.228 --> 00:29:49.628
<v Mumble>So not to uh go against your sponsor or anything like that but to find.net,

00:29:50.188 --> 00:29:55.368
<v Mumble>i love it i think it's a great way to uh to to start building out your nebula

00:29:55.368 --> 00:29:58.948
<v Mumble>network but there's a bunch of features that were important to me that weren't

00:29:58.948 --> 00:30:01.268
<v Mumble>quite available yet so i started,

00:30:02.048 --> 00:30:09.168
<v Mumble>seeing if i can make something work and instead of it only being able to use the,

00:30:09.988 --> 00:30:15.568
<v Mumble>client that's provided, you can actually use this just to manage your Nebula setup by itself.

00:30:16.368 --> 00:30:20.908
<v Mumble>You go and create a network. You can create groups which are similar to their

00:30:20.908 --> 00:30:27.848
<v Mumble>roles and create firewall rules for inbound and outbound traffic between different groups you have.

00:30:28.608 --> 00:30:33.128
<v Mumble>And each node, you can actually download the config directly and just run it

00:30:33.128 --> 00:30:39.908
<v Mumble>on nebula raw and i'm actually still working on the client uh it's extremely

00:30:39.908 --> 00:30:41.708
<v Mumble>experimental there's a lot of things i.

00:30:41.708 --> 00:30:43.048
<v Chris>Want to keep going i.

00:30:43.048 --> 00:30:44.428
<v Wes>Like your phrasing reliable.

00:30:44.428 --> 00:30:51.488
<v Chris>Okay so the stack that i understand it right is what it's doing essentially

00:30:51.488 --> 00:30:57.648
<v Chris>is it creates networks it's managing mesh nodes and ip allocation right and

00:30:57.648 --> 00:31:02.008
<v Chris>certifications and it has a web ui which is like a react dashboard front-end.

00:31:02.728 --> 00:31:05.608
<v Chris>And you are also integrating with

00:31:05.608 --> 00:31:08.748
<v Chris>authentication. Can you talk about the authentication piece for a second?

00:31:09.008 --> 00:31:13.628
<v Mumble>Yeah, I'm using KeyCloak in the back-end for authentication, which is nice.

00:31:13.868 --> 00:31:20.328
<v Mumble>You can do everything from enabling email verification and registering your

00:31:20.328 --> 00:31:21.968
<v Mumble>users, and that's how it's set up,

00:31:23.621 --> 00:31:27.001
<v Mumble>When you first go on to Nebula Commander, there are no users set up.

00:31:27.241 --> 00:31:33.881
<v Mumble>You go in, register your first user, and that user eventually will become the admin.

00:31:34.201 --> 00:31:37.361
<v Mumble>Right now, I ran through a little roadblock and tried to work through that.

00:31:39.401 --> 00:31:44.141
<v Mumble>And each user independently can have their own networks, their own nodes,

00:31:44.361 --> 00:31:47.801
<v Mumble>their own group rules, and it is completely separate from any other user.

00:31:47.941 --> 00:31:52.521
<v Mumble>So you could potentially go in and have five users for yourself for five different

00:31:52.521 --> 00:31:54.401
<v Mumble>network setups, and they don't step on each other.

00:31:55.161 --> 00:31:59.701
<v Chris>Oh, that is really, that's a clever idea. Okay, so if I want to run this,

00:31:59.921 --> 00:32:02.001
<v Chris>I'm looking at like probably deploying a Docker container, I assume?

00:32:02.701 --> 00:32:06.161
<v Mumble>Yeah, that's the preferred method right now is with Docker.

00:32:06.661 --> 00:32:13.961
<v Mumble>And if you go on to the nebula-cdr.com, I have full documentation on how to get it up using Docker.

00:32:14.241 --> 00:32:20.981
<v Mumble>There's also a Nix OS flake and modules up there as well to integrate as you guys like.

00:32:21.641 --> 00:32:25.541
<v Wes>Yeah you've really clearly spent some time on the on the docs there's there's

00:32:25.541 --> 00:32:26.981
<v Wes>a lot here at the website nicely done.

00:32:26.981 --> 00:32:31.961
<v Mumble>You know cursor is a wonderful thing you know people you know in the pre-show

00:32:31.961 --> 00:32:37.801
<v Mumble>you guys were talking about ai and ai agentic things and i've used cursor extensively

00:32:37.801 --> 00:32:41.361
<v Mumble>in this project and it's been a godsend trying to get everything online and

00:32:41.361 --> 00:32:44.801
<v Mumble>going working the right way as long as you use it the way it should be used.

00:32:44.801 --> 00:32:48.241
<v Chris>Yeah i've noticed i was reviewing your commits and i saw that you're like actively

00:32:48.241 --> 00:32:51.881
<v Chris>finding some security things and patching those and finding little issues like that too.

00:32:52.021 --> 00:32:56.561
<v Chris>So you're taking some kind of audits and security passes at this project as well, it looked like.

00:32:56.761 --> 00:33:02.341
<v Mumble>Yeah, I've used a couple different tools along with the code QL up on GitHub.

00:33:02.341 --> 00:33:07.701
<v Mumble>I've also used Semgrep and I can't remember the name of the other one for Python that I was using.

00:33:07.961 --> 00:33:12.381
<v Mumble>But yeah, I've done as many security scans as I can to make sure that I have

00:33:12.381 --> 00:33:14.061
<v Mumble>no critical bugs in this thing.

00:33:14.201 --> 00:33:18.881
<v Mumble>Because I mean, that's the biggest problem with a lot of these Vibe-coded projects is that they,

00:33:20.167 --> 00:33:23.147
<v Mumble>have so many security holes, everything's just slapped together and there's

00:33:23.147 --> 00:33:24.927
<v Mumble>no project management involved.

00:33:25.227 --> 00:33:25.347
<v Chris>Yeah.

00:33:25.767 --> 00:33:29.827
<v Wes>Are you using this to manage your own networks yet or not quite at that stage?

00:33:30.047 --> 00:33:36.027
<v Mumble>At this point, yeah. I've got my own personal Nebula network and I'm hoping

00:33:36.027 --> 00:33:39.507
<v Mumble>within the next month or so, I'm going to roll all my clients onto it as well.

00:33:39.627 --> 00:33:41.847
<v Mumble>I run a small IT consulting business up here.

00:33:41.987 --> 00:33:44.847
<v Chris>That's what I was thinking. This would be perfect for an IT consulting firm.

00:33:44.887 --> 00:33:45.547
<v Chris>That's where my head went.

00:33:45.927 --> 00:33:48.847
<v Chris>I could see a little network management for your clients. You're using

00:33:48.847 --> 00:33:51.727
<v Chris>this to back up their data it's completely private no big tech

00:33:51.727 --> 00:33:54.507
<v Chris>involved at all and you know just to

00:33:54.507 --> 00:33:57.447
<v Chris>circle back to your vibe coded comment bearded tech because i think too this is

00:33:57.447 --> 00:34:02.387
<v Chris>an example where i think there's nuance because your application is sitting

00:34:02.387 --> 00:34:06.787
<v Chris>on top of nebula and you know python a bunch of stuff that are primitives that

00:34:06.787 --> 00:34:10.927
<v Chris>are good and sound that are working and secure right you didn't invent the encryption

00:34:10.927 --> 00:34:15.547
<v Chris>here you know you didn't invent the nebula aspect of this you're You're orchestrating

00:34:15.547 --> 00:34:16.527
<v Chris>the Nebula mesh network,

00:34:16.547 --> 00:34:19.787
<v Chris>but the actual security is, you know, is solid. It's Nebula.

00:34:19.967 --> 00:34:22.847
<v Chris>So that's where I think there's a nuance and vibe coded stuff.

00:34:23.007 --> 00:34:25.827
<v Wes>I think actually running it too, right? Like having something,

00:34:26.027 --> 00:34:28.747
<v Wes>doing testing on the other side to make sure it does fit together.

00:34:28.947 --> 00:34:31.967
<v Wes>And like there aren't weird holes in the project, that kind of stuff adds a lot too.

00:34:32.487 --> 00:34:35.667
<v Chris>The scope of this is pretty ambitious. Like I don't think we're really communicating

00:34:35.667 --> 00:34:37.707
<v Chris>to the audience the scope of this thing.

00:34:37.867 --> 00:34:41.647
<v Chris>Like that's what impresses me, Bearded Tech, is how you managed with kids running

00:34:41.647 --> 00:34:46.687
<v Chris>around and two hours of daylight in the winter there, how you managed to create

00:34:46.687 --> 00:34:49.607
<v Chris>something this already comprehensive.

00:34:49.907 --> 00:34:53.707
<v Mumble>Well, you know, it's just I ended up spending way too much time on it than I

00:34:53.707 --> 00:34:56.547
<v Mumble>should. Dishes pile up when they probably shouldn't and, you know.

00:34:57.838 --> 00:35:03.438
<v Chris>I understand that, but I did see somewhere on your page some ideas for things

00:35:03.438 --> 00:35:06.998
<v Chris>that you have in the future, like some DNS stuff and exit node stuff.

00:35:07.098 --> 00:35:07.998
<v Chris>Can you tell me a little bit about that?

00:35:08.958 --> 00:35:13.358
<v Mumble>Yeah, and that was kind of the one big feature that Define.net didn't really

00:35:13.358 --> 00:35:17.578
<v Mumble>do for me, was being able to put in my own DNS server.

00:35:18.138 --> 00:35:23.218
<v Mumble>Right now, with my clients, I'm using Tailscale, and I have split DNS set up

00:35:23.218 --> 00:35:27.298
<v Mumble>to be able to reach all the machines inside my Tailscale network.

00:35:28.038 --> 00:35:35.858
<v Mumble>And I'm trying to integrate that into this so you can actually run your own DNS node, essentially.

00:35:36.878 --> 00:35:37.678
<v Chris>That'd be great.

00:35:37.918 --> 00:35:40.338
<v Mumble>Do like a magic DNS type setup for Nebula.

00:35:40.498 --> 00:35:44.158
<v Chris>That you control. Oh, that's so cool. It's under your own control.

00:35:44.358 --> 00:35:49.598
<v Chris>So we should also mention the front end is licensed in MIT. The back end also

00:35:49.598 --> 00:35:53.098
<v Chris>licensed in MIT. And the client is GPL version 3.

00:35:53.118 --> 00:35:58.078
<v Chris>So the entire stack is free software. if somebody else out there would like to take a look or help.

00:35:58.418 --> 00:36:02.238
<v Wes>And then I think you've started a Matrix community if people are interested

00:36:02.238 --> 00:36:04.378
<v Wes>maybe in checking it out or discussing too, right?

00:36:04.678 --> 00:36:08.778
<v Mumble>I did. I'll leave the link in the chat here.

00:36:08.838 --> 00:36:13.158
<v Mumble>And also I've got a documentation site up at nebulacdr.com.

00:36:13.438 --> 00:36:18.078
<v Mumble>And I've got a node live right now that people can go and bang on and try out

00:36:18.078 --> 00:36:23.058
<v Mumble>and test out the actual software itself at nebulacdr.net.

00:36:23.218 --> 00:36:24.378
<v Mumble>And I'll leave that in the chat as well.

00:36:24.538 --> 00:36:25.158
<v Wes>Oh, fun.

00:36:25.158 --> 00:36:27.718
<v Chris>It's up right now. You're not going to leave it up for too long.

00:36:28.118 --> 00:36:29.298
<v Chris>So it depends where you're listening to this.

00:36:29.398 --> 00:36:35.058
<v Chris>But nebulascdr.net if you want to see a live demo of it. Isn't that great? Isn't that?

00:36:35.058 --> 00:36:35.678
<v Wes>This is so cool.

00:36:35.758 --> 00:36:38.298
<v Chris>Weirded Tech, thank you for taking some time on your Sunday with the family

00:36:38.298 --> 00:36:41.458
<v Chris>running around and all of that to tell us about this. We just think this is

00:36:41.458 --> 00:36:42.898
<v Chris>such a cool project. Well done, sir.

00:36:44.157 --> 00:36:46.617
<v Mumble>Thank you very much. I appreciate it, Chris. You guys have a great day.

00:36:46.857 --> 00:36:49.977
<v Chris>Yeah, thank you. Thank you very much. And we'll put a link to all that in the

00:36:49.977 --> 00:36:54.317
<v Chris>show notes. And if you're working on a project like this, drop us a note.

00:36:54.557 --> 00:36:58.457
<v Chris>Tell us about it. Or come in the Matrix room. You know, that's West Spotted

00:36:58.457 --> 00:37:01.037
<v Chris>Bearded Tech was talking about this in our Matrix chat room.

00:37:01.117 --> 00:37:02.137
<v Chris>And then we decided to pull it

00:37:02.137 --> 00:37:05.297
<v Chris>forward because we just love seeing the community build tools like this.

00:37:05.397 --> 00:37:07.037
<v Wes>Y'all are so smart and you build awesome stuff.

00:37:10.837 --> 00:37:16.417
<v Brent>Well, we got a little bit of feedback this week about an ad that was playing at the start of the show.

00:37:17.117 --> 00:37:19.277
<v Chris>Did you do that? Was that you?

00:37:19.597 --> 00:37:20.357
<v Wes>That was not me.

00:37:20.477 --> 00:37:20.817
<v Chris>It was me.

00:37:20.877 --> 00:37:24.677
<v Wes>Well, I might have been involved in some of the pieces, but not that part.

00:37:25.137 --> 00:37:31.257
<v Chris>Yeah, our bad. So that was intentional, but not yet, I guess is the way to put

00:37:31.257 --> 00:37:36.557
<v Chris>that. I was going to let you know about I have made a decision behind the scenes

00:37:36.557 --> 00:37:38.497
<v Chris>to change the approach to ads.

00:37:39.759 --> 00:37:43.379
<v Chris>I guess in full disclosure, like this, the situation is, is that I fought this

00:37:43.379 --> 00:37:44.579
<v Chris>as long as I possibly could.

00:37:46.559 --> 00:37:50.199
<v Chris>I have not been paid for last month. I'm not going to get paid this month and

00:37:50.199 --> 00:37:51.379
<v Chris>I might not get paid next month.

00:37:51.459 --> 00:37:55.759
<v Chris>So I may be going three months of the year so far without getting paid, which is okay.

00:37:55.879 --> 00:38:00.219
<v Chris>It's like, I didn't do this to get rich and the members are keeping the infrastructure

00:38:00.219 --> 00:38:04.539
<v Chris>paid for and the boosters are, you know, sometimes I get a sandwich.

00:38:04.979 --> 00:38:07.959
<v Chris>So it's good and it's okay, but I have to make some changes.

00:38:07.959 --> 00:38:14.639
<v Chris>And so what I've decided to do is work with a group that is fairly aligned with the way I look at ads.

00:38:14.879 --> 00:38:20.579
<v Chris>It has to be an ad that – for a product that I like, I get right of first refusal.

00:38:22.339 --> 00:38:26.119
<v Chris>And they really work hard to make sure that if it's a company that I'm going

00:38:26.119 --> 00:38:29.279
<v Chris>to do sponsorship with, that I get a chance to try the product first before

00:38:29.279 --> 00:38:30.359
<v Chris>it goes on air and all of that.

00:38:30.659 --> 00:38:34.239
<v Chris>So I like where we're going. And part of that, because we are in a very bad

00:38:34.239 --> 00:38:39.199
<v Chris>situation, the reality is, is I've just fought the change in the ad market for

00:38:39.199 --> 00:38:40.359
<v Chris>as long as I possibly can.

00:38:41.079 --> 00:38:44.519
<v Chris>And since COVID really, it's not really anything to do with COVID,

00:38:44.519 --> 00:38:48.099
<v Chris>but the way the market dynamics changed with the increase in rates is that it

00:38:48.099 --> 00:38:50.539
<v Chris>became more expensive to do direct marketing.

00:38:50.719 --> 00:38:53.279
<v Chris>It just, it was, it was an area that companies needed efficiency.

00:38:53.919 --> 00:38:57.799
<v Chris>And I went on about this for years when it happened, so I don't need to recap all of that.

00:38:57.939 --> 00:39:01.859
<v Chris>But the structural changes in the market are such that companies no longer have

00:39:01.859 --> 00:39:05.759
<v Chris>time to engage in a three-month conversation with a single podcaster to do a

00:39:05.759 --> 00:39:08.039
<v Chris>bespoke ad agreement for one quarter.

00:39:08.279 --> 00:39:11.139
<v Wes>They're used to the YouTube model, right, where they can just do ad buys that

00:39:11.139 --> 00:39:12.679
<v Wes>are targeted or Facebook or –.

00:39:12.679 --> 00:39:13.439
<v Chris>They want to buy –,

00:39:14.834 --> 00:39:19.374
<v Chris>large markets at a time and so there are now companies that sit between the

00:39:19.374 --> 00:39:23.074
<v Chris>ad buyers and the podcasters and i i've been working to try to find a good one

00:39:23.074 --> 00:39:27.994
<v Chris>and i have at great personal expense walked this line for as long as i possibly

00:39:27.994 --> 00:39:29.174
<v Chris>could to make sure it's gone right

00:39:29.614 --> 00:39:34.794
<v Chris>and because we have no uh ads beyond defined networking right now who is the

00:39:34.794 --> 00:39:38.674
<v Chris>only sponsor we have at the moment because they were you know by my model the

00:39:38.674 --> 00:39:41.794
<v Chris>only ones i was willing to have on and i know that you have an expectation and

00:39:41.794 --> 00:39:43.914
<v Chris>one of the reasons we've gone value for value is so i could say no.

00:39:44.374 --> 00:39:46.114
<v Chris>And I have been saying no for a very long time.

00:39:46.854 --> 00:39:50.894
<v Chris>And so I think we have found a middle ground here, but essentially I'm going

00:39:50.894 --> 00:39:52.194
<v Chris>to, I'm going to let them cook.

00:39:52.434 --> 00:39:55.154
<v Chris>And one of the things that we're going to do, why we have no other sponsors

00:39:55.154 --> 00:39:59.074
<v Chris>on board to try to get some survival money is we will play an ad at the beginning

00:39:59.074 --> 00:40:00.754
<v Chris>for some locations at some times.

00:40:01.014 --> 00:40:03.814
<v Chris>I expected to roll that out over the next couple of weeks, but we need to move

00:40:03.814 --> 00:40:04.974
<v Chris>quick because we're going to scale.

00:40:05.494 --> 00:40:09.934
<v Chris>And they communicated the expectation to me. I just, I missed it. It was my bad.

00:40:10.314 --> 00:40:14.094
<v Chris>So I will own that because i wanted to communicate it to you beforehand but

00:40:14.094 --> 00:40:15.734
<v Chris>we're busy and uh that slipped,

00:40:16.434 --> 00:40:19.334
<v Chris>so uh the plan is is to have them find

00:40:19.334 --> 00:40:22.574
<v Chris>some good sponsors that can bring on you know some good reoccurring revenue

00:40:22.574 --> 00:40:25.774
<v Chris>to make the show sustainable so i can get paid again so we can keep going and

00:40:25.774 --> 00:40:29.994
<v Chris>invest in more production and uh hopefully over time they will do that but it

00:40:29.994 --> 00:40:33.314
<v Chris>will take a little while even with uh working with a group that specializes

00:40:33.314 --> 00:40:36.754
<v Chris>in this it still takes time to find the right sponsor if you have standards

00:40:36.754 --> 00:40:41.574
<v Chris>it just takes time and so the dynamic ad's running and And that's now that that seal is broken,

00:40:41.754 --> 00:40:46.834
<v Chris>I'm likely to leave it for a while just because we have such a gap and it's

00:40:46.834 --> 00:40:50.814
<v Chris>not, I don't really have any of the details on that in terms of.

00:40:52.145 --> 00:40:54.305
<v Chris>What I should expect or how it's going to perform or anything like that because

00:40:54.305 --> 00:40:55.585
<v Chris>I've never done anything like this before.

00:40:56.045 --> 00:41:00.825
<v Chris>But that's where we're at now. And I'm hopeful that if people seem to have an

00:41:00.825 --> 00:41:05.485
<v Chris>allergic reaction to it, they'll consider becoming a member at linuxunplugged.com slash membership.

00:41:05.485 --> 00:41:08.865
<v Chris>We'd often do discounts and we have a fantastic ad-free version of the show,

00:41:09.365 --> 00:41:12.785
<v Chris>that editor Drew puts together, uh, or you get access to the bootleg.

00:41:13.065 --> 00:41:18.305
<v Chris>And if you don't mind the ads, well, then you can help monetize just by listening to it and, um,

00:41:18.805 --> 00:41:23.065
<v Chris>support the show that way and i think a lot of you don't mind because um ironically

00:41:23.065 --> 00:41:27.365
<v Chris>when we were purchased by linux academy and we dropped all ads from all shows

00:41:27.365 --> 00:41:34.205
<v Chris>we never got a single comment about it nobody said anything the wildest thing

00:41:34.205 --> 00:41:36.645
<v Chris>like it was the biggest issue for us we thought it was this massive unlock,

00:41:38.225 --> 00:41:40.645
<v Chris>we thought it was this huge thing we were going ad free and.

00:41:40.645 --> 00:41:42.365
<v Wes>Behind the scenes i mean it helped a lot with some of.

00:41:42.365 --> 00:41:44.605
<v Chris>Our production stuff yeah oh yeah massive time saver,

00:41:46.419 --> 00:41:49.279
<v Chris>nobody cared really so that was a big lesson

00:41:49.279 --> 00:41:52.419
<v Chris>um and uh i think also we'll we'll

00:41:52.419 --> 00:41:55.799
<v Chris>still we'll still do a better job than uh than the

00:41:55.799 --> 00:41:58.819
<v Chris>average bear out there it's a wild world and video

00:41:58.819 --> 00:42:01.599
<v Chris>and all that is also eating at it so that uh i'm

00:42:01.599 --> 00:42:05.219
<v Chris>sorry that wasn't communicated ahead of time that was my intention and um

00:42:05.219 --> 00:42:08.179
<v Chris>we definitely still need the support more than ever because

00:42:08.179 --> 00:42:11.139
<v Chris>all these things take time and uh it

00:42:11.139 --> 00:42:13.959
<v Chris>was really your support that made it possible to survive

00:42:13.959 --> 00:42:17.379
<v Chris>this long without having to compromise two years

00:42:17.379 --> 00:42:20.539
<v Chris>ago really because this is this has been something

00:42:20.539 --> 00:42:23.759
<v Chris>developing since 2019 since 2020

00:42:23.759 --> 00:42:26.659
<v Chris>something we talk about frequently behind the scenes something

00:42:26.659 --> 00:42:30.919
<v Chris>i've you know i've talked a lot about on the launch i've talked about it on

00:42:30.919 --> 00:42:37.439
<v Chris>office hours we've talked about it and um so this is where we're at but we will

00:42:37.439 --> 00:42:41.299
<v Chris>continue on we've got another you know we've got another 12 20 years in us or

00:42:41.299 --> 00:42:45.639
<v Chris>so but we just got to make sure we adapt and this is the state of the internet as it were.

00:42:46.139 --> 00:42:49.139
<v Chris>But I do hope that those of you who like I say have a problem with it will consider

00:42:49.139 --> 00:42:51.719
<v Chris>a membership because the show quality remains high.

00:42:51.839 --> 00:42:54.779
<v Chris>In fact, hopefully this continues. Helps us keep going.

00:42:55.599 --> 00:42:58.079
<v Chris>But I'm sorry we didn't communicate it differently. That's my regret.

00:42:58.239 --> 00:42:59.499
<v Wes>It was not supposed to be a surprise.

00:42:59.659 --> 00:43:03.559
<v Chris>Yeah, it wasn't meant to surprise you. It was, I was also surprised. But that was on me.

00:43:04.079 --> 00:43:09.379
<v Chris>It was communicated to me correctly. I just am a busy guy. And emails are easy to miss sometimes.

00:43:09.839 --> 00:43:12.599
<v Chris>I gotta get something on that that's watching that inbox. But I'm not ready

00:43:12.599 --> 00:43:15.859
<v Chris>to do it just yet. Just, not just yet but one of these days,

00:43:18.559 --> 00:43:22.199
<v Chris>but gentlemen we do have some great support this week and this,

00:43:23.299 --> 00:43:27.239
<v Chris>this is the wild thing about the value for value system is it's such a swinger

00:43:27.239 --> 00:43:32.079
<v Chris>well we went from like oh boy this is kind of going to be a rough one to like

00:43:32.079 --> 00:43:36.419
<v Chris>one of the best weeks in the shows it's in the year so far for the show so let's

00:43:36.419 --> 00:43:38.159
<v Chris>kick it off with our baller booster,

00:43:41.409 --> 00:43:50.049
<v Chris>Because that is the one, the only hybrid sarcasm, and he comes in with one million Satoshis!

00:43:58.509 --> 00:44:01.769
<v Chris>Yeah, I said one million Satoshis!

00:44:02.029 --> 00:44:03.489
<v Brent>Are you sure that's not a typo?

00:44:05.829 --> 00:44:07.469
<v Wes>Hey, my script doesn't make typos.

00:44:07.609 --> 00:44:09.769
<v Chris>That's got to be almost the entire appetizer budget right there,

00:44:09.849 --> 00:44:13.409
<v Chris>I think. thank you hybrid sarcasm I don't think.

00:44:13.409 --> 00:44:14.409
<v Wes>Baller quite covers it.

00:44:14.409 --> 00:44:20.029
<v Chris>Yeah he says enjoy California boys well we will boy I tell you what like,

00:44:21.329 --> 00:44:27.249
<v Chris>this boost came in this morning while we were in our group chat and I was having a mild panic attack,

00:44:28.029 --> 00:44:33.689
<v Chris>about expenses and this landed it changed your mood completely it totally did

00:44:33.689 --> 00:44:37.209
<v Chris>it totally did it really was something thank you hybrid sarcasm thank you very

00:44:37.209 --> 00:44:40.449
<v Chris>very much appreciate you. You are a good guy.

00:44:43.709 --> 00:44:47.229
<v Wes>Not the one comes in with 68,000 says.

00:44:47.409 --> 00:44:47.649
<v Chris>Alright!

00:44:50.229 --> 00:44:52.209
<v Chris>Also, not bad. Not bad at all.

00:44:54.629 --> 00:44:57.729
<v Wes>Keep up the good work. A little something to help with the trip.

00:44:57.849 --> 00:45:01.429
<v Chris>He gets it. Thank you very much. Right? We're going to turn that right around

00:45:01.429 --> 00:45:05.749
<v Chris>and spend it on your fellow listeners. So thank you very much for this one. It's great.

00:45:05.749 --> 00:45:10.929
<v Brent>Well, the dude is abiding with 22,222 sets.

00:45:13.972 --> 00:45:19.512
<v Brent>I've never used an agent locally. The first I want to try is the Home Assistant MCP.

00:45:19.752 --> 00:45:23.472
<v Brent>I've always used the web-based versions of ChatGepity, Claude,

00:45:23.552 --> 00:45:28.552
<v Brent>or Gemini, and I'm feeling kind of left behind. So here's a little something for that trip.

00:45:29.372 --> 00:45:35.992
<v Chris>Thank you, sir. Appreciate that very much. You know, this is a great question

00:45:35.992 --> 00:45:40.232
<v Chris>because you can tell he's locked in to the change.

00:45:40.532 --> 00:45:45.592
<v Chris>The change is like they've gone from novelty chat bot that does theatric typing

00:45:45.592 --> 00:45:51.772
<v Chris>to like actual useful open source agent that's using the LLM to leverage intelligence.

00:45:52.032 --> 00:45:54.172
<v Wes>I just set this MCP up over the weekend.

00:45:54.352 --> 00:45:54.992
<v Chris>It's so good.

00:45:55.052 --> 00:45:55.572
<v Wes>It's so good.

00:45:55.652 --> 00:45:56.592
<v Chris>It's so good.

00:45:57.452 --> 00:46:02.172
<v Wes>It doesn't quite do everything, so I think I also had it do some direct API

00:46:02.172 --> 00:46:04.392
<v Wes>access, but it has a lot of stuff.

00:46:04.532 --> 00:46:08.172
<v Chris>It's great for working with automations. The MCP is the way you want to go if

00:46:08.172 --> 00:46:11.052
<v Chris>you're working and troubleshooting your automations. Two quick examples.

00:46:11.292 --> 00:46:15.712
<v Chris>So I used the API with an agent because there was electrical work being done

00:46:15.712 --> 00:46:18.712
<v Chris>down the street from me, and I expected the power to be cut,

00:46:18.852 --> 00:46:23.312
<v Chris>but I needed to go to the studio. So I had my agent check in every two minutes.

00:46:23.632 --> 00:46:28.032
<v Chris>And if the power went out, I had the agent cut all the electric heat off and

00:46:28.032 --> 00:46:29.392
<v Chris>then send me a telegram message.

00:46:30.012 --> 00:46:33.552
<v Chris>And then if the then I had if the power remained off for an hour,

00:46:33.772 --> 00:46:36.392
<v Chris>turn off the remaining systems. Right. Like I had like this cascade system.

00:46:36.572 --> 00:46:38.832
<v Chris>I could have built an automation for that in Home Assistant,

00:46:38.872 --> 00:46:42.692
<v Chris>but I did it in 30 seconds with one prompt as I was going out the door realizing

00:46:42.692 --> 00:46:43.492
<v Chris>this is going to be an issue.

00:46:44.649 --> 00:46:47.809
<v Chris>So that's one way you can use it. I also, just using the MCP,

00:46:47.929 --> 00:46:48.829
<v Chris>so that was using the API.

00:46:49.469 --> 00:46:53.889
<v Chris>Using the MCP is really great because I have automations that have probably

00:46:53.889 --> 00:46:56.269
<v Chris>been sitting around for three, four, five years at this point.

00:46:56.389 --> 00:46:58.709
<v Chris>I built them a long, long time ago and things have changed.

00:46:58.969 --> 00:47:03.789
<v Chris>So I had my agent go in and audit the top five most frequently fired automations

00:47:03.789 --> 00:47:06.209
<v Chris>and review them for logic or improvements.

00:47:06.489 --> 00:47:10.569
<v Chris>And with each one, it found something small to major that I could do to improve them.

00:47:11.149 --> 00:47:14.149
<v Chris>And it's just because I haven't looked at them in so long. and that was done

00:47:14.149 --> 00:47:17.589
<v Chris>via the mcp and it's really nice i didn't you know i didn't didn't and then

00:47:17.589 --> 00:47:22.069
<v Chris>then you know i just wrote okay do this do this all right go fix that and boop boop goes off and

00:47:22.489 --> 00:47:27.269
<v Chris>fixes it all up it's really it really is a great unlock for home assistant because

00:47:27.269 --> 00:47:29.969
<v Chris>home assistant is essentially an api for your entire home.

00:47:29.969 --> 00:47:33.369
<v Wes>I will also say uh the fomo feeling can be very real,

00:47:33.989 --> 00:47:37.209
<v Wes>don't don't feel too bad about that but also don't let it you know it's good

00:47:37.209 --> 00:47:40.169
<v Wes>to try and be curious but don't you don't have to go too crazy because things

00:47:40.169 --> 00:47:44.829
<v Wes>are moving fast and like you can over invest in it and waste a lot of time on

00:47:44.829 --> 00:47:46.309
<v Wes>stuff that's just going to change out from under YouTube.

00:47:47.589 --> 00:47:49.789
<v Chris>I mean, Home Assistant API and MCP is pretty solid.

00:47:49.929 --> 00:47:51.349
<v Wes>Yeah, that's one of the more solid parts of the whole thing, really.

00:47:51.429 --> 00:47:56.169
<v Chris>But that is good advice. That is good advice. Tomato comes in with another row

00:47:56.169 --> 00:47:58.869
<v Chris>of McDucks, 22,222 sats.

00:48:00.249 --> 00:48:04.189
<v Chris>Looking forward to scale in Planet Nix coverage. Here's some sats to help with the Travel Boys.

00:48:04.349 --> 00:48:08.289
<v Chris>If you see any of the Nix or BSD people down there, I'd love to hear about it.

00:48:08.789 --> 00:48:11.889
<v Chris>I find that particular combination to be rather intriguing.

00:48:12.009 --> 00:48:15.509
<v Wes>Yeah, the idea of using Nix on top of a BSD, okay, yeah.

00:48:15.729 --> 00:48:20.429
<v Chris>Might sound insane, but then again, but I have done that exact thing in the

00:48:20.429 --> 00:48:22.029
<v Chris>past with a Perl script. Oh.

00:48:22.429 --> 00:48:25.069
<v Wes>Yeah, right, I mean, FreeBSD, I mean, all these Bs, they're nice,

00:48:25.169 --> 00:48:29.609
<v Wes>tight systems, right, clean, so if you get a declarative interface on top, it could be very nice.

00:48:29.869 --> 00:48:33.209
<v Chris>Yeah. Oh. I mean, I would definitely play with that.

00:48:33.329 --> 00:48:37.209
<v Chris>I mean, it makes immutable distros, got all these packages available for you.

00:48:37.309 --> 00:48:39.409
<v Chris>It'd really probably be now down to what could you actually install.

00:48:41.520 --> 00:48:46.000
<v Wes>Well, Distro Stew comes in with 13,149 SADs.

00:48:47.360 --> 00:48:49.940
<v Wes>See you at scale. Here's some juice to get you there.

00:48:50.040 --> 00:48:50.540
<v Chris>Oh, thank you.

00:48:50.700 --> 00:48:53.640
<v Wes>I'm bummed to miss the meetup for the third year in a row.

00:48:54.040 --> 00:48:58.020
<v Wes>Since I'll be giving an upscale talk on pen testing. Nick's the world.

00:48:58.240 --> 00:48:59.040
<v Wes>Well, that's a great excuse.

00:48:59.180 --> 00:49:00.240
<v Chris>That is a good reason, though.

00:49:00.400 --> 00:49:02.800
<v Wes>I'm sure we'll bump into each other some other time, though.

00:49:02.940 --> 00:49:04.280
<v Chris>I hope so. Yeah, I hope so.

00:49:04.360 --> 00:49:05.380
<v Wes>Because it was great seeing you before.

00:49:05.580 --> 00:49:07.760
<v Chris>I want to see you again. And I always love it when people, like,

00:49:07.820 --> 00:49:11.060
<v Chris>they remember, like, oh, I should introduce with my handle. Right?

00:49:11.060 --> 00:49:13.440
<v Chris>Oh, no, I'm Distro Stew. Like, oh, Distro Stew!

00:49:15.320 --> 00:49:17.460
<v Chris>All right, looking forward to that.

00:49:18.060 --> 00:49:22.400
<v Brent>I believe we have a new booster here, the facial hair with 4,000 sets.

00:49:24.304 --> 00:49:25.484
<v Chris>That's good. I like that.

00:49:26.884 --> 00:49:31.224
<v Brent>Apologies for the delay in response. These sats are freshly mined, hence the delay.

00:49:31.544 --> 00:49:36.384
<v Brent>I wanted to follow up on the D&D and open source question.

00:49:36.924 --> 00:49:40.904
<v Brent>It works because open source removes barriers to entry, whether it's physical,

00:49:41.224 --> 00:49:42.424
<v Brent>financial, or otherwise.

00:49:42.664 --> 00:49:45.004
<v Brent>It allows anyone to join us at the table.

00:49:45.264 --> 00:49:48.644
<v Brent>This is also my bump for JB D&D special sometime.

00:49:49.424 --> 00:49:50.684
<v Wes>That does sound like a lot of fun.

00:49:50.684 --> 00:49:53.864
<v Chris>I kind of like that idea. I could see doing a member special.

00:49:54.304 --> 00:49:56.944
<v Chris>Maybe or something, because I don't know if anybody would actually want to listen to that.

00:49:57.104 --> 00:50:01.364
<v Wes>Find an audience member who's an experienced DM, perhaps a volunteer here.

00:50:01.424 --> 00:50:04.204
<v Chris>It'd be great on a trip. It'd be great on a trip to do like a little D&D meetup

00:50:04.204 --> 00:50:06.784
<v Chris>where somebody teaches me how to play, because I've never played before.

00:50:07.384 --> 00:50:09.884
<v Chris>Maybe I could play like a game, a video game version to learn up.

00:50:09.964 --> 00:50:11.484
<v Chris>I don't know. But that's a great idea. Thanks, Facial Hair.

00:50:11.724 --> 00:50:14.864
<v Chris>Thanks if that's your first boost, too. Really do appreciate you so much time.

00:50:15.104 --> 00:50:16.504
<v Chris>And mine and them sats directly.

00:50:16.684 --> 00:50:17.004
<v Wes>Fresh.

00:50:17.324 --> 00:50:21.024
<v Chris>Well done. Well, TR Belly comes in. That's not how you say it at all,

00:50:21.064 --> 00:50:23.584
<v Chris>but I like it. 15,000 sats.

00:50:24.884 --> 00:50:29.204
<v Chris>I'm going to say it's TRSLB. No? What do you think?

00:50:31.104 --> 00:50:31.624
<v Wes>TRSLB.

00:50:31.764 --> 00:50:36.044
<v Chris>There you go. 15,000 sats. Point your car south to the sun, away from the atmospheric

00:50:36.044 --> 00:50:39.004
<v Chris>river and the polar vortex. Yeah, looking forward to that.

00:50:39.264 --> 00:50:40.344
<v Brent>No lobes down there.

00:50:40.624 --> 00:50:43.944
<v Chris>It's going to be like 75 degrees and sunny in Pasadena.

00:50:44.244 --> 00:50:45.244
<v Wes>That sounds impossible.

00:50:45.364 --> 00:50:46.584
<v Chris>That sounds so wonderful.

00:50:47.064 --> 00:50:52.104
<v Wes>Well, WH-20250 comes in with 2,000 sats.

00:50:54.885 --> 00:50:59.045
<v Wes>Oh, this one is for Brent. Hey, Brent, I'm curious as to why you didn't try

00:50:59.045 --> 00:51:01.705
<v Wes>Unraid since you tried TrueNAS Scale.

00:51:01.865 --> 00:51:02.625
<v Chris>I was wondering that, too.

00:51:02.825 --> 00:51:06.185
<v Wes>I haven't tried it yet, but Unraid does have an OpenClaw container template

00:51:06.185 --> 00:51:07.865
<v Wes>in the community apps ready to go.

00:51:08.045 --> 00:51:11.665
<v Wes>One install, and you can have your agent do the rest of the server setup for you.

00:51:13.025 --> 00:51:14.485
<v Wes>You know, we didn't solicit this boost.

00:51:14.925 --> 00:51:16.545
<v Brent>This is a very good question.

00:51:17.005 --> 00:51:17.905
<v Chris>Very, very good question.

00:51:18.285 --> 00:51:23.525
<v Brent>The main reason is that for years now, I've had some close friends tell me, you have to do TrueNAS.

00:51:23.525 --> 00:51:27.765
<v Brent>you have to do hey can i back up my stuff to yours across the ocean using trunas

00:51:27.765 --> 00:51:33.265
<v Brent>etc so that's partly why i leaned that direction and also i mean i probably

00:51:33.265 --> 00:51:37.205
<v Brent>should but i have didn't haven't had time to try every single offering but unraid

00:51:37.205 --> 00:51:42.025
<v Brent>is certainly at the top of the list for the round two since everybody has been asked in this question.

00:51:42.025 --> 00:51:47.025
<v Chris>I think out of the two and they were a former sponsor no longer sponsor i would

00:51:47.025 --> 00:51:51.345
<v Chris>i would strongly consider unraid because they've done a lot of improvements

00:51:51.345 --> 00:51:52.645
<v Chris>in the last version with the UI.

00:51:52.865 --> 00:51:56.025
<v Chris>They have a really nice API now, which has all kinds of advantages,

00:51:56.025 --> 00:51:57.305
<v Chris>more than ever, I realize now.

00:51:57.685 --> 00:52:03.025
<v Chris>And they have a massive up-to-date application library that makes it super easy to deploy stuff.

00:52:03.045 --> 00:52:05.985
<v Chris>And I like all those things. And it's Linux-based, which I also like.

00:52:06.925 --> 00:52:11.945
<v Chris>So I say plus one here to WH is boost. I think Unraid is worth a consideration too.

00:52:12.145 --> 00:52:14.025
<v Chris>I don't want to speak up because everybody thought I'd be shilling,

00:52:14.165 --> 00:52:17.645
<v Chris>but that's my honest opinion. I just gave away the milk for free.

00:52:17.645 --> 00:52:21.765
<v Brent>Well, Spooky Satcom came in with 2,000 sats.

00:52:22.894 --> 00:52:27.034
<v Brent>There's no message on this one, just a little bit of value. So thank you very much.

00:52:27.694 --> 00:52:31.354
<v Chris>That's always appreciated very much. Thank you much, Buki. Good to hear from

00:52:31.354 --> 00:52:35.254
<v Chris>you. Hey, there's Gene Bean coming in with 2,666 sats.

00:52:36.434 --> 00:52:39.974
<v Chris>It sure will. He says, I'm sad that advertising is so lean right now that you've

00:52:39.974 --> 00:52:41.794
<v Chris>had to start using pre- and post-roll ads.

00:52:41.934 --> 00:52:44.434
<v Chris>But I'm also glad that you've got the option to get you through.

00:52:44.634 --> 00:52:46.674
<v Chris>Here's to doing what you need to get things running.

00:52:47.094 --> 00:52:50.594
<v Chris>My seven-year-old son wanted to tell you that he really likes the sound effects,

00:52:50.694 --> 00:52:53.294
<v Chris>especially the Tetris one. All right.

00:52:53.454 --> 00:52:54.194
<v Wes>Thanks for sharing.

00:52:54.634 --> 00:52:57.674
<v Chris>Do you all have any suggestions for local models that work well with open code

00:52:57.674 --> 00:53:00.754
<v Chris>that I can run, that can run tools? That's a great question, Gene.

00:53:01.034 --> 00:53:01.174
<v Wes>That is, yeah.

00:53:01.254 --> 00:53:03.674
<v Chris>That's the key question you need to be asking, buddy. Can they run tools?

00:53:03.874 --> 00:53:10.454
<v Chris>I have a Mac with an M3 Pro and 18 gigs of RAM and a several-year-old Lenovo P52 with an M3.

00:53:10.454 --> 00:53:12.334
<v Wes>Ooh, fun. One of the P series.

00:53:12.994 --> 00:53:17.554
<v Chris>I wonder how far he could get with MiniMac's 2.5.

00:53:18.712 --> 00:53:22.972
<v Chris>Probably needs to look more at Quell, right? Quen or whatever it is.

00:53:23.072 --> 00:53:23.852
<v Wes>Yeah, that might be.

00:53:24.052 --> 00:53:26.252
<v Chris>I think Quen's probably, because they have a couple of versions of Quen that are.

00:53:26.632 --> 00:53:28.612
<v Wes>Yeah, it's less, can you fit it in whatever.

00:53:29.052 --> 00:53:32.112
<v Chris>18 gigs of RAM is very tight, but it might be possible with Quen.

00:53:33.092 --> 00:53:37.472
<v Chris>So Gene, I think right now, you might be a little tight for really good reasoning,

00:53:37.732 --> 00:53:42.792
<v Chris>but you have a lot of room for like vector memory embedding and things like that.

00:53:42.852 --> 00:53:45.892
<v Chris>So if you wanted to have LLMs take care of local transcription,

00:53:46.112 --> 00:53:49.952
<v Chris>like with Whisper, and you wanted to have all of your memory managed with an

00:53:49.952 --> 00:53:53.932
<v Chris>LM that does embedded memory with vectorizing, you could do all of that with

00:53:53.932 --> 00:53:55.872
<v Chris>that hardware very successfully.

00:53:56.072 --> 00:54:00.492
<v Chris>And then you could punt some of the more challenging stuff to a larger frontier

00:54:00.492 --> 00:54:04.412
<v Chris>model through something like Open Router or a direct API subscription.

00:54:04.652 --> 00:54:06.652
<v Wes>Yeah, because there's oftentimes stuff where you might be able to run a model,

00:54:06.732 --> 00:54:09.652
<v Wes>say, that can do work on individual coding tests pretty well,

00:54:09.752 --> 00:54:12.952
<v Wes>but isn't quite up to complicated tool call and orchestrating other agents.

00:54:13.152 --> 00:54:16.712
<v Wes>So sometimes it's a mixture of models that fill the whole thing out.

00:54:17.032 --> 00:54:20.832
<v Chris>And so another way to put that, right, is you could have the frontier model

00:54:20.832 --> 00:54:24.892
<v Chris>running the orchestration agent who is watching the quality of the output,

00:54:25.372 --> 00:54:26.312
<v Chris>monitoring the sub-agent.

00:54:26.392 --> 00:54:30.792
<v Chris>And the sub-agent could be using like a Quinn-optimized coding smaller model.

00:54:30.972 --> 00:54:32.052
<v Wes>Or a DeepSeq or something.

00:54:32.212 --> 00:54:34.872
<v Chris>Yeah, or a DeepSeq. Maybe DeepSeq 4. It could come out any day now.

00:54:35.092 --> 00:54:39.192
<v Chris>And that maybe isn't quite as comprehensive with tool calls and all of that,

00:54:39.352 --> 00:54:42.952
<v Chris>but could do that specific job. And then your higher-end model is actually watching

00:54:42.952 --> 00:54:47.172
<v Chris>the output and managing it. And that actually is a pretty token efficient way to go about it.

00:54:47.512 --> 00:54:51.092
<v Chris>But hopefully we'll have more options, especially as we get more hardware built

00:54:51.092 --> 00:54:53.492
<v Chris>for this and as models get down smaller and smaller and smaller.

00:54:53.632 --> 00:54:54.952
<v Wes>Let us know what you tried, how it works.

00:54:55.032 --> 00:54:57.372
<v Chris>Thanks for the boost. Yeah, keep us posted. That's a good one.

00:54:58.552 --> 00:55:01.792
<v Wes>Antoine comes in with 2,468 sets.

00:55:03.925 --> 00:55:07.565
<v Wes>In case you have not seen this yet, someone came up with a home assistant voice

00:55:07.565 --> 00:55:10.545
<v Wes>control that is a Star Trek comms badge.

00:55:10.745 --> 00:55:10.885
<v Chris>Want?

00:55:11.205 --> 00:55:14.845
<v Wes>There's an instructable for it. And we get a link. Did you like this?

00:55:14.845 --> 00:55:18.485
<v Wes>That's double the value. I have not yet. I'm pulling it up right now.

00:55:18.525 --> 00:55:22.105
<v Chris>So I think what they're doing that's pretty clever with this is it looks like the comm badge from TNG.

00:55:22.405 --> 00:55:25.445
<v Chris>Ooh, yes it does. And I think the front part of the comm badge,

00:55:25.645 --> 00:55:27.845
<v Chris>I don't know how much is actually happening there.

00:55:28.045 --> 00:55:31.105
<v Chris>Because there's a little computer that I think you put under your shirt on the

00:55:31.105 --> 00:55:34.065
<v Chris>back end. And then they maybe, I think, magnetically clip together through the

00:55:34.065 --> 00:55:35.865
<v Chris>shirt. That could totally work. And so you have.

00:55:35.865 --> 00:55:37.325
<v Wes>A- Like a tiny little ESP or something?

00:55:37.405 --> 00:55:41.265
<v Chris>Yeah, exactly. Yeah, a little Arduino kind of thing with Wi-Fi.

00:55:42.385 --> 00:55:48.025
<v Chris>And, you know, the little tiny ability to essentially run a home assistant assistant,

00:55:48.665 --> 00:55:52.165
<v Chris>and use the home assistant conversational pipeline through your Star Trek comm badge.

00:55:52.905 --> 00:55:56.165
<v Chris>Now, obviously, the use case here, gentlemen, I don't think I need to say it.

00:55:56.245 --> 00:55:58.065
<v Chris>But in case you're listening, you're like, why the hell would you use this?

00:55:58.065 --> 00:56:01.945
<v Chris>So that way you can walk around your house, slap your comm badge and order the

00:56:01.945 --> 00:56:03.265
<v Chris>lights to turn on or whatever.

00:56:03.465 --> 00:56:06.545
<v Chris>Right. That's that's the end state here. Slap in your chest.

00:56:06.705 --> 00:56:08.525
<v Wes>And see, this could work with some models. Gene beans running.

00:56:11.765 --> 00:56:15.985
<v Chris>I want I want. Thanks, Antoine. Appreciate that. And.

00:56:18.085 --> 00:56:20.985
<v Chris>All right. Well, Bobby pins here with 10,000 sets.

00:56:23.124 --> 00:56:27.444
<v Chris>Well, I'm just about ready to finally dive into Nix. My question for you nerds,

00:56:27.584 --> 00:56:33.704
<v Chris>Nix nerds, should I start with a general use PC and Hypervibe or an appliance

00:56:33.704 --> 00:56:37.364
<v Chris>level media server or the coveted Nix Bitcoin node?

00:56:38.444 --> 00:56:41.344
<v Wes>I probably wouldn't start with that one. I mean, it might depend on how familiar

00:56:41.344 --> 00:56:44.044
<v Wes>you are with the Bitcoin stuff. If you've run Bitcoin nodes before,

00:56:44.164 --> 00:56:45.064
<v Wes>then it might be totally doable.

00:56:45.284 --> 00:56:48.944
<v Wes>If you're learning both running a node and using Nix to do so,

00:56:49.044 --> 00:56:50.064
<v Wes>that's a lot to do at once.

00:56:50.444 --> 00:56:53.044
<v Wes>So maybe the media server is a pretty attractive one.

00:56:53.044 --> 00:56:54.304
<v Chris>I was leaning that way.

00:56:54.444 --> 00:56:54.524
<v Brent>Too.

00:56:55.004 --> 00:56:56.124
<v Chris>Yeah? Why?

00:56:56.584 --> 00:57:00.064
<v Brent>Well, because it's something that you can build up slowly.

00:57:01.044 --> 00:57:05.924
<v Brent>You can build one service, build another one, build another one, and it can just iterate.

00:57:06.584 --> 00:57:09.844
<v Brent>Whereas if you're trying to get a desktop system that you need everything to

00:57:09.844 --> 00:57:12.124
<v Brent>work right away, there can be a large learning curve.

00:57:12.224 --> 00:57:15.904
<v Brent>So just having a little computer set up as a media server where you can just

00:57:15.904 --> 00:57:19.964
<v Brent>poke at it whenever you have time. And if it's not completely online 100% of

00:57:19.964 --> 00:57:23.264
<v Brent>the time, well, maybe it's not at the end of the world. That would be a good

00:57:23.264 --> 00:57:26.044
<v Brent>way to try some things and break some things.

00:57:26.164 --> 00:57:28.764
<v Chris>I also think the expectation is different there, right? When you're using it

00:57:28.764 --> 00:57:32.604
<v Chris>on the desktop, you have certain expectations, if you've used Linux before,

00:57:32.684 --> 00:57:34.164
<v Chris>about the way package installation works.

00:57:34.284 --> 00:57:37.204
<v Chris>And what, I have to update this file in order to make this change persist?

00:57:37.544 --> 00:57:41.084
<v Chris>It's a bit of a gear shift. But when you're using a headless server,

00:57:41.524 --> 00:57:45.324
<v Chris>all these things that kind of seem confusing on the desktop are actually strengths

00:57:45.324 --> 00:57:47.324
<v Chris>on the server and really are great.

00:57:47.324 --> 00:57:50.644
<v Chris>And you start, I think, since you're coming with a different set of expectations,

00:57:50.764 --> 00:57:54.904
<v Chris>I think you can appreciate, especially in a server context, Nix a lot more.

00:57:55.084 --> 00:57:58.344
<v Chris>And then once you learn to use it in a headless environment with a couple of

00:57:58.344 --> 00:58:03.804
<v Chris>services, you're going to be just absolutely itching to deploy it on your desktop.

00:58:03.804 --> 00:58:06.164
<v Chris>But you'll have a greater appreciation and understanding at that point.

00:58:06.664 --> 00:58:09.024
<v Chris>I think, you know, the desktop thing could be fun, but...

00:58:10.032 --> 00:58:11.932
<v Chris>high probability it goes sideways, you know?

00:58:12.272 --> 00:58:15.352
<v Wes>Yeah, and then just longer debug cycles and maybe break the thing you're trying

00:58:15.352 --> 00:58:17.752
<v Wes>to work on. If you have a bunch of spare laptops or desktops or whatever,

00:58:17.832 --> 00:58:19.832
<v Wes>then go for it or your comfy dual booting and all that.

00:58:19.992 --> 00:58:23.192
<v Wes>But whatever you can find the lowest friction way where you're not going to

00:58:23.192 --> 00:58:26.372
<v Wes>get frustrated because you don't know how to do it in Nix yet is usually the best.

00:58:26.952 --> 00:58:30.492
<v Brent>Also, your question specifically said, I'm just ready to finally dive into Nix.

00:58:30.532 --> 00:58:32.152
<v Brent>We are assuming you mean Nix OS.

00:58:33.032 --> 00:58:37.912
<v Brent>Of course, the rest of your question suggested that. But it's an important realization,

00:58:38.452 --> 00:58:41.132
<v Brent>that Nix OS and Nix are distinct.

00:58:42.132 --> 00:58:46.432
<v Brent>And it's even more fun when you realize you can run Nix on any operating system

00:58:46.432 --> 00:58:47.352
<v Brent>and get some of the benefits.

00:58:47.712 --> 00:58:51.112
<v Brent>So that's like, I don't know, level three when you get to do that.

00:58:51.472 --> 00:58:54.012
<v Chris>Peanut butter and jelly right there. That is what that is. Your favorite distro

00:58:54.012 --> 00:58:55.752
<v Chris>with Nix is better and better.

00:58:56.332 --> 00:58:59.392
<v Chris>All right, thank you everybody who boosted. We have the boost below the 2,000

00:58:59.392 --> 00:59:02.532
<v Chris>set cutoff. We'll keep them in the dock for prosperity. And we read them, we appreciate them too.

00:59:02.972 --> 00:59:07.512
<v Chris>And thank you to everybody who streams those sets. 22 of you streamed collectively, 31,000.

00:59:08.932 --> 00:59:12.912
<v Chris>237 sats not too bad at all it's a nice little boost in itself now of course,

00:59:13.592 --> 00:59:16.772
<v Chris>mr hybrid sarcasm he brought it in and uh

00:59:16.772 --> 00:59:20.192
<v Chris>he brought the power and the strength so when you bring it all together this

00:59:20.192 --> 00:59:26.232
<v Chris>week gentlemen for episode uh 600 656 that's right we hit the road to scale

00:59:26.232 --> 00:59:35.292
<v Chris>before we go by the appetizers and all that this episode stacked 1 million 195 353 saturnies.

00:59:47.541 --> 00:59:50.721
<v Chris>Thank you to our members, to everybody who supports the show from,

00:59:50.721 --> 00:59:55.001
<v Chris>you know, just a few sats or a few fiats to, you know, a million.

00:59:55.001 --> 00:59:57.461
<v Chris>It makes a difference, especially right now.

00:59:57.981 --> 01:00:02.261
<v Chris>If you would like to make this episode or next episode a winner,

01:00:02.461 --> 01:00:03.741
<v Chris>you can boost with Fountain FM.

01:00:03.901 --> 01:00:06.821
<v Chris>They make it real easy. They have a hosted option or a self-hosted option.

01:00:06.981 --> 01:00:10.781
<v Chris>There's a whole plethora of applications over at new podcast apps that bring

01:00:10.781 --> 01:00:12.521
<v Chris>new features and the ability to boost.

01:00:12.801 --> 01:00:16.381
<v Chris>If you want to just stick with the simple autopilot, linuxunplugged.com slash

01:00:16.381 --> 01:00:19.581
<v Chris>membership. Thank you, everybody who supports this here episode.

01:00:20.181 --> 01:00:21.761
<v Chris>You gosh darn mean a lot to us.

01:00:32.771 --> 01:00:35.971
<v Chris>And we do have some picks for you, and there are some good ones,

01:00:36.031 --> 01:00:37.751
<v Chris>so let's get to those before we get out of here.

01:00:39.751 --> 01:00:44.531
<v Chris>First up is one that Wes found that I could see being very useful for folks

01:00:44.531 --> 01:00:46.131
<v Chris>out there that are trying out Hetzner.

01:00:46.351 --> 01:00:50.251
<v Chris>I think Hetzner's getting a little tick up in usage with all the open-claw stuff going on.

01:00:50.431 --> 01:00:54.231
<v Wes>Do watch out. They have a price increase coming in April, so just be warned.

01:00:54.331 --> 01:00:56.751
<v Wes>They still have reasonable rates in the industry for sure.

01:00:56.891 --> 01:01:01.051
<v Wes>But it's coming. Yeah, and you can maybe understand why, given what all is happening

01:01:01.051 --> 01:01:03.011
<v Wes>and what it costs to run a computer these days.

01:01:03.151 --> 01:01:06.611
<v Chris>But tell us about Hcloud Upload Image. You found this this week.

01:01:06.751 --> 01:01:13.051
<v Wes>Yeah, so the backstory is Hetzner already provides an MIT-licensed CLI to interface with them.

01:01:13.551 --> 01:01:18.031
<v Wes>So it's just Hcloud, which is great. But one thing they don't make especially

01:01:18.031 --> 01:01:22.231
<v Wes>easy is dealing with disk images, especially if you just want to be able to

01:01:22.231 --> 01:01:26.351
<v Wes>take a disk image that you build locally, upload it to Hetzner and then use

01:01:26.351 --> 01:01:28.111
<v Wes>that to spin up new VPSs from.

01:01:28.511 --> 01:01:32.751
<v Wes>You can do a lot of other stuff with the CLI, but not really that exactly in one step or something.

01:01:32.891 --> 01:01:37.951
<v Wes>So Hcloud Upload Image is a little Go app that does exactly that.

01:01:38.071 --> 01:01:40.911
<v Wes>So it creates a server with the right type.

01:01:41.111 --> 01:01:45.031
<v Wes>It enables the rescue system. It boots into the server. Then it downloads the

01:01:45.031 --> 01:01:48.451
<v Wes>disk image that you're trying to upload to it into the rescue system,

01:01:48.571 --> 01:01:52.251
<v Wes>which then lets it just drop that and overwrite the existing disk,

01:01:52.371 --> 01:01:55.571
<v Wes>right? So it just takes your image and overwrites the disk via the rescue system.

01:01:55.671 --> 01:01:56.091
<v Chris>Right, okay.

01:01:56.711 --> 01:01:57.611
<v Wes>So it's destructive.

01:01:57.911 --> 01:01:58.491
<v Chris>It's quite destructive.

01:01:58.691 --> 01:02:00.851
<v Wes>Yeah, this is for spinning up a new one. It spins up its own little...

01:02:00.851 --> 01:02:01.051
<v Chris>Okay.

01:02:01.411 --> 01:02:04.931
<v Wes>So then it shuts down the server, and then it takes a snapshot of that.

01:02:05.131 --> 01:02:07.531
<v Wes>So it's silly, like, spins up a new server, puts it in rescue,

01:02:07.711 --> 01:02:11.631
<v Wes>overwrites it, snapshots it, and then deletes the actual server,

01:02:11.631 --> 01:02:12.911
<v Wes>and all you're left with is the snapshot.

01:02:13.171 --> 01:02:19.431
<v Wes>And then you can take that snapshot with the Hcloud CLI itself and stamp out VPSs.

01:02:19.531 --> 01:02:20.151
<v Chris>That's great.

01:02:21.007 --> 01:02:24.647
<v Chris>So you could essentially have, from your machine, you could upload a custom

01:02:24.647 --> 01:02:26.207
<v Chris>cloud image that you can then use as a template.

01:02:26.427 --> 01:02:30.067
<v Wes>Yep. And so I was doing that, and I was running something as a local VM,

01:02:30.187 --> 01:02:31.927
<v Wes>but it was getting to take up

01:02:31.927 --> 01:02:34.447
<v Wes>more resources than I could allocate on the machine I was running it on.

01:02:34.507 --> 01:02:37.667
<v Wes>And so for the moment, I thought, okay, I'll spin up a VPS and offload it there.

01:02:37.867 --> 01:02:41.587
<v Wes>And so I was able to, it's a NixOS system, so I was able to add a new build

01:02:41.587 --> 01:02:45.507
<v Wes>output that built with the stuff ready, which it's really just like a KVM virtual machine.

01:02:45.507 --> 01:02:48.867
<v Wes>So there's not a lot of crazy Hetzner-specific stuff you need to do,

01:02:48.927 --> 01:02:52.127
<v Wes>and then have NixOS output a raw disk image,

01:02:52.267 --> 01:02:57.567
<v Wes>and Hetzner even supports ZStandard and GZip and BZip and similar,

01:02:57.707 --> 01:03:01.907
<v Wes>so then you can just compress it and upload it, and away you go.

01:03:02.167 --> 01:03:04.467
<v Chris>So you just built it from the package manager and sent it up to Hetzner.

01:03:05.474 --> 01:03:06.214
<v Chris>Stupid easy.

01:03:06.354 --> 01:03:11.174
<v Wes>I did hit some confusion because you need to look out, apparently,

01:03:11.554 --> 01:03:14.774
<v Wes>depending on which data center you use and if you use one of their dedicated

01:03:14.774 --> 01:03:17.954
<v Wes>performance or the sort of standard shared CPU ones.

01:03:17.974 --> 01:03:18.214
<v Chris>Right.

01:03:18.494 --> 01:03:21.674
<v Wes>The shared ones seem to be MBR legacy booting.

01:03:21.774 --> 01:03:23.194
<v Chris>And you need to be EFI, I assume.

01:03:23.494 --> 01:03:24.814
<v Wes>Well, I can do whatever.

01:03:25.054 --> 01:03:26.394
<v Chris>Oh, but the image needs to be ready.

01:03:26.514 --> 01:03:29.654
<v Wes>Versus if you're on the dedicated ones, those are using EFI.

01:03:29.794 --> 01:03:30.234
<v Chris>I got you.

01:03:30.334 --> 01:03:33.534
<v Wes>And I don't know how universal that is, so maybe do spin up a test one and check

01:03:33.534 --> 01:03:37.674
<v Wes>out what the default Hetzner image does for that, whatever VPS model you choose.

01:03:38.374 --> 01:03:39.954
<v Wes>And this is MIT licensed.

01:03:40.754 --> 01:03:43.214
<v Chris>Hcloud upload image. We'll have it linked in the show notes.

01:03:43.334 --> 01:03:46.234
<v Chris>All right. So my pick is Launcher Studio.

01:03:46.654 --> 01:03:50.454
<v Chris>If you find yourself downloading the Go binaries as Wes suggested or whatever

01:03:50.454 --> 01:03:53.214
<v Chris>they might be, so that way you can run them on your mutes distribution.

01:03:53.674 --> 01:03:58.754
<v Chris>Well, it is kind of a bummer that you don't get a icon in your menu or if you

01:03:58.754 --> 01:04:01.114
<v Chris>use an application launcher, you can't just easily type the name.

01:04:01.634 --> 01:04:05.914
<v Chris>Launcher Studio is a GTK4 open source desktop application that lets you create

01:04:05.914 --> 01:04:11.214
<v Chris>application launchers, .desktop files, on modern Linux desktop environments.

01:04:11.714 --> 01:04:15.034
<v Chris>So if you've got a custom app you've written or a download or something like

01:04:15.034 --> 01:04:18.794
<v Chris>that that didn't get a proper menu entry for your launcher or your menu,

01:04:18.954 --> 01:04:22.194
<v Chris>you can use Launcher Studio, which is the latest and greatest in what has been

01:04:22.194 --> 01:04:25.554
<v Chris>kind of an ongoing series of applications that do this kind of functionality

01:04:25.554 --> 01:04:27.694
<v Chris>that have kind of come and gone over the years.

01:04:28.594 --> 01:04:30.694
<v Chris>It's MIT licensed and it is Rust-based.

01:04:31.114 --> 01:04:31.274
<v Wes>I mean,

01:04:32.040 --> 01:04:35.440
<v Wes>Despite being GTK4, it does sound like it could be maybe handy on something

01:04:35.440 --> 01:04:38.520
<v Wes>like KDE Linux for your random side-loaded stuff, and you want a nice .desktop.

01:04:39.180 --> 01:04:41.820
<v Chris>No, it works. That's what I used it for. You just install it via Flatpak.

01:04:41.980 --> 01:04:42.960
<v Chris>It's available on Flathub.

01:04:43.440 --> 01:04:47.580
<v Chris>But it also works on Hyperland because it's creating .desktop launchers in your

01:04:47.580 --> 01:04:49.520
<v Chris>.local share applications folder.

01:04:49.720 --> 01:04:50.600
<v Wes>It's already a standard.

01:04:50.760 --> 01:04:54.060
<v Chris>It's already a standard. So any desktop environment that looks at that for .desktop

01:04:54.060 --> 01:04:57.120
<v Chris>files will support this, which, as far as I know, is like all of them today.

01:04:57.380 --> 01:04:59.620
<v Chris>And so that is Launcher Studio.

01:05:00.300 --> 01:05:03.560
<v Chris>Now, Wes, you've got a couple of handy little proxy picks, if you will.

01:05:03.800 --> 01:05:08.000
<v Wes>Yeah, well, as I offloaded this VM, now it was on a Hetzner IP address.

01:05:08.120 --> 01:05:11.120
<v Wes>And there's some stuff like, you know, I like using YTDLP to pull down some

01:05:11.120 --> 01:05:13.880
<v Wes>things, and it can get fussy about IPs sometimes.

01:05:14.100 --> 01:05:17.120
<v Wes>And so I thought, well, I have a residential IP. I'm not trying to do anything crazy.

01:05:17.620 --> 01:05:20.380
<v Wes>What about just a proxy? Of course, they're already on a mesh network,

01:05:20.420 --> 01:05:22.980
<v Wes>but I didn't really need to route the whole thing, and I could do,

01:05:22.980 --> 01:05:24.240
<v Wes>like, forwarding individual stuff.

01:05:24.360 --> 01:05:27.740
<v Wes>But for the use case I was doing, it made a little more sense to just set up

01:05:27.740 --> 01:05:29.620
<v Wes>a proxy because I really didn't need everything to go through it.

01:05:29.680 --> 01:05:31.020
<v Wes>It was just some specific requests.

01:05:31.520 --> 01:05:37.420
<v Wes>So first I found TinyProxy, which is a lightweight HTTP and HTTPS proxy daemon

01:05:37.420 --> 01:05:40.460
<v Wes>for POSIX operating systems, written in C.

01:05:40.680 --> 01:05:47.240
<v Wes>It's a classic GPL2 license, but still seemingly actively developed and it has a NixOS module.

01:05:47.480 --> 01:05:50.940
<v Wes>So it was super easy to set up. Enable equals true, of course.

01:05:51.060 --> 01:05:52.480
<v Wes>And then for the settings, you can pick the port.

01:05:52.620 --> 01:05:56.400
<v Wes>You can pick what address you want it to listen on, timeout options.

01:05:56.400 --> 01:05:59.060
<v Wes>And then what's really nice is they let you configure, like,

01:05:59.140 --> 01:06:02.280
<v Wes>in CIDR format, what networks you want to allow requests from.

01:06:02.480 --> 01:06:06.080
<v Wes>So I could say, like, only allow my local LAN and my mesh network,

01:06:06.160 --> 01:06:08.140
<v Wes>you know, and local host to, or whatever you want.

01:06:08.240 --> 01:06:12.060
<v Wes>But you can have it listen globally and then further segment it if you want.

01:06:12.060 --> 01:06:15.360
<v Wes>So it's quite flexible for whatever security strategy you might want.

01:06:15.440 --> 01:06:15.660
<v Chris>Okay.

01:06:16.000 --> 01:06:19.960
<v Wes>So that's one option. That's just if you can just work with a regular HTTP proxy.

01:06:20.080 --> 01:06:21.120
<v Chris>But wait, there's more.

01:06:21.240 --> 01:06:24.740
<v Wes>There is more. This one doesn't have a license, so beware on that.

01:06:24.740 --> 01:06:29.000
<v Wes>Maybe we should get an issue going for that. There might already be one, but it is Rust.

01:06:29.140 --> 01:06:29.780
<v Chris>Okay, all right.

01:06:31.188 --> 01:06:39.988
<v Wes>And it's SOX2HTTPProxy, an executable to convert SOX5Proxy into an HTTP proxy.

01:06:40.348 --> 01:06:41.688
<v Chris>What are we using this for, Wes?

01:06:41.808 --> 01:06:45.288
<v Wes>Well, maybe you need an HTTP proxy. Something doesn't support SOX, right?

01:06:45.288 --> 01:06:47.088
<v Chris>Uh-huh, I do. I often need an HTTP proxy.

01:06:47.168 --> 01:06:50.128
<v Wes>But maybe you don't want to go stand up a whole proxy infrastructure.

01:06:50.148 --> 01:06:50.888
<v Chris>I do not, Wes.

01:06:50.988 --> 01:06:55.088
<v Wes>Right? But everyone has SSH. And SSH has dash D, which can run a SOX proxy.

01:06:55.268 --> 01:06:55.628
<v Chris>Yes, it can.

01:06:55.728 --> 01:07:00.688
<v Wes>So, if you combine this project with that, now you have an HTTP proxy.

01:07:01.168 --> 01:07:06.048
<v Wes>so now you can go use SSH to funnel your HTTP requests without having to have

01:07:06.048 --> 01:07:10.308
<v Wes>specific SOX support easily over maybe your mesh network.

01:07:10.828 --> 01:07:15.488
<v Chris>Alright you got me that's pretty cool so I take it you're using this.

01:07:15.888 --> 01:07:19.468
<v Wes>No well I just set up tiny proxy so I did try this out I.

01:07:19.468 --> 01:07:20.548
<v Chris>Was trying to guess which one you stuck.

01:07:20.548 --> 01:07:23.868
<v Wes>With but for me I was like building something I was just going to leave as infrastructure

01:07:23.868 --> 01:07:27.768
<v Wes>for ad hoc stuff this seems like it'd be very handy because you already have SSH.

01:07:27.768 --> 01:07:31.688
<v Chris>Yeah very much SSH is my, you know, it's with me everywhere.

01:07:32.008 --> 01:07:35.468
<v Chris>KD Linux, turn it on. Turned on SSHD. In fact, we were SSHing into each other's

01:07:35.468 --> 01:07:37.868
<v Chris>KD Linux boxes. That was fun. That was great.

01:07:37.968 --> 01:07:38.688
<v Wes>Powered by Nebula.

01:07:38.868 --> 01:07:42.708
<v Chris>KD Linux is really coming a long ways, and I can't wait to their future releases.

01:07:42.968 --> 01:07:47.688
<v Chris>And I think if you're a Plasma fan, it is worth your time to dip back in and try it.

01:07:47.908 --> 01:07:51.148
<v Chris>Like Wes said, it is an excellent VM citizen, too.

01:07:52.228 --> 01:07:55.988
<v Chris>Snappy, smooth. Resize the VM window, you know, my Spice window,

01:07:56.068 --> 01:07:59.448
<v Chris>whatever. It resizes inside there perfectly. no complaints at all.

01:07:59.808 --> 01:08:02.828
<v Chris>That kind of stuff used to crash these things. You know, it's come along so far.

01:08:03.288 --> 01:08:08.248
<v Wes>It's also a nice place to check out some of the latest in thinking about ways

01:08:08.248 --> 01:08:10.428
<v Wes>to put together Linux systems if you like that kind of thing.

01:08:10.568 --> 01:08:10.968
<v Chris>And Plasma.

01:08:12.748 --> 01:08:16.508
<v Chris>All right. Well, if you're going to be in Pasadena around March 5th to the 7th,

01:08:16.608 --> 01:08:19.288
<v Chris>come say hi to us. We do have meetup.com slash Jupiter Broadcasting.

01:08:19.628 --> 01:08:22.428
<v Chris>We'd love to say hi to you. Of course, you can send us a virtual message with

01:08:22.428 --> 01:08:25.148
<v Chris>a boost and be there in spirit as well.

01:08:25.348 --> 01:08:28.828
<v Chris>And then if everything goes as planned, we'll have an episode for you next week

01:08:28.828 --> 01:08:32.148
<v Chris>from Pasadena, either from the scale floor or from our Airbnb,

01:08:32.348 --> 01:08:35.808
<v Chris>something like that, with all kinds of fresh takes from Planet Nix and from

01:08:35.808 --> 01:08:38.028
<v Chris>Southern California's Linux Expo,

01:08:38.288 --> 01:08:43.208
<v Chris>the largest in the Northern American area. Wes, one last pro tip before we go.

01:08:43.348 --> 01:08:45.768
<v Chris>Tell people where they can get more metadata around the show.

01:08:46.028 --> 01:08:47.468
<v Wes>Yeah, well, if you want chapters.

01:08:47.708 --> 01:08:47.848
<v Chris>Sure.

01:08:47.988 --> 01:08:48.268
<v Wes>You know.

01:08:48.688 --> 01:08:52.208
<v Chris>But what if I want them in a really good, consumable way that a machine might like?

01:08:52.308 --> 01:08:54.828
<v Wes>Oh, well, then you want JSON cloud chapters.

01:08:55.128 --> 01:08:57.428
<v Chris>I've been having like two, three years we've had those now.

01:08:57.508 --> 01:09:00.648
<v Wes>Yeah, that's right. Just a JSON file. Well, you got to read the XML file that

01:09:00.648 --> 01:09:02.048
<v Wes>is the feed and then you get a JSON file.

01:09:02.048 --> 01:09:02.768
<v Chris>Then you get the JSON file.

01:09:02.768 --> 01:09:04.808
<v Wes>Don't let that bother you too much. Don't think about it too much.

01:09:04.928 --> 01:09:08.088
<v Wes>Just read the chapters and enjoy them and skip around the file as you like.

01:09:08.088 --> 01:09:13.108
<v Wes>or if you want the full complete story for whatever reason, we have transcripts,

01:09:13.208 --> 01:09:17.808
<v Wes>ETT and SRT and we attempt to diarize them so that you can actually tell which

01:09:17.808 --> 01:09:18.988
<v Wes>of us said the silly stuff.

01:09:19.128 --> 01:09:22.048
<v Chris>We give it a shot at least. We hopefully will be live next week.

01:09:22.088 --> 01:09:23.308
<v Chris>No promises. We never really know.

01:09:23.408 --> 01:09:27.088
<v Chris>Sometimes we do have to pre-record but if you have a podcasting 2.0 app,

01:09:27.248 --> 01:09:30.108
<v Chris>we'll try to make it pending in there and I hope to see you next week.

01:09:33.768 --> 01:09:38.888
<v Chris>Links to what we talked about today are over at linuxunplugged.com slash 654.

01:09:39.188 --> 01:09:43.668
<v Chris>LinuxUnplugged.com or all the great shows at jupiterbroadcasting.com.

01:09:43.808 --> 01:09:48.148
<v Chris>And if you'd like even more show, you have the membership options or the Mumble

01:09:48.148 --> 01:09:50.188
<v Chris>Room. You can show up like lots of people have.

01:09:50.328 --> 01:09:53.268
<v Chris>Dozens of people have shown up right here in our Mumble Room this week to listen

01:09:53.268 --> 01:09:54.728
<v Chris>to a low latency opus stream.

01:09:55.188 --> 01:09:58.188
<v Chris>And we love it. It makes it a live vibe. It's great.

01:09:58.688 --> 01:10:00.948
<v Chris>Details at LinuxUnplugged.com. You never would have guessed.

01:10:01.248 --> 01:10:04.348
<v Chris>Thank you so much for joining us on this week's episode of Your Unplugged Program.

01:10:04.528 --> 01:10:08.208
<v Chris>And we'll see you right back here next Tuesday As in sun.

