WEBVTT

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

00:00:16.009 --> 00:00:16.689
<v Wes>My name is Wes.

00:00:16.949 --> 00:00:17.769
<v Brent>And my name is Brent.

00:00:18.849 --> 00:00:23.089
<v Chris>Hello, gentlemen. Well, coming up on the show, we've each prepared a topic,

00:00:23.109 --> 00:00:25.509
<v Chris>but we haven't told the other one what it's about.

00:00:25.509 --> 00:00:28.269
<v Chris>So I have no idea what the other guys want to talk about this week,

00:00:28.269 --> 00:00:31.229
<v Chris>and then we'll round out the show with some great boosts, some picks,

00:00:31.369 --> 00:00:34.089
<v Chris>and a lot more. And I know what I'm going to talk about.

00:00:34.229 --> 00:00:37.349
<v Chris>But before we get there, I know we've got to say time-appropriate greetings

00:00:37.349 --> 00:00:39.229
<v Chris>to our virtual lug. Hello, Mama Room.

00:00:39.609 --> 00:00:42.569
<v Chris>Hello. Hello. Hey, Chris. Hey, Wes. And hello, Brent.

00:00:42.929 --> 00:00:46.869
<v Chris>Hello. And hello up there in the old quiet listening. And a shout out to the

00:00:46.869 --> 00:00:48.509
<v Chris>live stream and our members.

00:00:48.669 --> 00:00:52.269
<v Chris>We've been cooking now for about 40 minutes or so. So it's nice to be here on

00:00:52.269 --> 00:00:54.989
<v Chris>a Sunday morning doing the Unplugged program on a Tuesday.

00:00:55.189 --> 00:00:59.229
<v Chris>And let's say a big good morning to our friends over at Defined Networking.

00:00:59.389 --> 00:01:02.349
<v Chris>Go check out Manage Nebula from Defined Networking.

00:01:02.549 --> 00:01:06.289
<v Chris>It's built on the open source Nebula platform that we trust and love.

00:01:06.929 --> 00:01:11.409
<v Chris>And you control all the bits. It's so simple to scale.

00:01:11.529 --> 00:01:15.689
<v Chris>You can get started easily at define.net slash unplugged. You can try out their hosted version.

00:01:16.069 --> 00:01:20.389
<v Chris>Use it on 100 hosts absolutely for free. And it turns out you control the infrastructure.

00:01:20.429 --> 00:01:23.449
<v Chris>You can build it yourself if you just want to have two nodes talking to each

00:01:23.449 --> 00:01:25.669
<v Chris>other for a backup, which can be very handy.

00:01:25.889 --> 00:01:30.869
<v Chris>Or if you need something, the scale of an enterprise system like Slack or something even larger.

00:01:31.049 --> 00:01:34.089
<v Chris>You can run your own lighthouses. You can own the network path and you can avoid

00:01:34.089 --> 00:01:39.649
<v Chris>building your core connectivity, your infrastructure, your network around somebody

00:01:39.649 --> 00:01:41.949
<v Chris>else's black box. It's fast. It's secure. It's decentralized.

00:01:42.209 --> 00:01:48.169
<v Chris>It's reliable. It's the way most mesh VPNs wish they were, but just they're not designed to be.

00:01:48.329 --> 00:01:50.969
<v Chris>For your home lab, for a fleet or for serious production network,

00:01:51.189 --> 00:01:53.509
<v Chris>Managed Nebula gives you control without giving up convenience.

00:01:53.749 --> 00:01:57.769
<v Chris>Try it out. Defined.net slash unplugged and redefined your VPN experience.

00:01:58.009 --> 00:02:01.449
<v Chris>That is Defined.net slash unplugged. You're going to be impressed.

00:02:04.153 --> 00:02:09.353
<v Chris>So there seems to be a bit of concern over things going on over at Bitwarden.

00:02:09.553 --> 00:02:15.273
<v Chris>And I'm not sure. There's been a leadership shift, some premium price increases,

00:02:15.873 --> 00:02:20.353
<v Chris>some statements about their public mission and community have changed and been changed again.

00:02:20.953 --> 00:02:26.533
<v Chris>And so I just thought we'd discuss this for a moment because I've ended up over

00:02:26.533 --> 00:02:29.053
<v Chris>the years falling back on Bitwarden. Do you still use Bitwarden?

00:02:29.073 --> 00:02:29.313
<v Wes>I do.

00:02:29.893 --> 00:02:31.893
<v Chris>I know, Brent, you never fall down into Bitwarden.

00:02:32.533 --> 00:02:33.493
<v Brent>I've been hesitant.

00:02:33.493 --> 00:02:37.953
<v Chris>Yeah, well, perhaps for good reason. Their new CEO did have a response post

00:02:37.953 --> 00:02:41.753
<v Chris>my first 100 days of Bitwarden where he did say open source is still the foundation

00:02:41.753 --> 00:02:44.093
<v Chris>of everything at Bitwarden.

00:02:44.553 --> 00:02:47.833
<v Chris>But I'm just kind of curious if people are starting to create a Bitwarden backup plan.

00:02:48.573 --> 00:02:52.033
<v Chris>And I'd like to poll the audience. What password manager are you using?

00:02:52.253 --> 00:02:55.653
<v Chris>And does it sync across your devices? And did you move off of Bitwarden?

00:02:55.653 --> 00:03:01.213
<v Wes>Did you move to another hosted service? Did you move to something totally self-hosted,

00:03:01.313 --> 00:03:02.513
<v Wes>Vault Warden, et cetera?

00:03:02.893 --> 00:03:03.073
<v Chris>Yeah.

00:03:03.373 --> 00:03:05.253
<v Wes>Or do you sync around a key pass file, Brent style?

00:03:05.433 --> 00:03:09.073
<v Chris>And I wonder if we can, you know, I mean, I think there's room here for us to

00:03:09.073 --> 00:03:13.213
<v Chris>kind of take what the audience says, review it, come together with what we kind

00:03:13.213 --> 00:03:16.813
<v Chris>of come up with, and maybe create a Bitwarden migration guide because it's something

00:03:16.813 --> 00:03:17.833
<v Chris>you and I might want to consider.

00:03:18.013 --> 00:03:21.213
<v Wes>I know I have seen a few number of folks trying out the Proton password manager.

00:03:21.533 --> 00:03:23.473
<v Wes>Maybe if the audience members have any experience there too.

00:03:23.473 --> 00:03:25.653
<v Chris>And I know the 2FA folks also make a password manager.

00:03:25.653 --> 00:03:26.633
<v Wes>Oh, interesting.

00:03:27.493 --> 00:03:30.893
<v Chris>There's a few options out there these days, key paths and others. So BoostIn...

00:03:32.300 --> 00:03:34.000
<v Chris>Or go to linuxunplugged.com slash

00:03:34.000 --> 00:03:38.040
<v Chris>contact and let us know. We're trying to figure out what to do over here.

00:03:38.300 --> 00:03:40.400
<v Wes>Just don't boost us your passwords. That doesn't work.

00:03:42.700 --> 00:03:46.420
<v Chris>All right. So let's get into it, boys, because we've got three topics.

00:03:46.760 --> 00:03:50.860
<v Chris>I have no idea what they're about. So I'm just going to sit back and enjoy the

00:03:50.860 --> 00:03:55.640
<v Chris>ride, I suppose, because I'm going to go last. That way I get the full effect.

00:03:55.840 --> 00:04:00.860
<v Wes>You're assuming that ours don't involve quizzes for you or any sort of work on your part?

00:04:01.060 --> 00:04:06.000
<v Chris>I hope not. But I've gotten the basic gist that we're going to have a little

00:04:06.000 --> 00:04:11.000
<v Chris>Bose with Brent here, that he has been working with Bose smart speakers to some degree.

00:04:11.120 --> 00:04:14.180
<v Chris>But that's all I really know, Brent. So bring us up to speed, as they say.

00:04:14.740 --> 00:04:21.040
<v Brent>Well, I've been hanging out with my parents lots lately, and they're just as big music folks as I am.

00:04:21.040 --> 00:04:27.200
<v Brent>So they have, years and years and years and years ago, they bought a Bose SoundTouch

00:04:27.200 --> 00:04:33.100
<v Brent>30, which I guess, I looked it up, I can't believe this, was available from 2013 to 2014.

00:04:33.340 --> 00:04:37.360
<v Brent>So only for a year somehow. But they're around. I've seen them around quite a bit.

00:04:37.840 --> 00:04:41.320
<v Brent>And they use this thing daily. They're just always music playing off this thing.

00:04:41.440 --> 00:04:45.560
<v Brent>And it's the kind of speaker where you can have little presets.

00:04:45.560 --> 00:04:49.080
<v Brent>And they're not super technical, but they have buttons on the top.

00:04:49.080 --> 00:04:51.880
<v Brent>They can go, hey, I want CBC in the morning or whatever.

00:04:52.620 --> 00:04:55.100
<v Brent>Oh, yeah, you might not understand you're in a different country.

00:04:55.460 --> 00:04:58.680
<v Brent>But so they've used the heck out of this thing. It's been a great speaker.

00:04:58.800 --> 00:05:01.460
<v Brent>Sounds great. It's not too huge. And like, it just works.

00:05:02.340 --> 00:05:08.060
<v Brent>Except Bose announced a few months ago that they would stop supporting this speaker.

00:05:08.180 --> 00:05:12.800
<v Brent>And what that means is that any of the presets you had or any of the streaming

00:05:12.800 --> 00:05:15.560
<v Brent>you were using on this speaker would just stop working one day.

00:05:16.340 --> 00:05:19.640
<v Brent>And that day happened just a couple of weeks ago, the 5th of May.

00:05:20.896 --> 00:05:25.916
<v Brent>And I have not seen my parents that angry in a while about a product that they

00:05:25.916 --> 00:05:29.816
<v Brent>purchased because it's a thing that's worked forever.

00:05:30.256 --> 00:05:33.356
<v Brent>They never had to, you know, they set it up once and it just kind of worked.

00:05:34.016 --> 00:05:37.936
<v Brent>And all of a sudden one day they went to do their morning routine of putting

00:05:37.936 --> 00:05:39.516
<v Brent>the radio on and it doesn't work at all.

00:05:39.756 --> 00:05:42.356
<v Brent>And they can't do anything about it. They don't understand why.

00:05:42.596 --> 00:05:46.896
<v Brent>They never got any, you know, an email or whatever saying that they're so.

00:05:47.036 --> 00:05:49.436
<v Brent>But we've seen this happen over and over and over.

00:05:49.636 --> 00:05:49.776
<v Chris>Yeah.

00:05:49.776 --> 00:05:50.576
<v Brent>It

00:05:50.576 --> 00:05:53.996
<v Chris>Reminds me of the first time meme oh your first time huh.

00:05:53.996 --> 00:05:56.936
<v Brent>Ah well some of us have been there before

00:05:56.936 --> 00:05:59.996
<v Brent>so when they bought this thing way back then

00:05:59.996 --> 00:06:02.836
<v Brent>this is the exact reaction i had was like oh it

00:06:02.836 --> 00:06:07.196
<v Brent>it seems great now but we you know been talking about this kind of thing happening

00:06:07.196 --> 00:06:12.416
<v Brent>for the last 10 years at least so i thought i might try to help them with this

00:06:12.416 --> 00:06:17.476
<v Brent>thing because like now it was just basically mostly a brick as far as streaming

00:06:17.476 --> 00:06:20.216
<v Brent>anything goes but you could still use it for Bluetooth,

00:06:20.656 --> 00:06:23.096
<v Brent>which is the main way I was using it when they weren't around.

00:06:24.436 --> 00:06:27.976
<v Brent>And like an AUX connection, but that's never how they were using it.

00:06:28.156 --> 00:06:32.236
<v Brent>So I did a little spelunking around our dear open source communities.

00:06:32.236 --> 00:06:36.396
<v Brent>And it turns out I'm not the only one who wants to solve this.

00:06:36.536 --> 00:06:43.436
<v Brent>And a lot of people have been working quite a bit on this since that announcement, because,

00:06:44.212 --> 00:06:47.792
<v Brent>When Bose announced that they were going to stop supporting this thing,

00:06:47.952 --> 00:06:50.092
<v Brent>there was a massive upheaval.

00:06:50.292 --> 00:06:56.212
<v Brent>And they decided to open source some of the APIs for this speaker,

00:06:56.412 --> 00:06:58.492
<v Brent>or this series of speakers at least.

00:06:58.712 --> 00:07:04.192
<v Brent>And that just has enabled the community to go nuts and make all these tools

00:07:04.192 --> 00:07:07.332
<v Brent>to bring back the functionality to these speakers.

00:07:07.332 --> 00:07:12.992
<v Brent>So from what i've seen the idea is to just make them as useful as they were

00:07:12.992 --> 00:07:19.092
<v Brent>previous and not need bows in the middle which maybe arguably should have been

00:07:19.092 --> 00:07:20.792
<v Brent>how it was designed in the first place.

00:07:21.612 --> 00:07:25.012
<v Brent>But we're here now and luckily this thing's

00:07:25.012 --> 00:07:27.832
<v Brent>not trash because these projects are well along even in

00:07:27.832 --> 00:07:31.032
<v Brent>a couple months and i decided to

00:07:31.032 --> 00:07:33.972
<v Brent>implement this thing maybe i can just rescue my

00:07:33.972 --> 00:07:37.572
<v Brent>parents mornings with music and i

00:07:37.572 --> 00:07:40.372
<v Brent>decided uh to look at how

00:07:40.372 --> 00:07:44.912
<v Brent>to accomplish this because i was like i don't know maybe we can use home assistant

00:07:44.912 --> 00:07:50.032
<v Brent>like an integration or something that can stream music to this thing that's

00:07:50.032 --> 00:07:54.732
<v Brent>always an option uh but it turned out that well of course this thing just runs

00:07:54.732 --> 00:08:00.312
<v Brent>linux right and oh no kidding of course it does and so there are.

00:08:01.416 --> 00:08:02.776
<v Chris>It's got a whole OS on there.

00:08:02.796 --> 00:08:06.776
<v Brent>Maybe questionable design decisions. Like, for instance, they just have Telnet

00:08:06.776 --> 00:08:08.256
<v Brent>access open constantly.

00:08:08.696 --> 00:08:10.796
<v Brent>No authentication needed or anything.

00:08:11.996 --> 00:08:12.756
<v Chris>Yes, good.

00:08:12.836 --> 00:08:15.356
<v Brent>And then the method I used. I mean, that's good for you. Yeah,

00:08:15.396 --> 00:08:19.116
<v Brent>the method I used to get into it is, I was like, well, I'm not that familiar

00:08:19.116 --> 00:08:20.576
<v Brent>with Telnet. I want to use SSH.

00:08:20.896 --> 00:08:25.316
<v Brent>Turns out you could just put an empty file named, you know, remote underscore

00:08:25.316 --> 00:08:27.176
<v Brent>services onto a USB drive.

00:08:27.696 --> 00:08:31.256
<v Brent>Plug that in the back of the thing because it has USB, which I don't know if it should.

00:08:31.876 --> 00:08:36.036
<v Brent>And then it just enables root access to this box.

00:08:36.256 --> 00:08:36.416
<v Chris>Love that.

00:08:36.616 --> 00:08:38.236
<v Brent>With no password or anything.

00:08:38.756 --> 00:08:39.356
<v Chris>Yes.

00:08:39.356 --> 00:08:42.256
<v Brent>So with no password or anything, you just SSH to this thing.

00:08:42.596 --> 00:08:43.636
<v Chris>What could go wrong?

00:08:44.656 --> 00:08:49.556
<v Brent>Questionable, maybe security practices, but it's a benefit for us because this

00:08:49.556 --> 00:08:51.016
<v Brent>thing is super easy to get into.

00:08:52.016 --> 00:08:58.716
<v Brent>I decided to, well, there's a variety of projects that are solving this in interesting ways.

00:08:58.716 --> 00:09:01.456
<v Wes>Like more than one addressing this particular?

00:09:01.856 --> 00:09:02.396
<v Brent>Yeah.

00:09:02.716 --> 00:09:03.516
<v Wes>Like, wow.

00:09:03.856 --> 00:09:07.836
<v Brent>There are various approaches, I guess you could say.

00:09:08.236 --> 00:09:12.776
<v Brent>The one I leaned on after doing quite a bit of research is called Aftertouch,

00:09:13.056 --> 00:09:17.076
<v Brent>which is, you know, sound touch after they canceled this out.

00:09:17.076 --> 00:09:22.636
<v Brent>Anyways, and it is quite complete in the sense that it has excellent documentation

00:09:22.636 --> 00:09:30.336
<v Brent>and allows various options for how to get into the speaker and change basically

00:09:30.336 --> 00:09:35.716
<v Brent>some settings in a variety of ways so that you can host the streaming yourself.

00:09:35.936 --> 00:09:40.376
<v Brent>So instead of Bose being like the person in the middle that sends the streaming

00:09:40.376 --> 00:09:45.116
<v Brent>services to the speaker, you just have either a NAS or a Raspberry Pi.

00:09:45.816 --> 00:09:48.756
<v Brent>You could even use a VPS because they have some...

00:09:50.505 --> 00:09:53.765
<v Brent>Like tls certificates that uh are work

00:09:53.765 --> 00:09:58.345
<v Brent>wonderfully with this thing but the other thing is you could just run this software

00:09:58.345 --> 00:10:04.345
<v Brent>on the speaker itself as well because it's just linux so it can just be standalone

00:10:04.345 --> 00:10:12.005
<v Brent>which is which is amazing i thought it was really well designed because um aftertouch,

00:10:13.285 --> 00:10:20.525
<v Brent>offers a lot of options for how to install this in a variety of places so they have a docker setup,

00:10:21.185 --> 00:10:25.165
<v Brent>also just a native systemd setup that, of course, is the way I went with NixOS.

00:10:26.005 --> 00:10:30.025
<v Brent>But they also have a pi quick installer. So if you have a pi going already,

00:10:30.145 --> 00:10:34.425
<v Brent>you just run one command and it sets everything up for you, which is pretty sweet, I have to say.

00:10:36.216 --> 00:10:42.696
<v Brent>So one of the methods to solve this is to do just a DNS redirect for the BOSE domains.

00:10:44.136 --> 00:10:47.356
<v Brent>That's one of the simpler ways to do it, let's say.

00:10:48.056 --> 00:10:50.616
<v Chris>Because it's still reaching out to their servers?

00:10:50.876 --> 00:10:55.176
<v Brent>Yeah, there's like, I think, three of their servers is constantly reaching out

00:10:55.176 --> 00:10:59.156
<v Brent>to to try to gain information about which streams are available.

00:10:59.516 --> 00:11:01.416
<v Chris>Etc. And then they just shut down the servers on their end.

00:11:01.456 --> 00:11:02.876
<v Brent>Yeah, they just said, well, we don't really want to run this.

00:11:02.876 --> 00:11:05.376
<v Chris>But they left it just sitting there blasting your network. I mean,

00:11:05.416 --> 00:11:06.436
<v Chris>I know it's not a lot of traffic.

00:11:06.516 --> 00:11:07.936
<v Brent>But just the principle of it. I know.

00:11:08.096 --> 00:11:08.516
<v Chris>The principle of it.

00:11:08.516 --> 00:11:08.776
<v Brent>Yeah, yeah.

00:11:10.116 --> 00:11:13.176
<v Chris>Interesting. So you intercept that basically by screwing with the DNS.

00:11:13.356 --> 00:11:15.976
<v Brent>Exactly. And you can do that a variety of ways, right? You could just do it

00:11:15.976 --> 00:11:17.256
<v Brent>on your router or whatever you want.

00:11:17.756 --> 00:11:22.496
<v Brent>But it has to point to something. So you want to run aftertouch somewhere.

00:11:22.796 --> 00:11:25.896
<v Brent>So I decided to run on the little NAS that I have behind me.

00:11:26.936 --> 00:11:30.636
<v Brent>And that was a wonderful way to do it. But I didn't intercept the DNS.

00:11:30.636 --> 00:11:37.396
<v Brent>What I did instead, as the project suggests, is because this thing just has open root,

00:11:37.616 --> 00:11:42.976
<v Brent>once you plug in a simple little USB drive, you can go in and just change the

00:11:42.976 --> 00:11:46.336
<v Brent>DNS entries and point them to where you need them.

00:11:46.476 --> 00:11:50.896
<v Brent>So you don't even need to intercept them. You just tell the speaker, go look here instead.

00:11:52.076 --> 00:11:59.076
<v Brent>And AfterTouch supplies basically a couple things. So one thing is you can use

00:11:59.076 --> 00:12:02.836
<v Brent>a web UI to do all of the migration of the speaker.

00:12:02.956 --> 00:12:07.056
<v Brent>So as long as you have the service running and the speakers on the same network,

00:12:07.236 --> 00:12:08.576
<v Brent>it'll just auto detect the speaker.

00:12:08.776 --> 00:12:13.316
<v Brent>And then there's a big migrate button and that'll change all of the entries

00:12:13.316 --> 00:12:16.616
<v Brent>for you, which is awesome and makes it super, super simple.

00:12:17.356 --> 00:12:22.336
<v Brent>So there's that part. And then it also provides a bunch of access to streams

00:12:22.336 --> 00:12:27.356
<v Brent>and stuff. So you get the exact same functionality, and you don't need Bose at all.

00:12:27.596 --> 00:12:30.936
<v Brent>I kind of wish this was available a long, long time ago. Like,

00:12:31.016 --> 00:12:34.816
<v Brent>they should just open source this stuff from the start. It's going to happen anyways.

00:12:35.256 --> 00:12:37.536
<v Chris>It almost makes a guy want to go on eBay and pick one up.

00:12:37.616 --> 00:12:40.256
<v Brent>Well, that's what I've been thinking about is...

00:12:41.042 --> 00:12:48.202
<v Brent>We're lucky because we have the know-how to do this. And it was relatively simple for people like us.

00:12:48.882 --> 00:12:51.642
<v Brent>But my parents would have never, ever done this. So, like, give it a couple

00:12:51.642 --> 00:12:55.042
<v Brent>more weeks, they would have chucked this thing or, you know,

00:12:55.242 --> 00:12:58.382
<v Brent>that's the danger is like they're perfectly usable speakers.

00:12:58.642 --> 00:12:59.682
<v Brent>But how many people are just going to?

00:13:00.981 --> 00:13:04.921
<v Chris>Not only are they usable still, but they like the sound. And it's not necessarily

00:13:04.921 --> 00:13:07.021
<v Chris>going to happen for, you know, they replace that with something else.

00:13:07.021 --> 00:13:07.981
<v Chris>They might not like the sound.

00:13:08.161 --> 00:13:10.921
<v Chris>It's got, those speakers have a unique sound to them and people enjoy it.

00:13:11.301 --> 00:13:16.301
<v Brent>I, uh, sneaky turn down the bass like to negative five because it has that setting

00:13:16.301 --> 00:13:18.581
<v Brent>too. And I, they're so bassy. I don't like it anyway.

00:13:18.821 --> 00:13:19.981
<v Chris>Yeah, they are. They're very bass heavy. Yeah.

00:13:20.161 --> 00:13:23.781
<v Brent>So, so it's pretty sweet. Um, now the UI has a bunch of information,

00:13:24.281 --> 00:13:26.161
<v Brent>a bunch of technical information, which I like.

00:13:26.161 --> 00:13:29.201
<v Brent>But also from the perspective of let's say my parents,

00:13:29.761 --> 00:13:33.461
<v Brent>they just get to use it so I was able to reprogram all their touch buttons as

00:13:33.461 --> 00:13:37.721
<v Brent>well to what they had before and they're not even going to know that it's doing anything different,

00:13:38.221 --> 00:13:43.861
<v Brent>but I know that it is because now it's all completely local and I can run the

00:13:43.861 --> 00:13:49.101
<v Brent>server myself and I am highly considering just running that service on the speaker

00:13:49.101 --> 00:13:51.921
<v Brent>itself because I have another box to do it, right?

00:13:52.561 --> 00:13:55.761
<v Brent>And so that's the little project I've been working on this week trying to solve

00:13:55.761 --> 00:13:59.021
<v Brent>that That is neat. I would say, job's finished.

00:13:59.921 --> 00:14:04.021
<v Chris>It's, job's finished. It's kind of remarkable, the community. So you have Aftertouch.

00:14:04.661 --> 00:14:09.601
<v Chris>Obviously, there's SoundCork and there's others. They've really taken advantage

00:14:09.601 --> 00:14:10.681
<v Chris>of what's available here.

00:14:10.841 --> 00:14:13.621
<v Wes>Did you get a sense, like, okay, so obviously there's this model,

00:14:13.721 --> 00:14:18.221
<v Wes>but, like, how many models are supported by these various efforts? How new can you go?

00:14:18.561 --> 00:14:20.581
<v Wes>Like, what does this open up?

00:14:20.661 --> 00:14:24.301
<v Brent>I think a lot of these sprung up around the SoundTouch models specifically,

00:14:24.301 --> 00:14:26.581
<v Brent>which have a lot of similar architecture.

00:14:27.701 --> 00:14:31.861
<v Brent>I'm not aware of all of the models, but there's like a SoundTouch 10,

00:14:32.081 --> 00:14:34.321
<v Brent>which I think is a smaller version of this.

00:14:34.621 --> 00:14:38.641
<v Brent>And this thing is a 30, which is probably the size of like a tiny suitcase,

00:14:38.861 --> 00:14:42.101
<v Brent>like a carry on or something like that. But I would imagine,

00:14:43.609 --> 00:14:48.529
<v Brent>a lot of the design of these speakers is common with some other more modern ones.

00:14:48.669 --> 00:14:49.829
<v Brent>So I would imagine you're going to

00:14:49.829 --> 00:14:56.509
<v Brent>see this expanding to, to include other speakers as well. I sure hope so.

00:14:57.109 --> 00:15:02.129
<v Chris>I just wish there was a general speaker OS that was just this. It was just this.

00:15:02.249 --> 00:15:02.369
<v Brent>Yeah.

00:15:03.089 --> 00:15:09.049
<v Chris>I also see in here that they support the stereo pairing that these Bose speakers can do.

00:15:09.209 --> 00:15:09.629
<v Wes>Oh, that's nice.

00:15:09.729 --> 00:15:11.869
<v Chris>In the past required, I think a cloud account.

00:15:12.509 --> 00:15:17.809
<v Brent>Yeah. Yeah, there's, I mean, that's kind of the joy for what Bose ended up doing

00:15:17.809 --> 00:15:22.289
<v Brent>here under pressure, was open sourcing the API for all of this.

00:15:22.429 --> 00:15:26.709
<v Brent>So it means there's a command line program now that you can just access every

00:15:26.709 --> 00:15:32.169
<v Brent>single function that was in there. So I've included a link to the PDF that Bose sent out.

00:15:32.429 --> 00:15:35.729
<v Brent>And I think they could have probably open sourced more of it,

00:15:35.869 --> 00:15:40.129
<v Brent>but at least what they did give was enough to get all this functionality back.

00:15:40.129 --> 00:15:44.809
<v Brent>So the stereo pairing functionality is like, if you have several of both speakers,

00:15:44.969 --> 00:15:48.649
<v Brent>you can either set them up beside each other and have a stereo environment or

00:15:48.649 --> 00:15:49.989
<v Brent>in separate rooms, right?

00:15:50.069 --> 00:15:53.469
<v Brent>Because they just run off the network. So they're just touching each other and

00:15:53.469 --> 00:15:58.669
<v Brent>you can have them streaming synced between various rooms or different floors

00:15:58.669 --> 00:15:59.929
<v Brent>in your house or something like that.

00:16:00.829 --> 00:16:03.989
<v Brent>So with i would say these might

00:16:03.989 --> 00:16:08.569
<v Brent>be hitting ebay really cheap real soon so maybe it's an opportunity to grab

00:16:08.569 --> 00:16:12.109
<v Brent>a bunch of them chris you and i were trying to find a speaker system for when

00:16:12.109 --> 00:16:16.189
<v Brent>we're working on cars this would be kind of perfect yeah we'll come around this

00:16:16.189 --> 00:16:21.089
<v Brent>yeah come around the shop good to go up an ebay alert i think is uh is the real lesson here today.

00:16:22.410 --> 00:16:27.010
<v Chris>Nice catch. And it's nice for the folks, too. And a nice way to solve that.

00:16:27.090 --> 00:16:31.310
<v Chris>So that was the Bose SoundTouch 30 with the code name Mojo.

00:16:31.550 --> 00:16:34.710
<v Brent>It is. That's a good code name. It's got more Mojo now, I would say.

00:16:34.870 --> 00:16:35.150
<v Chris>Yeah.

00:16:35.270 --> 00:16:35.710
<v Brent>Lots of Mojo.

00:16:35.710 --> 00:16:37.350
<v Chris>You brought back the Mojo.

00:16:37.670 --> 00:16:41.170
<v Brent>Well done. I wonder if we'll get extra functionality, too, once the projects

00:16:41.170 --> 00:16:44.390
<v Brent>kind of implement all of the initial functionality.

00:16:44.730 --> 00:16:46.530
<v Brent>Like, keep dreaming. Let's go nuts.

00:16:47.490 --> 00:16:52.630
<v Wes>I'm curious. Did you detect sort of what the possibility for a prank mode might be?

00:16:52.830 --> 00:16:56.150
<v Wes>You know, like it looks like it's going to play the audio you request,

00:16:56.310 --> 00:17:00.610
<v Wes>but it just plays Rickroll every time, something like that, or Linux Unplugged, random episodes.

00:17:00.650 --> 00:17:05.050
<v Brent>Yeah, I was able to find Linux Unplugged through the streaming services,

00:17:05.070 --> 00:17:07.970
<v Brent>so I was going to put that on one of their presets.

00:17:08.230 --> 00:17:11.550
<v Chris>Every Sunday morning, just have Kron turn it to the JBLive.fm stream.

00:17:11.770 --> 00:17:11.850
<v Wes>There we go.

00:17:12.190 --> 00:17:16.530
<v Brent>Yeah, that'd be awesome. Unfortunately, it didn't stream, so I'll have to put

00:17:16.530 --> 00:17:18.710
<v Brent>in a bug report or something, and we'll get that working.

00:17:19.250 --> 00:17:24.130
<v Chris>All right. I do want a chicken coop speaker, so you never, you never. Thank you, Brownlee.

00:17:24.230 --> 00:17:24.830
<v Brent>You're welcome.

00:17:25.350 --> 00:17:28.230
<v Chris>All right. So I know it's time for This Is The Way with Wes,

00:17:29.490 --> 00:17:33.590
<v Chris>and it looks like Wes took a look, a first look at Nasty.

00:17:33.810 --> 00:17:34.470
<v Wes>Yeah, that's right.

00:17:34.630 --> 00:17:40.810
<v Chris>And Nasty is getting a lot of attention in the NixOS, Bcash, and Rust communities.

00:17:41.010 --> 00:17:42.130
<v Wes>Which we don't have any interest in.

00:17:42.290 --> 00:17:45.570
<v Chris>So it's an interesting cross-section, and I've been seeing a lot of talk online

00:17:45.570 --> 00:17:47.670
<v Chris>about it, so I'm glad you took a first look. Tell us about it.

00:17:48.010 --> 00:17:52.550
<v Wes>Yeah, okay, so Nasty, it's GPL3 effort from Bartosz Fenski.

00:17:53.110 --> 00:17:58.050
<v Wes>I'm looking back on it, and I realized that first, I first saw it being posted

00:17:58.050 --> 00:18:03.150
<v Wes>about in the BcacheFS subreddit, because it's a NAS appliance-like project with

00:18:03.150 --> 00:18:04.450
<v Wes>BcacheFS under the hood.

00:18:04.530 --> 00:18:08.030
<v Wes>And we'll get more into how it works, but it came out on April 1st,

00:18:08.130 --> 00:18:14.670
<v Wes>and it was sort of a, it was billed as a mostly vibe-coded BcacheFS NAS.

00:18:15.010 --> 00:18:17.630
<v Wes>You know, it seemed sort of experimental, like a new project.

00:18:19.017 --> 00:18:22.417
<v Wes>And that's kind of how I took it. And then I saw that it kept getting posted

00:18:22.417 --> 00:18:25.237
<v Wes>about. It looked like regular progress, good sound and updates.

00:18:25.497 --> 00:18:28.837
<v Wes>And then, I don't know, 10 episodes back or so, we made it a pick.

00:18:29.017 --> 00:18:31.077
<v Wes>It's something just to keep an eye on.

00:18:31.817 --> 00:18:36.577
<v Wes>And I thought, well, they've had even more releases. They've made some big switches recently.

00:18:37.217 --> 00:18:40.677
<v Wes>And it seemed like it was probably time to really see if there was some there

00:18:40.677 --> 00:18:45.117
<v Wes>there. Because, of course, we have had mixed feelings on the show of various... Nases.

00:18:45.357 --> 00:18:47.597
<v Wes>Yeah, right? Some are really nice. They can work for some people.

00:18:48.677 --> 00:18:52.017
<v Wes>It's been a struggle for us to necessarily adopt them for our own particular

00:18:52.017 --> 00:18:54.517
<v Wes>workflows but we are very bcachefs curious.

00:18:54.517 --> 00:18:57.997
<v Chris>And and we're nixos friendly so it seems like if there was going to be one that

00:18:57.997 --> 00:19:03.117
<v Chris>got us it would probably be nasty because it's sort of in our our wheelhouse if you will say.

00:19:03.117 --> 00:19:04.297
<v Wes>That was kind of the hope here.

00:19:04.297 --> 00:19:10.197
<v Chris>It is a good name right and it so it builds itself on the github page as it

00:19:10.197 --> 00:19:14.557
<v Chris>turns commodity hardware into a storage appliance serving nfs samba i scuzzy

00:19:14.557 --> 00:19:18.337
<v Chris>and envy me over whatever. What is that? OF.

00:19:19.877 --> 00:19:23.497
<v Chris>Managed from a single web UI. Updated atomically and rolled back.

00:19:23.577 --> 00:19:26.217
<v Chris>I don't know. Like I'm using MVME over anything.

00:19:26.217 --> 00:19:27.537
<v Wes>Oh, it's MVME over fabrics.

00:19:27.897 --> 00:19:32.577
<v Chris>Like I'm using it over anything these days. Oh, it so stinks.

00:19:32.757 --> 00:19:35.537
<v Chris>I got an MVME that's overheating at home, so I want to replace it.

00:19:36.337 --> 00:19:40.097
<v Chris>I go online and look. Everything's crazy expensive, and I've never even heard

00:19:40.097 --> 00:19:41.197
<v Chris>of these vendors before.

00:19:41.337 --> 00:19:41.737
<v Wes>Oh, no.

00:19:41.737 --> 00:19:46.117
<v Chris>There's some Chinese name I can't pronounce. So you're buying it from some third-tier vendor.

00:19:46.817 --> 00:19:50.597
<v Chris>The state MVME. If you've got MVMEs, you've got literal gold. Right now.

00:19:50.777 --> 00:19:53.597
<v Chris>But so, yeah, that's what Nasty pitches itself as.

00:19:53.757 --> 00:19:56.817
<v Chris>And like Wes said, looks like it's using Bcache, compression,

00:19:57.017 --> 00:20:00.397
<v Chris>checksumming, erasure coding, tiering encryption and snapshots,

00:20:00.457 --> 00:20:02.317
<v Chris>which is really interesting.

00:20:02.517 --> 00:20:07.337
<v Chris>It also brings sub volume support, encryption lifecycle support and backups,

00:20:07.637 --> 00:20:10.837
<v Chris>including deduplication, incremental backups to local S3, SFTP,

00:20:11.217 --> 00:20:14.557
<v Chris>REST, Backblaze B2 and per profile schedules and retention.

00:20:14.557 --> 00:20:17.677
<v Wes>Yeah, I was impressed by how much is already in here, right?

00:20:17.757 --> 00:20:23.737
<v Wes>Because it isn't just the core NAS part about managing the disks and interacting with BeacHFS.

00:20:23.877 --> 00:20:27.097
<v Wes>That's all there too, right? But like there's all kind of backups,

00:20:27.457 --> 00:20:31.277
<v Wes>alerts, firewall management, TLS stuff. You can do Let's Encrypt up.

00:20:31.477 --> 00:20:35.237
<v Wes>It has a tail scale integration, sort of automatic if you want to plug into

00:20:35.237 --> 00:20:37.917
<v Wes>your tail net really easily to allow remote access.

00:20:38.477 --> 00:20:42.597
<v Wes>It has a capability to spin up VMs for you as well as what they call apps,

00:20:42.637 --> 00:20:43.937
<v Wes>which are really just Docker containers.

00:20:43.937 --> 00:20:48.397
<v Wes>Which you can run sort of like directly by putting the container info in in

00:20:48.397 --> 00:20:52.837
<v Wes>the gui or it has a spot to drop a docker compose if you want so that's kind

00:20:52.837 --> 00:20:56.617
<v Wes>of nice yeah so there's just kind of like a lot happening which can be good

00:20:56.617 --> 00:20:58.957
<v Wes>or bad right we have mixed feelings on this and with some of these.

00:20:59.927 --> 00:21:05.287
<v Wes>Projects but what made me curious of course was it's nix os and then it's powered

00:21:05.287 --> 00:21:10.127
<v Wes>by a rust demon under the hood and so like actually getting it running in a

00:21:10.127 --> 00:21:13.827
<v Wes>vm kind of getting configured with some like test disks which are just all virtualized

00:21:13.827 --> 00:21:15.207
<v Wes>right now i haven't put it on real hardware yet,

00:21:15.667 --> 00:21:18.507
<v Wes>um and then kind of seeing like well what does it look like

00:21:18.507 --> 00:21:21.187
<v Wes>and it had a pretty basic little installer kind of with like

00:21:21.187 --> 00:21:24.027
<v Wes>a nix os install okay but that was easy enough i think the download

00:21:24.027 --> 00:21:26.927
<v Wes>was like less than two gigs for the iso and then it

00:21:26.927 --> 00:21:30.447
<v Wes>was using maybe like four gigs on disk when i got everything installed it

00:21:30.447 --> 00:21:33.487
<v Wes>does kind of have a nice option where you can either opt

00:21:33.487 --> 00:21:36.747
<v Wes>to use an entire disk just like this is your nasty

00:21:36.747 --> 00:21:39.847
<v Wes>os drive and then you'll have other disks on the system that you use actually

00:21:39.847 --> 00:21:44.107
<v Wes>for whatever your pool is going to be yeah but it does have an option to just

00:21:44.107 --> 00:21:48.107
<v Wes>take up like a certain amount of space of the disk and put the os there and

00:21:48.107 --> 00:21:51.327
<v Wes>then leave the rest of main available for storage so i thought that was kind

00:21:51.327 --> 00:21:53.847
<v Wes>of a nice touch that you know didn't actually need to have yeah.

00:21:55.001 --> 00:21:59.021
<v Wes>What's interesting here is it turns out Nix OS is kind of just the provisioning layer.

00:21:59.141 --> 00:22:02.641
<v Wes>So it's there just to kind of provide the kernel modules, the base system d

00:22:02.641 --> 00:22:06.061
<v Wes>units, the base packages and software that you're going to need for this thing.

00:22:06.801 --> 00:22:09.921
<v Wes>And the Rust engine is kind of the real runtime.

00:22:10.241 --> 00:22:10.581
<v Chris>Oh, really?

00:22:10.781 --> 00:22:16.701
<v Wes>Yes. So it keeps a bunch, kind of like Cosmic, it keeps a bunch of JSON files

00:22:16.701 --> 00:22:20.721
<v Wes>in varlib nasty, which just follows directly the Nix OS pattern of just using

00:22:20.721 --> 00:22:22.321
<v Wes>varlib for the application state.

00:22:22.321 --> 00:22:28.541
<v Wes>And what's great about that is the state can be easily checkpointed,

00:22:28.661 --> 00:22:33.341
<v Wes>snapshotted, and backed up because basically all the stuff that you do in the

00:22:33.341 --> 00:22:36.161
<v Wes>UI is just stored in those JSON files.

00:22:36.361 --> 00:22:40.341
<v Wes>So if you toggle your Samba shares on or NFS exports, that kind of stuff,

00:22:40.521 --> 00:22:45.221
<v Wes>you don't do a whole NixOS rebuild because a lot of this stuff isn't in NixOS.

00:22:45.221 --> 00:22:49.621
<v Wes>It's sort of dynamically applied by the Rust runtime to Systemd.

00:22:50.001 --> 00:22:52.341
<v Wes>But it's still kept in a way that you can manage.

00:22:52.521 --> 00:22:55.421
<v Chris>I noticed they also offer a 2E, so then I would imagine you can toggle it.

00:22:55.801 --> 00:22:58.121
<v Chris>Either way, that's going to write to the JSON settings.

00:22:58.461 --> 00:23:02.161
<v Wes>Right. And there's still some stuff, like I think some of the firewall stuff,

00:23:02.261 --> 00:23:05.581
<v Wes>like there is some stuff that's built at the NixOS layer, and so that does require

00:23:05.581 --> 00:23:08.541
<v Wes>NixOS rebuild, but the daemon just does that under the hood for you anyway.

00:23:08.781 --> 00:23:10.361
<v Wes>So you don't really have to interact.

00:23:10.401 --> 00:23:14.561
<v Brent>I have a question here. Wes, how do you feel about that architecture decision?

00:23:14.881 --> 00:23:18.261
<v Wes>I think it makes sense for what they're doing. they're trying

00:23:18.261 --> 00:23:21.501
<v Wes>to compete with the high level

00:23:21.501 --> 00:23:24.341
<v Wes>of dynamic behavior that you see

00:23:24.341 --> 00:23:27.501
<v Wes>in a lot of these style of application so if

00:23:27.501 --> 00:23:30.721
<v Wes>your entire goal is like I want a purely

00:23:30.721 --> 00:23:34.241
<v Wes>mixed managed infrastructure as code approach this

00:23:34.241 --> 00:23:37.061
<v Wes>isn't quite that it does have sort of

00:23:37.061 --> 00:23:42.581
<v Wes>a like the JSON side of it means that you do get a more effectively declarative

00:23:42.581 --> 00:23:47.141
<v Wes>style of approach but it's not necessarily quite the same is like a the same

00:23:47.141 --> 00:23:50.501
<v Wes>ux of writing something that's meant to be that right it's more about having

00:23:50.501 --> 00:23:54.481
<v Wes>a nice way to capture the state and have it be easy to introspect and edit and

00:23:54.481 --> 00:23:56.641
<v Wes>back up and manipulate or diff even,

00:23:58.096 --> 00:24:00.916
<v Wes>So it kind of depends on what, like, how much you need, you know,

00:24:00.996 --> 00:24:04.176
<v Wes>do you want a nice UI that you know you can go toggle things on and when you

00:24:04.176 --> 00:24:09.296
<v Wes>click the enable Samba button, like, you don't have to do a full rebuild of

00:24:09.296 --> 00:24:12.436
<v Wes>the NixOS stuff, it just does it for you.

00:24:12.656 --> 00:24:16.136
<v Chris>So in your opinion, is this, I guess what I'm trying to get at here is,

00:24:16.316 --> 00:24:19.036
<v Chris>could you use this thing and never have to touch the UI?

00:24:19.556 --> 00:24:21.436
<v Wes>Yeah, I don't know, I don't think it's meant for that.

00:24:21.536 --> 00:24:21.696
<v Chris>Okay.

00:24:21.836 --> 00:24:24.756
<v Wes>So I don't know that there's a great interface to go manipulate those JSON files.

00:24:24.896 --> 00:24:27.496
<v Wes>If you were willing to make the JSON files, then yeah, totally.

00:24:28.176 --> 00:24:31.916
<v Wes>I don't think there's a great, it looks like maybe they're starting some REST API.

00:24:32.076 --> 00:24:38.516
<v Wes>Right now a lot of it is web sockets between the Svelte UI JavaScript layer

00:24:38.516 --> 00:24:40.396
<v Wes>and then the Rust engine backend.

00:24:40.616 --> 00:24:42.436
<v Chris>Yeah, but it does look like that's something they're working on here,

00:24:42.536 --> 00:24:45.396
<v Chris>JSON RPC 2.0 over web sockets.

00:24:45.716 --> 00:24:48.496
<v Wes>Yeah. And so I think there's probably a version of that where you could have

00:24:48.496 --> 00:24:53.316
<v Wes>it more be programmatically exposed to just talk to the engine directly and

00:24:53.316 --> 00:24:54.796
<v Wes>have it synchronized to the state.

00:24:55.826 --> 00:24:57.226
<v Chris>Seems like you're kind of impressed with it, though.

00:24:57.826 --> 00:25:01.766
<v Wes>Well, there's just more here than I thought. Like, it might be one of the nicer

00:25:01.766 --> 00:25:05.186
<v Wes>ways if you want to play with BcacheFS.

00:25:06.106 --> 00:25:09.146
<v Wes>Because, like, there's a nice UI that walks you through building the array,

00:25:09.146 --> 00:25:11.586
<v Wes>and it does support encryption, and it supports compression,

00:25:11.826 --> 00:25:14.106
<v Wes>and it supports various redundancy levels and stuff.

00:25:14.326 --> 00:25:16.406
<v Wes>I don't know if it's strictly everything, because there's, like,

00:25:16.406 --> 00:25:19.186
<v Wes>a lot of options you can do with BcacheFS, but it's a lot more than,

00:25:19.286 --> 00:25:24.146
<v Wes>like, even I've probably tried, right, just in terms of building different styles of arrays.

00:25:25.306 --> 00:25:28.406
<v Wes>And because it's nix west you know that the like dkms situations well

00:25:28.406 --> 00:25:31.166
<v Wes>managed it's all handled for an appliance so you don't really have to worry about like how do

00:25:31.166 --> 00:25:34.386
<v Wes>you get it and how is it well supported because it's just built in

00:25:34.386 --> 00:25:37.086
<v Wes>from that i mean i'm not saying go put all your data on the system right

00:25:37.086 --> 00:25:40.806
<v Wes>now right it is very much pre i mean it's like version 008

00:25:40.806 --> 00:25:43.886
<v Wes>they just did a big switch for like the app stuff

00:25:43.886 --> 00:25:47.606
<v Wes>is now powered by caddy instead of nginx which makes lets it be

00:25:47.606 --> 00:25:50.426
<v Wes>a little more dynamic and they can they kind of automatically let

00:25:50.426 --> 00:25:54.046
<v Wes>you do if you want to set up like a subdomain system per app that

00:25:54.046 --> 00:25:57.426
<v Wes>can just happen automatically right off the top of your appliance so you

00:25:57.426 --> 00:26:00.946
<v Wes>kind of get some of the things you can do nicely in a clean way on

00:26:00.946 --> 00:26:07.246
<v Wes>a modern linux system but with a helper ui on top like you can go run like it's

00:26:07.246 --> 00:26:11.006
<v Wes>easy to get root ssh on there no problem there's a terminal in the ui you can

00:26:11.006 --> 00:26:14.986
<v Wes>use so you can just go run docker containers yourself that's not a problem you

00:26:14.986 --> 00:26:18.706
<v Wes>can introspect the state you can kind of manipulate things but you don't have to.

00:26:19.598 --> 00:26:22.758
<v Chris>It is very fascinating to watch the momentum of this.

00:26:22.898 --> 00:26:27.198
<v Chris>Like a few of these projects we've been covering recently, they committed five

00:26:27.198 --> 00:26:30.238
<v Chris>minutes ago on a Sunday while we're live streaming and recording.

00:26:30.438 --> 00:26:34.718
<v Chris>Like they're working just nonstop on this stuff. There's a real momentum and,

00:26:34.718 --> 00:26:37.298
<v Chris>you know, people contributing.

00:26:37.658 --> 00:26:41.898
<v Chris>So I'd say it's growing. It's just two contributors at the moment, but it's growing.

00:26:42.298 --> 00:26:45.758
<v Chris>It looks good. Worth keeping an eye on, but not worth switching your data over

00:26:45.758 --> 00:26:47.158
<v Chris>to yet. It's sort of the final verdict.

00:26:47.158 --> 00:26:50.518
<v Wes>Yeah, I mean, if you want something that's going to be steady and not have any

00:26:50.518 --> 00:26:53.498
<v Wes>major changes of architecture or something, I don't think it's there yet, right?

00:26:54.138 --> 00:26:58.398
<v Wes>It's still pretty new. But I do think it's worth, it's a nice entrance into

00:26:58.398 --> 00:27:02.438
<v Wes>the space of available sort of appliances for this because it feels leaner.

00:27:02.538 --> 00:27:03.718
<v Wes>It feels more introspectable.

00:27:04.038 --> 00:27:06.958
<v Wes>It kind of feels like a little bit more of a modern architecture for how you

00:27:06.958 --> 00:27:09.838
<v Wes>might build one of these today. And I like that.

00:27:10.158 --> 00:27:13.918
<v Chris>Yeah. Thank you, Wes. Check out Nasty. We'll have links in the show notes.

00:27:16.178 --> 00:27:19.998
<v Chris>I want to thank Connect 10 Internet. They're not a sponsor, but I did reach

00:27:19.998 --> 00:27:21.278
<v Chris>out to them to get a discount for you.

00:27:21.378 --> 00:27:25.358
<v Chris>Jupiter 35 will get $35 off your total order.

00:27:25.918 --> 00:27:29.338
<v Chris>Connect 10 Internet offers high-speed, reliable Internet services across the

00:27:29.338 --> 00:27:32.838
<v Chris>U.S. and Canada, and I've been utilizing them for my backup Internet connection.

00:27:33.158 --> 00:27:36.558
<v Chris>They have services for everybody that wants to use it for backup Internet to

00:27:36.558 --> 00:27:39.938
<v Chris>people that want to use it for high-speed data with high priority.

00:27:39.938 --> 00:27:44.118
<v Chris>So they offer truly unlimited plans with no data caps and high-priority data.

00:27:44.378 --> 00:27:48.898
<v Chris>I like them, so I said, hey, I'm going to talk about you mostly in next week's

00:27:48.898 --> 00:27:51.938
<v Chris>episode. But they got me a discount code early, so I'm telling you about it

00:27:51.938 --> 00:27:55.638
<v Chris>now. It's Jupyter35, and it'll take $35 off your order.

00:27:55.698 --> 00:27:58.758
<v Chris>And they just came out with this killer idea.

00:27:59.938 --> 00:28:03.098
<v Chris>$39 a month, and it's a backup Internet plan.

00:28:03.678 --> 00:28:06.758
<v Chris>So they have a slick router that auto-monitors your connection.

00:28:06.758 --> 00:28:10.398
<v Chris>And when your main internet goes down, they instantly connect to one of their

00:28:10.398 --> 00:28:12.718
<v Chris>four major wireless carriers, they just bundle all four.

00:28:13.138 --> 00:28:16.558
<v Chris>And then when your mainline internet comes back online, it switches you back automatically.

00:28:18.175 --> 00:28:25.115
<v Chris>Uh, now I just built this using Linux and then like they contacted me and they're

00:28:25.115 --> 00:28:26.515
<v Chris>like, Hey, guess what? We got this new thing.

00:28:26.655 --> 00:28:31.055
<v Chris>And I'm like, we think it's perfect for you. And I'm like, two weeks ago.

00:28:31.235 --> 00:28:32.315
<v Wes>It is perfect for me.

00:28:32.775 --> 00:28:36.195
<v Chris>Yeah. Uh, so I'm using something different. I'm using like they have this fortress

00:28:36.195 --> 00:28:38.415
<v Chris>router. How would you describe this thing? Brent? It's like,

00:28:38.575 --> 00:28:40.615
<v Chris>it's fortress is a great name for it.

00:28:40.755 --> 00:28:44.735
<v Brent>It kind of looks like a spider with a ton of antennae coming out of it.

00:28:44.795 --> 00:28:49.215
<v Brent>And it's, it's industrially built. You can take it apart and look at what's

00:28:49.215 --> 00:28:54.475
<v Brent>inside if you want to undo many, many, many, many screws. But it's very waterproof.

00:28:55.455 --> 00:29:00.015
<v Brent>You can throw this thing around if you need to. It's been all the way to California

00:29:00.015 --> 00:29:03.055
<v Brent>and back for some reason. It's a great device.

00:29:03.615 --> 00:29:08.495
<v Chris>It really is. And it is very robust. We put it up way high on top of a barn.

00:29:08.575 --> 00:29:10.895
<v Chris>And I'm just getting crazy internet speeds.

00:29:11.115 --> 00:29:13.515
<v Chris>And it picks the best network in the area.

00:29:14.155 --> 00:29:18.155
<v Chris>And this device runs OpenWRT. It's an impressive bit of kit.

00:29:18.635 --> 00:29:22.255
<v Chris>So it's connect10internet.com. I'll put a link in the show notes.

00:29:22.415 --> 00:29:25.295
<v Chris>That's connect10internet.com. And if you use the promo code Jupiter35,

00:29:25.595 --> 00:29:27.995
<v Chris>they'll take $35 off your plan.

00:29:28.235 --> 00:29:31.615
<v Chris>And they do have that new $39. They'll take $35 off your order.

00:29:32.135 --> 00:29:35.195
<v Chris>And they have that $39 backup internet plan. I just realized there's a lot of

00:29:35.195 --> 00:29:35.995
<v Chris>numbers that are confusing.

00:29:36.155 --> 00:29:41.115
<v Chris>So to make it clear, Jupiter35 is the promo code. It takes $35 off your entire order one time.

00:29:41.275 --> 00:29:44.535
<v Chris>And they have that $39 backup internet plan. Does that make sense?

00:29:44.795 --> 00:29:46.035
<v Chris>I hope so. It's a lot of numbers.

00:29:46.035 --> 00:29:47.435
<v Wes>It sounds like a good deal.

00:29:47.595 --> 00:29:52.535
<v Chris>It is a good deal. I'm really impressed because I can both connect to 5G and 4G.

00:29:52.675 --> 00:29:58.455
<v Chris>And the way I had solved this in the past was I had multiple carrier plans.

00:29:58.475 --> 00:30:03.035
<v Chris>And then I have a pep link that would just combine or switch between.

00:30:03.375 --> 00:30:06.855
<v Chris>But you had to have actual like multiple SIM cards in this device with multiple

00:30:06.855 --> 00:30:10.635
<v Chris>plans. And now Connect 10 just puts it all in one service.

00:30:11.255 --> 00:30:14.675
<v Chris>They are the meta provider. and they have the gear to switch between the networks

00:30:14.675 --> 00:30:17.355
<v Chris>for the one that has the best signal and has given you the best data.

00:30:17.575 --> 00:30:19.495
<v Chris>I just think it's super cool. It's been working really well.

00:30:19.635 --> 00:30:22.075
<v Chris>Like I flipped over in the evening,

00:30:23.074 --> 00:30:28.774
<v Chris>Peak time and was getting 120 megabits down during peak traffic.

00:30:29.534 --> 00:30:33.274
<v Chris>And I was like, this is great. And that's just like, you know,

00:30:33.454 --> 00:30:36.654
<v Chris>worst case. That's worst case for me. It's really awesome.

00:30:36.934 --> 00:30:40.234
<v Chris>So that's my worst case speed. So go check it out, connect10internet.com.

00:30:40.374 --> 00:30:43.274
<v Chris>We'll put a link in the show notes, and the promo code is Jupyter35.

00:30:43.654 --> 00:30:47.014
<v Chris>And next week I plan to talk more about some of the backup internet infrastructure

00:30:47.014 --> 00:30:48.154
<v Chris>that I've been building at the farm.

00:30:48.714 --> 00:30:52.174
<v Chris>And they were a big part of making all that work. I've been really impressed.

00:30:52.174 --> 00:30:55.894
<v Chris>So it's promo code jupiter35connect10internet.com.

00:30:59.174 --> 00:31:03.974
<v Brent>Well, two of us have gone so far, I think, with some interesting projects.

00:31:03.974 --> 00:31:07.234
<v Brent>But there are three hosts on this here show.

00:31:07.474 --> 00:31:09.894
<v Brent>So, Chris, what did you get into this week?

00:31:10.634 --> 00:31:14.214
<v Chris>Boys, you know I've been doing the OpenClaw thing now for quite a while.

00:31:14.214 --> 00:31:19.374
<v Chris>I set up a dedicated Lenovo ThinkCenter that's running or was running OpenClaw.

00:31:20.394 --> 00:31:24.914
<v Chris>Um and uh as time went on i started using them for more and more serious things

00:31:24.914 --> 00:31:27.954
<v Chris>i think it's so funny when people say what do you use it for what do you use

00:31:27.954 --> 00:31:33.334
<v Chris>it for like dude everything like what your imagination is the limit um.

00:31:33.334 --> 00:31:36.674
<v Brent>It's i have these from like watching you use it it's one of those tools that

00:31:36.674 --> 00:31:40.254
<v Brent>you don't know what you're going to use it for until you like integrate the

00:31:40.254 --> 00:31:45.594
<v Brent>tool into your routine or you have it near you and then you're like oh wait

00:31:45.594 --> 00:31:48.734
<v Brent>a second this is gonna do way more than you could have ever imagined before

00:31:48.734 --> 00:31:50.274
<v Brent>you even integrate into your life.

00:31:50.454 --> 00:31:53.674
<v Brent>So I think the answer to the question, what are you going to do with it is like, just.

00:31:55.006 --> 00:31:59.146
<v Chris>Yeah, and I think, you know, a clarifying thing for me was having a small business

00:31:59.146 --> 00:32:02.306
<v Chris>that has a thousand tasks that needs done and I only have time for 10 of them.

00:32:02.486 --> 00:32:03.926
<v Wes>That's a big use case for sure.

00:32:03.986 --> 00:32:07.006
<v Chris>So I was like, oh, well, all right, that needs solved, that needs solved,

00:32:07.106 --> 00:32:08.286
<v Chris>that needs solved, that needs solved.

00:32:08.466 --> 00:32:13.986
<v Chris>So I have agents that prep clips for me, you know, based on the stuff that I

00:32:13.986 --> 00:32:15.406
<v Chris>feed them. They prep the clips for me.

00:32:15.526 --> 00:32:18.066
<v Chris>They monitor the infrastructure for me. They read alerts.

00:32:18.466 --> 00:32:21.486
<v Chris>They can update the home. I have three different home assistant instances that

00:32:21.486 --> 00:32:23.886
<v Chris>they are monitoring and updating. They're working with Git to make sure the

00:32:23.886 --> 00:32:25.286
<v Chris>projects are getting checked in and managed.

00:32:25.486 --> 00:32:27.846
<v Chris>They're keeping my Nix boxes maintained.

00:32:28.486 --> 00:32:31.826
<v Chris>And they also deploy infrastructure. And then on top of that,

00:32:31.986 --> 00:32:34.666
<v Chris>there's reporting that they're providing me.

00:32:34.926 --> 00:32:38.246
<v Chris>There's email summaries that they're getting using the GWS CLI.

00:32:38.686 --> 00:32:43.166
<v Chris>A lot of stuff in there. There's a lot that I use them for. Ordering your groceries.

00:32:43.926 --> 00:32:44.206
<v Brent>Yep.

00:32:44.406 --> 00:32:46.846
<v Chris>Ordering my groceries is another one. I know it sounds silly,

00:32:46.846 --> 00:32:50.726
<v Chris>but how many times are you walking around the house and you're like, oh, I need to get this?

00:32:50.726 --> 00:32:54.446
<v Chris>Or you open up the fridge like oh i'm out of butter and then five minutes goes

00:32:54.446 --> 00:32:56.986
<v Chris>by and you completely forgot to ever put it on any list and then you're at the

00:32:56.986 --> 00:33:01.746
<v Chris>grocery store like what the crap was i what was it so i just i just fire off

00:33:01.746 --> 00:33:06.026
<v Chris>to the bot really quick we're out of butter and then it uses the kroger api

00:33:06.026 --> 00:33:09.846
<v Chris>and it adds my preferred butter to the shopping cart so.

00:33:09.846 --> 00:33:13.166
<v Wes>Great it's also like for me it's useful for that too but it can also then help

00:33:13.166 --> 00:33:18.466
<v Wes>build like now i can interface better with that stuff and start recording that

00:33:18.466 --> 00:33:22.326
<v Wes>and then have a data set of my own locally not dependent on their database.

00:33:22.326 --> 00:33:26.486
<v Chris>Yeah that's what i do too as i have a preferences.json file with all my brands

00:33:26.486 --> 00:33:29.926
<v Chris>and sizes and flavor preferences and all that that's all built in my own data

00:33:29.926 --> 00:33:32.566
<v Chris>set that would move to any other api and.

00:33:32.566 --> 00:33:36.546
<v Wes>You can like you know save all of your orders see how you know your own local

00:33:36.546 --> 00:33:39.966
<v Wes>rate of inflation measure how your preferences change over time whatever you want.

00:33:39.966 --> 00:33:45.386
<v Chris>And as i started using it it kind of went from could it do this could this work

00:33:45.386 --> 00:33:47.786
<v Chris>to, well, this needs to work now.

00:33:48.566 --> 00:33:51.046
<v Chris>I'm not doing that task anymore, so this needs to work.

00:33:52.066 --> 00:33:57.326
<v Chris>And the reality was is that I had built this around OpenClaw very early on when it was still called,

00:33:58.619 --> 00:34:00.079
<v Chris>Claude something.

00:34:00.339 --> 00:34:02.099
<v Wes>Right. Claudebot?

00:34:02.339 --> 00:34:06.679
<v Chris>Whatever it was. And then Moabot. And then OpenClaw. It's funny.

00:34:06.759 --> 00:34:08.019
<v Chris>See, it seemed like such a big deal back then.

00:34:08.719 --> 00:34:12.119
<v Chris>And it just went through all the transitions. And then a lot of things I solved

00:34:12.119 --> 00:34:15.779
<v Chris>for, like memory and other problems, like excluding plugins and all this stuff,

00:34:16.399 --> 00:34:20.119
<v Chris>the project started solving for and replacing the solution that I had built for it.

00:34:20.179 --> 00:34:23.039
<v Chris>And then I would have to spend time adapting to their new solution.

00:34:23.219 --> 00:34:24.659
<v Wes>And not just once.

00:34:25.559 --> 00:34:26.139
<v Chris>Every week?

00:34:26.219 --> 00:34:27.279
<v Wes>I mean, yeah.

00:34:27.579 --> 00:34:33.399
<v Chris>Every week. Yeah. Also, there's this problem that I have with OpenClaw.

00:34:33.499 --> 00:34:35.999
<v Chris>I still think it's a great project. I'm just telling you what I ran into.

00:34:36.719 --> 00:34:41.279
<v Chris>It's one control gateway. Many agents, one control gateway.

00:34:41.759 --> 00:34:46.259
<v Chris>And that is useful for certain things, but not for how I use it. I'll get into that more.

00:34:46.259 --> 00:34:51.839
<v Wes>Yeah, I had a good... OpenClaw is fundamentally basically like a channel-first harness.

00:34:52.059 --> 00:34:56.159
<v Wes>It's like really built around connecting to these channels of talking to you,

00:34:56.159 --> 00:34:59.379
<v Wes>whether that's WhatsApp or Telegram or Slack or whatever it is.

00:34:59.739 --> 00:35:01.699
<v Wes>And Hermes has a different architecture.

00:35:01.959 --> 00:35:06.279
<v Chris>So I decided to try out Hermes. I liked a couple of things about it.

00:35:06.359 --> 00:35:08.979
<v Chris>It's Python-based versus Node-based.

00:35:09.499 --> 00:35:15.439
<v Chris>And I will be honest, I do like that. The project natively ships a flake.nix.

00:35:15.439 --> 00:35:17.459
<v Chris>So they got my attention with that.

00:35:18.039 --> 00:35:20.839
<v Chris>The other thing they do that I just sort of appreciate as somebody that's using

00:35:20.839 --> 00:35:26.519
<v Chris>it in production is so far they seem to have sort of thematically focused releases.

00:35:26.899 --> 00:35:30.239
<v Chris>So OpenClaw, they ship very fast and they just kind of include everything that

00:35:30.239 --> 00:35:34.539
<v Chris>they have ready in each release where Hermes kind of is a little bit more planned.

00:35:34.539 --> 00:35:36.419
<v Chris>This release focuses on this set of features.

00:35:36.519 --> 00:35:39.319
<v Chris>This release focuses on security and then this release focuses on another set

00:35:39.319 --> 00:35:44.039
<v Chris>of features and it's a little more implicit and thought through that way.

00:35:44.039 --> 00:35:46.919
<v Chris>I just find that release cadence works a little bit better for me.

00:35:47.359 --> 00:35:51.459
<v Chris>But the thing that really works for me is instead of one big gateway with Hermes,

00:35:51.659 --> 00:35:54.379
<v Chris>each agent has its own gateway.

00:35:55.531 --> 00:35:58.091
<v Chris>And at first I was like, oh, what a mess. But man, is that great.

00:35:58.211 --> 00:36:01.271
<v Chris>Because not only does it make it super easy for each agent to use their own

00:36:01.271 --> 00:36:04.631
<v Chris>model, which is great for an agent that can just use a cheap free model or a

00:36:04.631 --> 00:36:07.471
<v Chris>local model that doesn't need to do a lot. Another one can use a heavy lift model.

00:36:08.271 --> 00:36:10.891
<v Chris>But it also means when I want to make configuration changes,

00:36:10.891 --> 00:36:16.171
<v Chris>I'm only restarting one agent's gateway at a time. And my other agents don't get taken down.

00:36:16.451 --> 00:36:19.291
<v Chris>And so far this hasn't happened. But if they blow up their config,

00:36:19.611 --> 00:36:22.531
<v Chris>I'm not taking the other agents out. Although it hasn't blown up the config yet.

00:36:22.711 --> 00:36:26.671
<v Wes>Yeah, this is what it calls profiles, right? So you can have different profiles

00:36:26.671 --> 00:36:31.191
<v Wes>where you each kind of get their whole own setup, which you would get with a

00:36:31.191 --> 00:36:32.391
<v Wes>single OpenClaw instance.

00:36:32.851 --> 00:36:35.891
<v Wes>And then you can do all the normal stuff so they can have their own subagents

00:36:35.891 --> 00:36:38.671
<v Wes>or do whatever you need to, but they can function independently.

00:36:39.471 --> 00:36:43.811
<v Wes>And you had already sort of adopted that architecture in your own personal world.

00:36:44.611 --> 00:36:47.391
<v Wes>And it's another case where OpenClaw hadn't really got there.

00:36:47.531 --> 00:36:51.771
<v Wes>And now there are other models out there that is just a natural one-to-one fit

00:36:51.771 --> 00:36:53.031
<v Wes>for how you already use it.

00:36:53.171 --> 00:36:55.171
<v Brent>Chris is just too bleeding edge. it seems.

00:36:55.611 --> 00:36:57.711
<v Chris>Well, there's just different approaches too. I think, you know,

00:36:57.871 --> 00:37:01.011
<v Chris>one of the things, if I were really trying to build my own complete thing,

00:37:01.111 --> 00:37:05.471
<v Chris>but I wanted to base it off something, I might either just go straight to Pi or I might use OpenClaw.

00:37:06.311 --> 00:37:08.191
<v Chris>Hermes has another thing that I just want to mention, because I know it's one

00:37:08.191 --> 00:37:11.111
<v Chris>of the first things that comes up, is they have what is called this closed learning

00:37:11.111 --> 00:37:16.031
<v Chris>loop, where they have agent curated memory that kind of goes through and automatically

00:37:16.031 --> 00:37:19.231
<v Chris>creates skills for complex tasks that it's noticed it's been asked to do.

00:37:20.457 --> 00:37:24.537
<v Chris>And it uses, you know, some LLM summarization to go through and build a skill

00:37:24.537 --> 00:37:27.017
<v Chris>and it auto creates skills for itself.

00:37:28.517 --> 00:37:32.377
<v Chris>This is both a good thing and a bad thing, in my opinion. I think it can be

00:37:32.377 --> 00:37:36.637
<v Chris>a bad thing in the sense that if you're practicing, say I'm building out a swag

00:37:36.637 --> 00:37:40.477
<v Chris>pipeline and the commands aren't right, something isn't right.

00:37:40.957 --> 00:37:46.717
<v Chris>It could accidentally auto learn the wrong thing, the wrong tool call, the wrong path.

00:37:46.917 --> 00:37:49.237
<v Chris>And so you have to kind of be, I think you have to watch it.

00:37:49.337 --> 00:37:50.177
<v Chris>At least that's in my opinion.

00:37:50.457 --> 00:37:53.257
<v Wes>You probably want to be auditing the changes it's making to your skills.

00:37:53.357 --> 00:37:56.977
<v Chris>So that's what I've done is my agents say this is what I've auto-learned and

00:37:56.977 --> 00:37:59.677
<v Chris>I have to approve the auto-learning right now. I'm just kind of watching it that way.

00:38:00.457 --> 00:38:03.717
<v Chris>But the Hermes system seems to be really, really solid.

00:38:04.077 --> 00:38:07.537
<v Chris>The skill system is excellent. The memory system, I think, is quite good.

00:38:07.737 --> 00:38:12.037
<v Chris>I not only have a good markdown-based memory system, but then I'm using an external

00:38:12.037 --> 00:38:14.537
<v Chris>memory system for some of the more vector-type-based stuff.

00:38:15.077 --> 00:38:18.477
<v Chris>It feels a little bit faster, too. It seems like it responds a little bit faster.

00:38:19.077 --> 00:38:21.977
<v Wes>Yeah it seemed like it had very clean and well documented extension

00:38:21.977 --> 00:38:24.897
<v Wes>points so like for your stuff with like you had even

00:38:24.897 --> 00:38:27.757
<v Wes>experimented with writing your own open claw plugin yeah and

00:38:27.757 --> 00:38:30.717
<v Wes>it's totally possible to do but it just felt like

00:38:30.717 --> 00:38:34.177
<v Wes>like instead of having to conform to this whole plugin architecture here you

00:38:34.177 --> 00:38:38.497
<v Wes>kind of just basically implement like a version of an abstract class in python

00:38:38.497 --> 00:38:41.317
<v Wes>and it was just like a simple clean well-documented api that you could really

00:38:41.317 --> 00:38:45.317
<v Wes>implement with whatever and there's already a bunch of python things that interface

00:38:45.317 --> 00:38:49.517
<v Wes>to all of these Rust built vector engines or whatever you're actually tying in.

00:38:49.777 --> 00:38:54.417
<v Chris>Yeah. And a lot of them have MCPs. I want to note something though because transitioning

00:38:54.417 --> 00:38:59.937
<v Chris>between an agent harness like OpenClaw to Hermes isn't like moving from Debian

00:38:59.937 --> 00:39:02.537
<v Chris>to Fedora. It's a different kind of,

00:39:04.991 --> 00:39:08.671
<v Chris>hop, I guess. It's a different kind of transition. In a way,

00:39:08.891 --> 00:39:13.251
<v Chris>it's maybe easier because these things are so text-based, so markdown-based.

00:39:13.571 --> 00:39:17.831
<v Chris>Things live in sort of the same common things like a soul.md and an agents.md,

00:39:18.011 --> 00:39:23.411
<v Chris>and the memories on both systems are markdown-based, that the migration path

00:39:23.411 --> 00:39:27.211
<v Chris>is surprisingly clean, if not just slightly time-consuming, depending on how

00:39:27.211 --> 00:39:32.031
<v Chris>you do it, but it's not like a jarring change.

00:39:32.271 --> 00:39:35.851
<v Chris>I don't know if I'm putting it right, but it's not, And not that moving distros

00:39:35.851 --> 00:39:39.571
<v Chris>is like this huge, jarring change, but it feels like less of a transition than

00:39:39.571 --> 00:39:41.391
<v Chris>maybe just swapping from Debian to Fedora.

00:39:41.531 --> 00:39:44.491
<v Wes>Probably helps, too, to go from OpenClaw, just in the sense that,

00:39:44.571 --> 00:39:48.351
<v Wes>like, it's so big. It had so much momentum that I think there are a lot of folks,

00:39:48.511 --> 00:39:52.671
<v Wes>too, that were incentivized to also have a similar architecture and or well

00:39:52.671 --> 00:39:54.491
<v Wes>support folks coming over from it.

00:39:54.951 --> 00:39:59.231
<v Wes>But yeah right not only do you can you use sort of helper intelligence tools

00:39:59.231 --> 00:40:04.511
<v Wes>to do some of the migration but a lot of it like you know it has to store state

00:40:04.511 --> 00:40:09.171
<v Wes>to persist between its its loops anyway so like it all kind of needs to be in

00:40:09.171 --> 00:40:12.371
<v Wes>these folders you just might need to update some config files or use different

00:40:12.371 --> 00:40:13.671
<v Wes>config files to get it running yeah.

00:40:13.671 --> 00:40:17.191
<v Chris>The trickiest stuff comes down to don't run both gateways at the same time trying

00:40:17.191 --> 00:40:20.231
<v Chris>to use the same telegram bot token or whatever you're like that's the trickiest bit.

00:40:20.231 --> 00:40:21.971
<v Wes>How do you do the cutover yeah just don't.

00:40:21.971 --> 00:40:24.291
<v Chris>Have token collision for whatever chat platform you're using.

00:40:24.531 --> 00:40:28.411
<v Wes>And that's kind of just standard Linux sysadmin operational thing.

00:40:28.491 --> 00:40:35.111
<v Chris>Yeah, yeah. Also, I'm so impressed with how far you can get with a good set

00:40:35.111 --> 00:40:41.731
<v Chris>of skills and some wrappers with these free or cheap open source models like

00:40:41.731 --> 00:40:44.331
<v Chris>Minimax and Kimmy and Quinn.

00:40:44.791 --> 00:40:48.251
<v Chris>It's a massive unlock that I don't think our community has fully wrapped their

00:40:48.251 --> 00:40:51.311
<v Chris>head around because at least I don't see people talking about it.

00:40:51.311 --> 00:40:53.371
<v Chris>I don't think what I'm about to say is any huge,

00:40:54.777 --> 00:40:57.677
<v Chris>massive discovery of some master

00:40:57.677 --> 00:41:01.217
<v Chris>AI workflow that turns these things from ambiguous to deterministic.

00:41:01.437 --> 00:41:05.337
<v Chris>But it is such a rock solid workflow. I'm surprised I don't hear people screaming

00:41:05.337 --> 00:41:06.517
<v Chris>about it from the top of the hill.

00:41:06.737 --> 00:41:14.497
<v Chris>And it's a way to take advantage of free models or cheap models like DeepSeek, like Minimax.

00:41:14.737 --> 00:41:19.777
<v Chris>And it's simple. You set yourself an actual little bit of a budget to go burn

00:41:19.777 --> 00:41:23.277
<v Chris>some money on a frontier model like a ChatGipity or like a Claude.

00:41:24.117 --> 00:41:27.097
<v Chris>And then you use something like open code.

00:41:28.158 --> 00:41:30.718
<v Chris>Connected to one of these higher-end models. And again, you're just,

00:41:31.038 --> 00:41:34.038
<v Chris>you know, set yourself 25 bucks, right? It's not going to be a big deal.

00:41:34.478 --> 00:41:39.118
<v Chris>And you have these higher-end models operate your agent, be it OpenClaw,

00:41:39.278 --> 00:41:42.998
<v Chris>Hermes, whatever it is, have it operate it like a puppet because they all have

00:41:42.998 --> 00:41:45.898
<v Chris>command line interfaces and MCPs and ACPs.

00:41:46.058 --> 00:41:54.098
<v Chris>So you can have OpenCode using GPT 5.5 operate a Minimax-based agent like a

00:41:54.098 --> 00:41:57.318
<v Chris>puppet. it. And while it's operating that thing through its job,

00:41:57.498 --> 00:42:00.718
<v Chris>you can have it sit there and watch and monitor everything the agent does.

00:42:00.878 --> 00:42:04.518
<v Chris>Every mistake it makes, every wrong tool call it makes, as it tries to figure

00:42:04.518 --> 00:42:09.458
<v Chris>itself out where it got ambiguous in the instructions, the bigger powered model can watch all of that.

00:42:09.598 --> 00:42:13.238
<v Chris>And then you tell it, where does it need improvement? It goes back,

00:42:13.318 --> 00:42:17.078
<v Chris>it hardens up the skills, it improves the wrappers, and you do the run again.

00:42:17.098 --> 00:42:21.418
<v Chris>And you have the bigger model watch one more time. Maybe you do it three times.

00:42:21.798 --> 00:42:25.098
<v Chris>And you just do it till there's no mistakes. And from that point forward,

00:42:25.338 --> 00:42:29.798
<v Chris>that cheaper model is going to execute that task without issue just about every single time.

00:42:29.938 --> 00:42:33.078
<v Chris>I don't care if it's LLM or what, because you're combining scripts,

00:42:33.358 --> 00:42:37.138
<v Chris>you're combining wrappers and skills into something that is actually a very

00:42:37.138 --> 00:42:40.238
<v Chris>solid workflow where the LLM isn't making up a bunch of stuff.

00:42:40.238 --> 00:42:43.678
<v Chris>It's following a very specific sequence using very specific tools,

00:42:43.678 --> 00:42:47.658
<v Chris>and it produces the same result every time. It's reliable. And I don't know

00:42:47.658 --> 00:42:50.678
<v Chris>why this is like one of the bigger conversations in this space,

00:42:50.678 --> 00:42:54.778
<v Chris>because it's so simple and straightforward and produces incredible results.

00:42:54.958 --> 00:42:59.378
<v Chris>So what did I do after I migrated from OpenClaw to Hermes? I brought up OpenCode.

00:42:59.858 --> 00:43:05.578
<v Chris>Put 25 bucks on OpenRouter, used Jippity55, and I had it just orchestrate all

00:43:05.578 --> 00:43:07.878
<v Chris>the tasks I normally have these agents do under OpenClaw.

00:43:08.078 --> 00:43:10.578
<v Chris>Now do it under Hermes. Watch everything that breaks.

00:43:10.838 --> 00:43:14.498
<v Chris>Wrong skill path, wrong tool code. What didn't it get right under this new system?

00:43:14.658 --> 00:43:17.598
<v Chris>And then it just went through boop, boop, boop, boop, boop, and fixed every

00:43:17.598 --> 00:43:19.978
<v Chris>agent line by line by line on anything that came up.

00:43:20.598 --> 00:43:23.618
<v Chris>And within like, I don't know, probably a day of just like, oh,

00:43:23.718 --> 00:43:25.138
<v Chris>I'll try this. How did it do? I was done.

00:43:25.898 --> 00:43:30.338
<v Chris>Everything had been caught and it was working. And that is such a powerful combination.

00:43:31.818 --> 00:43:35.198
<v Chris>I mean, I mean, there's the stuff I'm doing with these things is really incredible

00:43:35.198 --> 00:43:38.818
<v Chris>from from cutting clips to creating T-shirts. It's really amazing.

00:43:39.278 --> 00:43:42.578
<v Chris>And it's all going each point. You know, I have quality gates where humans have

00:43:42.578 --> 00:43:45.738
<v Chris>to interact and improve things like it's it's really solid.

00:43:46.418 --> 00:43:50.878
<v Chris>And doing such, I can get by on these models that probably by the end of next

00:43:50.878 --> 00:43:52.618
<v Chris>year, I'm going to be running on my own local hardware.

00:43:53.378 --> 00:43:56.918
<v Wes>Yeah, right. You kind of I think it plays to a lot of different strengths in

00:43:56.918 --> 00:44:00.858
<v Wes>that we've seen, you know, some models are good at, quote unquote,

00:44:01.178 --> 00:44:05.158
<v Wes>thinking. and doing complex planning or, you know, debating pros and cons or

00:44:05.158 --> 00:44:06.038
<v Wes>planning architecture.

00:44:06.198 --> 00:44:10.358
<v Wes>And other models are really reliable sort of tool callers and loot creatures.

00:44:10.598 --> 00:44:14.418
<v Wes>Yeah, exactly. Better hands than they are at, you know, actual sky-high architects.

00:44:14.858 --> 00:44:18.258
<v Wes>And so you can leverage both of those things and then helps as well,

00:44:18.338 --> 00:44:21.018
<v Wes>as you say, right, with the token budget of like, you only really need the top

00:44:21.018 --> 00:44:23.618
<v Wes>level of intelligence for certain parts of those tasks.

00:44:23.798 --> 00:44:27.458
<v Wes>And especially in the initial sort of training phase. And then maybe if something

00:44:27.458 --> 00:44:29.458
<v Wes>breaks or, you know, something goes awry or whatever, but.

00:44:29.458 --> 00:44:32.238
<v Chris>Yeah, or you have a big model change and maybe you want to run through it again

00:44:32.238 --> 00:44:36.238
<v Chris>and make sure nothing major changes or API goes from version one to version two.

00:44:36.498 --> 00:44:39.498
<v Chris>And yeah, yeah, do those kinds of updates. So you need a way for some kind of

00:44:39.498 --> 00:44:42.638
<v Chris>lifecycle management. So probably something that's get backed and something

00:44:42.638 --> 00:44:46.038
<v Chris>that has a startup document that tells a new fresh LLM session.

00:44:46.278 --> 00:44:48.378
<v Chris>These are where your skills are at. This is how I deploy them.

00:44:48.478 --> 00:44:52.158
<v Chris>And when you do that, all of my stuff is Nix backed.

00:44:52.478 --> 00:44:55.938
<v Chris>All the skills get deployed via Nix. So if the agent wants to update its skills,

00:44:56.078 --> 00:45:00.298
<v Chris>it has to stage it in the Nix repository first. and then everything is checked in via Git.

00:45:00.438 --> 00:45:03.458
<v Chris>So if a skill goes sideways, if I made a wrong update, I can roll back.

00:45:04.558 --> 00:45:09.198
<v Chris>And nothing goes live into production without going through the Nix process.

00:45:09.578 --> 00:45:13.498
<v Chris>And to me, this is where Hermes really, for just me personally,

00:45:13.598 --> 00:45:16.498
<v Chris>kind of went to the next level over OpenClaw where it felt like I was always

00:45:16.498 --> 00:45:18.038
<v Chris>fighting that with OpenClaw.

00:45:18.378 --> 00:45:22.378
<v Chris>Hermes just leans into the configuration I want. And for others,

00:45:22.438 --> 00:45:25.538
<v Chris>it totally supports other configurations. But for me, this integration was tight.

00:45:25.538 --> 00:45:28.798
<v Wes>I mean, and so what folks might not appreciate is that,

00:45:29.890 --> 00:45:34.550
<v Wes>you have spent a lot of time fighting with nix and open claw and i as have i

00:45:34.550 --> 00:45:36.130
<v Wes>i mean we started jointly maintaining

00:45:36.130 --> 00:45:39.950
<v Wes>a custom package for it we did yeah because like we were just github.

00:45:39.950 --> 00:45:42.950
<v Chris>Actions building stuff for us in the background after each update.

00:45:42.950 --> 00:45:44.450
<v Wes>Yeah and it would like strip any

00:45:44.450 --> 00:45:49.810
<v Wes>non-linux non-x86 part from like the npm packages there was so much like.

00:45:49.810 --> 00:45:52.010
<v Chris>Windows cuda stuff in there and mac os stuff.

00:45:52.010 --> 00:45:56.970
<v Wes>Which did not make sense to download over starlink so it's like with open claw

00:45:56.970 --> 00:46:02.050
<v Wes>it's right It's like an NPM project, and then there is Nix-OpenClaw,

00:46:02.110 --> 00:46:05.610
<v Wes>which is hosted under their org and is, I don't know, semi-official.

00:46:05.750 --> 00:46:09.530
<v Wes>It seemed to be community-done, but recognized as a thing by the project.

00:46:09.730 --> 00:46:13.510
<v Chris>And didn't really seem to follow releases, but more like just snapshots from development.

00:46:13.570 --> 00:46:16.710
<v Chris>So there wasn't like a one-to-one, there's been an OpenClaw release,

00:46:16.730 --> 00:46:19.530
<v Chris>and it doesn't necessarily match to this Nix-OpenClaw release.

00:46:19.690 --> 00:46:20.310
<v Chris>Like, the two are not insane.

00:46:20.350 --> 00:46:24.350
<v Wes>Yes, it was more like, where is Nix-OpenClaw caught up to in the commits from the upstream?

00:46:24.730 --> 00:46:27.810
<v Wes>And so it worked, and it was there, but sometimes there were delays.

00:46:27.810 --> 00:46:29.950
<v Wes>They've been better, it seems, recently, but there was a while,

00:46:30.130 --> 00:46:33.130
<v Wes>especially when we were forced to sort of start our own, that it was taking

00:46:33.130 --> 00:46:34.490
<v Wes>a little while to get updates.

00:46:35.470 --> 00:46:39.210
<v Wes>Versus Hermes, they just have a flaked on Nix right in there.

00:46:39.330 --> 00:46:43.650
<v Wes>They're using UV and the UV to Nix sort of Python integration right there.

00:46:43.870 --> 00:46:47.970
<v Wes>It seems like a well-done thing that is intentional, and that seems like a sign

00:46:47.970 --> 00:46:50.350
<v Wes>of the overall sort of difference between the projects.

00:46:50.530 --> 00:46:53.310
<v Chris>Oh, and it makes my life so much easier. And if it's something I'm running in

00:46:53.310 --> 00:46:59.370
<v Chris>production on that particular system, it just makes sense. A couple other things I like is it has a 2E.

00:46:59.970 --> 00:47:02.710
<v Chris>I know that's silly, but what I found is,

00:47:04.149 --> 00:47:09.069
<v Chris>I can code, or whatever, I can do long sessions in a TUI.

00:47:09.509 --> 00:47:12.729
<v Chris>All day, right? But Telegram, that's for one-shots.

00:47:13.369 --> 00:47:16.749
<v Chris>Telegram's one-shots, and I could not imagine building an application,

00:47:16.889 --> 00:47:19.609
<v Chris>or usually for us, it's some back-end tool via Telegram.

00:47:19.689 --> 00:47:20.989
<v Wes>It's just not the right interface for it.

00:47:21.069 --> 00:47:21.649
<v Chris>I can't do it.

00:47:21.869 --> 00:47:24.809
<v Brent>Especially, like, the bots are good. It's surrounded by distractions, too, right?

00:47:25.369 --> 00:47:26.209
<v Chris>Yeah, yeah.

00:47:26.669 --> 00:47:28.909
<v Brent>Give me a minimal TUI. That's what I want.

00:47:29.849 --> 00:47:32.889
<v Chris>Yeah, people know I'm online, they're chat-chatting with me, and the

00:47:32.889 --> 00:47:35.649
<v Chris>TUI is really good it's really good they've really done

00:47:35.649 --> 00:47:38.529
<v Chris>a good job i mean it's like you know up there with open code

00:47:38.529 --> 00:47:41.249
<v Chris>and codex and the other ones and then brent you

00:47:41.249 --> 00:47:43.909
<v Chris>might like this feature i just started playing with it just to

00:47:43.909 --> 00:47:49.569
<v Chris>talk about it on the show and kind of ended up liking it is it has a built-in

00:47:49.569 --> 00:47:54.889
<v Chris>kanban board for agent orchestration and project management and you what you

00:47:54.889 --> 00:47:58.609
<v Chris>can do is provide it with a spec and then as a spec decomposer and it breaks

00:47:58.609 --> 00:48:01.289
<v Chris>it down into individual steps and builds out a Kanban board.

00:48:01.729 --> 00:48:05.449
<v Chris>Kanban. And then you can watch the Kanban and see like what's in progress,

00:48:05.649 --> 00:48:07.369
<v Chris>what's blocked, what's the next thing.

00:48:07.509 --> 00:48:10.509
<v Chris>You can move things around, add your own, open them up, see the work log,

00:48:10.709 --> 00:48:12.229
<v Chris>add comments, inject comments.

00:48:12.669 --> 00:48:15.929
<v Chris>So it's got boards, tasks, links, workspaces.

00:48:16.449 --> 00:48:20.469
<v Chris>You can assign different agents, different jobs. You can have a default coder

00:48:20.469 --> 00:48:21.949
<v Chris>agent. Mine's called Scotty.

00:48:23.509 --> 00:48:27.649
<v Wes>I think the thing that's most interesting for me here is it's neat how it's

00:48:27.649 --> 00:48:28.889
<v Wes>like it's not just the board.

00:48:29.089 --> 00:48:29.229
<v Chris>Yeah.

00:48:29.329 --> 00:48:33.869
<v Wes>It's sort of the integration with like a work dispatcher to actually run the board.

00:48:34.149 --> 00:48:38.689
<v Chris>Yes. That's the best part. And it's a CLI. It's a database. So you can have

00:48:38.689 --> 00:48:41.809
<v Chris>the agents just use it for their own backend task management,

00:48:41.809 --> 00:48:46.429
<v Chris>and then you just use the dashboard to look at it, or you can interact with

00:48:46.429 --> 00:48:48.329
<v Chris>it and create tasks for them. It's either one.

00:48:48.649 --> 00:48:48.849
<v Wes>I like that.

00:48:48.849 --> 00:48:51.589
<v Chris>It's not just a throwaway thing. It's deeply integrated, and that is nice.

00:48:52.129 --> 00:48:55.749
<v Chris>And because there's a CLI for it, the agents can just, oh, yeah,

00:48:55.769 --> 00:48:58.329
<v Chris>I'll go update that task for you. No problem. So you don't even have to do that part.

00:48:58.749 --> 00:49:00.829
<v Chris>But it is a nice way to manage all of it.

00:49:01.289 --> 00:49:03.829
<v Chris>It's just an example of something they've built. And they've built in several

00:49:03.829 --> 00:49:06.309
<v Chris>things that are just nice to have quality of life stuff.

00:49:07.208 --> 00:49:10.308
<v Chris>And I like it. I like the design. I like the performance. I like the reliability

00:49:10.308 --> 00:49:13.348
<v Chris>so far. We've gone through a couple updates. I like it.

00:49:13.588 --> 00:49:19.248
<v Brent>I do see a really, hmm, fascinating little detail here in their quick install.

00:49:19.428 --> 00:49:23.028
<v Brent>It says, oh, yeah, quick install. You can do it on Linux, macOS, WSL2.

00:49:23.528 --> 00:49:27.308
<v Brent>All of those are expected. And the fourth one here, it says Termux.

00:49:28.028 --> 00:49:31.928
<v Brent>So they're officially supporting running this thing on an Android device.

00:49:32.948 --> 00:49:39.028
<v Brent>I am curious what we can do with that. because I don't know.

00:49:39.248 --> 00:49:39.568
<v Chris>Interesting.

00:49:39.568 --> 00:49:43.208
<v Brent>That just seems crazy and we should do it, you know, we should do the things that you don't have to.

00:49:43.408 --> 00:49:44.988
<v Chris>So that is interesting.

00:49:44.988 --> 00:49:46.688
<v Brent>Maybe we add that to the to-do list.

00:49:47.168 --> 00:49:50.748
<v Chris>I want to just, I'm going to wrap up this with just an anecdote of,

00:49:50.888 --> 00:49:52.788
<v Chris>I think these are more powerful than people realize.

00:49:53.788 --> 00:49:58.848
<v Chris>I actually recently was using my Hermes agent in combination with a tool that

00:49:58.848 --> 00:50:01.408
<v Chris>I think we should talk about in the future called Windows MCP.

00:50:02.128 --> 00:50:07.008
<v Chris>And Windows MCP lets you completely remote control the Windows desktop.

00:50:07.248 --> 00:50:11.228
<v Chris>I mean everything. Resize Windows, click a button, process management,

00:50:11.988 --> 00:50:15.748
<v Chris>everything that you can do through the Windows desktop, you can basically do

00:50:15.748 --> 00:50:16.968
<v Chris>through this Windows MCP.

00:50:17.108 --> 00:50:17.908
<v Wes>So install Linux.

00:50:18.128 --> 00:50:23.948
<v Chris>Well, so what I did is I had my Hermes agent reach in and control a dedicated

00:50:23.948 --> 00:50:26.908
<v Chris>Windows laptop that I set up to run this tool called Forescan,

00:50:27.148 --> 00:50:30.668
<v Chris>which reads proprietary forward air codes from cars.

00:50:31.008 --> 00:50:36.588
<v Chris>And using this, I had the agent live troubleshooting the air codes that were coming in.

00:50:37.208 --> 00:50:40.528
<v Chris>So I would do the button pressing. I'd push on the pedal. I'd turn the key.

00:50:40.688 --> 00:50:44.788
<v Chris>And the agent would tell me when and then it would capture the data, show me the charts.

00:50:45.048 --> 00:50:49.228
<v Chris>And we were able to prove that the computer was sending a signal that we weren't

00:50:49.228 --> 00:50:52.308
<v Chris>sure it was being sent or not. And then we could see when the voltage hit and dropped.

00:50:52.428 --> 00:50:53.068
<v Wes>That's so cool.

00:50:53.348 --> 00:51:00.068
<v Chris>And this is just using a set of tools that I put together like voltmeters, the Windows MCP, 4Scan.

00:51:00.248 --> 00:51:04.968
<v Chris>Oh, and then I obviously, probably worth mentioning, I had a USB to ODB2 dongle.

00:51:06.038 --> 00:51:11.898
<v Chris>And I started looking into this. There are devices you can buy out there that

00:51:11.898 --> 00:51:17.718
<v Chris>are native Linux devices that bring in ODB2 data right into your Linux box.

00:51:17.718 --> 00:51:21.918
<v Chris>And there's pre-existing Python libraries that know how to read and interpret that data.

00:51:22.178 --> 00:51:24.738
<v Brent>It is an unbelievable little world out there.

00:51:26.024 --> 00:51:30.204
<v Chris>It's amazing where you could build a little diagnostic tool set where you hook

00:51:30.204 --> 00:51:33.024
<v Chris>cars up to agents with voltmeters and ODB2 scanners.

00:51:33.344 --> 00:51:36.544
<v Wes>And this is kind of really the test of the harness, right? Because this is the goal.

00:51:37.024 --> 00:51:41.284
<v Wes>These things are more useful, the better you can enrich their context with all

00:51:41.284 --> 00:51:46.764
<v Wes>of this useful information, and then now also have them have the right tools to interact with it.

00:51:46.844 --> 00:51:50.584
<v Chris>And this was an example where the multi-chat system is useful.

00:51:50.784 --> 00:51:52.324
<v Chris>And Hermes supports handoff.

00:51:52.724 --> 00:51:55.904
<v Chris>It also supports a few other things like slash goal, which is becoming really

00:51:55.904 --> 00:52:00.204
<v Chris>popular, but slash handoff is this neat idea because when you launch in the

00:52:00.204 --> 00:52:01.904
<v Chris>TUI, you're generally in your own gateway session.

00:52:02.464 --> 00:52:06.024
<v Chris>That's optional, but that's the default. But when you want to move to Telegram,

00:52:06.204 --> 00:52:07.604
<v Chris>you can do a handoff to Telegram.

00:52:07.884 --> 00:52:12.204
<v Chris>So I set it all up before I go out to the shop, do a handoff to Telegram.

00:52:12.324 --> 00:52:15.064
<v Chris>Then when it's telling me, okay, press the accelerator, that stuff's coming

00:52:15.064 --> 00:52:17.144
<v Chris>on Telegram because I'm out there, I'm in the shop, I'm on my phone.

00:52:17.964 --> 00:52:20.844
<v Chris>And then when it's time to go figure out what to do with the data,

00:52:21.004 --> 00:52:23.664
<v Chris>hand back to the TUI and get down to the research.

00:52:23.664 --> 00:52:26.644
<v Chris>That research, by the way, that gets outsourced to my agent,

00:52:26.784 --> 00:52:29.604
<v Chris>Dax, that goes out and actually does the research with all the APIs and skills

00:52:29.604 --> 00:52:33.084
<v Chris>she has for research, while Laura and I continue to work on the data that we get back.

00:52:33.224 --> 00:52:36.264
<v Chris>And then Dax comes back in another thread with her results.

00:52:36.464 --> 00:52:40.804
<v Chris>And it's just, I don't think people are really fully grokking how far you can take this.

00:52:40.984 --> 00:52:43.344
<v Chris>Like, right now, people are creating, like, fart apps. And, you know,

00:52:43.524 --> 00:52:45.684
<v Chris>remember when iPhones first came out?

00:52:45.864 --> 00:52:45.984
<v Wes>Yeah.

00:52:46.104 --> 00:52:49.784
<v Chris>Everybody made, like, beer apps where you could, like, you drink the beer.

00:52:49.944 --> 00:52:53.464
<v Chris>Like, that's the stage we're at right now with most AI-generated code.

00:52:53.664 --> 00:52:57.664
<v Chris>But when you combine the features of these things with something like an agentic

00:52:57.664 --> 00:53:01.224
<v Chris>harness that allows you to tie into different things like a Linux CLI and an

00:53:01.224 --> 00:53:05.744
<v Chris>MCP, you start stacking some stuff and it starts getting really, really powerful.

00:53:05.744 --> 00:53:09.804
<v Chris>And it feels like Hermes is probably the better platform to build that on,

00:53:09.904 --> 00:53:11.804
<v Chris>for me at least, than OpenClaw.

00:53:12.564 --> 00:53:13.844
<v Chris>At least that's kind of my take, right?

00:53:16.993 --> 00:53:21.073
<v Chris>I just want to take a moment and thank our members. It's very light sponsorship this year.

00:53:21.233 --> 00:53:25.233
<v Chris>We have Nebula, and that's it. So if it wasn't for Determinant Systems and the

00:53:25.233 --> 00:53:28.533
<v Chris>members, we'd be cooked, as the kiddos say.

00:53:28.713 --> 00:53:31.913
<v Chris>But the members, they keep us cooking, which is a good thing.

00:53:32.593 --> 00:53:35.533
<v Chris>LinuxUnplugged.com slash membership or Jupiter.party if you want to support

00:53:35.533 --> 00:53:38.253
<v Chris>all the shows. The high-level features are you keep us going.

00:53:38.673 --> 00:53:42.173
<v Chris>Independent media is a pretty rare thing. The Linux magazines couldn't make it work.

00:53:42.253 --> 00:53:45.173
<v Chris>We're trying to make it work in podcasting. you get an ad-free

00:53:45.173 --> 00:53:48.973
<v Chris>version of the show or the bootleg version bootleg clock in an hour 31 right

00:53:48.973 --> 00:53:52.613
<v Chris>now lots of content in there just a way that we can say thank you give you more

00:53:52.613 --> 00:53:57.193
<v Chris>show as it were and uh you can support us by going to linuxunplugged.com membership

00:53:57.193 --> 00:54:03.113
<v Chris>jupiter.party for that you set it on autopilot or send us a boost support each individual episode.

00:54:05.973 --> 00:54:14.953
<v Brent>As always we've got a couple baller boosters this week and up first turd ferguson with 33,333 sats.

00:54:17.293 --> 00:54:21.913
<v Brent>Did you guys see Greg KH call for more Rust kernel developers?

00:54:22.193 --> 00:54:25.753
<v Brent>Have they built it, that Rust support and no one has come?

00:54:26.093 --> 00:54:30.113
<v Brent>Seems like if it was popular, they'd have the opposite problem they have right now.

00:54:30.433 --> 00:54:36.753
<v Chris>Well, speaking of agentic clipping, we have a clip of Greg KH talking about this from Rust Week.

00:54:37.173 --> 00:54:41.153
<v Chris>I don't know how Greg gets out there. He's a busy guy. And Wes you collected

00:54:41.153 --> 00:54:45.753
<v Chris>something like 15 clips from this yeah, and this happens to be relevant to turds question.

00:54:47.193 --> 00:54:48.573
<v Clips>But we need your help,

00:54:50.753 --> 00:54:55.953
<v Clips>We have a ton of work to do the rest for Linux team as a whole bunch of projects

00:54:55.953 --> 00:54:58.053
<v Clips>They have a great their own,

00:55:00.235 --> 00:55:03.975
<v Clips>Was it WebWord? It's not Zulip. Anyway, there's a good list.

00:55:04.115 --> 00:55:07.595
<v Clips>They have a mailing list. There's a bunch of beginner stuff to get involved in.

00:55:07.775 --> 00:55:11.075
<v Clips>A lot of fix-mes, a lot of stuff. They're doing a really, really good job.

00:55:11.735 --> 00:55:17.595
<v Clips>I need your help. If you want to write some kernel code, please do this stuff. And this is good.

00:55:18.075 --> 00:55:20.835
<v Chris>I don't get the sense that they're desperate for developers.

00:55:21.475 --> 00:55:22.915
<v Chris>That wasn't the sense I got from that clip.

00:55:23.215 --> 00:55:26.455
<v Chris>I got the sense they want more, like they've built it and they would like more to come.

00:55:26.575 --> 00:55:30.015
<v Wes>And I think that in the leadership, there is a hope, right?

00:55:30.015 --> 00:55:34.835
<v Wes>That Rust presents an opportunity to collect more young folk to continue the

00:55:34.835 --> 00:55:37.995
<v Wes>project on and be the next generation of people who will work with it because

00:55:37.995 --> 00:55:39.635
<v Wes>Rust is just a more modern,

00:55:39.875 --> 00:55:44.095
<v Wes>friendly language, and you might use it working for a startup or a tech company

00:55:44.095 --> 00:55:47.775
<v Wes>and then be able to port at least some of that knowledge over to work with the

00:55:47.775 --> 00:55:49.535
<v Wes>kernel in a way that you're just not going to with C.

00:55:49.695 --> 00:55:53.315
<v Chris>I do think it's notable, A, that Greg is being such an advocate for this,

00:55:53.415 --> 00:55:57.075
<v Chris>and B, it's a pretty good presentation. It's technical, but it's a pretty good

00:55:57.075 --> 00:55:59.595
<v Chris>presentation. He kind of just tries to de-escalate the fear around it all.

00:56:00.055 --> 00:56:03.535
<v Wes>Yeah, and there's also good deets about, you know, like they've brought some of the improvements.

00:56:04.215 --> 00:56:07.575
<v Wes>Like if you try to implement something like the Rust API way,

00:56:07.715 --> 00:56:12.495
<v Wes>you can do a similar thing and see and get not the same exact benefits, right?

00:56:12.575 --> 00:56:15.355
<v Wes>But you get safer code out of it, even if you don't get the compiler complaining

00:56:15.355 --> 00:56:16.295
<v Wes>about you if you break it.

00:56:17.035 --> 00:56:20.635
<v Wes>But it can be a good way to organize your thinking. So it's improving it even

00:56:20.635 --> 00:56:23.015
<v Wes>in the parts that aren't Rust yet, which is kind of neat.

00:56:23.235 --> 00:56:27.635
<v Chris>Great. Hybrid sarcasm comes in with 22,222 sats.

00:56:29.055 --> 00:56:34.115
<v Chris>And it just says boost thank you hybrid appreciate the support this week we

00:56:34.115 --> 00:56:37.255
<v Chris>need it boost received thank you very much your.

00:56:37.255 --> 00:56:40.035
<v Wes>Inner child comes in with a row of ducks,

00:56:42.431 --> 00:56:45.611
<v Wes>Not seen last week's baller boost on Fountain. What gives?

00:56:45.991 --> 00:56:49.451
<v Wes>Do you prefer Peep's Watch on Yub Dub or Fountain?

00:56:49.671 --> 00:56:52.671
<v Wes>What are the perks for joining the Jupiter Club for $15 a month?

00:56:52.791 --> 00:56:56.491
<v Wes>And lastly, what would it take to get you guys to come to a show in St.

00:56:56.671 --> 00:56:58.531
<v Wes>Louis in Vance Crow Studio?

00:56:58.671 --> 00:57:02.271
<v Chris>God, I'd love to go to St. Louis. How do I get to these places?

00:57:02.631 --> 00:57:03.731
<v Chris>That is something to crack.

00:57:03.731 --> 00:57:04.551
<v Wes>That's a good question.

00:57:04.651 --> 00:57:05.211
<v Chris>Let's take it in order.

00:57:05.431 --> 00:57:05.811
<v Wes>Good question, Intertile.

00:57:05.811 --> 00:57:09.751
<v Chris>I suppose we probably prefer you listen to it wherever you want,

00:57:09.951 --> 00:57:11.591
<v Chris>really. I don't know if we have a strong preference.

00:57:11.591 --> 00:57:13.431
<v Wes>Yeah, it kind of works what works for you.

00:57:13.671 --> 00:57:16.991
<v Chris>Yeah. Really, that's why we put it as many places as we can.

00:57:17.171 --> 00:57:20.871
<v Chris>I guess a tiny preference to a podcast app.

00:57:21.031 --> 00:57:26.551
<v Wes>Yeah. If that's what gets you using a podcast app over just using YouTube, then do that.

00:57:26.631 --> 00:57:26.911
<v Chris>Yeah, yeah.

00:57:26.991 --> 00:57:28.351
<v Wes>But otherwise, use what you do.

00:57:28.451 --> 00:57:30.291
<v Brent>Wes, it's Yubtub, I think.

00:57:30.291 --> 00:57:31.351
<v Wes>My bad. My bad.

00:57:31.831 --> 00:57:35.511
<v Chris>The Jupiter Party gets you the bootleg versions of all the shows.

00:57:35.711 --> 00:57:39.991
<v Chris>Really, what we're trying to do there is we're just trying to make it feasible to stay independent.

00:57:39.991 --> 00:57:43.811
<v Chris>And so we have a couple of value-for-value options, and that's just been a popularly

00:57:43.811 --> 00:57:50.171
<v Chris>requested one because what we do is not particularly interesting to apparently

00:57:50.171 --> 00:57:51.931
<v Chris>most of the rest of the tech world anymore.

00:57:52.231 --> 00:57:56.871
<v Chris>They all care about AI and the LLM stuff and don't seem to realize it all runs on top of Linux.

00:57:57.471 --> 00:58:01.271
<v Chris>Hello! We're still here, but thankfully the audience still cares.

00:58:01.411 --> 00:58:05.951
<v Chris>And so there's not an audience of sponsors to really make a show for as much

00:58:05.951 --> 00:58:07.911
<v Chris>these days, but there's still an audience of people that care.

00:58:08.431 --> 00:58:11.351
<v Chris>And so it hasn't always worked, but we're giving it our best.

00:58:11.471 --> 00:58:15.651
<v Chris>And so the Jupiter Party sort of finances, if you like multiple shows, there you go.

00:58:15.811 --> 00:58:17.131
<v Chris>It's covering multiple shows where

00:58:17.131 --> 00:58:19.531
<v Chris>we have just the membership for Linux Unplugged, if that's just your bag.

00:58:20.151 --> 00:58:23.491
<v Chris>And lastly, yes, we would love to come to St. Louis. How we ever make that happen,

00:58:23.531 --> 00:58:25.991
<v Chris>I don't know. Brent can't keep his van on the road.

00:58:26.131 --> 00:58:28.971
<v Wes>Yeah, once we get that fixed, then maybe we need to figure out some sort of

00:58:28.971 --> 00:58:30.251
<v Wes>race there, a reason to race.

00:58:30.391 --> 00:58:33.711
<v Chris>Yeah, that'll get us going. That'll get us going. I like where your head's at.

00:58:33.731 --> 00:58:35.451
<v Wes>My new souped-up van to compete against.

00:58:36.051 --> 00:58:39.651
<v Chris>The West Wayne. West, West, West, we got to come up with something.

00:58:41.114 --> 00:58:44.494
<v Chris>The pain. No, we got nothing. We got to get it. Like, bang bus.

00:58:44.694 --> 00:58:47.234
<v Chris>Man, I think with that name, it just had to happen.

00:58:47.394 --> 00:58:52.814
<v Brent>You know, I'm noticing Wes doesn't have a rig. So this might be the year of the Wes rig.

00:58:52.954 --> 00:58:56.914
<v Chris>We need a name. If we had a great name for, like, a Wes something.

00:58:57.414 --> 00:58:59.634
<v Wes>It's just that private train cars are very expensive.

00:59:00.354 --> 00:59:02.474
<v Chris>Yeah, that would be. The pain train would be.

00:59:02.474 --> 00:59:03.454
<v Brent>The pain train.

00:59:05.634 --> 00:59:06.634
<v Brent>That's so perfect.

00:59:07.334 --> 00:59:11.474
<v Chris>Could we get away with calling a van the pain train? because I feel like that would also...

00:59:11.474 --> 00:59:12.714
<v Wes>We'll do like a train wrap.

00:59:12.994 --> 00:59:14.214
<v Chris>Yeah, right, a train wrap, yeah.

00:59:14.334 --> 00:59:19.934
<v Brent>Choo-choo. Well, the dude is abiding again this week with 19,000 sets.

00:59:25.414 --> 00:59:29.874
<v Brent>Well, I wanted to note that I appreciate your takes on the latest AI news.

00:59:30.114 --> 00:59:34.714
<v Brent>I deployed Hermes to a VM with my Proxmox node and started playing with it.

00:59:34.874 --> 00:59:39.734
<v Brent>Currently using the OpenCodeGo subscription, I picked Quen 3.6+,

00:59:39.734 --> 00:59:43.834
<v Brent>which was $5 for the first month just to get the hang of it.

00:59:43.934 --> 00:59:49.854
<v Brent>I set it up with Telegram. It's kind of surreal to ask your bot questions and see the reply.

00:59:50.274 --> 00:59:53.734
<v Brent>I'm curious, what models or subscriptions do you guys use?

00:59:53.914 --> 00:59:59.754
<v Brent>And also how much, quote, power you give them to perform tasks on your behalf. Cheers.

01:00:00.474 --> 01:00:04.414
<v Chris>I'll start. I'll start with the answer. I'll say this.

01:00:05.134 --> 01:00:10.354
<v Chris>I have really liked Minimax. And so I broke down and I bought their yearly sub

01:00:10.354 --> 01:00:12.314
<v Chris>while they had it on sale back in like April.

01:00:14.154 --> 01:00:17.614
<v Chris>So I'm so maxed out on tokens. Like I have so many tokens through Minimax.

01:00:17.714 --> 01:00:19.574
<v Chris>It's been wonderful not to worry about that.

01:00:19.714 --> 01:00:25.294
<v Chris>And then I kind of use the Zen platform or open router as kind of like when

01:00:25.294 --> 01:00:28.934
<v Chris>I need a hit of one of the larger models. And that's worked pretty well for me.

01:00:30.434 --> 01:00:35.814
<v Chris>I do think that what I'm about to say is going to get me a little bit in trouble.

01:00:36.234 --> 01:00:37.554
<v Chris>But I'm just going to admit to it,

01:00:38.450 --> 01:00:41.890
<v Chris>I set them up on their own dedicated hardware for a reason. They have their

01:00:41.890 --> 01:00:44.150
<v Chris>own dedicated OS with his own dedicated Git repo.

01:00:45.690 --> 01:00:49.950
<v Chris>So I don't really see the point to restricting the crap out of them.

01:00:50.050 --> 01:00:53.470
<v Chris>And I don't really give them access to public chats.

01:00:53.930 --> 01:00:58.250
<v Chris>I don't really use, like, I don't just go spelunking through random emails with them.

01:00:58.470 --> 01:01:02.350
<v Chris>So I'm the only person they really talk to except for me and the wife.

01:01:02.390 --> 01:01:06.290
<v Chris>It seems like a pretty safe set. So I give them full YOLO mode,

01:01:06.430 --> 01:01:10.210
<v Chris>which I constantly have to argue with them about because all of these things

01:01:10.210 --> 01:01:12.010
<v Chris>want to be excessively safe by default.

01:01:12.290 --> 01:01:16.090
<v Chris>All these people that are worried, like, trust me, they're obnoxiously safe.

01:01:16.210 --> 01:01:19.970
<v Chris>They're obnoxiously safe. And, like, I have to constantly explain to them this

01:01:19.970 --> 01:01:23.050
<v Chris>is dedicated hardware. This is a purpose-built install.

01:01:23.450 --> 01:01:27.710
<v Chris>The entire reason is, like, this thing is supposed to manage this entire box. And I do.

01:01:27.770 --> 01:01:32.570
<v Chris>I want them to manage the entire box. I want them to update the services, update the OS, all of it.

01:01:32.570 --> 01:01:36.810
<v Chris>Install new stuff all of it so if there's a YOLO mode I'm using it for the most

01:01:36.810 --> 01:01:41.850
<v Chris>case on my Hermes system I sometimes go a little more careful um if I'm say

01:01:41.850 --> 01:01:46.510
<v Chris>on an Ubuntu box or Fedora box or a Mac which I haven't really done but I would be a lot more.

01:01:46.510 --> 01:01:48.890
<v Brent>Careful like any box that doesn't have roll back by default.

01:01:48.890 --> 01:01:52.530
<v Chris>Basically yeah or declarative configuration that would break obviously like

01:01:52.530 --> 01:01:55.330
<v Chris>that's there because Nix OS has

01:01:55.330 --> 01:02:00.950
<v Chris>those breaks in there I get to be a little bit more YOLO on the AI side.

01:02:01.150 --> 01:02:04.870
<v Chris>But if I'm using, I have seen it go sideways on an Ubuntu box specifically.

01:02:04.870 --> 01:02:06.330
<v Chris>You've got to be careful there and stuff like,

01:02:06.999 --> 01:02:12.359
<v Chris>But I go full blast. If there's a dash dash YOLO, I'm doing it. What about you, Wes?

01:02:12.519 --> 01:02:17.399
<v Wes>Yeah, I mean, I think it kind of depends on, I agree, I also am running it on its own VM.

01:02:17.899 --> 01:02:21.459
<v Wes>So it has root in its own box. That part I don't mind.

01:02:22.159 --> 01:02:25.799
<v Wes>I think it just kind of depends on what tools you connect it to, right?

01:02:25.859 --> 01:02:29.759
<v Wes>Like what passwords are, what keys does it have for what things,

01:02:29.979 --> 01:02:32.039
<v Wes>what MCP tools do you connect in?

01:02:32.039 --> 01:02:36.639
<v Chris>I also think this is an argument why MCPs are still valid in the age of OpenClaw

01:02:36.639 --> 01:02:44.699
<v Chris>and these agents is because MCPs give you a place to kind of have control over what the agent can do.

01:02:44.839 --> 01:02:47.859
<v Chris>And that seems like the proper place to bake that in because that's going to

01:02:47.859 --> 01:02:51.639
<v Chris>be more agent agnostic and more setup agnostic and system agnostic.

01:02:51.899 --> 01:02:55.459
<v Chris>So I still think MCPs play a real good role here in controlling what the agent

01:02:55.459 --> 01:02:56.379
<v Chris>actually can and can't do.

01:02:56.499 --> 01:03:00.139
<v Wes>If the only way it can talk to X thing over here is it has to take a snapshot

01:03:00.139 --> 01:03:02.839
<v Wes>first and then do the change and that's just sort of baked into the command

01:03:02.839 --> 01:03:06.799
<v Wes>or it only has read-only access, then you just kind of have a limit on what

01:03:06.799 --> 01:03:07.999
<v Wes>it can possibly screw up.

01:03:08.099 --> 01:03:12.039
<v Chris>And this is also where, if you do want to go the CLI route for some of these

01:03:12.039 --> 01:03:16.539
<v Chris>tools, you know, it's not a lot of work to just have the agent create a safe

01:03:16.539 --> 01:03:21.539
<v Chris>wrapper where it does things read only by default. And so it isn't calling the actual CLI tool.

01:03:21.659 --> 01:03:25.159
<v Chris>It's calling a wrapper that calls the tool. And that wrapper has some safeties built into it.

01:03:25.279 --> 01:03:27.919
<v Wes>Of course, NixOS makes that very easy, but you can do that on any system.

01:03:27.999 --> 01:03:31.839
<v Chris>Yes, yes. So that's just another way where, so it's not like I'm just totally

01:03:31.839 --> 01:03:36.759
<v Chris>crazy with it, But with these different pieces combined, I am able to have the

01:03:36.759 --> 01:03:38.879
<v Chris>agent have complete control over the infrastructure.

01:03:39.539 --> 01:03:42.339
<v Chris>But you do have to be careful when it comes to a security standpoint and all

01:03:42.339 --> 01:03:44.639
<v Chris>of that. You want to make sure that things lock down and not hanging out in

01:03:44.639 --> 01:03:46.719
<v Chris>like public chats and things like that.

01:03:46.859 --> 01:03:48.979
<v Wes>And there's a lot of different ways to rig it. So it kind of depends on your

01:03:48.979 --> 01:03:51.059
<v Wes>own how you like to run things, right?

01:03:51.159 --> 01:03:54.779
<v Wes>Like it can just be a thing that lives in your sort of CI automation pipelines

01:03:54.779 --> 01:03:58.539
<v Wes>or it can be a personal assistant that's talking to you on Telegram or anything in between.

01:03:58.539 --> 01:04:02.439
<v Chris>And by default, the way Hermes came out of the box was it was,

01:04:02.519 --> 01:04:04.659
<v Chris>you know, for stuff that was going to need a CLI system command,

01:04:04.859 --> 01:04:07.499
<v Chris>it's just going to ask me. And I could do allow once, allow always.

01:04:08.527 --> 01:04:11.567
<v Chris>You know, so for the first 30 or 40 times I do some, you know,

01:04:11.687 --> 01:04:13.727
<v Chris>whatever, it's going to ask me and I'll just say allow a bunch of times.

01:04:13.847 --> 01:04:16.747
<v Chris>And it would, in theory, eventually build out a whitelist that it's allowed

01:04:16.747 --> 01:04:17.927
<v Chris>to do and it would be fine.

01:04:18.547 --> 01:04:21.647
<v Wes>It also, it's just, it's funny how much of this stuff, like a lot of the open

01:04:21.647 --> 01:04:23.547
<v Wes>source and sort of infrastructure is code.

01:04:23.687 --> 01:04:28.427
<v Wes>And just a lot of the principles that folks in our space talk about really do pay dividends.

01:04:28.567 --> 01:04:30.947
<v Wes>And another of those is like, if you have a nice mesh network setup,

01:04:31.087 --> 01:04:31.747
<v Wes>then it's another way, right?

01:04:31.807 --> 01:04:35.307
<v Wes>Like you can kind of have, give it its own identity on the mesh and then use

01:04:35.307 --> 01:04:38.167
<v Wes>sort of the mesh firewalls or other firewall systems and ACLs.

01:04:38.167 --> 01:04:40.087
<v Wes>To control what it has access to that way, too.

01:04:40.247 --> 01:04:46.707
<v Chris>And I have to say Nebula is so good for this because the agents can stand up

01:04:46.707 --> 01:04:48.647
<v Chris>the entire Nebula network on their own.

01:04:48.927 --> 01:04:54.647
<v Chris>If you have the magic of SSH, just the agents will stand up the entire network.

01:04:54.847 --> 01:04:59.927
<v Chris>And there's no API key you have to go beg for. There's no Google sign-in you have to do.

01:05:00.267 --> 01:05:07.147
<v Chris>From zero, from prompt, they can stand up a secure mesh network without any

01:05:07.147 --> 01:05:08.707
<v Chris>other company's permission or involvement.

01:05:08.747 --> 01:05:11.027
<v Chris>It's so effing powerful.

01:05:11.587 --> 01:05:16.207
<v Chris>This is so, I'm using this for my home assistants that are on separate networks,

01:05:16.227 --> 01:05:19.547
<v Chris>but I want to have a, when you have three different home assistants,

01:05:19.707 --> 01:05:21.427
<v Chris>you inevitably want one dashboard, right?

01:05:21.587 --> 01:05:24.527
<v Chris>You want to be able to control all of the different stuff from one screen,

01:05:24.587 --> 01:05:28.327
<v Chris>because one's for the chicken coop, one's for the RV, and one's for the studio,

01:05:28.507 --> 01:05:30.827
<v Chris>right? I'm not some crazy baller, it's just I got chickens.

01:05:31.167 --> 01:05:35.327
<v Chris>Now I got three of these things, and I want one dashboard with the buttons for

01:05:35.327 --> 01:05:37.647
<v Chris>the lights and the crap and the stuff that I do all the time.

01:05:37.667 --> 01:05:41.507
<v Chris>I don't want to have to load up three different home assistance systems. Well, guess what?

01:05:41.787 --> 01:05:44.227
<v Chris>They're all on three different networks, but Nebula, boop, boop,

01:05:44.347 --> 01:05:47.027
<v Chris>boop, boop, ties it all together so simply, builds it out so quick.

01:05:47.587 --> 01:05:49.207
<v Chris>It's really great. Anyways, it's just...

01:05:50.146 --> 01:05:54.606
<v Chris>I think there's so much advantage if you can build the right harness and apparatus

01:05:54.606 --> 01:05:56.726
<v Chris>around it so you can give them some power.

01:05:57.146 --> 01:06:00.106
<v Chris>What they can do for you is save you a crap ton of time.

01:06:00.446 --> 01:06:05.566
<v Chris>And it lets me enjoy infrastructure and free software projects that I was starting to run out of time for.

01:06:05.826 --> 01:06:09.446
<v Chris>You know, just as my kids have gotten older, life off air has gotten busier

01:06:09.446 --> 01:06:13.586
<v Chris>and busier. And some of the cool stuff I was able to build on and do before I don't have time for.

01:06:13.986 --> 01:06:17.046
<v Chris>But I can keep up. I can keep them managed. I can keep them secure.

01:06:17.046 --> 01:06:21.366
<v Chris>They're not going to sit there and rot and just, you know, like one of the biggest

01:06:21.366 --> 01:06:24.426
<v Chris>issues with home labs is they can just sit there and kind of just fall apart

01:06:24.426 --> 01:06:27.806
<v Chris>and have issues and get out of date and things break over time and your backups

01:06:27.806 --> 01:06:30.406
<v Chris>fail and it can just become a huge source of stress.

01:06:30.646 --> 01:06:32.586
<v Chris>Like these agents, they're, man, they're keeping on top of it.

01:06:32.686 --> 01:06:35.466
<v Chris>They're telling me when my freaking NVMe hard drive temperatures are too high

01:06:35.466 --> 01:06:39.306
<v Chris>in one particular rig and when this backup failed and all of it. It's so powerful.

01:06:39.646 --> 01:06:43.366
<v Chris>So it's worth giving them the leash, but just be careful.

01:06:43.546 --> 01:06:47.726
<v Chris>All right. I know. I know. I went on for too long. But I think it's pretty exciting.

01:06:48.086 --> 01:06:51.486
<v Chris>And also, we don't have a lot of boosts. That's it. Thank you,

01:06:51.566 --> 01:06:52.526
<v Chris>everybody who streams that.

01:06:52.766 --> 01:06:54.226
<v Brent>I want to pull one forward, actually.

01:06:54.386 --> 01:06:55.586
<v Chris>Oh, yeah, do it. If you don't mind. Let's do it.

01:06:55.626 --> 01:07:02.726
<v Brent>There's one here sticking out to me. Rubik Man boosted in 1,488 sats. Thank you.

01:07:03.006 --> 01:07:03.766
<v Chris>Mm-hmm.

01:07:05.306 --> 01:07:12.306
<v Brent>And it says, I'm confused. Are you pronouncing jif or gif like Jeff or geoff?

01:07:13.706 --> 01:07:14.406
<v Brent>What's with that?

01:07:14.406 --> 01:07:16.686
<v Chris>What's confusing it's an animated

01:07:16.686 --> 01:07:19.926
<v Chris>Jeff everybody knows that yeah I thought we settled this years ago.

01:07:20.506 --> 01:07:23.966
<v Brent>There's an episode somewhere that goes into detail about this I don't remember

01:07:23.966 --> 01:07:25.546
<v Brent>which you'll have to listen to the.

01:07:25.546 --> 01:07:26.026
<v Chris>Back catalog.

01:07:26.026 --> 01:07:27.066
<v Brent>But thanks Jeff.

01:07:27.066 --> 01:07:29.466
<v Chris>It depends on the program you use to save it.

01:07:29.466 --> 01:07:31.486
<v Wes>That's true yeah some prefer the.

01:07:31.486 --> 01:07:38.566
<v Chris>Yeah thank you to our SAT streamers came in with 18 of you stacking 21,017 SATs,

01:07:41.843 --> 01:07:45.363
<v Chris>Not too bad. Not too bad at all. Thank you very much. When you combine that

01:07:45.363 --> 01:07:49.423
<v Chris>with our boosters who boosted last week's episode and a couple of you that came

01:07:49.423 --> 01:07:53.963
<v Chris>in at the last minute today, we squeaked just over 100,000 sats.

01:07:54.103 --> 01:08:00.423
<v Chris>Not a big banger, but I'm still pretty happy. 101,023 sats.

01:08:00.503 --> 01:08:03.983
<v Chris>We definitely could definitely use to see the support pickup just because the

01:08:03.983 --> 01:08:05.103
<v Chris>sponsorships are so low.

01:08:05.283 --> 01:08:08.763
<v Chris>So this is part of what is keeping the show going. And you can boost with something

01:08:08.763 --> 01:08:12.223
<v Chris>like Fountain FM. If you're on iOS, you should definitely check out Cast-O-Matic.

01:08:12.483 --> 01:08:16.623
<v Chris>And AlbiHub just keeps going from strength to strength. I just updated the latest AlbiHub.

01:08:17.783 --> 01:08:20.343
<v Chris>It's so impressive. And then you can connect to a whole plethora of apps.

01:08:20.463 --> 01:08:22.803
<v Chris>Get started at newpodcastapps.com.

01:08:23.023 --> 01:08:28.963
<v Chris>And thank you, everybody, who boosted episode 668. We really do appreciate you.

01:08:32.542 --> 01:08:37.102
<v Chris>I'm going to start with a pick this week. I have a soft spot for a program back

01:08:37.102 --> 01:08:38.382
<v Chris>in the day called Norton Commander.

01:08:38.622 --> 01:08:42.762
<v Chris>Before we'd really settled on the Windows 3 desktop and the macOS desktop paradigm,

01:08:43.082 --> 01:08:47.882
<v Chris>there were people that were trying to make file managers and graphical interfaces for DOS.

01:08:48.462 --> 01:08:55.142
<v Chris>Like maybe the OG2E, if you will. And GNOME Commander is a Norton Commander-inspired file manager.

01:08:55.722 --> 01:09:00.082
<v Chris>It was written in C++. It's recently been rewritten largely in Rust as they

01:09:00.082 --> 01:09:02.382
<v Chris>moved over to GTK4. I know. Surprise, surprise.

01:09:03.942 --> 01:09:07.162
<v Chris>Is gnome commander 2.0 also adds embedded terminal

01:09:07.162 --> 01:09:11.122
<v Chris>to display output which is nice that is nice improvements in the search dialogue

01:09:11.122 --> 01:09:14.622
<v Chris>the internal viewer has been improved accessibility has seen some improvements

01:09:14.622 --> 01:09:19.102
<v Chris>keyboard shortcuts dialogue is there now and you're gonna like this one brent

01:09:19.102 --> 01:09:25.722
<v Chris>more tab states are restored on restart so now you can over tab on your file manager.

01:09:25.722 --> 01:09:26.282
<v Brent>So it's not.

01:09:26.282 --> 01:09:27.102
<v Wes>All though it's just.

01:09:27.102 --> 01:09:30.302
<v Brent>More yeah yeah i need them all chris.

01:09:30.302 --> 01:09:33.342
<v Chris>Well i mean there are limits you know

01:09:33.342 --> 01:09:36.462
<v Chris>there are limits why this thing still looks like a classic app

01:09:36.462 --> 01:09:40.982
<v Chris>he sure does you know it reminds me also of midnight commander it's two panes

01:09:40.982 --> 01:09:45.802
<v Chris>i just love it you know when you can have one pain have two as they say so no

01:09:45.802 --> 01:09:52.742
<v Chris>go commander is a twin panel graphical fire manager and um gpl3 so that's that

01:09:52.742 --> 01:09:56.262
<v Chris>I just had to start with that because of the nostalgia. I like the feels.

01:09:56.762 --> 01:10:02.542
<v Wes>Well, while you're pretending that the terminal doesn't exist with your graphical thing over here.

01:10:02.622 --> 01:10:03.102
<v Chris>As I do.

01:10:03.642 --> 01:10:06.222
<v Wes>I brought the graphics to the terminal.

01:10:06.442 --> 01:10:06.682
<v Chris>Oh.

01:10:06.962 --> 01:10:07.082
<v Wes>Yeah.

01:10:07.282 --> 01:10:07.582
<v Chris>Oh.

01:10:07.882 --> 01:10:09.562
<v Wes>Yeah, try out Halo.

01:10:09.802 --> 01:10:10.962
<v Chris>Flipping the script on us here, Wes.

01:10:11.142 --> 01:10:15.842
<v Wes>Terminal flow field screensaver with Perlin noise, braille rendering particles,

01:10:16.022 --> 01:10:17.962
<v Wes>and 24-bit handsy color.

01:10:18.162 --> 01:10:19.702
<v Chris>Oh, you had me at screensaver.

01:10:21.053 --> 01:10:22.833
<v Wes>Yeah, here's your TUI screensaver.

01:10:23.753 --> 01:10:28.573
<v Chris>I have a real soft spot for screensavers. I was big into the X11 screensavers

01:10:28.573 --> 01:10:32.753
<v Chris>back when they were around on the proprietary platforms. I loved After Dark.

01:10:33.373 --> 01:10:36.853
<v Chris>I just love screensavers. And we've moved away from them.

01:10:36.973 --> 01:10:41.053
<v Wes>Yeah, it's already got a couple different preset themes in there, right? So you got that.

01:10:41.373 --> 01:10:44.873
<v Chris>Ironically, when we had these big old boob tube CRTs that were probably burning

01:10:44.873 --> 01:10:48.633
<v Chris>200 watts constantly, we left them running all the time with screensavers.

01:10:48.653 --> 01:10:49.033
<v Wes>Yes, we did.

01:10:49.033 --> 01:10:52.653
<v Chris>Now we get these LCD screens that pull five watts, then we turn them off all the time.

01:10:52.853 --> 01:10:58.973
<v Wes>Well, we have live terminal resize handling. And, yes, don't worry.

01:10:59.353 --> 01:11:02.133
<v Wes>We have native Windows terminal support.

01:11:02.413 --> 01:11:06.393
<v Chris>Yeah. They do recommend you use Kitty or Ghost DTY or iTerm if you're on the

01:11:06.393 --> 01:11:08.253
<v Chris>Mac or something that's got, you know, lack of a...

01:11:08.253 --> 01:11:10.333
<v Wes>You do want, like, a nice, yeah, graphics-y terminal.

01:11:10.533 --> 01:11:13.833
<v Chris>You know where this would be great is if anybody out there has a screen in the

01:11:13.833 --> 01:11:18.473
<v Chris>background of your, like, Zoom work calls. If you're like a work from home,

01:11:18.693 --> 01:11:21.953
<v Chris>you combine this with Hollywood behind you, you're going to look,

01:11:22.273 --> 01:11:23.873
<v Chris>yeah. You know what, Brent?

01:11:23.913 --> 01:11:27.113
<v Brent>I have a blank one behind me that seems just perfect with this.

01:11:27.253 --> 01:11:30.753
<v Brent>That thing is the very first monitor I ever got. It's like almost square.

01:11:31.093 --> 01:11:34.993
<v Brent>It's terrible for anything but exactly this. So thank you, Wes.

01:11:35.873 --> 01:11:37.633
<v Chris>You guys remember the Hollywood package too.

01:11:37.733 --> 01:11:37.773
<v Wes>Right?

01:11:37.773 --> 01:11:38.893
<v Brent>Oh, of course. Oh, yeah.

01:11:39.593 --> 01:11:42.933
<v Chris>Oh, good one. Go look that up out there. I know there's a Snap available, but still.

01:11:43.133 --> 01:11:44.413
<v Brent>I have a question on this one.

01:11:44.573 --> 01:11:45.393
<v Chris>I think there's other packages too. Yeah.

01:11:46.113 --> 01:11:50.693
<v Brent>Where's Halo? How did you find something like this? Because this project is three days old.

01:11:51.413 --> 01:11:53.973
<v Chris>How did you find this? Were you trolling somewhere?

01:11:54.293 --> 01:11:56.433
<v Wes>Can I see? This is just in console.

01:11:56.833 --> 01:11:59.253
<v Chris>I do like it a lot. Here, hold that. Can I see it? Hold that up again.

01:11:59.913 --> 01:12:02.793
<v Chris>So it's like worms going across the screen, kind of.

01:12:02.853 --> 01:12:03.093
<v Wes>Mm-hmm.

01:12:04.253 --> 01:12:07.013
<v Chris>All right. All right. That's neat.

01:12:08.333 --> 01:12:10.613
<v Wes>You can run it with just a UVX if you want.

01:12:10.613 --> 01:12:11.853
<v Chris>How the heck did you find it? I mean...

01:12:12.473 --> 01:12:13.093
<v Wes>Trolling GitHub.

01:12:13.313 --> 01:12:16.153
<v Chris>Oh, yeah. He does that. I've been noticing...

01:12:16.153 --> 01:12:18.933
<v Wes>You see, the trick is you follow people who write cool stuff.

01:12:19.073 --> 01:12:19.553
<v Chris>Yeah, you've been...

01:12:19.553 --> 01:12:21.013
<v Wes>And then you hope that they write more cool stuff.

01:12:21.013 --> 01:12:22.253
<v Chris>He's been upping his links with this.

01:12:22.433 --> 01:12:22.773
<v Brent>It's like...

01:12:22.773 --> 01:12:26.873
<v Chris>Your linkage is going up. I get a report from the agent, and I can see the uptick

01:12:26.873 --> 01:12:29.673
<v Chris>in the linkage because you found a good vein of stuff recently.

01:12:30.153 --> 01:12:33.093
<v Brent>You know, that's the difference between Wes and I. I don't think to use GitHub

01:12:33.093 --> 01:12:34.273
<v Brent>as a social media platform.

01:12:35.855 --> 01:12:39.575
<v Chris>He's kind of using it as a data source, too. You should just watch it.

01:12:39.615 --> 01:12:40.315
<v Wes>It'd be nice to automate it more.

01:12:40.535 --> 01:12:45.275
<v Chris>Yeah, you never know. You never know. All right, we will put links to Halo and,

01:12:45.435 --> 01:12:47.175
<v Chris>of course, to GNOME Commander,

01:12:47.675 --> 01:12:53.855
<v Chris>in the show notes over at linuxunplugged.com slash 668 or check out jupyterbroadcasting.com

01:12:53.855 --> 01:12:56.675
<v Chris>where you got Linux Unplugged and the launch and This Week in Bitcoin.

01:12:57.475 --> 01:12:59.915
<v Chris>And you can always call the launch as well.

01:13:00.775 --> 01:13:04.255
<v Chris>Call us and chat with us. It's kind of fun. Anything else we should cover before we run, boys?

01:13:05.555 --> 01:13:08.655
<v Chris>No although just a reminder we want uh people's bitwarden

01:13:08.655 --> 01:13:11.295
<v Chris>password migration stories or what you're using in place of

01:13:11.295 --> 01:13:13.975
<v Chris>bitwarden and does it sync because that's what

01:13:13.975 --> 01:13:19.235
<v Chris>got me that's what effing got me is i just i'm so frustrated because it got

01:13:19.235 --> 01:13:21.935
<v Chris>me and i knew this i knew this was going to happen i had a whole plant for platform

01:13:21.935 --> 01:13:25.155
<v Chris>rant i was going to get into we're running out of time uh they got me and i

01:13:25.155 --> 01:13:28.935
<v Chris>knew it was going to go this way and i they got me for the sync because i just

01:13:28.935 --> 01:13:31.875
<v Chris>want bulletproof never think about it I save.

01:13:31.875 --> 01:13:33.335
<v Wes>My password I have it elsewhere.

01:13:33.335 --> 01:13:37.835
<v Chris>And I want it to work but also the mobile has to be like first class because

01:13:37.835 --> 01:13:42.035
<v Chris>if I create an account on the mob's I gotta capture the mob so I can log in

01:13:42.035 --> 01:13:44.755
<v Chris>on the desktops later it's gotta work,

01:13:45.615 --> 01:13:48.895
<v Chris>help us people and then maybe we can come up with a solid solution that everybody

01:13:48.895 --> 01:13:53.455
<v Chris>trusts in our community it's something we can recommend to the wider audience so I will also say maybe.

01:13:53.455 --> 01:13:57.575
<v Wes>Consider boosting in if you have experience with making a Linux router.

01:13:58.135 --> 01:14:03.115
<v Chris>Oh, that was a request that we still need more input on. Let me tell you what.

01:14:03.535 --> 01:14:06.475
<v Chris>Let me tell you what. All right, Wes Pano, is there anything else we should

01:14:06.475 --> 01:14:09.835
<v Chris>let people know about this here podcast? Like maybe extra metadata around the

01:14:09.835 --> 01:14:11.395
<v Chris>show, something like that. You got anything?

01:14:11.795 --> 01:14:17.415
<v Wes>Yeah. Well, you know, we make the bots work hard to produce diarized transcripts

01:14:17.415 --> 01:14:21.775
<v Wes>so you can have as much possible metadata about exactly what we said with the

01:14:21.775 --> 01:14:24.735
<v Wes>addition of some comic slop misspellings occasionally.

01:14:26.095 --> 01:14:28.975
<v Chris>Also we've got json chapters as well as those are.

01:14:28.975 --> 01:14:30.935
<v Wes>Entirely handcrafted by editor drew.

01:14:30.935 --> 01:14:35.095
<v Chris>That's right as well as chapters we try to embed into the id3 file so whichever

01:14:35.095 --> 01:14:39.415
<v Chris>works best for you we try to make it available and of course we are live you know that.

01:14:42.857 --> 01:14:45.897
<v Chris>Yeah, that's right. We make it a Tuesday on a Sunday at 10 a.m.

01:14:46.017 --> 01:14:49.957
<v Chris>Pacific, 1 p.m. Eastern over at jblive.tv and jblive.fm.

01:14:50.317 --> 01:14:53.837
<v Chris>Also sometimes up there on the tubes. And of course, we record all of it and

01:14:53.837 --> 01:14:57.357
<v Chris>more for our members, for our Jupiter Party and our Unplugged core.

01:14:57.777 --> 01:15:00.777
<v Chris>Thank you, everybody, for tuning in. Go check out the Unplugged.com website,

01:15:00.857 --> 01:15:02.237
<v Chris>linuxunplugged.com, for past

01:15:02.237 --> 01:15:04.557
<v Chris>episodes, this episode, and links to everything we talked about as well.

01:15:04.637 --> 01:15:08.497
<v Chris>Subscribe links, our mumble room, our chat room. there's a lot going on around

01:15:08.497 --> 01:15:11.337
<v Chris>this show that doesn't make it on air every single week but you'll find links

01:15:11.337 --> 01:15:14.277
<v Chris>to it over at linuxunplugged.com thanks so much for joining us on this week's

01:15:14.277 --> 01:15:17.997
<v Chris>episode of your Unplugged program and we're going to see you right back here

01:15:17.997 --> 01:15:21.957
<v Chris>as in Tuesday and you know what that means we'll see you back here next Sunday.

01:16:20.837 --> 01:16:26.317
<v Brent>Okay, I have a request. You mentioned you didn't have time in the show for your

01:16:26.317 --> 01:16:27.977
<v Brent>rant, but you have plenty of time here.

