This is the highest close in the Nasdaq 100 through this whole formation here. So that's super duper bullish kind of going into this week. And this is probably the first time. Welcome to Access to Trader, the number one community for those who are committed to taking control of their trading in order to achieve success, profitability, and longevity. Thank you for joining us. Here's Dan Shapiro to help you find your edge, master your process, and own your future. Hey guys, good evening everybody. Welcome to another edition of the AccessToTrader.com weekend update show. Hope everybody is having a wonderful start of the weekend. Last weekend was a complete washout, three days in a row of rain, rain, rain, especially in this Northeast, especially in New Jersey, mentally just horrible just because again, we need such breaks. And this weekend we're finally getting some beautiful weather. I am taking advantage of it. Some sun, some good food, allegedly a cocktail because I don't drink and hopefully get the mind ready and be 100% effective a month, right? You want to have that clarity, you want to have that restful solely laser focus. So let's talk about the market. If you look at the scoreboard this week, you never get a good sense. For weeks and weeks and weeks, you had technology very, very weak, big money, speculation money. Again, you could call it what you want, the chasers, the diamond hands. We went over this a million different times, whatever they call it, the gorillas these days. They're flowing speculation money all over the place, right? Very, very emotional trades. People are doing incredibly well. If you held on to this thing by God or another high power, congratulations. You made it probably a fortune on this thing and that's awesome. But this is a very emotional trade right now. You have a lot of people are caught backwards in this trade, shorting it against this kind of freight train and then you have people chasing at all levels that thinking it's okay. And as the stock starts putting in lower highs, you have back to bad days of raising money and potential third raise coming up, very, very emotional, right? You could see all over the place, especially social media, how people are just bunting heads and for what we're about to see, especially when you look at the NASDAQ 100 and the Qs did a great job, right? Really a good job of reclaiming three, four days of selling, held the 50 day moving average, had a really strong rally to close the week. Again, the scoreboard is not gonna really paint a picture, but with the NASDAQ up a half of a percent for the week, this is the highest close in the NASDAQ 100 through this whole formation here. So that's super, duper bullish kind of going into this week. And this was probably the first time I've said that ever since we had that close on, what was it, on Friday, right? Although the indexes were strong and the semis were led by the semiconductors, excuse me, the NASDAQ was held by semiconductors including on the video, it continues to be a monster. We saw a tremendous amount of weakness in technology. They finally woke up on Friday, put in a really strong effort, NASDAQ up about 200 points, but more important is this is the highest close of this whole formation that's pretty much giving the bulls a green light. That's the good part, right? The bad part is again, what happens, and this is kind of what we saw, what happened in this day. The first day we reclaimed the 50 day moving average, just because, just always keep this in mind, just because the market reclaims levels doesn't mean every single stock is gonna do so. So for every stock that looks good, we'll go over some charts that I really like for this week, there's still a lot of charts that are just horrible, right? Even though Amazon was up $17, right? This is still, this is, you guys realize this, with everything's going on with Q's reclaiming major levels, this is a very, very big disappointment. Number one, Amazon had a really big decline a couple of months ago, literally never recovered and only had two green days in the last one, two, three, four, five, six, seven, eight, nine, 10, right? So two green days out of the last 10, considering how the Nasdaq 100 confirmed not really good. You look at Netflix, completely stormed the water, had a little bit of a rally on Friday, but considering where it was before, earnings very, very disappointing. And there's a lot of names like that, right? But instead of dwelling on the names that need to put in a work, right? We wanna talk about names that actually look very, very good. And if you're a new trader and you're reading social media this week and all the attention is, you know, on the AMCs and on the game stops and on the, I don't know what other, there are costs of the world and BBBY, just understand, this is a very crowded trade right now. In my opinion, I hate using the word the easy money, but you know, when a stock goes from nine, you know, from nine to what, 75, you can pretty much agree that the easier, right, easier money has already been made. And now you have three days in a row of lower highs and lower lows. It's not a good thing. The major test on AMC is gonna be this rising five day moving average. If you can see here for the last three times, held at once, twice, three times, so you're probably gonna get a test the 43, 42 level at some point next week if for the bulls. This is kind of, you know, I really have no interest in this thing longer, you know, longer term, but if you believe in the bull case from this thing, you really have to hold and reclaim this 42, 43 level if there's a test, right? And you definitely wanna make sure you don't break below this 37. If you break below the 37, you have a lot of room down. So you kind of wanna watch this level here, but the five days is gonna be the key for AMC, especially if you're playing the longer term picture, right? No pun intended, maybe pun intended, right? I'm not that smart or clever, but definitely not that smart. So, but this is gonna be a very emotional trade. I think now that the cues have reclaimed, you know, reclaimed the 50 day moving average and put entire motion highest close, I do believe there's easier trades. I do believe there's easier setups. I do definitely believe there's going to be lesser emotional setups when it comes to the market.   And people always say, my emotions, I can't handle my emotions. I'm either foam all the way to the wall or to the moon as this generation calls it, or I'm a nervous wreck and I don't know how to properly exit a position, stay in the position, trade in the position. These are all emotional things. So the last thing you wanna do is take that, your biggest problem area and focus on the most emotional names going into the next week. And I promise you, it's not the sexy trade. You don't want the sexy trade. You don't want the exciting trade. You don't want the trade that as soon as you put on the position, you start to sweat and your heart starts to pound. You don't wanna do that, right? You wanna be in boring lethargic patterns, whatever your process is and make sure you're identifying the cleanest path to the goal line while you're properly identifying market sentiment in that direction. So knowing that this is the most emotional thing you could possibly put your money or even your mental capital on Monday, I think there's better places. Is this trade over? Probably not. The short sellers who did a great couple of days ago, they're still feasting. I think the long buyers that were in this thing couple of weeks ago, they're still feasting. But now if you're, if this is your first time, right?  And boring means lethargic boring means you're in control, high probability and you can control risk instead of risk controlling you. And this is what all these things are. So if you are on this thing from the nine, 10, 12, 15, congratulations. If you're short this thing from the 70s, 60s, 50s, congratulations. Now manage your risk, look at that levels right now. Again, these are the facts. Three days in a row of lower highs and lower lows. Again, five day moving average is your pot of gold. So I wanna go into this, we definitely buy bias, right? Again, I'm not a bull, I'm not a bearer. I look at things realistically and try to formulate an opinion to find the best charts.  I mean, let's be honest, it still needs work, right? It doesn't scream, I have to belong this thing. But for every one of those stocks that are still kind of trying to make their way into the positivity realm of sentiment, there's really a lot of good names that are already broke out or about to break out that look really, really good. I think it deserves our attention. So let's forget about the Amazon. Let's forget about Netflix as the world. Let's forget about the squares. Look at Google, right? Look how good Google looks, right? Look at Google, looks absolutely great. It never really sold off with the rest of the NASDAQ 100. And this thing is literally a stone throws away of confirming this whole channel here to start looking and probably testing this 2430 level, which is the earnings high. So instead of fighting with Amazon, you have a clear path to the goal line with Google. So again, it's kind of the same trade. Obviously I think Amazon is a bigger and a weird way more liquid name to trade than Google. But again, beggars can't be choosers. So if you like Amazon, you really have to focus your attention on a name like Google. Look at Facebook, right? Just again, just to find names that have clearer channels. Is Facebook the smoothest thing out there? Of course not. Everybody knows it's not. But you can't deny how strong the stock is. And although it had its little bumps and bruises the last couple of days, it reclaimed supply, right? It reclaimed the five day moving average. The five day again is the cleanest and the shortest term moving average you could possibly hide for sentiment. So look at this channel here, right? All you have to do is look at this whole channel here and if it starts reclaiming the level. Again, we saw a short term expiration in the 335s, the 340s, the 345 calls. And assuming again, the market confirmed yesterday's price action in terms of the QQQs, you could get it moved all the way back to the hot. So definitely keep an eye on Facebook. Look at a name like Maxim. Again, not the easiest stock in the world to trade. Again, we recovered this whole area here where it broke out above that $99.5, $100 area. It hasn't been one of these. Now it broke out and went on a 30 day run like in the video. We'll get to the video in a second. But again, there is staying power here. And if this is a name that you're probably looking for more of a swing candidate and a day trading candidate, but at least you have a top of the range here that you could be watching. You have your max pain that you see here you could be watching. So you could be looking at literally a two, two and a half dollar risk, max pain. And if the market starts to snag like up, look how much room you have, right? You have room first moved to 106 and any move above 106, you could see 116, 117. Again, assuming the market looks really, really strong. Now look at a name like Zoom, right? Zoom came out with earnings. They sold the stock off two, three days, but look how close Zoom is now to really taking out this whole bottom channel here. And if it does first close above this channel here, because remember, we did see some really good bets on Zoom towards the end of last week. We started seeing the 360 call short-term expiration June, Julys, 360s, 365s and 370s, I believe. I forgot about the last one. You have to double check that and we started seeing call buying. And if it could close above this whole formation and take out months and months of selling, Zoom could go on a run. Forget about the whole fundamental case that workers are going back, I use Zoom. I know a lot of you guys still use Zoom as more companies when they first started, they didn't use Zoom. Now they're gonna continue to incorporate it because it's just the easiest, most intuitive user-friendly way to speak to somebody, whether it's across the pond, across the street or somewhere else that without leaving your home and exposing yourself to travel costs, any type of quote-unquote virus or anything else, it's much more. So again, it's all about the technical view that now instead of the fundamental case later as well. And some smaller names are looking good as well. Look at the stock eyes, guys, right? Look at the stock eyes. Had a really, really huge, huge run. If you guys remember, I started, I don't know if you guys realize this, I started focusing a couple of names. I try to put in maybe one or two names every single day on the smaller case. If you guys remember, on Thursday's session, we highlighted BBIG above that. If you guys remember, I highlighted it on Thursday night above that 350 level. This thing just went nuts, absolutely nuts. Look at eyes, it's not bad at all. I mean, look at the history of this thing. This thing went, what was it? This thing went January for March. In March from what, from two to 20, right? This is the first close over the 50. Moving average. If this eyes can just get above, you know, start putting in a channel above seven bucks. Again, nobody's saying to go to 20, but why can't it go to nine? So, you know, keep an eye on that as well. And Neil, I like this Neil. The EV playing is really strong. Just to give you an idea of how much potential there is. When was the last time you saw General Motors and Ford go on runs like this? This is the whole point of the EV generation. Everybody knows what GM is. Everybody knows what Ford is. And according to them, you're gonna see pretty much everything electric within the next five to seven years. But a name like Neil, right? You know, if this thing starts taking out this whole channel here, maybe it starts to run itself. So there's definitely, definitely value there. Some beta, some non-beta, some semi-conductors. And hey, how about in the video, right? Look at this thing.  One on a huge run again on Friday. Again, they came for the 735 and the 740 calls. Wonder why, right? Look at the, look what your measure potential is. 730, 740, so there's a good chance they run this thing ahead of the split as well. So do your homework this weekend, folks. Definitely put in the time, relax. Like I'm definitely using this weekend to decompress and relax. Last weekend, I was so looking forward to going to the Hamptons to the rest of three days, long weekend. I didn't have a chance to do that because it was raining for three days. So this is kind of like my mini break. So after I'm done with this, I'm gonna take the kids for ice cream, whatever the case may be, I'm going to relax and decompress. So we're definitely bullish. At least the start of the week, we'll see how the market reacts to the last week's channels. And if they do confirm, we should have some good continued upward bias. Guys, God bless, love you all. Smile, live your life. You don't get another one of guys. Have a great night, have a great weekend. I'll see you guys, God's up on Monday.


Hey guys, I'm back with another video and I want to talk about how nursing has jacked me up and I Want this to be kind of a lighthearted fun video that helps us get away from all of this COVID stuff That's been going on and hopefully it makes you laugh and also helps you like kind of evaluate yourself on how nursing has jacked you up because I Was thinking about all the ways nursing has changed me and by jacking up. I don't mean like I Don't know like I don't mean it necessarily in a negative sense more in like a Like a funny sense. So hopefully you guys can like relate to some of these things and maybe you're like Yeah, that's definitely me. So I want to share some of the funny ways nursing has messed me up because when I was thinking about it There's a lot of different things and I'm like, wow, that's weird Ashley. So Let's get started. Okay This I know it's gonna be very weird for you guys But I cannot sleep with my heels on the bed Like if I'm laying my back, I cannot have my heels on the bed because I feel like I'm gonna get pressure ulcers And I know that sounds like so silly But like the feeling of it my heels on the bed I can like feel that pressure and so I have to like either sleep on my side or Like put a pillow underneath my like lower legs and calves to kind of float my heels And it's totally an ICU thing because I was not like that before being in the ICU But now that I am I'm like dang That is really weird the next way nursing has jacked me up is Sometimes especially after I've worked quite a bit When I get home and I like go to the bathroom I will like be like go into the bathroom and think oh I should chart my urine output or like Did I really just void more than like point five mils per keg per hour? And it's not like intentional that I think like this it's like I almost just in my head I'm like I got a chart this void and I'm like wait. Wait.  This is myself and not a patient. Okay, I Hope you guys can relate to this one But the other weird thing that nursing's made me do is be very concerned about all of my body hair because I am like Worried that I'm gonna be you know driving and getting an accident And I'm gonna get brought into the hospital where I work and like what if I haven't shaved my armpits? Or what if I haven't shaved downstairs and everyone's gonna be like whoa We did not expect this about you actually So I feel like I always have to have like good hygiene good body hair because I God forbid I get admitted to the hospital that I Work out and then like I'm out of it and everyone's gonna be like whoa I know guys it probably doesn't happen But we're nurses like we know what happens to a certain extent another way the nursing's jacked me up is When I look at people in the eyes I look at their pupils and I notice like if one is slightly bigger than the other or like how they're reacting to light if They're constricting if they're not and I'm like really honed in on people's pupils when I'm talking to them And it's funny because actually my husband has one pupil that's slightly bigger than the other and my daughter does too And I didn't even notice this till I started working the ICU when I got like a lot more Skilled at my neuro assessments and stuff But like I feel like I always hone in on people's eyes And then the other thing that I do is when I'm out in public and I see people I feel like I just can totally tell what their medical diagnosis is without them even telling me Because you can look at people and be like oh, they've got like bigger belly Looks like they probably have liver disease or you like look at their lower extremities and you're like yep Probably a renal patient. They've got fluid overload The skin is different color or yeah, they definitely have diabetes And I feel like I can just see someone and be like yep They're probably on a beta blocker. They're probably going to dialysis They're probably taking their lactulose because their ammonia is too high another way the nursing's jack me up is Sense I feel like I am so in tune with different sense that Like I can tell when I smell something like it brings me back to an experience I had like if it smells like a GI bleed or Fowl urine or like the smell of when you cauterize skin or like a stinky wound All those smells if I get a whiff of any of that out in public somewhere I'm like whoa Something's going on that shouldn't be okay guys. Those are just a few ways that nursing has jacked me up There are probably so many more ways But I want to hear how nursing has messed you up in a funny sense to kind of like Get away from COVID. Let's lighten things up and just let me know in the comments below Make sure you're following me on my instagram ashleyatkinsrn If you like these types of videos, give it a thumbs up subscribe to my channel and I'll see you next time. Bye


Hey everyone, Sam here. This is a quick web series about solving web problems with standards. These tips are part of the platform and work with any framework or library. These are quick tips. Let's go. Mobile devices, like the ones I have here, have physical sensors that might be useful if you're building HTML games or more integrated experiences. Let's find out how to use them the standard way. The most simple use case is for us to check the device's discrete orientation. The browser will emit events when the device's screen is rotated. This is the orientation change event, and it will fire when the display rotates from landscape to portrait. To find out what orientation you're in, there's actually not really a standard API. It's actually best to just compare the width to the height. If it's greater, then your user's browser is in landscape mode. But what if you want finer information on the device's position? Recently, I built a game, and I wanted finer detail about the current orientation. For that, you can listen to the device orientation event. It gives just three values, alpha, beta, and gamma. For this game, we care about the gamma property as it represents side-to-side motion. Check out my article to find out more about the different axes. We can also measure acceleration. This might be useful for gestures. For example, imagine shaking your phone to clear a form. You can get this information with the device motion event, which has properties like acceleration and rotation. The gyroscope is very powerful. It can give you orientation and acceleration, and can even give you the compass direction. I go deeper in my article, so you should check it out. So remember, use orientation change to listen to the screen's orientation and the device events to listen for fine detail on the device's orientation and acceleration. That was the gyroscope, the standard way. See you on the next tip. Yeah, I know. I'm trying to force myself not to have any selection.


Now, the Roma Wine Company of Fresno, California, presents Suspense. Tonight, Roma Wines bring you the suspenseful play called Fear Paints a Picture, starring Miss Lana Turner. Suspense is presented for your enjoyment by Roma Wines. That's R-O-M-A, Roma Wines. Those excellent California wines that can add so much pleasantness to the way you live. Do your happiness in entertaining guests, do your enjoyment of everyday meals. Yes, right now a glass full would be very pleasant, as Roma Wines bring you a remarkable tale of suspense. And with Fear Paints a Picture, and with the performance of Hollywood's most glamorous young star Miss Lana Turner, Roma Wines hope indeed to keep you in suspense. There is a picture hanging on a wall. You look at it casually, an extraordinary picture. You'll say he's skillfully done. Look at those fine brush strokes. Look at those superb colors. But isn't the subject matter a little bizarre? It's something more than just bizarre. You see, it was that picture that first convinced me that I was insane. Let me begin from the beginning. In his last will and testament, my father made me heir to all his considerable fortune, except that, well, here, you read the will. I, Benjamin Powell, hereby request that after my death my daughter Julia live in my old San Francisco house with Mr. Harvey Lyons, my lifelong friend, until her 23rd birthday, at which date all my worldly belongings will come into her possession, provided that nothing untoward happens to her by that time. But in the event that she is incapable of taking over my estate upon her 23rd birthday, I hereby appoint Harvey and Laura Lyons as my final heirs, there being no other living blood relatives, and trust to their judgment that they will take care of Julia adequately and with kindness. In Benjamin Powell. Three months later, seated around the huge ornate fireplace of that dark, musty living room, we were three silent people. Harvey was reading his newspaper, Laura was knitting with nibble fingers, and I, I stared with unseen eyes at an open book. You're not reading, Julia? I, uh, I'm not concentrating. Are you feeling all right, dear? Oh, yes, yes, I'm all right. You do look a little tired, Julia. Perhaps you'd better get some rest. I'm not tired, Harvey. I, I've been wanting to ask... In a week, Julia will be 23. Isn't that wonderful, Harvey? Next Tuesday is her birthday. Well, yes, we'll have a party. I'll get old Tom and his fiddle, and we'll have a real old-fashioned party. Harvey, what did father mean by the will? The will? Perhaps you'd better go to bed.  The will said that I might not be able to take over the estate by my 23rd birthday. What does it mean? Well, I don't remember that. I, I didn't read the will very carefully. Oh, yes, you did, Harvey. You know what I'm talking about. Perhaps we'd better discuss it in the morning. You're tired. It's no use, Laura. I've got to know.  Upset me? Well, you sort of get moody very often. Now, Harvey. Laura, I'm not going to bed until I find out what all this means. I've got to find out. You don't like your room, do you? No, no, I don't. It's big. The wallpaper. I, I don't like the pictures on the wall. There's nothing wrong with a big room. Everyone prefers a large room. Everyone likes pictures on the wall. Well, maybe it's the kind of pictures. Yes. It's the pictures. They rub me the wrong way. You see, your feelings about things are different. Different from the, uh, the feelings of normal people. Oh. Normal people? I can't stand this torturous way of telling her. I'll tell you, Julia.  She went mad after her 23rd year. It's been in the family for generations. But I never saw my mother. I thought... We didn't want to tell you this. I wish you hadn't, but you forced us. You mean I'm liable to become insane? Well, you see, any one of us can become insane. I... There's nothing wrong with me. I'm perfectly all right. I'm as sane as anyone. Being high strong doesn't make me mad. I don't like it here. I don't like this house. I'm sane. I'm sane. Of course you are, Julia. There's nothing the matter with you. You'll be all right. Your father wasn't sure that's all. You're as sane as any one of us. Come along. I'll take you to your room. We'll have a cup of tea together. How is she, Laura? She's calmed down. Is she asleep? No, Harvey. She's reading. That must be Dr. Barrow. I'll open the door. How do you do, Mr. Lyons? Is it Dr. Barrow? That's right. This is my wife, Laura. How do you do? I'm glad to meet you, doctor. Let me take your things. Of course. We'll have your room ready in a few minutes. Thank you. It's very good of you. Here, sit down. Sit down. Make yourself comfortable. Thank you. I will. Well, how's Julia? Oh, she's been very moody lately. Very moody. I've heard her talking to herself very often. Well, that's nothing. All of us talk to ourselves once in a while. I don't know, doctor. I don't think she's very stable. Mr. Powell described Julia's case to me just before he died. I had occasion to observe her just once. Mr. Powell, well? Oh, yes. For quite a number of years, I treated his wife. Poor Mrs. Powell. She went mad. And now poor Julia... I wouldn't make that comparison, Mr. Lyons. So far, there's no basis for any such theory. Well, then, Julia just has strong dislikes. Took a hate to the pictures in a room. Oh, pictures, eh? I'd like to go up and see her if she's not asleep. Well, I guess it's all right. She's not asleep yet. The room's a second from the right. As you reach the top of the stairs. Thank you. I'll just stop in for a few minutes. Come in. Hello, Julia. You remember me, don't you? No. No, not exactly. I guess maybe I've seen your face. I don't know. I'm Dr. Barrow, a friend of your father's.  My mother? No, no, don't be along. I'm staying with your guardians for a few weeks. I'm sure you're going to be all right. Do you mind if I come in for a few minutes, hmm? No. No, I guess not. Well, this is a fine room, Julia. A very comfortable one. I don't like it. It's too big. It makes me lonely. Oh, nonsense. You're just imaginative.  It isn't that. Don't you like that picture, Julia? What picture? The one you're staring at. Oh, it's an unpleasant picture. It gives me nightmares. Look at it. That frightful looking man about to come through the doorway and the unsuspecting girl sitting in a chair with her back towards him. He's not frightful looking at all. It's just the black scarf around his neck.  You certainly have a vivid imagination. I'm sure the artist had no such idea in mind. That picture has a horrible fascination for me. I just can't take my eyes away from it. By last night, I dreamed that the man in the picture came through the door with a knife in his hands and killed the girl. It was an awful dream. It was only a dream. But if I take that painting off the wall, Julia, you'll find other things to be afraid of, dear. You've got to conquer your fears or they'll conquer you, Julia. Now, now, you do as I say. Forget about this picture. Get a good night's sleep. There's nothing like a good night's sleep to lift the spirits. If the picture fascinates you, well, keep on looking at it, but don't be afraid of it, Julia. Will you do that now? Yes, Dr. Barrow. If you say so. Ah, that's fine. I'll see you in the morning. Good night, Julia. Good night. For Suspense, Roma Wines are bringing you as star Miss Lana Turner, whom you've heard in the first act of Fear Paints a Picture by Sigmund Miller, which is Roma Wines' presentation tonight of Suspense. Between the acts of suspense, this is Truman Bradley for Roma Wines. Elsa Maxwell is recognized internationally as an authority on gracious living. The other day she said this about wine and wartime food rationing. Listen. I find that people who know one simple secret of delicious meals aren't bothered much by food rationing. That secret is to enjoy good Roma wine with food. For instance, I recently had dinner where the main dish was kidney bean casserole. And to give this simple food a delightful party flavor, my hostess served cool Roma California Burgundy. Everyone remarked about its wonderful bouquet and aroma, and about the way that good Roma Burgundy added enjoyment to our plain meal. Such added enjoyment is one of the reasons why more and more people served delightful Roma wine. That's a grand suggestion from Elsa Maxwell. So why not try Roma California Burgundy with your dinner tomorrow night? You'll enjoy its tart pecancy, its fruity, robust taste. The happy result of selecting luscious wine grapes from California's choicest vineyards, guiding them to perfection by the ancient wine skill of Roma's famed wineries. Good Roma wines never vary. They are always enjoyable, yet cost only pennies a glass. Remember, more Americans enjoy Roma than any other wine. R-O-M-A, Roma wines. And now Roma wines bring back to our Hollywood soundstage Lana Turner as Julia Powell in fear paints a picture. A tale well calculated to keep you in suspense. About midnight in my room, the large room with its many pictures, I was dreaming, dreaming again of the man in the picture and the figure with the flowing black scarf was alive and his hands grew longer and longer and there were footsteps, footsteps over my head. And then, then I was awake, wide awake with my eyes staring at it and on the wall, oh! Julia, what happened? What are you doing out here in the hall? Where the Julia? Oh, that man, that man. What man? The man in the picture, he's moved. What do you mean? The picture, the man at the door. He's not at the door. He's inside the room. Oh, you must have been dreaming. He screams, Julia, what's happened to you? He moved. I saw it. He's not outside the door anymore. He's inside. No, no, no, Julia, let's- It wasn't a dream. The thunder woke me. And I heard footsteps coming from the ceiling and then I looked at the picture. The picture I told you I didn't like, doctor. The man was inside the room. That's highly possible, Julia. Figures in pictures can't move. Of course not. It was just a bad dream. No, it's true. I saw it. All right, come along, Julia. We'll all take a look at the picture. Oh, no. No, I don't want to go back into the room. There's nothing to be afraid of.  Yes, come on, Julia. Don't be frightened. You've got to fight off these delusions.  Come along. Now, which picture is it? The one- The one near the bed. Oh, yes, the picture around Paul. Your family was always very proud of it. Well, there it is. It's the same as I saw it a few hours ago. Look at it, Julia. Well, I can't believe it. The man with the black scarf is still outside the door and will stay there, Julia, until the picture crumbles to dust. Oh, but I was so sure I saw him inside the room, approaching the girl, and then the footsteps. Dreams can be very vivid, and there are no footsteps coming from the storeroom. Oh, I must be out of my mind. I could have sworn... If Julia wants to, I'll take the picture out of her room. No, no, I don't think it's wise. Julia, you will have to fight these unreasonable fears. Never give in to them. I'll go crazy if I keep looking at that picture. It might be the other way around, Julia.  You'll get worse and worse, as Dr. Barrow says. Until you're afraid of your own shadow. No. You'll be afraid of everything. Of everyone you meet. No. Afraid of being alone. Afraid of being with people. Afraid of yourself. Afraid of your own clutching finger. No, no, don't tell me anymore. Please, Mr. Lyons, please. There's no need for this kind of talk. Look at the picture, Julia. It's nothing but some paint on a canvas with a frame around it. There's nothing about it that can harm you. The danger lies in yourself. You've got to keep staring at it as often as you can by candlelight in the dark. Until you've learned to laugh at it. It won't be easy. Well, I... I'll try. That's fine. I knew you had courage. I'll get you a sedative so that you'll be able to sleep. Oh, but I'll be all right in the morning. I'm sure I'll be all right. And I was all right for a few days. The figure in the picture remained motionless. And I heard no more footsteps. Until one evening... Well, Julia, it's eleven o'clock. And you know what Dr. Barrow says? I'm not at all sleepy, Laura. I'd much rather stay up for a while. You see, I'm in the middle of a fascinating story that... You think wrong, Julia. No. No, of course not. Everything's fine, Laura. You're afraid to go to sleep, aren't you, Julia, dear? No. No, it isn't that. Is that picture bothering you again? Oh, yes. Last night, I heard footsteps again. The sound woke me and the figure in the picture. It moved. It moved closer to the girl. Oh, how terrible. We thought you were over it. Well, I took some sleeping tablets and I fell asleep again. And in the morning, well, the picture was the same as ever. I see. Oh, Laura, do you think I'm crazy? Oh, of course not. You're as sane as I am. Tell me the truth. I must know. Well, you're just nervous and high strung. And you have a vivid imagination, and that's all. Oh, you're trying to soothe me. Why didn't you tell the doctor that you thought the picture moved again? Well, I... I was ashamed. You shouldn't be ashamed. Dr. Barry was here to help you get well, and I'm sure that... Hello, Laura. Well, I've arranged to have old Tom and his fiddle here tomorrow night for Julia's birthday. And I've invited the grovers and they'll be delighted to come. That is, Julia's feeling well. Julia, you should be in bed. It's after 11. She's afraid to go to sleep. Oh, please, Laura. It's, uh, the picture again, isn't it? Yes, doctor. It moved again. At least I thought it moved. Oh, but I went back to sleep. Well, that's an improvement. You didn't get hysterical and tried to run away like the last time. Come, Julia. I'll go with you to your room. Um, perhaps Laura couldn't sleep in my room tonight. Oh, just tonight. You see, I'll feel a lot more comfortable. And tomorrow night, well, I'll be able to face it alone much better. Well, Julia, that would be an admission of defeat, you know? But if you... Oh, well, all right. If you think it's best. Good night. Good night, Julia. Keep up your courage. It doesn't look so good, does it, doctor? Well, well, not too good, but it's not hopeless. She has an unstable imaginative mind, subject to delusions, which become very real to her. Oh, her obsession about the picture's not so bad. We all suffer occasionally from optical illusions. But hearing footsteps coming from the storeroom above her... The storeroom? How did you know there's a storeroom above her? Why, your wife told me about it. Oh, of course. Well, that storeroom hasn't been open in years. I guess there's no point in investigating it, is there? No, I don't think so. Those footsteps, like the moving figure in the painting, are all in her mind. Well, her mother behaved just like that before she went mad, didn't she? Well, there's some similarity in... say, you haven't been to the storeroom recently, have you? No, no, I just mentioned to you that it hasn't been open in years. Oh, yes, yes, so you did, so you did. Oh, I just hope that Julie will be all well for her party tomorrow. Well, I had no idea she was having a birthday. How old will she be? She'll be 23. Really? Well, I must remember to get her a gift. Well, I guess I'll go to bed. So will I. See you in the morning. But I wasn't thinking about my birthday. When I stood alone inside my own room, panic. Black, unreasoning panic began to take hold of me. In wild haste, I began to undress, never looking at the picture and... and talking to myself. Yes, talking to myself all the while. Now, now, I won't look at it. I'll take some pills and fall asleep. All I have to do is keep from looking at the picture. It can't do me any harm. If I don't see it, I... I mustn't even think of it. I know. I'll think about the trip I made to South America. Oh, it was a wonderful trip. The sunsets and... What was that? Footsteps. Those footsteps again. But I mustn't hear it. I mustn't hear it. It was a wonderful trip. The Blue Caribbean and... and Rio is a beautiful city. Sugarloaf Mountain and the music and the dancing, Wyatt. It's not the footsteps. It's just my heart beating. I know. I'll close my eyes. Oh, please, please let me sleep. I don't want to look at the picture. I won't. I know what I'll see. You'll be closer to her. And maybe he'll have killed her. Oh, but I mustn't open my eyes. I mustn't. I won't. I... Oh, but I've got to look at it. Oh! He has moved. He's closer to the girl. I'm not dreaming. It's real. The girl whites me. That girl is me. Mia, I can't stand it. I can't. I can't. Julia!  Well, it's the same thing, Laura. Again and again. I tried not to look at the picture, Laura. I tried so very hard. But it was hopeless. I had to. And the figure with the black scarf was inside the room. A knife in his hands. Very close to the girl. But this time, the girl had turned around and... and it was my face. My face. I didn't see any footsteps. Yes. Yes, I heard them as soon as I got into the room. But the picture, it's the same. It hasn't changed. Look at it. Yes, the picture doesn't seem to have... What's the matter, Laura? Nothing. Nothing at all. There. There, did you hear it? Footsteps. It was probably a bored creaking. Now you go to sleep. I think everything will be all right in the morning. No, Julia.  Oh, thank you, Laura. Thank you very much. Is that you? Where she's gone? She's left me alone. But I... I'm not alone. Something woke me. The picture. I... It's the picture. I must look at it again. If he's moved again. But... I must look straight at it. I'll look straight at it. Why, he... He's killed a girl. He stabbed her. He stabbed me. I'm the girl. And I've got to get out. Out! Now you're here. Why, you've come to life. In my room. The man in the black scarf. You... What do you want me to do? No. No, I won't run away. And I won't scream. What are you asking me? Do I want to spend the rest of my life in an asylum like my mother? No. No, I don't. I don't. You... You want me to open a window? Well, yes. Yes, I'll open it. There. You say... You say it would be best for everybody if I jump? Oh, yes. It's... It's the only way out. The only way and... I'll do it. I'll do it now. Without even thinking it. It will... It will only take a... a moment. Stop! Stop, Julia! Laura, what are you doing? We came just in time. I've got her, Harvey. She's safe. I'm safe. You can come out from behind that chair, my friend. A friend? Come out, or I'll shoot. I don't understand. My head's going around in a circle. I was merely observing, Julia. You tried to drive Julia crazy. He... he tried to drive me crazy. That's right. He tried to do it with a picture. You're all making a serious mistake. A mistake? Look at the picture. The figure is inside the room, stabbing the girl. No, it wasn't your imagination, Julia. He painted several pictures. Each one of them, the figure closer to the girl. He used the storeroom upstairs. That's why you heard footsteps. I got suspicious when I found a black scarf in his room. And when I looked at the picture a little while ago, it was full of dust. I had dusted it off myself a few hours just before. Yes, and Dr. Barrow seemed to know there was a storeroom above you. I couldn't understand how he knew that. Because this old house of your father's had been closed for years. But why? Why should he want to drive me crazy? Because he's not Dr. Barrow. What? He's Ralph Powell, your cousin, who disappeared many years ago. Everyone thought he was dead. He painted the picture originally, so it was easy for him.  Then contest the will, since he's the nearest blood relative. I had no intention of killing Julia. I swear I didn't. I just wanted to frighten her. Why? I almost... I almost jumped out of the window. I... I might have been dead... right now. Lying dead outside. Don't think about it, Julia, dear. It's all over now. You're all right. You may not... I'm not... insane. Why, of course not, Julia. Why, it's Thursday. Why, yes. Happy birthday, Julia. Yes.  It... it feels... wonderful.  Suspense. Suspense is produced, edited and directed by William Spear. Before our star returns to the microphone, Roma Wines, the sponsor of Suspense, bring you a brief message from that noted authority on smart entertaining Elsa Maxwell. A truly versatile wine for entertaining is Roma California Touquet. Serve with coffee or dessert, as a delightful finishing touch to your meals. Or set out Roma Touquet with cheese and crackers when friends drop in. Everyone enjoys this velvety flame-colored wine. Yet, good as they are, Roma Wines cost only pennies a glass. So enjoy them often. Serve Roma with your everyday meals. Roma wine is delicious and Roma quality never varies. Remember, more Americans enjoy Roma than any other wine. R-O-M-A Roma Wines. The Roma Wine Company with sales headquarters in San Francisco joins with that city in welcoming the men of peace. The delegates to the United Nations conference begin their session. When their good work is completed, may the men of peace take back to their homes the memories of a friendly San Francisco. A city where live in harmony many people of many origins. A typically American city that speaks for all America when it says, may God bless you men of peace and speed you in your noble work. This is Lana Turner and it was certainly a great pleasure to appear here tonight on this distinguished suspense stage for you are accustomed to hearing the very best in dramatic radio entertainment. I appreciate very greatly the opportunity of playing a role somewhat different from the ones I usually do in pictures. Next week my friend, that very excellent actor John Garfield will be your star of suspense. I know you will be listening as I will. Lana Turner appeared through the courtesy of Metro Golden Mayor and is currently starred in their production Next Thursday you will hear John Garfield as star of suspense. Presented by Roma Wines, R-O-M-A made in California for enjoyment throughout the world. This is CBS, the Columbia Broadcasting System.


I have now everybody welcome to the third episode of chat loop back off today is February 22nd. Can't believe it's almost March. It feels like the year is going so fast already. This live stream is a sibling to the similarly themed clash loop back off an event that the CNCF puts on it. The most recent cube kind of Chicago. I think we'll see it in Paris as well. In that one, it's kind of a fun competition. Normally gfe is hosting it and he pets to community members against each other to accomplish some sort of technical challenge of his choosing. You go into no real background.  It's definitely challenging though. If you tuned in before you might be wondering where is gfe? Well, that's a fun story. My name is Jeremy Rickard and I'll be the host today. You might know me from Sig release or from reviewing some PRR things, a few other things around the Kubernetes project, but you may have also seen me competing in clash loop back off in Chicago or its predecessor cloud native iron chef sometime during COVID. Gfe asked me if I'd like to host an episode of this and kind of experienced the different side of this challenge and he gave me a list of potential topics and I thought it would be really fun. So today I'm excited to dive into the Kata project, something I've never used before and have you joined me as I learn all about event driven auto scaling in Kubernetes. I have not done any real in depth research on this topic. I know what Kata is. I've never used it before.  I'm coming in kind of cold and we're going to dive into the topic with no real background information and learn as as I normally would off stream. We're going to look through some examples and some documentation and kind of figure it out as we go. In doing so, I hope that we can all walk away having learned something new about Kata. A few housekeeping items before we get started during the live stream, feel free to ask your questions and chat. I'll try to get through as many as possible and Katie behind the scenes is going to help me stay on track for that and we are here to learn together. So if you know the answer to something or if I'm stuck, feel free to speak up and help us all learn together. That said, this is an official live stream of the CNCF and it is of course subject to the CNCF code of conduct. Please don't add anything to the chat or questions that would violate the code of conduct. Basically just please respect everybody on the stream all the other participants in the chat and this video will be put on YouTube afterwards. So folks that haven't been able to join the live stream will be able to follow along with us asynchronously. Okay, before we dive into Kata, let's check out some news from the broader CNCF world. I think if you've watched any of these before it's kind of cool to see some some topics that have popped up. So first the one thing that stood out to me kind of going back to the clash loop back off in Chicago is that there's a new GitOps associate certification being launched by the CNCF, the Linux Foundation and the Continuous Delivery Foundation. It's really intended to help folks understand core GitOps patterns, tools, when and where to use those patterns and those tools. And if you watch clash loop back off in Chicago, one of the challenges was to use flux. And I think that's a really cool topic. There's lots of really great tools in that space in the CNCF, but those things can be super useful and having this new kind of certification seems like a cool step in helping folks demonstrate their kind of knowledge and mastery of that. I also found a really cool blog post about Qiverno. So Qiverno is a policy engine and an admission controller for Kubernetes and it was all about how to secure service meshes. I'm going to probably try to drop these links into chat so we can share them. Do that real quick. See if I can haven't done that before and drop them to Katie and maybe she can share them. So here's the first one about the GitOps certification. And these are on the Kubernetes or the CNCF blocks. You should be able to find them too. The second one was really about how to use Qiverno to secure service meshes. So kind of combining those two different topics making them available in a kind of unified blog that I think addresses a bunch of cool topics. And then the third one I wanted to touch on was kind of near and dear to my heart. We're halfway through the Kubernetes 130 release. Code freeze is coming up pretty quickly. It'll be on March 5th. So we're going to get up under that deadline super, super fast. And with that in mind, we're going to get an alpha release next week. That'll be like the third alpha. I think if you're interested in trying out new features before those releases land, you can definitely check out the alpha releases and provide feedback to the rest of the project. Help us find some of those bugs early on too. That'd be super cool. So I dropped a link to Katie for the schedule. So you can find all the dates for the Kubernetes releases there and kind of understand when 130 is going to be out, when can you expect data, things like that. So it's a pretty good time, I think. Okay, so we've got that out of the way. Let's dive into Katie and kind of understand what we're going to be looking at. So I'm going to share my screen and we will take a look at some documentation that we started with. Let's do it. All right. So, Katie is a, let's look at the description. It's a Kubernetes-based event-driven autoscaler. So with Katie, you can drive the scaling of any container in Kubernetes based on a number of events needing to be processed. So that's kind of a cool concept. If you've worked in Kubernetes in any kind of operational aspect, you've probably heard of the vertical pod autoscaler or the horizontal pod autoscaler. Those are general topics around autoscaling. Let's take a look at a couple of those. So let's go over here and open our new tab. And let's look at the vertical pod autoscaler. All right, cool. So what does the vertical pod autoscaler do? Let's see. Well, it's a component that allows us to basically resize the limits and requests in our pods based off of metrics that are going to be available from the metric server. So, you know, we can scale things up and down based off of the workloads that they're experiencing. It's kind of driven by the metrics about that workload, right? The horizontal pod autoscaler is going to be similar. Let's find that one real quick. Horizontal pod autoscaler. Okay, horizontal pod autoscaling. Similar kind of thing, right? But instead of scaling a single pod's resources up and down, this one is all about scaling the pod in and out for a number of replicas. So same concept. You're going to use a metric server with a certain number of metrics or specific metrics that you're interested in. And the autoscaler can help you kind of respond to those scenarios. So maybe I've got a lot of requests coming in from an external metric server. I want to be able to scale based on RPS of my service, right? I know that I'm going to hit a threshold and I want to be able to get more pods to be able to handle more requests coming in. So that's kind of where the vertical pod autoscaler and the horizontal pod autoscaler fit into this picture. They're really looking at those resources about your workloads in the cluster. So maybe CPU memory, things like that, but maybe things like requests per second, things that you're scraping with Prometheus and making available with a custom metrics API. Okay, let's go back to Kata. And I think the important thing that sticks out to me is that we're really doing this on events here. So the number of events that need to be processed, that seems a little different and seems like it's not necessarily looking at the resources in the cluster, but it's looking at the things that maybe your application is working with. You know, looking at things like maybe queues or databases and records like that. Okay, so let's dive in and see if we can find out a little bit more about what Kata is. So let's look at the concepts first. Okay, so how does Kata work? Okay, so Kata has three key roles within Kubernetes. So metrics, okay. We mentioned the metric server for the horizontal pod autoscaler or the vertical pod autoscaler. So it looks like it acts as a metric server that can provide that data that you're going to need to be able to drive off of stuff. Admission webhooks to prevent misconfiguration and force best practices. That sounds pretty cool. And then an agent which activates and deactivates Kubernetes deployments to scale from zero or to more based on the events. Okay, so it seems like a pretty straightforward set of components. There's a cool architectural diagram here that I think maybe highlights this a little bit more. We've got Kata here. So we've got the metrics adapter and we've got the admission webhook, a controller. I think that's probably going to be this agent up here. One of the primary roles is the operator. Okay, that seems pretty straightforward. We've got something called a scaled object that probably is a CRD that's from Kata. We'll look into that in a second. External trigger source. Okay, that I think ties into the eventing. Any events, yep, from the external trigger source, scale up the workloads. Okay, so event sources and scalers. So Kata has a wide range of scalers that can both detect if a deployment should be activated or deactivated and feed custom metrics from a specific event source. Okay, so that's cool. So going back to the VPA and the HPA, those are going to look at metrics, mostly by your workloads. This definitely looks like it's looking at things external to the cluster. I see a bunch of like really common things here like active MQ, I see rabbit MQ, there, Postgres, my MS SQL. Seems like there's a lot of different event sources that are available. Okay, yeah, so up here we saw scaled object in this architectural diagram. I see that down here inside of the custom resources as well. So when you install Kata, it creates four custom resources, scaled objects and scale jobs. So maybe that's two different types, trigger authentications. Obviously, all of these things are going to require you to authenticate to them in any real scenario. So that makes sense. Cluster trigger authentications. Okay, that probably is just a cluster-scoped one instead of having to do it in namespace. So I guess that this is probably the namespace resource and this is probably the cluster-scoped one. Cool, scaled objects. So this documentation seems really great so far. I can't be coming to this with no real knowledge so far. This is providing me a bunch of really useful information. So scaled objects represent desired mapping between an event source and a Kubernetes deployment, a stateful set or any custom resource that defines a scale sub-resource. That's cool. That covers a lot of ground. I see there's also a scale jobs and that's pretty cool. I think when I think about event-driven systems, jobs are one of those things that pop into my head pretty immediately. If I'm going to get a bunch of things in a queue, I probably want to think about them as being processed by a job, maybe stateful applications or some other thing can consume from them as well. But that really feels like a batch processing in a job sort of thing. So it's really cool to see that's a standalone sort of type inside of here. And then scaled objects or scale jobs can reference trigger authentication or cluster authentications which contain the authentication configurations or secrets to monitor those event sources. Okay, so that makes a lot of sense. I want to take a look at a couple of these scalers and kind of get an understanding of what they look like before we get into deploying KDA. So that's the next thing that's in this documentation, but I really want to know a little bit more about these things. It doesn't look like these are clickable. So maybe up here we can dive in a little bit more. Okay, it looks like it scaling deployments, stateful sets and custom resources. Okay, so we saw on the previous page that this is about mapping an event source to a thing we want to scale. So let's take a look at what the spec looks like and kind of understand what's there. So scaled object, yep. It's got some annotations that look like they're optional.  And a couple more optional things. And the first thing that looks like it's required here is that scale target ref API version kind. Those are going to be your typical Kubernetes kind of things you use to identify what you're going to use. And then the name of the thing we want to use. Okay, that looks like it's mandatory. By default it looks like it's going to work off of deployments from the V1 API group for that. So that's cool. It doesn't seem like we have to provide a whole lot of stuff there. So we could probably start out with just a scaled object and scale ref target that points at the name of it. Pretty cool. Looks like you can do a lot of customization too. So if you want to figure out what the container you want to scale up is, that's there. Looks like some extra config here. How often we want to pull for this? How often we want to wait for it to cool down?  Maybe we're not going to get into that since we don't have a ton of time to dive into things today. Okay, so like in this case we would be using apps V1 deployment because that's the defaults and then the name of the target. Cool. And then looks like there's just a whole bunch more documentation on all these fields. Maybe we'll come back to that in a little bit, but I think this looks like there's a lot of configurability into this tool. It'll check the trigger source every 30 seconds. You can tune that up or down if you want. What else do we got? Cool down period. I don't replicate count how many we want. I think one of the cool things about this is especially for jobs, you're going to keep them at zero but for deployment you can scale it to zero until it needs to handle any kind of workloads. That seems like a really cool feature that's built into this must be less than the minimum replica count. So minimum replica count defaults to zero. Okay, that's cool. So by default it'll scale it down to zero. It's a pretty cool feature that's built into it by default. Okay, there's that advanced configuration, a whole bunch of more advanced stuff. Okay, and now triggers I think this is the interesting part. The list of triggers to activate scaling of that target resource. So the things that are going to actually kick that off. The type to use some metadata, the name for the trigger. There's that authentication ref thing we wanted to see. Metric type. It's really cool that a lot of these things are optional. We probably out of the box don't need to provide a whole lot of information. That seems pretty useful. Oh, we can also pause out of scaling. That seems like a really, really beneficial feature to have as well. Bunch of modifiers. Okay, cool. There's a lot of really interesting configuration options in there. Let's go back up and look at the job one and see how that differs. So scaling jobs. So as an alternate to deployments, you can also run and scale your code as jobs. That seems pretty cool. Primary reason to consider this is to handle long-running executions. That seems like a good idea. Rather than processing multiple events within the deployment, you might want to spin up a job and handle that. So cool. This looks pretty similar, different type obviously, but we've got a job target ref instead of a target ref for the deployments template. It looks like it's a job template that you would use for defining a job. Okay, that seems pretty straightforward. The number we want to use and then same kind of looks like the same similar or similar parameters here. A little bit different for maybe rollout stuff. And then again, the targets, target ref stuff. I think maybe if we get down here to the bottom, we'll see triggers look kind of the same. Here's a really good example. In this case, we're going to do a scaled job that's going to read from RabbitMQ. And there's the job template. So instead of having to define a job in the cluster as a separate thing, we'd include that in the target ref. So that seems pretty cool. And then the trigger here is RabbitMQ. Okay, cool. So let's go take a look again before we get started at the scalars that are available. I think that's going to be an interesting thing to kind of guide what we look at next. So we've got, wow, 64 scalars available. These things are built-ins. Wow, that's pretty useful. A couple external ones. Seems like it's pretty adaptable and you can probably write your own to do a lot of that. But there seems to be a lot of built-ins that are available for us here. Let's take a look and see if there are anything that stands out to me that I can take advantage of during this session. Oh, Cron, schedule applications based on a Cron schedule. That seems pretty cool as a feature for deployments. Cron jobs are a thing that exists in Kubernetes as a primitive, but that seems like a really neat thing to do with deployments. So like maybe we'll come back to that. I've got an Nginx deployment handy that I could use for that. So that'll be kind of cool. I also see Azure Storage Queue here. I have an application just me messing around with the Azure SDK to kind of figure out how Azure Storage Queues work. So we could probably use that as well. Let's take a look at what these look like or how we use them. Okay, so this is that trigger section that goes into that CRD type as Cron. So that's probably, I guess, is the built-in name. And then basic metadata, when it should start, when it should stop, how many replicas we want, and the time zone. That seems pretty simple. So I think we can try that with my Nginx deployment that I've got handy. And then the other one was the Storage Queue. And for that, we've got the name of the queue, okay? The queue length. Queue length is the target value for the queue length passed to the scaler. If one pod can handle 10 messages, set the queue length target to 10. If the actual number of messages in the queue is 30, the scaler will scale to three pods. Oh, that's really cool. So if we wanted to run it with multiples, we could do that. That would be pretty awesome. Okay, activation queue length. This stuff seems like it's optional. Connection from environment variable. That's probably what we need for how we're going to connect to it. Looks like connection string is one way to connect to that. So I can get that info. That'll be cool. I also just pod identity or workload identity. So that seems pretty useful. We'll just use a connection string. I think that'll be the easiest thing to do for my kind cluster. I'm going to use that for everything today. Okay, so I think we've identified two scalers we want to try out, the Storage Queue and Cron. Let's give those a whirl and see what they look like. So first, we need to deploy Kata. Looks like there's a couple of ways we can do that with YAML files by themselves, Helm charts and Operator Hub. Okay, so let's give that a whirl real quick. I'm going to bring up a terminal window here. I'm going to make it a little bit bigger for everybody to see. And don't think I have a kind cluster right now. Let's make one. Yep, so let's do kind create cluster. Let's do give it a name. Call it clash, clash, chat loop back off. Okay, so while that's going, let us follow along with some of the Helm instructions that are there and do that while it's running. Okay, so Kata provides a GitHub repo for their charts. That seems pretty useful. So let's go grab that. Okay, Kata Core has been added to our repos and we're going to do Helm repo update. Okay, cool, so it's been installed. Okay, I've got a kind cluster now. QCTL, get nodes. All right, cool. Looks like it's running, but not ready yet. We'll see if we can power forward or if we get stuck. Okay, so next thing we're going to do is Helm install this into a namespace called Kata and create nameshaces. I think this is going to install the CRDs for us. So we'll check that out in a second. It looks like you can deploy them separately with this YAML file, but we're just going to do it all together. Let's do that. Okay, that seemed pretty fast. Looks like it spits out a couple of informations for us. Let's see if we have any scaled objects in our default namespace. Nope, okay, so we seem like we're good to go. QCTL, get pods in the Kata namespace. We've got our admission webhook running. That's cool. The operator and the metrics API server is running. So you can look at the logs and see if there's anything interesting there. Let's specify the namespace. All right, so it looks like the controller handles scaled jobs, scaled objects. We saw that before. The cluster trigger authentication, trigger authentication, we saw those things. It looks like cloud event source is another one that you can look at. I didn't see that in the docs. We can find that in a little bit and start rotator. Okay, that's pretty cool. So I think by default we've got this running. So we've got, again, those pods. And I think now we're ready to go and maybe try this out with the deployment that I have. So I started just figuring that I would need a deployment. So grab that thing. So we've got an engine X here. So let's just code that up and take a look. Okay, so in engine X, we've got a really basic deployment of engine X, right? So this is just a Kubernetes deployment. It's using, I think, the latest version of engine X and we want two replicas of it to start with. So let's apply that. Okay, so it looks like our deployment was created. Type correctly. UBCTL, get pods. Okay, so there's our two engine X deployments that are running. So I think the next step that we need to do is to create one of those scaled objects instances. So let's go, let's go do that. Gonna make a new file in here. Okay, there's our scaled object. Let's go grab an example of that from here and start with that. Back to the docs. Okay, so here's our full set of things. Let's drop it in here. Okay, so again, we're gonna work through this and remove some things. I don't think I need any of these annotations. They all seem optional. So I'm gonna remove that. We're gonna, the name is optional, but let's give it a name. We'll call it engine X scaler. Okay, and then our scale target ref. So our deployment is absolutely one deployment. So I think we can remove these two. I don't think we need those. Okay, and then this must be in the same namespace as a scaled object. So we've got that. Our deployment is gonna live in the same one. It's called engine X deployment. Let's call it that. Okay, this is optional. So let's remove that one too. Okay, all these things are optional. Gonna remove them just to simplify things for us right now. Advanced again, like stuff doesn't seem like it needs to be here. I think this will be the minimum set of stuff that we need for this. Okay, so now triggers is the field we need to fill out. So let's go back to the docs again and go back to scalers and we're gonna use cron for that one. So let's find the cron. This looks really simple in terms of like what we need to provide. So let's, let's give that a try. Okay, so type cron. We're gonna line that up. The metadata that is here is the time zone. So let's change this to, I'm in Denver, America, Denver. I think that's a viable time zone. Let's check real quick. Yep, America Denver. Okay, so we're good with that one. Okay, so it is currently 128 my time in America Denver. So if we start this on the 30 of the hour and shut it down on the, let's say the 32nd of the hour, that should be a fun little experiment to try. Okay, so this seems like it's good. Let's clean that white space up a little bit. Let's apply this thing. So we're gonna do cube CTL, apply dash F into next scaled object.yaml. Scaled object in version cannot be handled as a scaled object, strict decoding error, unknown field, failure threshold. Oops, this didn't need to be here because that was underneath of the failback info, the fun of live demos. Okay, let's try it again. Okay, so our scaled object is created. And if we look at what pods we have in this namespace, okay, those things are still running. Cube CTL, get logs, dash NKDL. Let's see if the controller, oops, cube CTL, get pods, dash NKDL. Let's see if the logs for the controller have anything about what's happening. Cube CTL, log, dash F. Oh, looks like I messed up. Ah, I think I messed up my data. And sure enough, I spelled it ND instead of end. So now let's apply that again. Okay, let's get the logs and see what's happening. Oh, okay, cool. So it looks like it picked it up already. Successfully set the scale target to min replica count, new replica count, zero. So I bet if I do cube CTL, get pods. Yeah, so my NGINX things are gone. So I think if we wait just a second, it's 130, timed that pretty well. This should scale us back up in a second. I think the timer that it's working off is 30 seconds. So maybe we've got to wait 30 seconds for this to go through. Yeah, oh, cool. Looks like it's working. So now if I do cube CTL, get pods. Yeah, one is running. That's really awesome. So I think I could envision using this for things that I want to run during the day. I think especially pairing that with a cluster auto scaler that maybe brings nodes up and down for me. I could probably set my cluster auto scaler to remove the worker nodes for me and then set this to maybe start my application up during US business hours if I needed something to be running while people were in the office or something. It seems like a pretty cool use case and make sure it's not running all the time. Maybe that's a good energy saving thing for thinking about environmental aspects of things. So I think this is going to scale up again. Let's see what's happening in the logs. All right, scaled it up. Not sure why it's got so many. Did I set that in the scale? Oh, desired replicas 10. That makes sense then. Didn't see that I copied that. So I think if we set this to a lower number, that would definitely give us more of those or less of those. Let's change it to one and see what happens. See if we got this thing running again. Probably got to wait 30 seconds again for that. It's still running. Let's wait and see what happens. Looks like it just ran 30 seconds ago or so. Maybe we got to wait just a little bit longer. Or maybe it's done actually. No, 32 is 32 now. So maybe it's going to scale this down to zero. Don't know. Let's go back and look at the chron box and see what that says. Chronic expression indicating the end of the chron schedule. The chron scheduler allows you to define a time range in which you want to scale your workloads out and in. When the time window starts, it will scale from the minimum number of replicas to the desired number.  Okay, so that's interesting. I think I kind of would have expected it to scale this down based off of the number that are there. Those are scaled up originally. I think I would have expected like a new replicas count to see a new scale target. Let's see what our scaled object says. Yeah, a desired replica count is one. So it should be good. Nope, they're still running. I guess maybe that documentation is not super clear. I think this is a thing I'd want to look into a little bit more for that. But it seems like a pretty useful thing to start with. Maybe it just doesn't scale down. Okay, well, I think that's useful enough. I don't want to spend too much time kind of digging into that. Maybe we can come back to that in a second. Actually, let's check one thing. Let's edit that. Set this to 35 because that's almost what time it is. Set this to 45 just to let it go for a bit. I want to set it to desired replicas one and make sure that it actually scales down. So let's Cube CTL apply that one more time. Ten are still running. Let's see the logs. Yeah, so it's just a new replica count to one. So we get the pods now. Our desired replicas is still set to 10. So I guess I would have expected that to scale to one instead of 10. It seems like an interesting one. Yeah, start to 35 ends at 45. Desire replicas is one. I'm not sure why that is not doing what I would expect there. If anybody in the chat has any suggestions, we'd love to hear them. If you've used the cron trigger before, that'd be super useful. Oh, they're good. Like I said, I just didn't, I got impatient and didn't wait long enough for things to reconcile. So the cron thing did kick in here and did give me one running between that cron period. So that's pretty cool. So I think that seems like it's significantly working at this point. Okay, so the next one I want to use is Azure Storage Q. And this one takes a Q type or a Q name, the length we want, activation Q length, a connection from environment variable. That one seems a little weird. Name of the environment variable for your deployment to use. I wonder if you can use this with jobs or not. Maybe not. So let's give this a try. So I do have a really simple go application here that connects to, uses the Azure SDK for go and connects to a Q and tries to dequeue a message from it and just run it. So if I run that thing, it's something like, hold it real quick. Okay. Q reader. Okay, so it needs to have those environment variables and stuff set. So what I'm going to do is stop sharing my screen for one second just so I can set a secret variable that we don't want to share on the YouTube. And then I'm going to come back over here, set those, and then we'll use the Azure CLI real quick to see if we can pull those things down. Okay. Thanks for bearing with me too. This was a little scary that I didn't see things scale up when I expected them to. But I guess that's the fun of trying to do things live when you haven't used them before and you don't really know exactly what's happening behind the scenes. We'll take a look at the logs again. Maybe we'll have a little time at the end. Okay. So I have now set this. I should be able to go back and share my screen one second. Okay. I just created a new queue called CLBO. Let me share my screen. Go back to that. Okay. I'm running the az storage message peak command. I take a second. Oh, I spelled message wrong. Okay. So there's no messages in that queue right now. So if I run, I built that thing. So if I run queue reader, no messages to print out. Okay. So it looks like we need to run that as a deployment. So let's make a new deployment for this thing. I didn't have that before. Let's copy our engine next one over just to make it easy on ourselves. Next deployment YAML here. VS code. Actually had that here. Okay. So here's our deployment YAML. We're going to change this to queue reader and queue reader. Let's start with zero. So we can see it scale our thing up for us. I think that's, that'd be the most interesting thing to see. We want to scale it up when there are actual messages in the queue that we want to read from. Okay. And then we'll call that queue reader. And I already pushed this to docker hub. Okay. So there's my queue reader image. Sort of latest. Okay. That's cool. Let's run this deployment. Okay. So now I would expect to see no pods. Yep. Okay. One thing that I know that I'm missing here. I'm going to need secrets for this thing to connect to. So let's go back to here. Okay. So made one of those while I was off screen too. So let's keep CTL applied. Constring. Okay. So now we've got, okay. We have a secret called Azure connection string. So let's go back here to our friend CLBO. And what we're going to need to do is add the environment variables into that. I never remember how to do that. So let's go look up the docs for that real quick too. Use secrets in Kubernetes deployment. Secrets as environment variables. Okay. So we want, and name from what it's going to come from. Okay. So let's give that a whirl. Okay. So we've got and this thing expects connection string. And the key for that is going to be, what did I call that? I think I just called the connection string. We'll give that a shot and see. And then we also need the Q name. Q name. Be this again. Secret. Actually the secret we want is Azure connection string. So we've got to fix that. And this one I think is called connection. Sorry. This one I think is called Q name. Okay. Let's scale this up to one and see what happens before we try to scale anything on it. Okay. So let's apply that real quick. Oh, my YAML is bad. I'm 28. Invalid value. Okay. M secret key ref. Okay. So what did I mess up here? Oh, indent, indent, indent. Perfect. Okay. So now it's creating an error. Why did it error? Cube CTL logs dash F. Okay. So pull the image, but it's failing. So why is it failing? What does that command? Cube CTL logs the name of the pod. Okay. So Cube CTL get pods. Cube CTL logs dash F dash dash previous. Oh, it's not, not running correctly. Q reader, no such file or directory. Okay. So let's take a look at what's in our image. This is right. You build this real quick. Okay. Yeah. So it looks fine. So let's, okay. So now let's run that again. Okay. So that looks good now. So now if I go back to my Kubernetes cluster, let's delete the thing.  It seems pretty appropriate that I had a crash loop back off during CLBO. Okay. It aired again. Let's see why. Oh, okay. So I'm unable to connect to the queue. The connection string is blank or malformed. The connection string should contain key value pairs separated by semicolons. Okay. Let's see if we can figure that out. So I would guess that something's wrong with my secret here and connection string. Okay. I'm going to stop sharing for one second because I'm going to show another secret value. I only have one screen too, so I can't do the top screen. Keep CTL get secret as your connection string. Oh, yeah. Okay. So our connection string base 64 encoded value is that looks like it's correct. Maybe it's not getting it correctly in the secret. It is called connection string. That should be right. There is a extra character in my string. That would do it. Let's fix that real quick. We've only got a few minutes left, so maybe we won't get through this, but thanks for stumbling through this with me. I think it's been an interesting learning experience so far. I can definitely see where this tool would be really, really useful for a lot of use cases. Okay. So we're going to do, recreate that secret. There's a quotation mark at the end of that, I think. Okay. Almost ready to try this again, I think. Create a secret. Let's do it. Okay. Almost ready. One more second. I am making a mistake. Okay. So now I've got my secret again. Let's give us another shot. All right. Sweet. Not so sweet. It failed again for the same reason. Okay. Well, I'm going to not try to run that thing, but I think you, I think we kind of know where that was going. So that was, that was my bad. Sorry about that. But I think one thing I did want to show is that, okay, we're sharing again. All right. So same error, right? I recreated the secret. So something I'm doing with creating secret is not quite right with what's in there. It looks like this, but something, something's missing from it. But if you remember, we had those NGINX deployments running, right? So we still have QPCTL get deployments. Oops. QPCTL get deployments. There's our NGINX deployment. It scaled to zero. So I think if we looked at the logs again, we fell out of the 45 minute mark of the scale object config for that cron trigger. And it definitely scaled my thing back down to zero after running for a little while. So that's cool. It was at minute 49 afterwards. So a little bit of time after the window happened, but I think that is really, really cool. Having the ability to scale a deployment up and down on a cron schedule, that seems like a really powerful thing to use. And I definitely can see the value in all these other scalers. Let's go back to the Cata docs. So instead of using this kind of workflow where you're only scaling things off of those metrics that are coming from the metrics server, having the ability to use all of these different scalers is pretty cool. There's a real extensive set of things in here. I think that's really cool. Obviously, it's kind of weird that it provides things like CPU metrics. Those are some things you might get out of existing metrics integration, but there's a really interesting set of things like scaled GitHub runners based on the number of Q jobs in GitHub actions. That's really cool, especially if you were trying to self host some self hosted runners in a Kubernetes cluster. That's a pretty cool way to do it, especially if you're really trying to make those things ephemeral and go away when they're not needed. That's a really, really cool. I didn't even see that when I was scrolling through before, but that's really cool. I'm doing a bunch of GitHub action stuff in my day job today and kind of understanding how to scale runners up and down. That's really cool. I'm going to come back and take a look at that sometime later today. Do we have any questions? Anybody want to ask anything? Anyone want to share anything about using Cata? I think that'd be really fun. If anybody has any experiences with Cata, it'd be really awesome to hear your experiences with it in the couple minutes we've got left. Ted said thanks for running the session. It was really awesome. Thank you for attending. I think hopefully you learned something along with me today. Sorry, I wasn't able to get the second example running, but hopefully the crown example kind of shows you the power there. Let's go look at that config again real quick. There's not a lot of data that we needed to put in here, really just the name of the deployment we wanted to use right here, and then the data for our trigger. That's kind of good to go after that. That one was pretty easy, just kind of waiting around for things to run, I guess was my failing. But I think that was really neat to see in action. I think for this one, we would do something similar, scaled object we pointed at the other one, and then really the only thing they would need to change would be this configuration down here, kind of hung up on that connection string for the Q reader, but other than that, I think it would have been pretty much similar. I think those concepts kind of carry over and transition over to the other ones pretty well. All right. Well, thanks everybody again for joining us today. I'm going to stop sharing. I hope you learned something today. Come back and check out the next episode of this. I think there's a bunch of really cool topics that we'll see going forward. If you have suggestions and reach out to Jeefy maybe and suggest some projects you'd like to see on the stream going forward. Thanks for joining me. I hope you everybody has a really awesome day today.


My discipline was integrated when I started wrestling. I mean, I don't believe the military was a challenge when it came to instilling discipline in myself due to my time in wrestling. I mean, between being hard on yourself, coaching, technique, drilling, for four, six years that you're doing that after a while, you really become disciplined in dealing with your own body, your own technique, your skills, and you know, over time, being told what to do and taking criticism comes pretty easy. When I was an Airman, I would wrestle a little bit in Italy, do a little bit of freestyle and Greco wrestling with some of the Italians. And I was kind of reckless, and I just wanted to wrestle some kids that when I came back from overseas, I just found anyone in the local neighborhood that would let me at least help out in terms of coaching, but after the hurricane, one of the paid assistant coaches couldn't do it anymore, so I took over full time as a volunteer. The kids say they love the way I teach them. I'm kind of hard-nosed, I don't accept excuses, I won't take you as you are, I want you to be the best version of yourself that you can be, especially when it comes to wrestling.  I know what wrestling did for me, and I hope what it did for me, I'm doing for those kids as well. It took me from being a freshman who thought I'm 103 pounds, I'm not even going to make varsity on baseball, to a two-time state qualifier going, and succeeding on a level at only 125 pounds, I mean, I may not look big, but I wasn't messed with in high school because I knew how good of a wrestler I was, and it just, it made me discipline, I appreciate every bit of work and effort I put into it, and every bit of effort and time that my coach put into me, because although I didn't see it at the time, it changed the way I look at life after high school. In the military, like I said, the discipline was there before I even got in, and I'm just grateful for everything that's done to me.