breaking up gracefully. So, this is a lesson. I've never done a teaching on this in the church, but I believe that this lesson will help some people. Though we desire through courtship for our relationship to go into marriage, there are cases and there are situations where a relationship does not work out. And today you're going to learn on how to identify that relationship and what to do with that relationship. Signs that you might need to break up. Number one, when a person does not share your faith, your values and your vision. Number two, when those in authority do not support your relationship. Number three, when you're trying to change that person. Number four, when you're being abused, controlled and manipulated in a relationship. Number five, there is no attraction. Number six, your gut says you're making a mistake.  And number eight, you guys are always fighting. If you're dating or in courtship and these signs are present, especially more than one or two. No matter how difficult it is for you to listen to the next few minutes, you already know what you must do. And what I want to share with you is how to do it properly. Before you break up, know the difference between preferences and deal breakers. Now, every relationship will have preferences. Certain things that maybe you had an expectation. And someone said the person that you're going to marry most likely will meet 80% of your expectations. And there is going to be 20 that they are not going to meet. Because sometimes our expectations are a little bit crazy. And so there are preferences that we would have and expectations that we will have and not all of them will be met. Even if you are in that stage right now where you feel like this person is exactly what I wanted, 100%, that's not true. Because nobody can be that person. There's going to be always something that this person could change or do better. Even in the perfect relationship, 80% is really what you are looking for. And then 20% is what they're going to be missing. It's the reality of life.  Things like, you know, there's red flags, this person doesn't follow and does not have your convictions and does not have your vision. Things like you're always fighting. These are not preferences. These are deal breakers. So know the difference between these two. It's a funny story about when I met my wife, you know, at first it seemed like, man, she's 100% and she is what I wanted. Great blessing and beautiful and godly, graceful woman. But my wife did not have a straight teeth. Now I understand what I'm about to tell you. This is just my story. So take it with a grain of salt. And when she would smile, you know, like her side teeth would kind of really, really stand out.  But, you know, I looked in the mirror and I looked at myself and how not so handsome I was. So I was like, you know what, I think I can live with that. That's not a deal breaker for me. And never once I mentioned that to her. Never once. In fact, when we were married, I never once brought it out. Once in a while I would notice it, but it wasn't a deal breaker for me. Until about a few months into our marriage, my wife noticed and mentioned that she's like, you know, I wanted to straighten my teeth and, you know, take what the race is on.  We don't have the money right now. I was like, well, we can find money. And I'm like, I used to be very stingy. She's like, really? And I was like, yeah, for you, anything. It was like 5,000 US dollars. It's a lot of money. And because, you know, it's something that bothered me a little bit, I was willing to pay any price for that. And it made me very happy to know that, you know, it bothered her. But that's a preference. I could have lived with it with no problem whatsoever and never once brought it up because I was happy and I was satisfied. And preferences should not be deal breakers. But deal breakers should never be treated as preferences. So before you break up, know the difference between a preference and a deal breaker. Number two, talk to God. Pray about it. Before you go and ask other people what they think. Ask God what he thinks about this. Number three, have an honest conversation with the person you are courting or dating but say that you have deal breakers. Have an honest conversation with them about this issue or that issue. Don't break up until you have a conversation. Talk with them. Bring it up. Maybe there's a misunderstanding. Maybe there's something about their past you don't know. Maybe there's something you're missing. So having an honest conversation. A lot of people don't have honest conversations because they're expecting the other person to read their mind. The person you are in relationship with is not a mind reader and they're not a prophet. They're a person and you have to have an honest conversation with them. Next one, get advice from mentors you trust. After having a conversation you notice maybe things are not changing or maybe things are changing. Bring your mentors along. Let them speak some wisdom.  So bring mentors in who can help you to think more clearly and see this from a more of a balanced view. And last one, if there was something that the person committed that you see that they need forgiveness for, forgive them. Now, if they cheated or they continuously lie or they abuse drugs or this and that, you know forgiving someone also does not mean that you trust them and it does not mean that you cover it under the carpet and go and get married. Just because they webbed, cried, you feel sorry for them and because they promised they'll never do it again. Forgiveness and trust are not the same. Forgiveness does not mean restoration and reconciliation. Sometimes forgiveness leads to that but there are cases and many of them where forgiveness is just forgiveness. You forgive that person but it doesn't mean that you have a future with that person. Now, how to break up? You might say, well, I know how to break up. You just break up. Not really. That's not really how it's done. Number one, don't do it over a text message or email. One of the worst things that you can do if you already know someone you've had a relationship with them is to break up over a text message. You owe that person to see your feelings, to hear your words and your presence. It's a cowardly act to break up over an email and over a text message. It's disrespectful. It's really hurting and it doesn't give that person a chance for a proper closure. Number two, avoid saying things that are hurtful or diminishing to that person. Avoid destroying the person.  Your goal is to kill the horse, not the rider. So you don't attack the person even if it was their fault. Even if what they did, you forgave but you cannot move on. Do not destroy the person in the process. They are made in the image and likeness of God. They're God's creation. And just because this relationship doesn't work out, it doesn't mean you have to destroy and wreck a person's identity and sense of worth. Number three, don't be friends with your ex. Create a distance. Now, it doesn't mean that you don't have to be friendly. It doesn't mean that you have to hate them. Meaning, you can't continue friendship, close friendship with your ex, especially if you're going to get married to someone else. It will create friction in your relationship. Creating distance is better. Even if you're mature enough, they are mature. But being close friends and being people who go out, have a good time and everything, will create problems for you in the future and in the beginning, when you break up, you will have a difficult time getting over if you keep the relationship close and alive. Don't over-spiritualize the reasons for your breakup. Be honest and speak the truth in love. If I'm going to hear one more person who's going to say, well, God told me we're not supposed to be together or use some kind of a dream or prophetic thing, if that happens to a person like that, drop them, run away from them. People who over-spiritualize things all the time and they're always led by prophecies. They are not stable and they're not mature. You should not build your relationship on prophecies. You should build it on love, on mutual respect and on the word of God. Because if a person is moved constantly by dreams and visions, prophetic things and how they feel in their heart and everything, that person will be unstable in their ways. Mention not live a bread alone but by every word. Live by God's word instead of your feelings. So don't spiritualize things. Say the truth. Be honest and speak the truth in love. Number five, grieve. Take time to heal and emotionally disconnect. Just because relationship ended, it does not mean you were disconnected. When the person stops playing guitar, it does not mean the strings are detached. A lot of times you can still be emotionally connected to that person for a few months. They recommend it takes from six to twelve months from dating after you break up, especially if you had a serious relationship for your heart to get free from that person. And so when you go into the next relationship, you won't be doing it trying to punish your ex or trying to get a healing from your ex by trying to connect to someone who's next. Number six, get support from a counselor, life group, close friends and family. Don't do this alone. Don't walk alone.  You will be painful. But you can get through this with someone around you. If you will isolate yourself from other people, the devil will present temptations that will be difficult to resist, like alcohol, drugs, immorality, pornography, binge watching, TV shows, depression, anxiety and nightmares. And then it will go into overeating or it could go into anorexia and other things. You can grieve properly by allowing people to come into your life and by allowing God's presence to heal the wounds that maybe this breakup has created. Number seven, take a break from dating from six to twelve months. Pause. Get yourself back. Figure yourself out. Find out why and what went wrong. Where did you miss the red flags? Get yourself healed. Get yourself home. Don't jump into the next relationship without first being healed and restored from the previous one.


Hey guys, what is up? Welcome to my channel. For today's video, I have a review of the new NARS foundation. This is the Light Reflecting Advanced Skincare Foundation. It looks super interesting to me. There's so many foundations that have launched recently and I definitely wanted to test this one out. Now, I'm on the unpopular side here where the last few foundations that NARS has come out with, honestly, I've really disliked. So I'm very interested to see how I think about this. But honestly, it looks promising. It really does. So like I said, this is the Light Reflecting Advanced Skincare Foundation. It is going to be $49. I picked mine up from Sephora. It comes in the classic black box and here are the ingredients. If you need to take a look, you can see that it has a 24 month shelf life and the foundation is made in the USA. Looks like they have a great range of shades. NARS normally does. This is supposed to give a medium coverage with a natural finish. Good for redness. Okay, I have some redness. Good for dullness and uneven texture and dark spots. And it's supposed to be a makeup and skincare hybrid foundation, which we love to hear that. We love to nourish our skin with a natural finish that blurs and smooths while visibly improving skin's clarity over time. I mean, it doesn't sound better than that, right? I love the component itself. It's just so simple, classic NARS. I like the shape of it. You do get a fluid ounce, which is very standard. I got the shade Patagonia. I've never tried the shade Patagonia. I normally always accidentally go too light with my NARS foundation. So I thought I'd go deep and it says Shake Well. So I'm shaking well. So if you're new here on my skin type, I have normal to dry skin. It's currently leaning more dry now that it is winter, but I did extra hydrate today. So my skin is not feeling too dry today, but I'm not oily. I have very sensitive acne prone skin. You can see right now, I'm dealing with some residual acne scarring.  Terrible. Honestly, don't recommend. Nobody asked for that, but I'm just letting you guys know. So let's see what the pump looks like here. Boom. Hey, that came out with nothing. Second pump. All right. Sorry, I have some black from the eyes to mesmerize. All right, let's see how it goes on my acne. This is a decent shade. Might be a little bit dark on me, but that's okay. I think I could have gotten a shade lighter. Let's see. I'm using my Shopmiss AOA sponge because that's just the way I prefer to apply foundations. And we'll use a brush on the other side though, just in case. I always get the shade Fiji from NARS though. I just looked at the shades. I always get the shade Fiji, and I feel like Fiji is always too light for me. So I thought Patagonia would be good, but it is just a little dark. Okay, so you can definitely see it has a natural glowy finish. And I would say a lighter medium coverage because you can definitely see my acne scarring and whatnot underneath. Let's give it a try with a brush to blend it out. I'm gonna use my favorite foundation brush, which is the refer number 31 brush. So let's get two squirts because you really don't get much foundation with each squirt. I'm gonna spread it out.  I do like to spread foundation with my fingers first. I feel like that's how I get the most even coverage on my face. And then I'm using the brush to push it into the skin. Oh yeah, lots more coverage when you use a brush. So if you're looking for that, this is a foundation where that style of application does seem to make a pretty big difference. This foundation has quite a liquidy consistency. Oh my gosh, it's starting to look orange on me. Maybe I should have gotten Fiji, whatever. I think, you know, this foundation has quite a liquidy consistency, which I think is making the brush application so much easier. It's so easy to push around with the brush that it doesn't make it look streaky. So I think I actually do prefer the application with a brush on here because it is really agreeing with that. A little bit on my neck. I'm going to apply a little bit more on this side on my nose area as well. Well, the shade looks a little tragic right now. Moving to the sunshine state pretty soon. I should get more color anyways, and then this would be a perfect match for me, but not in the dead of winter. Oh yeah, and it does layer well also. So you get a little bit more coverage with that second coat, but it's not going to go past the medium coverage I would say. This is the finish of a foundation that I love. This medium coverage with a natural finish. Ooh, I already think hopefully this wears well. This is probably going to be my favorite Nars foundation. Love the way that this looks on my skin. Now you can see it does. I want to say it's emphasizing my pores, but because of that natural finish, it certainly isn't blurring them. Nonetheless though, you guys, it looks super duper pretty. I'm going to fast forward through the rest of my face application so you can see the products that I am using on top. But here is how it looks. Brush application for sure is my favorite. It's settling into the skin beautifully. Oh, okay, hold on. Okay guys, here is the foundation with everything that I have to say. I completely forgot how amazing the Nars Soft Matte Concealer was. The concealer is what really helped blur the pores in this area, but my skin looks amazing. This is the exact type of foundation that I personally love for every day. Oh my gosh, please hold up, please wear well because my skin looks so good. With the powder, you can see a lot of the glow went away, but that's okay. Hopefully it comes back as the day goes on. I feel like my skin looks really soft and really pretty. So I really like this. It's held up with the medium coverage after I powdered and everything. I'm gonna quickly shift over to a little bit of sunlight so you can see how it looks in front of my window. And here's how the foundation looks in natural sunlight in front of the window. On my iPhone, seriously, it looks so good. Oh my gosh, you guys have no idea how much I hope this stays and wears good because it looks... It's looking good, guys. I'm telling you, it is pretty late. It's about 3.30. So I would say I got the foundation on at about 3. So I will catch up with you guys in a few hours. I'm gonna go for a walk. I might do some Pilates, I don't know, but I have a lot of things I want to do. Anyways, I'll be back. All right, quick check-in for the foundation. Let me come close to you guys can see. Dang, I am so impressed, you guys. I haven't been so impressed with the foundations that I've tried recently. This is really, really good. I mean, we're only four and a half-ish hours in right now. If I weren't doing the wear test, I probably would like to powder my forehead a little bit, but I did heavily powder here, well, not heavily, but I powdered more here than I did my forehead and it's holding up better. The only thing, the only flaw so far I've noticed with this foundation is it sinks randomly into my smile lines very, very quickly. I mean, I'm talking 20 minutes into where I noticed it kind of sinking in, which is so odd because it looks so amazing everywhere else. I don't notice any sinking into my lines on my forehead or anything like that. It's just these and if I weren't doing a wear test, I'd just rub them out, but very odd flaw here. I mean, it's not the cutest that it's really emphasizing my smile lines. I think to fix that, I'd probably put a little bit of concealer over it and maybe heavily powder just because this formula doesn't like my smile lines, but other than that, I mean, my skin looks frickin' great. I really like it. It doesn't look weird on my nose yet. It hasn't collected oil around my nose. Just the smile line thing, but other than that, I'm really excited about this foundation. I am gonna try and walk on my treadmill or do something movement-wise so that we can see how it holds up with a little bit of heat.  All right, anyways, I'll check up with you guys in a few hours. It is about 11 o'clock, so we have been wearing the foundation for eight hours. Oh, it looks so good. Here is a close-up. Now, it doesn't look as good as when I first applied it, but eight hours later, I think it looks pretty dang good. You can definitely see my forehead is the area that got the most shiny. I just don't think I powdered it down enough to begin with. The biggest flaw that this foundation has is the smile lines and everything else looks so good that I'm looking past it, but if I'm being completely honest, it's not a good look. Like, I wish it wasn't my smile lines. It's just not cute to look in the mirror and see this, but let's take that away. It looks freaking amazing. I can see, though, at this eight-hour point, it's gonna start breaking down a little bit around the mouth area, which is what happens first, but, oh my gosh. I need to do side-by-side wear tests with some of the other foundations that I've tried recently that I've been loving. This one is towards the top, though, if not my favorite. I'm not sure which is number one what's my head, so I'm gonna have to do a side-by-side wear test, but this is like my favorite of the two Dior's, the Charlotte Toebury. Was there another one? Oh, and the Jacqueline, but that, you know, that one's last. Between all of those, I think this was my favorite everyday-style foundation. I just think it looks so beautiful and smooth. I mean, you can see, like, my pores are kind of there, but it's not anything I don't feel uncomfortable with. I love this foundation. I think it's really, really great. I'm excited to continue using this. Application tips I have for you. Apply with a brush, set with a little bit of powder, and you should be good to go. It's an awesome foundation. I'm a huge fan. Okay, let me blend this out. You see how much better that looks? The only thing is, I just wish the smile lines, things didn't happen. Okay, I'm gonna put on a little bit of powder so we can test how that would look. Oh, it looks good as new. I'm stoked. This foundation is awesome. Definitely recommend this. And like I said, I have not been loving the foundations that Nars has been coming out with these last couple of years. This one, I had a feeling about it. I did. Oh, new makeup excites me. Okay, guys, that is all I have for today's video. I hope you guys enjoyed it. Thank you so much for being subscribed to my channel and liking this video. And stay tuned. Now that I've tried this, I'm gonna spend a couple other days testing and comparing the foundations. And I will have a ranking of all of these new babies up sometime next week. I will see you guys in the next one. Have a good one.


What's going on everyone jq relate sports cards rip and a personal for will f we got one at 2023 leaf metal trap baseball jumbo for you He's been pretty fun. Yeah, these are fire and dude cofax cofax. I'd be cool to hit Pull like an Akuni auto the other day That's a cut the bottom tape things too. Yeah, we pulled like Ronald Akuni out of here That was fun. Yeah, dude exactly dug a big bird costume Leaf cards at the top load. What is this? Yep? That's fire. Why are they separate so weird? That's fire on the bottom. That's awesome If I if that's what I think it is, you know how to open that slider box thing you'll want to like Cut when you got a cup of it. It's hard to open, but there's like a work That works that works All right, ma'am. Good luck will These I'm not sure how much these are these are 250 to fit says right there Well, it's only one you can see what it does My bad trying from my face a brainy and Taylor on the refractor to I believe 189 And then the hobby boxes are the hobby boxes are 135 the jumbos are 250 How about back-to-back raise Braylor Guerrero? Braylor Guerrero to 189 on the Ray the Ray and then Bray the Ray Ray and then Bray the Ray Wow And these are cool. These are cool like these how putters should straight these out of it You may have to use like Brando Maia on the Wave almost blue wave numbered 99 got a absolute son right here Evan Carter Evan Carter on like the pole star looks like I Was number two of nine Absolute stud for Tejas. He's got the city connects on in that pic that's fire got a Wade Mechler auto on the mojo Wade Mechler Non-numbered it looks like got in Manuel Bonilla on the diamond diamond wonders auto I'm in wonders pink wave. That was numbered two of seven actually two of seven How about that Bray the Ray on the wave? Bray the Ray whoa, right away. Bray the Ray. Whoa Wait, the what wait, do you know the Bray five five nine? nice auto there Got Tommy Troy on the first round gems auto Tommy Troy D-backs top prospect and draft Numbered one-to-one Ew one of one. Ew Tommy Troy Here we go. Will TT very nice T2 That's just a call the Terminator T2 got Brayla Guerrero on the thrillers auto Back-to-back Brayla Guerrero four or five looks like Or four or six. Apologies four of six. Yeah, I got a lovely surprise one of ones at every turn chase daunder Apparently my chase in the 24 bowman coming up Numbered one of three Chase Daunder It's too late for this stuff Jake Travis Bazzana not Pastrana, but Bazzana on the pink mojo numbered four four Jake wants five Daunders and Five more and then Miles Nailer on the diamond wonders auto Travis Bazzana the third Nailer brother in baseball Dude, this guy's name is Bazzana Bazzana Travis Bazzana like the guy from nitro circus number three of five three of five Yeah, well, yeah, I gotta learn how to do this. So Break got Blake Dunn famous last words efficient auto on the one-to-one pre-production proof Here we are Blake Dunn auto We're almost done though and then last card here got Alexander Ramirez on the one-to-one pre-production proof slabbed up for you Met's prospect. All right, man. That'll do it for your break. Well appreciate the order get those right out to you


Hi Greg, this is Ashley with Oxforn Toyota. I wanted to send you over a quick video greeting that way you can see who you are working with. Thank you so much for speaking with me yesterday about your interest through the employee buying program in a new 2016 Tundra. I want to hit and send you over a little bit more information about us. When you get a moment, please give me a call. My number is<PHONE_NUMBER> or just email me back. Thanks. Bye.


I've got a real nostalgia trip for you here. This is the Star Wars Escape from Death Star game, 1977. Back in the glory days, when there was one movie, only one. It was called Star Wars, period. The way it should be. 1977 by Kenner. Take a look at the back of the box here. Let's open it up and take a look at the game board. Here we are. It's a surprisingly complex game board. Interesting gameplay too. We'll zoom out here for a second so you can see the whole thing. Let's look at the contents first. Here's the instruction sheet. There are no dice. Use a spinner with R2D2's face on it. There's a pile of cards. There are three kinds of cards. First we have the tractor beam cards. And there's Obi-Wan turning off the tractor beam. Then we have four Death Star blueprint cards. And that's exactly what they are. Death Star blueprints. We'll get to those in a minute. The rest of the cards are called force cards. There's 52 of them. They have various instructions on them. I'll explain those as we go along. Here are up to four players. Each player chooses a color and each player gets two game pieces. There's a Haunted Chewbacca and a Lucan Leia. Two game pieces for everybody. The goal of the game, of course, is to escape from the Death Star. The larger of the two playing areas is the Death Star. And everyone starts out at the trash compactor. Now interestingly, you move your two tokens separately. And you choose which one you're going to move each turn. Each player moves by spinning. You get one, two, or three spaces. And you follow the lines that connect the circular spaces. Here's where the cards come in. When a player lands on a blue space, he or she draws a force card and follows the instructions on the card. For example, there's the forces against you. Your blaster misfires, move back three. Move Lucan Leia to Death Star DS3 coordinates. The forces with you, R2-D2 and C3PO show you a shortcut move to the tractor beam. This kind of stuff, you get it. But I do want to point out two cards here. Here we have the forces with you. You find Stormtroopers outfits to disguise yourself, move ahead four. The forces with you. Win the lightsaber duel with Darth Vader, move ahead three. So finding a Stormtrooper uniforms is more valuable than defeating Darth Vader. That's just wrong. I believe that's wrong. When two opposing pieces can share the same space, it's fine as long as the pieces are different kinds of pieces. But if you have, for example, two Lucan Leias together, the new Lucan Leia, send the first Lucan Leia all the way back to the trashcump actor. Yeah, it's harsh. I know. Now, here's how the detention block works. If a player draws a card that sends them to the detention block, they can get out by drawing a card that says get out of the detention block or by spinning a three. But if three turns go by without spinning a three, they get out automatically. So a maximum of three turns in the detention box. Now, in the Death Star portion of the game, every player has two goals. One, to get one of your pieces to the tractor beam where you collect your tractor beam card. And you need to get one of your tokens to the control room where you collect your Death Star blueprints. Once you have collected one of each, the tractor beam and the blueprints, you can set about moving both of your pieces to the Millennium Falcon. One piece will get there first and just has to sit and wait for the other piece to arrive. And that can take however long, you just have to wait. Well, once you've got both pieces there, from here on in, you move both pieces together. The goal is to get through the field of tie fighters and reach the Rebel base. And you're gonna have to dogfight with the tie fighters. You spin to start the final leg to the Rebel base. You enter the area going in a straight line. If you land on an empty space, you stay there until your next turn. If you land on a tie fighter, you spin to see if you win or lose. If you lose a dogfight, you go all the way back to the Millennium Falcon. If you win a dogfight, you can advance one space in any direction. That includes diagonals. You can move to an empty space and wait till your next turn or you can move straight to another dogfight. As long as you keep winning your dogfights, you can go straight to the Rebel base. But again, you have to land on it by exact count. Well, that's it. Star Wars, escape from Death Star game, 1977. The original.


What's up guys today? We're gonna be continuing our dueling series where we opened all four starter decks and dueled with them But this time we're gonna have some magic ruler packs. So we're both gonna open up 12 packs We're gonna add them to our current deck and we're gonna do another match. So it's gonna be pretty exciting I know there was a lot of background noise a lot of you guys seem to enjoy the video But a lot of you guys were annoyed by the background But unfortunately the background is not gonna go away because we didn't realize it's gonna be so loud and I can't I can't edit it out. It's just in there. So Yeah, I'm sorry about that But I didn't want you guys to miss a magical pretty cool magic ruler opening as well as the duel Which I think those went pretty well Also, we have one more episode with pharaoh servant after this you guys are interested in that make sure you guys Hit the like button and let me know in the comments if you want to see the last episode and I apologize again for the background noise. I know it's it's a little bit loud But we're gonna do I'm gonna do what I can to make it not too bad So hope you guys enjoy this video and let's get into the open. Okay. We have 24 magic ruler packs 25 25 you look at check out the spell ruler pack Just insane samely weird packaging. I don't know if it's gonna have an error in it I'm a pop one somebody's gonna get super mad that we open this for sure. So that's gonna be great All right, so how are we gonna do this? We're gonna alternate or yeah, sure what okay first? All right, I'll open one. We're gonna both Take what we get from our packs and add them to our decks that we've been playing out of our starter decks Let's see what we get out of that. Should I change this light? Okay? This should be fine I can't tell it'll be okay. It'll be fine Just tell me if I'm right. So what I what I want out of here. I know I want to send you so I can play it for my Really quick thank you. That's my max priority right away. They're staying so we got some original magic ruler packs eat Gabon Queens bird Do you heard that? I actually probably a good one.  I'm gonna put the crab turtle in tell me if I'm make sure I'm in okay You're in the frame. You're in the frame. I am okay Okay, five star 1400 if you can a little like this. Yeah like that. That's perfect magical labyrinth Mother grizzly. All right Mechanical snail dude, you got the mechanical snow. Good. That's a good one. That's gonna really help. Yeah, I like that one I got a lot more effect monsters.  These are all retail. So we might pull a serpent, but we won't pull it in but we won't play But yeah, we're gonna turn you good if I pull another relinquish.  I'm gonna be hyped Yeah, cuz you that baby is coming home with me Okay, zebra red archery girl nothing yet. Okay. Nice. Nice. Oh All right, labyrinth wall very nice. Good one play, you know, I see tape. Yeah, that's a good one.  Oh Chain energy. Good burn. Oh What is the borsal you do if summoned by a normal summon this card is destroyed? Oh Great Grizzly Oh upstart that's pretty that's pretty dang good. That's a good one. That's a really good I forgot. They're actually like good cards in here. I'm used to the starter deck cards where they're either Oh, yeah, I feel spoiled now.  All right, that would be cool, but not very helpful Guy of power short friend Shiny I'm getting all the different ones Electric as the electric snake somebody was talking about electric snaker. Oh, that was a VOP talking about Cuz you can draw two cards if they discard it Flash the sailor. Oh, if you blink when duo it or something. Yeah, yeah for against the linker do Right the pack.  I'm definitely playing jiggin. All right. We're sure foils. Yeah, man There's some good foils we could pull out of here. So Seven or something. Yeah, they're all loose packs. So there's no law. I have no idea what's in here. Oh gosh I just destroyed that too. That's all right. All right dark witch Crabtart. I'm start playing some rituals snake fang Mother grizzly another one Labyrinth wall and I want a labyrinth wall, too All right, well, maybe I'll play some these guys. I got two labyrinth wall. So I'm gonna play a whole whole team of Yeah, I don't think there's a foil in here either crackin witch crab total Giant germ. Yeah, dang it. I wanted the giant germ back. Yeah. All right. All right.  I'm gonna see that. That's sick.  That's a nice nice card Make sure that it's good to go That's super nice Queens bird whippetail performance That's why oh, no, that's a good car girl. Oh another great car I just think in a city. So it's really good. I could have 30 msd's in these stone. Wow. Okay. We picked it up dude nice To msd. That's pretty awesome back-to-back too bad. It was a card. We already have but that's okay in our decks But it's still we're gonna be pretty nice Nice now. We're getting all the foils Amy carts integrate remove from play. Okay, so no monster reborn We'll get those out. I might play it actually Amoeba Amoeba. I don't know what that does either. I got a labyrinth wall. That's definitely gonna get played All right, so we are one two three four five six seven. Okay five packs left each Still dude. We got a two ultra. So we got our ultra. Yeah, that's pretty good. All right. Come on Give me a really gonna get something in there Come on. Come on. Oh, yeah, Zanru. What is this one? This one was dark back there. Yo, Zanru eternal rest That's a good one. Oh, it's another sonic bird. I need that. Yep for my relinquish wreck that Manga rerun sonic bird. All right Give me a sin you swear. I want that is the rare I want high tide vision. I'm gonna get a foil in that Oh It's lowered. Oh, wow miss print pop one Million dollars burger. That's a great. That's a great poll. That's actually not a bad card either. Yeah, you can definitely play that It seals Zodia Do you have a template? Zodia? I mean would you rather get the ultras or the supers? Ultras psychic kappa Greggal Hero give me burning me deep upstart. Oh, you got to upstart. I got gracefully. You got to up start When we got left, dude, I'd rather get the ultras honestly. Yeah Luminous spark It's actually really good. These are good odds. Yeah, I don't care if I pull anything else All I need is a secret now. I'm good The ultras are what I want Greggal final Toon world. Oh, good. That's a good. That's the best super best super in the set We started off like over six or something over six. Yeah, it's the seventh pack and then there we have it Like before almost everything system. I don't think I have any tunes to play. I think you have all the teams nicely Flying comic here. That's that gets wind monsters. I think toll is good I've got like all the so what we could do is whatever I use I put in whatever I don't use goes into the pile and you can pull from the pile. We pull from like a Center pile something like that. Oh, yeah Final destiny. I forget what this does, but Giant germ nice. That's what I want. I need one more giant germ I have one we get trade right trade the guards to play trade you for your giant germ You play three MST. Yeah, that'd be kind of crazy Okay, Gaya Mystic plasmas, that was probably the baby. Oh my god a son of a sonic bird if I want to go heavy on the rituals I don't have a sing you. That's the bummer. I don't think anybody's pulled one. Yeah, only I won either It's terrible awful one more each of this I Not happy. Yes, I'm not happy cyber jar not happy Final pack need something good. Come on. Give me a send you ooh Gravekeepers UFO turtle. Okay. We got the other one commencement dance. We've got all kinds of another sonic bridge All right Really good stuff giant. Yeah, we got all up star. You got three up star. I got zero All right, we're gonna open the crazy pack open it All right, miss print collectors. I don't even know how you open that Here we go Watch there'd be like seven secrets in here We're just gonna be en to oh Wow, okay Liable garden Giant rat giant rat. Oh, no miss friend. I'm gonna spark though. We just lost like a billion dollars. That's okay You can keep this pack for whoever comments first or whatever. I don't know. That's pretty lit error pack. Yeah So up for the giveaway for the magic ruler round.  We had three sonic birds just to get our relinquished or crab turtles Wait and to build a deck We had a couple of these guys because he could bring out sonic bird. He could bring out which of the black forest, etc Then three traps two trap holes in a wabakoo one upstart one rest recklessly one at graceful Megamorph because it can be really powerful a couple of ritual spells to MSTs of course the pretty much the only back row beside what we did run two d spells. So I guess not really Two monster reborns two change of heart two dark hole two fissure and he's running Magician of faith trap master a couple heroes that mill your deck Penguin soldier. We got cyber jar. It's more mill.  No, that's another giant rat. I'll have my little gear freed a labyrinth wall island turtle So my we got blue eyes. We got trap hole to travel wabakoo spellbinding MST change of heart fissure two monster reborns two dark hole two toll to chain energy that burn your Life points for pretty much anything upstart goblins to love on dousers John Trunade scapegoat and grave keeper servant All right odds are even evens All right, all right, you're up unless you want to go second. So I don't know why I don't know why you would No, I don't either. All right. I go first. Yeah, I don't do it's already twice. That was crazy I'm gonna play toll To attack both of us have to pay 500 life points.  What's a dealer? It's your turn, okay? I'm gonna summon sonic bird.   Oh Yeah Pay for her. What's it at 14 switches crashes. Yep. All right a set and I'm gonna Okay, go Do I want to pay 500 to do 150 damage a little harder? Okay Okay Set that in my turn Change the heart face down face up. Okay tribute tribute This is mine actually For the blue eyes white dragon. That's gonna be fun to deal with attack sonic bird For 1600 Okay, 500 All right, it's your turn Wow, I don't think I've used them Did you top deck that you know You mm-hmm Set back on. All right. Go ahead. Yep Mm-hmm. Mm-hmm. I activate monster.  All right to change my monster to attack mode Equip mega morph so I now have 26 Okay, I'm gonna attack your gear freed. So you pay 500 pay 500 you take 800 So I'm still lower You're 26 26 what lightning attack they're attacking. Yes Take 800 again, and I die No, that's right. Leslie. I'm gonna take 800. All right.  Yeah Pleasure. All right. You have wapaku under there Who knows I Attack with Lajin. I take 500. Yeah, man. This is costing me more than you Okay, I'm gonna summon Sonic bird. Yep. I'll activate Fisher then And I'll in my turn I'm gonna activate chain energy What does that do as long as this card remains face up on the field both you and your opponent must pay 500 life points per card to play or set cards from your hand Okay, it's not even worth it You made the weirdest game ever I do I have more life points than you do lie 700 Okay, I'm gonna set it. Okay. I'll take 500 Okay, go ahead actually first of it. Yeah, it's your turn. This is the weirdest game. Oh Come on. Okay. I'm going to MST that one the chain energy. Yeah, okay, then I'm gonna activate upstart goblin Uh-huh. I gain a thousand you gain a thousand. Yes, then I'm gonna activate monster reborn on the blue eyes white This thing's seen a lot of action, man. I think it's seen a lot of action. Okay, uh-huh a little worried About what you got right there Well, it's not a trap hole To it now. We're gonna say that's okay. I'm gonna attack your logic. Okay. I take 12. I take five my turn. Yeah Okay Grape Keeper servant Every time you attack you discard a card from the top of your deck was a pharaoh servant card No, every time I attack a discard a card from here from the top of your day in the world Is this day's time your opponent attacks with a monster at the opponent? Let's send one card from the top of his or her deck to the graveyard. Okay Come by upstart again a thousand. Okay, and it's your turn That's splash back Put this into attack mode.  Oh Yes, it is. All right Not attacking with the bird not worth it if you have like a 1500 defense or something Set one it's your turn Darkhole Set one would be nice. All right. Go ahead This is gonna get weird This is gonna get weird. Okay Penguin soldier. All right You can return up to two monster cards from the field to the owner's hand. Thank you and thank you Okay, those two who flip this Your opponent draws three cards both players check the cards and any magic cards are sent must be immediately discarded And I'm gonna tribute one Two it's the fourth time It's the fourth time Okay, and I guess it's your turn Set one go ahead. This is miserable. It's this is the way I designed the deck Go does this even a trap card? No, it's not Skatebird, okay. I'm gonna set that Go ahead. What is this? Wow care Set. All right. Good. Click it with a full war here Flip this up. Okay Ta, okay. Yep. So you take nine fifty nine fifty nine take five hundred your turn Defense mode. Oh, it's like if I can't beat him. I'm just gonna mill on the death. All right. What is that? Go ahead? It's the whole thing dude. Go ahead. God would cost me two thousand life points just to Just to do anything to you So annoying set one go ahead I'm gonna MST Okay, right. It's your turn Because you play what three msts now. Just do so one. Uh-huh. All right. Go ahead Discard I have a card so good. Yeah, you can leave seven, right? Yeah Hero, all right. Oh, you're gonna hit another dark old watch. That's you don't Get the soldier. Oh My god, I basically it's the game. This is good. This is the end man. Oh, this is the end game This is ridiculous.  Do you try to try to lose the game? Gotta do something Discard that ooh dream club is good. All right. First.  I'm gonna tribute trap master. Sure Get my relinquished out seems legit. I'm going to manage your bug. I'm gonna pop one of those. Yep Okay, man, this better be like an all-star play Yeah, tell me about it.  Yep, so I'm gonna take this one. Oh No Yes No, no, I'm gonna take this. No, I'm gonna take this. Okay. Okay, 1400. Yeah. All right then I activate turtle of Sonic bird and Flying comikiri. Yep. Yep. Yep. Yep. Yeah, sure you've heard the fish. Yeah, I Can't wait to get walking Yep, I'm gonna flip this and then I'm gonna tribute this. Yep. Oh Man looking looking pretty rough there golly Then I'm going to attack summon skull into here Can I even survive that you mill a card? That's for sure. Yeah Me go over there one no one card. I survive this you're gonna take 500. I'm gonna take two thousand 19 1850 there's almost no way you could lose no matter what you do. I'm not gonna lose but I'm gonna let you mill a card Probably my only way to win was dark hole. So I didn't get I lost You know both of us heroes was great. That's a great card to play. I almost didn't even play this deck I mean, I'll take the 1850. That's fine. Okay. I take you take 500 I take 1850 and you take two and then I will attack your germ with Which you mill? Yep All right, cool. All right, that's it. That's the end That game took forever.    I'd like to see how much actual damage I took Yeah, not including toll That that dual did make my head hurt though Yeah, I was like, man, is this actually gonna work? Wow, it actually is gonna work. This is gonna work Mmm-hmm. Yeah, I would have been fine if I got one of my two dark holes. That's yours Yeah One of them. Yeah, you didn't even get one Isn't that awful? It was funny because Ian Ian was the person who actually told me about decks like this.   All right. Go ahead. I'll start Game a thousand. Yeah, good start. I'm gonna need that later on.  I'm gonna summon flying comic here. Sure. I'm gonna attack you Okay, great cyber jar. All right, so you're gonna be summoning like everything some blue eyes What was the one card that didn't come out? Change of heart. Oh, it's still my turn, isn't it? Yeah, I'll put that face of it. All right attack Okay, okay attack the Sonny bird. I Have to flip this up.  Yeah Labyrinth wall. All right Special summon in attack mode. Yeah. All right. That would be like all my guests. This game is over.  I'll attack your lab with law. Just want to say it's 2500 Attack for 1200 that hurts. It's your turn I have to make sure. Yep Then I'm gonna summon witch Attack for 11 In my turn What is the deal? You know attack for 100. No, you're alive. Oh wait. Oh, yeah, you don't die, dude Mm-hmm. She's gonna start. Mm-hmm taking my damage. I'm gonna start. I'm gonna start now. Yeah, okay You take 500.  No, don't be ridiculous, but I I could I mean I've won games or seen games one like that or lost like that especially to fiend decks Activate toll. All right. Fantastic. It's your turn Set I'll attack one of the germs Took a thousand. Yeah Actually Take which in 450 right?  Okay, a little risky against his deck Just summon sonic bird. Yep. Yep. Should we do our ninja? Yep. A little inquisit. Yep Take your Vylo. Yep Okay, I'm gonna activate change of heart 2950 change it to attack mode. Yep attack for a thousand That's a thousand. Yeah, so I take a thousand. Yeah, attack for 14. Yep. Attack for 15-50 Space the Vylo. Okay, and then I will Harpy. Okay attack or linkwish Dark hole. Okay, I got one this game That's it. You know it's the game. All right. Good to choose. For all the monkeys I'm gonna go. Um, all right. I guess I'm gonna summon a sonic bird. Yep. There it is I'm gonna set one in my turn. Okay Thank you for 14. Take it. Your turn. Summon another bird Total. Total. All right, I'll attack 500. Oh gosh. They come in attack mode. I'll just go ahead and destroy the second one. Yeah. Yeah I'll take a thousand and do 400 damage. The life points are whittling away quickly on this one Already. His weight till total and chain energy come out of here. Oh man. Are you in for a surprise? All in my turn. Chain energy Wow. Your turn Okay, I'm gonna set one for 500 I guess. Yeah, I'll attack them. Take 500 for that. And send Both of these back. All right, I'll discard one All right, my turn. Oh, yeah This is going great Pay 500 Monster born. Oh gosh. Pay 500. I should have set that. You know, I could have activated it for free Attack for 18 Okay, destroy that Attack for a thousand. It's your turn. Black Legion Ritual Can you discard them from your hand? Mm-hmm. Okay. I'm gonna dump sonic bird Yep Linkwish, I'll take the Harpy's brother. Yep You have like eight thousand still, right? Uh, seven, but yeah, I'll activate Megamorf Okay, thirty six hundred. Yep I will Summon giant soldier still. Yeah Attack for 300 and then take five and then I'll attack for 36. So I take 39 and I take five So 26 to 31 So you lose half. No, I'm sure you're not above. I have 26 You subtract from me. 500. Yeah, you were at 36. Oh, okay No, it's even it's even then there's they're the same, right? I don't know. What does it say? Life points are lower. You double are you? Yeah, you double and if they're higher you have so it's just the same My turn, yep, I don't know if I'm gonna survive with this, but it's your turn. Okay. Yep Nice. You gained a thousand. I like that. I like that I'm going to summon Witch. Yep, let's put it over here. So then you can use it. I will attack with relinquished What are you getting? All right, I'll attack for 24 and then I'm gonna be lower so he's only gonna be 900. He's at what 900? Change of heart Take this Attack. Oh, no, it's mine. I'm gonna lose. I'm gonna lose the life points I'll attack witch Okay, you take 200. Yeah, I think this is gonna be over. It's your turn Okay, I Tomdeck I'm pretty sure not necessarily. I don't know your defenses. Uh, not that much. All right, I'll take that I'm not gonna be able to get anything though. I mean, I have 1900. Yeah, that's it. Oh my gosh. All right. Thank God Hope you guys enjoyed the opening and the duels This was a pretty long one and it was pretty fun to do this one. It was Infuriating that's for sure the first game for me was it's pretty tough But I hope you guys did enjoy it. It was a lot of fun to do this And we have one more episode if you do want to see it make sure you guys like it and let me know in the comments That you want to see it because that's the only way I can know if you need to post it or not Because I know the background is a little bit distracting So if you still want to see it anyway, let me know and I will post it and we'll have the final episode And thank you guys for watching. I'll see you guys later. Peace Dark bright


What they gonna do with me now? I'm still a troke of the town Holding the sisters, I'm hooking them down Reaching the smiles and the frowns I know why I should run Yo, I should go to Breonna Imani and you're tuned in to another Troke of the Town interview And today, who we got on the couch? Man, it's that boy D-Sturdy in the building, man We got Philly in the building So, let me know So, D-30, where you get your name from? My homie died His name was Sturdy And my name, I just put it as D-sturdy I did that, that shit was over, I took off Okay, well, I'm sorry for your loss, but I'm sure you're making him very proud No, no So, for the people who don't know, how did you start getting lit? Why you sitting here talking to town today? I'm just lit Don't do that Is that some lit? How you lit? Feel me, I'd like to be dancing You just do it I be turned Okay, you just be dancing? Because last time I checked, you was also making music Yeah, I do both When I rap, I gotta dance though I gotta dance So, when did you start dancing?  Oh yeah, it was on the block Me, Spence, my other homies First was other dance, he did some He did some fruity shit So we had to change that It was a pause, he was doing other The way he did it was weird So he came back over and he said I'm gonna do it like this, and after that Let's just start, boom, everybody started doing it It called roll the boat, everybody started doing it Okay, so it's two dances that I know When I think of you, it's two things that I think of I think of the whole shake that shit And then I think of the Me like, so what's that one?  Yeah, definitely I came up with shaking it So now, I'm curious to know how you feel about Shake people People comparing shake that to rocket hips In New Jersey Because that's like a big thing People are saying that Philly Is kind of biting off of New Jersey In a way that they dance We don't dance like that No It looks kind of similar In rocket hips, you gotta really like In rocket hips like this, we don't do that You gotta really like get in there You feel me? So there's that If y'all hear a girl over here, like Yeah, he rocket hips, man Okay, so y'all started posting y'all stuff on Tiktok When did you realize that you were getting lit? I had a million You said what? I had a million views So what was that like?   Like being a Tiktok star It just feel like I'm the main Okay I'm the main, you feel me? The story now Okay, so I just called you a Tiktok star But I don't want to limit, you know What it is that you do Because I know that you are an artist as well So how did that come about?   No, not me I'm one of the goats Sue Spence Lee and Ray And that's five actually, yeah Okay, so y'all all make music and dance or No, I'm the one make music, me, my man Spence Okay Yeah So how, but y'all all kinda lit Cause I see all of y'all on my 4U page on Tiktok And everything like that Oh no, yeah, we lit So how does it feel like getting lit And going up with all the people that you consider to be Your friends Well, that should be for increased Like everywhere we go we just be turned Like the clubs and all that We be turned So, you be in a, how old are you?   My music song was like Rare Made a song with spet That's my man I did a solo drum But I ain't never dropped it though Made a song with D4M Why didn't you drop your solo song? I'm working on a solo drum I'm about to drop one though for sure When can we look out for that? Soon? Yeah, soon Okay So But how does it work though? Like y'all decide y'all going to the studio Y'all about to cook something up Do you do it beforehand?  That would live I saw that y'all filmed that in Miami, right? Yeah, definitely So how was that? Because y'all I don't know how long y'all was in Miami for But it seemed like I could eat home per week Say that one more time No, that's the Yeah, it was lit that week, the whole week Uh-huh Because it seemed like I was there forever Y'all was just acting bad Yeah, I couldn't leave So what did you say? I had to leave my cheese to stay I had to stay, bro And I had like I spent all my cheese down there All my cheese at last, bro I only had a bean on cash You say? So what you I had to keep it, bro What you was spending it on? Why you was out there? I would just spend it on everything Like everything Every girl I seen I came at What the buddy?  Baltimore And why you say that? They hope Them girls freakish I love Baltimore You love Baltimore You love the women in Baltimore No, both, both, both Okay Yeah, both So outside of the freaks What was it about Baltimore that Like, how was they showing you love? They just do too much Like, that should be charming I don't know, boy, she just like She be waving, everybody be shaking it She show love, I ain't gonna lie But the girls, the girls show Like different type of love Yeah, they get too freaky Next to them they grabbing on you All you gotta see is Come to the telly They slide And they be sliding What?     Oh yeah, they be drawn with it sometimes I can imagine Because I don't I know more of my mom and all that They be drawn I do it though, I ain't gonna lie And that's why they keep asking you Cuz, I just do it I be bad, I like to be Yo, yo, that's I'll do your more Come on I'll do it because you're gonna be on somewhere Like, yo, yeah, he too boozy You don't wanna do it Yeah, the tic-tac be glazing So I just do it Really?   Yeah, I ain't switching off the phone Okay, okay So, you are In New York and I heard something Very interesting that you said In an interview that you did And you said that you wouldn't charge People for a feature You're okay with doing free features But you said the New York niggas They would have to pay for a feature And I'm curious to know Yes, you did Yes, you did You was like, yeah, a band A band is nothing I probably did So now I'm just interested That's what I wanted to know Because I think that was in like January I'm charging 10k 10k a feature And that's across Across the board, you charging 10k For a feature You said what? I said 30k Oh wow So who would you Hop on a track with Without charging them for a feature Like, is there any, like, give me like 3 people Like famous? Yeah There I don't know I'm tripping You said not the baby I don't like the baby Why not? When he gonna get you up But he not over a little baby though No No I tripped a new cap I like a new cap too though No cap is cool Alright, so I told you three for a reason Because I want five, now you gotta give me two New York artists Since you said that So who's two New York artists That you would be willing to do a collab with I know I like Keith Flock I ain't gonna lie, he hot Uh What's his name?  Yeah, do two right there Okay, Keith Flock and pop Yeah Alright, so, BNA You from Philly, you here in New York I just got a couple things to ask you About Philly culture I don't know if it's a cultural thing or not The white chalk on your hairline What's that? Is that a Philly thing? Is that a U thing?  Then your forehead be tight Cause like, when the bar was doing 8D, 8D, pen to it Then they like, ship you up And it should make your forehead tight So I'll wait like a week after that I got a little pen to Ship me up I'm back, shit cool Okay, then the next thing The under armor, y'all all seem to wear Under armor, what's that about My man bro started it up Bro started wearing the under armor And it just took off from there Everybody started doing wearing it Yeah, I noticed that cause I'm like I haven't really seen people walking under armor like that I ain't gonna lie, he wear it I had to throw it on So I tried it I tried it on And I'm looking around like, y'all literally Got something under armor on, that's crazy Oh no, real red Bro got the socks I can't see it I seen it with pink under armor shoes on He started going overboard Under armor shoes on Like pink joints I hate to do it to him And I hate to do it to you Cause I feel like I'm putting you on the spot But you posted about it so I feel like I can ask you Layton bro You posted about it You posted about it I never posted though And you say you tried to But look though, that's between Layton bro You said you tried to get them back together And you're posed, did you not?  No we was trolling that though You feel me? I don't know what's going on with them I don't know That's between them You're not gonna speak with them The whole room got real silent y'all Got real silent y'all I don't know what's going on I don't know what's going on I mean I wouldn't have asked you If I didn't see you post about it on your page Oh no you were trolling The way that you feel about it is the way that you feel about it I'm a little trolling that, I ain't gonna lie Okay, so when it comes to Putting content on your page And determining what it is that you want to post Where do you get your ideas from?  What's next for D-30? What you got coming up? I don't know yet, I'm about to go to the stew today Cook something Going to the stew today, yes You got anything that you've been working on Outside of what you gonna work on today? No, I was chilling Alright Well, is there anything else that you want The people to know? Yeah, take it over man Stay tuned These three in the building Alright, shout out to Oh my foot, my foot Shout out to the Goats man Shout out to everybody Shout out to the supporters And all, you feel me? Your handles Instagram tiktok?  How do you blame your team For not getting your baby back What you got paid for?


Yeah, thank you very much for that introduction. So you've made it. We're nearly at the end of Europe. I'm so glad that there are still people here I noticed some people going off to the airport already. So I'm really happy that you're all here So thank you very much for joining my talk. I won't do an anecdote. I think you've heard enough during the conference I'll just dive into my talk. I'll first briefly introduce myself. Who am I and then we're going to talk about the actual substance So my name is Sebastian. I'm from the Netherlands. I live near the Hague I love it there and I work for a company called Ordina and more specifically the Ordina Python ears Which is a smaller practice within our company that really focuses on Python development I'm also one of the code Smith's which means that I get some time for innovation for conferences being here But also just to explore Python with all the other Python developers at my company And at other companies as well just to have a little bit of fun with Python I think that's really important to have fun with Python to really Dive into it and make it your passion at least for me. That's really what I love in my spare time I'm one of the volunteers for Europe Python here this year. I was the finnate lead for the financial aid program And I also did some session sharing was really interesting I'm really happy that we've made it so far Into the conference and I'm also one of the founders of Python discord Which is a larger online Python community with a lot of teenagers But also other folks who are trying to learn Python discuss Python and do other stuff with Python So definitely check it out if you haven't heard about it. Anyway, that's enough about me. Let's talk about Python So what are we going to do today? Basically, we're going to make a journey a journey all the way from the source code of Python to the execution And for me, it's kind of like writing magic spells I used to play games like D&D and stuff like that and with programming languages You get to write something and then something happens often. It's not what I want, but at least something happens So and that's what we're going to see today. I'm going to take you on a journey I'm going to show you how Python gets from the source code all the way to the magic all the way to the execution I'm not just going to give you a lecture about that. I think that would be rather boring But I'm going to show you how to implement a new operator in Python And that will naturally take us all the way from that source code to that execution However, do note. I have a series disclaimer for this talk We have time constraints, so I'm going to omit things. There will be blatant emissions. There will be gross oversimplifications I will take shortcuts. The implementation will not be ideal But hopefully it will give you an overview of what happens within in the python internals all right If you do like to know more details if you're interested after this talk Definitely check out the python developers guide on devguide.python.org It contains a lot of information about how you can mess with the python internals how to compile it But it also has excellent explanations about the parser grammar and everything else And then obviously there's anthony shull's book see python internals published by real python It's a great book. Definitely check it out if you're interested in this All right So what is our journey today? Well, we're going to go from source code to execution Basically in two parts in the first part We're going to look at the tokenizer and the parser to create something called an abstract syntax tree And then in the second part, we're going to take that abstract syntax tree and go all the way to the magic Using the compiler and the evaluation loop By the way, if you want to check out the slides or the source code for the the version of python that we're creating today Check out the github repository. Everything's there a couple of versions of the slides one version of the source code But do note it's an educational implementation Don't use it in production. I'm not maintaining it. It's a crappy implementation. Please don't use it for anything serious All right, what is a pipe operator? Well, a pipe operator is something that's part of a lot of languages but not python And it's basically another way of calling functions So say you have a function that takes one argument like this double over here It just takes a number and it multiplies the number by two and it returns the value Well, the pipe operator allows you to call this function in a different way You provide the value on the right hand side of the operator Then you use the operator itself Then you name the function and then the argument will be passed into the function and you get the result out of it But this is obviously not really interesting. It's just like calling the function double one But what you can do with this is you can build pipelines So you can start with a single value Then you can pipe it into various functions to process it and you get something out the other end So in this case this would be equivalent to calling double One and then insert that into another double call the nested function call So this is what we're going to do today Well, just to be clear. This is not a part of python. I don't think it will ever be a part of python There were a few proposals for this they were rejected for good reasons Maybe in the future. Who knows ask a core developer, not me And the implementation is purely educational. I've already mentioned that So the first part we want to get from the source code So the characters, uh, on the right hand side all the way to that abstract syntax tree that you see there So this tree like representation of your source code So if you have a single python file with this line in it only this line You'll get something like you see there that tree representation of your source code You have a module a single expression It's a binary operation an operation with two operands and value to the right hand side and a value to the left hand side And that binary operation has a constant a 10 It has the operator itself the call pipe and then it loads the name the name of the function Obviously this won't work in a file in its own because there is no function here But this is the general idea of what we're trying to do in the first part We're trying to get from that part to that nice tree over there So first look at our source code We humans we are very good in reading We recognize patterns We immediately see that we have a 10 that we have a name double that we have a weird operator in the middle That is unfamiliar in python, but at least we immediately recognize the bits But if you think about it for python at the start This is just a stream of individual characters There are 12 characters here and they make up our source code and python has to understand those characters And the first step python takes Is basically extracting the tokens from this source code and tokens are the minimal parts that still have a meaning So for instance, we have a number token over here If you split this up even further into a one and a zero you lose the meaning of the number 10 We have a name over here. Obviously if you remove a character, it's no longer the same name So this is a name token And the first thing that we need to implement is that python will recognize this Token here in the middle this operator this two character operator as one single token This isn't very difficult to do This is just a configuration in a file if you look in the python repository There's a file grammar slash tokens And it's just a big mapping of token names to token character sequences So all that we have to do is we have to add our own token into this file And there's no meaning here yet. This is just a description of the token So I've called it v bar greater fill the vertical bar greater and I've mapped it to the token sequence that we want to introduce This isn't All of it what what we still need to do is regenerate the tokenizer itself the actual A piece of python that will get this tokens from your source code Because python will not read this file every time it tries to parse source code For that we just have to run some commands And this will be a recurring theme in this presentation change something run a command and then you can see the result So these are the commands I'm not going to go into detail in all those in all these commands because you can find them on the internet And you're not going to remember them here anyway But after we've done this python will now be able to recognize our new token our A v bar greater token And that's already a big step But it doesn't really know what to do with that token So there's no grammar rule that tells python if you see this token then this has to happen So the next thing that we will need to do is we need to add support for this new token in python's parser by adding it to python's grammar Well, the grammar also has to produce something which is the abstract syntax tree that we saw earlier So we also have to tell the grammar how to Generate the abstract syntax tree and make sure that there's something for our code pipe available in that abstract syntax tree So let's look at our grammar yet So since python three points. Oh, I forgot three point nine The new pack parser has been introduced and this has a completely new grammar. It's very flexible It's very powerful But we first have to look into the syntax of this grammar just a little bit to add our own rule So i'm just going to take a very small dive into the parsing expression grammar that A python uses just enough to know to define our new rule for the call pipe operator So if you imagine a very simple programming language And it only has two expression types. It has a sum And it has something called an atom And in this very simple language, there are only two grammar rules The sum and the atom there might be some other for statements and stuff like that But we we're going to ignore that for now. We're going to focus on these two Then this is basically what you can define in pack parser. This is a little bit simplified But these could be grammar rules and just to Call our codem grammar rules can reference each other And this is how python goes down all the grammar rules to see what it matches So it's first try starts by trying to match the sum rule And within the sum rule there are options that reference the atom rule, which is just a number And that is how we ever consider the atom rule So if we just have this single piece of Source code, it's just a number it will first try to to match the sum rule. It has two alternatives That's what the vertical bars mean It has an atom plus an atom and it has an atom on its own So this matches the second alternative in the sum rule, which is an atom Then we look at the atom because it's just a number so we can parse this So in this very simple grammar example, we can parse a number on its own How what about this one on this one? We have an atom a number plus and then another atom which matches the first rule of the sum So it's very easy to see that this grammar rule will now be able to match this simple piece of grammar as well But now what about this one? Think about it for a moment Are our grammar rules able to parse this very simple statement? I see some people shaking. Yes, others shaking. No Well, the problem here is that when you start parsing your expression You will consume these parts. We can Parse this very easily and what we're then left with is a plus and a three And we have no rule that matches a plus and a three on its own So how are we going to match something with two pluses? Obviously, we can add another rule But what if we want an atom plus an atom plus an atom plus another atom? Do we have to add another rule if you want four pluses or five or six or if we want an infinite pluses We'd be busy quite a long time who wanted to add alternatives for all those different scenarios But there's a very simple solution for that And you're probably going to love this. It's just recursion So what we can do is we can change the first Alternative in the sum rule. We can make it reference itself And now we can have sums that are embedded in other sums embedded in other sums And just remember a sum can also just be an atom on its own So we can still match an atom plus an atom But now we can also match A sum contained in another sum And this is basically all that you need to do to get an arbitrary number of operators in a row And if you think about it, this is precisely what we need for our new pipe operator We also want to be able to build an arbitrary long pipeline So the grammar rule that we will need to add is a grammar rule that has such a recursive relationship So let's see that This is the existing grammar file in python grammar slash python dot gram Here you see the shift expression if you want to do bit shifting and you see the sum expression And i'm just going to insert our new grammar rule between those two. So let's make some space Um, this is probably isn't the best place to insert it, but it means that it's very easy to insert it So that's why i've chosen it So here we're going to add a new rule. Let's call it pipe And as you can see here, this is just our recursive relationship There's just one problem our grammar rule isn't Reference by any other grammar rule in python So the parser will never consider it when parsing source code So what do we have to do? Well, if you look at the at the shift expression It actually references the sum expression. That's how the grammar rules flow down So the only thing that we need to do to insert it We have to change the references in the shift expression to the pipe one and in the pipe Can then reference to someone. So if we change this The shift expression now references the pipe one the pipe to someone and now our grammar rules can flow down again And this is basically the only thing that we need to do to add our new grammar rule for our new pipe call operator So now we can parse this right. We're done Well, not quite But because we also still need to be able to create the the tree structure that you see there on the right We have to be able to fit it into our abstract syntax tree. So how are we going to do that? In the old parser there used to be an intermediate step the concrete syntax tree But with the new pack parser, we don't need that anymore And the reason why is that because we now have something called grammar actions If you look here, this is a grammar action Between the curly braces and because we're targeting c python This is basically just a piece of c code that is embedded into the grammar file So whenever python matches a sum rule It will then call this c function to create the classes that we see there to create the tree Tree structure that we see there well to create a binary operation tree structure We need the right-hand side of the operator. So the value we need we need the left-hand side and we need the operator So that's the information that we're going to pass into this function And that we can do by assigning names to the parts that we match in our expression So we match an a to the right-hand side pass it into the function We match a b to the left-hand side pass it into the function We know that this is an ad operation because this is the sum rule So we can hard code the ad operator and there are some extra bits having to do with line number and stuff like that We're going to ignore that for now, but they're very handy for tracebacks and other kinds of interesting things So this is all we need to create a binary operation with an ad operator Can we now do that for our own rule? Obviously, we can just copy the approach Because our new operator is also a binary operation So we can just make it call the same function But instead of using the ad operator we can use the call pipe operator here Just one tiny problem The AST uses classes and there is no class called call pipe yet It just doesn't exist yet So we have to create that so that we can actually build this abstract syntax tree with that call pipe node Somewhere in the middle for the operator field So how do we do that? Is it difficult? Do we have to code a lot? Luckily not because this is another configuration file This is in parser slash python dot asdl which stands for abstract syntax definition language And as you can see here somewhere in the middle, there's a part for the operator And here's our ad option just in an option list And this is all you need to do to have a generator create classes for you So what do we have to do? Just add our new operator at the end as another option Then we regenerate the AST we run another command and now our classes will be created for us So this is all we have to do to add support in the AST Now we can regenerate the entire parser And now we are actually able to parse expressions with the call pipe operator in it You can see here that we have a binary bin of nodes somewhere in our AST tree And it actually uses a call pipe class object in there to represent the operator So this is all that we need to do for the new grammar And now we're done now we can go from source code to an abstract syntax tree But this is all fairly static nothing happens yet So to do that we need to move on to part two where we actually going to Where we actually going to transform this into something we can run and then actually execute it So in part two, we will look at the compiler So if you've ever joined an online discussion about is python a compiled language or not, please don't they're all very toxic But we are going to compile this into some form of an intermediate language We're going to compile this into a little bit of bytecode And to do that we need to have a bytecode for our new operator because bytecode is just a long list of instructions for python A long sequence of bytes a long sequence of numbers And each instruction that we're going to execute has its own number or its own byte and we need one for our new operation And obviously there is already a bytecode for calling functions But i'm going to ignore that one because it isn't fun to use what's already in python So we're going to add support to the compiler by creating our own instruction Then we're going to make the compiler actually use that instruction write it into the bytecode And then we're going to add support in the evaluation loop to actually do something with that So let's do that. This is the only python file that we'll see today We can use it to define our operation codes or opcodes Our opcode doesn't have an argument Don't worry about that for now, but it means that it has to have a number lower than the have argument constant So i'm just going to add it here. I'm going to call it binary pipe call That's for us so that we can understand it and the bytecode and the number that we associate with the operation is 90 And i have to increase all the numbers below it and that's a tedious job, but we'll have to do it Now we can regenerate all the opcodes. Do you see the pattern yet? And now the opcode will actually be generated for us Right now we have an opcode now. We still need to make the compiler actually write that opcode into the bytecode So how are we going to do that? Well, the compiler is just going to visit all the nodes in our AST and it has functions that handle that visit And somewhere in our compiler, there's a function called compiler visit Expere one expression one which eventually gets called to handle expressions We don't actually have to change it, but there's an important fact here If you look at this function, it's just a massive switch case operations And for each type of expression including the binary be bin up kind There's a special case and here's our case We first are going to visit the left hand side of the operator, which is really important because we need that value Write all the instructions for it. Then we're going to visit the right hand side write all the instructions to Evaluate the right hand side and then we're going to add the operation for the operator And to know which opcode to write there's a helper function bin up and this is the function that we actually need to change This is another switch case statement This will get an AST node like this add here and it will return the Bin up that we actually want to execute or add to the bytecode So we need to add another case Write our binary pipe call operator and now we can write it into the bytecode There's one final thing that we need to change in the compiler. It's the stack effect python uses a value stack You'll see that later And the effect of our operation is that our value stack decreases by one value, but don't worry about that for now And this is the compiler and now we can go from an AST To a long list of instructions and this is all we need to write our new operator our new opcode into the bytecode And now we get to the evaluation loop and this is really where the magic happens The evaluation loop like the name says is just one giant loop that goes around and around and around and around Executing all the instructions in the bytecode And inside of that loop. There is a massive switch case statement, and I'm not Exaggerating it's really massive. Look at the source code in python slash c eval dot c And for each opcode it has a case. So for instance here is the binary subtract And this is the code that actually gets executed whenever it sees such an opcode for a binary subtract Something minus something else But here we have a problem Because how do we get the values that were to the right and to the left of the operator? How do we get them? Back to actually process them here. Well, this is why python uses a value stack And from that value stack we can get the values that we need to perform the operation Now, how does that work? Say that we have this simple expression 4 minus 1 What we saw earlier is that python will first write the instructions to evaluate the left hand side when it's done It will put that value onto the value stack To remember it then it will evaluate the right hand side And it will put it onto the value stack and the value stack is really a stack It will put a 3 on top of the 4 on the value stack just so that we're able to use them later So when we enter this new function for the operator The 3 and the 4 are on our value stack So now that we can use the pop macro just to get the 3 out of the value stack and make right point to that value For left we do something similar. We leave it on the value stack, but we make left refer to that value That's there on the value stack Now we have our values We can call a capi function pi number subtract Pass in the two values. We get a result out of it. The result will now point to the one We are now done with those values. We can decrease the reference counts for the values And then at the end we need to do something with the result with the resulting value So what do we do? We just put it back on the value stack We're going to replace the value that was already there So after performing the operation, there's one less value on the value stack And that was the minus one that we saw earlier Then there's some error handling and then we do a dispatch to say to the evaluation. Please move on to the next value So how do we do that for our binary pipe call? Well, we just copy paste this code because this does basically what we need We change the targets to our binary pipe call operator We get the values like we did before but now we don't want to subtract them We want to call a function with a value There's a very handy C API function in python 3.9. It's not in the the long-term stable one So it might be deprecated, but it's very handy here and here you can call a function with one argument And remember the function was on the right hand side. So we Pass in function right first the value was on the left hand side So we pass it in second we get the result decrease the reference counts and we Put the resulting value back on the values a value stack And this is all we need to do to get from the ast to the magic And now we've completed our journey We can go all the way from source code to execution and all the steps that are in between There's just one thing left to do Let's compile our new version of python And if you're waiting for it, you can you might as well just have a sort fight And after that's done you can run your new version of python and you can use your operator. It will actually Work if you follow these steps. There are some quirks, especially in operator precedence with this implementation, but it will work in principle And basically that's it. We've seen a lot of python internals In a short time. Don't worry about it. This is just for a framework. Check out the books the dev guide Source code and slides are available. And if you get weird errors try running may clean or clean all on windows And look into something called the magic number because we've changed the bytecode version So we need to change the bytecode version in c python as well Um before we go, I hope you've been you've enjoyed your python. It's been great for me But we also need to organize the next edition in uh 2023 I don't know when or where it's going to be But if you want to be a volunteer just like me Join us to help organize python 23 you can send an email there or you can just talk to me after my talk And that's it. I hope you've enjoyed my talk. Thank you very much Thank you very much. Thank you Well, wow, wow I expect the only we we're gonna see a lot of forks of python nowadays So do we have questions? So when you'll be ready just queue up and we have we can okay go on Just something silly in the beginning when you created the tokenizer You had a symbol there. Did you use that afterwards? I don't remember Did the symbol the the the vertical bar and the yeah the v bar Greater well, we don't use the name that that we can use it to tokenize our output But we haven't used the name in the grammar. Um, so we haven't used the name But the token sequence is obviously our new operator So that's the actual operator that we use So so why did we give it a name? Um, because we had mostly for us humans to make it readable So, uh, yeah Another one, please. Thank you for the talk.  So there are obviously a lot of optimizations in there But basically this is just kind of like a virtual machine You have instructions you have a value stack that you keep track of some kind of register And and that's really powerful. You can really do a lot with it So maybe in the advent of code, which is a online puzzle I think in the 2019 edition you will actually build your own Kind of like inscode computer using your own kind of bytecode and targets So I recommend you to check that out and you can really see how powerful it can be so, uh I i'm not quite sure how Uh performance you can get it but uh Have fun. Yeah, thanks So, um, I don't see anyone else keen. I have a question though. Yeah, so One minute to describe what's the magic number the magic number So, uh, I actually had a a file about this. So whenever python, uh, compiles your code It will write to a pi c file. You've probably seen it somewhere and that bytecode is versioned It has all the instruction numbers in there But if you're going to change the instruction numbers and obviously all the old bytecodes They're no longer valid. They use the old numbers. So there's a kind of a versioning in python It's called the magic number and it will version that bytecode You can actually change that magic number if you change the the bytecode opcodes So that all the old pi c files will be marked as How do you say that stale and it will recompile all your python? So just to avoid very weird things happening with old bytecodes with changed bytecodes It gets a mess. So that's why that's the magic number Yeah, thanks Well, thank you. And this is all the time we have so, uh, please Uh, give a round of applause now. Thank you very much


Questions. Yeah, Kyle, how did you feel everything went for you yesterday in the second game? Well, you know, obviously, you know, we didn't come out with the win, but I think we fought hard. It's still early in the season, and, you know, I see our team winning in the right direction. The catch, you made kind of with one arm behind you, sort of take me through that moment. Does instinct just sort of take over there?  Oh, yeah. It's kind of like instinct, just trying to make a play on the ball. And, you know, when the ball comes my way to make something of it. So I just, it came stuck in my hands, and I turned up for you. Obviously, when you work with that in practice, do you want, he wants to throw it accurately to you and on time. Do you work on bad ball drills where maybe you have to go outside of your range and kind of like, when do you work on that? How much does that help you when things are going fast?  But for the most part, just, you know, when the ball comes my way, it could be a bad ball just to make a play on the ball. When you make a catch like that, or even one that's very routine, especially as you're kind of going so early into the first couple NFL games, is there confidence to be gained in each successful experience? How do you kind of view those individual moments? Definitely, it's just kind of, like I said, a confidence boost for me. It kind of gets me going knowing that I can sustain NFL and I can make a play that's against the best of the best. So, you know, that's pretty much it.  But like, how do you feel like you evolve from week one to week two in terms of how you played and what you were seeing out on the field? I've just been able to recognize courage a little better. You know, trying to figure out the small details, you know, to make my game better each week, because I know it's something that I can improve on, something in each game. So, just small things like that. I remember when I was talking to some of your college coaches, you didn't move around nearly as much as you do now, early in your college career. Is that making this transition a little trickier for you because there is so much movement and you are playing so many spots versus that high school to college transition? Or are there other things that are maybe making this easier? I think it kind of makes me more flexible, being able to do a lot more things. And it's kind of put the challenge on me mentally to know everything and kind of learn the whole offense. So, that's something that you all kind of embrace. How have you gone about doing that? Like, what's your study happens? Okay, I can't let you know the recipe. But just studying every day during the week I'm all going through plays and courage and going through with my coaches. Are you worried the recipe is going to lead to other types of stuff? Following your path, I won't. No, it's a bunch of great tidings. They have their own routine. And I think the one I'm doing right now, it can be a tweak, but it's still on the way up. I know you say you don't want to really share with that. What exactly is that routine? Give me a snippet of what that routine is. Just go home and watch it. Coach Smith kind of keeps throwing stuff on your plate like even as you were asked to do it a year. How have you handled that? He said that it was a confidence builder that trusts you to keep learning and absorbing and then executing these types of things. What's that like mentally when he keeps kind of giving you stuff as we move forward? It's a challenge that I love to embrace and it's something that each day in practice when he may throw something new in to be able to try and get it right the first time and if not, get it right the second time and don't make multiple mistakes on it so that he can trust me to do multiple things. To that end, what is Arthur Smith's teaching style with you? Is he very hands-on with you, showing you what he wants? Or is it more, I guess, talking to you? I'm curious to see what his teaching style is. I don't know if I'm making any sense. It's kind of half and half. He's hands-on on the field and when we're in the classroom he's showing me other tight ends so he's coached before many great to try and do like them so it's kind of like mixing the two together and trying to put my own flavor on it. I know that you said, I think the last one we spoke to probably before week one that you were very appreciative of him taking the time to teach you and to be there to kind of walk you through this, I think I'm paraphrasing. But to that end, what does that mean to you to kind of come in and be like, you're one and have this coach kind of really being hands-on with you like that? I love it because he was a past tight end coach so he has knowledge of the position and he's a great offense of mine so he just kind of helps it and makes things easier to learn from someone like that. We haven't talked to you really since the aftermath of that first game. You've been back and watched what you saw. What did you take from that first game? Maybe you didn't learn before that you're like, oh wow, okay, I see X or Y. Just small details. Been there with Identify Things Faster. Like what? Coaches. Coaches. Matt talked about, you know, everybody getting on the same page and things looked up, you know, wasn't as choppy as he caught it the first week. Do you sense that that's coming along? Everybody's getting to where y'all function as a unit. Definitely. I think Matt does a great job of holding the team accountable and we're all starting to gel together and I think, like I said, we're starting to go in the right direction. I had a good get some results to, you know, get some points on the scoreboard. It was fun, but like I said, we didn't have the outcome we wanted and small details to help us win next week. Anything else? Awesome. Thank you guys. Thanks, Kyle.