Welcome everyone to today's session from Learn WordPress. This is a fun one we've got today. This is the story of the custom post type lost in a world of pages brought to us by Alicia St. Rose. And I am going to hand it off to her to get started. So let me stop on my screen share. Okay, great. Take it away, Alicia. I can tell you a little bit about myself. Oh my goodness. Hold on a minute. Alrighty, I think I'm going to have to try that again. I'm using stage manager on my Mac. And so sometimes it does really interesting things when I try to share. Okay, here we go. All right, can you see my my screen? Yes. Oh, awesome. So let's just say a little bit about myself. Beyond what I said in the beginning just a little intro. I am a storyteller, I like to tell stories. And I find that sometimes people get the gist of something technical when it's an actual story. And you can relate. And sometimes when we talk about technical things like custom post types and, and other the block editor and things like that in WordPress, people wrap their head around this technical aspect of it. But in my line of work is which is web development, the content and the strategy and the structure before you ever build anything is what's important. So with that said, that's why I'm actually doing a real story here. I mean, when I say, once upon a time, it's not something that I use casually I actually legitimately mean we're going to be starting a fairy tale about a custom post type. I also wanted to you as we're doing the story to see if you can recognize this story happening on your website. Somehow that would be interesting. And also, I'm going to apologize ahead of time for the legibility on the slides but you don't have to worry about that part because I'm almost verbatim going to be reading what's on there. So with that said, let's get started with the story of a custom post type lost in a world of pages. So, once upon a time there was a program page in a nonprofit organization WordPress site. This program page existed in a world of other pages, but often felt lonely and confused about page contact page mission page mission statement page and a host of other pages seem satisfied with their lot. They were playing content that was solid necessary and very unique, and they were happy to show up in certain places and just stay put. The program page felt it needed more self expression and long to connect with the other program pages it would occasionally see amongst the growing world of pages. The program page made the bold decision to look for something better. So it quietly slipped away. The program page wondered about for some days in the dashboard territory, not knowing where it would end up until one day on a strange and mysterious path, it encountered an unusual page. This page was joyfully moving around practically doing some results. What are you the program page asked the rotating dancing page replied me, I'm a post. What's a post. I provide the latest content and when I'm done another post takes my place. And it's there 15 minutes of fame, then I get to relax in the archive but the other posts. What about you. I'm a page, the program page said sheepishly. Oh well sometimes I get mistaken for a page.  I posted a while flip multiple times in depth, definitely landed on the ground. The program pages heart quickened dynamic. Yeah dynamic, I like to move around, see more of the site. I also do the loop. That's fun. I can do that anywhere. A lot of times I loop around on the homepage. I like to show off my authors and my birthday if I want to. And some posts don't like to let the world know how old they are and that's silly. How will they know if they're still relevant. Anyway, I also have this cool badge, this cool category badge so I can further distinguish myself. And the post proudly pointed to the star shaped badge. Wow. You sound super happy about being a post at the program page. What's not to love? What's your topic? Topic. You know. What are you about? I'm new director takes the helm. Oh, I'm a program page. I'm telling the world about my volunteer outreach. Hmm. If you were a post, then we'd have to give you a programs badge. I've seen a few posts wearing that badge. They mentioned programs once. But that info is long buried now unless it got some SEO love. We're really chummy with SEO bots because we're so dynamic. It's very hard to connect with each. Oh, I've seen other program pages like me lost in the world of pages. And it's very hard to connect with each other. And it sounds like the posts get to hang out together. Yeah, we do. We have a big blog world, a whole blog world. The program page grew excited and inspired. I'm going to go back to the pages world, find other program pages, and bring them back to during the blog world and get a program badge. Sure, exclaimed the post. We'd love to have you. The program page hurried back to the page world. And though it took an enormous amount of scrolling, it was able to locate most of the program pages and convince them to journey over to the blog world. A crowd of 20 program pages gathered outside the blog world. New director post had some deflating news. There are so many of you. There will have to be a lot of cutting and pasting, republishing, et cetera. Very time consuming. I'm sorry. The site administrator in the sky is not getting paid enough. All hopes seemed lost until a great elder post called Hello World stepped forward. Long ago before many of you were ever published, as elders migrated here from Weebly World. Tragically, we migrated into the pages world. A special magician called post type switcher plugin transformed us instantly into post. I will try to summon it now by connecting to the infinite repository. All pages and posts were silent. As Hello World post concentrated and exclaimed, calling post type switcher activate now. With a flash, post type switcher appeared, a bold PTS across its folder, and it glanced at the stunned group of program pages. So you guys need to get in here, right? It asked, motioning toward the blog world. Okie dokie. In another flash, all program pages became posts, and the new director posts quickly bestowed them with program badges. They instantly felt more alive and started dancing and looping. The looping gave them an advantage they never had as pages. They could connect more easily because they all had the program badge, so if the program post needed to appear anywhere on the site, together they could. The program posts were overjoyed and happily danced all over the site for a while. But soon it became apparent that being a post had its own share of issues. One program post stopped showing up with the others, somehow its badge only read uncategorized. So it got hopelessly lost amongst the blog world, which was growing faster than the pages world. Some program posts realized that while they were still program posts, they also were very different and were requesting a second badge to further distinguish themselves. Another program post was dealing with a common troll and couldn't understand why it had comments at all. The troll was making the program look bad and unprofessional. Seeing this issue, the volunteer outreach program posts continued to show up with the blog world. The blog world is not the perfect fit we were seeking. We are lost in other ways. It feels like a tango of spaghetti with the extra badges, and it's too easy to forget to give us our badges. We are not all looping and dancing together like we should, and comments seem unnecessary. Hello world responded. I was afraid of this. Sometimes pages migrate to blog world because they think the category badges will fix everything. But just adding a category to a post that was once a page really isn't enough. But what can we do now pleaded the program post? Well, perhaps the post type switcher plugin can help. Hello world once again summoned the post type switcher plugin, and in a flash it was activated. After listening intently to the issues the program posts were having, post type switcher remarked, we need another type of magician. You see, I can only move you to post types that already exist. You need your own post type, just for you and the other program posts. The volunteer outreach post group, the volunteer outreach posts were excited. You mean we can put our own program world on the dashboard map? Exactly. Wait a minute. Let me go back. Exactly. Let me summon one of the custom post type plugins. There are many, but my favorite is custom post type UI. A grand flash blinded the program. The program post for a moment, and there before it's an amazing site, a giant golden plugin with CPT UI emblazoned on its folder, a multitude of twinkling sparks radiating around it. You called, boom, the plugin. The speechless program posts finally uttered, yes, can you help me and the other program posts find our own world? The CPT UI taking note of the word post responded, got all hung up in the blog world, did ya? That's no place for a self-respecting program. Your content is too important to get buried in the blog archive. Can you help? Well, of course. I got sticky buttons. Sticky buttons. Oh, that's great. I said the relieved program. If you don't mind me asking, what are all those twinkling lights? That's my special magic. I'm shining light on a better way to organize the site and the dashboard territory. Each spark is a custom post type world being formed in a WordPress site. If you look closely, you can see what I'm making. The program post focused on the sparks and eventually could make out words in each one as it flashed. Words like services and events, products, team members, recipes, locations, portfolio items. The sparks were never ending as the list went on and on. Wow, exclaimed the program post. Well, there's no end to what can be a custom post type world, remarked CPT UI. CPT UI went on to explain, custom post types are dynamic and they loop. They dance around all over the site. They get badges just like post except they're called taxonomy. Custom post types can show up and loop together with the same taxonomy badge. They can have multiple badges or no badges and never get lost in their world. I will create a custom, I will create a program custom post type and you and the other programs will have your own program world. The program post was incredulous. Really? There are more perks to being a custom post type.  Every time a program is added, it gets added to this archive. It's easier for the site administrator in the sky to find you all since you'll be gathered together in one place in the dashboard territory. Finally, CPT UI said, I think it's time to create program world. A new spark began to form and suddenly the word programs glowed with a brilliant light. The program world appeared in the dashboard territory. After post type switcher transformed the program post into true program custom post types, the programs gathered and entered their world. It was just as CPT UI had said, but there were even more pleasant surprises. For instance, when the programs got added to the main menu and all the site administrator in the sky had to do was link to an archive of already listed programs instead of building a page and how easy it was to loop programs in the query block anywhere on the website. Because program world was such a hit, staff world was formed. With the help of another magician, advanced custom fields, specific programs could be connected to staff members who ran them. So a staff member custom post type proudly displayed looping programs on its single view and the program custom post type could share the love and loop the connected staff member on its single view. Before long, more worlds popped up in the nonprofit organization WordPress sites dashboard territory. Resource world, case studies world, board members world and others gave the site the ability to loop important information whenever and wherever needed quickly and easily, thus creating a richer user experience. And the brave volunteer outreach program who started it all it danced and looped throughout the site and the volunteer numbers shot up astronomically. Oh my gosh, the end was skipped. Is actually just the beginning because it's time to free your custom post types from the world of pages. Someone's clapping. Gene is clapping. I just want to know people you can come clean. Where are what are they in your pages if you y'all if you everyone wants to like if you have questions that's fine too. But also if you if you want to be honest and say that you do have like maybe too many pages and something some worlds need to be created. I have a comment from John certified fresh 100% rotten tomatoes. This is on the edge of my seat the whole time. You guys are great I love you. I will I feel like I have to pass the favor out. Because no one should have to sit through a boring tech talk. I just can't be the person. Yeah, this is the first time I think that we've ever had a story time as one of our sessions so it's great. There was also plenty of time to because I didn't want to just be a story and you wonder off because a lot of things were mentioned in there the three plugins that I was talking about. Maybe we can go into details about, you know, when do you need to know you need a custom post type. You know, and that would be before you make the website. Jean has a question. So I'm making my screen.  We'll go into some questions so Jean asks, or says, I'm making a page with links to forms. Each form is on its own page. Would this be a candidate for posts. Yeah, custom post type yes I've done it already. I do it in a festival website. So the advantage of having a custom post type is that I'm going to be open and transparent. For years they were pages, and then I would always have to go digging through the pages to find them. So then just this year or maybe this last year I think it might have been just this year I decided, well I'm going to make a custom post type and I'm going to embed the formidable form on each one of those. And so now when I go into the dashboard, I just go over to applications or that that's what I named my custom post type, and I go there and they're all just listed they're just listed and I don't miss one and it's the wrong date on it and stuff you know what I mean. That's why that's that world of pages that your forms are lost. They need to go on the journey but they can skip the blog part. That's why I put that in the story most people head over there. Mm hmm. Yes. Any other questions. Yeah geniuses thank you. And one more comment from Miguel I have to pass this talk over to my students when this is on WordPress TV epic and very explanatory. Yeah, I mean, I feel like there's like essence to all the things that WordPress can do. And when it gets to esoteric people don't understand that they can grasp it so easy and then they can do the technical stuff later, because what needs to happen when you're planning a website or even if you get inherited if you inherit a website is that there's a strategy. This the most important thing that's the difference between a hot mess and a really efficient workable user friendly website. So a lot of this stuff would have happened when you sat down with your team, or you sat down before you made your website and you asked yourself about your own business, and you said well what I have services. So there's more than one. That's like already a post type. And when you realize that when you're making a post type you're now making an object that can move around and can have arguments in a loop. So now we're going to go a little technical, but now you understand where we're going from. So when you do that loop that the post is doing that's the original looper, but your custom post type does it too. There are arguments that you can put a whole bunch of them. And sometimes when you use something like generate blocks and the query loop block and you see all these weird things are asking you to choose. Those are the arguments that you would have written in code, like what taxonomy are we going to show, or how many posts are we going to show, or what the like the date on some of them are we going to alphabetize them, you know, things like that. And so when you make a custom post type, it takes more of the dynamic nature of a post than a page. A page is something that's almost like a statue of the old days. Okay, it's never supposed to move. It's all contact can be floating around and be at the top that at the bottom next week, you know what I mean it's going to be there there there. So if you have pages like your mission statement, or about, and things like that, then you want to make that a page, but then all of a sudden and now you're starting with we got the president, and then we have the secretary, and then we have. There is an urge to make pages for them but isn't that the people who work there, like the team. So now you got to think beyond. And so now what you will do is you'll make a team, and what their job position is is a category or taxonomy. So you're able to do that kind of thing with custom post types like give groupings to stop you can't do that with pages and gets really rough gets rough after a while with thousands of pages. Yeah, I could get to that point. Any points strategy and maximizing the possibilities of WordPress structure features. And thank you. Do we have any other questions, comments, anything about testing post types that we could. Yeah, does anybody want to see anything like we've got time because I can yeah we have some time I can probably spend open spin up my local or something. Yeah. If we want. Let me go and get, let me see we got only available with a plugin asked Robert. Wait which one. Robert asks, is it only available with a plugin. Oh no. In fact, that was painful for me to actually tell you guys to use. But I had to because it's a piece of code in the functions files and it looks so good showing up to talk to the little page that was a post or whatever. So no, the easiest way is to find the code and save it and keep slapping it into a plugin that you made yourself so it's not in your theme. So let me see here if I can. I can actually. Oh my gosh. Yeah Jean asks, can you show us your application CPT. Yeah, yeah, I can show you both. Let me. I think I've got a little playground site in low and I can install it and I can also show you what the code looks like to. All right. So, do I have anything crazy on my desktop. Because like there's so many windows open that I need to like close. Okay, let's see. Close that. And with that now, this is my zoom. Okay. And I think I'm done with the Spotify. All right. All right, so this top. So I've got local as anybody use local it's free. I think WP engine now is in charge of it. So you can download this and you can put up any sites and work on them on your computer. So that's really a good thing. And I think I've got this. This word camp example site when I was doing something. Oh, is it okay here? The dashboard territory. So, if we go to the plugins and get the see I should just tell my computer about to worry about these updates. Okay, so we're going to add new and we're going to do the custom post type. There's a bunch of different ones. Oh, we'll see. I have to already update. See that's like they're on it man, like they you can't use it with old versions of WordPress. I like that. That's something you do want to make sure that you are keeping your plugins up to date on your live sites, especially this is a site that is maybe I shouldn't have opened this site. This is a site that is a local so it's not like there's no threat for anyone coming in and hacking it. But if you're on a live site and you have 15 plugins and you're not updated, I would suggest that you go and update those. Let's try my blueprint instead. Let's see what happens here. Oh, I mean, so this is not the type of efficiency that I'm like, down with right now. So we got to find I might have to actually go to a real website that I work on with the clients and stuff but I don't want to do those it's going to be a WordPress TV, because it's there. So, so let's see if I can go into plugins here. Oh, okay. Okay. It's not letting me do that. All right, let's do something really crazy. Let's do Let's start and create a new site real quick. You can I can show you how quickly you can do this. So this is local creating a new site. I'm doing it. Learn WordPress. I continue. You want to use their preferred thing because that's you always want to develop kind of where WordPress is situated. And Okay, I'm going to do admin password, because this is so you can do stuff like that. Are there other people who are developing in the house.  That's why I gave you a story. This is the guy. This is my life right now. Oh my goodness. Yeah sounds like we have a few developers in here. Oh, good, good, good thing that is their life to like. Let me see the chat. I can like if I can look at the chat while I'm waiting. So, while this is doing that, why don't I show you something. Oh, hey, I can go in. Oh, what did I put? I think I just did. Does anybody remember what I put in there? Help me. I'm looking for you guys for some help here. I think I put lower case. Did I don't know. I'm scared. No, I didn't do obscure. I didn't make it totally did not. So we can actually have this happen. There we go. Today. So I didn't do that. So remove that. I know. I know you guys saw me. I was using the wrong password thing. Not good. Okay, so now if I go over the plugins, this is going to now we're going to do something. Gonna have something happen. And I put in custom. Post type new. I okay. It's right here. You can install it. And a million plus activation. So there's, there's a lot of people who are, who are, who do not have that fable happening on their. Their dashboard territory. So activate. And then. So you come in here and it says, um, add edit post types. And taxonomy is remember the taxonomy. So it's very important that you don't mix taxonomy and category. Now you can use it. Mix it up when you're talking about it. Like you can say, Hey, I have categories for my recipes. You can say that, but code wise, you're using a taxonomy. Because if you try to use categories and any kind of weird code. It's not going to work. Categories. C A T cat only works with blog post and T A X works with. With the custom post types. So if I go here and I want to add one, it could be right here. It says, what's the slug? And this is always part of the URL. Okay. It's going to be part of the URL when they, when they do the archive. So like I could do recipes. You could do S or not. And so right here, if I put move. I don't want to do that with the recipes. Recipes and then recipe. What this is doing is it's giving the words for all over the dashboard. So when you do pages, it'll say pages or page or there's a page in the trash.  So you add the post type.  And so that you can have all of those words in the right place. And then it's already. If you want to, okay, so if we added a new one, and this is the edit. Okay. So if you were to have more than one, you can use this dropdown and totally like scroll through them and do. And then there's a website that has about 15 custom post types. It's for a festival. And they have stages and musicians and all those different stuff. There's no way that would work with pages. There's no way. It would have been. Absolute loony bin. And so also when you're using custom post types, another thing about SEO and something called schema. If any mentor to that. It's like another level for SEO. It's when you put these schema tags on your content in your HTML, so that they show up in these rich formats in the search. It works way better if you've got post types and you're doing it that way. So you can group them. So all of this does, it just helps sit the foundation for all the other people that are going to help you. Another episode where it really worked really well for us at the festival. We were having a company build an app that could be used during the festival. And so all of the participants had to be imported into the app. So because they were all their own post type, we could use all in one export import and a spreadsheet. And it just imported directly into their app and they could put it in the music categories. They could put all that stuff in the right place. Now I want you to imagine if you had to do that same thing and then realize you went, oops, there are pages. You actually wouldn't do it. You just say, but we can't do that. Because there's just no way that that's a possibility that you could dig through all that. And it just makes these objects and these like bundles. It's so easy to manage. And then when you, you can just loop through them. And so like even on the festival, I mean, we can go and look at, if I go and look at, I guess it's the old one, we're going to go to the old musicians. This is what I was talking about with an archive. It's got two styles kind of merging because there's a new design this year. But this is the archive that is dynamically created because I made a musician post type. Now I had to come in and style it, but it's I'm only styling one little div area that's looping over and over again, these cards. And that's what the code is. And so I'm able to do that. And then I'm also able to target the taxonomies and the terms because these are objects because pages don't have categories. So that just gone. It's like, there's not much you can do there. So you really want to, to be honest, there should be more custom post types and blog posts on your website than pages. If you have a lot of information, because there's no way that all that's unique. And this like has to be one page. So, yeah, so this was cool. And then it was very easy to use Zapier. Because we zapped the musicians and other, like the performers who were more like aerialist and stuff. They zapped to workspaces on third party platforms. And I was able to do that very easy by saying just zap. I'm going to use the formidable on this form and this formidable has this amazing thing where you can target a post type and actually publish it. So I'm, we're not even posting these like people submit their application through the formidable form. And they hit submit and these are drafted until the curator says it's a go and then I'm coming and publish it. And of course rewrite their bio. Okay. Because they're musicians. They're not authors. Okay. So some of them are given a song lyrics for bios. It's kind of interesting. So anyway, that is. That's the, that's what that's the magic. That's the magic of having custom post types and, and you can do anything. It's like clay and it integrates with so many different things. So I hope I answered someone's question because I feel like I went all over the place because that's why I had to tell that story. Yeah. Just a quick little demo how, how you use it. I wanted to show you is there's a plugin, but this is what I do. Hmm. Yeah. I mentioned that she'd love a, a zap WP zoom session sometimes. Oh, that would be cool. So this is how I do it. I make a plugin, which. Oh my gosh. I showed some people heard that and was quaking in their boots. But all you need to do is go find a declaration, slap it in a file. Make sure the file and the folder have the same name. You don't have to, but it's best practice. Then upload it. It's a zip into your, your plugins and then turn it on and then start writing this put, if you put this code in that, that plugin, just putting that code in there. Then the Shazam that's what I use so that I can find the word and then just replace. So it's way faster than that plugin. That's why I do this. But if I showed you this first, you would have been like, no. So I found this code years ago and I just keep using it again and again. You know what I mean? So the code's not scary. People think it is, but it's really not that scary. When you get your pieces that worked. You keep them. So that's what, that's how I do it. And then there's tax on me part of that too. That's cool. Also asked if there is a CPT repository. Okay. What do you mean by that? Could you like, she says obviously each CPT is specific to each site, but seeing other examples could be helpful in building. Oh yeah. Oh, I see. I see what you're saying. Like, well. There's really, I mean, this guy's the limit. It's that. So let's, let's, let's, let's, we, how much time we got 15 minutes. Who asked the question? Oz. Oz. Yeah. Okay. So she must have an idea of something like, even if it's just a vague idea. So if you're working on a site, are you visited a site? Is there something that you could think of. You just put it in the chat. And we'll play, let's make a custom post type out of it. How would we do that? Yeah. So people, it's like most stuff in the chat, like. Teachers for a school district. Oh, awesome. Whoa, this is fun. So this is where you get the whiteboard out and you get the people on the team. You're like, so what happens when we're trying to contact the teachers and the school district and then people come in and they want to know what teachers working with what. And then people start going, uh, We have to go through all these pages and don't know where they are. So there's two custom post types there. Or there's a one custom post type and a cat and a taxonomy. So it depends on what is happening to the extent of like, what's happening with the school district too. So the teachers could be a custom post type and the school districts could be a custom post type. And then you can use a plugin like advanced custom fields, which has an object connection. Field and we'll show up where the teachers are and we'll show up where the school districts are. And then you can actually see. When you're on an edited school district, you can see which teachers are connected to it. And then when you're on the teacher editing her, you can see what school district she's connected to in the admin, but you can also like, there's like a plugin called by theme code pro. It's called theme code pro. I think and it's, and it gives you the code that you would need for the advanced custom fields. If you're going to put it in a template. And so what happens is those things loop on the page as well, because you've connected them. So there's, there's one way of doing it, depending on if the school district now would have to have different categories for the area it's at. You see what I'm saying? Like this is like a whole strategy. It's like everything is so organic and so infinite. It could be like any example. It's just tailor made for you. There's no, there's no like one size fits five people kind of thing. It's really about you being able to do exactly what you want because you have this ability to do these custom post types. So the teachers, if you were going to use it as the district as their category, then that then there would be a taxonomy page, just like a regular archive page shows up. The taxonomy page would be like LA school district. And then all the teachers who were had that category will just show up on that page. But it all depends on what you're going to be doing with the website and that information on the ground and on the site. Because I, the festival site that I'm working with. Yeah, the site's great, but there's a whole bunch of stuff happening that had, we had to shoot stuff to the app, going to like things, something called Podio, not for long, but and then we're like, this is so many things that happen.  And so anybody who's enterprise level that's using WordPress, there's a team of people doing this for them. They're definitely using this custom post type thing. Awesome. Thank you for your insight. Let's see, we've got one more question, I think. Yeah, Miguel is asked about if it's possible to find your code templates anywhere. Oh, yes. Wordpress developer. Do you guys have got to go there? You've got to go to, let me get in here. Watch this. Custom post type. Code. The first should be, yeah, here we go. Registering custom post type. You really want to go in here and do this because here's the thing. See, we recommend that you put custom post types in a plugin rather than a theme. The reason why they're saying that and that's a plugin thing I told you, you turn your theme off and change it to something else. Custom post types go away. So you don't want to do that. You want to make this plugin. So if you go here. Oh my gosh, lots of things are starting to change. They're going to tell you what each one of the labels and things mean. So it's not just that you want to copy the code and slap it somewhere. You actually want to, you want to see here. I want to find the actual. This doesn't actually look like the clean version that I normally find. Maybe we can put that in. I'll show you that link. When I find it for me for like a developer thing, because it has like that code in there, but it explains what each one of those is for, because I do have the code. I use it over and over again, but that there is definitely a danger of like finding code and just not picking it somewhere. You don't know what it's doing with something else. So, but by code works, it does, but I just want to dissuade people from just doing that because you got to know what the code is doing. Is then, oh my gosh, it could be a nightmare. And Miguel also mentioned generate WP that your, your approach is very similar to generate WP. Are you familiar with that? Oh yeah, that's the one where you ask. You want to post type and it generates the code for you.  I think I've been there before. Yeah. But the way I do it is because I just, I like, I have a plugin for the Lucidity Festival and there's like that piece of code is in there. And there's a way of doing the code without slapping it all in. You can actually do variables and stuff and just change names. But I didn't do it. I was lazy. But once you have like 17 of those in the file, you got to have search and replace has to be some unique word. So it shows them. That's a key. That's a tip. Find your code. The word. This was fun. Yeah. I'm glad about like the story went over. I was a little nervous. You did great. Well, thank you. Yeah. It was really, really insightful. And I hope that everyone else learned something new today. I know I definitely did Jean's comment.  Please come to my meetup. Yeah. It's not just me that makes it fun. There's a whole cadre of like 10 people that we roam around because it's like a geek gang or something. And we were, we welcome you to any of the meetups that we're at. There's, there's mine, which is the south central coast. It's your WordPress adventure group. There's one at Santa Cruz. My friend Eagle does. Eric Lukert does a whole bunch of them. Mike Pilly in Bakersfield. There's just so many. They're all online. Online. Those names. I know all those names. Oh my gosh. Yeah, I shared a link to your meetup in the, in the chat. And yeah. Could you, could you stop sharing your screen for a moment and we'll, we'll wrap up. It looks like we don't have any more questions. But if you do any more questions, you can get in touch. Folks can get in touch. I'm going to show the screen one more time. So here's Alicia's. Contact info. Twitter X, whatever you want to call it these days. And then drop it realist. And our website is WP with heart.com. Yes. And if you want to keep in touch with the training team and with learn WordPress, we can join the WordPress slack at chat.wordpress.org. And join the training channel. And that's where we do a lot of this work on educational resources for the community. And if you're interested in doing a presentation, I'd love to help you. And get that started. And my contact info is here on mastodon and linked in. And wanted to thank you all for learning with us. And thank you, Alicia for, for the story time and poking around on. On a test site with us. This was great. Thank you. Let's see if we have any last minute thoughts here. Yeah. Lots of gratitude and chat. So yeah, thank you everyone that. Thank you. That joined us today. And we'll get this recording up on WordPress TV. Within the next day or so. Awesome. Yeah. Thank you, everyone. Thanks.


Hello, everyone. Welcome to Kukong. I am very happy to have this opportunity to talk here. Today, my topic is Metcalfe, Clawcalfe, and Neary-Ether, depth DB into Calfe Match. Before my sharing, I will introduce myself. My name is Stephen. You also can call me Chen Wen. It's okay. I am a maintainer and the founder of the Calfe Match project. And present, I'm working at Pincap and also my Calfe and Neary and the Calfe Match journey also started in this company. Maybe some people are not familiar with this company. Pincap is an open source infrastructure company. This company has open source many well-known and grass tools such as TADP, a distributed base, and also include the CMCF Graduated Projects, TAKB, and also included Calfe Match and so on. And present, I work here at Pincap and this company as a touch leader of the Calfe and Neary team and also practice Calfe and Neary on TADP and TADP cloud to improve their stability and so on. And next, as most people know, and this IT service has become more and more complex because they maybe use the different distributed systems and then maybe use the clonative architecture and so on. And clonative architecture improves the scalability and flexibility of the applications. But they also involves many challenges such as they maybe have more unstable network request and they maybe have more disk failures and they have more power failures and so on and all kind of failures. Failures, false false can happen anytime, anywhere, anywhere. So many forms can't be avoided. We can't avoid many forms such as the unstable network and the disk failures and so on. And just the writing test and the debugging for this issue is very hard. When we develop distributed database TADP we also have the same issues and we want to find a solution to improve the distributed base stability. So finally we find Calfe and Neary. And here is official definitions of the Calfe and Neary. It says Calfe and Neary is about breaking things in controlling the environment and the source of well-planned experiments in order to build conditions in your application to withstand top-land conditions. And by these definitions the keyword is experiments. This requires users when they do chaos experiments they can work hard to figure out the cause of the problems and to find the potential of the problems rather than just conducting a simple test. The other keyword is controlled and well-planned because chaos and Neary is not about breaking things randomly without a purpose. Because we use ChaosMatch to find the potential problems rather than to use it to affect the normal use of the systems, normal use of the applications and so on. And the beginning of my journey of the chaos and Neary, I also made some problems because in our testing environments we have many different clusters we have many different versions that is we all need to test them and I find that it's very difficult for me to measure and schedule so many chaos experiments and also we find it's also difficult to inject some low-level failures on this database because some many tools such as PC and tables, fields and so on these tools couldn't be used in communities environment directly. So we need a tool that can provide some low levels for injection such as systems and kernel levels and so on. And then times about three years ago I researched many open source tools but no one was able to achieve this goal. So finally we decided to develop these tools by ourselves and also when Neary is ChaosMatch. What is ChaosMatch? The answer is actually changes all the time and it is relented to the evolution of the ChaosMatch. And the beginning of the ChaosMatch journey our ChaosMatch goal was simple we just want to have a full injection and measurement tools that can run well and these tools can provide the low level for injections and we just use this to test TADB. After we did this for a while we realized that these tools can be general tools. So we open sourced it and Neary is ChaosMatch. After we open sourced ChaosMatch it immediately attracts the attention of the community and we receive many feedback and also receive many requirements and with the help and the push of the community ChaosMatch gradually evolves into powerful Chaos and Neary platforms including use of use web UI to design the Chaos scenarios you can use it to define your application data check-ins and also we have more various times of the full injections and so on. During this journey ChaosMatch also join the CNCF and in this year we also accept patients projects of the CNCF and the projects and the projects ChaosMatch also and the goal of the ChaosMatch is clear and our make Chaos and Neary is our goal and also this goal also directs the fortress evolution of the ChaosMatch and also directs the ChaosMatch version 1 and directs the ChaosMatch version 2 and present ChaosMatch is also very young and we have many steps to achieve this goal. Next let's dig deep into ChaosMatch and here this is the ChaosMatch architecture and you can see you can use the ChaosMatch and the Kubernetes plugin because ChaosMatch all ChaosTimes and workflow times objects is just designed and use the CRD to define these ChaosTimes in such as protocols, network chaos, stress chaos, hour chaos workflow and so on and if you are familiar with the Kubernetes and you're familiar with the operator mode you will be familiar with ChaosMatch and then because ChaosMatch is very the architecture is very easy and very simple you can see that ChaosMatch includes four components the first one is ChaosDashboard it's a web UI for user to manage and obduse ChaosDashboard and the second is ChaosControlManger it is the core components and it's used to schedule and to manage the ChaosDashboard and also this component also includes native workflow engines and the ChaosDemon is executing its components and it will be drawn in a demon set and will be deployed in every Kubernetes nodes and this is ChaosD, ChaosD is sent to the ChaosDemon it's also executing its components but these components will be deployed on a lot of Kubernetes nodes and it rejects these components to the ChaosMatch and then you can use this to by this way you can define you can inject failures on not a Kubernetes target and Kubernetes targets on a unified dashboard and this sorry this picture shows the whole workflow of the ChaosMatch and you can see then this workflow can be dependent in three parts and here is the first part and here is the second part and here is the third part in the first part it's about the user and users can use the Kuba apply this command or use a ChaosDash board to input to apply your Chaos experiments or workflows or Chaos workflows and all is okay and if you define your Chaos experiments in YAM files you can use KubaApply and if you want to use WebUI you can use ChaosDashboard you just input all the forms and then they will be submit this Chaos experiment to the Kubernetes API server and then ChaosControlManger will be received what's the event from this Kubernetes API server and maybe we will receive the creatives or update or deliver the events when ChaosControlManger should receive the event and then the process and schedule the Chaos experiments and then we will set the injection requirement to the ChaosDemon I have introduced this the ChaosDemon is the cutest component and it will be run in Demonset and it will be deployed in each Kubernetes nodes and then this component ChaosDemon will receive the requirement from the ChaosControlManger and then there will be into the target port some network name space or into the PID name space and if your Chaos experiments is a network Chaos API ChaosDemon will go into the the target port network name space and to communicate with your network interface such as to set the TC rulers, set the IP table rulers and so on if your Chaos experiments is a stress chaos ChaosDemon will be into your target port PID name space and then we will be stressed we will start stressNG programs to burn your CPU, to burn your memories and so on ChaosMage defines multiple CRD times based on different four times I also introduced this and the previous slides such as this is a portable port chaos and the network chaos and so on stress chaos overflow physical machine chaos and so on and here is a simple example of the port chaos this defines it in YAM files and it is a very simple this Chaos experiments simulates the randomized TEEQ report will be killed and here level selectors will select all TEEQ reports with this level and the mode this represents the Chaos experiment will select one random list from the output then means the selectors and here this is the best Chaos object if you want to define some schedule rulers for Chaos experiments you can use the schedule object to define this and it is rules this schedule object it likes the schedule rules it likes the cron job in communities and this schedule defines the port chaos experiments with cron rules and this object will create a new port chaos update every five minutes and when you apply this Chaos experiments we can check the result on Chaos dashboard and also you can check the results on your application monitors and like this in this the monitor of the applications like this you can find this will apply this schedule object you will find the QPS will be dropped to will be dropped and then instead it is returned to normal and there will be this behavior will be happens every five minutes next Chaos mesh also include a negative workflow engine this is decided for Chaos mesh and also used to design the Chaos scenarios to measure a group of the Chaos experiments and the standard checks of the application here is also an example of the workflow object which this this meta list contains three parts so names the entries the entries is the entries of the whole workflow and also include a template a set of the templates and the present Chaos mesh spot five times of templates in Serials, Parallels and Chaos, Suspects and Task these five times of the templates Serials and Parallels templates and the rooms to run the real-time real task and the Chaos templates is used to define the specific Chaos action this will be translated to different Chaos times such as such as protocols and network calls and so on Task templates is used to define the custom tasks such as we can use this to define the standard check tasks and so on and here is a very simple very simple examples and Chaos mesh and this workflow is very simple and it is used for you to define your Chaos workflow and you also can define your workflow on Chaos dashboard you can define your workflows in your Jamf files you also can define your workflow on Chaos dashboard by the forms and so on and Chaos mesh also defines the multiple selectors for users to define the scope of the carry experiments including a namespace selector, level selector annotation selector, node selector and so on this selector represents the scope of the carry experiments is the pose with this level and also and you also can see these levels on Chaos dashboard and here you can see the namespace levels selectors, level selectors and notation level selectors and so on Next, security is another key key point of the Chaos mesh For Chaos mesh, we implement authorization mechanism specs on Kubernetes RBSC users can create a specific service account with limited authorizations such as you can create the main rules you can create a viewer rules and you can use and then use the tokens and then this token was generated by the service account and then you can use the token to lock into Chaos dashboard and then you will use these users and this user will have the limited authorizations and by this way you can protect some important namespace and you can use this to limit the scope of the Chaos experiments Next, demo time For most of the user can try Chaos mesh either early and quickly Chaos mesh website provides interactive tutorials and these tutorials is contributed by Chaos mesh community members and also is built on Codacodas and this time I will use the interactive tutorial to show this demo Okay, let's start this demo First, you can we need to open our Chaos mesh website You can see then you can find the interactive tutorials on Chaos mesh website You can click here to start these tutorials Yeah, you can see then this tutorial will introduce some information about Chaos mesh and next you can click here to start this demo Yeah, maybe they may need some time to prepare some environment And in this demo a test community cluster will be corrected by Codacoda And here you can wait a moment And here is the step of these two tutorials You may have six steps You can follow these tutorials to start your first Chaos experiments And here is a share command You can click it This command will show the community cluster information You can click the community cluster and here you can click this command to check the ham version Because we need to use the ham to install Chaos mesh on this community cluster Yeah, you can see then the ham version is version 3 Next, continue When the community cluster is prepared we need to install Chaos mesh And here we use the ham to install Chaos mesh And also we recommend to use the ham to install Chaos mesh First one, we add the repo And then we set the version And here we use the latest versions on version 2.1.5 We click here to install Chaos mesh Wait a moment This command will be installed Chaos mesh on community cluster Maybe we need some time because we will put the image from the ham And we use the command to check the status of Chaos mesh Yeah, you can see then Maybe we need some time to make sure all Chaos mesh components is running And you can see then we include Chaos controller managers and Chaos steamer and Chaos dashboard Wait a moment Yeah, you can see then All components is running and before you continue the next step you need to make sure all components are running Yeah, and here you also when you have installed Chaos mesh you can clean this link It's always the same link to access Chaos mesh dashboard You can see Wait a moment Maybe we need some time to access network Maybe we need some time to access network Maybe someone with my network Wait a moment Let's check the status All components is running And here you can see the Chaos mesh dashboard is open And we can access this by this link And here the first we will have an overview of the Chaos mesh And it includes how many experiments how many schedule or workflow is running And here is a workflow You can clean here to create a new workflow And here you can clean here to create a new schedule object And here you can create a single Chaos experiments and all is okay For the same time We use the YAM file to define the Chaos experiments to start this demo And here You also can read this document to learn how to use Chaos mesh And Chaos mesh includes what times Chaos times and so on And continue, just continue In this demo We also need a target application And for this demo I will install an application We call it a web show And this application is a web UI You can see the network delay from this port to the system And this network delay will be recorded on this application And first, and this command This command to install this application Yeah, and if you apply the web show deployment, this application is wrong in deployment and here is to get to install the service before we can access this application And here you use this command to check if the application is status And we need to make sure the application is running and then to continue the next steps Maybe it needs some time Because this command needs to impose an image from the dock hub Maybe the dock hub image needs some time to pull And here Wait a moment Yeah, you can see that The web show application is running And also you can see this And also this you can click here to open So to access this application You can see Yeah, you can see that This application will record the network delay between the application port to the from the application port to the hub system You can see that the latency is about 1 millisecond And then next I will start network calls to inject the 10 millisecond And here you can see this You can click here to check the network calls definitions You can see then this network calls This jump file defines network calls And the action is delay This selector is web show And the latency is 10 millisecond and this will inject 10 millisecond on our target application And also you can use this selector to make sure this selector will be selected on the target port We can make sure this This selector will be selected on the web show port And here for the same time we can just use to apply this jump file to communities cluster And then they will be inject the network delay on our target application You can see then This network calls will be created And then you can this command to check this This network calls has been created on communities cluster And also you can check the results on the web show UI You can see this The network delay turns to 10 millisecond And this represents the calc experiment is working And also You also can add notations on your calc experiment object to stop your calc injection And to pause this And here you can click this This command will be add notations Notations is web show network calc delay and end this Notations is a network object And the annotation is this experiments calc match then stop on ORG And here is annotation And you can check the result You can see there's the normal The network delay is turned to normal And you can check the results and check the calc experiments and to observe the calc experiments on calc dashboard You can see then This calc experiment is paused And also you can click here to get the detailed information And here we will show the events about this calc experiment on calc dashboard And here is the definition Here is the basis information And also you can study it And also you can activate it And all is OK And if you want to study it You also can use that to remove the annotations You can use this one This one will remove the annotation from the calc object And you can check the result You can see then the network calc will be restarted and has been restarted by the command And also you can just use a code delete and to delete this network calc You can see check the result on the web show application This one will delay and turn to normal And also you can check the result You can check the calc experiments on calc dashboard All is OK You can see then the network calc has been deleted When you delete the the experiments, you delete the schedule of workflows that will be achieved here You can also have other demos about the schedule object and also about the protocols demos and so on If you are interested about calc match, you can try this It's very easy and very simple You just open calc match website and follow the interactive tutorials And you can try calc match And also you can start your first calc experiments And it's very cool OK, next let's turn to our slides OK, next is about future plans In the future, we will continue to focus on ease of use of the ability such as we plan to provide more comprehensive data inspection mechanisms And we will provide a more simple and more powerful report And also we improve the ability by the event logs and metrics and so on About security We also plan to develop a new component to first recover calc experiments which are used to program the calc experiments And also we also plan to provide a plugin to expand complex calc times Users can use this plugin to develop their own calc times such as ruby mq calc, ready calc and so on We also will build a calc hub for users to share their own calc times and to share their workflow Next is about the cost of the new users on calc experiments Next is about calc match communities And maybe some research you can find on our communities And I think calc match website is a good plan for users to start your calc in earrings You can find the document on our calc match website You can also guide the user to how to install calc match and how to quickly start their own calc experiments We also have interactive tutorials for you to create your experiments online and in calc match to quickly experiment calc match I also show how to use these tutorials on my demo You can also find some user calc on calc match blog And here is also our calc match YouTube channel You can find some We have a monthly community meetings We will be uploading the videos on this channel You can find the meetings record And you can find this You also can join the calc match channel The whole community is very active here You can find me And also you can find many community members And if you have any questions you can discuss with us on this channel And all community members are very happy to discuss and share their calc match journey with you And here is our github github And we also welcome you to create an issue on the calc match github If you want to If you have some feature requests You also can create an issue on this github And also you can just submit a pool request to help us to improve this project Calc match is still young I welcome to participate in the evolution of the calc match And I welcome all people to join our communities Okay And it's all my sharing Thanks very much And also thanks for your time


Please be seated. I'm delighted that all of you are here today. First the distinguished leaders of the Grace Congressional Caucus, Chairman Bo Boater and Co-Chairman Buddy Romer and Gordon Humphrey. Also representatives from associations united to cut federal spending, 38 trade organizations led by Wayne Smith who advised the caucus, and lastly former members of the Grace Commission and of another of my favorite organizations, Citizens Against Government Waste, co-chaired by Peter Grace and Jack Anderson. You know Peter every time you're here I start thinking about how the Grace contingent keeps growing in numbers, in power, and in influence. Believe me, nothing delights me more because we need a people's lobby here in Washington. All of you are here today because of your deep concern about a problem in government that's easy to talk about in terms of saving billions of dollars a year. The war against waste and efficiency is worth waging on just these grounds alone, but I know your involvement goes even beyond this. The people who came before us in this nation put a heavy emphasis on what is today almost a forgotten virtue. I remember back in Dixon, Illinois, when I was growing up it was called thriftiness. Thriftiness was a quality appreciated as a kind of signal about the maturity and judgment of a person or institution, an indication that deeper values were there. Some of you in business have noticed that when a company gets in trouble there are more serious problems than simple inefficiency, all sorts of projects and activities that are wasteful or marginal, and a neglect of those products or services that made the firm successful in the first place. Well, government is no different, and as the people here know better than most, the federal government was headed a few years ago in much the same direction. It was neglecting essential tasks like protecting our nation's security abroad and upholding the law at home, while it built gigantic bureaucracies to handle all sorts of problems, problems it was neither competent nor intended to handle. I used to use an example in some of my mashed potato circuit days about the town that decided that they would have better traffic safety if they raised the height of their traffic signs and various warning signs from five feet above the ground to seven feet above the ground, and then the federal government stepped in and said they had a department to come in and help them, and their plan was to lower the streets two feet. Well, then these special interests became involved. Pretty soon the way to a prospering political career was to vote for higher appropriations and for grand new spending schemes that appealed to this or that voting block. And if this pattern of putting politics over country sounds familiar, that's because it is. Historians are frequently seen in this bread and circuses climate, the signs of government in decline and a nation in decay. Faith in our democratic system and without that faith democracy simply can't work was being undermined. As James Madison said, it's the gradual and silent encroachments of governments not sudden revolutions that proved to be the threat to freedom. So it was the average citizen who harbored enormous feelings of resentment toward government and an enormous sense of frustration. They believed the only voices that were heard in this city were those of the organized lobbies or special interests, not the taxpayers. Those of you associated with the Grace Commission have forthrightly and without apologies helped change all of this. You've shown that citizens from every walk of life could come to the Capitol and not only make their voices heard, but persuade and, yes, push and prod government to change its ways. The Grace Commission stood back and took a look at government, concluded that the federal government had lost its moorings, came up with concrete proposals on how to recover those moorings. But, as I know Peter believes, the most important part of the job is upon us, making sure that the Grace Commission is not remembered as just another government commission and that its recommendations don't become just another pile of reports gathering dust in the Library of Congress, in short implementing as many recommendations as possible. And on this point, I've just come from a meeting with the Domestic Policy Council. I've received a final report that shows we are going forward with over 80 percent as a matter of fact, 83 percent of the Commission's recommendations. Many have already been implemented, others included in the 86 budget, and a number would be proposed in the 87 budget. Even with the recommendations deferred at this time, we have every intention of trying to implement as many of them as possible in the future. I've asked Jim Miller to have OMB continue to monitor our progress and report to me periodically through the Domestic Policy Council. I also thank to Peter Grace at the glows of the meeting and let me do so now again publicly. Peter, I can think of few Americans who have done more to make the people's voice heard in Washington. You shook this city up. You put the issue of waste and inefficiency front and center on the public agenda. And I'm grateful to you, and so is America. But now we must work together to get your recommendations through the Congress, and that's what this people's lobby of yours is all about. It's why the congressional caucus leaders who are here today are so important. Imagine the courage of these members of Congress who would dare to associate themselves with such a clear-cut effort to thwart the special interests. And I want to thank each one of them who are here today. In carrying on this battle, you're going to need the help of the largest pressure group of all, the taxpayers. And that's why the multi-million dollar nonpartisan campaign by the Advertising Council is so important in helping to inform and educate the taxpayers. And finally, that's why the work of the trade associations and citizens against government waste are also so vital, vital in the battle against budget deficits, and vital to the strength and resiliency of the democratic system and public confidence in our government. So I want to congratulate you on all that you've done. You know, I've mentioned this to you before, but I can well remember a time when waste and inefficiency were thought of as issues without any political appeal. Issues that stirred little interest in the media or among the seers and sayers of Washington. Well, all of that has changed. Government management, mismanagement, I should say, is a hot story, and the Grace Commission has played a key role in bringing the change about. In fact, I want you to know the vigor with which you've pursued this fight has inspired me on other closely related matters. And once again, the issue is your issue, making government responsive to the people. First, I must warn the Congress that their unwillingness to deal with the debt ceiling and to take responsible action on the deficit is creating a large and unnecessary problem. We're running up against the possibility that we may have to disinvest the Social Security Trust Fund, shortchanging that trust fund of accumulated interest, all because of the inexcusable dithering and delay in meeting the responsibilities about raising the debt ceiling. So please help us convince them, present company accepted, they're convinced, that the time for political gamesmanship was over long ago. All of us know the importance of an effective resolution this year to our deficit problem. And I happen to think the Graham Rudman Hollings proposal is an excellent one. This proposal is linked closely to what you're doing, because if we can adopt the plan, we can maintain our commitment to a strong defense while providing a framework for the grace reforms and a device for flushing out waste and inefficiency. Congress must not fail the people on this. And second, I think some of you know that we have a tax reform plan on the agenda this fall. It's a plan I'm certain has the support of the American people. Right now, Congress is in deliberation on this matter, and that deliberative process is something I deeply respect. I will await its outcome attentively. But let me say today, I believe that the essential items of tax reform, as I've outlined them, have the support of the American people. And I want action on this plan. I want action this year, and so do the people. Believe me, if necessary, I'm prepared to spend a lot more time with Congress at Christmas this year than either of us originally anticipated. Well, let me conclude by again thanking Peter Grace and all those thousands of patriotic Americans who gave unstintingly the other time their efforts and their talents to help the government. And let me assure you that we, for our part, will not rest in the fight to have their recommendations implemented. So again, thank all of you. God bless you.


And coach on the second quarter, but especially the third quarter on what we know you're seeing as far as the issues on the defensive side I thought the second quarter was turnovers, you know Unforced turnovers kicking the ball over the gym up 15 Lack of focus Get them right back in the game third quarter I mean 66 points in the paint tonight 72 points in the second half it's just Pride, you know no matter what defense you're in you got to sit down and guard someone and we didn't guard tonight That was that was my follow-up Expounding on that, you know how much of what we're seeing out there defensively just comes down to personal pride with the matchup I mean that's that's gotta be it. I mean You can get beat you can have a hard time guarding someone but I Didn't I didn't sense the pride. I didn't sense the competitive fire in the second half Now I thought it was a lack of respect and we just got to learn from this and get better