Transcript
1
00:00:00,000 --> 00:00:27,000
[MUSIC]
2
00:00:27,000 --> 00:00:30,200
Hello and welcome back to OK, What Went Wrong?
3
00:00:30,200 --> 00:00:33,640
I'm Michael Sean Becker and I am Zane Becker Byrd.
4
00:00:33,640 --> 00:00:37,580
And we can say the thing that went wrong today is I didn't record.
5
00:00:37,580 --> 00:00:41,640
So yes, we recorded about 10 minutes before we realized that.
6
00:00:41,640 --> 00:00:43,880
Actually, no, we weren't.
7
00:00:43,880 --> 00:00:45,120
No, we were not.
8
00:00:45,120 --> 00:00:47,180
We were not. That is that's a rite of passage.
9
00:00:47,180 --> 00:00:49,180
We have now I'm now double recording.
10
00:00:49,180 --> 00:00:52,720
I've got Zencaster going and the board.
11
00:00:52,720 --> 00:00:54,820
So yeah. Well, yeah, we're we're good.
12
00:00:54,820 --> 00:00:57,760
Dundans are for. Wow. Yeah.
13
00:00:57,760 --> 00:01:01,500
That just honestly that kind of caps off this week.
14
00:01:01,500 --> 00:01:04,660
That all checks. Yeah, we it is.
15
00:01:04,660 --> 00:01:06,700
It has been a week. Yes.
16
00:01:06,700 --> 00:01:13,060
One of speaking of things going wrong in this past week, I
17
00:01:13,060 --> 00:01:17,880
I had a failure in my build process for a website.
18
00:01:17,880 --> 00:01:20,640
Yeah.
19
00:01:20,640 --> 00:01:23,980
As it turns out, I'm only going to touch on this briefly
20
00:01:23,980 --> 00:01:29,420
because it wasn't really a complicated issue. Basically, none of my Cloudflare pages builds
21
00:01:29,420 --> 00:01:37,300
with Alemity were working. As it turns out, it's because the node version in Cloudflare
22
00:01:37,300 --> 00:01:44,060
pages is like 12 or something. I had to manually set an environment variable and then it worked.
23
00:01:44,060 --> 00:01:51,580
It took so much time, but the solution was so minute that that is all the time I'm willing
24
00:01:51,580 --> 00:01:53,500
to devote to that issue.
25
00:01:53,500 --> 00:01:56,860
Yeah, no, it was interesting because this is something that we're actually coming
26
00:01:56,860 --> 00:02:01,580
across as well. So Cloudflare pages, there's a couple of different ways to
27
00:02:01,580 --> 00:02:04,020
utilize Cloudflare pages for uploads.
28
00:02:04,020 --> 00:02:08,980
One is to have them manage the build process, basically have them do the CICD.
29
00:02:08,980 --> 00:02:11,380
And a lot of these services like that will do that.
30
00:02:11,380 --> 00:02:12,300
And it's kind of magic.
31
00:02:12,300 --> 00:02:15,140
You're like, Oh, let me connect it with my GitHub account.
32
00:02:15,140 --> 00:02:19,500
And then it will magically detect when something goes off and deploy it.
33
00:02:19,500 --> 00:02:21,660
and yet you lose some of the controls of the knobs.
34
00:02:21,660 --> 00:02:24,620
But if you don't have a dedicated DevOps team,
35
00:02:24,620 --> 00:02:27,680
they get makes it very simple to get things from,
36
00:02:27,680 --> 00:02:30,200
I don't have a website to I have a website
37
00:02:30,200 --> 00:02:33,300
because I checked in code into GitHub.
38
00:02:33,300 --> 00:02:35,380
Now, so that's one, that's the get integration.
39
00:02:35,380 --> 00:02:37,180
The other one is a direct upload integration.
40
00:02:37,180 --> 00:02:39,540
What direct upload allows you to do is build it anywhere.
41
00:02:39,540 --> 00:02:40,940
They don't care how you build it.
42
00:02:40,940 --> 00:02:43,820
And then you can call a hook and upload.
43
00:02:43,820 --> 00:02:45,680
It's basically making cloud floor pages
44
00:02:45,680 --> 00:02:47,340
into the equivalent of an FTP server.
45
00:02:47,340 --> 00:02:48,300
- Yeah.
46
00:02:48,300 --> 00:02:55,860
Which I'm going to start exploring in the coming weeks,
47
00:02:55,860 --> 00:03:06,020
mostly because I'm starting to play with u.rs and other more--
48
00:03:06,020 --> 00:03:09,740
it's not single page application type things
49
00:03:09,740 --> 00:03:12,660
for more of interactive experience,
50
00:03:12,660 --> 00:03:15,140
but for single web pages.
51
00:03:15,140 --> 00:03:18,140
And I'm going to need to tweak how my build process is going
52
00:03:18,140 --> 00:03:24,820
work because I'm going to be integrating like a lot of different things together to one
53
00:03:24,820 --> 00:03:28,540
like goulash basically.
54
00:03:28,540 --> 00:03:31,540
Yes.
55
00:03:31,540 --> 00:03:36,000
Tell me you've moved to the Midwest without telling me you've moved to the Midwest.
56
00:03:36,000 --> 00:03:38,420
Is that not a thing we say back home?
57
00:03:38,420 --> 00:03:41,380
I don't believe that's a thing that is often said in California.
58
00:03:41,380 --> 00:03:45,900
And now you're going to tell me you don't need notches out of a Fritos bag.
59
00:03:45,900 --> 00:03:49,020
Oh no, that is the appropriate way to eat nachos.
60
00:03:49,020 --> 00:03:50,900
Why would they make the Frito bag the way they make it
61
00:03:50,900 --> 00:03:52,540
unless they wanted you to eat nachos out of it?
62
00:03:52,540 --> 00:03:53,500
No, fully support.
63
00:03:53,500 --> 00:03:54,460
- Yeah.
64
00:03:54,460 --> 00:03:59,380
Walking taco, it was a wild experience for me.
65
00:03:59,380 --> 00:04:02,940
- This is the, I feel like that's a California food truck
66
00:04:02,940 --> 00:04:05,900
thing or the most college thing you've ever said to me.
67
00:04:05,900 --> 00:04:08,520
- No, 'cause it actually is a thing in Mexico,
68
00:04:08,520 --> 00:04:10,900
so it's possible at a California food truck thing.
69
00:04:10,900 --> 00:04:14,320
It's just called Crazy Chips in Mexico, I believe.
70
00:04:15,420 --> 00:04:19,060
amazing. But in the Midwest, it's called a walking taco, I
71
00:04:19,060 --> 00:04:23,740
believe, and you have chips, just fantastic stuff. It's, it's
72
00:04:23,740 --> 00:04:28,060
an experience. Yeah, it's a walking taco. So if you're
73
00:04:28,060 --> 00:04:32,300
looking at combining a bunch of things, so these would be
74
00:04:32,300 --> 00:04:34,580
triggers that happen one after another, right? If something
75
00:04:34,580 --> 00:04:37,540
happens, then that causes something else to happen. So
76
00:04:37,540 --> 00:04:40,860
what you're basically talking about building there are build
77
00:04:40,860 --> 00:04:44,860
pipelines, where you have dependencies. Now this is 100%
78
00:04:44,860 --> 00:04:46,680
- No, I understand fully.
79
00:04:46,680 --> 00:04:49,520
It's just like, it just feels like your next suggestion
80
00:04:49,520 --> 00:04:53,140
is to be, is gonna be higher web development.
81
00:04:53,140 --> 00:04:57,920
- Oh no, my next suggestion is let's spin up
82
00:04:57,920 --> 00:04:58,940
a Docker container.
83
00:04:58,940 --> 00:04:59,780
Come on now.
84
00:04:59,780 --> 00:05:00,620
- Oh yeah.
85
00:05:00,620 --> 00:05:02,740
- Like that's, if we've learned nothing through five weeks,
86
00:05:02,740 --> 00:05:04,540
it's like, ooh, there's a Docker container for them.
87
00:05:04,540 --> 00:05:08,360
- I 100% expect there to be a Docker container for it.
88
00:05:08,360 --> 00:05:10,500
- So there is a, so first off,
89
00:05:10,500 --> 00:05:12,920
so these are called continuous integration.
90
00:05:12,920 --> 00:05:17,640
and usually abbreviated to CI.
91
00:05:17,640 --> 00:05:20,240
One of the big companies that does this is Circle CI.
92
00:05:20,240 --> 00:05:21,840
Use them in the past, they're very great.
93
00:05:21,840 --> 00:05:25,000
Basically your configuration files are built on YAML.
94
00:05:25,000 --> 00:05:27,560
So you do YAML and then you build out your file.
95
00:05:27,560 --> 00:05:32,560
My favorite, favorite CI product that got announced
96
00:05:32,560 --> 00:05:34,600
but nothing ever happened to it,
97
00:05:34,600 --> 00:05:36,260
and this is a very 80s joke,
98
00:05:36,260 --> 00:05:38,180
although it might work today now,
99
00:05:38,180 --> 00:05:42,560
it was Magnum CI because of the TV show Magnum PI
100
00:05:42,560 --> 00:05:45,320
And it was just it was so fantastic.
101
00:05:45,320 --> 00:05:46,640
It didn't go anywhere.
102
00:05:46,640 --> 00:05:48,000
And I was so sad.
103
00:05:48,000 --> 00:05:49,080
Well, it was it was perfect.
104
00:05:49,080 --> 00:05:51,720
I think that answers your question about whether the joke works today.
105
00:05:51,720 --> 00:05:54,680
Although I don't might be weird.
106
00:05:54,680 --> 00:05:56,560
Oh, yeah. Magnum CI.
107
00:05:56,560 --> 00:06:01,760
Magnum dash CI is no longer a thing, but the domain name still exists.
108
00:06:01,760 --> 00:06:03,120
I'm going to include that in the show.
109
00:06:03,120 --> 00:06:04,880
That is that is.
110
00:06:04,880 --> 00:06:08,280
Oh, it's is it the original is it the original website?
111
00:06:08,280 --> 00:06:11,880
No, it's now just like an ASCII art of it.
112
00:06:11,880 --> 00:06:14,640
Actually, let me see if I can find this.
113
00:06:14,640 --> 00:06:16,200
This is riveting.
114
00:06:16,200 --> 00:06:17,040
Riveting content.
115
00:06:17,040 --> 00:06:18,960
Riveting, podcasting, right?
116
00:06:18,960 --> 00:06:21,720
This is when we start live streaming.
117
00:06:21,720 --> 00:06:25,480
OK, so yes, I found the original logo,
118
00:06:25,480 --> 00:06:29,200
and it is everything that you would expect it to be.
119
00:06:29,200 --> 00:06:32,160
Hold on.
120
00:06:32,160 --> 00:06:36,080
I'm going to include the GitHub organization
121
00:06:36,080 --> 00:06:38,240
for this in the show notes, but I'm
122
00:06:38,240 --> 00:06:40,400
going to send it to you now.
123
00:06:40,400 --> 00:06:41,720
Oh my goodness.
124
00:06:41,720 --> 00:06:44,400
For listener context, we do have video feeds.
125
00:06:44,400 --> 00:06:47,520
So I can see the light flash across his face
126
00:06:47,520 --> 00:06:51,080
and see switches panels or tab.
127
00:06:51,080 --> 00:06:54,680
I just sent it to Matrix.
128
00:06:54,680 --> 00:06:56,760
Magnum CI.
129
00:06:56,760 --> 00:06:59,360
Copy.
130
00:06:59,360 --> 00:07:00,280
It's amazing.
131
00:07:00,280 --> 00:07:05,520
It's just-- yeah, it's fantastic.
132
00:07:05,520 --> 00:07:08,120
It's like vector line art of Tom Selleck in the '80s.
133
00:07:08,120 --> 00:07:11,120
It's just fantastic.
134
00:07:11,120 --> 00:07:16,980
But there is a tool called Woodpecker CI, and I found them through the free and open
135
00:07:16,980 --> 00:07:20,180
source Mastodon.
136
00:07:20,180 --> 00:07:22,260
And theirs is based on Docker containers.
137
00:07:22,260 --> 00:07:23,700
You can build multiple pipelines.
138
00:07:23,700 --> 00:07:28,660
It has been something that I've thought about integrating into our roadmap for the homelab.
139
00:07:28,660 --> 00:07:33,220
And if you're looking to do broader things in this, especially over the summer, I think
140
00:07:33,220 --> 00:07:37,020
that this might be a good one to throw on our list of getting in there.
141
00:07:37,020 --> 00:07:40,860
this then replace the build process in Cloudflare pages?
142
00:07:40,860 --> 00:07:45,300
And then technically what you can do is you can upload your files anywhere.
143
00:07:45,300 --> 00:07:47,020
So it could upload to our home NAS.
144
00:07:47,020 --> 00:07:52,780
You point, you use Cloudflare D and have Cloudflare cache it.
145
00:07:52,780 --> 00:07:56,260
You don't upload because the cache is where it's being served out.
146
00:07:56,260 --> 00:07:56,660
Yeah.
147
00:07:56,660 --> 00:08:03,700
So like my personal website is being hosted locally in our network, but it's
148
00:08:03,700 --> 00:08:05,820
heavily cached at the Cloudflare layer.
149
00:08:06,260 --> 00:08:11,020
Um, now I have a, I have a question, which I, it's not really a question, more of like
150
00:08:11,020 --> 00:08:12,020
a confirmation.
151
00:08:12,020 --> 00:08:18,940
Um, you, if you have like JavaScript on a webpage, uh, that is referencing a database
152
00:08:18,940 --> 00:08:22,380
somewhere that database doesn't have to be on the same machine.
153
00:08:22,380 --> 00:08:25,540
It could be like on somewhere else on the internet.
154
00:08:25,540 --> 00:08:26,540
Right.
155
00:08:26,540 --> 00:08:27,540
Yeah.
156
00:08:27,540 --> 00:08:28,540
Interesting question.
157
00:08:28,540 --> 00:08:32,500
Typically what you would not do is you would not have browser based JavaScript access a
158
00:08:32,500 --> 00:08:34,700
database directly.
159
00:08:34,700 --> 00:08:38,260
That would happen in some sort of backend API.
160
00:08:38,260 --> 00:08:42,720
You basically do a server side that acts as the proxy to the database.
161
00:08:42,720 --> 00:08:44,220
Two reasons there.
162
00:08:44,220 --> 00:08:49,140
One, if you think about, no, not actually piracy.
163
00:08:49,140 --> 00:08:56,900
Like if you think about piracy, the way that CDs were never able to be copy protected and
164
00:08:56,900 --> 00:09:03,940
DVDs were never able to be copy protected, you have the lock and the key in that device,
165
00:09:03,940 --> 00:09:08,100
which means everybody has given everything that they need to be able to decrypt it.
166
00:09:08,100 --> 00:09:14,440
If you put your database credentials in the browser so that it can talk to the database,
167
00:09:14,440 --> 00:09:18,360
there is no way to prevent somebody from their local, because you're basically running software
168
00:09:18,360 --> 00:09:19,880
on their machine.
169
00:09:19,880 --> 00:09:22,160
They now have direct access to your database.
170
00:09:22,160 --> 00:09:28,080
It'd be like, it'd be like hard coding your private key into a web page.
171
00:09:28,080 --> 00:09:29,080
Absolutely.
172
00:09:29,080 --> 00:09:32,640
It would be exactly like that because of how.
173
00:09:32,640 --> 00:09:33,640
Yeah.
174
00:09:33,640 --> 00:09:34,640
- No, it's exactly that.
175
00:09:34,640 --> 00:09:36,640
So let's say you were using Noster,
176
00:09:36,640 --> 00:09:38,640
actually Noster is a good example of this.
177
00:09:38,640 --> 00:09:39,640
Have you encountered Noster yet?
178
00:09:39,640 --> 00:09:41,640
- I've heard of it.
179
00:09:41,640 --> 00:09:45,640
- So Noster is the social network that is based
180
00:09:45,640 --> 00:09:48,640
and kind of sits in the same realm as Lightning.
181
00:09:48,640 --> 00:09:49,640
Albie has an integration with it.
182
00:09:49,640 --> 00:09:54,640
- Oh yes, is this the one where your ID is encryption?
183
00:09:54,640 --> 00:09:59,640
- Yeah, so basically your public ID is your public key,
184
00:09:59,640 --> 00:10:01,640
which is what they've been trying to do
185
00:10:01,640 --> 00:10:04,600
which is what they've been trying to do forever
186
00:10:04,600 --> 00:10:07,100
since GPG keys on email, it's like,
187
00:10:07,100 --> 00:10:09,280
my identifier is my public key.
188
00:10:09,280 --> 00:10:11,480
Like that's why they call it a public key.
189
00:10:11,480 --> 00:10:16,020
The issue is you have these web-based clients
190
00:10:16,020 --> 00:10:19,140
that you log into by pasting in your private key.
191
00:10:19,140 --> 00:10:20,200
- Yeah.
192
00:10:20,200 --> 00:10:22,080
- So the way that this works is that they--
193
00:10:22,080 --> 00:10:26,240
- A good idea with a bunch of asterisks.
194
00:10:26,240 --> 00:10:28,120
- Well, and where it becomes a good idea
195
00:10:28,120 --> 00:10:31,100
is if the application that you are pasting
196
00:10:31,100 --> 00:10:34,660
private key to is not actually communicating to a backend server
197
00:10:34,660 --> 00:10:35,940
because you have the key.
198
00:10:35,940 --> 00:10:36,460
Yeah.
199
00:10:36,460 --> 00:10:39,900
So like, let's say you were using a database Explorer that you wanted to
200
00:10:39,900 --> 00:10:43,460
connect to and you put the credentials into the browser, but they never left
201
00:10:43,460 --> 00:10:46,540
the browser and use the browser as basically the runtime.
202
00:10:46,540 --> 00:10:46,980
Yeah.
203
00:10:46,980 --> 00:10:50,260
You could trust that you have those keys, but it would be the equivalent
204
00:10:50,260 --> 00:10:51,500
of putting it into a desktop app.
205
00:10:51,500 --> 00:10:56,660
But if you are transmitting your keys to another machine, like if the, either
206
00:10:56,660 --> 00:11:01,780
the server sending to the private key or like you're sending it back to the server.
207
00:11:01,780 --> 00:11:04,140
You need HTTPS so it doesn't get manned in the middle.
208
00:11:04,140 --> 00:11:08,980
But then anyone who goes to that webpage that you've put the username and password
209
00:11:08,980 --> 00:11:11,260
or the private key in can get that.
210
00:11:11,260 --> 00:11:16,220
And then you're out of luck, which is why that API layer exists so that all of those
211
00:11:16,220 --> 00:11:20,780
credentials and all of that trust happens on a machine you control.
212
00:11:20,780 --> 00:11:25,300
And then the client, which you don't, which you no longer control talks to the
213
00:11:25,300 --> 00:11:28,060
thing that's in your control to be able to get sensitive information.
214
00:11:28,060 --> 00:11:36,900
Yeah, and there's also like a further issue with, to a lesser extent, any application
215
00:11:36,900 --> 00:11:40,180
that does this, but more specifically a web page.
216
00:11:40,180 --> 00:11:46,780
As a user, you cannot trust that it's not leaking your key unless you can see the source
217
00:11:46,780 --> 00:11:47,780
code.
218
00:11:47,780 --> 00:11:52,340
And you, and even still, you have to be able to read the source code.
219
00:11:52,340 --> 00:11:58,320
So if it's like if you have any like if you like compress it all into one line and make
220
00:11:58,320 --> 00:12:02,560
it like have you ever looked at Google's view source?
221
00:12:02,560 --> 00:12:08,560
Yeah, it looks like that you can't trust that it's keeping your keys safe.
222
00:12:08,560 --> 00:12:10,520
Yeah, minified software is like that.
223
00:12:10,520 --> 00:12:14,960
Now you can if you go into the like if you inspect the console go to the inspect web
224
00:12:14,960 --> 00:12:19,000
inspector, look at the console, look at the network tab, you can see the communications.
225
00:12:19,000 --> 00:12:20,000
Yeah.
226
00:12:20,000 --> 00:12:24,000
point, if someone was to encode your private key, send it as a
227
00:12:24,000 --> 00:12:26,000
token and another thing, because you can use there's a
228
00:12:26,000 --> 00:12:28,720
technology called JWT. If you ever want to look at this,
229
00:12:28,720 --> 00:12:31,160
tokens that you get like when you log in someplace and it
230
00:12:31,160 --> 00:12:33,880
gives you a bear like an authorization token, you ever see
231
00:12:33,880 --> 00:12:36,560
that come in when you're on there, you can take that token
232
00:12:36,560 --> 00:12:40,200
and a lot of times put it into one of these JWT decoders.
233
00:12:40,200 --> 00:12:45,000
Because what's happening, that is an excellent way to include
234
00:12:45,000 --> 00:12:47,800
additional information. So I know this person is
235
00:12:47,800 --> 00:12:51,960
authenticated and let me get their session data, like an initial state session data.
236
00:12:51,960 --> 00:12:56,060
I just encode it into that key that I've given them that is their identifier.
237
00:12:56,060 --> 00:12:57,860
And then you can get all this stuff.
238
00:12:57,860 --> 00:13:02,600
So you can take those authentication bearer tokens and see what people are
239
00:13:02,600 --> 00:13:05,840
sending back to your point, you could stick the private key in there and someone
240
00:13:05,840 --> 00:13:09,140
who doesn't know would be able to just have your private key.
241
00:13:09,140 --> 00:13:09,480
Yeah.
242
00:13:09,480 --> 00:13:14,200
And like at an even more basic level, you have to know how to do all of this to
243
00:13:14,520 --> 00:13:18,720
verify it. It's just it's a whole can of worms.
244
00:13:18,720 --> 00:13:22,560
Yeah. The thing about open source and this is, this is the Bitcoin model.
245
00:13:22,560 --> 00:13:25,160
This is it's distributed trust.
246
00:13:25,160 --> 00:13:29,320
Not every single person I was actually watching, I'll come back to it.
247
00:13:29,320 --> 00:13:30,720
I'm going to pin. I'll come back to that.
248
00:13:30,720 --> 00:13:32,240
It's distributed trust.
249
00:13:32,240 --> 00:13:37,040
You are not going to go into every piece of source code that you use,
250
00:13:37,040 --> 00:13:39,240
but there are people who will.
251
00:13:39,240 --> 00:13:42,720
And like you have a distributed network of trust of people who go,
252
00:13:42,720 --> 00:13:44,680
I trust this and I have validated it.
253
00:13:44,680 --> 00:13:45,520
- Yeah.
254
00:13:45,520 --> 00:13:46,560
- It's not that you will do it,
255
00:13:46,560 --> 00:13:48,820
it's that it has the ability to be done.
256
00:13:48,820 --> 00:13:50,460
But I was watching them do an explanation
257
00:13:50,460 --> 00:13:54,920
on the decentral nature of Bitcoin and why.
258
00:13:54,920 --> 00:13:55,800
Because the question came up,
259
00:13:55,800 --> 00:13:57,880
because with all of the financial news going on,
260
00:13:57,880 --> 00:14:00,340
of course, Bitcoin has gone up in value,
261
00:14:00,340 --> 00:14:03,800
so now they're all over CNBC.
262
00:14:03,800 --> 00:14:05,800
Like people from all the companies
263
00:14:05,800 --> 00:14:06,840
that have Bitcoin stakes.
264
00:14:06,840 --> 00:14:08,900
And there's a guy who runs Strike,
265
00:14:08,900 --> 00:14:11,400
whose name I don't remember right now, which I'll look up.
266
00:14:11,400 --> 00:14:16,400
He went on and kind of explained the 21 cap,
267
00:14:16,400 --> 00:14:19,300
the 21 million cap of Bitcoin,
268
00:14:19,300 --> 00:14:21,440
'cause there can only ever be 21 million.
269
00:14:21,440 --> 00:14:23,900
And that is a very difficult thing to understand
270
00:14:23,900 --> 00:14:25,520
because people go, why?
271
00:14:25,520 --> 00:14:28,280
The answer is because it's in the source code.
272
00:14:28,280 --> 00:14:29,160
Well, the answer comes back,
273
00:14:29,160 --> 00:14:32,000
well, why can't I just change the source code?
274
00:14:32,000 --> 00:14:34,620
And the real answer to this question is
275
00:14:34,620 --> 00:14:38,100
it's because Bitcoin is not run on one machine.
276
00:14:38,100 --> 00:14:40,460
Bitcoin is run on thousands of machines
277
00:14:40,460 --> 00:14:44,280
that are agreement that this source code equals Bitcoin.
278
00:14:44,280 --> 00:14:48,060
And yes, there are upgrades to the Bitcoin software
279
00:14:48,060 --> 00:14:50,200
and people can do that.
280
00:14:50,200 --> 00:14:53,680
But like if someone fundamentally forks Bitcoin
281
00:14:53,680 --> 00:14:56,440
and creates something called like, let's say Bitcoin Cash,
282
00:14:56,440 --> 00:14:58,400
which happened a few years ago,
283
00:14:58,400 --> 00:15:02,280
and they make fundamental changes in the Bitcoin nodes
284
00:15:02,280 --> 00:15:06,300
do not accept their Bitcoin as being Bitcoin anymore,
285
00:15:06,300 --> 00:15:07,620
they've created something new.
286
00:15:07,620 --> 00:15:10,220
It's not that like, you can't change it,
287
00:15:10,220 --> 00:15:13,860
It's like you've changed it into a new thing.
288
00:15:13,860 --> 00:15:16,200
It's not like it would be, it's the equivalent
289
00:15:16,200 --> 00:15:18,020
and this is what it is, it's the equivalent
290
00:15:18,020 --> 00:15:20,700
of adding an atom to a gold molecule.
291
00:15:20,700 --> 00:15:23,280
It's no longer gold, it's something else.
292
00:15:23,280 --> 00:15:27,360
You can theoretically do it, but like you have now created
293
00:15:27,360 --> 00:15:29,020
something that is not the thing you started.
294
00:15:29,020 --> 00:15:32,180
- To pedantically correct your metaphor,
295
00:15:32,180 --> 00:15:36,780
the words you were looking for were atom and proton.
296
00:15:36,780 --> 00:15:38,440
- I appreciate all of that
297
00:15:38,440 --> 00:15:41,860
because I was not getting those words right now.
298
00:15:41,860 --> 00:15:46,360
- A gold molecule is just gold atoms.
299
00:15:46,360 --> 00:15:51,360
And a different atom, that's just another atom.
300
00:15:51,360 --> 00:15:53,760
- See, this is why you're in college.
301
00:15:53,760 --> 00:15:54,980
And I am tired.
302
00:15:54,980 --> 00:16:00,120
But yeah, so yes, if you change the underlying
303
00:16:00,120 --> 00:16:04,100
atomic structure of something, you've created a new thing.
304
00:16:04,100 --> 00:16:06,240
It doesn't mean that the new thing is invaluable.
305
00:16:06,240 --> 00:16:08,080
It's just that it is no longer the old thing.
306
00:16:08,080 --> 00:16:09,320
- Yeah, that is perhaps--
307
00:16:09,320 --> 00:16:12,040
- And that's the definition of an atom.
308
00:16:12,040 --> 00:16:13,400
- Yeah, absolutely.
309
00:16:13,400 --> 00:16:16,240
- Some may say, and that's people being the dictionary.
310
00:16:16,240 --> 00:16:22,080
- Which is not immutable, surprisingly.
311
00:16:22,080 --> 00:16:28,340
- I'm in a computer science class.
312
00:16:28,340 --> 00:16:33,000
I'm learning Python, very, very useful thing.
313
00:16:33,000 --> 00:16:34,580
I can read Python source code now,
314
00:16:34,580 --> 00:16:39,420
and I now know enough to realize I never want to edit Python source code ever.
315
00:16:39,420 --> 00:16:42,020
It's like I.
316
00:16:42,020 --> 00:16:46,920
This this is a very sloppy segue into an issue
317
00:16:46,920 --> 00:16:49,020
I was having with YouTube, D.L.
318
00:16:49,020 --> 00:16:52,580
A couple of years ago, because the way I the way I watch YouTube now
319
00:16:52,580 --> 00:16:54,420
is I have an RSS feed reader.
320
00:16:54,420 --> 00:16:59,920
The issue I was having is there is a fork of YouTube
321
00:16:59,920 --> 00:17:14,620
called yt-dlp. Now there are two there are two bugs in in YouTube DL, the
322
00:17:14,620 --> 00:17:24,700
overall like project tree that came up recently. The first one is that uploader
323
00:17:24,700 --> 00:17:29,560
ID not existing was causing downloads to fail and apparently no YouTube videos
324
00:17:29,560 --> 00:17:36,840
have uploader IDs now. And the other bug is that PeerTube instances weren't being recognized
325
00:17:36,840 --> 00:17:45,480
for the PeerTube extractor. Now the very annoying thing... Oh, a third bug. Patreon RSS feeds
326
00:17:45,480 --> 00:17:46,480
weren't working?
327
00:17:46,480 --> 00:17:48,600
Oh yeah, no, they're the worst.
328
00:17:48,600 --> 00:17:50,520
Patreon RSS feeds are the worst.
329
00:17:50,520 --> 00:17:57,500
I got that working now. So that one's fixed. All of these are fixed. The problem is they're
330
00:17:57,500 --> 00:18:02,460
They're not fixed in the same app, so depending on the site I use, I have to call a different
331
00:18:02,460 --> 00:18:04,380
fork of YouTube DL.
332
00:18:04,380 --> 00:18:10,660
And I was looking in GitHub, and one of the issues was PeerTube isn't being recognized.
333
00:18:10,660 --> 00:18:18,020
Like, today I learned vids.com isn't recognized as a PeerTube instance.
334
00:18:18,020 --> 00:18:21,940
In the YouTube DL main project, there was an issue.
335
00:18:21,940 --> 00:18:30,680
And then later, the maintainers of the fork, sorry for smacking my microphone, came in,
336
00:18:30,680 --> 00:18:38,060
posted the fix, marked ink, and then in the same issue for the main project, also like
337
00:18:38,060 --> 00:18:44,340
implemented the fix so their thing works, and it's still not in the main one.
338
00:18:44,340 --> 00:18:50,820
There was no, maybe they fixed it since I last looked, but it was an ordeal.
339
00:18:50,820 --> 00:18:56,460
And I could fix it if I could read Python, because I can read Python source code.
340
00:18:56,460 --> 00:19:00,000
However, Python source code is a nightmare.
341
00:19:00,000 --> 00:19:05,660
And I'm fully aware that I've just gone on a wild tangent at this point.
342
00:19:05,660 --> 00:19:08,460
But I've been holding this in for quite a while now.
343
00:19:08,460 --> 00:19:10,380
No, that's fair.
344
00:19:10,380 --> 00:19:12,500
I mean, we all have our languages.
345
00:19:12,500 --> 00:19:13,500
I work in JavaScript.
346
00:19:13,500 --> 00:19:15,340
Anyway, back to all of that.
347
00:19:15,340 --> 00:19:19,740
Well, I mean, it's interesting that you brought up here, too, because that's another one of
348
00:19:19,740 --> 00:19:26,980
these distributed solutions where, and you could say theoretically that like, let's say
349
00:19:26,980 --> 00:19:30,620
that YouTube had a vested interest in making sure that YouTube downloader worked.
350
00:19:30,620 --> 00:19:32,980
They could be like, Oh, well, we'll just fix it in the source.
351
00:19:32,980 --> 00:19:35,420
And then YouTube downloader won't have to fix it.
352
00:19:35,420 --> 00:19:38,300
With peer tube, you have all the different instances.
353
00:19:38,300 --> 00:19:42,860
So you kind of have to go, okay, which version of peer tube are we going to support?
354
00:19:42,860 --> 00:19:43,340
Yeah.
355
00:19:43,340 --> 00:19:47,980
Which, um, and then say, Oh, this is how we will support it on these tools.
356
00:19:47,980 --> 00:19:51,500
So distributed software makes it more complicated,
357
00:19:51,500 --> 00:19:55,260
but distributed software makes it more robust.
358
00:19:55,260 --> 00:19:57,780
It's the way that DNS and email work,
359
00:19:57,780 --> 00:20:01,840
where it's the reason why if something's gone wrong,
360
00:20:01,840 --> 00:20:06,300
it's DNS because it's a distributed system.
361
00:20:06,300 --> 00:20:10,540
- Yeah, also one thing I will mention is
362
00:20:10,540 --> 00:20:17,060
I'm broadly more in favor of,
363
00:20:17,420 --> 00:20:22,020
Like Bitcoin, you cannot change without getting like everyone in agreement.
364
00:20:22,020 --> 00:20:25,860
With something like PeerTube, you can...
365
00:20:25,860 --> 00:20:29,540
It's easier to change things.
366
00:20:29,540 --> 00:20:33,500
And that is a strength and a weakness.
367
00:20:33,500 --> 00:20:41,820
In my experience with software, it's better to be able to change things easier than not.
368
00:20:41,820 --> 00:20:46,260
I will freely admit, I don't have a ton of experience in this.
369
00:20:46,260 --> 00:20:50,740
But that's generally where I where I seem to fall.
370
00:20:50,740 --> 00:20:56,300
This is kind of a really good point because this is where this kind of starts to work.
371
00:20:56,300 --> 00:21:12,420
If you think about what Bitcoin Bitcoin versus pure tube in a distributed sense, pure tube are things talking together that if you make an addition to it doesn't fundamentally change the underlying thing you're trying to do.
372
00:21:12,820 --> 00:21:16,780
So additions, extensions to protocols, all those things,
373
00:21:16,780 --> 00:21:20,740
all of like the RSS and Podcasting 2.0,
374
00:21:20,740 --> 00:21:23,900
'cause RSS is an extension of XML.
375
00:21:23,900 --> 00:21:27,380
Podcasting is an extension on top of RSS.
376
00:21:27,380 --> 00:21:29,060
Like they're taking something and refining it
377
00:21:29,060 --> 00:21:30,340
and utilizing that for more things.
378
00:21:30,340 --> 00:21:33,780
- Yeah, as a side note, I believe PeerTube
379
00:21:33,780 --> 00:21:38,380
does use Podcasting RSS instead of just Vanilla RSS,
380
00:21:38,380 --> 00:21:42,660
which I found out when I did not perform as expected
381
00:21:42,660 --> 00:21:44,540
when I was doing a thing.
382
00:21:44,540 --> 00:21:47,460
- PeerTube actually I believe does value for value
383
00:21:47,460 --> 00:21:52,360
and all of the things that kind of make YouTube super chats
384
00:21:52,360 --> 00:21:53,800
and all those things now exist
385
00:21:53,800 --> 00:21:57,140
is things called boostograms, which we could receive.
386
00:21:57,140 --> 00:21:58,140
I'm just putting that out there.
387
00:21:58,140 --> 00:21:58,980
- Yeah, if you wanna--
388
00:21:58,980 --> 00:21:59,820
- Apparently there are people--
389
00:21:59,820 --> 00:22:01,460
(laughs)
390
00:22:01,460 --> 00:22:02,380
I've looked at stats.
391
00:22:02,380 --> 00:22:04,200
Apparently there are some people listening to this.
392
00:22:04,200 --> 00:22:06,060
Either that or you and I are downloading a bunch.
393
00:22:06,060 --> 00:22:07,100
I don't know which one it is.
394
00:22:07,100 --> 00:22:08,100
I don't really care.
395
00:22:09,540 --> 00:22:13,440
I got a cron job to download this podcast every five hours.
396
00:22:13,440 --> 00:22:14,420
That's right.
397
00:22:14,420 --> 00:22:15,120
I appreciate that.
398
00:22:15,120 --> 00:22:17,340
I actually juicing our advertising.
399
00:22:17,340 --> 00:22:20,760
I'm trying to get that working from my other podcast and I just can't correct
400
00:22:20,760 --> 00:22:21,960
all of them except this one.
401
00:22:21,960 --> 00:22:22,680
Yeah, no, that's fair.
402
00:22:22,680 --> 00:22:28,200
Um, but like if you take pure tube and what it's trying to do, it is.
403
00:22:28,200 --> 00:22:33,700
Those are a federated network of things as opposed to a distributed, the
404
00:22:33,700 --> 00:22:37,460
thing about Bitcoin is it's a distributed ledger, meaning that all of the ledgers
405
00:22:37,520 --> 00:22:42,460
need to be able to validate to the same answer, whereas peer to can be little
406
00:22:42,460 --> 00:22:44,480
islands of things that know how to talk to each other.
407
00:22:44,480 --> 00:22:44,660
Yeah.
408
00:22:44,660 --> 00:22:46,220
So they're both distributed.
409
00:22:46,220 --> 00:22:51,400
It's why people who are into Noster and like very heavily, like it has to be
410
00:22:51,400 --> 00:22:55,620
distributed because of censorship, because of I want to own my data.
411
00:22:55,620 --> 00:22:59,180
They go mastodon is not a distributed system.
412
00:22:59,180 --> 00:23:05,940
Mastodon is a federated system where like though you can't take one account from
413
00:23:05,940 --> 00:23:09,440
system to system to system. You have an account on that sit on a
414
00:23:09,440 --> 00:23:12,200
massed on instance, then then talks to other instances.
415
00:23:12,200 --> 00:23:14,720
You can you have an account and you
416
00:23:14,720 --> 00:23:20,240
Yeah, I feel like to voice the views of some people who may be
417
00:23:20,240 --> 00:23:24,780
speaking up, you can move accounts. However, that is very
418
00:23:24,780 --> 00:23:28,860
much a the two the two servers have to agree to transfer that
419
00:23:28,860 --> 00:23:30,060
account and you don't move over.
420
00:23:31,380 --> 00:23:38,100
And I mean, it is a matter of eat in the same way that it destroys one and creates the other.
421
00:23:38,100 --> 00:23:44,300
It's not a true migration of like this, this Adam to use that metaphor again, this Adam goes over here.
422
00:23:44,300 --> 00:23:46,740
It basically is the quantum teleport.
423
00:23:46,740 --> 00:23:49,540
This Adam over here is a yeah, it's a copy of the original.
424
00:23:49,540 --> 00:23:54,060
I'm really hoping I got that that reference.
425
00:23:54,060 --> 00:23:54,580
I believe you did.
426
00:23:54,580 --> 00:24:01,220
That was yeah, I would have been on the transporter, but sure that people care a lot about about being
427
00:24:01,220 --> 00:24:04,300
write about that is one that people definitely care a lot about.
428
00:24:04,300 --> 00:24:06,540
Yeah, I will say
429
00:24:06,540 --> 00:24:10,660
distributed systems are interesting in that
430
00:24:10,660 --> 00:24:17,300
in some instances they don't they don't really act like federated systems
431
00:24:17,300 --> 00:24:20,580
like peer to mass it on Miski, et cetera.
432
00:24:20,580 --> 00:24:24,220
They act more like the Web standards like Activity Pub.
433
00:24:24,220 --> 00:24:26,260
Yeah, because
434
00:24:27,460 --> 00:24:33,300
And it's a discussion that is probably worth having on whether you want software to behave
435
00:24:33,300 --> 00:24:39,780
like a standard instead of an implementation of a standard. I don't have an answer for that.
436
00:24:39,780 --> 00:24:44,020
That feels like kind of above my pay grade.
437
00:24:44,020 --> 00:24:48,660
That is one of those ones that there's a lot of religious words about that.
438
00:24:48,660 --> 00:24:53,860
And there are people who think they're Bitcoin maxis or like, "No, if it's not this,
439
00:24:54,980 --> 00:25:02,820
that it doesn't count and I think that there's a happy medium of finding the best parts of
440
00:25:02,820 --> 00:25:09,140
different methodologies for their intended use cases. I think Mastodon and Pixel Fed work really
441
00:25:09,140 --> 00:25:16,420
well for what they're intended for. The concern I have that like Masto.social is not the intended
442
00:25:16,420 --> 00:25:24,900
purpose of Mastodon. That's really a communication issue, which is kind of inevitable when you
443
00:25:24,900 --> 00:25:35,700
you have when you have a shift from the current regime of silos into the federated network,
444
00:25:35,700 --> 00:25:39,420
a lot of people like don't get that there are there are a bunch of different options
445
00:25:39,420 --> 00:25:48,700
and just go for the one that is the it's mastodon dot social. This must be the official one.
446
00:25:48,700 --> 00:25:49,700
Yep.
447
00:25:49,700 --> 00:25:54,900
And that's not that's not how it's designed to work like nobody really wants there to
448
00:25:54,900 --> 00:26:01,740
be like large monolithic servers because that there was an issue with a server called Mastodon
449
00:26:01,740 --> 00:26:08,500
dot lol where there were too many people on it and the admin could not handle it and so
450
00:26:08,500 --> 00:26:16,020
the server shut down and there was like a mass exodus and yep like that's it causes
451
00:26:16,020 --> 00:26:19,060
strain on the whole network when there's large servers.
452
00:26:19,060 --> 00:26:22,060
I don't blame people for not understanding like,
453
00:26:22,060 --> 00:26:24,580
I was like find the smallest server you can
454
00:26:24,580 --> 00:26:27,080
so you don't have an admin with too much power.
455
00:26:27,080 --> 00:26:29,820
'Cause that's just not how we've thought about things
456
00:26:29,820 --> 00:26:31,480
since like the early 2000s.
457
00:26:31,480 --> 00:26:34,780
- Yeah, I mean, we went from AOL,
458
00:26:34,780 --> 00:26:36,620
which was the original walled garden,
459
00:26:36,620 --> 00:26:38,300
to people feel safe in a walled garden
460
00:26:38,300 --> 00:26:39,780
'cause somebody else has to worry about the walls.
461
00:26:39,780 --> 00:26:42,540
- Yeah, it's like, I do not,
462
00:26:42,540 --> 00:26:48,260
on that note, I will never admin a Mastodon server.
463
00:26:48,260 --> 00:26:52,580
Like I that is just like, because there's so much you have to do.
464
00:26:52,580 --> 00:26:56,580
Well, fortunately, you have someone in your life who's willing to do that.
465
00:26:56,580 --> 00:26:58,080
So, yeah.
466
00:26:58,080 --> 00:27:02,020
And speaking of that, because we yeah, absolutely.
467
00:27:02,020 --> 00:27:05,720
Anytime because, you know, this is our second second go around.
468
00:27:05,720 --> 00:27:07,280
We didn't even talk about my new steam deck.
469
00:27:07,280 --> 00:27:09,720
We'll talk about that when it comes in.
470
00:27:09,720 --> 00:27:13,000
If you don't mind, let's wrap this up for the day.
471
00:27:13,000 --> 00:27:15,260
Zane, where can people find you?
472
00:27:15,260 --> 00:27:16,960
Zane Becker bird.com.
473
00:27:16,960 --> 00:27:18,560
No, no spaces.
474
00:27:18,560 --> 00:27:19,720
Congratulations.
475
00:27:19,720 --> 00:27:22,800
It's up to it looks real nice.
476
00:27:22,800 --> 00:27:24,760
Yeah.
477
00:27:24,760 --> 00:27:29,560
I'm trying to get the essay SEO working, so it actually shows up above my old blog
478
00:27:29,560 --> 00:27:31,560
when you type my name into Google.
479
00:27:31,560 --> 00:27:35,760
Also, obituaries like I've just a comical amount of obituaries.
480
00:27:35,760 --> 00:27:39,680
Oh, some of which are related to me.
481
00:27:39,680 --> 00:27:42,120
Oh, my God.
482
00:27:43,120 --> 00:27:48,120
but also 103.social/xane.
483
00:27:48,120 --> 00:27:55,960
And I think that may be it right now.
484
00:27:55,960 --> 00:27:58,440
- Cool.
485
00:27:58,440 --> 00:28:02,220
You can find me at @msb@103.social,
486
00:28:02,220 --> 00:28:07,200
federated on the Mastodon Activity Pub, Fetaverse.
487
00:28:07,200 --> 00:28:10,880
And msb.link has all of my links on it.
488
00:28:10,880 --> 00:28:15,160
I've been playing around with a URL shorteners for work and I've been
489
00:28:15,160 --> 00:28:16,040
doing some testing there.
490
00:28:16,040 --> 00:28:19,480
So if that's not up, it's because I broke it, but it'll come back up pretty quickly.
491
00:28:19,480 --> 00:28:21,560
So yeah, well, thank you Zane.
492
00:28:21,560 --> 00:28:24,680
Lovely to talk to you and see you next week.
493
00:28:24,680 --> 00:28:25,400
So yeah.
494
00:28:25,400 --> 00:28:35,400
[MUSIC]
495
00:28:35,400 --> 00:28:37,980
(upbeat music)
496
00:28:37,980 --> 00:28:40,560
(upbeat music)
497
00:28:40,560 --> 00:28:43,140
(upbeat music)
498
00:28:43,140 --> 00:28:45,720
(upbeat music)
499
00:28:45,720 --> 00:28:48,300
(upbeat music)
500
00:28:48,300 --> 00:28:50,880
(upbeat music)
501
00:28:50,880 --> 00:28:53,460
(upbeat music)
502
00:28:53,460 --> 00:28:56,040
(upbeat music)
503
00:28:56,040 --> 00:28:58,620
(upbeat music)
504
00:28:58,620 --> 00:29:01,200
(upbeat music)
505
00:29:01,200 --> 00:29:03,780
(upbeat music)
506
00:29:03,780 --> 00:29:06,360
(upbeat music)
507
00:29:06,360 --> 00:29:08,940
(upbeat music)
508
00:29:08,940 --> 00:29:38,540
[Music]
509
00:29:38,540 --> 00:29:41,460
(electronic music)
510
00:29:41,460 --> 00:29:44,540
(electronic beeping)
511
00:29:44,540 --> 00:29:46,540
Hank Ohio