Hi everyone, Joe for jaspyscasebreaks.com with our last break of the night and it should be a good one. 2020 Leaf Lumber Kings Baseball, six box random player break number one. We sold 24 spots and one spot gets you three players from this list below and it's a good checklist too. So big thanks to these folks right here. Let's triple your names up one, two, three. And there's all the players right here. Let's roll it and randomize it for the hard way, two and a two, four, one, two, three and four. After four times, we've got Rodney all the way down to a couple Ryan Redmans, two and a two, four times, hard four for the players, one, two, three and four. Rod Karoo down to Tim Reigns. So as usual, I'm going to show you just the list as is and then I'll alphabetize it by your first names and just a second I just want to show you everything right here. Now that's sorted by column A by your first name, so Anthony, Brian, Chad B and feel free to trade if you'd like. Diane, Ed, Jeff, Joe P, Richard, Richard Miller, Rodney, Ryan Redman, Scott, Stephen Kelly and Tim. And here is, we just had these six boxes like this. That's what I saw in the back. Four premium cards per box and obviously randomizers in that situation there. There you go. Well, maybe Joe P has players for trade. Joe P's looking for some old school guys. He got Thurman Munson. Ricky Henderson's kind of old school. You were thinking real old school. It's only a horrible random if your players don't hit Joe P. What if it's just all these guys, then it's not a horrible random. What if the entire break, all six boxes, four cards, rock, 24 cards are all these guys, then it's an excellent random. Okay. Yeah. Joe P was thinking like 1930s old school. All right. These guys are all Hall of Famers right here though. I mean, Barry Bonds isn't, but no, Chad doesn't like his randomizer. You guys want to, you guys should trade. Should we just break? Anyone else need to see their names before I start? Who's happy with their randomizer? Anyone actually happy? I know. You've made your opinion known on that, Joe P. Thankfully, it's not going to matter, moot point, because we're never going to see these again. I think this is the last set we're able to get. All right. TWC, trade window closed. I'm actually going to alphabetize this by, this is true Rex. I'm assuming it's because you guys like me. All right. There you go. Ryan Redmond's happy with his randomizer. Oh, that's right. They're in these little boxes. What do you got? Fred McGripp. The crime dog. The crime dog goes to the Cromdor. Chad with the crime dog. You don't like the crime dog? What about Manny Ramirez, three out of four, GameUseLumber, ManRam, Manny Ramirez for Stephen Kelly, and all aboard the Big Hit Express. We got a randomizer, 6 out of 25, between Sweetloo Brock, Tim Reint, and Ricky Henderson. Lou Brock, Tim, Tim Reins, Ryan, and Ricky Henderson, Joe P. One happy person, two sad people. Yeah. I think there's going to be a number of randomizers here. Like this one, Kirby Puckett, Tim Reins, Mike Piazza, Roberto Alamo, Ricky Henderson, Tony Gwyn, Jeff Bagwell, and Yvonne Rodriguez. Try no stitch. What is? What? How does he do that? With the magic powder? No. That's sorcery. 4 out of 12, Jason Giambi, GameUseLumber. Jason Giams. Jason Giams. Where is he? Chad B. with Jason Giambi. Cowherdropkin Jr., 17 out of 25. That'll go to Jeff Peace. The Iron Man. We got another randomizer, 6 out of 25, Frank Robinson. Eddie Murray and Cowherdropkin Jr. And we've got legendary Lumber lineup, William McCovey, Joe Morgan, Mike Piazza, Ted Williams, Derek Jeter, Brooks Robinson, Willie Mays, and Paul Wainer. That's a nice lineup. And these should all be GameUse. Yeah, that's pretty awesome. Another randomizer, Ken Griffey Jr., 56 home runs in 1997, 14 out of 25. That kid going to, Ken Griffey Jr. on my list here, Jeff Peace with Jr., Andre Dawson, The Hawk, 8 out of 25. What year is it? Richard with Andre Dawson. We got 1 out of 6 signature sticks, Bo Jackson, Ryan Redman. That guy knows. That guy knows. I better not end up with 12 on the dice roll, Rex. I'll just do it tomorrow. I think everybody wait. Ryan Redman with Bo. And we got Jim Tome, Paul Wainer, Mike Trout, and Derek Jeter. Nice. Winds above replacements. They've got some pretty epic war here. There's a lot going on here. All right. There you go. We've got Big Boppy, David Ortiz, 5 out of 12, home run club, couple pieces of his lumber going to Richard Miller, Jim Rice, 3 out of 12. Jim Rice going to Ed Ehrens, Ed on the board. Signature sticks, Reggie Jackson, 15 out of 30. Nice Reggie Jackson. Mr. October, Richard A with Reggie, the straw that stirs the drink. And then Lumber Awards MVPs, Ichiro, Vlad, Giambi, Pudge, Barry, Neyrod. I don't know why I look under the card, as if like another card was hiding in there. It's just a force of habit. Sammy Sosa, Slammin' Sammy, 16 out of 25, couple pieces of his lumber going to Brian S. We've got Catfish Hunter, 2 out of 2. Is he part of the all fish team? I think he's part of the all fish, all fish baseball team.  Woo-woo. 2 out of 2. Slammin' Sammy Sosa. Signature sticks, stick and auto. Sammy Sosa goes again to, I just had, I just had it on my list here. Where'd you go? There he is. Sam S with Sammy S. And all aboard the Big Head Express. Woo-woo. And we've got rivals. Rivals 6, George Brett, Bo Jackson and Willie Wilson, Albu-Puho's Lou Brock, Johnny Meis. I don't think they were actually, the teams are rivals I guess. Alright, there you go. And the last box. Norma, 14 out of 25. Norma Garcia-Parr going to Jeff Peace. And we've got Willie Mays. Willie Mays Hayes here. How you doing? This is actually the real Willie Mays, Stephen Kelly, not Willie Mays Hayes. You may run like Hayes, but you hit like, what, I've been cut already? 25 out of 25. Kirby Puckett, Rod Karoo, Paul Malder, Batrack 3. And we're going to close out with 3 out of 12 legendary lumber line-ups. Don Mattingly, Joe Morgan, Pudge, Sweet Lou, A-Rod, Cal Ripken, Kirby Puckett, Larry Walker. Alright, let's get to randomizing, ladies and gentlemen. Got a lot of randos to do here. One, two, three, four, five, six, seven, eight, nine. Alright, I'm going to pause the video. I'm going to get all these randomizers set up.  Be right back. Alright. Welcome back. I got all the cards typed in here. We're just going to go from top to bottom. One dice roll for all of the lists. So let's roll it and randomize it five into five, ten times. I didn't want ten at all. Alright, the first one was the legendary lumber lineup featuring those players. Five into five, ten the hard way. And ten. Lou Brock with that one. So that'll be for Tim S. There you go, Tim. The Lou Brock spot gets this legendary lumber line-ups three out of twelve. Next up is the Bat Rack three, Kirby, Rod Karoo, Paul Malder, ten times, nine, good luck, and tenth and final time. Ten times. That goes to Paul Malder. I don't think I called out the Paul Malder spot today. That goes to Tim S. So there you go. Another one for you. Twenty-five out of twenty-five. All game used right here too, which is pretty cool. Bat Rack three for Malder. Then we got that rivals card between the three royals and the three cardinals down there. Ten times. Five, two, three, four, five, six, seven, eight, nine, and ten. The pool spot. That goes to Joe P. Last one, Mojo. Alright, next one is Lumber Awards MVPs. I think these guys, Ichiro Vlad Senior, blah, blah, blah, yes. Five into five, ten times, and ten. That goes to A-Raw, that's Alex Rodriguez. That'll be for Jeff, with the Alex Rodriguez. There you go, Jeff, nice. We got the wins above replacement. The Tome, Paul Wainer, Mike Trout, Derek Jeter, ten times, good luck, tenth and final time. Paul Wainer, pirate legend for Tim, Tim S. I think he might have had a brother, another Wainer, that played on the team too, right? Or even with him at some point? Legendary Lumber lineup. That's the McCovey Joe Morgan Piazza one, blah, blah, blah, yes. Ten times. There's Paul Wainer down there again, one and ten. Paul Wainer on top, another one for Tim. A lot of great players on here, out of fifteen. Batrack three, Frank Robinson, Eddie Murray, yeah, the Orioles, ten times, got a play to the whistle, Tim, eight, nine and ten. After ten times, Frank Robinson, Diane on the board, Frank Robinson. We got enshrinement eight, or enshrined eights. Kirby Puckett, Tim Rains, Piazza, Roberta Elmar, Ricky Henderson, 10 times. Six, seven, eight, nine and tenth and final time. Tim Rains on top. That goes to Ryan Redman with Tim Rains. Switch screens right there, there it is. Where's the number? Oh, that's a four out of four. I was like, that looks like a low number. So Ryan Redman with the Tim Rains, reigning hits, all aboard the Big Hit Express, whoop-whoop. And the last one, the triple, Lou Brock, Tim Rains, Ricky Henderson, ten times, six. And good luck, tenth and final time. After ten times, Tim Rains again, for Ryan Redman. There you go, Ryan. What a night for you. I think that's a few breaks in a row, and you got some nice stuff. He's heating up, he's on fire, NBA Jam Rules states that. And there you go, ladies and gentlemen, Joe for Jaspy's Case Breaks dot com. Thanks for watching. Thanks for breaking with us. We'll see you next time. Bye-bye.


And now, AutoLite and its 60,000 dealers and service stations present... Suspense! AutoLite brings you the Academy Award nominee, Miss Jane Wyman, in a dramatization of the Outstanding Mystery Novel. Catch me, if you can. A suspense play produced and directed by Anton M. Lieder. Friends, have you actually tried them? Those dandies, those dillies, down the dales, and up the hilly's wide-gap AutoLite resistor spark plugs? Well, by Cornelius Do.  My oh my, if you want to see a satisfied smiling guy, switch to AutoLite resistor spark plugs. Only the AutoLite company offers car and truck owners everywhere their sensational advantages. So, head for your nearest AutoLite dealer and replace old narrow-gap spark plugs with wide-gap AutoLite resistor spark plugs. Remember, be right with AutoLite. And now, AutoLite presents Jane Wyman, in the tale well-calculated to keep you in. Suspense! Let me tell you. Let me talk as long as I can. It's my last chance to explain about Phil and all the trouble I had afterwards. Phil got me into this mess. The night he died, I sat near his bed waiting for him to fall asleep, and he said, Margo, was there anything in that milk you gave me tonight? Well, of course, darling. Dr. Landers prescribed it, a sedative. Oh?  Very beautiful. Yes. He was taking so long to fall asleep. It was already after three in the morning. I listened to the wind.  There we were, 10,000 feet above sea level, not a soul for miles. The fall season was over, and all the other guests were gone, and even Joe, who owns the inn, had gone down to Leadfield to get his winter supplies. Oh, I shivered thinking of the dark, ragged, lonesome mountains outside, and Phil opened his eyes again.  Better off the stage than you were on, I expect. But I know you're fed up with our marriage. Have been ever since I became ill. I haven't complained, Phil. No, it wouldn't fit the part. But you feel trapped out here in Colorado, don't you? You'd rather be in New York.   Don't be ridiculous, Phil. Well, anyway, I didn't take them. I hid them with a note saying that you tried to give them to me. Then I called a friend of mine long distance, an old friend. Who? A detective named Rocky Rhodes. Rocky and I both stayed at this inn one summer. And what did you tell this Rocky? Never mind what I told him. Just remember he's due here tonight or in the morning. A detective?  I want a divorce, Margo. You do? Yes, without any strings. Those pills are exhibit A if they're poison. Blackmail. Phil, darling, if you want a divorce, you can have it without threatening me. You'll sign the papers tomorrow? Of course, darling. I only want to make you happy. But now go to sleep, Phil. You need a good rest. Go to sleep. I stroked his forehead and the sedatives finally took effect. His breathing became very heavy and even. I looked at him and thought he was smart not to take those pills. Ah, but not smart enough. He shouldn't have told me about that detective. He thought he was protecting himself and that I wouldn't dare do anything now. Ah, but he was wrong because I had to now. I couldn't afford to wait and lose everything when he divorced me. And besides, I'd find those pills in the letter before the detective got here. There was practically no risk the way I'd planned it this time. Outside it had started to rain. A heavy downpour. And the only other sound in the world was Phil's breathing. I picked up the extra pillow and put it down carefully. Carefully over his face. He didn't move. I pressed the pillow down on the side so that no air could get in. No air at all. And held it there a long time. Once the pillow shook a little, when Phil's head moved. Once there was a gurgling sound. And that was all. When I lifted the pillow and took it back in its place, the job was done. Everything I ever wanted, money and freedom was right in my hands. Phil was dead. Dead of a heart attack, Dr. Landers would say. Wait a minute. Unless someone found those pills with the note from Phil. Phil hadn't died of poison so I was safe. But there would be questions. Questions I didn't want to have asked. I had to find those pills myself. I started to search. First the pillow under Phil's head. Mmm. Then the nightstand beside his bed. And the desk under the window. No. After all, could it be Phil's detective already? Rocky? Rocky Rhodes? I'll have to be very careful. Just a minute. I'm coming. I'm sorry. I think I'm lost. I'm looking for Pine View Lodge. Well, you are lost. This is Fisherman's Net. I know. I saw the sign. It's closed for the winter. Could you put me up? The manager's away. There's only me and my husband. Oh, the luck of the Irish. I meet a beautiful blonde and she's married every time. You wouldn't turn me out in this storm. I'm soaking wet. I'm afraid I... Please, just tonight. In the morning I'll get my bearings. Well, if it's only for one night. Yes, that's all. Thank you. What a vacation. Where are you from? Chicago. Newspaper man. My name is Mike Sheldon. How do you do, Mr. Sheldon? I'm Mrs. Weatherby. How do you do? Where do I bunk? Upstairs? Yes. You can take the trout room. Every room is named for a different kind of fish. It's the second room on the right from the top of the stairs. Thank you. It's great of you to let me stay. Would you like some hot coffee? Fine. It's no trouble. Well, not at all. I was going to make some for myself. The salmon room, not the trout room. I made a mistake. Forgive me, but this is my husband's room and he's not well. I was afraid you'd wake him up.  Because, of course, Mike Sheldon was Rocky Rhodes. Who else could he be? And I had to find those pills before he did and started making trouble. Before I could get back to the search, two more unexpected guests popped in at Fisherman's Net.  But I'm Charlie Miller. I got a reservation here and I'm staying, sister. But the manager is away. He didn't mention any reservations. We must have forgot then. I made it by telephone from KC. That is, I mean, I asked a friend of mine to make it. Was it Phil? Was Charlie Miller Rocky Rhodes? Oh, he couldn't be a detective.  No, no, Mike Sheldon was Rocky Rhodes. There was a girl with Charlie Miller. I thought she was Mrs. Miller. No, I'm Susan Quinn. Mr. Miller and I met on the bus. Yeah, and we were great pals right off. I, I call her Susie Q. You get it? Yes. But the initials on your suitcase are SR, Miss Quinn. Oh, well, I borrowed my sister Sheila's suitcase. Sheila Riley. She's married. Sheila and I always borrow each other things. Was it true? Or was her name Susan Rhodes? Nicknamed Rocky Rhodes. Things are getting more complicated every minute. Two men had arrived and Sheldon seemed the most like a detective. It was too late for me then to go on hunting for the pills. It was morning.  I had to take Phil his breakfast on a tray. Well, Mrs. W, hey, you're an early bird. Here, let me help you. Oh, thank you, Mr. Miller. This is my husband's breakfast. If you'll open the door. Sure thing. There you are. Thank you. Phil. Phil, dear, I brought you... Oh! Something wrong, Mrs. W? My husband. He looks. He looks. Anything I can do? Say. He does look pretty green at that. Mr. Weatherby. Hey, Mr. Wh... Oh, oh, oh. You'd better sit down, Mrs. Weatherby. It looks to me like your husband has passed away. Oh, no! No, no, no. Here, now. Just sit down. All right, now you just cry on Uncle Charlie's shoulder. It'll do you good. You're very kind. Well... Oh, say, Sheldon, got a little trouble here. Trouble? Mrs. Weatherby? Well, her husband's passed away in his sleep, looks like. I brought his breakfast. I thought he was asleep, and... Will you... will somebody phone Phil's doctor? Dr. Landers and Salisbury Gap? Well, of course, but... Excuse me, I'm a... I'm afraid I've been caught in my room. Miss Quinn, have I been asleep? Oh, when you got to your room, you fainted. I still feel rather faint. I brought you some brandy. Could you drink a little? Not now. I couldn't. Where's Mr. Miller and Mr. Sheldon? They're moving your husband's body. No, they mustn't. Well, Dr. Landers told Mike to on the phone. The rain turned to snow during the night, and he won't be able to get here because of the storm. Not until the snowplow gets through. So, he thought it best we put Mr. Weatherby. Not outdoors? No. There's a hillside cellar out back. Oh, yes. What else did Dr. Landers say about Phil? He said, it must have been a heart attack and that you have nothing in the world with which to reproach yourself. He's sure you did everything you could. For suspense, AutoLight is bringing you Miss Jane Wyman in Radio's Outstanding Theatre of Thrill's Suspense. Well, in fact, flocks will come. Oh, they're not for me. They're Valentine's to AutoLight resistor spark plugs. Listen to this one. You've won my heart with your kisses and your hugs and a set of AutoLight resistor spark plugs. How's that? The sparkle love. Why, sure. Everybody loves AutoLight wide-gap resistor spark plugs. Replace your narrow-gap plugs with these beauties to make your car idle smoother. Give better performance with leaner gas mixtures. Actually save gas dollars. Now, here's a Valentine that's right in line. Oh, Valentine, will you be mine and will you make me happy? Put AutoLight resistor spark plugs in my car. Help make it smooth and snappy. Boy, that's hitting on all six. Well, naturally. Here's another Valentine that touches this old heart of mine. Oh, AutoLight resistor spark plugs.   Say, I don't know, that's the best yet. But right now, here's suspense. And now, AutoLight brings back to our Hollywood soundstage Miss Jane Wyman as Margo in Catch Me If You Can. A tale well calculated to keep you in. Suspense.  I'm not the type for floods of tears, so I adopted a warm, gentle sadness, which made the others think me very brave. But all the time, there were two things on my mind, driving me crazy. Who was Rocky Rhodes? And where had Phil hidden the pills? And I couldn't hunt for them. Somebody was always in my room fussing over me. Finally, in the late afternoon, I managed to get away. I just started to look through Phil's clothes when... Oh, there you are. I was looking for you. No snow plow, I'll get through here today. I'll just have to put up with Charlie Miller's jokes another evening. Are his jokes that bad?  Lots of people have the nickname habit. My husband had a friend named Rhodes. He nicknamed Rocky Rhodes. It's a change from Dusty Rhodes at any rate. By the way, where are you from? Boston. Why do you ask? Oh, just idle curiosity. You know what they say about curiosity. Would you excuse me, please? I was going over my husband's things. Yeah, go right ahead. I'll just keep you company. Looking for something? No, I want a pack. So I can leave as soon as possible. I want to get back to New York. I don't blame you. Need any help? No, thank you. As a matter of fact, I... Would you mind? I'd rather be alone. No, no, it's not good for you to be alone. I'll just stay here and keep you company. No, see. Did you say something? No, I... Here's a book of Oscar Wilde's. Why don't I read to you while you work? Let me see. Did your husband own all these shoes? He did. Wealthy man, apparently. How nice for you. Now, how about some poetry? Let's, uh, let's try this one.  Shall I go on, Mrs. Weatherby? But I couldn't let Sheldon unnerve me. I had to keep cool. I went on packing and he went on reading on and on endlessly about blood and poor prisons and hangings. While I tried not to miss anything of Phil's, I had to have those pills. An hour later in my room, I knew I didn't have them. But Rocky Rhodes didn't have them yet either. Otherwise he would have said something. But the pills didn't have to be in Phil's room. Which one was Rhodes? Miller or Sheldon? I would have to find out by elimination. After dinner that night, I went into the main parlor. And Charlie Miller grabbed me and danced me over to the fire. Ah, here you are, Mrs. W. Now you just sit right here and have a high ball, see? And we'll have a nice little cozy chat with a little old Charlie. Oh, you're so formal, Charlie. Call me Margo. Margo?  You thought up Margo to use on the stage. On the stage? How did you know I was an actress? This was the clue I'd been looking for. Oh, a guy with my experience can always tell. You can? Sure. And I know how you actresses operate. You all take different monikers. I'll bet you were great, baby. Oh, I wasn't very good. There was only one way that Miller could have known about my being on the stage. From Phil. You weren't very good. I know different, baby. So what if you only played Tank Towns? I sure wish I'd seen you. You didn't miss much, really. Tank Towns? That was Phil's story, all right? Miller was Rocky Rhodes, and he was just drunk enough to handle... Hey, look, how about you and me going up to my room where we can be alone, huh? Oh, that wouldn't look right, Charlie. We could go out and sit in my car. It's in the garage. Got a heater? The radio. The hotel radio's broken. We can say that's why we're going to listen to the music. Wonderful.  Full of ideas.  Oh, let's get in the back. Oh, it doesn't heat as well in the back. How about a drink? You first. Okay. Right out of the bottle. Oh, boy, this is what I call living. Music, plenty of bourbon, and a beautiful blonde. Never saw such a beautiful blonde. Can I give Charlie a kiss? Oh, wow. Sweetened molasses. Let's get warm enough now, baby. Plenty warm. Could turn off that heater. I'm still a little cold, Charlie. Just stay close to me. In a minute, we'll turn it off.  Gotta get out of here before it gets me to. Going around the car, I was dizzy, getting numb. Then a few feet from the garage door, I keeled over. For a minute or more, I could move. Then I never to get there. I opened the door somehow, pushed it shut, and half fell out and lay in the snow, thanking my lucky stars I've been smart enough not to drink. That's why it got Charlie sooner, because he was drunk. I looked at my watch and decided to wait 15 minutes. What a wonderful thing that carbon monoxide is. No smell, no nothing. It just creeps up on you. In 15 minutes, Charlie Miller, alias Rocky Rhodes, would be good and dead. He was dead all right. When they found us, they carried me into the house and gave me a drink and put me to bed. I went right to sleep knowing Rocky Rhodes was dead. When I woke up, I remembered. I had said Charlie started the car, but somebody might think to check the key for fingerprints and find mine. I put on a fur coat over my nightgown and ran all the way to the garage. I got in the car, reached for the keys, and they weren't there. Why? Why would anybody take my keys? And who would take them? Rocky Rhodes? No. He was dead. But was he? Had I killed the wrong man? I never got through breakfast. That's too bad about Charlie, Michael. Stop worrying about it, wasn't your fault. You look tired. You want to take a walk? Get some fresh air? I don't feel up to it. I was planning to go up to that lookout cabin on the peak. No, no, no. I'm too lazy for that. I mean a short walk. Is it a long climb, Mrs. Weatherby? Long and steep, believe me. I only made it up there once, but my husband used to go there often. I guess a good climb would do me good. I think I'll try it alone. Back before dark. Bye. Be careful, Susan. I didn't even hear her leave. I was thinking about Phil's walk to the lookout cabin. Where was where he'd hidden the pills? I knew it. I knew it in my bones. Why hadn't I thought of it before? I couldn't let anyone find those pills except me. I managed to get away from the men and slipped out by the back door without being seen. A ladder goes up from the trail to the lookout door. The door of the cabin stood open. I climbed the ladder quietly and stepped in and saw Susan on the other side of the room near the door to the balcony. She was holding an envelope attached to a card, and she was reading the card. And suddenly, definitely, I knew... Miss Rocky Rhodes, I presume. I see you found what you're looking for. The pills, my husband hid. You want to know if they're really poisonous? I read a joke. Oh, no, it's no joke. One of them would kill a man. But that's not what killed Phil. I smothered him with a pillow. You didn't know that, did you? You shouldn't be telling me this. Phil told me you were coming, but I was expecting a man. I never dreamed Rocky Rhodes was a woman. You've mistaken me for someone else, really. Oh, come off it. You're already responsible for Charlie Miller's death, coming here under an assumed name. I killed him because I thought he was Rocky Rhodes. Oh, you didn't. Oh, you're ill, Mrs. Weatherby. You're imagining me. Stay where you are!  I wouldn't go out that door if I were you. You'd step right off into blank space. They'll catch you. Who? How? Those pills are the only evidence against me, and I'll destroy them as soon as you're gone. Will you? They'll stay there until I go down. But you've played your last card. I'm not going to waste any more time. Let go, Mrs. Weatherby. Then a sharp pain. Then I don't remember any more until I woke up here in the snow and found you bending over me. Who are you? Where did you come from? I just came up from the village, Mrs. Weatherby. We know the whole story. The whole story? Now, just take it easy, Mrs. Weatherby. I know. You must be a doctor. But doctor, they'll never hang me. No, Mrs. Weatherby. They'll never hang you. You're dying now. No.  After all I've had to do to live. Where did Mike go? I'm right here, Mrs. Weatherby. Like a vulture waiting for me to die. You're Rocky Rhodes. Aren't you, Mike? No, Mrs. Weatherby. You're lying. It has to be you. I killed Charlie, and he wasn't Rocky Rhodes. And Susan wasn't. You have to be. I have to know.  Rocky Rhodes mustn't find those poison pills.  So you would have been safe even if the pills were found. But, but, Rocky Rhodes... None of those people was Rocky Rhodes. Your own guilt made you suspicious of everything they did. But there must be a Rocky Rhodes. Phil said there was. There has to be a Rocky Rhodes. Is she dead, Doctor? I'm afraid she is. Nara was being sorry for her husband being dead. Just think. She killed her husband and one of us, and none of us would have known it if she hadn't told Susan all about it in the cabin. It was good of you to get here so fast, Doctor. I'd have gotten here sooner if it hadn't been for the blizzard. And maybe none of this would have happened. By the way, I'm not a doctor, Mr. Sheldon. My name is Rhodes. Jane Wyman for a splendid performance. Miss Wyman, would you do me a favor? I'd be glad to, Mr. Wilcox. Would you autograph my script? Why, certainly. What shall I write? Well, why not just write to A-L-R-S-P Wilcox from Jane Wyman? A-L-R-S-P? What does that stand for? Autolight resistor spark plugs. Oh, of course. I should have known. A plug for plugs. Why, sure. Well, A-L-R-S-P it is. There. How's that? Thank you. And did you know, Miss Wyman, that besides Autolight resistor spark plugs, Autolight makes over 400 other products for cars, trucks, airplanes, and boats in 28 Autolight plants from coast to coast. Autolight makes complete electrical systems for many makes of America's finest cars, batteries, generators, starting motors, coils, distributors. All ignition engineered to meet the highest standards of leading automotive engineers. So, folks, tomorrow treat your car to an expert motor tune-up. Visit your local Autolight service station listed in your classified telephone directory or the dealer who sells your make of car. And be sure to specify original factory parts. You're right with Autolight. In introducing again our star, Miss Jane Wyman, I wish also to extend to her, on behalf of our sponsor and all of us here on suspense, our sincere congratulations on her nomination for the Academy Award for her splendid performance in the current Warner Brothers picture, Johnny Belinda. And to wish her the best of luck in balloting. Thank you very much. And may I congratulate suspense for being one of the top radio programs on the air. Truly radio's outstanding theater of thrills. Thank you, Miss Wyman. And I'll be listening next week when James Mason and his lovely wife Pamela Kellino appear in the Agatha Christie story where there's a will, another gripping study in... Suspense! Tonight, Suspense Play was adapted by Sylvia Richards from the current best-selling mystery by Pat McGeer. Music was composed by Lucian Moraweck and conducted by Lud Bluskin. The entire production was under the direction of Anton M. Leeder. Autolight resistor spark plugs have been adopted as original factory equipment by six leading makes of cars and trucks. So switch to Autolight. Good night. This is CBS, the Columbia Broadcasting System.


All right, I think we're about ready to start it. So welcome everyone, I'm Anders, and I work for Styra, the founders of the Open Policy Agent Project, or OPPA. And I'm Will Beeson, I work on Get Keeper Full Time for Google. All right, so the agenda for today is an introduction to the OPPA project. I don't know how many of you are using OPPA already? A lot of hands, but some hands missing as well, so you might appreciate that. Followed by some project updates for those of you who are using OPPA. And then Will Will guide you through Get Keeper and some project updates there. So starting with OPPA, like what is the challenge or what's the problem we're trying to solve with OPPA? It's basically this, it's to manage policy in increasingly distributed, complex, and heterogeneous systems. So a modern application stack and consists of a wide array of programming languages and platforms, frameworks and so on. And obviously an application needs to be deployed somewhere. And on top of that, you have infrastructure and you got data. So the goal of the OPPA project is really to try and unify policy across this whole cloud native stack. So that's basically what OPPA does. It's a policy engine to unify policy across the whole stack. So the first question to answer might then be what is a policy? So a policy, it's basically a set of rules, governing perhaps what you can and can't do. So rules can of course be anything like organizational rules or policy. It'd be things like app authorization, determining who is allowed to do something or are not based on some conditions. Kubernetes Admission Control of course is a popular use case. We see policies from infrastructure, build and deployment, pipelines, data filtering, much more. So a benefit we get from kind of breaking out our policies from PDF files or Word documents and kind of bring it out into the domain of code is that we may treat policy as any other code. So all the benefits are provided by code. So things like peer review, testing, analysis, linters and so on. So we can start to reason about policy as any other code. Kind of making that accessible to developers. And the key concept of policy as code is this idea of decoupling. So sort of that like how you decouple storage from an application by moving that into the database. We believe that policy deserves the same kind of decoupling. And aside from the benefits already mentioned that you can reason about policy in its own, it's also that the lifecycle of policy can be treated independently from the lifecycle of your application. So you can make policy changes to your application without having to redeploy or having to recompile. So that's policy. And OPPA is an open source general purpose policy engine. And the policy engine works that you can ask it based on the policy you have loaded into OPPA, you ask it a question and you get back a response or a decision. As of last year, I graduated CNCF project. So OPPA offers a unified tool set and a framework for working with policy across the whole stack. So across all these, this wide set of technologies and frameworks. And OPPA builds on this idea that you decouple policy from your application or your business logic. We separate policy decisions from enforcement, meaning OPPA makes decisions. It doesn't enforce those decisions. So if OPPA says no, this person should not be allowed to view this journal or this endpoint. It's still up to the application to enforce that decision. So that's an important distinction. Policies written in a declarative language called RAYGO. Sure, many of you are familiar with that. We'll take a look at that in a bit. But first, some numbers from the community. So OPPA now has over 250 contributors, 70 listed integrations in the ecosystem page. So there's a big ecosystem of tools, integrations, frameworks, all using OPPA. 800 projects listed on GitHub as using OPPA. 6,600 GitHub stars, 5,800 Slack users and over 130 million downloads. So the ecosystem is not just OPPA, but there's a lot of tooling built around OPPA even within the OPPA project. One such tool is Conf Test to allow you to write policy and run that policy on files, local files on your system. So it's commonly used for CI CD pipelines. There's obviously also the OPPA gatekeeper, which we'll be talking about later. And there are some editor integrations like VS Code and IntelliJ. So kind of a good quote here, summarize what OPPA is really about. So the OPPA policy agent project is super dope. I finally have a framework that helps me translate written security policies into executable code for every layer of the stack. That's basically what OPPA is. So how does it work then? There's, I think there's basically two concepts or two key things that makes OPPA work with all these technologies. And it's the policy decision model and it's Rego. So the policy decision model, it's a very simple one. It basically works like this. You have a service, a service that serves requests. So there's requests coming into the service and rather than making a policy decision itself, it forwards that request over to OPPA. And that query is just a REST call and the input is just any JSON and OPPA based on the policy and data it has available, makes a decision and returns that to the service. And that response is also just JSON. So pretty much anything that can talk HTTP and understands JSON can integrate with OPPA. And when we say service, it's not necessarily like a microservice. It could be anything. It could be a Kafka broker, a Linux PAM audio, an API gateway or whatnot. And of course, like all most of these technologies have some way of communicating over HTTP. So Rego then, that's the other kind of pillar of OPPA. It's a declarative high level policy language. So not really a general purpose language, but it's surprisingly versatile. It allows you to write policy across this whole cloud native stack. And a policy, just like a real world policy, it's just a number of rules. And these rules, when you query them, they return a decision. And that decision is commonly true or false. Are you allowed or not? But it's certainly not limited to that. But a decision can be anything that would be valid JSON. So strings, lists, objects, and so on. Pretty common thing to do is to return a reason, for example, if you deny someone, you might wanna tell them why so that they can do something about it. OPPA ships with a unit test framework, which is really useful as well. You can test your policies in isolation, kind of build trust in those before you deploy them out in your applications. It's a well-documented project.  So, crash course in Rego here, teaching yourself Rego in one minute. So on the top, we have a policy. We have one rule here. And you can think of a rule, a bit like an inverted if-then statement. But we'd rather say then if. So we're gonna flip that around. And we say allow is equal to true if all the conditions here in the body are equal to true. So in this case, we'd say allow will evaluate to true if the input request method is get and the path, the first path component is users. And the next path component is equal to the username provided in the query or in the input. If you were to write this in JavaScript or some imperative language, you'd see that it gets quite clunky to kind of repeat assertions in if statements. And it doesn't compose very well. So that was an introduction to OPA and an introduction to Rego. So now for those of you who are familiar with OPA, some project updates. So there's a couple of new keywords. If you haven't tried them out already, I can highly encourage you to do so. There's a new keyword called in, which does pretty much what it sounds like it would do. It checks for membership. So you can say is this value in this collection, similar to what you could find in Python, for example. So the way you do this previously would be to iterate over a collection and then check if there any value equal to this. Now you can rather say something like is admin in the groups for this user or is the input request not in head or the get set. There's a sum in keywords, which is a new way to do iteration, which I think might feel more familiar to users coming from other languages. And finally, there's the every keyword, which is a new way of expressing for all. Just kind of very useful if you wanna express conditions like you wanna require all containers in this deployment must come from the internal company registry and things like that. This was previously a bit clunky to do. A common way of doing it would be to iterate over all the containers, check for that specific value, and then compare that to the total count of the containers. And now you can just say every container in containers, starts with my internal company registry and that's either gonna be true or not. Some notable features recently released. First one is delta bundles, which allows bundles of data to, or it allows OPA to fetch only the deltas. So if you have a large set of data and you make an update to that, OPA can fetch only what was actually changed and not the whole bundle, which was previously the case. There's a new strict mode, which allows you to catch common errors, unused variables, unused imports, things like that. So it's not all the way to a linter yet, but it's a good step on the way. So check that out if you're working with OPA. Other metadata annotations, she allows you to, and asking to see on the picture there, she allows you to annotate your rules, your packages and so on. And these annotations can then be fetched by other tools. So you can generate documentation or you can even use the annotations from inside of your rules for things like severity levels and so on. There's no new OCI bundles registry support, meaning you can package your policy and data, push that to a registry and have OPA fetch that. This storage is another nice feature if you have a lot of policy or data, and it's more than what can normally fit in memory. Now you can also choose to have that stored on the disk. Finally, there's function marking added to the OPA test framework. So, okay, so some planned improvements or some things on the roadmap, which I think we'll see in the Zoom. So there's work in progress on some built-in functions for working with GraphQL. There's been a lot of demand for that. Named built-in function arguments. So all the built-in functions will now have names by default which can be used by editors, things like that, so we can provide better documentation in line so you don't need to hop back and forth between your editor and the OPA docs. dependency management, that's been very frequently requested, that's coming. We'll see, it remains to be seen in what form and so on, but so you can basically say that this policy depends on this other policy somewhere else on the net. And test result diffs, so you can say this test, not just that this test failed, but what was the diff or why did it fail? There is an optimization flag already available for OPA build, plan to extend that to other commands as well. And finally, we wanna include non-deterministic values. There's a few functions in Rego, like the HTTP send one, which you obviously, you can't expect to send the same call two months later and expect the same result because whatever is on the other end might have changed. So we kinda wanna save the result of making those calls along with the decisions, so two months later you can go back to your policy and you can replay that decision exactly as it was at the time. Finally, some updates from the ecosystem, again, OPA is much more than just OPA, the core of product. There's a new hook OPA-based for AWS CloudFormation. It allows you to do much of the same things that you've been able to do with OPA for Terraform in the past, you can now do for AWS CloudFormation as well. There's a new setup OPA GitHub Actions, so you can easily pull in OPA in your GitHub Actions workflow and have OPA run tests or whatnot. Sanschel, it's an interesting project, it's a non-interactive daemon for host management. So you can basically, you can have policies decide what should be allowed on a host or not. So maybe you wanna read a file or write something to, so it's pretty much like an SSH client, but policy powered. Reposauer, another cool project, allows you to specify policy on your GitHub organization. You might say like, things like any pull request must have at least two reviewers, and then you can scan your whole organization for any violations over those policies. And lastly, there's the OPA Cuddle, which was, I think that was published like yesterday or something, so very new. It allows you to turn any regal policy into a CLI command, so you can pipe the output of things like LS into that and have policy determine what to return. So you might wanna use that for data filtering or whatnot. So that's some updates from OPA. I'm handing over to Will for the Gatekeeper part. All right, so I'm gonna talk about two layers that are built on top of OPA, which there's what we call frameworks, which is just a repository that several projects actually depend on, and then Gatekeeper, which is built on top of frameworks. So the idea of frameworks is representing policies as KRM objects, so you have types that, so an individual policy that is regal code, that gets instantiated as a CRD in Kubernetes, and then you can apply constraints, which are also KRM objects. So you have these objects in your cluster, and then whatever applications you have can evaluate those in real time, and you can add and remove constraints, you can add and remove templates to can configure policies on the fly. Gatekeeper is written specifically as a way of both an admission controller which determines whether or not objects pass all of the OPA policies that are configured on the cluster, and then additionally you can configure it as an audit hook, which periodically monitors all resources on the cluster so that you can be sure that everything is compliant with the policies that you have. And then I have, the main things I'm going to cover are with it for frameworks, we have a ton of performance improvements the past year, and then we have interface changes, so any projects that are dependent on frameworks, there's gonna be some pain points around that the interface has changed and that kind of sucks, but we think the performance improvements are worth it. As far as gatekeeper, we have implemented the external data feature, we have the new Gator CLI, which is built to be similar to Conf test, but specifically for gatekeeper constraint templates and constraints, and then there's a few other changes I'm gonna go over. So first off, changes to frameworks. So what you see here is a, it's a memory graph of a launching gatekeeper, obviously built on top of frameworks with 100 constraint templates and 1000 constraints, and this is memory usage over time. The darker blue is from several months ago, and then the very flat lighter blue line is just from a couple weeks ago. So as you can see, memory usage is way down, it's much more stable. If you note all of the spikes in a few weeks ago, that's because the go garbage collectors being called a lot more, whereas now memory usage is much more stable. So the big thing here was when, or one of the big things was what it used to be was that when if you booted up a cluster and you applied 100 constraint templates, we had a quadratic load time problem. The difficulty was that because we put everything in a single OPA compiler runtime environment, we had to recompile that every time we added or removed one, and since a compilation environment is one unit that you can't add or remove things from, recreating this every time a template was added or removed was just awful to have it start up. So this means that you get a 3x to 20x speedup and template compilation, and the time that you spend waiting for a template to compile is just the time for that template, not for all templates that you've had before. There's also a 2x speedup and adding constraints for these templates, and then because we rewrote how queries to the OPA compilation, the compiled Rego are run, so they're actually two to three times faster, and we actually achieved 100x speedup and running the match criteria. So this is where in gatekeeper constraints, which specify constants for Rego policies, you can specify match criteria which say these policies only apply to these specific versions, these specific kinds, or objects with these specific labels or annotations. They do note that these numbers are very use case dependent, so if you're able to move your match criteria to the constraint itself rather than the Rego, then you'll get a lot more of a speedup than if you have more specialized use cases and aren't able to do that. And then additionally for audit itself, we actually achieved a 20x reduction in memory usage. This is using a similar set of setup apps, as for the previous slide, and so again, 100 templates, 1,000 constraints, and then a bunch of namespaces and fig maps, so it should be much easier to enable auditing for your resources on your clusters. Then behavioral changes, so finally updated OPA, we're now on version 39, I believe the pull request for version 40 is out, so we get all of the future keywords and we will soon have the other features that Anders talked about. Client driver, those interfaces were reworked. Definitely go visit their repository if you have a project which depends on that because there have been significant changes. We hope that the changes are more online with how you would reason about building these kinds of systems. And then gatekeeper changes. So first off, one of the new features we have is external data. This lets you communicate with external systems. So it's more secure than HTTP.Send, it's also much more constrained.  External data treats the whatever external data provider that you're communicating with as a key value store. So it's able to batch requests, you get improved cache hits. But when writing these data providers, you're able to configure a lot of things yourself. So you can do things like, how long do I keep caches? You can tune it to your specific use case. Example use cases for the external data feature are things like LDAP. You can actually integrate with LDAP now. You can limit things like who can change what fields on specific Kubernetes resources. You can even auto label resources with team metadata using the mutation feature. You can also do things like you could connect with a CVE vulnerability system to check to see if images have specific vulnerabilities that you absolutely don't wanna have on your cluster. For mutation, external data is a bit constrained. Evaluation is synchronous and because you're very latency constrained when you're modifying resources because you don't wanna do things like kill a leader elections, so you can only use string value data for this. Then there's the Gator CLI, which I mentioned before. We've built this to be similar. It's a fuel very similar to Conf test. So you have Gator verify, which is like Conf test verify and this is unit tests for templates and constraints. So you'll say, I have this template. It specifies these variables like you have a template that might say I require some annotation to be set to some value and then you have the constraint that says what annotations and values you want. And then the tests will say, okay, these objects should be let through and these objects should be rejected and not let through. Gator test, however, is similar to Conf test test. So this is where if you have an entire repository of YAML and you just wanna be sure that everything that you're going to apply to your cluster does actually conform to all of the policies that you have, Gator test just lets you see all of your current violations all at once. This is the sample output from running Gator verify. So if you're familiar with Go test, the output is designed to be very similar to this. So you have individual test suites and then you can see failure message it is. So in this case, we got a violation where we didn't expect one in unit tests and the other, we got two violations on a resource when we expected three. So in this case, obviously we'd have to go back and change either the constraints or the templates themselves. You can also validate that specific messages are sent by the Rego policies. So if you wanna make sure that the message that you wanna show up to whatever developer tried to apply a resource is actually sent to the developer that they see that because you don't want, it's awful. It's an awful experience if you just get, oh, this resource isn't allowed to be applied but you have no message. Other improvements are we have Hermitius metrics for conflicting mutators. So if you have a mutation, which is one of the gatekeeper features that lets you modify resources as they're incoming to the cluster. Sometimes these can be configured in ways where we can't necessarily catch this problem as you're applying the mutation objects. So you now have a Hermitius metric for detecting when this happens. It's kind of infeasible at an organizational level when you have dozens of people all adding these mutators that they're never going to conflict. And then also for the Helm charts, you can now configure to remove the webhooks before uninstalling gatekeeper. So don't take out your cluster while uninstalling. Before what happened was if you just did kubectl delete everything, if you delete the pod first and you have gatekeeper configured in a fail closed mode, you can no longer modify anything on your cluster because Kubernetes tries to call the webhook because you tried to apply or delete something. The webhook wasn't available and so you just break your cluster. So please do remember to configure webhooks to be removed first before uninstalling gatekeeper with Helm. Yep, and thank you. Is there any questions or no questions? Okay, I'll be in the styroboof later. If anyone has, oh, there's a question over there. There's another question over there. Time faster, how do you do that? Oh, if you wanna talk to me after, I am happy to go and do great detail on how we achieved the speedups. It's just extremely technical and my initial report on this was literally 20 pages long but I would love to talk about it. There's another. Hi, thank you so much for a great presentation. So I was wondering about the cadence for gatekeeper and the release cadence compared to the normal OPA project. How often are you supposed to upgrade the OPA binaries or OPA library? We've been trying to, so the question was what's the release cadence for gatekeeper? How often should you expect to upgrade the binaries? We're on 3.7 or 8 now, so the minor version upgrades approximately every three months and then the patch version, usually it's every one month. Really it's best to not fall behind, say, six months but I don't recall off the top of my head what our support window is though. I wonder how much usage do you see in Istio Service Mesh? Oh, I'm sorry, I didn't catch that. Yes, I was wondering how much usage of OPA do you see in Istio Service Mesh? Istio. Istio? Or what about, what about you? Yeah, do you see that there is a lot of users using the OPA plugin in Istio? I'm sorry, I do not know. Oh, that might be more for me or I'm talking about the Envoy plugin or Envoy Istio plugin for? About the Envoy plugin I didn't know, I know about the Istio plugin. Yeah, so there's an, yeah, it was called the Istio plugin previously, I think it was renamed like a year ago or so, so it's not called the Envoy plugin but it works for both Envoy and Istio. And yeah, for sure, I think it's one of the more, it's one of the more common ways to call out OPA for any kind of, any cluster where you have that Service Mesh, so definitely a very popular project used by many large corporations and organizations. All right, there was another question and one down there as well later. A short question, Candice. How many, how much load can OPA handle? Like, what are the big use cases you've seen? Like, how many requests a second, can we expect OPA to handle? Oh, yeah, I think questions like that are, they are always very difficult to answer, like, because it all depends on like, how much quality, like, what does your policy look like? What does your policy do? And not to mention like resource allocations and how much do you have, but in general, I think like OPA, your application is gonna go down before OPA. Yeah, if you committed me after the talk, I do have specific numbers for gate keep or for frameworks actually, so I might be able to get you specific numbers on that. So I have several different policies that I can figure to varying complexities. I hear some other question down there. Thank you for the presentation. I have a question regarding the Rigo language. What was the need for this language? Because I saw that you are implementing a lot of features that already exist in other languages. So for comparison, for lists, for dependency management, so. So the question was, what was the kind of reasoning behind Rigo or so? And why not, for example, Python, JavaScript, or Lua? Yeah, that's a good question. And it's a pretty common question. People are like, can I not just use JavaScript or whatever? And I think like, there are certain characteristics to Rigo that we want for policy. Like, first of all, what you want to do with a policy is basically adding a safety net. It's a guardrail around whether it's for authorization, whether it's for admission control or whatnot. So a very important characteristic is of course that policy does not turn around on you and fails or that it can't terminate, for example. So if you would have a language where you can do things like end up in a never-ending loop and you can't guarantee that this will never terminate. So things like that is basically like kind of the premise of Rigo where you have certain guarantees on things like process consumption, that the policy evaluation terminates and so on. And as for the design, like Rigo this has its root in the kind of logic programming and data log. So yeah, it does look fairly different if you come from like an imperative language, which I think many of us do, but spending some time to learn kind of the principles is I find very enlightening. It kind of makes you recent about any code in a different way. So there's definitely a learning curve. Once you get past it, it's like, it's a great place to be. Oh, there's, oh, there's sir. Yeah, so my question's regarding, so if you look at OPA it seems like it's meant for server back, you know, like backend type of applications. But what about like user experience? You know, do you see anyone, like can OPA be leveraged to enforce like some of these policies at the front end user experience layer? Yeah, that's a great question. I think like, yeah, to some degree for sure. Pretty common thing to do is like to have, you do the enforcement in the backend, but you kind of propagate that in some nice way up to the front end. There is also a few projects that have, that are working on like not even, perhaps not even sending the request to the backend in the first place, but rather kind of evaluate the policy in the front end and show the result without even propagating. You'd obviously want that control still in the backend, but for performance reasons, or maybe you want to show a view that only lists items that you have access to and so on. There's a couple of ways you can do that. You can either, you can compile, you write your policies to WebAssembly, and run those in the browser. There's, and there's a few other projects to try and make that possible and easier, but yeah, it's definitely an interesting topic. I think there's a lot of potential there. So, I mean, would you say it's advisable or could you, would it make sense to say like, you know, you deploy OPPA and all that, but then you tell like some other stakeholders to write policies. Do you think they are easy enough to learn like, or what's your experience on there and all of that takes any sense? So, is there a question? Around learning rego, or yeah. So again, I think there's definitely a learning curve. And yeah, so, but learning the basics is not, I don't find that very difficult. And then there's a lot of details, of course. But if you wanna just do something simple, like the allow rule you showed before, I think that's like after a couple of hours, you feel pretty confident with like the basics of the language, but then you definitely need more time for to learn like all the details. But of course, I think like having, if you're a development team or whatnot, I don't think perhaps not everyone needs to know like, not everyone needs to be an rego expert, but in a mastering the basics, that's a good start. And I think that does not require that much of an investment. Yeah, there was a, there's two more. Are we good on time or yeah? There was one in here. Great talk, many thanks. One question, actually two. Can OPA coexist with PSP? And how is the migration in that direction? This is the first question, the second one. Do you have some resources or GitHub source with best practices or how to use the language, right? Oh yeah, can I take this one? For sure. So OPA and PSP can absolutely coexist as part of Gatekeeper, we wrote something called the Gatekeeper Library, which is a companion repository and what the Gatekeeper Library repository has is dozens and dozens, I think it's about 70 policies in rego implemented as constraint templates. So you actually see the full rego code and I think around 20 or so of those are specifically for PSP. So PSP and OPA can absolutely exist and I know several people that are doing exactly that. Yeah, and as for the second question there, we're just like a style guide or there's not been one but I've actually been working on that for the last week and I'm hoping to make that public this week. So yeah, last question I think. This one's more of an adoption question. Like how do you typically like you have in large enterprise, you have maybe a common set of policies that everyone needs to use and then application teams may have specific policies. So what do you see in the enterprise from an adoption perspective? Like how do you know what policies out there, enforcement that's happening, alerts, anything you can share on that space? Yeah, sure. So the question is like how do you manage OPA at scale basically and how do you prohibition policies to like thousands of decision points? I think like OPA allows for via management APIs, you have like the bundle API, you have the decision log API and there are various control planes that you can use to offer policy, to test policy and to distribute policies in larger environments. And of course, like Styra offers one such control plane and there are other vendors as well. Thanks again.


I think just having looked at the presentation yesterday of what will happen here, it's amazing. I'm looking forward to it, it's too bad it's five, six years away from now. But I think they got the right approach, especially trying to get experts from overseas together who have done this kind of work before, considering how bad cyber security is and how bad it's going to get in a few years and the constant threat, evolving threat and everything, we need to be prepared and it's great that we're all trying to collaborate here to make sure that we share the right information with everybody to get this off the ground and make it happen. It seems like in cyber security we have it in the private sector and I know it's in the government as well, we are all trying to work in our silos and we should be sharing the information, it makes life so much easier. Unfortunately there's this mistrust or the lack of, or not being able for regulatory requirements sharing as much information as we would like to, but overall cyber security is global. It doesn't just meet in one sector, it doesn't just affect the government or a civilian sector, it's, we need to collaborate. It's very critical and I'm glad to see that this is happening here. Because on a daily operational basis it would be good to see more improvement there to really share the information, what's going on in the cyber world in the infrastructure today, this minute, so that we can share that with, let's say the US or with Europe or the banking sector or the retail sector so that they're prepared instead of having to react after an event or after a fact.


Today, we will discuss some concentration inequalities. These concentration inequalities, it is a very vast topic, we will only discuss some very elementary inequalities. Basically, what these concentration inequalities say is that, they give you certain probability bounds on random variables taking atypical values. So, that is roughly the plain English level that is what it is. So, if you are talking about, let us say random variable with a certain mean and a certain variance. For example, one of the inequalities we will do will say that, the probability of a random variable taking values outside a certain range of the mean is very small. So, essentially it is called concentration, because the probability concentrates around a certain range. So, on these kind of inequalities are called concentration inequalities, it is a very vast topic. So, we will only do some very elementary ones. So, the first, so the most important one is called Markov's inequality. This says that, if x is a non-negative random variable then. So, here you are looking at a non-negative random variable and some alpha greater than 0 and this is Markov's inequality. This says that, the probability that x takes values larger than alpha is at most expectation of x over alpha. So, this should be greater than alpha x greater than alpha is less than or equal to expectation of x over alpha. So, this has, so this is meaningful. So, this is always true for any non-negative random variable, but this is meaningful. Obviously, only when expectation of x is less than alpha, it for only for values alpha bigger than expectation of x is even meaningful. If not, you will get something here that is bigger than 1 and then, you are just saying that the probability is less than 1. That is completely trivial, but if you are. So, let me say useful for alpha bigger than expectation of x. So, it just says that this is a very weak kind of an inequality, but it is a very universal inequality for non-negative random variables. So, if you are considering a value that is bigger than the expectation. So, it says that the probability of the random variable becoming larger than that alpha is less than or equal to expectation of x over alpha. It goes down as 1 over alpha, at least as fast as 1 over alpha. So, for example, the probability of random non-negative random variable taking value greater than twice its expectation is at most half, that is the kind of result this is. So, the proof is very elementary. So, you have expectation of x is equal to, you can write it like this. You can write it as expectation of x indicator x less than or equal to alpha plus expectation of x times the indicator of x greater than alpha. That is because I have skipped a step. So, this indicator and that indicator have to add to 1 and I am using linearity of expectations. So, this indicator. So, this indicator fires only when x is less than or equal to alpha. So, when this indicator fires this x is less than or equal to alpha. So, this means that this is less than or equal to alpha plus that right. So, expectation of this indicator actually you know what that is not what I want to do. This is not true right. So, what I want to do is to say that actually I want to borrow it this way is not. So, I have to say that this is greater than or equal to. So, this guy is actually non-negative is not it? That bit is non-negative because x is a non-negative random variable. So, this is non-negative. So, I want to go this way after all I want expectation greater than or equal to something right. So, I want inequality to go this way. So, I get this is greater than or equal to expectation of x times indicator x bigger than alpha. That is greater than or equal to or greater than or. So, this is greater than or equal to actually alpha times the expectation of the indicator of x bigger than alpha right. You agree with that because I know that this indicator will fire only if x is bigger than alpha. So, if I put alpha here right. So, I will get something at smaller right and I can bring that out and this is nothing but alpha times the probability of the expectation of indicator is actually fairly elementary right. So, I messed up this inequality in the beginning. So, this is just three steps. So, this is Markov inequality. So, this Markov inequality is often very loose. So, this only says that the probability of x becoming very large some very large value alpha goes down like 1 over alpha right. So, by the way this is for non-negative random variable with expectation of x finite often. So, this 1 over alpha decay of this probability is often a very conservative estimate. Often this probability goes down much quicker, but Markov inequality is very weak. It only gives you that. So, if you want to look at the probability of x becoming larger than 10 times it is mean you only say it is like roughly like 1 over 10 right. It is a very often it decays much quicker for a commonly encountered distributions. So, although this is the most simplest inequality concentration inequality you can strengthen these kind of probabilities if you assume further if you make further assumptions. For example, when you assume a finite variance you get a quicker decay that goes like the squared that is the next thing I will do. The stable shape is inequality. The stable shape is it is spelt and spelt in very different ways. I believe it is pronounced to be sharp and it is pronounced with the t z and so on right. Say several spellings of this I do not know what the correct spelling is. I believe it is pronounced like stable shape if x is random variable with mean mu and variance sigma squared. So, this is all finite then probability of. So, this is stable shape inequality. So, now you are taking a random variable with mean mu this random variable need not be non negative. It is any random variable, but it must have finite variance. Finite variance implies finite mean. So, mu and sigma are both finite. This is mean this is variance. Now, we are saying that the stable shape inequality says that the probability. So, you are looking at the absolute value of the difference between x and the mean right. So, what is the probability that the random variable exceeds the mean in absolute value by k times the standard deviation right. And we are saying that goes down like 1 by k square 1 upon k square. So, it will just give you a picture. Generally you are considering some random variable with this is let us say your let us for the sake of argument say this is this has some density does not have to, but let us say your mean is somewhere here. And let us say your standard deviation is about that much. So, we are saying that the. So, we are saying that the probability of the random variable let us say this is k sigma this is mu this is mu plus k sigma all right. And this is mu minus k sigma right. So, let me say that this is k sigma. So, you are saying that the difference the probability of random variable taking values outside k times the standard deviation from the mean goes down like 1 over k square. So, again I see another way of saying it is probability of this another way of saying this or you can say probability of x minus mu greater than c is less or equal to sigma squared over c squared is not it. This is for c greater than 0 this is another way of saying it. So, you the probability of x minus mu exceeding c is at most sigma squared over c squared right you put c equal to k sigma you will get this back. So, again so recall that the sigma represents how widely spread the random variable is right. So, this bound will be even this bound will be fairly small if your sigma is small right. But any case the important thing is it goes down like this squared of what you consider the deviation c or the k right. So, proof is very simple what you do is you apply Markov inequality to the non negative random variable absolute value of x minus mu squared. So, in that case what will you have we will have probability of. So, the x minus mu squared is obviously a non negative random variable you are looking at the probability that it requires it exceeds k square sigma squared which is obviously less than or equal to expectation of x minus mu squared over k square sigma squared right. But that is nothing but sigma squared what is on the top sigma squared right. So, that is equal to 1 over k square. So, Markov inequality tells you it only assumes finite mean it tells you a 1 over alpha kind of a d k. Chebyshev's inequality assumes a finite variance it gives you 1 over k squared kind of a d k right. So, little bit tighter in that sense, but you need finite variance actually even Chebyshev's inequality often turns out to be quite loose. For example, if you have a random variable which is let us say exponentially distributed you know that probability of x greater than let us say probability of x greater than alpha goes down like e power minus mu alpha right. So, that is exponentially fast right. So, even this 1 over k square kind of estimate is not a very good estimate right. Because here you are using only variance information that you are using only mean here you are using mean and variance. So, if you have. So, you can often tighten these kind of inequalities if you make further assumptions. So, if you assume that the third moment is finite you can get some k cubed or if you assume fourth moment is finite you can get 1 over k to the 4 and so on right that is not a big deal. So, finally if you assume. So, I mean taking this to even further if you assume that the moment generating function of the random variable x is finite in some neighborhood of the origin. Then you can get some exponentially decaying concentration bounds. Because after all if you are see the moment generating function is expectation of e power s x right. And if you are saying that this is finite for some in some neighborhood of the origin. Then you are saying that some exponential moment exists right which means you can get exponentially decaying concentration bounds for such random variables right.  So, I will just briefly indicate what it is. But I will not spend too much time on it because we have to move on to limit theorems and so on. So, shernoff bound is very useful because it gives you a exponential estimates.  Then you can say that let us say you are looking for then let us say you are looking for the probability of x becoming bigger than some alpha same kind of a similar to this. But so this you can write as probability of e power s x bigger than e power s alpha is not it for s bigger than 0. If my s is bigger than 0 I certainly have. So, this will be a monotonically increasing function right. So, e power s x.  So, yeah that is right fine agreed. Now, for s so s is bigger than 0 and e power s x is a non negative random variable right. So, I can apply Markov inequality. So, you see you keep going back to Markov inequality. It is a very weak inequality, but it kind of forms the foundation of so many other inequalities. So, you have so by Markov inequality we have that probability of x bigger than alpha is less than or equal to m x of s right this is m x of s. So, the expectation of e power s x divided by e power this guy right. So, this you will agree right this is valid for this is valid for all s such that s is bigger than 0 and of course, this guy must be finite right. So, you assume that it is finite for some s belong to minus epsilon epsilon, but this may not be a domain of convergence right this. So, this is valid for s bigger than 0 and s belongs to domain of convergence d x right that is what we do not denoted right the domain of convergence. So, well and good. So, this is true for all s bigger than 0 and all s in the domain of convergence. So, this is already an exponential bound if you notice that s is bigger than 0. So, this is something that d k is exponentially in alpha correct. So, this is a much tighter estimate now. So, you have freedom to choose s correct. So, what kind of s will you choose? So, you have to choose the s that infimizes this whole thing right. So, you can say that. So, this is again less than or equal to infimum s positive and of course, s has to be in the domain of convergence infimum all this m x of s e power minus s alpha. Now, sometimes people use the log moment generating function.  So, you define let lambda x of s equal to log m x of s wherever it is defined then. So, you can write this as e power minus let me do this properly s alpha minus lambda x of s soup right. So, this becomes soup here is not it take it up soup s bigger than 0 right because there is a negative sign it becomes a soup. So, that is your Markov inequality for s bigger than 0. Similarly, you can sorry not Markov inequality churn of bound for s bigger than 0 for s less than 0 you will get a similar bound for probability that x less than alpha right. If s is less than 0. So, probability x less than alpha will be equal to the same thing s is less than 0 right. So, you will get. So, you will get a similar exponential estimate on the negative side of on the this tail what is what you call this the left side tail right. This is a.  So, if you are looking at the. So, if you have some random variable like that. So, this is giving you the probability that x is bigger than alpha right you can also get the probability of x less than alpha right by if you take the similar s less than 0 right. So, if this is your density you do not actually need the density you just need the moment generating function to exist right and this kind of a calculation. So, this kind of calculation form forms the foundation of what is known as the theory of large deviations getting this exponential bound. So, this if at all you pick up if you study large deviations this is what you will you will get you encounter this expression a lot. It has lots of nice properties this lambda x is has is a convex function you can show and this is called the convex dual of the log moment generating function and so on. So, it has lots of nice properties, but that is really taking us too far a field the all you need to know is that you can get exponentially decaying bounds on this kind of a probability any questions. So, after you supremise over s what remains will only be a function of alpha right. So, that will look something like. So, this will look like. So, you can e power minus for some other function lambda star will look like e power minus lambda star of alpha right. So, I am just calling this after you supremise this function as lambda star. So, this is this is a very typical large deviation bound. Similarly, you can do a calculation for s less than 0 for the left side tape any questions. If you are interested in this kind of stuff you can first look up wikipedia or some text book on Chernoff bound and large deviation series basically takes off from here. Is there any questions. Yes. So, continuous random variables whether mean mean value divides pdf into 2 sections with the half probability no. So, that is called the medium right for any random variable. So, the point where you have half the probability on the side half the probability on the side is called the medium. So, that I think that concludes this little bit of a small section on concentration in equalities. So, the final. So, that brings us to the final module or final section in this course. This is about convergence of random variables and limit theorems and it is probably the most technically challenging part of this course. So, this requires a lot of effort this what I am doing to talk about convergence of random variables. Because, there is we will discuss convergence of random variables and various notions of convergence of random variables and we will also say how these notions of convergence are related and so on. So, what my experience has been that students often struggle with this. It is a little bit difficult to digest and get it into your heads, but once you understand it is all it is just fine. So, you have to what you have to do I am saying this because this you know this is getting to the end of semester right, but this is a time when you have to really put in some thought and effort and study you know this concentration or concentration this convergence of random variables. So, somewhat of a challenging section not easy when you are seeing it for the first time. So, if you are given a sequence of real numbers x 1 through x 1 x 2 dot dot dot we know what it means what it means for x to converge right. It just means that when n gets large x n. So, if x is your limit absolute value of x n minus x can be made less than epsilon right for any epsilon for large enough n. Now, we are going to talk about convergence of random variables a sequence of random variables. So, as usual. So, you have some probability space omega f p probability space and x 1 x 2 dot dot dot be a sequence of random variables on this space. So, if you want to speak about the convergence of a sequence of random variables see random variables are what kind of objects their functions right. So, it is you are essentially talking about convergence of functions right. So, this is something we already defined come to think of it right when we did m c t and so on we talked about convergence of random variables point wise convergence of random variables and what is it we talk about almost your convergence of random variables right. So, those 2 things we will I will repeat and then I will also give you a few other notions of convergence which are commonly encountered. Then we will talk about. So, about 4 or 5 different convergence notions we will define and we will talk about how they are related. So, this you already know definition 0 the sequence x i this sequence is said to converge point wise or surely to x if x n of omega converges to x of omega for all omega in the sample space as n tends to infinity. So, this is something we already seen right this is like point wise convergence of functions you pick any omega in the sample space for that omega you have a sequence of real numbers x 1 of omega x 2 of omega dot dot right as soon as omega realizes the sequence of random variables becomes a sequence of real numbers. Now, we know what it means to talk about the sequence of real numbers right. So, this. So, now this sequence of real numbers x n of omega converges to some x of omega right and that is your. So, and if that happens for every omega in the sample space this is called point wise convergence or sure convergence right for every omega you have this convergence that clear this is exactly point wise convergence of functions right. So, often but often we know that. So, this is 2 stricter notion of convergence right that is because in probability we do not often we are willing to we are willing to sacrifice measure 0 sets as such probability measure 0 sets right. So, we do not really care about probability measure 0 sets. So, we will slightly weaken this definition to say that we will say x n converges to x almost surely if this convergence happens except probably on a set of measure 0 probability 0 this I think this also we did right. We call it almost everywhere convergence I guess mu almost everywhere convergence. Now, the mu is this probability measure definition 1. So, I call this definition 0 because in probability you never use this sure convergence is 2 stronger notion of convergence to be useful in probability definition 1. So, we say. So, I am not going to write the whole thing again right we say x n converges to x almost surely or with probability 1 if x n of omega converges to x of omega on a set of probability 1 i e probability of omega for which x n of omega converges to x of omega equal to 1. The set of all omegas so this says that this convergence happens not necessarily for all omega in sample space but on a set of probability 1. So, there may be some little omegas left out where the convergence does not happen, but they have probability 0 that is almost your convergence sometimes this is also called strong convergence. Now, there is a little bit of technicalities here one has to be a little bit careful. So, one has to prove that this kind of an event this kind of whatever is inside a probability here right you looking at the event omega that x n of omega converges to x of omega right you have to prove that such a subset of omegas is indeed an event right but that can be done otherwise you cannot speak of its probability right. So, perhaps so we can so the way you prove that is. So, you assume that the limiting random variable is 0 or you can consider simply absolute value of x n minus x right and then the limit limiting random variable be 0. So, if you consider this is the 0 random variable you can actually write out this event as a countable unions and intersections of f measurable say events. Maybe I put this maybe you should put this in the homework to show that the set is indeed an event is this clear. And of course, there is also one other technicality we left out I think this also can be proven that if x n of. So, the limit of a sequence of measurable functions or random variables is always a measurable function. So, I mentioned earlier the proof is not all the difficult again you have to write you have to write the sets of the form x greater than alpha in terms of unions and intersections of these guys right. These are technicalities I did not really emphasize these too much, but they can be done. So, the limit of a sequence of random variables is always a random variable it is always an f measurable function. And these kind of events are indeed events are f measurable any questions on this. So, the way I will do this is I will give you all the definitions in one shot. Hopefully you will digest it abstractly and then we will give examples to illustrate the difference between the various notions of convergence. Any questions on this definition 2. So, now we are talking about the notion of convergence in probability. So, x n converges to x n probability if for all epsilon greater than 0 the limit of the probability that x n greater than x. So, x n minus x greater than epsilon is 0. So, if you are looking at the difference between x n and x absolute value of the difference between x n and x. And you are looking at the probability that the difference exceeds epsilon. Epsilon is something very small let us say you are fixing some epsilon very small. And you are saying looking at the probability that the absolute value of the difference between x n and x exceeds epsilon. And if for every epsilon greater than 0 if this limit goes to 0 then you say x n converges to x in probability. So, this I mean this. So, convergence in probability is very different from convergence with probability 1. It may not be totally apparent to you know that they are in fact very different. But, convergence with probability. So, one thing the limit is inside the probability. We are looking at the probability of omega for which x n of limit x n is equal to x here the limit is outside the probability. You can write this whole thing as probability of omega for which limit x n equals x. Another way of writing this is probability of omega for which limit x n is equal to x here the probability is inside the probability outside the limit here the limit is outside the probability. So, they are actually not the same. So, that is why it gets little tricky you have to digest these notions very carefully understand what it means. See the one thing see this is a bit of a misnomer. See there are only see the sure convergence almost sure convergence. In these two cases you have the sequence of random variables themselves converging. Here it is a bit of a misnomer to say x n converges to x in probability. After all what is it is not like x n the sequence x n itself converges to x here it is just that some sequence of probabilities are converging to 0. So, rather than. So, this is become standard terminology, but a correct terminology would be to say that rather than say a sequence convergence in probability you can say that the sequence of probabilities converges this sequence of probabilities converges. So, here I am saying that the sequence itself converges to x of omega here it is not true that it is not necessarily the case that x n itself converges to x on a I mean this mean may not happen it is only that this probability sequence goes to 0. If you call this p n or something if you call this guy let say p n of epsilon let us say I can call this p n of epsilon. So, the sequence p n of epsilon goes to 0 that is all it is not like x n goes to x in any real sense I guess what I am trying to say is that in here over here when you pick a very large n x n of omega itself becomes very close to x of omega. The difference between x n of omega and x n x of omega becomes very small for almost all omega not all omega, but the x n of omega itself gets close to x of omega. Here that is not necessarily the case what this is saying is that this probability goes to 0. There may be sets of probability greater than 0 where x n of omega and x of omega need not be close, but this overall probability goes to 0 of deviation by more than epsilon goes to 0 again this is not something that is so apparent to you at this point which is why I am saying this notions are little subtle. What we will show is that convergence with probability one or convergence almost surely will imply convergence in probability, but convergence in probability does not imply convergence almost surely. So, this implies this, but this does not imply that. So, this are strictly stronger notion of convergence than this. So, I will stop here I will continue with couple of more definitions and then we will see how this convergence notions are related to each other.


What's up everybody, Jason here for JaspysCaseBrace.com. We just sold out another brand new release today, guys. 2023 Tops Archive Signature Series Baseball Active Edition, 20 box case break picker jeans number one. And here we go, guys. So, here is the customer names that I bought in. If you have a little character sign at the end of your name, that means you won that from a little team random. Here we go, guys. The signature is active, it's always a more popular one just because it is more of the active players. But before I flip this, let me... These boxes back to the way they were, check out this paper. These are two goals. All right, guys, here we go. First one is a Brandon Crawford, and that is out of 11. That is for the San Francisco Giants. It's coming to Jason Gonzalez. And it's a redemption, autograph signer of Eddie Rosario. Eddie Rosario doesn't say actually what team or anything like that, so let's see what they have it under the checklist. And if there isn't, then we'll probably go by college rules where it's teams that currently on teams they play for the longest, but let's take a look. Yeah, it just has it under Eddie Rosario. So let's see where he plays for right now. Eddie Rosario is a professional left fielder, major leaguer for the Atlanta Braves. Been in the league for a little bit now, but currently the last couple of years with Atlanta, so there you go, we'll go that's ATL. So Atlanta's gonna add Andreas Eminus to 37 for the Yankees, or not Yankees, sorry, for the Mets. Mets is David. Then we have a Joe Musgrove to 48, Pirates. Joe Musgrove, Pirates is Kenny. Then we have a out of 30 Jesse Winker for the Cincinnati Reds. Cincinnati Reds is Walter. And then we have a Dolos Garcia to 65. For the Texas Rangers. Texas Rangers is Marty. And we have Joshua Lowe to 99 for the Tampa Bay Rays. Rays is Tristan. Then we have a Bobby Delbeck to 85 for the Boston Red Sox. Red Sox, that is Adam Cupperman. I have a Matt Olson to 99, Oakland Athletics. John Gaddy with the A's. All right, after this boxer, halfway through guys. Every time you pop in, Kaishan, and you say your team name, you end up getting a hit. Jose Berrios. I find that happens more often than not. Literally, dude, for real. We have a Max Muncie for the Dodgers out of 45. Los Angeles Dodgers going to Adam Cupperman. We have a Whitmaryfield. Can I have a break without a Whitmaryfield to 22? Royals, that's Walter. Eight more to go, guys. We have a Tailscar Hernandez to 58 for the Blue Jays. We have a Nolan Gorman to 47. A Future Stars Auto to 96, Jeff McNeil. We have a Logan Gilbert to 99 for the Mariners. All right, I feel like we have to have one big bang here. Usually, our car simulators gives you like one, maybe two, one of ones in the case. I feel like a lot of these cars haven't been the best. So we better see something. We have out of 73 Matthew Liborator. That's for the St. Louis Cardinals and Sam. We have a out of 99 Tristan Casas for the Red Sox going to Adam. Yeah, I mean, I have seen, I've actually ripped cases like you just mentioned where I've got like five, six, one of ones, but every case is different, I guess. Out of 94, Tim Anderson. Jesus, this case has not been so good, guys. Hopefully, ending with a bang here. If not next case, it's probably gonna be super fire. But I mean, it is relatively cheaper for some of these teams, so not paying a crazy amount unless for some of the big teams like the Yankees, Angels and stuff. Oh, come on, stinky case, right? Shane Daz to 16, boo. Not a good way I wanted to start off the case, but I think we will have some better cases, guys.  A lot of pitchers. I mean, decent players that are active, but not highly sought out for, honestly. But like I said, every case is totally different. Our next case is gonna be a banger, I feel it. So, appreciate it, folks. Pikachu number one in the books. Number two is coming up next.


What is something to build on? It's good. Seriously. Thanks for cutting me into you. Well, maintenance is part of this package. You have any engine trouble? Hear any odd noises? I'll take care of it. Thanks.