Hello, hello, hello. Actually, the late Paul Lewis is now in the cloud doing machine learning. Poor one out for Paul Lewis. So here I am. Hello, Copenhagen. So I saw this bit recently, and I really wanted to try it on stage. So Bill Bailey did it. And what he did is he made the audience clap, but not clap like in applause, but only exactly once. So like, put your hands together, exactly once, in sync with this. Are you ready? What an amazing sound. Nailed it. OK. Enough time wasted. So, hey, welcome. This is supercharged, which we usually do. Sermacharged. Sermacharged. I'm rebranding, because as you know, this person is not the bald Paul Lewis. I'm wearing a hat, though. This is the boldest cap that I could find. Close enough? Maybe? Colour colors. Monica luckily agreed to assist me today. And we're going to do the supercharged Life, Life, Life, as it is now, I guess, tradition. But Paul did move on to DeepMind, and is now working on basically on Google Home and has been working on the next edition, which is going to be the Google Home Developer Edition, or as its code named, the Chrome Home. And so we have a developer preview that we can hopefully show off a little bit today while we do our code bits. So it should be work pretty similarly as it usually does. And yeah, just. Do you want me to do it, because your accent's kind of funny? Yes, please. Hey, Chrome Home, what's the weather in Copenhagen? Bleep. Wait, really, I'm programmed with the knowledge of 50 Chrome developers. I know all about web APIs and standards.  Yes. OK. The weather in Copenhagen is kind of nice. For further details, please consult your nearest window. We're going to maybe make use of that later? We'll see. It doesn't seem that helpful. Might as well have a third of a little later. I guess Louis has been spending his time very well. Let's do the thing we're actually here for. What is it? We're going to build something. Sweet, what is it? We are going to build custom elements, because after all this is the Polymer Summit, so I thought we should at least be using custom elements. Although I'm actually not using Polymer. Well, can't want it every time. Because we were focusing on the other thing that you said was use the platforms. We're going to show you the low level stuff. And I thought something that I have been encountering or noticing lately is that a lot of sites have, or blogs especially, have images like these. I have some images of Copenhagen on this test site here. And they load the images right away. Like you load the page and all the images are loaded. And that is actually pretty hurtful, because when you look at it, you have like 1.4 megabytes for opening a web page. And maybe you just want to read the first paragraph and then leave. And that's not cool. So I thought you could build like a lazy loading kind of custom element. I'm lazy. I'm into it. I'm going to stop you right there, Serma. So I would like this. Paul Lewis told me not to ruin his legacy, so we have to do some housekeeping here. We would love questions from you so that as Serma is banging on the keyboard, we can actually answer your questions, because who knows what he's going to do. And because we don't have comments on the YouTube stream, please tweet with the hashtag supercharged. I will also be looking at Polymer Summit, but I assume you're just going to be tweeting about how awesome we are on Polymer Summit. So hashtag supercharged. Ask all of your questions, and I will answer them. Or the Google Home. Or forward them to me to distract me. You know the usual deal. If you've seen this before, you know how this works. But we don't have the YouTube chat this time, so we are using the Twitter's, which also, not Waldorf, does Serma. You should totally follow us. It's totally worth your time. But don't tweet at us, because I'm not reading my Twitter. Just Polymer Summit is supercharged. That's all I got. All right, Serms. All right, let's go. Do it. All right, so what I have here is a pretty empty website, but we have four images that I totally took myself in Copenhagen. And we're going to try to make them lazy load. And just to show you what's going on, it is super vanilla. It's literally four image tags with four spacer diffs in between. And the styles are just, the spacer is just a very high diff so that there's some space in between. That is literally all we got and everything else. We're going to write here, write in our lives. You can actually watch and ask questions and stop me if I'm being stupid. So instead of using the image tag, we are now going to turn this into our SC image, because branding is important. It's our supercharged image tag. And to use those, we actually have to, of course, define the elements. We're going to include a new thing, which is called SCImageJS. Bigger text, bigger. Yeah? Like this? All right. SCImageJS. And now the usual dance, where we go, OK, SCImage, Extents, HTMLElement, Constructor, Super. There we go. Wait, but your constructor is not doing anything. Why is it there? It's just have an element at first. So now the images are gone, because the SCImage element is now in use, and we haven't done anything. So if we look at our thing, HTMLElement, this should be saying SCImage. And that is because I didn't actually call custom elements defined. So my class will just exist, and it wasn't used. So I'm going to go with custom elements define SCImage. SCImage, I think. That's how it works. Yeah. You can still see anything, but now it says SCImage. Now we are actually having our own custom elements in place, and now we can start working with them. So the first thing I want to do is make custom elements by default our inline, display inline. And for images, we don't really want them to be blocks or nice and wide and fill the space. So we're going to use Shadow DOM to give this element some inherent styles. You should make the text even bigger. Even bigger. Also, somebody asked, he is using VS Code, I believe. It is VS Code. So let's create a template, and the template gets some in-ihtml, and we're using some template tags. And in here, we have the style. And the reason I'm using a template is because instead of, in every constructor call, I could just be setting in-ihtml, but that always starts the parser, which I don't really want. So I'm going to use a template, which is much quicker to instantiate. So in here, I'm going to say display block, because our element is supposed to be display block. In our constructor, I'm going to say a Ted Shadow mode open. Can I answer your question from the livestream? So he didn't actually need to write the constructor. He wasn't going to add anything, but I think he knew ahead of time he was going to add other things. You're only calling super. You don't need to define the constructor there. I do it anyway. It's just like muscle memory. Just like, because sometimes you don't want to add stuff. So now we can do a template, content, clone node, node true. Wow. This is a family show. So let's close the console. And hopefully, we should say display block, so our elements are not display block. That was our demo. Thank you for coming. We're done here. That's it. Not quite. So let's see how we can load the image. Again, what I wanted to do is to load them when they come into view. And there's a new primitive on the web, which is called intersection observer, which allows you to, why don't you explain it? Intersection observer is a thingamajig, so that when you scroll a thingamajig into the view, the intersection observer says, hey, that thingamajig is into the view. You should do something about it. That was super concise. It's really useful if you have a giant block of text and an image at the bottom, and you really don't want to load that image until that image is actually in the view, because maybe it's never going to get in the view. So when it comes into the view, you're like, bam, show that thing. All right. Hey, I've got a question for you. All right. Why is your template outside of the class? Because I don't want to recreate the template for every instance. It's just there for me to reuse. So it's going to be parsed once, and I can re-instantiate it every time when a new element is being created, which is super fast. I mean, unless you're creating like a million images, this is actually going to make a difference. Most of them it won't, but this is just a good pattern to adopt so you don't run into these kind of problems. OK, intersection observer. Let's talk about these.  And this callback is going to be called every time some of your elements change their state, and their state meaning being inside the viewport or outside the viewport. When they intersect with the viewport. Hey, Krumhum, how do you say intersect with the viewport in German? What? Sorry, the SIRMA module has not yet been installed. Google it. Intersector does a viewport in Civil Play? Did you mean help my nebada von nebrenz? Yeah, yeah, that's what I meant. Well, that means help my bathtub is on fire. Sorry, Google Play Services has stopped. God, it's not working really well. I'm not impressed with Paul's work recently. It's been gone for like two months, what it's been doing. It's downhill. So the callback gets a number of... It's a callback that, as a parameter, gets a number of entries. And each entry is for different elements and how the state changed. So we're going to go through all these entries, and if that entry is intersecting, meaning it is currently inside the viewport, on the element, which is the entry.target, we're going to set an attribute, which is going to be called full, which is meaning it should now show the full version of the image. And that is pretty much all we're going to use in Intersection Observer 4. Whenever an element scrolls in the viewport, the attribute full is going to get set, and then we can react to that change with our standard observed attributes that we know from the custom elements. So for that, we need our static getObserved... observed attributes, which is going to be the full attribute only. And since we only have that one observed attribute, our attribute change callback doesn't need any parameters because we know it's just going to be the full attribute. And what we're going to do is, if it's already full, we're going to return because we're not going to load the image twice, once is enough. And otherwise, we're going to create a new element, create element image tag. Image source is going to be this, the source, and now I just forgot that I should get some getters. So we are using this dot full. While you're doing the getters, lovely question from the audience, which browser support Intersection Observer, and since I'm too lazy to Google it, hey, Chrome home, which browser support Intersection Observer? It's Edge 15, Firefox 55, Chrome 58, Opera 46, and Samsung Internet 5. That's actually pretty decent. So it's something, there is a polyfill, I think there is a good polyfill for it. That you wrote? What? Didn't you write it? Somebody else wrote it. I did the first version, then I pass it on to other people who are much smarter than me. Nice. But you don't need it, apparently, because that was actually a pretty decent support list. So most of the time you'll be running without it. So you're doing two getters and setters for source and for full? I'm not doing setters because I'm not gonna... Don't set anything? Yeah, pretty much. All right, so we're creating a new image, we're copying the source from our image to the actual image tag, and then... And the reason why we're doing that is because the moment you set a source on an image, it's gonna start loading. You can't stop it from loading on that image, no matter how hard you try. Exactly, and now we're gonna wait for it to finish loading. Train, don't stop in that platform. And once it's loaded, we are gonna shadow root, attach it to the image. That is actually not... That's not right. That's a pen child, right? Next. This looks pretty okay, I think. Let's give it a try. I'm sorry, did something wrong? Where's my console? Nothing is happening, which makes sense because I just created the Intersection Observer, I didn't use it anywhere, which, you know, might be helpful. So on connected callback, this is the second part of the API. So the Intersection Observer you create, you pass a callback in to know which code to actually when something changes, and then you have to tell the Intersection Observer what to actually observe. So I'm gonna call observe this because you're gonna observe the element itself. And because we are good citizens of the web, we are also gonna do our disconnected callback and call unobserved. Nice. So now we're getting errors on line 13, which is totally what I expected. It's, oh, set attribute. I always just like this. I only wanna set the attribute, and yet I still have to say set it to an empty value. Or true, yeah. Or true, I guess. Whatever you want. But it just seems unnecessary. So let's do this. Backwards compellingly for you. I guess nothing is happening. Oh, because we are setting full and then we're checking a full, which we just set, and therefore this is not smart, so I'm gonna just call it loaded. So we're gonna have two attributes, two properties now, the full attribute and the loaded. Full is when it's supposed to be on screen and loaded when it actually is loaded and on screen. So in this callback, when it's loaded, we're actually gonna call this loaded is true. I'm not gonna define, even define an attribute because this is live and it's gonna work anywhere, right? So let's see. Cool. I mean, it's a little bit big, so that's not, but it's, the image is in here in the shadow DOM, so that's good. To be fair, he didn't set any styles, so it's gonna be as big as it is. Yeah, let's change that, shall we? So our image in here, and this is what I love about the shadow DOM, I don't have to do like complex selectors because it is scoped by the shadow DOM anyway, so I can just go image and say, with 100% and be done with it, boom. And now the thing is, if you go to the network panel, only image A has been loaded with 265 kilobytes. Once I scroll down, yes, the second one loads. Scroll down, that one.  So does the IntersectionObserver run on every pixel scroll? How does it actually work? Is it performant at least? It is super performant. So I think, as far as I know, if you don't use the polyfill but have a native implementation of IntersectionObserver, it hooks into the actual layout engine. So the browser is obviously the only entity that knows if something is on screen or not. And once it is on screen, it chews up one of these callback invocations. And those are dispatched in idle time. And that means you will only get to process these entries if the browser has time to do so. So if you're busy encoding a GIF or whatever people do these days on the main thread, your IntersectionObserver callback will be delayed until there is actually a headroom to do this kind of... So you're not blocking layout? You're not blocking paint? You're not blocking your animations? Or scroll? It's great. So it can basically only get better because the most important thing really should be to be interactive for your user. Cool. All right. I'm gonna answer some more questions. Is that okay? Is that how we do it? Is that... You're doing pretty good, actually. So one of the questions is, if the image content is the Shadow DOM, can robots access it? So like these search bots, and they can if they run JavaScript. So this is the same question for SEO. Yeah, pretty much. And that you saw... What does SEO stand for? Search Engine Optimization? It served my Engine Optimization. Served Engine Optimization. I like it. Perfect. Yeah, so as you saw, exactly the same answers in the SEO talk are from here. If you're running JavaScript, it will be accessible in there. And also you should probably set some alt. We're not doing this because it's not live. It's not production. I should be setting alt. But that image doesn't have an alt. Rob Dodson is probably in the audience and not impressed. He's gonna punch me. Yeah. Please don't punch us. Because I was honest how to... I'm honest how to team and I didn't do the accessible bit. Yeah. I'm actually bad. Okay. I mean, that is pretty cool. This is working. We could say we're done. But there's something else. If you start on the... If you scroll down and read out the page and scroll up, the image is kind of popping to existence because at the start our image has no height. And then once the zero height diff comes into view, the image suddenly it has a height so they kind of appear, which is really sad. So what I would like to do, and this is something where this image is gonna be better than the native image element, it's gonna have support for aspect ratios. So we're gonna... I mean, you can do it with native elements. You're like preemptive three questions from Twitter. You're nailing it. Bam. Impact. All right. So what we're gonna do is we're gonna write like a tiny bit of a backend. So I'm gonna bring the sidebar back real quick to create a new file, which is gonna be... No, not in here. Down here. There. I'm gonna write a little backend and we're gonna be using some express because whenever I do nodes, I just use express because it's easy. And we're gonna kill our Python web server and instead start our new server. Are you gonna do some server side rendering, you would say? It's gonna be server side rendering. Yes. I'm here all day. So we create a new app and that app... Hang on. That app uses the express static middleware because mostly we're just gonna do static page delivery and app.listen on 8080. And so now everything should be working the same. Cool. It's still loading. Now we're using our new backend. And now we're gonna do something new because we're gonna define our own route for HTML files. Request, response. And what I wanna do in here is basically inspect our images to figure out what their aspect ratio is and do some CSS hackery to give the elements an aspect ratio so that they retain their aspect ratio even if the image data has not been loaded yet. And to do that, we have to first figure out which file is actually being loaded. So let's do the file path, which is request URL. And if the file path ends with a slash, that usually means that we have to add index.html, right? Because if it was a slash, it's a folder and that kind of deal. And now we have to read the file, basically. And to do that, you have to do the FS module. I'm on node eight, so I can use all the new shiny stuff. So I can use the new promiseify function from the utils module to turn the old callback version of file system into a promise version. And we all like promises, so I'm gonna do that. Hey, Google Home, do you like promises? Oh, Chrome Home, sorry, do you like promises? Yeah, I prefer streams, though. Nerd. All right, so it's pretty simple. We just pass in a function that has the standard node callback layout where the last parameter is a callback with error and result and it turns it into something that now is a function that returns a promise. And that means that we turn this whole thing into an async function and can now do const. So if you're gonna read the buffer, we can do await, read file, file path. This is gonna work because we have to add static. Then we can turn it into a string so we can send it back and then we can send these contents back. Let's hope that works. Still working, cool. So now we can read files the way which I think is much nicer to read than having either promises, all callbacks, honestly, async away really makes this code much easier. All right, we have the buffer, we have the content. And now we're gonna do some post processing on it because we need to figure out which images are being loaded, load all these images and then figure out what the aspect ratio is.  Oh, God. So, but some people don't know, split- For the record, I haven't seen this code before, so I'm getting like anxiety every time he says these words. Like we're gonna do some regex magic. Do you wanna write the regex? No. No, okay. Can I answer some questions though while you type your regex? Go for it. Because nobody needs to know what you're doing. I'm gonna explain the regex, so go for the questions and then I'm gonna do the regex. Why aren't we extending the image element with isEquals? Because that's not a thing. That is not a thing, unfortunately. So isEquals is one of the battles we lost a little bit for custom elements. I mean, it's in the spec. It's in the spec, but it's not actually implemented everywhere. Not even Chrome, I think, has it for the new one spec. So it doesn't actually work anywhere. The polyfills don't have it, so you can use isEquals all you want.  Some browsers have expressed very strong dislike of the isPattern and if one browser doesn't do it, there's no point so far at least in just doing it in some browsers because it's also very hard to polyfill. I don't even think it's polyfillable at all. Not sure about that, but for now we have to live without subtyping native elements. We can only do HTML elements and nothing else. Mm-hmm, carry on. So what I'm gonna do, we're gonna write a regex and we're gonna find all the scImage elements and we're gonna do this. So we wanna have everything until the closing tag. Come on, let's see image. It's beautiful, isn't it? And let's keep it this way and let's call join down here and let's work on the source for a bit so we can see what is going on. This means it is not working. So that's good. We're splitting this. That is correct. Thank you very much. And my images disappeared, which is actually true because I need to put parentheses around this. So now this should look the same. The good part is that now new content is an array and it's either gonna be remainder code or it's gonna be just one isolated scImage element. I can just to show what I'm talking about, I'm gonna console log new content for a bit, gonna refresh and then in the console, it's an array and every second element now is an scImage element because that is the part that matches the regex and everything that doesn't match is gonna be put in another element. So we now just split apart our entire document into what is an scImage and what is not an scImage. And now we can do post processing on that. So what we're gonna do next is we're gonna remove the semicolon and we're gonna map. And each of these items is if the item starts with scImage, actually when it doesn't start with scImage, don't wanna do anything because we don't care about it, so we're just gonna return it. And otherwise, we want to figure out what the actual source attribute is. So again, we're gonna do regex because... Oh my goodness. That's how I roll. There's parentheses around this and that and then we're gonna do an exec on the item. And then we're gonna return something. Let me think for a bit. Let me just do a test. I'm gonna return the source just to see it works. So now we know the source actually has only the value of the source attribute. So that's good. It's probably gonna read that file. And now we're gonna do the item. Actually, no. The item can actually stay. What we wanna do now next is we wanna actually figure out what the aspect ratio of the image is. And this is where it gets... We go into a little bit of the weeds of the node ecosystem because now we have to look into image processing libraries. I just Googled a bit and took the first one I found which is called GraphicsMagic for short gm and we can subclass it to use image magic because that's the only one I've installed on my system. Don't worry too much about it. Basically all the image processing libraries can do what I want, resize images and figure out what the size of an image is. And what I'm gonna do down here, I'm gonna load the image. And that's fairly easy with this library. So I'm just gonna do static plus source. And let's just do a console log to see if that worked. I hope it will. So this should all look the same. Looking good. We have loaded an image. Size function.  But the cool thing is, promissify the function I loaded from node eight actually works on libraries as well. As long as you've conformed to the standard callback pattern that node has, this is gonna work. So I'm gonna call image.size bind image. I pass on a function. It's gonna turn that function into a promise version. And then I can do with height await sizefunk. Why are you doing all this awaiting? Why don't you do it sync? Because the library is not synced. That's how callbacks work. So this is gonna. If you would have done it sync, it would have been fine. I'm using await inside the map callback which is not an async function. So I'm just gonna make it an async function. And for that to work, I also have to do a promise.all because now all the array elements are gonna be promise values. There we go. This should work again. Cool. Cool. So we see we have four image on our page and we have four widths in heights. Magic. That's why it's called image magic. Because you just do some code invocation at some point you get what you actually want. Now we have to... Now we talk about something that I really like. The... Animations?  No, not yet. I'm gonna talk about the aspect ratio hack in CSS. Ooh, we can ask Google. We can ask. Go for it. Maybe I'll understand you. Accent. Down. Hey Chrome home. Bleep. How does the aspect ratio hack in CSS work?  So you have an element and it has another element or pseudo element inside it that has a padding top that is the aspect ratio that you want and then within inside it you can use absolute positioning to keep something the same size. Now everybody totally got that. That was well explained. I'm hoping the code will now actually show how this works. So the weird thing is when you define a padding top a percent in percentages. So padding top 50%. That 50% is not the height but the width of the parent element. Don't ask me why, but that's how it works. And the cool thing about that is that we can say here, actually I should be using a temp attack that this we can abuse this basically to define an aspect ratio because what we're gonna do is we're gonna do height divided by width times 100 in percent. And that means the wider the image is it will grow in height as well because padding top is proportional to the width not of the height. This hack is also really good for iframes whenever you're loading like a YouTube video that you're importing and it's always a weird aspect ratio. Do this for everything. So just to show that this is actually working I'm replacing the closing characters of the elements to inject some styles which are actually... The closing. Yes, like this. Let's take a look at this. Okay, so you can see we have injected percentages successfully. So let's look at the actual visual version. Not quite what I was going for but we can probably fix that with some styles. So we're gonna do position relative. And so the problem right now is that we have a padding on these elements and the contents of the child are being pushed down by the padding which is not what we want. So we're gonna just absolutely position the shadow DOM image inside at the top and at the left so it doesn't really care. What? Oh, I think it rolled so fast. There we go. And because we can't really see it I'm gonna slow down the network which... Where is it? Is it down here somewhere? There it is, network conditions. Let's do it on slow, fast 3G. I think it should be good enough. So you can see the rectangle is there even though the image is not loaded and once it's there it just replaces the right rectangle which is still underneath there technically but now we have images that consume the space the image will need once it's loaded. And that's something the native image tag doesn't do. It does not. I mean you can use the same tag on the native image element you can just define a padding top but I thought that this was a really neat trick to show off.  That is the best part. If someone loads the page at the bottom for some reason and scrolls upwards stuff is not gonna jump around because the images already allocate the space that they need. The only thing I dislike about this is that they kind of like the red squares are really annoying. I'm gonna steal a question though first. The question was what does the host selector does? Oh that's a good question. And that is, I'm gonna take that one. It basically is to style the custom element itself so if you think of a custom element it has basically like its shell of a custom element and host is that element itself not the things inside of it. And something you can do, fair warning, is if I'd written it like, oh actually I should have put it down here, something like this wouldn't work. I think because you cannot really, would this has worked? That definitely works, yes. So it's a function, I guess. Not a... It's like a pseudo... Not a matcher in the classical sense. So that's something to look out for. It also can't go down multiple children I think only top level children. It's a little bit iffy to have good documentation on developers.google.com. Which you should totally go to and read up on this. And yeah, as I said, these red squares are a little bit sad. So what I'm gonna do instead I thought we could also do... An animation? No, not yet. But maybe later. Maybe I will humor you. You're not a one trick pony. I thought I would do the medium bit where they have the blurred version of it. Like a low res base 64 image background from Twitter's suggestion? Do you think we should do this? Oh, someone has been thinking along. I like it. That is exactly what I'm gonna do. So we are gonna generate a thumb. And because, as I said, the library is async, we have to create a new promissify function again. So I'm gonna call resize. Dot to buffer. Dot bind to the image because otherwise it doesn't work. And then our thumb will be the thumb... thumbfunk. How do you say thumb in German? Chrome home. Hey, Chrome home, how do you say thumb in German? Ein thumb. It's actually Daumen, but that's all right. So I thought I would do a thumb size because we can probably play around with the resolution a little bit. So I'm just gonna put it here. Thumb size is gonna go with 8 because that seems reasonable. Thumb is now the image buffer. Actually, that's not true. Or is it? That is something that needs to go here, if I remember correctly. And here we need to say png. There we go. Do you have all your brackets? Do you need an extra bracket? I think so. I think I'm good. It's not complaining. And so our thumb URL, what we're gonna do is we're gonna encode the thumb version as a base64 inline URL because we don't want to wait for the network to load a low-res version so we can then show the high-res version. So we're just gonna put it inline into the document right away. So when the HTML arrives, we have something on screen which I think is a much better experience. So the thumb... Somebody on Twitter wants me to do the animation stuff. You guys, I don't know how to animate anything. Like a transform is too hard for me. I really should. We're not gonna do much transform today, I think. Yeah, I know. And luckily, nodes in contrast to the web has just to base64, which is really convenient. Nice. And what we're gonna do here is we're gonna do, say, our background URL, background image is a URL and in here we're gonna do thumb URL. Boom. This looks about right, I think. I'm still on the slow network so we can actually see the loading pattern or I'm actually did a mistake. I probably did a mistake. That's not defined. Why not? No. But it's right here. Oh, that is... It should just be thumb. Thank you. A Zehen-nagel. Zehen-nagel? That wasn't quite what I was hoping for. I think it's actually correct because it's just an 8x8 image tiled all over the place, but that's not the visual we were looking for. Gotta stretch that out. We're gonna do, in the inherent styles, I'm gonna say background size is 100%, 100%. So we're on fast view. This is pretty good, but now, your moment, what could we do next? I'm gonna answer a question from Twitter. One of the questions was why didn't you just distribute an image as a slot in here? That would be annoying, wouldn't it, for every image that you wanted on your screen? Yeah, also that wouldn't be framework compatible because then if you, whenever you have something out of my trends, in general, it is rarely advisable to just sprout new children into a custom element dynamically. No, but you could have had the SC image, and then you would also put you as the page author, put your image in there. That's just annoying. You're writing the image twice. Yeah, no, I like this better. Yeah, just do it as a child. To be fair, that would work as well. I feel like it would be more work for me. I would copy and paste it twice. Okay, so I'm gonna ask you again. What could we do next? Put on your hat and get a clap out of people? Yes. I genuinely don't know the answer to this question. I think people might not be quite awake. It still works. Okay, so I'm gonna ask you, what are we gonna do next? This is your moment. We can do some animation. We can do some animations! Actually, it's gonna be super, super easy because the thing that annoys me a little bit is you have this nice blurred version and it's gonna be like... It's gonna be a little bit nicer. Are you gonna do a transform over there? No. You're wrong. So what I'm gonna do instead is we're just gonna... There's a fight on Twitter about how to properly translate thumb and thumbnail for the record. I'm gonna get in on that later. Yeah, yeah. So I'm gonna define a keyframe animation which goes from opacity zero and that's it. What does it go to? It goes. So I'm gonna put this on the image and the nice thing about this is that this way the browser will know it's an animation. It will do the whole promotion to its own layer and make it fast. And if you're writing production code, you'll put all the other vendor prefixes for keyframes and all that jazz. You have tools for that, right? I don't write those by hand. I do. We have forgotten the most important thing is we don't copy it. We never do production ready code. It's super charged. This is about concepts and things you can do on the web, but you shouldn't be copy pasting this. We didn't do accessibility. We did not do accessibility. I didn't reflect on my properties correctly. I only have gathers and no setters, which is also not nice. We're not even handling if you change the source on an element. If you're scrolling really fast and you're creating children a lot. You can't do that. You can't do that. It's so easy to load images lazy and have a nice transition on it, not to have an element that you can use everywhere. But still, I think the concept is pretty interesting. The last thing I'm going to do is I'm going to put an animation duration of five seconds on it mostly because I want to see the thing happening, not because five seconds is a good value here. But this should be enough to actually have the image just fade in because by default, the opacity default value is one. So I'm going to go ahead and I'm going to go ahead and transition to the default value. And secondly, animations don't loop by default. So I don't have to worry about the fade going over which is going to fade to the end position and stop there. So hopefully, we're going to see a blurred image. It's going to load and then it's going to fade in. Right? I'm going to scroll down. We can actually do the swaddling now because we don't want to wait that long. It makes a much nicer experience. That's wonderful. And just because we have a couple of minutes left, I'm just going to show you one thing. If you're more into the pixelated look, one property is all it takes. And I'm wrong. There you go. And that's something when you like increase the resolution a little bit on the thumbnails. Let's go to 16 by 16 because why not? You can actually see the patterns already emerging a little bit which also can be a really nice look. And I think I'm going to stop here. I'm going to push this code up on GitHub as we always do. It's on github.com Google Chrome. We're also going to put it in the description on the video. Thanks everyone so much for watching this, for bearing with me through all the weird phases of this. Thank you for handing the Twitter and confusing the heck out of me and making me use the hat twice. Thank you for clapping along. Could have been third times. If you have any questions, ask me on Twitter later or I'll be around a little bit more. Thank you.


Do you ever wonder what happens when the police leave? Crime scene cleaners are private companies that handle the cleanup after the police are gone. Spalling DeCon is one of the nation's largest cleanup companies handling the aftermath of homicides, suicides, decompositions, hoarding, and much more. These are our stories. And the known assassin today helping a guy who's a musician and also a hoarder. He's accumulated 12 years worth of gist. He will even say it's trash. It's basically this hallway through. So you're not, you're not cleaning any of this? He doesn't want us to. I don't know how he uses the toilet, but it ain't that. And if it is that, ain't nothing getting flushed. Hey, this is Fiona Respalding. We're in the known assassin today helping a guy who's a musician and also a hoarder. He's accumulated 12 years worth of gist. He will even say it's trash. So we're just here helping him. A little difficult just because he's present and he wants to go through everything, but we've got all hands on deck today. So we're making really good progress. Today we've got me, Daddy Long Legs, Nico and Rebecca, the new girl. So we're introducing Nico and Rebecca into basically how to do a hoard. The first time since the holiday, right? Yeah, it's there. Yeah, so they're like second hoard. It's almost equivalent to the holiday giveaway as in the amount of trash that's in there. He also had a water leak, so there's a substantial amount of mold, pretty much on everything. So not only are we doing the hoard itself, but also putting his carpet to help dry out his place. But we're only touching one bedroom and then the bathroom, kitchen, living room, dining room. He wants you to leave one bathroom or one bedroom alone? He doesn't want us to touch that one bedroom and that one bedroom looks the less. To be honest with you. Did he say why? I believe that's the one he sleeps in. He's doing a lot better now than he was earlier. Earlier it was almost like at a standstill because he needed to see everything that we were doing. I think he's getting more comfortable with us now. So it's flowing a lot better. Are you guys doing a deep clean of stuff too or just getting the trash out? Just getting the trash out, pulling up the carpet and then putting some air movers and de-hews to just dry it out. Get rid of the mold for him. I feel great, bro. Enjoying your peanut butter crackers? Every day is giving me life, though. It ain't giving me life, man. I need my protein, you feel me? I sure do. How's his hoard treating you? Dude's actually really cool. You know what I mean? Dude's super cool. Seem like an eclectic dude, though. I like that he plays all these instruments. He's a lot better than he was the other day, which is cool. I don't know if he had to get a nice sleep. You know what I mean? But he's a lot better. He's more talkative, very opinionated, but still nice, you know what I mean? He doesn't want you calling him, sir. Yeah, you don't want me calling him, sir. But people got to understand that's just who I am as a person. I grew up in Nashville, Tennessee, Rustville, Kentucky. So my parents, my mom and dad, to this day, they didn't hear me call somebody. Yes, ma'am? No, ma'am? Yes, sir? No, sir? That's a punch in the face. Automatic, right off the rip. Just straight punch in the mouth, wouldn't you say? Good job. They were tall so they can reach. Oh, yeah. So my mom didn't play no games.  Yes, sir. No, sir. No, ma'am. Yes, ma'am. Keep doing that smack them in the face. Well, you know, we don't want to necessarily promote punching your kid in the face. No, a smack. A smack is a different. Just tell them it's a love tap. Let me just tell them it's a love tap. Okay. It's called love. And we at Bobby Deacon don't necessarily condone love taps. Yeah, because it's all love taps. Parents love you. They love you. My name is Thaddeus Key. Peanut butter crackers, slapping kids and calling people through. They're saying ma'am and sir. That's right. Are you going to punch some Pokemon goers? No, I'm just wondering for all those fans that keep talking shit about me not liking Pokemon goers. You can go screw yourself. You know, give you a love tap about that. All my Tetris, Miss Pac-Man people, Gallagher. Gallagher? Yeah, all less. Gallagher? Gallagher. Gallagher. That's Gallagher's sister. Gallagher. I'll do Pokemon go losers. God almighty. Just find, like, get a destination and all of you guys get together and get lost again. How about that?  Tetris don't make you do that.  I can sit there and do a jumping jack and play Tetris. Oh, it's level fucking, you know, 400. Yeah. Tetris is multi-task. See what I'm saying? Talking about these Pokemon people made me drop my phone in here.  TV's dead. Okay. DVD players that's on top of the TV? Jazz, actually. Yeah. How long have you been playing, bro? Oh. Nine years old? Yeah.  Well, I've played with a lot of the players. The folks, the jazz, the top 40s, the showbans. I've read those books before. Blues, stuff like that. That's good. That's how you do that. That's how you do that. This TV, the box TV goes this? Yes. The small TV goes the modern TV stays. That's right here. That's it works. So it stays. Yeah. The box is where the cushions stay. Yeah, that's the one TV. I'm just going to set them on top of this microwave. Yeah, I don't know. I can't see with lights in my eyes. Oh, that goes away. That's right behind me. Okay. Okay. Interesting. Huh? Everything you want to go through here or you want to just take it as is. We could take it as is. Just like trash. It does look like trash. That's it. That's it. That's the CD you can go. You can just leave it there. I'll take it as is on here. Oh, yeah. I got big bucks. Something like that. I know there's a quarters collection, but the narrow right to the like look in between your legs. Look right through. Finish off this living area. At least get this coffee bowl. I can cut it right at the hallway. Great. I mean, we can deal with this bedroom over here. If you like, it's up to you. If you what, how about we do the living room? We're done with the living room. See how you feel. If you want to go for the bedroom, we can't. Great. Yes, let's do that. What you just said. How are you feeling today, Nico? Going good. It's going good. We got a lot of, a lot of stuff out today. I think all we have to do in living room is pull out some carpet. Is this your first hoard since the holiday giveaway? I don't know. All my days mesh with school and everything. What are you going to school for? Criminal justice. Is that why you wanted this kind of job? Kind of get it inside. I'm going to school for criminal justice.  So it's my goal. Got to have that stick control thing. That stick control. And that one, like I say, is advanced techniques. You start with the stick control, then you go to the advanced techniques book. Then? And then I played the cello. Oh, that's more difficult than drugs. I have really good hands. He has cello. That's, that's really hard. Giving a snare drum. I used to listen to like drums and then just sit with my headphones on and just try it. That's the best way to do it. Yeah. And just let your body do what it does. Yeah. Don't worry about left or right or anything, any of the rules. That's what I go by. I let my body do what it does. Right. Life. Seriously. It just kept growing. It just kept growing to six, seven, to do whatever it does. It didn't help me in life. You go to a concert, you can still see the band. Dude, I can see the band. I don't have to worry about going to VIP. I'm looking right over everyone. Especially all these Pokemon people. I look right over. Right? Right over. Okay. It's basically this whole way through. So you're not, you're not cleaning any of this? He doesn't want us to. Yo, he climbed through this one. The door was wide open and no one was answering. And then he started answering and he climbed this one. Are you working hard or hardly working? Is this your first hoarding job since the holiday giveaway? Since the holiday, yeah. All right. How does it compare to that? He seems more like he wants to give it up. I know Hollis had a lot of trouble, but he seems more like he's ready to get rid of stuff and move on, which is positive. We love having you. And Fiona loves having another European here. British Invasion. That's right. I just got a burst of energy. I just wanted to just do some stuff.  Are you playing anything? How'd it go today? Not bad. We made a lot of progress. So I know it's a lot for him, but we did the whole kitchen living room, dining room. So when we come back, it's literally just that little part of the hallway and the one bedroom to do. And then the bathroom. The bathroom. I think if he wants us to, he's up in the air on what he wants us to do with that. So we came to a stopping point today just because he wanted to take a break? Yeah. Got a little bit too much for him today, so he wanted to stop. Just put it in the standstill for the day. He just needs to recoup and just get situated with his new open floor plan. Good. That's right. We'll be back. So I'm out. See you next time. We're on day two. It's just going to be a longer day today because there's a lot more stuff to go through that he hasn't gone through at all. Where are we hoping to get done by the end of today? The bedroom. The only thing that stays is the furniture. Truthfully, I haven't been able to really look at the bed just yet, but he wants to keep the bed. Plumber's on his way to fix the toilet. I don't know how he uses the toilet, but it ain't that. And if it is that, ain't nothing getting flushed. Dude, I don't think Aquaman can fix that toilet. Now me and Thad. Toilet experts. Yes, we are. And as soon as you remove that toilet, everything's going to go. I don't really want to be the one that toilet gets removed. I do. To be honest with you. You can be the. That would be a good shot. You help the plumber. That's going to be pouring out of that and the smell is going to be horrendous. I can't wait. Well, maybe there's more. Wait a second. When did it expire? 1999. What did you guys see? Brown recalice. Yeah. Yeah, it was pretty big. It was. Where was it? On the mattress. On the mattress. Yeah. Which he said he's had a couple of spider bites before. Yeah, but nothing like that. He was like, I would have remembered a brown recalice.  Oil and water. And just, yeah. And just left it there for years, like the whole house is just. But think about it. It's toilet water that leaked out. Yeah, it's not good. Dinosaurs. Yeah. Could be. Restork. Pokemon Go. Could residue of, hold on. Pokemon Go goers. They've been here. So what are they playing? Oh, it's him playing. Oh, it's good. See, if it's keepable or not, it actually resembles a musical instrument anymore. That's just where all the musical equipment went when I would switch jobs. I played a variety of different instruments. Yeah. When I switch instruments, throw the ones in there and pull out the other ones that I'm going to use. Yeah. I have three drum sets, five guitars, Turnton Bollies, Pokemon Go. Good job. Just, I looked on the road for so long, once I got to play for my own, I started hoarding because I crewed. Instead of leaving out a suitcase and a van. Just plumbing people don't look like they want to do anything.  Absolutely.   The other plumber said they can send somebody out tomorrow. Okay. They're getting it all in one piece and stuff. How about that floor? It's so new. Wait a minute, is that the dancing gopher from Caddyshack? Yes, it is. I used to have that same animatronic. Oh, it doesn't work anymore. I'm sure it doesn't work anymore. I'm sure there's batteries somewhere. That's like straight from my childhood. That's so crazy. Ah, I didn't see that coming. Oh shit, that's kind of cool. Hey, you find the best things in a yaw set. For real? I mean, it's terrifying, but it's cool. Right, it's a little creepy. Especially since it's hidden in all that stuff. Exactly. Come out towards me. Breathe, wake up, see another day. Be blessed and thankful. You're great, brother. I'm just glad we could be here to help you get some assistance to you. It's a lot better, you know, than what it was. You're one step closer to getting everything, you know. One bit at a time. In theory, that's true, yes. One bit at a time. Just finished lifting the laundry. Yeah, that washing machine is no joke. It actually was like loaded with clothes. So there was trash at the top. And there was clothes at the bottom of it. Like white clothes. Was it leaking? There's a bunch of water in there. Or is that just from the... Just from turning off the pipes. It drained out. We put it in a bucket. But it was starting to spray from what was in the line.  Put his bed back in the bedroom for him. And see what else he wants us to do. And after that, we're done for the day. He was able to handle more than two hours. Which is good. Is this compared to any of your recent hordes you've been on?  To be honest with you, living condition wise. And the amount of damage from literally floor to ceiling. That's damage from what roof leak I think he said. Plus the toilet issue. This one was probably the wettest horde that I've done. Most hordes is just like chaos. This one, it was just... It was just wet. Heavy, wet, slimy. And just roaches. Tell them how you really feel about it. It's eye-opening to see that someone actually lives in these conditions. That's the one thing that never seems like... I'm always amazed by it. Every horde we do. I'm always like, how do they live this way? You know, then I go to the next one and it's like, how do you live this way? But they do. So I'm happy we're able to help. I know he appreciates it. Absolutely. I know he may not come off as super appreciative right now. It's kind of like he's holding his ego and his pride aside. But for me, it's about a level four. Like she was saying. The amount of dampness and wetness as far as on the walls, floor. So all the roaches and bugs and stuff like that really are like, this is their heaven. To get that up out of that apartment. So we can have some type of condition to walk around and at least try to sleep and get it taken care of. Step by step he's going to be able to knock it out. So I'm just glad we can be of some assistance to him. Put a little dent in it for him. So that way we can get him a lot closer to his ultimate goal and that's to not be a horder anymore. Right now he's got that rustic industrial look with the concrete flooring going on. So we're good. Another one down. Nice. You can't use that. That's hers. He's trying to kill it too. You feel me? You just stole a cone? This is from weeks ago. I've been wanting a cone. It's like all the other drivers, they get to put cones out on the road. I'm going to take my own cone. So whoever's missing a cone from whatever business you are, thank you. Appreciate your Christmas gift. So what are we doing today? So today we're doing a D-Clean all the best that we can. Limited space to work with but Rebecca's done and cleaned the walls. I've been focusing on the kitchen and the fridge. Niko's doing the bathroom. What all are we trying to get done by the end of today? We're trying to get as much clean as possible which is the best that it can be cleaned. How are we doing Niko? Good, good. You got an haircut? I look fresh. How long have you been in here? Probably like three, three and a half hours. In this one room? Just in the bathroom. It's so thick. In the bathroom that I've been using the scraper to get it off. So especially to get these walls like this. If you remember what it looked like before but we're getting there. Some good sloshy sounds. Ooh. They were back to do a deep clean. He was able to get his new toilet replaced. In the midst of getting his new toilet he realized that the washer dryer water valves were leaking and rotted out. So he had to get new ones of those. And while they were replacing those they found out that his hot water heater was leaking. All morning the entire apartment has been flooding. Like non-stop.  The main focus today was cleaning the kitchen, the bathroom and the walls for all the walls. He's not ready for us to go to the second bedroom yet. But we'll be coming back at some point to do the mold so that second bedroom is definitely going to have to get addressed. At the end of all of this his place is literally going to be brand new. He's pretty overwhelmed. I think he's about to be done for the day, to be honest with you. But we've made a lot of progress. I'm happy with the work that we've done today. You can definitely see difference. So that's good. That's pretty. Good job, Nico. I don't know if it looked like it when I moved in. Don't recognize it? No, I thought it looked like it was. Thank you very much. You're welcome. I'll see you Monday. See you later. I'm so hungry. It's not even funny. I think today went well. Bathroom looks probably the best it's ever looked along with the kitchen. Everything that can be cleaned got cleaned. Everything starts working out in its favor and it's supposed to get up high again. But yeah, so until next time. Thanks for watching guys. Don't forget to like, share, subscribe and ring that bell to be notified of the next episode. Thank you very much.


computer. We're good to go. Hey y'all, Dustin here. Shannon, I appreciate you sharing. Truly do. It was amazing. Y'all give some love and hearts in the chat for Shannon. That was awesome. It couldn't have came out any better. It couldn't have been set up any better than it was to even lead into today's training. So I'm going to introduce somebody and I'm going to be mostly muted out. I might jump in a couple of times. But this young lady is somebody I've gotten to know very, very well. One of the very first times we got to meet was in San Diego. I'm thinking five years ago maybe. And this event was for people that wanted to go to a whole another level. They had to pay a hefty cost to go spend some time with some of the leaders of approve it and go to extensive trainings. And it was the day that I got to meet Samantha that I realized that she is so resilient. She's probably one of the more resilient people I've ever met. Meaning that things keep coming and she keeps solving for X and figuring things out. But she's also somebody I rely on because she's very detailed oriented. So I'm always like, Samantha, can you help me with X? Can you do this for me? Can you explain this? Do you have this already done? And she's the one the ones that likes everything detail oriented to the point where I'm like, that's more than I needed. But what I asked her to do is to come on and share some of her wisdom, her guidance, and her perspective. She is absolutely on fire. Shannon, you might be training next week. So stay tuned. But she's not only enrolling customers. She's bringing on new promoters. She's, I don't know if she hit All Star yet since September, but it's either that or she's hitting it any minute. Helping develop new new new new promoters, hitting rank three, going for rank four, running to rank five. And she's just an absolute beast and somebody that you get to all learn from. So I'm super excited for you to take over Samantha and and crush this. So appreciate you being on. I appreciate you being on and I appreciate you, Shannon.  What I'll, that's what I'll start this with is I decided, I decided that I need to make the ship that I wanted to make the ship. And I saved the shift because I asked Dustin, you know, he messaged me and he was like, well, you, you know, talk about this, this, this on the zoom. And one of the things was what was your shift, right? Because I, if you guys do me, I've been drinking and sharing ketones now for almost six years. And I absolutely love the community. I love the business. I love the product. Like I'm here for it. I'm obsessed with it. And I believe ketones. And from a personal development aspect, it has been completely life changing for me from a business development aspect, it has been completely life changing for me. And the product has been completely life changing for me as well. But there's multiple times and I don't know if you guys can relate to this at all or not, based on where you're at in your business, but you can even relate to this or correlate this to life. But there were multiple times where I was like, I had really, really high highs. And then I had really low lows. And then like really high highs. It was really exciting and momentum was flowing. And I'm like, I freaking got this. And then like it feels like two seconds later, it's like, I don't know if I got this. Am I doing it right? Am I saying the right thing? Am I a leader? Am I leading correct? Like, does anybody ever felt those feelings or ask themselves that? Like, am I sharing the right thing? Am I sharing the right way? Am I tracking the right people? Am I talking the right? Am I supporting people okay? Like all these things. And so business was up and down for me this entire journey. I think it's been like that for most people in all aspects of life. That's part of it. And I look at it more now. I decided to make a mindset shift and look at things like that as a healthy rhythm. Because there would be no rhythm without the ups and the downs. And through that there's this energetic flow that when you find it approach it and you energetically connect with that, you truly will find peace, joy and flow in what you're doing. So giving yourself grace, giving myself grace, that was my shift to answer that first question. Dustin was like, I want you to share what your shift was. So recently I got really sick. This is part of my shift, right? So my mindset went down. It felt like everything in my life went down actually. And I'm so grateful for the fact that we have this business to where I was still able to build, maintain, go up, go down. Because if I worked up a normal job or anything like that, I wouldn't be here today, right? But I had a lot of crazy health challenges.  And I also refocused on how much time I was spending on myself and my journey and my personal business, right? Like all me. There was this one more event that hit me real hard when Joseph MacLinden was like, I want you to make a list of all the things that like your most important things. And we made all these lists. And he was like, most people don't ever add themselves to that list, let alone put themselves on the top when in reality, that's where it should be. So that was a shift for me. I was like, all right, myself, me, this is where it started, my number one priorities myself and my health, my physical, my mental, my spiritual, my emotional health is numero uno. And then it's my kids and my family, right? And then my personal business. And then it's the success of my team in all aspects of growth also, right? So that's where I had to really tap into my core values and make those shifts in order to make sure that I'm giving everything in my life enough time to find joy in what I'm doing with no stress, because I forgot to mention, my health challenges came with like I wasn't allowed to get stressed, right? Anytime I got stressed, it threw me off. So I was like, where can I find joy, peace and flow, energetic flow? So then I decided, I decided what I wanted, I decided what I was going to spend my time on, I decided I planned, I reverse engineered, I started over again, my business, I hit rank six before I went down, my business went from 52,000 to 18,000 in like three months. Ouch. Okay. Ouchy. It was so hard, but I also had 100% confidence in myself that I've done it before I can do it again. You know what I mean? So finding those places where you can detach stress from the process in all aspects is huge because where your energy goes, or where your focus goes, your energy flows. If you're focusing on those stressors, that's what's going to cultivate. So I started to say, okay, I'm going to work smarter, not harder. I'm going to realign this. I had to make sure my whole schedule was right. Focusing on your plan and your schedule is key here. It's the big bubble around what I'm foundationing right now.  It's all already within you. So it was already within me and that's what I did. I came up with my business plan again for like the 500th time and prove it. I'm like, all right, let's do my new business plan because every day we're a new person. Every day something can change and that's okay. So come up with your plan, your plan, commit to it and believe in it. Belief is like the core key to success with that plan because the plan doesn't even actually matter if you don't believe in it because people who are not or people who are 100% certain will never ever settle for anything less and people who are 100% certain will always take action consciously and subconsciously based on their core beliefs. If you do not believe in the plan, if you do not believe in the system, if you do not believe in whatever the heck you're doing, you're not going to find joy, you're not going to feel good, you're not going to feel confident and you're not going to find that energetic flow. It just is what it is. So finding that within you and taking that time with yourself and sitting down and writing your plan, like what are you going to do when you sign up your promoter, your new promoter?  It's not like anything fancy. I was like step one, send them this video teaches them how to get through product. You know, like it's just your plan. There's no right or wrong, but come up with your plan. Come up with your plan on everything that you want to do when you get a new customer. Is there something that's amazing that you want to plug them into? Is there something like when you have this system and this plan, it creates this belief and you're like, oh man, I've got this. Even though you already know you got this. It's all within here. It's all within here, but there's something different about just putting it in writing and having a plan. Just like having a tracker, having a plan. Like this tracker is my best friend. I love it. Well, not this one. Really, it's the one with the pictures and stuff. Hold on. This one. This is my plan. You know what I mean? This is my plan. No matter. I'm like, this is my plan. This is my plan. This is my plan. So those plans, all right. Oh good. I'm glad I'm speaking to you. Failed plan, plan to fail. Yes. Okay. So made the plan. Come up with the plan. Believe in the plan. I personally will not. I will refuse. I'm like one of those doggies that puts their feet. Does anyone ever have one of those dogs, especially when they're puppies and you try to walk up and they're like, like that's how I am. If I don't believe in the plan that I'm taking action on, where is that going to get you? Unhappy, confused, complacent, not comfortable, uncertain, not confident, right? It's like psychological little micro fails.  No matter what, no matter how tempting it is. Be like, yeah, but this is my plan and I know it's going to work and I'm certain it's going to work. This is my plan. I believe in it 100%. And it's not a right or wrong plan. It's just the plan for you, right? So okay, the plan. All right. Then I was like, all right. Next part of the plan was figuring out where is the one main place that I want to communicate with my customers the most. Okay. Because I am personally so tired of having people in every inbox and everywhere and holy crap, I can barely keep up with that type of thing. And again, I don't know if you guys can, I see lots of head nods, so I know you guys can relate. It's just like, I don't even know where to go sometimes. And then I've got lists and notebooks and digital lists and Facebook inbox and this inbox and that inbox and all the inboxes and then they all have different language because all of the freaking platforms work different. And this one, you need to follow this one. So many things. I was overwhelmed going back into it. All right. This is like my reset. So I was like, all right. Where do I want to talk to my people the most? So always first things first, when you're coming up with a plan, first thing to think about is have you done this before in the past and found success? If yes, identify those things that you've done before that you found success. If no, how many people do you know and how or actually reach out to the people that you know that have found success in these areas and ask them how to do it. Okay. So that's what I did. I said, okay, have I found success in this area? Yes. I've done group chats. I love group chats. So I re-engaged my customer group chat. My customer group chat has like 120 people in it right now. It's so amazing. Might not be for everybody. And that's okay. Remember, there's no right or wrongs. It's just my plan. It's what's working for me. So I have my customer group chat. And I'm like, I am going to get everybody into my customer group chat. And I did it on Facebook, because that is where I was getting the majority of my clientele. The majority of my customers are coming from Facebook. So I want to make it the most simple way for where I'm working the most. So what you guys can do is find where you find the most conversations. Where are you talking to people the most? And then create something around that. That's going to work for you guys. All right. The next thing I did was where do I want to put everybody else that, you know, not everybody's a group chat person. Like not everybody likes group chats. And that's okay. I don't want to just offer one thing. But I'm big on having two options for like everything. It's this or that. It's for that. Do you like this or that? Well, there's one of that one, that one of this one, always two. So my second one was my Facebook group, because I knew I could go live. I knew I could save replays. I knew I could communicate. I knew I could share my Facebook group stuff into my Facebook group chat or my face, you know, it was easy. It was easy for me. I already found success in that. I already did that. So I'm like, this is what I feel confident in. This is my plan. Okay. Yeah. Yes, I agree. So I'm going to give you guys a visual really quick. Well, actually, I'll give you a visual after because I'm going to talk about some more stuff. So long story short, my plan, come up with your plan, focus, decide, be certain, believe in it, put it in writing. That is basically what I just talked about for the last, I don't know, 10, seven minutes. All right. So I really, I want you guys to take some time with yourself and get out a piece of paper or a notebook and flip through it 5,000 times or make something digital if that's what you like better. There's literally no right or wrong, but I want you to come up with your plan.  Where do you want to communicate with them? Where do you want to plug people in? Like, even though you already know it in your brain, I want you to put it in writing so you can actually see it and feel it and be a part of the creation of this plan that you're planning for yourself that you're committing to and you're believing in 100%. Okay. So the next thing I, I'm going to tie it all together, but then Dustin was also like, you know, I want you to also talk about how to, how to attract more new people, how to gain, how to grow your following, right? Like how do you find these people to plug into these like nets that we're creating, right? Like my Facebook group and my Facebook chat are two nets that are like at the bottom and everything else that I'm doing is constantly getting them to flow. So where am I getting all these people to put into the funnel to flow into this net, into this Facebook group, into this chat, into whatever it is that you're creating? Could be an email blast, right? A lot of people find success with emails. So maybe you're trying to collect their emails and that's your best way of communication. Maybe text messaging, you know, if you haven't heard of text mass messaging and project broadcast, connect with the person you're working with, plug into something like that, find what works for you. But how can you grow your following? You can't talk to the same people over and over again. Can't talk to the same people over and over and over and over and over and over and over again. Eventually, it's going to die down. Energy will die down because it's the same people over and over again. It's like walking into the same classroom and people will see your growth over time and they'll buy in over time. But the probability of you growing more, it would happen by filling up the classroom more, right? So how do you grow your following?  You know what I mean? If you were coming on stage, which is your social media and you're like, this is me, and this is what I do. And this is my stories. And this is my lives. How many people are in that audience in your theater watching you?  And it's our job to really fill the seats, right? But we can't keep just depending on putting on the show and expecting people to show up if we're not out there going and like finding ways to invite people to the show and bring them to the show, bring them to our Facebook page, invite them to our group, invite them to our challenge, invite them to our chat, invite them to whatever you want to create for yourself. So I included some bullet points on how to grow your following. One, post consistently, post consistently, I know we hear this all the time, but post consistently consistently, this creates relatability, it creates realism, like it creates trust. It creates trust people that show up regularly, they people will trust them more if they're constantly showing up. So posting consistently, asking a lot of questions. Okay, on your on your page, on your feed, in the captions, even with a picture, ask a lot of questions, engage with your audience. People are attracted to people that want to engage, not just be a billboard, they're more attracted when you engage in the comments, engage in your posts, I always ask for opinions, I always lead with a question. Like if you look at my Facebook page, there's a lot of my stuff that starts with a question because if they don't read anything else on the entire post, at least they read the question and will most likely comment, which will lead to more engagement, which will also lead to something called organic reach. Because the more people are engaging on your stuff, the more the platforms will push your stuff out to more people. It's artificial intelligence, the more comments you get, the more engagement you get, the more the platforms, little alarms go off and they're like, oh, this person gets engagement, let's give them more reach, let's allow them to reach more people. That's literally how it works. So when you create this engagement and ask a lot of questions, it produces a lot of answers and a lot of comments and a lot of engagement. So connect with people, ask questions, all right. Another way to grow your following is Reels. Like TikTok was a great mini training for me. And then when Reels came, I was like, oh, this is even better. I love it. It's the same thing as TikTok. TikTok and Reels and Facebook Reels literally the same thing. They all get the same videos literally across the board. Reels is fire, right? I think for me, finding where you get the most attraction is where you should double down on and live the most. Don't try to hit every platform in every corner of everything. Find right now what the heck is working? Where is there a little fire started that's a little bit bigger than the rest of what you got going on? And say, all right, let's focus on this for the next four days. Let's focus on this for the next month. Let's focus on this and growing this fire versus trying to grow a bunch of fires. So Reels brings in new followers. It is shared by the platforms. By the way, if you ever are curious about like how Facebook or Instagram or Reels or anything works, if you go to their support tab, they keep that super updated and they literally tell you what they want to see on their platform. And if you do it, they literally share your stuff. It's crazy. They tell you what they want. They want Reels. They want video. They want connection. They want that. They want live videos. They want your audience to connect with you. So they have also shared Reels brings in new organic reach. The more Reels you are pumping out, the more your videos are getting in front of new people, not the same people, but new people, because Dustin asked me to share on growing your following for new people. So Reels, new people, new people, new people. Okay. The next thing, like I said, this will create momentum. It'll create more organic reach. Reach means the platform's pushing your content out. Okay. And then the last one is go live. Live is another great way. And I'm going to give you guys a couple ideas about lives. And I know that you guys, I'm going to say there's some of you that probably like, what is Joseph spinker puckered when I said live? That's my favorite word that Joseph and the Clinton has ever shared, spinked or puckered. All right.  Yes. Oh my gosh, what you're avoiding is most likely where your success lies 100%. So going live. And I want to give you guys some examples because sometimes it's like, go live. And then it's like, what about one, but like how, but like, cool. Okay. Three second overview of how to go live, pick a really catchy topic. I love one that's like, I can't believe I'm doing this or, Oh my gosh, my biggest secret for, or this is so exciting, huge news. Like, think about somebody having that notification popped up on their screen. And they're like, what is it? And they click on it. Right. My live videos are cricket. Well, there could be a couple of reasons, but I don't know. I can't identify that on here. But what I will say is consistency matters. Okay.  And it matters that you are excited. And it matters that you're in good lighting. And it matters, it doesn't have to be a ring light. It could be outside in good lighting. It could be in front of a window in good lighting. But, you know, in general, I want you guys to start thinking about how can you go live and talk to people and share value, not with ketones for a second, just in general, in general, what can you go live about that is not ketones, that is not you walking around like showing things that is you literally just coming on and talking about something. It could be you sharing something that you learned and how it impacted your life and how it impacted other people. Right.  This was so awesome. Like I had to share this with you guys. And I have my paper right here with my notes because it was so awesome that I wanted to share this somewhere. Thanks for listening. You know what I mean? Like it could be anything. It could be, you know, when you do things that you could teach someone, like I know Lanann is like bomb at making glitter cups. She made me like this glitter cup with all this custom writing and sparkles and my name on it and all this stuff. Literally, I know that Lanann could go live and be like, I'm going to teach you guys how to make the most basic, simple, the fastest cup I've ever made ever. And I'm going to go live about it. Okay. And let me tell you, even if it's crickets, that just means one, I don't even care how many people are on live because way more people watch the replay, like lots and lots of people love replays. They scroll then Facebook pushes it out and you're being consistent. Your organic reach is going up. Your live is on the news feed for like a couple of days because people keep commenting on it and every time they comment it brings it back up to the top. And then you do this thing. This is like the magic secret sauce that I've been doing for a couple of years that works until you share that cup video into every freaking cup Facebook group that you can find. Do it slow. Don't get spammy. Don't get reported on Facebook for sharing in 500 groups in three seconds. But how many of those people are going to be like, wow, man, that was such a great cup video I learned so much. And you know what? I checked out your profile and I see that you have this cute little baby calf and you and your cute baby are feeding your cow and and then you're drinking this stuff. And I don't even know what's the stuff you're drinking. Or maybe they send you a friend request or maybe they start asking you cup questions and you become cup besties. I have no idea. But this is such a great way to get again, grow your following grow and get new people. Yes, Angie, start doing lives. Oh my God, that's so good. Yes, yes, yes, yes. Okay. Don't you don't have to worry about looking professional. Definitely don't. There's lots of ways to do it. Okay. Okay. So share something you learn, share things, go live, I challenge you guys just do it. It's so worth it. I promise. Okay. I know I don't know how much time I have. I'm just gonna keep talking because I have more to talk about. Are you guys okay if I keep talking or should I stop? Okay, cool. Okay, doesn't make it sure. All right. So the next thing that I wrote down is create communities. Something that changes the game with my plan, which was part of where am I going to communicate with these people the most is creating these communities. And I know that we all have like team chats and Facebook groups and all these things. But again, remember, this is just like where can you, you can have a different conversation with your customers. If the only people in this little chat or whatever is your customers, you can offer your trial packs, you can offer your information like your things, you know what I mean? So I would create reboot chats like everybody that was rebooting, everybody that was doing a 10 day challenge, like all these different things that I've done in the past that worked. Facebook groups, I've literally done like 21 day Facebook groups. I did kind of OMAD. I did a fasting group. I did a water challenge. I did literally have done so many of them. And I'm like, all right, if I know they worked before in the past, and I'm doing this relaunch, this is what I'm going to double down on. So I did. And you can also do a telegram chat.  I love doing customer zooms. This is another way to do great community. Like how many times have you ever just ran a Zoom and invited only your customers? Of course, you can invite your promoters too and be like, Hey, come on with the intention for them to learn so they can do it too. Like when's the last time you personally did a Zoom just for your customers to say, Hey, I just want to jump on. I'm going to bring on a special guest. Sometimes I bring on a special guest. Sometimes I don't. Sometimes it's like, I'm going to do a keto overview, ketone overview, maximize fat loss, ask as many questions as you want. We're not getting off until we're out of questions type of thing. Like sometimes that is more powerful than any video you can send someone, even a voice memo, because people want to come on and connect with you. So, and then one on ones, one on ones are still to me, most powerful, like connect with your people, get on the phone with them, not saying spend 27 hours, tell them you've got 20 minutes and you wanted to help them with whatever, right? All right. So, create communities. Next thing is focus on people, not the masses. So I put that after create communities because it's still most important. The community is the way you can talk to the masses, but when you focus on people one on one, that's when you get the real flow, the real energetic connection, the real nitty gritty. You figure out people's goals. You figure out what flavors they're loving. You figure out what will help them the most. There's nothing that can replace organic relationships. Nothing. There's no community chat. There's no Zoom, nothing. So connecting one on one with people is huge. And then last thing that Dustin asked me to talk about was the dollar keto club and like how I start, I just decided, again, I was like, I need to go into recruitment. This is what I wanted to build. This is my goals. This is my tracker sheet. And I went into that mode and then dollar keto club happened. I was talking to Amanda on the phone and I swear we manifested it because we were like, the dollar keto club needs to come. We're manifesting it right now. And literally, I don't even know how soon after it was, the pulse came through and we were like, all right, because I was in the mindset and I was so certain and I was like, okay, I have these communities. I have these Facebook chats. I have all these excited customers. I have got to plug them into this. And I use the most simple language. I reached out to everybody. I hand connected with everyone who's having, who's literally posting positive feedback in these chats. I scrolled back up to see who was super excited and who was super engaged. And I messaged each and every one of those people individually connected with them on their goals, their success, their excitement, what they wanted to do. And I use language like this. Hey there. Hold on. Hold on. Okay. I don't know. I accidentally can I hold on. I accidentally copy and pasted the language they sent me. Here it is. Okay. So first things first is I made a post about freebie Friday that week. I made a post about a trial pack samples that week. I made all different posts on my Facebook. So I'm going to share with you guys different languages that I used to reach out to people from those different types of posts. Hey there. I just saw your comment on my post about the ketone clean out that I'm doing. There's $31 off 20 servings, $91 off 60 servings and the ability to join as a promoter right now for $1. I also have 10 pack trials for $65, which sounds best to you and I will send you the link. Literally got like five promoters from that. Three of them with mega packs. One of them just started drinking ketones in September. One of them started drinking ketones this month. One's a dude. One's a chick. Literally, both of them are in the chat though and you better believe that after I sent that message out, someone went in the chat and was like, hey Samantha, can you send me the link to join as a promoter for $1 please? I lost it. And then someone else in there was like, I want to join for a promoter for $1 too. And I was like, awesome. I'll message you guys. I'll message you guys. It ends tomorrow night. If anyone else is interested, that's the other language that I wrote down here that I couldn't figure out what it was. That's what it was for. Like that simple language dollar keto club ends tonight for everyone that was interested in joining as a promoter for $1 is what I put in my customer chat. I individually messaged people and said, hey there, just wanted to reach out and make sure you saw. I was having a ketone clean out on trial pack bundles because I don't just, my trial packs are always available, but I run specific four day runs of I'm only selling trial packs. So I reach out and let people know that I have them intentionally during this time. And then I also throw in there. And by the way, we've got 60 packs for however many dollars off. I said previously $91 off. And by the way, the ability to join as a promoter right now for $1. That language worked. It worked great. It's so simple. Here's another one. Oh, Freebie Friday. I reached out to all my Freebie Friday people. Hey there. I saw that you have entered Freebie Friday the last couple of weeks. I hope you're loving the videos and learning so much. Hey, FYI, I'm doing a ketone clean out right now. I have 10 pack trial bundles available, as well as $91 off of 60 packs and the ability to join as a promoter for $1, which what did I say, which sounds best for you. I will send you the link. I always ask questions, which sounds best for you. So that's how I utilize dollar keto club when it's available. Obviously, that language doesn't always apply. But listen, I'm sure if I plugged in and said you can join as a promoter right now for $49 and use this same language, it would work just exactly the same. Because $49 is not that much more than $1. So it's really about the energy you put into it and your intention that you put behind what exactly is the outcome that you're trying to achieve through the conversation. My outcome is either to sell the heck out of these trial bundles that I promised off. I was going to sell $2,000 in trial bundles. That was my goal and I wasn't going to stop until I did. And with that, I was only going to talk about the 60 for the promoter. It's like these two things. It's just for four days or five days or whatever. It's not permanent, but it's like I like focusing on one thing and letting it flow.  So then someone messaged me. I guess this is what I copy and paste it. I should have just took screenshots. Wanted to find out how to join as a promoter and what the requirements are. I have some family members. Oh, this is a girl from the group chat. She messaged me directly. I have some family members that would also like to try start using the product since they're working so good for me. I figured I may as well earn some free product from what they buy, but I'm not comfortable posting or putting myself out there on social media yet. Let me tell you, this person is posting on social media and crushing it also. So just know that that's what I have written down and what I had on my heart. And I was like speed typing before I jumped on here because this is what I wanted to share. This is what I've been doing. This is what's worked. It's that focus. It's that plan. It's that belief. It's that fire. It's that desire and making sure that you first and foremost, first and foremost, always put yourself first and your health and your joy and the things that you love to do because there's no right or wrong in this business. And the only plan that works is the one that you'll stick to and follow and believe in. I bring some heat. She brings some fire. I just want to tie a little ball on everything. And everybody gives Samantha a big shout out. Her commitment to this process has been just remarkable. And what we've learned is that, you know, like Shannon's building belief in herself, she had to make a decision, but also she had to, the plan that she went with and committed to is these festivals, right? That was the plan she committed to. And then now she's going to have to build more out as she's expanding this and she's going to have to learn more skills now that she's bringing on more promoters. She's going to have to, there's more learning that's going to happen. So I truly love that as Samantha knows her and our journey somewhat aligned, you know, having surgeries and babies and, and, you know, getting sick and all these things. She didn't have a baby. We're having a baby. You know, what happens is that if you're, if you're wavering in yourself, it's really important to have to build your own confidence. But it's also what I've learned is that if you're wavering in your plan, then you also, you, it's as important in some ways as it is important for some people, maybe some others more than some more than others that you're, that you believe in the plan. And so what I would suggest is if you're just relatively new here in digestedness, it's one thing. Maybe your plan is to make Facebook your, your, your platform. And Samantha mentioned this earlier, you ever want to, I'm going to, I'm going to stay one little thing here. You want to know the best way to stress somebody out. You all want to know the number one way to get distressed somebody out. If you have kids, this is something, this is a huge lesson. This is my one parenting tip that I'll ever give in my life.  You ready? Give them more than two options. The simplest way to overwhelm somebody is give them more than two options. So think about that from yourself for, for a minute. Don't think about everybody else. Think about, like Samantha said, think about that selfishly. If you have seven platforms that you're trying to be on and you haven't mastered one or two, now once you've gotten one or two down, like I'm just going to tell you, Samantha can flip over to TikTok and then over to Instagram, pretty dang good because she's really got mastered at, she got mastered at social media, right? And so, but master one, build confidence in that because then the, then the shifts and changes aren't so overwhelming. But I think that's the most important thing here is that you're, you're trying to make yourself comfortable and confident when you're deciding in here. And then, you know, a lot of people, I did a voice memo out of people are like, I just, I feel like I'm talking to the same people. And what I figured out is they were, they were talking to the same people. So like Samantha said, like if you're, if, if, if you're using social media, Shannon couldn't have been any better that she said all these, she decided she's going to go to festivals. Now what's interesting is a lot of those people are either following around social media or will be following around social media. So she's going to be using both strategies, right? But if you're going to use whatever strategy you're going to use, find ways to get more invested into that, right? Do more reels, more lives, do more festivals. If Shannon wants to get better at events, then she needs to do more of what she's doing. If that makes any sense, scale what you're currently doing and make that bigger than trying to add more new things to do. And so Samantha, I truly, truly appreciate you sharing that out there. Y'all get confidence in your plan each, each week, each day, build confidence in your plan. If you can execute one thing really effectively each day, you will have more success. If you have fast five things a day, you will find yourself struggling in two weeks going, what did I do? There's no clarity on that. So confidence in your plan, confidence in yourself and confidence in this business will grow you a huge business. So that's it done. Happy, happy Thursday, y'all. I appreciate you, Samantha. This is will be uploaded to YouTube. So it will be recorded. I'm working on how to get that fixed. So it goes right to YouTube, but right now I have somebody else working on that to be honest, not me. And I'm super grateful for you all. Let's have November, make November a fun month. Super cool things right now. Samantha actually mentioned something that we might do a little training on next week on, but Kate and I just talked about it. I don't know if I'm going to talk about it or not, but it's something I'd learned more recently that it can be very valuable for people to bring more value to more people to ultimately build a bigger business. But game on, y'all. Let's have some fun. If you have new promoters, let's time to get them to MVP. We're an MVP factory, y'all. If you're in the process of getting creating new followers, then magnify that. If you've got five followers doing something, go do more of what you just did to get the five to make it 25 or 505. Does that make sense? Try not to reinvent the wheel here. Cheers, y'all. Good night. Thanks, Samantha. Recording.


Hey coach welcome back to our channel. Make sure and hit that subscribe button if you're brand new here This way you can stay updated with all the newest videos. We have coming out now in today's video this is all about you and a Question that I get all of the time is how much money should I be spending on training equipment? And I'm gonna show you exactly how I do this and how you can start saving a lot more money Here's what you can do step one is You think about well, what do I actually need to run a proper training session for most coaches? It's gonna be cones and whatever the ball is of the sport that you coach If you have those two things You are in business if you came out to watch any of my sessions this week. That's what I have I don't have a bunch of fancy Gear things that are really expensive. I could go buy those things if I wanted But that's not why kids are training with me and that's not why they train with you They're not training with you because of the gear they train with you because of the quality of training the quality of coaching that you provide There's coaches that email me and message me all the time.  I can be the first person to tell you that's not gonna help you get clients You need to focus on sales at the beginning not focus on buying stuff. Okay, that's very clear Again, I'm gonna say it again. You need to focus on sales not buying gear not buying equipment Let's say that you're really tight starting off with your money, which I think is a good thing to do Well, what you can do is all the kids that train with you you have them bring the basketball You have them bring the soccer ball whatever ball it is that you're using and you just bring the cones That's it.  You should be very frugal You don't have to go into the whole thousands of dollars to buy this equipment and take it for me I've been doing this for 10 years. My equipment is still very minimal I have everything in a small black Nike bag that I take out to the field and that's it I don't have a bunch of gadgets don't need that you don't need that to have a successful business I hope this helps you out coach. If you have any questions for me comment below this video. I'm here to help You


Hi everyone, Joe for JaspysCaseRakes.com coming at you with a random number block randomizer for 2023 Tribute Baseball Picker Team 4, featuring these teams right here. Big thanks to this group for getting in. There are the numbers right there. Let's roll it. Let's randomize it 6 and a 5, 11 times for names and teams. One, two, more, 11 the final time, got to fill that in, Nicholas. And 6 and a 5, 11 times for the numbers. And 11th and final time, we got 2 down to 3. Alright, fill with 2 and 9, Nicholas with 4, Chad Tucker with 7, Nicholas with 1, fill with 5, Ryan with 0. So Ryan, you'll get any and all redemptions for just that group of teams right there, including one of one redemption. Nicholas, you'll still get live one of ones. Fill with 6, Johanna with 8, and Nicholas with 3. Not in a common occurrence, but we put it in the description anyway, just in case. Alright, we'll see you in the next video for the break, JaspysCaseRakes.com.


Like, I f***ed Drake, he top one, he my number one, but Gates my n***a, I listen to, I f*** with. How was the energy? Him and Three was locked in, like... That don't wanna take the time, man, to tell you I'm done, and I'm gon' keep it real. Yeah, we on Boss Talk 101. Yeah, yeah. Okay, so how was it when him and Kevin Gates, when he landed that one with Kevin Gates? See, that one was, yeah. They talk when it's time to slide, slide. Like, cause Gates, that's my, that's probably my favorite rapper. Sam told me when they painted you a picture, don't let them paint you another picture, saying I switched that. Like, I f***ed Drake, he top one, he my number one, but Gates my n***a, I listen to, I f*** with. How was the energy? Him and Three was locked in, like... That don't wanna take the time, man, to tell you I'm done, and I'm gon' keep it real. Did you go with him when he done that one?  Give me, give me the s***. I just watched from a distance, like, that's what I'm telling you, like, my character is to watch from a distance. I'm not s*** who gon' be. Let me do, you know what I'm saying?  I'm a s*** summer for real. Like, no cap. Come on, man. I ain't stunt, I ain't cap, and I'm just saying like... No, I get it, but I'm trying to understand how the process of the music went for you when you seen him, when they finished the product. How was it? Like, did you like it?   Let me see if gays really is who he is. After being here 20 minutes, gays really is who he is. Now I'm in my mode, like, I f*** with gays, but right now I ain't, I can't shake his hand and talk to him. So I ain't even here for that no more. Boom, this my brother brother. So when he was, wasn't nobody, when he had five fans, when he had 20, when he had a million, when he had a thousand. I mean, every step is about a time he, at which I see, it's not just like, no, boom, I ate him. He like, I ain't even really trying to be a p*** number. I'm over where it's popping that, but it was good for them. That chemistry was good. Like, you know, I don't learn that. I don't really learn that no matter how much money he's got, like this in here, like, peaked it. And like, he was reacting to that. And like, it was that I know gays one of them. And like, cause I know how he acted with three. I get how gays was. That's cool. You asked how three was. I want to know how the music was and how you thought it would. They done on that track. How did you feel about that? That's what I said. But you took me another way. You talking about giving gays. I'm good with it. In general, like the music, the song, the broken love, s***. Yeah. Like, how did you, how did you like that? And how, and just the procedure? When he sent me the verse and it was like, gays finished his verse. Yeah. It was just like, oh, did this gays. Like, it's, that's what I'm saying. It was that simple. Like we talked about it probably five minutes. Well, that gays did that. You hear what he said? It wasn't, it wasn't that like, it wasn't looking out of that. Then what did he talk to you about? He said, we did that real quick on FaceTime, then it's on to Big 3. And we feel like, I don't know about, I just want to tell you, like, by then it's just like, we're going to get our moment in. Cause we really come from like, thinking about the s***. And then he saw like, then we're back to something else. We're going to see down for the airport tomorrow. Like it was 3, it was, he was really in the s***. So it was like, I don't know. It was cool though.