Back on-line!
March 21, 2023

Episode 5: Just Hit Record

Episode 5: Just Hit Record

Episode 5: Just Hit Record

The player is loading ...
Ok, What Went Wrong?

Just Hit Record

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