สำเนาบทสนทนา 🔗
1
00:00:11,389 --> 00:00:16,147
Hello, friends, and welcome back to your weekly Linux talk show. My name is Chris.
2
00:00:16,147 --> 00:00:16,947
My name is Wes.
3
00:00:16,947 --> 00:00:17,920
And my name is Brent.
4
00:00:18,500 --> 00:00:21,557
Well, hello, gentlemen. Coming up on the show today, we're chatting with John
5
00:00:21,557 --> 00:00:25,257
Seeger from Canonical about all of the big changes coming to Ubuntu.
6
00:00:25,257 --> 00:00:27,817
And then we're going to round out the show with some great picks and boosts
7
00:00:27,817 --> 00:00:30,186
and a little look at something special and a lot more.
8
00:00:30,575 --> 00:00:33,857
So before we get to that, we've got to do the right thing and say hello to our
9
00:00:33,857 --> 00:00:37,307
crew that's sticking with us through a long Sunday. Time-appropriate greetings.
10
00:00:37,307 --> 00:00:39,357
Virtual lug. Hello, mobile rope. Hello.
11
00:00:40,337 --> 00:00:41,807
Hello. That's better.
12
00:00:41,807 --> 00:00:43,212
There we go. Yeah, yeah.
13
00:00:43,804 --> 00:00:45,627
Been with us all day and we appreciate it.
14
00:00:45,842 --> 00:00:48,997
Also, you know who's been with us for a while? Our friends over at Defined Networking.
15
00:00:48,997 --> 00:00:52,808
Go to defined.net slash unplugged and check out Manage Nebula.
16
00:00:53,162 --> 00:00:56,657
When it comes to your network, when it comes to something as important as your
17
00:00:56,657 --> 00:01:02,193
mesh network, I want you, I implore you to own that stack. That's why I love Nebula.
18
00:01:02,576 --> 00:01:06,077
It's based on the open source decentralized VPN that they created many years
19
00:01:06,077 --> 00:01:08,549
ago to solve some very, very big problems.
20
00:01:08,979 --> 00:01:14,018
And it doesn't depend on any third party staying online or special dashboard, nothing like that.
21
00:01:14,384 --> 00:01:16,857
Because you can host your own dashboards. You can host your own,
22
00:01:17,177 --> 00:01:20,067
make dashboards for days if you want. You can make your own lighthouses.
23
00:01:20,067 --> 00:01:20,804
You can do the whole thing.
24
00:01:21,913 --> 00:01:24,397
And you don't have to worry about any third party. But I understand that can
25
00:01:24,397 --> 00:01:26,725
be, that can be a bit much.
26
00:01:27,079 --> 00:01:30,277
So I want you to check out Manage Nebula because Manage Nebula,
27
00:01:30,277 --> 00:01:33,637
you can start it with 100 hosts, absolutely free, no credit card required.
28
00:01:33,637 --> 00:01:37,766
And they now also will provide a lighthouse to really make things easy. It's great.
29
00:01:38,126 --> 00:01:41,907
So check it out at defined.net slash unplugged. You can come and go from the
30
00:01:41,907 --> 00:01:44,546
hosted lighthouse. You're going to really be impressed with the flexibility,
31
00:01:44,720 --> 00:01:47,193
the simplicity, the speed, and the security.
32
00:01:47,431 --> 00:01:53,172
Defined.net slash unplugged. Thank you to
Load full transcript
Defined for sponsoring the Unplugged program.
33
00:01:54,519 --> 00:01:58,959
Now, you know that it's reaching the end of the year when we make this announcement.
34
00:02:04,038 --> 00:02:09,959
Ladies and gentlemen, if you can believe it, the great holiday home lab is coming back,
35
00:02:12,397 --> 00:02:13,692
for a second year.
36
00:02:15,851 --> 00:02:19,839
Ladies and gentlemen, we want your home labs. We want them. We want your home labs.
37
00:02:20,054 --> 00:02:21,447
Mostly just your RAM, really.
38
00:02:22,928 --> 00:02:23,663
Send us your RAM.
39
00:02:26,289 --> 00:02:30,443
Just send RAM. We're going to have the criteria for you. We just want you to
40
00:02:30,443 --> 00:02:33,923
be ready for this. We're going to set up the submission page at linuxunplugged.com.
41
00:02:34,223 --> 00:02:36,076
Was it holiday? I think it was what it was.
42
00:02:36,639 --> 00:02:39,753
It's as we record, not live, but it should be live, hopefully,
43
00:02:39,753 --> 00:02:42,305
by the time you hear this, or there will be a placeholder there.
44
00:02:42,630 --> 00:02:46,583
And we'll have all the criterion for you, and we're going to have a few more
45
00:02:46,583 --> 00:02:48,934
details. We're changing things up just a little bit.
46
00:02:49,456 --> 00:02:54,396
And it will be our last episode of the year will be the great holiday home lab special.
47
00:02:54,742 --> 00:02:57,543
It's back. It's going to be fantastic. You're going to love it.
48
00:02:57,543 --> 00:03:00,635
It was a lot of fun last year, and we love senior setups.
49
00:03:01,029 --> 00:03:04,543
And we encourage messy setups. We also encourage pristine setups.
50
00:03:04,543 --> 00:03:06,167
We love all of the setups.
51
00:03:06,683 --> 00:03:11,623
And it turns out last year's episode was one of our most popular episodes of
52
00:03:11,623 --> 00:03:14,224
the year. So, you know, we got to do it again.
53
00:03:26,496 --> 00:03:29,983
So get ready get your home lab ready tidied if you need to or make a bigger
54
00:03:29,983 --> 00:03:34,193
mess and send it in we'll have more details and again when it's ready it'll
55
00:03:34,193 --> 00:03:35,613
be at linuxunplugged.com.
56
00:03:35,613 --> 00:03:40,893
Slash holiday yeah i think right that sends to the old google form right now so it's not Shh.
57
00:03:40,893 --> 00:03:43,723
No, it doesn't. No, I just think what we'll do is, before we leave,
58
00:03:43,723 --> 00:03:47,603
we'll just replace it with a standby page, and then when we have it ready, we'll...
59
00:03:47,643 --> 00:03:48,583
That makes perfect sense.
60
00:03:48,583 --> 00:03:49,222
Yeah, there you go.
61
00:03:53,488 --> 00:03:58,552
Thank you. Ubuntu has been in the news these last couple of weeks.
62
00:03:58,552 --> 00:04:00,976
And Canonical has been giving everybody a lot to talk about.
63
00:04:01,354 --> 00:04:05,800
First of all, Ubuntu 26.10, the stonking stingray, was released on October 15th.
64
00:04:06,561 --> 00:04:08,792
Very
fancy. Got the new GNOME in there and all of that.
65
00:04:08,872 --> 00:04:09,832
Yeah, we played with a little bit.
66
00:04:10,752 --> 00:04:14,452
And in the past week, John Seeger and,
67
00:04:15,030 --> 00:04:21,452
Ubuntu announced plans to restart the Ubuntu core desktop with an aim to make
68
00:04:21,452 --> 00:04:26,373
the default Ubuntu desktop in the future eventually use Ubuntu Core one day.
69
00:04:26,820 --> 00:04:31,862
No timelines there yet, but that was the stated goal, which is no small thing.
70
00:04:31,862 --> 00:04:33,403
I think that means we better pay attention.
71
00:04:33,513 --> 00:04:38,932
That could be a huge, huge shift. So we wanted to have John back on the show
72
00:04:38,932 --> 00:04:40,764
to help sort through all of this.
73
00:04:41,687 --> 00:04:46,470
John joined Canonical back in March of 2021. It's been that long.
74
00:04:46,987 --> 00:04:52,146
As product lead and became VP of engineering back in February of 2022.
75
00:04:52,721 --> 00:04:57,341
He's, of course, a longtime Linux enthusiast, hands-on open source developer.
76
00:04:57,725 --> 00:05:02,092
John has also worked extensively with NixOS, Kubernetes, Rust,
77
00:05:02,092 --> 00:05:04,307
Snaps, and Cloud Automation.
78
00:05:05,167 --> 00:05:09,149
He's currently also helping to drive Ubuntu's modernization,
79
00:05:09,732 --> 00:05:14,396
including Rust adoption, security improvements, and that revival of Ubuntu Core
80
00:05:14,571 --> 00:05:16,012
desktop that you mentioned, Chris.
81
00:05:16,012 --> 00:05:20,882
That's especially exciting to me because I think I said I would try this for
82
00:05:20,882 --> 00:05:22,412
like a month when it came out.
83
00:05:22,772 --> 00:05:27,423
I think I remember something vaguely like that. So I'm counting on you, John.
84
00:05:31,085 --> 00:05:35,651
Back on the show right now, John Seeger returning. John, welcome back to the
85
00:05:35,651 --> 00:05:37,493
Unplugged program. We're thrilled to have you.
86
00:05:37,673 --> 00:05:39,508
Thank you very much for having me. I'm glad to be here.
87
00:05:39,943 --> 00:05:44,483
Well, your timing is perfect because you've been making a lot of news recently.
88
00:05:44,889 --> 00:05:48,951
And there's a couple of projects that we want to dig into. I thought maybe just
89
00:05:48,951 --> 00:05:53,051
because I think it's the topic du jour right now, let's start with just all
90
00:05:53,051 --> 00:05:54,611
of the security stuff going on.
91
00:05:54,611 --> 00:05:59,471
There's been a lot of discussion about the recent IPv4 vulnerability in the
92
00:05:59,471 --> 00:06:03,041
Linux kernel and all of that and I know you guys are still as we record now
93
00:06:03,041 --> 00:06:06,221
working on a fix how's all that going what's going on there.
94
00:06:07,672 --> 00:06:11,540
It has definitely been a pretty wild ride over the last few months.
95
00:06:11,540 --> 00:06:15,800
I think anybody who is shipping software at the moment is dealing
with this,
96
00:06:16,480 --> 00:06:20,400
not least the kernel project itself, of course, but it is kind of replicated
97
00:06:20,400 --> 00:06:21,900
across all of the packages we maintain.
98
00:06:22,905 --> 00:06:25,850
The pace at which vulnerabilities are discovered and reported has obviously
99
00:06:25,850 --> 00:06:27,084
increased dramatically.
100
00:06:27,769 --> 00:06:31,600
The example you're showing there, of course, is one where we didn't cover ourselves
101
00:06:31,600 --> 00:06:37,340
in glory, but it is against a backdrop of quite an impressive story,
102
00:06:37,340 --> 00:06:40,560
I think. So the news on that one is the fixes are in proposed.
103
00:06:40,960 --> 00:06:44,987
There are some instructions out on a blog on Ubuntu.com that tell you how to get those fixes.
104
00:06:46,467 --> 00:06:49,430
One of the interesting stories that I heard from our kernel team,
105
00:06:49,430 --> 00:06:51,400
we've all just come back from two weeks in Mexico.
106
00:06:51,400 --> 00:06:54,656
We had a product roadmap sprint followed by an engineering sprint where we took,
107
00:06:55,660 --> 00:06:58,750
over 1,100 engineers to a place in Mexico, which was kind of wild.
108
00:06:58,750 --> 00:07:01,500
The whole company was only 500 when I joined five years ago.
109
00:07:02,480 --> 00:07:07,370
But there was an interesting statistic presented to me, which was that in the
110
00:07:07,370 --> 00:07:11,760
last six months, our kernel team have shipped more security patches than in
111
00:07:11,760 --> 00:07:13,621
the prior 20 years of Ubuntu.
112
00:07:14,800 --> 00:07:18,760
And so that's not an excuse for the vulnerability that we missed and perhaps
113
00:07:18,760 --> 00:07:22,510
were less timely than people would have liked. But it is to try and give some
114
00:07:22,510 --> 00:07:26,490
confidence that the machine is being built and the machine is mostly working.
115
00:07:26,490 --> 00:07:30,570
You have taken a lot of steps recently. I mean, just over the past year to sort
116
00:07:30,570 --> 00:07:31,889
of advance those timelines.
117
00:07:32,557 --> 00:07:35,400
I think maybe people don't appreciate that you're already shipping some of those
118
00:07:35,400 --> 00:07:37,996
things even if it may have not applied fully in this case.
119
00:07:38,728 --> 00:07:42,076
Yes, we are essentially now committed to shipping kernels on a much tighter
120
00:07:42,076 --> 00:07:46,866
timeline. And I think often the scale of the maintenance burden that our kernel
121
00:07:46,866 --> 00:07:52,462
team have is perhaps underappreciated. So for Ubuntu, we ship over 160 kernels.
122
00:07:54,076 --> 00:07:59,176
That is a combination of cloud kernels and OEM kernels and partner kernels.
123
00:07:59,176 --> 00:08:02,456
We've obviously got the vert kernels, all of the kernels, essentially.
124
00:08:02,976 --> 00:08:06,260
And we have to essentially keep all of them patched and up to date.
125
00:08:07,196 --> 00:08:12,988
I think the number I saw was something like 23,000 or 25,000 security patches in the last few months.
126
00:08:13,661 --> 00:08:17,196
And so the team has had to ramp up really fast. I think a year ago,
127
00:08:17,556 --> 00:08:20,302
it would have been fair to say that we were feeling the heat a little bit,
128
00:08:20,697 --> 00:08:26,160
but I am increasingly confident that team has built a machine that will serve us well.
129
00:08:26,816 --> 00:08:29,976
There will, of course, always be vulnerabilities that we miss.
130
00:08:30,516 --> 00:08:34,542
They've committed to a much tighter release cadence. And so they are essentially
131
00:08:34,873 --> 00:08:37,606
on a two-week release cadence for kernels, but staggered.
132
00:08:37,606 --> 00:08:38,636
So there are essentially new
133
00:08:38,636 --> 00:08:41,706
kernels dropping every week, but they kind of lag by a week, essentially.
134
00:08:41,706 --> 00:08:46,086
And that's because we run thousands of tests on quite literally thousands of
135
00:08:46,086 --> 00:08:49,696
real machines, like over 2,000 machines in a lab somewhere that are being driven
136
00:08:49,696 --> 00:08:52,739
autonomously through our kernel release and test QA process.
137
00:08:53,152 --> 00:08:56,526
And so the idea is that fresh kernels should be arriving near enough every week,
138
00:08:56,526 --> 00:08:59,176
which is something that Canonical has never committed to before.
139
00:08:59,176 --> 00:09:05,146
So imagine 164 kernels, thousands of tests over 2 000 machines essentially every
140
00:09:05,146 --> 00:09:09,686
week and so i don't want to make excuses for the vulnerability that got lots
141
00:09:09,686 --> 00:09:12,418
of attention this week that was obviously a miss on our part.
142
00:09:13,684 --> 00:09:17,946
And i think it's safe to say we could have communicated more effectively but
143
00:09:17,946 --> 00:09:21,076
i you know that's now on the way to fix and i hope that people hearing this
144
00:09:21,076 --> 00:09:21,967
will have a bit of faith that,
145
00:09:22,757 --> 00:09:25,868
you know going forward they are in safe hands we have some good numbers to support,
146
00:09:26,391 --> 00:09:31,376
i think the level of scrutiny that goes into our kernels perhaps we'll do some
147
00:09:31,376 --> 00:09:32,289
writing about that shortly.
148
00:09:33,194 --> 00:09:36,173
With the accelerated pace of the kernels that you mentioned,
149
00:09:36,173 --> 00:09:43,343
which is crazy numbers, is that, from a more philosophical perspective, a welcome change?
150
00:09:43,343 --> 00:09:49,993
Because all these bugs are being found that presumably existed and were undiscovered.
151
00:09:49,993 --> 00:09:50,997
How do you feel about that?
152
00:09:51,636 --> 00:09:54,043
How do I feel about it? I mean, I don't suppose it really matters whether it's
153
00:09:54,043 --> 00:09:55,863
welcome or not in reality.
154
00:09:56,263 --> 00:10:00,143
It's the reality that we're in, and we have to
respond. I think the Kernel team
155
00:10:00,143 --> 00:10:01,887
is one of the largest teams at Canonical.
156
00:10:03,994 --> 00:10:07,326
And like I said, perhaps a year ago, we were feeling less confident.
157
00:10:07,472 --> 00:10:11,433
But with some collaboration from some of our partners, some pressure from some
158
00:10:11,433 --> 00:10:14,914
of our partners, some, I think, fair pressure from our partners,
159
00:10:15,332 --> 00:10:18,113
it has been very interesting to see that team step up.
160
00:10:18,113 --> 00:10:21,593
And I think despite the fact the workload has gone up because of the sheer volume
161
00:10:21,593 --> 00:10:26,173
of security vulnerabilities, I think even against that backdrop,
162
00:10:26,173 --> 00:10:28,773
the machinery they have built has allowed them to be more ambitious,
163
00:10:28,773 --> 00:10:30,442
if that makes sense, than they have been before.
164
00:10:30,610 --> 00:10:33,673
There's a lot of times, I think, where sort of having to adapt,
165
00:10:33,673 --> 00:10:38,043
move faster, automate more does sort of expose hidden bottlenecks in your process
166
00:10:38,043 --> 00:10:40,303
or things you have to change, things you've always wanted to change.
167
00:10:40,303 --> 00:10:45,673
That's right. You'll notice you might have seen that in the run up to 2610,
168
00:10:45,673 --> 00:10:48,673
we squeaked in the 7.3 kernel kind of at the last minute.
169
00:10:48,673 --> 00:10:53,143
We committed publicly to the 7.2 and we essentially switched fairly last minute
170
00:10:53,143 --> 00:10:57,620
to 7.3, which is, I think, a testament to the kernel team's confidence in their process.
171
00:10:57,892 --> 00:11:01,733
Well, why don't we talk about Ubuntu 26.10 really quick, since that is also
172
00:11:01,733 --> 00:11:05,166
the new release. And there's a couple of things in here that are pretty great.
173
00:11:05,596 --> 00:11:10,103
We've mentioned GNOME 51 on the show, of course, which has a few really nice
174
00:11:10,103 --> 00:11:12,463
things in there, including some nice remote desktop improvements.
175
00:11:13,090 --> 00:11:18,419
But there was a couple of items that I think we've been tracking for a while that jump out to us.
176
00:11:18,796 --> 00:11:22,263
Number one, obviously, is the transition to Rust Core Utils,
177
00:11:22,263 --> 00:11:24,276
I guess, is complete in this release. Is that true?
178
00:11:25,234 --> 00:11:29,092
That's right. So in 2604, it was complete apart from three utilities.
179
00:11:29,092 --> 00:11:33,222
And holding those three utilities back was kind of an abundance of caution.
180
00:11:33,802 --> 00:11:37,002
I don't think anyone would have got into real trouble, but we were aware of
181
00:11:37,002 --> 00:11:42,078
some slightly edge casey time of check, time of use errors. So we held those back.
182
00:11:42,519 --> 00:11:47,732
Those issues got fixed by the upstream. And so it felt like 2610 was the time
183
00:11:47,732 --> 00:11:49,009
to take the lead off and just commit.
184
00:11:49,421 --> 00:11:50,176
How's it been going?
185
00:11:50,640 --> 00:11:53,802
It's been hard. Core Utils has been hard. There's so many utilities.
186
00:11:54,162 --> 00:11:57,769
It's so baked into F1 shell scripts, I think it's been successful.
187
00:11:57,943 --> 00:12:00,682
I remain committed to it. I was reading an article today from somebody who I
188
00:12:00,682 --> 00:12:05,942
think was at the University of Toronto who was pretty upset that sudo-rs had
189
00:12:05,942 --> 00:12:07,498
broken one of their workflows.
190
00:12:08,702 --> 00:12:11,842
That's a slightly different prospect to core utils because with sudo-rs,
191
00:12:11,842 --> 00:12:16,142
the promise was never 100% compatibility. It was a modern reimplementation that
192
00:12:16,142 --> 00:12:19,038
skewed some of the choices that were made by the original project.
193
00:12:19,636 --> 00:12:24,592
Whereas in new utils, the goal is bug for bug, 100% compatibility.
194
00:12:24,592 --> 00:12:27,482
And that project has really risen to the challenge. The test coverage,
195
00:12:28,002 --> 00:12:32,232
the sort of test parity, if you will, between UUtils and GNU has continued to
196
00:12:32,232 --> 00:12:33,353
go up release after release.
197
00:12:33,638 --> 00:12:37,032
And what's also really pleasing is I consistently see Sylvester,
198
00:12:37,032 --> 00:12:40,472
who's the lead maintainer of UUtils, appearing as one of the top contributors
199
00:12:40,472 --> 00:12:44,432
to GNU CoreUtils as he works on his own project and discovers bugs and inconsistencies
200
00:12:44,432 --> 00:12:48,492
and maybe emissions in the docks and things like that.
201
00:12:48,492 --> 00:12:52,212
So I think it has gone, you know, it's been tough, but it's also been worth it.
202
00:12:52,212 --> 00:12:57,252
And I never expected such a transition to be very easy and very fast.
203
00:12:57,252 --> 00:13:03,952
In reality, we were first, and that comes with a responsibility for us to respond quickly to issues.
204
00:13:03,952 --> 00:13:09,072
We've also committed to backporting new versions of the Uutils package to 2604,
205
00:13:09,072 --> 00:13:12,662
which we wouldn't normally do unless there was a critical kind of security issue.
206
00:13:12,662 --> 00:13:16,202
But we're doing that because we recognize that the software was early and some
207
00:13:16,202 --> 00:13:19,014
people will be facing issues that we want to resolve for them as a kind of...
208
00:13:20,006 --> 00:13:21,852
You know, exception policy in this case.
209
00:13:22,148 --> 00:13:26,815
So now that we're here, what is the goal going forward? Or I guess another way
210
00:13:26,815 --> 00:13:29,645
for me to phrase that is what are you hoping the dividends that pay off now
211
00:13:29,645 --> 00:13:31,436
that you're on a Rust core utils?
212
00:13:33,380 --> 00:13:39,103
So in the long term, it should be less maintenance for a certain class
of bug.
213
00:13:40,015 --> 00:13:44,765
I'm not exaggerating or making stuff up when I say that the vast,
214
00:13:44,765 --> 00:13:48,125
vast majority of security vulnerabilities out in the wild have been up to this
215
00:13:48,125 --> 00:13:50,095
date due to memory corruption issues.
216
00:13:50,095 --> 00:13:53,125
And I hope is that we will cease to see that with core utils.
217
00:13:53,125 --> 00:13:56,735
I also think we're starting to see some nice features. So the latest release
218
00:13:56,735 --> 00:14:00,790
has this nice trick where if you type an argument slightly wrong, you put the
219
00:14:00,906 --> 00:14:03,385
argument value in the wrong format or you slightly mistype it,
220
00:14:03,385 --> 00:14:06,865
it gives you a Rust compiler style warning and highlights exactly where it was
221
00:14:06,865 --> 00:14:08,790
that you typed it wrong and relates to the help.
222
00:14:09,498 --> 00:14:14,555
There's some nice performance improvements coming. And so my view is that that
223
00:14:14,555 --> 00:14:19,105
is just those sorts of UX changes and improvements are very difficult to land,
224
00:14:19,105 --> 00:14:20,035
I think, in the original.
225
00:14:20,035 --> 00:14:22,725
There's no appetite to do so, and I respect that. I think that's absolutely
226
00:14:22,725 --> 00:14:28,132
fine. But the user experience that I aspire to for Ubuntu is more than that,
227
00:14:28,341 --> 00:14:31,278
ultimately. And I think a project like EU Tools will enable us to get there,
228
00:14:31,755 --> 00:14:34,179
even if in the short term there's a few rough edges.
229
00:14:34,499 --> 00:14:36,687
Do you think you're on track for the LTS? Yes.
230
00:14:39,009 --> 00:14:39,996
In what sense?
231
00:14:41,156 --> 00:14:44,988
In shipping and making the transition to the Rust utilities in the LTS.
232
00:14:45,371 --> 00:14:48,206
I mean, it was done in 2604, apart from three tools.
233
00:14:48,206 --> 00:14:53,536
Oh, it is. So this last three. Okay. So then I'm presuming then the answer is
234
00:14:53,536 --> 00:14:55,576
yes. By the next LTS, these last three will make it.
235
00:14:56,056 --> 00:15:00,386
100%. And so by the next LTS, you'll also have NTPDRS by default.
236
00:15:00,386 --> 00:15:02,299
And that will be the first time, I think.
237
00:15:02,595 --> 00:15:06,516
So it's NTPDRS plus some new stuff, which we're funding the development of.
238
00:15:06,516 --> 00:15:12,736
And so that will get you a single binary NTP client server that also speaks
239
00:15:12,736 --> 00:15:16,896
NTS and also does PTP without an additional tool, like precision time,
240
00:15:16,896 --> 00:15:17,821
without an additional tool.
241
00:15:19,376 --> 00:15:23,609
We are dropping BZIP2RS in by default early in 2704.
242
00:15:24,423 --> 00:15:28,857
And we're evaluating Z-Standard RS, Z-Lib, and various other compression tools,
243
00:15:28,857 --> 00:15:32,187
which are actually very exciting because,
244
00:15:32,867 --> 00:15:37,777
that is where the efficiency gains that one might seek from a Rust rewrite could
245
00:15:37,777 --> 00:15:40,377
have enormous global scale impact.
246
00:15:40,377 --> 00:15:45,287
So imagine all of the Ubuntu machines on the planet suddenly got 5% more efficient
247
00:15:45,287 --> 00:15:48,232
at doing Z-Standard or Z-Lib decompression, for example.
248
00:15:48,349 --> 00:15:49,335
Right, right.
249
00:15:49,922 --> 00:15:50,937
Quite a meaningful change.
250
00:15:50,937 --> 00:15:55,407
A lot of them out there doing that. So is there a transition taking in place
251
00:15:55,407 --> 00:15:58,367
with the internal tooling that Canonical is writing? Are you writing that in
252
00:15:58,367 --> 00:16:00,330
Rust? What's the direction there?
253
00:16:01,247 --> 00:16:05,307
Some. So Canonical has always taken quite a disciplined approach to the languages
254
00:16:05,307 --> 00:16:08,561
used internally. So traditionally, it was lots of Python, lots of Go.
255
00:16:09,171 --> 00:16:13,897
Now it's lots of Python, lots of Go, and some Rust. And we're increasingly trying
256
00:16:13,897 --> 00:16:17,937
to be discerning about where we use those tools. It's not, as some might have
257
00:16:17,937 --> 00:16:21,408
suggested, a religious game. There are things for which Go is very good.
258
00:16:21,785 --> 00:16:23,907
Go has very powerful primitives for concurrency.
259
00:16:24,387 --> 00:16:28,217
If you're writing web services and doing HTTP handling and things like that,
260
00:16:28,217 --> 00:16:32,012
Go is a phenomenal choice still. Even some of our systems tools like SnapD are written in Go.
261
00:16:32,407 --> 00:16:38,647
But equally, if you want to write very low-level compositors and database protocols
262
00:16:38,647 --> 00:16:41,757
and things like that, Rust is a very compelling choice. So we try to use the
263
00:16:41,757 --> 00:16:42,612
right tools for the right job.
264
00:16:42,746 --> 00:16:46,647
And so we are definitely seeing more and more Rust projects popping up around Canonical.
265
00:16:47,518 --> 00:16:51,207
Okay, so you mentioned Snaps. You boys all right if we transition to this one?
266
00:16:51,207 --> 00:16:55,227
You ready for this? Okay. So the big news that you made recently,
267
00:16:55,647 --> 00:17:01,705
and this is pretty exciting, is that, quote, you are accelerating the Ubuntu Core desktop,
268
00:17:02,291 --> 00:17:08,752
the immutable and attestable Linux distribution, and you say specifically the desktop, too.
269
00:17:09,344 --> 00:17:14,180
So we all know Ubuntu Core, and it kind of seems to have faded a little bit, so it's,
270
00:17:15,160 --> 00:17:18,602
back john what's going on what are the details tell us the story here.
271
00:17:19,055 --> 00:17:23,968
Yeah so ubuntu core itself has been pretty widely deployed on sort of iot class
272
00:17:23,968 --> 00:17:27,449
devices digital signage robots those kind of things,
273
00:17:28,168 --> 00:17:32,768
uh and
continues to to be deployed as such you'll remember 2023 there was a
274
00:17:32,768 --> 00:17:35,087
sort of proof of concept core desktop
275
00:17:35,366 --> 00:17:38,288
and then it sort of all went a bit quiet and that coincided with about the time
276
00:17:38,288 --> 00:17:41,217
that i took over ubuntu and it's one of it's been one of the things i have been
277
00:17:41,600 --> 00:17:43,208
most desperate to get back to.
278
00:17:43,208 --> 00:17:47,521
But the sort of cold, hard reality of it was that I didn't feel like we had,
279
00:17:48,061 --> 00:17:53,238
the right team or resources to commit to that on that timescale.
280
00:17:53,238 --> 00:17:58,238
And a combination of some exceptional hiring from my team and kind of growth
281
00:17:58,238 --> 00:18:01,028
in the department has meant that I now feel pretty confident that we can tackle it.
282
00:18:01,028 --> 00:18:05,668
And honestly, I think this is the most exciting thing I have or maybe will get
283
00:18:05,668 --> 00:18:11,638
to announce at Canonical. Because for me, it is the most prolific kind of reimagining
284
00:18:11,638 --> 00:18:14,416
of Ubuntu's architecture and makeup in its history.
285
00:18:14,538 --> 00:18:19,501
It is replacing the bootloader as a snap, the kernel as a snap,
286
00:18:20,428 --> 00:18:21,778
the desktop environment as a snap.
287
00:18:21,778 --> 00:18:26,098
And so we have revived that original POC, which still has some architectural
288
00:18:26,098 --> 00:18:29,408
deficiencies, but is now rebased on core 26. And if you know where to look on
289
00:18:29,408 --> 00:18:30,901
GitHub, you can get the images and boot them.
290
00:18:32,381 --> 00:18:35,528
We're working on a kind of daily release pipeline and now we'll aim to break
291
00:18:35,528 --> 00:18:39,997
down some of the more monolithic aspects of that proof of concept into component parts.
292
00:18:40,276 --> 00:18:43,080
Okay, so there's a lot about this that really bakes our noodle.
293
00:18:43,335 --> 00:18:46,008
It's a huge job, and I do want to get into some of the aspects that seem like
294
00:18:46,008 --> 00:18:47,236
they're going to be challenging, but...
295
00:18:48,230 --> 00:18:53,137
Man, it seems like if swapping out a few CLI tools was controversial,
296
00:18:53,137 --> 00:18:57,843
this is really going to rock the boat when people actually wrap their head around what's coming.
297
00:18:58,190 --> 00:19:01,347
Because, John, you're coming right at it and you're saying this is going to
298
00:19:01,347 --> 00:19:02,980
be the future of Ubuntu one day.
299
00:19:03,305 --> 00:19:07,277
And in a way, for a lot of people, I think Ubuntu is kind of like the bastion
300
00:19:07,277 --> 00:19:10,287
of a traditional distro where I can install it and I can just run anything I
301
00:19:10,287 --> 00:19:12,221
would download and et cetera, et cetera.
302
00:19:12,547 --> 00:19:15,387
There's got to be at least a portion of the user base and so many of the things
303
00:19:15,387 --> 00:19:19,217
that are based off Ubuntu that kind of have this expectation just baked in of
304
00:19:19,217 --> 00:19:20,400
how a Linux system works.
305
00:19:21,016 --> 00:19:24,301
This is going to be a pretty big transition. Like, are you crazy?
306
00:19:25,073 --> 00:19:25,420
A little.
307
00:19:27,057 --> 00:19:27,577
All right.
308
00:19:27,577 --> 00:19:32,197
But here's the thing. So traditional Ubuntu, Ubuntu as it sounds today,
309
00:19:32,197 --> 00:19:35,767
is not going anywhere. Like, no one should read into this that this signals
310
00:19:35,767 --> 00:19:37,600
death for Ubuntu as we know it today.
311
00:19:37,757 --> 00:19:41,704
For a start, Ubuntu Core cannot exist without the packages that we build,
312
00:19:41,954 --> 00:19:43,987
that we inherit and sync and patch from Debian, right?
313
00:19:43,987 --> 00:19:48,367
So Ubuntu, as you know it today, if you are someone who has absolutely no interest
314
00:19:48,367 --> 00:19:50,887
in Immutable Linux and Snaps, Ubuntu is going to stick around.
315
00:19:50,887 --> 00:19:54,157
You can carry on using it. Don't panic. I hope that there are no plans on any
316
00:19:54,157 --> 00:19:56,815
timeline to stop doing Ubuntu as we're doing it today.
317
00:19:57,343 --> 00:20:04,930
There is a plan that over the next couple few years, Core will become the default Ubuntu experience.
318
00:20:05,243 --> 00:20:08,277
And in my opinion, there are very good reasons for that. I know I don't need
319
00:20:08,277 --> 00:20:12,697
to sell you folks on immutable Linux distributions, but Ubuntu Core has some
320
00:20:12,697 --> 00:20:13,875
really interesting properties,
321
00:20:14,809 --> 00:20:18,965
even among the current drop-off Linux distributions. So one of the first criticisms
322
00:20:18,965 --> 00:20:22,975
I heard on this post was, well, I've used an immediate Linux system,
323
00:20:22,975 --> 00:20:25,525
and every time I update a package, I have to rebuild an image and reboot the
324
00:20:25,525 --> 00:20:26,632
system and redeploy the whole thing.
325
00:20:26,875 --> 00:20:30,242
Not true on Ubuntu core. Just refresh the snap in place. We can live patch the kernel.
326
00:20:30,695 --> 00:20:36,225
So that's not a drawback. It also brings that lovely, I want to switch the desktop
327
00:20:36,225 --> 00:20:40,860
environment for a day and see what happens type effect without crapping all over your system.
328
00:20:41,775 --> 00:20:46,745
You can just install the KDE snap, boot that for a while remove the KDE snap
329
00:20:46,745 --> 00:20:50,835
and go back to GNOME I hope that there will be cosmic snaps and you know NERI
330
00:20:50,835 --> 00:20:55,076
snaps and all the rest of it and I think.
331
00:20:56,737 --> 00:21:00,187
2026 has never been a better time to think about what confinement might look
332
00:21:00,187 --> 00:21:04,353
like on your workstation. I think it is only a matter of time before we see.
333
00:21:06,855 -->
00:21:11,946
Very influential people having their credentials leaked because an agent did something silly.
334
00:21:12,213 --> 00:21:16,567
And the way I run my machine is I have very little installed on it.
335
00:21:16,567 --> 00:21:20,427
I have a browser, I have a chat client, I have a terminal, and pretty much everything
336
00:21:20,427 --> 00:21:23,087
I do is in a LexD container or a VM or something like that.
337
00:21:25,347 --> 00:21:29,327
And And there is a story here on the compatibility front that really has come
338
00:21:29,327 --> 00:21:33,547
into focus in the last year that I couldn't have told two and a half years ago
339
00:21:33,547 --> 00:21:35,885
when I kind of regrettably put a pause on things.
340
00:21:36,785 --> 00:21:40,277
And so where I am moving towards is why not use Canonical Workshop,
341
00:21:40,277 --> 00:21:44,677
which is this nice little utility that we shipped about six to eight months
342
00:21:44,677 --> 00:21:48,447
ago for building little reproducible developer environments.
343
00:21:48,691 --> 00:21:54,200
Use that as the sort of compatibility story. So today I have been using Firefox
344
00:21:54,530 --> 00:21:55,691
installed in a workshop.
345
00:21:56,626 --> 00:21:59,482
I launch it from my GNOME launcher and it pops up on my desktop.
346
00:22:00,247 --> 00:22:03,497
It's wired up to D-Bus through D-Bus proxy. It's wired up to Pipewire through
347
00:22:03,497 --> 00:22:05,827
Pipewire container. The notifications work. The camera works.
348
00:22:06,965 --> 00:22:12,177
Web Serial even worked. And that Firefox is installed as a dev running in a workshop.
349
00:22:12,177 --> 00:22:16,627
Okay. So, okay, I got it. This is a lot. So first of all, what I caught in there
350
00:22:16,627 --> 00:22:20,247
is it doesn't sound like alternative desktops are out. Still going to be able
351
00:22:20,247 --> 00:22:22,654
to run Plasma and Cosmic. That's all going to be still a thing.
352
00:22:22,887 --> 00:22:26,207
We're actually working with the KDE folks right from the start.
353
00:22:26,207 --> 00:22:29,317
So we are paying a company who's
354
00:22:29,317 --> 00:22:32,836
quite heavily involved in the KDE Neon community to work alongside us,
355
00:22:33,695 --> 00:22:39,167
in our teams day to day to basically develop the KDE, like cutting edge KDE
356
00:22:39,167 --> 00:22:41,427
track alongside what we're doing with the GNOME track.
357
00:22:41,427 --> 00:22:44,987
So right from day one, we essentially put ourselves in a position where we can't
358
00:22:44,987 --> 00:22:48,257
make decisions that would inhibit us to just one desktop environment or one
359
00:22:48,257 --> 00:22:49,595
login manager or something like that.
360
00:22:52,277 --> 00:22:55,993
What kept me from having a proper website for a long time was it just felt expensive
361
00:22:55,993 --> 00:22:59,313
and time-consuming. I mean, for some folks, it means you have to hire someone.
362
00:22:59,650 --> 00:23:04,189
For
others like me, it means at least a weekend of research to look at a stack of tools.
363
00:23:04,706 --> 00:23:08,893
Hostinger's AI Builder flips that. Describe what you want, and it builds a working
364
00:23:08,893 --> 00:23:10,923
version of the entire site in minutes.
365
00:23:11,178 --> 00:23:14,203
No coding, no design skills required.
366
00:23:14,534 --> 00:23:17,279
And you can start from a mock-up before you even make an account.
367
00:23:17,586 --> 00:23:20,006
That's the part that actually got me to try it, I'll be honest.
368
00:23:20,314 --> 00:23:23,553
What I also like is that it's kind of an all-in-one place for the domain,
369
00:23:23,553 --> 00:23:26,573
the website, the email, the marketing that makes it easy for you to get started
370
00:23:26,573 --> 00:23:27,779
or a friend or a family member.
371
00:23:28,186 --> 00:23:32,353
One Hostinger account covers it all, so no stitching together five different
372
00:23:32,353 --> 00:23:33,950
subscriptions in your domain provider.
373
00:23:34,380 --> 00:23:37,513
And if you already have a site somewhere else, Hostinger makes migration quick
374
00:23:37,513 --> 00:23:40,608
and easy. You're not locked into whatever you started with years ago.
375
00:23:41,328 --> 00:23:45,862
And right now, Black Friday and Cyber Monday pricing is live.
376
00:23:46,030 --> 00:23:48,817
A premium plan is just $1.99 a month.
377
00:23:49,275 --> 00:23:52,803
Snag Hostinger's service at their lowest prices before the sale ends.
378
00:23:52,803 --> 00:23:55,904
Create your website today for just $1.99.
379
00:23:56,259 --> 00:24:01,233
Go to hostinger.com slash unplugged and use the code unplugged for an additional
380
00:24:01,233 --> 00:24:04,322
10% off Black Friday and Cyber Monday pricing.
381
00:24:04,455 --> 00:24:07,242
Hostinger.com slash unplugged.
382
00:24:10,307 --> 00:24:13,571
Okay, then the other thing, it sounds like you called it a workshop.
383
00:24:13,571 --> 00:24:18,451
This is almost kind of like a separate contained environment where you could,
384
00:24:18,951 --> 00:24:22,311
essentially sideload applications that aren't snapped or for some reason you
385
00:24:22,311 --> 00:24:23,354
didn't want a snapped version.
386
00:24:23,744 --> 00:24:28,481
That's right. So think, I'm just going to say this, various parts of the internet
387
00:24:28,481 --> 00:24:29,786
are about to explode. So strap in.
388
00:24:30,083 --> 00:24:33,229
Think Windows subsystem for Linux with the graphics bit.
389
00:24:33,363 --> 00:24:37,722
So you can install, like you could even install a Flatpak in a container and
390
00:24:37,907 --> 00:24:41,691
the window can appear on your Ubuntu Core desktop as if it was running on your
391
00:24:41,691 --> 00:24:43,532
desktop, except it's not, it's running in a container.
392
00:24:44,311 --> 00:24:50,051
And that is essentially the, that's the escape patch. So obviously I see this as an escape patch.
393
00:24:50,051 --> 00:24:52,981
If we do our job right, all the software vendors in the world are going to want
394
00:24:52,981 --> 00:24:57,111
to ship their stuff for snaps because the security story, the update story,
395
00:24:57,111 --> 00:25:00,681
the kind of usage metric story should be so compelling for them and for their
396
00:25:00,681 --> 00:25:02,741
users that they want to ship their stuff for snaps.
397
00:25:03,218 --> 00:25:06,891
But it is no good for us to go out in the world when none of the apps are snaps
398
00:25:06,891 --> 00:25:09,191
and tell everyone that this is the future of Ubuntu when they boot it up for
399
00:25:09,191 --> 00:25:11,261
the first time and can't get the stuff done they need to get done.
400
00:25:11,261 --> 00:25:16,671
And so workshops and containers and the appropriate kind of wiring and polish
401
00:25:16,671 --> 00:25:20,081
around how you wire those apps into the desktop are kind of the escape hatch.
402
00:25:20,081 --> 00:25:21,205
And that's going to be a focus.
403
00:25:21,774 --> 00:25:24,711
I mean, I'm running a sort of prototype of it today, in a sense.
404
00:25:24,711 --> 00:25:27,611
Is this essentially like LXD under the hood, kind of wired up?
405
00:25:27,611 --> 00:25:28,051
It is LXD.
406
00:25:28,051 --> 00:25:28,921
Okay, yeah, okay.
407
00:25:28,921 --> 00:25:29,371
Awesome.
408
00:25:29,371 --> 00:25:30,161
That's great.
409
00:25:30,161 --> 00:25:33,511
So workshop, canonical workshop is this super nice little thing that we actually
410
00:25:33,511 --> 00:25:38,376
imagined three years ago for basically confining...
411
00:25:39,340 --> 00:25:43,117
A board vendor SDK. So often if you're doing IoT development or board bring
412
00:25:43,117 --> 00:25:47,087
up enablement stuff, you end up with these kind of large SDKs,
413
00:25:47,087 --> 00:25:49,147
lots of files, lots of libraries, lots of utilities.
414
00:25:49,147 --> 00:25:52,967
And if you're working on boards from five different vendors,
415
00:25:52,967 --> 00:25:55,457
this stuff can end up all over your system and conflict and be a bit of a pain.
416
00:25:55,457 --> 00:25:58,758
So Workshops was basically a way of like, how can we wrap up an XD container
417
00:25:58,961 --> 00:26:02,450
in a nice declarative kind of YAML format that can be shared among teams?
418
00:26:02,670 --> 00:26:05,817
And so the idea is in your repo, you have a workshop.yaml, you type workshop
419
00:26:05,817 --> 00:26:08,507
launch, and you get the same developer environment as the rest of your teammates,
420
00:26:08,507 --> 00:26:11,517
makes much like a nix shell right much like a nix flake shell something like
421
00:26:11,517 --> 00:26:13,247
that could be interesting in a desktop.
422
00:26:13,247 --> 00:26:15,504
Environment for sharing those workshop environments around.
423
00:26:16,369 --> 00:26:19,427
And that's what our teams are doing and and some of our customers and users
424
00:26:19,427 --> 00:26:22,687
are starting to do so we've built this product
and it sort of only recently
425
00:26:22,687 --> 00:26:23,846
occurred to me that we could,
426
00:26:24,624 --> 00:26:28,067
extend the set of interfaces and integrations that we have with workshops to
427
00:26:28,067 --> 00:26:32,077
make it very easy to say well when desktop apps launch in this workshop the
428
00:26:32,077 --> 00:26:35,537
app needs to show up on my desktop and make that very seamless.
429
00:26:35,537 --> 00:26:38,155
So that's the kind of, that's the get out of jail free card.
430
00:26:38,410 --> 00:26:43,067
But actually what's really important to me is that we get the first class experience, right?
431
00:26:43,067 --> 00:26:47,727
Because I don't love the idea of running a totally unconfined browser on my system.
432
00:26:47,727 --> 00:26:53,207
I certainly don't love the idea of running codecs or open code on my system
433
00:26:53,207 --> 00:26:56,147
where all my credentials are. Like, I think we all agree probably that that's
434
00:26:56,147 --> 00:27:02,112
not great hygiene. And the problem is it is very easy for people to do that today on Ubuntu.
435
00:27:02,449 --> 00:27:05,287
You have to know what you're doing. You have to know that you don't want to
436
00:27:05,287 --> 00:27:07,307
do that in order to not fall into that trap.
437
00:27:07,307 --> 00:27:12,409
And I think for me, one of the attractive things about Core Desktop is we don't,
438
00:27:12,931 --> 00:27:16,417
give our users the option to put themselves in that position.
439
00:27:16,417 --> 00:27:18,947
They will have the flexibility to get done what they need to get done,
440
00:27:18,947 --> 00:27:21,197
and it should feel smooth and seamless, and we shouldn't get in their way,
441
00:27:21,197 --> 00:27:24,127
but they can't accidentally install an agent that's going to root their system
442
00:27:24,127 --> 00:27:25,592
on the machine. It doesn't work.
443
00:27:27,862 --> 00:27:30,941
So that's kind of the thinking. And there's three use cases I outlined.
444
00:27:30,941 --> 00:27:33,330
One was the kind of Chromebook use case.
445
00:27:33,991 --> 00:27:37,041
Boot to a browser, lots of users. For lots of home users, that's going to be
446
00:27:37,041 --> 00:27:41,891
enough, I think. Just a very nicely optimized, accelerated browser that automatically
447
00:27:41,891 --> 00:27:43,871
updates in the background without you ever doing anything. Like,
448
00:27:43,871 --> 00:27:46,321
we can achieve that today, right now. Like, I could send you an image,
449
00:27:46,321 --> 00:27:47,245
you could boot it, it will work.
450
00:27:49,497 --> 00:27:53,481
The other two are interesting for two different reasons. So one of them is a
451
00:27:53,481 --> 00:27:56,851
developer workstation. So that's, you run VS Code, you've got workshops,
452
00:27:56,851 --> 00:27:58,511
You know, you do all your development in containers.
453
00:27:58,871 --> 00:28:02,221
We have a nice VS Code extension for Workshops. It's aware of all the Workshops
454
00:28:02,221 --> 00:28:04,863
in your machine. You can remotely attach to them, all that kind of stuff.
455
00:28:05,943 --> 00:28:09,511
And then the third one is a bit of a wild card, a bit of an underappreciated
456
00:28:09,511 --> 00:28:12,481
part of the world in Ubuntu so far, which is a gaming variant.
457
00:28:12,481 --> 00:28:16,919
So this is boot Ubuntu Core straight to Steam or the new Epic Games launcher.
458
00:28:17,284 --> 00:28:19,165
This one feels the most ambitious.
459
00:28:20,251 --> 00:28:22,431
Well, is it though? I mean, we have a Steam Snap and it works.
460
00:28:22,431 --> 00:28:27,281
You know what I mean? Tell me if I'm wrong. John, it feels a little bit like
461
00:28:27,281 --> 00:28:30,671
you're saying to Val, like, hey, take a look at this. You could be doing it
462
00:28:30,671 --> 00:28:33,149
this way. We got something over here you could use.
463
00:28:33,370 --> 00:28:35,059
That's the part that feels a bit ambitious to me.
464
00:28:37,044 --> 00:28:39,580
I'm not not saying that, but I'm also not saying that. And so,
465
00:28:39,824 --> 00:28:43,304
well, I guess what I'm trying to say is this is not about going after Valve.
466
00:28:43,304 --> 00:28:46,424
This is about we have a huge user base.
467
00:28:46,424 --> 00:28:46,624
Yeah, yeah.
468
00:28:47,365 --> 00:28:51,864
I would love, so my view is it is on us to make this thing so good that they want it.
469
00:28:52,183 --> 00:28:54,656
When they built SteamOS, we didn't have the thing they wanted,
470
00:28:55,585 --> 00:28:57,464
clearly, or they would have spoken to us about it, right?
471
00:28:58,272 --> 00:29:04,634
And I think if I were Valve, do I want to be maintaining a mirror of Arch Linux
472
00:29:04,634 --> 00:29:07,764
and all this kind of AB boot and Atomic update? Do I want to be maintaining that?
473
00:29:08,184 --> 00:29:11,627
Is that the USB for Valve? I don't know. Maybe it is. Maybe they are a Linux company.
474
00:29:12,167 --> 00:29:14,727
For me, we're going to build Ubuntu Core anyway.
475
00:29:15,923 --> 00:29:20,050
And people have desktop machines, increasingly desktop machines on Linux that they play games on.
476
00:29:20,503 --> 00:29:23,624
We already have a Steam Snap. We are going to have a Snap for the new launches
477
00:29:23,624 --> 00:29:25,571
that are coming out from other games companies.
478
00:29:25,931 --> 00:29:30,714
And so why not also have the ability to make that experience great on a Steam
479
00:29:30,714 --> 00:29:33,624
Deck or on a Legion Go or on a whatever, right?
480
00:29:34,344 --> 00:29:36,020
I think there's lots of opportunities there.
481
00:29:36,165 --> 00:29:40,908
It could make sense, too, from a desktop compatibility story for the non-Steam Deck devices as well.
482
00:29:41,111 --> 00:29:44,104
That's the bit that feels a bit ambitious, and I like that you're going for
483
00:29:44,104 --> 00:29:48,364
it. It's also going to push all of the edge cases on drivers and all of that stuff.
484
00:29:48,364 --> 00:29:52,564
That's kind of why I'm doing it, should I mean. So these three initial use cases,
485
00:29:52,564 --> 00:29:55,014
I've had people say, well, it seems a bit limited. Why just those three?
486
00:29:55,362 --> 00:29:59,024
But if you look at the three use cases, they are three use cases that are going
487
00:29:59,024 --> 00:30:04,184
to push the implementation in different ways and highlight to us where we still
488
00:30:04,184 --> 00:30:06,228
need to do work before we can make this the default.
489
00:30:06,588 --> 00:30:12,854
So my goal is that very soon, as in on the order of the next three to four weeks,
490
00:30:12,854 --> 00:30:15,964
there will be images that people can get their hands on. They actually are already
491
00:30:15,964 --> 00:30:17,600
out there hiding on GitHub if you look somewhere.
492
00:30:17,786 --> 00:30:20,264
But daily images that we are a bit more polished.
493
00:30:20,648 --> 00:30:25,584
By 2804, I would like us to be releasing Ubuntu core images alongside the standard
494
00:30:25,584 --> 00:30:28,020
Ubuntu. And then we'll see what happens after that.
495
00:30:28,223 --> 00:30:31,613
So let's say some guys found those images previously.
496
00:30:32,437 --> 00:30:37,505
And they took a look uh i was surprised i think the entire base for the desktop
497
00:30:37,505 --> 00:30:40,379
is only 20 snaps right now i thought it'd be like 100 snaps.
498
00:30:40,959 --> 00:30:45,275
Well therein lies the problem so that original proof of concept does indeed
499
00:30:45,275 --> 00:30:48,180
it's a few things that we have to sort of quite desperately fix uh
500
00:30:48,585 --> 00:30:51,705
one is that in that original proof of concept which we have basically taken
501
00:30:51,705 --> 00:30:56,885
and just lifted into 2026 so there's a few few patches that needed to be rebased on snap d there's,
502
00:30:57,525 --> 00:31:02,623
all of the snaps got lifted from core 22 up to core 26 but what the cheat is
503
00:31:02,907 --> 00:31:05,445
it kind of jams the whole of gnome into a single snap yeah okay,
504
00:31:06,165 --> 00:31:09,575
and that's obviously not the answer right so the whole desktop not even just
505
00:31:09,575 --> 00:31:14,015
the whole of gnome like essentially the whole desktop so our primary kind of
506
00:31:14,015 --> 00:31:16,984
piece of work over the next few months is going to be figuring out like what is,
507
00:31:17,605 --> 00:31:20,525
the correct decomposition of a desktop clearly we're going to have pipe wire
508
00:31:20,525 --> 00:31:24,165
and wire plumber do they live in a single snap do they live side by side in
509
00:31:24,165 --> 00:31:28,405
the same snap we're going to have things like lib camera we'll have gdm we'll
510
00:31:28,405 --> 00:31:30,811
have sddm where do they live also,
511
00:31:31,409 --> 00:31:34,765
for a login manager that needs quite a lot more permissions than a standard
512
00:31:34,765 -->
00:31:38,275
snap and so we'll have to do custom work in snap d to enable new interfaces
513
00:31:38,275 --> 00:31:40,465
and allow login managers right because.
514
00:31:40,645 --> 00:31:45,425
As of right now that the login manager actually is not snapped is it or it's not confined at the.
515
00:31:45,425 --> 00:31:50,115
Moment uh so that is one of the things on the images we've just made i believe
516
00:31:50,115 --> 00:31:54,325
is true so certainly for gdm we have managed to make that confine but with patches
517
00:31:54,325 --> 00:31:57,465
to snapd so it's a upstream version.
518
00:31:57,465 --> 00:31:59,335
Of snapd at the moment to make it work i.
519
00:31:59,335 --> 00:32:04,229
See yes so it's all very custom so the idea is so one of the reasons i haven't widely,
520
00:32:04,758 --> 00:32:08,605
distributed those images and the build tooling is because we're just doing some work there's a new,
521
00:32:09,076 --> 00:32:13,035
tool that we have been building in alongside all of our other craft tools called
522
00:32:13,035 --> 00:32:16,875
image craft image craft much like snap craft and rock craft will be a single
523
00:32:16,875 --> 00:32:20,338
yaml format if you know those formats it will look incredibly familiar to you
524
00:32:20,779 --> 00:32:24,477
and we have a working image craft for Ubuntu core desktop which is,
525
00:32:25,603 --> 00:32:29,168
beautiful like so much nicer than anything i've ever seen to build an ubuntu
526
00:32:29,168 --> 00:32:31,025
image and as soon as that is ready,
527
00:32:31,623 --> 00:32:36,058
essentially it will be possible for anybody to cut their own custom image custom
528
00:32:36,058 --> 00:32:39,658
ubuntu core desktop image by editing like a hundred line yaml file which is
529
00:32:39,658 --> 00:32:44,028
kind of wild that it's it's almost in the kind of almost as easy to cut your
530
00:32:44,028 --> 00:32:46,468
own images nixos kind of territory declarative.
531
00:32:46,468 --> 00:32:48,348
Images i mean i love it all right all.
532
00:32:48,348 --> 00:32:49,555
Right yeah yeah.
533
00:32:49,769 --> 00:32:52,928
Okay so it sounds like you're going to be hitting a lot of the edges that will
534
00:32:52,928 --> 00:32:59,098
be pushing probably on snap and snap d itself to get here yeah well that's probably almost worth.
535
00:32:59,098 --> 00:33:03,098
It and i mean so we have work in the kernel to do we have work in app armor
536
00:33:03,098 --> 00:33:06,298
to do we have work in snap d to do we likely will have to patch bits of the
537
00:33:06,298 --> 00:33:09,958
desktop itself like this is not something that is going to land in six months
538
00:33:10,091 --> 00:33:12,860
right and it is going to be quite the challenge but i,
539
00:33:13,749 --> 00:33:18,148
i have to believe that this is the future of ubuntu if you look at what is going
540
00:33:18,148 --> 00:33:22,968
on in the world right now with security and agents and and confidential compute
541
00:33:22,968 --> 00:33:27,128
and verified boot, measured boot, I have to believe that this is the answer.
542
00:33:27,568 --> 00:33:32,198
There are so many of those things that we can do to an extent on traditional
543
00:33:32,198 --> 00:33:35,570
Ubuntu, but we'll always be hampered by the fact that the file system is kind of floppy.
544
00:33:36,057 --> 00:33:39,378
Every process can kind of access everything, modular some file system permissions
545
00:33:39,378 --> 00:33:40,318
and some AppArmor rules.
546
00:33:40,968 --> 00:33:43,406
And I think the way we tidy that up is with Core.
547
00:33:43,778 --> 00:33:48,448
I mean, it seems like we started this interview talking about the security story, right?
548
00:33:48,448 --> 00:33:52,008
And there is a security story with this change. I think maybe also there's a
549
00:33:52,008 --> 00:33:56,108
velocity story because the securities have kind of is also moving faster,
550
00:33:56,108 --> 00:33:59,867
right? So does core change what you can do and how you can deliver updates?
551
00:34:00,779 --> 00:34:03,351
Yeah, I mean, firstly, most of the system will be on autopilot.
552
00:34:03,693 --> 00:34:06,776
Like, you know, snaps update in the background automatically.
553
00:34:06,776 --> 00:34:09,536
We can choose that cadence. They also have this nice property where you can
554
00:34:09,536 --> 00:34:15,916
say, well, I want to be on Ubuntu 2604, but I want Gnome from 2804 or from 2710, for example.
555
00:34:15,916 --> 00:34:19,796
And that's quite hard to achieve on a normal Ubuntu system without doing quite
556
00:34:19,796 --> 00:34:23,786
messy things with apt that might result in you wedging your system with a snap.
557
00:34:24,226 --> 00:34:27,056
You can just say, actually, I want to point the desktop stack at a different
558
00:34:27,056 --> 00:34:29,526
track and pull that in. And there's no reason why it shouldn't work.
559
00:34:31,206 --> 00:34:35,086
Same with for example lib camera and pipewire so often one of the things that
560
00:34:35,086 --> 00:34:40,366
happens is users of the lts as we're getting towards the next lts so 18 months
561
00:34:40,366 --> 00:34:41,838
nearly two years after the last one
562
00:34:42,215 --> 00:34:46,743
they download the lts that is currently supported and the shiny new camera module that was just,
563
00:34:47,219 --> 00:34:50,865
just built six months ago doesn't have support because it's got the wrong version of lib camera,
564
00:34:51,498 --> 00:34:53,599
maybe the wrong kernel version whereas with,
565
00:34:54,400 --> 00:34:58,646
with core it's much easier to kind of pick and choose bits and and the oems
566
00:34:58,646 --> 00:35:01,289
will be able to do the same so dell would be able to say for example
567
00:35:01,609 --> 00:35:05,636
ship their new laptop with the 2604 lts but in their image they could pick up
568
00:35:05,636 --> 00:35:08,536
the snaps and have the support for that camera without having to do kind of
569
00:35:08,536 --> 00:35:11,596
like a hacked up frank and buntu thing that's really hard to support right some custom.
570
00:35:11,596 --> 00:35:15,726
Right oh it sounds like a much more composable system that's impressive.
571
00:35:15,726 --> 00:35:18,478
That's exactly the word i would use it's composable.
572
00:35:18,664 --> 00:35:23,290
John with this aggressive timeline you mentioned 2804 as being the default.
573
00:35:23,911 --> 00:35:25,186
No not for the default,
574
00:35:27,386 --> 00:35:32,556
so i i haven't yet said this publicly but i don't see any harm in doing it other
575
00:35:32,556 --> 00:35:35,496
than perhaps raising the cortisol levels of my team slightly so i would like
576
00:35:35,496 --> 00:35:38,940
the images to be available for people to play with in 2804,
577
00:35:39,620 --> 00:35:44,066
my like stretchy stretchy stretch goal is to have this ready for being the default
578
00:35:44,066 --> 00:35:47,936
in 304 but i would like to caveat that with that is an incredibly aggressive
579
00:35:47,936 --> 00:35:50,596
timeline given the amount of work we have to do what a great release that.
580
00:35:50,596 --> 00:35:53,766
Would be what a great number that would be that's so great.
581
00:35:53,766 --> 00:35:59,181
I love that ambition right uh and so that's what i'd like to do now,
582
00:36:01,242 --> 00:36:05,430
I think the reception has been really interesting, more positive than I thought
583
00:36:05,430 --> 00:36:08,230
when you say to someone, hey, you know those snaps that Reddit loves?
584
00:36:08,230 --> 00:36:10,630
We're going to put them everywhere. It's the only way you can install stuff.
585
00:36:12,266 --> 00:36:15,296
But I think in reality, the narrative is starting to shift there.
586
00:36:15,505 --> 00:36:18,651
You know, I think I've said this before, and I'll say it again.
587
00:36:19,011 --> 00:36:23,590
Having explored the Boot C ecosystem for some time, I spent a long time running
588
00:36:23,590 --> 00:36:27,960
Nix, even while working at Canonical. My first three and a half years at Canonical,
589
00:36:27,960 --> 00:36:29,408
I was daily driving NixOS.
590
00:36:31,236 --> 00:36:33,489
The things that Snaps are good at, they're very, very good at.
591
00:36:33,715 --> 00:36:37,940
And the things they're not good at are not existential limitations.
592
00:36:37,940 --> 00:36:39,613
They're things that we have yet to implement.
593
00:36:39,834 --> 00:36:44,920
And I think one of the reasons we haven't implemented them is because it hasn't
594
00:36:44,920 --> 00:36:46,509
been the goal to make it the default.
595
00:36:46,631 --> 00:36:51,415
And now I am going to be orienting the teams internally very much towards this goal.
596
00:36:53,521 --> 00:36:57,113
This is absolutely the focus for the Ubuntu Engineering. Org is going to be landing this.
597
00:36:58,170 --> 00:37:00,460
So maybe that changes the calculus
598
00:37:00,460 --> 00:37:03,116
slightly. The SnapD team is also in
the best shape I've ever seen it.
599
00:37:03,470 --> 00:37:06,210
The leads there are doing a phenomenal job. They're very excited.
600
00:37:07,429 --> 00:37:10,592
And so I have to believe that this is possible.
601
00:37:10,924 --> 00:37:18,130
Okay. Reframing then, 30.04 as the default, given that still accelerated timeline
602
00:37:18,130 --> 00:37:24,250
for something so, let's say, different than current Ubuntu, it's going to be
603
00:37:24,250 --> 00:37:25,610
snaps everywhere, as you mentioned.
604
00:37:26,365 --> 00:37:28,010
Yeah. What does that mean for
605
00:37:28,010 --> 00:37:34,990
the Snap infrastructure and delivering Snaps to users in a reliable way?
606
00:37:34,990 --> 00:37:40,510
Is that obviously a backend that's going to need to scale, but do you have ambitions
607
00:37:40,510 --> 00:37:42,137
to have that backend be Snaps as well?
608
00:37:44,319 --> 00:37:49,375
Yes. It's no secret that we have had our fair share of infrastructure difficulties over the last year.
609
00:37:49,664 --> 00:37:55,143
Some mostly inflicted by some bad actors hurling traffic at us in all kinds
610
00:37:55,143 --> 00:37:56,603
of shapes and sizes at critical points.
611
00:37:56,903 --> 00:38:00,745
Some of it is our fault, and we're working hard to fix that.
612
00:38:01,064 --> 00:38:04,103
We have quite a lot of new infrastructure coming online over the coming weeks
613
00:38:04,103 --> 00:38:06,063
and indeed a plan on how we will
614
00:38:06,063 --> 00:38:10,724
do a more comprehensive job of global distribution of snaps if you will
615
00:38:11,118 --> 00:38:16,500
so more points of presence in more parts of the world the store itself is already,
616
00:38:17,039 --> 00:38:19,993
quite scalable it's built in such a way that i'm very confident we'll be able
617
00:38:19,993 --> 00:38:23,373
to scale it it's already i mean it's grown arms and legs it's no longer really
618
00:38:23,373 --> 00:38:27,634
the snap store it's the snap store it's the charm store It's the image store.
619
00:38:28,503 --> 00:38:33,603
There's a bunch of store backends that all essentially collect artifacts from
620
00:38:33,603 --> 00:38:38,243
RockCraft, CharmCraft, SnapCraft, ImageCraft, SDKCraft, etc.
621
00:38:38,623 --> 00:38:43,986
So the underlying engineering there, I think, is strong.
622
00:38:44,346 --> 00:38:49,433
How we deploy it and how we scale it to satisfy this is an obvious question,
623
00:38:49,433 --> 00:38:51,224
but a question to which I think we have an answer.
624
00:38:51,410 --> 00:38:55,961
Sure, sure. I think what I what I always think is absolutely wild about what
625
00:38:56,228 --> 00:39:00,738
you do at Canonical as a company is these just absolute insane support timelines,
626
00:39:01,226 --> 00:39:03,408
for enterprise customers that absolutely demand it.
627
00:39:03,728 --> 00:39:09,852
And it feels like if you're lucky and you get there, then like the 2030 versions,
628
00:39:10,328 --> 00:39:16,623
of an Ubuntu
LTS could be versions that are truly supportable for a really,
629
00:39:16,623 --> 00:39:20,260
really, really long time in a way that's actually sustainable by the company.
630
00:39:20,893 --> 00:39:23,713
And that just is clearly a feature enterprises want. So, yeah,
631
00:39:23,713 --> 00:39:27,763
we've been talking a lot about the desktop, but this has to totally change the
632
00:39:27,763 --> 00:39:32,155
game for LTS enterprise support once they start making the transition, right? Right.
633
00:39:33,374 --> 00:39:36,642
I think so. And I think the cell for Ubuntu core is kind of more clear in the
634
00:39:36,642 --> 00:39:40,682
enterprise setting. So I want to be very clear that it is absolutely my intention
635
00:39:40,682 --> 00:39:44,583
to make this great for the tinkerers, the hackers, the Linux enthusiasts. I am one.
636
00:39:44,862 --> 00:39:47,242
Do you know what I mean? And all the time I'm doing this job,
637
00:39:47,242 --> 00:39:49,722
I'm somewhat committed to using Ubuntu and I don't want to build a thing I don't
638
00:39:49,722 --> 00:39:53,862
want to use. We've had nerdy conversations about the weird crimes I used to
639
00:39:53,862 --> 00:39:56,752
commit with NixOS and Arch and all kinds of other things. I don't want to build
640
00:39:56,752 --> 00:39:57,701
a thing I don't want to use.
641
00:39:58,582 --> 00:40:03,952
But I think the cell for enterprise is much clearer a system that where every
642
00:40:03,952 --> 00:40:05,277
application is confined
643
00:40:05,689 --> 00:40:08,862
there are very clear models about what every binary on the system can and can't
644
00:40:08,862 --> 00:40:13,012
do it's easy to roll out updates completely automatically the updates are atomic
645
00:40:13,012 --> 00:40:14,742
they're transactional right the,
646
00:40:15,242 --> 00:40:18,512
user user data is kind of backed up and snapshotted before apps are updated
647
00:40:18,512 --> 00:40:20,712
there's this kind of composability of okay well,
648
00:40:21,177 --> 00:40:24,762
my my workstations over there all have nvidia gpus in them because they're the
649
00:40:24,762 --> 00:40:27,842
ml people and the servers over here have melanux cards in them and they need
650
00:40:27,842 --> 00:40:31,254
something weird in the Enit ID, all of those problems,
651
00:40:32,376 --> 00:40:34,982
should be easier to solve with core.
652
00:40:35,115 --> 00:40:39,147
And then there's the application support levels too like all of that too yeah that's.
653
00:40:39,147 --> 00:40:44,147
Very right i think especially like legacy in quotes applications yeah you know
654
00:40:44,147 --> 00:40:45,527
the the whole point about snaps
655
00:40:45,527 --> 00:40:49,540
of course is they bring their runtime the base with them and so it is
656
00:40:49,969 --> 00:40:53,737
eminently possible to keep either very old versions of software working on very
657
00:40:53,737 --> 00:40:57,587
new linux or very new versions of software working on very
old linux and the
658
00:40:57,587 --> 00:40:59,717
whole point is that the machinery takes care of that.
659
00:40:59,717 --> 00:41:03,948
And we see, like, that is something that is proven. Like, I am happy to be,
660
00:41:04,499 --> 00:41:08,357
you know, I'm happy for people to dispute snaps on the desktop where they,
661
00:41:08,717 --> 00:41:12,632
you know, I don't want to minimize that people have had bad experience with snaps on the desktop.
662
00:41:13,073 --> 00:41:15,467
I've seen apps that don't work. Some apps don't work. It's hard to make them
663
00:41:15,467 --> 00:41:19,917
work in the same way that, you know, you NixOS loving folks will recognize that
664
00:41:19,917 --> 00:41:22,917
sometimes packaging apps for Nix is hard. Like you have to patch them and they
665
00:41:22,917 --> 00:41:25,060
do unexpected things. And we have all of those problems.
666
00:41:25,734 --> 00:41:30,209
But I have to be honest with you, I run a basically stock Ubuntu system,
667
00:41:30,418 --> 00:41:33,227
and every single app that I interact with on a daily basis for the last year
668
00:41:33,227 --> 00:41:38,696
and a half has been a snap, and it has bitten me once or twice, and not for very long.
669
00:41:41,331 --> 00:41:45,509
And not only is support for snaps getting better, but the way that we understand
670
00:41:45,509 --> 00:41:46,931
them and facilitate them is getting better.
671
00:41:47,210 --> 00:41:50,999
And I think my hope is that we can build a system that's genuinely very compelling.
672
00:41:50,999 --> 00:41:52,789
Like I want an Ubuntu core home assistant.
673
00:41:53,050 --> 00:41:53,829
Yeah. No kidding.
674
00:41:54,019 --> 00:41:56,869
That automatically updates and snapshots the data and takes care of all the
675
00:41:56,869 --> 00:41:58,135
backups. Like I want that.
676
00:41:59,179 --> 00:42:03,644
And I think we can make something fun for the non-enterprise community too.
677
00:42:03,864 --> 00:42:07,409
Well, here's what I'm hearing. So we started talking about the recent security
678
00:42:07,409 --> 00:42:11,479
issues, and you mentioned the pipeline that you've been building out at Canonical
679
00:42:11,479 --> 00:42:13,083
to deliver patches faster.
680
00:42:13,489 --> 00:42:18,129
And then we talked about delivering Ubuntu core experience where individual
681
00:42:18,129 --> 00:42:19,779
components can be updated and swapped out.
682
00:42:19,779 --> 00:42:23,479
And with the rate of security issues we're seeing today, that just seems like
683
00:42:23,479 --> 00:42:26,889
a thing that not only enterprise users are going to want, but eventually regular
684
00:42:26,889 --> 00:42:29,729
users are going to appreciate the ability to have a stable base where those
685
00:42:29,729 --> 00:42:31,926
components can be updated when security issues come out.
686
00:42:32,326 --> 00:42:35,389
Like they're really, if you think about it, is a pretty complete security picture
687
00:42:35,389 --> 00:42:39,501
here from production of patches to deployment to end users that,
688
00:42:39,681 --> 00:42:41,504
you know, if you can execute
689
00:42:41,926 --> 00:42:45,559
in the right timeline, you may be meeting the market right where they're at
690
00:42:45,559 --> 00:42:48,532
when they realize they need something like this. So that's pretty exciting for you guys.
691
00:42:49,681 --> 00:42:54,076
Yeah. And we do have genuine use cases in the market with real customers,
692
00:42:54,076 --> 00:42:55,336
big customers, customers whose
693
00:42:55,336 --> 00:42:58,092
names you will definitely know where snaps have proven to be the thing.
694
00:42:58,255 --> 00:43:00,966
They were, they were reticent. They lean into it. We help them.
695
00:43:05,926 --> 00:43:08,606
And so, you know, I accept that there have been difficulties,
696
00:43:08,606 --> 00:43:13,726
but I also, I flatly reject the idea that they are just unsuitable for the desktop
697
00:43:13,726 --> 00:43:18,398
and they don't work because I have no evidence to support that in 2026.
698
00:43:18,648 --> 00:43:22,466
Sounds like you're going to try to prove it. You're going to try to prove it works.
699
00:43:22,466 --> 00:43:23,408
I'm not going to try, Chris.
700
00:43:25,226 --> 00:43:28,796
I love it, John. Very good. Well, thank you so much for coming on and updating
701
00:43:28,796 --> 00:43:30,676
us on everything. You guys have been super busy.
702
00:43:30,686 --> 00:43:35,786
There's been a lot going on. And we're absolutely going to follow the new core
703
00:43:35,786 --> 00:43:38,246
work with super interest.
704
00:43:38,246 --> 00:43:40,796
We're going to be trying it. We've already pulled down the images and been poking
705
00:43:40,796 --> 00:43:44,796
around. So we're already pretty excited. So keep up the great work,
706
00:43:44,796 --> 00:43:45,837
John. And thank you for joining us.
707
00:43:46,133 --> 00:43:47,463
Thank you very much for having me. I appreciate it.
708
00:44:00,239 --> 00:44:04,926
Canonical has introduced Mina, an open source privacy focused speech to text
709
00:44:04,926 --> 00:44:11,066
tool that runs entirely on your own Linux desktop without requiring cloud services.
710
00:44:12,685 --> 00:44:15,385
And you can get your hands on it right now.
711
00:44:15,623 --> 00:44:16,180
Right now.
712
00:44:16,778 --> 00:44:21,149
It's not installed by default on Ubuntu 26.10, but it is very easy to get up and going.
713
00:44:21,265 --> 00:44:22,954
Yeah, technical preview, I think, right?
714
00:44:23,088 --> 00:44:23,676
Mm-hmm.
715
00:44:23,676 --> 00:44:24,686
Technology preview.
716
00:44:24,686 --> 00:44:28,146
It's a snap, obviously, when you try it on Ubuntu. I think the goal is to try
717
00:44:28,146 --> 00:44:33,421
to have this thing in production shape by 2804, which will be the next LTS.
718
00:44:34,832 --> 00:44:38,355
And you can also get it installed outside of Ubuntu if you'd like.
719
00:44:39,225 --> 00:44:44,734
Like Brent said,
it is entirely local. Speech recognition happens on your device. It's offline capable.
720
00:44:45,431 --> 00:44:48,229
And it supports multiple different backends, depending on the best fit for your
721
00:44:48,229 --> 00:44:50,592
hardware. And hardware accelerators if you got it.
722
00:44:50,940 --> 00:44:54,417
It feels to me like they've really been listening to their crowd with this one.
723
00:44:55,139 --> 00:45:00,029
Going all local is, of course, going to get the, well, dear folks of ours like
724
00:45:00,029 --> 00:45:04,679
PJ, who really, really, you know, that counts for a lot of people.
725
00:45:04,679 --> 00:45:07,914
So I feel like they're listening to their crowd, or at least our crowd.
726
00:45:08,558 --> 00:45:14,009
It feels like baby steps to me. But voice dictation is kind of,
727
00:45:14,009 --> 00:45:17,879
of all of the different local models that are pretty easy to run on different,
728
00:45:18,359 --> 00:45:20,989
grades of hardware, voice dictation is kind of where we're at.
729
00:45:20,989 --> 00:45:22,670
It's like the best showcase for that.
730
00:45:23,280 --> 00:45:26,159
Yeah, they've got it pretty nicely set up, especially if you're on Ubuntu.
731
00:45:26,159 --> 00:45:29,249
There's a wide, you know, the most recent few releases all support it because
732
00:45:29,249 --> 00:45:32,549
you can just do it in strictly confined snaps. So each piece,
733
00:45:32,549 --> 00:45:35,104
you know, there's Mina, Mina Whisper, Mina Parakeet.
734
00:45:35,302 --> 00:45:40,619
So you can have the inference side just attached via Snap. And Snap confinement
735
00:45:40,619 --> 00:45:43,991
is useful if you want to make sure that this kind of data is kept where it needs to go.
736
00:45:44,258 --> 00:45:47,109
Now, you can also install it by building it. You know, it's a Python app.
737
00:45:47,109 --> 00:45:49,259
You don't have to use Snaps if you don't want to.
738
00:45:49,719 --> 00:45:53,579
Yeah, it's got two parts. There's Python on the server. That does the inference
739
00:45:53,579 --> 00:45:57,615
part, right? So it's got adapters for Whisper, Parakeet, Fun ASR.
740
00:45:57,946 --> 00:46:01,005
You just kind of do pip extra. It's got UV in the repo there.
741
00:46:01,899 --> 00:46:04,354
All very standard, supports CPU as the default target.
742
00:46:05,619 --> 00:46:10,159
NVIDIA GPUs are also supported. There's plans to do other accelerators down the road.
743
00:46:10,159 --> 00:46:10,579
Nice.
744
00:46:10,579 --> 00:46:12,685
And then there's a client, which is Rust.
745
00:46:13,339 --> 00:46:14,246
Oh, wait for it.
746
00:46:14,908 --> 00:46:15,599
Yeah, come on.
747
00:46:15,883 --> 00:46:16,684
Sorry, sorry.
748
00:46:17,433 --> 00:46:24,341
Rust. Yeah, Mina Desktop Demon. No GTK, just Tokyo ZBus GetText,
749
00:46:24,637 --> 00:46:26,634
plus a little Mina Testbed CLI.
750
00:46:27,359 --> 00:46:32,469
There are GUI crates, too. So there is the pill, I think they call it,
751
00:46:32,469 --> 00:46:33,309
that you can get for the GUI.
752
00:46:33,359 --> 00:46:36,599
I haven't tried that yet. That needs GTK4 living with you.
753
00:46:37,761 --> 00:46:41,047
Kind of the interesting part on text injection, how it actually works,
754
00:46:41,772 --> 00:46:47,559
it's got the IBUS injector, which speaks the IBUS-DBUS wire protocol via that ZBUS library.
755
00:46:48,567 --> 00:46:54,117
No FFI. Registers the component and the engine and then becomes the global engine
756
00:46:54,117 --> 00:47:00,138
during dictation. So it hooks kind of right into how the system expects this to work and takes over.
757
00:47:00,463 --> 00:47:04,907
Yeah. It also has that, because of that, it has the smarts to reject password and pin fields.
758
00:47:04,907 --> 00:47:05,677
Oh, that's cool.
759
00:47:05,747 --> 00:47:07,187
I don't know if that's configurable. Mm-hmm.
760
00:47:07,802 --> 00:47:11,713
So functionally, the way this works is it's kind of like a push-to-talk system.
761
00:47:12,108 --> 00:47:16,777
And it sets up a hotkey on your box, and then it inputs the text into whatever
762
00:47:16,777 --> 00:47:18,569
is an active input field.
763
00:47:18,819 --> 00:47:25,117
And I have an Aurora Silverblue slash system here, and I've installed it on this system.
764
00:47:25,535 --> 00:47:30,167
And if I hold down super shift T, it should start working, and then it should
765
00:47:30,167 --> 00:47:33,208
transcribe and input whatever I say. So I'll give it a shot here.
766
00:47:33,579 --> 00:47:35,237
So what did I say? Super shift T?
767
00:47:35,237 --> 00:47:35,913
That's right.
768
00:47:37,277 --> 00:47:41,977
Okay i am now speaking and we'll see if it dictates whatever i say into the
769
00:47:41,977 --> 00:47:47,575
thingy hopefully it does and i'm going to release the super shift t now nothing happened.
770
00:47:47,726 --> 00:47:51,007
I don't see notifications because i was going to say if you don't install the gui part.
771
00:47:51,007 --> 00:47:52,097
You don't get the notification.
772
00:47:52,097 --> 00:47:56,207
Well no uh the main interface is system notifications which worked pretty well
773
00:47:56,207 --> 00:48:01,635
um i got it running on my system in plasma and so just pop up and say hey now transcribing and then.
774
00:48:01,838 --> 00:48:04,507
When it was done it would okay i'm going to try it again i because i do see
775
00:48:04,507 --> 00:48:07,357
it in my system tray i'm gonna try it again what i say was shift super shift
776
00:48:07,357 --> 00:48:12,287
t super shift t okay i'm trying you again and i do see my system tray icon changing,
777
00:48:12,804 --> 00:48:15,021
and i have firefox set as the input window,
778
00:48:16,548 --> 00:48:17,477
it didn't work this time.
779
00:48:17,715 --> 00:48:19,474
And for mine you didn't hold it it was just.
780
00:48:19,654 --> 00:48:22,377
Oh should i do that oh really i don't hold it maybe i'm doing it wrong.
781
00:48:22,377 --> 00:48:24,787
Yeah like triggers it it's press to talk again.
782
00:48:24,787 --> 00:48:27,879
Okay so with hex it's push to talk maybe that's what i'm thinking about,
783
00:48:29,672 --> 00:48:33,515
Okay, now I've just pressed it once. Oh, yeah. Oh, yeah, that was it.
784
00:48:34,123 --> 00:48:37,600
You only press it once. So it was capturing all of that,
785
00:48:39,673 --> 00:48:44,404
the entire time we were speaking. It was capturing all of that. So let's try it again.
786
00:48:45,623 --> 00:48:49,790
Okay, let's try it one more time. So I'll do super shift T, and then we'll see
787
00:48:49,790 --> 00:48:52,578
how it does, right? Super shift T.
788
00:48:54,117 --> 00:48:59,920
I am the captain of the USS Linux Unplugged, and I am trying to transcribe my
789
00:48:59,920 --> 00:49:01,756
text for future alien races.
790
00:49:02,458 --> 00:49:06,975
Then do I press it again to stop? Yep. Okay. Super shift T.
791
00:49:08,140 --> 00:49:10,818
Yeah, there it goes. Boom. Make it so it captured the whole thing.
792
00:49:12,600 --> 00:49:17,533
I am the captain of USS Linux Unplugged and I am trying to transcribe my text for future alien races.
793
00:49:17,807 --> 00:49:21,062
Then do I press it again to stop? Yep. Okay. Super shift.
794
00:49:22,137 --> 00:49:26,630
There we go. Yeah, I tested it over here earlier and from you talking way over there.
795
00:49:26,630 --> 00:49:27,250
You picked it up?
796
00:49:27,250 --> 00:49:27,478
Yeah.
797
00:49:27,622 --> 00:49:29,299
Huh. It's pretty quick.
798
00:49:30,460 --> 00:49:34,450
By default, it'll just auto-download Whisper Tiny. But you can change that.
799
00:49:34,450 --> 00:49:37,420
You can point it at local stuff if you want. It can do parakeet, too.
800
00:49:40,509 --> 00:49:44,270
I kind of prefer push-to-talk, but I think I could learn that. That seems fine to me.
801
00:49:44,839 --> 00:49:47,270
The thing is, I want to do it one more time. Brent, you try it,
802
00:49:47,270 --> 00:49:51,880
okay? And I want to watch while you do it. I want to watch what my CPU usage
803
00:49:51,880 --> 00:49:58,161
is. So before we start, my CPU usage is at a baseline of around 3.9% at the high end, all right?
804
00:49:58,521 --> 00:50:01,627
So I'm going to press it, super shift T, and then you speak now.
805
00:50:02,016 --> 00:50:05,348
Hello, I'm here reporting how many tabs I currently have open,
806
00:50:05,749 --> 00:50:10,961
but the counter that I'm using doesn't actually go that high, so I have no idea.
807
00:50:12,512 --> 00:50:18,169
Okay, super shift T again. And I saw it look like, I'm going to run it one more
808
00:50:18,169 --> 00:50:21,119
time, but it looked like CPU usage was only 10% there for a second.
809
00:50:21,119 --> 00:50:22,775
That doesn't seem right. Maybe that capture was too slow.
810
00:50:23,071 --> 00:50:24,145
It does, I think, use...
811
00:50:24,551 --> 00:50:24,939
The GPU?
812
00:50:25,259 --> 00:50:28,329
No, it's aimed at CPU by default. So they have kind of put some thought into that.
813
00:50:29,426 --> 00:50:30,719
Okay, so they've put thought into...
814
00:50:30,819 --> 00:50:34,419
Because if it's, you know, they're going for some sort of like intent-driven
815
00:50:34,419 --> 00:50:38,129
Ubuntu maybe in the future. So they want, if you ever wanted it to be a widely
816
00:50:38,129 --> 00:50:41,329
deployed feature, you're going to need it to be able to run ideally right across
817
00:50:41,329 --> 00:50:43,939
a lot like whatever people have, even if they don't have a nice.
818
00:50:44,450 --> 00:50:48,699
Okay. So if you, by the way, if you're dictating and it loses focus, it stops dictating.
819
00:50:49,703 --> 00:50:52,629
All right. I'm going to run it one more time. I'm now using a plasma system
820
00:50:52,629 --> 00:50:58,045
monitor and I'm going to do, okay, I'm going to do some dictation here, boys. Super shift T.
821
00:50:59,119 --> 00:51:03,583
Okay. I'm doing one more real world test here and my CPU usage is at 24%.
822
00:51:03,873 --> 00:51:07,838
So we went from about 4% to 24% and I'm going to do super shift T to stop it.
823
00:51:08,923 --> 00:51:15,839
Oh, now the, okay. Okay, CPU spiked to 60% after I stopped it for just two seconds
824
00:51:15,839 --> 00:51:17,898
maybe, maybe at that much, and then it's done.
825
00:51:18,716 --> 00:51:22,841
So after you release it, it takes on this system about one to two seconds.
826
00:51:22,841 --> 00:51:27,079
And then it gives you the whole everything you said all at once. It's pretty quick.
827
00:51:27,329 --> 00:51:30,721
Yeah. So I think that's the sort of Rust part running. And then it calls over
828
00:51:30,721 --> 00:51:32,521
to the Python server to do the inference.
829
00:51:32,521 --> 00:51:36,321
I mean, I maybe. So, I mean, if you're being fair, at the very highest end,
830
00:51:36,321 --> 00:51:40,651
I paid a 20% CPU tax. But actually watching it, my CPU is bouncing around 17%
831
00:51:40,651 --> 00:51:41,831
without this running at the moment.
832
00:51:41,831 --> 00:51:43,161
So who knows?
833
00:51:44,201 --> 00:51:48,751
Actually pretty darn impressive. That is pretty freaking impressive.
834
00:51:48,751 --> 00:51:52,941
Fast too it doesn't feel it doesn't feel like my system's heavy like i don't
835
00:51:52,941 --> 00:51:55,561
feel like i'm using a ton of system resources to have that run.
836
00:51:55,561 --> 00:51:57,011
It seemed like you could just have it sitting there.
837
00:51:57,011 --> 00:51:59,210
Yeah which is a real sweet spot.
838
00:51:59,396 --> 00:52:04,991
Do you think it's smooth enough to you know move to a new web page go to a new
839
00:52:04,991 --> 00:52:09,221
entry for i don't know sending a message or recording something and just like boop,
840
00:52:09,810 --> 00:52:13,541
say it and then boop out because we've been doing like the slow experimenting
841
00:52:13,541 --> 00:52:16,230
version but how do you think that would translate to just everyday use.
842
00:52:16,602 --> 00:52:19,661
I think as long as you have the act as long as a text field is the active input
843
00:52:19,661 --> 00:52:22,021
box and it doesn't switch in the middle of dictation you're good to go.
844
00:52:22,021 --> 00:52:26,371
Yeah i had to work with slack and open code i would say you might eventually
845
00:52:26,371 --> 00:52:29,191
want something bigger than whisper tiny i had a.
846
00:52:29,191 --> 00:52:29,720
Few things.
847
00:52:29,871 --> 00:52:34,102
Like it kind of struggled with mina itself a bit and it got my name is west at one point.
848
00:52:34,857 --> 00:52:39,031
So the one nice thing about hex that i'd love to see and i don't have the gtk
849
00:52:39,031 --> 00:52:44,201
toolkit stuff to install to see if this is an option but with hex you can go
850
00:52:44,201 --> 00:52:47,541
in there and there's like a technical database and a common miss,
851
00:52:49,044 --> 00:52:52,541
transcribed words and you can you can put in there and say when you pick up
852
00:52:52,541 --> 00:52:56,481
this word insert this word instead and when you when it mistakes you know apt
853
00:52:56,481 --> 00:52:59,661
get for you know something else replace it with actual app dash get,
854
00:53:00,306 --> 00:53:02,711
and so i like that feature i don't know if this has it just because i don't
855
00:53:02,711 --> 00:53:06,611
have the gdk4 dependencies to show that but i think the performance of this
856
00:53:06,611 --> 00:53:08,996
might be better than hex having tried that recently.
857
00:53:09,141 --> 00:53:12,531
So So there's some interesting technical... I mean, so there's like the style,
858
00:53:12,531 --> 00:53:18,603
push to talk versus, you know, toggle on to talk or however Brent said it. In a way...
859
00:53:20,174 --> 00:53:24,674
They take kind of very different approaches. So Mina is like the Linux desktop,
860
00:53:24,959 --> 00:53:27,074
you know, kind of makes sense because it's coming from Canonical.
861
00:53:27,074 --> 00:53:30,944
Like it plays inside like the sort of the proper way to do it.
862
00:53:30,944 --> 00:53:34,856
Like you would expect it to be done. It's in the input method framework, iBus, Dbus.
863
00:53:35,315 --> 00:53:39,984
So the sort of correct desktop citizen approach. Hex bypasses all of it.
864
00:53:39,984 --> 00:53:40,784
Of course.
865
00:53:40,784 --> 00:53:45,574
X test, synthetic key events, clipboard paste on X11. W type on WL roots,
866
00:53:45,574 --> 00:53:48,260
Wayland. Remote desktop portal on GNOME and KDE.
867
00:53:49,543 --> 00:53:52,248
So sort of cruder, but compositor agnostic.
868
00:53:52,248 --> 00:53:52,608
Yeah.
869
00:53:52,608 --> 00:53:55,818
So I think that makes it, you know, because it also supports Mac and Windows.
870
00:53:55,818 --> 00:53:59,876
Yeah, that's, I guess, Hex's advantage there, but I don't care about that too much.
871
00:54:00,752 --> 00:54:04,378
I care about this. I care about it being a better Linux citizen.
872
00:54:04,378 --> 00:54:08,238
Yeah, Hex might be a little farther along in some ways and a little more, you know, developed.
873
00:54:08,238 --> 00:54:12,467
Especially with the annotation features. I think it kind of pulled ahead there, but who cares?
874
00:54:12,937 --> 00:54:20,178
And I think mine is maybe putting more thought into some of the privacy security architecture.
875
00:54:20,178 --> 00:54:24,608
Not that that's a problem in Hex, but just like they've taken this modular snap-based
876
00:54:24,608 --> 00:54:27,948
approach. They're really being careful about that kind of thing and integrating
877
00:54:27,948 --> 00:54:29,528
with these first-class protocols.
878
00:54:30,228 --> 00:54:34,268
And seemingly picking very good models. I don't know where Hex is on that,
879
00:54:34,268 --> 00:54:36,957
but I like the model flexibility with Manure, however you say it.
880
00:54:37,386 --> 00:54:39,678
Yeah, they both seem to have pretty good model flexibility, which is great.
881
00:54:39,678 --> 00:54:42,094
Yeah, that is true. That is true. Both of them seem to do.
882
00:54:44,248 --> 00:54:45,194
Better than I expected.
883
00:54:45,740 --> 00:54:49,048
Yeah i got i was able to get it running uh yeah it wasn't packaged for nix but
884
00:54:49,228 --> 00:54:52,548
yeah just a rust and a python which are both pretty standard and then on kde
885
00:54:52,548 --> 00:54:57,548
you just register like a global shortcut and then you can tie it immediately
886
00:54:57,548 --> 00:54:59,770
into the rust side of things the rust client and then,
887
00:55:00,664 --> 00:55:05,018
away you go i think there is a bug on some older firefoxes that it can interact
888
00:55:05,018 --> 00:55:09,227
weirdly with like it just won't show up or i think some people had firefox crash
889
00:55:09,540 --> 00:55:13,830
but that was fixed in recent firefoxes so just be updated there which you probably want to do anyway.
890
00:55:14,457 --> 00:55:17,243
I feel like this is a workflow for you Brad.
891
00:55:17,551 --> 00:55:24,735
I remember about a year and a half of go I after one of the shows said hey Chris I really,
892
00:55:25,729 --> 00:55:31,248
am trying to get working a way to just talk at my computer and I tried for a
893
00:55:31,248 --> 00:55:36,613
little bit and never got it there well they're doing the work for me so bring it on.
894
00:55:37,698 --> 00:55:41,515
You're going to, if you try this, you're going to find the brain dump aspect
895
00:55:41,515 --> 00:55:44,585
of it so useful, especially if you're working with a clanker in an open code
896
00:55:44,585 --> 00:55:50,625
session, because they're really good at parsing a brain dump into structured information.
897
00:55:50,625 --> 00:55:56,105
Like they're really good at that. So you can just blah, and then it cleans it all up. Boom.
898
00:55:56,453 --> 00:56:00,295
I think even for like an everyday task, like journaling or something like that,
899
00:56:00,295 --> 00:56:04,267
or
capturing some kind of memory or a note, like where you just,
900
00:56:04,813 --> 00:56:08,445
you want it in text, but actually you just want a stream of consciousness.
901
00:56:09,005 --> 00:56:11,460
This is a perfect tool, especially if you're just sitting at your desk.
902
00:56:11,628 --> 00:56:15,483
Pretty good. I think if this is the direction they're going, it bodes well.
903
00:56:16,353 --> 00:56:19,845
You'd really have to find something. You'd really have to dig to find something
904
00:56:19,845 --> 00:56:22,342
you don't like about what they're doing here. You really have to dig.
905
00:56:23,044 --> 00:56:25,335
And the fact that you don't even have to use snaps if you don't like snaps you
906
00:56:25,335 --> 00:56:28,125
can't even complain about that but if you do use a snap it's really easy to
907
00:56:28,125 --> 00:56:32,657
get going a gpl3 good work guys good work we're very impressed.
908
00:56:43,913 --> 00:56:48,418
We received some wonderful feedback recently and there's a bit of a theme here
909
00:56:48,545 --> 00:56:53,495
what are you building a little bit of a building report going on here and we've
910
00:56:53,495 --> 00:56:55,575
got a first note from pedro,
911
00:56:57,997 --> 00:57:00,818
Pager says, hey there, Linux team. Aw, Drew, you're included.
912
00:57:01,143 --> 00:57:05,535
After reading back in August about the teenager that got his HP printer working
913
00:57:05,535 --> 00:57:12,045
on macOS with CloudCode, I tried something similar with a BioKey side-touch fingerprint reader,
914
00:57:12,440 --> 00:57:15,085
which was Windows only, to get it working on Linux.
915
00:57:16,618 --> 00:57:21,015
Working with CloudCode and Codex, I've now built a native Linux driver that
916
00:57:21,015 --> 00:57:25,395
lets me enroll a fingerprint and authenticate through the normal Fedora and
917
00:57:25,395 --> 00:57:28,240
KDE desktop tools. It's still experimental.
918
00:57:29,045 --> 00:57:30,469
And I'm testing it on my own hardware.
919
00:57:31,740 --> 00:57:35,865
That is so neat. I've been wondering if things like fingerprint readers,
920
00:57:35,865 --> 00:57:36,945
the other thing unlock would be.
921
00:57:36,945 --> 00:57:38,065
You know, this one doesn't work.
922
00:57:38,065 --> 00:57:42,352
I know. You know what would be amazing is I have an LTE adapter in one of those Nix books.
923
00:57:42,845 --> 00:57:43,055
Oh, yeah.
924
00:57:43,165 --> 00:57:46,325
But they don't support no Linux. I know. I love that.
925
00:57:46,805 --> 00:57:47,755
Go for them. Go for them.
926
00:57:47,765 --> 00:57:51,750
We're in like the golden age of fix the little thing that's been bothering me forever.
927
00:57:52,418 --> 00:57:53,294
Golden age, brother.
928
00:57:53,520 --> 00:57:54,915
Pedro has a reality check for us.
929
00:57:55,125 --> 00:57:57,096
Oh, no, really? Oh, it was going so well.
930
00:57:57,230 --> 00:58:02,118
Page was continuing. Getting there was a much longer effort than I actually
expected.
931
00:58:02,582 --> 00:58:06,843
Read, it was brutal. Plenty of false starts and dead ends.
932
00:58:07,342 --> 00:58:11,875
This isn't something someone could simply vibe code without a background in
933
00:58:11,875 --> 00:58:13,175
software architecture.
934
00:58:13,906 --> 00:58:17,435
It's given me enormous respect for the people who brought unsupported hardware
935
00:58:17,435 --> 00:58:19,775
to Linux, particularly before these LLMs.
936
00:58:19,775 --> 00:58:20,845
Yeah, I know.
937
00:58:21,445 --> 00:58:25,795
Missing features and incomplete hardware support are still barriers to adoption
938
00:58:25,795 --> 00:58:30,085
and I hope projects like this encourage others to help close these gaps.
939
00:58:30,526 --> 00:58:36,348
Happy to talk about what worked, where AI fell short and show the driver in use best.
940
00:58:36,703 --> 00:58:42,415
Pedro Man, how great would that be to sit down over a meal with Pedro and chat about it?
941
00:58:42,415 --> 00:58:43,205
That's so fun You know.
942
00:58:43,205 --> 00:58:44,235
That'd be a great convo.
943
00:58:44,235 --> 00:58:46,020
What can I need to find a meetup location?
944
00:58:46,350 --> 00:58:46,763
Good idea,
945
00:58:48,729 --> 00:58:49,679
Wes, we want to take Anton?
946
00:58:49,679 --> 00:58:55,169
Yeah, Anton writes in, hey, Linux Unplugged Crew. I set up an Intel N150 mini
947
00:58:55,169 --> 00:58:59,239
PC as a home server with Jellyfin, Sonar, Radar, Browler, and a request app.
948
00:58:59,239 --> 00:58:59,889
Oh, nice.
949
00:58:59,889 --> 00:59:02,040
To simplify that stack, I built Torsure.
950
00:59:02,197 --> 00:59:03,857
Wait, this is the developer of Torsure?
951
00:59:04,322 --> 00:59:04,647
Yeah.
952
00:59:04,838 --> 00:59:05,448
Wow.
953
00:59:06,075 --> 00:59:09,877
One Docker container with one database and one interface made for the TV first.
954
00:59:10,103 --> 00:59:12,189
Version 1.0 came out on October 26th.
955
00:59:12,189 --> 00:59:15,779
I've been watching. Well, my clanker found it the day you launched this and
956
00:59:15,779 --> 00:59:18,884
alerted me about this and said, this is right up your alley. And it was right.
957
00:59:19,640 --> 00:59:23,099
A few details. Playback starts while the file downloads, fetching a few minutes
958
00:59:23,099 --> 00:59:26,329
ahead and stopping when you close the player. How much have we been talking about that?
959
00:59:26,329 --> 00:59:27,866
Love that so much.
960
00:59:28,892 --> 00:59:36,306
TV interface for the browser engine of LG TVs from 2020 with LG WebOS app and Magic Remote Pointer.
961
00:59:36,676 --> 00:59:41,513
Library Jellyfin plaques Cody can read with hard links so kept files take no extra space.
962
00:59:41,919 --> 00:59:45,622
On-the-fly GPU transcoding when a TV can't play a file.
963
00:59:53,564 --> 00:59:58,229
So for those that are not quite following, what this is solving is typically
964
00:59:58,229 --> 01:00:01,019
with the home media stack, if you really want the full automated,
965
01:00:01,019 --> 01:00:05,673
like backing up off the internet stack, you're looking at anywhere from three to five containers.
966
01:00:06,613 --> 01:00:11,279
It's a lot. This is doing it all in a single stack and providing the interface
967
01:00:11,279 --> 01:00:13,589
as well. Really impressive.
968
01:00:13,589 --> 01:00:15,302
Turning it into one focus product.
969
01:00:16,489 --> 01:00:18,739
It was already on my, I should be looking at this and following it.
970
01:00:18,739 --> 01:00:19,589
Thanks for writing in.
971
01:00:19,589 --> 01:00:19,749
Yes.
972
01:00:19,829 --> 01:00:20,319
That's awesome.
973
01:00:20,319 --> 01:00:23,620
Yes. That's really great. Thank you, Anton. Appreciate that.
974
01:00:23,905 --> 01:00:29,089
We'll put a link to Torsher, T-O-R-S-H-E-R, in the show notes.
975
01:00:29,936 --> 01:00:34,299
Koya writes in, hi, Chris West and Brent. Your Oops All Shells episodes seem
976
01:00:34,299 --> 01:00:39,207
like a good reason to mention Koya Shell, a hyperlink shell built by my boss, Stefan.
977
01:00:39,514 --> 01:00:43,919
It brings desktop controls, launcher, and notifications together with a shared
978
01:00:43,919 --> 01:00:48,509
theme from login to lock screen underneath the JavaScript UI on Koya's own GPU
979
01:00:48,509 --> 01:00:50,132
render without a browser underneath.
980
01:00:51,519 --> 01:00:55,349
That is nice. There's a live ISO to try it from. Great.
981
01:00:55,709 --> 01:01:01,039
You can try it out when it boots. The shell is CEC by four, so it's Creative Commons 4.0.
982
01:01:01,509 --> 01:01:04,290
Runtime is an open source, but it is free for non-commercial use.
983
01:01:05,143 --> 01:01:07,829
Would you be having a play? Interested to hear where it's among the shells you've
984
01:01:07,829 --> 01:01:10,483
discussed? Well, I would be interested in taking a look at this.
985
01:01:10,610 --> 01:01:13,809
Yeah, I saw this float through. I just thought, like, maybe we can see what
986
01:01:13,809 --> 01:01:14,668
it looks like. I don't know.
987
01:01:14,906 --> 01:01:18,039
I have been pretty happy with the recent shell setup, but I think there's room
988
01:01:18,039 --> 01:01:19,649
for improvement in terms of efficiency.
989
01:01:19,649 --> 01:01:20,688
It seems very clean.
990
01:01:21,048 --> 01:01:24,169
Yeah. I do like the way it looks a lot.
991
01:01:24,529 --> 01:01:28,169
And it just seemed like worth seeing because there are clearly folks out there
992
01:01:28,169 --> 01:01:30,689
also experimenting with the shells.
993
01:01:30,689 --> 01:01:31,779
We're building our own shells.
994
01:01:31,779 --> 01:01:32,619
It's a whole new thing.
995
01:01:32,619 --> 01:01:36,593
It's absolutely crazy. It's absolutely crazy, and I'm here for it.
996
01:01:36,953 --> 01:01:37,998
I'm here for that craziness.
997
01:01:38,770 --> 01:01:42,375
Thank you very much, Koya. Or not Koya. The project name is Koya.
998
01:01:42,834 --> 01:01:43,931
Thank you
very much for sending that in.
999
01:01:44,732 --> 01:01:50,569
Gentlemen, we did get a couple of uplinks as well, and we have a few that I
1000
01:01:50,569 --> 01:01:54,239
have to play really we fell behind because I meant to play some more in we're.
1001
01:01:54,239 --> 01:01:54,809
New at this.
1002
01:01:55,189 --> 01:02:00,458
I know we're figuring it out so we'll let the agent pick one and we're going to clank away,
1003
01:02:02,061 --> 01:02:09,530
All right. Up first is Matthew. Matthew is calling in about an agentic installer, I believe. Let's see.
1004
01:02:09,570 --> 01:02:11,090
Hey, guys. My name is Matt Mangano.
1005
01:02:11,090 --> 01:02:11,450
Hey, Matt.
1006
01:02:11,450 --> 01:02:16,030
I'm an aerospace engineer by trade, and I work with AI workflows and helping,
1007
01:02:16,690 --> 01:02:20,655
the company I work with work through that process.
1008
01:02:21,154 --> 01:02:27,040
And I also am a big open cloth fan, try to contribute a little bit here and there.
1009
01:02:27,331 --> 01:02:38,784
But I have just built a small little project where I just embedded an agent into a live ISO.
1010
01:02:39,161 --> 01:02:46,250
So, you know, your girlfriend, your mom, your dad, a lot of people can't install
1011
01:02:46,250 --> 01:02:48,304
Linux easily, especially Nix.
1012
01:02:49,012 --> 01:02:56,953
So when you boot up the live ISO, you can sign in with your ChatGPT subscription or use an API.
1013
01:02:57,650 --> 01:03:02,427
And basically just tell the agent what you want and the agent will install it.
1014
01:03:02,799 --> 01:03:08,858
There's also some markdown files that, you know, kind of guide the agent to,
1015
01:03:09,781 --> 01:03:13,070
make it a little bit easier for the user. So it's called...
1016
01:03:16,689 --> 01:03:21,330
Agent-installer on my GitHub repo. So I'll try to send it to you guys.
1017
01:03:21,330 --> 01:03:25,048
I don't know if I can paste it into this or not.
1018
01:03:26,378 --> 01:03:28,769
Anyway, it's a great listen to you guys. Have a good one.
1019
01:03:29,180 --> 01:03:32,880
Thank you, sir. Brent, I want you to build that for me. I'm going to play one
1020
01:03:32,880 --> 01:03:35,885
more. I'm going to play one more and let the bot pick again.
1021
01:03:37,405 --> 01:03:40,960
All right. I'm not even going to see who this one is, but I think this is one
1022
01:03:40,960 --> 01:03:41,991
of the queue we needed to get to.
1023
01:03:42,496 --> 01:03:44,670
Hey, guys. All right. 741 again.
1024
01:03:44,670 --> 01:03:45,210
Hey, it's Ari.
1025
01:03:45,710 --> 01:03:50,979
On the launch, you had mentioned that it seemed like your VR episode didn't
1026
01:03:51,397 --> 01:03:54,671
get as much of a response as you were hoping.
1027
01:03:55,333 --> 01:03:59,360
And I don't personally know how this will make you feel, but I think that that
1028
01:03:59,360 --> 01:04:01,823
kind of was more of like a reference episode.
1029
01:04:02,554 --> 01:04:05,910
And I think you've kind of had these types of reference episodes in the past,
1030
01:04:05,910 --> 01:04:11,920
like the PCAE pass-through episode that you guys have done around being able
1031
01:04:11,920 --> 01:04:15,487
to do PCAE pass-through with the Linux kernel. Um...
1032
01:04:16,328 --> 01:04:21,017
Where it might not get very much signal at that time. But over the years,
1033
01:04:21,017 --> 01:04:25,309
I think people will keep referring back to that type of content,
1034
01:04:25,825 --> 01:04:31,578
for help and assistance as they end up either acquiring a VR headset or either.
1035
01:04:32,873 --> 01:04:37,383
Wanting to perform the thing that you're talking about in the reference episode.
1036
01:04:37,946 --> 01:04:43,257
So personally, I think that makes it a really sticky topic, even though it might
1037
01:04:43,257 --> 01:04:46,471
not get as much immediate response as you're expecting.
1038
01:04:46,816 --> 01:04:52,127
So I think long term that's really good for the show though but like I said
1039
01:04:52,127 --> 01:04:53,498
I don't know how to make you feel.
1040
01:04:54,009 --> 01:04:59,907
I actually ended up using the PCA pass through episode reference links whenever
1041
01:04:59,907 --> 01:05:01,977
I was working on a project on my old job,
1042
01:05:03,069 --> 01:05:07,957
that episode really gave me a lot more confidence in the technology and what
1043
01:05:07,957 --> 01:05:13,277
I was doing because you all did your deep dive which was really helpful so I
1044
01:05:13,277 --> 01:05:17,134
just wanted to say thank you for all the awesome content you guys have continued to make.
1045
01:05:17,977 --> 01:05:22,937
I love being a member of the network and I've been really appreciative of all
1046
01:05:22,937 --> 01:05:27,877
the new member features as well and even though the bootleg to me was enough
1047
01:05:27,877 --> 01:05:31,657
in the first place I'm glad you guys have been able to find ways to make the
1048
01:05:31,657 --> 01:05:32,917
membership more enticing,
1049
01:05:33,677 --> 01:05:36,424
for new people. So thanks guys. See ya.
1050
01:05:36,799 --> 01:05:39,657
Thank you sir and thank you again for all your work you did on the website and
1051
01:05:39,657 --> 01:05:41,537
in the community. It's good to hear from you.
1052
01:05:41,537 --> 01:05:42,604
Support all kinds of ways.
1053
01:05:43,016 --> 01:05:47,337
Absolutely. And I like the idea of a reference episode. It does make me feel
1054
01:05:47,337 --> 01:05:48,577
slightly better. I will be honest.
1055
01:05:49,796 --> 01:05:52,837
So I haven't put this all together yet, but we want more of your uplinks.
1056
01:05:52,837 --> 01:05:56,008
We'll try to feature them from time to time. And I think there's going to be,
1057
01:05:57,070 --> 01:06:03,109
Probably some sort of trifecta of HomeLab submission and maybe an uplink to
1058
01:06:03,109 --> 01:06:06,639
go with that where you can reference your HomeLab submission and then possibly
1059
01:06:06,639 --> 01:06:08,859
to put in front of us a boost, especially if you're a member,
1060
01:06:08,859 --> 01:06:10,629
that could be a great idea because you get it for free anyways.
1061
01:06:11,919 --> 01:06:16,099
And that kind of trifecta could be, you know, that could be a way to get your
1062
01:06:16,099 --> 01:06:20,619
HomeLab a little extra juice with a little uplink and a boost to go with it. I'm just saying.
1063
01:06:20,959 --> 01:06:23,435
I'm just saying something to think about as you're strategizing out there.
1064
01:06:24,282 --> 01:06:29,809
Because you know the winners of last year's home lab special they're still they're
1065
01:06:29,809 --> 01:06:33,999
still glowing they're still like they still you know and brent still have a.
1066
01:06:33,999 --> 01:06:35,381
Lot to glow about they were impressive.
1067
01:06:35,538 --> 01:06:38,399
Brent still sending them their checks you know he's gonna get that yeah writing
1068
01:06:38,399 --> 01:06:40,709
those checks so they're gonna get that any day behind.
1069
01:06:40,709 --> 01:06:42,129
By one but we'll get.
1070
01:06:42,129 --> 01:06:47,149
There yeah yeah we'll get gentlemen we do have some picks and i think this one
1071
01:06:47,149 --> 01:06:56,882
wes found just for brent This is a tab management extension for the Firefox called List All Tabs.
1072
01:06:57,682 --> 01:07:01,679
And like tab management tools, it offers a lot of your standard features,
1073
01:07:01,679 --> 01:07:05,787
but it brings in something kind of new to the mix that caught my attention, Wes.
1074
01:07:06,309 --> 01:07:10,768
And that's this dashboard, if you will, of your open tabs.
1075
01:07:11,168 --> 01:07:12,599
Former dashboard guy. That makes sense.
1076
01:07:12,599 --> 01:07:16,389
Yeah, well, I'm kind of a dashboard guy, and I noticed that this kind of looks
1077
01:07:16,389 --> 01:07:20,229
like a dashboard of your tabs, And I thought, you must be thinking of Brent when you found this.
1078
01:07:20,229 --> 01:07:24,639
Oh, yeah. Well, actually, someone sent it in for Brent. I've lost the name, unfortunately.
1079
01:07:24,639 --> 01:07:26,591
It's almost like he has a reputation. It's just...
1080
01:07:33,558 --> 01:07:35,996
Oh, Sudo Satur. That's who I found this from.
1081
01:07:35,996 --> 01:07:39,666
Thank you, Sudo. Thank you. Appreciate that. List all tabs. This actually is
1082
01:07:39,666 --> 01:07:42,266
really nice. What do you think of, as a tab connoisseur, Brent,
1083
01:07:42,266 --> 01:07:43,363
what do you think of something like this?
1084
01:07:43,595 --> 01:07:45,996
Well, Sudo sent this in and I was a little hesitant because,
1085
01:07:45,996 --> 01:07:49,036
you know, tabs and precious and all that stuff.
1086
01:07:49,036 --> 01:07:49,976
Yeah, obviously.
1087
01:07:49,976 --> 01:07:51,046
You're very special tabs.
1088
01:07:52,006 --> 01:07:58,118
I don't want to mess with my tabs. But Wes was like, come on, just try it. And so I did.
1089
01:07:58,604 --> 01:08:01,322
Well, you're the QA guy. I send all the new stuff to you.
1090
01:08:01,560 --> 01:08:03,540
Yeah, it turns out this thing's fantastic.
1091
01:08:04,108 --> 01:08:08,125
Oh ladies and gentlemen ladies and gentlemen oh.
1092
01:08:10,209 --> 01:08:16,655
It was super easy to install in Firefox because it's already set up as an extension that you can add.
1093
01:08:17,255 --> 01:08:20,245
It's got raving reviews already.
1094
01:08:20,965 --> 01:08:26,846
And also, I guess it's based on an older project, but there's been some modernization.
1095
01:08:27,351 --> 01:08:32,705
And the interface on here, just to manage your tabs, is really nice.
1096
01:08:32,705 --> 01:08:37,869
It's got an important thing right at the top. Somehow, that's exactly what I need.
1097
01:08:38,635 --> 01:08:44,475
You can sort by like tab order or last recently used or least recently used,
1098
01:08:44,975 --> 01:08:49,435
most recently used, which is that's just how did you get in my brain to design this thing?
1099
01:08:49,815 --> 01:08:51,778
That is really clever. Yeah. Okay.
1100
01:08:51,883 --> 01:08:59,794
It also lists, it can list all of your tabs by URL instead of by window, for instance.
1101
01:09:00,089 --> 01:09:06,509
So if you have a, let's say a bunch of GitHub links, but open in various windows and tabs.
1102
01:09:06,863 --> 01:09:09,995
Or for me, like a bunch of Wikipedia tabs, you know, the Wikipedia rabbit hole
1103
01:09:09,995 --> 01:09:11,075
thing. Yeah, definitely.
1104
01:09:11,075 --> 01:09:15,005
Combines them all in one place. So you can reference them all under one little
1105
01:09:15,005 --> 01:09:17,725
section in the extension. It's fantastic.
1106
01:09:17,835 --> 01:09:19,895
See, tabs is data. This is what I'm saying.
1107
01:09:19,895 --> 01:09:20,429
You were right.
1108
01:09:20,969 --> 01:09:21,685
This looks great.
1109
01:09:21,685 --> 01:09:27,585
But I'm not done yet. It also has a little, you know, sleepy button,
1110
01:09:27,585 --> 01:09:31,425
which unloads all of the tabs in that particular section.
1111
01:09:31,425 --> 01:09:35,235
So for instance, I have github.com here and it's got a little Z beside it.
1112
01:09:35,235 --> 01:09:37,867
So you hit that and they all get just...
1113
01:09:38,681 --> 01:09:41,847
Automatically put to sleep instead of the browser trying to guess because like
1114
01:09:41,847 --> 01:09:45,447
i know what i'm not using and i could just hit a nice little button here it's fantastic.
1115
01:09:45,447 --> 01:09:46,657
I'll be dipped that's.
1116
01:09:46,657 --> 01:09:51,767
Great right uh there's also an unload all button because if you have too many
1117
01:09:51,767 --> 01:09:54,760
tabs then you need that which so that speaks to me,
1118
01:09:55,427 --> 01:09:59,340
um but you can also look at them like listed by window which of course is handy,
1119
01:09:59,886 --> 01:10:04,847
and there's a saved section so you can also save particular tabs
into like a
1120
01:10:05,247 --> 01:10:06,973
spot where for some reason,
1121
01:10:07,531 --> 01:10:09,533
these are more important, which is awesome.
1122
01:10:10,189 --> 01:10:11,167
I'm installing this right now.
1123
01:10:11,167 --> 01:10:13,777
Oh, I'm telling you, it's great. And I could keep going. Like it has a recently
1124
01:10:13,777 --> 01:10:17,137
closed part so that in case, you know, you did the wrong thing and you want
1125
01:10:17,137 --> 01:10:18,637
to bring it back, you can do that.
1126
01:10:18,637 --> 01:10:22,137
It also has a little trash icon so you can quickly delete tabs.
1127
01:10:22,137 --> 01:10:25,897
It also has a save, you know, save button beside all the tabs so you can put
1128
01:10:25,897 --> 01:10:28,115
them in that super great save section.
1129
01:10:28,516 --> 01:10:28,947
Oh, all right.
1130
01:10:29,547 --> 01:10:33,857
But best part is it also detects duplicates so that you're not,
1131
01:10:33,857 --> 01:10:35,772
you know, saving the same page four times.
1132
01:10:36,236 --> 01:10:39,267
Yeah, that's not a problem I have, but I could probably understand why you would have that problem.
1133
01:10:39,747 --> 01:10:40,437
It seems handy.
1134
01:10:40,437 --> 01:10:43,377
Also, these are just the features I've found so far. I've only used it for like
1135
01:10:43,377 --> 01:10:48,557
12 minutes. So really huge thank you, SayShirt. I will, well,
1136
01:10:48,557 --> 01:10:52,924
I'm already using this. So great. It works for my brain. I hope it works for other people too.
1137
01:10:53,116 --> 01:10:57,547
Okay. All right. Our next pick is to reduce your browser dependence.
1138
01:10:57,547 --> 01:10:59,635
And I understand it's hard.
1139
01:11:00,564 --> 01:11:04,685
I get it. There's a lot of good web apps or bad web apps that you have to use
1140
01:11:04,981 --> 01:11:06,421
every single day. I'm there with you.
1141
01:11:07,350 --> 01:11:11,471
So what if I could get you to try out Tangram?
1142
01:11:11,814 --> 01:11:12,627
Tangram.
1143
01:11:12,967 --> 01:11:13,567
Tangram. Yeah.
1144
01:11:14,281 --> 01:11:14,531
Yeah.
1145
01:11:15,535 --> 01:11:21,751
This is another take at the attempt to make one browser for all of the web apps
1146
01:11:21,751 --> 01:11:26,141
you have to use, where you can kind of have separate,
1147
01:11:26,739 --> 01:11:30,628
isolated environments, and they are each one individually sandboxed,
1148
01:11:31,266 --> 01:11:33,240
persistent, independent tabs.
1149
01:11:33,838 --> 01:11:38,071
You can change their position. It supports smart notifications for desktop integration.
1150
01:11:38,071 --> 01:11:40,701
So, like, if you've got to be in, like, a work messaging application. That's nice.
1151
01:11:41,141 --> 01:11:44,450
It's got that. It's got touchpad and touchscreen support.
1152
01:11:46,429 --> 01:11:51,089
And the idea is that you put your Discord in here, your web telegram,
1153
01:11:51,455 --> 01:11:57,422
your WhatsApp, if you use Element in the web, whatever it might be, your Mastodon.
1154
01:11:57,817 --> 01:12:03,021
You put it all in here as individual isolated tabs that this thing then keeps
1155
01:12:03,021 --> 01:12:05,207
persistent and independently manages them for you.
1156
01:12:05,637 --> 01:12:09,761
And then gives you an interface to see an overview of those or pop through the different tabs.
1157
01:12:10,381 --> 01:12:12,421
A browser for your pin tabs. I like it.
1158
01:12:13,021 --> 01:12:13,700
I have a question.
1159
01:12:14,176 --> 01:12:14,483
Yeah.
1160
01:12:15,075 --> 01:12:16,431
Oh, that little tagline, browser
1161
01:12:16,431 --> 01:12:20,550
for your pin tabs. I don't really know what a pin tab is. Can you...
1162
01:12:28,259 --> 01:12:31,004
Do you think this will maybe nudge me into the pin tabs era?
1163
01:12:31,968 --> 01:12:34,743
I mean, you could think of it as another way to have a bunch of tabs.
1164
01:12:35,776 --> 01:12:38,553
Well, I was thinking maybe the ones that work for you in here is how you learn
1165
01:12:38,553 --> 01:12:42,273
what a pin tab is. Like if it works for you in Tangram, then it would have been
1166
01:12:42,273 --> 01:12:44,216
a pin tab if you ever had learned those.
1167
01:12:44,395 --> 01:12:46,369
But GPL3 and available on FlatHub.
1168
01:12:46,943 --> 01:12:48,323
So pretty convenient, what's your excuse?
1169
01:12:48,343 --> 01:12:54,298
Okay. All right. Now this next one, we're getting a little serious here.
1170
01:12:55,744 --> 01:13:00,423
Your boy here has been using Pinch Flat. as a way to download YouTube videos
1171
01:13:00,423 --> 01:13:07,550
offline and then present them as first-class citizens in Jellyfinnerplex.
1172
01:13:08,067 --> 01:13:11,733
And when I say first-class, what I mean by that is they look like every other
1173
01:13:11,733 --> 01:13:18,743
TV episode or movie with a poster, metadata, description, even skip intro,
1174
01:13:19,163 --> 01:13:20,793
skip commercial, all this.
1175
01:13:20,793 --> 01:13:21,500
It feels native.
1176
01:13:21,977 --> 01:13:25,941
Feels like a native thing. And it's a fantastic way for me to watch YouTube
1177
01:13:26,382 --> 01:13:29,363
because I kind of got sketchy internet at home from time to time.
1178
01:13:29,363 --> 01:13:31,252
Sometimes we're on the go and we're on LTE.
1179
01:13:31,606 --> 01:13:34,166
And so watching YouTube is a chore on those kind of connections.
1180
01:13:34,567 --> 01:13:37,662
So if you just got things you watch, a few channels you watch on the regular,
1181
01:13:38,057 --> 01:13:41,499
you throw them into old pinch flat here and it pulls them down,
1182
01:13:41,743 --> 01:13:45,083
saves them, gets all the NFO and metadata information, saves which ones it's
1183
01:13:45,083 --> 01:13:46,704
viewed, all that. Beautiful.
1184
01:13:48,317 --> 01:13:49,857
Unfortunately, YouTube's been
1185
01:13:49,857 --> 01:13:53,773
making it harder and harder for good old classic YTDLP to work properly.
1186
01:13:54,355 --> 01:13:57,947
And this has impacted the performance of Pinchflat and related projects.
1187
01:13:58,395 --> 01:14:00,688
And so more and more, I'm missing videos.
1188
01:14:01,534 --> 01:14:06,887
And so Pinchflat NGX comes into the picture here. Pinchflat NGX.
1189
01:14:08,036 --> 01:14:12,467
An enhanced self-hostable version of Pinchflat with a YouTube media manager
1190
01:14:12,467 --> 01:14:13,533
and metadata built in here.
1191
01:14:14,091 --> 01:14:17,117
And one of the things it does do differently, besides some UI changes that I
1192
01:14:17,117 --> 01:14:20,859
think look quite nice, is it uses a different download pipeline.
1193
01:14:21,805 --> 01:14:25,797
And it uses a tool that I'm not super familiar with, but seems to be producing
1194
01:14:25,797 --> 01:14:30,879
better results, and they kind of go through all of it in their description of how it all works.
1195
01:14:31,582 --> 01:14:37,237
And it uses something called bgutil, which integrates with like a token you
1196
01:14:37,237 --> 01:14:42,181
get from YouTube or something like that, and bypasses some of the issues that YTDLP runs into.
1197
01:14:43,742 --> 01:14:46,860
Really nice. And it's one of these things that once you set it up,
1198
01:14:47,562 --> 01:14:50,180
not only do you generally not have to think about it as long as it doesn't break,
1199
01:14:51,057 --> 01:14:57,670
but it makes the experience of watching YouTube not feel like YouTube, right?
1200
01:14:57,670 --> 01:15:01,627
It just, there's a couple of channels I want to watch and I don't want the rest of that crap.
1201
01:15:02,330 --> 01:15:08,770
And because it does also integrate things like skip intro or things like that,
1202
01:15:08,770 --> 01:15:11,432
it feels more like an actual TV series that I watch.
1203
01:15:11,595 --> 01:15:14,820
Uh it's you know because i think the original development of pinflat kind of
1204
01:15:14,820 --> 01:15:19,280
stopped right seemingly um so this is a continuation in a few ways including
1205
01:15:19,280 --> 01:15:24,290
i mean like original sqlite only this one adds postgres support yes uh it adds
1206
01:15:24,290 --> 01:15:26,570
oauth and oidc support yeah,
1207
01:15:28,754 --> 01:15:32,280
before you kind of got a basic worker pool now it has live diagnostics granular
1208
01:15:32,280 --> 01:15:36,370
worker tuning it also has better support for single video sources one-off direct
1209
01:15:36,370 --> 01:15:41,020
video downloads if you want to do that too which is pretty convenient so big upgrade.
1210
01:15:41,269 --> 01:15:43,780
And then you know you just plumb it in you have it saved to a directory that
1211
01:15:43,780 --> 01:15:47,360
you have jellyfin or plex index you add that as a library so i just have a youtube
1212
01:15:47,360 --> 01:15:50,388
library and if you were to browse it you'd be like this is great,
1213
01:15:51,073 --> 01:15:54,750
um but with pinch flat having some issues and kind of not getting updated much
1214
01:15:54,750 --> 01:16:00,396
it was really great to see pinch flat ngx come along and it's also gpl3 as well,
1215
01:16:03,014 --> 01:16:07,641
Big recommend, and especially if you need to archive some videos,
1216
01:16:07,641 --> 01:16:10,211
like if there's a channel that has really helpful instruction videos that you
1217
01:16:10,211 --> 01:16:11,280
want to archive offline.
1218
01:16:11,826 --> 01:16:16,644
The other reason I started using this is there's some videos that I don't mind at all my kids watch.
1219
01:16:16,998 --> 01:16:20,661
There's other videos, not a big fan. And so this is a way to kind of get access
1220
01:16:20,661 --> 01:16:24,841
for the family to YouTube in a way that doesn't leak into the other videos that
1221
01:16:24,841 --> 01:16:25,787
maybe you're worried about.
1222
01:16:26,060 --> 01:16:28,961
So it's nice from a parental standpoint too. So it's Pinch Flat NGX.
1223
01:16:29,541 --> 01:16:30,951
90% Elixir.
1224
01:16:30,951 --> 01:16:32,300
No, that's cool.
1225
01:16:32,480 --> 01:16:33,426
We need a sound for that one.
1226
01:16:33,926 --> 01:16:37,234
Something cool, like an Excalibur kind of sound or something.
1227
01:16:37,943 --> 01:16:41,285
But we will have links to all of this in the show notes, Wes.
1228
01:16:41,436 --> 01:16:43,236
And where do people find those show notes? Well,
1229
01:16:43,520 --> 01:16:47,328
that's on our website at linuxunplugged.com. And this is episode 692.
1230
01:16:47,955 --> 01:16:51,111
Or you can find it over at jupiterbroadcasting.com. Either website,
1231
01:16:51,111 --> 01:16:52,355
you'll have our RSS feed.
1232
01:16:52,680 --> 01:16:55,881
That's the pro move. Grab that feed, put it in your podcast catcher of choice.
1233
01:16:55,881 --> 01:16:57,556
Get the episode every week, obviously.
1234
01:16:58,015 --> 01:16:59,971
But take a look at it, too. There's some useful stuff in there.
1235
01:16:59,971 --> 01:17:01,301
Mm-hmm. Cloud chapters. Yeah.
1236
01:17:01,721 --> 01:17:01,721
Json,
1237
01:17:04,406 --> 01:17:06,206
json json json.
1238
01:17:06,368 --> 01:17:11,251
We also have transcripts vtt and srt srt and you put something special in.
1239
01:17:11,251 --> 01:17:15,314
There's an mp4 in there too i don't know why but there is don't do it.
1240
01:17:15,471 --> 01:17:16,241
Don't even look at it.
1241
01:17:16,241 --> 01:17:19,691
Don't don't do it don't do it don't do it although brent's so damn handsome.
1242
01:17:20,213 --> 01:17:21,081
Sometimes there's cats.
1243
01:17:21,661 --> 01:17:25,911
Yeah and dogs there's that too all right that's everything for us guess what
1244
01:17:25,911 --> 01:17:29,951
and we will be back live at a regular time back from texas linux fest and i'm
1245
01:17:29,951 --> 01:17:31,405
sure with stories to share,
1246
01:17:35,230 --> 01:17:40,926
So, why don't you head on over to jblive.tv and make it a Tuesday on a Sunday.
1247
01:17:40,926 --> 01:17:46,072
We get together over at jblive.tv and jblive.fm if you're on the go at 10 a.m. Pacific.
1248
01:17:46,693 --> 01:17:50,461
Convert it at your local time at jupiterbroadcasting.com slash calendars.
1249
01:17:50,769 --> 01:17:54,368
Don't forget our members get the full bootleg, and it's usually a whopper.
1250
01:17:54,687 --> 01:17:56,928
And don't forget to get your home labs decorated.
1251
01:17:57,044 --> 01:17:57,256
Yes.
1252
01:17:57,276 --> 01:17:58,206
Prepare for submission.
1253
01:17:58,206 --> 01:18:02,193
That's right. Coming soon, we'll have more information, and I'll be on the website as well.
1254
01:18:02,849 --> 01:18:06,846
Thank you so much for joining us on this week's episode of Your Unplugged Program.
1255
01:18:06,846 --> 01:18:08,300
Thank you to John for joining us.
1256
01:18:08,810 --> 01:18:12,626
Good luck to all of their endeavors. And with that, we will see you right back
1257
01:18:12,626 --> 01:18:15,991
here next Tuesday, as in Sunday.