 Okay. If we want to go ahead and get started here, welcome everyone to Simple Steps to Mitigrate Monstrous Migration. It's a mouthful, I know. I just want to ask a quick question. How many people here are sort of more on the development side of projects? Okay. And how many here are more on like the SEO analytics content side? Okay, great. We're actually going to be talking about both sides of this, you know, this problem that we have with content migration. I mean, we all know that migrating content from one site to another is a difficult process. It's a difficult technically and it's difficult sort of SEO and content and trying to decide what to keep, what to not keep, that type of thing. There's a lot of, I know that there's a lot of presentations here that talks about the actual development steps of migrating that content specifically, you know, using migrate module and everything like that. What we're trying to focus on here a little bit is after you get that content in the system, what happens next? You know, there's doing these redesign projects, whether it's your site for your company or whether it's your client site for their company is, you know, it's a really good time to like look at your content as a whole and say, okay, we want to delete this stale content and this other type of content, we actually want to, you know, move it around and put it in maybe a more logical place. So you're doing some rearchitecture on that content. And so now that you've decided everything you're going to delete and everything that's going to stay or move and you've got this bright new shiny website that's all ready to go, you know, what happens now? So you have to think about how your users are going to actually, you know, use your website and what happens if someone tries to find content that's actually been deleted or that's no longer there or tries to find content that's moved into a new location. So you really have to kind of think that process. So in this presentation, we're actually going to be talking about what we do in our company to help sort of make things easier, both on our staff, on our client side and make things that users can actually find where they want to go and they're not going to get frustrated and just, you know, leave. So my name is Christy Dreyer. I am a technical lead and a software engineer at, go ahead and advance the slide here. There we go. Software, a senior software engineer at Beacon Fire Red. And I'm Jen Boland, an analytics and optimization lead also at Beacon Fire Red. So first, real quick about who Beacon Fire Red is. We are a digital agency. We've been around since 2001. And we've helped over 250 nonprofit clients reach their missions. We do marketing, user experience and design. And then of course, web development and mobile development. And of course, we do a lot of Drupal development as part of that development. And ultimately, our goal is to change the world. So Christy talked a little bit about our problem. And, you know, you've just launched your website. You are so happy. You've spent months planning and working on it and dealing with the client, getting all the content into the new system. The site looks spectacular. And then someone like me goes and looks in Google Analytics and sees this. I see all of these 404 errors. And I'm like, man, all of these pages, what happened? How come our three directs didn't work? What's going on? And even worse, followed by that, I see this tremendous drop in traffic from Google or from organic search. And we've just completely tanked the SEO for this client. And I'm just like, oh my God. My hair goes crazy because this happens over and over and over again and we don't have a process for it. So why does this happen? Well, it happens, one, because sometimes our clients dissolve more content at the very end of a project right before they launch than maybe they told us they were going to dissolve. Or sometimes they just don't get done with completing the content migration, particularly if they're doing the migration on their own by hand. And so in a lot of cases, they may be adding content days and weeks after you launch the website. And also what happens is particularly when the client is managing the content migration process, we give them the spreadsheet and we're like, please mark everything that you're deleting and everything that you're moving and where you're putting it. And the spreadsheet comes back to us, either incomplete or with a lot of errors in it. And managing this was just a tremendous problem. And what's even worse, users, when they land on a 404 page, we might as well just be saying, you're dumb. Go away. It's a terrible experience. And that drop in organic search, why does that happen? A big piece of that is because when you have a lot of 404 errors on your website, Google penalizes you in search. So it becomes difficult to rank on things that you even have content for because your overall site has a lower score in Google's mind. Our old solution for this was this giant spreadsheet. This was a client spreadsheet with redirects and there are multiple tabs in the sheet. This tab alone had over 15,000 rows. I was supposed to go through and find the best place to send users for each one of these pieces of content on what I forgot to mention. Four hours of billable time to do it. You know, holding my hands up, I just, I can't get through this. And when I do it quickly, I'm likely to make errors because I'm taking huge amounts of content. I'm copying and pasting. I'm making decisions like sending, they're deleting all the press releases from, you know, 2010 and earlier. All we're doing is sending them to the press release page, but that has nothing to do with the content of the page. We want to get users to a piece of content that's similar to what they were looking for. Even if we've all agreed it's best to delete that old piece of content. So I thought there has to be a better way. So our solution came about as Christy and I were hanging out at the water cooler or probably more likely the coffee machine, to be honest. And I said, Christy, I'm going crazy creating all these 301 reader aggs. You know, I'm getting errors sometimes when I'm using the bulk upload module and, you know, I'm doing things like just sending people to these generic content pages when I really know it's not the best place to send people. You know, is there something that we could do to be smarter about creating these 301 reader aggs? Could we use search? Is there something we could do to make this work better? And so we started doing some development work. And this is when I came in. If I can make her life easier, my life is a lot easier too. So we started to like boil down. So what are the technical requirements for doing something like this? You know, she wanted a quick way of adding those redirects, not having to do them by hand using the redirect module, but having a fast way that she could upload the redirects that we know about. She also wanted to avoid 404 errors. So we want to, if a page exists, or that exists and great, we can redirect them. But if we're talking about deleted content, and we don't know where to redirect, or maybe this is content that's a couple years old that somebody's finding on a link on a blog or something, and they come to the site and they would get 404 errors, we wanted a way that we could serve up some relevant content to at least get them to the place that they want to go as fast as we possibly can. But we also needed to sort of track this process. We wanted to know what users are doing, what are they doing when they hit these pages, when they hit a search, what are they choosing? We also want to know is, are these redirects are good? So basically, if someone clicks on something, we can see what happens when they're redirected to a different page that we could see. So we wanted to be able to track this. And then to do some checking and do some sort of compare and analysis, we wanted to give them a way to easily download the redirects that are in the system so they can compare them with some of the things that we're seeing on the user's behavioral side. So we looked at the existing solutions, and there's a lot of existing solutions. There are, as the redirect module, this is probably something that most websites have. It enables you to quickly type in the old path and put it to the new path, and your site will redirect that as it goes through. The search for a form module, an amazing module that will actually replace the page not found and give you a search page. So it will take parameters out of the URL and it will actually perform a search and give you some search results on that. The path redirect import gives us a way of taking a spreadsheet for these redirects, so we don't have to do one by one by hand that we can actually upload a spreadsheet with an old path, new path, and it will create those redirects for us, which helps with her 15,000-type URLs there. And then the views data export, this is a module that luckily is coming into more into Drupal 8, and it allows us to quickly create something that we can download as a CSV file. So we had all these modules, and they're good, but there was just big important things that were missing. So this is sort of our missing major functionality with all these modules working together. So what exactly is missing, other than the lovely tires on this car? What's missing is the search for a form. It says it works with a search API, but we found it doesn't work very well. It does work with the Drupal core search very well, and just because of the way that the URL is formed, a Drupal core search is going to do a URL with slashes in between various your search parameters because it can be searched and then you have your keyword slash in your keyword. Search API views because we tend to want a lot of control over what those what's shown in a search. And, you know, we typically will use solar or some other type of search engine behind that. So we're wanting to, you know, really be able to control things like facets and things like that. So search API was definitely something we wanted to do, but it wasn't set up that way. The PCRE filter, which again, it's kind of a doesn't really mean a lot to a lot of people, but it enabled the this is in the search for a form module and enabled you to kind of take patterns out of your URL that you didn't want it to like include when it was doing these searches. So for instance, if you had, you know, the word search or something like that in there, you could actually exclude that. So it's not performing a search on that word search, but it didn't do exactly what we wanted it to do because when you have a page and you have these long URLs, so you have some kind of page like, you know, slash your domain slash publication slash March slash 2018 slash and then you have a title of like a blog or a publication. We're not really caring about the March and the 2018 and the publication word. We really just want the end of that URL to be taken as far to your search parameters. And a search for a form module did not do that for us. We're also wanting to add a redirect sort of parameter on that URL. So then when people hit it, she would see the original URL that they're trying to see. So that way she can see what happens when they hit that search page and the user clicked on something. For the redirect module, again, we wanted to add that parameter on the URL so we can see what happens, what's happening with the original URL and then where is that user going? And there was no export functionality in the redirect. So we took all that as miss and what was missing and we actually did a patch for the search for a form module. We're actually hoping to get this accepted into the search for a form module. So we're kind of working on that. But right now we have it as a patch. And what we did was we actually added instructions and we had some modifications and a custom module, which I'll go over and a little few slides here that enabled us to work with the search API. So it's hard to see here, but we actually had some very explicit directions that says, okay, yes, it doesn't work well because of the way that the module assumes your search is going to be performed. But we had it where we could put a string in there with some parameters and then it would actually take out a lot of that stuff and give us exactly what we want. We also added the base name functionality. This little first check box there says, you know, do you want to just use the base name? Do you want to use just the name at the very end of the URL, which is usually going to be the title of your content? And so we enabled it to just do a quick check mark. We're not trying to do some reject expression that actually doesn't even work anyway, but it's a lot easier for someone to say, yes, I don't care about all the stuff that happens before that. I just care about the title of the content. And we enabled a way of just being able to say, add this parameter onto the URL. So again, analytics can grab onto that and be able to track it. So then once we had everything, the search 404 module wanted us to do, or we wanted that search 404 module to do, we further sort of enabled some customizations because what we didn't want a user to do was to land on a search page because again, they're looking for content and then they just land on a regular search page. That's really not going to help them or that's going to confuse them. But at first they're going to say, why am I here? So we wanted to make sure that we can modify that so we can modify the search page to give a different experience for people actually using it for their, you know, using it to find the content they're wanting to. We also were trying to make it easy for us to transport this from one project to another. Things like, you know, making sure that we can adapt to different ways the search pages are built or different parameters in the URL. We wanted to make sure that we could easily transport this from another project to another so it makes it a lot, you know, simpler for everybody. And then we wanted to create the items that the Analytics team needed to download their information to actually collect the information on that user behavior. So on our custom module, we created a view that would automatically be created on installation that was going to allow us to download all of those redirects by CSV. And this is what we use that views data export module for. So it's a very, you know, using that functionality and then creating our view. That way we know we can go ahead and get that no matter what project we're on. And so you can see we just have a link to that. So it makes it easier for her to find it and to download it. We also added our customizable parameters. Things like, I mean, maybe your search on one project uses the word keyword to denote the search parameters. On another project it might use something just like keys or something like that. We just wanted to make sure that we didn't have to build everything in the exact same way that other, especially if we're inheriting a project from somewhere else, we wanted to make sure that we could make it where we can adapt to however that search view is going to be built. We also wanted to make it where we could redo the parameter that the redirect source is coming from. In this case, in my example, we're using redirect underscore source to be the parameter, but it could be anything. And that just makes it easy. Maybe there's a different two searches that you're looking for, you know, two things that you're trying to do. So this makes it easy for us to track exactly what's happening here. And then I think the bigger one is we wanted to allow for custom messaging. So if a person landed on one of these pages, they're not just saying, why am I on search? They're actually, we're able to change the page title of the search page. We're able to give them custom messaging based on, is it, are we finding results for them based on their keyword? Or are we not finding results based on their keyword? And so we wanted to allow for that custom messaging to happen, because in one, you know, exactly, if we're doing something for a client that they are not finding any information, we're going to want to push them to other information on the site. Maybe it's a document library or maybe it's something else. So we wanted to make sure that we could really customize this to the client and they could, you know, go ahead and get the best experience for their users. And then the final piece is we just added some detailed instructions on how to actually configure the search 404 for this. So again, we can have anybody in our company, not just the people that worked on the site or anything like that, but we can have anyone come in and know exactly how they need to set this up for that search API. So we wanted to do a little demo of sort of what our custom module is and all the other parts of the modules are doing. So I'm going to go ahead and get that. So this is one of our clients League of Women Voters. We're going to show you exactly what happens on the live site and we're actually haven't launched this yet just because we got this on this particular site right before Drupalcon and since both of us were here, we're going to wait till we get back to actually launch this. So we'll show you the old method and we'll show you the new method that's on their staging site. So the old method, for instance, we're going to type in something that we know is not going to come up. So I'm going to just search for a page called publication slash Drupalcon. I think I've loaded this correctly before. I'm not sure those sites actually loaded. So this is what you would expect on pretty much any normal site. You find a page that's not found. You make a custom 404 page for your site and you can serve up, you know, something that you might want to direct them to here. For instance, here, we're directing our users to their local lead, which is like their chapters, to do a search there or we can say, are you looking for the league management site so we can point them there, hoping that we can get them where they need to go. So on the new system, we will perform a search. So I did publication slash policy dash voting slash immigration just to, you know, pull up stuff that we knew that was actually going to show up on their site. So if that was actually a publication that was there previously, we can actually serve up different types of content that may be relevant using those keywords as a search. We can also change the title. So say, sorry, we couldn't find that information. So if somebody lands on this, they don't kind of freak out and say, what happened? Did I go the wrong page? Did I click the wrong thing? They're actually we can give them a custom message for doing that. And then, you know, another like the oops, the page you're looking for has either been moved or long no longer and did exist. Here are some similar pages. So a user really can look at this and say, okay, I understand what's going on. And I'll look through this list and see if we can pull up something that that would be interesting. And if you had something in a case where you couldn't find. So just like we did before, I'm going to search for publications slash triple con, which I know is not on the site. Then again, we can still give our custom messaging that sorry we couldn't find that page. We can say another message saying try searching our site for similar content. And we can still give that custom site information about trying to push them to go to that local league search or going to the league management site. Now again, this is all the same page. If I were just to do a search on like voting, for instance. So I'm using the normal search, you'll see that the search title comes back. This is all the same view, all the same page, but we're able to change things based on what that user is how that user is coming to that page. And, you know, trying to to soften the blow of not being able to find the page they want. Right. So one of the great things about the way, you know, Christie was able to plug in a few extra pieces of information that I was able to use for analytics is suddenly I was able to understand things like what page was my user trying to find when we redirected them, regardless of whether or not they were coming in through a regular 301 redirect or if we were sending them through the 404 search. And then also I was able by using Google analytics and the search analytics within Google, I was able to see what page the user selected next. And so to make everything work really cleanly in Google, I use Google tag manager. And I did a few little things just to make everything pass into Google analytics really nicely. I rewrote our page URL so that we could use site search categories that enables you to quickly look at your regular on site search differently from the 404 search. The other thing I did is just a quick thing. I just scraped from the page the number of search results that were returned because that helps me inform my analysis when I'm looking at what happened within Google analytics. So what were we able to do? The first thing we were able to do was analyze the performance of regular 301 redirects. You can see by looking at this page I've got experts William Jones and then redirect source equals experts fellow dash one. Well the redirect source was the page the user was coming from. And then the William Jones was the page that we sent them to. And so I'm able to then look right in Google and see, you know, how many people bounced? You know, what was the average session duration? All the things that helped me understand was this equality visit or did we do something when we created that URL that sort of just scared that person off when we created that 301 redirect. So this just helps me analyze my existing 301 redirects. And we may find, you know, gosh, we really need to go and put that piece of content back that we got rid of for one reason or another. Maybe we need to edit it and it can just really help us make good content decisions because we have access to data that we didn't have before. The other thing we were able to do is we were essentially able to use the search 404 feature to crowdsource the best page to send a user to via 301 redirects. So basically how this works is or how I made it work is I actually used the Google API within Google Sheets to pull in data from my 404 search. So I have my original search URL, so I was able to parse that out of my spreadsheet. And then I had, using the previous page path report, I could then see where people went next. And if I sorted my data in the correct way, I could then have my from URLs and my to URLs using the most widely selected to URL. So in other words, the page that people selected the most when they saw that page, I could say that's probably the best page to send users to. I have it in a nice spreadsheet. All I have to do is copy and paste this into a CSV. And I can upload this directly into the bulk 301 redirect module. So this saved me so much time to imagine instead of having to do 15,000 of these by hand, suddenly I can let the crowds sort of do it for me. And what's really great is that Google doesn't really penalize you for 404 with the first week or two after you've launched a website. You actually have a little bit of time to get your act together. And so while you still should put your 301 redirects when you know a page has moved from one location to another, you should still put your best foot forward. But this really helps catching up the slack of all those other pages that, you know, you didn't find or that you just didn't get to and helping you upload these lists on a daily and then maybe weekly basis as you can. And so ultimately, this solution saved us a lot of time, but really helped improve the user experience for users when they were coming in on pages that have been deleted or moved, helped produce better search results so helped with their SEO, ultimately leaving our clients super happy. Quick shameless plug, we are hiring. So if you're interested in coming and working with Christy and myself and Tim up here on the front, check out our website, beaconfirered.com. And we really hope you'll give us some feedback on our presentation. And last, stay in touch. Here are email addresses if you want to jot them down. But yeah, definitely shoot us an email and we'll get you all the instructions for the patches once they're available. I mean, it's our goal, obviously, is to get this module up on Drupal.org. The only question was whether we could get that patch accepted in the search for a four page or is it something that we actually have to kind of ship with the module itself. So that was sort of where we are right now. But again, it is going to make a huge difference in these migrations that we're doing. We're excited about really, I mean, we said we've gotten a lot of good data so far, but we're excited to expand this and actually pass it on out for everybody else to try to use it and get feedback from it themselves and seeing how other people are using this. And I mean, all that's going to do is make our process better and trying to sort of just really keep that, I don't know, to me as a developer, launching that site is such an exciting process. So when we have data that comes around two weeks later, that's just not good. It's a very big let down. So we're really trying to keep that excitement and keep the way that we can show our clients how we're helping them keep going with keeping all this kind of traffic and things like that from happening. So is there any questions or anything that we can answer? If you want to come up to the mic, probably of the people that arrived on the 404 page, what percentage used the search tool? Well, since this is still on a staging site, we actually don't know the answer to that question. So that that will be a really interesting test for us to see how many people. But yeah, before we just had the link and I never actually looked at the analytics to see how many people click through to then do an actual manual search. But that would be good information to look at. The migration, it doesn't matter what where you're coming from, but if you're migrated into a Drupal site, basically, you know, the way we typically do most of our migrations is that we will pull out this information into a spreadsheet to like a CSV file. And we'll try to get as much as we can in there. And then we will reduce that spreadsheet for a client, hand that to them. They can mark what they want to delete or not. But because we're keeping ID numbers on all of our systems, it's really easy for us to then take their information, overlay it with our, you know, sort of dump that we got out of the spreadsheet or out of the old system. And then we can migrate, you know, easily say, okay, delete all this stuff and we can migrate this in. We're also keeping information like old URLs and new URLs. So when we migrate that content into our Drupal site, we can pull a quick view on here's the old URL, here's the new Drupal URL, and we'll download that to a CSV file and upload that into our redirects. So it makes at least the existing redirects a lot easier for us. But it really wouldn't matter what system you're coming from. I mean, we're using this on a site that's going to be a site core, which is a .NET system. And we're importing that into Drupal and we'll use the exact same process. Are there any other questions? No, search, if you had like a misspelling and one of the keywords are possibly like the only keyword on there, it would probably give you a page not found. You can set up your search if you're using something like solar elastic searching to actually do a, did you mean type mechanism that you could then say, oh, okay, they can click on. No, I, you know, that was the wrong word. I needed mean this one and then they could get the search results up. So that's really sort of dictated by your search engine and how you're setting that up. Any other questions? Is this only passing a keyword search query or could you adjust it to where, like you had or is it you could pass that into the search? You could definitely adjust this to pass other ones. You really, again, your search page is going to take parameters. And so if you were to actually change the, the sort of that redirected to the search page parameters include like topics or include authors, or something like that, you could definitely have it where it would perform searches. It would actually could insert them into your facets if that's what you had on the site or expose views, filters or something like that. You could definitely do that. Okay, if there's any other questions, actually get you out really early. So yes, definitely let us know. We hopefully will be, I mean, if you guys want to email us, we can definitely send you sort of what we have, but we will be getting this on Drupal.org as soon as we possibly can. We're just trying to figure out the best mechanism on that search for a four piece as we can. So, all right, well, thank you. Yeah, it's definitely, let me go ahead and give you my card just in case you don't hear from us soon enough, but we'll get you that as soon as we can. So I think it's fantastic. Oh, thank you. Thanks. Great presentation. Thank you. Thank you. I would like to use that, it was really good. Good, yeah, if you have a card or something we can just make sure. Okay. Did you jot down our email addresses? Oh, I was gonna say, I can give you mine and you can at least follow up with us if you, so. Thanks. Yeah, thank you. Thank you. Sure. Right, I think it was more about the, we had to give the clients sort of an easy way of actually saying we don't want this content and our clients love spreadsheets. So, we decided to, we used the migrate module to pull in the stuff from the CSV and do any kind of transformations that we need there, but it was more about getting the content into a usable format that our client could say, nope, we don't want this one, we don't want this one. Yeah, and sometimes our clients actually do all the migration by hand. And that is where this really comes into play. Because when the spreadsheet comes back, they miss things and, you know, then you launch a site, you're looking at analytics and you're seeing all these errors and stuff. And we're, I mean, we're dealing with non-profits, so it's usually a staff of like two people or something like that that are working on the website. So, it's, we're trying to give them tools that they can use and, you know, help this whole process, yeah. Yes, yeah. Thank you. Sure. There you go. Oh, that sounds fun. We're doing psych work, which has been really fun. Okay, great, thank you. Thank you. Well, thank you. They're short though. That's okay. I don't think anyone cares getting a little time back in the day. Yeah, she's a co-worker. Thank God you're up, Luminate, we already worked for her. Okay. Okay, yes. So, we have a spreadsheet, two tabs, and I would say, okay, four, seven, say, three, one. Then I looked at, like, say, five, three, or do you just go to each one? Three, one, I think it's so research doesn't get things, actually, we'll do those things. Yeah, so probably the four of the, the four of four are probably already pages that people are trying to get in on and don't exist for one reason or another. So in an ideal world, you would identify where all those pages should go to and create a 301 reader-act for each of those pages. Or you can use our little solution to try to get people to crowdsource that answer for you. Because this is what I was coming to, right? Like, I'm the person handling, putting in these 301 reader-acts two, three days before site launches and no one would tell me how many they were gonna have. A lot of times you're just guessing, too. Yeah, and they're like, I only have three or 400 and I get 10,000 and I'm like, so, and to do it with accuracy and so forth, this just kinda helps us when we can't do it the right way, which would be to go through each one manually to put a better user experience in place when we don't get the right, when we don't have a 301 already in place. And then to help generate a list of potential 301s that we should upload. So. Yeah. You probably want your card somewhere at the bottom of all of this. There we go. Hi, can I? Thank you. Yes, we do. We've worked with a couple international non-profits, so I don't know that we've worked with any Canadian groups specifically. Do you know the Canadian non-profits? Yeah. Yeah. Sure, there you go. Let me get my card, too. And so what organization do you work for? Okay. Okay. Very cool. Sure, definitely. Awesome. Thank you. Oh, it's okay. Do you have, like, your slides? We're gonna be uploading them to the session thing, so yes, definitely. I guess. They're all videoed, yes. So, though, I think they upload that within a few days. The video might even, last year they had them on the same page. Right. But certainly not, probably, I needed to count the video and the slides. Oh, it's okay. Great, thank you. Make sure you get your bottle of water. Yep. Not anymore. Not anymore. Well, Google made their change to... That's right. The only way to handle that was when you go to a gray bed. That's right. They stopped panelizing it. A tiny bit of controversy as to whether or not you get a small panel thing. Right. But it's pretty minor at this point. Okay, yep, there's one thing I worry about. It used to be about 30% panel thing. That's what I worry about. Yeah, but that definitely changed with the HTT. We can't ask for one thing. How can we do that? Yeah. So that was the one advantage that came. Yeah, because I think you were like, I think someone put it on the panel thing. Thank you for the... Like, what... What... What did you create for it? You create... Like, baby more than that? So... So that's the panel thing? Yeah. And so you push it from that to that? And I have no... David and Tuva's one. David, I would do all people use it. You're forced to on the panel. It's not going to be anything else. But is it something you find helpful? Well, if you're interested in working on it, it's a much-enjoyed way to do it. You don't work with configuration. You don't have... For backstage, what? I'm just looking for a way out. There is a way out here. Oh, okay. We're using your laptop? Mine? Oh, okay. Do I have to present it? You ought to. Really? We can use mine to be your dongle. Yeah, I do. Is it the same that would work for mine? Yeah, I think it would work for Kara as it would work for mine. Let's just double-check from the right. Screw you. Do you want me to get it out? Do you want to see? We're in C. This is C. Got it. We're good. Do you not have it? I just... And you can't get it? What's happening? Whose computer are we using? I'm getting my note just because I have time to get it out. Why don't we have them both in there? And then we can have it up here, too. And then we'll always have a record. So glad we could work with Gonger already. Did I get my dongle back? Oh, yes, you did. She gave it to you. I'm just going through things mentally. I'll probably put it in one of the many... Put your pants in 10 bucks. Two pockets? Hockets here. Hot hockets. Otherwise, would I put you there to provide one? You can, hopefully. Here it is. You know that one person in the camping trip who spends her whole time zipping and unzipping things? It's you. Yeah. Drive somewhere, isn't it? Mm-hmm. I'm just talking to Saber. I already downloaded it. I'm here to roof down. Are you the Russian judge? No, but I was in the first session here, and I really had no seat, and then I saw that there were people who had, like, a chair. Marvelous. As long as there aren't scorecards, you're going to be holding up later. Yeah. Be kind. Don't get excited. It's out of 100. Oh, it's out of 100. Oh, no. I'm going to start closing down some things. This one from March 20th. Why isn't this working? Here we go. Internet? Oh, yeah. I've been talking for 10 minutes. I wanted to check that I was in the right room. Oh. Maybe because we're in the back corner of the building. Yeah. The desk? It's working. I have to restart the computer. It's really slow, but... I seem to have succeeded in my efforts. Got it up, David. Excellent. Mine's now saying it is. We will not fail this presentation. I need messages. Just turn it off. I just want to do it. Ta-da. David, did you put the conference placeholder? No. Oh, God. I got it. All right. I've got it covered. And then I guess I'll have to send it to you. So don't bother downloading it because it will be different. What time do we start? Too soon. Oh, too soon. I need time. All right. I'm not sweating. Let's do something with power. I hear you were heckling Carrie yesterday. When? It's your presentation. I let her know that her voice was too low. Heckler. Heckler. Heckler. I would appreciate if there was something in an audience. Literally no one will ever say that about you. Goose, gander. Yeah. Pot, kettle, et cetera, et cetera. I'm not saying people will say it about me. I'm just saying. I'm not plugging in there. That's something else that's plugged in there. That's enough power. Is there no power bar down at the base of the podium? Whether it's your smart person. It's not my first rodeo. It's my second. Second. It's not the right one. All right. Let's get the right one. I saved it. We might have pulled the wrong one down. Sorted by date. Oh, did you save it in documents or downloads? Documents. I don't think you saved it because it wasn't saving when I did it. Okay. Nope. Skype. Oh, it was in Skype. Turn Skype off. Well, I might have done it. This one. They'll be here. It's down there. I just don't touch anything. Anyone wants to do a dysfunctional team? Looks like it's the first half hour. This is just personal dysfunction. Don't make me laugh. No, it's supposed to happen. It's hilarious. Let's try again. No, that's a good one. I'm happy with it. I'm not unhappy with it. That's the point of it. I'm not unhappy with it. I don't know what it is that you were doing there. I don't know what it is or does, but it worked. It's what all the cool kids are doing. Awesome. Deb sent a message yesterday that said, Good thing your presenters are so handsome and smart. That's like most of the story of every day. It was very cute. This has to be downed off. I'm not distracted. It's my monkey brain. If something's shiny and new, I look at it. I don't know. It's still downloading. It should work. How irritating. We can put it up. We don't need to do yours. No. We can't get it to work. We'll just have the one. I'm just missing the fancy slides anyway. Yeah. Yeah, we can put mine as the one that's being displayed. So why don't we just do that? And then don't even worry about downloading it. Get it to download. It's almost done. It finally did that one. Just to say.