WordCamp Canada was amazing! ๐Ÿ”— **Source:** [WordCamp Canada was amazing!](https://www.youtube.com/watch?v=-eXb6GIOxrQ) > [!note]+ Document Notes > tags: [wordpress, wordcamp-canada, livestream] > author: [MISSING] > source: [MISSING] > reference: https://www.youtube.com/watch?v=-eXb6GIOxrQ > date created: 2024-12-22 12:00 > > # ๐Ÿท๏ธ Title: WordCamp Canada was amazing! > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Continue working on icon block for WordPress 7.0 โ€” won't make it to 6.9 due to missing API dependencies #wordpress - [H2] Set up Wordland posting tool from Dave Winer โ€” direct posting to WordPress demo shown at WordCamp #tools - [H3] Check out Australian Soccer League interactivity API demo โ€” real-world production example #interactivity ## ๐Ÿงญ Table of Contents - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#๏ธ-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [๐Ÿ“Š Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [โœ… Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ”— References - [WordCamp Canada](https://canada.wordcamp.org/) - [Wordland](https://wordland.social) ## ๐Ÿ“ Summary - A livestream recap of WordCamp Canada held in Ottawa at Carlton University - The streamer shares experiences from speaking at the event and technical updates - Key highlights include Dave Winer's keynote on Wordland, Matt Mullenweg's talk, and various WordPress development topics - Technical discussion about the Hello Dolly plugin controversy and code quality - Demonstration of Studio blueprints for local WordPress development setup ## ๐Ÿ“– Main Content This livestream provides a comprehensive recap of WordCamp Canada, held at Carlton University in Ottawa. The speaker discusses their positive experience at the event, including two talks they delivered on WordPress block development. The event featured notable speakers including Dave Winer (inventor of RSS and podcasting) who introduced Wordland, and Matt Mullenweg who addressed community questions. A significant portion covers the Hello Dolly plugin debate between Paul and Matt regarding code quality and translation support, with live code analysis to settle the dispute. The stream also demonstrates new Studio features for blueprint-based WordPress site setup. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=0) โ€” [H1] Stream Setup and WordCamp Canada Introduction - Key idea: Streamer started early by mistake with new computer setup issues - Evidence: "I jumped on stream 15 minutes early because my timer was wrong" #### โฑ๏ธ [02:30](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=150) โ€” [H2] Icon Block Update - Not Making WordPress 6.9 - Key idea: Icon block development delayed due to missing dependencies - Evidence: "The icon block that I've been working on is not going to make it into 6.9... we have some dependencies that just don't exist" #### โฑ๏ธ [04:15](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=255) โ€” [H1] WordCamp Canada Venue and Transportation - Key idea: Carlton University was an excellent venue with easy transit access - Evidence: "Carlton U was a fantastic venue... took the OC Transpo, the train from my hotel every morning" #### โฑ๏ธ [05:45](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=345) โ€” [H2] Meeting Constantine Overland on Transit - Key idea: Serendipitous meeting with Automattic colleague on the train - Evidence: "I ran into Constantine overland from Automatic... he's the tallest person I think on the planet" #### โฑ๏ธ [08:30](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=510) โ€” [H2] Super Troopers Movie Reference Tangent - Key idea: Maple syrup gift triggered discussion of comedy movie - Evidence: "It's maple syrup from Canada... spawned the phrase 'I am all that is man'" #### โฑ๏ธ [12:00](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=720) โ€” [H1] Troy's Speaker Management Excellence - Key idea: Speaker lead handled visa issues and scheduling smoothly - Evidence: "Troy did an amazing job... rearranged the schedule, made it all work" #### โฑ๏ธ [14:20](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=860) โ€” [H1] Block Developer Cookbook Workshop Sessions - Key idea: Delivered two talks including condensed block development workshop - Evidence: "I did two talks there... the block developer cookbook which was so much fun" #### โฑ๏ธ [18:45](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=1125) โ€” [H2] Bandy Sport Discovery - Key idea: Chat introduced Swedish ice sport similar to hockey on massive rinks - Evidence: "Bandy is the most insane variation of ice hockey you'll ever see... 11 players... size of a football pitch" #### โฑ๏ธ [25:30](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=1530) โ€” [H1] Dave Winer's Keynote and Wordland Demo - Key idea: RSS/podcasting inventor demonstrated new WordPress posting tool - Evidence: "Dave Winer did a keynote... introduced this thing called Wordland... posting right to WordPress" #### โฑ๏ธ [28:15](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=1695) โ€” [H2] Dave Winer's Quotable Moments - Key idea: Keynote featured memorable quotes about WordPress ecosystem - Evidence: "I don't call it automatic... I call it WordPress" and "you don't need the open part of open web" #### โฑ๏ธ [30:00](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=1800) โ€” [H1] Matt Mullenweg's Appearance and Q&A - Key idea: WordPress founder attended and took community questions - Evidence: "Everyone was very excited that Matt was able to show up" #### โฑ๏ธ [32:45](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=1965) โ€” [H1] Hello Dolly Plugin Controversy Analysis - Key idea: Paul questioned plugin's code quality while Matt defended it - Evidence: "Should it be removed? You're asking the wrong guy... Tell me why it's not good code" #### โฑ๏ธ [38:20](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=2300) โ€” [H2] Live Code Review of Hello Dolly Translation - Key idea: Examined actual plugin code to settle translation dispute - Evidence: "They're both right... this is translated, but these don't look like they are actually translated" #### โฑ๏ธ [42:10](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=2530) โ€” [H2] Hello Dolly's Educational Value - Key idea: Plugin demonstrates WordPress action/filter system simplicity - Evidence: "Shows just how easy it is to extend WordPress... 106 lines and you're injecting it all over the place" #### โฑ๏ธ [45:30](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=2730) โ€” [H1] Studio Blueprints Feature Demo - Key idea: New blueprint system for automated WordPress site setup - Evidence: "You can use blueprints to spin up new sites... sharing setup stuff... spin up local environments" #### โฑ๏ธ [52:15](https://www.youtube.com/watch?v=-eXb6GIOxrQ?t=3135) โ€” [H2] Australian Soccer League Interactivity API Example - Key idea: Real-world production example of WordPress Interactivity API - Evidence: "Built entirely using the interactivity API... pretty sophisticated... ton of data" ## ๐Ÿ“š References - [WordCamp Canada](https://canada.wordcamp.org/) - [Wordland](https://wordland.social) - [Hello Dolly Plugin](https://wordpress.org/plugins/hello-dolly/) - [WordPress Interactivity API](https://developer.wordpress.org/block-editor/reference-guides/interactivity-api/) ## ๐Ÿ—ฃ๏ธ Paraphrase - WordCamp Canada in Ottawa was exceptionally well-organized with Carlton University providing an excellent venue and easy transit access - The speaker delivered two successful presentations on WordPress block development, including a condensed workshop format that worked well for time constraints - Notable keynotes included Dave Winer introducing Wordland (a WordPress posting tool) and Matt Mullenweg addressing community questions including the Hello Dolly plugin debate - Technical demonstrations showed new Studio blueprint features for automated local development setup and real-world Interactivity API implementations ## ๐Ÿ“ฐ Newsletter WordCamp Canada 2024 showcased the vibrant WordPress community with excellent organization at Carlton University in Ottawa. Key highlights included Dave Winer's introduction of Wordland, a streamlined WordPress posting tool, and productive discussions about core development priorities. The event featured innovative workshop formats during contributor day, helping bridge the gap between newcomers and experienced contributors. The Hello Dolly plugin sparked interesting technical discussions about code quality, translation support, and educational value in demonstrating WordPress's extensibility. Meanwhile, exciting developments in local development workflows were demonstrated through Studio's new blueprint system, making it easier to share and reproduce development environments. Resources: [Learn WordPress](https://learn.wordpress.org/), [Developer Docs](https://developer.wordpress.org/), [WP-CLI](https://wp-cli.org/) ## โœ… Action Items #### WordPress - Core: Continue icon block development for 7.0 release, pending API dependencies - Core Program Team: Evaluate Hello Dolly plugin description updates for historical context - Community: Expand workshop tracks at contributor days based on Canada success - Training: Document blueprint-based local development workflows - Documentation: Create examples repository for Interactivity API real-world usage #### DevRel - Developer advocacy: Collect and showcase production Interactivity API examples - Education: Develop condensed workshop formats like "Ain't Nobody Got Time for That" - Developer experience: Improve block development onboarding with blueprints - Community management: Support speaker coordination best practices from WordCamps ## ๐Ÿงช Hypotheses - Workshop tracks during contributor days improve newcomer engagement and retention - Condensed technical workshops work better than full-day sessions for busy developers - Blueprint-based development setup reduces onboarding friction for WordPress development - Real-world Interactivity API examples accelerate adoption more than toy demos ### ๐Ÿ“Š Methodology - Survey contributor day attendees on workshop format preferences and effectiveness - Track icon block development progress against API dependency availability - Measure blueprint adoption rates and setup time comparisons - Collect production Interactivity API case studies and implementation patterns ### โ“ Questions - How can WordPress core better communicate API roadmaps for dependent features? - What workshop formats work best for different skill levels in the WordPress community? - Should historical plugins like Hello Dolly have updated context in their descriptions? ### ๐Ÿ”ฎ Future Research - Best practices for hybrid contributor day programming with workshops and hands-on work - Blueprint ecosystem development for specialized WordPress development scenarios - Interactivity API performance characteristics in large-scale applications ### ๐Ÿ’ก Implications - Practice: Blueprint workflows can standardize development environment setup - Education: Condensed workshop formats may improve knowledge transfer efficiency - Community: Workshop tracks during contributor days could become standard practice - Development: Real-world Interactivity API examples needed for broader adoption ### ๐Ÿง  Learning Styles Assessment Reading level estimate: 8th Grade (conversational livestream format) #### ๐Ÿ‘€ Visual learners - Present: Live code demonstrations, slide presentations, website walkthroughs - Improve: Screenshot galleries of WordCamp highlights, visual timeline of events #### ๐Ÿ”Š Aural learners - Present: Full livestream audio with natural speaking patterns - Improve: Chapter markers for key topics, audio-only podcast version #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Extensive explanations, analogies, technical definitions in context - Improve: Glossary of technical terms, comparison charts #### ๐Ÿงฉ Kinesthetic learners - Present: Live coding, blueprint setup demonstration, hands-on plugin analysis - Improve: Step-by-step guides for demonstrated workflows #### ๐Ÿง  Logical learners - Present: Code analysis, systematic workshop structure, cause-effect explanations - Improve: Flowcharts of development processes, decision trees #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Community interaction via chat, event networking stories - Improve: Discussion prompts, community follow-up activities #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Individual code exploration, personal project examples - Improve: Self-paced learning checkpoints, reflection prompts #### ๐ŸŒฟ Naturalistic learners - Present: Organic conversation flow, natural community connections - Improve: Ecosystem thinking about WordPress community interconnections ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Structured conversation with clear topics and transitions - Improve: Provide transcript with proper headings and landmarks #### Keyboard navigation - Present: N/A for video content - Improve: Interactive transcript with keyboard navigation #### Contrast and readability - Present: Clear visual presentation during screen sharing - Improve: High contrast mode for code demonstrations #### Text resizing and reflow - Present: Scalable video player controls - Improve: Responsive transcript layout #### Media and captions - Present: Full audio track with natural speech - Improve: Professional captions, downloadable transcript #### Forms and interactions - Present: N/A for livestream format - Improve: Accessible chat replay interface ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: Canadian perspective, international community connections - Improve: Broader geographical representation in examples #### Inclusive language - Present: Generally inclusive technical language - Improve: Avoid sports analogies that may not translate globally #### Neurodiversity support - Present: Natural pacing with topic transitions - Improve: Content warnings for rapid topic changes, structured timestamps #### Representation - Present: Recognition of diverse community contributors - Improve: Highlight more diverse speaker examples and contributions #### Psychological safety - Present: Respectful discussion of technical disagreements - Improve: Content warnings for potentially controversial topics ### โœ… Logical Validity #### Strong reasoning - Deductive strength: Hello Dolly code analysis follows logical examination of translation claims - Inductive strength: WordCamp success patterns generalized from specific observations - Causal reasoning: Links between workshop formats and attendee engagement well-supported - Analogical strength: Comparisons between development workflows are appropriate #### Fallacies - Hasty generalization: Concluding all workshops should be condensed based on one event - Appeal to authority: Some deference to Matt's opinions without independent verification #### Tone of voice - Overall tone: Enthusiastic, conversational, technically informed with appropriate humor ### ๐Ÿ›ก๏ธ DARVO Analysis - Deny: No significant denial patterns observed - Attack: No attacks on accusers present - Reverse victim/offender: Not applicable to technical content - Emotional cues and rhetoric: Positive enthusiasm throughout, respectful disagreement handling ## ๐ŸŽฏ Conclusion WordCamp Canada demonstrated the strength of the WordPress community through excellent organization, innovative programming, and productive technical discussions. The event's success with workshop tracks during contributor day suggests a valuable format for future WordCamps. Key technical developments like Studio blueprints and real-world Interactivity API examples point toward continued evolution in WordPress development workflows. The respectful handling of the Hello Dolly debate shows healthy community <!-- deep-read:sections end --> ## ๐Ÿ“บ Video ![](https://www.youtube.com/watch?v=-eXb6GIOxrQ) --- # ๐Ÿ“„ Full Transcript *Auto-generated from YouTube captions ยท timestamps roughly every 30 seconds ยท [watch on YouTube](https://www.youtube.com/watch?v=-eXb6GIOxrQ)* **[00:12]** self-destru. 24E. People **[00:49]** love it. CL **[01:20]** Let me just tell you a bit to the sky. **[01:50]** If you don't know, you don't know Hi. Hi everyone. I uh um realized I was not ready for the stream. Hi. How's it **[02:21]** going? How's everyone doing today? I got my Word Camp Canada toque on. Word Camp A. I got two flavors up today. Check this out. I got this one and I got this one. I'm going to wear the black one. This makes me look tough. All right. [clears throat] Well, um I don't really know what I'm doing today. I just was going to do a bit of a recap Word Camp Canada. Uh so, let's see. Let's see. Let's see. Let's see. Let's see. Oh, that's my email. You don't need to see my email or that. Oops. My god, no one's watching. **[02:55]** [laughter] I'm connected to all the things. Okay, cool. Um, let's get the old Word Camp Canada up here. I had an absolutely fantastic time at Word Camp Canada. Oh my god, I'm streaming 15 minutes early. That's why nobody's here. My timer's all screwed up. Ah, what? All **[03:27]** right. Well, I'm just gonna hang out on here and see what happens. [laughter] Oh, I I got a new computer, so everything's all all uh I'm setting it all up. I don't know what I'm doing. I don't know if anything works and my audio is in sync. I just I have no idea. I have no idea. That's why I did this wrong. So, I'm going to go back to the starting soon. **[03:58]** We don't start for another 14 minutes. **[18:08]** Hi. Let's try this again. [clears throat] Good morning, everyone. I jumped on stream 15 minutes early because my timer was wrong. So, I did that. Oh, look. It's my face. Um, [clears throat] how is everyone doing this fine morning? I'm going to quit my stream timer. It caused me grief this morning. There we go. Um, yeah. So to Oh, you can't see. You can't see. Where's my There it is. I got my word camp. Canada toque on. I got two of **[18:38]** them. And here we go. Word Camp Canada. Hey, I did this the other part, too. Nice hat. Yeah, I got two hats, Troy. I stole one of the orange ones. Look at that. >> Oh, great. Troy Chiplin. >> Malcolm Peralti. Hello. How is it going? Uh, I see you there on Twitter. Um we're over here on Twitch if you're interested um in uh joining the chat. Otherwise, you're welcome to just hang out. It was great seeing you at um Word Camp Canada. **[19:09]** Troy and I Troy Malcol and I worked together at uh Tennup a million years ago, I believe. Um and it was good seeing him. I've seen him a long time. So, um yeah, I got uh I stole I stole the orange one on the second day or something. I don't know what whatever it was. Whatever it was. So, today I don't have any code stuff to do. I mean, we can probably get into some code stuff, but I was uh I was thinking about just maybe doing a bit of a recap of working at Canada. Uh how amazing it was, how much fun I had. Um and also, I got a new **[19:41]** computer while I was away, so I think everything's working. Just tell me if things seem weird, if if audio levels are off or if like you can't hear me, or if I sound like a robot or I don't know. I don't know. All those things. all those things. Karolina, hello Karolina. Good to see you. [snorts] Um, yeah, yeah, yeah, yeah, yeah. >> Great. How is it? >> It's Carolina. >> Yes, it is. **[20:12]** The amazingly talented Carolina. U, I got bad news about I'm sure we all know this now, but the icon block that I I I've been working on is not going to make it into 6.9. That is a bummer, but it is a makes sense because um we have some dependencies that just don't exist for it right right now. There's a talk of an API for for icon registration which I think is very much needed because we have a number of blocks that use icons. We have the social icons block. We have the the there's another one too. I can't remember. It's one that **[20:43]** you're working on Troy with the monochrome stuff. Um, anyways, there. Yeah. So, there's that. And there's also we're not have we don't have any block supports for width and height and those things need to be in place before we can get it done. So, I'm going to continue working on it as I bang the mic. I'm going to continue working on it and um we'll see if we can get it into 7.0. So, there's that. So, there's that. Um, right. Okay. Cool. So, Word Camp Canada, we um we were have we were in Ottawa again. It was a **[21:14]** great time. Carlton U was a fantastic U. I thought it was a great venue. It was really easy to get to. I took the OC Transpo, the train uh for my hotel every morning. It was nice, easy. Uh I had to I had to change trains once, but it was super easy. Took me like 20 minutes. It was great. I actually ran into Constantine uh overland from um uh also from Automatic, who I've never met, but he's the tallest person I think on the planet. Uh nicest guy in the world. We ran into each other on the uh on the **[21:44]** train and I was wearing uh I was wearing my vest that I have that says.org on it that I got at a meetup team like an automatic meetup and and he saw it and he was like automatic and I'm like automatic and he's like because I recognized him because how can you not right but uh so we we we were chatting and yeah super nice guy really really really nice guy. Um and uh yeah he's been around the WordPress world forever and I don't know I can't remember what what his title is at automatic. I need to look it up again, but I think it's like super director of engineering. **[22:14]** Yeah, I know, right? So, funny funny story about that. We were um all the automaticians who were at War Camp Canada um were uh uh were gathering for a photo. So, um I saw him go into one of the rooms and I said, "Oh, I I'll go grab him and come right back." So, I I he walked into a room of people and there wasn't that many people in there and I walked in and he disappeared. It was like there was no other exit. He just disappeared and he had he and he he did so by just sitting down when I walked in and I was literally like what **[22:44]** where like I'm like how how do I miss this? What what am I doing here? What is this? Troy. Oh yeah, that's the photo. There he is. And there's me looking like I don't have my eyes open. Brian James. Lovely booth staff who I don't remember all their names but I met them. And this guy who we all know, Mr. Matt, this is a tri um you gave um you you gave Matt this. If you can't see what this is, can **[23:16]** I zoom in? Hold on. I can't zoom in. Why is my keyboard not working? There we go. Uh it's maple syrup from Canada. We go. So yeah. So that that was the team photo. Look like I've never felt so short. My my son is 6'5, right? And I don't feel that this short beside beside him as I do beside Constantine. But he's like the nicest guy in the world. A leader. A leader. A literacola. A leader. **[23:47]** Please tell me somebody gets that reference. Far. Come on. Literacola. [clears throat] Yeah, he's 6'5. Yeah, he's tall. You see what? Yes. Thank you. Bad dude court. You get all the internet props today. Super troopers. Great movie. Fantastic movie. The Yes, they are. I I've heard the same thing and it's going to be great. The first one is so funny. The opening scene. So, if you're not **[24:18]** familiar with Super Troopers, it's about like a highway patrol, right? I can't remember where where they're based in the northern United States, I think, or maybe they're in Canada and they're just right on the border. I can't remember. But it starts with them having a Vermont. That's it. Thank you. It's It starts with them having a maple syrup chugging contest at like a little diner. It is so funny. And it spawned the phrase, "I am all that is man." Okay, we have to find that. **[24:52]** I am all that is man. Is there's got to be a video of this. Here it is. We're going to pause the music just to hear this. Can you hear this? One, two, three. Do it. >> Oh, go girlfriend. I'm your mother. Come on, Thorny. You're losing to the rookie. It's embarrassing. Come on, Rabbit. You can do it. Oh, Rabbit. He's killing you. I got Thorny in front by a lot. What's the matter? Your mommy didn't teach you how to chug. Come on, Thor. Come on, Thor. Oh. Oh. **[25:26]** I am all that is mad every time. Finish it up. >> All right, that is a funny funny movie. The funniest line in that movie in my opinion. It's very not safe for work, but [clears throat] it is the guys get stuck. Long story short, they get locked in the back of a big like big rig trailer cuz the bad guys whatever. And so [laughter] that the thorny comes and unlocks the back of the door and it's just the two guys in there and he walks up. The first **[25:57]** thing he says, he goes, "Smells like sex in here." [laughter] It is the funniest line of all time and so wildly so wildly not safe for work. But oh, such a good movie. Such a good movie. If you haven't seen it, you need to go see it. Go and watch it. Find it. I don't know where it's streaming, but man, it's good. That is so good. [snorts] Um, I don't know where that came from, but that was a amazing trip down memory lane. Anyways, [laughter] back to Word Camp Canada. So, I want to give a shout out to Troy. I because he did an amazing job. He was the speaker **[26:28]** lead. He wrangled all of the craziness. There was a there was a speaker that we didn't think was going to make it because of like visa issues and so he just just like deafly just just got in there and rearranged the schedule, made it all work and then yeah, it was great. So I think everything went off without a hitch. There was some internet issues at the beginning which is always internet issues at every word camp and uh the team handled it like rock stars. It was amazing. Anyways, I can't say enough good things. Uh venue was awesome. The food was great. It was really good. The afterparty was so much fun except for **[26:58]** the Blue Jays losing, but that's okay because now they're going to the World Series. Go Jays. Go Jays. We are a Jay's positive stream here. Um uh anyways, um I wanted to point out a couple of things. What did I want to point out? Okay. Um so I did I I I did two talks there. Uh the first was um was well I did a a full session on um the block developer cookbook which was so much fun. Uh it was it was very condensed. **[27:28]** It's baseball carolina. Sorry. It's sports ball as as I like to call it. I don't usually watch baseball. I don't usually really follow sports. I enjoy I've played hockey my whole life because I'm Canadian and it's sort of like that's what you have to do. Um or they kick you out. Uh but uh yeah, I just enjoy it. But because the Jays are doing so well, they haven't been to the World Series since 1992 and 93 where they won backto back World Series. And they haven't been back since. And they're going back to to the World Series. So hopefully we're going to do it anyway. **[27:58]** Um I forget what I saying now. What was I saying? All right. The um soccer and football. Wow. Hockey, soccer, and football. So Caroline, when you say hockey, you're talking ice hockey or field hockey because what my my good friend Jonathan Bosner who's who's on my team, his son plays hockey, but they call it but it's field hockey in South Africa, not um not ice hockey. So just want to clarify and I should say I play I played ice hockey my whole life. I think kind of goes without saying. I'm Canadian after all. **[28:30]** Um right. So ice hockey, we have bandandy. Ice hockey. We have band Oh, is that what you call field hockey? Bandy. What? Bandy. Where? What? What? Oh. Oh, I never heard of this. Bandandy is the most insane variation of ice hockey you'll ever see. Oh, I don't **[29:02]** want to go there. Interesting. So, it's sort of like it's Okay. Okay. Bandies in winter sport and ball sport played on two by two teams wearing ice skates on a large ice guy surface wall using sticks to direct balls. Oh wow. Okay. So it's like so they're so they're they're wearing hockey equip. That is a gigantic ice surface though. Oh, I've never heard of this. This is so cool. Yeah. Like how big is the ice surface though? **[29:33]** It was introducing to Canada in the Winnipeg in 1986. Uh, the goalie has no stick. What? Played on ice with a small bat sticks. That's crazy. Okay. So, so because that looks I I don't know if you can Okay, I don't know if you can see that, but that looks like an absolutely massive ice **[30:04]** surface. Like like NHL like ice hockey rinks are not that big. That's crazy. I've never heard of this. I I'm going to have to check it out. That looks so cool. H. All right. Oh, here we go. The first band that Oh, wow. Oh my god. That looks like a comical version of like the hockey net. That's crazy. Look at the size of that net. It's like a soccer net or football. I think it's bigger than than Olympic size. Look at that. **[30:38]** That's insane. How many players How many players do they have for that? The goalie has just these these these gloves. Yeah. Wow. Okay. Okay. So, there's one, two, three, four, five, six, seven, eight, nine. There's What is that? 10 players plus a goalie. Does that make sense? Wow. Okay, cool. So, in ice hockey, you you play five on five and with and then a goalie. Uh, but it Yeah. So, it's like soccer on ice. This is crazy cool. **[31:13]** Did is there like What is this? Is there body contact? Oh, here we go. Penley area. So, this looks very much like 16 meters. That's craziness. Is there Is there body contact? Like you allowed to like in hockey you're allowed to kill each other. Um Wow. That is so crazy how big that is. Wow. Well, we learned something today. We learned something. Let's see. The **[31:46]** playing surface called the Bandy Field or Bandy RG is a sheet of ice which measures 300 to 360 feet by 148 to 213 feet. Size of a football pitch. So like a So yes, soccer. Whoa. The rules. What are the rules? 11 players. Each team consists of maximum of 11 players. One of whom must be the goal. Okay. So they have Okay, cool. **[32:17]** duration. Okay. So, is there like penalty warnings and penalties? Oh my god. So, they have like cards to save us. Uh soccer, Bandy Ball, Bandy Stick, Bandy Field, protective equipment. Wow, that's really neat. Wow, we went down a rabbit hole, but that was totally worth it. That's so cool. I've literally ne never heard of this. That's so cool. Um, so anyways, Bandandy. Um, I forget what I was doing. Oh, right. I did a a talk. Uh so they the or the the organizing team working **[32:47]** pan had an amazing idea to do like a like a workshop track on contributor day. I thought that was a really really great idea. I've been to a lot of contributor bid days over the past few years and um people that know how they just go and they do and then there's a lot of new new like new folks that are just like maybe unsure and they kind of get lost either like in the setup phase or they um you know once they're set up they're not really sure where to go, who to talk to and stuff. And so having that alternate track of content for folks that um that maybe you know want to be **[33:20]** part of it but but don't know where to start or maybe get frustrated and want to want to change gears. So like there was this really like Ash Shanta did some really great stuff on like intro to WordPress and Jonathan actually talked about like h how to contribute. So like these are sort of talks and and workshops, right? And I I I think that it was a great idea. So I I I did this half day thing on custom block development. I'm super proud of the title. The first one was called Ain't Nobody Got Time for That, which is the idea is you're you're busy developers. **[33:51]** The other name for this is like a custom block development for busy developers. And then the second part is custom blocks. Here's some time for that. I was so proud of that. So proud of that concept. [laughter] Uh but anyways, um so I'm going to share my slides here if you all want to see them. Uh where's the link? Copy the link. These are the slides. So the idea and and they're public. you can have a go at it and there's a repository as well uh in here which is the accompanying repository for it. So if you want to take a look at this you can **[34:22]** whatever but basically the idea is like there's a there's a bunch of stuff that we could talk about various things and then like there's like these moments where it's like okay just trust me you don't need to know anymore and we're going to move on. So I'm not going to go through all this stuff. So it goes from like there's command there's the sorry the create block package and we get into all the files and reg how what blocks to register and how block JSON works. Um what else? What have we got in here? And there's these little mini assignments which is kind of fun. Uh I thought this went really well. I completely o **[34:53]** overprepared content so I ran out of time at the first section and then we just ended up doing this over over the the the two sections. But the attendees seemed to want they were into that. So it was good. It was fun. Um the other talk that I did was like I said the the block developer cookbook that was on the uh first day u it it was fun. I had like 45 minutes which is way too short way too short to do the black developer cookbook. So normally what I would do with with the cookbook is uh I I would **[35:24]** like have everyone vote and we we you know and then we'd work on on all of the recipes that we voted on until we ran out of time. So we didn't do that because we just didn't have the time to vote. So, I asked the the the folks in the room, do you want to do like the sort of the short ones and do as many as we can or do you want to pick one one sort of long one and try to and try to finish it? Hey, Kev. Um, thank you. Welcome back to you, my good friend. And anytime. I'm gonna interrupt it here. Anytime. There's a delay. I don't know how long it is. >> Oh, great. It's Kev. **[35:55]** >> Um, so, uh, Stefan B, who is a friend of mine and, uh, he used to Yeah. Uh, well, I think I everyone knows him. He he suggested that we do a short one and then we do a long one. So So we did the short one which was the the uh the block bindings the um lock one block cookbook. We did the uh this one preset bindings with variations. So we did that one which went well and then we jumped all the way down to the bottom and tried to do the interactivity API **[36:25]** gallery slider which we did not have enough time for at all. We didn't even get halfway through it, but the whole thing was like just silly and fun and with a lot of great questions and I gave away some swag. I threw some um I had some studio shirts, which I'm not wearing today, but I had I had some studio shirts and some um uh bags, some WordPress.com bags, which which were nice. Anyways, and yeah, so it was a lot of fun. It was a lot of fun. Really enjoyed it. Um the room is packed. I was very excited. So, but there was a So, **[36:56]** there's a couple there's some other talks I I I wanted to call out like um and I don't think if any of them are up except maybe Matt's, but uh Dave Winer did a keynote and it was great. It was so good. He in introduced this thing called Wordland, which I'd never uh heard of before. Let's see where is it here. Uh oh, no. Uh sorry, it's Wordland. Wordland day one. I think it's uh [sighs and gasps] Yes. Uh, wordland.social, I think, is what it **[37:28]** is. Um, socialsocial. There it is. Looked this up yet. Yesterday. So, this is a cool thing. You can connect What does that say? So, he connected this to uh WordPress. So, now that now I can uh I can you use this to like um I don't know how to set this up. I have to set this up. I haven't done this at all yet, but he had some pretty cool. He this pretty cool demo. It's all like so he's like the **[37:58]** inventor of [clears throat] RSS and podcasting. I don't know if you knew that about him. What to do? I need What to do douchemer? That'd be great. Go. Um anyways, so this was like a a posting tool and the um the uh he's posting right to um the Canada site. Yeah. Yeah. Yeah. So, if we go to like updates, I think it's in updates, right? So, we go latest news maybe. Uh maybe not. Where did I see that? I think it was all on the homepage here somewhere. Yeah. So like he posted this he posted a bunch of stuff and he's **[38:29]** posting it directly from that. It was really really cool. So he showed us the demo of it. It's really this cool like it's markup friendly just for writing. Really neat. He had some really great ideas. He's so quotable. I I he there were two quotes in the first like five minutes of his talk and I tweeted it out. It was amazing. The first one was like I don't call it uh I don't call I have to find it. I can't remember. I'm going to butcher it. Um uh Twitter am I logged in here? I am. Let's see. Uh **[39:05]** this is this one. No, it was it was a different one. I'll find it. I'll find. Don't you worry. I'll find it. I'll find it. Oh, there's me and the the fam in Ottawa. Okay, hold on. I got to find this. It's in my notification somewhere. Oh, boy. [sighs] Oh, **[39:39]** where is it? Come on. I'll find it here. He's on the what is this the one? Yeah. I don't call it automatic. I don't call it Matt. I don't call it the community. I call it WordPress. Like that is so quotable. And then you don't need the you don't need the open part of open web. It's like wet water. Like those are those are very good very good quotes. Um anyways, he was he was great. Um I got to talk to him very very briefly like towards the end. Uh just this just a smart approachable nice guy. He was he was **[40:10]** very cool. Is water wet? Water is indeed wet. Kevin got down with I gota sit down before the first day to start and he got there before. Yeah. Yeah. I mean, and it's just like he's just talking like I don't know. He invented podcasting. The idea of if frozen if frozen if frozen then it's hard and wet. You're disgusting. **[40:44]** This is a very not safe for work. Yeah, exactly. I'm I'm going to get banned or something. I just got cancelled. I know. I [clears throat] know. You guys are gross. They're gross. What was I gonna talk about here? Uh, all right. Okay, cool. So, yeah. And then, um, of course, it was a big deal. Everyone was very, very excited that that Matt was able to show up. Um, and I have the I have the talk if we all want to watch it. Thank you so much. Uh, sorry for running a few minutes late. **[41:14]** >> I actually have a little bit of a speech and a little demo thing to start with. So, >> it's like 45 minutes >> just for a few minutes because I know we want to do some Q&A. But, um, first of all, thank you all so much. This is actually I'm doing an experiment with you, which is >> I wrote out a little talk. I don't know if watch is also on my WordPress right now. So, at the end of it, we'll all push publish together. [snorts] >> So, don't worry if I if I have lots of notes or anything like that. You don't have to write it down. This will all be there. I need to add the link still. So, **[41:46]** I'll >> I might jump to the Q&A. U Matt Matt uh is talking about a lot of great things. Go go go check it out. I mean, it wasn't great. These personal care from folks. Yeah. Yeah. Yeah. I I mean, I don't think it's horrible. I mean, it would be [snorts] I don't know. I don't even know. But there was a question in particular that that I was reminded of and let's see if we can find it. And I think you know the one I'm talking about. Um **[42:16]** [laughter] so check um we're actually just kind of on like a version one of that whole idea. >> It's filled. >> People really love those sheep. >> They still index the entire web including audio. Actually the rate of plugin submission >> a hidden gem if you haven't encountered >> people making big policy decision like we're needing a plugin like accessibility probably breaks some rules >> please let Nick know that a lot of us >> he stole it >> okay totally >> oh yeah wapoos actually I'm talking to **[42:48]** him all the woo stuff >> by the way y'all have some awesome ones at this event I got the little swag pack with all the stickers and everything like I look love how all the sponsors have different ones And there's like you have like four or five of them. I'm actually going to put the sticker on my laptop later. >> I don't know if Paul's here, but sorry. I don't know if Paul's here, but he asked a question and we're going to hear it in a second. And I'm going to we're we're going to settle a a dispute here on stream. So, just here we go. >> Keep an eye out for **[43:18]** >> Yeah, Carolina, that was taken out of context. You should watch the whole thing. Matt Matt was absolutely not not uh not advocating for like, you know, breaking accessibility rules. He was just talking about some other things. So, please watch the whole thing and see it in context. That's a bit of a sound bite. I don't want anyone getting the wrong idea there. >> Okay. >> Uh, I want to talk about Henry Dolly the plugin. >> Oh, yeah. >> Um, it's been it's been caught [ย __ย ] with um >> which by the way people tried to get rid of because of copyright issues. **[43:48]** >> Yeah. >> There's actually some interesting things we did to get around that and make it fair use. >> Um, should it be removed? >> [laughter] >> You're asking the wrong guy. >> Well, it's there because nobody wants to ask you to come and remove it. >> No, they ask me like once a year. [laughter] [snorts] >> If it stays, perhaps we could re redo the description to indicate that it's historic. It was the first plug in a proof of concept. **[44:19]** >> I don't think that's a bad idea. Personally, I don't think that's a a horrible idea. I mean, hello, I mean, whatever. It's controversial, I guess, in some I I I don't know if we all remember this, but the song Hello Dolly, the lyrics um are um I don't know how to say this tactfully, but basically they're not uh they they haven't really, you know, they haven't aged well, let's put it that way, right? So, so there's a lot of talk around around that around uh you know some of the lyrics and what they what they mean and stuff, but I I **[44:50]** don't think Paul's I don't think it's a horrible idea to to just say like hey this is like the first plugin, right? They aren't inclusive. I think it's more around like um me too type stuff. Like I don't think it's I think they're they're sexist and I think they're very um you know that stuff, right? Um yeah. Yeah. So, I I mean maybe maybe it's not a bad idea to update the um the description just to kind of say why does this exist, right? Because it is it's historical, right? And it's like I think it was like the first plugin and stuff. Anyway, so let's continue. **[45:21]** >> He's going to copy it. It's no longer good code. >> I completely disagree with that. [snorts] >> Uh Matt's disagreeing with Paul's statement that it's no longer good code. So, let's get into it. >> Tell me why it's not good code. because it doesn't use classes or object orientation or like why is it bad code >> accessible? >> It's not accessible >> translatable. >> It is translatable. It actually goes through the translation functions. >> That's not true. >> This is true. **[45:53]** [laughter] >> Then it was removed because it used to have it was one of the first things we did the underscore underscore for >> look this up for you. >> Okay. So, if you're not sure what's happening here, Matt is saying like, so Paul said one of the reasons why it shouldn't be in there is that it's not translatable, right? The the strings. Matt is saying that yes, it is uh translatable. And then Paul is saying it's no. And yes, and back and forth. And it was a bit of a tennis match. And I was in the room. I was sitting right I don't know if you see my mouse. I was sitting right here watching this whole **[46:24]** thing like this. And I was laughing. So, let's settle this once for all. I'm I have got VS Code open. I have got Hello Dolly. So, we're going to take a look. So, let's look. Okay. So, this is these are all this the lyrics for Hello Dolly and we we're splitting it into lines and then randomly choosing a line blah blah blah just echoes. Okay. So, we have this. So, all right. So, we're doing a print f and so this is all in here. Okay. And then **[46:55]** this is being translated. So, quote from Hello Dolly song by by by Jerry Herman. We've got the lang and then the chosen line comes from here. So, they're both right. That's my official ruling. Bam. They're both right because this is translated, but these don't look like they are actually translated, which I I guess makes sense. Like, would you **[47:26]** translate song lyrics? Would you would you translate song lyrics? I don't know. What do we think, chat? What do we think? Yeah, you wouldn't translate lyrics, right? Because they're the lyrics of the song. So, yeah. So, who do we think is right? Thumbs up if we think that Paul was right. Uh, wait, no, hold on. Um, I don't know. Just write Paul or write one for Paul, two for Matt in the chat. Let's see. We'll make this Hell no. 50 cent sounds terrible. Romania, **[47:58]** [laughter] thank you for this Ramstein. Well, they did. Uh, this is the funniest thing I've read all day. Thank you for that, Ryan. What's Ryan Dhast? Yeah, but that that's not translated. It's you hate. Yeah, but they don't translate it. Oh, really? Interesting. Kevin, you just said my name. Why'd you say my name? What's that? Or you wrote my name. didn't say my name. **[48:30]** Oh, so so they have both versions. I've never heard the English version of Duhast. I've heard the other version. I'm going to put the music back on. Um but um interesting. It sounds very I Yeah, I I I imagine it would. Um anyways, you said type Matt or Paul, but I'm not getting involved. [laughter] Okay. Well, this not going to get you cancelled. I'm just wondering I I don't know. I think in this case in a in the strictest in the strictest **[49:01]** way Paul is sort of right because none of these none of these strings are translated right. Um, but um I mean from a practicality standpoint, you wouldn't like not all artists are going to release multilingual versions of their their song lyrics, right? Uh, but this is actually this is actually Where is Paul? Is Paul not here? Come on, Paul. **[49:33]** But kudos to Paul for for talking to Matt about it, bringing it up. Um and uh and yeah. So yeah. Do we want to watch the rest? Yeah, you can't without removing mean. Yeah. Yeah. I think it's very hard. I think you lose context, right? Like if you were to translate that because like there's going to be some slang in here like feel the room swaying. You're still crowing. Like that's you're still glowing. You're still crowing. You're still going. Like this is definitely slang that's not going to like that won't translate literally and **[50:03]** figuratively speaking, right? But but the source come no s no what I don't think what what are we saying here uh let's spotlight this this this message I I deal with this case with so in so many plugins my plug-in strings are translated but some sources of data come from outside Google Analytics and it's not yeah not at all no I don't I mean they should be marked for for **[50:34]** translation And but um what did he mean by bad code? I'm not really sure what he meant by bad code. I think because he's saying it's not translatable. This is like very much like I don't know. There's nothing wrong with this in my opinion. I've seen a lot of stuff written like like this. But I don't I don't know. I don't know if Paul if you're on here I'd love to hear what you have to say about and not to put you on the spot Paul at all. Just wondering I mean it's not translate. Oh, the other **[51:04]** thing is not filterable. I think let's let's let's let's see what else. Here we go. >> Well, let's look it up later. Um, >> but don't it's not true that I No one's ever asked me. [laughter] It does get asked about once a year. There's lots of issues on the bug tracker about it. And if there's ways to improve it, like make it translatable, I think that's great. And I know people have actually used that before to also just change your lyrics to like put different songs in there, different things they want to say. >> Yeah. becomes translatable the poly poly **[51:34]** clots are going to have a little fun with the translation strings. >> Yeah, but they don't have to, right? That's the fun thing. [clears throat] >> Um then look look forward patches then I think [laughter] >> now what I don't want to do is I don't want to make it like super complicated. So I know we did something like we moved it to a subdirectory. It actually just used to be a single file. Um, so there have been some minor upgrades there, but the whole idea is to show how easy it is to use the actions and filter system inside of WordPress. >> That I do agree with. That I think is is **[52:06]** a really good point that I actually I I hadn't thought about this. It shows just how easy it is to extend WordPress like in like this whole file is what 100 lines 106 lines and you're injecting it all over the place, right? Like I think that's a really really good use case for why this this should stay. I I also agree with Paul that like maybe we should in the description, you know, talk about this is a plugin that, you know, is meant to to, you know, it does a silly thing that you can get rid of, but it shows how easy it is to extend WordPress. I think that's very, very **[52:36]** cool. Lup, what are you talking about? What do you mean by this? Uh, lyrics is not trendable equals bad code. You're saying that's what you feel or what Paul feels? Is that what you mean? Yeah. The thing is this doesn't inject anywhere in the content. Oh yeah. Yeah. Sorry. Yes. Yes. I I I agree that I I think that's what u Paul is is also meaning. Um I think uh uh what did Kevin **[53:06]** say? Yeah. Monision for a block block plug is maybe a new song. So the only thing that that that we could do here is put it into uh the slot system. Uh because this this injects if if we look at this uh where am I here? Studio admin. Uh sure. What? Yes. Whatever. Advanced proceed. Be gone with you. What I set that up with SS any. Okay. Whatever. Whatever. Plugins. Install plugins. Let's see. So we activate Hello Dolly, which I've actually never There **[53:37]** we go. Still glowing. You're still crowing. Uh we go to the post. I think it just sticks things in here. Well, does it do anything with the I have literally never enabled this plugin ever? Uh, so I think the only thing that we would be a able to do here is add slots. Add it to like, you know, you could put one in here. We could put one up, not up there, not up there, you know. Yeah, the slot on the top here, you know. Um, but there's not really a **[54:08]** block unless we wanted to ins create a block that inserted like a random like the random um uh a song lyric which is which isn't really a bad well I don't know people going to hate it. [laughter] They're going to absolutely hate it but you you could add some JavaScript to insert this in into a couple of slot fills. But I don't know if it needs a block. Maybe it does. I don't know. Um maybe a a new song. Oh my god. What song? What song? Well, clearly it has to **[54:39]** be Golden by Huntress. Um which has been permeating my life forever. And I This is a hill that I will die on. I really like the music from um uh K-pop Demon Hunters. It's amazing. It is so much fun. And if you don't like it, deal with it. I'd play it for you. But um um we will get uh **[55:11]** you can't what WordPress talk Mitch Hedber said you can't please all the people all the time. This is very true. And yesterday all the people I heard one song. Yeah. It's it's catchy as all ghetto, man. It's good stuff. My kids listen to it all the time. I Yeah. Oh, he said it about his show. Yeah. Yeah. We're at my WordPress. Oh, I get it. Yeah. No, I I know who M Mitch Hedber was, but uh wasn't sure if you were talking about it. I'm too literal today. **[55:41]** I'm I'm very literal. Everything is literal. Um really cool thing just got released with the latest version of of Studio. So, if you're familiar with blueprints, you can use blueprints to spin up new sites, which is so cool. Now, do I have a blueprint on my I do. Let's grab this blueprint my setup. I'm going to just download this. Can I just download this? I'm going to download the raw file. **[56:11]** Download. So, what you can do here, I'll show you what this looks like. So, this thing, this looks like this. It's very very I'm going to open this in VS Code so you can actually take a look. I really I this is really really cool stuff. So what what all this is doing I'm going to install a plugin. I'm going to I'm going to create um basically I'm creating a plugin for my repository and then I'm I'm telling it where where to get the stuff from where where to get the code from. So what this **[56:42]** will do for me is if I if I'm in studio and I go into ad site and I go create start from a blueprint. You can choose one of these one of these blueprints. Um there there is a development one. I'm not really sure. Oh, so we can preview it which is so cool. Um I think this installs a bunch of like uh like maybe query loop I know uh query monitor debug bar uh stuff like that. Uh stuff that you would use for um you know WordPress development quick start. This is an e-commerce one but you can use your own. So you can say choose blueprint file. I'm going to go into my downloads. Grab **[57:14]** this. Grab that. Continue. Um this is uh ain't call it ain't nobody uh custom blocks for busy developers. This is what that is. Developers go to my advanced settings. I'm going to go use custom domain enable HTTPS. Maybe I didn't do that last time. Hit that. It's going to ask me to do a thing here. I'm going to hit that. So, **[57:44]** what is this what this is going to do is it's going to set up a site and it's going to just it's going to enable that plugin and bring it it it all down and I I'll be able to work on it locally. So, if I go to my if I open this up in VS Code, you can see inside of content inside of plugins, I've got custom blocks for busy developers, which is amazing. Uh, so it's a really great way of like sharing setup stuff. So now, like we've all used Playground before to to set things up, but um **[58:14]** now you can use it to spin up local environments, which is really cool. And you can do some really complicated things with it. Like what I'm doing is very very very simple. Why is this doing this? Huh? Weird. It shouldn't be doing I gotta I I gotta figure that out. I don't know why it's doing that, but anyhow. Um, so yeah. So, you can see we've got our uh install plugins. It's automatically enabled. So, it's very very very handy. Very handy. Um, **[58:48]** yeah. Cool. So, [snorts] now that we settled the age-old our argument, um, what else did I want to talk about about where we came from Canada? Um, oh, I saw a really great talk. Uh Brian Cords did a really really great talk on using AI for uh developer documentation. Brian is from Woo Commerce. Uh I don't know if he has slides or anything for that, but that was a good talk. You can hopefully find it on WordPress TV when when it's up there. Um yeah, and then well there was Matt's thing obviously. And then I **[59:19]** saw really great one by Austin Atinson who I didn't know prior to this but it was in in the interactivity API for common DOM interactions. Um it was it was a great talk. he showed a lot of really great things. Um, the Australian Soccer League was something that he was working on. So, it's right here. And this is a demo. This is a this was built entirely using the interactivity a API. And it's really cool. A lot of data in in here. So, you can switch around in **[59:49]** the weeks. You can see what teams like it's pretty pretty uh sophisticated. I want to look at some of the Come on now. Why would you go there? You're just you're just wrong. I want you here. That's what I want. So, let's see. So, this looks like this is the context. That is a ton of context. Woo. Am I distorting the microphone? No, I'm good. Okay. Um, so that's very cool that they're doing all **[60:19]** this interactivity matches callbacks. So, he's got Yeah. So, yeah, I I would check this out. I'm looking for Who? Oh, I see some console errors. What's that about? Can I use in I don't think that's What is this? Let's look at your code. Is that Oh. Oh, this is something else. This is my ramp extension. Anyways, it's my extension that's causing that issue. Not his code. Not their code. Shouldn't say it's his code. I'm sure he wrote a lot of it, but anyways, it was very very cool. I I **[60:50]** would go in there and check it out. Did I drop the link? No, I did not. Go in here and have a look. I'm looking for really great examples. Uh like like real world examples. Um yeah, totally. You're you're going to have a million pounds of of of context. Um I'm doing a talk uh on interactivity a API in uh the end of November at work camp. So uh Sophia, so I wanted to generate get some really great examples of like production level stuff, you know, because there's a lot of cool there's the mo the movies demo which is **[61:21]** great and it's really really neat, but I wanted to see things that like people are actually working on. So I was I was speaking with with Austin. So, I'm I'm going to show this one. And then Michael Terry from um XWP has something he's been doing for Gather Press that he he said he was going to send me. Um I'm going to take a look at that. So, yeah. So, if if you if y'all know of anything that is really really cool, bad dude, can you share anything like do you have anything that's um that's like public? Because I I'd love to show just like here's like some cool examples even if **[61:52]** it's just like a quick screenshot of me doing it or like a video. Like it doesn't have to be anything too crazy. Well, send it to me when it's live because I'd love to see it. Um because like I said, I I I we need more real world examples of like cool things that can be done and just like how how far we can push it. Like this is pretty crazy the amount of data that they are pushing through this app. Like there's with the women's league and the men's league. Very very cool. Lots of stuff going on. Um yeah, nice nice. Um, **[62:24]** yeah. I don't know what there was a bunch of other stuff. I had a great time. I I uh the the hallway track for me was was probably the best. Um, I was there was so many people that I hadn't seen in a long time that I saw again. I got to hang out with Mike Cork who's a great guy, works with Troy. Um, I showed him Playground, WordPress playground, which he' never seen before, and it blew his mind. [laughter] He was like, "This is the coolest thing I've ever seen." So, we were talking about like end to end testing like you know because Troy and and Mike work work on like they they **[62:56]** work for Carlton and they basically handle it all and there's a ton of stuff. So, Mike was saying that they he wanted to get some some tests and stuff, right? Um so I I showed him what I had done for uh >> Oh, you made a wise choice, my friend. >> Hey, thanks for the follow. A Who's that? A context. Nice. A context. Speaking of context, thanks for the follow. Um, yo, a context. First time chat, first time. Yo, **[63:26]** welcome to the stream. Thanks for hanging out with us. Um, what was I saying? Oh, yeah. Yeah. So, I showed him the uh so what I'd been done with like my uh uh fixture for the for playground and then using it with the Well, maybe I'll just show you instead of talking about it. Um so in my advanced query loop in my end to end tests I did this uh this uh play this fixture for playground actually this is a class so this is just using the playground CLI **[63:57]** it's going to spin up an instance it's just it's two methods one is like to init the other one is to clean it up and then in my fixtures uh is it here yeah what I did was I extended the so I extended the base fixture the good old WordPress yeah I wear this every week. I just realized that I wear it like literally every week. Um so I wash it sometimes. Anyway, um so what this is doing is this is actually extending the the fixtures that um Playright has. Um and then which **[64:30]** I'm actually pulling it in. I'm pulling in the fixtures from somewhere. Where am I doing this? Uh yeah, yeah, yeah. So I'm I'm adding in all the editor page utils admin and and selector stuff. The reason I'm doing that is because this package the the the um [laughter] nice happy camper. Um these are very helpful utilities to be able to navigate around insert blocks and stuff like that. So what I wanted to do **[65:04]** you get banned from two different servers because you didn't update WordPress a context. I love WordPress, but I got but because of it, I got banned from two different server providers because I had it running and didn't update it. Huh. Interesting. Yes, I I know. I know. Kev Kev Kev always has improvements to my code. I'm starting to get a little offended by it. He has a very a much cleaner way of doing this, but this is just a thing that I I showed him um because when I **[65:35]** and this is all this how I could figure it out, so leave me alone. [laughter] Basically what I wanted to be a a able to do was call these things like visit admin page, set preferences, that sort of stuff. Um and then also be able to call playground. So have a playground um object that I can uh call things on. Yes, Kevin. Let's look at Kevin's code. Kevin's code request [clears throat] login. **[66:14]** All right. So, example spec. So, this is Yeah. So, you're logging in test fl manual. Okay. So, request utils. So, where where are you setting Oh, is this No. Where where are you setting it up, Kev? Right here. No. Yeah, but you're using playground for this to as the playright config. Yeah, that makes sense. Okay, so your playright config. Let's look at that. **[66:44]** So, okay. So, you're defining config and you're just setting up that stuff. That's cool. Okay, so your web ser Okay, so you're running it that way in your web server. That's cool. And then Oh, shoot. Where did I go? And then test test ar here. So then this loads the blueprint insert block. **[67:16]** But this run so this is running in playground and you don't how you how are you managing the line line 19 starts the server of the playground test yeah playground config right well this is definitely easier if this if this works 19 right here no what are you talking about not there that's webpack config dope line 19 right yeah so this is your okay so you're using this CLI automount **[67:47]** blueprint port internal cookie store login false. All right. Well, maybe this this is probably a lot easier then. Um this would be a lot easier to set up. I probably don't need to uh do it this way. This is the way that I was doing it. Interesting. I I want to show this to because I I was working with one of the engineers from the playground team to kind of get this working, but I I might have just I might **[68:19]** be like, "This is what I have." And so he's like, "Um, let's get this working." You want to refactor this? I'll refactor your base. That's what I'll do. All right, let's see. Let's refactor this. Let's do live refactors. uh feature refactor E2E. Okay, let's do this. Let's see. [clears throat] We're going to take all Kevin's code and we're going to make this work. Okay, so Kevin, Kevin's looks like this. So, let's see. So, testers. **[68:50]** Okay. Yep. Retries. Okay. Workers. Yep. Reporter HTML. um use base. Okay, so you're defing Okay. Okay. So really I So I should start with this. I'm going to plunk that in there. See what this does. So playground server URL is the URL's got to match this URL, right? **[69:22]** U base URL base space base base. All right. Fine. Fine. We're going to do coding, proper coding. Uh, grab that. So, it's going to be this port. Why you using Why are you using uh that port? Not that it's wrong or anything. Just wondering. **[69:55]** Okay. Oh, okay. Yeah, that that's the thing. Yeah. Okay, cool. So, I'm just going to use that port for now. So, this So, um So, if I just run this what what fixtures are you using, Kev? Um, **[70:26]** let me just take a look here. Block starter tests example spec. I'm just going to scrub that this in here. Um, what's it looking? What do I have to change it? Is it just looking in test? I can't remember. No. Is it just looking in tests? Where am I here? [snorts] **[70:58]** Um, does it just look in in the test folder? So, if I pull this stuff out, if I want to say old, I just pull this stuff and put it into old. See what happens here. And then I go package. have to set to oh uh in here tester. There we go. So **[71:29]** I'm going to set it to tests, right? That's what I'm going to want. So it should just look inside of test. npm run test. Uh what is it called? Test and end. What? npm not found. **[71:59]** [laughter] I don't have node node installed. Okay. NVM use. Uh okay. And sorry. NVM install. This is this is literally a brand new computer. So, I'm like finding all these things that I have not not set up yet. Okay. Come on now. Come on now. Okay. And we're going to run. Where is that? We'll run that. **[72:35]** Okay. So, CLI command not found. Do maybe Oh, you know what? I don't think I I don't think I installed it. I probably need to install it. That's probably what I need right there. Right. Install. Can you see that? Okay. Install. Bam. I think that's the problem. **[73:07]** Oh no. I didn't change the blueprint. That's probably part of it. Let's see. Test. Boop. Blueprint. >> Oh, great. It's thrown you error. >> Hey, thrown you error. Um **[73:40]** Well, it's not running because playground CLI is not found. So, I have to add that first. And then I did not change the blueprint. So, I got to I got where in the play config, it's looking for blueprint somewhere, right? Test blueprint JSON. Uh, I got add here new file blue.json. Yeah. No, I know. No, I think I have a blueprint somewhere. I don't know. Maybe, maybe I don't. But u Oh, I think **[74:12]** I'm passing it in in here somewhere. Where where am I passing it? I'm passing it somewhere. AQL fixtures. Yeah, blueprints. So, there it is. Blueprints right in here. Uh, so maybe I'll just use that one. Actually, this has got to go from um tests. So, I'm going to do that. That should be that one. I don't think I need this now. So, delete. Is this thing still running? What the do? Okay. **[74:46]** Okay. Process from config web server was not able to start exit code. Okay. Web7 the binary in node in node modules. Is that what we're talking about here? Uh **[75:21]** oh, npx. All right, let's try that. What the deuce? Yeah, exactly. Playground CLI. Did I install the wrong package? Did I install the wrong package, Kev? Let's look. Wow. **[75:52]** Oh, three. Oh, is it already there? I think I might need to update the package. Let's look. I think I had an old version. Let me just Oh my god. Let's look in here. Yeah, let's do that. We'll get rid of this. npm install. [sighs] **[76:28]** Yeah, that would probably be a better way of doing it. You know what? I'm going to delete. I'm going to get rid of package lock. I'm going to get rid of node modules. And then we'll just delete it all. And then we'll just run it again. Okay. Stall. [snorts] [sighs] Yeah. All right. Let's get rid of the impacts. That'll just take a few minutes. **[76:58]** Oh, we have no music playing. That's why it sounds like there's no music playing. You'll see that. Okay. Yeah, you can. So, so how are you? So, Kev, while this is spinning, which is taking forever. I don't know why. You are not. Okay, it's still running. But you're not actually like starting and removing instances of playground every time. Is it a single **[77:28]** instance? Is that the deal? Right. It's just always running the same one every time or every test is spinning up a new instance because that's why I went with this so I could like create one and then I could close the the connection. So it's a single instance for every test. Okay. And you've not run into any weirdness that way. I I think for me the idea was like I wanted to have one a clean one. I wanted to run my thing and run the test and then I want to tear it down. I want to **[77:59]** run it again. That's basically Yeah. So that's what this is doing, right? This this just closes the the server entirely. It gets rid of everything. Um Oops. Let's see what happens here. Blueprint file does not exist. test NTE blueprints. Oh, is that because I have **[78:39]** So, this is running. Where's it? Oh, can I do this? Can I do that? Let's see. Uh oh. I got to go out one more. Well, that seems better. **[79:29]** H. Okay. So when executing blueprint step one activate plug-in plugin path failed with exec failed nose. So what is my blueprint doing? Not not really a lot that it's doing there. **[80:07]** Okay. It's weird. The blueprint. Oh, wait. I'm already there. Okay. So, this is I'm going to get rid of the blueprint just for now. Just see if that works. Okay. **[80:53]** I should This should give me the UI. I don't think WordPress is actually loading. **[81:29]** What is this? Okay. Okay. Uh, why is why VS Code not running again? Come on, VS Code. All right. So, this is weird. Okay. So, let's try running this again. So, it doesn't it doesn't want to run. **[82:02]** And I don't know why. It just says loading. Okay. So, if I put this back, I put the Oh, what am I done here? Ah, crap. Um, Kevin, you broke it. **[82:45]** Let's try it. Okay, let's turn the UI part off. Let's see what happens when I do that. **[83:16]** because this is cause throwing errors. All right, so I'm going to put this back here. We're going to see what this does. I don't know why that would change anything. I'm still going to probably get this error here. I don't think we're Oh, turn this off. Uh, false. Wonder if that's are These are warnings. These are fatal errors. **[83:55]** Okay. Um, weird. Okay. So, what I'm going to do is I'm going to put I'm going to put this stuff back and I'm going to set my config back. I'm just gonna get rid of this portion for now because I don't really know if this is working. I mean, it was should be okay. Well, None of this is working. Why **[84:25]** is this failed? Connection refused. Oh. Oh, yeah. Huh. Interesting. Why you shouldn't have to do that. That's **[84:56]** Yeah, you really you shouldn't have to do that. Um, that's interesting. I've never seen this. Um, I'm going to ask the playright team about not the playright team, the the playground team about this a little bit because this seems like you you you shouldn't have to do that. Basically is what I'm saying. So, let's uh let's see. Let's see. And whatnot. Um, port 889. Is that the port I was using? I think it was. **[85:31]** Okay. So, this Okay. So, the only other thing was I think I had to have a trailing slash there. I I don't know. I don't know. We're going to see see what this does. **[86:01]** So, okay. Get primary PHP. Oh, I wonder if because the version I'm using is this is probably all changed now. Oh, this these are all going to fail because I don't think any of this Oh, yeah. Yeah, that's Kev's thing. So, we're gonna I'm going to get I'm going to delete this for now. Delete. Boom. And I **[86:33]** think the other problem is that um in here I don't think this is accurate anymore. What is this? Did this change or something? Oh, it doesn't have any types. Okay, that's not what that's about. But this this seems to be all What do we have? page request handler. So this is why is this yelling at me? **[87:04]** This is saying that like get so this handler. So maybe this is all changed in the new version. So I think I have to go playground. Um, where is the thing? No, here. No. Uh, oh, that's what I'm looking for. Got to **[87:35]** keep changing stuff. Documentation. So, let's go for developers. Let's go API reference. Let's go to client overview. This is helpful. Let's see something here. Play out. So I'm calling server. Okay. Server request CLI server. **[88:12]** Oh my lord. **[88:52]** This doesn't really This is not very helpful. Uh, okay. Oh, CLI server. So this is telling me that this is wrong. I maybe there's better developers. There we go. So playground API. Let's go to the **[89:26]** Okay. So this is PHP. Nope. CLI server run CLI. [snorts] Okay. the run CLI function. So, **[89:59]** this is what I want. Okay, so setting a blueprint. That's what I'm doing. Loading blueprints, mounting folders manually. **[90:41]** H where are we going to login from the blueprints? Okay. **[91:15]** Pull that from blueprints. All right. login step H. Okay. So, let's go steps and let's look at uh API. No, references. Uh God lo there's no **[91:56]** Huh. This is um not uh not very clear. Let's see. So, if I I'm going to put this back. I'm going to just revert this. Take it back. And then uh what else they doing here? I don't know. Okay, that needs to go away. Discard file. Yeah. So, so you're doing this, you're doing this using the utils, right? And maybe that's what what we can do because **[92:26]** that's what I'm doing here. Um I I'm I'm getting this so I can log this, right? In the handler, like maybe I don't need this part. Maybe I I can log it in like a different way. Let's Let's run this. I I didn't **[93:05]** not logged in. Okay. So, I have to log in. So then in the uh playground no I have to use this in the basic spec and it'll be a net. Oh but it won't be wait. So what are you running? You're you're doing yeah there's a disconnect here because it shouldn't be that hard. Like I if I if I um if I dump node modules and I bring back **[93:38]** where's package and I delete this and I just reinstall my old um my old version. I'm wondering if this is just a version issue. [snorts] That's the utils. Yeah. So the utils package is like pretty powerful, right? That's what what we want. But I wanted to be able to connect it to um this a lot of stuff going on here. Um clearly I need to get some types in there. Jeff do like this is this is what we want, right? Like we want admin.log. **[94:12]** Yeah. No, no. Well, I want to see I'm I'm going to update it, but I don't what I want to do is check to see if this is work. if the issues that I'm running into is because it's out of date. And if it's out of date, I I can just figure it out from there. Um like if if these tests run and then just be just a it's probably just an API update. This seems to be running better. **[94:47]** Did I Hold on. Sorry. I need to put that back. Let's put the UI in there so we can see what's going on here. So, if I run this test **[95:36]** Oh, what's that? All right. You know what? Hold on a second. Just hold on a quick second here. I'm going to just stash this stuff and I'm going to I'm just going to stash all that, set it **[96:07]** back because I need a baseline to see if this is actually running. Because if it's not running, then maybe I have other issues here. Like maybe I'm running in the wrong version of Node, which could be the wrong version of Node. Do I have an MBMRC in here? I do. **[96:40]** Okay. MPM run. Let's run this test now. Let's see. Time to ditch ES lint. All right. So, I'm just going to run this basic specs test. What? I didn't install that. Oh, maybe I didn't install it globally. Did I install it globally? Like a chump. **[97:12]** Like a chump. like a chump. Hey. All right. So, let's let's do Oh, that needs to stop. Biome biome.js is the new llinter. It's what the cool kids are are running **[97:45]** like a chump. Hey, [laughter] you're welcome. This is not K-pop demon hunters. Oh, come on now. Why is this taking so long? **[98:19]** Oh, okay. That's What have I done here? What is this? Yeah, we're going to just revert that. Okay. Okay. So, that's that's a better cookie. I did it all for the cookie. Don't you get me cancelled. Oh, tests are running. **[98:52]** Tests are running. Okay, so tests work with this setup. So, something has changed. Okay. So those all those all run. This is just like on trunk. So if I check out get check out the other thing and run the same thing. This should still work because we are I **[99:24]** haven't added any of this stuff. Okay. So this is still running. So, I want to stash stash. Uh, apply stash. I'm gonna This is just going to finish and then I'll just apply the stash. There we go. So, apply that. So, what does this do? Um, okay. I'm going to just actually revert this because I don't care about that right now. Um, we're gonna we're gonna we're going to run it now. Boom. Let's see what happens. **[99:56]** that. Okay. So, that seems to be an issue define weird. I don't Okay. Undefined. So, what is undefined? **[100:28]** That's the thing. I don't know what is un undefined here. Oh, that's undefined. You dope [laughter] idiot. I'm an idiot. All right. So, what what are we doing here? So, we're basically the only Okay. So, I'm I'm not really making any any changes here at at this point. Okay. So, **[101:01]** that I can revert that. I don't care about that. Discard that. Okay. So now if I run the same thing um if I go into the play the playright config I add okay I'm going to make one change at a time here. I'm going to add back in what Kevin so gracefully has given us if I can that's it I'm going to add this web server doodad back in here. We're going to do this. So but the blueprints are not **[101:32]** going to be there. They're going to be in uh out one out two blueprint and it's going to be to in blueprint.js. Okay, so this should this should hopefully I don't know what this is going to do. Okay, process from config that webster was not able to start. Okay, so C wait. Okay, CLI command is not found. **[102:02]** So if I run it with npx okay so it's not it's not there. Okay. So this is this is where things started to fall apart apart. So the web so the the playground cli server command comes from a different version of that package. Right? That's what we figured out. So, if I go **[102:33]** to mpm npm, what is it? Uh at WordPress. Uh no, what the hell is it called? Um that's it. So this is the latest version. **[103:07]** Okay. So maybe what I'll Okay, I did not install it. No, I didn't update. So it's the old one. So the old one is still there. So I need to update that. That's where this is fall starts to fall apart. I need to update to the latest. So in my package. So I'm still running this version and I need to run uh whatever the version is that you're running in somewhere. Not in there. Get out of here. Get out of here. Uh not there. Not there. Starter in your playright or your **[103:38]** package uh JSON. There's a version in there that we need to grab. Yeah, it's not wanting to run locally though. So because whatever what like this is just saying it's not working, right? So I I don't have it installed. So whatever is in the CLI that server does not exist. So if I mpm install that now hopefully All **[104:24]** right. So, we're back to the same issue that you had before, right? So, you had to load this. Oh, like if I just run like you're saying run this just run that whole thing because it doesn't seem to want to do that. And of course the port's not not not going to be right. **[104:57]** 8889. Oops. So it just it that command's not found. So it's not in there. I don't know why it's not in there, but it's not. And even even if if I go like npx, I'd have to run it a different way because the package is like what is the name of the package? **[105:28]** Oh, w CLI. It's not WordPress CLI. Sorry. >> [snorts] >> Right. Oh, all right. Thanks, the lot. Good seeing you. Okay, so it's saying that that doesn't exist. Um, so if I just run this without that blueprint, let's see what happens. I don't know what this is going to do. Maybe it'll spin something **[106:00]** up. Okay. So that's that's spinning it up. So let's go no modules. Yeah. So it's running here. So that's the work. So that's the site. It's working. So the so the bin is not so in the bin in here. It's right there. **[106:47]** Yeah. Yeah. So the way So you got this working Kev by adding that where's that that plugin you added? Um, in the blueprint, right, in your tests, you have this setup plugin that you have to do, right? So, so in your blueprint, I'm assuming you're loading this **[107:38]** Where are you mounting that though? That's Are you doing this? No. **[108:20]** Oh, because you put it in test. It's the Huh. Okay. All right. Well, I mean it the what you have set up is certainly simpler like you know I have all this stuff going on which I don't really necessarily need I guess but um yeah. So, I need to figure out why it's like uh why why why it's failing with the new **[108:51]** there's no PHP handler I think is is what the problem is. Um I think it's telling me all everything's undef just failing all all together because the server is doing a thing here. So, I mean, if I run it, if I go like mpx at word, I know uh was it playground cli, right? If I run it that way, **[109:25]** do I still get does it know what's so still not working? Oh, because I'm not loading that thing. I'm still not loading the file, though. See? Okay. So, here's the thing. This shouldn't like that float file is such a fundamental WordPress file that it should not it should not be doing this. Like you shouldn't have to load WP **[109:57]** load. You shouldn't have to require that. And the problem here, it's trying to find it, but it can't find it. It's trying to load that file, but it's busted. There's my dryer. I don't know if you heard that. All right. Okay. I'm gonna I'm gonna reach out to the playground team and ask about this. And see, because this setup would be way easier to do, right, without, you know, and this assuming all of the other fixtures, like assuming that where am I here? Like **[110:28]** we wouldn't need to add anything to just use this stuff because this is really what we want. like this is doing sort of a a similar thing that you're doing I think in your setup script, right? Like your Yeah, like your welcome guide, all this stuff. I'm I'm doing this at at the beginning of this test using these these things. So, leave it with me. I I'm going to have to I'm I'm pretty much we're sort of uh easy to load it and confirm. Yeah. **[111:06]** I feel my my my gut is telling me that doing it this way is loading something in a particular way that it's it it's it shouldn't and I just need to figure that out because it works without the blueprint. It works. Hold on. You know what? It did work without the blueprint there. So like these tests will all fail. **[111:39]** What's something something about? Maybe it's my blueprint. Okay, I'm going to just I'm going to run the UI so we can see what's what's going on here. Is it Oh, well, I guess the test don't run. Um weird. Okay. So **[112:25]** um in Slack in in the make Slack there is a uh no not too API Um there is a playground room. So this is probably the best place to get at them because you um you'll see uh like uh Adam Zalinski's in there. Um Fif Cra who's like their their Devro guy. He's in there. So I would recommend WordPress Slack. Um jumping in there. Um that's probably the best way to do it. I'm going to have to like show **[112:57]** someone this so they can see what I'm talking about, but um yeah. Cool. All right. Well, as usual, Kevin, thanks for um sharing your code and um um and I will see if what we're doing here seems a bit convoluted, but u maybe it's it could be could just be the way that the CLI is set up. I don't know. Um and it looks like there's been some changes since like the the latest version, so I have to look into all that and see what's up. Um **[113:28]** yes. Okay, cool. Well, thanks everyone. Thanks for hanging out with me today. I appreciate it. As usual, go and check out all of Matt's uh AMA at Bord Camp Canada. And uh I will talk to you all like next week and stuff. Thanks for hanging out with me.