The Herald Perry Show! And now, Herald Perry, as Honest Herald, the homemaker. Well, let's look in on the little town of Melrose Springs, home of that popular radio entertainer, Honest Herald, the homemaker. While we're at it, let's look in on the home of Honest Herald, where he's just coming in to breakfast. Well, good morning, Mother. Oh, good morning, Harold. Sit right down. Breakfast is already. Yeah, and so am I. Lead me to those hot cakes. I suppose little Marvin's going to be late for breakfast again. Well, I suppose so. I don't know why that boy always has to wait the last minute to get up, Mother. Every morning he comes charging in here like the Cannonball Express. Bolts his food down without chewing it. I'd hate to be his esophagus. Oh, Harold. Here, I'll pour you a coffee. Yeah, thank you, Mother. Really ought to talk to the boy, though.  Good morning, everybody. Why, good morning, Marvin. Marvin, you're up early. What happened? Oh, I just thought I'd get up in plenty of time, so I wouldn't have to rush through my breakfast. Why? I want to chew my food thoroughly. Ha. And I wouldn't want to be late for school. I wonder if he could be sick. And when I get up early, it gives me time to wash behind my ears. Oh, brother, now I know he's sick. Let me feel your forehead, Marvin. Oh, I feel fine. Harold, you don't have the morning paper. Let me get it for you. What? You sit right there. Be right back. I better feel my forehead. Mother, what's Marvin on his best behavior for? Christmas isn't coming. No, but something else is. What's that? The circus. The circus? Oh, sure. I should have known. Oh, that little rascal. Here's the paper, Harold. Well, thank you, Marvin. May I butter your toast for you? No, thanks. Marvin. Yes, sir? You know, I just thought of something. The circus is coming to town today. Oh, it is? What a ham. I suppose all your little friends are going. Yes, I suppose they will. And I guess you'd like to go, too. Well, how did you know I wanted to go, Harold? Well, you were sort of on your good behavior this morning. Well, I guess I did put it on a little thick. Then you'll take me, Harold? I sure will, my boy. You and I will be right there on the front row tonight. We'll have a wonderful time. Gee, we sure will. Harold. Yeah? I have a confession to make. I didn't really wash behind my ears. You didn't? Well, I'm glad, my boy. I was getting kind of worried about you there for a minute. Little Marvin. Funny how a little thing like a ticket to a circus can make a boy so happy. I remember how excited I used to get when the Pollock Brothers Circus came to town and paraded down our main street. I didn't notice that circus poster on the side of the feed store there. Gosh, look at those wild animals. Lions, taggers. Hey, look at that bearback rider. Cute spangles. And that fellow next to her, the human fire eater, must be her old flame. Glad nobody heard that. Well, it's certainly going to be a lot of fun. Oh, Doc, I thought somebody was stripping their gears. What? Yeah, skip it, Doc. Oh, looking at the circus poster, huh? Yeah. Hey, who's that up there in the corner? Why, it's General Grant. Better put on your glasses, Doc. That's the bearded lady. Well, I suppose you're taking Marvin to the circus tonight. Sure am. Then it's your time. Howdy, boy. Well, Pete. Good morning, Marshal. Say, that circus poster's a humdinger, ain't it? Yes, it sure is. Well, I do declare. Just look at that fellow balancing himself way up at the top of the tent. Yeah, what's he carrying that umbrella for? Maybe the tent leaks. Yeah. Say, Harold, what's that fellow walking on up there? High wire. Hi, Harold. Hey, Harold's going to the circus tonight, Pete. You are, boy? Well, of course, just to take Marvin. We're growing up. No fun for us to go to a circus. Oh, of course not. Why, that's kid stuff. Sure, kids. What time are you two kids going to be there? 8 o'clock. Me, too. See you tonight, children. Bye. Bye. In case, JP, just a moment. I'll connect you. Well, good morning, Gloria. Good morning, Harold. Do you look happy this morning? Yeah, I feel wonderful, Gloria. I'm taking a little Marvin to the circus tonight. He's really looking forward to it. I bet he is. Doc and Pete are going, too. You want to come with us, Gloria? Oh, thanks, Harold, but my mother's taking me. Oh. What side are you going to sit on? I don't know yet. Oh, I just... Hold me, will you? Yes. I just love to see the circus. It's so exciting, especially the lion-taming act. Yeah, it's pretty thrilling, all right. Yes, but I hope the lion-tamer has better luck than he had last year. What do you mean? Well, he kept holding that chair out to the lions, but not one of them would sit down on it. You should have sat on that joke. I did. And? And I just can't wait to see that Professor Faria. Professor Faria? What does he do? Well, he gets shot out of a cannon twice a day. Yeah, bet he gets a charge out of that. What? Oh! Well, it's time for my broadcast. See you later. Hi, Gloria. Well, radio listeners, that's about all of Honest Harold the Homemaker for this morning. However, before I sign off, I'd like to sing one more little song. Seeing all the circus posters today sort of took me back to my childhood. When I was younger, I used to hunger to climb up the ladder of life. Now that I've grown up, I might as well own up. It's not worth the worry and strife. Things that I wanted were paid for with blessings I cannot recall. And all that I had, I would trade for the things I considered so small. Oh, I'd be more than satisfied if I could hide away beside a babbling brook. Drippling waters call me far away to a quiet, shady knoll. And through the woods I long to hike to linger where the world is like a storybook, like a lazy, daisy gazing at the sky. Let me live in love and let the world go by. I'd be more than satisfied if I could hide away beside a babbling brook. A lazy gazing at the sky and let the world be satisfied if I could hide. Well, Harold? What's the matter, Gloria? I've got terrible news. The circus isn't coming. Isn't coming? Why not? The circus trucks are stuck in the mud at Ruda Baker Junction. Oh, my goodness. Gee, Harold, I'll bet Marvin will be disappointed. Oh, he sure will, the poor kid. And he almost washed behind his ears this morning, too. Well, mother, did that little Marvin come home for lunch? Yes, he's sitting out on the bank porch. Well, does he know about the circus? Yes, he does. I guess he feels kind of bad, huh? Well, why don't you go out and talk to him, Harold? Well, all right. Hope I can cheer him up a little. Hello, Marvin. What are you doing, my boy? Nothing. Just sitting here. Well, Marvin, I'm sorry about the circus not coming. Yeah. I know you're disappointed, but what the heck? The circus will be here again next year, and you and I will go and have a wonderful time, won't we? Sure. Want to get down to the drugstore and have an ice cream soda? No, thanks. Speaking of ice cream, Marvin, did you ever hear about the comical marshmallow sundae? It acted so funny it made the banana split. Anything else you'd like to do, Marvin? No, thanks. Say, Marvin, I just got a wonderful idea.  The movies? Yeah. They got a wonderful picture at the Bijou. Jimmy Stewart's in it. There's a real exciting scene in it where the villain tells Jimmy he's about to shoot him. And Jimmy says, Yeah. Yeah. Yeah. Would you like to see that? No. I think I'll go back to school. All right, my boy. See you later. Yeah, see you later.  He sure looks unhappy, kicking that can. He's scuffing his shoes too, but what the heck? Circus is a pretty important thing, dear boy. I wish there was something... Oh! Oh, hello, you old mule medical. Hey, Harrah, I heard about the circus not coming. Yeah, Marvin's pretty disappointed. Oh, I know, Harrah. I'm sure all the boys are disappointed. I'm afraid so. That's why I came over, Harrah. Those children are going to have a circus after all. What? Who's going to put it on? We are.  That's beside the point, Harrah. We can have the circus right in my backyard. Have pink lemonade, peanuts. But, Doc... We can use my animals. We can paint stripes on Arthur the Goat. He'll be a man-eating tiger. You mean can-eating tiger. And my horse, Silver Moon, can do a mind-eating act. Silver Moon? Why, yes, that horse is very intelligent. She can count up to ten without using her toes. I don't know, Doc. We can't put on a circus. Now, Harrah, the kids are expecting one. Why, I bet they'll love it. Anyway, it's the spirit of the thing that counts. Maybe you're right, Doc.  And, Harrah, you can be the ringmaster. I can? Well, that'll sound pretty good. Ladies and gentlemen, your attention, please. I want you to meet the only knock-knee bald-headed Dodo bird in captivity. Harrah, are you looking at me? Why, Doc? We will return for the second act of our story, Honest Harold, in just a moment. A little later on CBS Tonight, Bing Crosby will play host to Trumpeter Louis Armstrong and the former child star Rose Marie. On CBS Wednesday Night Fight broadcast, undefeated Chicago Vahar will meet Billy Murphy of Brooklyn in a welterweight battle at New York St. Nicholas Arena. Be listening for the fight and for the Bing Crosby show on most of these same CBS stations. And now, back to Harold Perry, as Honest Harold, the homemaker. Well, this is circus day in Melrose Springs. Real circus couldn't come to town, but Honest Harold and Doc and Pete are determined to save the day. They're going to put on a circus of their own for the youngsters of the town. In fact, they're getting ready for it right now in Doc's backyard. Come on, Pete, help me put this plank on those boxes. Okay, boy. These boards will be the bleachers. All the kids can sit here. We were to put up a sign management not responsible for splendors. Well, a few splendors won't hurt those little shavers. Say it's beginning to look real circusy back here. All those pennants hanging on the clothes line. Say, this pink lemonade is pretty good, too. Pete, leave some for the kids. Oh, sure, Harold. Now, where's Doc? You've got to get this thing rehearsed. Kids will be out of school at three o'clock. He's in the house putting on his lion-taming suit. Oh, my goodness. He doesn't have to put that on now. Why doesn't he come... Here he comes now. Oh, look at that outfit. Sun helmet, khaki shirt, putties. Looks like a fugitive from an army surplus store. Well, I'm all ready for the big lion-taming act. Don't I remind you, Frank Buck? You remind me more of Sears Roebuck. Here. Okay, Doc. You look great. How about having a little rehearsal, huh?  He's a wild woolly lion now, Harold. Okay. All right, Pete. Here we go. I'll make the opening announcement. Ladies and gentlemen, we'll begin the greatest show on earth with a circus overture by our one-man clown band. Pete, that's you. Oh, just a minute, Harold. Where'd that put that kazoo? Here it is. One, two. Guy Lombardo. Well, anyhow, Harold, we all finished together. Yeah, but not soon enough. Oh, I wouldn't say that. And now, in the center ring, we present that world-famous animal trainer, Dr. Quinton Yancy and Gilmore, the most ferocious lion in captivity. Okay, Doc. Yeah, all right. Come on, Gilmore. Arthur the Goat certainly doesn't look much like a lion, even with that dime-store mask. Oh, well. Stand back, everybody. Gilmore is a very dangerous lion. Roar, Gilmore. I'm the dangerous feat of putting my head in the mouth of this ferocious beast. Ferocious beast is licking Doxy. Now, Arthur, stop that. Stop it. You're supposed to be a dangerous lion. I didn't mean to hurt your feelings, Arthur boy. Oh, no. Will you ever forgive Docky-Wocky? Docky-Wocky. What a wild animal act. Now they're holding hands. Doc will take this later. Now, all right. Come on, Arthur. Pete, lesser hurts are Wild West Sharpshooting Act, huh? Featuring Wild Bill Hemp. That's me. Well, now, wait. Let me get this straight, Harold. What am I supposed to do? We've gone over there six times, Pete. We've tried out on Dock's horse Silver Moon dressed in a Buffalo Bill suit. Buffalo Bill suit. Let me write that down. Yeah. And I have a rifle loaded with blanks.  You're one. I'm a blank. Let me write that down. Now, you hide behind that target on the fence there.  Hit target with hammer. Let me write that down. Should have been right the first time. Okay, Pete. Now, get behind the fence. They got you, boy. Ready? We'll try it. Bang! Pete, I said bang.  Things I go through for Marvin. It's too corny. That's why it sounds corny. I'm sorry, but I don't want to go. Tony. Yeah? Would you go if I gave you one? Your new top? Oh, that's different. Okay, I'll go. It's a deal. But I still say it's going to be corny. It's going to stink. Awful disappointed if nobody comes. Why should I go? It's going to stink. I'll give you my box kite. Are you throwing your flesh, Gordon Ring? Can Oscar your garter snake? Gee, you're skinny. You want an awful lot. Well, I have to sit through a circus that stinks. I'm going to go. I have to sit through a circus that stinks. Okay. I go through for Harold. You go to the circus and I'll give you my junior G-man badge. You said you'd go to the circus if I gave you the shirt off my back. Just a minute. I'll take it off. Hold still, Harold. I don't want to stick you with this needle. All right, mother. You're going to look real handsome in your buffalo bill suit. Oh, thanks. I'll be through sewing on this patch in just a moment. I don't think it will show. Guess not. I'll be sitting on a horse most of the time. You know, son, I think it's just wonderful you're putting on this circus for the youngsters. Well, he wanted to make Marvin and the other boys happy. Well, I'm sure you will. Say, mother, where is Marvin? He left a little while ago.  Neat? Yes, he completely cleaned out his room today, carried away all his toys and things. Well... Oh, hello, Marvin. Say, you're not wearing a shirt. Uh-uh. It was kind of hot, Harold. I took it off. Oh, I see. Well, I suppose you're pretty excited about the circus this afternoon, huh, Marvin? Yeah. I guess your little friends are all excited, too. Sure.  Understand you're all cleaned out. I sure am. The circus is going to start. Yeah, I'm getting tired of sitting on this plank. Me, too. It's got splinters. Quiet, Tommy. I gave you my top, didn't I? Okay. Here comes Harold. Well, glad you all came out this afternoon, and we hope you like our little circus. It's gonna stink. Quiet. Skinny Harold will hear you. Hey, Mr. Hip, you've got a patch on your... Wait. Well, we'll start our thrilling performance with an overture from the clown band. Take it away, Pete. Harold. Pete, play the overture. I can't, boy. Art of the goat ate my kazoo. Oh, goodness. Ain't that a doozy? What a circus. Well, next number. We now present the parade of the Jungle Beast. Okay, Doc. Coming.  Oh. And here they come. First, that man-eating leopard. A cocker spaniel with spots painted on it. Don't you get too close to who follows these dangerous... Are you kidding? Well, the next Jungle Beast is the mighty elephant. Gas mask. This circus stinks. Oh, my goodness. The cow scares the dog. Carnes. Don't you recognize Daisy? Oh, Doc, get those wild animals out of here. Well, that concludes the parade of the Jungle Beast. Thank goodness. And now the world's most daring wild animal trainer, Dr. Yancey and his ferocious lion. What is it, Doc? Arthur isn't a lion anymore. Why not? He just ate his mask.  The next act will be that famous marksman of the Old West. Honest, I mean, Wild Bill Hemp. Get by in the target, Pete.  Now I will give you a demonstration of some real sharp shooting. If Pete doesn't forget, I'll just take my trusty rifle here and watch me ring the bull's eye. Here goes. Pete. Oh, look at folks, that was my delayed shot. Watch this one. Really nothing to it. I'll show you again. I think I'll try a trick shot. I'm gonna put my rifle between my legs. Beat you to it that time, boy. Look at you. Intermission, folks. Terrible. I gotta give you your top back and go home. Me, too. I wish you hadn't taken your flesh, Gordon Ring and your garter snake. Please don't go, fellas. Hell, to be awful disappointed. I'm sorry, Marvin, but this just... Hey, what's that music? Sounds like a circus band. Hair! Hair! Huh? Glory just called up. The real circus is here. It is? Yeah, they got the trucks out of the mud. They did? The circus is going to play tonight. Oh, isn't that wonderful, fellas? Here, that's getting it. Yeah. They're parading up Main Street right now. Come on, let's give it a go. We don't want to miss that parade. Wait a minute, fellas. We sure don't, Pete. Come on, Harry! What about all these... Yes, I'd get a go, too. Oh, hello, Marvin. Hello, Harold. Well, Marvin, tonight you and I are going to go to a real circus. That'll be swell. I thought your circus was swell, too. You did? Thanks, my boy. It was nice of you to get all those boys to come. That's all right. In Marvin, after we see the parade, I think I'd better buy you some new toys. I wonder where they sell garter snakes. You have just heard the Harold Perry show, Honest Harold. The supporting players tonight included Jane Morgan, Harley Bayer... Who played his own kazoo. ...Stuffy Singer, Sammy Ogg, Johnny McGovern, David Light, and featured Gloria Holliday as Gloria, and Joseph Kearns as Old Doc Yack Yack. Norman McDonnell directed, and the music was composed and conducted by Jack Meakin. Honest Harold, created by Harold Perry, was written by Jean Stone and Jack Robinson.  Anne Baxter will star in this unusual thriller called The Thirteenth Sound. Be listening for Anne Baxter on suspense, tomorrow night on CBS. Stay tuned now for the Bing Crosby show, which follows immediately on most of these same CBS stations. Bob LeMond speaking. This is CBS where you meet Mr. Keen, tracer of lost persons every Thursday night. The Columbia Broadcasting System.


I have a confession. I was wrong about Carson Wentz. The good player, great player, above average quarterback in the NFL. But I thought that this season was going to be a season where he gets back to his MVP status that he was at in 2017, or at least play like he was somewhat close to reaching that level. And then after I watched that Sunday night game against the Dallas Cowboys, watched it in full, went back and watched some of the plays that he made, I don't think he's capable of going back to that MVP status like he was in 2017. Something has to happen. Something has to prove me wrong in order for that to, for me to change my mind on that. But I believe that Carson Wentz at this point, very good player, good quarterback, talented. I love him. And I don't think at any point he should be benched. That's, no, I'm not saying he should be benched for Jalen Hertz. I'm saying he's not going to be one of the elite quarterbacks this season, maybe even next season, maybe even this season, maybe for his whole entire career. And I'll explain that in a little bit right here. For a second, I thought it was because of the lack of talent on that Philadelphia Eagles team. You saw the injuries that they had. And in this game against the Dallas Cowboys, they didn't have all their players. I understand. But I really wanted to analyze. I wanted to really look back because I was watching that game against the Dallas Cowboys and I thought to myself, Carson Wentz really does not look that good. There has to be something has to be wrong here. What's going on with Carson Wentz? So I went back courtesy of NFL Game Pass, went back and watched all the plays that Carson Wentz made. And what I noticed when I was watching those plays was that he was making some pretty bad decisions. It looked like as if Carson Wentz was trying to put the team on his back and do way too much to make up for his team not having much. And I'll explain that in a sec. By the way, I'm no NFL scout. I'm not. Okay, so this is just what my eyes tell me just from being a fan of the NFL for so long for over a decade and watching game after game every single Sunday. I try to watch every single game. But this is just what my eyes tell me. So Carson Wentz, let me break down some plays that he had, some mistakes that he had. There was a fumble caused by Layton Vander Esch, the Cowboys linebacker in the second quarter. That was not his fault. That was just bad protection by the offensive line. But in the first quarter, there was another fumble that Carson Wentz gave up and that was completely his fault. I don't know if you guys watched that game or remember this play. But it was a play when it was, I believe, second and long, second and 16 something around that nature. He had a lot of time in the pocket and I get it. It was a coverage sack, good, good defense by the Dallas Cowboys. But instead of throwing the ball away and just giving your team another chance on an extra third and long down, he rolled out of the pocket to his left away from the opposite throwing hand, try to get some more room, some more time, got rolled out of the pocket, not his biggest strength. And instead of throwing the ball away, even when you're outside of the pocket to save the play, he decided to try to heave the ball, try to make a play happen. And while he did that, he got sacked in the process. Okay, that's fine. He got sacked in the process. And when he hit the ground, before he hit the ground, he gave up the ball. Poor ball protection by Carson Wentz in that instance and big mental mistakes that Wentz would love to have that play back. And that was completely his fault. That turnover was his fault, giving up that ball, giving up the turnover on that fumble and that sack when he could have thrown the ball away. A couple of interceptions that he had in that game, both by Trayvon Diggs, the brother of Stefan Diggs. There was an interception when he was throwing it to Hightower on a deep pass. Hightower was kind of running towards the right side of the field. Carson Wentz did a poor job of leading his receiver in the direction that he was heading. Instead, while he was trying to hit the or roll out to the right side of the field, Carson Wentz just threw it straight up straight in that direction, not towards the right, but straight. And that caused the Hightower to readjust, try to make a play. And at that point, he was just underneath the ball. But Trayvon Diggs had a step ahead of him and he was able to intercept that. That interception was Wentz's fault. Another interception. This was targeted to Jalen Rager in the red zone. Trayvon Diggs made another interception. But this one, again, rolling out to the right, throwing towards the right, you had Jalen Rager open, was boxing out.  Instead, threw a little bit out of the reach of Jalen Rager and into the hands of Trayvon Diggs, who was past Jalen Rager. And it was an interception. Another interception that was Carson Wentz's fault. So I'm bringing this up because I really, in my head, I thought for the longest time, it's because of the lack of talent. It's because of the receivers not being that great because of maybe those plays where miscommunication, maybe they're just not on the same page. I don't know. But from what I was seeing in that Sunday night game, and what I could tell was that it was Carson Wentz who was underperforming in that game. So what does that mean? First off, if you play fantasy football and you have Carson Wentz on your team, that does not mean that you need to bench him and that you need to drop him. Not saying that at all. I still believe that he's capable in some games if the mattress is right of putting up 20 or more fantasy points. I believe there was a string of, before the status cap was game, there was a string of five games where he had over, or he was averaging 23 fantasy points a game. Don't give up on Carson Wentz and fantasy football. But I believe, like I said earlier, that Wentz is trying to make up for the lack of talent on this team by doing way too much. It's just a matter of Wentz. Just ease it.  You're amazing. We drafted you first round, picked two in 2016 because of your talent level. We know that you can get it done. Just ease back just a bit. You don't have to do way too much. That sack and that fumble on second and 16, you're trying to do way too much when you could just throw in the ball away. Give your team another chance. So he is trying to make up for the lack of talent on that Eagles team. However, the question is, do we believe that he's going to get back to that MVP season or that level that he was at in 2017? At this point, if I had to pick a yes or a no, it's going to be a no. And that paints me to say it because, number one, I love Carson Wentz and I want him to succeed. And number two, I believe he was going to. And it's just I'm out here saying that I was wrong about that. I really do. So above average quarterback, yeah, he's going to have some seasons where he's going to be a top 10 quarterback. And he's the best choice for the Philadelphia Eagles. And he can lead them to at least a Super Bowl. But as far as winning another MVP award and being in the likes of the conversation of people like Russell Wilson or Patrick Mahomes or Tom Brady or Drew Breeze or any of those good quarterbacks, Aaron Rodgers in that conversation, I don't know, I think is a tier or two down from those players. So definitely interact with us and let me know your thoughts on Carson Wentz.


There's one thing that I haven't done on this channel and that is show you all of my Nintendo Switch physical games in one video And today is such a day. Welcome to my channel everyone.  All of these covers except maybe a couple are European how or whatever version and cover and that may explain why some of the covers may look Different or unfamiliar to you, but we're gonna start off with two games that Nintendo of Norway sent to me We have me Topia, which is a new game. I have played it a tiny bit and I have a good first impression so far I have created people that I know and myself It's just so much more fun if you create people that you know because they will be within the story of the game without make sense I like it so far, but I need to play it more of course as I do with a lot of games And I also got this one and I still haven't gotten to open it and try it It's DC superhero girls teen power a mouthful of a title, but it looks fine and it looks cute I will maybe play that today today is such a day for such things So here's the rest of my collection and I have to say I'm not a collector I just happen to have games and that becomes a collection because I bought games to play them here We have the witcher 3 and what can I say? It is probably let me correct that It is definitely not the best way to experience witcher 3, but it is I don't know amazing in some way I guess that they managed to squeeze this on the switch The switch is basically not in my opinion powerful enough to run this properly because it looks really muddy on the switch But it is very nice for the witcher fans that are I don't know taking the train a lot and Do a lot of gaming on the go so that you can get Witcher 3 in handheld here. We have Hyrule Warriors definitive edition. It was one that I was actually Tiny bit disappointed with but I can say here. We have it I enjoy Hyrule Warriors age of calamity way more already This is gonna be an unpopular opinion, but I feel like the graphics in Hyrule Warriors age of calamity are not good Looks very pixelated and blurry, but the gameplay is you know where it's at and the world The setting is within breath of the wild really nice speaking of a breath of the wild Here we have my first game that I got for my switch It should be your first game too, but I have actually heard about people that didn't enjoy breath of the wild So I guess there are such people as well But and within all of my covers, I write the dates of when I bought them. This one says 3rd of March 2017 the release day of the switch And two three four the switch is four years old Oh my now This is a physical of a copy that I remember metal Jesus rocks was like does that come in physical? I need it and yeah, it does Italy a lady and so I have this in physical and It was expensive game stop 669 Anyways, it is a very nice entry to the atelier series. I did a review of this and I loved it This is such a cozy time such a cozy game and the atelier series Let me just say you have to try them try some of them. They're so good So on to the next games scene of eight chronicles two, which is a good game long game Beautiful game green grass game and blue sky game if that makes sense I got this from isha man and he has written a lot of inside jokes on all of these small hearts I got this for christmas from him 2017 one of the first games that I got for my switch I still recommend it Here we have super mario rdc, which is a 3d platformer with the most familiar face in the entire universe of video games Probably it is signed by charles martinei. I met him at the retro convention in norway when that was a thing Such a fun game. Nintendo never disappoints when it comes to quality of their first party things Okay, so the next physical game is titan quest. It's a game that I played in 2010 It's a game that I bought again when it was ported on the switch And it's a game that I reviewed in my buy or not series Link to play list is down in the video description for all of my reviews. I mean fun a rpg This is more of a niche series. It's in the neptunia series. It's mega dimension neptunia v2 Which means victory two and you play as all of the girls that are fighting in the console war It's a very cute game very anime style I have all of the neptunia games in my collection actually behind me and I have been very obsessed with neptunia series Anyways, next game is fate extella the umbral star. I thought it was a good game It's a muso hacking slash game very cute and very niche The fetishes let's say they are strong in this one. I bought it 8th of august 2018. Wow From ebay The next bunch of physical games then we have luigi's mansion 3 Cute game with luigi when I played world of warcraft my main character was called luigi Which was a draenei hunter. So for several years. I stared at luigi on the screen It was my main character. So, yeah, I have a thing for luigi definitely I mean if you name your world of warcraft character after luigi then then I think we're onto something It's a puzzle game within a hotel you play as luigi I am set to know a game that I actually haven't played much. I'm very sorry that I haven't played it, but I have too many games probably the most boring cover I've ever seen though It doesn't really entice me into playing the game But here's a game that I don't recommend It's just too clunky and bad controls and it's called swings and the cursed mummy I don't know why I have this in physical. I bought yeah, I remember now I bought it along with some other games from a website and I was like, yeah, let's try that even though I knew nothing about it But it wasn't good. It wasn't good. Sorry. It's a part of an older game. If that makes sense Here we have sonic racing. I remember I bought this when I was on vacation Memories are coming back to me. I bought this at game stop in june 19 Sonic racing. I enjoyed it. Looks good. All of the sonic characters a lot of colorful environments to drive through in and Yeah, I enjoyed it. I actually enjoyed sonic racing more than crash team racing Nitro fueled or nitro fueled. I say nitro This is also a cute game, but I wish I liked it more. The loading screens are just terrible. They're horrendous in this game LA noir got this from a subscriber of the channel. Thank you so much And I'm shameful to say that I still haven't played it, but you know what? It's never too late. It is in my backlog and I still from time to time think of this game It's one that I'm going to play Let me know what you think of some of these games if you have anything to say And remember if you are watching on your tv right now You can also hit like on the video on tv. Just hit down and you find the like button I just recently discovered A game I hate But it has such a cute cover. I mean this can fool anyone harvest life I don't recommend it even though I do understand that they were I don't know two people that worked on the game So it's super indie developed and all of that and they wanted to make a good harvest Sort of life sim game I guess but it has just a lot of bugs and it isn't fun Like the actual things that you do and the graphics are not great So it's just not a very enjoyable experience and I'm very sorry The cover is too cute though. Here we have little dragons cafe I did a review of this and I found it to be unique because it's a game that combines Cafe management along with exploring and gathering things collecting resources And it also heavily combines it with storytelling of really unique characters Which have stories that in some places interconnect And I remember it was just very memorable. I remember it was memorable Here we have bloodstained ritual of the night The hype was big the hype was too big when this came out Everyone talked about it and that is because it is such a Castlevania style game And it looks actually way better on other systems than the switch But it's a cool game if you're into that genre It is actually solid if you are into that genre to begin with I mean I like the colors in the game Here we have a game that I just enjoyed too much Shining a resonance refrain from Swedish leave so cute I recently played this again on my Xbox So I bought this game twice actually on the switch and on the Xbox But it was on sale on the Xbox and I wanted to go back to the cuteness And the combat is fun. It's like magic and skills and a bit of feeling of hack and slash Ness that can be really satisfying if you just want to Fight something though the game is really dated and it has its moments of flaws So we are down to the last games. Let's go through them Scenoblade Chronicles 2 Torna The marketing is kind of confusing when it comes to this game because initially I thought it was a DLC of Scenoblade Chronicles 2 But when I popped this in it had nothing to do with my save file from Scenoblade Chronicles 2 Which I thought this is a standalone game Scenoblade Chronicles 2 Torna the golden country It's pretty much the same as Scenoblade Chronicles 2 But it's a tiny bit maybe better, but I haven't played it too much. So I Who knows? I don't know astral chain I consider this to be one of the titles that I heavily recommend when I get the chance to When people say that I haven't played astral chain I'm the one that speaks up and says you have to try it. You have to play it. It is so unique and so beautiful So beautiful. It looks super sharp on the switch Makes sense though since this is an exclusive to the switch. You can't play this game anywhere else I made a review of this game and I want you to take a look at that review if you're interested But I love it. Just looking at it now makes me want to play it again. Cute Another game that I reviewed on my channel one of my most viewed videos Such a cringey video, but this is harvest moon. Natsume harvest moon not original harvest moon This is the new series. That is not good. Not story of seasons good and it disappointed in a lot of ways But I got my fair time in it 25 hours can't complain, I guess But yeah, that was that a game I highly recommend Right here and right now. I want everyone to play this game signal blade chronicles definitive edition It is a port slash remaster Of the Wii game and I play this on the Wii.  So good. So good Next game that I always seem to recommend Also, whenever I get the chance Fire Emblem Warriors, it is my favorite musou game on the switch. Maybe even ever Yeah, it may actually be a lot considering how many hours I play this game It's one of my most played games on the switch still I was super obsessed. I don't know what it was It was like the characters and the leveling and the graphics and the music and the gameplay. I don't know Here's a game that I own on every single system every system that I own I have Skyrim on them. Skyrim is a game that I replay often and actually no joke I started Skyrim on Gamecast on my new series X Three days ago started a wood elf and I'm gonna try and be a one-handed person this time But I guess we all know that we are gonna end up as a sneaky archery the way This is an open world super open world. Maybe even the best open world. I have played Maybe it is officially though my favorite game in the world as of right now When someone is asking me, what's your favorite game in the world? I have ever played I you know my automatic response is Skyrim and Skyrim has become a such a meme on this channel So yeah, Skyrim If you have been around here for some time, you know that Next game is one that I said that I couldn't get truly into but I am still not giving this game up I will pick it up again and try again to get into it later sooner or later Dragon Quest XI echoes of an illusive age definitive edition Long titles But yeah, I don't know what it is But it's just something that I just can't seem to get into but I want to and I remember when this game was announced Long before it came out that I I knew that I would love it. But when I got it Uh, not so much. So that was such a weird thing. I guess I could say that I was just wrong I guess Next game is a game that I highly recommend also first part in the Nintendo game fire emblem three houses It's a tactical rpg game with a lot of life simulation Elements put into the mix where you get to know your Fellow students in this dorm and there's also a war. There's just so many characters in this game though Very memorable game also. I loved it Did or also did a review of that also did a review of that So yeah, a lot of these games that I'm showing right now I have done full reviews on with a bunch of details in gameplay and all of that all all the things that you need to know Basically, uh, so, you know, you know where to go if you want to check out some of my reviews But anyways, here we have Dragon Quest Builders 2 one of my favorite games on the switch Hands down one of my favorite games on the switch one of my most played games on the switch also Such good freedom in this game.  I was super addicted. I mean, I lost so much sleep over this game Because I played it when I was supposed to go to bed, etc Which means the game was just really good Okay, we're down to the last three games. We have Labyrinth of Refrain Such a hidden title. I found this just by accident and just by random By random And uh, I like the art style. Well, you go through Labyrinths and it is a dungeon crawler rpg It is actually not too bad Next up is Pokemon Shield. I got this from itraman For Christmas, I think uh, but I remember now that I lost my save file in this game And that was sad because I had named all of my pokemon unique names 50 hours into the game And I was so ready to play the dlcs I even bought the dlcs But then I lost the save file because I transferred my switch over to a new switch Which did not carry over this specific game and animal crossing actually Sad times but good game. I enjoyed it. It was much better than uh, let's go Pikachu and Eevee That's for sure The last game now is victor ran one of my first reviews in the buy or not series on my channel search a good a rpg and I have a thing for arpg's Diablo style Titan quest style Victor ran The torch light series. I have them in digital though. So victor ran is also definitely deserving a mention whenever I Talk about arpg's on the switch. So that was all of my physical games for the Nintendo switch I hope you really did enjoy this video. I enjoyed just talking with you guys as you can see I'm not a collector. I have in fact Almost all of my games in digital on my switch That is explaining why this is so little why I don't have more physical I mean considering all the review calls that I've gotten because of my channel over the years All of them are digital and I love to wishlist all of the games that I am looking for Looking out for on the Nintendo switch e-shop And whenever there is a really good sale, I buy my games digitally Which I find to be fine. I don't mind having digital games In a way It just Takes up less space if I'm gonna continue to do this for the rest of my life, which I know I will So I don't mind the digital Era we are entering. Thank you so much for watching and I will see you later I hope you do want to subscribe to this channel if you made it this far into the video And I will see you later


So I come to the session from Dev to Broad with GitLab CI I know this is the post lunch session Which means that some of you might want to fall asleep. I'm totally fine with that if you do so try to avoid snoring so that your your attendees next to you are not affected Few words about me as I said hi, my name is Stefan when I'm not speaking at conferences I do remind a company the company is called bid expert We are a technology company doing custom applications for our clients of all sorts My current role at bid expert is called head of technology. That means I'm responsible for getting technology knowledge into the company as well as Organizing the whole educational programs that that that we provide for our employees developers as well as as project managers and Since I've still got some spare time left, and I'm not exactly sure how that happens I'm not organizing one, but two php user groups So one is the php user group in Frankfurt and the other one is called the php user group Metropole region Reinecker, or that's a very German name but yeah Basically what I'm saying if you're close to Frankfurt or if you're close to Manheim feel free to swing by I'm always looking for speakers and attendees as well But I guess that's not what you're here for you're here for for this get that who of you has heard of GitLab before Great, who of you is using GitLab? Okay, who of you likes GitLab? Okay, same amount of hands. That's good Quick check of everything's up Great, but the question is then why why are you here if you if all of you are using it lab But I'm sure I have a few games with me that that you will find interesting So for those of you who don't know what GitLab is this is what Wikipedia says GitLab is a web-based git repository manager with wiki and issue tracking features and to be fair. This is still true today But GitLab is way more than that these days Roughly, I think two years ago the GitLab guys announced their beyond CICD strategy Meaning that they do not only want to cover the dev parts and not only cover the ops part But making sure that like everything is working seamlessly out of the box Meaning you as a developer you can plan new features by creating milestones and issues You can create them by obviously committing code and pushing it to to GitLab. You can verify them by hopefully writing tests That's what hopefully all of you do Then package of stuff releasing it configuring build pipelines Monitoring your applications on staging and production and then again transitioning to the planning phase on improving existing features or planning new features and Making sure that as I said everything works seamlessly together out of the box But let's get started first things first, how do you install GitLab? Well, a couple of options you could use the GitLab omnibus installer, which is like the defector standard There are packages for Debian their packages for RPM Or as all the cool kids these days do run it in in Docker So there's a Docker image on Docker hub called GitLab dash CE So CE stands for community addition that you can use and this is basically more or less what what we are doing We are not using the default image. We've built it our own because Because reasons Just kidding But for the sake of this talk, it's it's just like just like use the default image Publish a couple of ports port 80 port 22 and and that's basically it So you wait like two or three minutes GitLab is is then spun up The database is up and running it will install itself to the database migration or stuff Cool. So that's that's one piece of the puzzle Since during this talk, we are building a Docker image and we deploy Docker images We do need a place to store them a Docker registry Now these days GitLab comes with a Docker registry built in Back in the days when we started this whole journey, this wasn't the case So we had to look for an alternative which luckily we already in place and this alternative is called zoned type nexus So it originates from the Java world was used for hosting maven packages But these days they host a lot of more npm bower Docker and and whatnot So this is this is basically what what we are using for Similar to GitLab we run this in in a Docker container Which is quite fun running a Docker registry in a Docker container that hosts Docker images, but that's a different story again These days there exists an official sonotype nexus image back in the days when we started this wasn't the case So we built it our own And if you don't know how how that looks like this is basically the the nice fancy UI it comes with Perfect for a Java application, that's probably the best I I can say What's really important in the whole process is that? GitLab needs to authenticate against nexus And this is also the case if you if you would run or if you would use the Registry that GitLab provides so at some point you need to log in this registry Provide the username and password and then you're able to pull and push those images Depending on how you set set things up You could do this once on the host or During each and every build that that you're running. So this this is a bit of like going Going either way or the other depending on on your situation and The third piece of the puzzle that we need is an HTTP reverse proxy as we do want to run Multiple Docker instances on one host or multiple applications on one host We need to make sure that we have something up in front that does like the routing and stuff Again, there are hundreds of solutions. You could use engine X a j proxy or We use traffic Who have you has heard of traffic before? Okay, who likes traffic? Okay, if you feel the hands. Okay. No worries. I like it because it's like super simple to configure It's like 15 lines of code and you got the whole thing up and running What you need to define first is you need to instruct traffic to expose HTTP and HPS traffic And then you configure those those entry points saying HTTP traffic should be served on port 80 and We also do an HTTPS Upgrade so any HTTP connection get instantly upgraded to HTTPS so that our applications itself don't need to care about it and for HTTPS connections we say they should listen on they should be served from from port 443 and This is the certificate that that we are using for for this Now since we use my app.lock as a custom domain We can't use a service like let's encrypt to generate those those certificates But this is something that traffic can do automatically So if you use a public available domain and traffic is available publicly or accessible publicly You could easily say, okay, just do the magic with let's encrypt generate those certificates on the fly and and everything is good Now where does traffic get its configuration from and this is the pretty cool part There are multiple configuration back and support the easiest one is probably saying okay traffic like here's a docker-socker just listen to it and Watch the events that happen there and then just magically generate your configuration As as you see it you can also hook it up into rancher That's another solution you could use etcd and and all sorts of of key value stores So you're pretty open in in Picking your your configuration endpoint As with with the other stuff we are running it as a docker container. You're publishing three ports port 8080 That's like the management console Should probably not publish that publicly should Make sure that only you can can have access to it and then just published ports 80 and 443 And I mount the docker socket into the into the container as well as the configuration file that we've just created and that's that's basically it Now let's get started So for those of you who don't know GitLab, this is basically how it looks When you create a new project all you need to do is provide a project name We just ignore the description for now and the visibility level. That's that's basically it created click the create project button And the git repository is created as an alternative You could also use the create from template functionality, which then would also generate a default file structure Within your your newly created git repository, but unfortunately the git lab people just don't like us php People and they just have Ruby spring and I know it as a current offering. So that's probably not the way you want to go So we need to build the application and the structure ourselves now when I arrived at this point of the presentation, I was wondering like What kind of application should I use or could I use to to show you how awesome this this git lab stuff is? I could have built one myself But that would contain the risk that I build it in a way that it runs perfectly with like this whole whole Git lab infrastructure. So that was a way I really wanted to avoid. So I went back and forth and Was looking for an application that was like Not so easy to install comes with a bit of complexity and I Ended up using magento. I Thought that's that's probably a good good way of doing so. So we got a fan over here, right? Kind of not you Derek. No, yeah, definitely not Luckily magento can be installed using composer these days So I just say composer create project and then point it to repo magento.com. That's like the packages of of magento and we're using the project community edition installer and Like after a couple of minutes after composer download that half of the internet We got all the dependencies up there and we can Add commit and push those into our git lab instance and this is basically how it looks So we've got the first commit over here and we're good to go now to this point She's gonna nothing happens regarding builds All right, so the code has landed in git lab, but but nothing happens To be able to build that code or to do anything with it We need to install a fourth piece of the puzzle. That's the last one. I'm promising and that puzzle piece is called a git lab runner It's also from the git lab folks The idea is this We have git lab and the git lab CI module which acts as kind of like a master instance that would coordinate which runners are available and which jobs can be run where and The code that you want to execute are executed in the context of such a runner instance Now the cool thing about this is that you could for example use the git lab sass offering But host those runners on your own either like locally and on your own machines Locally in your data center or locally in the cloud. Well, not really locally in the cloud, but you get the point and Then just connect that to the git lab sass offering and then all the code is built on your machines, so to speak No, that's that's pretty cool. If you want to get started. This is probably a good good way of doing that You can install that such a runner in multiple ways again. There are debian packages. There are p.m. Packages There is docker container just pick what makes the most sense for you We just need to mount the configuration file and the docker socket and and you're good to go Now Situation is is this we got two docker containers Well got four actually, but that's don't matter So one is git lab one is the git lab instance and one is the runner They run side-by-side, but they don't know each other up to now. So we need to connect them right to do that we first have to open the admin section of of git lab and access the runner overview page and Over here. There are two important informations one is the URL to get left technically you wouldn't know that Otherwise you couldn't see this page and the other one is called the registration token and the idea behind this is that You don't want any third-party runner to connect to your own git lab instance Because otherwise that code could be built and checked out like anywhere in the world by anyone, right? So there's authentication token. Just make sure you know this or you can set up this runner or configure that runner to talk to your instance So having these two information we can create a runner instance This is done by calling git lab runner register First thing it asks you is what's the URL of your git lab instance? We know that Second thing it asked give me the authentic authentication token. We know that we entered that cool You can pass a description for this runner. So if you have multiple ones, you know what the what this runner is for You could provide tags for this runner and this is something I'll show you throughout the talk Why this is important or what you can do with it? I'll just leave it for now as is you can Tell the runner to only run builds that are tagged with a specific tag or you can instruct the runner to build like potentially like anything You could lock the runner to just one git lab project Which may be interesting if you have a runner in the data center of a client and you just want to run certain jobs In that instance But that really depends on on your setup and now the the most important question What is the executor that all the commands that that you will define later on in in the Configuration file how do get those executed you could use shell which basically means all the commands you execute are Run by a git lab runner user within our container. We just created Now that's that that's maybe okay for a few commands But if you want to install third-party packages of stuff, you can't do that because you're not rude So that that's potentially a problem or you could say hey spin up a new Docker instance A new Docker container run all that stuff within that container Which probably is a bit better and they have dozens of options like Docker SS age Docker machine Docker machine SS age Whatever so we can can make sure you pick like the best the best runner or the best executor for for your environment And last not least You can define a default Docker image So if you don't define an image in your project or in your job This would be the one that that would be taken instead So pick a sensitive choice. Just don't use the Ruby one if you build a PHP project that probably doesn't make sense right Now what you can do is you can reduce the multiple of these instances for one runner demon And they can be configured completely differently. It doesn't really matter So that that's important to know the outcome of all of this is a configuration file that that looks like this You can also edit it by hand and then just restart the runner and everything will be fine For example changing the number of concurrent bills that should be run globally or then locally for each of those runners or as we do We mount a volume containing like all the composer files from the host into the container So that we don't need to read download all the packages over and over again just to save a bit of time So this is an idea that that we were using back in the days of vagrant When all the deaths were running that stuff locally just to avoid like this massive downloads of packages all over there all over again So this can speed up the builds a bit Great and then after like a minute or so this new runner appears on this runner overview page over here and we can use it So that's that's pretty simple To be fair when I showed you how to to use the composer install command I just missed one important information You need to be authenticated against this this magento registry. Otherwise, you can't pull those files So you need a way of somehow managing secrets Obviously, we can do that in this GitLab configuration file that's checked in in the repository, but that feels like yeah, that's that's not really cool We are looking for something else and luckily GitLab has has got us covered They have a functionality that they call managing secrets where you can define secrets either on a project level or on a group level that means I could create a group within GitLab saying, okay, these are all my magento projects and Create my my magento projects beneath that group and then expose that these two to Two variables like the username and the password on the group level and they get then inherited to the to the different projects So again that may or may not make sense In your in your situation and this is basically how it looks so you open the settings page And then you got a section called secret variables. Just give it a name. Give it a value and and off you go you can say for sake of security That those variables should only be available for protective branches That means that only a certain amount of people with a certain role within GitLab are able to push to those branches and you avoid the risk of like Yeah, someone echoing username and password and you would see the the result So again depending on your setup this may or may not make sense but the question is still like how do we set everything up and how do we get get things up and running and Basically, it's like super simple. All you need to do is you add a file dot GitLab dash CIML In the root of your repository and that's basically it If you are familiar with Travis, this looks kind of similar But it's different in detail But I guess if you can't follow along or if you know the traffic stuff you can Not the traffic Travis stuff You can can follow along easily. So on the first top line. We define the default image that that we are using PHP 7.01 CLI I know this will hurt some of you Unfortunately Magento isn't able to run with 7.3 right now And back in the days this was like when I compiled the slides last year This was like the latest version that Magento could support and Then we define a test job this test job runs in the test stage We'll see later what that means it is tagged with a check docker We'll see later what that means and these are the scripts that should be executed These are the different steps that should be executed when this job is run The first one is simply like installing a couple of Debian packages that we need to be able to compile a couple of PHP Extensions that Magento needs to run I think these two lines took me like like Almost half a Saturday to figure out and like constantly like redeploying and testing I was like the most annoying part of this presentation, but anyway We then also need Composer because we want to install The Composer dependencies and these are like the four lines that you would usually copy without looking out of the Composer manual and Yeah, afterwards you've got Composer installed and it's usable we then Need to instruct Composer to use the Magento user and Magento password environment variable That's the ones we defined before Whenever repo magento.com is accessed Why are HD basic authentication? And Kind of side note because this is important if you like this feature. This is my contribution to Composer Yeah, awesome. I know Jordy completely rewrote my PR and Improved it like ten times, but I can still claim this is like my idea Right so we got the configuration right and then we run the Composer install and hopefully all the packages are installed So we we add commit and push the file it ends up in in GitLab And you can see there is a blue icon on the very left of the git commit chart And this basically means we have a build job up and running cool. So we can click on that icon Can see a list of the pipelines that are configured Again the blue icon which indicates that there is a job running you can click on that and we get an overview of the pipeline Pretty simple pipeline. I have to say so we got a test stage. This is test with an uppercase t Running a job called test with a lowercase t Now again if you're familiar with Travis and and similar solutions Just click on the test job and it will give you like the output of what's happening during the build and If you wait a couple of minutes Swear to God in the end it will say job succeeded. Awesome now to be fair I Named this job test and I'm I'm really lucky that Sebastian Bergman is not in the audience because he probably will kick my butt Naming this thing a test because it doesn't really test stuff, right? We're just installing composite dependencies So we need something more to be able to run tests of any sort we need a database So that we can install Magento and make sure that everything is working now I could spin up the Docker instances that are need for this like my sequel instance or stuff like that In my build script, but then I had to like wait till the till the till the containers up and running and then Continue doing stuff. So that that also feels like yeah, that's that's not really cool Luckily again the the GitLab guys has has us covered with a feature that they call GitLab services and The idea is that you can define Multiple images that should be spun up Before the job that you've defined actually is started and then you can be relatively sure that the services are up and running And you can interact with those and just by a couple of lines of configuration and the pretty cool part is that?  Can you hear me? Okay, cool. Sorry Right, so it's it's it starts to your container and you can be like 99.9 percent sure that that everything is working out of the box Even though the GitLab guys say well, you can't really rely on that that everything is working, but We pretend that we were safe And this is how how how you need to do things Again, we first define our image We can define a couple of variables now These are available to our own jobs as well as to the other services that that we include like my sequel root password is Passed to our jobs as well as the my sequel container that that we will spin up We define our test stage. This is what we've seen before we Simply add a section called services and it's gonna list all the services that that we need and this is all you need to do You can define services locally within a job or you could Define them globally like for all of your jobs. We do it locally because on Staging and production we already spun up my sequel and some other sort and we don't want to add another my sequel container Just to be there so that that doesn't make any sense Now if we run the job Get loud we'll say hey, I'm starting the my sequel 5.6 service I'm pulling the the docker image my sequel 5.6 I'm waiting for the services to be up in running and then I'm pulling the PHP 701 CLI image And then just gonna execute all the logic so I can see what's what's happening and in the end hopefully hopefully everything is green Isn't that amazing? Yeah, kind of okay. I see tough audience. I can cope with that But still that's not really something that you could consider being a build pipeline, right? So we need multiple jobs. They should interact with each other and and do awesome stuff And this is exactly what we're doing right now So again, this is the shared configuration we have our image defined We have the variables defined and next up we define different stages. We call them test build and deploy But that's probably like the the simple setup these days You can define a section that is called before script and these commands would then be executed before each and every job that you have defined now technically, this is bullshit because We don't want to install all the the apt packages for staging and production and stuff But you could in this section do something like the docker login command, right? So you don't have to retype it every time and making sure that that is it's in sync in all places So that's that's what you can do in in this place and Then we have our test stage we have seen that before we do have our build stage I'll cover that in a second what it does And we have our deploy staging job Which and this is slightly different to the other to the other jobs has a tag called docker-stage and the idea is this You've got multiple runners running in our data center. We got the ones tagged with docker running over here They are responsible for building and and testing stuff We got the ones with attack docker-stage running over here and all the staging domains pointing to this part of the data Center, right if I would deploy such the staging a staging container over here The domains couldn't reach it right because they are pointing over here So we can use these tags to steer a bit like where is stuff deployed in in our infrastructure For staging deployments we say we do not want any good check out because we already have the container built So there is no need for for checking out the whole git repository We do define an environment that we call staging and say okay This is the URL to our staging environment And that's also pretty cool because like you don't need a list in the wiki or or anywhere else saying okay These are URLs for staging. These are URLs production Make sure you use the right credentials and stuff GitLab will render a couple of buttons in its GUI You just click on them and it will bring you automatically to this URL. So you got it versioned and stored in like one central location and Then we say Run those builds only for changes that occur on the master branch Again we commit the file the job is running The pipeline is looking a bit more complex now So we got the test build and deploy stages and the test build and deploy staging jobs So test is running all green Build is running and now this is what we are doing Um, imagine up to this point. We have installed all that all the all the dependencies that that are needed We tar that stuff we move that tarred file back in the project directory and Then we use the the feature that's called the build arguments of Docker to pass this tarred file to the the Docker build command this helps you a bit in Not needing to maintain multiple docker files like one for production one for development where like once add those files and one One student do not add those files. So I can play around with that a bit And not really like this kind of approach But this like the best thing I could come up right now without the need of having like to maintain multiple files Great. So it's built we tag it and Then we push this image to to our to our registry. That's that's all we need and This is then basically how it looks. It just appears as a master version within our registry now So build is also green awesome. We can start deploying this on staging and This is what happens First we pull the latest version of this image now You can see there is a variable used see I commit ref slug and I also used it back in the build stage Throughout this whole build pipeline this variable holds the exact same value. So I'm always referring to the exact same image Which is important if you want to deploy a certain version on on on your machines So we pull the image first we stop the existing my sequel and the application containers We remove those images Then we start my sequel again and we start the application and then link the application to the my sequel one and Pass a couple of traffic labels so that traffic then later knows like stage my app log Just going to points to this exact docker container and then we wait like a minute or so and open the URL and Finally we got it deployed awesome Okay, tough audience. No worries So this is staging For production it looks pretty similar So we have a job deploy underscore prod Again using a different tag docker-prod so we know where the stuff is deployed, you know the story We don't need to get check out because we already have built the docker container We name the environment production because it makes sense point it to the right domain Say hey, this should only run for master for commits on master Now if it would use this configuration what would happen whenever we make a change on master branch, so The test job would run the build job would run and then it would synchronously push or Run this this this commands on staging and on production. This is not what we know what we want, right? So we want to test it first on staging and then roll it out to production later and that's what we do with the when manual trigger Which basically means that this job is triggered manually through the GitLab UI This is how it looks So test is running All green build is running all green deploy staging is running all green and then the build pipeline stops Now those are those of you in the first first row can see there is a play button next to the deploy-prod Job well if it looks like a play button that pretty much is a play button Which means you can press it and this is exactly what what you need to do so someone in your in your company needs to press that button and This will then kick off the the build or the deployment to production. So Your project manager or your customer can kind of prove the stages Changes on staging and then someone just just presses that button and then kicks off that build that will run on production And the pretty cool thing within GitLab is is this so you see if you check the logs You can see all the output and GitLab also warns you hey watch out This is the job created a deployment to production So this is like the right moment where you can press cancel if you figure out you press like the wrong button Which rarely happens I know So this is yeah gives you just another warning sign Right, and then we just wait again like a minute or two. Hopefully and this thing is up and running in production And that is basically it how awesome is that? Thank you Thank you finally finally But I see we got some time left So I got some special for you Because we have a problem with this setup Let's take the staging build for example If you have one developer You probably know which state staging is in if you've got multiple developers that keep committing and pushing code It's pretty hard to say or to tell like which version is actually running on staging right? So your project manager probably goes crazy figuring out like changes work not work changes work not work like all the containers are spun up over and over again So I guess it would be really cool to have have such an environment per developer, right that would be cool Yeah, that would be cool But why not go a step further and say we want such an environment per feature branch My blow and this is what GitLab calls a review app Now to be fair the documentation of the review app is a bit Weird and I have to have to read it like a couple of times to really figure out what it is and how it sets doing So I'll guide you through the process and you'll figure that out way quicker than I did The idea behind such a review app is basically that those environments that we just created statically naming its staging and production Can be created dynamically with a dynamic name and a dynamic URL and this is what what we take advantage of So again, we create a deploy underscore review job Again, it has a custom tag called Docker dash review so that we know where the surface is deployed You know the story We don't do a good check out similar to staging a production and then in the environment section we say hey Name this environment review dash review slash CI commit ref name and this is kind of like the branch name you're working on and This is the URL for this environment. It's called CI environment slug stage my app log Now CI environment slug is also like the branch name But encoded in a in a URL friendly fashion and then a bit opposite obfuscated So I have a custom domain for this all your all your Swiss admin needs to do is to expose like all the Subdomains of stage my app log and put it on on this network where where all your review apps are running And then we also say whenever this environment should be stopped Call the stop review job if you don't do that like all the Docker instances will pile up on this server and somehow Somehow it will it will crash or your your Amazon bill would get like really expensive So we don't don't want to do that And then we say Run this run this job only if a merge request is open now This is a relatively new feature back in the days You would need to say okay run this for all the branches, but not master which isn't kind the same. It's a bit different But since like I don't know two or three releases back. They added this feature So this will only run when you open a merge request which you should do and Then we define our stop review job which is called when the environment is stopped and we would just then Kill the containers as as we don't need them anymore Again git strategy is set to none because we don't need it and we add a when manual trigger Which is kind of weird because you never execute this manually, but it's called it's triggered by a different job So you need to set this And then we use the same environment name so that GitLab can figure out like what environment to stop and Set the action to stop so this then causes GitLab to kill this environment in its own database So let's test it. Well, let's assume the customer wants To build a feature to Yeah, protect your website So no one would ever see like pricing and the catalog and stuff without being logged in Luckily, we've built such a magento module ourselves. So we just create a feature branch add the module that that we need added committed push it and When you now open GitLab, GitLab will scream to you merge request merge request was showing you all it all over the places so you just need to press that button and This will lead to a to a view that looks like this So you need to define a good good title. You need to define a good description Like none. No, just don't don't do that Just provide a proper description if you open a merge request And now what you see is that it automatically started a new build pipeline for this commit shows you the three dots that the three stages Going through each and hopefully and finally deploy it on on staging Now the question is like, where is this stuff deployed? Right? I don't know it Well, GitLab will tell you Says hey, I deployed this branch on this URL So all I need to do is click this link will open a new browser page And I can test everything in isolation and this is then then basically how it looks like awesome So it's completely separated from all the other instant instances Completely custom I can completely test it on our own and and you're good to go Now what do we do with that like of course somehow we need to put it on staging and then put it on productions How we how do we do that? Does any of you have an idea? Well, it's super easy. Just press the merge button That creates a merge commit in master which will then kick off the build pipeline again. So we do that So test runs build runs deploy staging runs you many click the deploy to production button and boom We are we're alive That is pretty cool Yeah, exactly Thank you, I was waiting for this reaction for like the last 50 minutes, but I got one more I'm like the Steve Jobs of GitLab, but I'm not affiliated in any way The pretty cool thing about about GitLab is it keeps track of like all the environments that are currently running Given you an overview like this saying, okay, we got the production environment and the staging environment up and running There's deployment three and two the job the last commit and when the last update happened So we get really good overview of what happened when you could also dive in such an environment and Then see like which commits made it to to that specific environment seeing exactly what was going on And I could also just do a rollback. So if I figure out like hey, there's something wrong I just click the rollback button and the old state is is is Is deployed again now to be fair Your application does need support rollbacks right especially regarding database and stuff So you need to handle that that on your own This is not something that that GitLab can do for you So you need to do that yourselves when the container is is launched For some applications like Magento, it's not that easy But yeah, you need to figure out then ways of doing that and That's actually it. So so we are finally we are done with this with this presentation As you've heard throughout the day and probably yesterday as well, please do rate this talk I've done it a couple of times, but I want to improve it If you're interested in new features that that might be missing just just let me know and that's basically it for me Thank you very much. Oh, they are questions Hi, hi on that first demons you had on container And then you went on to run the composer commands of setting up Wouldn't it be easier to just have docker in the image? Sorry co-position in the docker image You mean like not running the the composer in the container but like before when you build it Yeah, yeah, that might be easier. Yes. Yes So this is just demonstration purpose. All right. I was wondering about best practice actually Is right that would you recommend to have it in the image or run it as part of the build? I would rather run it as part of the build As well when I when I showed in the beginning how the container is built We installed these libraries and we compile the PHP Extensions over and over again. I wouldn't do that either This is just like for you to take something and just just play around with it I just would create a Default build for the application on always use that Derek your question. Yes. If I was your first slide you showed creating a project. Yeah There was a third tab which is import from an existing project. Yeah, does that mean that it would? Re-import the whole git repository Repository into kit lab or would you be able to run it on something that you already have locally in a git repository? You can run it against a custom git repository that is run anywhere. You could import it from git lab You could import it from github Maybe also bit bucket and in those cases. I think it would also import like open issues and all that stuff So it really grabs the whole thing and and gets to in there Hi Regarding the credence ill like you store it on the Text right Sorry, I just couldn't follow you regarding the credential you store on the plaintext. Is there anywhere where we can like Encrypt and decrypt things So that we can store our things on the gate or anything. I Don't think so At least I'm not aware. I think you need to provide them them as is in plain text Oh Sorry open a feature request Hi God my voice is deeper than I thought No problem. Have you got any have you got any thoughts on So what you've been doing is setting up these custom custom pipelines But one of the things that I'm finding quite confusing in git lab cloud at the moment is there They've just started bleeding their automated CI build pipelines, which is turned up turned on by default now When you when you create a new project in the cloud, you mean this auto dev ops. Yeah. Yeah, um, I Haven't tried it yet. I don't know how good or how bad it is Yeah, since we run all that stuff locally and Out of the box using our our git lab CIML files this this just works on you But I don't know how how good or bad this this auto dev ops thing thing works Hello, yeah the The script is it where that you actually deploy is in the githlap.ca.yaml in the repo Is there any way of locking that down so that only your dev ops people can Change the way the thing gets deployed. I Don't think so So this is really one of the downsides of of kit labs. They're they're Roll based authentication mechanism is really bad so they got like four or five rolls and it's like this is it So and all the cool stuff can be just done by like the master role or I think it's it's maintain a role these days So most of your team needs to have the maintainer role and that just makes things even worse But that's a different story. No, sorry


Okay. Good morning, folks. We are going to get started. So I know everyone's walking to the door and seeing the sign walk around the corner and coming in, but yeah, we've got a really packed schedule. So we're just going to get going. So thank you all who have made it here for our very first six dot con. Great. First, just some quick introductions. We've got a set of us will be tag teaming through the emceeing and the opening and closing sessions. So I'm Tracy Miranda and Santiago will be joining us and Lily will be swapping in later as well. So we'll be walking you through the day just to give us a bit of a soft start as people roll in. We're just going to go through a bit of what to expect for today. So it's our very first six dot con. So really glad you could all join us. We will be doing a little bit of an opening session after we get through some of these logistics and which I'll hand over to Santiago for some opening remarks. Then we've got three keynotes to kick off with and a talk from Jesse Sanford from Autodesk, which leads us into a coffee break. You'll find coffee just outside the room and then more talks leading up to lunch, which is apparently in Hall E. I didn't know we were feeding you, but we'll get to Hall E for food. And just a quick shout out. We do have one speaker from DataDoc who has a prerecorded session that will be the first one on after the break. So that will play in here. And then finally, after lunch, back for some more talks and leading into lightning talks and then a final session. And then we're going to have a closing session and an award ceremony. So yeah, lots to get through today. And you're really looking forward to a lot of the sessions on there. So I hope everybody is excited. Okay, and I'm going to hand over to Santiago. Hello. Can you hear me well? Great. So I didn't want to take a lot of space because we have a lot of interesting keynotes to talk about. First of all, I just wanted to thank our program committee. This is the people that reviewed all of your talks and abstracts. They did a fantastic job. If you just look at the agenda, everything looks pretty tightly connected to what state of six stories and where is it going in the future. I also wanted to thank our diamond sponsors for six years gone. Chingard Google and Red Hat. Thank you so much. And well, we have a lot of companies involved in the talk in talking today. I think we'll get a lot of perspectives from both integrators and developers and users. I think it's going to cover all of the perspectives of what makes six door such a thriving and interesting ecosystem. And that's why we have the landscape. I don't know if you've seen this. I think it's been floating around a little bit on Twitter. We have integrations with many projects, say in the CNCF personally in total and tough are the ones that I'm involved in. But we have integrations with helm and pretty much anything that's related to software delivery and to security is starting to catch on and take on six door to secure their software supply chain. Now, even though we have a very, very thriving, very diverse ecosystem, I am I'm humbled to see all of this different logos involved in the project. We still need to provide a little bit more in order to entice new projects to start joining us. And this is why today we are announcing general availability for six door. Now you may want me, you may be wondering what that means. It means a couple of things, but most of it is just a way for you to trust the six door infrastructure as a place for for you to sign and verify different software supply chain artifacts. Concretely, what this means is that we are hitting 1.0 and both record and full CEO. We are also providing an SLA of 99.5 uptime for the public good instance. And we also went through a security audit that actually found a vulnerability that's already been fixed. But this really means that the project has been thoroughly looked at by third parties and that you can trust the way that it's running and the way that it's being used. So something I wanted to do just to spice things up a little bit before handing it off to Luke is I made a little laly as alias here, but it's not that. So this is the entry that I probably should have not seen that much. Let's try again. This is the entry that we have hit during GA just during the announcement now. And I'm going to ask you in the next couple of minutes, try to sign an entry and see which one of you in the crowd can get the closest to this number. If it is not very readable there, we have 1,673,564 as the record entry. Anybody want to try? Get close. There's going to be a prize, of course. You're allowed to use cosine. You can cosine whatever you want. Keyless is fine. Maybe Keyless is useful as your email on it. It's also quite amazing when I tested this. A couple of thousand. I have a joke. I have a joke. Please. Did you hear about the developer who couldn't get your signature into recall? It's a practical joke. No, it's a bad sign. Okay. Do I have anybody? You can just yell the number. What's your index? 500. No, this has been increasing. So if I run it again, I can tell you that I'm going to get a different number. It's a different number. Probably we need to add a couple. We need to add two numbers. Well, we're also out of time. So why don't we just have it to loop and come back to me and we'll hand you your swag.


Thanks for raising the question. Sexual assault is antithetical to all Navy and Marine Corps values and core principles. It affects safety. It affects readiness. We have a zero tolerance for it and it's got to end. That's why as part of the 21st Century in Sailor Program, we've enacted what's called a SAP or L initially. We went across the fleet to every command triad, CO, EXO, Command Master Chief, and trained them on the principles of recognizing the conditions that could lead to sexual assault, the environment that could allow it to happen, and then allow them and their facilitators to spread across the fleet with what we call SAP or F. As we speak we're in the process of training every single sailor across the fleet, how to step in, how to recognize the signs. We've trained our JAG Corps with the best practices from prosecutors across the country. So the one that does happen, we have the best response and the most effective prosecution. Don't get me wrong, 99.99% of our fleet are great Americans who embody nothing but the highest ideals of integrity. We've got some predators out there still. And the 21st Century Sailor Marine Program is going to help us find them. It's going to help us punch them in the face. It's going to help us get them out of the Navy and the Marine Corps.