WEBVTT

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

00:00:15.893 --> 00:00:16.803
<v Wes>My name is Wes.

00:00:16.803 --> 00:00:17.746
<v Brent>And my name is Brent.

00:00:18.309 --> 00:00:23.743
<v Chris>Well, coming up on the show today, boys, I got a media stack you can actually

00:00:23.743 --> 00:00:27.613
<v Chris>set and forget. It's a big week for Jellyfin, and we're going to dig into that

00:00:27.613 --> 00:00:30.476
<v Chris>new release and why we think it's worth your attention.

00:00:30.801 --> 00:00:34.894
<v Chris>Then we're going to round it out with some great boosts, some great picks, and a lot more.

00:00:35.393 --> 00:00:38.933
<v Chris>It's going to change. This episode is going to change your life.

00:00:38.933 --> 00:00:44.233
<v Chris>And to help you do it, we have a special team of our time-appropriately-assembled

00:00:44.233 --> 00:00:46.323
<v Chris>virtual lug. Hello, Mumble Room.

00:00:47.263 --> 00:00:50.143
<v Mumble>Hello, Liz. Hello, Brent.

00:00:50.463 --> 00:00:54.642
<v Chris>I was trying to throw him a curveball there. Hello. Thank you for joining us today.

00:00:55.188 --> 00:00:58.913
<v Chris>Virtual lug's going during the show. You just got to be on Mumble. It's pretty nice.

00:00:59.453 --> 00:01:03.789
<v Chris>Also, good morning to our friends over at Defined Networking.

00:01:04.178 --> 00:01:08.093
<v Chris>Defined.net slash unplugged. Go meet Manage Nebula from Define Networking.

00:01:08.093 --> 00:01:14.533
<v Chris>Built on Nebula, Define Networking's solution gets you going in just minutes with 100 devices.

00:01:14.533 --> 00:01:19.289
<v Chris>No credit card required. Define.net slash unplugged. You get fast encrypted,

00:01:19.666 --> 00:01:23.573
<v Chris>direct connections between your systems without funneling everything through

00:01:23.573 --> 00:01:28.658
<v Chris>some central VPN server, which is so ironic when you see all these commercials for VPN ads.

00:01:29.503 --> 00:01:36.164
<v Chris>The irony there is rough. And now, now they also give you a hosted lighthouse.

00:01:36.489 --> 00:01:39.949
<v Chris>Get you connected fast or run your own, run a mix.

00:01:40.222 --> 00:01:43.763
<v Chris>It lets you do all of it. So connect 100 devices for free. No credit card required

00:01:43.763 --> 00:01:45.986
<v Chris>at defined.net slash unplugged.

00:01:46.642 --> 00:01:49.544
<v Chris>Talam Char sent you at defined.net slash unplugged.

00:01:54.281 --> 00:01:58.854
<v Chris>Well, we got a little bit of housekeeping. You're not going to believe it.

00:01:59.261 --> 00:02:07.830
<v Chris>But ladies and gentlemen, clear your schedules because we're going to Texas Linux Fest 2026.

00:02:07.830 --> 00:02:12.700
<v Chris>It's back on just when we thought we had to say goodbye. So in 53 days,

00:02:12.700 --> 00:02:16.786
<v Chris>13 hours, 18 minutes, 17 seconds, we will be at Texas Linux Festival.

00:02:17.770 --> 00:02:22.202
<v Chris>November 6th through the 7th in Austin, Texas. And how is this possible?

00:02:22.591 --> 00:02:27.070
<v Chris>because of the generosity of one community member, TechDev stepped up.

00:02:27.070 --> 00:02:30.760
<v Chris>Justin reached out to me last week. He said, I'm really bummed to hear you guys

00:02:30.760 --> 00:02:33.430
<v Chris>aren't going. What would it cost? I told him, he said, that's ridiculous.

00:02:33.430 --> 00:02:35.330
<v Chris>I know. I said, it's Brent. It's the food budget.

00:02:35.950 --> 00:02:37.240
<v Chris>So let me see what I can do. And

00:02:37.240 --> 00:02:45.613
<v Chris>he came back and he contributed $4,000 to the show to get us to Austin.

00:02:47.129 --> 00:02:48.156
<v Brent>That's crazy.

00:02:48.504 --> 00:02:50.327
<v Wes>Mega penta baller.

00:02:55.079 --> 00:02:58.713
<v Chris>And TechDev joins us in the Mumble Room right now.

00:03:00.327 --> 00:03:05.644
<v Chris>Our gratitude, Justin, it's really, first of all, it's incredibly generous.

00:03:05.644 --> 00:03:08.664
<v Chris>And second of all, could you help us understand why you would do something like this?

00:03:11.362 --> 00:03:13.204
<v Mumble>Well, who needs a framework anyway?

00:03:16.784 --> 00:03:23.384
<v Mumble>No, hey, there's some reality behind this, which is I've been listening to your guys' shows.

00:03:25.050 --> 00:03:29.464
<v Mumble>for the better part of 15 years. I think Brent is the only one here who knows

00:03:29.464 --> 00:03:32.784
<v Mumble>how old I actually am. I won't tell. In,

00:03:35.664 --> 00:03:38.936
<v Mumble>middle school, I started listening to Linux Action Show.

00:03:39.307 --> 00:03:45.658
<v Mumble>I would be there Sunday afternoons with a cup of coffee and working on machines,

00:03:46.284 --> 00:03:51.784
<v Mumble>as I was starting a custom IT business at 14, 13 or 14.

00:03:51.784 --> 00:03:58.445
<v Mumble>And things weren't always great in those days. In the home life, they're better now.

00:03:58.886 --> 00:04:02.534
<v Mumble>But I do remember that in the ups and the downs of those things,

00:04:02.534 --> 00:04:06.433
<v Mumble>in the discovering of my hobbies and my interest,

00:04:07.385 --> 00:04:10.433
<v Mumble>installing Ubuntu from the Woobie installer for the first time,

00:04:10.984 --> 00:04:15.251
<v Mumble>all of that came from listening to your shows and being in the community.

00:04:15.878 --> 00:04:21.494
<v Mumble>learning about the fests also connected me with tons more people that just opened

00:04:21.494 --> 00:04:27.000
<v Mumble>up my world about the possibilities and the realities that this tech thing is,

00:04:27.958 --> 00:04:34.904
<v Mumble>a bigger thing than just me on the internet with my right 768 megabytes of ram that's a that's such a.

00:04:34.904 --> 00:04:37.924
<v Chris>Great thing about those fests just to interrupt for a second just like i could

00:04:37.924 --> 00:04:41.174
<v Chris>these people i can talk to them and they know what i'm talking about they they

00:04:41.174 --> 00:04:44.164
<v Chris>want to talk about this there's other people.

00:04:44.164 --> 00:04:50.168
<v Mumble>Out there Absolutely. You can connect. You can learn. You're not the weird one at the table.

00:04:51.709 --> 00:04:56.697
<v Mumble>And what Jupiter Broadcasting has done for me over the years is been a guide,

00:04:56.923 --> 00:05:02.239
<v Mumble>has been a place to connect with people, a show to keep my interest up,

00:05:02.239 --> 00:05:06.577
<v Mumble>a thing to distract me from things that may or may not be going well outside of it.

00:05:07.076 --> 00:05:12.229
<v Mumble>and your coverage of the shows is a part of that as well so i figure if it worked for me,

00:05:12.729 --> 00:05:17.479
<v Mumble>and i'm one of the people who get to continue to be in the community and participate

00:05:17.479 --> 00:05:18.855
<v Mumble>and talk to you guys there has to be

00:05:19.261 --> 00:05:24.359
<v Mumble>many more through many different age groups and i would love to see that you

00:05:24.359 --> 00:05:29.179
<v Mumble>guys get to continue going to these shows so that i get to enjoy it the current

00:05:29.179 --> 00:05:33.309
<v Mumble>community gets to enjoy it and then everyone else who may have a similar story,

00:05:33.826 --> 00:05:38.269
<v Mumble>of these shows being their connection and their encouragement to get into the

00:05:38.269 --> 00:05:41.500
<v Mumble>communities, to go to the fest, to keep the communities alive.

00:05:42.309 --> 00:05:43.764
<v Mumble>I want to support that in the way that I can.

00:05:43.938 --> 00:05:44.939
<v Chris>That's so great.

00:05:44.939 --> 00:05:45.709
<v Wes>That's so sweet.

00:05:46.069 --> 00:05:49.869
<v Chris>You know, one of the things we didn't touch on last week, but one of the reasons

00:05:49.869 --> 00:05:51.797
<v Chris>we were really disappointed we couldn't go,

00:05:52.418 --> 00:05:56.759
<v Chris>was for us, I think one of the secrets to, you know, 13, 14 years,

00:05:56.759 --> 00:06:01.239
<v Chris>whatever it's been of doing the show, keeping that energy going has been going to these events.

00:06:01.239 --> 00:06:01.799
<v Wes>For sure.

00:06:01.799 --> 00:06:04.729
<v Chris>And then realizing like the audience, they're real people. They're not just

00:06:04.729 --> 00:06:10.059
<v Chris>like the commenters online. And that's helped us a lot stay grounded and stay

00:06:10.059 --> 00:06:13.899
<v Chris>connected with what real people are doing out there and just like constantly

00:06:13.899 --> 00:06:15.779
<v Chris>being humbled by the people in our audience as well.

00:06:15.779 --> 00:06:18.029
<v Wes>They're real people. They're amazing people, super talented people.

00:06:18.129 --> 00:06:20.509
<v Chris>And you can tell just probably by the episodes, every time we come back,

00:06:20.509 --> 00:06:23.369
<v Chris>we bring a bunch of energy back with us. And I think it helps sustain the show.

00:06:23.369 --> 00:06:27.059
<v Chris>So like when we can't go to these events, it's like, oh, are we going to lose

00:06:27.059 --> 00:06:29.703
<v Chris>a little momentum here? So I'm very glad.

00:06:30.409 --> 00:06:32.439
<v Chris>Just so many different, from both the fact that we can cover it,

00:06:32.439 --> 00:06:34.929
<v Chris>but we can also bring that energy back to the show. Of course,

00:06:34.929 --> 00:06:38.103
<v Chris>it's going to be great to see you down there as well, TechDev, and everybody else.

00:06:39.298 --> 00:06:42.046
<v Chris>Very excited. I think we'll probably start thinking about a meetup.

00:06:42.566 --> 00:06:45.406
<v Chris>We would love, so we got $4,000, which is incredible.

00:06:46.266 --> 00:06:50.232
<v Chris>That's hopefully going to cover our travel and I'm hoping our housing.

00:06:50.557 --> 00:06:52.496
<v Chris>We're going to do it on a budge like we always do.

00:06:52.862 --> 00:06:55.726
<v Chris>But there is room in there for a little bit extra if you want to help us,

00:06:55.726 --> 00:06:59.247
<v Chris>maybe plan for a meetup and things like that. Boost.JupiterBroadcasting.com

00:06:59.665 --> 00:07:01.024
<v Chris>will be a great way to do that.

00:07:01.366 --> 00:07:05.206
<v Chris>And we'll just start stacking that for our trip, which is coming up soon.

00:07:05.206 --> 00:07:08.466
<v Chris>And for those of you that don't know, it's going to be in Austin at the Commons

00:07:08.466 --> 00:07:11.601
<v Chris>Event Center and Cafe at the University of Texas, Austin.

00:07:12.227 --> 00:07:16.860
<v Chris>So I believe it's where it was last year as well. Same venue as last year, which worked out great.

00:07:18.286 --> 00:07:21.646
<v Chris>In fact, you remember they had like coffee all over the place and stuff?

00:07:21.646 --> 00:07:25.051
<v Chris>They did. It's actually really well done. Felt very swanky.

00:07:25.173 --> 00:07:27.396
<v Wes>I'm excited to see year two in the space. You know, it's always,

00:07:27.396 --> 00:07:29.546
<v Wes>you got to figure out a lot the first time you're in a different space.

00:07:29.546 --> 00:07:31.196
<v Wes>So year two, I'm sure will be even better.

00:07:31.196 --> 00:07:34.919
<v Chris>Year two probably will be. And we'll know the space too. So we'll be even better.

00:07:35.227 --> 00:07:36.426
<v Chris>It's just going to be better all around.

00:07:36.466 --> 00:07:38.226
<v Wes>Prepared to strike. Watch out, hallway track.

00:07:38.226 --> 00:07:44.300
<v Chris>Wah! All right. So this week, Jellyfin 12 landed.

00:07:44.730 --> 00:07:48.182
<v Chris>And it's a pretty, pretty big upgrade.

00:07:48.682 --> 00:07:54.260
<v Chris>There's a database migration in there. There's a process that has to run after upgrade.

00:07:54.661 --> 00:07:59.486
<v Chris>There can be issues depending on your user account setup. All kinds of stuff,

00:07:59.486 --> 00:08:00.669
<v Chris>actually. There's several gotchas.

00:08:01.133 --> 00:08:03.086
<v Chris>And I had to upgrade two Jellyfin systems.

00:08:03.086 --> 00:08:06.526
<v Wes>Oh, I knew you had at least one to do. I didn't know you had two.

00:08:06.660 --> 00:08:07.855
<v Chris>One went great,

00:08:09.145 --> 00:08:12.564
<v Chris>one did not so i learned some lessons on the one that did not and i'll share

00:08:12.564 --> 00:08:16.254
<v Chris>those in a little bit too and then brent yellowed this morning before is your

00:08:16.254 --> 00:08:17.994
<v Chris>still going or is your upgrade done now.

00:08:18.734 --> 00:08:24.004
<v Brent>It just just finished as we were getting on um but i too realized oh wait i'm

00:08:24.004 --> 00:08:27.484
<v Brent>running a jellyfin somewhere else that i don't really know where it is but it

00:08:27.484 --> 00:08:31.414
<v Brent>works in my url bar so i gotta update that one too but first probably figure

00:08:31.414 --> 00:08:32.284
<v Brent>out which machine it's on.

00:08:32.795 --> 00:08:36.754
<v Chris>It's actually kind of it's easier to collect multiple jellyfin servers than

00:08:36.754 --> 00:08:40.444
<v Chris>plex servers i think because like with plex you're you're associating to an

00:08:40.444 --> 00:08:43.224
<v Chris>account and if you go that far and you have multiple plex servers you're probably

00:08:43.224 --> 00:08:44.664
<v Chris>getting a yearly pass and like.

00:08:44.664 --> 00:08:45.669
<v Wes>It's a whole thing yeah.

00:08:46.040 --> 00:08:49.814
<v Chris>But with jellyfin you can just you can have a casual jellyfin server.

00:08:49.814 --> 00:08:52.724
<v Wes>It can just be a quick interface over some local files if you want.

00:08:52.724 --> 00:08:55.804
<v Chris>Or it can be like the core of your home media the.

00:08:55.804 --> 00:08:57.704
<v Wes>Core abstraction that ties everything together.

00:08:57.704 --> 00:08:59.714
<v Chris>Yeah yeah which is what i built,

00:09:04.274 --> 00:09:07.754
<v Chris>so yeah okay so you got different you got different takes here you got different.

00:09:07.754 --> 00:09:08.914
<v Wes>Hey you have stakes on the line i.

00:09:08.914 --> 00:09:16.144
<v Chris>Like it yeah yeah well and really too because amazon had a samsung tv on sale

00:09:16.144 --> 00:09:21.282
<v Chris>for like 94 97 or something like that was some crazy i'm like okay i'm finally getting it because,

00:09:22.026 --> 00:09:24.634
<v Chris>the kids the kids have really wanted a tv and i'm like okay i'll get it i'll

00:09:24.694 --> 00:09:27.924
<v Chris>get it so i get it because it's daughter's birthday and all this kind of stuff

00:09:27.924 --> 00:09:30.874
<v Chris>right and So here you go, and we unbox it, and we set it up,

00:09:30.874 --> 00:09:36.184
<v Chris>and then the next day, I'm upgrading the Jellyfin server, and I'm thinking to myself, if I blow this,

00:09:37.217 --> 00:09:40.354
<v Chris>that makes the brand new TV that I just got them completely worthless,

00:09:40.354 --> 00:09:41.994
<v Chris>and I could have just waited a day, you know?

00:09:43.062 --> 00:09:45.624
<v Chris>So, like, there was more on the line for this upgrade than normal,

00:09:45.624 --> 00:09:50.104
<v Chris>too, because they were really enjoying the new TV at that particular moment.

00:09:50.104 --> 00:09:52.030
<v Chris>That's just such a dummy on the timing on that.

00:09:52.506 --> 00:09:55.154
<v Chris>But, Wes, tell us a little bit what we need to know before we do the upgrade,

00:09:55.154 --> 00:09:58.284
<v Chris>because there's some stuff in here in the project, like, right at the top of

00:09:58.284 --> 00:10:02.108
<v Chris>the release, 4.12. It's like, you've got to read this if you're upgrading.

00:10:02.224 --> 00:10:03.716
<v Wes>Yeah, okay. Well, yeah.

00:10:04.847 --> 00:10:08.522
<v Wes>Jellyfin is a long-running project at this point, right? Like,

00:10:08.522 --> 00:10:12.372
<v Wes>at some point, it felt kind of new, right? There's the whole Fork off of MB

00:10:12.372 --> 00:10:15.290
<v Wes>saga. There's been a whole several different eras.

00:10:15.609 --> 00:10:18.602
<v Wes>But it still kind of feels like the new competitor to Plex in many ways.

00:10:18.602 --> 00:10:23.040
<v Wes>But at this point, it's had a long enough life to accumulate some,

00:10:23.179 --> 00:10:27.812
<v Wes>you know, technical debt, path dependence, things that worked just fine when

00:10:27.812 --> 00:10:29.762
<v Wes>you were starting out that maybe didn't work so fine.

00:10:29.762 --> 00:10:34.475
<v Wes>So up till now, Jellyfin stored things that sort of needed to belong together,

00:10:34.998 --> 00:10:39.952
<v Wes>like playlists, collections, box sets, basically not really as like a proper

00:10:39.952 --> 00:10:44.453
<v Wes>database entry, but just a text blob in some JSON in the database row.

00:10:45.732 --> 00:10:50.415
<v Wes>They're all basically just a list of file paths. They weren't proper like database objects either.

00:10:50.867 --> 00:10:56.185
<v Wes>So showing a playlist meant reading the blob and then fetching every child one at a time.

00:10:56.463 --> 00:10:59.812
<v Wes>So 100 items in a playlist could mean 100 plus extra round trips,

00:11:00.652 --> 00:11:05.746
<v Wes>user data per item, child counts per folder, all separate things you had to go look up.

00:11:06.292 --> 00:11:09.932
<v Wes>And then on top of that, deletes could often leave stale entries behind because

00:11:09.932 --> 00:11:13.602
<v Wes>there wasn't like automatic foreign key constraints or similar knowledge in

00:11:13.602 --> 00:11:16.897
<v Wes>the database to automatically clean that up for you like would happen normally.

00:11:17.772 --> 00:11:20.792
<v Wes>You kind of had to do it yourself because you had these sort of custom serialized

00:11:20.792 --> 00:11:22.152
<v Wes>little text blobs everywhere.

00:11:22.152 --> 00:11:22.493
<v Chris>Sure.

00:11:23.172 --> 00:11:26.272
<v Wes>So they did often get cleaned up, but it was like later by a scheduled job,

00:11:26.272 --> 00:11:28.452
<v Wes>not when you were actually doing the delete or whatever.

00:11:29.332 --> 00:11:32.802
<v Wes>So it worked fine. At the beginning, it kind of aged out.

00:11:32.802 --> 00:11:39.923
<v Chris>It didn't work great. I had a couple of times with, I think it was Magnum PI or Mary Tyler Moore.

00:11:41.072 --> 00:11:46.112
<v Chris>I would delete the underlying files, but Jellyfin would refuse to delete the

00:11:46.112 --> 00:11:48.892
<v Chris>entries in the database, and it would still show all the episodes there.

00:11:49.312 --> 00:11:52.262
<v Chris>And I kind of got stuck in the state where there was a disagreement about the

00:11:52.262 --> 00:11:54.272
<v Chris>actual state of the file. And so it just gave up and,

00:11:55.144 --> 00:11:59.674
<v Chris>and had to go in there and actually clean that up manually in order to proceed

00:11:59.674 --> 00:12:01.074
<v Chris>and get those entries out.

00:12:01.074 --> 00:12:02.874
<v Wes>So you can see a little of the brittleness somewhere, right?

00:12:02.964 --> 00:12:03.284
<v Chris>Yeah, yeah, yeah.

00:12:03.644 --> 00:12:10.829
<v Wes>Okay, so then there'd been the start of a reckoning in the 10.11 release back in October last year.

00:12:11.357 --> 00:12:15.154
<v Wes>The whole library database got moved into EF Core, which is,

00:12:15.154 --> 00:12:18.354
<v Wes>because this is the .NET app, right, Jellyfin? Yeah. And that's Microsoft's

00:12:18.354 --> 00:12:20.697
<v Wes>sort of ORM system for .NET.

00:12:21.156 --> 00:12:25.214
<v Wes>That had been like roughly a sort of five-year on-and-off effort driven largely

00:12:25.214 --> 00:12:30.467
<v Wes>by one contributor uh jp venson so that was very impressive um the migration,

00:12:31.007 --> 00:12:35.234
<v Wes>repaired a bunch of corrupt data did some cleanup for you did a lot of things

00:12:35.234 --> 00:12:38.279
<v Wes>this is the one where you kind of had to like run it overnight don't touch it

00:12:38.593 --> 00:12:41.420
<v Wes>um but the rollout was imperfect,

00:12:41.954 --> 00:12:46.254
<v Wes>there's a lot of sqlite databases locked errors from parallel scans plus a lot

00:12:46.254 --> 00:12:50.814
<v Wes>of long transactions now running some performance regressions um a bunch of

00:12:50.814 --> 00:12:52.664
<v Wes>patches that kind of had to come out so,

00:12:53.224 --> 00:12:58.347
<v Wes>a lot of you know a lot of effort went into bug tracking kind of sorting through all this mess,

00:12:59.124 --> 00:13:02.084
<v Wes>figuring out exactly what really was wrong what needed to get fixed because

00:13:02.084 --> 00:13:05.004
<v Wes>it's a big change already of switching they had a bunch of like custom written

00:13:05.004 --> 00:13:06.074
<v Wes>handwritten queries all over

00:13:06.074 --> 00:13:09.940
<v Wes>the place that all got unified into this one database access system right,

00:13:10.451 --> 00:13:15.404
<v Wes>so 12.0 is really like once you paid that,

00:13:15.944 --> 00:13:19.544
<v Wes>once you got through there you could really start making some improvements So

00:13:19.964 --> 00:13:24.075
<v Wes>those serialized blobs are now becoming real tables with real foreign keys.

00:13:24.394 --> 00:13:28.304
<v Wes>No more matching by file path. Deletion is now handled by the database itself.

00:13:28.304 --> 00:13:30.524
<v Wes>It can clean up the right objects automatically.

00:13:31.344 --> 00:13:35.444
<v Wes>One at a time fetching is now batched into grouped queries before you loop over

00:13:35.444 --> 00:13:37.864
<v Wes>stuff. So you don't have to do a whole bunch of round trips just to go explore

00:13:37.864 --> 00:13:40.524
<v Wes>everything in the playlist. You can get all the stuff in one go. Way faster.

00:13:40.524 --> 00:13:41.233
<v Chris>Way faster.

00:13:41.367 --> 00:13:41.554
<v Wes>Nice.

00:13:41.784 --> 00:13:48.074
<v Chris>Uh-huh. Mm-hmm. So this is sort of the release that earns all of that work,

00:13:48.074 --> 00:13:49.209
<v Chris>right? Like, it really comes...

00:13:50.198 --> 00:13:55.128
<v Chris>And you, again, end up with, if you have a large library, when it first starts,

00:13:55.128 --> 00:13:59.318
<v Chris>like some of these major releases, it will go through a process where it's updating the database.

00:13:59.838 --> 00:14:02.518
<v Chris>I guess this is where it's doing that housekeeping is at that point.

00:14:03.118 --> 00:14:08.038
<v Wes>Yeah, exactly. The one-way migration as well. Part of this is because they're

00:14:08.038 --> 00:14:12.528
<v Wes>upgrading, like, the actual EF stuff inside. There's 17 EF migrations,

00:14:12.528 --> 00:14:14.908
<v Wes>13 data cleanup routines, no

00:14:14.908 --> 00:14:17.358
<v Wes>downgrade path. Rollback means they're storing a backup or an old image.

00:14:17.638 --> 00:14:18.418
<v Chris>No going back.

00:14:18.418 --> 00:14:21.808
<v Wes>It does do a backup automatically under the hood for you. So,

00:14:21.808 --> 00:14:25.850
<v Wes>I mean, you should still do your own, but there's a lot of safety and intentionality built in here.

00:14:25.978 --> 00:14:29.918
<v Chris>In the Jellyfin UI, in the admin dashboard, there is a manual backup you can

00:14:29.918 --> 00:14:31.318
<v Chris>go in and trigger to before you start.

00:14:31.318 --> 00:14:33.269
<v Wes>There we go. Hey, that's a pro tip right there.

00:14:33.425 --> 00:14:34.104
<v Chris>Recommend.

00:14:34.876 --> 00:14:35.402
<v Chris>do you recommend?

00:14:35.782 --> 00:14:40.552
<v Wes>Also, upgrading from .NET 9 to .NET 10 in this release means that a bunch of

00:14:40.552 --> 00:14:44.522
<v Wes>old plugin binaries breaks. It's not really that the code is incompatibility.

00:14:44.522 --> 00:14:45.969
<v Wes>It's more of an ABI issue.

00:14:46.722 --> 00:14:50.242
<v Wes>Some things are going to need to be updated, rebuilt, rather than really changed.

00:14:50.242 --> 00:14:53.332
<v Wes>Some interfaces are changing. There are breaking changes around Jellyfin 12,

00:14:53.332 --> 00:14:56.645
<v Wes>but it's not like a major plugin revolution or anything.

00:14:57.045 --> 00:14:59.472
<v Wes>It's more just that framework update.

00:14:59.472 --> 00:15:03.642
<v Chris>Yeah, all of mine but one were updated. So my YouTube metadata plugin did not

00:15:03.642 --> 00:15:07.222
<v Chris>get updated, but all my three other plugins that I had all were updated for

00:15:07.222 --> 00:15:08.707
<v Chris>12 within a couple of days.

00:15:09.149 --> 00:15:12.542
<v Wes>Yeah, I guess folks are waiting to see when that one gets updated.

00:15:12.542 --> 00:15:16.482
<v Wes>There's maybe one unmerged community fork at least. There's probably a few of those.

00:15:17.202 --> 00:15:20.922
<v Chris>You know what? This is not unusual for Jellyfin after a major upgrade.

00:15:20.922 --> 00:15:24.542
<v Chris>Every now and then I end up removing a plugin and going with the community fork

00:15:24.542 --> 00:15:26.941
<v Chris>that maintains. You kind of see it happen at Home Assistant as well.

00:15:27.336 --> 00:15:31.332
<v Wes>Yeah. Mandatory full rescan on upgrade as well. So that's another piece that

00:15:31.332 --> 00:15:32.337
<v Wes>can kind of take a little while.

00:15:32.674 --> 00:15:36.262
<v Wes>some things might look a little weird during the scan like some movies briefly

00:15:36.262 --> 00:15:41.016
<v Wes>look newly added it won't persist like that so some artifacts there um and then

00:15:41.277 --> 00:15:45.372
<v Wes>yeah another thing to watch out for is usernames become case insensitive.

00:15:45.372 --> 00:15:47.262
<v Chris>Yes this is one you need to watch for.

00:15:47.262 --> 00:15:51.072
<v Wes>And this is due to all that database stuff because now they're using like proper

00:15:51.072 --> 00:15:56.282
<v Wes>sql normalization and like uppercase command in sql and it handles some unicode

00:15:56.282 --> 00:16:02.072
<v Wes>stuff differently so wes and lowercase wes uppercase West, those are now the same.

00:16:02.072 --> 00:16:02.454
<v Chris>Right.

00:16:02.761 --> 00:16:07.934
<v Wes>And it also doesn't handle some things get normalized, like umlauts on letters. So...

00:16:08.823 --> 00:16:11.978
<v Wes>Probably an edge case for most folks, but if you have a large user base,

00:16:11.978 --> 00:16:13.648
<v Wes>something to maybe take a look at first.

00:16:14.808 --> 00:16:15.938
<v Chris>Yeah, I actually, for some reason,

00:16:15.938 --> 00:16:20.990
<v Chris>had a capital D and a lowercase d dad users. So now I got one user.

00:16:26.458 --> 00:16:27.358
<v Chris>It's fine. It's fine.

00:16:27.683 --> 00:16:31.508
<v Wes>As you mentioned, yeah, so it does take a timestamp backup before migrating.

00:16:31.508 --> 00:16:35.248
<v Wes>Failure triggers auto rollback database should be restored to pre-migration state.

00:16:35.248 --> 00:16:39.088
<v Wes>the backup is kept if it's successful then it does clean up the backup it took

00:16:39.088 --> 00:16:42.588
<v Wes>automatically so a lot of things is like the more dangerous aspect here is in

00:16:42.588 --> 00:16:47.128
<v Wes>some ways trying to kill it mid-migration skipping doing the manual backup step

00:16:47.128 --> 00:16:48.499
<v Wes>yourself something like that.

00:16:49.236 --> 00:16:54.068
<v Chris>Um so before i get to my experience and we hear how brent's went um i'm old

00:16:54.068 --> 00:16:59.818
<v Chris>enough to remember that there was kind of a project shake-up just around july

00:16:59.818 --> 00:17:02.938
<v Chris>you know summertime some of the original founders of the project left.

00:17:02.938 --> 00:17:07.858
<v Chris>There was some hoopla around there. So this is kind of the big first release post that disruption.

00:17:07.858 --> 00:17:08.903
<v Wes>Yes, definitely.

00:17:09.130 --> 00:17:09.828
<v Chris>It's notable.

00:17:09.828 --> 00:17:13.528
<v Wes>Yeah, I mean, they kept going. You can kind of see the transition.

00:17:13.528 --> 00:17:16.958
<v Wes>One of the folks who'd left was doing some of the early RCs for this release

00:17:16.958 --> 00:17:19.782
<v Wes>and then other folks kind of carried it on from there.

00:17:20.205 --> 00:17:23.665
<v Wes>And like, you know, this change here, uh,

00:17:25.668 --> 00:17:32.795
<v Wes>Let's see here. I have 116 commits, roughly 27,800 lines added, 4,000 lines removed,

00:17:33.312 --> 00:17:36.795
<v Wes>sort of had been shepherded across, you know, from last year to this year,

00:17:37.073 --> 00:17:40.832
<v Wes>merged in May, and then had to be kind of figured out across the release candidates.

00:17:40.832 --> 00:17:46.162
<v Wes>So, like, all of that kept going and didn't even involve mostly some of the people who left.

00:17:46.162 --> 00:17:50.272
<v Wes>So it kind of shows, even if there hasn't been necessarily like official transitions

00:17:50.612 --> 00:17:54.552
<v Wes>for all of these roles yet, there's still a lot of folks putting a lot of work

00:17:54.552 --> 00:17:57.345
<v Wes>to keeping this project going, including making major releases.

00:17:57.873 --> 00:18:01.602
<v Chris>So we also have a firmed up AI policy at this point, right?

00:18:01.602 --> 00:18:06.822
<v Chris>So the policy that they have, as I understand it, means you can submit AI-assisted

00:18:06.822 --> 00:18:11.252
<v Chris>code as long as you understand it, but you cannot do AI-assisted communications.

00:18:11.252 --> 00:18:14.185
<v Chris>And if you don't understand the code, you shouldn't submit it.

00:18:14.950 --> 00:18:17.788
<v Chris>So it sounds like they've kind of come to, I think what is a pretty reasonable

00:18:17.788 --> 00:18:20.262
<v Chris>spot, a lot of projects are landing with AI-assisted code.

00:18:20.616 --> 00:18:22.758
<v Chris>And the reason why I wanted to bring that up, because I kind of had the sense

00:18:22.758 --> 00:18:26.698
<v Chris>that might have been involved with some of the, this policy might have been

00:18:27.110 --> 00:18:29.528
<v Chris>a part of what caused some of the original founders to leave.

00:18:29.528 --> 00:18:33.068
<v Wes>Yeah, there was at least one person who cited some of that and other working

00:18:33.068 --> 00:18:36.851
<v Wes>environment concerns in their left. Others were sort of burnout, personal reasons.

00:18:37.019 --> 00:18:40.668
<v Wes>So it was a range of things. And, you know, at least one of them offered like

00:18:40.668 --> 00:18:43.878
<v Wes>a year-long sort of overlap period as they phased out of the project.

00:18:43.878 --> 00:18:47.033
<v Wes>So it seems to be being handled quite well.

00:18:47.602 --> 00:18:50.878
<v Wes>There were some funny things and just small notes that came with this release.

00:18:50.878 --> 00:18:54.078
<v Wes>So like one we kind of talked about behind the scenes is there was a really

00:18:54.078 --> 00:18:58.458
<v Wes>neat little technical fix for when you were sort of pausing or resuming some

00:18:58.458 --> 00:19:01.731
<v Wes>HLS streams where you could kind of get a little tiny bit of sync drift.

00:19:02.213 --> 00:19:06.515
<v Wes>And they didn't think it was possible to fix without re-encoding the Jellyfin team.

00:19:06.828 --> 00:19:11.098
<v Wes>But then someone upstream at FFmpeg was actually able to provide like a clever

00:19:11.098 --> 00:19:13.458
<v Wes>little way to do it that got the results.

00:19:13.458 --> 00:19:19.538
<v Wes>they wanted under 1% overhead no re-encode so that happened there's some subtitles

00:19:19.538 --> 00:19:23.348
<v Wes>used to just get flattened straight to Arial as the only font option that you'd

00:19:23.378 --> 00:19:26.773
<v Wes>get and a bunch of other limitations there's now like a proper,

00:19:27.778 --> 00:19:31.308
<v Wes>more robust I don't think it's fully built out necessarily but like actual subtitle

00:19:31.308 --> 00:19:34.718
<v Wes>handling that can handle different fonts it can handle other languages a lot

00:19:34.718 --> 00:19:37.898
<v Wes>better it can handle like intentionally built in stuff for anime a lot better.

00:19:37.898 --> 00:19:42.298
<v Chris>A nice needed improvement the one that I've seen everybody surprisingly excited

00:19:42.298 --> 00:19:44.798
<v Chris>about, and I don't get it, is books.

00:19:44.798 --> 00:19:47.908
<v Wes>Yeah, so books joined core. It used to be a volunteer plugin.

00:19:47.908 --> 00:19:49.772
<v Wes>That's archived intentionally now.

00:19:50.138 --> 00:19:54.828
<v Wes>Jellyfin can natively read e-books, comic metadata, covers, file name parsing, of course.

00:19:55.310 --> 00:19:59.078
<v Wes>Audiobook chapter extraction exists server-side. A lot of clients haven't caught

00:19:59.078 --> 00:20:01.388
<v Wes>up for a lot of the book stuff in particular yet.

00:20:01.388 --> 00:20:05.358
<v Chris>But that's where it makes sense. As the web client or like on your TV,

00:20:06.345 --> 00:20:09.678
<v Chris>this isn't how you're going to be reading your e-books. But if you have jellyfin

00:20:09.678 --> 00:20:13.448
<v Chris>clients that can use it as a back end to save your progress and,

00:20:13.448 --> 00:20:15.233
<v Chris>you know, treat it like an API.

00:20:15.896 --> 00:20:17.263
<v Chris>then I think it makes a little more sense.

00:20:17.263 --> 00:20:19.593
<v Wes>Yeah, and so one way you can use it already is just like the web view,

00:20:19.593 --> 00:20:22.113
<v Wes>right? But it's pretty basic ePub.js sort of rendering.

00:20:22.723 --> 00:20:27.103
<v Wes>But there's a plugin that you can get that turns it into an OPDS server,

00:20:27.103 --> 00:20:31.153
<v Wes>and then a bunch of existing e-reader stuff can all kind of plug into it.

00:20:31.153 --> 00:20:34.903
<v Wes>And so Jellyfin remains sort of your metadata manager, your indexer,

00:20:35.843 --> 00:20:37.801
<v Wes>having a good API on top of all of that.

00:20:37.993 --> 00:20:40.826
<v Wes>And then you can target whatever your Kobo reader, et cetera,

00:20:41.683 --> 00:20:43.479
<v Wes>at a more standardized interface.

00:20:44.263 --> 00:20:48.483
<v Wes>And then just the funny one, which was so that there was a feature called similar

00:20:48.483 --> 00:20:54.343
<v Wes>movies yeah um but actually it ignored pretty much everything it was random

00:20:54.343 --> 00:20:58.423
<v Wes>movies per category ordered by random no similarity check against anything,

00:20:58.983 --> 00:21:02.103
<v Wes>it looked like recommendations behaved more like a slot machine,

00:21:02.843 --> 00:21:08.643
<v Wes>um but now it uses real signal signals like director overlap weighted a lot there you go

00:21:08.963 --> 00:21:11.723
<v Wes>genre weighted lightly you know there's like they have a bunch of actual sort

00:21:11.723 --> 00:21:14.973
<v Wes>of heuristics director's a good one uh there are some nuances like third-party

00:21:14.973 --> 00:21:18.133
<v Wes>plugins can override some of how these the scoring works and there's not really

00:21:18.133 --> 00:21:20.743
<v Wes>a good control yet to fully like do you want that or not but,

00:21:21.303 --> 00:21:25.743
<v Wes>um a big improvement for something that uh never actually worked in the first place.

00:21:26.254 --> 00:21:33.673
<v Chris>So my updates didn't go the way i expected my longest running jellyfin box i

00:21:33.673 --> 00:21:37.557
<v Chris>did a backup copied it off went through the whole upgrade process,

00:21:38.671 --> 00:21:42.498
<v Chris>And it worked really well. In fact, the restart time, even when it had to do

00:21:42.498 --> 00:21:46.538
<v Chris>the rescan, went pretty quick and everything went fine.

00:21:46.538 --> 00:21:49.848
<v Chris>So then with, you know, I'm like, well, then this next one, this other box I

00:21:49.848 --> 00:21:53.638
<v Chris>want to update, this is going to be even, this is going to be even easier because

00:21:53.638 --> 00:21:57.398
<v Chris>this is a new box, a prototype box with a Nix config, sign it up so that way

00:21:57.398 --> 00:21:59.946
<v Chris>it could go through an upgrade process for the show on a safe environment.

00:22:00.486 --> 00:22:06.348
<v Chris>And it had like, I don't know, three shows with a couple of seasons worth of TV.

00:22:06.348 --> 00:22:06.918
<v Wes>Sounds trivial.

00:22:06.918 --> 00:22:12.808
<v Chris>It's trivial, right? and the upgrade proceeds and I notice an air fly by but

00:22:12.808 --> 00:22:15.338
<v Chris>I couldn't quite catch it. I'm like, I don't think that was a big deal.

00:22:15.338 --> 00:22:16.427
<v Chris>I mean, it's such a small library.

00:22:17.599 --> 00:22:23.833
<v Chris>And so I finish, get the services back online, I log in, everything looks great.

00:22:24.169 --> 00:22:26.558
<v Chris>I'm like, oh, the UI looks a little different but I hadn't really registered

00:22:26.558 --> 00:22:30.058
<v Chris>what was wrong yet. And I'm like, okay, well, I need to go connect another service

00:22:30.058 --> 00:22:33.167
<v Chris>which I'm going to talk about those later in the show. So I need to get the API key.

00:22:33.788 --> 00:22:37.463
<v Chris>So I go to click on the menu where I would go to the dashboard to get all the API key stuff.

00:22:38.531 --> 00:22:42.438
<v Chris>and all of my admin options are gone. And I'm logged in as the user admin.

00:22:43.018 --> 00:22:46.808
<v Chris>That's the only account on this box is admin, and that's what I'm logged in

00:22:46.808 --> 00:22:49.230
<v Chris>as. I run as root on this machine, basically.

00:22:50.083 --> 00:22:53.958
<v Chris>I think to myself, this is strange. Look around, and maybe they put it somewhere

00:22:53.958 --> 00:22:56.515
<v Chris>else in version 12. Maybe it's a UI surprise.

00:22:57.026 --> 00:23:01.002
<v Chris>So I'm expanding everything, checking every hamburger menu, nothing.

00:23:01.832 --> 00:23:07.338
<v Chris>And it dawns on me, somehow, and I don't know how, and I tried to reconstruct

00:23:07.338 --> 00:23:08.270
<v Chris>it. that I couldn't reconstruct.

00:23:09.593 --> 00:23:15.310
<v Chris>The user lost the admin bit during the upgrade process. The admin user lost the admin bit.

00:23:15.810 --> 00:23:16.331
<v Wes>Wow.

00:23:16.331 --> 00:23:18.341
<v Chris>And when it came back, he was just a regular user.

00:23:20.360 --> 00:23:23.261
<v Chris>And it was, again, going into the database and flipping it.

00:23:23.261 --> 00:23:24.237
<v Wes>Toggle in there, yeah.

00:23:24.696 --> 00:23:29.113
<v Chris>And then relaunching the Jellyfin service. And then I had all my stuff back.

00:23:30.481 --> 00:23:33.491
<v Chris>And I cannot explain. I looked in the logs. I threw it at the machine.

00:23:33.491 --> 00:23:35.691
<v Chris>I threw the logs at the machine. Like, hey, can you figure out this? Couldn't figure it out.

00:23:36.770 --> 00:23:40.441
<v Chris>But it happened. and I couldn't reproduce it. So I don't know if it was just something...

00:23:40.581 --> 00:23:44.201
<v Wes>Okay, but nothing else wrong? Once you toggled that, you were back in action?

00:23:44.201 --> 00:23:45.861
<v Chris>Yeah, back in action. Back in action.

00:23:45.861 --> 00:23:46.169
<v Wes>Okay.

00:23:46.302 --> 00:23:49.691
<v Chris>I was very thankful that the Infuse plugin updated because that's how we watch

00:23:49.691 --> 00:23:53.681
<v Chris>it on TV is using the Infuse app, which is just a fantastic Jellyfin front end.

00:23:53.681 --> 00:23:57.731
<v Wes>It seems like there's some specific support in Jellyfin these days too.

00:23:57.731 --> 00:24:00.911
<v Wes>Like I saw some, as I was looking through some of the code, there's like Infuse

00:24:00.911 --> 00:24:01.993
<v Wes>objects and stuff. Yeah.

00:24:02.562 --> 00:24:02.901
<v Chris>It really is.

00:24:03.121 --> 00:24:03.761
<v Wes>It's interesting to look at how extensive that is.

00:24:03.941 --> 00:24:06.242
<v Chris>It is the most bulletproof way I've ever watched home media.

00:24:07.301 --> 00:24:10.101
<v Chris>How did your update go that you did rando live? Did it finish?

00:24:10.101 --> 00:24:12.007
<v Chris>Is it working? Were you able to log in?

00:24:12.471 --> 00:24:12.841
<v Brent>Yeah.

00:24:12.841 --> 00:24:13.661
<v Chris>All of the above?

00:24:13.981 --> 00:24:17.311
<v Brent>Just before hitting record this morning, I decided, hey, why not?

00:24:17.311 --> 00:24:20.009
<v Brent>I'm just going to do the old update and see what happens.

00:24:21.341 --> 00:24:26.471
<v Brent>I admit I did not do a backup, but there's one included in the update.

00:24:26.471 --> 00:24:30.453
<v Brent>So I was like, yeah, that's probably good enough. I was doing it the Chris way, basically.

00:24:32.891 --> 00:24:35.211
<v Brent>And it all just came up. I mean, I have a pretty tiny library.

00:24:35.211 --> 00:24:39.643
<v Brent>I think it's like 50 items or something like that, basically, because,

00:24:41.140 --> 00:24:45.843
<v Brent>I don't have everything on there yet, but it was very straightforward considering,

00:24:46.225 --> 00:24:50.079
<v Brent>like, I much prefer the way that I read about all the warnings and,

00:24:50.079 --> 00:24:53.739
<v Brent>like, the big, huge stuff and, like, be very careful when you do this update

00:24:53.739 --> 00:24:54.852
<v Brent>and then nothing happens.

00:24:55.072 --> 00:24:57.329
<v Brent>It's much worse when it's the opposite way.

00:24:58.169 --> 00:25:04.969
<v Brent>So I have to say for my server, which is pretty simple, I still had admin access,

00:25:06.089 --> 00:25:08.529
<v Brent>after my update. So that all worked. Good, good.

00:25:08.849 --> 00:25:13.389
<v Brent>I have to also say one of the fancy tools that I'll mention a little bit also

00:25:13.389 --> 00:25:16.630
<v Brent>just kind of kept working. So good. No problems on this side.

00:25:17.652 --> 00:25:21.901
<v Chris>All right. That's good to hear. I think it's been pretty smooth for people in the community as well.

00:25:22.510 --> 00:25:25.999
<v Chris>I was chatting in the matrix and it didn't. Yeah. Okay. So I recommend it.

00:25:25.999 --> 00:25:31.429
<v Chris>I think it is a solid upgrade, but I think there are some tools you could use

00:25:31.429 --> 00:25:36.077
<v Chris>around all of this to make life even more enjoyable. So I want to cover those next.

00:25:46.305 --> 00:25:50.129
<v Brent>Well, generally, when you do a big update like this, it's a chance to,

00:25:50.129 --> 00:25:55.030
<v Brent>I don't know, clean things up, maybe try a few new things on your Jellyfin server.

00:25:55.494 --> 00:25:59.249
<v Brent>And Chris, I know when I was there with you last, you had a couple things running

00:25:59.249 --> 00:26:01.949
<v Brent>and you didn't explain all of them. I'm wondering if you tried anything new

00:26:02.249 --> 00:26:06.609
<v Brent>or if, well, we should know what's running on your box too. Please give us a tour.

00:26:08.342 --> 00:26:10.687
<v Wes>Yeah, what shanky plugins are you running that broke your upgrade?

00:26:10.687 --> 00:26:17.774
<v Chris>Boys, you are not talking to any average home media guy, okay?

00:26:18.967 --> 00:26:27.149
<v Chris>I have been blowing my hard-earned money on home media setups since 1999.

00:26:28.027 --> 00:26:32.267
<v Chris>You can go on the YouTubes and look at the JB channel and some of the oldest,

00:26:32.267 --> 00:26:39.461
<v Chris>most embarrassing videos from 15 years ago or 13, 14 years ago are me doing home media stuff.

00:26:39.809 --> 00:26:44.210
<v Chris>And I mean, I went everywhere. When Microsoft came out with Media Center PCs

00:26:44.378 --> 00:26:48.238
<v Chris>and Logitech made ones with DVD players in, I re-based on that.

00:26:48.453 --> 00:26:50.113
<v Chris>Then I went back to Myth TV.

00:26:50.340 --> 00:26:53.561
<v Chris>And then when BoxyBox came out, I based off of BoxyBox.

00:26:53.794 --> 00:26:56.757
<v Chris>And then when all of the new home media platforms started coming out,

00:26:56.757 --> 00:26:59.959
<v Chris>like, you know, obviously Plex and those before it, switched to all of that.

00:27:00.237 --> 00:27:02.913
<v Chris>Been building and rebuilding over the years.

00:27:03.668 --> 00:27:06.652
<v Chris>And there is one constant truth throughout all of it.

00:27:07.714 --> 00:27:11.962
<v Chris>Either all of your friends and family won't give a crap and they don't use it,

00:27:13.106 --> 00:27:19.154
<v Chris>or they'll use it and then you are now responsible for a service.

00:27:19.375 --> 00:27:20.298
<v Brent>Which do you prefer?

00:27:21.027 --> 00:27:23.027
<v Wes>You've become their in-house Netflix. Sorry, bud.

00:27:23.767 --> 00:27:28.057
<v Chris>So what I want to talk about today are tools that I have collected over the

00:27:28.057 --> 00:27:34.601
<v Chris>years to make managing this as simple and as little time consuming as possible.

00:27:35.228 --> 00:27:41.707
<v Chris>And if you do want to share it with people, I suggest you start with my friend, the Whizzer.

00:27:42.305 --> 00:27:46.467
<v Chris>Whizzer is an automatic user invitation system for Plex, Jellyfin, and Envy.

00:27:46.885 --> 00:27:50.407
<v Chris>You create a unique link and you can share it with a user and they'll automatically

00:27:50.407 --> 00:27:52.040
<v Chris>be invited to your media server.

00:27:52.719 --> 00:27:57.032
<v Chris>It's very, very, very straightforward, just like it sounds.

00:27:57.618 --> 00:28:03.937
<v Chris>It also supports single sign-on options. You can do duration memberships.

00:28:03.937 --> 00:28:06.007
<v Chris>You can cancel memberships. It has...

00:28:08.130 --> 00:28:14.173
<v Chris>integrations for Overseer and Ombi and a few other things, and Discord as well if you use that.

00:28:14.631 --> 00:28:17.838
<v Chris>And you can make a custom HTML invitation card as well.

00:28:18.198 --> 00:28:23.246
<v Chris>W-I-Z-A-R-R, Wizzr, is the automatic user invitation system,

00:28:23.618 --> 00:28:26.717
<v Chris>and it helps you do it across Plex, Jellyfin, and Envy.

00:28:27.269 --> 00:28:31.028
<v Chris>And it creates instructions, tells them what to do. It's very professional.

00:28:31.028 --> 00:28:34.718
<v Wes>That is really slick. That's not even a functionality I knew that I needed,

00:28:34.718 --> 00:28:36.568
<v Wes>and it's already so well done.

00:28:36.568 --> 00:28:40.858
<v Chris>Make it done. Make it easy. right? Okay. So here's the other thing is if you

00:28:40.858 --> 00:28:45.067
<v Chris>are sharing media with people, two other things come up a lot.

00:28:45.439 --> 00:28:50.669
<v Chris>Hey, I have these DVDs. Can you put them on the media server for me?

00:28:51.499 --> 00:28:55.760
<v Chris>Or, you know, I get like a text message. Hey dad, we want to get this movie, something like that.

00:28:56.561 --> 00:29:01.582
<v Chris>Right. And then I become like the meat translation layer that takes the requests

00:29:01.901 --> 00:29:05.158
<v Chris>and either goes and grabs the physical DVD or whatever. Right.

00:29:05.158 --> 00:29:07.159
<v Chris>Like I have to do that job. Well,

00:29:08.482 --> 00:29:14.891
<v Chris>That's not the way we do it in my house anymore. This is what I use Seer for. S-E-E-R-R.

00:29:15.373 --> 00:29:20.257
<v Chris>It's essentially an open source self-hosted app for managing media requests.

00:29:20.257 --> 00:29:25.787
<v Chris>It integrates with Jellyfin, Plex, and Envy and other services like your sonar and your radar.

00:29:26.646 --> 00:29:29.737
<v Chris>And it has a little database backend, has support for movies,

00:29:29.737 --> 00:29:33.587
<v Chris>television shows, mix libraries, all kinds of stuff. People can put in request

00:29:33.587 --> 00:29:36.157
<v Chris>queues. Different people can have permissions where if they put a request in,

00:29:36.157 --> 00:29:37.519
<v Chris>it processes immediately.

00:29:37.716 --> 00:29:41.437
<v Wes>It's like a fancy ticket system instead of you having to try to remember what everybody wants.

00:29:41.437 --> 00:29:46.615
<v Chris>With a very nice UI, right? So you're getting the covers of everything.

00:29:47.021 --> 00:29:51.087
<v Chris>And how that media is acquired depends on your back end, right?

00:29:51.087 --> 00:29:52.705
<v Chris>It can just be a request queue for you.

00:29:53.041 --> 00:29:56.217
<v Chris>It could be something that is automatic. It just really depends on how you want

00:29:56.217 --> 00:29:57.854
<v Chris>to set it up. But it's a great way to manage that.

00:29:58.382 --> 00:30:01.387
<v Chris>And it shows if it's all, well, this is actually already on the server.

00:30:01.387 --> 00:30:02.427
<v Wes>Ah, perfect.

00:30:02.427 --> 00:30:07.709
<v Chris>Mm-hmm. Mm-hmm. Mm-hmm. However, if you let this happen, you invite people,

00:30:08.423 --> 00:30:11.918
<v Chris>you give them away to request media, you're going to fill up disk space,

00:30:12.022 --> 00:30:14.177
<v Chris>right? And disk space is getting precious.

00:30:14.177 --> 00:30:15.174
<v Wes>Should we ask you how you know?

00:30:17.607 --> 00:30:21.957
<v Chris>Introducing Maintainer. Maintainer makes managing your media easy.

00:30:21.957 --> 00:30:24.957
<v Chris>No longer will you have to worry about your precious hard drive space being

00:30:24.957 --> 00:30:27.371
<v Chris>taken up by media that isn't being watched.

00:30:27.847 --> 00:30:31.567
<v Chris>Maintainer does the deciding for you. You write rules for the stuff that's just

00:30:31.567 --> 00:30:34.517
<v Chris>taking up space. unwatched, unrequested, gathering dust.

00:30:34.882 --> 00:30:39.747
<v Chris>It gathered those titles up into a collection, gives everyone a grace period to catch up.

00:30:40.258 --> 00:30:43.317
<v Chris>This is leaving the service soon. These are the shows you want to catch up on.

00:30:43.317 --> 00:30:45.047
<v Wes>Look at that. That's awesome.

00:30:45.787 --> 00:30:49.888
<v Chris>Mm-hmm. And then if nobody watches, it does the dirty work for you.

00:30:50.219 --> 00:30:55.827
<v Chris>It's got a nice web UI with card interface so you can see the stats and manage

00:30:55.827 --> 00:30:57.063
<v Chris>the schedule on everything.

00:30:58.526 --> 00:31:02.211
<v Chris>And it's just a great way to kind of keep things tidy, especially if you have

00:31:02.211 --> 00:31:05.247
<v Chris>the source media already, if you can get the source again.

00:31:06.471 --> 00:31:07.211
<v Wes>It's not a big deal.

00:31:07.211 --> 00:31:10.802
<v Chris>Yeah. If this is just your online version, this is a really solid option.

00:31:11.453 --> 00:31:14.421
<v Chris>And it gives you all the stats you'd want to. So you can go,

00:31:14.421 --> 00:31:15.841
<v Chris>look at how much space you've saved.

00:31:15.841 --> 00:31:19.381
<v Wes>I like that as a methodology to even beyond this use kit, you know,

00:31:19.381 --> 00:31:21.091
<v Wes>like I almost want that applied to my downloads.

00:31:21.691 --> 00:31:23.691
<v Wes>Yeah, buddy, you really haven't looked at this vial in months.

00:31:23.691 --> 00:31:24.821
<v Wes>We're going to take it off.

00:31:24.821 --> 00:31:27.821
<v Chris>You're right about that. I think another thing people really like,

00:31:27.821 --> 00:31:35.221
<v Chris>I don't use this next one, but Tracer is a modern analytics platform to see

00:31:35.221 --> 00:31:36.443
<v Chris>what people are watching.

00:31:36.913 --> 00:31:40.391
<v Chris>Who's streaming, what bit rates they're getting, if they're having any session

00:31:40.391 --> 00:31:44.187
<v Chris>issues, if they've had drops, how much CPU load they're putting,

00:31:44.541 --> 00:31:48.993
<v Chris>watch stats, popular series, and then it puts it all on a nice web UI for you.

00:31:49.336 --> 00:31:53.591
<v Chris>Supports Plex, Jellyfin, and Envy as you might expect.

00:31:54.166 --> 00:31:57.371
<v Chris>It's really built for people that are home media enthusiasts that just love

00:31:57.371 --> 00:31:58.868
<v Chris>data. They probably already know about this.

00:31:59.361 --> 00:32:01.671
<v Chris>But I felt like if I didn't mention this, people would write in the show.

00:32:01.671 --> 00:32:02.591
<v Chris>Chris, you didn't mention.

00:32:02.591 --> 00:32:05.441
<v Wes>Yeah, well, you set up this whole thing and there's not a dashboard that's specifically

00:32:05.441 --> 00:32:06.691
<v Wes>for dashboarding metrics.

00:32:06.691 --> 00:32:12.021
<v Chris>Right. It's neat. It is neat. It is neat. It is neat. And then I want to give

00:32:12.021 --> 00:32:14.267
<v Chris>an honorable mention before Brent's.

00:32:15.781 --> 00:32:19.939
<v Chris>Jelly Swarm. Now, all of these have been like a Plex Jellyfin combo,

00:32:19.939 --> 00:32:22.269
<v Chris>but Jelly Swarm is unique to Jellyfin.

00:32:22.269 --> 00:32:24.628
<v Chris>We've mentioned on the show before, so it's just an honorable mention,

00:32:25.133 --> 00:32:29.669
<v Chris>but it's a way to essentially bring a bunch of private Jellyfin servers and

00:32:29.669 --> 00:32:31.983
<v Chris>then expose them through a single login.

00:32:32.337 --> 00:32:36.779
<v Chris>And then they, it's like for me, it's great for when I'm traveling because I

00:32:36.779 --> 00:32:38.914
<v Chris>can watch my private Jellyfin server through the swarm.

00:32:39.164 --> 00:32:43.192
<v Chris>I just turn on a little tunnel, the tunnel activates, my swarm works,

00:32:43.454 --> 00:32:47.331
<v Chris>and I can watch it from anywhere. So Jelly Swarm had to give an honorable mention for that.

00:32:47.958 --> 00:32:51.325
<v Chris>But Brent, I saw you had one in here you wanted to sneak in too that I don't think I've seen before.

00:32:51.540 --> 00:32:56.049
<v Brent>Yeah, I did sneak in one here. This is a tool that's Jellyfin only as well,

00:32:56.489 --> 00:33:03.469
<v Brent>but I've started using it to have declarative configuration management for my Jellyfin servers.

00:33:03.469 --> 00:33:08.054
<v Brent>Well, server, but I should really apply it to the other one that I found recently somewhere.

00:33:08.466 --> 00:33:16.529
<v Brent>And it is just the idea to bring the same declarative mindset that I have deploying

00:33:16.529 --> 00:33:20.104
<v Brent>Jellyfin on Nix OS to the actual Jellyfin configuration.

00:33:20.622 --> 00:33:25.770
<v Brent>And it's a little tool that's fairly simple, and it uses Jellyfin's REST API

00:33:26.003 --> 00:33:27.930
<v Brent>just to change configurations as it goes.

00:33:28.551 --> 00:33:32.559
<v Brent>And you can version control everything because they're just a bunch of YAML

00:33:32.559 --> 00:33:38.629
<v Brent>files. And I found that a nice way to just complement NixOS and throw the Jellyfin

00:33:38.629 --> 00:33:42.257
<v Brent>configuration sort of into my own NixOS config too.

00:33:42.425 --> 00:33:48.699
<v Chris>I like that. One of the things I did in my prototype setup that I think is like

00:33:48.699 --> 00:33:54.729
<v Chris>the model I'm going to use forward is I use Nix and SOPs on the back end to manage the secrets.

00:33:54.729 --> 00:34:00.399
<v Chris>And so I can declaratively integrate all of these various services and the API

00:34:00.399 --> 00:34:01.608
<v Chris>keys they need with each other.

00:34:02.625 --> 00:34:07.451
<v Chris>can be done declaratively in a way that doesn't expose the api keys and so when

00:34:07.451 --> 00:34:10.931
<v Chris>the services start i don't have to go into the web ui and say okay my url is

00:34:10.931 --> 00:34:14.231
<v Chris>this for my jellyfin server and this is your api key and then go to the next

00:34:14.231 --> 00:34:17.171
<v Chris>service okay the url for sab nzb is this and this is your,

00:34:17.823 --> 00:34:22.021
<v Chris>you know you don't have to do any of that because it's all just set up in the config yeah that's the.

00:34:22.021 --> 00:34:26.671
<v Wes>Thing about having that real config programming language uh you know i think

00:34:26.671 --> 00:34:30.011
<v Wes>it's retired now but the nix bitcoin project did this really well as well right

00:34:30.011 --> 00:34:33.941
<v Wes>kind of showing you can because you have access to actually dig into the stuff you can tie it all.

00:34:33.941 --> 00:34:37.181
<v Chris>Together on at build time if people are interested in that boost in and let

00:34:37.181 --> 00:34:39.992
<v Chris>me know and i'll try to make like a anonymized version,

00:34:40.654 --> 00:34:44.651
<v Chris>of that and try to pull that out before i shut that box down because uh it,

00:34:45.271 --> 00:34:48.181
<v Chris>i think it's i think it's pretty neat i'm not sure how much interest there is

00:34:48.181 --> 00:34:53.551
<v Chris>in it um i'm loving 12 i'm loving the update i'm feeling really really good

00:34:53.551 --> 00:34:56.081
<v Chris>about jellyfin you know i wasn't sure through the summer but i think they're

00:34:56.081 --> 00:34:57.388
<v Chris>showing that they're sticking to it,

00:34:57.893 --> 00:35:03.061
<v Chris>they're delivering and it doesn't have to be crazy flashy right like a jellyfin

00:35:03.061 --> 00:35:07.675
<v Chris>update doesn't integrate some new free tv plex type streaming service it's just,

00:35:08.145 --> 00:35:11.611
<v Chris>cleaning up the database and solving problems and making playlists generate

00:35:11.611 --> 00:35:14.961
<v Chris>better and actual good movie recommendations and.

00:35:14.961 --> 00:35:18.991
<v Wes>It's nailing the stuff it's it's already really good at but taken to the next.

00:35:18.991 --> 00:35:24.901
<v Chris>Level i want every single time i hit play i want it to play every time i hit

00:35:24.901 --> 00:35:30.061
<v Chris>pause i want to pause and every time i hit resume i want to resume every time no No weird sync issues.

00:35:30.061 --> 00:35:33.757
<v Wes>No weird glitches, not subtitles that get overly burned in. Right.

00:35:33.896 --> 00:35:38.447
<v Chris>And every time, that's why I do local media, right? Just to increase the odds.

00:35:38.679 --> 00:35:40.701
<v Chris>Because I don't want the network to be affected. There's no buffering.

00:35:40.701 --> 00:35:41.521
<v Wes>There's no... Yeah.

00:35:41.521 --> 00:35:44.478
<v Chris>So every release like this gets me closer to the stream.

00:35:44.734 --> 00:35:49.671
<v Chris>And I have been going at this since the 90s, boys. And this is really,

00:35:49.671 --> 00:35:51.751
<v Chris>this is the best I think we've had it.

00:35:52.871 --> 00:35:56.841
<v Wes>Nothing quite official, but it does look like maybe coming to the next major

00:35:56.841 --> 00:35:58.479
<v Wes>version could be a scanner rewrite. Right.

00:36:00.331 --> 00:36:02.775
<v Wes>Take that library to the next level. Faster import.

00:36:03.454 --> 00:36:05.787
<v Chris>Where we're going, we don't need roads.

00:36:15.209 --> 00:36:21.972
<v Brent>We received some great feedback this week. This one in particular from Sfigula. I apologize in advance.

00:36:22.795 --> 00:36:26.128
<v Brent>They suggest a little tool here, Smriti.

00:36:27.235 --> 00:36:30.186
<v Brent>Well, I'm the first to probably say it, so Smriti is what we're going to call it.

00:36:30.459 --> 00:36:34.835
<v Brent>A free open source desktop photo library, which is done in Apache 2.

00:36:34.835 --> 00:36:39.747
<v Brent>It's basically for Linux, Windows, and macOS. It runs with no server,

00:36:39.944 --> 00:36:46.544
<v Brent>no Docker, no accounts, and it's deliberately just contrasts image and photoprism.

00:36:47.908 --> 00:36:53.755
<v Brent>It simply indexes external drives in place, runs with face recognition on device

00:36:53.755 --> 00:36:56.525
<v Brent>as well, and imports Google Photo takeout natively.

00:36:56.675 --> 00:37:00.173
<v Chris>Oh, okay. So you could bring your photo library in from Googs,

00:37:00.312 --> 00:37:02.280
<v Chris>and it does on-device face.

00:37:03.335 --> 00:37:04.695
<v Chris>I like on-device face.

00:37:04.695 --> 00:37:07.635
<v Wes>You know, maybe you don't need a whole server setup for how you're trying to

00:37:07.635 --> 00:37:11.135
<v Wes>manage it. You got some backups or whatever, but you have something more like

00:37:11.135 --> 00:37:13.675
<v Wes>a workstation. You want to be able to interactively work with your files.

00:37:14.375 --> 00:37:19.080
<v Wes>I don't know. I saw this come in the old inbox, and it made me think of our buddy Brad here.

00:37:19.208 --> 00:37:23.538
<v Chris>Yeah. Brad, you used to dabble, as they say, with the photos.

00:37:23.706 --> 00:37:27.927
<v Brent>Dabbles. I did dabbles for, I don't know, 20 years or something like that.

00:37:28.612 --> 00:37:30.385
<v Chris>Put that hat on for a moment and

00:37:30.385 --> 00:37:33.830
<v Chris>pontificate on this app. What does that version of you think about this?

00:37:34.330 --> 00:37:39.265
<v Brent>When I was doing photography professionally, I, as you may recall,

00:37:39.265 --> 00:37:42.224
<v Brent>had drives and drives and drives and drives filled with photos and,

00:37:43.431 --> 00:37:48.700
<v Brent>And a lot of the time, it was impossible to keep all of those in a library and

00:37:48.700 --> 00:37:50.211
<v Brent>have access to them constantly.

00:37:51.020 --> 00:37:57.260
<v Brent>So had this particular tool existed when I was doing photography full time,

00:37:57.260 --> 00:37:58.999
<v Brent>I would have used the heck out of this.

00:37:59.346 --> 00:38:05.350
<v Brent>Because one of the things that I always wish I could have and never did was

00:38:05.350 --> 00:38:09.940
<v Brent>quick search throughout all of my libraries to find related content.

00:38:10.260 --> 00:38:14.690
<v Brent>or, you know, several jobs from several clients across multiple hard drives.

00:38:14.690 --> 00:38:20.100
<v Brent>Those kind of questions that you want to answer and you want them to be answered

00:38:20.100 --> 00:38:21.521
<v Brent>quickly, but also visually.

00:38:22.300 --> 00:38:26.055
<v Brent>So I would have used the heck out of this. And one thing I really like here,

00:38:26.572 --> 00:38:29.092
<v Brent>is kind of the sidecar idea.

00:38:29.218 --> 00:38:34.270
<v Brent>So one of the descriptions of how it works is the catalog is a SQLite database

00:38:34.270 --> 00:38:38.878
<v Brent>kept on the very same drive as the photos. So the library itself travels with the drive.

00:38:39.754 --> 00:38:42.320
<v Chris>And that would be really handy for the way you used to your work.

00:38:42.320 --> 00:38:46.240
<v Brent>Yeah. I mean, the way I used to do it is not necessarily ideal,

00:38:46.240 --> 00:38:50.487
<v Brent>but I know a ton of photographers who just plug in drives.

00:38:50.905 --> 00:38:53.150
<v Chris>Right. And this is for this project. Right.

00:38:53.150 --> 00:38:57.754
<v Brent>Yeah. And then move on to the next drive. And so to have the ability to just

00:38:57.946 --> 00:39:01.790
<v Brent>plug it in and have all of your face recognition, everything just work is I

00:39:01.790 --> 00:39:04.860
<v Brent>think really nice. So I like how this is set up.

00:39:05.359 --> 00:39:08.220
<v Chris>I could see this too for like, if you're going back to the archiving to say

00:39:08.220 --> 00:39:09.350
<v Chris>Blu-ray or something like that.

00:39:09.350 --> 00:39:09.700
<v Wes>Yeah.

00:39:09.700 --> 00:39:12.320
<v Chris>And then you just create a photo library per disc.

00:39:12.320 --> 00:39:12.800
<v Brent>That's nice.

00:39:13.060 --> 00:39:15.193
<v Chris>With all of it. Yeah. That's very cool.

00:39:15.315 --> 00:39:19.290
<v Wes>You know, having now been to Brent's and seen his collection of hard drives,

00:39:19.290 --> 00:39:21.390
<v Wes>it kind of hits a little closer to home.

00:39:21.740 --> 00:39:24.870
<v Chris>Yeah, well, we know this is true. We know he's not kidding at all.

00:39:29.258 --> 00:39:33.130
<v Chris>yeah we got some support this episode and our first boost is our baller boost

00:39:33.130 --> 00:39:40.659
<v Chris>from jk who comes in with a mega 222 222 satoshis,

00:39:54.027 --> 00:39:58.955
<v Chris>I self-host a small and JK Wright's always unfinished work-in-progress site

00:39:58.955 --> 00:40:01.341
<v Chris>about myself and a few useful tools for me.

00:40:01.457 --> 00:40:02.715
<v Wes>We don't identify with that at all.

00:40:04.830 --> 00:40:08.605
<v Chris>I always wished I had used the static inside. Instead, this episode inspired

00:40:08.605 --> 00:40:13.032
<v Chris>me. Claude and I went through the site a bit by bit and replaced it all in Zola.

00:40:13.334 --> 00:40:13.455
<v Brent>Wow.

00:40:13.635 --> 00:40:14.515
<v Chris>That's great.

00:40:14.935 --> 00:40:15.485
<v Brent>Nice.

00:40:15.485 --> 00:40:17.695
<v Wes>Gives us a little side-by-side comparison link.

00:40:17.695 --> 00:40:18.445
<v Chris>What do you think?

00:40:18.445 --> 00:40:21.355
<v Wes>I mean, it looks good. You know, there's some slight differences,

00:40:21.355 --> 00:40:23.925
<v Wes>but if anything, the Zola one looks even better.

00:40:23.925 --> 00:40:27.835
<v Chris>Yeah, I agree. I agree. I agree. Well done, sir. Also,

00:40:30.209 --> 00:40:35.915
<v Chris>I would feel so relieved. If I knew my doctor was doing this, right?

00:40:36.315 --> 00:40:38.665
<v Chris>If I had a doctor that was building static websites with Zola,

00:40:38.665 --> 00:40:40.449
<v Chris>I'd be like, yeah, I made the right choice.

00:40:41.835 --> 00:40:44.652
<v Chris>I know it's not related to the profession directly, but if they can figure that out.

00:40:44.925 --> 00:40:45.555
<v Wes>Some good brains.

00:40:45.555 --> 00:40:49.986
<v Chris>Yeah. Thank you very much, JK. Appreciate you.

00:40:50.595 --> 00:40:54.815
<v Wes>Spooky Satcom comes in with 12,345 cents.

00:41:00.528 --> 00:41:03.642
<v Wes>Any thoughts on interviews with Michael Larable from Pharonix,

00:41:03.642 --> 00:41:07.831
<v Wes>Wendell from Level 1 Tech, or Patrick from Serve the Home?

00:41:08.052 --> 00:41:12.402
<v Wes>Opportunity to hear from the Linux community outside a focus on a specific OS.

00:41:12.402 --> 00:41:16.742
<v Chris>I like all those. You know, we have had Michael Larable on Linux Action News

00:41:16.742 --> 00:41:18.507
<v Chris>forever ago. It would be fun to catch up with him.

00:41:18.843 --> 00:41:21.392
<v Chris>It's funny you mention Wendell. I was thinking about Wendell recently,

00:41:21.392 --> 00:41:27.632
<v Chris>too, because he just did that video with Gamer Nexus on the LG televisions.

00:41:27.992 --> 00:41:30.476
<v Chris>Ooh, that was a wild one.

00:41:30.958 --> 00:41:33.892
<v Chris>That's, yeah, it's like almost 8 million views now. And I watched the whole

00:41:33.892 --> 00:41:36.386
<v Chris>video and I'm very disappointed in LG, seemingly.

00:41:37.232 --> 00:41:40.132
<v Chris>So, yeah, they've been on my mind. I think those are all really good suggestions.

00:41:40.132 --> 00:41:44.332
<v Chris>I could see us, it's been a little while. I could see us doing a little round of interviews.

00:41:44.332 --> 00:41:45.028
<v Wes>It does sound like fun.

00:41:46.061 --> 00:41:48.932
<v Chris>Could be a good thing if we needed a cover episode for our trip to Texas Linux

00:41:48.932 --> 00:41:53.166
<v Chris>Fest if we are doing a race. Yeah. All right. All right.

00:41:53.294 --> 00:41:54.002
<v Wes>Thanks, Spooky.

00:41:54.002 --> 00:41:54.723
<v Chris>Yeah, appreciate it.

00:41:55.801 --> 00:41:59.570
<v Brent>I'll take these next two. First one, Gene Bean with a row of ducks.

00:42:01.265 --> 00:42:05.984
<v Brent>Gene says, hey, Brent, the new site looks great. Well, thank you, Gene.

00:42:07.812 --> 00:42:13.855
<v Brent>And Magnolia Mayhem sends in nearly the same, but this is 2,223 Satoshis.

00:42:17.664 --> 00:42:19.190
<v Brent>A nice little side effect of the

00:42:19.190 --> 00:42:22.930
<v Brent>AI era is that we get to hear all of the projects everyone has started.

00:42:23.393 --> 00:42:27.909
<v Brent>It is a really beautiful thing that I think ties into the FOSS world.

00:42:28.449 --> 00:42:32.070
<v Brent>We've almost reached a point where if you don't like that some software isn't

00:42:32.070 --> 00:42:37.010
<v Brent>available on Linux or BSD or Haiku or whatever, the possibility of bundling

00:42:37.010 --> 00:42:38.713
<v Brent>it yourself is quite available to you.

00:42:39.177 --> 00:42:44.005
<v Brent>Of course, there will always be legal restraints, but those are a lot less prominent than they seem.

00:42:44.405 --> 00:42:48.590
<v Brent>I don't think Microsoft is going to kick in your door for aping.

00:42:48.790 --> 00:42:52.570
<v Chris>Aping something they charge $300 for when you're just using it on your own personal computer. Yeah.

00:42:54.239 --> 00:42:56.210
<v Wes>What I'm saying is.

00:42:56.210 --> 00:42:58.030
<v Chris>Yeah. Don't tease them about it. Yeah.

00:42:58.860 --> 00:43:01.710
<v Brent>So Magnolia wants to keep hearing about all these projects.

00:43:02.122 --> 00:43:06.320
<v Chris>Thank you, Mayhem. It is. Did you guys see there's some video out there about

00:43:06.320 --> 00:43:09.670
<v Chris>the Vibe OS where essentially the entire UI is constantly being Vibe?

00:43:09.670 --> 00:43:10.946
<v Brent>Isn't that what you're doing?

00:43:11.404 --> 00:43:16.120
<v Chris>He just vibes Office. It's so funny. So funny. All right. I'm going to take

00:43:16.120 --> 00:43:21.400
<v Chris>this next one. Here we go. Rod Palmer comes in with 10,000 Satoshis.

00:43:23.583 --> 00:43:28.744
<v Chris>And Rod remembers the cursed entropy period. We all remember. We all remember.

00:43:29.731 --> 00:43:34.460
<v Chris>We all learned a lesson there. Make sure you have good entropy. Casino-grade dice.

00:43:34.460 --> 00:43:35.025
<v Wes>That's it.

00:43:35.222 --> 00:43:38.932
<v Chris>Or get out of here. Casino-grade dice or get out of here. I want to hear it.

00:43:39.315 --> 00:43:40.490
<v Chris>I want you rolling your dice.

00:43:40.490 --> 00:43:41.612
<v Wes>You got a favorite brand?

00:43:42.553 --> 00:43:44.570
<v Chris>Casino-grade? Yeah.

00:43:45.750 --> 00:43:46.790
<v Wes>Checks out. Yeah, it's a good one.

00:43:47.970 --> 00:43:48.729
<v Chris>Yeah, okay.

00:43:50.030 --> 00:43:53.690
<v Wes>Devitois boosts in with 9,001. One Satoshi's.

00:43:53.690 --> 00:43:55.097
<v Chris>Hey, that's also over 9,000.

00:43:56.548 --> 00:43:58.280
<v Wes>No message found, just the value.

00:43:58.280 --> 00:43:59.100
<v Chris>Oh, thank you.

00:43:59.100 --> 00:44:01.837
<v Wes>But Permissionless Pete comes in with a row of ducks.

00:44:02.168 --> 00:44:03.207
<v Chris>That's a good name.

00:44:03.689 --> 00:44:07.450
<v Wes>First boost from Podverse connected to a self-hosted Albiehub.

00:44:07.450 --> 00:44:09.615
<v Chris>Get on! Nice! Good job!

00:44:10.544 --> 00:44:14.000
<v Wes>If you can hear this, the sats escaped my basement and made it to the feed.

00:44:14.000 --> 00:44:14.500
<v Chris>They did.

00:44:14.500 --> 00:44:15.330
<v Wes>They sure did. Thank you.

00:44:15.450 --> 00:44:17.030
<v Chris>Isn't that fun? That is really fun.

00:44:17.030 --> 00:44:17.800
<v Wes>The sats must flow.

00:44:17.800 --> 00:44:19.205
<v Chris>Mm-hmm. Mm-hmm.

00:44:19.954 --> 00:44:25.573
<v Brent>Well, Dan Oselty boosted in a total of 15,936 sets.

00:44:28.423 --> 00:44:31.683
<v Brent>One of the messages, no message on that particular one, but thank you.

00:44:31.683 --> 00:44:35.493
<v Brent>And the second one, sorry, chaps. Time to uninstall Fountain.

00:44:35.870 --> 00:44:41.783
<v Brent>The app is going from bad to somewhat worse with random crashes and random start

00:44:41.783 --> 00:44:43.485
<v Brent>playings. Well, that's an interesting one.

00:44:44.089 --> 00:44:48.753
<v Brent>Here's all my sats then. I know you'll investigate getting a membership.

00:44:49.546 --> 00:44:54.463
<v Chris>You know, random start plays reminds me of the YouTube app.

00:44:55.673 --> 00:45:00.013
<v Chris>I cannot believe. I'll lock the screen and a video will just start playing if,

00:45:00.953 --> 00:45:02.915
<v Chris>I have the YouTube active or something.

00:45:03.217 --> 00:45:08.173
<v Chris>And there must be 25,000 different foot guns in the UI where I can be trying

00:45:08.173 --> 00:45:11.663
<v Chris>to listen to a video just like I'll have it on the table.

00:45:11.663 --> 00:45:15.993
<v Chris>But my hand will come in within a millimeter and disturb the quantum field of

00:45:15.993 --> 00:45:18.408
<v Chris>my phone and it activates the next video.

00:45:18.594 --> 00:45:20.719
<v Chris>It's unbelievable. So I get you if you get frustrated.

00:45:21.049 --> 00:45:26.315
<v Chris>Don't forget, Dano, boost.jupiterbroadcasting.com. You can boost from the web.

00:45:27.447 --> 00:45:32.212
<v Chris>Mayhem's back with another row of Ducos. I might not be a thousandaire,

00:45:32.764 --> 00:45:35.013
<v Chris>but this is what I got to give. Oh, thank you, Mayhem.

00:45:35.013 --> 00:45:35.703
<v Wes>We sure appreciate it.

00:45:35.703 --> 00:45:35.923
<v Chris>We do.

00:45:35.923 --> 00:45:36.393
<v Brent>Thanks.

00:45:36.393 --> 00:45:40.433
<v Chris>You know, it makes a difference. It really does because everything,

00:45:40.753 --> 00:45:43.641
<v Chris>that could be an appetizer at some point. Who knows? You know?

00:45:44.077 --> 00:45:46.259
<v Chris>Or maybe like a little protein bar for Brent.

00:45:46.886 --> 00:45:53.005
<v Chris>Could be that too. David G. came in with $10 and he says, I work on running a cornhole tournament.

00:45:53.446 --> 00:45:59.063
<v Chris>I thought I would give Zola a try So, oh, okay Alright, I'll use Hermes during

00:45:59.063 --> 00:46:03.723
<v Chris>the match To orchestrate publishing to the main Mark scores and update the brackets.

00:46:03.723 --> 00:46:05.163
<v Wes>There's a whole bracket here.

00:46:05.163 --> 00:46:06.768
<v Chris>Cornhole brackets, huh?

00:46:07.018 --> 00:46:09.343
<v Brent>This is impressive How do you make this in Zola?

00:46:09.343 --> 00:46:14.803
<v Chris>And like a real nerd, he's got it up on GitHub too That's so great Cornhole

00:46:14.803 --> 00:46:16.583
<v Chris>brackets Zola up there on the GitHub.

00:46:16.583 --> 00:46:19.873
<v Brent>There's a little note at the bottom of the website I like here Powered by dried,

00:46:19.873 --> 00:46:23.653
<v Brent>great, northern beans All other beans will not do Dude.

00:46:23.653 --> 00:46:25.170
<v Chris>The bracket page looks great,

00:46:27.184 --> 00:46:28.640
<v Chris>We should come up with a bracket thing.

00:46:28.640 --> 00:46:29.430
<v Wes>We need some championships.

00:46:29.430 --> 00:46:34.500
<v Chris>We need a bracket thing. Bracket things are fun. The sports guys get to do bracket things all the time.

00:46:34.610 --> 00:46:35.520
<v Wes>We don't get any brackets.

00:46:35.520 --> 00:46:37.637
<v Chris>No. Thank you, David. Appreciate that.

00:46:37.765 --> 00:46:38.740
<v Brent>Impressive.

00:46:39.310 --> 00:46:44.168
<v Wes>Well, KMogged comes in with some member-free boosts. Commodore has rebooted.

00:46:44.359 --> 00:46:48.340
<v Wes>Check out Commodore.net, where you can pick up a Commodore 64 Ultimate.

00:46:48.340 --> 00:46:48.700
<v Brent>What?

00:46:48.700 --> 00:46:50.360
<v Wes>I have one.

00:46:50.360 --> 00:46:50.470
<v Chris>What?

00:46:51.093 --> 00:46:56.820
<v Wes>I have one, and it's a faithful recreation of the original Commodore 64 with a ring binder manual.

00:46:56.820 --> 00:46:57.259
<v Chris>No way.

00:46:57.391 --> 00:46:58.768
<v Wes>They're also launching a flip phone.

00:46:59.950 --> 00:47:01.790
<v Brent>What is happening these days?

00:47:01.790 --> 00:47:02.070
<v Wes>I don't know.

00:47:02.070 --> 00:47:05.013
<v Chris>How do you go from a retro Commodore 64 to a...

00:47:05.199 --> 00:47:06.170
<v Wes>Is it just the same board on both?

00:47:06.350 --> 00:47:08.330
<v Chris>Are you telling me this thing? You're telling me you can get a computer that

00:47:08.330 --> 00:47:09.460
<v Chris>runs off cassette tapes?

00:47:10.284 --> 00:47:10.910
<v Wes>And also a flip phone.

00:47:10.910 --> 00:47:11.521
<v Chris>And a flip phone?

00:47:12.461 --> 00:47:15.150
<v Wes>Well, working on, I guess. I don't know if it's launched or launching.

00:47:15.150 --> 00:47:17.660
<v Chris>I just saw a picture of it. It actually looks kind of cool.

00:47:17.660 --> 00:47:18.499
<v Wes>It does look cool.

00:47:19.450 --> 00:47:22.573
<v Chris>Yeah, look at that, actually. The flip, $399 for a flippy.

00:47:23.607 --> 00:47:24.620
<v Wes>Less scroll, more slow.

00:47:24.650 --> 00:47:31.078
<v Chris>It's got a little antenna. it's got a antenna is this like an actual big buttons yeah headphone jack,

00:47:32.128 --> 00:47:33.340
<v Chris>I actually think this is really cool.

00:47:33.927 --> 00:47:36.276
<v Wes>Okay, well, you'll like this other member boost from KMog then.

00:47:36.276 --> 00:47:36.957
<v Chris>Okay, all right.

00:47:37.996 --> 00:47:42.946
<v Wes>I don't want to hate on Nextcloud, but I slowly started replacing components

00:47:42.946 --> 00:47:44.636
<v Wes>of Nextcloud a while ago.

00:47:44.636 --> 00:47:45.096
<v Chris>Oh, really?

00:47:45.396 --> 00:47:48.776
<v Wes>I didn't like the idea of one PHP app failing and taking down a mess of services.

00:47:49.296 --> 00:47:53.936
<v Wes>Image replaced photos. Melee replaced cookbook. Now I'm migrating deck to Vicuna,

00:47:54.636 --> 00:47:55.980
<v Wes>and notes to LibreNotes.

00:47:56.450 --> 00:48:00.223
<v Chris>I'm going to look into Vicuna, a task manager you actually own.

00:48:00.334 --> 00:48:01.676
<v Wes>Oh, that sounds interesting.

00:48:01.676 --> 00:48:04.978
<v Chris>Brent, you're supposed to be our task manager guy.

00:48:05.523 --> 00:48:09.366
<v Brent>Well, I think Jeff has taken me on this one. He came up with a few nice ones

00:48:09.366 --> 00:48:12.524
<v Brent>recently. Is Vicuna one of them, Jeff? I don't know.

00:48:13.110 --> 00:48:16.236
<v Chris>It does look good. It looks really good. That's a good tip.

00:48:16.236 --> 00:48:17.696
<v Brent>That does look great.

00:48:17.696 --> 00:48:22.509
<v Chris>We should put a link to that in the show notes. So people, V-I-K-U-N-J-A.

00:48:23.060 --> 00:48:25.556
<v Wes>Look, if I don't own the task manager, I'm not going to get the task done.

00:48:25.556 --> 00:48:25.881
<v Chris>Right.

00:48:26.473 --> 00:48:26.996
<v Brent>It's only fair.

00:48:26.996 --> 00:48:27.476
<v Chris>That's the thing.

00:48:27.476 --> 00:48:29.684
<v Wes>I mean, I might not anyway, but, you know, to have a chance.

00:48:29.939 --> 00:48:32.656
<v Chris>Well, yeah. Yeah, I mean, if you don't, that's a whole other reason,

00:48:32.656 --> 00:48:34.886
<v Chris>but we'll come up for an excuse for that when the time comes.

00:48:34.886 --> 00:48:36.178
<v Chris>We don't have to solve that right now.

00:48:37.670 --> 00:48:43.707
<v Chris>We have a member booth from Wine Eagle coming in with just a simple message.

00:48:45.547 --> 00:48:48.376
<v Chris>Hello, world. Yes, thank you, Wine Eagle.

00:48:48.376 --> 00:48:50.716
<v Wes>Are you sure you didn't have some of the wine from the Wine Eagle?

00:48:50.716 --> 00:48:54.952
<v Chris>I wish. We've never, ever had wine during the show.

00:48:56.240 --> 00:48:57.296
<v Brent>There's been cider.

00:48:58.080 --> 00:48:59.856
<v Chris>There's been ciders, yeah. There's been ciders.

00:48:59.856 --> 00:49:01.816
<v Brent>Has there been mead? Have we had mead before?

00:49:02.116 --> 00:49:04.971
<v Chris>But there's, this isn't, there's never been, there's never been wine.

00:49:05.151 --> 00:49:05.493
<v Brent>Hmm.

00:49:08.152 --> 00:49:11.431
<v Chris>And Paul comes in with a free member boost. Web interface isn't particularly

00:49:11.431 --> 00:49:14.201
<v Chris>nice, but check out Automatic Ripping Machine.

00:49:14.561 --> 00:49:17.598
<v Chris>It automates make MKV automatically.

00:49:17.940 --> 00:49:21.331
<v Wes>Yeah, Pixie came in to say the very same. Just using that free member boost

00:49:21.331 --> 00:49:26.041
<v Wes>to mention your members-only pre-show discussion, you need to look at ARM Automatic Ripping Machine.

00:49:26.041 --> 00:49:26.801
<v Chris>All right.

00:49:26.801 --> 00:49:27.872
<v Wes>Member perks are old.

00:49:28.641 --> 00:49:33.061
<v Chris>Thank you, and I will. Detects disk, determines disk type, Blu-ray, DVD, etc.

00:49:33.481 --> 00:49:36.401
<v Wes>Oh, you know, digital jote comes in to say the same.

00:49:36.401 --> 00:49:37.261
<v Chris>Listening to the pre-show.

00:49:37.261 --> 00:49:41.931
<v Wes>You were looking at something to auto rip blu-ray dvd cd it sounds like you need automatic ripping.

00:49:41.931 --> 00:49:46.011
<v Chris>Machine thank you guys that's a strong recommendation i when we get multiple

00:49:46.011 --> 00:49:48.251
<v Chris>like that i appreciate that because it's like okay there's some signal.

00:49:48.251 --> 00:49:51.829
<v Wes>Digital also sends us a video tutorial should you want that.

00:49:52.443 --> 00:49:55.771
<v Chris>Thank you yeah so i'm working on a way to make friends and family to be able

00:49:55.771 --> 00:50:00.431
<v Chris>to take the dvds that they already legally own and add them to the media server

00:50:00.431 --> 00:50:03.873
<v Chris>in a way that they don't have to give me the dvd and be like go rip it please

00:50:03.873 --> 00:50:05.754
<v Chris>because then And I just rip into stuff.

00:50:06.694 --> 00:50:09.141
<v Chris>But if they could have like a little web UI, they pop the disk in,

00:50:09.141 --> 00:50:11.851
<v Chris>it uploads it on the back end. I think, well, that'd be chef's kiss.

00:50:11.851 --> 00:50:14.061
<v Chris>So I really do appreciate that.

00:50:14.521 --> 00:50:17.991
<v Chris>And then Anonymous comes in. Says for Bitwarden, after you press Control-Shift-L

00:50:17.991 --> 00:50:22.521
<v Chris>to autofill, you can then press Control-V to paste your TOTP code,

00:50:22.521 --> 00:50:25.979
<v Chris>which I don't use Bitwarden for. But I have been considering.

00:50:26.820 --> 00:50:27.749
<v Chris>I have been considering. Yeah.

00:50:29.101 --> 00:50:33.948
<v Chris>Scuff says, regarding OpenMouse, if you're on the Logitech ecosystem like me, check out OpenLogic.

00:50:34.377 --> 00:50:39.970
<v Chris>Replaces Logi Options Plus, and it's written in Rust. Yeah, OpenLogic was almost a pick one week.

00:50:39.970 --> 00:50:40.650
<v Wes>It was.

00:50:41.535 --> 00:50:44.275
<v Chris>We missed it. But yeah, plus one for OpenLogic.

00:50:45.303 --> 00:50:49.410
<v Wes>BeardedZero comes in to say, I called in as well, but I thought it may be helpful

00:50:49.410 --> 00:50:52.900
<v Wes>sooner rather than later. Check out this project. I think it does exactly what you want.

00:50:52.900 --> 00:50:55.170
<v Chris>Automatic ripping machine. That's right. Yes.

00:50:55.671 --> 00:50:59.154
<v Brent>I think that's what consensus looks like from the community.

00:51:00.090 --> 00:51:02.550
<v Wes>And then our final free member boost is from Otterbrain.

00:51:03.090 --> 00:51:04.123
<v Chris>Who's also in the Mupple Room.

00:51:04.366 --> 00:51:07.730
<v Wes>Thanks for the info on Zola. I need to get a personal website up and running,

00:51:07.730 --> 00:51:08.790
<v Wes>and I think this will help.

00:51:08.790 --> 00:51:12.850
<v Chris>I think it's the way. I think it is the way. I think it's the way to go.

00:51:12.850 --> 00:51:14.264
<v Wes>Simple, fast, well-documented.

00:51:14.450 --> 00:51:16.487
<v Chris>And easy-peasy fast, right?

00:51:17.712 --> 00:51:19.779
<v Brent>I'll report my website is still up, so there's that.

00:51:20.185 --> 00:51:24.080
<v Chris>That's good. Very good. Thank you, everybody who supported the show with a boost

00:51:24.080 --> 00:51:31.130
<v Chris>or a stream. We had 16 of you stream sats, and collectively you sat streamers stacked 29,333.

00:51:35.781 --> 00:51:40.268
<v Chris>When you bring it all together, boys, we stacked 321,656,

00:51:42.270 --> 00:51:46.090
<v Chris>satushers for this episode. Not too bad, but we'd love to get that number up

00:51:46.090 --> 00:51:48.958
<v Chris>and prep for Texas Linux fix. We're going, boys!

00:51:49.325 --> 00:51:52.662
<v Chris>Boost.jupiterbroadcasting.com, or become a member.

00:51:53.248 --> 00:51:56.923
<v Chris>put your support on autopilot we support and appreciate that too,

00:52:11.510 --> 00:52:16.444
<v Chris>All right, one on kind of topic pick. And then one not on topic.

00:52:17.716 --> 00:52:18.888
<v Chris>How do you think we say this one?

00:52:19.044 --> 00:52:19.786
<v Wes>Pelagica.

00:52:19.786 --> 00:52:24.047
<v Chris>Pelagica, a modern desktop and TV client for Yellyfin.

00:52:24.662 --> 00:52:28.645
<v Chris>It's a web desktop and TV client for Yellyfin built in React.

00:52:29.028 --> 00:52:32.946
<v Chris>It aims to provide fast, modern, and customizable user experience for browsing

00:52:32.946 --> 00:52:34.084
<v Chris>and watching your media.

00:52:34.583 --> 00:52:37.546
<v Chris>It has a couple of things I like a lot about it, including the video player

00:52:37.546 --> 00:52:39.552
<v Chris>integration and the way they've implemented it.

00:52:41.207 --> 00:52:45.396
<v Chris>i really like this it has integrated support for seer which i mentioned earlier

00:52:45.396 --> 00:52:51.987
<v Chris>for the request and discovery service yes right in integrated into the ui brilliant,

00:52:52.608 --> 00:52:56.503
<v Chris>it supports stream stats so you can get stream analytics and recommendations on the home page,

00:52:57.199 --> 00:53:01.836
<v Chris>and then don't know what the what the uh but they have a watch list system too

00:53:01.836 --> 00:53:07.996
<v Chris>that i'm not familiar with but that i that looks nice I think also worth noting, nice design as well.

00:53:07.996 --> 00:53:11.536
<v Wes>Yeah, it looks very shiny. Pretty kind of, you know, not dissimilar,

00:53:11.536 --> 00:53:15.021
<v Wes>but a little bit of a different take on what the stock Jolly Venue looks like.

00:53:15.781 --> 00:53:19.293
<v Chris>Big picture style, you know, like far away kind of.

00:53:19.821 --> 00:53:23.796
<v Chris>But it's also, it's in various versions. The thing that I thought I saw in here,

00:53:23.796 --> 00:53:26.153
<v Chris>I just want to double check. Yeah, okay, check this out.

00:53:28.029 --> 00:53:32.396
<v Chris>Native app for Tizen and WebOS TVs, as well as Apple TV.

00:53:32.396 --> 00:53:33.573
<v Wes>Yeah, isn't that interesting?

00:53:33.968 --> 00:53:41.189
<v Chris>That's huge, you guys. Very, very, very few native Jellyfin apps for the Tizen and WebOS.

00:53:42.016 --> 00:53:46.516
<v Chris>We see this when we go to stay at an event in the Airbnb. The only thing you

00:53:46.516 --> 00:53:49.229
<v Chris>could ever install from their stores usually is Plex.

00:53:50.236 --> 00:53:53.676
<v Chris>This is really good to see. So I think it's worth taking a search.

00:53:54.216 --> 00:53:55.456
<v Chris>Again, how would you say it, Wes?

00:53:55.456 --> 00:53:56.039
<v Wes>Pelagica.

00:53:56.422 --> 00:53:58.703
<v Chris>P-E-L-A-G-I-C-A.

00:53:59.028 --> 00:54:02.756
<v Wes>It also has a desktop app, which is kind of nice, right? Built with Wales V3.

00:54:02.756 --> 00:54:04.896
<v Wes>So you can see, too, maybe you're trying to build your own little media center

00:54:04.896 --> 00:54:06.308
<v Wes>thing and you want a desktop app.

00:54:07.242 --> 00:54:14.388
<v Chris>There you go. Okay. And then that's GPL3. And then our next pick is called Simply Tether.

00:54:15.096 --> 00:54:24.412
<v Chris>It is a shim, a system, a layer to try to bring macOS iPhone-like tethering to Linux.

00:54:25.027 --> 00:54:28.336
<v Chris>with Apple continuity and things like that. It is technically possible,

00:54:28.336 --> 00:54:29.996
<v Chris>all of the protocols and everything are there.

00:54:30.560 --> 00:54:34.856
<v Chris>So if you've maybe been on a Mac in the past, they have this system where if

00:54:34.856 --> 00:54:37.736
<v Chris>you have an iPhone nearby and you're somewhere without connectivity on your

00:54:37.736 --> 00:54:42.356
<v Chris>laptop on Mac OS, the iPhone will show up in the wifi menu, just connect and

00:54:42.356 --> 00:54:43.319
<v Chris>they automatically tether.

00:54:44.085 --> 00:54:49.461
<v Chris>And that's what they're trying to do now for Linux. So it's called tether and it's got, it's got,

00:54:51.399 --> 00:54:54.636
<v Chris>How many? 40 releases? Whoa. Way more releases than I expected.

00:54:54.636 --> 00:54:57.588
<v Chris>40 releases under its belt. That's a lot.

00:54:59.026 --> 00:55:02.666
<v Chris>So it's chugging right along. And they say they aim to bring all of the Apple

00:55:02.666 --> 00:55:05.506
<v Chris>continuity features on Linux that are technically possible.

00:55:05.842 --> 00:55:08.316
<v Chris>Oh, right. So it's also some of the clipboard stuff.

00:55:08.316 --> 00:55:13.786
<v Wes>Yes. They've got TetherD as a Linux demon that kind of runs and makes all this happen. Mostly C++.

00:55:14.746 --> 00:55:19.636
<v Chris>And they have like a little messages app too. I see I just looked at this in

00:55:19.636 --> 00:55:23.896
<v Chris>the context of internet connectivity but they're also doing file transfer browser

00:55:23.896 --> 00:55:28.578
<v Chris>extensions mail stuff phone calls airpods that's a lot yeah,

00:55:30.575 --> 00:55:32.595
<v Chris>There you go, Brent. That's fancy.

00:55:32.595 --> 00:55:33.942
<v Brent>That is very fancy.

00:55:35.185 --> 00:55:37.953
<v Chris>Now, do you have a sneaky? Who put the next sneaky pick in for us?

00:55:38.191 --> 00:55:39.185
<v Wes>I think that must be Brent.

00:55:39.323 --> 00:55:42.655
<v Brent>That's me. I ran into a pick this week that is quite old. I didn't know about.

00:55:42.655 --> 00:55:46.347
<v Brent>And I was like, I wish I had an app that was just like this one,

00:55:46.626 --> 00:55:47.897
<v Brent>accepted this function.

00:55:48.234 --> 00:55:51.205
<v Brent>And then I did a small search and it exists already. And I didn't know about

00:55:51.205 --> 00:55:54.021
<v Brent>it. And I should have for years now. So I'm going to mention it to everyone.

00:55:54.532 --> 00:55:58.135
<v Brent>So this particular app that I found, and if you found it before,

00:55:58.135 --> 00:55:59.182
<v Brent>shame on you for not sharing.

00:55:59.554 --> 00:56:04.565
<v Brent>It's called ICS-X5. Now, you may be familiar with DAV-X5.

00:56:04.565 --> 00:56:09.465
<v Brent>We've mentioned it several times on the show to do syncing with DAV-X on your

00:56:09.465 --> 00:56:14.225
<v Brent>Android phone. And then you can just get, like, calendars and contacts and things

00:56:14.225 --> 00:56:16.400
<v Brent>like that just natively on your Android phone.

00:56:16.857 --> 00:56:22.615
<v Brent>Well, I found a calendar. Well, I guess I found a new medical professional that

00:56:22.615 --> 00:56:27.608
<v Brent>is, like, really tech forward. And they had a calendar of my own appointments I can sign up for.

00:56:27.985 --> 00:56:28.844
<v Chris>Which is amazing.

00:56:29.901 --> 00:56:33.605
<v Brent>So I was like, oh, geez, I'm signing up to, you know, watch my own calendar

00:56:33.605 --> 00:56:36.365
<v Brent>because it can tell me when I booked appointments that I forgot about.

00:56:38.057 --> 00:56:41.295
<v Brent>And then I was like, oh, I couldn't figure out how to add this to any of like

00:56:41.295 --> 00:56:44.791
<v Brent>the calendar app. And then I went to DAVX5 because like surely they can do it.

00:56:45.551 --> 00:56:48.645
<v Brent>And that feature didn't exist. I was like, geez, I really wish I could just,

00:56:49.261 --> 00:56:53.109
<v Brent>plug a calendar like a .ics subscription.

00:56:53.928 --> 00:56:56.535
<v Brent>A lot of these apps allow you to bring in just a static file.

00:56:56.535 --> 00:56:59.669
<v Brent>But if you have something that dynamically changes, you need to update it every once in a while.

00:57:00.191 --> 00:57:04.435
<v Brent>Well, ICS X5 comes from the same people that do DevX5, and it does exactly that.

00:57:04.435 --> 00:57:06.966
<v Brent>So if you didn't know about it or you need that functionality,

00:57:07.517 --> 00:57:12.235
<v Brent>it's right there. It's been going for 10 and a half years, so somehow I missed that one.

00:57:12.235 --> 00:57:12.643
<v Chris>Okay.

00:57:12.753 --> 00:57:20.205
<v Brent>And it is GPL 3. So nice to shove on your phone for it, and you potentially

00:57:20.205 --> 00:57:21.227
<v Brent>need it in the future like I did.

00:57:21.384 --> 00:57:24.475
<v Wes>It must be getting a fair amount of active love, too, because it's now mostly

00:57:24.475 --> 00:57:26.285
<v Wes>Kotlin. And I'm not sure Kotlin even existed.

00:57:26.285 --> 00:57:28.617
<v Chris>That's the way it started. They took the time to rebuild it.

00:57:29.308 --> 00:57:34.306
<v Chris>And of course, I mean, GPL3 might not have been around when they first started either, possibly.

00:57:36.204 --> 00:57:40.430
<v Chris>We are. Some of us are that old. Believe it or not. Believe it or not.

00:57:40.837 --> 00:57:41.957
<v Chris>Well, nice find, Brantley.

00:57:42.154 --> 00:57:42.611
<v Brent>Well, thank you.

00:57:42.611 --> 00:57:45.272
<v Chris>And so it runs on device, right?

00:57:46.253 --> 00:57:48.111
<v Brent>It does completely run on device, yes.

00:57:48.859 --> 00:57:54.101
<v Chris>Okay. Very good. Well, I know DAVX is really good stuff, so I imagine that's

00:57:54.101 --> 00:57:55.099
<v Chris>probably pretty good stuff, too.

00:57:55.680 --> 00:58:00.521
<v Brent>It is as polished as DAVX is polished. It just works. You don't have to think

00:58:00.521 --> 00:58:04.251
<v Brent>about it. It's very streamlined, and it just, I don't know. It should be there

00:58:04.251 --> 00:58:06.895
<v Brent>by default, I think. but now you can just plug it in.

00:58:08.079 --> 00:58:11.028
<v Chris>Very good. I approve of that sneaky pick.

00:58:11.551 --> 00:58:15.321
<v Chris>Well done. Our picks, the sneaky ones included, and everything else we talked

00:58:15.321 --> 00:58:19.551
<v Chris>about are over at linuxunplugged.com slash 684.

00:58:19.771 --> 00:58:20.907
<v Chris>That's this episode.

00:58:21.424 --> 00:58:26.091
<v Chris>But something you might not know is there's additional metadata around the show

00:58:26.091 --> 00:58:27.925
<v Chris>that might not even be on the webpage.

00:58:28.611 --> 00:58:31.511
<v Chris>Wes, you have the information about that, right? Like the sneaky extra data?

00:58:31.511 --> 00:58:34.821
<v Wes>Yeah, I've spent a lot of my time, it turns out, recently staring at RSS feeds

00:58:34.821 --> 00:58:37.711
<v Wes>and there's more in there than you might have expected.

00:58:37.711 --> 00:58:37.962
<v Chris>Yeah.

00:58:38.218 --> 00:58:41.596
<v Wes>Yeah, including someone took JSON and put it inside XML.

00:58:42.740 --> 00:58:45.391
<v Wes>Well, it's really a link to the JSON. Okay, I live separately,

00:58:45.391 --> 00:58:47.424
<v Wes>so it's not that much of a horrible thing.

00:58:48.271 --> 00:58:52.371
<v Wes>But yeah, it has chapter information right there. Timing, sometimes custom art,

00:58:52.371 --> 00:58:54.959
<v Wes>maybe even, maybe a link or something.

00:58:55.273 --> 00:58:56.821
<v Wes>Yeah, also there's an MP4 file.

00:58:56.821 --> 00:58:57.261
<v Chris>Really?

00:58:57.261 --> 00:59:00.271
<v Wes>Yeah, so that's kind of the opposite of a JSON. It's a giant MP4 file.

00:59:00.271 --> 00:59:00.520
<v Chris>Yeah.

00:59:01.251 --> 00:59:02.001
<v Wes>With our faces in it.

00:59:02.001 --> 00:59:05.261
<v Chris>And visuals are what we talked about. How about that? And then on top of all

00:59:05.261 --> 00:59:08.801
<v Chris>that, this also shows up in the... See, the truth of the matter is the RSS feed's

00:59:08.801 --> 00:59:11.409
<v Chris>great because this also is in the RSS feed. We're live.

00:59:11.914 --> 00:59:14.218
<v Chris>We're live and we make it a Tuesday on a Sunday.

00:59:18.148 --> 00:59:22.354
<v Chris>Join us next Sunday, 10 a.m. Pacific, 1 p.m. Eastern. Get it in your time over

00:59:22.354 --> 00:59:26.402
<v Chris>at jupyterbroadcasting.com slash calendar. The action goes down at jblive.tv

00:59:26.779 --> 00:59:30.924
<v Chris>or in your podcasting 2.0 app of choice that supports live streams.

00:59:31.285 --> 00:59:32.578
<v Chris>We're live right there in the app, too.

00:59:32.991 --> 00:59:36.124
<v Chris>And remember, if you want more show, the LUP plug gets together before the show.

00:59:36.124 --> 00:59:41.466
<v Chris>The members get the bootleg and the Matrix chats cooking all week long.

00:59:41.722 --> 00:59:46.714
<v Chris>and there's lots of past episodes over at linuxunplugged.com and a bunch of

00:59:46.714 --> 00:59:49.192
<v Chris>great shows over at jupyterbroadcasting.com.

00:59:49.581 --> 00:59:53.714
<v Chris>Thank you so much for joining us on this week's episode of your Unplugged program

00:59:53.923 --> 00:59:58.724
<v Chris>and we'll see you right back here next Tuesday as in Sunday and we're going to Texas!

00:59:59.037 --> 00:59:59.994
<v Wes>Woo! Yeah!

