The Tornstrom Auditorium in Brainer tonight was full of traditional singing and dancing when the African Children's Choir came into town. The choir consists of 19 children who range from ages 8 to 10 years old. The group travels throughout America and Canada to show the western world the joy, dignity and hope of African children. The money raised will help use education as a tool to get children and their families out of cycles of poverty. To be sort of a teacher and we're called aunties and uncles, to be sort of a new family member of these children, these children are special, these children are joyful, have so much energy which hopefully you'll see in the concert when you fall in love with them immediately. So to be able to kind of be a mentor for them is, I feel, a privilege. Members of the Choir will learn a little more about American culture tomorrow when they attend the Brainerd High School football game. If you've enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland Public Television.


Today I'm going to show you guys how to make some raw clarified butter and for those of you that are unfamiliar raw dairy products have a higher nutrient content as well as more beneficial bacteria and enzymes than its pasteurized alternative. Now the problem here is to make clarified butter, aka ghee, we have to heat the butter to a certain temperature to melt it in order to separate the milk protein from the milk liquid to the butter fat and this can actually be done at a raw temperature. I'm not 100% sure what the melting point of butter is. I think it's between 90 and 95 degrees Fahrenheit but in order to keep a product raw all we really have to do is keep it below about 110 and in this case we're actually going to keep it at 105 degrees in a dehydrator for a couple hours so we can then clarify it while still maintaining the integrity of the raw product. Now if you're thinking while I don't have access to raw butter this is still a technique that can be utilized for making clarified butter regardless of whether you want the product to be raw in the end or not. Here I have the nice deep yellow colored unsalted butter. I'm going to put all of this in a pot. Now I'm going to take this down to my dehydrator. The reason I use a dehydrator here is because it's much easier to control the temperature. The temperature on this goes below 105 degrees. You know we could warm this up at 95 degrees so it can remain a raw product the entire time. Now can you do this on a stove? You might be able to if you put it on a very low heat and constantly start but it would be much more labor intensive and it would take quite a while to do that so thankfully all we have to do here is set the dehydrator on about 100 degrees and just let it go. Now this usually does take a couple hours and it's important to keep in mind that if we put this on 100 degrees that doesn't mean the butter is going to get to 100 degrees that just means that the temperature of the machine will go up to 100 degrees so the temperature of the actual food is going to be a bit lower. All right so it's been about three hours and our butter appears to be melted for the most part. Now I'm going to bring this upstairs but we want to be very careful not to disturb the milk protein at the bottom while we bring it up. Okay so here I have a strainer with some cheesecloth that is over a glass bowl. If we look at the butter we could see there's some milk proteins on top but most of them are on the bottom. The ones that have floated to the surface will get caught by the strainer but we have to be careful about the ones on the bottom because some of those are liquid and they will pass through the strainer so when we pour this we want to kind of pour off the top and leave the bottom in the pot. Okay so I've poured most of the butter that's on top off but as you can see there's still a few tablespoons here that are trapped with the milk proteins and liquids and now if we take a look at our strainer there are the milk solids that were on top they are caught in the cheesecloth and the strainer. So the milk proteins that are still in the pot as you can see there's a fair bit of liquid in here too so I'm going to put this in a jar and what we can do with this jar is put it back in the dehydrator and since we have a narrower container we can let the butterfat rise to the top and then scrape it off even after we've strained this mixture. It's almost impossible to remove the entirety of the milk proteins. If you see on the bottom there's still a couple drops of that and the way we can alleviate this is we could restrain it one more time going into the jar. So now what's going to happen is all of the remaining milk proteins whatever tiny percentage is left in here they're all going to sink to the bottom so I'm going to pour the rest of this off into a bowl through another fine strainer and just be mindful to try to strain out all of the milk protein. You can see some white specks at the bottom of the bowl that we eliminated by doing this again. Hopefully some of you can utilize this for anyone that has access to raw butter but is allergic to the milk protein or has been avoiding it for some reason maybe this will give you confidence in the rawness of the product as well as the removal of any possible inflammatory factors. Hey maybe you don't have raw butter but you'd like to make your own clarified butter you can utilize this technique the same way minimally heating it or maybe even heating it up a little bit more to quicken up the process but either way we have a very beautiful and delicious source of nutrition and you know for me one of the only high quality fats that I really have access to is raw grass-fed butter and I am allergic to it so by clarifying it I have a product with which I am confident in the nutrient density of it. Yes I can go buy you know grain finished bone marrow I can buy some lamb fat that's shipped from Australia but for me the quality of the food and the nutrient density is what I strive to achieve and this helps me do that so all I usually do with this fat is put it on my meat after I cook it or I consume it with the raw meat I just don't like spending all this time making a raw product and then heating it I have beef tallow and other rendered fats that I can use for actually cooking the meat if need be so thank you guys for watching if you guys would like to support me please subscribe and share the video if you guys want to check out my amazon shop I have a bunch of products on there from codler oil to supplements if any of you guys are on instagram or twitter I would love it if you could drop me a follow and outside of that if you guys are interested in one-on-one consultations in regards to increasing the nutrient density of your diet and lifestyle in general feel free to reach out to me via the contact form on my website or via email frankatefano at gmail.com speaking of my website I did just come out with some hygiene products about two weeks ago so if you guys are interested in tooth powder deodorant lip balm or moisturizing cream definitely check that out frank-tefano.com under the shop tab


I know a lot of mom and pops, they're not willing to hire people, they're not willing to trust other people because it's so close to their identity, right? And it's very, very difficult position. So for someone to be able to get out of the mindset is super important because that is also what hinders the growth of any restaurant or any business. For example, Little Audrey, if you don't trust other people because your soul identified with the business, it's very, very difficult for you to grow past that one location because you won't trust other people with your recipe. You won't trust having a manager take care of a new location for you at the end of the day, even if you're looking at selling or if you're looking growing your business is very, very important to be in the right mind space in order for you to be able to take that leap.


What's going on everyone? Sam here with latent sports cards, ripping 22, Bowman Inception Baseball Hobbies, 16 box, full case break, number two, random division style. There's a look again at your random results. As always, you can find those on the website, under the results tab, as well as the link that's in chat. So good luck here, everybody. And we're getting close to selling out all of our Phoenix Breaks. First one is sold out, second one, everything is now under 10, I believe, under 10 spots to go. So yeah, thank you guys again. Oh boy, here we go again. This is a bull, dude. It's legitimately impossible not have one had these fall. There's our 16 boxes. First one. Again, not gonna do a recap after these guys. We are a bit behind, so I want to make sure Forrest has enough time to get in here and do his thing. I will call out which hit goes to which division though. Blue, Gunnar Hoglund, AL East, 55 of 99. God, going to the AL East. Jordan Byers, 212 out of 250. Nice one there. And AL East, 39 out of 50. Trey Sweeney on the gold auto. Congrats there. Darren B. There you go, Darren. One, two, three, four, five, six, eight teams to go on 24, guys. Eight teams to go. I don't know when you got a chance dropping that and tweeting it. Yasser Mercedes, AL Central to 250. That is 37 of 250. Orange, Eddie's Leonard, NL West, 22 of 25. Oh, 27 of 99. AL East, Roger Garias, nice one there. And Silver signings, James Wood, 20 out of 100. Going to the NL West. Nice one there. Nam Q. Congrats, buddy. James Wood, now a national. Ed Denzer Guzman, going to the AL West. Nice one there, four, five. Colour match with the Angels. That's awesome. Grats to Bryno. Jay Allen, 27 of 75. Going to the NL Central on the blue. And Isaac Pacheco, 30 out of 250. Going to the AL Central by way of the Tigers. Not yet. He did buy a card at some point and he is putting it in the Almanac. I know of one that's going to be in the Almanac. He sent it in the breaker chat today. Not going to spoil it, but no, no info on the Almanac yet. My knowledge, at least. It's gold, Ellie De La Cruz, 44 of 50. Going to the NL Central. Grats on that, NL Central. Got AL West, Ryan Cusick to 399. And Curtis Bede on the Silver signings, 22 out of 100. That's going to the AL East. Darren B, congrats, Darren. There you go, buddy. Nice. Mead, got the mead for mead. Just got worse and worse. Every day.  Base gold, Victor Acosta, that is two out of 50 for the NL West. Nice one there, Namkeem. You got that right, Shane. AL East, Ryan Spikes, 124 out of 399. And AL East again, 62 out of 99. Daryl Hernandez. What's up? I'll show you the sweater I ordered. Thank you, Timothy, taking the Jags in number 24, down to 7 to go now. It's perfect for you, then. Did you actually? Yeah. Really? Yeah. Yeah. Done with it. Done for. It's true. I'm going to get some paint, that's pretty pink. Yeah. Oscar Colas, gold 39 of 50. Keith onto the AL Central. You've got Willman Candelario, 66 out of 75. Also going to the AL Central on the fuchsia. And Carson Williams, 159 out of 250. Going to the AL East. Carson Williams. See if anybody can spot me at the Arnold on Sunday. We're in your trash hoodie. No, I can't go in there. That's the company. I can't do that. I can't do that. Sorry, Sean, your ticket's taken away. There's Fuchsia, Ian Lewis, 25 of 75. AL East. AL West, Yonatan Classe, 96 out of 200. And Christian Baccaro, 17 out of 99. There you go, Ed, with the AL East. Congrats, buddy. You got that mag for you, man. No, he's been moving, so he's just been super busy. I've been taxing him, but he's been super busy. Yeah, I think he just got the keys to the house today, so he's been buying furniture and doing all that stuff. No, not in like a month, I would say. Came in not recently, but a few weeks ago for a little bit. Base and base, he misses you, that's why. There's Darrell Horneas to 99. For the AL East. John Kenzie Noelle, 13 out of 25 on the guy who takes Noelle's. AL Central. And Gold, Samuel Munoz, 6 out of 50, going to the NL West. I agree, David, I do agree for sure. It's the same stock and same card feel as like in Top's Inception, obviously. So it's just a clean product overall. Cheerio and Jordan Walker. There's Jordani De Los Santos to 99. So in here, going to the AL East. Aaron B, how about a Roderick Arias? 12 out of 75 on the fuchsia. Congrats on that, buddy. There you go. Heck yeah. And Gold, Daniel Cueva, 31 out of 50, going to the AL West as well. It's Josar Garcia, 61 out of 99. Lenin Sosa, that is 12 out of 50. Nice one there for the AL Central. A lot of Gold's come out of this one. Diego Velazquez to 250 for the NL West. Diego Velazquez. There's George Valera, 68 out of 99 for the AL Central. You're not the first person that said that, David. The Doctor Strange. There's Jackson Job, AL Central, 84 out of 200. And Oscar Coloss, 195 out of 200 going to the AL Central again on the Jersey Auto. Congrats, AL Central. Down to seven teams to go, guys. Seven teams left on Phoenix. Again, that is the second Phoenix break of the day time. Zac Veen and Victor Acosta. Sal Frelik, 27 out of 50 for the Brew Crew. Nice one there. It's going to the NL East. Ethan Wilson, that is 39 out of 75. There you go, Ed on the fuchsia auto. And NL Central is going to be Runeer Quintero, that is 33 out of 99 color match. Going to Clinton Eye. Congrats, Clinton. Thanks for the sub there, play. Cappy, Rajkarayas. There's Pink, Simon, Juan, 24 out of 75 going to the NL East. We've got NL West, 27 out of 200 is Eddie's Leonard. Nice one there, Nam Kew, Eddie's Leonard. And Blue, Henry Davis, 6 out of 99 going to the NL Central. Congrats again, Clinton. Nice one there, buddy. Three boxes left. Justin Paulino, AL East, 43 out of 99. Autos, we've got first is Rain Duncone, 201 out of 250 going to the NL West. Rain Duncone. Gold, Cameron Colley, 23 out of 50 going to the AL West. Nice one there, AL West. Cameron Colley. Pretty good. No, no, no, you're good, TJ. Shoot us an email, TJ. William Bergoya, and Jason Dominguez. LaytonSportsCards.com. And I'll make sure to forward that over to Sorting & Shipping. There's Fuchsia, Daniel Cueva. That is 9 out of 75 for the AL West. The AL Central, or NL Central. Gold, Jonathan Mejia, 20 out of 50. Nice one there. And Max Muncie, 82 out of 200 going to the AL West. Nice one there as well. Break, everybody. Will Watson, face. There's a blue Zac Veen, 55 out of 99 for the NL West. Zac Veen. Followed by AL West. Gold, Urebel, and Hellace, 28 out of 50 by way of the Athletics. And NL West, Benny Montgomery, 99 of 99. Bookend on the Primordial. Congrats on that, Nam cue. That will do it for the break, everybody. Thanks again for the fill. Up next, we've got our BNXBYTs.


All right. I'm going to get us started. Since I have to read this and open the meeting. Good afternoon. It is the 18th of May. And this is a special meeting of the town council. And it will not include public comment. The governor Baker's March 12th order suspending certain provisions of the open meeting law. General law C 30. A paragraph 20 allows us to hold this virtual town council meeting. Given that we have a quorum of the council present I'm calling the special meeting to order. On May 18, 2021 at 401. I will call on each council by name and they should let me know that they're present. And then after that, please mute your mic again. And wait for further instructions. So I will start. With shallony ball milk. Yes. People announce themselves in different ways. I'm Lucifer present. Thank you. That's the angels. Present. Marcy DeMont. Green grease. Present Mandy. Joe Hanneke. Present. Or the Pam. Present. George Ryan. He's to you. Kathy Shane. Matthew Shane. We're in a moment. Steve Schreiber. I'm here. Thank you. Sarah Schwartz. Present. And has Kathy joined us yet. No. It was just in our last meeting. All right. We are going to be going into executive session. And will not reconvene an open session. Following the executive session. We're going to be going into executive session. We're going to be going into executive session. Counselors will log off of the present session. And log on to the link provided for the executive session. And therefore I am making a motion. I just want to see to Kathy join us yet. Athena, do you want to check with Kathy to make sure she's not having problems? Sure. Thank you so much. We're waiting to see if one of our counselors is having problems engine. I'm going to make a motion to convene an executive session. Not only will you need to confirm that you can hear us and we can hear you, but you need to confirm that no one else can hear you. Sorry. No answer from Kathy. I do have a message out to her. Okay. I'm going to make the motion and the motion is to convene an executive session under mass general law. Chapter 30 a paragraph 21. Three to discuss strategy with respect to litigation. Case number two one eight zero CV zero zero zero four three. Gray, comma Carol at all versus Sua debt in her capacity. Acting town clerk. I declare that an open meeting may have a detrimental effect on the litigating position of the body. The town council will not reconvene an open session following the executive session. Is there a second? Second. Okay. And then I'm going to now take the vote. And I'm going to start with a list of brewer. Hi. Pat D'Angelo's. Hi. Dorothy Demont. Yes. Lynn Griezmer is an eye. Mandy Johannick. Hi. Dorothy Pam. Hi. Evan Ross. Hi. George Ryan. Yes. Kathy Shane. Yes. Has now joined us. Thank you. Steve Schreiber. Yes. Andy Steinberg. Yes. Sarah Schwartz. Yes. Shalini Balmille. Yes. Thank you. You'll log off and you have now been sent an additional connection. So again, we will not reconvene an open meeting after this meeting. Okay.


Hello, Ocelator Sync here. For the last few weeks I've been working hard, mostly on my Digitone patch practice I thought for a change of pace today. I might feature something on the channel that I have featured before but kind of a long time ago and I thought it's worth talking about because I think it's a really, really interesting piece of equipment which is the Salisbury at Megatron. So the Salisbury at Megatron is an 8-bit synthesizer and in its default form it is a really cool chiptunie type stuff. I've featured it a long time ago on the channel where I made some sort of JRPG style songs. I'll put a link to them in the description, maybe a card will appear somewhere. But one of the really neat things about it is that it has a firmware which is reprogrammable and it can be programmed to do a couple of other things. There's a drum machine, there's a synth with delay but the firmware which I've loaded onto it recently which I'd like to explore today. I'll put this overlay on so we can get to better idea of what's actually represented here is the Auditron firmware and what's really cool about the Auditron firmware is that this is an 8-bit emulation of the ARP Odyssey. Cool. So what I thought I'd do today just for a bit of fun is explore the Auditron, make some patches, listen to some sounds to help us along. We have the DC electronic flashback 2 for delay and the Digitech Polaro reverb which I'll probably turn on at some point and never turn off again because I love delay and reverb so much and just controlling it with the Arturia Keystep Pro. So let's have a listen shall we? So the interface is okay on this thing it's a little bit fiddly in places so I have to bear with me as I move around. So you have these controls at the top which always do the same thing and then for everything else you have this select here which will select the parameter. Sometimes you'll be able to press the button to change what the parameter is doing and then you have the value control here so try and keep up with what I'm doing here. So let's start with the basic sound so it follows the same architecture as the Odyssey more or less so at the top here we have the audio mixer which allow us to mix together the two different oscillators. So here's the first oscillator in sawtooth mode. When you're in the middle of the range you can hear a little bit of digital aliasing as you go further up things get really gritty and you're either going to love the fact that things get gritty or you're going to hate it. Personally I've got synths which are unlogged and don't go gritty like this so down at the bottom get that sort of aliasing ring to it. Cool so let's have a listen to the square wave. Cool 8-bit square wave sound at the top down at the bottom quite weighty. Cool and you can adjust the level of how much you've got that in the mixer. Can only be one or the other per oscillator though. Let's go up to the filter for a second so digital filter everything is digital pretty much. You've got two different filter modes three actually so you've got that button when it's off there's no filter there's nothing you can do to filter anything. Green is kind of a smoother sound. Turn the resonance down just have a the filter circuit on the filter algorithm on the normal at mechatron is really gritty this is a lot smoother it still has that cool ringing there bit of resonance so that's the resonance dimed in this mode so not very high resonance really quite brassy in red mode immediately there's built-in resonance there I love that sound it's kind of digital brass so turn up the resonance a bit that's going to be doing wire mouth nice with ringing just coming down to here you can turn on keyboard tracking so even with the filter turn low down you'll still get stuff across the whole of the keyboard which is cool let's go back to the green mode for the moment and let's bring in the other oscillator apparently have sync turned on there let's turn them off so there you have two oscillators and you can tune them individually on these two knobs here and indeed we do have a duophonic behavior so we could set one of them to square and then one to so we put a little bit of delay on stereo delay so we've got a bit of winding there so both on on sawtooth there both on square wave okay let's tune them both to unison so next thing in the mixer the only other thing in the mixer allows you to choose between mixing in noise or ring mod so we can bring in some noise into the sound so things weren't gritty enough for you already we can make it grittier by adding some noise or we can bring in ring mod so it's going to ring mod I don't know which way around it is I think it's ring modding one with two two with one and of course you could dial out the two oscillators and just have the ring mod in there or just bring one of the oscillators so loads of really lovely dirty sounds to be had there okay where to go next we go to the envelope and add something in the so we can choose whether or not the envelope for the the amp is going to be sort of an A D A S D rather or a no an A D or a D to the actual A D S R so the moment it's just set to be an A D so we can or we can have it act with the actual A D S R as well which we can also apply to other things so maybe let's apply that A D S R to some other things let's set ourselves back to to that and let's let's go to our filter section the D C F here and let's apply some envelope to it show me so we can turn up the envelope amount we can choose whether it's being affected by the simple envelope or the A D S R let's do the A D S R and let's set the A D S R amount rather give it some shape so give it some attack as I say this interface is maybe occasionally a bit suboptimal but should we add some reverb as well use the red type let's take the amount off there and let's maybe yeah let's go over to D C O 2 and let's do some sync so let's and let's put our attack back so D C O 2 we can go to that one there we can set that to so this is the FM of D C O 2 and we can have it going between a couple of different things so if this is orange it's going to do sample and hold random which is going to be linked to the the LFO speed actually let's leave it there for a second and if we go here we can turn on sync which is really cool or we can have that affected by the envelope cool so yeah we can also just have normal vibrato on the FM there so if we on this one here if it's on orange it's going to be our sine LFO so we can have one oscillator for doing vibrato not the other one but we can also turn on here as well or we can have it affected by a square wave instead which this has been tuned so it's really easy to get decent intervals okay so that's most of the stuff on it oh we haven't done pulse width modulation Nick Pat will be very cross with me so if we're on square wave on D C O 2 which we are we can also turn on pulse width modulation here okay let's try and make a let's try and make a bass sound shall we so let's go with square wave and square wave and go with that angrier filter mode we'll turn on the filter tracking and then we want to put some envelope now we want our DCO or VCO rather to just act like a gate something like that and we're going to want to smash our ADSR into our filter so we can come here turn up that's the something wrong one there rather now we're going to want to set our ADSR up to be fast attack quick a little bit of release on maybe put some ring mod in to get some grit ring mod there we go a little bit of attack on the little ADSR cool okay let's try making a lead sound perhaps so just come around to like an initialised patch as far as it goes so just a square wave at the moment bit of delay one thing I haven't mentioned is that we do have portamento here if we want it maybe give it a little bit of vibrato here give it a dark here I've also got a high pass filter here which I haven't mentioned really so that's really kind of basic stuff going on there so maybe we can bring in the other DCO and I think I've got sync turn on the moment which might be fun mind if we have that have an envelope doing that for us so we can go to here switch that over to pitch mod uh no it's not pitch mod sorry I need to be here rather switch that over to envelope four and then we'll go here to our ADSR slow attack turn up that second oscillator a bit more yeah instant sync sound quick attack piv ring mod dirty up perhaps we should have the filter following that as well so we want that in ADSR mode I probably want to turn on the uh keyboard tracking for the filter what would happen if we put some of the sampland I can't do that and the kind of sample hot and hold and envelope let's try that now we've got now we've got the filter moving let's try without the sync uh sorry the envelope pitch for the sync let's try something hold for that instead maybe throw that into the filter as well that's super cool so because the duophonic behavior doesn't go away just because we have sync on and when I play a high note it's always oscillator two that's going to take that higher note so we can get different sync tones by playing other intervals so they're at unison now although the pitch of if we turn off sync you can hear that that oscillator being pushed and pulled all over the place pitch wise sync turned on when I play a high note it's not changing the pitch it's changing the overtones that we get from the sync nice okay let's go back to initialize patch and just do one more little exploration shall we okay let's do one more weird thing shall we let's lean into the duophonic behavior so we need both uh oscillators on let's slow down the delay a little bit bring in some ring mod maybe we'll give us some uh envelope so we'll have our vca set to uh the simple envelope I think give that some release as well let's have our filter moved around this time by the LFO let's put our square wave LFO on one of them let's go with DCO one which will be our root note square wave is unipolar so you're only getting a pitch up which is chef's kiss bit of portamento I think we want our filter moved a bit more so the LFO I think we set on every key press to have to play in time as we should try square well that's big reacts quite differently when they're both square waves which is cool I guess now they're both square waves we can put some pulse with modulation in I never use this I hope it was fun for you as well I really enjoy getting reacquainted with this since um yeah I haven't really featured along the channel I haven't used it a lot recently but I just felt like sticking this um firmware on it and having a noodle and I'm glad I did because it's I don't have an r-potasy and this is not an r-potasy but in an 8-bit mold you've got a lot of the character there it's doing that screaming aggressive weird and quirky vibe I think that the mind that it takes to decide that you're going to take an 8-bit platform and build an r-potasy on it isn't is the mind of a mad genius so um thank you Soulsby for doing that I really enjoyed that anyway thanks for sitting through and coming with me on this journey exploring the Soulsby Auditron if you enjoyed the video then please do give it a thumbs up and make sure that you are subscribed to the channel to make sure you don't miss out on any upcoming synth fun um I hope that you enjoyed the digitone patch pack that I just put out remember that the sample's in there as well if you don't have a digitone then you can still enjoy the sounds and they're free so go and grab them otherwise until next time take care bye bye


This is the first in a series of videos. I'm gonna do all about my pre-live checklist or what I do before I even record in fact. And the first section that we're gonna focus on is audio. So for each of these, there's gonna be five things that I sort of check before I click the record button. And first of all, do check that the audio interface is on. This may be obvious if you've got a hardware interface, but if you're using a software interface like Audio Hijack, it might be easy to miss that you haven't actually got it activated. Also make sure that you have your source selected so that the correct microphone is leading into it. And do check your signal processing as well so if you've got any noise reduction, things like that, then make sure that those levels are all the same as they should be and haven't been changed since you last used it. Last one is do check the mute button. It's so easy to miss. I've done recordings before I added this to my list. Well, I'd actually forgotten that I was on mute. So don't make the same mistake as me. In the next video, we'll be looking at lighting.


Oh Sorry this music just seems really uncomfortable to me for some reason and I wanted to make the situation even more uncomfortable for the intro But it's actually a very serious situation today Because I have a bit of an announcement to make It's like me to kind of I guess make it kind of funny or whatever at the start and deal with things with humor but I have a bit of a thing I wanted to tell you guys that I Don't I Don't know what numbers there I I've always only been able to count to G so we're gonna give this a go We're gonna try to learn numbers and I'm hoping you'll support me by by dropping a fat like in the comments Not only do I hate that sentence, but I said it at the start of the video as well. It's just awful Let's go learn some numbers with cocked-up Elmo. All right. I'm playing this on an end Seventy seventy three emulators, so I have to try to figure out the buttons. Oh You know, I'm gonna jump right into it Jesus Elmo really likes counting Fantastic idea Elmo let's look for a man with a white van and ask him does he have any numbers? Get the van. Oh, well, would you look at that? It's not only Elmo. That's cocked up It seems like Sesame Street has a serious coke problem. Well come with me. I'll take you there No And close those legs like look at him. He's man-splaining and man-spreading at the same time. He's not to be trusted Elmo careful with those hands find the number six or find six ball What oh No, he said find six balls and then the game crashed god damn it I just got to the good part of the game where that guy on the street says you want to come to the carnival with me and Asked me to search for his balls and then the game crashed.  I want to go talk to that strange man again. No, not that strange man the next strange man fine What does he have to say?  I don't think this is cookie world. I think we've gone into the sewer system Number Okay, we got to collect some sevens. I'm afraid of sevens though cuz seven eight nine. It's a high brow humor You might not get it Don't expose yourself to the camera. Elmo. What is wrong with this game? It's very Inappropriate and it's nothing to do with me. I've not even made it inappropriate or any in windows or anything like that It's just the game's fault want to keep playing. No, I really don't actually press one of these but That's right. I'm playing in an emulator. I don't know what those buttons are the one that is flashing The one that's flashing. I don't have like a razor keyboard. I use a Microsoft 700. They're like 10 euro God damn it. All right. We're doing a different level. I guess oh wait I remember this game for some reason I thought the game was called SSX tricky But no actually it was Elmo's number journey or something. What would sesame Street almost number journey? Yep, that's the one. I know because in my other monitor. I've told a friend that I'm gonna go play that this isn't even snow This is just coke Like look at that the snowman looks like he's moving Elmo's out of his mind The horn Elmo need three balls. I don't understand what do I this game is actually too hard. Why did I set it to hard difficulty? Come on, please. Yes. I got it. I think I could get to e-sports level on this game Thank you so much cookie monster now Can you let me out of this jail that you've got me locked in by the looks of it? How high are these walls? How tall is Elmo? I need to figure out how tall these walls are okay? Elmo's apparently 60 centimeters tall from now on when people ask my height I'm gonna say I'm just over three almost Come along to my castle I we shall do some serious counting Elmo you need to watch your hands, buddy.   What kind of reviews did this get journey review? Amazing the hours spent completing journey will create memories that last for years nine out of ten I assume they're talking about Elmo's journey. I can't see any other journey being worthwhile top of dose of Elmo I think Elmo's had a few double doses himself. There's also one of our letters. Oh god damn it I should I should have got that one too. I can't even spell my name. It's like K three the one Zed for the Elmo's letter adventure and number journey or due out this fall and will be brought to you by the letter dollar sign And the number upside down question mark. I should think whoever's writing this needs to play these games Is he hitting on me did he just rate me as an eight? I'm okay with that I'll take an eight look the narcissistic bastard. He probably gives himself a ten. He's gonna portrait himself in his house Oh for feck's sake, how do I not get the bonus round? Maybe I should do bad on purpose because this is so tedious and now it's gone from like three to nine So I just got to throw nine balls There you go nine and it only took nine minutes No, I gotta do more. Of course. I do can I leave I don't think the developers understood their demographic 26 year old males because this just isn't holding my attention the bonus rounds God Sesame Street has really been downgraded Hasn't it it's sesame corner now? Unfortunately, this is all there is to it and it's been blocked by boxes probably a crack then behind it Which would explain a lot. All right, let's go to the carnival with the creepy dude All right, I need number two Kevin need number two God if you read the transcript you would think that it is an actual child playing this, you know, except for that the crack references Wait a second just like the counts monocle this carnival is painted on I hate this world Hey, I bet you're in the mood for a bumpy ride. Oh My gosh Terrifying all right at least something different. This is great and it's faster to get it too I'm looking for twos. That's a bit of an Elmo joke You need to be pretty intelligent to get that one if I had one critique about this game and I do only have one It's that the draw distance isn't great. Things are popping in a bit too late. Also.  That's my second flaw of the game, but there is only two Please don't be spitting all over me especially in this day and age I think that's it. We've completed the game and no numbers are flying out of the hat some weird fireworks Again, I'm I'm just assuming acid Now almost turn to look at us. Okay, here we go the credits. So Joe Scary, I think you very much for this scary experience game concept of J. Len and great concept You did is amazing. I like that. You're so proud of it. You didn't even put on your full name All right, and just like that Elmo's number adventure gets added to a very exclusive list of games. I've actually completed on this channel I think I could count it on about two hands and it's on that exclusive list And I got a place it somewhere in the top through no the top the top and see how I said top three I know numbers now. So I have this game to thank for it and I'm just so happy we could progress through this problem together. I hope you guys enjoyed I hope you learned a thing or two as well. I'm sure you did even though. You might be too proud to admit it But I I hope this will make you want to come back for more content I post every single day not always number content But a lot of number content and I also stream over on twitch the link that is in the description But without further rambling, I'm just gonna end it there. I hope to see you next time folks Bye for now. I I do understand if you don't come back though


Here's why women will lose their period. You're just way too lean. You're not eating enough. This is very common with female athletes. Here's why women will lose their period. Aside from any potential medical issue or hormonal issue is too much stress, not enough sleep, too much exercise. So if you really want your period to come back quickly, I would take your workouts. I'd move them down to three days a week and I would take your calories and I'd add about 400 calories.  And again, I'm not a doctor. That's where I would go and again, I would work with a functional medicine practitioner.  You'll start seeing a difference and feeling a difference within two to three weeks. Right away. And I think like Sal said, within a few months, hopefully we have our period back.


Hi everyone, Joe for Jaspy's casebreaks.com, coming at you with 2021 Hit Parade Baseball Sapphire Edition, series nine, six box, random team break number two. High risk, high reward, but the reward could be really nice. We actually got this already. So you can cross that off your bingo card if you're following along at home. Big thanks to all of these wonderful people for getting into the action. I really appreciate it. And there are all the teams right here. Let's roll it, let's randomize it. Six and a two, eight times for names and teams. One, two, three, four, five, six, seven, and eighth and final time. Got Chris down to Michael. EA, what's going on? How are you? Six and a two, eight times for the teams. One, two, three, and eighth and final time. Trades are allowed, but trade at your own risks. Risk, there's only six things in here, six very nice things in here. So don't make a mistake. Just think carefully before you trade. Yeah, I agree, Steve Burch, let's get that done. That's a few fillers and a few spots and then we'll be in a breaksville on that opulence. All right, Chris with the White Sox, Jonathan with the Indians, Chris with the Reds, Chris Walker with the Phillies, Ryan H with the twins, Anthony with the Nats, Robert with the Rocks, Jonathan with the Giants, Robert Flores with the Pirates, PJ, Royals, Jonah with the Angels, EA with the Padres, PJ with the O's, Chris you got my Dodgers, Jeremy with the Cubbies, Gordon with the Blue Jays, Robert with the Athletics, Stephen K with the Rangers, Jonathan with the Astros, Michael P with the Met, Michael E with the Brew Crew, Jonathan with the Diamondbacks, Chris with the Rays, Robert Flores, Braves and Red Sox, Chris Coe with the Mariners, PJ with the Yankees, Anthony with the St. Louis Cardinals, PJ with the Marlins, and Michael P with the Detroit Tigers. A little bit bigger right there. All right, let's sort by column B. I'm gonna keep the video running. I don't think there's gonna be a lot of trading happening here. So, trade window going once, speak now or forever, Holder's piece. I don't need any supplies for this break. And this is case two out of six. That's the only one we have. Though we only had two, we only got two cases, but we're always getting hit parades stuff. So, keep it on the website for future parade things. Trade window going twice. TWC trade window closed. There's the case right there. Let's print in, let's print out that list as well. Slip over to the Dodgers Giants game really quick. I don't think that's a national TV game, but it's on the local Dodgers network over here. Scoreless in the bottom of the second in San Francisco. Ooh, this must be a big hit. You pulled a big hit from hit parade. Wow, what do we got here? It's a gold for, wow. Oh no, it's a randomizer. It's a randomizer between Robert and the Braves and Jonah and the Angels. Oh boy, here's the final print out right here for everybody else. It's a sell sheet hit. You can cross this off the bingo card. It's Mike Trout and Ronald Acunha Jr. Dual autograph out of Topps gold label. Four out of 10. Got the gold frame right there, looks pretty sharp. Wow, it's a little dent right there in there, but it's in the card. Oh boy. Yeah, I think he's a first-timer EA. One happy person, one sad person. All right, next box. We'll do that randomizer at the end of the break. Jonah, is this the first break you've done with us or just the first break you've done in your life? You're either gonna, wow. Next one, graded card, feels like, feels like a PSA card. And it's gonna be, ooh. It's a, the card is a mint nine, the auto is a 10. And it's Aaron Judge, rookie Aaron Judge. That's pretty cool. I feel like I haven't seen too many of this. 2017 Topps Gallery. Nice Yankees, PJ with the Bronx Bombers. It's the rookie Aaron Judge. Another graded card. And it's non-auto PSA 10. So a gem mint 10 for the Astros. Jordon Alvarez, 2020 Topps Chrome, Prism Refractor, PSA 10, Jordon Alvarez. Nice one for the Stroze. Jonathan, with Houston. Halfway through this six box break. All right, this one I don't think is graded. It's another gold frame card. And it's gonna be three out of five. Bryce Harper, Nationals Edition. From 2017, Topps Definitive Collection. That is really sharp. That goes to Robert Flores and the Pittsburgh Pirates. And out of fives and under. All aboard the Big Hit Express. Woo-hoo. Two more to go and then that randomizer. Rex saying Braves are up 20-nothing on the Pirates. Who said there's no offense in baseball? Did I say a pyro? I think I was reading what Rex was saying. Sorry. It's Anthony and the Nationals. I was reading what Rex was saying in the chat. I'm like Ron Burgundy. I just read everything on the screen. Just making sure you guys were paying attention. I guess you were. All right. Next up, Stardom signatures from upper deck out of 199. It's Ken Griffey Jr. Reds Edition. 193 out of 199. Nice. Chris Coe with the red legs. Last spot, Mojo strikes again. Baxter, you know I don't speak Spanish. All right, last one. Good luck. Yeah, this is pretty nice stuff. Hard to hit. There's only six things in this. Hard to hit, but really nice. But it's Sapphire. It better be nice. All right, we're gonna close out with the graded card and then we'll do that randomizer. Now EA, full disclosure, there was a Tetease Jr. in the first case. So I apologize about that. I don't think there's gonna be a Tetease Jr. here. But how about a Tony Gwynn rookie card? 1983, Tops Baseball, PSA-9. Not the most flattering photo of Tony Gwynn, but you get a PSA-9 Tony Gwynn. I'm pretty sure that's his rookie card, right? But I don't know, not the most flattering shot of him. Yeah, that works, right? Think a big Padres fan and regular of Jaspies. Brian Peebles has a nice collection of Tony Gwynn's. But nine grade is pretty nice for an old card from the early 80s. All right, time to make one person really happy and another person very, very sad with this randomizer here. The Mike Trout, Ronald Acuna Jr. to 10, four out of 10 dual autograph out of Tops Gold Label Baseball. It is his rookie card, okay. So very nice EA, thanks for getting in. Oh boy, let's go to some fresh dice. Let's go to a blank list right here. Mike Trout, Los Angeles, California, Angels of Anaheim of Orange County, and then Atlanta, the ATL for the Ronald Acuna. Team on top gets it after five times, four and a one. Good luck. One, two, three, four, five, six, seven, eight. Four and a one, fifth and final time. Wow, flips to the Los Angeles, California, Anaheim, Angels of Orange County. After five times, who said there isn't new guy mojo? That goes to Jonah, who bought a spot straight up, got randomized the Angels and gets the dual auto while you're hooked now. I should have just cut in half, right? That would have been the King Solomon way, the fair way to do it. Man, crazy stuff. Well, there you go Jonah, thanks for getting in. My apologies to Robert and the ATL, but I appreciate you getting in as well. I'm Joe for jaspeaskasebrakes.com. Thanks for watching. Thanks for breaking with us. I'll see you next time for the next one, jaspeaskasebrakes.com, bye.


A lot of people got something to say about the fact that I got six kids with six different men. So I'm just gonna tell y'all why it is better to do it this way. If I had six kids with all the same dude, I get 34% of his income which is only 680 a month. If I got six kids with six different dudes, I get 17% from each one of them which is 340 a month from each one. $340 a month times six baby daddy is just $2,040. So why don't you have six baby daddy's? Going to a different barber right today? No, I'm not going to a different barber to dig. Why the f*** not? Because I'm loyal to my barber.  We already discussed this. We already discussed this.  You don't have a reason why you don't trust that fool. It doesn't matter that I don't have a reason. It should matter. You should just do what the f*** I say. You don't f*** with them. Simple as that. That's my child with Frank. And no, you only go over there for a f***ing sister.  Yes, I know you dated one of his sisters. I never dated his sisters. Yes, the f*** you did. I know for a fact you did.  He f***s up your hair. It's so f***ing what he's practicing. So what if he f***s up my hair? I'm not looking for a f***ing room. I'm already stuck with your f***er.  What rights are you guys fighting for specifically? I don't know what these men's rights activists are speaking for, but I'll speak on behalf of somebody who has dealt with a little bit of what I would consider to be a lack of men's rights. I was once arrested in a public park because my little sister was playing on the playground.  And I wound up in handcuffs and had to answer like 30 f*** questions before the cops finally gave up and realized that my little sister was in fact my little sister and that I was probably just there to hang out with her. I also once called the police because my girlfriend had stabbed me with a steak turner. I wound up in handcuffs. She was over there crying a whole bunch and the officer that put me in handcuffs said, man, you better move out because the next cop that shows up might not be smart enough to realize that you're actually the victim here and you're probably going to wind up going to jail. Oh, and has anybody else ever been put in handcuffs because you brought your girlfriend to the ER after she got into a car accident and they thought you might have beaten the f***er but instead you're just really trying to help her get help?     Put a finger down if you made out with three or more people in one night.   Put a finger down if you talk to multiple guys in the same friend group.   Welcome back to Slate University, classes now in session. If you're new here, I'm Carmen, your professor, and today we're going to be talking about the art of the risky pick. That's how I'm going to be referring to them so that this doesn't get taken down. Anyways, the first thing I want to say though is you do not have to take them or send them to be a good hoe. I know plenty of people who don't send risky picks. And personally, I take them more for myself than I do for the person I'm sending them to. I love taking them. I'm an artsy b***h. It makes me feel confident and sexy to see myself that way. So first things first, if you are going to send risky picks, watermark your photo. I'm a basic b***h. I just number mine. One of my friends puts the name of the person she's sending it to somewhere in the picture. Now I've never had my stuff leaked, but just in case, you're going to want to do it. Now for your necessities. For the love of God, self-timer is your best friend. There's only so many selfies you can take. It opens up a whole new avenue of risky picks. Ice cubes for the, makes them hard, makes them stand out more. Maybe invest in some baby oil. Also, if you're able to catch my kitty pick tutorial before I got taken down, you know the importance of lube. It really helps if your kitty ain't cooperating. It makes you look like a waterfall. This one's for everyone, okay? Videos, gifts, boomerangs, way better than picks. Also remember that with a risky pick, you don't have to go full birthday suit. A partial is just as good as a full. Leave something to the imagination, you know what I'm saying? All right, now, which you've probably all been waiting for, the gag reflex tips. Personally, I've always had a weak gag reflex, but here's how you work on controlling it. The best way to reduce and eliminate your gag reflex is by gradually getting your soft palate used to being touched. One technique that many of you may know is the toothbrush at the back of the tongue. Brush that area for about 15 seconds and repeat that process once a day until you no longer gag. Then that area has been desensitized. Then move the toothbrush further back and keep going. Desensitizing that area takes usually about a month. Also, when you're doing that, relax. Try not to focus too hard on it. Just focus on opening the back of your throat.  Caractus makes perfect, guys. And that is all I have time for today. Next time on Sleight University, we'll be talking about hoeing from home.  I went on a date with a girl after taking verbal abuse from her a year prior. We went out on a date. She started getting really lippy, saying some hurtful things, so I racked up the bill. Walked out. Something you may think what I did was really s***. S*** her. She invited me out on the date, remember, because she wanted to pay because she was sorry. I technically never said I was gonna pay for the bottle of wine. I just said, would you like a bottle of wine? Then she got a little s***y. She deserved it. Unfortunately, you gotta pay for your wine and coach. So I'm already out in Delray Beach on Atlantic Ave. So I decided to meet up with some of my friends. What's the worst that could happen? So I meet up with my friends at another bar and tell them what happened. An hour later, I look at the corner of my eye, pineapple girl walks in. I was like, guys, that's her. That's her. One of the guys we were with was like, dude, you did that to Jessica? Oh s***. Dude, that girl is nuts. She ran over her boyfriend for breaking up with her.  Yo, are you?  No, no, no, I'm really, I'm done. Sometimes the person that you want doesn't deserve you. Say it again. Sometimes the person that you want doesn't deserve you. Now my question is, why do we pick those people? What makes us pick the person that we know subconsciously doesn't deserve our love? Huh? I'm ready to fight myself. What past trauma? What? Which one of you motherf***ers made me like this? Huh? We go for the toxic boys because they're interesting and fun. Why? We don't want stability and true love. Therapist is definitely getting a call later tonight. If you're Scott DeHenry, pause this video and then watch it. I did, I did. If you are not Scott DeHenry, this is none of your f***ing thing. We'll bleep it out. We'll bleep it out. Scott, no, that I have your attention. What's up? Is there any way that like you can quit your day job and men should act and now women should be treated? I'd love to. I'm 31 and I'm from Chicago. And these men are saying that they're like 30 plus, but they somehow started acting like kids. Like do I need to change their diaper? Do you need a bottle? So if all the guys can get a lesson from you, I think this world would be great and I think I would. So a while ago I was talking to this guy about possible marriage. Before I continue, men please do not propose to me in the comments. It is super annoying and creepy and no, just don't. Anyway, so I was telling him that I'm about to graduate with my bachelor's degree and I want to go to grad school for chemistry. And he says, well, why would you do that? You want to have kids, don't you? And I said, yeah, of course I want to have kids, you know, eventually. And he said, then why would you race to your time at grad school? You have to stay home with them. And I was like, I'm gonna work too. This man said, women can't work in Islam once they have kids. That's against the religion. Like, sir, did you forget that Khadijah, the Prophet Muhammad, peace be upon him's first wife, was his boss? She had all of his kids and she worked as his boss. Do not tell me that women can't work in Islam because that is just incorrect. Child sports is not always fair. I just had a case where mom had taken dad to court. She was making about $10 an hour working 25 hours a week, a menial job. Dad was working for a big corporation putting in between 40 and 45 hours a week, making some overtime. Court hit him with $800 a month in child support. No big deal.  So he's working part-time a second job, making $15 an hour working about 20 to 25 hours a week to offset the decrease in his income from having to pay child support. Well, guess what? They take him back to court a year later and they say, hey, we're going to hit you with another $500 a month in child support because of the second job. Now mom's still working 20 to 25 hours a week, making $10 an hour. Dad's now working between 70 and 75 a week, making overtime with the second job. And now his child support goes up another $500. Doesn't seem fair, does it? When my son asks for money for his gaming addiction, only if you make a TikTok with me. So I overheard this guy at the bar saying how trans women are so disgusting and how it's always so obvious. And then he comes and hits on me. Oh, so you don't know what you're talking about.


So my goal is to create some type of updo now I know what I have in mind, but I don't know if it's gonna work with all this her girl So I did this style about two or three years ago. I'm gonna link the video down here Again using two products. I'm going to be using Jane Carter's Hydrate creamy leave-in styling smoothie. This thing is the bomb calm miss Arlette use this on my hair when we reviewed the healthy hairline loved it purchase it through Amazon and I may use a lot of body wrap on me loose. I don't know y'all just playing with the idea my goal is to do a Roll tuck multiple times going all the way back Y'all know what a roll tuck is rolling across the crown of my hair. Is that what it's called? Yeah, I don't know but I'm gonna do it multiple times going all the way back towards my hair now Like I said, I haven't done this in a while. So pray for me pray for me pray for me My hair is very old and dirty like wash day needs to be yesterday Yeah So watch day is gonna be in two or three more days and I'm gonna be using a bunch of Jane Carter solution products So it's gonna be watch day with Jane Carter Not a real not really a review because I've been using these products off and on for years Not the healthy hairline which is fairly new but overall I've been watching Jane Carter I've been using Jane Carter products for a while Let's jump right into this y'all. I don't know how this is gonna work You see this I Be able to Successively roll tuck the four Z part Because she has shrunken up quite a bit and she's literally starting to Man up a little bit. Let me show y'all what's going on. I'm not sure Everybody's mad at here doesn't look the same It just doesn't everybody tangles don't look the same my hair is more Tangled than it's mad. I don't know how how much y'all can see But yeah, it's more tangled than matter right now Okay, she's gonna have to come over here cuz she's in the way Do y'all talk to your hair like that Wait, wait, wait, wait, what's okay? I had a little bit this stuff is the truth And when I was in Miss Earlette shop She gave me a sample of some other products I Let me explain to you guys what I'm doing real quick.  This is gonna have so much hair and then I'm twisting twisting twisting Okay, I hope I'm in the camera and then I'm literally taking this section and Pinning it right up underneath and it's creating this effect now my hair is like this because I'm for category And I love it So this was the one I had in mind but she'll do once I beat my face in the morning or put on some earrings Earrings make a big difference, right? It'll come together while I was looking for roll tuck space roll tuck space Not working so I'm up turn my head around put on the moves put on a bunch of head scarves to make this work and yeah So yeah, I was looking for more likes roll tuck space roll tuck space girl


As part of efforts to upscale security in the state, Oshoom State Governor Boeigar Oetola says his administration has initiated and sustained inclusive security arrangement that brings all communities into a network to cooperate and support the police and other security agencies. He said this was aimed at achieving the security and safety that Oshoom people desire and deserve. Governor Oetola, while addressing the newly trained special constabulary, for the state, lauded the police and other security agencies for carrying out their responsibilities with utmost professionalism. I congratulate you all on the successful completion of your programme and for representing Oshoom well at the training school. I would also like to appreciate you not only for electing to contribute your quota to the revamping of the challenging security situation in the nation, but also for possessing the strength of character and qualification for enlistment into the Nigerian police. Oshoom is noted as an Omanwabi state where hard work, character, commitment to duty and honesty is second nature to its citizens. Despite the raging security challenges ravaging the nation, we still maintain these enviable status. To complement this profile, our administration has consistently given the security and safety of our people their desired prime of place supporting the Nigerian police and other security agencies to enable them to perform their duties effectively. Commissioner of Police Olawale O'Lockerdei said the special officers comprising of 44 females and 436 males have been equipped with series of trainings to support the efforts of the regular police, especially at the grass-root levels. Men and women you have seen special constabola is the are supposed to be committee policing officers meant to be posted to all the local government areas. They are expected to work directly with the police so that they can join hands with us to work with the people. Their major function right now is to provide information to the people because they are very close to the people that's where we are sending them back to the local government where they held from and whatever information that will be very very necessary to ensuring the peace of that local government or that locality we are expected to provide. They are also to work directly with the police so that sorry that we might not use, might not cases that will take the time of the police to bring the question to resolve within their locality in conjunction with the community policing for the same number of that locality.


Hello and welcome to the Ed Hodl show presented by Buffalo Wildlands. I'm Greg Royce, showed by Stevenson Head Football Coach Ed Hodl. Coach, how you're coming off the bye week is as always, you're undefeated on the bye week. You're able to get a little bit of rest, get some working as well. Just talk about how the past week went. It's been good. We've had a chance to get some guys healthy, get some guys some much needed rest. From an injury perspective, we were able to get some guys rehabbed, get them back on the field. So we're excited that, you know, I think we're getting better as we move into the second half of the season. Yeah, absolutely. Like you said, you know, especially some of the younger guys, maybe this is the first year we'll go around college football to get that break to kind of, you know, recoup. And maybe, you know, catch up on some schoolwork and things like that.  And then they get to this time of year and you start to see them fall off on the field. You start to see them stressing about schoolwork with midterms and things like that. So we were able to give them some time off to make sure that they had the opportunity to catch up academically, really focus on their midterm exams and really put their best foot forward academically. And I think that for us, that should allow them to springboard into the second half of the season.  You know, it happens really, really quick. And so for us, you know, having that week in the middle of the year has been really, really beneficial for us. Yeah. Now coming off the bi-week, you jump right back into it. You jump into homecoming this week. I'm just talking about, you know, once again, a sold out game. And so it's a great atmosphere here at Mustang State about homecoming. Homecoming here is special. You know, when you get 3,500, 3,700 people packed into Mustang Stadium, it's an exciting environment. But we've done it. We approach it the same way we do every year. You know, for us, it's about being the best football team that we can be. And, you know, the homecoming festivities are awesome for everybody but the football team. We have to do our job on Saturday and that's win a ball game. And that has to be our singular focus. Yeah, absolutely. Because obviously if you don't do your job, the rest of the homecoming is a little bit of a downer for everybody else. Absolutely right. And for us, that, again, that's our job and we hopefully will have some success. Yeah.  I think, you know, except the first year and last year, they've all been decided by touchdown or less.  So they're really in some ball games. Yeah, they had a chance to win the Wilkes game last week. You know, they were in the red zone with, you know, just under a minute or so to go in the game and, you know, had an opportunity to win it late. And I think what you're seeing is, you're seeing what is a good football team who's just struggled to get some traction from a confidence perspective. And I think when you play in those close ball games, I think it gives you a little bit more incentive because you know how close you are. And I expect them to be ready to roll on Saturday. I expect them, you know, to be to make it a four quarter game. Like you said, it's, you know, I don't think besides the last year's game in the first game, it's been a one score game. And I expect nothing less from them coming in here Saturday. Yeah.  So what can we expect from your guys? Hopefully a little bit more bounce. Again, you'll see some guys out there that we're finally getting back and healthy, which is exciting to see. You know, we want to be efficient on offense and, you know, we want to generate turnovers on defense. You know, not a whole lot has changed for us schematically or philosophically over the last week. You know, we've got to be the best football team that we can be on Saturday. All right, coach. Well, thanks a lot and best luck on Saturday. We'll chat next week. Thanks, Greg. All right, for Ed Hoddle, I'm Greg Royce. This has been the Ed Hoddle Show.


So, I'm Adam Keyes, I'm an expert typist at Guwala, and I'm also an internet astronaut. And today I'm going to talk about what I consider the most intriguing part of the re-imagination of Rails that is Rails 3. So namely I want to explore how Active Record was extracted from itself into two new libraries called Active Model and Active Relation, and how that can make it easier for us to write really nice looking and easy to maintain data layer code. So today I'm going to talk about four great looks for your application that can make things that are kind of difficult before Rails 3 to do, that require a lot of boilerplate coding, make those things, those kinds of tasks look much easier, much more appealing to take on, and much more fun to do. So these extractions of Active Model and Active Relation reduced the friction in building little languages on top of data stores. So increasingly in the applications I come across, there's more than just a relational database. There's some sort of caching layer, there's usually some other data store used for analytics, for growth statistics, internal measurements, various data structures that are awkward to store in a database, et cetera. And also increasingly the use of web APIs, whether it's Twitter or Gawalla or some internal API that you use within your company, or maybe it's not even something even as interesting as all these, maybe it's just a PeopleSoft database or some lame oracle database sitting around somewhere. But nonetheless our applications talk to more things increasingly and it would be nice if it was easier to integrate with those things and have the niceness of Active Record when we're using things that aren't a relational database. But doing so requires a lot of boilerplate code in bringing up a data layer. If you want to make something as nice as Active Record there's a whole bunch of other concerns you have to go through before you can even start adding things like validations and associations and all the other parts of the Active Record language per se that make it very pleasant to work with. So Active Model and Active Relation reduce that amount of boilerplate that you need to write to bring up a data layer and makes it easier to get to the point where you can start adding things to your data layer library that make it pleasant to use and interesting to other people. And it also allows developers to focus on building better APIs for data. So instead of having to worry about validations you can worry about how you would like associations to work for your data layer or how you want to provide a nice looking API that looks like a hash or maybe it looks like Active Record or maybe it's an entirely new thing. All these things are made easier with Active Model and Active Relation. So I want to start a layer below though. I want to start with Active Support and using that to clean up your domain objects. Active Support is the often maligned cake on top of which Active Record and Rails are built. In Rails 3 it's smaller and less cumbersome. So in Rails 2 or in Active Support from Rails 2 if you wanted to use something from Active Support or if you wanted to use Active Record in your application the instant you require Active Support your Ruby process would immediately grow by 20 or 30 megabytes of resident memory and weird things would start happening with class loading and it could be an unpleasant experience or inefficient, inefficient experience. In Rails 3 you can cherry pick functionality out of Active Support which is exactly what we're going to do in a minute. So if you just want the core extensions to class or the fancy methods on hash you can pull those in by themselves. Or if you just want its code for generating secure random numbers you can use that in isolation. So the even better part, the really great thing about it being cherry pickable is that now you can actually use just the part of Active Support you need and you're not faced with two unappealing choices which is what you had to do with Active Support 2. I see a lot of people have either re-implemented their own versions of say 2.years.fromnow so they went and did that on their own or even worse they went and just copied that code out of Active Support and dropped it into their application or library which can make it a little ugly when you want to upgrade to a newer version of Rails 3 but a library still uses an old copy of an Active Support method. The thing that I'm really excited about in Active Support is the ability to tighten up your classes and your domain logic by pulling sort of boilerplate logic out of your class and putting it into a module. So let's look at how that starts off. So here's a user class, it's not too different from the user model and probably any of our applications, there's nothing really Rails specific to this. This is using the Rails 3 Active Support. So you can see up at the top we require the Active Support Inflacter because that's a lot of the cache class depends on that and then I require the Active Support Cache Class. So this is sort of an abstraction over a lot of things that might behave like NIMCache whether it be Mongo or a file system, wherever you need to or wherever you can cache data this provides an abstraction on that. And then we have our user class sort of stuff, every user has a name and then I have this friends method which is kind of a very low ceremony association at this point. But I'm always going to be pulling this data out of NIMCache. So I have this cache.fetch, it looks up some key in NIMCache. If there's no data, if NIMCache doesn't have that data then it will execute that block and populate from there. So as I grow this application that would probably get larger and there would be more of these friends guys. And the simplest way that I thought I could get this working was just to have an instance method called cache and it returns a new connection to NIMCache. So a quick easy way to clean this up is to use Active Support's attribute accessors that work for modules and classes. So adder accessors that probably everyone has used, they are one of the really neat things to me about Ruby, one of the first things that intrigued me, it's way better than writing those methods yourself. But they're only available on instances. So Active Support gives you a module and class compatible versions and it also gives you class inheritable versions in case you're writing a framework where you're going to have a class hierarchy and you want to assign something to the parent class of everything and have it propagate down to all the child classes. So here I've got a class attribute accessor and now when I call cache.fetch that's going to be the connection that is shared amongst all instances of user. So this is how that code would actually be used. Now I'm going to do somewhere in the startup logic for my application, I'm going to say user.cache equals memcache.store.new and then every user object, like I said, shares the connections to the cache. Now I want to clean this up a little bit because in my imaginary domain world I'm going to have a lot of these pseudo associations and if I'm going to have a lot of them then writing these same five lines of code every time is going to get really lame. There's a lot of boilerplate here and I want to try and get rid of that. And so I'm looking at this and I'm thinking well the things that can vary here are the name of the association, how the key for the cache is formatted and the logic to use to generate values if there's no data in the cache already. So I cooked up a little language for myself, you can see it extracted here. I've got this cache key method that takes a symbol that tells it what association to create. So it's going to create a friends method that does some stuff and it's going to use the friends key method, that second symbol to generate cache keys and then the logic is just basically the same and it's in the block for this cache key method. So I've got a little language that I think looks nice, I think this might work. The way I developed this sort of thing is I just sort of open up a text editor window, start typing in what I think needs to be in this little language I'm creating and then I go and try and make Ruby to execute that and maybe I come back and revise this so that it's valid Ruby or it's a little easier to implement. But that's the basic shape of how this sort of refactoring comes about and I learned this from Rich Kilmer, so hat tip to him. So here's the implementation of that little language. I'm going to use a Cater Accessor again, I'm going to be saving the cache lookups that I need to do and the cache key methods to format the keys. And you see this block form of Cater Accessor, that block is used to initialize those class variables. So they're going to end up as empty hashes to start off with. And then I've got the actual cache key method. So it's a class method, it takes the name of the association and the key to use in memcache and then it's going to define, it's going to throw some code into my class. It's going to, when this is called, it's going to assign the method, the logic for the method that I'm using into the cache lookups. It's going to assign the cache key formatting method and then it's going to define the method that I had before. So it's going to define, if for friends, this is going to define a friends method and it does a little tricky memoization. So the first thing it does is look for the instance variable of the same name and if that's there, then we'll just use that. So this will hit the cache once per process and then every other time it'll just read it out of an instance variable. And then it's going to, if it wasn't already in the instance variable, it's going to generate the cache key method by converting, it's going to look up the cache key and then turn that into a method and call that so that gives us the cache key and then you see the same basic logic as before except it's assigning to the instance variable. So the exercise to the reader is that this all executes, this actual method here executes in the class scope and not the instance scope. So you have to do some tricky things in those blocks. If you're looking for a challenge, make this execute on instances instead of classes. So this is what my user class looks like now. It's got all of my fanciness in it. But the downside is that now it doesn't really fit too well on one slide. If you're sitting in the back, you probably have to squint a little bit. And I think that's kind of a code smell. So the cool thing is that active support enables a nice little refactoring. I've started calling extract concern. And that makes it really easy to clean this code up. So Tyra's a little weirded out by this code.  And so we're going to improve it. So active support concern is just a module that you extend into another module. And then it's basically syntactic sugar for the old Rails style plugin hack where you've got some module. You include it into your class. It has an included hook.  You include another module to get instance and class methods. And I always get it wrong, but this is way, way easier. You've got some class. You give it whatever name you want. You extend active support concern and then you've got this included block. And all you have to do is take the code, is cut the code out of your class and paste it into here and you're done. You don't have to remember which hooks to call or anything else. So like I said, this is way easier and nicer than the old Rails 2, Rails 1 style plugin method hackery. This is how we use it. You just include cacheability and all the code is the same. But now the code, my user object fits on one slide again. And it's easy to see where the cache behavior comes from. If I've just handed you this application and you're thinking, what is this cache key method? Where did it come from? You would probably have already scanned past it and you could go find that cacheability module and figure out what's going on. So the crux of the biscuit is that accessors plus concerns can have a nice slimming effect on your code. You can have more concise domain logic and only a few more lines of code. And can help remove tedious code from your application. So the really cool thing about concern is that where previously I would have had classes that have some comment block that says authentication methods and then another one that's like connection management. I can just take all the code below that comment banner and throw it into some module and then include that wherever I need it. And I think that's a little clearer, a little nicer. Like Glenn was saying before, the code is the document, the code is the model. So I'm pretty excited about that and I've been using it a lot. So there's other cool stuff in active support. There's a message verifier in encrypted classes, which is what Rails uses for implementing signed keys. So if you have some application where you need to send secure data over an unsecure channel, give that a look. There's a class for generating secure random numbers that end up looking like API tokens. So I use that in any application where I need to generate tokens to identify things, to pass around, especially for, like I said, APIs. And in general, active support is less stab you in the face these days. So if you've been burned by it before, give it a fresh look, it's really great. So now I want to talk about active model. And especially making your own models that look good and talk good too. So active models are the result of extracting much of the goodness from active record, the things that you come to expect like validations, callbacks, dirty tracking, serialization. If you've ever wanted to put those into your own Ruby objects, just plain old Ruby objects, this is going to be your jam. And better still, active models carry pickable just like active support. So if you just need validations and you don't care about dirty tracking, it's fine, you just include what you need and go about your business. So validations are really easy to do now. All we have to do is include this active model validations module. And then we can use pretty much all the validations from active record that we've come to know and love. You don't need any extra methods to get this functionality, as long as there's some method called name that returns whatever you consider the name attribute for your domain, you're good. And you just go on your way. This is new to me. You can also have classes that you've extracted validation logic into. If you say you need to share some validation logic across projects or classes, you can use a class that just has a validate method. It takes a record and you do some validation logic. And then if there's an error, you append it to the record's errors attribute. And this works pretty much just like it did when you're implementing validations and rails one and two. Except now it's a hash instead of some weird class that I always forget the interface to. So now you just say error sub base or error sub name or whatever. This should actually probably be error sub name but what's a few things between friends. So that's all you do to use this in your class. You just say validates with Ghostbusters validator and you're done. There's no step two. So this is what my domain class looks like now that it has validations in it. And that's pretty straightforward, still fits on one slide. And it looks good. This is how we'd use it. I'm gonna create a new user object. It's not valid yet and I can look at the errors and I get back this ordered hash. And the really awesome thing is that ActionView, if you use rails, is compatible with this. So because active model validation is the same thing that ActiveRecord uses. If you have your own custom model objects that you include active model validation into, all of the error for and other form helpers and rails that show pretty error messages in your forms, those all work. So that's a huge win in my opinion. So here I'm gonna set an attribute. I'm gonna set the name of this guy to Ron. But Ron Evans is a cool dude but he is no Ghostbuster. So it still returns false. And you can see we have slightly fewer errors here. And then if I set the name to Ray and call valid again, then that's true because Ray is a bona fide Ghostbuster. So another cool thing that I like in active model is serializations. So what if I want to encode my object as JSON or XML? Tyra here is excited about that kind of functionality. It's really handy when you're doing APIs, whether it's a client or service or whatever. But if you think about it, writing that kind of code could get potentially nasty, especially if you have deeply nested models. So she's not quite so sure she wants to write this code herself. But luckily, she doesn't have to. I'm gonna make this a little more interesting, just add a couple of methods to my model, add a couple attributes. And then this is all I need to add in the way of infrastructure for serializations. I need an attributes method that is gonna return a hash, which is what will get serialized.  And I went ahead and memoized it just because I love memoization. And the really cool thing is that if I implement attributes equal and have it accept a hash, then later on I can take XML and JSON that I've received from someone else and populate an object with it. So all you have to do is just, you take the hash and then you're just responsible for taking data out of the hash and putting it in the attributes where it belongs. So to get the serialization, I include these two modules, Serializer's JSON and Serialize XML, and this is how I would use it. Once I include those two modules, I get a serializable hash method that returns basically the hash returned from attributes. So that's a good way to debug to make sure that what's going into the JSON and XML processes is correct. And then I can just call two JSON or two XML on my models and get back the correct data. We can even use from JSON and from XML. So here you see I'm gonna dump the JSON to a string. I'm gonna create a new blank user object. And then when I call from JSON and pass it the JSON string, it populates my new object from the JSON. So this is really, really handy when you're building APIs, integrations, serializing data to disk or whatever. So now we wanna do persistence and queries like a boss. And I just made you think of George Michael, hopefully. In Rails 2, ActiveRecord contains a bunch of logic for banging strings together to form queries.  In Rails 3, a lot of that's been abstracted out into a library that models the relational algebra that SQL is built on top of that all relational databases use and that we have come to sort of accept in our lives. But the cool thing is that in the process of extracting that, ActiveRecord or, I'm sorry, ActiveRelation or A-Rail makes it possible to use the same API to query all your data sources. So if you've looked into ActiveRecord in Rails 3, then you've seen that they're moving away from using find and passing a conditions hash to calling these chainable methods like where and order and limit to build up your queries. So ActiveRelation is what sits underneath ActiveRecord to implement all that and to actually generate SQL queries. And so you can use that as a duck type to set your own data stores on top of something that kind of acts like ActiveRecord, which is really handy and really neat. So if I want to add that sort of functionality to my user model, I'm going to include ActiveRelation relation. And so if you read about the relational model, the relational algebra, basically everything is a relation. And a relation is just anything that looks vaguely tabular. You know, with some rows and some columns and some data in there and columns have names, etc, etc. So I need to include that and that's going to give me all of the ActiveRecord 3 query methods like where, limit, which is actually called take and skip. So it's a little more low level, but it's closer to the relational algebra. And you don't have to implement all of it. And then I also need an engine. And an engine is the thing that knows how to talk to the database. So this is the connection to whatever your database is, whether it's Twitter or Cassandra or Mongo or whatever. So my goal for this user model is to be somewhat like ActiveRecord. So I'm going to add some sugar on top of ActiveRelation. So I'm going to add a save method and it's not quite as clever as ActiveRecord. It doesn't do dirty tracking yet. But it's good enough to just create a new record in my database, whatever that is. And it's going to call insert, which is a method that comes from A-RailRelation. And it's going to pass itself. And we'll see how that's implemented in a minute. Same thing here with find. It generates a key into the cache. And then it calls, it creates a new where query, a where clause in a query, and then calls that query object. So this is the same thing where ActiveRecord queries are now lazy. This is, A-Rail works in the same way. But you notice that it doesn't take a hash like you would do in ActiveRecord. Because I'm going to be building this on top of memcache, which has no query language at all. I'm just going to say the semantics for my where are, you just pass it some memcache key. This is just for those playing along at home. When I was doing these examples with Rails 3, Beta 3, there was a weirdness between ActiveModel serialization and how A-Rail's each method works, which broke JSON, which I would prefer to use, but Marshall ends up working. So I have a Marshall dump and Marshall load methods, which end up looking familiar anyway. And this is the user engine. So A-Rail implements the query mechanism for us and helps us, gives us some higher level methods that we use when we're generating a query, whether it's for memcache or Mongo or whatever. But we still need to write an engine to handle translating to the right query language and doing the reading and writing from the actual database. And these seem to be called engines by convention, but really they're just a duck type that you need to know which methods to implement on. And those methods are basically our good old crud friends, create, read, update, and delete. So here's create, it takes an insert object, which is created by that insert when I wrote the save method on my user class. So I'm gonna call save on user. That's gonna get basically translated into this insert object. Like I said, everything in ActiveRelation is one of these relation classes. And unfortunately that means the insides of ActiveRelation is like a maze of a thousand doors all similar. So the way to figure out what's going on with ActiveRelation is to basically just put a debug statement or a print statement here and print out whatever parameters you got and start spelunking through those objects and figure out where the data you want is. So what I did was I did that and I found that on the insert object there's a relation attribute and that's basically the object that I passed from insert and so that insert.relation ends up being my user model. So I call cache key on that. The value is I just wanna insert the whole object and then I call cache.write key value and that cache is just my memcache connection. There's nothing ActiveRelation-y or fancy in there. So to read data back out, I had that where clause that I called in my find method, that's gonna be the argument to select. And I'll talk about the raise in a second. All it's gonna do is there's a predicates object on that, which is usually something like usually your predicates, if you're doing SQL, if you have a real query language, it would be like A equals 4A is greater than yesterday or whatever. But in this case, since I have no real query language, I just need that first object out of the predicates and grab its value. And that's the key that I want. And then I read that key out and I get my user object back. So like I said, I created a where clause earlier, but I could have created a take, a skip, an order clause, anything you can think of in SQL, there's classes for those query clauses.  And say I just don't support that in my query language. So like I said, I spent lots of time poking around on the insides of these various objects. I have all this code online. If you decide that you want to build an A-rail engine over your data store, then give this stuff a look and use it as a starting point, so that you don't have to figure out the interfaces, which is not entirely clear. Updates, if I want to override an object that's already been stored, they contain an assignment attribute. I pull the value out of that and then it's the same sort of get the key, get the value, write those to the cache, and then delete has a relation. I pull the cache key off of that and then delete the key out of the cache. So this is the whole user engine, all the create, read, update, and delete. You can use this as a starting point, like I said. There's also, if this is interesting to you, there's an in-memory engine that's included as active relation. So you can take some object graph, some collection of objects you have in your application, and they don't have to be persistent in any way. They don't have to be like part of your data model or whatever, but if you want to query them with something that's like SQL, with like ware clauses and skips and takes and orders, if you can tell A-rail how your data is shaped, then you can use that to query, and that's kind of really rad. And it's also rad that you can, and it has test cases for this, but I haven't seen any examples. You can take in-memory objects and active record objects or whatever implements A-rail, and you can do queries across those two things that join on each other. So if you've got Twitter data and your own applications data and you want to join on them based on user or status or text or whatever, that's entirely possible, which is really freaking cool. There's also an A-rail Mongo engine on GitHub, which is really handy to look into as it's like a Mongo. When you get down to it, it's a lot like MySQL and semantics, so it's kind of easy to figure out what's going on and what they're actually trying to do when it's not all couched in a relational algebra theory. So here's how we set up the engine. We create a cache, and then we assign the engine attribute and pass it the memcache. Here's how we use it. You just create a user object just like before. We can save it. We can create a blank object. We can find what we just saved, can update it, can delete it. It's all like, it's a lot like active record, and at this point we are coking with gasoline. So through all these different looks and approaches to using active model and active relation, we popped a lot of collars, 15 collars on this dude, but we got a lot of functionality too. This is our domain model and all the support code and the active relation engine. And this obviously doesn't fit on a slide anymore, but it's about 100 or 200 lines of code, but we got a lot out of it. From this, in this user model, we have declarative, lazy caching, validations, serializations, persistence, and querying, which is pretty good for a day's work. If you're trying to bootstrap a database, it's a lot better than spending a week or two weeks trying to get all that sort of stuff in place. So keys to success using active model and active relation. Give active support another try, even if it's hurt you in the past. It loves you more now. Fancy up your classes with active model even if they don't have to be persistent. If you just need validations or dirty tracking or whatever, give active model a try. If you're really ambitious or if it's your thing, build a data layer with active relation, and all these things will help you make better codes. So that's all I have. Thanks for coming out. I'll post these slides that are online and on GitHub. My site is therealatom.com and I'm also therealatom on GitHub so you can find that stuff there. I have a couple minutes for questions. The question is, how easy is it to write your own serialization methods? I haven't tried. So you're thinking like if you wanted to serialize to like Bison or something else. I think you would just, you would take that data from the attributes method and do whatever you need to it. So it seems like it would be just as easy or hard as converting a hash to whatever you're talking about. I don't know, to make it work like active model, I don't know if you'd have to do anything above and beyond that. Anyone else? All right, thanks.


Everybody forced here ripping three box f1 mixture 2022 dynasty chrome hobby and light number seven random team style Find the results anytime of late in sports cards calm unless so go ahead and get started Yeah, Mike, I'll try to be watching I'm getting a my tattoo finish that day Hopefully I can I'll be able to watch from The old tattoo chair Should be an issue I got a SPM plus Hopefully it's on ESPN plus that'd be my issue. I know it'll be on ABC. So hopefully they'll have an ESPN plus as well All right, light boxes first, and then we got a chrome hobby and a dynasty. Good luck y'all So much dust I'm getting the one on my arm finished Yeah, I'll show you one sec fit the poly feature stars black and white ray wave Sack here.   Hopefully it'll be the last session. Who knows though. It's tough to tell refractor Katelyn Williams for Trident True purple coming up rookie Joe Guan Yu Alfa Romeo 255 out of 399 nice Joe Purple green Derevala for Prima Max for stopping black and white ray wave Red Bull refractor Dennis Holger future stars If I had the money, I would just do it. That's a lot of time and money though Lot of a lot of a lot of ouchies too Not fun. The first one was like Tattooing but I was there for like, you know five or six because it takes a while to do this stuff refractor a wassa for Dom's a Green ray wave for Sergio Perez Red Bull 7 of 99 Driver of the day Bahrain Yeah, legal. That's what it seems like for now. I believe checker flag extra actor Max Verstappen driver of the day France Ray wave Max Verstappen Red Bull Red Bull having some some parallels here for sure Nice Devin happy for you Fractor a Max Verstappen Grand Prix winner Austria Red Bull again Pinker Fractor Max Verstappen driver of the day Saudi Arabia Six of 75 for Red Bull That's crazy, dude. How did that end up happening? Kimmy Reichen and refractor driver of the day Abu Dhabi black and white ray wave ends up at the Paladins for Saroo's All right, that'll do it for the light box Mon hobby, let's see a nice auto here There's okay. There's an auto right away Logan Sargent Carlin pretty solid F2 hit there for you Carlin Danny people were after him earlier I think so and that's why I think that's why he's popular. It's like American soccer players Like oh, I feel a sick. It's like yeah, he sells for a lot. He's good You know refractor Carlin Williams for Trident say purple refractor Lando Norris McLaren two of 399 Checkered flag extractor Sebastian Vetzel Aston Martin refractor for Nino Alonzo Alpine Refractor Max Verstappen Red Bull and a green refractor Alpine for Nino Alonzo 60 of 99 Refractor Yuki Sonoda Alphatari Hey Devin, that's pretty cool man. Gold Purple Valtteri Bottas Mercedes Not number number the Golden Purple Grand Prix winner Turkey 2021 Patrick Kane who the Rangers played tonight? Just got the Bruins have some days off refractor Frederick Vesti ART purple refractor Lewis Hamilton nice card 255 of 399 Mercedes Senator so I mean that's a dub refractor Kevin Magnuson Haas and gold checkered flag extractor Valtteri Bottas 34 out of 50 Alfa Romeo It's good that other Botas was a Mercedes card. It was like a it was like an award card. So it's a previous Didn't call it out correctly Dynasty time And it is a wow Red Bull Sergio Perez patch auto one of ten Holy cow Red Bull killed it. I mean obviously hit the big one, but Mark L. Congrats, buddy Sergio Perez one of ten Two-color patch auto I'll buy you a I'll buy you a OPC hockey blast in blaster box See I got you for 80 dollar box I'll buy you the on sale eight dollar blaster at the show All right, it's no stay dinner, but it'll be cards. All right y'all run to the next one. Thank you very much