WPwatercooler

EP479 – To Bot or Not to Bot

March 29, 2024

In this episode of WPwatercooler, titled “To Bot or Not to Bot,” hosts Jason Tucker, Sé Reed, and Jason Cosper dive into the implications and ethical considerations of utilizing bots, specifically ChatGPT, in the realm of WordPress development. The discussion kicks off with an anecdote from Sé, who experimented with using ChatGPT to solve a coding problem related to grouping WordPress pages in the admin area. This led to a broader conversation about the reliability, safety, and future role of AI-generated code in production environments. The episode touches on themes such as the balance between automation and manual oversight, the evolving landscape of WordPress plugin development, and the importance of adhering to coding standards. Throughout, the hosts share personal experiences, concerns, and the potential they see in integrating AI tools like ChatGPT into their workflows, all while maintaining a critical eye on the implications for developers and the wider WordPress community.

Links

https://github.com/WordPress/WordPress-Coding-Standards
https://fedi.simonwillison.net/@simon/112147026040154264
https://labs.perplexity.ai
https://huggingface.co/docs/transformers/model_doc/code_llama
https://unmaintained.tech

Chapters

00:00 Intro
00:16 Introducing the Hosts and Their Quirky Banter
01:03 Inspiration from Discord: Tackling WordPress Page Chaos
06:18 The Quest for Better Page Organization: A Plugin Solution
08:40 ChatGPT to the Rescue: Crafting a Custom Plugin
10:54 Testing and Tweaking: The Plugin’s Journey to GitHub
12:28 The Ethical Dilemma: Using Bots for Code Generation
14:34 Learning to Code with ChatGPT: A Personal Journey
17:59 Ensuring Code Quality: The Role of Large Language Models
20:44 The Future of Plugin Development: Community Collaboration
22:00 The Open Source Dilemma: Plugins, Patches, and the Power of Collaboration
23:00 Navigating the Free vs. Pro Plugin Conundrum
23:47 The No Maintenance Intended Tag: A New Approach to Open Source
24:37 The Challenges of Community Contributions and Code Reviews
25:06 Harnessing AI for Code Generation: A New Frontier
29:49 The Trust Crisis in Plugin Repositories
35:01 AI vs. Traditional Coding: Navigating the New Landscape
39:06 The Ethical Dilemma of Using AI-Generated Code
43:39 Collaborative Coding with AI: The Future of Development?

Panel

Episode Transcription

[00:00:00] Sé Reed: Thank you. 3, 2, 1.

[00:00:06] Jason Tucker: This is episode number 479 of WPwatercooler, to bot or not to bot.

[00:00:12] Sé Reed: That is the question. With that question mark, though, I just realized

[00:00:16] Jason Tucker: I’m Jason Tucker. You can go to my website at jasontucker. blog.

[00:00:21] Sé Reed: who owns that blog anyway? Hey, I’m say Reed. I do say read things at, say read me on Media on all the things.

[00:00:30] Jason Cosper: And y’all know who it is. It’s your boy, Jason Cosper, back at it again on the world’s most influential WordPress podcast.

[00:00:39] Jason Tucker: you can go find it wherever it is. That great podcast can be found and the best part of the whole thing. Go hang out in our discord at watercoolerslack. lol.

[00:00:50] Sé Reed: I was going to say, you can find us wherever the best podcasts are, and probably wherever the worst podcasts are. Because I guess they’re

[00:00:58] Jason Cosper: We don’t discriminate

[00:01:00] Sé Reed: no, a lot of yeah, in general. So speaking of the watercoolerslack. lol, We actually this episode today is inspired by our discord and one of our channels that is inspired by one of our shows.

[00:01:20] Sé Reed: So it’s It’s turtles all the way down.

[00:01:24] Sé Reed: exactly. It’s just, it is its own thing. We are the Ouroborealists or whatever that is, which I think I’m contractually Ouroborous, which I’m now contractually obligated to mention. At least once a show. Yeah. So we have a channel there called DevBranch, named after the show DevBranch which in case you don’t know is the first of the month, every month.

[00:01:54] Sé Reed: And yeah, it’ll be the next episode and it’s where we get slightly geekier and I don’t ask as many dumb questions. I try to ask the geekier questions. And anyway, we do the same in the channel, in the Discord, and on Tuesday of this week one of our awesome, long time listener, friend of the show people, Rachelle was saying, hey people, who knows anything about how do we get these pages to behave?

[00:02:27] Sé Reed: And I Not just procrastinating, although this is my favorite way to procrastinate, so this is why this whole thing happened, really. I’m literally, have been dealing with the same issue, and I had actually brought it up previously in that channel, talking about using a CPT versus a page in order to determine paths.

[00:02:50] Sé Reed: The problem with pages, it’s chaos. It’s just,

[00:02:55] Jason Cosper: for the people who did not realize that they weren’t tuning into DevBranch, a custom CPT is a custom post

[00:03:04] Sé Reed: right yeah, it’s custom post type which is a choice to make between yeah, how you want to structure it, but custom post types have a defined path for their post type which makes sense so they don’t conflict with it. pages or posts of the same titles, which is actually a problem that happens a lot.

[00:03:25] Sé Reed: But, the default, the pages, the land of the pages, which, to my knowledge, and correct me if I’m wrong, anyone on the chat, on the internet, there’s no name for that screen. What do we call that screen? The pages screen? The list of pages? Because now we have the list thing in the block list. Pages admin?

[00:03:53]

[00:03:53] Sé Reed: Right? It’s so forgotten, it doesn’t even have a name. That is, it’s just no man’s land. It’s just pages. The pages page.

[00:04:03]

[00:04:04] Jason Cosper: Page.

[00:04:06] Sé Reed: The page is page. Anyway, so that page is natively just almost as bad as the media library and longtime listeners of the show know how I feel about the media library and the chaos that ensues within it. You know what the thing is that WordPress search is not good enough have that level of chaos. That is really what it’s about, like the WordPress native search, if it was going to have that level of disorganization, then the search need, needs to be better, because that’s the reason kids these days don’t look for stuff because on their Macs, or they don’t put stuff in folders, this is like a generational thing, they just use search, you just search a drive, search whatever, and Google search works great on your drive Mac search works.

[00:04:55] Sé Reed: I don’t know what all you Windows people are doing.

[00:04:57] Jason Cosper: On my iPhone, I have one home screen. I have the most common what? Eight apps and then down in like my little dock, I have another, the four apps that I always use. And then I have a Siri Like a search bar?

[00:05:15] Jason Cosper: No. It’s a Siri what apps we think you’ll need given like on

[00:05:21] Sé Reed: The time of day and, yeah, exactly. You usually use this app.

[00:05:25] Jason Cosper: and I have no other home screens. Everything else is shoved into the library. And normally when I launch an app, I just, cause it’s a newer version of iOS, just pull down and get the little search thing and type in what I need. Like

[00:05:41] Sé Reed: Exactly. So that is the it’s not just the new generation, obviously. I feel the same way. We’ve been having chaotic just documents and screenshot folders since the 90s. But when you have clients accessing their pages, the chaos of that, and the search, again, not working in a way that is useful.

[00:06:07] Sé Reed: Even the search results can be so confusing with the orders that they’re in, because pages are decoupled from subpages, and it’s just like a bunch of lines. Anyway! Long story short, we got talking about why that is how it would be better organized and that we need it for the various, like for the actual projects that we’re working on at this week, like I had a big presentation this week for a client and I didn’t have to do the backend, but I’m thinking about how to construct this, right?

[00:06:40] Sé Reed: How to make it so that they can access it in a way that makes sense to them grouping their pages by. Maybe it’s by area, location or topic or type of page, like our, here’s our cluster of about pages. And unless you create the sub page hierarchy, there is really no organization there natively.

[00:07:03]

[00:07:03] Sé Reed: So we found a plugin called nested plug nested pages, which was pretty cool. And it’s one of these various, I’ve had this on various with various other plugins where you can essentially You know, drag and drop your page order, right? It’s Sure.

[00:07:22] Sé Reed: using the page order, the secret page order feature of pages.

[00:07:27] Sé Reed: Has anyone ever used that in the past decade?

[00:07:30] Jason Tucker: Yeah, all the time.

[00:07:32] Sé Reed: Do you really? But it shows up on the site. It doesn’t show up on the

[00:07:37] Jason Tucker: number, the menu, whatever they call it.

[00:07:39] Sé Reed: the backend by the menu number also? How do you like use hundreds or something? Like a Dewey Decimal System? Because if you’re just using 1 through 10 and you make a new page, what do you do?

[00:07:51] Sé Reed: What do you do?

[00:07:52] Jason Tucker: just old school and do everything by hundreds. Yeah.

[00:07:56] Sé Reed: everything by hundreds? Okay, that works. Then you’ve got

[00:07:59] Jason Tucker: or hundreds, depending on how many pages I know it’s going to be.

[00:08:02] Sé Reed: Literally, that’s like the Dewey Decimal System.

[00:08:04] Jason Tucker: And then I put a go sub somewhere in there so I can make sure I can go back.

[00:08:11] Sé Reed: On the

[00:08:14] Jason Tucker: it. Yeah,

[00:08:17] Sé Reed: Okay on the backend we were talking about, I’ve been using Airtable a lot, which I talk about a lot on the show, and you can group It’s a database, right? So you can group data by your by whatever category, whatever field you define it by. And something so simple as that, I was like I’m procrastinating.

[00:08:40] Sé Reed: Why not hop on over to my friend ChatGPT and just see what it says. Because this actually seems rather simple. I need a page taxonomy, and I need an admin to display something in groups. That’s not wildly complicated, right? Reasonable

[00:08:57] Jason Cosper: would think,

[00:08:58] Sé Reed: Yeah, right? I I could clean, or I could talk to ChatGPT and make plugins.

[00:09:04] Sé Reed: One, one and the other. All right. So anyway, I was asking it, I was just telling it, I need to make this. And it told me what I needed to do. And I was like, great. Can you please write that plugin? And I’m, I don’t know if you will let me share my screen. You let me share my screen over here so I can show this to people while I talk about it.

[00:09:21] Sé Reed: All right. So this is a, do I hit present? Oh, I don’t think I’ve ever do this one. That’s fun. I don’t think I’ve done this one before. Let’s see, here we go. Am I sharing the right one? Hopefully.

[00:09:34] Jason Tucker: of as getting a clicker and then getting the clicker on stage and you’re like, Oh, I’ve never used a clicker before. Let’s

[00:09:40] Sé Reed: Is this the right screen, though, that I’m doing?

[00:09:43] Jason Tucker: Just push push command plus a couple of times so we can read the words.

[00:09:47] Sé Reed: Oh for sizing. Okay. Anyway, I just want to show it also so I don’t have to remember it. Hold on. I’ll increase the size here. Whoa, look at that. Okay, so basically, I was like, what should I do? I need to group some pages with the taxonomy, and it was like, here, do this, and I was like, cool, can you write it instead?

[00:10:07] Sé Reed: And it’s sure, here, I wrote it for you. It’s gives me the PHP file with the plugin name, and it’s just go ahead and take that pop it in there, make sure you define these other things, right? And I was like what if instead yeah, I was like, what should I call it?

[00:10:22] Sé Reed: And then I was like, what if instead you just generate the other files that I need? And it’s okay, here you go. I’ve generated your plugin. And it says, if you can’t, if you’re listening, it says, download custom page group display plugin. And I was like, oh,

[00:10:36] Jason Tucker: wild to me.

[00:10:37] Sé Reed: Yeah, I was like, I didn’t know I could download things.

[00:10:40] Jason Tucker: I want to know, does chat GPT use a Mac to make the zips or does it use

[00:10:44] Sé Reed: No. See, so I downloaded the file, but it’s unzipped. Okay. So then I zipped the file I didn’t put it on production. This is the question we’re going to get to eventually. So I zipped the file and then I uploaded it now and actually uploaded it to Playground, WP Playground. Cause I was like, this is the perfect use case, right?

[00:11:04] Sé Reed: For Playground. And it’s like invalid archive. No, cause then I went back.

[00:11:12] Jason Tucker: is you’re using Safari, right?

[00:11:14] Sé Reed: No, I’m using Chrome.

[00:11:17] Jason Tucker: Okay.

[00:11:19] Sé Reed: Why is that funny?

[00:11:20] Jason Tucker: Shouldn’t have down, when it downloaded the zip file, it should just kept the zip file, didn’t

[00:11:23] Sé Reed: It didn’t, it wasn’t a zip file.

[00:11:25] Jason Tucker: it.

[00:11:26] Sé Reed: It wasn’t a zip file yet.

[00:11:28] Jason Tucker: a

[00:11:29] Sé Reed: It was a PHP file. It was a folder with a PHP file in it. And then I asked it, can you zip that for me? And it was like, yeah, sure, here you go. And then I was like, oh, there’s an error what should I do about this error? But actually, I didn’t even have to do anything about that error because Rochelle was like, oh you have a plugin is, beginning of your So I just took it out, and then it worked perfectly. But that’s what it did. It literally worked perfectly on, on Playground. And it’s a really simple plugin. Like it’s not complicated, right? This is literally popping a taxonomy onto pages, which I’ve done. I’m trying to see where it is. The whole thing is like up here.

[00:12:11] Sé Reed: It just pops the text on me onto some pages. I’ve done that before. And then it makes a new admin screen called grouped pages, and then it just shows the pages per group on that page. It’s wildly simple. So we’ve got this code. And then Cosper over here starts talking about putting memes in the chat about not using bots on production and how I’m a terrible coder and all this.

[00:12:42] Jason Cosper: I never said you were a terrible coder.

[00:12:45] Sé Reed: I know, I’m just kidding. No that that I shouldn’t be it’s these are legitimate concerns, right? I’m not I’m like, I actually could use this on the site that I’m using right now. I’m just kidding. This is, it works on Playground and I was like, huh, what what, you should put up some of the memes that you were putting up, basically, but there’s definitely I’ve done some cowboy coding in my day, but there’s a difference between cowboy coding yourself and literally just sticking some code that was generated into your site, but I’ve been thinking about this.

[00:13:28] Sé Reed: Thanks. Bye. And I have been taking random people’s code off the internet and sticking it into various things for a very long time. Like, all the time. I take things off Githubs and StackExchanges and Yeah,

[00:13:44] Sé Reed: WordPress sites I’m,

[00:13:46] Jason Tucker: person that just cooked up something real quick, has no idea what you’re talking about, other than I want the end result to be this. And then they go okay,

[00:13:54] Sé Reed: but I can

[00:13:55] Jason Tucker: the navigation walker that you need in order to be able to make this thing show up and you’re like, sure.

[00:14:00] Jason Tucker: Okay. And then 500 lines of code later never 500 lines of

[00:14:05] Jason Tucker: The the page is active, be purple and you’re like,

[00:14:09] Sé Reed: Okay, here’s the deal. I know, I can read code, right? So it’s like when you can speak a language but you can’t read it, or you can read a language but you can’t speak it. I’m not great at the things I don’t know, but the things that I do know, I can totally read it and fix it and write it, whatever.

[00:14:27] Sé Reed: Then I have to go research whenever I see a I get caught. This is how I learned to code. This is how I’ve been learning to code my entire life is basically, do I need to do a thing? And then I go teach myself how to do things. That’s basically how that works. So I find out the answer.

[00:14:46] Sé Reed: What, how do you learn to code?

[00:14:48] Jason Tucker: you weren’t in like Paris or something and you pulled out chat GPT and said, hi, I would like the following to be made for me in this restaurant and you’d list off the type of fish you want and what thing it needs to be and dah, and you list it all out.

[00:15:03] Jason Tucker: And then you say, and you just hold it up to the person and say, I want this. And it’s written in French and you’re like, I couldn’t even read this. I don’t even know what this is here. Do this thing for me. You didn’t do that.

[00:15:14] Sé Reed: You’re saying like, if I were in a restaurant with a menu,

[00:15:17] Jason Tucker: Yeah. You can read the code and you can go, Oh, the code says that I’m going to be using a WP query and it’s going to be searching for this and I’m going to have it isolate that, and then I’m going to have this be displayed.

[00:15:28] Jason Tucker: Like you can read it.

[00:15:29] Sé Reed: Yeah. Okay. So this isn’t, this doesn’t need to be about me specifically, but the thing is I was like, Oh what tests are there where I could test this? Like I can go through and read this code everything that’s going on here. Do I always know if it’s coded? To the current standards, do I know that it’s cleaning AF Advanced Custom Fields recently put out a big banner on some actual live sites that I have that says the field is unescaped, we’ve detected this field being unescaped somewhere, and we’re going to stop supporting this, and then on, Then I get another one that said actually, it’s probably not a breaking change.

[00:16:15] Sé Reed: You’re fine. I’m like, okay, what are you doing guys? I don’t know what’s happening.

[00:16:19] Jason Tucker: So you could ask GPT is there something else that’s in here that I need you to like can you harden this code more?

[00:16:28] Sé Reed: Okay. But isn’t that asking an industry to regulate itself? You’re like,

[00:16:32] Jason Tucker: this?

[00:16:33] Jason Cosper: of,

[00:16:34] Sé Reed: you really should test yourself better.

[00:16:37] Jason Tucker: and you went and got some other GPT system

[00:16:40]

[00:16:41] Jason Tucker: Code and then tell you if it needs to change some stuff,

[00:16:45] Sé Reed: like pit them against each other. Like I go, I put it, actually I could, cause I have a, what’s the one on GitHub? Is it copilot, I think? I didn’t put this in the right repository for that, but I should put this in a copilot repository, and then make copilot fix the chat GPT code, and then make the robot

[00:17:03] Jason Tucker: explain to me what this does.

[00:17:06] Sé Reed: It does what it does it’s very simple, right? This is a very simple request, and honestly, I’m shocked. At my inability to find it in existence, in the existing plugins directory there’s lots of ordering things around, but I’m like, are we not grouping pages? Is this not who, the problem is developers don’t use websites, this is the real problem.

[00:17:33]

[00:17:34] Sé Reed: They don’t know what we need. ChatGPT is giving me what I need.

[00:17:41] Jason Cosper: sure. Okay. So to I know this

[00:17:45] Sé Reed: I’m looking for you to play devil’s advocate here. Jason, you’re not helping because you’re like, it sounds great, you should just

[00:17:51] Jason Tucker: Look, if it was JavaScript, have at it right. Now, so

[00:17:56] Jason Tucker: go wrong. It’s on the browser. Who cares?

[00:17:59] Jason Cosper: one of the things that I would do here when giving, or when taking code from one of these large language models whether you’re using chat GPT, you’re using Gemini gonna call it that.

[00:18:16] Jason Cosper: Facebook, I’m sorry.

[00:18:18] Sé Reed: I know.

[00:18:19] Jason Cosper: Facebook has one that it released that’s focused on coding What’s that one called?

[00:18:27] Jason Cosper: so it’s called Code Llama.

[00:18:30] Jason Cosper: And that is you can get at that on there’s a site for like open models called Hugging Face.

[00:18:39] Sé Reed: Oh, yeah, I’ve seen that, but I don’t want to do anything that has anything to do with Facebook ever.

[00:18:45] Jason Cosper: sure they also over Llama. I like llamas. Nothing against llamas. Thanks.

[00:18:52] Jason Cosper: Perplexity which is another AI tool has like a labs section where they have some more common models and it they have a interface that will give you access to that Codelama model. There’s no history save chat GPT or Google stuff.

[00:19:13] Sé Reed: More like a playground instance version of it. You

[00:19:21] Jason Cosper: what I would do with any code that I would ask a large language model for is I would basically run that code through like a PHP code sniffer with the WordPress coding standards which You know, both of those things and those are being supported and everything else through what, through

[00:19:51] Sé Reed: mean financially?

[00:19:52] Jason Cosper: and yeah, financially through OpenCollective and

[00:19:56] Sé Reed: 000 a month from Automatic.

[00:20:00] Jason Cosper: great.

[00:20:01] Sé Reed: Just FYI.

[00:20:03] Jason Cosper: Sure. Yeah. Please There’s more there. There’s other, there’s additional stuff there. You can go support. I’m just saying, it is, that’s an investment.

[00:20:12] Jason Cosper: Absolutely. And we need to make sure that with the bus factor. Down with the bus factor.

[00:20:19] Jason Cosper: We need to make sure that things like match up to the coding standards. I know that the tests that the plugin team runs are a lot more thorough. I’m not submitting it to the repo. I, that would, I would require some I don’t want to deal with that because it’s just this is why I don’t make plugins. This is really opened up a whole Pandora’s box because back in the day I would build more functionality and now I don’t build functionality because I use plugins for that because then the plugin can stay up to date and the client is not dependent on me if they want to leave or if I don’t.

[00:21:00] Sé Reed: We’re not going to work together for a couple years, which doesn’t ever happen. So I don’t know why I worry about it. They never leave.

[00:21:08] Jason Cosper: Put the plugin up on GitHub.

[00:21:11] Sé Reed: I did. I did put the plugin up on GitHub. I can link to it in the show notes because I would love some some polls. I feel like this is like a if we’re going to this is a community plugin. Like it’s not only is it a collaboration between a robot and myself, but it was also stemmed from DevBranch and collaborative procrastination.

[00:21:37] Sé Reed: And also, Maybe that should be the name of the developer for it. Collaborative Procrastination. That’s

[00:21:46] Jason Tucker: I love

[00:21:46] Sé Reed: like the best term I’ve ever heard of. So yeah, it’s really a dev branch, inspired, a Discord inspired plugin. I think it’s pretty cool.

[00:22:00] Jason Cosper: Sure.

[00:22:01] Sé Reed: just make a bunch of plugins and solve our own problems.

[00:22:04] Jason Cosper: Yeah. The scratch, scratching our own edge

[00:22:09] Sé Reed: Yeah, but like then if more people are using it and supporting it and being like, oh, we got to keep this up to date, then it’s not the same thing as I have to make sure that every client that I’ve ever installed this on has up to date stuff all the time that’s so much, and then you just, everyone’s got a little bit of time, someone over here has some time to do some CSS ing, and someone over here has some time to do whatever isn’t that the whole point of the open source It’s like this collaborative approach instead of this world where we’re dependent on all these plugins that we’re paying people for and still getting, I don’t know, but even the nested plugins in its I’m looking at it, it’s great, but in its actual plugin description, it’s got free versus pro.

[00:23:00] Sé Reed: It’s hijack those little details, view more info. I don’t even know what you, what do you call that? The links on the Plugmin admin page? Those get hijacked. And this one has free versus pro right there. So it’s do you buy the pro just to get rid of the upsell inside of the free plugin?

[00:23:21] Sé Reed: And then

[00:23:21] Jason Tucker: now you can add that to your own plugin.

[00:23:24] Sé Reed: seriously, I could scrape it out of there.

[00:23:26] Jason Tucker: you make the background of my plugin list in the plugin listing rainbow color? Can you make it do all this like extra marketing stuff?

[00:23:33] Jason Cosper: If you’re not going to you’re not interested in maintaining it. So you don’t want to put it in the repo. You are going to encourage people to. Submit patches if they find it useful. I would argue, and I’m going to share my screen really quick. There is a tag you can add to your repository that says and this is something that just came across, came to my attention recently is no maintenance intended, and you basically say Hey, use this at your own risk.

[00:24:09] Jason Cosper: I am not maintaining this. I’m putting this up here

[00:24:13] Sé Reed: I like that.

[00:24:13] Jason Cosper: it useful, but no maintenance intended. Something that I also think is

[00:24:21] Sé Reed: that it’s really clear. Stating your intentions, that’s wonderful. But also do it if happy to do it.

[00:24:27] Jason Cosper: Yeah.

[00:24:28] Sé Reed: wanna change that because I’d be like if you do a pull request, I actually will probably look at it, but no promises, but probably ’cause I want it to be up to date too.

[00:24:37] Sé Reed: But then I just have to review their stuff. Or trust that person be like, what? That, so then you have to actually do a code review. It’s like

[00:24:47] Jason Cosper: Oh

[00:24:47] Sé Reed: becomes not just solving a problem

[00:24:49] Jason Tucker: are just going to look at the code.

[00:24:51] Sé Reed: Exactly. , it’s a bot. And then the pull request that someone’s doing is actually also with their bot. And so their bot writes it.

[00:24:59] Jason Tucker: generated this.

[00:25:01] Sé Reed: Oh, is there a tag for that yet? Because I, I put it in the, I put it in the plugin notes.

[00:25:06] Jason Cosper: It wouldn’t surprise me in this is, this actually makes me think of I don’t know if the two of you are, either of the two of you are familiar with Simon Wilson Simon Wilson does a lot of he maintains this thing dataset and he has done something very similar Jason, your mind was blown.

[00:25:34] Jason Cosper: At whoa, that zoomed in too much.

[00:25:37] Sé Reed: Let me remind you that your mind was blown.

[00:25:40] Jason Cosper: Yeah Remember how your mind was blown?

[00:25:43] Jason Cosper: that it, didn’t she blow your mind this time? Didn’t

[00:25:48] Sé Reed: I? Didn’t she? Didn’t Simon?

[00:25:51] Jason Tucker: Yes,

[00:25:59] Jason Cosper: dissimilar from you, where he was taking his dog for a walk. And he had the chat GPT mobile app, write, compile, and test a C extension written in C to SQLite and basically shared that, but so that he could figure out distances between two lat, latitude and longitude points.

[00:26:28] Jason Cosper: Like

[00:26:29] Sé Reed: Havershine distances?

[00:26:30] Jason Cosper: completely wild that

[00:26:33] Sé Reed: what is that? What does Havershine distances

[00:26:36]

[00:26:36] Sé Reed: Is that a term?

[00:26:38] Jason Cosper: I can’t even pretend to

[00:26:40] Sé Reed: New England? It sounds New England y

[00:26:43] Jason Cosper: The fact

[00:26:45] Sé Reed: or British.

[00:26:45] Jason Cosper: He took and had a large language model in this case, chat GPT turn around and make an extension to SQlite. And compile it just like you did where it’s like, Oh, also zip this

[00:27:04] Sé Reed: Also, just make the whole thing, please, and label it, and I’ll just use whatever title you come up with. It’s great. What do you want to?

[00:27:10] Jason Cosper: This stuff I do think that this stuff is remarkable. I do not trust the code quality. This is like asking like a

[00:27:22] Sé Reed: Is that you being paranoid or you being safe? Sorry, I interrupted your analogy.

[00:27:26] Jason Cosper: No yes to both, but mostly safe. No,

[00:27:32] Jason Tucker: What if

[00:27:33] Sé Reed: being paranoid and safe. Wait, I want to hear the analogy. It’s like being a first year what? I’m dying to know. I interrupted you, but I need this story.

[00:27:41] Jason Cosper: it’s like giving a coding test to like a first year programming student. It’s they will do the job, but they might get some shit wrong.

[00:27:51] Sé Reed: Right.

[00:27:53] Jason Cosper: And you have to know what they got wrong. I’ve,

[00:27:58] Sé Reed: the bot has to know.

[00:28:00] Jason Cosper: I’ve dabbled a little bit when I saw that CodeLlama, and we’ll make sure that the link to the interface for that is, is in the show notes, if anyone wants to play with that I’ve asked CodeLlama once I heard Oh, it’s actually pretty good at this stuff.

[00:28:18] Jason Cosper: It’s better than a lot of the other models.

[00:28:22] Sé Reed: You mean at testing or standards?

[00:28:24] Jason Cosper: Yeah, I asked it to do Oh, can you make me a WordPress plugin that does this? Or can you give me some code that’ll do this? And

[00:28:34] Sé Reed: See, you’re doing it too.

[00:28:37] Jason Cosper: but I’m not putting it into production. I’m not

[00:28:40] Sé Reed: didn’t yet put it into production. I, you didn’t put it on GitHub.

[00:28:45] Jason Cosper: I was.

[00:28:45] Sé Reed: irresponsible? Putting it on GitHub?

[00:28:48] Jason Cosper: If it works and you know that the code is going to be safe, like I don’t want to necessarily attach my name or my GitHub account to some shit that a computer like tossed off.

[00:29:04] Jason Tucker: What if, say, hire someone on Fiverr to to refactor the

[00:29:08] Sé Reed: This is exactly what I’m saying. Like, where this took me down an entire rabbit hole because I started questioning all of the coding research that I’ve done in my entire very much homespun dev career, right? The, the I pay attention to WordPress and things for that reason, right?

[00:29:35] Sé Reed: Specifically so I know what’s going on, but I have absolutely become dependent on everyone else knowing what’s going on and updating it in their plugins so that I don’t have to maintain all of this various stuff. But the other problem I’m facing is that I feel like there’s less stuff of quality in the plugin repo than there used to be, and it’s not just that there’s more. What was it? I was, oh, I was looking for a plugin that did would do a default image for posts in various taxonomies, right? Pretty basic. Like that’s something I’ve done before. I think I’ve written it, I’ve hand coded it in most of the time. But again, I’m trying to stay on top, like I’m trying to keep things in plugin form in order to allow for the code to be updated and isolated and not connected to the, just trying to build it in that sort of decoupled way.

[00:30:34] Sé Reed: So whether I’m building a plugin, which I try not to do, or someone else does, It’s still in that modular format. But I found that, so first of all, didn’t find a lot of solutions for this. And I’m like, I swear I’ve solved this problem before with more better solutions. But you either get plugins that are like, oh, here, this does literally everything.

[00:30:57] Sé Reed: And it’s a suite. And there’s 10 versions of a tier on the pro version. And it’s up to 300 a year or whatever. And this This category thing is like one tiny feature in the corner in one version. And then you’ve got also three super basic ones that look like they were almost exactly the same.

[00:31:17] Sé Reed: They had like really similar names and the way the readmes were written were even just on the main page was like, Here’s how you install it and giving like page templates and I’m like this is that’s I could just write the freaking page template code if that’s what I was doing like this is just pulling the code that I would write anyway into a plugin that’s now look hooked to whoever this is you know with their 10, 000 installs and updated in the last three months or whatever right so My, my trust level in the plugin directory has gone way down, I realized, and my, my I don’t know where these, now these plugins are coming from I don’t, they look cloned, they look like they’ve changed a couple different things, and they’re in here, a lot of them aren’t being updated, a lot of them are, like A couple WordPress versions back, so even if they might still work, they still are, I don’t know, it feels like you can’t go ahead with that sort of thing, right?

[00:32:20] Sé Reed: Feels almost as irresponsible as, I don’t know, having chatGPT write the code. So am I downloading and using and there’s nothing but arguably more complicated linking me to who a member of this random person is linking the site to that for however long, or reverting now back to how I used to do it, where I’m building little bespoke plugins for all of these different things and now having to update them. I feel like I don’t even ChatGPT makes it a lot easier to write those, and I guess maybe to stay up to date, maybe? If there was a WordPress AI bot, that would be pretty handy for this, but, anyway, this is an existential dilemma that I am facing, and I feel like I am back. To how I started building out WordPress sites, and even with, I don’t even want to get started on how the site editor makes me feel like that, because I have to start controlling and building out page templates, which I haven’t been dealing with in a long time.

[00:33:37] Jason Cosper: Sure.

[00:33:37] Sé Reed: Dealing with page template files again, I’m like, just parts and templates, like I haven’t had to deal with that. So now I, I’m both advancing over here on the chat GPT side, able to make custom code, but at the same time, now I’m responsible for even all the CSS and what’s the we’ve got safety considerations, we’ve got aesthetic considerations, we’ve got maintenance considerations,

[00:34:06] Jason Tucker: always had safety considerations. That’s the thing.

[00:34:10] Sé Reed: Yeah, I guess I just trusted the plugin repo more.

[00:34:15] Sé Reed: Like I and I, it’s useless now. I don’t trust that they’ll stay updated.

[00:34:22] Jason Cosper: This makes me, this reminds me, this makes me think of something that grandpa Simpson said in the Simpsons, which is, I used to be with it, but then they changed what it was. Now what I’m with, isn’t it anymore? And what’s, it seems weird and scary. happen to

[00:34:40] Jason Tucker: Dang.

[00:34:42] Sé Reed: I think you just called me old first of all. And second of all, what is the it that we’re even talking about? Are we just back to what’s the it

[00:34:50] Jason Tucker: it’s all of it.

[00:34:52] Jason Cosper: Yeah.

[00:34:53] Sé Reed: are, I’m wondering if it is WordPress. Oh,

[00:35:00] Jason Tucker: I don’t know. The GPT stuff has been changing in like my tool set at work quite a bit, having one liners written where you have one line of code, that’s going to do a thing for you. It, I just type in, Hey, I want to do this thing. Can you make it happen? And it’s sure.

[00:35:20] Jason Tucker: I’ll create a new user. I’ll add them to a group and I will give them these permissions. It’s. And I can read it and I can see that it’s doing that thing, but I didn’t have to write any of it.

[00:35:30]

[00:35:31] Jason Tucker: Just did it.

[00:35:32] Jason Cosper: I use AI stuff very sparingly and what I use it for, yes, is one liners like that, Hey I need otherwise inscrutable program that does everything FFmpeg, which Tucker I already see nodding FFmpeg is a command line

[00:35:56] Jason Tucker: Midos will be written in regular expression the entire way through. Yeah.

[00:36:03] Jason Cosper: any media file into basically any other media file.

[00:36:07] Jason Cosper: Like you can give it a video and it’ll just strip out and make it into an MP3 for you. You want the video it’s a MOV and you want it to be an MP4. You want it to be an AVI, like it’ll do it for

[00:36:25] Sé Reed: I think I’ve used this back in the day. This is an old thing, like Napster days, like Livewire, Limewire.

[00:36:32] Jason Cosper: Yeah you need to be able to speak FFmpeg and yeah, it’s a whole language unto itself.

[00:36:42] Jason Cosper: Tucker said, it may as well be regular expressions in

[00:36:45] Jason Tucker: Dash this, dash that. You end up with 900 different things you have to string along.

[00:36:51] Jason Cosper: You can tell FFmpeg, you, you give it a URL of some like playlist on like the BBC website, and it’ll download episodes of like the BBC radio shows for you. Like you don’t have to install like a special downloader. It’s a wild

[00:37:11] Sé Reed: But is this AI or is this just

[00:37:13] Jason Tucker: No, it’s This

[00:37:15] Sé Reed: This is just computers, right?

[00:37:16] Jason Tucker: your computer. It’s just

[00:37:18] Sé Reed: So really, what’s the difference between AI and computers? We’re talking gendered, really.

[00:37:22] Jason Cosper: know that FFmpeg can do the thing that I’m looking for.

[00:37:26] Jason Cosper: So this is what I’ve been using AI for is, Hey, how do I get FFmpeg to download something based off this playlist URL

[00:37:38] Sé Reed: it’s your Rosetta Stone. That’s how you’re using it.

[00:37:41] Jason Cosper: Exactly.

[00:37:42] Sé Reed: It’s like your, or your Philosopher’s Stone. Or maybe I’m using it as a Philosopher’s Stone and you’re using it as a Rosetta Stone.

[00:37:48] Jason Cosper: I’m basically using it to not have to spend half an hour reading a man page on the Unix command line. And just tell me the command I need to run so I can move on with my day.

[00:38:01] Sé Reed: But that’s exactly what this is. That’s exactly what I asked ChatGPT to do in this case, right?

[00:38:09] Jason Cosper: You’re, you need something that will

[00:38:12] Sé Reed: it yeah I’m deploying it in the long term on the internet as opposed to a little utility on my computer for one time.

[00:38:19] Jason Cosper: exactly.

[00:38:21] Sé Reed: So it needs to be able to withstand the waves of the ocean that is the internet.

[00:38:28] Sé Reed: My ship must be seaworthy.

[00:38:30] Jason Cosper: If my

[00:38:30] Jason Tucker: All the other code that you copied and pasted off of every other website on the internet. That’s the thing.

[00:38:35] Jason Cosper: Every everything else that you put into your themes functions dot PHP, it’s

[00:38:41] Sé Reed: I’ve never put anything weird in there. I’ve never done that. And no, I’ve never white screen to site doing that ever.

[00:38:48] Jason Cosper: no, not once,

[00:38:50] Jason Tucker: Nope. Nope.

[00:38:51] Sé Reed: Not last week, not the week before that. Hey, look, it’s staging sites, okay? And now I’ve got Playground to break too, so it’s not even a big deal. Break it, fix it, break it to fix it, or whatever, yeah. So

[00:39:06] Sé Reed: All right so what’s right then? We went in circles a few times here, but what’s right. So it’s okay to go take random code that’s a code off the internet and paste

[00:39:18] Sé Reed: or use it for FFmpeg.

[00:39:21] Jason Tucker: that could have been broken wrote it. Or you have a, you have code that was derived from a bunch of humans that was stolen off the internet and then put into a plugin that Sé just asked the robot to make,

[00:39:34] Sé Reed: Yeah the robot is just taking it off the internet anyway, right? In theory, it’s just using the docs and all this stuff.

[00:39:40] Jason Tucker: The copy and paste.

[00:39:42] Jason Cosper: You’re taking,

[00:39:44] Sé Reed: in, in between the WP beginners and the whatever other all the different stack exchanges, the code that I usually end up with, And in the past, let’s say, is really often the same code.

[00:39:57] Sé Reed: And that’s part of how I would compare it, right? Be like, oh, they’re saying this solution, they’re saying this solution, neither of those work, what if I combine this, sure, you’re taking money out of the hands of the people on Fiverr who will just use AI to write the code for you anyway. So you are taking money out of the marketplace and

[00:40:22] Sé Reed: Really, that’s the problem here. Is I am not propping, I’ve never used Fiverr for I’m if I’m gonna, I’m just, I Fiverr

[00:40:30] Jason Cosper: You are better for that. But now you are using the Fiverr that just makes a bunch of VCs money. Sorry.

[00:40:40] Jason Tucker: can do now is she can now make a Udemy course on how to do chat GPT coding, and then she can be the one that’s telling other people to do it.

[00:40:50] Sé Reed: No, dear God.

[00:40:52] Jason Tucker: into the

[00:40:53] Sé Reed: It’s a circle. It’s a circle of tech.

[00:40:58] Jason Tucker: Yeah. I don’t know what the, I don’t know what the the answer is here and I don’t think we can find that answer. It’s, it just,

[00:41:06] Sé Reed: But I do want to know, I’m just going to run this through PHP code sniffer and make sure I don’t have any open ends anywhere, basically, and then I think I’m going to use it.

[00:41:16] Jason Cosper: yeah. And I can read it. I know what it’s doing. I’m going to clean it up a little, maybe put a little some spacing. I,

[00:41:25] Jason Cosper: needed ChatGPT to write the code for you, you might actually need ChatGPT to help you set up PHP code sniffer because

[00:41:37] Sé Reed: were to write this myself, which I could, by the way, and I started to do, I was like, oh, let’s open a GitHub of this. I don’t know, sorry if you can hear my dog, because now I have a barking puppy. Sorry, everyone. I don’t know what to do about that yet, because it’s new. But in the old, I would just be like, Oh, I’m going to figure out how to do this.

[00:41:53] Sé Reed: And I’d be like what do I need? I need to how do I make my page taxonomy? And I’d go look that up. And then I cause I don’t keep it all up here, even though I’ve done it before. So I’d go look that up and then I’d go look up. All right I got to put a new screen in my admin.

[00:42:07] Sé Reed: That’s this, I vaguely remember. So I need to go look that up also. And then I’m just pulling stuff from what is the docs now and what’s the codecs?

[00:42:17]

[00:42:17] Sé Reed: So just asking the bot is doing something I know how to do. It’s just honestly, I wasn’t expecting the file. It really

[00:42:24] Jason Tucker: Yeah. But the whole thing, thanks for writing this code for me. Now I need you to test it.

[00:42:30] Jason Cosper: Yeah I was going to say,

[00:42:32] Jason Tucker: it’s like Volkswagen trying to do the the smog test, see. See if you can, it zipped it for you. And that was a surprise. Simon Wilson is saying compile this C code for me and write an SQLite extension. Like the next step, let’s see, say go on, keep doing this and see if it will run phpcs for you. I,

[00:43:03] Sé Reed: oh my God, that’s a great idea.

[00:43:06] Jason Tucker: Just load that bad boy up and type it

[00:43:08] Sé Reed: love this idea.

[00:43:09] Jason Cosper: Yeah, you just have to engineer the prompt, right? I would not trust it would do it myself, but I understand that not everybody has the same free time and priorities that I do.

[00:43:28] Sé Reed: Okay, so what you’re saying is you’re going to go look at my code and do a pull request if you see a problem?

[00:43:33] Jason Cosper: no.

[00:43:35] Sé Reed: Okay, I guess the bot will do it for me, so there you go.

[00:43:39] Jason Tucker: Yeah I think as long as Sé does a challenging and tells it that I need you to get a PHP code sniffer, the source code of it, and then compile it for Ruby and then have it run it against it. Then I’ll be impressed.

[00:43:55] Jason Cosper: Sure.

[00:43:56] Sé Reed: Anyone wants to, I’m so sorry about this dog, but if anyone wants to hop in the discord and come look at it, we’ll put

[00:44:01] Jason Tucker: Yeah, I’m

[00:44:02] Sé Reed: github in the show notes. Feel free to do a pull request and I really haven’t done a lot with the code. I don’t think I’ve done anything with the code except for fix the The naming and take out the initial space, so it’s literally from the robot’s mouth.

[00:44:18] Sé Reed: Feel free to go in there and we can build this together and make it nice. Sure, why not?

[00:44:24] Jason Tucker: We will all bring our robots to the party and they will all code for us.

[00:44:28] Sé Reed: Yeah, bring me your robot. Tell

[00:44:30] Jason Cosper: Ain’t nothing better. Robot party. Party.

[00:44:35] Sé Reed: Come be not chatbots with us on our channel. Oh, and see my puppy.

[00:44:40] Jason Tucker: Hey, thank you very much for the two of you to come hang out as always. And come hang out with us in our discord. Please do. It’s fun. We have a great time and people are really enjoying URL down below. Talk to y’all later. You have a good one. Here’s our outro. Oh, that outro that I talked about.

[00:45:06] Jason Tucker: com slash subscribe to this content. We’d really appreciate it. There’s plenty of ways you can listen to us and watch us and all that fun

[00:45:14] Sé Reed: swear I’ll get

[00:45:15] Jason Tucker: go find those places and go do that. And find us over on discord. Talk to y’all later.

Show More Show Less

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.