Skip to main content
LawHub
Search

Truth Trapper Keepers

Mar 22, 2026
Listen to this episode

The self-hosted app that turned Chris into a family Time Lord, then we iterate on a long-desired hardware hack.

Sponsored By:

Support LINUX Unplugged

Links:

Transcript

WEBVTT 00:00:11.333 --> 00:00:15.953 Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris. 00:00:16.113 --> 00:00:16.793 My name is Wes. 00:00:16.973 --> 00:00:17.693 And my name is Brent. 00:00:17.853 --> 00:00:21.993 Hello, gentlemen. Well, coming up on the show today, I'm going to talk about 00:00:21.993 --> 00:00:27.473 the self-hosted app that turned me into a family time lord and the perfect mobile 00:00:27.473 --> 00:00:29.873 server we found just a little too late. 00:00:29.993 --> 00:00:32.533 Then we're going to round it out with some boosts, some great picks, 00:00:32.673 --> 00:00:35.253 and I mean some great picks and a lot more. 00:00:35.413 --> 00:00:39.013 So before we get to all of that, let's do the right thing and say time-appropriate 00:00:39.013 --> 00:00:41.093 greetings to our virtual lug. Hello, Mumble Room. 00:00:41.093 --> 00:00:42.873 Hey, Chris, hey, Wes, and hello, Brent. 00:00:43.173 --> 00:00:43.553 Hello, hello. 00:00:43.673 --> 00:00:45.473 Hello, handsome mumble room. 00:00:45.633 --> 00:00:49.553 Yeah, and shout out to that packed, quiet listening, too. Nice to see you all up there. 00:00:50.153 --> 00:00:55.973 Whew! It's going to be a big show. And good morning to our friends over at Defined Networking. 00:00:56.113 --> 00:00:59.913 Go to defined.net slash unplugged and meet Managed Nebula. 00:01:00.233 --> 00:01:04.153 Defined Networking has Managed Nebula, and it's a decentralized VPN built on 00:01:04.153 --> 00:01:05.853 top of the open-source Nebula platform. 00:01:06.173 --> 00:01:11.873 We love it, and you're going to love it, too. And what really sells me is the long term story. 00:01:12.093 --> 00:01:15.733 This isn't like something to just shove away. 00:01:15.853 --> 00:01:18.093 Like you should think about when you're building infrastructure, 00:01:18.093 --> 00:01:21.373 what really it looks like for you long term. 00:01:21.653 --> 00:01:24.613 Critical infrastructure shaped by endless VC rounds, you know, 00:01:24.693 --> 00:01:28.873 or shifting priorities to try to make the free version of funnel to the enterprise 00:01:28.873 --> 00:01:33.553 version that come with big tech log in dependencies, all of these things. 00:01:33.553 --> 00:01:36.553 It's not what I want when I'm building my infrastructure. 00:01:36.813 --> 00:01:40.393 And Nebula gives you real control, operational, self-hosted lighthouse nodes 00:01:40.393 --> 00:01:42.153 that you can make sure your network is reliable. 00:01:42.993 --> 00:01:46.853 And they have the resilience that you can stack on top of, build on top of, 00:01:46.853 --> 00:01:50.733 and run for years. And you can get started with 100 hosts for free at Define Network. 00:01:50.853 --> 00:01:53.373 You can go to defined.net slash unplugged. 00:01:53.833 --> 00:01:59.633 Redefine your VPN experience today and support the show at defined.net slash unplugged. 00:02:01.094 --> 00:02:05.994 Big thank you to our king chief sponsor of the show over there. 00:02:06.394 --> 00:02:06.834 Yes. 00:02:07.154 --> 00:02:08.334 Really, really big thank you. 00:02:08.434 --> 00:02:09.814 Keeping our packets flowing. 00:02:10.434 --> 00:02:14.614 So I want to talk about becoming a Time Lord. So I'll back up a little bit. 00:02:14.874 --> 00:02:16.854 Some people may be able to relate to this problem. 00:02:18.194 --> 00:02:18.874 You hope. 00:02:19.054 --> 00:02:23.574 I have too many calendars. You know, like, first of all, I've got accounts that 00:02:23.574 --> 00:02:28.274 have been around for 200 years that have got calendars on them. And then I've got, like, 00:02:29.169 --> 00:02:31.629 My personal calendar that has 00:02:31.629 --> 00:02:35.349 also shared with some family members and my ex-wife for the kids stuff. 00:02:35.489 --> 00:02:39.129 And then I've got a calendar with my wife and then my wife has her calendar. 00:02:39.309 --> 00:02:41.969 And then I've got the JB calendar and then I've got the show calendars. 00:02:42.529 --> 00:02:43.329 Live streams. 00:02:43.949 --> 00:02:48.109 It's actually, it's something like 12 or something. I don't know. It's a lot of calendars. 00:02:48.269 --> 00:02:53.469 And what inevitably happens is I'm checking one or I've got a couple of configured 00:02:53.469 --> 00:02:57.109 on a device or somebody books on one calendar, but somebody also books on the 00:02:57.109 --> 00:02:58.969 other calendar and the two conflict. 00:02:59.449 --> 00:03:03.209 and then I've got to sort it out if I even notice it, which sometimes I don't. 00:03:03.549 --> 00:03:06.749 Well, that's the other part, right? It's like really most of your time is focused 00:03:06.749 --> 00:03:08.509 either on your family or- The shows. 00:03:08.669 --> 00:03:12.449 The shows, right, yeah. You don't really have a lot of sort of admin office 00:03:12.449 --> 00:03:13.789 time built into this schedule. 00:03:13.989 --> 00:03:18.529 And so over the years, I've tried like having great calendar apps where I like 00:03:18.529 --> 00:03:22.109 pull in all the feeds from the various calendars and then I have one big meta calendar. 00:03:22.869 --> 00:03:26.009 That's sort of how I've solved this for a long time, but it doesn't solve it 00:03:26.009 --> 00:03:27.509 for the people that are trying to book with me. 00:03:28.069 --> 00:03:30.809 Right. It gives you a single pane of glass, but they don't necessarily get the 00:03:30.809 --> 00:03:32.969 like, oh, nope, he's reserved here. Sorry. Yeah. 00:03:33.249 --> 00:03:37.029 So also when you're trying to build like automations or you're trying to just 00:03:37.029 --> 00:03:40.729 look at your calendar in one snapshot, like it's never really easy outside this 00:03:40.729 --> 00:03:42.169 one meta calendar app that I've set up. 00:03:42.409 --> 00:03:47.809 So this is where it's kind of a newer app. They just hit version 2.0. It's called Keeper.sh. 00:03:48.289 --> 00:03:51.749 It's a simple self-hostable open source calendar syncing tool. 00:03:51.809 --> 00:03:57.169 It allows you to pull events from all your different iCal or ICS feeds and then 00:03:57.169 --> 00:04:01.349 push them into one feed with all of the details. 00:04:02.009 --> 00:04:06.529 And the app also has a self-hosted version, or I mean a hosted version, 00:04:06.529 --> 00:04:07.889 if you would rather just use their service. 00:04:07.989 --> 00:04:12.029 I think it's pretty cheap, but they also offer multiple ways to host it, which I'll get into. 00:04:12.409 --> 00:04:17.049 And it's got a very simple UI. The app itself is not a calendar app. 00:04:17.449 --> 00:04:22.869 It's a feed management app, and it creates a source of truth for your calendars. 00:04:23.009 --> 00:04:26.089 So instead of having a calendar app where I have a ton of feeds now, 00:04:26.329 --> 00:04:32.729 I have all my calendar apps with one feed. and it all comes from Keeper. 00:04:33.755 --> 00:04:38.715 And Keeper makes it simple now because when somebody books on one of my different 00:04:38.715 --> 00:04:42.655 calendars, I can now identify the conflicts and catch them quickly. 00:04:42.995 --> 00:04:50.455 And I can also provide my family a synchronized feed so they don't book or mistake 00:04:50.455 --> 00:04:52.995 gaps of time or whatever because of its cross calendars. 00:04:53.115 --> 00:04:56.875 It gives my family one source of truth or you guys, people I work with, 00:04:56.955 --> 00:05:01.715 a single source of truth. And so it's so, so much a game changer when it comes 00:05:01.715 --> 00:05:03.855 to just planning and looking at availability. 00:05:04.295 --> 00:05:07.275 And then the other thing that if you want to push it even further that I really 00:05:07.275 --> 00:05:10.675 appreciate is it also provides a model context protocol server. 00:05:10.775 --> 00:05:15.215 So if you do the claw thing or whatever, it also gives you agentic access to 00:05:15.215 --> 00:05:17.375 your calendar. And that can be really powerful, too. 00:05:17.715 --> 00:05:20.755 Yeah, right. Then you have a chat interface to go make new appointments. 00:05:21.155 --> 00:05:24.215 And so the app itself is surprisingly straightforward. forward 00:05:24.215 --> 00:05:27.115 it keeps track of the different time slots and 00:05:27.115 --> 00:05:29.855 things like that uh it does i'd say there's the 00:05:29.855 --> 00:05:33.935 big limitation is it only supports iCal and ICS for 00:05:33.935 --> 00:05:37.655 ingest it does support a range of 00:05:37.655 --> 00:05:41.615 cloud accounts as well for publishing those so if you have a google calendar 00:05:41.615 --> 00:05:45.595 an outlook calendar or a bunch of other vendors you can have keeper published 00:05:45.595 --> 00:05:50.375 to those calendars which is not import yeah it just uses ICS or iCal for import 00:05:50.375 --> 00:05:54.415 um and they do have a hosting offering and if you read through their GitHub 00:05:54.415 --> 00:05:57.155 readme document. They have a discount code in there. It's already cheap. 00:05:57.315 --> 00:05:59.555 But with the discount code, just read their readme and you'll find it. 00:05:59.855 --> 00:06:00.975 But I wanted to self-host. 00:06:02.082 --> 00:06:05.982 There's seven different options for self-hosting. Did you see this? 00:06:06.602 --> 00:06:09.662 Not only is there like just a lot of containers involved in general, 00:06:09.802 --> 00:06:11.902 but then there's different versions of containers depending. 00:06:12.062 --> 00:06:13.622 It's almost like the next class situation. 00:06:13.982 --> 00:06:18.062 That's a good, that's a good equivalent. What is it about calendaring and all of this that requires? 00:06:19.182 --> 00:06:21.802 It is a hard problem to solve, I guess. I mean, here we are. 00:06:22.442 --> 00:06:26.122 So there are seven images available, but two of them are really sort of the 00:06:26.122 --> 00:06:28.882 all-in-one kind of everything's included in a single stack. 00:06:29.022 --> 00:06:34.242 Keeper standalone, everything you need. or if you want just redis and the database 00:06:34.242 --> 00:06:38.242 outside okay that's that's kind of nice actually so keep the stateful bits yourself 00:06:38.242 --> 00:06:40.582 this will run the rest of the app side okay yeah. 00:06:40.582 --> 00:06:43.742 They're trying to accommodate people's different various hosting setups. 00:06:43.742 --> 00:06:45.822 Or you can run the pieces yourself. 00:06:47.901 --> 00:06:50.021 And then, of course, there's the MCP server in there as well, 00:06:50.081 --> 00:06:50.921 if you want, which is optional. 00:06:51.421 --> 00:06:54.421 So instead of going the Docker route with an environment file, 00:06:54.441 --> 00:06:59.621 I decided to kind of go the one really big Nix config route. 00:06:59.741 --> 00:07:03.381 This was kind of a monster, I'll admit. It ended up being a 234-line Nix config, 00:07:03.521 --> 00:07:04.701 which is one of my biggest ever. 00:07:05.721 --> 00:07:09.741 But it generates system-to-unit files. It sets up a Podman network. 00:07:09.801 --> 00:07:14.621 It sets up the NGINX virtual host, the TLS certification, and it manages all 00:07:14.621 --> 00:07:18.621 of the secrets from one declarative source of truth. So that's really, really nice. 00:07:18.761 --> 00:07:21.941 And so instead of doing it with Docker Compose, I'm doing it with declarative 00:07:21.941 --> 00:07:26.821 Podman containers and then wiring it up through Nginx to do the reverse proxy 00:07:26.821 --> 00:07:28.421 to put it behind a nice pretty URL. 00:07:29.121 --> 00:07:32.461 And it's working really well because then it's a memorable URL. 00:07:32.461 --> 00:07:35.401 And so when I need to put the calendar feed into one of my calendar apps, 00:07:35.481 --> 00:07:37.401 it's really easy to boop, boop, boop, slash ICS, boom. 00:07:38.221 --> 00:07:44.541 That's been fantastic. So I kind of went totally a different direction than 00:07:44.541 --> 00:07:47.521 the project, but used it as kind of a base. 00:07:47.861 --> 00:07:53.321 And I guess since their coordination point was containers, that's all you needed, 00:07:53.341 --> 00:07:55.301 and set the right end vars or whatever else. 00:07:55.741 --> 00:08:01.261 Yeah. And so the other, I'd say, limitation to be aware of this app is the MCP 00:08:01.261 --> 00:08:02.581 server is also read-only. 00:08:03.281 --> 00:08:08.001 Oh. But the API is not just the MCP? 00:08:08.161 --> 00:08:11.241 I haven't tried that because, for my age, and I can just also write to all the 00:08:11.241 --> 00:08:13.861 source calendars. So I've solved it already. 00:08:14.261 --> 00:08:18.621 The agent already has that. I just prefer a single source of truth feed for the actual calendars. 00:08:19.181 --> 00:08:22.721 But man, is this not just one of the small things you can do that's totally 00:08:22.721 --> 00:08:25.521 transparent in a way to the family, but just makes things so much nicer. 00:08:25.741 --> 00:08:29.641 I do see that there are also some modules coming, applications coming through 00:08:29.641 --> 00:08:33.361 maybe, including CLI mobile and SSH. 00:08:34.689 --> 00:08:36.209 Even more ways to use it. 00:08:36.289 --> 00:08:38.209 Don't know what that means, but SSH into your calendar? 00:08:38.389 --> 00:08:38.509 Yeah. 00:08:38.509 --> 00:08:39.189 I don't know. I love it. 00:08:39.249 --> 00:08:41.429 And also CLI. It's great. 00:08:41.729 --> 00:08:42.889 I do have a usage question. 00:08:42.969 --> 00:08:43.309 Uh-huh, yeah. 00:08:43.449 --> 00:08:46.989 Like you need family approval more than just wife approval this time, 00:08:46.989 --> 00:08:49.129 and maybe you even need approval from the two of us. 00:08:50.389 --> 00:08:53.929 From their perspective, let's say they have right access. 00:08:54.149 --> 00:08:58.069 Let's say Wes has right access to the JB calendar, but you're providing him 00:08:58.069 --> 00:09:00.149 with Chris's everything calendar. 00:09:00.149 --> 00:09:04.809 Now, is he getting duplicate entries because you have the JB calendar on there 00:09:04.809 --> 00:09:09.149 and then he also has write access to it and all of a sudden you have double calendaring? 00:09:09.829 --> 00:09:15.629 That's a good question. So you can generate feeds for folks. 00:09:15.749 --> 00:09:17.649 I'm trying to see if I can. I don't know if I can pull it up here at the studio 00:09:17.649 --> 00:09:19.329 because I don't know if I have. Oh, I do. 00:09:20.069 --> 00:09:22.829 You can generate feeds that exclude certain calendars. 00:09:23.049 --> 00:09:24.609 Ah, that's brilliant. 00:09:24.869 --> 00:09:29.829 But I actually find it really for everyone else. I don't really need to have them make any changes. 00:09:30.149 --> 00:09:32.389 They're just writing to the calendar they've always written to. 00:09:32.589 --> 00:09:35.069 They just have access to that calendar, which is fine. 00:09:35.529 --> 00:09:37.669 They don't, like, you guys don't really need to know when my kid appointments 00:09:37.669 --> 00:09:39.569 are. You just need to know if I'm available. 00:09:39.689 --> 00:09:40.909 Uncle Brandon needs to know sometimes. 00:09:41.409 --> 00:09:46.489 Well, yeah. So it's sort of, you can slice and dice it depending on how you want to use it. 00:09:47.249 --> 00:09:47.969 Very nice. 00:09:48.169 --> 00:09:52.429 Yeah. And they just hit version 2.0. It's been out, I think they're just over, 00:09:52.449 --> 00:09:53.709 like, maybe six, seven months. 00:09:54.729 --> 00:09:58.889 I can't quite recall. But it's very active. The developer, this is a Sunday morning. 00:09:58.889 --> 00:10:04.369 and the developer just committed uh something two hours ago uh it's agpl 3.0 00:10:04.369 --> 00:10:09.789 and uh it's uh mostly written in typescript and then of course there's javascript 00:10:09.789 --> 00:10:13.349 in there and a little bit of shell and stuff but mostly a typescript application. 00:10:13.349 --> 00:10:17.929 It does sound like um the developer was scratching an itch that the same one 00:10:17.929 --> 00:10:22.489 you had which is kind of funny it's had this working on some project three calendars 00:10:22.489 --> 00:10:24.349 across business work and personal and. 00:10:25.376 --> 00:10:28.156 How did you find this, Chris? And why did you solve this problem? 00:10:28.216 --> 00:10:30.556 Because you've had this problem for a very long time. Why this week? 00:10:30.616 --> 00:10:38.876 I was trolling GitHub and Reddit and X for a solution and came across. 00:10:39.016 --> 00:10:39.316 Nice. 00:10:39.556 --> 00:10:43.956 Yeah. And then I tracked down the developer's post on our self-hosted for the new 2.0 release. 00:10:44.256 --> 00:10:46.696 I was like, oh, it just came out. What a great time to talk about it now that 00:10:46.696 --> 00:10:50.156 the new 2.0 is out. And he just released 2.914 an hour ago. 00:10:51.996 --> 00:10:53.396 I already got an update, boys. 00:10:53.496 --> 00:10:54.876 Wait another day to get 3.0. 00:10:54.956 --> 00:10:58.236 Yeah. Yeah, it's not a big update. It's just a calendar off fix, which I didn't run into. 00:10:58.416 --> 00:11:03.376 But really nice. I mean, a guy's clearly dedicated to it as well. So very cool to say. 00:11:03.376 --> 00:11:04.336 Let's not burn them out. 00:11:04.496 --> 00:11:08.736 I'm not sure. It's Rita. I'm not sure. R-I-D-A is the developer's first name or handle. 00:11:09.096 --> 00:11:13.316 But great project. And if you've had this problem, I definitely recommend it. 00:11:13.376 --> 00:11:16.296 And if you solve this another way that you think might be even better, 00:11:16.856 --> 00:11:22.996 please do post that or boost us or emails because totally willing to even solve 00:11:22.996 --> 00:11:26.196 this a better way. It's been good, but perhaps a better solution exists. 00:11:29.376 --> 00:11:32.216 No sponsor right here, so we'll just say thank you for being a member. 00:11:32.396 --> 00:11:36.076 And if you're not a member yet, you can go to linuxonplugged.com slash membership 00:11:36.076 --> 00:11:39.836 and become a core contributor or support the entire network at jupyter.party. 00:11:39.996 --> 00:11:43.256 You get access to the bootlegs, which is a lot more show. We're clocking in 00:11:43.256 --> 00:11:46.396 at 54 minutes, almost 55 minutes right now for the members. 00:11:46.756 --> 00:11:48.036 We have so much more to go. 00:11:48.216 --> 00:11:51.316 Yeah, yeah. And there's often really good conversations about making the main 00:11:51.316 --> 00:11:54.516 show, not intentionally it's just because it's a really organic discussion kind of. 00:11:54.516 --> 00:11:55.596 It's a hangout. 00:11:55.596 --> 00:11:58.296 Yeah it's a hangout and so we've gotten in some really good conversations there and 00:11:58.296 --> 00:12:02.456 it's additional content and uh you also uh you also could get an ad-free version 00:12:02.456 --> 00:12:05.376 so when we do get some advertising support if you don't like it there's an ad-free 00:12:05.376 --> 00:12:09.136 version of the feed as well of course the ads aren't in the bootleg either but 00:12:09.136 --> 00:12:12.656 uh either way we appreciate your support it's linuxunplugged.com membership 00:12:12.656 --> 00:12:17.616 or jupiter.party for the whole gosh darn thing. 00:12:22.216 --> 00:12:26.456 Well, you two have been up to a lot of things this week. I've only been getting 00:12:26.456 --> 00:12:28.396 little snapshots here and there. 00:12:28.536 --> 00:12:33.156 So last I heard, y'all have been working on not one, but I think two diesel heaters. 00:12:33.756 --> 00:12:37.276 And clearly, Brent must have the itch for embedded development. 00:12:37.276 --> 00:12:42.956 Because when I got to the studio today, he walks in and hands me a little black box with the radio. 00:12:43.976 --> 00:12:45.676 From CubeSail? What is this? 00:12:45.876 --> 00:12:50.116 Ah, there's quite a story behind that. There is quite a story. 00:12:50.296 --> 00:12:52.716 So how would you describe that, Wes? What would you? 00:12:52.856 --> 00:12:56.876 An industrial-looking sort of like professional metal case. 00:12:56.996 --> 00:13:00.456 It's got what I assume is a Wi-Fi antenna, good connectivity, 00:13:00.656 --> 00:13:02.816 USB-C for power, Ethernet, HDMI. 00:13:03.196 --> 00:13:03.676 Full HDMI. 00:13:04.036 --> 00:13:07.736 On the front, it says PiBox. And it's got that little screen. 00:13:07.776 --> 00:13:10.596 It's also got nice little indicators for disk CPU and power. 00:13:10.716 --> 00:13:14.036 It feels heavy, well-built. Is that a Noctua fan in there? 00:13:14.196 --> 00:13:15.496 Yes. Good eye, Wes. 00:13:15.576 --> 00:13:18.756 So, Wes, now you can just like kind of slide it like a clamshell. 00:13:18.916 --> 00:13:19.096 Oh. 00:13:19.096 --> 00:13:23.396 And it'll reveal itself. So maybe you can try to decipher what's in there. 00:13:23.556 --> 00:13:27.436 I'd say it's as thick as like two, three and a half inch disc stacked, but shorter. 00:13:28.016 --> 00:13:31.956 So it's not, it's not particularly thin. You would notice it in the bag, 00:13:32.056 --> 00:13:35.976 but it's not huge either. And then Wes is now, Wes has taken the, uh, the back off. 00:13:36.056 --> 00:13:38.976 Oh, okay. This looks like a Raspberry Pi. 00:13:39.296 --> 00:13:40.336 Yeah. It's a CM4. 00:13:40.696 --> 00:13:46.096 Oh yeah. The compute module four. And then with, um, a larger carrier board. Yeah. 00:13:46.516 --> 00:13:46.616 Yeah. 00:13:46.796 --> 00:13:49.376 Cube sale hat compatible GPIO. Ooh. 00:13:49.376 --> 00:13:53.776 Yeah, that carrier board is very interesting. That's why you get the larger HDMI. 00:13:54.496 --> 00:14:01.576 You get a few additional features in there, including a backplane for SATA disks. 00:14:02.496 --> 00:14:03.696 Yes, it's so great. 00:14:03.876 --> 00:14:04.356 Proper storage? 00:14:04.476 --> 00:14:06.336 Yes. In a tiny little box. 00:14:06.356 --> 00:14:10.416 It has room for two 2.5 SATA SSDs. 00:14:10.696 --> 00:14:11.716 Oh, and there's one in here. 00:14:11.796 --> 00:14:17.576 Yes. So we did scrounge up a precious 480 gig SSD and stuck it in there. 00:14:18.425 --> 00:14:23.505 Okay, CM4. So that's like Pi 4 era, but was the CM4 like slightly better? 00:14:23.985 --> 00:14:27.865 Yeah, yeah, yeah. Slightly better. Depending on the model you got at the time, 00:14:28.025 --> 00:14:33.205 it came with up to 8 gigs of RAM and 32 gigabytes of eMMC storage built in. 00:14:33.205 --> 00:14:35.125 So you're not fussing about with an SD card. 00:14:35.245 --> 00:14:38.065 It's got built-in EMCC storage, eMMC. 00:14:38.485 --> 00:14:43.425 It has a gigabit Ethernet port. It has two USB 2.0, like you mentioned, a Type-C. 00:14:43.425 --> 00:14:46.225 It's also got a micro SD card slot on there 00:14:46.225 --> 00:14:50.185 and then on the front of the box We'll put a link if you want to see this it 00:14:50.185 --> 00:14:56.265 has three LEDs and a little LCD screen as well as a GPIO connector on there 00:14:56.265 --> 00:15:01.185 and That lets you see what the system is up to while it's working away and then 00:15:01.185 --> 00:15:05.545 it has these two powered SATA SSD slots and at launch, 00:15:07.135 --> 00:15:09.595 The PiBox CubeSale was $299. 00:15:10.035 --> 00:15:10.375 Whoa. 00:15:10.735 --> 00:15:14.375 Yeah. It was initially a Kickstarter, which I think is maybe how I caught this. 00:15:16.995 --> 00:15:21.415 Unfortunately, they are no longer around. And it's one of these where we were 00:15:21.415 --> 00:15:23.315 both really disappointed when Brent and I discovered this. 00:15:23.395 --> 00:15:28.435 In 2025, they said so long and thanks for all the pods, and they announced they shut down. 00:15:28.555 --> 00:15:31.795 And they did the good guy thing, and they open-sourced their code. 00:15:31.935 --> 00:15:32.935 They open-sourced a lot of stuff. 00:15:32.995 --> 00:15:33.515 Including their OS. 00:15:33.515 --> 00:15:33.715 Oh, that's great. 00:15:34.055 --> 00:15:35.895 I mean, sad, but best case, I guess. 00:15:35.895 --> 00:15:38.415 The cube sale comes from they were using Kubernetes. 00:15:38.615 --> 00:15:43.215 I was going to ask. Was this meant to be like a host to run Kubernetes on the Pi platform? 00:15:43.635 --> 00:15:47.435 Yeah, and then deploy applications and install SSDs and have a tiny low power NAS. 00:15:48.915 --> 00:15:52.635 And looking back at it, they were just early. It's a really good idea. 00:15:52.875 --> 00:15:56.435 They started in 2019 and I think they just couldn't make it work. 00:15:56.555 --> 00:15:57.215 How long do they go? 00:15:57.795 --> 00:15:58.195 2025. 00:15:58.575 --> 00:16:00.255 Oh, wow. So you just missed them. 00:16:00.395 --> 00:16:04.715 Yeah. So they don't make it anymore, which is such a shame because we love it. It's neat. 00:16:04.715 --> 00:16:10.415 The just hardware quality, I would say, and the thoughtfulness in their design, 00:16:10.675 --> 00:16:12.535 especially even of their PCB. 00:16:12.915 --> 00:16:17.155 They wrote like docs on their PCB about how to use this thing. 00:16:17.275 --> 00:16:19.215 It's very well labeled. Yeah. What is this? 00:16:19.295 --> 00:16:20.295 Oh, it's so nice. 00:16:20.655 --> 00:16:23.355 It also has this, what's this switch on there? 00:16:23.515 --> 00:16:25.475 Yeah. So that's on the carrier board. 00:16:25.615 --> 00:16:28.795 One says normal. The other side says RPI boot. 00:16:29.055 --> 00:16:29.755 There you go. 00:16:29.755 --> 00:16:35.235 Well, this gets us into a fight that Wes had to break up between Chris and I 00:16:35.235 --> 00:16:37.055 about how to deploy to this thing. 00:16:37.195 --> 00:16:41.715 Because we have this big-brained idea of how to use this fancy little box that 00:16:41.715 --> 00:16:43.455 we somehow found in the corner of the studio. 00:16:43.595 --> 00:16:45.515 We should talk about that and then talk about the fight. 00:16:45.695 --> 00:16:50.555 Yeah, okay. Let's talk about the goal. So we've had a problem to solve for years now. 00:16:50.655 --> 00:16:50.835 Yeah. 00:16:51.055 --> 00:16:53.655 And just having come back from scale... 00:16:54.283 --> 00:16:58.503 It is obvious we still have this problem, despite my, let's say, 00:16:58.623 --> 00:17:01.583 efforts to solve it with the wrong hardware. 00:17:02.443 --> 00:17:07.543 Yeah, Airbnb TVs suck. They suck so bad. And we're often there for a week, 00:17:07.583 --> 00:17:09.163 and we just want to watch Star Trek. 00:17:09.243 --> 00:17:12.323 I feel like Hisense must be paying them to put these TVs in. 00:17:12.323 --> 00:17:13.343 It's the only reason you do it. 00:17:13.363 --> 00:17:17.023 And Hisense just announced that these TVs are now going to, while they're booting, 00:17:17.103 --> 00:17:20.483 which takes forever, they're going to play advertisements. 00:17:21.483 --> 00:17:25.343 Don't solve the problem of making a boot faster. Just take advantage of the 00:17:25.343 --> 00:17:26.503 slowness to sell you stuff. 00:17:26.743 --> 00:17:30.823 And listeners, you need to understand that priority one, when we arrive at an 00:17:30.823 --> 00:17:32.523 Airbnb, is to get Star Trek going. 00:17:32.683 --> 00:17:36.403 A bench of an Airbnb, a benchmark is how fast can you get Star Trek? 00:17:36.703 --> 00:17:40.083 Because what you're actually, you're benchmarking the quality of the television, 00:17:40.323 --> 00:17:43.083 the quality of the Wi-Fi, the wiring job. 00:17:43.183 --> 00:17:44.503 The instructions from the host. 00:17:44.703 --> 00:17:47.903 Yeah, it's an interesting benchmark immediately. And so really before we've 00:17:47.903 --> 00:17:50.923 unpacked, before we've even picked rooms, we've got Star Trek going. 00:17:50.923 --> 00:17:56.023 and we want to get the window of time down on that and remove the frustration. 00:17:56.323 --> 00:18:00.683 And then additionally, Airbnb Wi-Fi is terrible, always terrible. 00:18:01.023 --> 00:18:06.143 I would say every other time the Wi-Fi is in the other building and we're getting scraps of signal. 00:18:06.383 --> 00:18:09.743 Or this time we had one where the actual speed and signal was great, 00:18:09.883 --> 00:18:13.463 but they did client isolation. So we couldn't actually talk to anything else. 00:18:14.043 --> 00:18:18.283 Yeah. And we've had one where the Wi-Fi went out and it was in the owner's house, 00:18:18.423 --> 00:18:21.323 which was next door, and the owner wasn't there. And so then we just didn't 00:18:21.323 --> 00:18:24.443 have Wi-Fi when we needed to do the show on Sunday at our night at our last 00:18:24.443 --> 00:18:28.403 Airbnb, which is right next to L.A., right next to Pasadena. 00:18:28.763 --> 00:18:33.583 The Wi-Fi was so bad from the area in the Internet that we did the show off of our cell phones. 00:18:34.178 --> 00:18:37.218 So that's a problem we need to solve. So we want this device to be a media server 00:18:37.218 --> 00:18:43.898 as well as an AP that will either extend the Airbnb's Wi-Fi or connect to an LTE network. 00:18:44.058 --> 00:18:49.538 But the goal is, is that all of our client devices always are just attached to the same SSID. 00:18:49.818 --> 00:18:53.358 So when we arrive and the Wi-Fi becomes available, we don't have to play this 00:18:53.358 --> 00:18:55.858 game of, hey, what's the password? What's the password? Hey, 00:18:55.918 --> 00:18:56.678 did you get the password? 00:18:57.778 --> 00:19:01.498 We all already have the Wi-Fi set up on our devices. It connects to this box. 00:19:01.738 --> 00:19:03.718 And then this box handles the actual Internet. 00:19:04.178 --> 00:19:09.258 And it has, on top of that, a jellyfin server with storage on this SSD that's 00:19:09.258 --> 00:19:10.598 built in now or slotted in. 00:19:10.878 --> 00:19:15.378 And maybe it runs a Samba server. Maybe it runs ersatz TV or tunar or something 00:19:15.378 --> 00:19:16.738 like that, which we'll come back to. 00:19:17.218 --> 00:19:23.378 And it becomes essentially a media NAS Wi-Fi repeater that gives us consistency everywhere we go. 00:19:23.738 --> 00:19:28.018 But you want something that isn't as big as even a one liter PC is too big because 00:19:28.018 --> 00:19:29.398 it's going in the bag or the backpack. 00:19:29.618 --> 00:19:34.098 It has to be super travel friendly. I started trying to investigate this problem 00:19:34.098 --> 00:19:37.978 by thinking, well, maybe a cell phone is an interesting way to solve this because 00:19:37.978 --> 00:19:40.458 you can have independent internet if you need it. 00:19:40.758 --> 00:19:43.318 You can throw up a hotspot. 00:19:43.638 --> 00:19:47.598 You can throw it in a bag anywhere. It's so gosh darn portable. 00:19:48.278 --> 00:19:52.798 And modern cell phones maybe can run like Linux containers. 00:19:53.318 --> 00:19:55.978 And they have HDMI out through USB-C. 00:19:56.058 --> 00:19:57.378 Also true. That's also true. 00:19:57.518 --> 00:19:58.438 And you have a Jellyfin app. 00:19:58.618 --> 00:20:00.698 And everybody's got a used cell phone in their closet. 00:20:00.918 --> 00:20:02.498 It was not a bad idea. 00:20:02.778 --> 00:20:06.078 Yeah, the problem is I picked the absolute worst device to showcase it at our 00:20:06.078 --> 00:20:08.238 last Airbnb. Wes will... 00:20:09.241 --> 00:20:15.801 I think, agree with me that we took a listener's device. It was a Bind phone, 00:20:16.101 --> 00:20:20.181 which turns out ancient, even when it was made first. 00:20:20.661 --> 00:20:24.861 But it ran Linux, which is, I thought, going to solve a lot of problems. So I deployed it. 00:20:24.981 --> 00:20:29.561 I worked many, many days and then deployed it at our Airbnb. 00:20:30.501 --> 00:20:31.641 And how'd that go, Brent? 00:20:32.461 --> 00:20:33.941 Well, it was very entertaining. 00:20:34.121 --> 00:20:35.261 Yeah, it was. Yeah, it was. 00:20:35.621 --> 00:20:37.021 It didn't go very well. 00:20:37.301 --> 00:20:38.801 You may have harmed your... 00:20:39.241 --> 00:20:43.801 Friendship with producer json yeah yeah that's true it started when you it took 00:20:43.801 --> 00:20:47.941 you 20 minutes to get it on the wi-fi there was that that was sort of a bad sign yeah. 00:20:47.941 --> 00:20:49.041 I still don't know. 00:20:49.041 --> 00:20:49.981 Why that was but. 00:20:49.981 --> 00:20:55.061 Anyways it was a means of starting this wheel going and then having us solve 00:20:55.061 --> 00:20:59.921 this problem we've had for years and i think having that failed experiment got 00:20:59.921 --> 00:21:02.101 us to a point where i think maybe we got this. 00:21:02.101 --> 00:21:06.821 Yeah so now we had the pie box we discovered it in the studio's archive and 00:21:06.821 --> 00:21:08.441 it was time to give it a little love. 00:21:08.541 --> 00:21:12.061 I probably talked about it years ago when it was brand new, but dusted it off 00:21:12.061 --> 00:21:13.921 and actually had a real use case for it now. 00:21:14.201 --> 00:21:17.201 And it really came down to, well, how do you deploy on this thing? 00:21:17.829 --> 00:21:21.129 I would love to see the Pi get a little easier to deploy on. 00:21:21.329 --> 00:21:24.669 I assume you didn't even try to get the KubeSail software in Kubernetes running? 00:21:24.929 --> 00:21:28.229 No, no, because it's also pretty old now at this point, Debian and whatnot. 00:21:28.409 --> 00:21:28.529 Yeah. 00:21:28.889 --> 00:21:33.829 And once you have an OS flash to the EMMC, it's a lot harder to just boot off external media. 00:21:34.149 --> 00:21:37.649 Because the way you change the boot order and whatnot is you modify the boot 00:21:37.649 --> 00:21:38.729 order on the installed OS. 00:21:39.329 --> 00:21:42.069 And you change hex codes in the boot order and stuff like that. 00:21:42.169 --> 00:21:43.309 And I just didn't want to play it. 00:21:44.029 --> 00:21:46.949 Just the expression on your face, Chris, when you found out that's what you 00:21:46.949 --> 00:21:52.549 needed to do. So where we came to, where Chris and I were holding up fists and 00:21:52.549 --> 00:21:56.589 Wes had to solve us tearing each other's hair up. 00:21:56.589 --> 00:21:57.369 There may have been some yelling. 00:21:57.609 --> 00:21:58.869 Was how do you deploy to this thing? 00:21:59.029 --> 00:21:59.169 Yeah. 00:21:59.309 --> 00:22:04.309 So Chris had a method and I had an experimental method that I wanted to try 00:22:04.309 --> 00:22:06.109 because I read it on the PCB. 00:22:06.569 --> 00:22:09.709 The irony is we probably should have reversed our attempts. 00:22:10.289 --> 00:22:11.749 Really? But I'll get to that. 00:22:11.789 --> 00:22:18.129 I'll get to that. So I advocated for just pulling down existing ARM binary images 00:22:18.129 --> 00:22:21.929 and flashing them to a USB stick and booting the thing with that. 00:22:22.149 --> 00:22:25.109 That was my approach, and I figured that would probably be a 20-minute gerb. 00:22:25.189 --> 00:22:26.089 That's far too reasonable. 00:22:26.369 --> 00:22:30.909 Brent over there wanted to go the route of, like, pulling down all the ARM packages 00:22:30.909 --> 00:22:34.989 on his x86 machine, spinning up an ARM VM, building them in the ARM VM, 00:22:35.069 --> 00:22:37.509 and then deploying a fully ready ARM image. 00:22:38.284 --> 00:22:43.784 as an image to the MMC, using this RPI boot mode that you can flip the carrier board into. 00:22:44.144 --> 00:22:48.024 So you've got to install the RPI boot app, and then it can flash and write. 00:22:48.164 --> 00:22:53.544 So the board, the carrier board for this and the CM4, they come out of the unit. 00:22:53.644 --> 00:22:57.604 You have to unplug them from the SATA backplane, and then you connect them to 00:22:57.604 --> 00:22:59.904 your laptop or whatever over USB-C. 00:22:59.984 --> 00:23:03.044 So now it's getting powered from your laptop, and when it's in RPI boot mode, 00:23:03.104 --> 00:23:06.444 when that toggle switch is flipped, it shows up as a mass storage device of types. 00:23:06.604 --> 00:23:06.884 Oh, interesting. 00:23:06.884 --> 00:23:11.004 Not a regular mass storage device. But A-type. Yes. And then RPiBoot can write to it. 00:23:11.204 --> 00:23:16.704 And so what Brantley is going to do is build all these on his X86 PC in an ARM VM. 00:23:16.864 --> 00:23:17.304 Sounds great. 00:23:17.384 --> 00:23:20.064 And then flash them using RPiBoot. 00:23:20.064 --> 00:23:23.424 To- This isn't his sort of factory assembly line that he turned your RV into? 00:23:24.044 --> 00:23:30.424 You are not kidding. My wife's been out of town for a week. And if she was in town, my goodness, boy. 00:23:30.444 --> 00:23:33.524 I would have never attempted to take over an eighth of the RV. 00:23:33.884 --> 00:23:40.044 Oh, boy. Anyway, so my approach was pull down the images that are already built and flash them. 00:23:40.164 --> 00:23:44.684 But the irony was is that I was on an ARM laptop and Brent's on an x86 laptop 00:23:44.684 --> 00:23:48.164 and I'm doing the prepackaged route and he's doing the package build route. 00:23:48.324 --> 00:23:51.864 Yeah. You should have been building the packages on your ARM laptop. 00:23:51.984 --> 00:23:56.584 Although I did kind of want you to win. I think Wes ultimately sided with me a bit here. 00:23:56.744 --> 00:23:59.704 He didn't really take a side, but he's like, well, the prebuilt packages makes 00:23:59.704 --> 00:24:01.864 the most sense if you're on x86. That was good. 00:24:01.864 --> 00:24:06.644 Well, I remember I tried the cross-compile path way back when I first tried getting NixOS on a Pi. 00:24:06.784 --> 00:24:06.924 Yeah. 00:24:07.184 --> 00:24:10.904 And just remembered that unless you had a fairly beefy rig, it was kind of painful. 00:24:11.484 --> 00:24:14.884 Yeah, so I wanted to see it work, so Brent gave it a go. 00:24:15.244 --> 00:24:19.264 Well, the reason I thought this might work more than you both seem to have any 00:24:19.264 --> 00:24:24.804 faith in me was that I deployed to a Raspberry Pi previously using this method. 00:24:25.468 --> 00:24:29.308 And then when I saw that nice little switch on the board, I thought, 00:24:29.548 --> 00:24:31.348 okay, this is the way they want this to be done. 00:24:31.488 --> 00:24:33.848 Maybe not the cross-compiling stuff or the cross-building. 00:24:34.548 --> 00:24:38.168 But I really wanted to try plugging this in and just having it be a mass storage 00:24:38.168 --> 00:24:39.188 device that I could write to. 00:24:39.308 --> 00:24:43.188 Because, Chris, you ran into an issue of you had the image. 00:24:43.368 --> 00:24:46.368 Yeah. I'd have to edit the OS to boot from the USB stick. 00:24:46.408 --> 00:24:49.168 Yeah, and so it didn't seem necessarily that much simpler. 00:24:49.368 --> 00:24:49.508 Yeah. 00:24:49.748 --> 00:24:54.288 So I went down the crazy path and did the cross-building. and it turned out 00:24:54.288 --> 00:24:58.148 with a little bit of, you know, finessing that totally worked. 00:24:58.508 --> 00:25:04.248 It did with one thing I would say people need to watch out for is the config 00:25:04.248 --> 00:25:06.808 that ended up in the image, which was great because Brent was able to set it 00:25:06.808 --> 00:25:08.808 up with user accounts and whatnot. So it just worked. 00:25:08.908 --> 00:25:12.948 But the downside, the first one, like you got to watch yourself because it'll 00:25:12.948 --> 00:25:16.168 do key-based SSH login. And if you don't set that up right, you can't get in. 00:25:16.268 --> 00:25:17.268 You're locked out. 00:25:17.268 --> 00:25:21.348 But the second gotcha is that now when it builds, even locally, 00:25:21.688 --> 00:25:26.148 it's like configured to do a remote build, but it's doing a remote build on itself. 00:25:26.428 --> 00:25:26.808 Yeah. 00:25:27.108 --> 00:25:28.908 So it's SSHing into itself and building. 00:25:29.128 --> 00:25:34.528 Be careful which config you deploy to this thing. You can't just take what's 00:25:34.528 --> 00:25:36.328 on your laptop and send it over there. 00:25:36.488 --> 00:25:43.168 Yeah, right. But that aside, we do have a provisioned system with Jellyfin and 00:25:43.168 --> 00:25:45.448 Samba and that 480 gigabyte drive. 00:25:45.628 --> 00:25:47.728 And Wes, get ready for this. 00:25:47.828 --> 00:25:47.968 Hmm. 00:25:49.427 --> 00:25:50.367 I went with XFS. 00:25:51.187 --> 00:25:54.447 You know, I wonder, because I walked in the studio, and I guess this thing was booted up. 00:25:54.487 --> 00:25:57.247 I didn't know it at the time, but I just, I hadn't realized, 00:25:57.367 --> 00:26:00.187 because I guess I haven't watched the kernel boot XFS. 00:26:00.367 --> 00:26:02.227 It still says SGI XFS. 00:26:02.407 --> 00:26:05.067 Yes, it's great, isn't it? Yeah, I don't know. 00:26:05.147 --> 00:26:10.867 It just, we had a moment, and Brent claims that he is a Bcache FS hater now. 00:26:11.227 --> 00:26:15.147 No, I'm kidding. No, I just wanted to try it, I guess. We could always reformat. 00:26:15.207 --> 00:26:20.227 We tried Bcache FS first, and there was, I guess, an error in the current builds in NixOS. 00:26:21.487 --> 00:26:24.347 Yeah. So we just skipped over it. But it'll come. 00:26:24.647 --> 00:26:29.027 I mean, you got NixOS, so you don't strictly need it unless you have plans for 00:26:29.027 --> 00:26:30.447 around what you need to snapshot. 00:26:30.627 --> 00:26:31.407 Wes will fix it. 00:26:31.687 --> 00:26:35.947 So what we're going to do is we're going to seed that thing with all like my 00:26:35.947 --> 00:26:39.187 Blu-ray rips of Star Trek and my DVD copies and put it on the hard drive. 00:26:39.327 --> 00:26:41.747 So we'll always have Star Trek. I think we'll put like season one or two of 00:26:41.747 --> 00:26:45.147 Baywatch on there. We should have put some staples that we always watch at Airbnbs. 00:26:45.647 --> 00:26:51.507 And then Brent found a usb adapter that you can plug an mvme disc into that 00:26:51.507 --> 00:26:52.907 we took from an old busted laptop, 00:26:54.067 --> 00:26:58.147 um and so we're going to use that for like the more current stuff like the updated 00:26:58.147 --> 00:27:00.947 stuff so you want to just you just swap out right you plug it in your machine 00:27:00.947 --> 00:27:03.627 you update it and then when we boot that thing up you plug it in and you've 00:27:03.627 --> 00:27:06.247 got your extra new shows as well jellyfinal index oh. 00:27:06.247 --> 00:27:07.947 I love this classics and currents. 00:27:07.947 --> 00:27:10.867 The thing that's missing that we're working on and i don't know because brent 00:27:10.867 --> 00:27:13.347 was up till 2 a.m working on this i don't know how far he got well. 00:27:13.347 --> 00:27:14.967 We're gonna need to join it to a Nebula network. 00:27:15.267 --> 00:27:15.947 It's so true. 00:27:16.107 --> 00:27:18.607 It is going to be, we're going to have it. We'll have a Nebula network for all 00:27:18.607 --> 00:27:21.447 of this. So it'll be able to route. That thing will become a Nebula router for 00:27:21.447 --> 00:27:23.167 us. That is definitely part of it. 00:27:23.567 --> 00:27:26.827 But you think about the big component that's missing that we haven't talked about yet. 00:27:27.705 --> 00:27:31.885 We'd need this thing to be able to actually plug into a television and display jellyfin. 00:27:32.745 --> 00:27:33.825 Yeah. Can it do that? 00:27:33.965 --> 00:27:38.905 Well, it's got a full-fledged HDMI port, and the docs say it supports up to 4K resolutions. 00:27:39.745 --> 00:27:42.765 So I bet, you know, all the TVs we go to are like 1080p crappers. 00:27:42.985 --> 00:27:43.125 Yeah. 00:27:43.565 --> 00:27:48.605 And, you know, worse. So, like, we just have to figure out how to do a super 00:27:48.605 --> 00:27:52.245 low-key, probably Wayland, I would imagine, on that hardware, 00:27:52.645 --> 00:27:56.065 like kiosk almost. So where did you get to on that? 00:27:56.105 --> 00:27:59.545 Yeah, I found a little project. Kind of last minute, so I haven't told you about it yet. 00:27:59.625 --> 00:27:59.765 All right. 00:28:00.665 --> 00:28:05.725 Something called Cage or Cage Kiosk, which is a Wayland-based kiosk, 00:28:05.765 --> 00:28:08.525 which is fairly minimal, so good for these little compute modules. 00:28:09.205 --> 00:28:13.905 And it just gets you a Wayland session with the application that you want to run. 00:28:14.852 --> 00:28:18.692 So we could just have it essentially start up and launch a Firefox? Yeah. 00:28:19.312 --> 00:28:24.372 Oh, and then if we had the Firefox homepage set to the Jellyfin web interface. 00:28:24.852 --> 00:28:25.292 Exactly. 00:28:25.472 --> 00:28:27.632 We could even have it probably launch with a flag for full screen. 00:28:27.892 --> 00:28:28.212 Yeah. 00:28:28.532 --> 00:28:30.392 Oh, boys. Oh, boys. 00:28:30.532 --> 00:28:33.592 I think it does a single maximized application already. I don't know. 00:28:33.712 --> 00:28:36.872 It's like the exact thing that we need to solve this problem. 00:28:36.872 --> 00:28:39.532 And it still looks like it's in active development. 00:28:41.472 --> 00:28:45.832 And I think we should just go with this plan. unless someone has a much better 00:28:45.832 --> 00:28:47.912 idea because I seem to be. Yeah, I choose a client. 00:28:47.912 --> 00:28:51.312 I think the one thing we don't, I mean, Jellyfin gives you, it has like the 00:28:51.312 --> 00:28:54.452 cast sort of functionality, so we could control it from a phone or a laptop 00:28:54.452 --> 00:28:58.632 pretty easily, but we don't necessarily have like a remote style interface. 00:28:58.952 --> 00:28:59.952 Yeah, we do need to. 00:29:00.032 --> 00:29:02.692 I don't know if we care about that. Maybe we don't. We're all very technical savvy. 00:29:02.892 --> 00:29:05.372 Well, but we think, I think we want a remote, man. We want to make this really 00:29:05.372 --> 00:29:09.692 easy. We want this to be a casual, low friction thing or like if my wife's with 00:29:09.692 --> 00:29:12.592 us, it's easy for her. We have a, you know, we want to make it hard for PJ. 00:29:13.032 --> 00:29:18.452 We could use the get a better version of that um kind of janky presenter remote i have that is. 00:29:18.452 --> 00:29:20.012 Fun that thing was so hard to. 00:29:20.012 --> 00:29:21.352 Use yeah. 00:29:21.352 --> 00:29:25.532 I would actually like listener input on a great remote control device one that we could travel with. 00:29:25.532 --> 00:29:28.872 That's the thing ideally it would still work like on a plane even if we didn't drive so. 00:29:28.872 --> 00:29:33.152 Here's my other question this cage wayland kiosk thing does look really good, 00:29:34.881 --> 00:29:38.181 But is there a kiosk mode for Plasma? Now, hear me out, because Plasma can be 00:29:38.181 --> 00:29:42.341 pretty lean, and there could be, I don't know, situations where maybe we want 00:29:42.341 --> 00:29:45.741 to bust out a full desktop to do something that we didn't think of. 00:29:45.821 --> 00:29:48.361 We are always doing things we never thought of. 00:29:48.521 --> 00:29:52.461 So if we could have, like, a Plasma session that's, like, kiosk mode by default 00:29:52.461 --> 00:29:55.961 single app, but we could, with a, like, if we hooked up a USB keyboard, 00:29:56.081 --> 00:29:59.061 we could break out, that might be also really nice. 00:29:59.121 --> 00:30:02.141 But I don't know if that's a thing or not. Or I don't know. Maybe you can do that with GNOME. 00:30:02.401 --> 00:30:04.621 I have no idea. Maybe that's another thing listeners could tell us. 00:30:04.881 --> 00:30:08.101 I've got the feeling this might be a long-term project because we'll be taking 00:30:08.101 --> 00:30:11.581 it with us and changing it every time we use it, it seems, because we can't help ourselves. 00:30:11.801 --> 00:30:14.301 Yeah, I think the other thing we're going to be spending time figuring out is 00:30:14.301 --> 00:30:18.841 what does this thing do DNS-wise and how do we set that up, especially with 00:30:18.841 --> 00:30:21.221 split networks and all of that. 00:30:21.521 --> 00:30:22.221 It's a great point. 00:30:22.301 --> 00:30:25.301 And then, like, where does it pull the media from if we want, 00:30:25.581 --> 00:30:27.541 say, maybe to connect to another Jellyfin server? 00:30:27.821 --> 00:30:30.841 That probably needs—we need to make sure Nebula's running on the other Jellyfin server. 00:30:30.981 --> 00:30:34.861 So there's a few more things. So I guess the big ask to the audience would be, 00:30:34.961 --> 00:30:38.541 what would you use for kiosk mode would be up there? 00:30:39.481 --> 00:30:42.501 I guess I'd be up to x86 versions of this that are cheap, too, 00:30:42.561 --> 00:30:43.821 but we're kind of down this route now. 00:30:44.861 --> 00:30:46.321 Use the hardware you have, I say. 00:30:46.801 --> 00:30:48.661 Yeah, really. Tis the season, right? 00:30:48.701 --> 00:30:53.041 How did you even – was this just on a shelf somewhere? How did this happen? 00:30:53.201 --> 00:30:58.801 So this has been beside the fish tank in the living room, which we spend quite a lot of time in. 00:30:59.661 --> 00:31:05.481 for about the last four years i've had my eye on it and uh decided to just dig in. 00:31:05.481 --> 00:31:11.461 Mm-hmm i mean it's pretty dang neat it is pretty dang neat so uh and it's i 00:31:11.461 --> 00:31:14.821 i think if we get the kiosk thing solved i think that's going to be a winner 00:31:14.821 --> 00:31:18.841 i think the question is can you do that in plasma that's another you know or 00:31:18.841 --> 00:31:22.361 is there a better route as long as we can get a full desktop that's lean and 00:31:22.361 --> 00:31:25.041 mean but we like to use west. 00:31:25.041 --> 00:31:29.121 Might be a little disappointed because i also tried to upgrade our process because I don't want to, 00:31:30.345 --> 00:31:34.745 We always wanted to deploy to this thing remotely. So deploying to it with NixOS 00:31:34.745 --> 00:31:38.525 Anywhere and using Disco would be nice, especially if we changed to a different device, 00:31:39.205 --> 00:31:43.485 to just have a NixOS config that we can put on any device, really, 00:31:43.645 --> 00:31:45.745 or share with the audience so they can do it. 00:31:47.605 --> 00:31:54.045 But apparently, or at least I ran into this error, KExec does not work on the CM4. 00:31:54.965 --> 00:31:59.965 It has been more hit or miss on ARM. I think there are definitely ARM devices 00:31:59.965 --> 00:32:02.025 that can do it, but I don't know which ones. 00:32:02.265 --> 00:32:05.885 A KExec list device might not pass the OS sniff test. 00:32:06.385 --> 00:32:11.145 I mean, this one's pretty cool, so I'm willing to have a minimal sort of exceptions list. 00:32:11.525 --> 00:32:14.825 There's probably a limit on the number on the size of the list. 00:32:14.905 --> 00:32:18.505 But... Okay, maybe we can sort that out after the show. 00:32:18.525 --> 00:32:19.085 Yeah, I think so. 00:32:19.185 --> 00:32:20.885 All right, so we have one other question. 00:32:20.885 --> 00:32:21.925 Maybe get Brent's lawyer involved. 00:32:22.085 --> 00:32:26.965 While we're bringing up questions for the audience, so we want to talk about 00:32:26.965 --> 00:32:31.545 the technical side of some of the age verification stuff that's moving and i've 00:32:31.545 --> 00:32:35.165 been looking into this a bit we had a really great conversation on the pre-pre-show, 00:32:36.065 --> 00:32:39.025 25 u.s states now have enacted laws requiring age 00:32:39.025 --> 00:32:41.865 verification usually government id or a third party age assurance 00:32:41.865 --> 00:32:44.585 to get access to adult websites most of 00:32:44.585 --> 00:32:47.465 these have been passed and went into effect in the last 24 months and now 00:32:47.465 --> 00:32:50.245 we have two states that aim to enforce age verification at the 00:32:50.245 --> 00:32:53.065 os level california ab 1043 which 00:32:53.065 --> 00:32:56.165 was signed into law october 25th and goes into effect january 1st 00:32:56.165 --> 00:33:02.005 2027 and then colorado sb 26051 which is in the works and slated to be on the 00:33:02.005 --> 00:33:07.085 schedule in 2028 the team at systemd has a patch in the works that adds a birth 00:33:07.085 --> 00:33:11.305 date field to the json user records which would be essentially a standardized 00:33:11.305 --> 00:33:14.845 age related logic that distributions could adopt, 00:33:16.321 --> 00:33:18.961 And there is a group that is behind this that seems to be pushing it. 00:33:19.081 --> 00:33:24.641 We had a good conversation that seemed to indicate that this is also underway in New York. 00:33:24.661 --> 00:33:27.861 There is an early version in Washington State that hasn't gotten very far. 00:33:28.421 --> 00:33:29.601 Some efforts in Illinois. 00:33:30.481 --> 00:33:32.941 More and more widespread. And when you zoom outside the states, 00:33:33.101 --> 00:33:36.301 there's countries outside the states like Brazil and others that are also passing 00:33:36.301 --> 00:33:40.081 similar acetation requirements by the operating system. 00:33:40.081 --> 00:33:47.301 So we are very quickly as a community finding ourselves between an awful rock and an awful hard spot. 00:33:47.581 --> 00:33:52.221 And I think we're essentially there now. So System D might have a technical solution here. 00:33:52.421 --> 00:33:56.341 Do you think distributions, and I'm asking you, listener, do you think distributions 00:33:56.341 --> 00:34:00.141 should adopt it or remain out? Should they opt out? 00:34:00.361 --> 00:34:05.841 Now, consider if they opt out, they are likely not going to be valid in certain 00:34:05.841 --> 00:34:08.141 markets, not without fines and legal process. 00:34:08.141 --> 00:34:11.441 and consider who pays for their development where the 00:34:11.441 --> 00:34:14.521 money comes from in free software development it's often from enterprises who 00:34:14.521 --> 00:34:18.821 have contracts with government or companies that have contracts with government 00:34:18.821 --> 00:34:23.301 that have to make certain requirements so is this a line in the sand or should 00:34:23.301 --> 00:34:28.481 we have a technical solution for places that need to implement it is it something 00:34:28.481 --> 00:34:31.941 that all distributions should patch out should we fork system d. 00:34:34.098 --> 00:34:38.498 Or does it make sense to implement? And if it doesn't make sense to implement, 00:34:38.658 --> 00:34:41.458 if you're against it, what real options do you think are out there right now? 00:34:41.578 --> 00:34:45.258 We'd like to have that conversation in next week's boost segment, so please do boost in. 00:34:45.458 --> 00:34:49.598 And we'll have some details about the systemd birthdate field, if you're curious. 00:34:49.978 --> 00:34:54.978 It's essentially a JSON user record that the distribution and the software that's 00:34:54.978 --> 00:34:56.638 on top of that would then read from. 00:34:56.798 --> 00:34:59.118 At this point, no distribution has announced support for that, 00:34:59.138 --> 00:35:04.658 but you would imagine if they were forced to legally, then they would probably adopt that. 00:35:04.838 --> 00:35:10.458 There's some other options as well including the Debian project has looked at 00:35:10.458 --> 00:35:12.718 a potential route to solve this outside of Systemd. 00:35:13.578 --> 00:35:16.178 So it's a conversation that's happening and we want to know where you stand 00:35:16.178 --> 00:35:19.198 on it. We want to take your temperature. So please boost in and let us know. 00:35:19.278 --> 00:35:20.938 I think it'd be a great way to get a conversation going. 00:35:23.058 --> 00:35:27.838 I also want to mention that LinuxFest Northwest 2026 is just around the corner, 00:35:28.178 --> 00:35:32.818 33 days away as we record April 24th through the 26th at the Bellingham Technical College. 00:35:33.258 --> 00:35:36.198 We'll be doing a live show there. We are on the Sunday schedule, 00:35:36.198 --> 00:35:38.838 so you can join us for an in-person Linux unplugged. 00:35:40.158 --> 00:35:41.018 Usually a riot. 00:35:41.258 --> 00:35:44.778 It is a lot of fun. We don't know all the details yet. And then, 00:35:45.258 --> 00:35:46.878 let's just put it out there. 00:35:47.018 --> 00:35:49.498 You never know. You put something out in the universe, Brent, 00:35:49.598 --> 00:35:54.078 and sometimes the universe answers. and we thought, wouldn't it be interesting? 00:35:54.358 --> 00:35:58.858 Wouldn't it be fun if somebody out there in the audience is sitting with a van 00:35:58.858 --> 00:35:59.998 that needs a little rescue? 00:36:00.418 --> 00:36:05.298 Maybe it's in a rescuable state, needs a little love and get somebody out there 00:36:05.298 --> 00:36:06.118 to get it off your property. 00:36:06.238 --> 00:36:08.478 Well, Brent and I are itching. So let us know. 00:36:09.038 --> 00:36:12.458 Email the show linuxunplugged or unplugged at jupiterbroadcasting.com or send 00:36:12.458 --> 00:36:15.698 us a boost. Maybe we'll put you on the schedule this year and go do a van rescue. 00:36:15.878 --> 00:36:16.718 That would be amazing. 00:36:18.138 --> 00:36:20.818 We do this thing now when we're out driving around. We're always spotting vans. 00:36:20.818 --> 00:36:23.318 It's like, oh, we should stop by and ask them. We should stop. 00:36:23.418 --> 00:36:26.118 I look at that van. It's just sitting there rotting away. We should ask them. 00:36:26.158 --> 00:36:26.318 Yeah. 00:36:26.598 --> 00:36:27.398 We could get that running. 00:36:27.438 --> 00:36:28.038 Put it on the road. 00:36:28.138 --> 00:36:28.418 Come on. 00:36:28.698 --> 00:36:29.898 Someone could be using this. 00:36:30.018 --> 00:36:32.738 Yeah. I don't know. I know it's crazy. Let us know. But we'd like to tech one 00:36:32.738 --> 00:36:36.058 out. You know, if we can get it running, it would be such an awesome tech project. 00:36:36.518 --> 00:36:40.018 Home Assistant, sensors all over that thing, leveling sensors, 00:36:40.218 --> 00:36:42.018 mobile internet, all of it. 00:36:42.098 --> 00:36:45.398 You know, maybe we tweak it out. We install a super duper recording studio in 00:36:45.398 --> 00:36:49.638 there and then you just sell it to van influencers. Ready to go. 00:36:49.838 --> 00:36:50.518 Yeah, there you go. 00:36:50.518 --> 00:36:54.838 You know, Wes does need an RV solution. He's the only one of us that doesn't 00:36:54.838 --> 00:36:56.418 currently have sleeping on wheels. 00:36:56.418 --> 00:36:58.618 Oh my God, we could go on a road trip together. 00:36:58.818 --> 00:36:59.678 That would be pretty killer. 00:36:59.978 --> 00:37:01.538 All right, so you see, let us know, okay? 00:37:02.238 --> 00:37:02.618 Help us. 00:37:04.702 --> 00:37:08.522 Well, we got some feedback. Brentley, would you like to read Nix's, 00:37:08.602 --> 00:37:10.342 which is NYX? He wrote into the show. 00:37:10.502 --> 00:37:16.382 Yeah, someone knows our taste. Nix, NYX says, Hey, you'll ask for the most underpowered 00:37:16.382 --> 00:37:21.602 thing in my stack, and I think the award probably goes to my Pentium 2 box. 00:37:21.802 --> 00:37:22.402 Ho-ho-ho! 00:37:22.822 --> 00:37:27.162 I got it for free from my doctor. He had it collecting dust in the office, 00:37:27.162 --> 00:37:31.282 and I brought it home, swapped out the old spinning drive for an SSD. 00:37:31.582 --> 00:37:31.902 Whoa. 00:37:32.102 --> 00:37:32.462 Nice. 00:37:32.762 --> 00:37:34.462 Oh, no, sorry. I read that. 00:37:34.462 --> 00:37:35.322 Oh, SD card. 00:37:35.582 --> 00:37:37.802 Yeah. Swapped it out for an SD card. 00:37:38.082 --> 00:37:42.402 Yeah, yeah. 64 gigabyte SD, still probably better than the spinning rest, though. 00:37:42.782 --> 00:37:47.322 Yeah, and hosting a Luanti or MindTest server over on it. 00:37:47.562 --> 00:37:52.802 It's been hooked up to my tail net, and it can handle about five players with 00:37:52.802 --> 00:37:54.402 limited draw distance pretty well. 00:37:54.622 --> 00:37:54.962 Wow. 00:37:55.482 --> 00:38:01.942 Also use it as an MPD server. It's a bit stuttery if I try to do both at the 00:38:01.942 --> 00:38:05.462 same time. But for a zombie of tech, I'm pretty happy with it. 00:38:05.962 --> 00:38:09.162 That's so great. And he's coming in from Ecuador, too. So hello, Ecuador. 00:38:10.122 --> 00:38:11.882 Oh, yeah. We got a zip code here. 00:38:11.982 --> 00:38:13.522 This is a binary zip code. 00:38:13.582 --> 00:38:16.882 Do you want to go for it, Wes? Because, you know, I always think that zip codes 00:38:16.882 --> 00:38:19.182 are a better option if you want to go for it. 00:38:19.302 --> 00:38:19.642 I do. 00:38:19.802 --> 00:38:22.382 I do. All right. Let's break it up. Let's find where he's at. 00:38:25.620 --> 00:38:29.200 All right, so this is a unique one. It looks like something from the binars here. 00:38:29.360 --> 00:38:32.380 I know, right? Binary, postal code, what is this? 00:38:32.400 --> 00:38:33.380 What's going on, Wes? 00:38:33.380 --> 00:38:36.960 Okay, so I could be wrong. We did obviously get the Ecuador hint, so that's a big helper. 00:38:37.180 --> 00:38:37.320 Yeah. 00:38:37.380 --> 00:38:43.660 I couldn't find 010100, but it does look like if you sort of interpret it subnet 00:38:43.660 --> 00:38:47.000 style where that last zero means like the first sort of digits. 00:38:47.040 --> 00:38:47.600 I love where this is going already. 00:38:47.800 --> 00:38:51.420 Then that kind of makes sense with how it seems like Ecuador's postal structure 00:38:51.420 --> 00:38:58.080 is, or postal code is structured. So I think it is in the Asue province and 00:38:58.080 --> 00:39:02.100 then maybe near the capital Cuenca or the province around there. 00:39:02.200 --> 00:39:07.200 That's my guess, which has stuff like, let's see, it's got like a beautiful 00:39:07.200 --> 00:39:10.540 looking park in here, which seems really nice. Yeah. 00:39:11.000 --> 00:39:11.240 Let's go. 00:39:12.140 --> 00:39:16.920 El Cajas National Park, which is in a mountainous region. It's got some, 00:39:17.060 --> 00:39:19.940 the capital looks like it's got some pretty dope architecture going on. 00:39:20.260 --> 00:39:21.680 Sure does. Wow. It's beautiful. 00:39:21.680 --> 00:39:24.380 So I don't know if I found the right place. I'm sure I pronounced the names 00:39:24.380 --> 00:39:26.560 wrong, but either way, I want to visit. 00:39:26.900 --> 00:39:30.280 Yeah, for sure. It's also really impressive that he can actually sustain five 00:39:30.280 --> 00:39:33.780 players. MineTest, for those that don't know, is like a Minecraft-free software implementation. 00:39:34.280 --> 00:39:39.520 And so for five players, that's really great. An MPD server would be a media server. 00:39:39.700 --> 00:39:42.700 Yeah, I like seeing MPD still being used. That's a good solution. 00:39:42.820 --> 00:39:44.960 When's the last time either of you used Appendium 2? 00:39:47.040 --> 00:39:47.580 Really long. 00:39:47.720 --> 00:39:48.440 I know. 00:39:48.720 --> 00:39:51.320 That's what's so great about this is it keeps these things out of the landfill. 00:39:51.320 --> 00:39:55.700 they still have valid uses obviously here they maybe are you pay for it on the 00:39:55.700 --> 00:39:59.880 power but that depends on everybody's individual area so that's really neat 00:39:59.880 --> 00:40:04.100 thank you nix uh i think we i think we're pronouncing it nix let us know if we got that wrong. 00:40:04.100 --> 00:40:13.580 Well we have a couple boosts here starting with a baller free go lay, 00:40:17.737 --> 00:40:21.677 Frigol A sent in 67,011 satoshis. 00:40:21.937 --> 00:40:22.637 Oh, thank you, sir. 00:40:23.657 --> 00:40:26.537 They simply say, great coverage with a thumbs up. 00:40:26.857 --> 00:40:26.937 Aw. 00:40:27.877 --> 00:40:31.217 Thank you very much. And I feel like 67,011 might be a message. 00:40:31.817 --> 00:40:34.297 I feel like it might be, but I'm not sure. Thank you very much, 00:40:34.557 --> 00:40:35.977 Frigol A. I really do appreciate that. 00:40:36.537 --> 00:40:40.177 It is your, you are our baller. Thank you, sir. 00:40:41.757 --> 00:40:44.497 KRHill94 comes in with 10,000 sats. 00:40:46.177 --> 00:40:49.697 Support if my AlbiHub node is working I'm having some troubles It works! 00:40:49.957 --> 00:40:53.657 We got it You got it! Congratulations on self-hosting an AlbiHub. 00:40:54.697 --> 00:41:00.757 It's a big step And we're proud of you Mm-hmm Mm-hmm And our final boost today 00:41:00.757 --> 00:41:03.897 Spooky Satcom comes in with 2,000 sets, 00:41:05.577 --> 00:41:10.317 Brent, your splits is killing my transactions Uh-oh Boost! 00:41:10.917 --> 00:41:12.277 We have to look into that I. 00:41:12.277 --> 00:41:14.797 Think Satcom here has, you know, a good spirit about it. 00:41:14.837 --> 00:41:15.257 Yeah, yeah. 00:41:15.277 --> 00:41:16.117 And we appreciate that. 00:41:16.237 --> 00:41:16.377 Oopsies. 00:41:16.597 --> 00:41:18.997 Yeah, sorry about that. We'll have to look into that. Okay, so it's a light 00:41:18.997 --> 00:41:21.897 week. It's a light week. I guess, does that mean anything to we? 00:41:22.317 --> 00:41:23.437 That's Signal? Not Signal? 00:41:23.737 --> 00:41:24.837 I don't know. The world's on fire. 00:41:24.997 --> 00:41:25.397 March break, right? 00:41:25.577 --> 00:41:28.057 That's true. That's true. That's true. We're going to, we'll move on. 00:41:28.477 --> 00:41:31.717 But we got, we did get some stream stats as well. We had 90 a stream. 00:41:32.777 --> 00:41:36.497 4,876. It almost makes me think there's a technical issue. That's so low. That's so low. 00:41:36.617 --> 00:41:39.917 Well, maybe we can blame Brent. his splits causing everyone to give up on boosting I'm fine. 00:41:39.917 --> 00:41:41.617 With that yeah maybe we I'll. 00:41:41.617 --> 00:41:43.397 Yell at my administrator his name's Chris. 00:41:43.397 --> 00:41:48.637 Oh Captain Chris dang it that doesn't that doesn't do me well and when you combine 00:41:48.637 --> 00:41:55.677 it together we had 83,887 sats for this episode thank you everybody who supports us, 00:41:57.257 --> 00:42:01.397 it is a very light advertising season and you can support each individual episode 00:42:01.397 --> 00:42:06.357 and your boosts go directly to me Wes Brent Editor Drew and the podcast app, 00:42:07.497 --> 00:42:10.737 But it really supports all of us and gets your message on the show when you 00:42:10.737 --> 00:42:12.597 boost above 2,000 cents. 00:42:12.837 --> 00:42:14.937 We'll read your message, and it's always a great conversation. 00:42:15.137 --> 00:42:18.777 You can also support us with a membership at linuxunplugged.com slash membership. 00:42:23.970 --> 00:42:27.710 We have some really great picks. Let's start with a nerdy one, 00:42:27.750 --> 00:42:30.330 and then we'll get to a listener-contributed one. 00:42:30.470 --> 00:42:33.270 But you found FQ this week, Wes. 00:42:33.470 --> 00:42:36.530 I know about JQ, but that's for JSON. 00:42:37.150 --> 00:42:40.290 Yeah, that's right. And it turns out there's more in the world than JSON. 00:42:40.590 --> 00:42:45.830 So enter FQ. The F is for file. It aims to be JQ, Hexdump, DD, 00:42:46.070 --> 00:42:50.250 and GDB, four files combined into one. It's written in Go. 00:42:50.610 --> 00:42:57.150 It's already in Nix packages, and it's MIT-licensed. And it supports a ton of different formats. 00:42:57.450 --> 00:43:01.270 Apple Bookmarks, ASN1, AAC, MP3, CSV, 00:43:01.690 --> 00:43:05.930 FLAC files, LuaJit, a bunch of stuff for Postgres protocols, 00:43:06.190 --> 00:43:12.970 RTMP, SafeTensors format, which is used, VP9, WASM, WebP, ZipFiles, YAML, JSON, JPEG. 00:43:13.570 --> 00:43:17.790 And so basically it gives you, you know, like with JQ, you can do like dot key 00:43:17.790 --> 00:43:21.350 or like get the third item from a list and then get a key out of that and kind 00:43:21.350 --> 00:43:25.550 of easy syntax for manipulating JSON structures. So the idea is the same thing here. 00:43:25.690 --> 00:43:28.950 So I downloaded our most recent episode, and it has MP3 support. 00:43:29.130 --> 00:43:29.810 Oh, cool. 00:43:29.990 --> 00:43:34.590 And so I can do FQ, and then you do dot frames, and then sort of the bracket 00:43:34.590 --> 00:43:39.470 zero to get the first frame, and then dot tag, and that gives me a bunch of the tag information. 00:43:39.990 --> 00:43:44.550 And I can do, from there, dot encoder, and it tells me it was encoded with flame. 00:43:44.790 --> 00:43:48.710 I can see also you could do that same thing with a PNG or an MP4, whatever, really. 00:43:48.750 --> 00:43:51.770 And of course, there's better dedicated, right? Like if you're just doing MP3s, 00:43:51.790 --> 00:43:55.010 there's tools for that. But the handy here is one tool to explore, 00:43:55.290 --> 00:43:57.310 work with, basically make it PDFs. 00:43:57.981 --> 00:44:02.321 json files exactly make binaries more accessible queryable and sliceable it 00:44:02.321 --> 00:44:06.161 does nested formats and bit oriented decoding it shows it to you in a nice sort 00:44:06.161 --> 00:44:10.121 of hex viewer style along with a more structured data format on the right hand 00:44:10.121 --> 00:44:12.081 side so something to add to your tool belt. 00:44:12.081 --> 00:44:17.961 Very cool nice find wes and it's mit licensed our next pick this week. 00:44:17.961 --> 00:44:21.701 Is one thing oh go ahead uh they have given very the author has given a few 00:44:21.701 --> 00:44:24.361 different presentations about it too including at Fostum 2023, 00:44:24.541 --> 00:44:27.841 so if you are curious, there's a bunch of ways to find out more nerdy teats. 00:44:28.161 --> 00:44:32.001 Our next one is under early development. It's called File Fridge. 00:44:32.141 --> 00:44:36.741 It's Apache 2.0 licensed, and it's created by one of our very own community members. 00:44:37.101 --> 00:44:40.081 Martino writes, Hey guys, I remember a couple of episodes back you were talking 00:44:40.081 --> 00:44:44.521 about storage, price supply issues, and what you were doing to try to use other 00:44:44.521 --> 00:44:45.601 methods to store your media. 00:44:45.721 --> 00:44:48.381 I was, and I still have Blue Vault to back up to Blu-ray. 00:44:48.681 --> 00:44:52.421 I was thinking about this very thing. I worked on a tool that runs in my home 00:44:52.421 --> 00:44:55.021 lab to move media that isn't accessed as often. 00:44:56.173 --> 00:44:59.313 To an external drive, and then drops a sim link to the file. 00:44:59.533 --> 00:45:03.373 I did use AI to code this with two kids I don't have as much time as I used to for projects. 00:45:03.533 --> 00:45:06.793 So check it out when you have time. It is under active development, 00:45:06.833 --> 00:45:08.193 and it's called File Fridge. 00:45:08.773 --> 00:45:12.993 And the idea is, I love this, and I wonder if there's other things out there, 00:45:13.153 --> 00:45:17.853 where you have, obviously, your more precious hot storage that's fast and available, 00:45:18.033 --> 00:45:22.053 but maybe you're archiving things that you haven't accessed for a very long time. 00:45:22.053 --> 00:45:26.513 Instead of buying more expensive fast storage, you kind of, you know, 00:45:26.593 --> 00:45:32.033 you have cloud storage, you have disks around the house, a little more colder storage, right? 00:45:32.413 --> 00:45:35.913 Higher capacity. And that's the idea of FileFridge here. 00:45:36.233 --> 00:45:39.093 And I just think it's brilliant. I'm wondering if there's other projects out 00:45:39.093 --> 00:45:43.413 there like this. You can set up rules and let FileFridge handle the cleanup on a schedule. 00:45:43.793 --> 00:45:46.853 The assembling thing is a really great idea. Then it'll also give you reports 00:45:46.853 --> 00:45:49.753 back on how much space you've saved. You can stay organized by using different 00:45:49.753 --> 00:45:53.713 tags and automated rules to categorize data across storage locations for, 00:45:53.813 --> 00:45:55.993 like, this goes to cloud, this goes to another disk. 00:45:56.153 --> 00:46:02.973 And it has a FileFridge progressive web app, so you can use it on mobile or desktop. FileFridge. 00:46:03.093 --> 00:46:03.813 I love the name. 00:46:04.333 --> 00:46:04.713 Yeah. 00:46:05.013 --> 00:46:07.373 Put your files in the fridge. Keep them good for later. 00:46:07.493 --> 00:46:11.393 It's a nice project, open source, by a community member of ours who's working 00:46:11.393 --> 00:46:13.153 our way on this. Looks like it's mostly Python. 00:46:13.453 --> 00:46:16.673 I have a sneaky app I'd like to throw in here. 00:46:16.693 --> 00:46:19.153 Ooh, a last-minute sneak? Go ahead. 00:46:19.393 --> 00:46:24.193 It's an app pick I've been using all week to continue the project we talked 00:46:24.193 --> 00:46:25.793 about last week on your diesel heaters. 00:46:27.093 --> 00:46:28.433 Reverse engineering the signal. 00:46:28.873 --> 00:46:33.813 Reverse engineering the protocol that the diesel heater of unknown make and model. 00:46:34.193 --> 00:46:38.033 Which could be any device. It could be a thermostat. I think people are sick 00:46:38.033 --> 00:46:39.613 of us talking about the diesel heaters. That's why I mentioned it. 00:46:40.033 --> 00:46:43.653 It's not specific to a diesel heater. It's any kind of proprietary device that 00:46:43.653 --> 00:46:46.073 has a communications protocol that you want to build a control. 00:46:46.553 --> 00:46:46.753 True. 00:46:47.073 --> 00:46:48.553 Thank you. All right. Just want to inject that. 00:46:49.625 --> 00:46:53.665 So I use the tool that is actually really great because we flash some logic 00:46:53.665 --> 00:46:56.865 analyzers to an ESP to try to break down that protocol. 00:46:57.285 --> 00:47:03.445 And this one is called SIGROC. And I think it's quite well known in those circles. 00:47:03.745 --> 00:47:09.225 But for those of us who are new to it, great tool. You could just flash it to an ESP. 00:47:09.645 --> 00:47:13.165 And it has something called a sub tool here called PulseView. 00:47:13.665 --> 00:47:18.885 And Chris, remember, I was able to show you the visual representation of the 00:47:18.885 --> 00:47:23.005 signal that was coming in on the data line on your diesel heater. 00:47:23.025 --> 00:47:25.785 Well, this is the part where I was like, this should be a pick. 00:47:26.365 --> 00:47:31.665 So you got the ESP doing the analysis and the whatnots, but then it's got a 00:47:31.665 --> 00:47:36.725 GUI for the Linux desktop to actually give you a visual of the signal. 00:47:36.865 --> 00:47:37.465 That's so great. 00:47:37.685 --> 00:47:41.525 So you could actually see like the boop, boop, boop, boop in the actual signal. 00:47:41.525 --> 00:47:46.845 Oh, which we didn't need. Like, we could do it itself, but it was so nice. 00:47:47.145 --> 00:47:48.565 It was really cool. 00:47:48.765 --> 00:47:53.025 And it has, like, the ability to auto-decode specific protocols. 00:47:53.025 --> 00:47:58.685 So then you could see the translated bits and bytes and messages that are being sent. Very cool. 00:47:59.025 --> 00:48:05.825 Pulse view, sometimes abbreviated as PV. And then the GUI part is a cute-based application. 00:48:06.145 --> 00:48:09.765 Logic analyzer, oscilloscope, and MSO GUI for Sigrock. 00:48:09.785 --> 00:48:14.705 That's cool. The GUI is licensed under GPL 2, I believe. 00:48:14.805 --> 00:48:18.045 So I think maybe the other side of it is – I'm not positive on that part. 00:48:18.643 --> 00:48:24.583 Oh, my goodness. So cool to walk up. And I mean, it's a it's a full on technical. 00:48:24.843 --> 00:48:28.843 Well, of course, I'm a noob. What the hell do I know? But you listeners, 00:48:28.923 --> 00:48:31.863 you got to check out the link in the show notes because the visualization it 00:48:31.863 --> 00:48:34.603 gives you is so neat to be able to. 00:48:34.963 --> 00:48:39.543 And then once you've once you've unlocked this, it's no longer proprietary for you. 00:48:39.723 --> 00:48:43.223 Right. It is under your no one else. Right. Well, you can publish it, I suppose. 00:48:43.383 --> 00:48:46.823 But our goal here, because we made quite a lot of progress is now Chris can 00:48:46.823 --> 00:48:49.483 just hit a button in his home assistant. Turn it on, turn it off, 00:48:49.583 --> 00:48:50.863 turn the heat up, turn the heat down. 00:48:51.003 --> 00:48:54.503 And we're working on getting other things like chamber temperatures and stuff like that. 00:48:54.663 --> 00:48:55.923 Which could be good for safety reasons. 00:48:56.123 --> 00:48:56.343 Totally. 00:48:56.583 --> 00:49:01.263 Very true. And for automations. And it's not done quite yet. We're sorry. 00:49:01.423 --> 00:49:05.123 But we will publish this to the JBE GitHub just to share it with the world. 00:49:05.283 --> 00:49:10.303 Yeah, maybe you've got an AC unit that you've wanted to be able to control or 00:49:10.303 --> 00:49:11.983 a garage door that has proprietary. 00:49:12.163 --> 00:49:15.403 Like there's all these things. Now, there's certain levels it won't be able to defeat. 00:49:16.243 --> 00:49:20.303 But there's a lot that it will and can. it really opens up a whole new world 00:49:20.303 --> 00:49:23.163 of like, just open it up and put some open source in it and make it better. 00:49:23.463 --> 00:49:26.663 You know, like they didn't ship it that way, but we can make it that way. 00:49:26.883 --> 00:49:29.363 And this opens it up to a whole new world of hardware, you know, 00:49:29.423 --> 00:49:33.383 pretty much anything that has control buttons and an LCD screen and with some 00:49:33.383 --> 00:49:35.343 power, you, I mean, that's what this thing's working with. 00:49:35.483 --> 00:49:37.663 And that's kind of been the missing link in a lot of ways, right? 00:49:37.763 --> 00:49:42.363 Like I remember in years past you, you know, giving tips of like, 00:49:42.503 --> 00:49:45.723 buy the dumbest thing you can, so you can do the automation with just a power 00:49:45.723 --> 00:49:46.623 or whatever your mechanism. 00:49:46.623 --> 00:49:49.603 So this may be unlocked stuff that you want a better device, 00:49:49.723 --> 00:49:52.383 but it comes with more, doesn't have simple analog controls. 00:49:52.563 --> 00:49:55.443 So much stuff now has like a digital control or soft buttons. 00:49:56.043 --> 00:49:58.803 Maybe remote, but proprietary with their own little thing. 00:49:59.003 --> 00:50:04.283 Yeah. Yeah. And no more. It is such an unlock when you start thinking about 00:50:04.283 --> 00:50:05.383 it. It's really been exciting. 00:50:05.583 --> 00:50:09.343 And so then to be able to see it work and see it graphically represented, 00:50:09.343 --> 00:50:12.363 it's like, oh, this is something else. And it's all free software. 00:50:12.943 --> 00:50:16.963 Pretty, pretty freaking cool. All right. We have some questions for you. 00:50:18.206 --> 00:50:22.346 So please do boost in on your thoughts around like the system D or technical 00:50:22.346 --> 00:50:26.486 implementations for age gating and verification, or if it's a hard line for 00:50:26.486 --> 00:50:27.746 you and what the alternatives are. 00:50:27.926 --> 00:50:31.326 And we're also looking for your ideas for kiosk mode for this thing and kind 00:50:31.326 --> 00:50:34.466 of anything you got, anything you picked up in that segment that we could make this better. 00:50:34.866 --> 00:50:37.806 Please do boost in. It'd be a great way to maybe make next episode a banger 00:50:37.806 --> 00:50:41.546 since this one was such a sleeper and also help us advance this project. 00:50:41.906 --> 00:50:43.526 And boost in with any good Vans. 00:50:44.106 --> 00:50:44.966 Yeah, let us know. 00:50:45.166 --> 00:50:47.926 Yes, please. That's actually the priority for all the other questions. 00:50:49.166 --> 00:50:51.466 Of course, you can always make it a live Tuesday on a Sunday. 00:50:51.686 --> 00:50:54.006 Join us Sundays at 10 a.m. Pacific, 1 p.m. Eastern. 00:50:57.066 --> 00:50:59.806 And if you want more show, remember that LUP plug gets together every single 00:50:59.806 --> 00:51:04.126 Sunday while we're streaming. And there is that bootleg version with twice the content. 00:51:04.366 --> 00:51:08.446 And Wes Pano, if they want more metadata information around the show, 00:51:08.526 --> 00:51:09.406 we got that too, don't we? 00:51:09.546 --> 00:51:12.946 Yes, we do. We got JSON chapters hosted in the cloud. 00:51:13.206 --> 00:51:18.186 And for finer grain detail, VTT and SRT files for transcripts. 00:51:18.206 --> 00:51:21.666 How enjoy that getting 00:51:21.666 --> 00:51:24.506 more and more useful every single day also very useful the 00:51:24.506 --> 00:51:28.426 links to everything we talked about those will be posted up at linuxunplugged.com slash 00:51:28.426 --> 00:51:34.746 659 you also find out how to contact us our mumble and our matrix info and a 00:51:34.746 --> 00:51:38.406 bunch of great shows over there at jupiterbroadcasting.com thanks so much for 00:51:38.406 --> 00:51:41.386 joining us on this week's episode of your unplugged program and we'll see you 00:51:41.386 --> 00:51:44.646 back here next tuesday as in sunday.
Previous episode Next episode

Related episodes

Search

Search