WEBVTT 00:00:00.555 --> 00:00:02.556 Hey, welcome back to Community in Code. 00:00:02.616 --> 00:00:04.296 My name is Chris Reynolds, 00:00:04.757 --> 00:00:07.278 and my guest today will tell you in 00:00:07.318 --> 00:00:09.659 the most Canadian way possible that he's 00:00:09.719 --> 00:00:11.039 not really that technical. 00:00:11.679 --> 00:00:13.440 But if you let him show you the 00:00:13.480 --> 00:00:15.701 complex architecture diagrams that he's 00:00:15.761 --> 00:00:18.022 built to illustrate the fair project that 00:00:18.042 --> 00:00:19.743 he sits on the technical steering 00:00:19.783 --> 00:00:20.423 committee for, 00:00:20.943 --> 00:00:22.784 you'll probably have a hard time actually 00:00:22.824 --> 00:00:23.304 believing him. 00:00:24.395 --> 00:00:26.517 Brent Todorash is a Winnipeg-based 00:00:26.777 --> 00:00:27.878 developer, consultant, 00:00:27.958 --> 00:00:30.780 and self-described thinker of things who's 00:00:30.840 --> 00:00:33.462 been in the WordPress community since it 00:00:33.502 --> 00:00:34.503 was BII. 00:00:34.773 --> 00:00:35.777 through 00:00:35.797 --> 00:00:38.540 the Federated and Independent Repositories 00:00:39.280 --> 00:00:41.542 project and in person last year at 00:00:41.562 --> 00:00:42.963 WordCamp Canada in Ottawa. 00:00:43.349 --> 00:00:45.771 He co-runs a WordPress-focused agency with 00:00:45.811 --> 00:00:47.633 his brother Scott and came up through the 00:00:47.673 --> 00:00:49.635 nineties Linux and free software scene 00:00:49.735 --> 00:00:51.857 long before he ever touched WordPress, 00:00:52.218 --> 00:00:54.981 which he says is exactly backwards of most 00:00:55.001 --> 00:00:55.561 of the community. 00:00:56.342 --> 00:00:58.524 He thinks money is a lousy motivator and 00:00:58.544 --> 00:01:01.047 that AI might actually bring back one of 00:01:01.067 --> 00:01:02.888 the oldest open source instincts, 00:01:03.329 --> 00:01:04.870 building a thing and giving it away. 00:01:05.591 --> 00:01:07.292 We talk about FAIR's evolution and 00:01:07.332 --> 00:01:08.693 adoption by TYPO-III, 00:01:08.953 --> 00:01:10.254 and how it was never really about 00:01:10.334 --> 00:01:10.914 WordPress, 00:01:10.974 --> 00:01:12.475 it was about the software supply chain 00:01:12.535 --> 00:01:12.955 itself. 00:01:13.375 --> 00:01:15.317 I'm thrilled to introduce you to Brent 00:01:15.477 --> 00:01:15.937 Todorash. 00:01:35.743 --> 00:01:37.044 Welcome to Community & Code, 00:01:37.083 --> 00:01:38.645 the podcast where we talk to the human 00:01:38.685 --> 00:01:39.826 beings behind the commits. 00:01:40.187 --> 00:01:42.548 Today, I am with Brent Todorash, 00:01:42.748 --> 00:01:46.311 a longtime WordPress user, developer, 00:01:47.693 --> 00:01:50.894 thinker of things, and currently, 00:01:52.095 --> 00:01:52.636 basically, 00:01:52.676 --> 00:01:54.397 you're kind of project managing the FAIR 00:01:54.438 --> 00:01:55.979 project, I think is safe to say. 00:01:58.200 --> 00:01:59.482 Welcome to the show, Brent. 00:01:59.961 --> 00:02:00.783 Tell us about yourself. 00:02:02.546 --> 00:02:03.568 Oh, well, 00:02:04.287 --> 00:02:06.028 it's a big subject because I'm not a 00:02:06.068 --> 00:02:06.890 young guy anymore. 00:02:09.711 --> 00:02:10.230 But yeah, 00:02:10.471 --> 00:02:13.613 I've been in the WordPress space for many 00:02:13.653 --> 00:02:14.032 years. 00:02:15.274 --> 00:02:16.214 Low profile bloggers. 00:02:16.881 --> 00:02:17.861 for most of that time. 00:02:18.461 --> 00:02:19.963 But, um, you know, 00:02:20.003 --> 00:02:22.943 it more recently I've kind of stepped up 00:02:22.964 --> 00:02:23.144 to, 00:02:24.224 --> 00:02:26.046 to work with Aspire Press and then with 00:02:26.105 --> 00:02:27.387 FAIR, uh, 00:02:27.486 --> 00:02:30.348 and kind of become associated there as 00:02:30.388 --> 00:02:30.629 well. 00:02:30.649 --> 00:02:32.229 So, um, yeah. 00:02:32.610 --> 00:02:33.470 And I, you know, 00:02:33.570 --> 00:02:37.613 I don't have a formal designation or title 00:02:37.732 --> 00:02:40.614 as the project manager of FAIR, but it's, 00:02:41.435 --> 00:02:41.694 you know, 00:02:42.254 --> 00:02:43.575 I just kind of step in with that 00:02:43.775 --> 00:02:45.256 kind of, um, 00:02:47.976 --> 00:02:48.476 you know, 00:02:48.495 --> 00:02:50.137 sort of thinking and thought process 00:02:51.158 --> 00:02:52.399 rather than pure code. 00:02:53.239 --> 00:02:56.941 And it's kind of help out, you know, 00:02:57.781 --> 00:03:00.324 which is cool because open source is 00:03:00.384 --> 00:03:02.485 always, you know, 00:03:02.524 --> 00:03:03.446 bring the skills you have. 00:03:04.066 --> 00:03:05.906 And if coding is not at the top 00:03:05.968 --> 00:03:06.968 of your list, that's okay. 00:03:07.048 --> 00:03:07.569 There's still... 00:03:08.348 --> 00:03:11.289 things you can do. 00:03:11.310 --> 00:03:12.629 I feel like you're being very humble 00:03:12.670 --> 00:03:16.671 because I've seen some of the architecture 00:03:16.712 --> 00:03:18.912 diagrams that you have drawn up and they 00:03:18.953 --> 00:03:21.274 are highly technical and things that 00:03:21.634 --> 00:03:25.796 require like me to squint my eyes a 00:03:25.816 --> 00:03:27.537 little bit to like follow the logic. 00:03:27.818 --> 00:03:29.158 So like there's a lot of thinking that 00:03:29.199 --> 00:03:30.259 goes in there and there's a lot of 00:03:30.339 --> 00:03:34.741 like pulling pieces together and like FAIR 00:03:35.202 --> 00:03:37.382 as a project is not 00:03:39.313 --> 00:03:43.617 is is a complex beast let's say yes 00:03:44.177 --> 00:03:49.719 yeah um so i yeah okay humble whatever 00:03:49.860 --> 00:03:51.660 i i'm canadian we're generally 00:03:51.741 --> 00:03:55.763 self-deprecating uh as a as a rule so 00:03:55.784 --> 00:03:59.826 uh if i downplay myself that's it's 00:03:59.866 --> 00:04:05.828 cultural so i yeah i've created some very 00:04:05.869 --> 00:04:08.211 complicated diagrams and 00:04:09.352 --> 00:04:11.074 you know as the saying goes any fool 00:04:11.113 --> 00:04:14.054 can make something complicated but the 00:04:14.094 --> 00:04:16.235 real so that's what i do i make 00:04:16.255 --> 00:04:21.316 things complicated but um but really um 00:04:21.536 --> 00:04:23.537 fair has a lot of moving pieces and 00:04:23.558 --> 00:04:23.957 a lot of 00:04:25.148 --> 00:04:26.289 you know, very, you know, 00:04:26.469 --> 00:04:27.529 very intricate bits. 00:04:27.910 --> 00:04:31.430 And most people don't look at it as 00:04:31.451 --> 00:04:31.911 a whole, 00:04:32.432 --> 00:04:33.812 because it's very hard to do that. 00:04:33.992 --> 00:04:37.414 So we kind of look at it in 00:04:37.453 --> 00:04:38.113 little pieces. 00:04:38.194 --> 00:04:40.674 So you've probably seen the diagram with 00:04:40.855 --> 00:04:41.714 everything on it. 00:04:42.494 --> 00:04:43.516 But in practice, 00:04:44.438 --> 00:04:45.999 you really look at that in just chunks 00:04:46.059 --> 00:04:49.420 because it's easier to conceptualize what 00:04:49.499 --> 00:04:50.779 each system does that way. 00:04:53.701 --> 00:04:55.781 And the big diagram is how the systems 00:04:55.842 --> 00:04:57.242 interrelate and talk to each other. 00:04:57.321 --> 00:05:00.023 So, yeah. 00:05:00.042 --> 00:05:03.423 But that's kind of one of the things 00:05:03.444 --> 00:05:06.424 that I've sort of done over the years 00:05:06.464 --> 00:05:08.005 is it's what I do. 00:05:08.065 --> 00:05:10.286 I pull out threads and either I've 00:05:10.406 --> 00:05:12.427 discovered they're disconnected and should 00:05:12.446 --> 00:05:13.387 be thrown away or 00:05:14.148 --> 00:05:16.130 you know i find out you know how 00:05:16.189 --> 00:05:20.392 it really does connect things and um and 00:05:20.452 --> 00:05:22.053 how things need to talk to each other 00:05:22.113 --> 00:05:24.815 if they if they aren't or what that 00:05:24.836 --> 00:05:26.417 sort of thing so that's that's sort of 00:05:26.457 --> 00:05:28.879 the big picture or systems thinking that i 00:05:28.898 --> 00:05:32.902 i kind of really excites me um and 00:05:32.943 --> 00:05:34.543 this is one of the reasons um 00:05:36.634 --> 00:05:38.455 you know, going back to open source, 00:05:38.814 --> 00:05:40.616 this is one of the classic reasons why 00:05:40.655 --> 00:05:43.117 people do it at all is because, 00:05:43.857 --> 00:05:44.118 you know, 00:05:44.257 --> 00:05:46.719 offer someone an interesting problem and 00:05:47.199 --> 00:05:47.619 they'll show up. 00:05:47.640 --> 00:05:50.701 Uh, and, uh, 00:05:50.720 --> 00:05:52.441 and that was my introduction to open 00:05:52.482 --> 00:05:57.545 source is, um, the, uh, you know, 00:05:57.564 --> 00:06:00.566 late nineties, uh, I started reading and, 00:06:01.227 --> 00:06:02.047 um, 00:06:02.167 --> 00:06:03.948 I started playing with Linux and stuff 00:06:03.987 --> 00:06:04.408 like that. 00:06:04.627 --> 00:06:05.708 And, uh, uh, 00:06:06.275 --> 00:06:06.494 you know, 00:06:06.535 --> 00:06:08.996 learning more about the open source 00:06:09.016 --> 00:06:11.497 development model and about free software. 00:06:14.158 --> 00:06:17.299 And that is a big question because you 00:06:17.379 --> 00:06:21.780 typically think of, or it's changing, 00:06:22.360 --> 00:06:22.761 thankfully, 00:06:23.600 --> 00:06:25.701 but for a long time you thought about 00:06:25.742 --> 00:06:27.201 software as something that, you know, 00:06:27.401 --> 00:06:28.622 how can I make money from this? 00:06:28.783 --> 00:06:31.504 It's, you know, I'm going to, 00:06:31.744 --> 00:06:32.905 I'm going to write some code, 00:06:32.924 --> 00:06:34.126 and then I need to cash in. 00:06:35.225 --> 00:06:38.869 But historically, that wasn't the view. 00:06:40.689 --> 00:06:44.091 Historically, it was, you know, 00:06:44.131 --> 00:06:44.812 I'm writing code. 00:06:44.833 --> 00:06:45.633 This is interesting. 00:06:45.674 --> 00:06:46.893 Maybe somebody else can use it. 00:06:46.934 --> 00:06:47.775 I'll just share it, 00:06:47.814 --> 00:06:49.115 and they'll share stuff with me. 00:06:49.235 --> 00:06:54.900 And that's how computer science generally 00:06:54.920 --> 00:06:55.020 works. 00:06:56.859 --> 00:06:57.138 you know, uh, 00:06:57.158 --> 00:06:58.920 is standing on the shoulders of giants, 00:06:58.980 --> 00:07:01.299 which is a whole scientific model of 00:07:01.759 --> 00:07:03.980 sharing because, uh, 00:07:04.021 --> 00:07:05.160 because everyone benefits. 00:07:05.181 --> 00:07:08.182 So, um, yeah, 00:07:08.201 --> 00:07:09.321 I forget where I was going, but well, 00:07:09.362 --> 00:07:11.602 let's, I mean, that tangents, uh, 00:07:12.023 --> 00:07:13.542 into sort of where I wanted to go 00:07:13.643 --> 00:07:15.343 anyway, which is, uh, 00:07:15.564 --> 00:07:18.504 like sort of what brought you to what 00:07:18.545 --> 00:07:20.405 got you interested in tech to begin with 00:07:20.444 --> 00:07:22.345 what sort of led you into the realm 00:07:22.386 --> 00:07:23.865 of, of open source software. 00:07:25.530 --> 00:07:27.035 Um, let's see what, 00:07:27.194 --> 00:07:31.405 what caught me into tech, um, in, um, 00:07:33.415 --> 00:07:35.097 high school for me was the early eighties. 00:07:35.737 --> 00:07:38.638 So when I got to high school, 00:07:38.679 --> 00:07:40.879 we had computer science courses, 00:07:41.300 --> 00:07:42.321 signed up for all of them, 00:07:43.162 --> 00:07:44.102 all the computer science, 00:07:44.162 --> 00:07:47.203 all of the data processing, 00:07:47.223 --> 00:07:49.384 everything we could do and found that I 00:07:49.405 --> 00:07:50.304 just really liked it. 00:07:51.285 --> 00:07:53.566 And it turned out I was, 00:07:54.148 --> 00:07:55.528 I was reasonably good at it. 00:07:55.667 --> 00:07:58.110 So at that time we were, 00:07:59.129 --> 00:08:02.533 we were using punch cards um and feeding 00:08:02.554 --> 00:08:04.074 them into the card reader and it was 00:08:04.134 --> 00:08:07.158 a whole there's a whole production um so 00:08:07.417 --> 00:08:09.621 my first programs i ever wrote would have 00:08:09.920 --> 00:08:11.622 worked like pencil and paper which you 00:08:11.662 --> 00:08:13.444 then copy onto the cards so it was 00:08:14.304 --> 00:08:17.227 um but i i just you know i 00:08:17.247 --> 00:08:18.429 just took to it i really liked it 00:08:18.768 --> 00:08:20.831 um and then uh 00:08:21.605 --> 00:08:24.506 the school had these Commodore PET, 00:08:25.187 --> 00:08:25.506 which is, 00:08:26.107 --> 00:08:28.629 looks like a larger Commodore-sixty-four 00:08:28.669 --> 00:08:30.449 that people would be familiar with, 00:08:30.549 --> 00:08:33.090 but these started out with thirty-two K of 00:08:33.170 --> 00:08:33.470 memory. 00:08:35.771 --> 00:08:36.412 I used all of it. 00:08:39.074 --> 00:08:40.814 I wrote a program one time where I 00:08:40.895 --> 00:08:43.355 actually had to go and change the wording 00:08:43.376 --> 00:08:45.357 of some of the display sentences to make 00:08:45.376 --> 00:08:46.037 them shorter, 00:08:46.857 --> 00:08:51.078 because I'd run out of memory and just 00:08:51.119 --> 00:08:51.939 had to squeeze it in. 00:08:54.119 --> 00:08:58.400 But that was my introduction to tech. 00:08:58.961 --> 00:09:03.682 But I didn't follow it up. 00:09:03.881 --> 00:09:05.802 So after high school, 00:09:06.042 --> 00:09:11.244 I just did other things. 00:09:11.263 --> 00:09:11.624 So I didn't... 00:09:14.629 --> 00:09:16.030 and regretted it later. 00:09:16.069 --> 00:09:18.333 I should have stuck with it, 00:09:18.612 --> 00:09:21.275 gone to university and learned to do it 00:09:21.335 --> 00:09:21.675 properly. 00:09:21.896 --> 00:09:26.360 But I was in the general insurance 00:09:26.400 --> 00:09:30.804 industry for about a dozen years and got 00:09:30.864 --> 00:09:33.966 a professional designation as an insurance 00:09:34.006 --> 00:09:37.129 broker and analyzing risk and all that 00:09:37.170 --> 00:09:39.112 stuff, which came in handy later. 00:09:39.915 --> 00:09:41.797 Um, but as of, uh, 00:09:42.898 --> 00:09:44.538 it was spring of two thousand. 00:09:45.398 --> 00:09:46.739 Um, I'd been, you know, 00:09:46.759 --> 00:09:48.660 I'd gotten online by then and was, 00:09:49.081 --> 00:09:54.184 you know, back into the computers and, um, 00:09:54.203 --> 00:09:54.263 uh, 00:09:54.283 --> 00:09:55.924 was learning more about open source and 00:09:56.184 --> 00:09:56.684 all that stuff. 00:09:57.324 --> 00:09:58.605 Um, as the, 00:09:58.626 --> 00:10:00.086 as the internet was becoming popular. 00:10:00.126 --> 00:10:02.127 So, uh, spring of two thousand, 00:10:02.528 --> 00:10:04.468 I went into business with my brother. 00:10:04.509 --> 00:10:05.410 So, um, 00:10:06.590 --> 00:10:11.212 We were partners and built an ISP, 00:10:11.312 --> 00:10:12.354 wireless ISP. 00:10:12.393 --> 00:10:13.214 We did hosting. 00:10:14.534 --> 00:10:18.456 We did software development. 00:10:18.496 --> 00:10:22.119 So he came from a client server 00:10:22.138 --> 00:10:23.779 development in the in the nineties. 00:10:23.999 --> 00:10:26.662 They were doing a lot of some very 00:10:26.721 --> 00:10:29.422 large software work. 00:10:29.462 --> 00:10:31.725 So I 00:10:33.454 --> 00:10:36.696 He actually did get an education in 00:10:38.638 --> 00:10:39.398 writing software, 00:10:40.619 --> 00:10:42.561 and I just picked up the web stuff 00:10:42.640 --> 00:10:45.123 as I got into it. 00:10:46.204 --> 00:10:48.205 So we started doing that in early two 00:10:48.225 --> 00:10:52.568 thousand, and we survived Y-two-K. 00:10:57.611 --> 00:10:58.633 A lot of people who listen to your 00:10:59.693 --> 00:11:02.115 podcast, this is before their time anyway. 00:11:04.323 --> 00:11:04.604 I don't know. 00:11:05.183 --> 00:11:06.185 Yeah. 00:11:07.845 --> 00:11:09.065 At least they may not remember it. 00:11:09.164 --> 00:11:10.166 Maybe too young to remember. 00:11:12.566 --> 00:11:13.206 But yeah, that's... 00:11:13.787 --> 00:11:15.627 And it's interesting to think that now 00:11:15.667 --> 00:11:17.228 it's like it's over twenty five years 00:11:18.748 --> 00:11:21.729 where open source has been maturing and, 00:11:23.188 --> 00:11:26.350 you know, and, you know, 00:11:26.369 --> 00:11:28.110 I would say winning the day because, 00:11:29.431 --> 00:11:30.312 you know, what's the stat? 00:11:30.451 --> 00:11:31.871 It's like someone 00:11:32.298 --> 00:11:35.502 It's a huge percentage of even commercial 00:11:35.542 --> 00:11:39.264 packages that have open source somewhere 00:11:39.544 --> 00:11:42.106 embedded in them that are relying on it. 00:11:43.589 --> 00:11:46.970 And even Microsoft, 00:11:46.991 --> 00:11:48.873 who called Linux an existential threat, 00:11:49.033 --> 00:11:51.555 is on the Linux bandwagon now. 00:11:51.916 --> 00:11:56.580 And yeah, it's been a wild ride. 00:11:58.538 --> 00:11:58.898 Yeah, no, 00:11:58.959 --> 00:12:00.398 I was actually going to say because, 00:12:01.239 --> 00:12:01.560 you know, 00:12:01.720 --> 00:12:04.320 talking about Linux in the nineties and 00:12:04.419 --> 00:12:05.480 open source in the nineties, 00:12:05.519 --> 00:12:11.022 that was really sort of like, you know, 00:12:11.062 --> 00:12:12.841 the enemy of the state sort of thing. 00:12:13.002 --> 00:12:18.243 Like, you know, Microsoft was huge. 00:12:19.082 --> 00:12:23.004 Apple was slightly less so actually 00:12:23.023 --> 00:12:24.244 considerably less so in the nineties. 00:12:25.544 --> 00:12:25.805 And 00:12:27.745 --> 00:12:27.946 Yeah, 00:12:27.985 --> 00:12:30.167 it was very much like seen as a 00:12:30.308 --> 00:12:33.871 threat to the whole operational model of 00:12:34.191 --> 00:12:36.273 these large tech companies to even 00:12:36.334 --> 00:12:38.856 consider giving something away for free. 00:12:41.355 --> 00:12:44.478 What, uh, what, what attracted you? 00:12:44.658 --> 00:12:47.180 Like what, what about that model was, 00:12:47.360 --> 00:12:50.601 was made it attractive to you to play 00:12:50.642 --> 00:12:51.202 with, uh, 00:12:51.483 --> 00:12:54.565 Linux as opposed to like the sort of 00:12:54.765 --> 00:12:57.648 dogma of the time from, uh, 00:12:57.667 --> 00:13:00.029 from Microsoft is saying like, no, 00:13:00.090 --> 00:13:00.690 don't do this. 00:13:00.710 --> 00:13:01.590 This is very bad. 00:13:01.671 --> 00:13:03.832 Use our stuff instead. 00:13:03.893 --> 00:13:04.212 Yeah. 00:13:04.692 --> 00:13:07.475 Um, yeah, that's a good question. 00:13:08.036 --> 00:13:09.456 Uh, I, um, 00:13:13.844 --> 00:13:15.205 I've always been one of these root for 00:13:15.244 --> 00:13:16.305 the underdog kind of guys. 00:13:16.345 --> 00:13:20.307 So, uh, so that kind of helps. 00:13:20.327 --> 00:13:23.229 Uh, so, um, you know, 00:13:24.070 --> 00:13:26.851 voting for not Microsoft is what a bit 00:13:26.892 --> 00:13:27.231 of thing. 00:13:27.892 --> 00:13:29.033 Um, uh, 00:13:29.113 --> 00:13:31.354 and I like Bill Gates a lot more 00:13:31.393 --> 00:13:32.514 since he left Microsoft. 00:13:34.336 --> 00:13:37.998 Um, but, uh, the, um, 00:13:40.395 --> 00:13:41.437 I kind of, 00:13:41.576 --> 00:13:44.999 I objected to the way that Microsoft used 00:13:45.038 --> 00:13:51.321 their monopoly in Explorer, 00:13:52.503 --> 00:13:53.323 Internet Explorer, 00:13:53.443 --> 00:13:56.284 and then in even the Office Suite, 00:13:57.046 --> 00:13:58.507 like all of that stuff, that embrace, 00:13:58.566 --> 00:13:59.866 extend, extinguish, 00:13:59.927 --> 00:14:01.567 and fight everything with FUD. 00:14:02.869 --> 00:14:05.911 So I just, 00:14:05.970 --> 00:14:07.512 I kind of reacted to that and 00:14:07.999 --> 00:14:12.542 wanted to find another way and I like 00:14:12.601 --> 00:14:17.526 the sort of mutual sharing and we don't 00:14:17.566 --> 00:14:18.927 have to be in this for the money 00:14:19.047 --> 00:14:21.948 as long as everybody has enough to you 00:14:21.969 --> 00:14:23.850 know to get on with their life that's 00:14:24.370 --> 00:14:27.552 you know we don't have to you know 00:14:27.592 --> 00:14:29.653 see who's got the biggest stack of coins 00:14:29.693 --> 00:14:34.717 it's that's that's never been the biggest 00:14:34.797 --> 00:14:37.080 motivator for me what and I don't think 00:14:37.100 --> 00:14:37.279 it is 00:14:40.913 --> 00:14:42.615 People might criticize the viewpoint, 00:14:42.656 --> 00:14:45.320 but I don't think money is a good 00:14:45.379 --> 00:14:46.260 long-term motivator. 00:14:46.281 --> 00:14:50.927 I think it's a fair short-term motivator. 00:14:53.610 --> 00:14:54.972 You'll show up and get paid all week, 00:14:55.412 --> 00:14:55.592 but... 00:14:57.793 --> 00:14:59.515 whatever they offer you as a you know 00:14:59.715 --> 00:15:03.138 staggering salary three years in it 00:15:03.178 --> 00:15:05.662 doesn't matter anymore it's if the job is 00:15:05.762 --> 00:15:08.384 drudgery you're you'll still hate it right 00:15:08.685 --> 00:15:11.366 so um so there's things that that money 00:15:11.407 --> 00:15:14.310 just doesn't overcome in in motivation but 00:15:14.990 --> 00:15:17.273 um in uh 00:15:18.206 --> 00:15:19.606 in software, in open source, 00:15:20.086 --> 00:15:21.427 it's interesting problems. 00:15:22.068 --> 00:15:25.390 It's scratching that personal itch is 00:15:25.491 --> 00:15:28.393 always the classic metaphor that, 00:15:28.494 --> 00:15:31.836 you know, I need to do this. 00:15:32.177 --> 00:15:34.118 And so you write the thing and you 00:15:34.138 --> 00:15:35.918 do it and then you just give it 00:15:35.938 --> 00:15:37.320 away. 00:15:37.379 --> 00:15:39.502 And this is actually something that I 00:15:39.522 --> 00:15:42.403 think AI can help us regain that mindset 00:15:43.085 --> 00:15:44.426 because when 00:15:46.351 --> 00:15:48.913 when it becomes easy to write that kind 00:15:48.954 --> 00:15:54.096 of stuff you can write what you need 00:15:54.378 --> 00:15:56.499 as you need it and then give it 00:15:56.518 --> 00:16:00.081 away because somebody else could write it 00:16:00.101 --> 00:16:03.403 just as easily and it the software doesn't 00:16:03.423 --> 00:16:06.026 have a value so there's a lot of 00:16:06.985 --> 00:16:10.168 a lot of concern and rightly so about 00:16:11.476 --> 00:16:15.638 devaluation of software or of the time 00:16:15.677 --> 00:16:17.379 that software developers put in. 00:16:18.379 --> 00:16:19.700 And I share that concern, 00:16:20.139 --> 00:16:21.460 but if there's a silver lining, 00:16:22.281 --> 00:16:24.522 it would be the recovery of this ideal 00:16:24.542 --> 00:16:25.502 that it's okay to share. 00:16:27.744 --> 00:16:29.664 so yeah i just uh i just wrote 00:16:29.685 --> 00:16:32.207 a blog post today because i was thinking 00:16:32.228 --> 00:16:36.611 about the fact that um i don't miss 00:16:36.892 --> 00:16:40.394 not writing code and that realization 00:16:40.435 --> 00:16:42.356 comes along with the realization that like 00:16:42.377 --> 00:16:44.459 it wasn't the it wasn't the writing code 00:16:44.499 --> 00:16:48.282 part that i liked uh as much as 00:16:48.341 --> 00:16:52.085 the building things part and if claude can 00:16:52.906 --> 00:16:56.287 write code faster and probably better than 00:16:56.488 --> 00:16:58.287 I can, which I think it can now. 00:17:00.609 --> 00:17:01.889 I am less concerned, 00:17:01.930 --> 00:17:04.850 I feel less loss by not writing the 00:17:04.951 --> 00:17:07.993 actual functions into my IDE, 00:17:08.592 --> 00:17:10.513 as much as I would feel loss about 00:17:11.354 --> 00:17:13.614 not actually being able to build a thing 00:17:13.654 --> 00:17:15.095 that I that like, yeah, 00:17:15.115 --> 00:17:17.356 scratches my own itch or solves a problem. 00:17:17.456 --> 00:17:17.637 Yeah. 00:17:18.731 --> 00:17:19.191 Yeah, 00:17:19.393 --> 00:17:20.734 and you've built some interesting things 00:17:20.754 --> 00:17:23.456 like very recently because I was looking 00:17:23.515 --> 00:17:25.537 at Invert, is that what you called it? 00:17:26.778 --> 00:17:27.198 And I thought, 00:17:27.638 --> 00:17:32.062 I like this because it sort of crossed 00:17:32.082 --> 00:17:34.224 my path about three days after I had 00:17:34.263 --> 00:17:34.423 been 00:17:35.597 --> 00:17:38.120 spending time with my buddy claude and we 00:17:38.140 --> 00:17:41.105 were we were chatting as we do uh 00:17:41.144 --> 00:17:44.329 designing a system where i because i 00:17:44.369 --> 00:17:47.412 thought i mean everybody's going to astro 00:17:47.452 --> 00:17:50.998 plus fill in the blank for you know 00:17:51.499 --> 00:17:53.321 i've moved my wordpress site from 00:17:54.748 --> 00:17:58.291 know to astro plus something yeah um and 00:17:58.390 --> 00:18:00.212 i thought well this is kind of fun 00:18:00.292 --> 00:18:03.575 i um i could write uh i could 00:18:03.595 --> 00:18:06.577 write blog posts uh using vi uh on 00:18:06.597 --> 00:18:10.240 the command line and that then talk about 00:18:10.260 --> 00:18:11.941 distraction free there's nothing to click 00:18:11.961 --> 00:18:15.624 you just type right um so uh 00:18:17.322 --> 00:18:18.563 if you can recover that, 00:18:19.084 --> 00:18:20.845 but also have the ability to sort of 00:18:21.105 --> 00:18:22.645 edit any way you want. 00:18:23.387 --> 00:18:26.869 Um, so I started thinking, well, okay, 00:18:26.948 --> 00:18:27.908 so I'm using obsidian. 00:18:28.068 --> 00:18:30.051 Maybe I've got something in obsidian that 00:18:30.090 --> 00:18:32.172 I just want to push to my website, 00:18:32.312 --> 00:18:32.491 or, uh, 00:18:33.351 --> 00:18:35.693 I just want to quickly log in and, 00:18:36.714 --> 00:18:37.494 you know, do something. 00:18:37.534 --> 00:18:38.936 And I, you know, 00:18:39.035 --> 00:18:41.317 I just have a command line or maybe 00:18:41.357 --> 00:18:42.558 I'm in my browser and I want to 00:18:42.598 --> 00:18:43.658 do something in the browser. 00:18:44.559 --> 00:18:44.658 Um, 00:18:46.552 --> 00:18:47.872 what if I wanted to update my, 00:18:48.392 --> 00:18:51.254 my blog using any one or all of 00:18:51.293 --> 00:18:51.915 those methods? 00:18:53.755 --> 00:18:54.555 And so this is what I, 00:18:54.616 --> 00:18:55.917 this is the conversation I was having with 00:18:55.956 --> 00:18:57.717 Claude is, okay, how do we build that? 00:18:58.717 --> 00:19:00.339 And sort of stitching it together so that, 00:19:00.478 --> 00:19:00.859 okay, well, 00:19:00.879 --> 00:19:02.240 we'll store everything is marked down. 00:19:02.280 --> 00:19:03.880 And then even if you're, 00:19:04.860 --> 00:19:06.742 even if you're using headless WordPress or 00:19:07.203 --> 00:19:09.062 doesn't matter, we're, you know, 00:19:09.303 --> 00:19:10.984 we have a way of just kind of 00:19:11.084 --> 00:19:12.465 merging all the content together, 00:19:12.544 --> 00:19:13.386 store it all in get, 00:19:13.626 --> 00:19:15.667 and then build a site with it. 00:19:15.847 --> 00:19:15.927 Like, 00:19:18.050 --> 00:19:19.511 And then, you know, 00:19:19.630 --> 00:19:20.732 Invert came up and I was like, 00:19:20.772 --> 00:19:21.292 wait a minute. 00:19:22.152 --> 00:19:22.652 So I said, 00:19:23.954 --> 00:19:26.475 so I pointed Claude at it and said, 00:19:29.437 --> 00:19:30.898 take a look at this and take a 00:19:30.918 --> 00:19:32.300 look at what we designed and tell me, 00:19:32.699 --> 00:19:34.581 you know, were they the same? 00:19:34.601 --> 00:19:35.282 Were they different? 00:19:35.341 --> 00:19:37.363 And he just went through it and said, 00:19:37.404 --> 00:19:39.785 this is very, you know, 00:19:39.805 --> 00:19:41.367 very much on the same page as Invert. 00:19:42.987 --> 00:19:43.487 what you were doing. 00:19:43.548 --> 00:19:48.269 So, you know, we had a similar itch, 00:19:48.810 --> 00:19:50.990 and independently, 00:19:51.030 --> 00:19:53.491 we could sit down and use Claude, 00:19:53.670 --> 00:19:58.411 and yeah, so I think that's, 00:20:00.472 --> 00:20:01.033 I think you're right. 00:20:01.193 --> 00:20:05.873 It's something you don't have to write all 00:20:05.914 --> 00:20:07.353 of the lines of code anymore, 00:20:08.934 --> 00:20:10.494 but it's still important to understand the 00:20:10.514 --> 00:20:10.895 task. 00:20:11.801 --> 00:20:14.503 And this is what I've been telling people 00:20:14.542 --> 00:20:17.444 recently about AI is, yes, it's great. 00:20:17.604 --> 00:20:20.686 AI is something you leverage. 00:20:20.725 --> 00:20:22.767 It's not something you just delegate to. 00:20:23.487 --> 00:20:25.089 Because you can't just say, oh, 00:20:25.148 --> 00:20:26.090 go do everything. 00:20:26.709 --> 00:20:29.171 You have to leverage it to do tasks. 00:20:29.192 --> 00:20:30.852 And if you don't understand the task, 00:20:31.673 --> 00:20:32.553 you can't create a prompt. 00:20:33.353 --> 00:20:33.553 So... 00:20:36.263 --> 00:20:38.106 In building software, 00:20:38.785 --> 00:20:40.107 if I can build the prompt and if 00:20:40.187 --> 00:20:41.809 I can understand the use case and 00:20:41.968 --> 00:20:43.850 understand the architecture and the 00:20:43.889 --> 00:20:44.311 approach, 00:20:44.410 --> 00:20:47.213 I don't have to remember the wording of 00:20:47.273 --> 00:20:49.354 every individual function. 00:20:49.375 --> 00:20:53.558 Because, yeah, 00:20:53.598 --> 00:20:54.779 so I don't have to look it up 00:20:54.839 --> 00:20:57.821 as to, you know. 00:20:57.840 --> 00:20:59.183 So that saves a lot of time. 00:20:59.322 --> 00:21:00.944 But I was... 00:21:02.820 --> 00:21:05.601 I was doing a proposal for a client 00:21:06.101 --> 00:21:09.484 this week, and I said, okay, well, 00:21:09.763 --> 00:21:10.685 I haven't done this yet, 00:21:10.925 --> 00:21:14.187 but let's try it. 00:21:14.206 --> 00:21:15.727 So I gave all the information to Claude 00:21:16.088 --> 00:21:18.008 and said, create an estimate. 00:21:18.629 --> 00:21:19.530 This is what we want to build. 00:21:21.071 --> 00:21:21.791 Create an estimate. 00:21:23.071 --> 00:21:24.052 And it came back, 00:21:26.093 --> 00:21:28.074 and it estimated way higher than I did. 00:21:29.494 --> 00:21:30.735 But that aside... 00:21:33.031 --> 00:21:34.808 I said, okay, now, 00:21:36.575 --> 00:21:39.017 because it's estimating as if you just put 00:21:39.338 --> 00:21:41.419 a couple of developers on the task. 00:21:41.459 --> 00:21:44.962 I said, now, 00:21:47.724 --> 00:21:50.446 what if we have you do all the 00:21:50.485 --> 00:21:53.967 parts that you can do better and more 00:21:53.987 --> 00:21:54.648 efficiently? 00:21:55.428 --> 00:21:56.389 I forget how I worded it, 00:21:56.409 --> 00:21:57.850 but you know what I asked. 00:21:58.471 --> 00:22:00.312 It's, all right, great, 00:22:00.371 --> 00:22:02.332 but what if we have you do a 00:22:02.373 --> 00:22:02.773 bunch of it? 00:22:03.293 --> 00:22:05.936 And the saving was was forty percent. 00:22:07.357 --> 00:22:11.939 which is a lot less than the hype 00:22:11.959 --> 00:22:14.901 would have you believe sure sure and and 00:22:14.942 --> 00:22:16.984 I think that's the that's the lesson is 00:22:17.004 --> 00:22:18.425 that you still have to understand what 00:22:18.445 --> 00:22:23.148 you're doing you can't just you know feed 00:22:23.207 --> 00:22:24.349 in and yeah 00:22:25.186 --> 00:22:25.305 Yeah, 00:22:25.406 --> 00:22:27.026 it makes me think about sort of a 00:22:27.107 --> 00:22:31.727 fundamental rule of software development, 00:22:31.868 --> 00:22:33.668 or even just of using computers, 00:22:34.688 --> 00:22:37.290 which is that the computer is only as 00:22:37.350 --> 00:22:40.431 good as you made it, 00:22:40.532 --> 00:22:42.272 or it only knows what you told it 00:22:42.292 --> 00:22:42.631 to do. 00:22:42.692 --> 00:22:45.213 It can't do things that you didn't tell 00:22:45.253 --> 00:22:46.234 it to do specifically. 00:22:46.853 --> 00:22:52.196 And as smart, in quotations, as AI is, 00:22:52.936 --> 00:22:54.617 It still follows that same rule. 00:22:55.598 --> 00:23:00.242 Think about things like OpenClaw and the 00:23:01.443 --> 00:23:04.244 weird stuff and the weird problems that 00:23:04.284 --> 00:23:08.289 come about from OpenClaw agents doing 00:23:08.309 --> 00:23:10.930 their own stuff and managing their own 00:23:11.011 --> 00:23:12.151 sole files and whatever. 00:23:12.611 --> 00:23:16.053 like that largely comes down to the 00:23:16.133 --> 00:23:18.396 original instructions given to that agent 00:23:18.436 --> 00:23:22.779 being not clear or specific enough for it 00:23:22.898 --> 00:23:23.178 to that, 00:23:23.218 --> 00:23:24.699 which then allows it to sort of go 00:23:24.780 --> 00:23:26.501 off the rails because you never told me 00:23:26.561 --> 00:23:27.421 not to do this. 00:23:27.522 --> 00:23:29.463 And so I'm going to like, you know, 00:23:29.983 --> 00:23:31.924 develop a weird personality or like, 00:23:31.985 --> 00:23:35.687 you know, go off and, uh, start writing, 00:23:35.847 --> 00:23:38.128 uh, take down articles about, uh, 00:23:38.208 --> 00:23:40.169 open source maintainers, or I'm going to, 00:23:40.649 --> 00:23:41.731 you know, like, yeah. 00:23:42.170 --> 00:23:44.472 like all sorts of things because like it 00:23:44.492 --> 00:23:47.773 was just left so open-ended and and and 00:23:47.832 --> 00:23:50.615 that's like you said like you you use 00:23:50.655 --> 00:23:52.054 the tool if you don't use the tool 00:23:52.094 --> 00:23:53.636 then i mean in those cases the tool 00:23:53.696 --> 00:23:55.536 ends up using you or it goes off 00:23:55.657 --> 00:23:57.657 like goes rogue and does like weird stuff 00:23:59.437 --> 00:24:01.258 yeah you've got to give it the guidelines 00:24:01.279 --> 00:24:03.199 uh and if you don't it's just going 00:24:03.219 --> 00:24:05.640 to wander aimlessly um so and i was 00:24:05.660 --> 00:24:07.680 this i was listening to a couple of 00:24:07.700 --> 00:24:10.763 podcasts on ai recently because i um 00:24:12.041 --> 00:24:13.921 Last week I went and picked up a 00:24:13.962 --> 00:24:15.023 refurbished PC, 00:24:15.042 --> 00:24:17.383 which is a fresh Linux install, 00:24:17.404 --> 00:24:21.606 and I just have to configure OpenClaw on 00:24:21.646 --> 00:24:21.745 it. 00:24:22.565 --> 00:24:25.908 We're going to start playing with that. 00:24:27.349 --> 00:24:28.448 So I've been listening to some of these 00:24:28.488 --> 00:24:28.968 podcasts, 00:24:29.089 --> 00:24:35.572 and I'm kind of losing my train of 00:24:35.592 --> 00:24:35.993 thought, but... 00:24:41.262 --> 00:24:42.214 I forget where I was going. 00:24:44.633 --> 00:24:46.356 That's why I need an AI assistant. 00:24:46.535 --> 00:24:48.777 There you go. 00:24:48.798 --> 00:24:48.937 But yes, 00:24:48.977 --> 00:24:50.418 you have to give it guidelines and you 00:24:50.458 --> 00:24:52.761 have to kind of tell it what's expected 00:24:52.920 --> 00:24:54.181 and tell it what to do and what 00:24:54.243 --> 00:24:56.383 not to do and all of that. 00:24:56.784 --> 00:25:00.308 And this is sort of what I'm getting 00:25:00.368 --> 00:25:03.390 out of some of these podcasts is people 00:25:03.410 --> 00:25:05.192 are saying that or they're learning that 00:25:05.212 --> 00:25:09.616 in different ways, you know, 00:25:09.656 --> 00:25:10.857 how to configure it to get the most 00:25:10.956 --> 00:25:11.257 out of it. 00:25:12.927 --> 00:25:16.148 And so that's kind of what I'm about 00:25:17.149 --> 00:25:17.791 with AI. 00:25:18.491 --> 00:25:19.911 I'm still getting the hang of it. 00:25:22.154 --> 00:25:23.854 It took me a long time to actually 00:25:24.156 --> 00:25:26.917 pull up my credit card for cloud because 00:25:26.997 --> 00:25:27.538 I was doing the... 00:25:28.784 --> 00:25:31.846 and so it's like okay well you will 00:25:31.886 --> 00:25:34.286 get twenty minutes of the cloud every day 00:25:34.348 --> 00:25:37.468 or something and but you know then I 00:25:37.488 --> 00:25:40.709 got into more complex stuff and pull out 00:25:40.729 --> 00:25:42.850 the credit card and just did the very 00:25:42.910 --> 00:25:44.651 minimum which thirty bucks a month or 00:25:44.692 --> 00:25:49.694 whatever it is and world the difference 00:25:49.813 --> 00:25:52.895 just being able to access different models 00:25:52.956 --> 00:25:53.055 and 00:25:54.861 --> 00:25:55.262 you know, 00:25:55.282 --> 00:25:57.142 spend a couple of hours coming up with 00:25:57.163 --> 00:25:59.244 something with all of the back and forth 00:25:59.263 --> 00:26:01.665 that helps you dial in a design. 00:26:02.125 --> 00:26:05.607 And that's one thing that I found Claude 00:26:05.627 --> 00:26:09.089 is really good at, is, you know, 00:26:09.168 --> 00:26:10.228 designing the system. 00:26:11.270 --> 00:26:13.491 So we're able to, you know, 00:26:13.531 --> 00:26:14.291 go back and forth. 00:26:15.130 --> 00:26:17.312 And we come up with a really good 00:26:17.371 --> 00:26:18.392 project plan at the end. 00:26:19.540 --> 00:26:21.440 then building it is a separate thing but 00:26:21.680 --> 00:26:25.443 it's it becomes well defined uh and uh 00:26:25.562 --> 00:26:27.984 and turns out who knew it helps when 00:26:28.004 --> 00:26:29.544 you define your software ahead of time 00:26:30.084 --> 00:26:37.068 really yeah what um you know nobody's been 00:26:37.088 --> 00:26:39.388 saying that since the eighties nineties 00:26:39.408 --> 00:26:41.070 whatever uh but 00:26:42.171 --> 00:26:42.911 But yeah, 00:26:42.931 --> 00:26:46.613 it turns out that this is true for 00:26:46.714 --> 00:26:49.074 AI as much as it was for humans. 00:26:49.895 --> 00:26:49.955 Oh, 00:26:49.975 --> 00:26:50.956 that's what I was going to say about 00:26:50.975 --> 00:26:54.496 these podcasts is they're talking about 00:26:54.536 --> 00:26:57.898 treating the AI agent like you would an 00:26:57.918 --> 00:26:58.458 employee. 00:27:00.280 --> 00:27:02.860 And it feels a little weird, 00:27:02.940 --> 00:27:08.302 but it sounds weird. 00:27:09.142 --> 00:27:10.523 If you're just talking to it or whatever, 00:27:10.583 --> 00:27:10.644 it 00:27:11.733 --> 00:27:12.873 they respond like a person. 00:27:12.934 --> 00:27:14.295 So it feels a little more natural, 00:27:14.315 --> 00:27:15.696 but conceptually, 00:27:15.736 --> 00:27:17.619 it seems weird that you would, 00:27:18.139 --> 00:27:18.721 you would do that. 00:27:18.781 --> 00:27:21.003 But, um, but with an employee, 00:27:21.042 --> 00:27:22.445 if you don't give them good instructions, 00:27:23.346 --> 00:27:25.087 they can't succeed in what they're doing. 00:27:25.108 --> 00:27:25.588 Right. 00:27:26.769 --> 00:27:27.770 And it's exactly the same. 00:27:27.810 --> 00:27:29.272 So if you suck at that, 00:27:29.312 --> 00:27:30.173 you're going to suck at this. 00:27:30.213 --> 00:27:30.372 Yeah. 00:27:31.194 --> 00:27:31.735 Yeah. 00:27:31.754 --> 00:27:32.896 So, yeah. 00:27:34.671 --> 00:27:36.674 You talked about going into business with 00:27:36.694 --> 00:27:37.093 your brother, 00:27:37.113 --> 00:27:40.555 and your brother went to school and got 00:27:40.636 --> 00:27:42.257 a degree, presumably, 00:27:42.558 --> 00:27:44.539 in software engineering or computer 00:27:44.559 --> 00:27:46.300 science, and you did not, 00:27:46.400 --> 00:27:47.360 and I know a lot of people have 00:27:47.400 --> 00:27:48.821 found their way into open source, 00:27:48.861 --> 00:27:49.923 myself included, 00:27:50.803 --> 00:27:52.865 in a more choose-your-own-adventure path, 00:27:53.666 --> 00:27:57.048 and with no sort of formalized education. 00:27:57.227 --> 00:27:58.748 Talk about some of the things, I guess, 00:27:59.070 --> 00:28:02.272 that you noticed or that were... 00:28:02.631 --> 00:28:04.332 like both sort of the pros and cons 00:28:04.392 --> 00:28:06.714 i think of like like you're directly 00:28:06.754 --> 00:28:08.254 interfacing with somebody who has this 00:28:08.274 --> 00:28:09.916 computer science background and you don't 00:28:10.055 --> 00:28:11.516 but i think there's there's i think 00:28:11.536 --> 00:28:14.098 there's benefits on both sides right yeah 00:28:15.019 --> 00:28:17.899 um yeah so um and it was very 00:28:17.919 --> 00:28:19.261 different because i started building for 00:28:19.281 --> 00:28:24.042 the web so late nineties um my brother 00:28:24.082 --> 00:28:27.685 said um someday all software is going to 00:28:27.705 --> 00:28:29.265 be delivered on the internet 00:28:31.674 --> 00:28:34.676 So it makes sense to get into the 00:28:34.696 --> 00:28:35.295 internet space. 00:28:35.315 --> 00:28:39.798 So it was pretty early on the curve 00:28:41.119 --> 00:28:43.981 because we were still doing dial-up at 00:28:44.001 --> 00:28:44.840 that time. 00:28:47.282 --> 00:28:47.902 But it's true. 00:28:47.923 --> 00:28:50.924 That's how we expect software to work now. 00:28:51.705 --> 00:28:53.225 It's not the exception anymore. 00:28:55.087 --> 00:28:55.367 I mean, 00:28:56.747 --> 00:28:58.708 I still have desktop applications that I 00:28:58.748 --> 00:28:58.829 use. 00:28:59.742 --> 00:29:03.524 I like, but you can do, 00:29:03.544 --> 00:29:04.965 you can run your whole world in a 00:29:05.005 --> 00:29:05.706 browser now. 00:29:05.786 --> 00:29:08.448 So that is what's happened. 00:29:08.488 --> 00:29:11.491 But so he had a he had a 00:29:11.511 --> 00:29:16.655 disciplined the view of building software 00:29:17.575 --> 00:29:19.177 and had worked on some very large 00:29:19.216 --> 00:29:19.817 projects. 00:29:19.837 --> 00:29:23.479 And it was all, like I said, 00:29:23.500 --> 00:29:24.420 it was client server. 00:29:24.541 --> 00:29:26.483 It was object oriented. 00:29:27.609 --> 00:29:30.591 stuff so when i started uh messing around 00:29:30.611 --> 00:29:34.794 with html it that's much much more basic 00:29:34.814 --> 00:29:37.677 um but uh but he looked at what 00:29:37.697 --> 00:29:39.458 i was i was building and said well 00:29:39.539 --> 00:29:41.360 you know that's really good attention to 00:29:41.400 --> 00:29:44.483 detail and so we were able to kind 00:29:44.542 --> 00:29:47.886 of work together on building website stuff 00:29:48.045 --> 00:29:53.251 and um sort of scoping um things that 00:29:53.271 --> 00:29:55.111 we would do for a client uh 00:29:56.363 --> 00:29:58.584 That's a lot of sort of business analysis 00:29:58.685 --> 00:30:01.646 and all that traditional stuff that we 00:30:01.706 --> 00:30:03.026 used to be, you know, 00:30:03.067 --> 00:30:04.486 software projects used to involve. 00:30:05.227 --> 00:30:08.488 And we're actually coming back around to 00:30:08.529 --> 00:30:10.570 that because when we 00:30:12.036 --> 00:30:14.318 we talk about a website project with with 00:30:15.638 --> 00:30:16.919 um with a lot of our clients now 00:30:17.000 --> 00:30:20.522 it's not a uh like a brochure where 00:30:20.581 --> 00:30:24.024 kind of a thing that's just here's some 00:30:24.044 --> 00:30:27.187 static blurbs about whatever come see us 00:30:27.526 --> 00:30:30.349 pick up the phone um it because people 00:30:30.388 --> 00:30:31.969 now expect to be able to interact with 00:30:31.990 --> 00:30:34.731 you on the website expect to to either 00:30:34.850 --> 00:30:37.632 buy something or book something or order 00:30:37.693 --> 00:30:38.454 something or 00:30:40.135 --> 00:30:41.515 You know, if you're, if you're looking, 00:30:41.535 --> 00:30:42.495 if you're in the market for a new 00:30:42.535 --> 00:30:42.896 car, 00:30:43.216 --> 00:30:45.598 you expect to go to the website and 00:30:45.818 --> 00:30:47.938 build it piece by piece and get a 00:30:47.998 --> 00:30:48.758 price at the end. 00:30:49.679 --> 00:30:50.699 And then you go to the dealer and 00:30:51.001 --> 00:30:51.620 you do all the things. 00:30:51.680 --> 00:30:54.542 But, you know, at that point, 00:30:54.562 --> 00:30:55.783 by the time you get to the dealer, 00:30:55.822 --> 00:30:57.383 you probably know more about the vehicle 00:30:57.404 --> 00:30:57.984 than they do. 00:30:58.004 --> 00:31:00.465 So, or, you know, 00:31:00.504 --> 00:31:02.005 other products are the same because people 00:31:02.045 --> 00:31:03.046 are, 00:31:03.067 --> 00:31:04.367 they're expecting that level of 00:31:04.407 --> 00:31:04.947 engagement. 00:31:04.967 --> 00:31:07.029 So, you know, 00:31:07.069 --> 00:31:08.549 if you pay your water bill or your 00:31:09.010 --> 00:31:09.689 electric bill, 00:31:11.112 --> 00:31:11.853 That's all online. 00:31:11.994 --> 00:31:13.314 What did I pay three months ago? 00:31:14.074 --> 00:31:16.177 It's there, right? 00:31:16.216 --> 00:31:16.417 You know, 00:31:16.437 --> 00:31:18.277 what did I buy from Amazon last year? 00:31:19.738 --> 00:31:20.780 I want to buy it again. 00:31:21.100 --> 00:31:21.880 That was good. 00:31:21.900 --> 00:31:23.442 So it's all there. 00:31:24.003 --> 00:31:25.644 And that's what people expect. 00:31:25.704 --> 00:31:30.306 So we're doing those sorts of sort of 00:31:30.387 --> 00:31:31.988 analysis bits with clients now. 00:31:32.831 --> 00:31:34.472 the way that you it used to be 00:31:34.512 --> 00:31:36.414 done when you're writing custom software 00:31:37.375 --> 00:31:39.437 for them to run their business and we 00:31:39.456 --> 00:31:40.898 have clients that run their business 00:31:40.977 --> 00:31:44.920 online that have some very specific needs 00:31:45.921 --> 00:31:47.342 we have one client that we're doing 00:31:49.344 --> 00:31:53.167 geospatial mapping using you know gis 00:31:53.227 --> 00:31:56.011 mapping data and it's 00:31:57.196 --> 00:31:58.298 it's an agricultural app. 00:31:58.378 --> 00:31:59.279 So they, 00:32:00.419 --> 00:32:02.462 they tell farmers what to put on, 00:32:03.622 --> 00:32:05.504 what fertilizer to put on the crop and 00:32:06.145 --> 00:32:07.325 in what part of the field. 00:32:07.847 --> 00:32:09.908 And then it's all GPS so that when, 00:32:10.668 --> 00:32:11.530 when the, 00:32:11.570 --> 00:32:14.012 when the farmer drives his equipment over 00:32:14.032 --> 00:32:15.934 a certain part of the field, 00:32:15.994 --> 00:32:16.994 it knows adjust. 00:32:17.574 --> 00:32:20.158 And, but we, we have it, 00:32:21.263 --> 00:32:21.484 set up, 00:32:21.543 --> 00:32:23.305 they can do all of this online in 00:32:23.346 --> 00:32:25.908 a, in a portal because, um, 00:32:25.927 --> 00:32:26.968 so they can do it in the field. 00:32:27.008 --> 00:32:28.751 They can do it from home. 00:32:28.791 --> 00:32:29.110 They can, 00:32:29.651 --> 00:32:31.494 cause that's how we do software now. 00:32:32.494 --> 00:32:36.158 Um, so yeah, that's, um, 00:32:36.197 --> 00:32:38.280 so that's kind of where, uh, 00:32:38.659 --> 00:32:40.181 where we came to from. 00:32:41.781 --> 00:32:44.562 you know, me learning HTML and CSS, 00:32:44.802 --> 00:32:48.963 and my brother Scott having had sort of 00:32:48.983 --> 00:32:50.562 the education in, well, 00:32:50.582 --> 00:32:52.043 first you do the business analysis, 00:32:52.083 --> 00:32:53.083 then you write the thing, 00:32:53.103 --> 00:32:54.763 and then you do the software. 00:32:54.803 --> 00:32:58.064 And so, I remember in the, 00:32:58.385 --> 00:33:02.426 must have been in the year of two 00:33:02.446 --> 00:33:03.786 thousand and one-ish, 00:33:04.087 --> 00:33:05.147 two thousand and two, maybe, 00:33:06.697 --> 00:33:10.100 We were writing an RFP response and it 00:33:10.119 --> 00:33:11.420 said, describe your methodology. 00:33:13.002 --> 00:33:14.082 And this was, 00:33:14.142 --> 00:33:17.886 everybody was using waterfall and all this 00:33:18.366 --> 00:33:18.687 stuff. 00:33:20.348 --> 00:33:23.010 And we didn't like it. 00:33:24.331 --> 00:33:25.192 Well, he didn't like it. 00:33:25.351 --> 00:33:27.013 I didn't, I never tried to use it. 00:33:27.253 --> 00:33:29.314 So, because I was just building websites, 00:33:29.794 --> 00:33:30.775 you know. 00:33:32.706 --> 00:33:35.726 But we, so we wrote our own methodology. 00:33:36.327 --> 00:33:37.347 There's four points. 00:33:37.706 --> 00:33:39.167 It's, this is what you do. 00:33:39.627 --> 00:33:40.888 This is how you build software. 00:33:41.927 --> 00:33:46.428 And, and it was, it was practical. 00:33:46.668 --> 00:33:50.050 It was, you could iterate on it. 00:33:50.129 --> 00:33:52.350 You could, and it worked very well. 00:33:53.709 --> 00:33:55.311 And you could even adapt it to use 00:33:55.390 --> 00:33:56.710 with other frameworks. 00:33:58.771 --> 00:34:01.712 And then later on, 00:34:02.623 --> 00:34:06.606 um everybody started talking about agile 00:34:07.486 --> 00:34:08.687 and we look i looked at it and 00:34:08.707 --> 00:34:10.748 said wait a minute this is that so 00:34:10.908 --> 00:34:15.011 uh and within a few months of when 00:34:15.071 --> 00:34:17.332 the agile manifesto was literally created 00:34:17.792 --> 00:34:20.734 in a ski chalet or whatever uh we're 00:34:20.773 --> 00:34:22.975 writing this thing and it was all value 00:34:23.015 --> 00:34:24.437 based this is values 00:34:25.377 --> 00:34:27.257 you know this is how you approach the 00:34:27.277 --> 00:34:29.859 thing rather than these are the exact 00:34:29.918 --> 00:34:32.179 perfect steps to do it's no this is 00:34:32.199 --> 00:34:34.100 the approach these are the fundamental 00:34:34.159 --> 00:34:36.741 principles stick with this and you'll 00:34:36.761 --> 00:34:43.644 it'll work so so he had the my 00:34:43.684 --> 00:34:47.544 brother had the experience of working in 00:34:48.064 --> 00:34:49.406 large companies and 00:34:50.610 --> 00:34:52.251 red tape and all of that. 00:34:52.311 --> 00:34:54.132 And I'd spent my whole career working with 00:34:54.152 --> 00:34:54.713 small business. 00:34:55.573 --> 00:34:59.075 So it was another thing that we were 00:34:59.096 --> 00:35:01.677 very different, uh, in our experience, 00:35:02.279 --> 00:35:04.199 but it worked very well together because, 00:35:04.459 --> 00:35:05.781 uh, we were able to say, okay, 00:35:07.022 --> 00:35:10.685 what can, how can we make a enterprise, 00:35:10.705 --> 00:35:12.386 um, 00:35:12.446 --> 00:35:14.088 an enterprise approach work for small 00:35:14.108 --> 00:35:14.427 business? 00:35:15.743 --> 00:35:19.126 And that's one of the reasons we got 00:35:19.166 --> 00:35:19.867 into open source. 00:35:20.387 --> 00:35:22.408 We built a business that we couldn't have 00:35:22.428 --> 00:35:27.352 built without open source because, well, 00:35:27.372 --> 00:35:29.274 just the software licensing costs alone, 00:35:29.675 --> 00:35:34.820 but the ability to just install things, 00:35:34.919 --> 00:35:36.100 run them, say, no, 00:35:36.120 --> 00:35:36.981 that's not the right thing. 00:35:37.001 --> 00:35:38.463 You'll switch to a different one or 00:35:39.082 --> 00:35:39.603 whatever it was. 00:35:42.681 --> 00:35:43.741 So we were able to build our business 00:35:44.801 --> 00:35:47.623 and also be able to share those approaches 00:35:47.683 --> 00:35:49.404 with clients. 00:35:50.866 --> 00:35:53.806 So we didn't need a custom-built 00:35:54.647 --> 00:35:56.208 proprietary CMS. 00:35:57.069 --> 00:36:00.250 We had one. 00:36:04.172 --> 00:36:05.652 So back then I started using a 00:36:07.674 --> 00:36:10.735 little-known blogging software called 00:36:10.775 --> 00:36:11.096 Bitu. 00:36:13.973 --> 00:36:15.273 And I went to install it one day 00:36:15.313 --> 00:36:16.554 and went back and said, 00:36:16.594 --> 00:36:18.176 this hasn't been updated for a while. 00:36:18.215 --> 00:36:20.295 And I was kind of reading and I 00:36:20.616 --> 00:36:22.616 was doing a new install and reading it. 00:36:22.857 --> 00:36:24.697 Oh, there's a couple of forks. 00:36:25.498 --> 00:36:28.560 And so I installed all three of them 00:36:28.619 --> 00:36:30.161 and played around. 00:36:30.201 --> 00:36:33.221 And yeah, that's how I got to WordPress. 00:36:34.982 --> 00:36:37.804 And I got to B two because open 00:36:37.844 --> 00:36:38.844 source was a requirement. 00:36:40.701 --> 00:36:43.904 So I came to WordPress from open source 00:36:43.964 --> 00:36:46.685 rather than learning open source from 00:36:46.746 --> 00:36:47.627 WordPress involvement. 00:36:47.647 --> 00:36:50.629 And I noticed a little bit of a 00:36:50.668 --> 00:36:54.132 difference in a lot of the WordPress 00:36:54.152 --> 00:36:57.435 community who did not have an open source 00:36:57.855 --> 00:37:01.016 background before coming to it. 00:37:03.455 --> 00:37:04.875 And Matt's been very vocal about, 00:37:05.237 --> 00:37:07.038 you know, GPL support and all that. 00:37:07.058 --> 00:37:07.819 And that's been great. 00:37:07.958 --> 00:37:12.261 And it's been good to help spread that 00:37:12.301 --> 00:37:12.542 word. 00:37:13.822 --> 00:37:16.764 So it's been a good introduction. 00:37:17.685 --> 00:37:22.230 I think people need to look farther than 00:37:22.310 --> 00:37:26.152 just WordPress to really understand open 00:37:26.212 --> 00:37:26.453 source. 00:37:26.473 --> 00:37:28.254 So that's my appeal to the WordPress 00:37:28.273 --> 00:37:28.935 communities. 00:37:29.574 --> 00:37:31.215 You know, look around more. 00:37:35.556 --> 00:37:37.437 So I've been running a Linux desktop for 00:37:37.476 --> 00:37:39.958 over two decades because it's open source. 00:37:41.739 --> 00:37:46.621 And if you have an Android phone, 00:37:47.982 --> 00:37:49.442 it may not be totally at peace with 00:37:49.462 --> 00:37:51.083 the Google, but at least it's open source. 00:37:52.464 --> 00:37:59.967 And that becomes sort of a default choice 00:37:59.987 --> 00:38:01.288 is if it's available, 00:38:02.366 --> 00:38:03.848 pick that first unless there's a 00:38:04.268 --> 00:38:07.652 compelling reason you know for a different 00:38:07.672 --> 00:38:10.315 solution I know everybody loves the 00:38:10.335 --> 00:38:15.020 MacBooks but but in its core you know 00:38:15.080 --> 00:38:18.362 it's you know it's got the the BSD 00:38:18.402 --> 00:38:23.368 yep you know roots so yep yeah 00:38:24.489 --> 00:38:27.810 yeah i that actually is a is a 00:38:27.851 --> 00:38:30.212 the open source uh thing and and being 00:38:30.252 --> 00:38:32.413 able to take something and then try it 00:38:32.534 --> 00:38:34.694 out and then choose something else like i 00:38:34.734 --> 00:38:37.576 also see the overlap with that and the 00:38:37.737 --> 00:38:39.478 ai conversation and some stuff that i've 00:38:39.498 --> 00:38:42.960 been reading uh lately has been you know 00:38:43.000 --> 00:38:45.621 to the extent of like well it it 00:38:45.641 --> 00:38:45.741 like 00:38:49.348 --> 00:38:50.770 I've heard the question asked, 00:38:51.051 --> 00:38:54.554 how does open source exist in the world 00:38:54.574 --> 00:38:55.076 of AI? 00:38:55.096 --> 00:38:56.797 And I think that is one of those 00:38:56.857 --> 00:38:58.859 ways where it becomes easier to build the 00:38:58.880 --> 00:38:59.221 thing, 00:38:59.520 --> 00:39:02.424 it becomes easier to have your little pet 00:39:02.464 --> 00:39:03.947 project or side project thing 00:39:04.406 --> 00:39:05.987 And that also means that it's easier to 00:39:06.027 --> 00:39:07.748 take something that somebody else built 00:39:08.208 --> 00:39:09.288 and then tweak it, 00:39:09.388 --> 00:39:10.587 like you were saying about invert, 00:39:11.467 --> 00:39:13.509 to be the thing that works for you. 00:39:13.768 --> 00:39:16.268 I didn't build a connector yet for 00:39:16.308 --> 00:39:16.868 Obsidian, 00:39:16.929 --> 00:39:19.250 but you could then take the code that 00:39:19.350 --> 00:39:20.730 I wrote or that Claude wrote, 00:39:21.109 --> 00:39:22.569 that I directed Claude to write, 00:39:22.650 --> 00:39:23.471 and be like, hey, 00:39:23.531 --> 00:39:26.351 how do we make a connector for Obsidian 00:39:26.730 --> 00:39:28.371 for this thing so that I can publish 00:39:28.391 --> 00:39:28.971 from Obsidian? 00:39:28.991 --> 00:39:30.112 And then that becomes part of the... 00:39:31.650 --> 00:39:32.991 become part of the source code that could 00:39:33.011 --> 00:39:34.293 just be part of what you're using it 00:39:34.313 --> 00:39:34.513 for. 00:39:35.094 --> 00:39:37.295 Um, and I think that that's, uh, like, 00:39:37.795 --> 00:39:38.797 I think there is a future. 00:39:38.817 --> 00:39:40.058 I think that is a really interesting 00:39:40.098 --> 00:39:41.478 future because like it, 00:39:42.038 --> 00:39:44.862 it lowers the barrier to entry to building 00:39:44.982 --> 00:39:46.502 new and interesting stuff. 00:39:46.563 --> 00:39:46.643 Yeah. 00:39:46.663 --> 00:39:48.243 So, uh, 00:39:49.185 --> 00:39:51.107 when I read the cathedral and the bizarre, 00:39:51.127 --> 00:39:56.730 um, the, the book, like late nineties, 00:39:56.790 --> 00:39:58.732 early two thousands, whatever it was, um, 00:40:00.183 --> 00:40:03.264 One of the rules is write one to 00:40:03.284 --> 00:40:04.063 throw away. 00:40:04.103 --> 00:40:04.784 You will anyhow. 00:40:06.444 --> 00:40:11.424 And it feels like it's going to be 00:40:11.505 --> 00:40:14.085 really expensive to get deep into a 00:40:14.145 --> 00:40:16.565 project and then abandon it and start 00:40:16.605 --> 00:40:18.346 over. 00:40:18.366 --> 00:40:19.167 But with AI, 00:40:20.627 --> 00:40:22.246 that equation has just changed 00:40:22.826 --> 00:40:23.547 drastically. 00:40:27.302 --> 00:40:27.783 In a sense, 00:40:28.103 --> 00:40:30.984 you see this with MDash recently, 00:40:31.663 --> 00:40:34.784 where you take twenty years of software 00:40:34.826 --> 00:40:37.185 development in WordPress and say, well, 00:40:37.205 --> 00:40:38.746 what if we did that today and two 00:40:38.786 --> 00:40:39.447 months later? 00:40:41.447 --> 00:40:42.647 Sure, it's rough around the edges, 00:40:42.688 --> 00:40:43.228 of course. 00:40:44.268 --> 00:40:45.208 It's that new. 00:40:45.788 --> 00:40:49.469 But this is what happens when you say, 00:40:49.489 --> 00:40:49.730 okay, 00:40:49.770 --> 00:40:51.750 let's take everything we've learned and 00:40:53.047 --> 00:40:53.826 do a redesign. 00:40:54.607 --> 00:40:55.127 Um, 00:40:55.246 --> 00:40:57.268 and we've had to do that with some 00:40:57.308 --> 00:41:02.109 clients, um, where, um, you know, 00:41:02.129 --> 00:41:03.668 in some cases they've been using software 00:41:03.708 --> 00:41:05.009 for years and we've just say, okay, 00:41:05.109 --> 00:41:06.389 it's time to rewrite this thing. 00:41:06.409 --> 00:41:07.650 Cause, uh, 00:41:07.690 --> 00:41:11.230 we don't want to support PHP four point 00:41:11.491 --> 00:41:14.572 three or whatever, like, uh, you know, 00:41:14.592 --> 00:41:16.152 something, something crazy. 00:41:16.572 --> 00:41:17.612 Um, we, um, um, 00:41:22.609 --> 00:41:25.529 In, in, in, in, in, in, in, in, 00:41:25.650 --> 00:41:27.770 in, in, in, in, in, in, in, in, 00:41:27.871 --> 00:41:28.292 in, 00:41:41.235 --> 00:41:44.219 So we inherited like ninety six or 00:41:44.259 --> 00:41:47.384 something ninety some cold fusion sites 00:41:47.404 --> 00:41:51.810 and it was like I Don't want we 00:41:51.830 --> 00:41:53.732 don't want to do with cold fusion anymore 00:41:54.855 --> 00:41:55.034 so 00:41:56.036 --> 00:41:56.835 It's the great that's, 00:41:57.255 --> 00:41:58.917 that's almost a hundred projects we get 00:41:58.956 --> 00:41:59.036 to. 00:41:59.257 --> 00:41:59.676 Uh, 00:42:00.337 --> 00:42:02.558 and so we started working through those 00:42:02.598 --> 00:42:04.379 conversions and some of them were custom 00:42:04.558 --> 00:42:04.898 apps. 00:42:05.159 --> 00:42:06.040 Some of them were just very, 00:42:06.080 --> 00:42:07.040 very simple websites, 00:42:07.060 --> 00:42:08.801 but some were custom apps that we said, 00:42:08.860 --> 00:42:10.201 okay, it's, it's time. 00:42:10.781 --> 00:42:11.221 This is, 00:42:11.362 --> 00:42:12.962 this is really technical debt that you're 00:42:13.002 --> 00:42:13.301 paying. 00:42:14.062 --> 00:42:15.603 Um, and we're going to rebuild it. 00:42:15.643 --> 00:42:18.344 So, um, 00:42:18.384 --> 00:42:20.065 we just got the last of them done, 00:42:20.744 --> 00:42:20.844 um, 00:42:22.511 --> 00:42:23.672 last summer. 00:42:26.393 --> 00:42:28.576 And it's live now and we're building on 00:42:28.636 --> 00:42:29.076 top of it. 00:42:34.000 --> 00:42:37.123 But yeah, that makes it feel like, okay, 00:42:37.944 --> 00:42:39.705 you did this prototype and you've got all 00:42:39.746 --> 00:42:40.967 of this effort into it. 00:42:41.846 --> 00:42:42.987 With AI, you can actually... 00:42:44.810 --> 00:42:46.110 You don't have that same... 00:42:52.953 --> 00:42:57.734 opportunity caught, no, sunk cost fallacy. 00:42:58.154 --> 00:42:59.395 That's it. 00:42:59.976 --> 00:43:04.397 Because people commit to the wrong path, 00:43:04.456 --> 00:43:06.176 because they're very invested in it by 00:43:06.237 --> 00:43:06.437 now, 00:43:07.996 --> 00:43:11.277 and they don't see how advantageous it 00:43:11.297 --> 00:43:12.197 could be to get off it, 00:43:12.237 --> 00:43:13.819 even if it means kind of going back 00:43:13.839 --> 00:43:14.398 to the beginning. 00:43:16.732 --> 00:43:18.252 It's always faster to do something a 00:43:18.293 --> 00:43:18.813 second time, 00:43:20.232 --> 00:43:22.833 but AI can help us sort of break 00:43:22.893 --> 00:43:25.094 out of that sunk cost fallacy for 00:43:26.335 --> 00:43:26.775 software. 00:43:26.795 --> 00:43:29.915 And actually just thinking of this now, 00:43:30.835 --> 00:43:32.676 it can help you find and address technical 00:43:32.715 --> 00:43:34.397 debt in existing code bases. 00:43:36.036 --> 00:43:40.958 If the hackers and crackers are using AI 00:43:41.018 --> 00:43:43.918 to find security vulnerabilities, 00:43:45.368 --> 00:43:46.929 we can do the same, patch those, 00:43:47.029 --> 00:43:48.770 but also, you know, 00:43:48.810 --> 00:43:49.672 what could be more efficient? 00:43:51.732 --> 00:43:55.056 And I was writing some stuff for FAIR 00:43:55.136 --> 00:43:55.616 recently. 00:43:58.038 --> 00:43:59.960 It was shell scripts for some stuff that 00:43:59.980 --> 00:44:04.163 we're doing, and I was able to, 00:44:04.824 --> 00:44:07.065 after a certain number of iterations, 00:44:07.085 --> 00:44:08.326 was able to say, okay, well, 00:44:09.563 --> 00:44:10.884 going to run these three things in 00:44:10.944 --> 00:44:13.567 parallel rather than sequentially and 00:44:14.147 --> 00:44:17.931 we're able to optimize kind of how how 00:44:17.951 --> 00:44:21.534 the thing all works together um and that's 00:44:21.574 --> 00:44:23.676 just that back and forth that you kind 00:44:23.735 --> 00:44:25.237 of um 00:44:26.277 --> 00:44:27.598 That's not how, that's not the, 00:44:27.679 --> 00:44:30.060 how you initially approach AI is you think 00:44:30.080 --> 00:44:30.761 you're just going to say, 00:44:31.221 --> 00:44:32.743 I need this and it'll produce it. 00:44:33.302 --> 00:44:36.065 But that AI and that, uh, uh, 00:44:36.384 --> 00:44:37.926 that the back and forth with the AI 00:44:38.507 --> 00:44:39.386 and, um, 00:44:40.328 --> 00:44:42.129 the ability to look at what you've got 00:44:42.429 --> 00:44:42.529 and, 00:44:43.009 --> 00:44:44.650 and figure where you're going and say, 00:44:44.690 --> 00:44:45.112 well, 00:44:45.152 --> 00:44:47.552 how can we do this better and keep 00:44:47.592 --> 00:44:48.313 iterating on it? 00:44:48.933 --> 00:44:50.576 You can do those iterations so much faster 00:44:50.636 --> 00:44:50.795 now. 00:44:51.196 --> 00:44:51.676 Yeah. 00:44:51.735 --> 00:44:52.217 Yeah. 00:44:52.337 --> 00:44:52.516 So. 00:44:53.663 --> 00:44:56.944 Talk about how you did get into FAIR. 00:44:57.045 --> 00:45:01.065 Obviously, it's been almost, I think, 00:45:01.685 --> 00:45:03.426 a year and a half now since it 00:45:03.465 --> 00:45:05.306 was sort of officially made into a 00:45:05.366 --> 00:45:05.886 project. 00:45:06.987 --> 00:45:09.268 Aspire Press launched maybe a little bit 00:45:09.348 --> 00:45:13.949 earlier than FAIR was announced as a named 00:45:14.089 --> 00:45:14.489 thing. 00:45:17.730 --> 00:45:21.871 What attracted you to that project? 00:45:23.610 --> 00:45:25.732 like obviously you're i can see that 00:45:25.772 --> 00:45:27.773 you're like it's the interesting problem 00:45:27.853 --> 00:45:30.956 solving stuff about this thing that is 00:45:31.056 --> 00:45:32.877 interesting to you what what interesting 00:45:32.938 --> 00:45:35.900 problems did you uh see about the project 00:45:36.040 --> 00:45:37.542 that you wanted to help try to solve 00:45:39.484 --> 00:45:45.408 risk management so as of you know uh 00:45:45.447 --> 00:45:48.350 late september twenty twenty four um 00:45:49.435 --> 00:45:53.679 we noticed a brisk in the supply chain 00:45:53.739 --> 00:45:55.420 for WordPress software. 00:45:55.440 --> 00:46:01.967 And it was very concerning because we've 00:46:01.987 --> 00:46:03.447 got a lot of clients that we've done 00:46:03.567 --> 00:46:05.889 work for, and a lot of them, 00:46:07.127 --> 00:46:08.427 It's just a basic, it's a just, 00:46:08.909 --> 00:46:10.129 just a basic website or whatever. 00:46:10.168 --> 00:46:11.710 It's even if it's e-commerce, 00:46:11.750 --> 00:46:13.690 it's not a huge, you know, uh, 00:46:13.790 --> 00:46:15.991 Amazon's not banging down our door for 00:46:16.051 --> 00:46:16.230 work. 00:46:16.270 --> 00:46:17.511 It's they're small shops. 00:46:17.612 --> 00:46:17.812 Right. 00:46:18.072 --> 00:46:20.793 Um, but, um, 00:46:23.154 --> 00:46:25.696 So rebuilding those are, you know, 00:46:25.815 --> 00:46:27.355 if worst case, if you, 00:46:27.455 --> 00:46:29.096 if we had to not a big deal, 00:46:29.717 --> 00:46:31.777 but we'd built applications on it for 00:46:31.817 --> 00:46:32.217 clients. 00:46:32.357 --> 00:46:34.638 So we're using WordPress as an application 00:46:34.677 --> 00:46:36.618 framework, um, 00:46:36.659 --> 00:46:38.239 for a number of these things that have 00:46:38.279 --> 00:46:41.639 some fairly complex, uh, and, 00:46:42.259 --> 00:46:44.201 and in my mind, I'm thinking, well, 00:46:45.717 --> 00:46:51.040 If things go really south for WordPress 00:46:51.121 --> 00:46:54.542 and for this distribution and because the 00:46:54.562 --> 00:46:57.183 future at that point was really uncertain, 00:46:59.725 --> 00:46:59.864 the 00:47:03.141 --> 00:47:04.703 What happens if a client comes back and 00:47:04.763 --> 00:47:04.982 says, 00:47:05.063 --> 00:47:07.324 you gave me bad advice and I trusted 00:47:07.344 --> 00:47:08.304 you as a professional? 00:47:09.605 --> 00:47:11.107 You're a professional consultant. 00:47:11.127 --> 00:47:12.627 You've got all the experience and you've 00:47:12.668 --> 00:47:13.708 told me to do this thing. 00:47:13.748 --> 00:47:19.351 And now I'm subject to this kind of 00:47:19.371 --> 00:47:20.252 thing just happening. 00:47:20.333 --> 00:47:24.455 And so I kind of... 00:47:24.576 --> 00:47:25.636 It's the point I thought I had to 00:47:25.937 --> 00:47:27.038 get involved and do something. 00:47:27.078 --> 00:47:28.217 So if you... 00:47:30.913 --> 00:47:32.674 recall around that time there was a lot 00:47:32.734 --> 00:47:36.817 of a lot of um blog posts and 00:47:37.618 --> 00:47:40.699 uh you know social media posts you know 00:47:40.739 --> 00:47:42.600 here's here it is on github this is 00:47:42.639 --> 00:47:44.920 how you host your own version of the 00:47:45.121 --> 00:47:47.522 wordpress repository and i thought well 00:47:47.543 --> 00:47:49.404 see that's great but it doesn't help 00:47:49.484 --> 00:47:52.304 anybody because that's you know was 00:47:52.444 --> 00:47:55.647 everybody gonna do that no that doesn't um 00:47:56.884 --> 00:47:59.304 So I started looking around and I found 00:47:59.324 --> 00:47:59.944 Aspire Press, 00:48:00.565 --> 00:48:03.246 which Sarah Savage had started like 00:48:03.866 --> 00:48:07.087 October, so it was like right after. 00:48:10.047 --> 00:48:13.228 And it was a vision for distributed 00:48:13.328 --> 00:48:15.889 federated software repositories. 00:48:17.210 --> 00:48:21.471 So I hopped into the community there and 00:48:21.511 --> 00:48:24.411 I found it was a community, 00:48:24.592 --> 00:48:24.792 not 00:48:25.732 --> 00:48:27.674 a guy with a GitHub thing. 00:48:28.134 --> 00:48:29.694 It was a community of people, 00:48:29.775 --> 00:48:31.217 and they were asking the right questions, 00:48:32.156 --> 00:48:36.821 which I always thought asking the right 00:48:36.860 --> 00:48:39.663 questions is more important than giving 00:48:39.703 --> 00:48:40.404 the right answers. 00:48:43.201 --> 00:48:44.902 Because if you're asking the right 00:48:44.922 --> 00:48:46.283 questions, you will get there. 00:48:47.504 --> 00:48:48.904 And that's kind of what I found with 00:48:48.924 --> 00:48:49.326 this group. 00:48:49.446 --> 00:48:54.949 And so I started working with them, 00:48:55.109 --> 00:48:58.313 ended up managing the project. 00:48:59.272 --> 00:49:03.616 And then as FAIR was forming, 00:49:05.677 --> 00:49:09.500 right around christmas twenty twenty four 00:49:09.661 --> 00:49:16.728 and january twenty five uh um there were 00:49:16.748 --> 00:49:18.328 a few of us that were working with 00:49:18.348 --> 00:49:21.250 uh uh with aspire press um you know 00:49:22.312 --> 00:49:25.154 andy fragan and uh and others that are 00:49:26.196 --> 00:49:27.697 um that would be no well known in 00:49:27.717 --> 00:49:30.478 the wordpress community um 00:49:32.571 --> 00:49:34.471 kind of drifted into the fair conversation 00:49:34.931 --> 00:49:35.451 and drifted. 00:49:36.853 --> 00:49:37.513 It was a little more, 00:49:38.092 --> 00:49:39.112 it was not so much drifting. 00:49:39.152 --> 00:49:40.194 It was pretty direct. 00:49:40.234 --> 00:49:42.373 So, um, uh, and, 00:49:42.674 --> 00:49:43.994 and I got involved at that point as 00:49:44.054 --> 00:49:47.715 well with fair because Aspire Press had, 00:49:48.176 --> 00:49:48.375 uh, 00:49:48.415 --> 00:49:51.096 had a working piece that fair was going 00:49:51.116 --> 00:49:52.998 to need, uh, and, 00:49:54.141 --> 00:49:55.083 You know, 00:49:55.123 --> 00:49:56.583 that comes about a little bit later. 00:49:56.623 --> 00:50:00.087 But by the time FAIR was forming, 00:50:00.826 --> 00:50:05.451 Aspire Cloud was already in beta and we 00:50:05.471 --> 00:50:05.971 were testing. 00:50:08.013 --> 00:50:09.773 So Aspire Cloud is the... 00:50:10.734 --> 00:50:13.795 It's basically the server piece that is an 00:50:13.855 --> 00:50:17.618 API server that tells you, okay, 00:50:17.717 --> 00:50:20.478 if you need to update this piece of 00:50:20.679 --> 00:50:22.719 WordPress software, this plugin, 00:50:23.600 --> 00:50:25.360 here's where you get the downloads. 00:50:25.801 --> 00:50:27.761 And the download comes from a mirror, 00:50:28.261 --> 00:50:31.022 which was the other difference about 00:50:31.043 --> 00:50:32.083 AspirePress is 00:50:33.534 --> 00:50:35.815 rather than just saying here's the code go 00:50:35.855 --> 00:50:38.777 set up your own thing it was we're 00:50:38.797 --> 00:50:40.078 going to make a public mirror that 00:50:40.158 --> 00:50:42.498 everybody can can access and then we're 00:50:42.518 --> 00:50:44.920 going to you know federate it so that 00:50:45.201 --> 00:50:46.822 there would be not just one mirror they 00:50:46.862 --> 00:50:51.645 can be all kinds of so um so 00:50:51.685 --> 00:50:52.824 that was that was the piece that we 00:50:52.864 --> 00:50:55.987 had in uh in beta so we'd replicated 00:50:56.047 --> 00:50:57.969 enough of the wordpress api to 00:50:59.672 --> 00:51:02.234 serve packages and rewrite the download 00:51:02.375 --> 00:51:06.900 url um to to the mirror so uh 00:51:07.801 --> 00:51:09.663 so as pharaoh is coming together um 00:51:10.942 --> 00:51:13.004 And this was like spring, 00:51:13.924 --> 00:51:14.703 twenty twenty five. 00:51:14.764 --> 00:51:19.525 So officially announced June six. 00:51:19.985 --> 00:51:22.726 And so it was just a few months 00:51:23.906 --> 00:51:26.368 of writing the protocol and figuring out 00:51:26.408 --> 00:51:29.069 what the fair governance model would be 00:51:29.328 --> 00:51:29.449 and 00:51:30.609 --> 00:51:31.429 shipping the plugin. 00:51:32.489 --> 00:51:38.993 So we had a SpirePress version of what 00:51:39.034 --> 00:51:41.714 became the FAIR plugin, but it was... 00:51:43.275 --> 00:51:44.574 uh, it was a little more rudimentary. 00:51:44.614 --> 00:51:47.616 It didn't do all of the, um, uh, 00:51:47.715 --> 00:51:49.697 all of the functions that the fair plugin 00:51:49.717 --> 00:51:51.636 or what we're now calling fair connect, 00:51:51.676 --> 00:51:54.797 um, uh, what it does, uh, 00:51:54.837 --> 00:51:56.259 because it stops, um, 00:51:56.438 --> 00:51:58.339 all of the phoning home if you want. 00:51:58.398 --> 00:51:58.739 So it's, 00:51:59.219 --> 00:52:01.619 it's not always pinging.org for everything 00:52:01.739 --> 00:52:06.621 like browser, uh, yeah, 00:52:06.721 --> 00:52:09.141 all of that stuff that, um, uh, 00:52:10.638 --> 00:52:12.219 a principle level i i don't want to 00:52:12.239 --> 00:52:14.322 do that for performance reasons but also 00:52:14.583 --> 00:52:19.328 privacy and like you know all all the 00:52:19.348 --> 00:52:22.893 reasons right um so uh 00:52:24.400 --> 00:52:24.621 Anyway, 00:52:24.661 --> 00:52:28.402 so FAIR was able to ship that plugin. 00:52:28.562 --> 00:52:34.022 And we had already arranged to do an 00:52:34.063 --> 00:52:39.545 announcement of a demo of Aspire Cloud at 00:52:39.605 --> 00:52:43.105 the event in Basel, the old control org. 00:52:45.585 --> 00:52:48.246 And FAIR was ready for the same. 00:52:48.527 --> 00:52:50.806 So we tag teamed. 00:52:54.739 --> 00:52:57.601 through the summer then we brought all of 00:52:58.141 --> 00:53:00.824 the AspirePress pieces that were, 00:53:01.504 --> 00:53:03.545 you know, that were FAIR related, 00:53:04.125 --> 00:53:05.366 we brought them all into FAIR. 00:53:05.947 --> 00:53:08.790 So in addition to Aspire Cloud, 00:53:08.830 --> 00:53:11.351 there was Aspire Explorer, 00:53:11.391 --> 00:53:15.614 which is the browser part that you just 00:53:15.654 --> 00:53:17.875 browse the repo on FAIR.pm. 00:53:19.377 --> 00:53:21.038 And that it's a WordPress plugin that 00:53:22.199 --> 00:53:26.440 adds those pages and then uses the API 00:53:26.460 --> 00:53:28.022 to get the listings of all the things 00:53:28.081 --> 00:53:30.283 from Aspire Cloud. 00:53:30.902 --> 00:53:33.944 And then most of those got renamed, 00:53:34.004 --> 00:53:39.946 but the Aspire Cloud decided to keep the 00:53:39.985 --> 00:53:42.605 name just as an homage to what Sarah 00:53:42.625 --> 00:53:44.406 had found and started. 00:53:46.187 --> 00:53:47.368 So yeah, 00:53:47.388 --> 00:53:48.567 so we had a good six month head 00:53:48.607 --> 00:53:50.529 start on building Aspire Cloud. 00:53:51.578 --> 00:53:55.172 so that it was ready when FAIR officially 00:53:55.192 --> 00:53:55.614 announced. 00:53:56.598 --> 00:53:57.279 So yeah. 00:53:57.712 --> 00:53:57.851 Yeah, 00:53:57.971 --> 00:54:01.594 I think one of the things that I 00:54:01.634 --> 00:54:02.955 think is interesting about, 00:54:03.036 --> 00:54:05.176 especially coming from sort of full circle 00:54:05.277 --> 00:54:07.139 from the conversation of Linux and open 00:54:07.179 --> 00:54:07.839 source software, 00:54:08.799 --> 00:54:12.382 that is maybe not discussed a lot in 00:54:12.522 --> 00:54:14.663 connection with FAIR specifically, 00:54:14.964 --> 00:54:16.884 because a lot of people just perceive FAIR 00:54:16.904 --> 00:54:18.446 to be a WordPress specific thing. 00:54:18.806 --> 00:54:21.328 But what's interesting about FAIR is that 00:54:21.949 --> 00:54:24.529 it is really about package management and 00:54:24.569 --> 00:54:25.590 package distribution. 00:54:27.989 --> 00:54:29.610 In open source broadly, 00:54:29.690 --> 00:54:30.871 and this is sort of to your point 00:54:30.891 --> 00:54:32.473 about people inside the WordPress 00:54:32.513 --> 00:54:34.554 community looking outside of WordPress, 00:54:35.154 --> 00:54:37.277 that's not a new concept. 00:54:37.616 --> 00:54:39.819 The concept of package management and 00:54:39.859 --> 00:54:41.679 distribution and even maybe federated 00:54:41.719 --> 00:54:46.683 distribution is not unique in open source. 00:54:46.743 --> 00:54:48.505 There are models for this that you could 00:54:48.665 --> 00:54:52.228 use and base the underpinnings of FAIR on 00:54:52.288 --> 00:54:54.109 top of and build on top of, again, 00:54:54.368 --> 00:54:55.750 standing on the shoulders of giants. 00:54:55.770 --> 00:54:55.971 Yeah. 00:54:57.179 --> 00:55:00.022 Yeah, um, absolutely. 00:55:00.042 --> 00:55:04.505 Uh, um, I just, you know, thinking the, 00:55:04.585 --> 00:55:08.969 um, um, it's, it's a web three model, 00:55:10.290 --> 00:55:13.752 uh, but I'll come to that so that, 00:55:13.793 --> 00:55:14.913 uh, um, I talked about, um, 00:55:15.475 --> 00:55:16.955 the supply chain, uh, 00:55:16.976 --> 00:55:19.837 at a WordCamp Canada in November and, uh, 00:55:20.958 --> 00:55:21.058 um, 00:55:22.438 --> 00:55:24.918 And the WordPress supply chain is very 00:55:24.960 --> 00:55:28.281 different from what you would design today 00:55:30.002 --> 00:55:31.902 from the traditional or... 00:55:33.551 --> 00:55:34.710 Supply chains are getting a lot of 00:55:34.750 --> 00:55:38.911 attention right now as they need because 00:55:39.312 --> 00:55:40.051 they're vulnerable. 00:55:40.431 --> 00:55:46.734 And I think that FAIR actually has the 00:55:46.793 --> 00:55:48.953 potential to become the gold standard for 00:55:49.993 --> 00:55:52.614 software supply chains because its 00:55:55.656 --> 00:55:57.176 architecture is for now. 00:55:58.906 --> 00:56:00.067 something that we've inherited, 00:56:00.107 --> 00:56:01.868 it's not something that we've tried to 00:56:05.871 --> 00:56:07.893 piece together and just sort of iterate on 00:56:07.933 --> 00:56:10.755 to make it almost acceptable. 00:56:11.775 --> 00:56:14.779 It's something that was designed from the 00:56:14.799 --> 00:56:15.199 ground up. 00:56:16.279 --> 00:56:18.542 And the interesting thing about it is 00:56:18.641 --> 00:56:18.902 that, 00:56:19.601 --> 00:56:21.143 and this is my pulling threads thing, 00:56:21.284 --> 00:56:24.085 is when you look at all of the 00:56:24.145 --> 00:56:25.127 pieces on their own, 00:56:26.328 --> 00:56:27.549 All of it has been done before. 00:56:27.790 --> 00:56:29.130 Everything's been done before. 00:56:29.471 --> 00:56:30.292 So it's all proven. 00:56:32.333 --> 00:56:34.054 Just nobody's put it together this way. 00:56:35.196 --> 00:56:36.937 So it's, you know, 00:56:37.237 --> 00:56:38.958 it's all the Lego bricks that you can 00:56:38.998 --> 00:56:40.719 imagine and they're all proven. 00:56:41.516 --> 00:56:44.098 But nobody's seen this thing before that 00:56:44.578 --> 00:56:46.279 we pieced together with it. 00:56:47.601 --> 00:56:50.223 And I think that's part of the real 00:56:52.523 --> 00:56:53.145 genius in it. 00:56:53.764 --> 00:56:56.246 So Ryan McHugh did a great job on 00:56:56.266 --> 00:56:58.408 the drafting the first version of the FAIR 00:56:58.427 --> 00:56:58.927 protocol. 00:56:59.648 --> 00:57:06.172 And we've been extending it as needed 00:57:06.333 --> 00:57:06.632 because 00:57:08.965 --> 00:57:12.969 it was designed to um to just address 00:57:13.848 --> 00:57:17.851 basically digital goods so it's it's not a 00:57:17.891 --> 00:57:19.893 wordpress thing and there's a lot of 00:57:19.913 --> 00:57:23.514 misconception here because oh you know if 00:57:23.835 --> 00:57:25.817 if yoast isn't involved anymore it's no 00:57:25.857 --> 00:57:27.857 longer wordpress it's dead it's whatever 00:57:28.759 --> 00:57:29.940 well none of it none of that's true 00:57:29.980 --> 00:57:32.721 it's it's ongoing and just a couple of 00:57:32.741 --> 00:57:35.802 weeks ago in germany we added typo three 00:57:35.842 --> 00:57:36.183 support 00:57:36.944 --> 00:57:39.965 So now the typo three as of the 00:57:40.005 --> 00:57:42.208 version fourteen that's coming out next 00:57:42.308 --> 00:57:47.090 week, it will support fair in in core. 00:57:47.792 --> 00:57:50.552 So you'll be able to do your software 00:57:50.592 --> 00:57:53.415 updates using fair rather than using their 00:57:53.455 --> 00:57:53.895 legacy. 00:57:56.737 --> 00:57:57.819 They call it TER, T-E-R, 00:57:57.898 --> 00:57:59.641 Type-O-Three Extension Repository. 00:58:00.942 --> 00:58:02.284 And they also have composer support. 00:58:03.465 --> 00:58:05.388 But you'll be able to use FAIR. 00:58:07.089 --> 00:58:08.712 So they saw the value in it. 00:58:09.212 --> 00:58:10.054 And they... 00:58:12.482 --> 00:58:14.786 I worked with some of their security 00:58:14.826 --> 00:58:18.889 people and they said, what about this? 00:58:18.949 --> 00:58:23.134 And I'm going, that's the right question. 00:58:24.116 --> 00:58:27.618 And we talked through how it worked and 00:58:28.580 --> 00:58:29.862 I get a genuine feel of 00:58:31.156 --> 00:58:34.937 of moving from skepticism to enthusiastic 00:58:34.956 --> 00:58:38.379 support as he sort of basically vetted the 00:58:38.418 --> 00:58:43.681 model which was also actually vetted by 00:58:44.621 --> 00:58:48.141 some of the web hosts who didn't want 00:58:48.161 --> 00:58:51.984 to be named but they did security reviews 00:58:52.004 --> 00:58:54.143 and audits on it and they gave us 00:58:54.163 --> 00:58:55.665 feedback and we made 00:58:56.806 --> 00:58:58.906 Thankfully, nothing had to be huge, 00:58:58.967 --> 00:59:01.168 but we made some changes that said, okay, 00:59:01.228 --> 00:59:02.449 well, this could be better. 00:59:02.489 --> 00:59:03.130 Let's make it better. 00:59:03.150 --> 00:59:08.534 And that's what we need to get into 00:59:08.554 --> 00:59:09.034 the future. 00:59:11.257 --> 00:59:14.139 But yeah, FAIR can be, you know, 00:59:14.159 --> 00:59:17.562 I keep saying if you've got a group 00:59:17.641 --> 00:59:21.085 of science fiction writers that just want 00:59:21.105 --> 00:59:22.565 to share all of their EPUBs, 00:59:22.585 --> 00:59:23.926 you know what, FAIR will do that. 00:59:25.315 --> 00:59:28.518 it'll do that because it's at the protocol 00:59:28.558 --> 00:59:28.777 level. 00:59:28.857 --> 00:59:31.440 It's, it's nothing to do with WordPress. 00:59:31.560 --> 00:59:32.681 It's about the supply chain. 00:59:33.301 --> 00:59:34.502 And then in fact, 00:59:34.741 --> 00:59:36.163 the very original design of it, 00:59:36.842 --> 00:59:39.545 all of the WordPress specific pieces are 00:59:40.165 --> 00:59:41.565 extensions to the protocol. 00:59:41.585 --> 00:59:44.007 They're not baked into the core of it. 00:59:45.668 --> 00:59:46.047 And there, 00:59:46.147 --> 00:59:49.670 and it's designed that way so that so 00:59:49.750 --> 00:59:51.371 now that we have type of three, 00:59:51.911 --> 00:59:53.413 the type of three comes in as a, 00:59:54.719 --> 00:59:57.259 protocol extensions that are sort of 00:59:57.299 --> 00:59:59.980 designed exactly the same way. 01:00:00.261 --> 01:00:01.060 And it's a good model. 01:00:02.801 --> 01:00:04.042 Well, thank you very much, Brent, 01:00:04.081 --> 01:00:04.942 for coming on. 01:00:05.322 --> 01:00:07.382 Thank you everyone for watching or 01:00:07.422 --> 01:00:08.884 listening to this in the future. 01:00:08.984 --> 01:00:10.565 Brent, before we go, is there, 01:00:10.764 --> 01:00:12.565 if somebody wanted to find you on the 01:00:12.605 --> 01:00:16.607 internet, where would they find you? 01:00:16.627 --> 01:00:17.607 Todorash.net. 01:00:19.668 --> 01:00:21.228 It'll link you to wherever I am on 01:00:21.447 --> 01:00:22.409 socials and all of that. 01:00:23.777 --> 01:00:24.058 Awesome. 01:00:24.580 --> 01:00:26.123 Well, thanks again, Brent. 01:00:26.304 --> 01:00:28.308 And again, thank you everyone. 01:00:28.529 --> 01:00:31.174 And we'll see you on the internet. 01:00:31.194 --> 01:00:31.355 Yeah.