Podcast audio transcript

DrupalEasy Podcast S16E4 - Kevin Quillen - Drupal 10 Development Cookbook

Audio transcript

[0:00] Music.

[0:07] Welcome back to the DrupalEasy Podcast. This is season 16 episode number four.
My name is Mike Anello A K A ultimike.
And in today's episode, I'll be talking with Kevin Quillan about a book.
He recently co-authored with Matt Gloin drupal 10 development cookbook.
We'll also take a few minutes to talk about the open A I slash chat GPT integration module that Kevin is a maintainer of before we get to all that.
Let me tell you about DrupalEasy's long form drupal training courses.
Our beginner focused Drupal Career Online is now in its 12th year and we've graduated hundreds of students in that time frame.
We think of the DCO as holistic drupal training.
Not only do we teach you drupal but also many of the best practice tools and skills related to being a successful professional drupal developer.
This class meets twice a week for 12 weeks. Starting on February 12th.
You can learn more at drupaleasy.com/dco.
Our newest long form drupal training course is called Professional Module Development.
Now, we actually offer this course in two versions, a full version and a light version, the full version meets twice a week for 15 weeks and the light version meets twice a week for nine weeks.
We go deep into services and dependency injection as well as lots of automated tests, plugins and several of drupal core's API S class begins January 30th.
Learn more at drupaleasy.com/pmd.

[1:29] Music.

[1:34] Welcome, Kevin Quillen to the DrupalEasy Podcast. How are you today?
I'm great. How are you? Good, good, good. We wanted to have you on the podcast to talk about sort of a recent book.
It's been out for almost a year now, I guess February of 2023 called drupal 10 Development Cookbook that you co-wrote with Matt Glaman.

[1:53] This is just one of those things that's been on my radar for a while and I wanted to talk to you about it and now I finally have the opportunity.
So thanks for coming on and thanks for making the time.
So I know that you have been on drupal.org for over 15 years.
So you're a, you're a long time drupal like myself and you're quite the prolific contributor in all areas.
I'll have a link to your profile in the show notes as well. You're also, let's see.
I have principal developer slash principal drupal Practice Lead at Valer.

[2:27] Did I say Valer correctly? Yes, you're correct.
All right, fantastic. You want to tell us about, you know, Valer and what you do for Vale a little bit more, maybe.
Sure. Uh Val is a full service digi digital agency.
We're based out of Boston, Massachusetts. We primarily deal with nonprofits, higher ed health care industry and various other clients.
I've been with them almost almost 10 years now.
But as you mentioned, been working with drupal since version five, a very long time.
Now, how did you get into drupal in the first place? Like what's your, what's your drupal origin story?
That's, you know, another long conversation. I'll try to keep it, keep it short.
But way, way back in the day in a different lifetime, we were building in the mid two thousands proprietary software with Cold Fusion.
Remembers the language Cold Fusion. We had AC MS and a commerce application and AC RM application.
And over time, it just got harder and harder to, you know, maintain the code base with a small amount of staff as we gained, gain more clients and gain more projects and trying to do and develop the product as supporting.
At the same time, it was really difficult and I think it was like 2006, maybe open source platforms were kind of a new, a new thing.
It wasn't really a known thing like it is today. So.

[3:40] I, I think there was one weekend where I had to sit down and build a feature that was, it's been common in systems like drupal for, for many years.
Um I just kind of took a look out there and thought, you know, has anybody solved this problem before?
I think we're really trying to build a menu or something very, very trivial and started thinking, well, what if we just shifted our efforts to an established platform that has a community again, a very new idea at the time to, take kind of the burden off of us from doing the same, basically building the same feature and the same task on every single project that was hard to maintain.
It was just slightly different.
So every single project you had to know, have context over the project and who worked on it and who developed it and the code was just different.
It was, it was crazy. So we spent a month kind of trialing the idea of, can we build a site in drupal? We didn't know anything about drupal.
We didn't know anything about PHP or the Linux hosting, et cetera because it's all confusion and Java and made the transition.
And one of our very first drupal projects was for the Dogfish head craft brewery, which is a local at the time, it was a local brewery here. And now they're very well known nationally.
They were built on drupal five and then quickly redone on drupal Six because the upgrade was very simple back then.
And then at that point, we started just getting rid of cold fusion very, very rapidly because the productivity gains and using an established system like drupal were very, very clear.
We didn't have to redo the or you know, someone to come in and be an expert in a wizz wig to know how to implement that or how to implement content like content types was basically the big selling point for me seeing how easy it was.

[5:09] With CCK and a system to go through and point and click and create your content model and add your fields was in 2006 was mind blowing.
And it's still a killer feature of, of drupal today.
How easy it is to do that without writing any code that just kick started the whole thing when I've been inside of drupal ever since.
Yeah, your origin story is not all that different from mine and not all that different from a lot of other folks that we've interviewed on the podcast over the years that, Kind of joined the community in the drupal four drupal five drupal six days.
It's just we were all, you know, building custom content management systems over and over and over again for our clients.
And until we had enough and, you know, eventually found drupal.

[5:51] How did you find your way to writing a book?
So I've been approached in the past by pack publishing over the years and I never really had, I didn't have the time to kind of dedicate to that, but it was always something on my, on my list of, of life goals to do it at least to write a book because I certainly put out plenty of blog articles over the years that when they came to me, I think last year, somewhere in the summer, they asked if I wanted to participate in helping complete this drupal 10 book.
And when I asked them who the co-author was. And they said Matt Lama and I said, I'm, I'm, I'm 100%.
I mean, Matt's, of course, a legend in the community and he puts out very, very well written, very thoughtful pieces and great contribution work.
So I wanted to be a part of that in any anyway, that I could and I thought that would be a great first step.
I wouldn't have to, you know, write, produce an entire book.
I can do the, just the half of it be a good starting point for me to step into that because the timeline was very tight.
So I figured, you know, I could probably do the required amount of content in the, in the dates they had given me as opposed to writing the full, full thing by that point.
So I said I'll do it and it was, it was a great opportunity.

[6:53] What was the state of the book when you joined the project? Were just chapters missing or were you like? What was the?
Yeah. So, so Matt had it's a continuation of the previous drupal Cookbooks, but of course, a lot has changed since eight and even in some ways nine to, to produce this new book.
So the majority of the chapters were there, but we had to redo some of the initial ones and then replace kind of the latter ones with the all new stuff that's all new in drupal 10 and some different topics.
So he had, he had rewritten and updated all uh all the parts for the beginning of the book um on those initial topics and refresh it for 10.
And then I stepped in to finish the last half of the book.
I think he, there were some obligations going on. That's why I came in to kind of help, help out there so that the chapters already preselect.
Fortunately, the chapters that I was doing is something we do like on every single project.
So that was another benefit to me of, you know, first time writing a book, it happened to be content. I was very, very, very well familiar with and able to produce that pretty quickly.
Yeah, I found, you know, having that confidence when you're, when you're just getting something rolling is super important.
How about the, uh, the pattern of the book is, you know, it's not like.

[7:58] I don't say it's not like a lot of other programming books, but it's definitely, it has an overriding structure, like every section has a cookbook style structure of, you know, getting ready.
How do you actually do it? How does it work, you know, then going a little bit deeper, I think that was in uh the uh there's a, there's more section.
Did you find it difficult to kind of adhere to that structure?
Maybe, maybe at first it was a different kind of a different uh approach to writing for me.
I don't, of course write, you know, articles, blog articles like that for, for le or my own site.
And for me growing up, I've been around the block long enough that the gold standard in any technical manual for me is always the o'reilly programming books on, on any subject that you ever produced.
So that was my mindset going into it and I had to kind of.

[8:40] You know, take a couple of steps back and find ways of fitting in the things you want to say into this framework, which is consistent through the book.
So I had to take a step back and say, OK, for these chapters, I need to think back through actual projects that we have done and think of a problem scenario and then set that up for the reader.
Because the other thing that I've learned from all those technical books of the past is for me anyway, I learned better when the example is a real world problem, a scenario to attack and that just kind of a generic, generic scenario.
So the chapters on migration or the especially the chapters about approaching testing or Multilingual content, putting that putting that kind of real world framing on it.
I think tracks better with people who may be encountering the same things on their projects.
So 11 thing I thought was interesting, the word development is right in the title.
But this isn't a book that's only for developers by any stretch because there's a lot of site building, there's a lot of contributed module configuration stuff in there was that, was that the plan all along um is, is the title just.

[9:44] You know, drupal Development, you know, within the community.
I think a lot of times when folks say that they're a developer, they're talking about coding as opposed to site building.
So kind of what was the plan regarding contributed modules, you know, specifically?
Yeah, I I think there was kind of a multifaceted approach here.
I think one was the to be inclusive of people who and also encouraging like people to say they're a developer, they may not be, it depends on their definition, right?
So people think developers and they think they're a complete expert in all things coding.
And that's when they see that they get a little apprehensive to even approaching either reading material or tutorials.
They think it's going to be a heavy amount of coding. So by starting off the book and I think it just continues all the way through by taking like a site builder aspect to it up front and then say, OK, if you wanted to tinker with it a little bit, here are some code examples to do that just to show how easy it is to even on the advanced topics, how to kind of jump in and make modifications or alterations.
And once, because this was true for me, way back in drupal five, once you've done that first.
Little bit of modification, whether it's a form alter or adding a menu item, hook, then your confidence starts to build and the more confidence you have, in, you know, taking a hold of code and just jumping in and doing it for people who aren't, wouldn't call themselves a developer.
They suddenly get on the track to being one. And then the book definitely applies to people across the entire spectrum, whether you're new to any of this or you're a seasoned expert in in drupal development. I think there's something to learn there for everyone.

[11:10] Yeah, that's one thing I definitely wanted to, to, you know, bring to the forefront that this is definitely not a book just for coders.
There's a lot of really good information on various contributed modules.
And I don't even like it's almost like a little bit of an eclectic list of contributor modules.
You know, there's the, the four I wrote down are workspaces, views, obviously views layout builder core module as well.
But then the charts module I I was kind of surprised to see examples on that.

[11:39] In there, but all that being said, there's still plenty of code in this book, I mean, there's, there's a whole chapter. I think it's a whole chapter.
Maybe it's a whole section of multiple chapters on automated testing.
Uh, go ahead. Yeah, I was gonna say the, the, it's kind of hard to avoid coding.
You're talking about automated testing.
But that, that was a chapter. I think I really wanted to get in that book because for me going back to not even just various drupal books but other technical books in general is very, very hard to find.
Information on automated testing. And not just most books will say, here's how you do it, but there's no like the, the intuition and the why and kind of the what they would call the art of testing is kind of lacking there.
So when I, and this was true for me many years ago, it was like, I would write tests, but I don't know how it's like, well, I can show you how but it doesn't give you that kind of the insight of when knowing when to do it and how to do it and what makes kind of a valuable test.
So we tried to include, that's the one area of the book that kind of breaks that framework that we talked about about. Because I, I really wanted to get those.

[12:39] I think it's two or three pages into that chapter, like explaining why you want to do this and what each kind of test is to help folks understand where it's applicable and where you'd want to use that.
So that was very important for me to get in there because I can remember back when, before I did any of it, it was really hard to find any information other than the standard books.
That's I think there's like a Kent Beck book on test driven development and a couple of other books.
And I can tell you the methodology, but then you want to apply that to put it in like a drupal sense of like within the C MS.
What kind of test am I looking at? How can I write a test? And then I think the chapter takes you through like the unit test, which is your very basic, very small code only test all the way through a functional browser test.
I think we're using um starting with vanilla code and working into a field format or and I think a migration plug in to kind of demonstrate how it all works.
So it's kind of rolls it up into a full example by the end of the chapter.
But that was for me very important to get in there because it's a very critical aspect of talking about people in the path to development, becoming, you know, getting better at what you do.
And again, when you put tests against the work that you've done and they pass, that builds the internal confidence too, you know, for a fact that your code is working instead of kind of guessing and saying, well, you know, it was working yesterday, maybe not today.
And that just there's so many hours wasted there for people trying to debug.

[13:54] What, what is the problem? Is it the problem is it my code is it contributed code? Is it someone else's code? It just eliminates all that fuss.
So that was a very important thing for me to add to the book.
Yeah, I find it's really difficult to communicate when to write a test and which kind of test, you know, because all projects are going to have a timeline and a budget and very few projects are ever going to achieve anything close to 100% test coverage, right?
And it takes a special client to understand the value of the tests and to pay for those tests to be written.

[14:28] So understanding all of that and then being able to, you know, sell to clients that, hey, it would make sense for us to spend a day and a half writing a functional test for this bit because it's especially tricky or a a kernel test for this.
And I was really impressed that, you know, the chapter includes everything from unit tests all the way up through night Watch Js tests as well.
So it's a pretty comprehensive chapter I was pretty impressed by. Yeah. There's.

[14:57] Just, you know, we're from the same area back in the day. It was, if it wasn't 100% test coverage, then you didn't have test coverage at all.
That's for core, that's a very good principle to follow.
But on the day to day projects that we do my mantra is more like what's the critical path here?
What's, what parts of the code are the most are mission critical to this application?
The, the superficial items, we don't need to spend a ton of time like fretting over writing automated tests for it.
But if you're writing like single sign on that has custom behaviors after there's someone who is logged in or you're working with cookies.
And then it was things that take Q A personnel a very long time to do manually and you have to do it every single deployment, every single regression.
That's like when you start to see, OK, here's where the value lies for this test. And over here, maybe we don't need to do this right now.
We can do this later, but absolutely want to do this upfront because the more code you add over time, if it's the, the less tests you have, the harder it gets to go back through and figure out.

[15:52] Where the problems are. So, in terms of, you know, you'll hear pushback from managerial types that, oh, there's no budget for this.
There's no hours for this. But I usually go rogue and say, ok, I'm gonna pad my estimate a little bit because I know I'm going to come back and put this in just for my own sanity and it's gonna pay off later because if you don't do it and it breaks later, you're gonna do it anyway.
You're gonna spend two or three times on a time trying to figure out what the problem is, what the remediation is versus having it up front. Exactly. Yeah.
All right. So I have one nit pick I have with this book and I was astounded that I did not see and granted I did not read every single word.
I, I read some chapters and skimmed other chapters.

[16:29] You did not, well, I shouldn't say you, you and Matt did not use Drush generate for any of the examples that, that I noticed was, and I'm just curious why, I mean, that, for me that's a go to tool for, for writing modules or plugins or whatever Right.
I think if I could go back or if we go back, that's probably something we would add towards the end of the book, the, the, the structure of the chapters, we didn't really have a ton of flexibility and we couldn't really add additional sections.
But in like from my perspective, initially, the goal in the way that I learned, you know, how to transition into drupal, it was I, I did all the code.
Like I didn't, I knew Dr generate existed, I knew drupal console existed, but I didn't want to kind of generate and then not understand.

[17:15] How like how a controller works or how the new entity definition codes work or how to define a field format or so if we could go back and add that to the end of the book, like, OK, now that you know, all these things here are tools that can accelerate you through.
Once you understand how these things are constructed, it, I just think we just ran out of time and didn't have enough enough leeway with the publisher.
Like we need to add this and add that and add the other because they were sticking to a schedule.
But yeah, generally, especially in the age of like artificial intelligence and people generating code.
My my only uh advice there is to if you don't know it, try to do it hands on first and then once you have a good grasp of how it works.
How it works and it's all wired together, then come back through to trust, generate and all the generational tools because you'll know by looking at it that it's correct or not.
Yeah, I have a very similar spiel talking about git, like, don't worry about using a, a gooey with git learn git on the command line first understand what it's doing and then move on to a, you know, a pretty interface if you want.
So there's an entire chapter on working with custom entities written in code.

[18:19] And this is kind of, this is one of those things where when I'm working on a project with, with some of our folks, some of our contractors.
Inevitably someone will say, oh, we should just make a custom, you know, a custom entity for that.
And I'm, for some reason, I'm always the first one to push back on it because I feel like it's a, there's a lot of code there, there's a lot of effort that goes into creating a custom Eddy and code.
And I'm curious just from, it doesn't really have as much to do with the book.
But, you know, you, you, or, and, or Matt wrote a chapter on it.
So what are like some use cases that use that you've seen where it makes sense to do a custom entity and code?
I guess it's a very, it's been a popular question since drupal seven.
I guess when the entity api was, was first introduced like automated testing.
It's one of those things that it comes with experience, like you'll, you'll get to a point where, you know, when and where to do that.
I think drupal commerce is a great example of that where they have commerce orders products, payments and everything, everything lives as its own thing.
But to make it, in my opinion, very, very simple, if you have data that is not considered publishable content, let's say like publication content, which I would consider nodes.

[19:28] We've had projects where we had to deal with kind of a pseudo reservation booking system for university where it showed different libraries across the campus and the different rooms that they had available.
And that was all managed entirely in drupal. But we decided to treat those as custom entities.
So you know, one benefit there immediately is it doesn't, if you create it as a content type on a node, it's automatically opted into everything that nodes are opted into.
So you remember to go back through and take it out of your site maps, take it out of your views, take it out of your search, take it out of, you know, your role permissions.
But if you do a custom entity, it's the other way around, it has to come back through and opt into everything that you want to do.
So if you don't want, if you want to protect that data and keep it isolated away, custom entity is the way to go.
Um And I think drupal coverage is probably the best example of that of why you'd want to do that.
Um The separation is great and in drupal.

[20:20] 89 and 10 that creating a custom entity doesn't remove anything from you.
It still has the ability to be field, still can create bundles, it still can be used in views.
So it's just, it's just a matter of knowing exactly when and where those cases arise in my opinion.
Like we, we faced it a couple of times this year and we've ultimately opted to say, you know, this is, this is a content type.
It was like right online, this is a, this is a content type, but if it had a couple more requirements, we probably go a custom entity route with that knowing all the different pieces that that can happen when you could just create, you know, one off, one off content type for whatever reason.
Yeah, I rarely go with custom entities just because the amount of code that's necessary can really balloon on that.
So I've, I'm always looking for ways to avoid it.
And honestly, it's a lot of times like you said, it has to do with access control of data.
So I end up doing using things like eck the the construction kit or even paragraphs which you know, do not have a, a path to every, you know, paragraph entity.
They always have to be embedded in something.
So I was curious to, just to pick your brain on that a little bit.
There's also chapters, entire chapters on working with uh fors and, and, and plugins custom, any types I mentioned.

[21:34] So let me ask you one more question about the book and we, I just interviewed and I don't know if that episode of the podcast ever come up before after this one.
But uh Luca Luso, who wrote the uh the drupal 10 Femen book recently, and I asked him a very similar question.
So if imagine there's a developer who's comfortable with basic drupal module development skills, hook form, alter, you know, maybe a custom block plug in something like that.

[22:01] If they're looking to up their, their drupal development skills, their, their, their module development skills, I should say, what are the next two or three things that you think they should learn?
Like where should they focus their time once they kind of know the absolute, you know, maybe the routes and controllers and stuff as well.
I think there's probably two paths there depending on the interests of that individual.
One of course, if you're trying to become, you know, up your skills across the board, trying to becoming a poor contributor is a way to do that.
Whether it's begin beginner to expert is, is one way to get because you get exposed to so many different kinds of problems that you and maybe not see on a, on a normal day to day project.
That's a big first step though. That's a big for, you know, you wouldn't recommend like, you know, maybe a well used or well maintained contrib module.
That's the, that's the second path. So it clearly easier to also get started on the, on the contributed side of things, pick a, pick a module that you like or find one that may need a little bit of updates and, and, and start chipping in on, on whatever whatever it needs.
That's the second path is the one I chose way back when cause it, you just start working with code, you get to experience different.

[23:07] You get exposure to people in the community and working together with people and, and finding the best path forward for that.
And when it all comes together and it works, it's, it's a great feeling whether or not using it on a production project could just be something you do on the side.
It's the point is the more code that you write and the more or the more documentation that you write and more people that you work with, it's, it's all experience in the end.
You don't have to wait for the project to come in the door first before you start to work on it.
So that's, that's an answer I didn't expect.
II I kind of expected that you would, you would suggest like.

[23:37] You know, learn how to use PHP stan or you learn the, you know, learn like how to create a custom form in drupal or, or something like that.
But you want kind of the route of it's more, almost more holistic approach, just get involved somewhere that you can learn from existing code and, and other folks in the community.
Oh I thought, I thought for someone who already had some initial um grounding in drupal.
So, I mean, yeah, like form alter, like I call it the gateway drug in drupal.
That's always like the first easiest thing to do that you can see the result immediately and then it's like, oh, wow, this is, this is really cool and then you understand the hook system that everything behaves that way and it's just a matter of which parts you want to modify and then kind of working from there.
But sure, like, yeah, like just working with as much code as possible of any kind, any kind of functionality.
It's just a great way to, to build your, your skills as a developer.
No, I, I'd like your answer though because if, if you can get involved in an issue, queue in, in a community project, you're gonna learn, you're gonna learn a lot, right.
There's gonna be issues there that, you know, you're gonna have to dig into and, you know, maybe they weren't written well.
So you're gonna have to try and figure out what they're talking about, maybe reproduce an air and you're gonna be learning no matter what.
So basically exposing yourself to things you don't, whether it's drupal or PHP or not, just to get, just get involved in different technologies.
Like I like to dabble in my limited free time and go and rust and try to contribute to D DEV and just different projects to just try to have.

[25:03] Either a voice or impact on those, those different things and learn at the same time.
So you do reach a point where you, you, you can't really go too much, too far.
You hit that kind of plateau and it's time to look around at different technologies and then even sometimes you can find ideas and skills that you didn't know about in those different platforms and then bring them back into drupal, which I think we've seen with 89 and 10. Sure. Yeah, absolutely.

[25:27] So you mentioned rush generate was something that if you have more time, you might want to sneak, go back in time and sneak stuff in.
Was there anything else that any other topics that, you know, were kind of on the radar that you didn't have time to get in?
Oh, there's, there's two the first with the test. I wanted to do like another, I could do another 20 or 30 pages with drupal test traits as like the, the icing on the cake of.

[25:50] And if people haven't used it, it, it's a way to do functional browser testing using the existing database, you know, to like kind of scaffold out all the mock data and all the modules, it uses the database in place to run a test.
It's was a lifesaver for me on a project last year where it was a real crunch and I didn't have time to go through and like, I, I need a test but I didn't have time to go through and scaffold out the, the functional browser requirements because it's a pretty hefty site.
But you put drupal test traits in it's the same process that uses Selenium and Chrome.
It's a headless browser orchestrator and it goes through the tests such as like it was a normal functional test.
That that is a, it's a phenomenal tool. I think, you know, most schweitz men, of course, it's another legend in the community behind that and behind Drush and other great projects.
That's I could write so much about that because it's, it's another, I think if I did do it again because it's like if you don't understand testing.
If you pick that first and you set it up, it's kind of easier to see what's happening because you don't have to deal with the scaffolding code part of writing tests which a lot of people get hung up on.
You can just kind of get in and start poking around and say, oh, I can use PHP to control browser. That could be 80% of your test.
Yeah. In 10 test. Yeah.

[26:56] And the other thing is if we could do it again, knowing what I know.
Now I do an entire chapter on the EC A module, the event condition action module at the probably near the end of like to bring it all together because it incorporates everything um that you've may have done as a developer or maybe as a site builder for plugins and integrations and actions and rules and everything like that. Yeah, that's great that you mentioned that. That's it.
You know, I've, but it's a, it's a great module. It's I'm definitely using it on most of, of my site builds these days.

[27:26] All right. So uh let's switch gears real quick. I have a couple of minutes left with you, you are one of the maintainers, the main maintainer of the open A I chat GP T integration module, correct?
So for, you know, for those listeners who haven't played with it yet, it basically integrates pretty well with drupal on an entity, a edit pages where it can suggest tags or summary or title.

[27:51] So what's, I don't know if you've been working on it lately, but kind of what's the, you know, as fast as A I is moving these days?
Do you have any plans for that module evolving in the, in the short term?
Yeah, we, we recently gave a demonstration of this module at Aqua Engage two weeks ago up in Boston and that the response to this module has been well beyond what I ever expected, this really just start as I was just curious of like, you know, what is, what is chat GP T?
And is there anything to this and what would it look like in AC MS?
And it kind of just, it took off out of nowhere?
So A I is moving so fast, it's probably faster than a job group ecosystem.
If I can make a tiny joke there, it's, it's really, really difficult to keep up with what's changing every day and the start ups that are coming and going to know where it has legs, right?
So we, we've tried to focus just from, you know, from a content manager's perspective, in drupal, like where would that benefit them the most?
And if you're familiar with the module, everyone loves the CC integration because it's like plugged right in and kind of maybe the best demonstration of, oh look, there's stuff happening on the screen and I can go to a field and say, you know, what's the seo version of this, a better seo version of this or does this is this too graphic for different audiences?
Or it'll tell you all kinds of things that really just started as a proof of concept that people are using in production today.
But earlier this month, we, we released the final.

[29:13] Final two, final three end points really of speech to text, you can upload an audio file or video and it will give you a transcript of that, that file.
It will also transcribe that file into different, I believe, different languages if you wanted to.
And the text, text to speech obviously is is the verse, you can upload a text document and we will give you an audio file spoken back by A I of that of that content.
And then we integrated the dolly employ, which is the image generation endpoint with open A I as a screen in drupal.
And then once I got to that point, we also gave me the opportunity to create like an internal API wrapper on top of the open A I client wrapper.
And then we could step back and we made an integration with EC A.
That was the last release we did. So yeah, that's the one I actually wanted to bring up.

[29:56] So you can go through and create an EC A model. And then there's a couple of actions in there for interacting with chat GP T like the completions, the chats, the text to speech. And speech to text.
And we're working on the moderation, content moderation is a condition which I'm going back and forth with Jurgen on how the best do that and implement other things as we go along.
So that, that's kind of like how we're going to or how I would see we democratize access to A I because right now, the only, the only people that can really interface with it are developers or you have to use the chat GP T site.
But once it's in EC A, then we don't have to write all the code to facilitate the myriad of ways people would want to integrate A I with us.
We just give them the power to create the workflow themselves.
As long as the API wrapper works great, then it's kind of, you know, the sky is the limit.
Yeah, it's, it's amazing. I mean, we could do, we could do a whole podcast episode on that, but I did, I didn't want to let that go before, before I let you go.
So I do appreciate the update on that.
So, Kevin, thank you very much for your time today. I appreciate it.
I hope everyone has a chance to check out the drupal 10 development cookbook.
The link will be in the show notes and yeah, thank you very much for your time.
Kevin. Thank you for having me.
Thanks for listening to the DrupalEasy podcast. Don't forget to check out all of our long form drupal training courses at drupaleasy.com and stay tuned for the next episode of the DrupalEasy Podcast.

[31:20] Music.

February 05, 2024