WEBVTT

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

00:00:15.911 --> 00:00:16.611
<v Wes>My name is Wes.

00:00:16.611 --> 00:00:17.537
<v Brent>And my name is Brent.

00:00:18.158 --> 00:00:23.381
<v Chris>Hello, gentlemen. Coming up on the show today, a major PHP security flaw has

00:00:23.381 --> 00:00:27.691
<v Chris>server admins scrambling. So we did the right thing, and we hacked our own NextCloud

00:00:27.691 --> 00:00:31.115
<v Chris>instance to learn everything we could about the exploit, and we'll share it with you.

00:00:31.515 --> 00:00:37.825
<v Chris>Plus, Linux users are finally fighting back against TV bloat.

00:00:38.116 --> 00:00:41.261
<v Chris>there are some open source projects out there that will help clean up your android

00:00:41.261 --> 00:00:47.091
<v Chris>tv or your web os or samsung television and finally take it back and give the

00:00:47.091 --> 00:00:51.577
<v Chris>right to repair an injection right into your veins you are going to love this you have to catch this,

00:00:52.048 --> 00:00:56.561
<v Chris>game changer and we'll round it out with some great boosts picks and a lot more

00:00:56.561 --> 00:01:00.318
<v Chris>so before we get to all of that stuff we got to say time appropriate greetings

00:01:00.573 --> 00:01:03.095
<v Chris>to that virtual log hello mother room hey are you going to be a.

00:01:05.827 --> 00:01:08.904
<v Chris>Hello, hello, and hello to everybody in the quiet listening.

00:01:09.374 --> 00:01:12.799
<v Chris>Thank you for joining us, making it a Tuesday on a Sunday. We appreciate you.

00:01:13.275 --> 00:01:17.153
<v Chris>And good morning to our friends over at Defined Network. You can go to defined.net

00:01:17.153 --> 00:01:21.384
<v Chris>slash unplugged. I was going to say Nebula, but it's defined.net slash unplugged,

00:01:21.756 --> 00:01:24.147
<v Chris>built on the open source VPN Nebula.

00:01:24.473 --> 00:01:27.880
<v Chris>We love it, and boy, do I appreciate it more than ever. Because with Nebula,

00:01:28.275 --> 00:01:31.713
<v Chris>you own the entire stack, including your own Lighthouse servers,

00:01:31.713 --> 00:01:35.316
<v Chris>the links, all of it. It's fundamentally protected by encryption.

00:01:35.543 --> 00:01:39.173
<v Chris>There's no third-party control pane, no third-party exploit that's going to

00:01:39.173 --> 00:01:41.888
<v Chris>pop their systems that makes your system vulnerable.

00:01:42.218 --> 00:01:46.763
<v Chris>So like I have direct system-to-system VPNs. There's nobody else that can touch

00:01:46.763 --> 00:01:50.643
<v Chris>that. That kind of ownership and security, especially as we're going into this

00:01:50.643 --> 00:01:54.223
<v Chris>era of services and companies getting attacked more and more, is massive.

00:01:54.554 --> 00:01:57.403
<v Chris>But I understand it can be a lot to chew. It can be a big bite.

00:01:57.711 --> 00:02:00.473
<v Chris>You can get start with Managed Nebula. They'll help you. They'll spin some of

00:02:00.473 --> 00:02:03.655
<v Chris>it up, and you could always migrate to your own self-hosted system if you want.

00:02:03.998 --> 00:02:07.443
<v Chris>There's a lot of optionality. And the beautiful thing is they'll get you started

00:02:07.443 --> 00:02:09.164
<v Chris>100 hosts, absolutely free.

00:02:09.623 --> 00:02:14.952
<v Chris>See how it works for you. It's a great alternative. And the battery life.

00:02:15.439 --> 00:02:19.143
<v Chris>The CPU usage, and the network overhead significantly less with Nebula.

00:02:19.143 --> 00:02:23.462
<v Chris>And that adds up even on high-end boxes, but especially on lower-end systems.

00:02:23.793 --> 00:02:26.913
<v Chris>You're going to be impressed. Try it out. Defined.net slash unplugged.

00:02:26.913 --> 00:02:30.723
<v Chris>Get 100 hosts totally free, no credit card required. And support the show at

00:02:30.723 --> 00:02:33.005
<v Chris>Defined.net slash unplugged.

00:02:36.674 --> 00:02:40.388
<v Chris>Well, here we are. I think we're going to be probably going through this a bit

00:02:40.388 --> 00:02:41.997
<v Chris>more over the next year or two.

00:02:42.508 --> 00:02:46.026
<v Chris>But this is the week the internet really froke out, freaked out.

00:02:46.432 --> 00:02:47.843
<v Chris>I guess that's if you spell it with a P.

00:02:48.475 --> 00:02:55.418
<v Chris>Froked out about a PHP flaw that brought a lot of services that I use,

00:02:55.418 --> 00:02:57.048
<v Chris>probably a lot of websites that you

00:02:57.048 --> 00:03:01.038
<v Chris>guys use down for a day or two as they scrambled to solve some of this.

00:03:01.038 --> 00:03:05.388
<v Wes>Yeah, you really kind of saw different. um it gives you a little bit an impure

00:03:05.388 --> 00:03:09.248
<v Wes>window into some of the operational posture of some of the things you use i

00:03:09.248 --> 00:03:12.388
<v Wes>was surprised by some that took longer than i expected and some that took that

00:03:12.388 --> 00:03:14.038
<v Wes>were they did it very quick.

00:03:14.903 --> 00:03:17.858
<v Chris>I knew something was up when i got a notification from leno that they were just

00:03:17.858 --> 00:03:21.938
<v Chris>rolling with a reboot just nothing you can do about it we have to do this like

00:03:21.938 --> 00:03:23.257
<v Chris>they only do that when it's a critical one,

00:03:24.029 --> 00:03:30.428
<v Chris>so it was two vulnerabilities both rated a cvss uh v4 9.2 I guess that's pretty

00:03:30.428 --> 00:03:32.028
<v Chris>dang high. A nine is pretty dang high.

00:03:32.475 --> 00:03:34.449
<v Chris>When you see that, it sort of sets off alarm bells.

00:03:34.977 --> 00:03:38.518
<v Chris>And of course, there's a lot of websites like WordPress and others that have

00:03:38.518 --> 00:03:40.538
<v Chris>been using PHP for a very, very long time.

00:03:41.188 --> 00:03:45.018
<v Chris>And these are unauthenticated attacks and the remote attacks.

00:03:45.538 --> 00:03:47.429
<v Chris>So it's pretty much as bad as it gets.

00:03:47.550 --> 00:03:49.356
<v Wes>Yeah, and you've got, you know,

00:03:49.623 --> 00:03:54.758
<v Wes>you can leak serious data out of the session in kind of both of these.

00:03:55.198 --> 00:03:58.888
<v Wes>So that's not good. So things like API keys can leak. And in one of them in

00:03:58.888 --> 00:04:04.291
<v Wes>particular, depending on the configuration of the box, you might be able to get a shell.

00:04:04.500 --> 00:04:06.160
<v Chris>Yeah. Yes, you might.

00:04:06.485 --> 00:04:11.348
<v Wes>It's kind of, you know, it was also a bit of a mess in terms of disclosure,

00:04:11.348 --> 00:04:16.738
<v Wes>various leaks, right? Like some of the CVE IDs, a wrong 10.0 score came out,

00:04:17.318 --> 00:04:20.748
<v Wes>a proof of concept video that went up and then got pulled.

00:04:21.131 --> 00:04:25.048
<v Wes>They had to move the day forward to try and deal with it, right?

00:04:25.048 --> 00:04:28.207
<v Wes>So builds weren't really ready, which just added kind of to the scramble.

00:04:28.364 --> 00:04:30.773
<v Wes>There would have been a lot of folks that hadn't updated, but...

00:04:31.801 --> 00:04:33.374
<v Wes>basically no one had a chance to so.

00:04:34.198 --> 00:04:38.006
<v Chris>So my understanding i mean i'm just kind of trying to bottom line this is one

00:04:38.006 --> 00:04:43.806
<v Chris>of the more nasty ones is an out of memory issue and um it can even be triggered

00:04:43.806 --> 00:04:47.506
<v Chris>by like the like the php loading bar if you attack that in a specific.

00:04:47.506 --> 00:04:50.795
<v Wes>Way uh-huh yeah like the upload progress uh support.

00:04:51.038 --> 00:04:52.666
<v Chris>Right so um.

00:04:53.905 --> 00:04:54.346
<v Wes>Yeah and that.

00:04:54.666 --> 00:04:58.246
<v Chris>A lot of websites use that type of stuff and that's been around for a decade

00:04:58.246 --> 00:05:00.790
<v Chris>you know that just makes me think this vulnerability has been sitting around.

00:05:01.376 --> 00:05:04.566
<v Wes>Yeah and that's where you get to the questions of like what does it take to

00:05:04.566 --> 00:05:09.726
<v Wes>actually be impacted right because it does depend a bit on the what can happen

00:05:09.726 --> 00:05:13.176
<v Wes>depends on your exact setup are you using the default config which unfortunately

00:05:13.176 --> 00:05:14.746
<v Wes>does seem to be pretty darn vulnerable,

00:05:15.226 --> 00:05:16.875
<v Wes>you may not be and so in your particular,

00:05:17.406 --> 00:05:21.902
<v Wes>stuff that various knobs you need to go check out and it matters if you're using

00:05:22.111 --> 00:05:24.758
<v Wes>apaches mod php or using fpm.

00:05:25.908 --> 00:05:29.996
<v Chris>All right so before we get into uh how we protected our own next cloud systems

00:05:29.996 --> 00:05:34.036
<v Chris>and how we poked at them all right there must be some interesting technical

00:05:34.036 --> 00:05:36.886
<v Chris>details that you want to make sure we dig into in any one of these anything

00:05:36.886 --> 00:05:38.476
<v Chris>that stands out to you that's worth commenting on.

00:05:38.882 --> 00:05:43.868
<v Wes>Yeah so it is kind of in uh in particular like the uh the rce one is in the

00:05:44.257 --> 00:05:48.234
<v Wes>vm itself and it has to do with allocations right and so like uh you can be,

00:05:48.846 --> 00:05:52.936
<v Wes>allocating and then run into out of memory handling code and then things don't

00:05:52.936 --> 00:05:57.196
<v Wes>get cleaned up properly basically php has a problem it needs to solve right

00:05:57.196 --> 00:05:59.918
<v Wes>the vm that runs your requests and php in particular is a,

00:06:01.201 --> 00:06:05.239
<v Wes>you know, a very differently designed language. It's like hosted by this other

00:06:05.239 --> 00:06:07.546
<v Wes>runtime, like in this case Apache with mod.php.

00:06:07.958 --> 00:06:12.659
<v Wes>And then it's like really based around request and response almost entirely, right?

00:06:12.659 --> 00:06:16.639
<v Wes>So everything kind of runs on the request. So the VM basically needs to run

00:06:16.639 --> 00:06:22.159
<v Wes>untrusted request code inside long-lived processes cheaply without kind of letting

00:06:22.159 --> 00:06:24.809
<v Wes>things interrupt each other with the right security guarantees.

00:06:24.809 --> 00:06:27.898
<v Wes>They want a hard memory cap on each request so that that can't get out of control.

00:06:28.287 --> 00:06:32.009
<v Wes>And you want to be able to abort a runaway request without killing something

00:06:32.009 --> 00:06:33.175
<v Wes>that's serving a different site.

00:06:33.349 --> 00:06:36.147
<v Brent>That sounds like quite a recipe for a bad thing to happen.

00:06:36.878 --> 00:06:41.729
<v Wes>Yeah, well, and you're implementing it in C, right? So you need to manage memory.

00:06:41.729 --> 00:06:43.029
<v Wes>They use something called an arena.

00:06:43.509 --> 00:06:47.869
<v Wes>Request memory comes out of a per-request pool, and at the end of the request,

00:06:47.869 --> 00:06:51.849
<v Wes>the whole arena is bulk-freed instead of having to walk through all of the objects

00:06:51.849 --> 00:06:53.606
<v Wes>that you allocated and free each node.

00:06:54.303 --> 00:06:59.629
<v Wes>The problem comes in when you have to have code that handles allocation failing, right?

00:06:59.629 --> 00:07:04.449
<v Wes>Because when you are allocating memory, it doesn't always work.

00:07:04.449 --> 00:07:07.539
<v Wes>So you need to have some model of failure. And this is where things like Rust

00:07:07.539 --> 00:07:12.349
<v Wes>can take advantage of the compiler support, and you can basically treat errors

00:07:12.349 --> 00:07:17.261
<v Wes>as values, and then you can have the compiler enforce that you always handle the case that it fails.

00:07:18.103 --> 00:07:21.579
<v Wes>In C, they don't do that at all. I mean, you could, but you have to do it totally

00:07:21.579 --> 00:07:23.815
<v Wes>manually, and you have to check every allocation site.

00:07:24.134 --> 00:07:26.753
<v Wes>Otherwise, you're vulnerable to something like this. So instead,

00:07:27.008 --> 00:07:30.462
<v Wes>they use a long jump, which is basically a go-to.

00:07:31.008 --> 00:07:33.451
<v Wes>And so they kind of have a pattern where if anything goes wrong,

00:07:33.991 --> 00:07:39.529
<v Wes>it jumps to a dedicated sort of cleanup code, and that's where things sort of fall apart.

00:07:41.189 --> 00:07:45.509
<v Wes>And they're storing a bunch of stuff in global state that sort of should be request scoped.

00:07:45.989 --> 00:07:48.289
<v Wes>But it's kind of tricky because sometimes there is stuff that needs to outlive

00:07:48.289 --> 00:07:51.341
<v Wes>the request, but you've got to be really careful about how you handle that.

00:07:51.707 --> 00:07:54.290
<v Wes>And that's where it's kind of interesting because Rust would...

00:07:55.207 --> 00:07:59.120
<v Wes>Probably, if you did it in Rust the right way, it would probably mean,

00:07:59.399 --> 00:08:03.373
<v Wes>and the default way, that you could still have logic errors.

00:08:03.373 --> 00:08:04.413
<v Wes>It won't solve everything.

00:08:05.093 --> 00:08:09.633
<v Wes>And parts of this, you might get given invalid data or stale data or have a

00:08:09.633 --> 00:08:12.576
<v Wes>correctness problem, but you wouldn't get root.

00:08:12.965 --> 00:08:16.943
<v Wes>You wouldn't get a shell, because that is a particular property of how they're

00:08:16.943 --> 00:08:21.373
<v Wes>doing this with C and with the lack of checks of C and the raw memory management of C.

00:08:22.468 --> 00:08:27.379
<v Wes>and it's it this whole week has kind of been that story.

00:08:27.663 --> 00:08:28.487
<v Chris>Yeah what do you mean by that.

00:08:28.691 --> 00:08:30.733
<v Wes>Well it wasn't just php that we saw right.

00:08:30.733 --> 00:08:33.633
<v Chris>Right i actually had a whole list i didn't bring it with me but there's a whole.

00:08:33.633 --> 00:08:37.393
<v Wes>List yeah so another one was um uh the brotley stuff right and so that's like

00:08:37.393 --> 00:08:39.418
<v Wes>a compression library that gets bundled into,

00:08:40.233 --> 00:08:43.943
<v Wes>a whole bunch of things including node and like all the browsers use it the

00:08:43.943 --> 00:08:46.813
<v Wes>python story is a little more complicated because it's not necessarily the fault,

00:08:46.813 --> 00:08:50.853
<v Wes>although it does get automatically used if it's available and installed on your

00:08:50.853 --> 00:08:52.673
<v Wes>system. So it's a little tricky to find out.

00:08:53.093 --> 00:08:56.523
<v Wes>I think like the default fast API stack in particular wasn't vulnerable.

00:08:56.523 --> 00:08:59.633
<v Wes>So it depends a lot on the specifics versus no, they just ship it.

00:08:59.633 --> 00:09:01.473
<v Wes>And so you had to update node because it was baked in.

00:09:02.039 --> 00:09:08.581
<v Wes>But we also saw some Nginx issues and we saw a bunch of issues in your favorite KSMBD.

00:09:08.744 --> 00:09:12.923
<v Chris>Oh, that's right. That was, yes. Yes, of course, the kernel's built-in Samba

00:09:12.923 --> 00:09:13.870
<v Chris>server. Who would have thought?

00:09:14.195 --> 00:09:18.873
<v Wes>So in this sort of rising tide of vulnerabilities, it's not that we will only

00:09:18.873 --> 00:09:19.903
<v Wes>see these issues, right?

00:09:19.903 --> 00:09:25.493
<v Wes>Because you can have just errors in every type of program, but it's really going

00:09:25.493 --> 00:09:29.508
<v Wes>to show us the long tail of C code that is out there that we rely on,

00:09:29.700 --> 00:09:31.586
<v Wes>that these were always there.

00:09:32.062 --> 00:09:35.754
<v Wes>And a lot of them are not like some crazy bugs that humans could never find.

00:09:37.066 --> 00:09:39.703
<v Wes>They're bugs that humans could find. We've just never been able to look.

00:09:39.703 --> 00:09:42.533
<v Chris>If you stack a bunch of certain edge cases together, you could find them.

00:09:43.153 --> 00:09:46.433
<v Wes>And in like in this case this code was flagged two years ago.

00:09:46.773 --> 00:09:48.363
<v Chris>Oh that is an interesting bit of this yes.

00:09:48.363 --> 00:09:51.863
<v Wes>But they didn't really have a way to like actually demonstrate that it was possible

00:09:51.863 --> 00:09:55.078
<v Wes>to do this it was a theory and so it's,

00:09:55.914 --> 00:10:00.753
<v Wes>actually um as pointed out in a great talk at seagull just recently ai is on

00:10:00.753 --> 00:10:04.353
<v Wes>both sides of this and the fact that it raised the floor so that you could make

00:10:04.353 --> 00:10:07.403
<v Wes>that economical to figure out right which has happened yep uh

00:10:07.783 --> 00:10:12.075
<v Wes>but it was also it can also be involved in like crafting the the fix because yeah,

00:10:12.603 --> 00:10:16.123
<v Wes>it's a lot to fix that you need to move fast and as many eyes as you can have

00:10:16.123 --> 00:10:20.093
<v Wes>on it the better because we've seen with some like including with ksmpd uh the

00:10:20.093 --> 00:10:22.721
<v Wes>researcher found some himself,

00:10:23.743 --> 00:10:27.223
<v Wes>is also very interesting because he's using kept pretty good numbers on like

00:10:27.223 --> 00:10:29.813
<v Wes>the number of sessions found and how often they found things.

00:10:29.813 --> 00:10:30.982
<v Wes>Yeah, so it's worth checking out.

00:10:31.429 --> 00:10:36.083
<v Wes>But they kind of were each fixing each other because this code is genuinely

00:10:36.083 --> 00:10:40.293
<v Wes>tricky, especially with like race conditions or ordering guarantees and KSMBD in particular.

00:10:40.293 --> 00:10:45.653
<v Wes>So he found a vulnerability himself and then proposed a patch and then the AI

00:10:45.653 --> 00:10:49.583
<v Wes>found a significant flaw in the patch that would have done almost a similar vulnerability.

00:10:50.423 --> 00:10:53.843
<v Wes>and so and then some of the a bunch of the ai patches didn't work either right

00:10:53.843 --> 00:10:58.633
<v Wes>so it's like it is just especially in c you just don't have a lot of structural

00:10:58.633 --> 00:11:01.288
<v Wes>guarantees to help you at all uh and,

00:11:02.560 --> 00:11:08.214
<v Wes>You get screwed. But it is worth seeing, like, not all of those would have been

00:11:08.214 --> 00:11:10.814
<v Wes>prevented by Rush, because some of them are genuine sort of,

00:11:10.814 --> 00:11:14.054
<v Wes>like, protocol errors or something that isn't really modeled in the type system.

00:11:14.054 --> 00:11:17.862
<v Wes>But a whole bunch of the worst consequences, interesting, just wouldn't be possible.

00:11:18.297 --> 00:11:21.944
<v Brent>I have a big question that I don't think necessarily we have an answer to that

00:11:21.944 --> 00:11:22.935
<v Brent>we should be thinking about.

00:11:24.009 --> 00:11:29.164
<v Brent>are we getting to the point where humans aren't like uh we're not quite capable

00:11:29.164 --> 00:11:30.760
<v Brent>of keeping all the information,

00:11:31.770 --> 00:11:36.154
<v Brent>present that allows us to write good code are we getting to that point like

00:11:36.154 --> 00:11:40.384
<v Brent>wes you're far more qualified to answer this than than i am but.

00:11:40.384 --> 00:11:45.694
<v Chris>Also to make to back up brent's point it's not like they used some super crazy.

00:11:45.868 --> 00:11:47.374
<v Brent>No model for some of this they.

00:11:47.374 --> 00:11:53.194
<v Chris>Use gpt6 uh gpt 5.6 sol which has been out for a minute now it's this is not

00:11:53.194 --> 00:11:58.364
<v Chris>like some sort of exclusive powerful model access that cracked this this is

00:11:58.364 --> 00:12:00.474
<v Chris>actually kind of like a last generation model that cracked this.

00:12:00.474 --> 00:12:05.286
<v Wes>Well and like right it's it's in code that humans had also flagged as being suspicious so.

00:12:05.960 --> 00:12:08.714
<v Chris>This is why brent i say i think we're going to have a couple of years of this

00:12:08.714 --> 00:12:13.474
<v Chris>um you know i i came on after the cold card exploit and i said they'll come

00:12:13.474 --> 00:12:16.864
<v Chris>for bitcoin first because they get the money right away if you crack a bitcoin

00:12:16.864 --> 00:12:19.282
<v Chris>wallet but then after that low-hanging fruit,

00:12:20.071 --> 00:12:21.441
<v Chris>and they've started to harden their defenses,

00:12:22.115 --> 00:12:24.164
<v Chris>you have to go after infrastructure of these guys.

00:12:24.164 --> 00:12:27.502
<v Chris>You have to, and it's going to be all the types of PHPs around the world that they go after.

00:12:28.744 --> 00:12:35.224
<v Chris>And to Wes's point, it's on both sides. We used AI-assisted tooling to protect

00:12:35.224 --> 00:12:40.084
<v Chris>our own systems, and I used it to exploit my own Nextcloud server just to understand

00:12:40.084 --> 00:12:41.229
<v Chris>more about how this works.

00:12:42.094 --> 00:12:44.314
<v Chris>So I'm using it on that side as well.

00:12:44.314 --> 00:12:44.643
<v Wes>Mm-hmm.

00:12:46.146 --> 00:12:49.854
<v Chris>There are some mitigations. There are some steps people can take.

00:12:49.854 --> 00:12:50.214
<v Wes>Yeah.

00:12:50.214 --> 00:12:54.186
<v Chris>And not every config is vulnerable. In fact, my config actually held up pretty well.

00:12:54.552 --> 00:12:57.930
<v Wes>Yeah, as did our JB production, NextCloud, thankfully.

00:12:58.654 --> 00:13:02.584
<v Wes>But yeah, there are mitigations you should check out, including like stopping

00:13:02.584 --> 00:13:07.056
<v Wes>the upload progress setting, which is on by default.

00:13:08.334 --> 00:13:10.034
<v Wes>But you should go check out. We'll have links in the show notes.

00:13:10.334 --> 00:13:11.485
<v Wes>Surely you've already patched by now.

00:13:11.601 --> 00:13:12.129
<v Chris>Yeah, yeah.

00:13:12.507 --> 00:13:17.254
<v Wes>It was interesting to check out the huge variety of configurations that may

00:13:17.254 --> 00:13:20.864
<v Wes>or may not work because there are some that really won't, especially if you're

00:13:20.864 --> 00:13:24.105
<v Wes>trying to get all the way to shell versus just maybe like an information leak.

00:13:24.540 --> 00:13:30.775
<v Wes>And that's, again, where like the FPM setup has better cleanup of workers that

00:13:31.117 --> 00:13:33.788
<v Wes>died during memory allocation failure.

00:13:34.049 --> 00:13:37.754
<v Wes>And so it was not vulnerable to the worst class of these. It was easier to mitigate.

00:13:37.754 --> 00:13:40.155
<v Chris>So when I decided to...

00:13:41.130 --> 00:13:45.211
<v Chris>Try this against my own system. That saved me a lot using FPM.

00:13:45.997 --> 00:13:50.977
<v Chris>I was able, though, to exploit the upload progress processing thing and produce

00:13:50.977 --> 00:13:52.148
<v Chris>a memory exhaustion error.

00:13:52.862 --> 00:13:57.483
<v Chris>And it didn't go all the way and do like a full pop from there,

00:13:57.639 --> 00:14:01.819
<v Chris>but was able to get that far to reproduce that memory exhaustion bug with the upload box.

00:14:02.556 --> 00:14:10.917
<v Chris>and thankfully since my personal next cloud server isn't on the public internet and does use fpm and,

00:14:11.577 --> 00:14:15.948
<v Chris>all that like it really actually this the overall impact wasn't horrible for me,

00:14:16.517 --> 00:14:20.777
<v Chris>i was able to just basically use one of the exploits out of the two maybe if

00:14:20.777 --> 00:14:23.857
<v Chris>i chained it with a couple other stuff and kept going in fact the bot had a

00:14:23.857 --> 00:14:26.627
<v Chris>suggestion for ways we could probably keep going to get more access.

00:14:26.627 --> 00:14:30.942
<v Chris>But I really want to just focus on this right now.

00:14:31.343 --> 00:14:34.952
<v Wes>Yeah, I was able to get a lab going where I was able to get a shell, which was kind of fun.

00:14:35.231 --> 00:14:35.977
<v Chris>You were, huh?

00:14:35.977 --> 00:14:40.531
<v Wes>Yeah, like kind of regular production, I&I, not some special lab version,

00:14:41.135 --> 00:14:47.207
<v Wes>single worker, ASLR on, and I audited a few different POCs that were out there.

00:14:47.509 --> 00:14:51.577
<v Wes>And because it was kind of tricky. Some didn't seem to work in my environment.

00:14:51.577 --> 00:14:54.852
<v Wes>Also, if you ever do that, be very careful because some of them might have dangerous code in there.

00:14:54.962 --> 00:15:00.527
<v Chris>Yeah, so to be clear, I basically stood up a lab copy of my production next

00:15:00.527 --> 00:15:02.177
<v Chris>cloud system and attacked that.

00:15:02.177 --> 00:15:06.810
<v Wes>Yeah, mine was more of an artificial test because I wanted control over a lot of the variables.

00:15:07.530 --> 00:15:11.477
<v Wes>But it was fun. I mean, I got a real shell running as the user in the container

00:15:11.477 --> 00:15:14.257
<v Wes>and deleted some files off there.

00:15:14.257 --> 00:15:17.933
<v Chris>That's dangerous. That's horrible. Which model did you use to get that far?

00:15:18.902 --> 00:15:20.791
<v Chris>Because I think some of them are not willing to go that far.

00:15:21.951 --> 00:15:22.671
<v Wes>Might have been DeepSeek.

00:15:23.211 --> 00:15:26.791
<v Chris>Old DP. And the situation is moving pretty quick.

00:15:27.151 --> 00:15:31.791
<v Chris>The Friday before we recorded, October 23rd, PHP had another post,

00:15:31.791 --> 00:15:39.537
<v Chris>another breaking update. They identified an additional unusual vector. This is CVE2026115560.

00:15:39.892 --> 00:15:43.629
<v Chris>It does require configuration using PHP underscore binary or PHP serialized,

00:15:44.053 --> 00:15:47.066
<v Chris>followed by an application switching to PHP at runtime before session start

00:15:47.478 --> 00:15:50.831
<v Chris>with upload progress. still enabled so you need all those conditions but it's

00:15:50.831 --> 00:15:54.131
<v Chris>out there it's like a configuration that exists so.

00:15:54.951 --> 00:16:03.341
<v Wes>Well and to your point like they fixed these but they did not rework how allocation

00:16:03.341 --> 00:16:06.271
<v Wes>works across the entire code so there's going to be more yeah there's just a

00:16:06.271 --> 00:16:08.121
<v Wes>lot it's almost structurally guaranteed.

00:16:08.121 --> 00:16:11.935
<v Chris>Yeah wow that's the thing that's that's the thing.

00:16:12.220 --> 00:16:16.121
<v Wes>And we could just never humans audited parts of it and found lots of good bugs

00:16:16.121 --> 00:16:20.671
<v Wes>but we've just It's like a change of the economy of what it costs to be able

00:16:20.671 --> 00:16:22.702
<v Wes>to scan for these known patterns.

00:16:25.943 --> 00:16:30.013
<v Wes>wow and we depend on a whole lot of c code right that's where it's like node

00:16:30.013 --> 00:16:32.753
<v Wes>and python you don't really think in about c necessarily right but they all

00:16:32.753 --> 00:16:35.403
<v Wes>link into a bunch of c libraries or.

00:16:36.883 --> 00:16:39.478
<v Chris>It's it is a it's a it's a real thing.

00:16:39.727 --> 00:16:44.303
<v Wes>The flip side right is it's never been easier for us to come up with patches

00:16:44.303 --> 00:16:47.883
<v Wes>faster and deploy them faster yeah i mean it sucks that that's necessary in

00:16:47.883 --> 00:16:48.973
<v Wes>some way you kind of have to embrace.

00:16:48.973 --> 00:16:52.069
<v Chris>It you have to this is going to be a year or two of scrambling.

00:16:52.237 --> 00:16:55.033
<v Wes>And the software will be better as a result.

00:16:55.033 --> 00:16:59.818
<v Chris>It seems like not everyone is interested in going through the regular disclosure process either.

00:17:00.683 --> 00:17:06.033
<v Chris>There's, what was the number? Was it potentially 11 CVEs around tail scale,

00:17:06.033 --> 00:17:08.183
<v Chris>I think that were floating around? I don't know how many of them are serious.

00:17:08.903 --> 00:17:12.473
<v Chris>Just some of them perhaps not responsibly disclosed as we go on the air.

00:17:12.473 --> 00:17:15.073
<v Chris>I don't, so I don't have details about it yet, but like that kind of stuff is

00:17:15.073 --> 00:17:16.813
<v Chris>going to happen a lot and I do not like that.

00:17:16.813 --> 00:17:21.723
<v Wes>Yeah, I mean, as the cost goes down, more people look and that means more people

00:17:21.723 --> 00:17:24.473
<v Wes>will find and perhaps find at the same time. There's only, you know,

00:17:24.473 --> 00:17:27.467
<v Wes>especially if there's known places to look that you go digging for.

00:17:27.855 --> 00:17:32.383
<v Wes>And it's never been easier to like backwards figure out from patches being applied

00:17:32.383 --> 00:17:36.993
<v Wes>to projects that may or may not be announced yet or labeled as security things,

00:17:36.993 --> 00:17:39.283
<v Wes>right? That happens a lot. And then like later you realize, oh,

00:17:39.283 --> 00:17:42.373
<v Wes>we patched it in that early release. We just didn't quite reveal the impact.

00:17:42.373 --> 00:17:43.803
<v Chris>Yes, I've noticed that a lot actually.

00:17:43.823 --> 00:17:47.503
<v Wes>And the bots can often reverse engineer and figure out those are all candidates to look at.

00:17:48.223 --> 00:17:49.363
<v Chris>Having met the Liquid network.

00:17:49.363 --> 00:17:53.053
<v Wes>And then so that means it's not just the best of the security experts who are

00:17:53.053 --> 00:17:56.654
<v Wes>able to find these experts or have paid time to do it is really a lot of it as well, right?

00:17:57.211 --> 00:18:00.413
<v Wes>It can be a whole lot wider of people who may not have really been trained or

00:18:00.413 --> 00:18:04.781
<v Wes>taught or convinced that this process is what they should do.

00:18:05.158 --> 00:18:09.529
<v Brent>Are you saying open source is bad because these things are out in the open for people to kind of...

00:18:10.480 --> 00:18:13.737
<v Chris>There may be an initial tax, I think, is the way to look at it,

00:18:13.737 --> 00:18:17.289
<v Chris>perhaps. What do you think of that, Wes? It's like an initial exposure tax,

00:18:17.806 --> 00:18:23.147
<v Chris>but then the hardening process that happens will be much more rapid than a lot

00:18:23.147 --> 00:18:25.287
<v Chris>of the commercial stuff. They'll just wait for it to happen to them.

00:18:25.607 --> 00:18:29.417
<v Wes>Yeah, it's not, I think, on the both sides part. Because people will also be,

00:18:29.417 --> 00:18:31.707
<v Wes>like, on the proprietary side, it's not that they're not going to get hacked.

00:18:31.707 --> 00:18:32.962
<v Wes>They just get hacked in different ways.

00:18:34.027 --> 00:18:38.587
<v Wes>They get output tested. They get flaws found in them. and you don't have only

00:18:38.587 --> 00:18:41.576
<v Wes>the people with the code there get to decide the rate of scanning.

00:18:41.803 --> 00:18:45.117
<v Wes>We don't get to decide the rate of scanning, which sucks, but we get a high

00:18:45.117 --> 00:18:46.167
<v Wes>rate of scanning as a result.

00:18:47.967 --> 00:18:49.707
<v Wes>Not all open source, but the big ones.

00:18:49.847 --> 00:18:54.667
<v Chris>The fascinating microcosm of this has been the Bitcoin ecosystem as they have

00:18:54.667 --> 00:18:58.538
<v Chris>been since the cold card attack. It has been something every day.

00:18:59.856 --> 00:19:02.567
<v Chris>You linked in the show notes, the stealmybitcoin.com.

00:19:03.147 --> 00:19:03.967
<v Wes>Oh, Brad found that.

00:19:03.967 --> 00:19:07.427
<v Chris>Oh, okay. Made this, the author writes, made this because I'm curious if anyone

00:19:07.427 --> 00:19:10.265
<v Chris>out there has figured out how to actually use this RCE. That's a great find, Brent.

00:19:10.392 --> 00:19:14.917
<v Brent>Yeah, I've been seeing a few, while reading about this, like people who are

00:19:14.917 --> 00:19:17.782
<v Brent>skeptical that this is actually as serious as it is.

00:19:18.560 --> 00:19:22.944
<v Brent>And I thought this website really, you know, puts their Bitcoin where their

00:19:22.944 --> 00:19:25.919
<v Brent>mouth is, I guess. And so, StealMyBitcoin.com.

00:19:26.453 --> 00:19:29.434
<v Brent>The author just says, I made this because I'm curious if anyone out there has

00:19:29.434 --> 00:19:31.910
<v Brent>figured out how to actually use this thing.

00:19:32.704 --> 00:19:36.984
<v Brent>Have fun. And it's about, what, $2,000 US dollars worth of Bitcoin.

00:19:38.144 --> 00:19:42.944
<v Brent>And I don't know how we're going to find out when this gets cracked.

00:19:43.644 --> 00:19:45.324
<v Chris>Somebody will probably just watch the blockchain.

00:19:46.121 --> 00:19:49.984
<v Brent>Yeah, fair enough. But it's an interesting, it's interesting to see these kinds

00:19:49.984 --> 00:19:56.654
<v Brent>of things show up because it's like an invitation to prove that it is reasonable in the wild.

00:19:56.654 --> 00:20:01.114
<v Brent>I know you guys did your own tests to, you know, hit your own infrastructure

00:20:01.114 --> 00:20:06.284
<v Brent>or some lab results, but this is like, have at her. And I think that's just lovely to watch.

00:20:06.464 --> 00:20:10.055
<v Chris>I do like that. I wonder if it, you know, kind of building on what Wes said,

00:20:10.722 --> 00:20:14.873
<v Chris>what we learned about this week is the first understanding of this.

00:20:15.419 --> 00:20:19.184
<v Chris>but then what we're going to learn is all of the extra edge cases that break

00:20:19.184 --> 00:20:24.444
<v Chris>this and there'll just be more and more of them and they'll be used as exploits and so,

00:20:24.924 --> 00:20:28.434
<v Chris>if it it seems like somebody's going to come for this bitcoin i think i think

00:20:28.434 --> 00:20:32.024
<v Chris>this bitcoin might get claimed eventually well because if if guys like us have

00:20:32.024 --> 00:20:33.783
<v Chris>been popping our own xcloud servers uh,

00:20:35.504 --> 00:20:36.790
<v Chris>yeah it's i don't know man.

00:20:37.928 --> 00:20:38.304
<v Brent>Well and it.

00:20:38.304 --> 00:20:39.374
<v Chris>Combines in a really.

00:20:39.374 --> 00:20:42.354
<v Brent>Nice way what you were saying earlier like bitcoin's gonna get hit first and

00:20:42.354 --> 00:20:43.484
<v Brent>then it's infrastructure well this is.

00:20:43.484 --> 00:20:45.974
<v Chris>Both it is.

00:20:45.974 --> 00:20:50.380
<v Wes>Easier in many ways to have your own infrastructure and actually maintain it

00:20:50.560 --> 00:20:53.189
<v Wes>but the flip side is you really do need to maintain it.

00:20:53.864 --> 00:20:59.914
<v Chris>This really is it's more of a C problem it's definitely a PHP problem but it's

00:20:59.914 --> 00:21:01.612
<v Chris>going to be a C problem is what it's going to be.

00:21:02.106 --> 00:21:05.214
<v Wes>And there will be other things right like there will be plenty of issues found

00:21:05.214 --> 00:21:09.362
<v Wes>in all types of software you can have bugs security issues in Rust it's just

00:21:09.739 --> 00:21:14.006
<v Wes>C has this worst class of it and the consequences can be pretty dire.

00:21:15.881 --> 00:21:16.665
<v Chris>Thanks, Wes.

00:21:28.982 --> 00:21:31.991
<v Brent>Well, recently, we've all heard Chris complaining about his Google TV,

00:21:32.971 --> 00:21:37.381
<v Brent>especially members. And that gets me thinking about right to repair and all

00:21:37.381 --> 00:21:40.348
<v Brent>these things. And maybe Chris making it into your own.

00:21:40.812 --> 00:21:42.757
<v Brent>But we saw some progress there this week, didn't we?

00:21:43.523 --> 00:21:51.099
<v Chris>Oh, boy. I am pumped up about this. So just like manna from heaven.

00:21:52.464 --> 00:21:57.069
<v Chris>A solution went viral on X about a week ago where this guy was like,

00:21:57.069 --> 00:22:00.974
<v Chris>hey, I used a clanker to de-bloat my TV.

00:22:01.578 --> 00:22:05.909
<v Chris>And from there, we have now seen multiple open source projects spin off to do

00:22:05.909 --> 00:22:11.989
<v Chris>this for you, to take out the spyware of your WebOS television or your Samsung television.

00:22:11.989 --> 00:22:16.609
<v Chris>Also interesting aside, new levels of spying on some of the Samsung televisions

00:22:16.609 --> 00:22:18.979
<v Chris>were discovered in the process of creating these tools. Oh, my goodness.

00:22:18.979 --> 00:22:19.595
<v Wes>Delightful.

00:22:19.816 --> 00:22:21.519
<v Chris>Including always listening to microphones.

00:22:21.519 --> 00:22:22.049
<v Brent>Oh.

00:22:23.380 --> 00:22:26.839
<v Chris>So there are two projects that we want to talk about this week one is clean

00:22:26.839 --> 00:22:29.876
<v Chris>your tv and the other is dumb tv,

00:22:31.135 --> 00:22:35.539
<v Chris>and clean your tv promises to strip the bloatware from any android tv or google

00:22:35.539 --> 00:22:40.749
<v Chris>tv over wifi and replace it with a launcher that more resembles you might say

00:22:40.749 --> 00:22:46.008
<v Chris>the apple tv which i would agree as somebody who owns an apple tv.

00:22:46.205 --> 00:22:47.964
<v Wes>Yeah clean simple.

00:22:48.429 --> 00:22:52.139
<v Chris>Just the apps just what you want nothing more not a bunch of advertisements

00:22:52.139 --> 00:22:55.629
<v Chris>It's interesting, as I was working on this, I had this up in my office,

00:22:55.629 --> 00:23:00.114
<v Chris>and just the craziest, grotesque advertisements going by.

00:23:00.277 --> 00:23:03.521
<v Chris>I really couldn't believe it, because it's Halloween, so they're doing crazy, bloody, gross stuff.

00:23:04.172 --> 00:23:06.009
<v Wes>Oh, didn't you want gore on your TV?

00:23:06.009 --> 00:23:07.869
<v Chris>No. No.

00:23:07.869 --> 00:23:09.429
<v Wes>Just sort of in the idle background all day?

00:23:09.769 --> 00:23:13.889
<v Chris>Yeah, two weeks before Halloween, on a random Friday, or Saturday. No, I don't.

00:23:14.269 --> 00:23:15.120
<v Wes>You're a party pooper.

00:23:16.391 --> 00:23:18.839
<v Chris>So it's pretty wild, because this really kicked off, I'd say,

00:23:18.839 --> 00:23:20.349
<v Chris>oh, I don't know, October 17th.

00:23:20.349 --> 00:23:24.219
<v Chris>And from there, this has just been an absolute explosion in open source development

00:23:24.219 --> 00:23:28.789
<v Chris>that lets you point these tools at a Samsung, at a WebOS, at an Android TV,

00:23:29.209 --> 00:23:32.905
<v Chris>at a Google TV, and clean them up and take control of them.

00:23:33.370 --> 00:23:36.191
<v Chris>And it's taking advantage of you have to put in developer mode,

00:23:36.574 --> 00:23:40.399
<v Chris>and then you go in and you turn on wireless ADB, and you pair those up.

00:23:40.399 --> 00:23:42.373
<v Chris>I think maybe you could do it over USB, but this is how I did it.

00:23:42.710 --> 00:23:43.180
<v Wes>Yeah, same.

00:23:44.416 --> 00:23:46.149
<v Chris>And I used clean TV.

00:23:47.911 --> 00:23:50.012
<v Wes>Yeah, same. Mine ended up being based off that.

00:23:50.558 --> 00:23:53.815
<v Chris>And I was de-bloating. I've talked about it once before on the show,

00:23:53.815 --> 00:23:56.439
<v Chris>this Yaomei TV box that I got from my daughter recently.

00:23:59.109 --> 00:24:03.631
<v Chris>And I was shocked how bad the experience was. Buying a modern Google TV box,

00:24:04.119 --> 00:24:10.715
<v Chris>third-gen 4K, 32 gigs of memory, Dolby Vision, Atmos, Wi-Fi 6, HDMI 2.0.

00:24:10.715 --> 00:24:12.895
<v Chris>I mean, I just thought this thing would be pretty good. I just expected this

00:24:12.895 --> 00:24:14.121
<v Chris>to be a pretty decent box.

00:24:14.649 --> 00:24:17.672
<v Chris>It even supports AMD FreeSync, for God's sakes. It's awesome.

00:24:19.187 --> 00:24:23.215
<v Chris>and it was a horrible experience. It has been slow. It's been bloated,

00:24:23.215 --> 00:24:26.826
<v Chris>loaded with crap, apps I don't want, features I don't want,

00:24:27.735 --> 00:24:32.235
<v Chris>really kind of dark pattern user interface stuff, and I was really disappointed

00:24:32.235 --> 00:24:36.260
<v Chris>in what the current state of Google TV was, and I'd mentioned it on the show,

00:24:37.264 --> 00:24:40.891
<v Chris>and I have to say, after going through this process, I think I'm going to buy another one of these.

00:24:41.204 --> 00:24:42.025
<v Wes>Is that right?

00:24:42.025 --> 00:24:43.055
<v Chris>Yeah, yeah.

00:24:43.715 --> 00:24:46.705
<v Wes>It goes to show you, right, because that has way more RAM than my Google TV

00:24:46.705 --> 00:24:49.645
<v Wes>because I have like an old version that had like two gigs of RAM.

00:24:49.695 --> 00:24:50.355
<v Chris>And yours is better.

00:24:50.355 --> 00:24:50.785
<v Wes>Yeah.

00:24:50.785 --> 00:24:56.005
<v Chris>I know. It's so much better now, boys, after going through this process.

00:24:56.005 --> 00:24:59.865
<v Chris>The cleaner launcher, some of them have these modules. There's a list of modules.

00:24:59.865 --> 00:25:02.230
<v Chris>So, for example, there's a Frigate glance module.

00:25:03.188 --> 00:25:07.515
<v Chris>So when Frigate detects activity, a little card can show a Frigate camera snapshot.

00:25:07.515 --> 00:25:08.431
<v Brent>Oh, that's great.

00:25:09.022 --> 00:25:13.515
<v Chris>There's a home assistant module. So you can control certain smart devices from

00:25:13.515 --> 00:25:16.715
<v Chris>your television, which in this particular case is perfect for my daughter because

00:25:16.715 --> 00:25:18.785
<v Chris>there's just a couple of smart devices she needs to control.

00:25:19.023 --> 00:25:20.364
<v Chris>Now she can do it from her television.

00:25:21.775 --> 00:25:26.135
<v Chris>And there's other random ones like working with headphones, integrating with,

00:25:26.595 --> 00:25:30.458
<v Chris>AirPlay. There's a lot. There's like, I don't know, 50 of them or something.

00:25:31.455 --> 00:25:34.795
<v Chris>But the ones that I just like, oh, these are going to be, I just installed them

00:25:34.795 --> 00:25:37.745
<v Chris>immediately. Then the other one that I'm going to play around with is,

00:25:37.745 --> 00:25:39.085
<v Chris>did you see they have TV Hub?

00:25:39.572 --> 00:25:39.975
<v Wes>Yes.

00:25:39.975 --> 00:25:44.725
<v Chris>Which adds kind of an IPTV, M3U, XML TV guide support.

00:25:44.725 --> 00:25:45.575
<v Wes>I would like to try this.

00:25:45.575 --> 00:25:47.159
<v Chris>Specifically with dispatcher support.

00:25:48.413 --> 00:25:51.591
<v Chris>And these, it's like, it's bringing a lot of the stuff that I have all together

00:25:51.591 --> 00:25:55.908
<v Chris>now in an interface that's actually clean. And I mean, the performance is better.

00:25:56.598 --> 00:26:00.308
<v Wes>And you have more control, right? You can just easily put stuff you want on there.

00:26:00.882 --> 00:26:04.341
<v Chris>Well, like one of the things I was able to do is I just on this box could not

00:26:04.341 --> 00:26:05.776
<v Chris>get tail scale to start at boot.

00:26:05.956 --> 00:26:10.530
<v Chris>It works fine on my Paizel, but it wouldn't do it on this Yamai. Well, it works now.

00:26:11.558 --> 00:26:14.521
<v Chris>It went in there and it got it so that tail scale now starts automatically at

00:26:14.521 --> 00:26:17.201
<v Chris>boot. So that way my daughter doesn't have to do that before she launches Jellyfin.

00:26:17.601 --> 00:26:23.531
<v Wes>It is a very nice bonus to have something that can just go into an Android system,

00:26:23.531 --> 00:26:25.281
<v Wes>audit it, change things, find

00:26:25.281 --> 00:26:30.001
<v Wes>things. Like it feels a lot more in that interface like a Linux system.

00:26:30.501 --> 00:26:32.381
<v Wes>It never really felt that way before.

00:26:32.381 --> 00:26:37.501
<v Chris>Yeah. And it also removes some of the adware spyware crap that's in there.

00:26:37.501 --> 00:26:40.581
<v Chris>Like there's a talkback thing where it's tracking. There was two particular

00:26:40.581 --> 00:26:45.887
<v Chris>components that are basically like ad tracking spyware essentially that it removed for me.

00:26:46.241 --> 00:26:48.354
<v Wes>Yeah, I had 13 packages disabled.

00:26:48.540 --> 00:26:49.221
<v Chris>Whoa.

00:26:49.221 --> 00:26:53.081
<v Wes>Yeah, tv.remotecontrol.logging, logs remote control activity.

00:26:53.081 --> 00:26:53.411
<v Chris>Yeah.

00:26:53.411 --> 00:26:56.421
<v Wes>Partner setup, vendor onboarding path. Don't think I need that.

00:26:56.921 --> 00:27:00.781
<v Wes>Syncadapters.calendar, you know, for your calendar sync on your TV that I don't

00:27:00.781 --> 00:27:02.060
<v Wes>actually use and don't need.

00:27:02.881 --> 00:27:06.866
<v Wes>Netoscope, network measurement and reporting. Something called federated compute,

00:27:07.139 --> 00:27:08.721
<v Wes>on-device federated learning.

00:27:08.721 --> 00:27:10.901
<v Chris>Whoa, something like some crazy program.

00:27:10.981 --> 00:27:11.601
<v Wes>Something's training on here.

00:27:11.621 --> 00:27:13.297
<v Chris>Some program they're never really going to do, but.

00:27:13.442 --> 00:27:19.723
<v Wes>On-device personalization.services. gotta have that ad services and ext ad services yep,

00:27:20.701 --> 00:27:24.551
<v Wes>shared service apex models dream x backdrop you could just take some of that

00:27:24.551 --> 00:27:27.281
<v Wes>was just like I don't need the screensaver from google on this device right

00:27:27.641 --> 00:27:29.418
<v Wes>but yeah there was a bunch of stuff to disable right.

00:27:31.489 --> 00:27:32.954
<v Chris>And as a result...

00:27:33.294 --> 00:27:34.524
<v Wes>I got 100 megs of RAM back.

00:27:34.524 --> 00:27:34.874
<v Chris>Whoa!

00:27:35.254 --> 00:27:36.673
<v Wes>And 66 megs of swap.

00:27:37.875 --> 00:27:39.024
<v Chris>I'm in a tiny box like that.

00:27:39.024 --> 00:27:40.464
<v Wes>That really matters. That's something, yeah.

00:27:40.464 --> 00:27:45.014
<v Chris>That's no joke. That's impressive. Yeah, maybe that's why my performance is

00:27:45.014 --> 00:27:47.644
<v Chris>so much better. I wonder. I didn't really dig into why it's so much.

00:27:47.644 --> 00:27:48.794
<v Chris>I just thought maybe it was the launcher.

00:27:48.794 --> 00:27:53.334
<v Wes>Yeah, so I ended up building the launcher because then I developed a bit of a little fork.

00:27:53.334 --> 00:27:53.934
<v Chris>I had to do the same.

00:27:54.494 --> 00:27:58.854
<v Wes>The stock launcher is 172 megs. A clean community rebuild from source is 80

00:27:58.854 --> 00:28:00.474
<v Wes>megs with the same features.

00:28:00.474 --> 00:28:00.674
<v Chris>Yeah.

00:28:02.374 --> 00:28:05.314
<v Wes>Yeah, and I was able to build it with the Nix Android SDK. Yep.

00:28:05.774 --> 00:28:06.764
<v Wes>No problem, which was great.

00:28:06.764 --> 00:28:09.615
<v Chris>Yep. You did something a little different, though, on yours.

00:28:10.259 --> 00:28:13.371
<v Wes>Yeah, I attempted. It's not finished. I'm not happy with the interface.

00:28:13.568 --> 00:28:18.294
<v Wes>But I just wanted to see, like, okay, well, someone was able to develop a new launcher for this.

00:28:18.294 --> 00:28:18.897
<v Chris>It's beautiful.

00:28:19.460 --> 00:28:23.564
<v Wes>Can I make it look worse? Can I customize it? What can I do with that,

00:28:23.564 --> 00:28:27.535
<v Wes>right? If it's just an Android app I can build, then in theory,

00:28:27.657 --> 00:28:31.424
<v Wes>I can just ship my own, you know, view screen onto the TV.

00:28:31.424 --> 00:28:31.794
<v Chris>Could do.

00:28:32.194 --> 00:28:33.974
<v Wes>Yeah. And you had recently found.

00:28:35.145 --> 00:28:37.064
<v Chris>Like a L-Cars dashboard GitHub.

00:28:37.064 --> 00:28:37.834
<v Brent>Oh, here we go.

00:28:37.834 --> 00:28:41.994
<v Wes>Someone had developed like a way to make really nice dashboards in like an L-Cars in style.

00:28:41.994 --> 00:28:47.184
<v Chris>And to be clear, L-Cars is the style of computer interface on the Star Trek,

00:28:47.184 --> 00:28:52.032
<v Chris>the next generation TV series. It stands for library, computer and retrieval system, L-Cars.

00:28:52.212 --> 00:28:56.037
<v Chris>And it's the standard developed by the Okudas, and it's beautiful.

00:28:57.292 --> 00:29:02.568
<v Chris>So it immediately screams Star Trek. And so, Wes, you created an Elkhart's television

00:29:02.568 --> 00:29:03.898
<v Chris>interface for yourself. I want it!

00:29:04.818 --> 00:29:08.678
<v Wes>Well, okay, so it's pretty janky right now. I'll send some of the development

00:29:08.678 --> 00:29:10.503
<v Wes>images so you can kind of see what the...

00:29:12.680 --> 00:29:17.869
<v Chris>It's bulky, but the spirit is there. Like, the top information bar is perfect.

00:29:18.362 --> 00:29:22.278
<v Chris>The top of it, and honestly, even the big tile buttons for the launchers isn't

00:29:22.278 --> 00:29:24.092
<v Chris>really that bad. It's just kind of the stuff above it.

00:29:24.784 --> 00:29:30.558
<v Wes>Yeah and it's been through um rapid and not always fully supervised iteration sure.

00:29:30.558 --> 00:29:32.098
<v Chris>Yeah yeah yeah i know what you mean.

00:29:32.918 --> 00:29:37.699
<v Wes>But you know we was able to ship different fonts up there uh it was able to,

00:29:38.878 --> 00:29:41.918
<v Wes>hook it up itself up with a vision loop so we could help audit although i need

00:29:41.918 --> 00:29:46.122
<v Wes>to do more auditing clearly but i if it took a little while to get it to actually,

00:29:46.581 --> 00:29:51.438
<v Wes>understand the full l cars style and respect it.

00:29:51.438 --> 00:29:52.252
<v Chris>You got close though.

00:29:52.623 --> 00:29:55.805
<v Wes>It was some progress. It was a fun idea to see if I could even customize it at all.

00:29:57.255 --> 00:29:59.872
<v Chris>I think you should keep pressing on that. Oh, I think I have to put it up on

00:29:59.872 --> 00:30:04.032
<v Chris>GitHub so I can take it all just so I can take it all. And then all of my televisions,

00:30:04.032 --> 00:30:06.727
<v Chris>all of my televisions will be L cars. And then once I do that,

00:30:07.006 --> 00:30:10.303
<v Chris>I'll have to standardize all of my dashboards and home assistant to L cars.

00:30:10.773 --> 00:30:13.782
<v Chris>All my agents are already Star Trek themed. So then it just all connects.

00:30:13.782 --> 00:30:15.568
<v Chris>So this is this is really important that you do this.

00:30:16.882 --> 00:30:21.553
<v Chris>So that is clean TV and it's or clean your TV. And it's awesome.

00:30:22.070 --> 00:30:23.662
<v Chris>It's really growing like crazy, too.

00:30:24.182 --> 00:30:28.223
<v Chris>There are 303 different television models, 86 different brands,

00:30:28.525 --> 00:30:31.292
<v Chris>28 languages supported at the moment.

00:30:31.292 --> 00:30:32.199
<v Wes>That's so great.

00:30:32.368 --> 00:30:32.922
<v Chris>Yeah.

00:30:33.302 --> 00:30:34.225
<v Wes>Just cooking.

00:30:34.394 --> 00:30:38.222
<v Chris>When I get back from camping, I am pointing this at my LG television as well

00:30:38.222 --> 00:30:39.769
<v Chris>and taking care of that business.

00:30:40.355 --> 00:30:43.272
<v Chris>But I might use something a little different. I haven't really decided yet.

00:30:43.272 --> 00:30:47.032
<v Chris>The other project I think it's worth mentioning is Dumb TV. There are a lot

00:30:47.032 --> 00:30:49.202
<v Chris>of these, but Dumb TV is a popular one right now.

00:30:49.818 --> 00:30:53.922
<v Chris>So kind of a little more focused at the actual television, smart televisions,

00:30:53.922 --> 00:30:57.300
<v Chris>not so much the set-top boxes. But again, another clean launcher.

00:30:57.718 --> 00:31:01.741
<v Chris>The thing I love about this too is for my main tvOS, this is perfect.

00:31:02.130 --> 00:31:05.782
<v Chris>They just put big, huge HDMI input selectors right here on the launcher.

00:31:05.782 --> 00:31:09.462
<v Chris>Because really that's what I need the main tvOS for is selecting the input.

00:31:09.462 --> 00:31:13.392
<v Wes>I mean, how many times like we're at an Airbnb and that option is just buried

00:31:13.392 --> 00:31:16.543
<v Wes>somewhere totally different in each different one. I don't, that's wild.

00:31:16.781 --> 00:31:20.212
<v Chris>Also, I think this works on a fire TV stick. So yeah, yeah, yeah.

00:31:20.212 --> 00:31:24.362
<v Chris>So if you've got a Fire TV stick or a cube, you can throw this at it and remove,

00:31:24.362 --> 00:31:28.361
<v Chris>oh, this would be great for our Airbnb system. Again, what they're doing here is,

00:31:29.221 --> 00:31:30.681
<v Chris>it's adb it's all android adb.

00:31:30.681 --> 00:31:35.441
<v Brent>They have a massive list of all the fire sticks that are already supported by

00:31:35.441 --> 00:31:37.649
<v Brent>that project it's huge i know.

00:31:37.963 --> 00:31:41.581
<v Wes>Yeah that's where too it's worth a just auditing these things because they're

00:31:41.581 --> 00:31:44.651
<v Wes>new and moving fast and you know make sure you know what you're doing but then also uh,

00:31:45.533 --> 00:31:49.301
<v Wes>you can customize it right like you don't have to just run their script upstream

00:31:49.301 --> 00:31:53.071
<v Wes>stuff as it is uh do that if you want but like maybe you want some features

00:31:53.071 --> 00:31:55.651
<v Wes>left on but you want to turn a bunch off there's a there's.

00:31:55.651 --> 00:32:00.010
<v Chris>Already forks of this um or versions of this for like BenQ projectors.

00:32:00.765 --> 00:32:01.251
<v Wes>Yeah.

00:32:01.251 --> 00:32:08.971
<v Chris>Some Philips televisions, some Hisense smart TVs, TCL smart TV pro G08 is out

00:32:08.971 --> 00:32:12.972
<v Chris>there. A couple of yummy TV sticks as well. So it's just.

00:32:14.843 --> 00:32:16.739
<v Wes>Something tells me those lists keep growing.

00:32:16.960 --> 00:32:22.983
<v Brent>You know once for a while one thing i liked a lot about how clean your tv implemented

00:32:22.983 --> 00:32:25.325
<v Brent>this or at least how they're presenting it in their docs,

00:32:26.137 --> 00:32:30.673
<v Brent>is they said well you know if you got a clanker just point it at this and it'll

00:32:30.673 --> 00:32:36.093
<v Brent>figure it out but if you don't feel comfortable doing that here's exactly what

00:32:36.093 --> 00:32:37.073
<v Brent>everything does here are the

00:32:37.073 --> 00:32:39.913
<v Brent>scripts you can look at them yourself you could run it yourself and like,

00:32:40.583 --> 00:32:43.999
<v Brent>not a big deal And I think that's actually quite a reasonable approach.

00:32:44.562 --> 00:32:45.343
<v Chris>Yeah, it's nice to have both.

00:32:46.063 --> 00:32:48.083
<v Wes>I feel empowered to make it work for you.

00:32:48.423 --> 00:32:55.894
<v Chris>So this, in my opinion, is the absolute essence of right to repair in the AI-assisted world.

00:32:56.468 --> 00:32:59.220
<v Chris>These boxes have felt consumer hostile to me.

00:32:59.799 --> 00:33:03.642
<v Chris>They were upsetting and poorly implemented.

00:33:04.513 --> 00:33:07.763
<v Chris>And it was all just software. They had the hardware capabilities all along.

00:33:07.763 --> 00:33:09.650
<v Chris>They just weren't using it in the way that I needed it.

00:33:10.207 --> 00:33:14.009
<v Chris>and to be able to take something that I purchased that I was so deeply disappointed in,

00:33:14.520 --> 00:33:18.583
<v Chris>and then use these tools to turn it into something that actually works better

00:33:18.583 --> 00:33:21.133
<v Chris>for me than they could have originally offered because they don't know I want

00:33:21.133 --> 00:33:24.233
<v Chris>home assistant integration and I want to be able to have a module to turn on

00:33:24.233 --> 00:33:26.343
<v Chris>ADB remotely really quickly from the launch screen.

00:33:26.803 --> 00:33:28.553
<v Chris>They're never going to build that, but I can't.

00:33:28.553 --> 00:33:29.443
<v Wes>That's a product for you.

00:33:29.443 --> 00:33:32.533
<v Chris>That's a product for me. And so now the launcher, if they have problems,

00:33:32.533 --> 00:33:35.738
<v Chris>I say, okay, you just hit this button on the launcher. It'll turn on ADB remote.

00:33:35.911 --> 00:33:39.064
<v Chris>My clinker will find it and I can take care of it with one click,

00:33:39.314 --> 00:33:42.413
<v Chris>right? Or fix the tail scale thing. So it always turns on for whatever reason,

00:33:42.413 --> 00:33:45.148
<v Chris>that yammy box just wasn't going to allow it, but now it does.

00:33:45.601 --> 00:33:50.262
<v Chris>And ripping out that launcher that was riddled with disgusting ads.

00:33:51.127 --> 00:33:55.123
<v Chris>constantly changing, always stealing my attention. Now with something clean

00:33:55.123 --> 00:33:58.873
<v Chris>and simple that I would say captures the original essence of the simplicity of the Apple TV,

00:33:59.635 --> 00:34:03.383
<v Chris>but with my customizations, it really feels like I have injected the right to

00:34:03.383 --> 00:34:06.653
<v Chris>repair directly into my veins and I cannot be stopped.

00:34:06.653 --> 00:34:10.863
<v Chris>I have now gone after my Fire TV or my Fire tablet, my Amazon piece of crap

00:34:10.863 --> 00:34:13.456
<v Chris>tablet, and I've reduced a bunch of memory usage on that.

00:34:13.758 --> 00:34:15.163
<v Chris>I'm going after another, I'm

00:34:15.163 --> 00:34:18.683
<v Chris>going to go after my Shield and my LG television. I'm going after those.

00:34:18.853 --> 00:34:21.753
<v Chris>And then when I'm done, i'm probably gonna get another one of these yaome tv

00:34:21.753 --> 00:34:27.533
<v Chris>boxes because they're 79 on amazon used so you can pick it up for under 90 bucks

00:34:27.533 --> 00:34:30.603
<v Chris>under 100 bucks and have this thing that's got a bunch of memory and it's got

00:34:30.603 --> 00:34:32.474
<v Chris>great performance once you hack the crap out of it and it,

00:34:32.938 --> 00:34:35.453
<v Chris>it's for once oh i feel so good wes.

00:34:35.453 --> 00:34:41.433
<v Wes>It's nice to turn them kind of being like lazy and bad into something that's useful for us.

00:34:41.433 --> 00:34:41.893
<v Chris>Instead of the.

00:34:41.893 --> 00:34:46.153
<v Wes>Reverse and it's kind of another example of the rising tide right of the ai

00:34:46.153 --> 00:34:48.635
<v Wes>finding stuff and this is not even the particularly good stuff.

00:34:49.058 --> 00:34:53.273
<v Brent>And a lot of this hardware is like okay it's fairly low,

00:34:53.940 --> 00:34:56.723
<v Brent>like performance hardware but it's perfectly fine for this use case and the

00:34:56.723 --> 00:35:00.543
<v Brent>only reason a lot of it has become unusable is because of the bloat they've

00:35:00.543 --> 00:35:01.770
<v Brent>added to it over the years,

00:35:02.380 --> 00:35:05.503
<v Brent>like chris your box you keep trying to give to me that you just mentioned has

00:35:05.503 --> 00:35:08.173
<v Brent>been under your tv just collecting dust because it got to the point where you

00:35:08.173 --> 00:35:12.773
<v Brent>updated and it was kind of like super slow and useless but maybe this just recovers it right.

00:35:12.773 --> 00:35:16.303
<v Chris>And this new launcher has just been garbage that when Google introduced this

00:35:16.303 --> 00:35:19.163
<v Chris>launcher with the build and advertising for streaming services that I don't

00:35:19.163 --> 00:35:23.283
<v Chris>use and never will sign up for with images that can be anything from sexual to grotesque.

00:35:23.481 --> 00:35:23.980
<v Wes>Mm-hmm.

00:35:25.537 --> 00:35:27.904
<v Chris>That was just a deal. That's when the deal was changed.

00:35:27.904 --> 00:35:30.014
<v Wes>This is not a product that I would be willing to buy.

00:35:30.014 --> 00:35:32.659
<v Chris>This line of father, I said. And then I broke my little ship.

00:35:32.793 --> 00:35:36.754
<v Wes>It is worth noting, probably, right, this will not be just a one-and-done thing.

00:35:36.754 --> 00:35:40.264
<v Wes>They don't have to allow debugging on these things in theory.

00:35:40.264 --> 00:35:41.644
<v Wes>They can lock it down on all kinds of things.

00:35:41.644 --> 00:35:44.034
<v Chris>Well, that's crossed my mind, too. That might be another reason why I buy one

00:35:44.034 --> 00:35:47.874
<v Chris>sooner than later. I'm going to get in while the getting's good.

00:35:47.874 --> 00:35:52.144
<v Wes>I do think we're better armed for that now. So I'm not saying that it crushes

00:35:52.144 --> 00:35:55.494
<v Wes>us totally, comes back. There may be some details.

00:35:55.494 --> 00:35:57.624
<v Chris>The knock-on effect for this, for me, though, could be huge.

00:35:58.184 --> 00:36:01.274
<v Chris>I may be done finally. I may be released from the grips of the Apple TV,

00:36:01.274 --> 00:36:03.187
<v Chris>which has been the only device I've been able to live with.

00:36:03.779 --> 00:36:07.354
<v Chris>I may finally be freed from the grips of the Apple TV, which has massive knock-on

00:36:07.354 --> 00:36:09.781
<v Chris>effects. I'm going to have to redo my surround sound system.

00:36:10.106 --> 00:36:13.034
<v Chris>I'm going to need the audience to tell me, boost it and tell me,

00:36:13.034 --> 00:36:15.987
<v Chris>what is really the best Jellyfin client? Is it just the Jellyfin client?

00:36:16.405 --> 00:36:18.854
<v Chris>Because Infuse just crushes it on the Apple TV.

00:36:19.342 --> 00:36:21.118
<v Chris>What is the best IPTV client?

00:36:22.604 --> 00:36:24.354
<v Wes>I would like to know that, too, because I've tried a few.

00:36:24.354 --> 00:36:26.624
<v Chris>But I don't know if I love it. That supports M3U or, you know,

00:36:26.624 --> 00:36:30.484
<v Chris>and works with dispatcher, maybe does multi-stream support. I like on Android.

00:36:30.484 --> 00:36:33.791
<v Chris>I don't know if I know any of them that do multi-stream. I want to watch multiple streams at once.

00:36:34.354 --> 00:36:39.654
<v Chris>And then the last thing that I could really use help on is I need a good RTMP,

00:36:39.654 --> 00:36:44.031
<v Chris>RTSP, IP cam viewer that can pull in multiple cameras, maybe even do a dashboard.

00:36:44.361 --> 00:36:47.177
<v Chris>I know there's like a couple out there, like tiny cam pro. Yeah.

00:36:48.257 --> 00:36:51.845
<v Chris>But none of them are as good as some of the apps on iOS. So if anybody has the

00:36:51.845 --> 00:36:54.525
<v Chris>– I know there must be out there. So please, please help me.

00:36:54.885 --> 00:37:00.865
<v Chris>Jellyfin IPTV and RTSP camera feed viewer. Like that's the key stuff that every

00:37:00.865 --> 00:37:04.475
<v Chris>time I go back to iOS or I guess it's tvOS or whatever the crap they call it.

00:37:04.933 --> 00:37:08.395
<v Chris>It's just they knock it out of the park on that stuff. But the modifications

00:37:08.395 --> 00:37:13.095
<v Chris>and control that I now have and the integration with my home automation system

00:37:13.252 --> 00:37:16.137
<v Chris>and my networking and all of it is – I can't go back.

00:37:16.462 --> 00:37:19.975
<v Chris>I got to have it. So this is the way forward as long as I can continue to do

00:37:19.975 --> 00:37:23.753
<v Chris>this. So I got to drop the Apple TV habit now. That's how much I like this.

00:37:24.078 --> 00:37:27.675
<v Chris>And just, what was it, a couple of weeks ago, I was ranting and raving and shaming

00:37:27.675 --> 00:37:28.525
<v Chris>people for buying these things.

00:37:28.525 --> 00:37:30.285
<v Wes>You were at the total other side of this.

00:37:30.829 --> 00:37:35.635
<v Chris>I was so pissed at how bad this product is and that the marketplace even allows

00:37:35.635 --> 00:37:38.315
<v Chris>for it. And now I want to buy another one because I've.

00:37:38.315 --> 00:37:41.121
<v Wes>– Isn't it funny that it also ends up with you buying more of that?

00:37:41.748 --> 00:37:46.215
<v Chris>Well, it's – I wonder if let me control the device. Yeah. Dummies?

00:37:46.215 --> 00:37:46.567
<v Wes>Uh-huh.

00:37:47.205 --> 00:37:47.705
<v Chris>Jeez.

00:37:47.705 --> 00:37:49.817
<v Wes>I want to buy your hardware. I don't want this.

00:37:50.055 --> 00:37:53.415
<v Chris>Ah, it's, you know, the problem is, and then we don't have to spend a lot of

00:37:53.415 --> 00:37:56.143
<v Chris>time on this, but they don't really make a ton of money on the hardware. That's the problem.

00:37:56.746 --> 00:37:58.464
<v Chris>And perhaps that's where the deal changes. But,

00:38:00.525 --> 00:38:02.935
<v Chris>we could negotiate that. I think the market would be willing to negotiate a

00:38:02.935 --> 00:38:04.625
<v Chris>fair price for hardware that we have control over.

00:38:04.625 --> 00:38:07.741
<v Wes>Especially if it just worked, you could, you know, it was supported for a while.

00:38:08.263 --> 00:38:11.705
<v Chris>Really very much do recommend you do this. You're going to love it.

00:38:11.705 --> 00:38:13.825
<v Chris>Your family's going to love it. They're going to appreciate it.

00:38:13.825 --> 00:38:15.537
<v Chris>It makes the TV much less frustrating.

00:38:15.979 --> 00:38:20.035
<v Chris>And if you got a, if you got an LG or a Samsung or one of these Google TV boxes,

00:38:20.035 --> 00:38:21.743
<v Chris>it's worth taking a crack at.

00:38:22.074 --> 00:38:25.899
<v Chris>And even if you've never clanked it up before, just I'll wrap, I'll leave it with this.

00:38:26.868 --> 00:38:33.365
<v Chris>You can go get yourself some open code and they've got some free models on there that will drive this.

00:38:34.334 --> 00:38:38.130
<v Chris>And it's not like you're doing something that's your taxes or your medical records.

00:38:38.426 --> 00:38:41.073
<v Chris>You're doing something that thousands of other people are, and that is going

00:38:41.073 --> 00:38:44.773
<v Chris>after like a webOS box, right? So it's not top secret stuff here.

00:38:44.773 --> 00:38:49.363
<v Wes>And a lot of it, especially just if you're doing ADB stuff, much of it's reversible.

00:38:49.363 --> 00:38:52.508
<v Wes>You know, it's not a huge like, am I going to break this device necessarily?

00:38:52.693 --> 00:38:57.448
<v Chris>I'll say, so you were using the DeepSeek. I was using Minimax M.31 Flash,

00:38:57.570 --> 00:39:01.073
<v Chris>which is a total psychopath savage and is definitely going to do it for you if you want it.

00:39:01.633 --> 00:39:04.393
<v Chris>And let us know. If you do this, let us know how it goes. I'm telling you,

00:39:04.393 --> 00:39:07.053
<v Chris>it's going to be one of your favorite things you do this year in technology.

00:39:07.053 --> 00:39:10.033
<v Chris>It really is a game changer. It's that great. Check it out. Let us know.

00:39:10.033 --> 00:39:11.745
<v Chris>Boost.JupiterBroadcasting.com.

00:39:20.974 --> 00:39:24.659
<v Brent>Well, my goodness, we received some boosts this week, and we're going to start

00:39:24.659 --> 00:39:26.681
<v Brent>with our baller booster, Antti.

00:39:33.519 --> 00:39:37.577
<v Brent>222,222 sats for a, what do we call this? A big McDuck.

00:39:38.035 --> 00:39:38.807
<v Chris>Woo!

00:39:43.637 --> 00:39:45.219
<v Wes>Quadruple bypass, McDuck.

00:39:47.099 --> 00:39:49.709
<v Chris>No, we're not calling it that. Not calling it that.

00:39:49.709 --> 00:39:55.409
<v Brent>Boost in if you want us to call it that. I have been listening since the Lunduk

00:39:55.409 --> 00:40:01.417
<v Brent>days and wanted to thank you all for the value I've gained from Blass and LUP and also self-hosted.

00:40:02.369 --> 00:40:04.359
<v Brent>Here's a couple of pics I've found recently.

00:40:04.359 --> 00:40:06.072
<v Chris>Ooh, very good.

00:40:06.217 --> 00:40:10.049
<v Brent>Agent-Shell for all the fellow Emacs users out there.

00:40:10.925 --> 00:40:15.579
<v Brent>And getthehousewaves.com, which is speakers built for Home Assistant.

00:40:16.459 --> 00:40:19.839
<v Chris>Oh, we were just talking about this morning on Groupie Chat.

00:40:20.539 --> 00:40:22.359
<v Wes>It's got a cool name.

00:40:22.359 --> 00:40:26.549
<v Chris>Cheese Bacon, are you listening? Here you go, buddy. Home Assistant speaker

00:40:26.549 --> 00:40:30.719
<v Chris>you've been looking for for ESP Home exclusively. Oh, yes.

00:40:31.339 --> 00:40:33.239
<v Chris>Were we not just talking about this this morning?

00:40:34.299 --> 00:40:38.764
<v Chris>Wow, this is so good. House Waves. House Waves 1, 2.

00:40:38.764 --> 00:40:41.007
<v Brent>And 3. It's got an open Music Assistant built in. Nice.

00:40:41.436 --> 00:40:45.562
<v Chris>I'm a big, big, big, big fan of Music Assistant. and use it quite often.

00:40:46.459 --> 00:40:49.399
<v Chris>This is really good. I don't say anything about prices, do you?

00:40:50.392 --> 00:40:52.679
<v Chris>I'm too busy ogling over the speakers because they look well done.

00:40:52.719 --> 00:40:53.956
<v Brent>Maybe the price doesn't matter, Chris.

00:40:55.019 --> 00:40:56.947
<v Chris>Maybe it doesn't. It's probably not as expensive as a HomePod.

00:40:56.947 --> 00:41:02.807
<v Brent>Oh, I see prices. HouseWaves 1, which looks like the smaller version, the original, $79 US.

00:41:03.871 --> 00:41:07.691
<v Brent>And then they have a larger HouseWaves 2, the next level, $109.

00:41:08.236 --> 00:41:10.887
<v Brent>And they got a couple other models, too. They got all sorts of stuff here.

00:41:10.887 --> 00:41:14.343
<v Brent>Accessories, different wood shades and stuff. Wow.

00:41:15.150 --> 00:41:15.591
<v Chris>Okay.

00:41:15.911 --> 00:41:18.384
<v Wes>You know, this Asian shell thing actually looks pretty darn cool.

00:41:18.825 --> 00:41:23.337
<v Chris>HouseWaves Stream is a $40 box that connects Home Assistant and Music Assistant

00:41:23.337 --> 00:41:25.757
<v Chris>to your existing amplifier. If you have like a receiver.

00:41:25.757 --> 00:41:26.167
<v Brent>That's nice.

00:41:26.207 --> 00:41:27.097
<v Wes>That's nice.

00:41:27.805 --> 00:41:32.807
<v Brent>I like this house waves cube, a small inconspicuous three inch single driver

00:41:32.807 --> 00:41:34.765
<v Brent>speaker made to go in every room.

00:41:35.340 --> 00:41:39.154
<v Chris>$29 target price. So they're not available yet. Target price. That one.

00:41:39.907 --> 00:41:43.142
<v Chris>Some of them are pre-release. Okay. That's really cool. Now here's my question.

00:41:43.338 --> 00:41:48.266
<v Chris>Is there any way to tie all this together with Android TV to use these for surround sound?

00:41:48.661 --> 00:41:49.677
<v Wes>I think we got to find out.

00:41:49.677 --> 00:41:52.394
<v Chris>Cause the Apple TV can do it. So if we could do it,

00:41:53.287 --> 00:41:57.187
<v Chris>then these seriously become very worth it that's a that's a great one thank

00:41:57.187 --> 00:42:05.589
<v Chris>you auntie really appreciate that whomever whiz also is a baller this week with 65,536 satoshis,

00:42:12.178 --> 00:42:16.317
<v Chris>Whomever Wizz writes, I have been hard at work on Quip Clipper.

00:42:16.770 --> 00:42:19.854
<v Chris>Lots of new features and UI improvements. What I hope to finish by the end of

00:42:19.854 --> 00:42:23.904
<v Chris>the week is a full integration with my new soundboard at Leeds Stinger.

00:42:23.904 --> 00:42:26.654
<v Wes>Ooh, new soundboard, you say?

00:42:26.654 --> 00:42:27.985
<v Chris>Ooh, I just got really excited.

00:42:28.724 --> 00:42:30.594
<v Wes>Quip Clipper seems pretty great, too.

00:42:30.594 --> 00:42:35.324
<v Chris>Okay, so Leeds is a soundboard for macOS and Linux, fire sound cues from a grid

00:42:35.324 --> 00:42:37.563
<v Chris>cue list, and it's gripped everything from the command line.

00:42:38.404 --> 00:42:39.834
<v Wes>Ooh, it's got nice waveforms already.

00:42:39.834 --> 00:42:41.804
<v Chris>Shut up. Shut up, Wes. Shut up. It's got LKs.

00:42:42.004 --> 00:42:42.624
<v Brent>Oh, it's got Elkhars.

00:42:43.584 --> 00:42:45.744
<v Wes>Wes, it's got Elkhars! Well, we've had to have...

00:42:45.824 --> 00:42:45.904
<v Chris>Wes!

00:42:46.484 --> 00:42:48.794
<v Wes>We needed to have an Elkhars soundboard for years.

00:42:48.794 --> 00:42:49.934
<v Chris>Brent, do you see that?

00:42:49.934 --> 00:42:54.284
<v Brent>That's incredible. Chris, I feel like you're just... Like, this is you,

00:42:54.284 --> 00:42:57.354
<v Brent>whomever Viz is actually Chris, and he's making his own...

00:42:57.404 --> 00:42:58.414
<v Wes>Yeah, this is how he announces it.

00:42:58.424 --> 00:42:59.057
<v Chris>Also, boys.

00:43:00.218 --> 00:43:01.356
<v Wes>Written and razzed.

00:43:01.972 --> 00:43:02.684
<v Brent>Wow.

00:43:03.944 --> 00:43:06.470
<v Wes>And install the first line, Nix.

00:43:07.167 --> 00:43:07.744
<v Chris>Shut up.

00:43:07.744 --> 00:43:09.715
<v Wes>Yeah, Nix run. You can just Nix run it.

00:43:09.930 --> 00:43:12.744
<v Chris>Also, the non-LCARS UI looks really good.

00:43:12.744 --> 00:43:13.674
<v Wes>It does look very nice.

00:43:13.674 --> 00:43:17.824
<v Chris>So one of the things I very much like from a soundboard guy over here is you've

00:43:17.824 --> 00:43:22.194
<v Chris>got the waveforms in the buttons and you've got the play position of that particular

00:43:22.194 --> 00:43:23.368
<v Chris>clip in the button as well.

00:43:24.216 --> 00:43:28.724
<v Chris>This I'm telling you from somebody who uses a soundboard damn near every day

00:43:28.724 --> 00:43:31.118
<v Chris>for a decade is looking real good.

00:43:31.333 --> 00:43:34.462
<v Chris>I like where you're going with this. Um, boy, I wonder.

00:43:35.970 --> 00:43:40.044
<v Chris>I don't see a fade-out. I would like to see a fade-out, obviously.

00:43:40.473 --> 00:43:45.071
<v Chris>The other thing to consider would be, for guys like us, is OSC control.

00:43:45.228 --> 00:43:45.620
<v Wes>Oh, yeah.

00:43:45.620 --> 00:43:51.549
<v Chris>Or is it OCS? Anyways, so that way we could use it with something like BitFocus in the Stream Deck.

00:43:52.740 --> 00:43:54.300
<v Wes>Yeah, good API access.

00:43:54.840 --> 00:43:58.602
<v Chris>I know you've got Stream Deck integration, but I don't use the Stream Deck directly.

00:43:59.148 --> 00:44:02.270
<v Chris>Folks in a studio use something often like BitFocus or something like that that

00:44:02.270 --> 00:44:05.197
<v Chris>then sends to the device, and it controls the deck.

00:44:05.505 --> 00:44:08.657
<v Chris>this is looking so freaking good maybe i don't have to build my own soundboard,

00:44:09.893 --> 00:44:13.080
<v Chris>wouldn't that be nice because i was i mean i've been fixing to i have been fixing

00:44:13.080 --> 00:44:17.160
<v Chris>to good job whomever wow whomever keep up the great work and thanks for letting

00:44:17.160 --> 00:44:19.889
<v Chris>us know l cars freaking l cars can you believe it.

00:44:20.714 --> 00:44:25.060
<v Wes>Well greg the lawyer boots in with 22 222.

00:44:25.060 --> 00:44:26.147
<v Chris>Hey hey thanks greg.

00:44:29.084 --> 00:44:32.242
<v Wes>I saw Reddit open source banned AI.

00:44:32.654 --> 00:44:37.473
<v Wes>How soon before some sect of anti-AI zealots will fork a pre-AI Linux kernel

00:44:37.891 --> 00:44:41.808
<v Wes>and form an all-human distro made from increasingly divergent versions of FOSS software?

00:44:41.970 --> 00:44:45.894
<v Chris>You know, I hadn't thought about a pre-AI contribution kernel fork.

00:44:45.894 --> 00:44:48.327
<v Chris>They better get to it because it's been going and it's building.

00:44:49.114 --> 00:44:49.749
<v Chris>You think that'll happen?

00:44:50.068 --> 00:44:53.564
<v Wes>I mean, I could see. I think there will certainly be some forks or communities

00:44:53.564 --> 00:44:55.224
<v Wes>that choose to continue to maintain things.

00:44:55.224 --> 00:44:57.494
<v Chris>We should jot this down for a 2027 prediction.

00:44:57.494 --> 00:45:03.114
<v Wes>And how big that will that will be an interesting effect uh size to watch i

00:45:03.114 --> 00:45:07.694
<v Wes>think right because to really effectively do it you have to put in the main

00:45:07.694 --> 00:45:11.750
<v Wes>the maintain you know you got to develop it you got to maintain it and that is a non-trivial cost.

00:45:12.272 --> 00:45:17.844
<v Brent>I think the challenge here is deciding where to put your fork like which commit

00:45:17.844 --> 00:45:22.734
<v Brent>do you put your fork on because uh how are you proving which commit has ai and

00:45:22.734 --> 00:45:24.736
<v Brent>which one doesn't that's the real challenge.

00:45:25.560 --> 00:45:28.234
<v Wes>Yeah but you don't have to get it right perfect right it's because it's not

00:45:28.234 --> 00:45:29.604
<v Wes>it's not like it's a binary harm

00:45:29.604 --> 00:45:33.894
<v Wes>i think even i i don't take this this version but this is not a purist.

00:45:33.894 --> 00:45:39.394
<v Chris>Clearly yeah it is funny that the open source subreddit has banned ai so they've

00:45:39.394 --> 00:45:41.168
<v Chris>essentially banned the linux kernel i mean there is some,

00:45:42.144 --> 00:45:45.244
<v Chris>people have pointed that out the subreddit is actively discussing the issues

00:45:45.244 --> 00:45:50.314
<v Chris>you might say patient tech comes in with a row of satchels one thousand one,

00:45:50.774 --> 00:45:54.834
<v Chris>one one one i got that right Trust me, it's 11,111 sats.

00:45:54.834 --> 00:45:55.692
<v Brent>DNS, I think.

00:45:57.103 --> 00:46:00.944
<v Chris>Oh, that's good, too. A DNS boost. A Cloudflare boost. First boost into the

00:46:00.944 --> 00:46:02.913
<v Chris>show. Oh, hey, hey, hey. Nice.

00:46:05.125 --> 00:46:08.314
<v Chris>Only thing to say, I am Brent. You are Brent. We are all Brent.

00:46:09.590 --> 00:46:11.014
<v Chris>In some way or another, definitely true.

00:46:11.014 --> 00:46:12.164
<v Wes>Amen to that. Amen to that.

00:46:12.164 --> 00:46:12.736
<v Brent>Feed your Brents.

00:46:13.421 --> 00:46:14.895
<v Chris>That's true. And you do need to feed your Brent.

00:46:16.596 --> 00:46:22.762
<v Wes>Gene Bean boosts in with a row of ducks. Keep up the distro reviews.

00:46:22.762 --> 00:46:24.422
<v Wes>We've got to vote for distro reviews.

00:46:24.422 --> 00:46:27.112
<v Chris>All right. See, that was a question that came up. Are distro reviews getting

00:46:27.112 --> 00:46:31.653
<v Chris>passe? Are they getting passe? We wanted feedback. Gene Bean comes in.

00:46:32.200 --> 00:46:33.682
<v Wes>Thank you, Gene. We sure appreciate it.

00:46:33.682 --> 00:46:34.613
<v Chris>Appreciate you.

00:46:34.914 --> 00:46:37.679
<v Brent>Well, Soham is here with 2000 Sats.

00:46:39.780 --> 00:46:44.382
<v Brent>I need a straw poll of how many people think the show is live on an actual Tuesday

00:46:44.382 --> 00:46:46.122
<v Brent>versus an actual Sunday.

00:46:50.042 --> 00:46:51.882
<v Chris>Yeah, it's a confusing legacy.

00:46:51.942 --> 00:46:53.182
<v Wes>It may explain our live attendance.

00:46:54.562 --> 00:46:56.335
<v Chris>Yeah. Shout out to the people that made it in the Mumble Room.

00:46:56.458 --> 00:46:59.622
<v Chris>How is that chat room doing? How is that chat room doing? All right.

00:47:00.222 --> 00:47:03.639
<v Chris>Yeah. Well, it's a long story. I don't think we have to explain it today.

00:47:04.143 --> 00:47:04.912
<v Wes>We've explained it before.

00:47:04.912 --> 00:47:08.342
<v Chris>We have. We have explained it. It was also, I think, explained recently on the launch.

00:47:08.342 --> 00:47:09.682
<v Wes>And we'll probably explain it again.

00:47:09.682 --> 00:47:13.100
<v Chris>I think we might. Stay tuned. Thank you, So. Appreciate you.

00:47:14.262 --> 00:47:17.407
<v Chris>Oppie1984 is here with 4,081 satushers.

00:47:18.934 --> 00:47:21.732
<v Chris>That's not the right one. But that was, sometimes the random button doesn't deliver.

00:47:23.415 --> 00:47:26.822
<v Chris>Sometimes it doesn't deliver. That's, just gotta slow down a little bit.

00:47:26.822 --> 00:47:28.831
<v Wes>I mean, that's why we gotta find out. That's why we're hooked.

00:47:29.422 --> 00:47:31.862
<v Chris>Forgot to top off my wallet and haven't been streaming sats for most of the

00:47:31.862 --> 00:47:35.552
<v Chris>episode. Makeup boost. Ha ha. You know what? He's a good guy,

00:47:35.552 --> 00:47:37.190
<v Chris>isn't he? He's a great guy.

00:47:38.902 --> 00:47:39.703
<v Chris>He's a great guy.

00:47:41.595 --> 00:47:46.512
<v Wes>Magnolia Mayhem. comes in with 6,666 cents.

00:47:46.512 --> 00:47:47.481
<v Chris>Ooh, spooky!

00:47:50.553 --> 00:47:54.291
<v Wes>You know who I haven't heard anything out of in the last few years? R.M.S.

00:47:54.291 --> 00:47:59.471
<v Chris>You know, that's crossed my mind as well. He seems to have truly and kind of,

00:47:59.471 --> 00:48:03.469
<v Chris>well, he has done a few events, but it's just kind of complicated.

00:48:05.275 --> 00:48:08.981
<v Chris>So I think his relationship with the public is a bit complicated these days.

00:48:09.401 --> 00:48:13.621
<v Wes>And I think, you know, some folks have moved on, communities have kind of moved on as well.

00:48:13.621 --> 00:48:19.468
<v Brent>Yeah, the last I heard, he was doing some stuff the community wasn't really okay with.

00:48:20.106 --> 00:48:25.581
<v Chris>Yeah well I think I saw him do some events but I think yeah I think he's sort

00:48:25.581 --> 00:48:28.221
<v Chris>of pulled back he doesn't want to be the he wants free software to have the

00:48:28.221 --> 00:48:31.001
<v Chris>attention I'm sure not it is sort of controversial,

00:48:33.143 --> 00:48:36.429
<v Chris>but I have thought the same thing ma'am I have thought the same thing.

00:48:38.623 --> 00:48:42.301
<v Brent>Geek Quest sent in a fiat boost 96 US dollars.

00:48:43.341 --> 00:48:43.749
<v Chris>Hey,

00:48:46.071 --> 00:48:47.383
<v Chris>that ain't two shabs,

00:48:50.477 --> 00:48:51.307
<v Chris>Thank you, Geek Quest.

00:48:51.446 --> 00:48:54.813
<v Brent>I'm a year-plus listener catching up on that back catalog.

00:48:55.173 --> 00:49:00.391
<v Brent>Heard Greg the Lawyer's membership challenge, so I just became a member,

00:49:00.391 --> 00:49:03.619
<v Brent>and here's 12 months of back pay for the content I've enjoyed.

00:49:04.101 --> 00:49:07.538
<v Chris>Geek, thank you so much. That is really generous and very much appreciated.

00:49:08.263 --> 00:49:11.191
<v Chris>Thank you, sir, and welcome. I hope you enjoyed the bootleg.

00:49:11.191 --> 00:49:11.841
<v Wes>Indeed. it.

00:49:12.902 --> 00:49:19.601
<v Chris>Rocket Boy 78681 comes in with $75 of Satushers, but not actually Satushers.

00:49:19.601 --> 00:49:21.021
<v Chris>They're fiat. You get it.

00:49:25.156 --> 00:49:27.191
<v Chris>When you announced that you weren't coming to Texas Linux Fest,

00:49:27.191 --> 00:49:31.285
<v Chris>I felt a great disturbance in the forest, as if millions of voices suddenly cried out in terror.

00:49:31.679 --> 00:49:34.681
<v Chris>Glad you have reconsidered. This is your BBQ fund. Oh, great.

00:49:34.681 --> 00:49:35.011
<v Brent>Nice.

00:49:35.011 --> 00:49:38.878
<v Chris>You can put some more macaroni and cheese out there, too. You got it, buddy.

00:49:40.321 --> 00:49:45.878
<v Chris>And Wes, brace yourself buddy because yes zip code is a better deal it's a zip code boost,

00:49:48.823 --> 00:49:49.433
<v Chris>Did you bring your map?

00:49:49.433 --> 00:49:50.623
<v Wes>Of course.

00:49:50.623 --> 00:49:56.003
<v Chris>Such a pro. Such a pro. All right, so where is Rocket Boys? How is $75?

00:49:56.003 --> 00:49:56.763
<v Wes>You got any guesses?

00:49:58.683 --> 00:50:00.023
<v Brent>It's in the US for sure.

00:50:00.523 --> 00:50:03.183
<v Chris>It's in his name. He snuck it in the username.

00:50:03.183 --> 00:50:03.653
<v Wes>Yes, he did.

00:50:03.653 --> 00:50:06.703
<v Brent>Where's seven? Is that like more southern or on the west?

00:50:06.703 --> 00:50:07.983
<v Wes>Well, the message has a clue.

00:50:08.003 --> 00:50:09.186
<v Chris>All right.

00:50:09.683 --> 00:50:09.911
<v Wes>Oh.

00:50:10.963 --> 00:50:11.363
<v Chris>Well, he's in Texas.

00:50:11.543 --> 00:50:12.063
<v Brent>Disturbance in the forest.

00:50:12.063 --> 00:50:12.583
<v Wes>Here we go.

00:50:12.583 --> 00:50:14.343
<v Chris>He's in Texas. He's in Texas, clearly.

00:50:14.343 --> 00:50:18.813
<v Wes>But how about Round Rock in the Austin Metropolitan?

00:50:18.813 --> 00:50:22.683
<v Chris>Hey, very nice. Hey, Round Rock, do they have a Babes Chicken in Round Rock?

00:50:22.683 --> 00:50:25.196
<v Chris>I think they do, right? Don't they have a Babes Chicken there?

00:50:25.677 --> 00:50:28.770
<v Chris>I can't remember. It's great. Yeah, Williamson County.

00:50:29.351 --> 00:50:32.183
<v Chris>Central time right now over there. It's almost 2 p.m. in the afternoon over

00:50:32.183 --> 00:50:33.833
<v Chris>there where Rocket Boy's at. Thank you, Rocket Boy.

00:50:33.833 --> 00:50:35.633
<v Wes>Thank you for the support. Thank you for listening.

00:50:35.633 --> 00:50:39.023
<v Chris>Yes, yes. Darth Daddy, huh?

00:50:39.023 --> 00:50:41.373
<v Wes>Uh-huh, Darth Daddy 10. Get it right, get it right.

00:50:41.373 --> 00:50:43.619
<v Chris>I don't recognize that one. I love it. That's great.

00:50:44.403 --> 00:50:46.283
<v Wes>Yeah, it comes in with $50.

00:50:48.292 --> 00:50:49.023
<v Wes>Oh, here we go.

00:50:49.063 --> 00:50:49.413
<v Chris>Okay.

00:50:51.445 --> 00:50:54.223
<v Chris>I've switched to dot, dot, dot, Mac and Linux and Ubuntu.

00:50:54.223 --> 00:51:00.003
<v Wes>Yeah, we've got a Microsoft. Someone saying some not nice things about Microsoft.

00:51:00.003 --> 00:51:01.723
<v Chris>I don't even get it, but I kind of get the gist.

00:51:01.723 --> 00:51:03.705
<v Brent>Oh, it's graphic. It's quite graphic.

00:51:04.703 --> 00:51:07.123
<v Wes>I've switched to Mac and Linux with Ubuntu.

00:51:07.123 --> 00:51:10.743
<v Chris>Yeah, I guess Brent knows what that means. So there you go. Very well done,

00:51:10.743 --> 00:51:12.403
<v Chris>sir. Appreciate you. And thank you, Darth Vader.

00:51:12.403 --> 00:51:14.543
<v Wes>Yeah, let us know how it goes. Hopefully you stick with it.

00:51:14.543 --> 00:51:15.448
<v Chris>Mm-hmm. Mm-hmm.

00:51:15.942 --> 00:51:23.933
<v Brent>Personic sent in 20 fiat dollars this is for episode 6 8 9 you boys have been

00:51:23.933 --> 00:51:27.491
<v Brent>killing it lately and the episode just proves that,

00:51:28.275 --> 00:51:33.823
<v Brent>also kudos to clanker streams love them you guys have said it recently we might

00:51:33.823 --> 00:51:38.153
<v Brent>be in a new golden age of open source software if we can wrestle it away from

00:51:38.153 --> 00:51:39.897
<v Brent>those evil corporations.

00:51:40.952 --> 00:51:42.980
<v Wes>Amen to that. Thank you for the support.

00:51:42.980 --> 00:51:47.814
<v Chris>Ready to fire up my local open model. I'll tell you what. Tell you what. Thank you very much.

00:51:48.452 --> 00:51:54.080
<v Chris>Appreciate you, bro. Anon comes in with $10 of fiat. Just says thanks. Thank you very much.

00:51:54.080 --> 00:51:58.260
<v Brent>No, no, no, no. I think this says THX. You know that sound that we all love? THX?

00:51:58.260 --> 00:52:00.060
<v Chris>Oh, I'd love to play that, but I can't.

00:52:00.060 --> 00:52:00.620
<v Brent>Oh, okay.

00:52:00.620 --> 00:52:02.140
<v Chris>They come at you for that. They protect that.

00:52:02.140 --> 00:52:03.300
<v Wes>It's a very special sound.

00:52:03.300 --> 00:52:07.200
<v Chris>They really do. But yeah, you might be right. I'll take Ginger Jammer.

00:52:07.200 --> 00:52:10.035
<v Chris>Ginger Jammer also with $10 fiat. Dallas?

00:52:10.865 --> 00:52:14.100
<v Chris>Long time member, haven't boosted in a while. If you like the Scrolling Window

00:52:14.100 --> 00:52:18.348
<v Chris>Manager, which we talked about in last week's episode, you should definitely check out Neri. Yeah.

00:52:18.714 --> 00:52:19.370
<v Wes>Neri's good.

00:52:19.370 --> 00:52:19.680
<v Chris>Yeah.

00:52:20.120 --> 00:52:21.170
<v Wes>And Umbriel.

00:52:21.170 --> 00:52:21.660
<v Chris>Umbriel as well, yeah.

00:52:21.660 --> 00:52:22.760
<v Wes>Which I have not checked out.

00:52:23.300 --> 00:52:26.200
<v Chris>I've started with Hyperland, but found Neri, and eventually Umbriel made much

00:52:26.200 --> 00:52:30.398
<v Chris>more sense to my mental model of a window manager. Here are a lot of really good things about Neri.

00:52:31.106 --> 00:52:33.463
<v Wes>It is fun, too, that we have so many options, because there is sort of,

00:52:33.834 --> 00:52:37.270
<v Wes>you know, it seems that different people like, and their brains fit with different

00:52:37.270 --> 00:52:40.377
<v Wes>workflows, and it's wonderful that we just don't all have to conform to one.

00:52:40.667 --> 00:52:43.080
<v Chris>Well, we should all just be using the mother desktop Plasma because you can

00:52:43.080 --> 00:52:43.990
<v Chris>make it anything you want.

00:52:43.990 --> 00:52:45.260
<v Wes>Well, it is pretty great.

00:52:46.478 --> 00:52:48.144
<v Chris>Thank you, Ginger. Appreciate you.

00:52:48.254 --> 00:52:52.390
<v Wes>Okay, member free boost time, starting from Brian from Boise.

00:52:52.390 --> 00:52:53.612
<v Chris>Hey, Brian.

00:52:54.007 --> 00:52:59.980
<v Wes>Great interview. My sister runs a small rural library facing a 2028 ADA compliance deadline.

00:53:00.580 --> 00:53:04.032
<v Wes>SaaS vendors quoted thousands of dollars, far beyond their budget.

00:53:04.403 --> 00:53:08.264
<v Wes>I'm building her an accessible website using FOSS and community web infrastructure.

00:53:08.391 --> 00:53:08.950
<v Chris>Awesome.

00:53:08.950 --> 00:53:11.730
<v Wes>I want to prove free software can make a difference.

00:53:11.730 --> 00:53:12.060
<v Brent>Nice.

00:53:12.060 --> 00:53:12.594
<v Chris>That's great.

00:53:12.896 --> 00:53:14.490
<v Wes>What a great news case. Yeah. Wow.

00:53:14.490 --> 00:53:18.713
<v Chris>Will you let us know how it ends up either way, even if it doesn't end up?

00:53:18.823 --> 00:53:19.589
<v Wes>What do I mean? For you?

00:53:19.763 --> 00:53:22.583
<v Chris>We'll still want to know. Maybe we can all learn together, but I think it's going to be great.

00:53:22.740 --> 00:53:25.335
<v Brent>Leaky canoe sends a free member boost.

00:53:26.328 --> 00:53:32.245
<v Brent>So I just unexpectedly heard the I hoard that which your kind covets sound clip

00:53:32.245 --> 00:53:34.362
<v Brent>from its actual original source.

00:53:35.555 --> 00:53:36.235
<v Chris>You figured it out, huh?

00:53:37.075 --> 00:53:40.770
<v Brent>And knocked me straight out of my TV show and back into my podcast player.

00:53:41.270 --> 00:53:46.715
<v Brent>I'm now on a quest to figure out where all of your boost sounds come from. Wish me luck.

00:53:47.865 --> 00:53:50.652
<v Chris>I'm glad it gave him the cue to boost, too. Thank you very much.

00:53:50.652 --> 00:53:52.973
<v Chris>I appreciate that. That's good. Thank you, Canaan.

00:53:55.012 --> 00:53:58.352
<v Chris>Hey, Goose Guy, report from I'm at All Things Open in Raleigh today.

00:53:58.352 --> 00:53:59.196
<v Wes>Nice.

00:53:59.336 --> 00:54:03.072
<v Chris>I found out about Netbird, based in Germany. It's a tail-scale alternative written

00:54:03.072 --> 00:54:06.267
<v Chris>in Go with Cloudflare Tunnel and replacement baked in.

00:54:07.052 --> 00:54:10.110
<v Chris>No more needs for two solutions. I'm not sure if you guys considered it,

00:54:10.290 --> 00:54:14.696
<v Chris>but I'll give it a try myself. Yeah. The Netbird developer has a YouTube channel as well.

00:54:15.491 --> 00:54:17.402
<v Wes>Oh, yeah. Yeah, NetBird is good stuff.

00:54:17.402 --> 00:54:17.592
<v Chris>It is.

00:54:17.592 --> 00:54:18.051
<v Wes>Quite useful.

00:54:18.248 --> 00:54:22.812
<v Chris>Remember like a year or two when Wes made the Nix sidecar, mesh sidecar?

00:54:22.812 --> 00:54:25.032
<v Chris>I think NetBird is. Oh, yeah. You have support in that.

00:54:25.712 --> 00:54:28.102
<v Wes>Yeah, I definitely have it deployed on a few systems.

00:54:28.102 --> 00:54:32.492
<v Chris>Mm-hmm, mm-hmm, mm-hmm. Yeah, I'd probably have more NetBird other than Nebula

00:54:32.492 --> 00:54:35.002
<v Chris>just kind of came in at the right time for me and solves the solutions.

00:54:35.002 --> 00:54:36.512
<v Chris>I like it a lot. I really like.

00:54:37.112 --> 00:54:38.482
<v Wes>Yes, I also have some Nebula.

00:54:38.482 --> 00:54:41.392
<v Chris>Yeah, yeah. Oh, yeah. I mean, it's kind of all over the place these days.

00:54:41.392 --> 00:54:45.022
<v Chris>Something Brett and I were talking about is like kind of consolidating everything

00:54:45.022 --> 00:54:50.722
<v Chris>down to like one primary Nebula network and then like a little side tail scale

00:54:50.722 --> 00:54:54.562
<v Chris>network with ACLs that can kind of bridge to the Nebula network kind of for some people.

00:54:54.562 --> 00:54:57.832
<v Chris>Anyways, it's a segment idea we have in the future because it's a thing for us too.

00:54:57.832 --> 00:55:01.332
<v Wes>Well, and there's a lot of good options out there with different tradeoffs.

00:55:03.172 --> 00:55:04.049
<v Chris>We're in a good state these days.

00:55:04.217 --> 00:55:08.812
<v Wes>Yeah, you have to let us know if you do go deploy Netbird. Let's know how it goes.

00:55:08.812 --> 00:55:13.232
<v Chris>Yeah. Outboard Acorn free member boost boost yes boost,

00:55:13.934 --> 00:55:17.502
<v Chris>yes JB Crew love the member full link to web boost too busy to set up sats and

00:55:17.502 --> 00:55:21.162
<v Chris>boost right now so putting my support on autopilot as you say I became a self-host

00:55:21.162 --> 00:55:25.552
<v Chris>to SRE when it came out six years ago wow feeling a bit old.

00:55:25.552 --> 00:55:26.552
<v Wes>Yeah you're making us feel old.

00:55:26.552 --> 00:55:29.852
<v Chris>And upgraded to the all shows feed a year later thank you very much bootleg

00:55:29.852 --> 00:55:33.072
<v Chris>FTW thank you Acorn I love it.

00:55:33.532 --> 00:55:34.352
<v Wes>We sure appreciate it.

00:55:34.352 --> 00:55:36.056
<v Chris>We try to make the bootleg worth it too.

00:55:37.698 --> 00:55:44.112
<v Wes>Uh, Nimmo comes in with a member boost and it's a time traveler boost from 686.

00:55:44.385 --> 00:55:49.545
<v Wes>I know it's not an Android TV box, but I really love my Vero V, which runs OSMC.

00:55:50.345 --> 00:55:52.524
<v Wes>Good remote and it's got family approval.

00:55:53.424 --> 00:55:59.435
<v Chris>You know, uh, if it wasn't for, uh, if it wasn't for this hackability of the

00:55:59.435 --> 00:56:03.349
<v Chris>Android TV set top boxes, I think this might've been a direction I could have seen myself going.

00:56:03.873 --> 00:56:05.385
<v Brent>I've never even heard of these.

00:56:05.385 --> 00:56:06.618
<v Wes>Yeah, this looks kind of promising.

00:56:07.703 --> 00:56:12.574
<v Chris>I was slipping into, you know, kind of a rethink of the whole setup.

00:56:13.294 --> 00:56:14.054
<v Chris>So I could have seen that.

00:56:14.983 --> 00:56:17.303
<v Chris>Thankfully. I think I'm actually quite happy with the end result.

00:56:17.947 --> 00:56:19.358
<v Chris>We'll see. We'll see if it sticks.

00:56:19.782 --> 00:56:22.735
<v Chris>Sam Squatch has a free member boost. I wanted to highlight a project I found,

00:56:22.735 --> 00:56:26.185
<v Chris>which is helping me ditch Obsidian. Oh, I've actually heard of this.

00:56:26.185 --> 00:56:27.230
<v Chris>It's called Helix Notes.

00:56:28.872 --> 00:56:32.685
<v Chris>It feels very similar to Obsidian, if you like that. it has baked in webdav

00:56:32.685 --> 00:56:37.845
<v Chris>sync which means I can sync but also my Hermes agent can access the notes as well.

00:56:38.503 --> 00:56:39.002
<v Wes>Love it.

00:56:39.176 --> 00:56:45.355
<v Chris>Hex Notes. A local markdown note taking app written in Tarui. How do you say that?

00:56:45.355 --> 00:56:45.745
<v Wes>Atari.

00:56:45.745 --> 00:56:46.245
<v Chris>Thank you.

00:56:46.245 --> 00:56:51.585
<v Wes>Yeah which is a framework for it's sort of an electron alternative in the Rust

00:56:51.585 --> 00:56:54.045
<v Wes>ecosystem because it's 32% Rust.

00:56:54.865 --> 00:56:55.628
<v Brent>Did you say Rust?

00:56:56.725 --> 00:56:57.785
<v Wes>And spelled.

00:56:59.005 --> 00:57:00.175
<v Chris>How many times do I have to play the horn?

00:57:00.175 --> 00:57:01.585
<v Wes>Do we not have a Svelte sound?

00:57:01.925 --> 00:57:02.125
<v Chris>No.

00:57:02.125 --> 00:57:05.096
<v Wes>That's kind of rude because, you know, that's more of the projects by code.

00:57:05.258 --> 00:57:05.833
<v Chris>What does it sound like?

00:57:06.885 --> 00:57:10.001
<v Wes>Maybe someone can suggest. I think it's pretty smooth.

00:57:10.140 --> 00:57:13.385
<v Chris>Thank you, everybody who boosted. We do have the 2000sat cutoff for time,

00:57:13.385 --> 00:57:16.542
<v Chris>but we do read all of them and save them all in our show doc every single week.

00:57:16.971 --> 00:57:20.762
<v Chris>And thank you to our members who support us as well. So let's total it all up, boys.

00:57:21.052 --> 00:57:25.205
<v Chris>We had 11 of you stream sats and collectively 11 of you, pretty good,

00:57:25.205 --> 00:57:28.065
<v Chris>really, 33,902 Satoshis.

00:57:30.903 --> 00:57:34.830
<v Chris>Well done. When you bring it all together with both the sats and the fiat boost,

00:57:34.830 --> 00:57:39.750
<v Chris>but we're just going to convert the fiat to sats at the current value. You did really well.

00:57:39.750 --> 00:57:43.070
<v Wes>It sounds simpler. We do it for simplicity, but then you explain it. It sounds complicated.

00:57:45.091 --> 00:57:50.129
<v Chris>We did well, though. We did well. It's really nice leading in to Texas. We're just one week out.

00:57:50.704 --> 00:57:53.720
<v Chris>Next weekend is going to be a busy Sunday for us because that's our Sunday.

00:57:53.720 --> 00:57:55.795
<v Chris>Before we go, we're probably going to be pre-recording some content.

00:57:56.178 --> 00:57:59.660
<v Chris>So getting this as we're just approaching really very much is appreciated,

00:57:59.660 --> 00:58:06.784
<v Chris>especially after just the crapper of a year we've had for sponsors, 696,113 satoshis,

00:58:07.655 --> 00:58:11.810
<v Chris>32 unique individual senders, and six members who boosted in.

00:58:11.810 --> 00:58:18.218
<v Chris>Thank you everyone who supported episode 690 of your Unplugged program. You made it happen.

00:58:32.481 --> 00:58:38.690
<v Chris>Boost.jupyterbroadcasting.com if you want to support us or jupyter.party for

00:58:38.690 --> 00:58:41.350
<v Chris>the network membership or linuxunplugged.com

00:58:41.650 --> 00:58:43.969
<v Chris>slash membership for the membership that's just the show.

00:58:44.521 --> 00:58:46.880
<v Chris>You get the extra features and the free member boost to put your support on

00:58:46.880 --> 00:58:50.593
<v Chris>autopilot. We do appreciate those messages very, very much.

00:58:50.872 --> 00:58:53.344
<v Chris>Thank you everybody who supported this episode of Linux Unplugged.

00:58:59.243 --> 00:59:03.260
<v Chris>A couple of picks before we get out of here, and we're going to start with Telescope.

00:59:03.847 --> 00:59:07.490
<v Chris>And I have been pondering this because we do have a video version of this show,

00:59:07.490 --> 00:59:11.827
<v Chris>and we're just using webcams because it's kind of like a, you know, the main focus is audio.

00:59:12.222 --> 00:59:14.967
<v Chris>And one of our ways we remind ourselves of that is by having really crappy video.

00:59:15.124 --> 00:59:16.611
<v Brent>Minimum viable video.

00:59:16.808 --> 00:59:19.640
<v Chris>Yeah, non-viable, so that way we never really get too obsessed with it.

00:59:19.640 --> 00:59:24.621
<v Chris>But I thought, how hard would it really be if you had a couple of used Android phones around?

00:59:24.732 --> 00:59:26.970
<v Wes>Decent enough cameras, better than what we're working with now.

00:59:26.970 --> 00:59:30.470
<v Chris>Hook them up to some permanent power, get them on the network with a reserved IP.

00:59:30.950 --> 00:59:31.710
<v Wes>Nice little stand.

00:59:31.710 --> 00:59:35.842
<v Chris>You can even do USB-C Ethernet. And use them as cameras in the studio.

00:59:36.062 --> 00:59:37.184
<v Chris>They got good optics, right?

00:59:37.560 --> 00:59:41.140
<v Chris>But you need a good app to do that. There's been some we've talked about before,

00:59:41.140 --> 00:59:42.867
<v Chris>and this week, it's Telescope.

00:59:43.505 --> 00:59:44.944
<v Wes>Yeah, this is actually a PJPig.

00:59:45.437 --> 00:59:48.880
<v Chris>Producer Jeff, even when he's out ignoring the show.

00:59:48.880 --> 00:59:49.860
<v Wes>Still taking care of the show.

00:59:49.860 --> 00:59:53.107
<v Chris>Yep, still taking care of the show. Use your phone as a webcam.

00:59:53.907 --> 00:59:57.470
<v Chris>and it actually is available not just for Linux, but for Windows as well.

00:59:57.470 --> 00:59:58.789
<v Chris>And of course, there's an Android companion app.

00:59:59.742 --> 01:00:03.830
<v Chris>But I think the part that impressed me the most is the desktop app gives you

01:00:03.830 --> 01:00:06.710
<v Chris>a surprising level of control over the optics.

01:00:09.457 --> 01:00:11.680
<v Chris>Right? Who thought that was going to be a thing?

01:00:11.901 --> 01:00:15.488
<v Wes>I mean, you know, these devices have always had pretty nice cameras.

01:00:15.854 --> 01:00:20.390
<v Wes>You just get kind of a consumer-focused app by default to control it,

01:00:20.390 --> 01:00:21.833
<v Wes>let alone the network side of things.

01:00:22.170 --> 01:00:25.560
<v Chris>You could have the best-looking video on your Zoom calls now if you're doing, like, work calls.

01:00:25.560 --> 01:00:27.760
<v Wes>And you already probably own the phone.

01:00:28.068 --> 01:00:30.976
<v Chris>And then you can pump it right into OBS as well if you want to do a live stream.

01:00:31.284 --> 01:00:34.047
<v Chris>Shows up as a virtual camera if you want to just put it into a conference call.

01:00:34.784 --> 01:00:38.290
<v Chris>It's pretty slick. Pretty, pretty slick. So that is Telescope.

01:00:38.668 --> 01:00:42.795
<v Chris>And, of course, we'll have a link to that in the show notes. And then because...

01:00:44.065 --> 01:00:47.662
<v Chris>We've been talking a lot about Jellyfin these days. And I know some of you are

01:00:47.662 --> 01:00:52.172
<v Chris>getting a little Jellyfin curious. There has been some recent Plex price increases,

01:00:52.172 --> 01:00:57.272
<v Chris>but also some Plex security issues. So some of you may be getting more Jellyfin curious.

01:00:57.800 --> 01:01:01.672
<v Chris>And so we wanted to link you to Plex to Jellyfin. You can migrate your Plex

01:01:01.672 --> 01:01:06.002
<v Chris>library to Jellyfin using this tool, and then you keep it clean forever.

01:01:06.148 --> 01:01:09.462
<v Chris>And so this handles things like some of the naming differences between Plex

01:01:09.462 --> 01:01:12.874
<v Chris>and Jellyfin that sometimes when you migrate, trip Jellyfin up.

01:01:13.791 --> 01:01:18.652
<v Chris>It can de-dupe files. It can consolidate them. It also can guard new downloads

01:01:18.652 --> 01:01:21.680
<v Chris>to make sure that they are conforming to what Jellyfin needs.

01:01:22.400 --> 01:01:26.232
<v Chris>And I think if you can maintain the Plex server, I haven't actually verified

01:01:26.232 --> 01:01:29.836
<v Chris>this, but I think if you maintain the Plex server, it'll make sure they're staying in sync. And it's GPL3.

01:01:31.067 --> 01:01:36.175
<v Wes>Yeah, pretty neat, right? And I think I actually first saw this from Rama in Matrix.

01:01:36.175 --> 01:01:36.475
<v Chris>Ah, thank you, Rama.

01:01:36.915 --> 01:01:40.365
<v Wes>Thank you for sending that our way. It does look like a very nice solution if

01:01:40.365 --> 01:01:41.243
<v Wes>you're trying to migrate.

01:01:41.377 --> 01:01:44.595
<v Chris>And they got a CLI as well. So you can do it that way. And a little two-y.

01:01:44.595 --> 01:01:45.615
<v Wes>And a web dashboard.

01:01:45.615 --> 01:01:48.415
<v Chris>Mm-hmm. And a web dashboard. They got all the things, right?

01:01:48.955 --> 01:01:52.375
<v Wes>They got a build from source. They got a Docker. They got an AUR.

01:01:52.375 --> 01:01:53.875
<v Wes>So pretty easy to get as well.

01:01:53.875 --> 01:01:57.875
<v Chris>It's never been a better time to be a Jellyfin user. Never been a better time.

01:01:57.875 --> 01:02:00.555
<v Chris>There's just more and more options, more and more things you can do with it.

01:02:00.655 --> 01:02:01.495
<v Wes>It keeps getting better.

01:02:02.339 --> 01:02:04.870
<v Chris>So check out Plex to Jellyfin. We'll have a link in the show notes.

01:02:05.369 --> 01:02:09.576
<v Chris>And you can find those show notes at linuxunplugged.com slash 690.

01:02:10.476 --> 01:02:11.974
<v Chris>You know what else you'll find over on that website?

01:02:12.188 --> 01:02:14.905
<v Wes>Oh, a really, probably too large RSS feed.

01:02:15.074 --> 01:02:17.135
<v Chris>Probably is a little too large. What do you do about that.

01:02:17.135 --> 01:02:18.555
<v Wes>Though? Well, we'd have to drop things from it.

01:02:18.555 --> 01:02:22.465
<v Chris>Yeah, and we've got a lot of good stuff in that RSS feed, including some additional

01:02:22.465 --> 01:02:23.645
<v Chris>metadata around the show.

01:02:23.645 --> 01:02:24.335
<v Wes>Oh, yeah.

01:02:24.335 --> 01:02:24.795
<v Chris>Yeah.

01:02:24.795 --> 01:02:27.925
<v Wes>Oh, you mean like the diarized VTT transcripts?

01:02:27.925 --> 01:02:29.355
<v Chris>Yeah, I do. I did mean that.

01:02:29.355 --> 01:02:31.105
<v Wes>Oh, were you thinking of the cloud chapters?

01:02:31.105 --> 01:02:34.025
<v Chris>Well, only if you have them available in a way that would be really nice and

01:02:34.025 --> 01:02:36.515
<v Chris>structured for a clanker to look at. Do you have that for me?

01:02:36.515 --> 01:02:38.035
<v Wes>Well, how do you feel about JSON?

01:02:38.035 --> 01:02:43.005
<v Chris>I love JSON. I mean, I don't, but the machine does. I couldn't care less. That's great.

01:02:43.005 --> 01:02:44.708
<v Wes>XML, JSON, we got it all.

01:02:44.842 --> 01:02:47.925
<v Chris>That's right. You might even find an MP4 hidden in there. If for some reason

01:02:47.925 --> 01:02:50.455
<v Chris>you'd like to see our ugly mugs or take a look at what we talked about.

01:02:50.455 --> 01:02:52.355
<v Wes>We'll have that. And are not yet upgraded to Android cameras.

01:02:54.124 --> 01:02:56.935
<v Chris>Yeah, get in before we have pixels throughout the studio.

01:02:57.635 --> 01:03:00.995
<v Chris>That's right, yeah. There you go. And then one last thing I want to let you

01:03:00.995 --> 01:03:04.345
<v Chris>know about before we run is it is extra special fun if you join us live.

01:03:04.659 --> 01:03:08.258
<v Chris>Make it a Tuesday on a Sunday over at jblive.tv.

01:03:11.881 --> 01:03:17.471
<v Chris>That's right. Join us, jblive.tv at 10 a.m. Pacific. We won't be here at 10 p.m.

01:03:17.901 --> 01:03:20.879
<v Chris>Or 1 p.m. Eastern. There is a time zone thing you've got to figure out.

01:03:21.871 --> 01:03:24.289
<v Chris>Actually, you don't. Jupiterbroadcasting.com slash calendar.

01:03:24.289 --> 01:03:25.189
<v Chris>It just converts it for you.

01:03:25.209 --> 01:03:27.209
<v Chris>The little thing there, you click it, tells you what it is. You don't have to

01:03:27.209 --> 01:03:30.712
<v Chris>worry about it. You can subscribe to it. Then you just know. Why not?

01:03:30.915 --> 01:03:31.859
<v Wes>You could also just leave the

01:03:31.859 --> 01:03:34.073
<v Wes>live stream playing in the background so you make sure you don't miss it.

01:03:34.242 --> 01:03:37.769
<v Chris>There's also audio if you're on the go, jblive.fm. And when we're not live,

01:03:37.769 --> 01:03:39.019
<v Chris>there's classic reruns.

01:03:39.455 --> 01:03:42.269
<v Chris>There you go. That's all I have. Okay? You know about the website,

01:03:42.269 --> 01:03:45.819
<v Chris>you know about the show, and we just are so gosh darn grateful you listened.

01:03:45.819 --> 01:03:49.049
<v Chris>Thank you so much for tuning in this week's episode of your Unplugged program.

01:03:49.509 --> 01:03:51.249
<v Wes>Brent at jupiterbroadcasting.com.

01:03:51.249 --> 01:03:51.849
<v Chris>See you next week.

01:03:54.054 --> 01:03:54.966
<v Brent>How dare you.

