TEFL Florence Taking a TEFL course in the fascinating city of Florence could be the start of a dream come true. With something to please everyone, Italy has proved to be a highly popular destination for TEFL courses, and Florence is a particularly popular choice for many students. As the capital city of the Tuscany region, Florence has everything you could hope for. Nestled in the northwest of the country, surrounded by vineyards and rolling hills, no visitor to the city could fail to be amazed by the beauty of Florence and the warm welcome of its people. The birthplace of the Renaissance, Florence holds one of the greatest concentrations of artistic achievements to be found anywhere in the world, with original works of Leonardo da Vinci, Raphael and Botticelli all on display here. Another sight that you will not be able to miss is the breathtaking view of Brunelleschi's terracotta dome which hovers majestically above the medieval rooftops of the city. Our TEFL course in Florence is designed to allow you to enjoy every moment you spend in this marvelous city in the wider Tuscany region. While your main focus will be the expert training and the internationally recognized certificate you will receive, we will also do everything we can to ensure that you are able to make the most of your free time during the course. TEFL course in Florence, Italy. Our teacher trainers in Florence are all highly qualified and experienced professionals who have many years of experience teaching in the classroom. Our facilities are modern, comfortable and our classes are always attended by real non-native speakers, so you will be doing your teaching practice in a real teaching environment. Believe it or not, many courses have you teaching fellow trainees while simply playing the role of a student. We are also pleased to offer a variety of accommodation options for your stay while you attend our TEFL course in Florence. However, it is important to note that Florence is a very popular tourist destination and as such, many of the accommodation options have limited availability, particularly during the summer months. Therefore, if you have any special accommodation requirements, we would recommend the view book as early as possible. The course fees listed on our website are inclusive of course related lessons, materials, teaching practice, assessments, certificates, references, lifetime job assistance and more. We have no hidden costs or extra charges, so the prices you see on the site are the prices you will pay. If you are at least 18 years of age and speak English fluently, you are eligible to apply for the course. The application is brief and we will send you a prompt reply. Once approved, you will receive additional information about the course content and schedule, your accommodation options, travel arrangements, as well as payment options and more. Apply to take our TEFL course in Florence and soon you could be experiencing life in the home of the Renaissance. However, training here doesn't mean you have to stay and teach in Italy if you would like to move on after the course we offer lifetime assistance finding jobs and our certificates are recognized worldwide.


Oh Right everybody what is going on? We're back for some more 2018 NFL Top 100 action now. We're gonna crack right into it's number 24 We're in the top quarter guys the top 25 Travis Celts Celtsie or Celtsie I'm not exactly sure but he's a tight end for the Chiefs Let's do this Whoops Definitely got to get the screen recorder going or else I will kill someone I will Last one was Cam Newton. Let's crack into this. Yeah, I don't know that there's a better tight end in the NFL right now than Travis Kelsey Kelsey how many how many touchdowns did you get eight eight or more you're killing it 15? Okay Were you in Wiley Travis? I was yeah. He really he really loves it. He really loves the game Are they brothers? Are they brothers man?   It's so frustrating Let's go They grabbed me for like five minutes. I'm doing the top That's awesome. Just go outside ask the people in the Hawaiian church where the scooters are because they're in your name Yes being a little brother. I hate when I got to be the more mature Guys been on the earth two years more than me. I Don't think he's even close to more mature Travis Kelsey has matured into the man Andy Reed and the Chiefs call on when they need a big play That is Kelsey led all tight ends and catches and yards after the catch It's a big catch You can't have his brother giving him a rap course, he's gonna talk him up He's got great speed he jumped over by about 7-8 people this year It's the 300-yard hurdles every week with Hey, man, it's good. I still have flashbacks from playing them This year in KC and he jumped from like the five-yard line and sailed into the end zone I don't even know how that was like that was a nice move from the very start to the very finish possible to jump 15 feet let alone with a football on your hand and trying to dodge people I guess he was intended just jumping over everyone. That's the first jump on the drive and then this The only thing about doing that man is is the risk of Someone coming in knocking your feet out and you flipping over in the air and landing on your head. That's the only It's the only risk and it's a risk. I don't know if I'm willing to take He was lined up against Philly. I want to knock him Jenkins Came off the ball, but just a little small dip on it. Yeah, but deep inside. It's a nice step for a go ball. It was beautiful I caught that saw us at the line. That's such a good route right there. He got juke moves. Honestly I know he's a basketball player. He's crossing. He does. That's a nice juke roads and he's just so big When we played him on Monday night, I remember there was a play where he ran like a post in the red zone And he looked pretty covered and looked like a tight window I mean he has it all You want a wide receiver and a tight ends body that you need to go for my guy Travis Kelsen Mean that's exactly what you want All right, so for some reason the next one's not getting recommended. We're gonna have to look it up 23 top 100 NFL 2018 Patrick Peterson, why is it saying I've already watched it You know what I have not watched this.  All right, Patrick Peterson Peterson might check one two one two Mike check one two one two The mic is clear It's clear why Arizona's Patrick Peterson is a given on the top 100 He's been on the list the last seven years, and he's never missed a probe Whoa Whoa, he's a true shutdown cornerback I guess the plans are only gonna get better and better from here on then you can't really pinpoint one thing If you could if I could pinpoint one thing then I would use that to my advantage, right? I just do the opposite of that But the reason why Patrick Peterson is so good is because he's a cerebral football player He's really intelligent when it comes down to the X's and O's of playing football Yeah He's very smart, you know, that's the unique thing about it and playing at that level that he plays that you got to be smart You can tell you watch fam, you know, he jumps the rock for even happens You know, he's just one of the top ten guys to the point where you know He's like one of the best if I need to be one of the best they'll pay the game Being one of the best corners in the game has its drawbacks like boarder Yeah, Peterson shut down. That's it man. That's it. Like if you're a receiver against a great cornerback You're not gonna get the ball and also the cornerback is not gonna have anything to do because that receiver won't get the ball So I don't know if it's yeah, I don't know man. You kind of want to be a cornerback That's like under the radar, you know, you've got those interceptions in you But you don't want to prove it just yet.  I don't know what I'm talking about Homesides of the field and as a result didn't see many throws It wasn't that many teams that actually tried him this year I mean on paper, you had a really boring year.  Ajay Green. Who is the best player in your position in the NFL? Ajay Green.  He's good. Ajay Green. I've heard this guy a lot I've heard of this guy a lot never seen him Not just tow drag swag that makes Ajay Green a threat on the sideline the Bengals playmaker also possesses remarkable body control He had ran a comeback route and we drove back to the ball You know the ball was a couple inches over his head, you know And he was able to catch the ball and then get the two feet down.  So, you know, they already had that chemistry Him and he got a good connection. I like this guy. I like this guy. What's his name? Darius sleigh. I do like him. I don't know why he's got a lot of chains around his neck Come to think of it I might might do a to leave on him. I keep to lead Him and he got a good connection that back shoulder. That's a big change of snack. I don't know if I could break it But you came to see it Any time that ball goes up, I mean in my head and on defense, we already know he's gonna get it I Ain't jumped up there by him It's crazy. Why why did they not jump? Spectacular. All right guys, that is the finish of another video. I Hope you've enjoyed we're nearly there. We're getting there So I want to say if you have enjoyed this video Please press like if you want to subscribe, please do and I will be back here very shortly to do number 21 Bobby Wagner. Oh Bobby the old wager the old Wagner Linebacker of the Seahawks number 21. I'll see you there. Peace out


It's time for the Lawn Jean Chronoscope, a television journal of the important issues of the hour brought to you every Monday, Wednesday, and Friday, a presentation of the Lawn Jean Wittner Watch Company, maker of Lawn Jean, the world's most honored watch, and Wittner, distinguished companion to the world-honored Lawn Jean. Good evening. This is Frank Knight. May I introduce our co-editors for this edition of the Lawn Jean Chronoscope? Larry Lisser from the CBS television news staff and Kenneth Crawford, National Affairs Editor of Newsweek magazine. Our distinguished guest for this evening is the Honorable Herman Talmadge, Governor of Georgia. Governor Talmadge, the economic situation, I guess, is just about the most important subjects in the country these days. I'd like to ask you, how is business down in Georgia? Well, on the whole it's held up remarkably well, Larry, but farm prices, as you know, have been going down for approximately 18 months. Georgia, with all of its great industrial expansion, is still largely an agricultural state. Now, farmers aren't far and too well at the moment. They're concerned because the farm prices have been going down about 18 months. Everything they buy has either been going up or remaining at a high level. Although they have been caught in a price squeeze, it's concerned them a great deal. Governor, President Eisenhower apparently was quite popular in your state in the last election. Has the economic slump affected that? Well, the president was relatively popular, Ken, but you must remember that Georgia gave the Democratic Party and the Democratic nominee, Governor Stevenson, the greatest percentage-wise majority of any state in the Union. The relatively large vote that President Eisenhower pulled in Georgia was due largely to his personal popularity, the respect and the confidence that people had in President Eisenhower. And second, there was good many of them in Georgia, dissatisfied with President Truman. Now, I would not think that the Republican Party in Georgia is anything like his popular as President Eisenhower. And if the elections for Congress were held at the present time, Republican candidates in Georgia would not pull half as many votes as President Eisenhower pulled in the last presidential election. Well, Governor, who do you Georgia Democrats feel as the head of the Democratic Party now? Is it Governor Adley Stevenson? Well, of course, we recognize we recognize Governor Adley Stevenson as the titular head of the Democratic Party since it was he who carried the Democratic standard in the last presidential election, 1952. But Georgians looked to their United States senators, their congressmen and to their Democratic governor to form policy in our state rather than to the titular head of the national Democratic Party. Would you think that Senator Russell's name would be presented again at the next Democratic convention as it was at the last? I don't know whether it will be presented again or not. I presume that fact would be determined by Senator Russell's wishes. If he desires to do so, certainly Georgians will support him as loyally in the next Democratic convention as they have in the last two. Well, Governor, who do you Democrats feel controls the Democratic Party now, the industrial north or the more conservative south? Well, I wouldn't say that either element entirely controls it. Now, prior to the last day or two of the last convention, when they were passing the so-called Moody Resolution, the Democratic convention in 52, it was pretty apparent that the left wing elements of the industrial east were in the ascendancy of the party at that particular time. But before that Democratic convention adjourned, reason had reasserted itself somewhat, and some of those who had rammed through some of those stringent restrictions had to eat crow, and the Southerners and the Conservatives were in the ascendancy of the party and regained control prior to its adjournment. Well, speaking about that civil rights platform, the Supreme Court is due to make a decision pretty soon, Sarah, on the segregation in the schools. Now, how do you, Georgian, think that decision is going to go? Well, anticipating what the Supreme Court will do, all you can do, Larry, is follow legal precedents that have existed for a great number of years. Now, we know that the Supreme Court of the United States for the last 88 years has been making decisions relative to segregation in the common schools. Those decisions have all been the same. They've been written by Justice Brandeis, Chief Justice Hughes, William Howard Taft, Justice Stone, all of the legal giants of American jurisprudence. Without exception, they have held that the matter of segregation in the common schools of our state is a matter that addresses itself to each state and not to the federal government. Nowhere in the federal constitution is the word schools or education or anything of that kind mentioned. Constitution hasn't changed. The laws have not changed. Sometimes the political complexion of a court does change. Sometimes it may be swayed by political pressures or sometimes by sociological opinions. But if they follow the law, as all lawyers understand it, they will uphold the present method which is separate but equal schools and each state themselves may determine whether they want to maintain and preserve segregation or whether they want to change. Governor, assuming, however, that this decision does go against you, what plans have you? Well, we haven't made any particular plans as yet because we don't know what the decision will be, but we have tried to be forearmed. The General Assembly of Georgia authorized a study commission at its last session of the General Assembly that's composed of approximately 21 ladies and gentlemen of which I am chairman. A good many of the constitutional officers of the state government are ex-official members and I as chairman of the commission have appointed a number of outstanding leaders in all phases of activity in our state. We will study any decision of the Supreme Court and make recommendations to the General Assembly as to what course of action it should follow. And then in addition to that, the last session of the General Assembly submitted a constitutional amendment to the people of our state for their approval or rejection, which will enable the General Assembly in its discretion and in its wisdom to utilize tax funds for the payment of tuition fees to private institutions if that becomes necessary. Well, that is going to be a very difficult system to set up, I suppose. It's going to be very expensive, sir. Anything the Supreme Court does to thwart or change our present system of state control of our educational systems will be the most difficult thing that we in the southern states have had to approach or deal with since the war between states. It will affect something like 12 million school children in about 17 states in the District of Columbia now. It's a tremendous number. Actually, 17 states have mandatory segregation. Four states have permissive segregation, but at one time the overwhelming majority of the states in the union had segregation. Now the white people in the south and also the Negroes in the south won't it left alone just like it is. The legislators, white and colored, want to change. Governor, this means in effect that your state would set up a private school system. I don't think there's any doubt what my state would do so if they had to maintain segregation. We intend to maintain separate schools in Georgia one way or another come what may. A lot of people that aren't familiar with it don't realize how far reaching or deep-seated that is for both races, white and colored. Now about the nearest comparison that I can possibly think of at the moment. If the Supreme Court of the United States suddenly handed down a decision that you could no longer worship your God in these United States as you saw fit, you can imagine the consternation, the chaos, the turmoil, the excitement that that would create. Any decision to outlaw segregation in the common schools in the southern states would amount to about the same thing in our area. Well Governor, does that mean if you're going to may set up private schools and state funds that no matter how the decision goes the Negroes are going to benefit through better schools and more advanced education? Actually the Negroes are already benefiting through fine schools in Georgia. The last several years we've been building fine schools in the university system and in the common schools. We spend 53 cents out of every tax dollar collected in Georgia for public education. That is the highest percentage of any state in the union. The next highest percentage is our sister state of South Carolina that spends 48 cents out of every dollar for a common school education. We are in Georgia at the present time building 1036 new school buildings in every county and state for both white and colored students absolutely without any distinction whatsoever. It involves 12,000 new classrooms. It's the most gigantic construction program undertaken in the history of my state. Well Governor, I know the local custom and tradition are against racial mingling but how do you think this whole problem is going to be solved in the future? Well it'll have to be solved in the future just as it has been solved in the past by each state controlling state matters and the federal government handling federal problems and leaving local matters alone because if we had to set up a federal bureaucracy that tries to regulate the lives and social customs and feelings and one thing and another of all of its citizens it will mean our republican form of government as we know it today will be destroyed. The federal government next will be having thoughtful beliefs and people to go around and examine you to see if you have any prejudices against redheaded people or blue eyed people or freckle faced people and we find ourselves getting into the realm of the ridiculous when we try to deal with matters that aren't authorized by the federal constitution. Governor I'd like to ask you the final question something about the industrial situation in the south now there's a lot of factories are moving down there from the north and furthermore a lot of new factories are opening up there. Do you think this is going to give the south a lot more political power in the future? Well I wouldn't say necessarily political power Larry but it will mean far more economic ability for our own local citizens. We're proud of the industrial progress that we have made in my state. Last year Georgia received 270 new industries located in Georgia and the increased payrolls of those industries in one year long amount to between 40 and 50 millions of dollars. Now lots of those industries were developed by local people with local capital. We don't offer any inducements to any industries located in Georgia. We want them to become citizens help them develop our help us develop our state we offer them no advantages whatsoever we don't give to other Georgia citizens. Thank you very much Governor I'm proud to have you tonight. Thank you it's a pleasure to be with you. The opinions expressed on the Laund gene chronoscope were those of the speakers. The editorial board for this edition of the Laund gene chronoscope was Larry Lisser and Kenneth Crawford our distinguished guest was the honorable Herman Talmadge governor of Georgia. Another baseball season is here the major league teams begin their long grind toward a parent and a chance for the world series and this year again from opening game to world series Laund gene watches on the wrists of all national and American League umpires will officially time the baseball games. Now timing the baseball games is an honor of which Laund gene is very proud because it reflects a trust in the accuracy and the dependability of Laund gene watches gives practical proof of the superiority of Laund gene manufacture among the world's finest watches only Laund gene has won 10 World's Fair Grand Prizes and 28 gold medals and so many honors for accuracy in fields of precise timing. Now in each of these magnificent watches for you and for you is the famed Laund gene watch movement with greater accuracy and longer life inbuilt through superior workmanship for an anniversary a birthday a graduation for any important gift occasion throughout the world no other name on a watch means so much as Laund gene the world's most honored watch the world's most honored gift premier product of the Laund gene Witner watch company since 1866 maker of watches of the highest character. This is Frank Knight reminding you that Laund gene and Witner watches are sold in service from coast to coast by more than 4,000 leading jewelers who proudly display this emblem agency for Laund gene Witner watches. At Laund gene Witner jewelers the Atmos the perpetual motion clock created by LaCoultre Atmos runs without winding without electricity powered only by variations in the temperature of the atmosphere Atmos product of LaCoultre division of Laund gene Witner


Welcome to the Red Hat Cloud Platforms Business Unit OpenShift Twitch Stream. I'm Eric Jacobs. I'm going to be your producer and host today. We're joined by Chris Short, also from our technical marketing team. Say hello, Mr. Chris. Hello, Mr. Chris. And we weren't supposed to say Mr. Chris. Come on, man. I got you. So we are going to be exploring OpenShift 4.3. Both of us are no-talent clowns when it comes to software development. And so we have chosen to try to be software developers, and we're going to be playing with OpenShift here on Twitch today, trying to hack our way through what languages we end up choosing, Mr. Chris. Python, I figured we use a Django framework or something, maybe. Right? Like, that seems pretty popular. So you're going to try and do an application and a database and a pre-packaged application at that? I mean, is that too much? What were you thinking? I don't think, I mean, I don't know. I'm busy trying to tweet to the world here that we're going to figure out. Yeah, we should probably both tweet. I don't know if you want to show your tweet while you do it, if you have a way to... No, I have another one to open someplace else. What is the name of our Twitch stream here? Red Hat OpenShift. Red Hat OpenShift. All one word. Yes, sir. Red Hat OpenShift. If I go to twitch.tv on my other monitor here, do I see myself? Is this like Inception S? Inception Inception? I mean, I see myself on OBS and I see myself on the screen. Yeah, we are live, man. That is just creepy. All right. We are live on Twitch and broadcasting how to be developers on OpenShift. What's your Twitter handle? At ChrisShort. Well, that's certainly easy. That's the intent. There's a lot of ChrisShorts and tech, surprisingly.  So yeah, that's why I am ChrisShort in some places and the ChrisShort in others. The ChrisShort. Look at that. All right. I hit the button. You know, I hope that OpenShift behaves better than Twitter just did, because I swear I hit the tweet button on it. Oh, nothing happened. All right. I have let the world know. All right, man. Well, so what are you showing us right now? Well, I am showing you the OpenShift home screen. You want me to make it bigger? Yeah, sure. You want full screen here? Sorry. Yeah, exactly. Keyboard is going to drive people absolutely bananas. Well, you know, it's your clacky keyboard. Not everyone else's. My keyboard is going to try that. So this is OpenShift? This is OpenShift, man. Like I've got a freshly spun up 4.3 cluster. It's 4.3.5 is the version number here. I can update to 4.3. I think 13 is the latest right now. But for the sake of time, I'm not going to do that, but it is a one click update if we wanted to. Would you upgrade your cluster as a software developer? I mean, probably not, but whatever. Just give everybody access, man.   You know, Eric and I spend a lot of time in the administration and optimization and operation of OpenShift.  No, not some other guy. Like we spend a lot of time, like making OpenShift work for people. Rarely do we actually put applications on OpenShift, like for ourselves, like to tinker with. Right. I mean, you know, so that's kind of the goal today, right? Like my extent of Python knowledge is very limited. Your extent is somewhat better. Is it? I believe.  We'll see. But, you know, we can, you can try to make my crappy Python app work on OpenShift. Oh, yeah. I already got it to run on OpenShift. So it's kind of, it'd be sort of cheating, but you've never seen it. So I've never seen it. What crappy app is it? Oh, Ausgabe in the ticket barfing application. Ticket barfing. Yeah, go to my GitHub. By the way, you might want to make your browser font bigger. Like github.com slash thorax, T-H-O-R-A-X-E. Oh, I did a Z instead of an X because. Z. What is it? German keyboard? Maybe. I don't know. By the way, I apologize that my room is such a mess in here. I tried to start organizing a closet over the weekend. And it just sort of. That went well. Yeah. Well, much like the ticket application, it sort of just barfed into the room. Ausgabe in A-U-S-G-E-B-E-N. Let's just look at your repositories real quick. Unless I put it in the wrong place.  Of course, you're holding something. There it is. It's a little bit old. Yeah, okay. Okay, so this thing. Yeah. What does this do? Do you have some kind of use case for distributed? Distributing simple users, passwords, and arbitrary. There you go. So we do all these cool workshops for, you know, potential OpenShift customers and for other folks. Yeah. And so, you know. We used to use Etherpad. Not that there's anything wrong with Etherpad. No.  Now it's a mess. Yeah. And so this was like a terrible idea during a hackfest we did in Munich where it was like, well, we should come up with an idea to hand out tickets. And then of course we're in Germany. So, hey, Chris Blum, you're German. What's the German word for handing out a ticket or something like that? He's like, I mean, I guess it would be Ausgaben. I was like, okay, that's the name of this application. Wow. Okay. That's what we got. Fun. All right. So, did you just fork it? I did fork it. Yes, just in case. Just in case you break it. Yeah. Blow it up. All right. So, how do I get this thing started? Let's see. Let's go to my OpenShift dealio. You definitely need to make your browser fun bigger. Yeah. Okay. One, two, three. There's three. Is that enough? More? Did anything change? Yeah. There we go. All right. There's more. I see more. Is it good? Can you see better? Do you want more? It's big enough. Okay. I'll give you one more. All right. Okay. So, what is this? This is a single pod. What are we going to do? Multi-pod? How is this app designed? Probably... Yeah. It's not even fancy. It uses SQLite internally. Oh, cool. Okay. Even better. Yeah. Okay. And so, I haven't actually tried to point it. Like, I haven't tried to do source to image with this one. So, I don't even know. I tried to do source to image locally and I didn't have a good experience. But that was local. Yeah. I don't... Yeah. Okay. Let's just deploy it as a pod. You think that would work? No? Well, you've got to build it from source. Yeah. I mean, there is an image on Quay, but... Well, let's see. Do we want...  I've never done this before. I've never been in the building. Language. Sorry. Shoot. We haven't flipped that mature flag, folks, yet. Dagnabbit. We're still deciding on whether how explicit we want to be or not. Okay. So... You might want to create a new... I would not recommend putting this in the default project. Just saying. No. Yeah. Totally just realize that. We're going to call this us, buggin, whatever it's called. House wagon? Sure. House wagon? House wagon. House wagon? No. House music? What is it? What is it called? House... Gaben. House... Yes. So, Gaben is like to give. Okay. So, Gaben is kind of out of, and so it's out of Gaben kind of because the ticket is coming out of the machine. And so I still need to go on Fiverr and pay somebody to design a logo that's just like a, like a vending machine barfing out tickets. Tickets. I could probably do that. My four-year-old could do that. Anyway, so creating a project here. Yes. Perfusely, if you're not careful. All right. So... Okay. We actually have somebody watching our stream. Adam Klater. I think Adam. Right? Aren't you Adam? Yeah. I don't know. He gave... He gave us a link to an app for FEMA Web. Oh, FEMA Web. Okay. I will send it to you on our stream. It worked on OpenShift 3. Oh, even better. I don't have a good way to send it to you while you're streaming. Other than... You can send it to me through Slack over where I can open. Do you have Slack on a different monitor? Yeah. I have multiple monitors. But I've got the chat open here, so I can just do that too. Oh, there you go. You are smart. I have the chat open as well, but it's really tiny. Yeah, it is very tiny. I don't know why the chat is so small and twitch. That's weird. I want to break that out into a separate window or something. You can tell that this is our first time. Yes. This is why we're doing this, so we can get better at it. Users in chat. I can collapse it, but I cannot pop it out. Whatever. I do have another chat application. I'm just switching to ModView, and I'm hoping that helps. Good. Good. There we go. Broadcaster. Oh, but this is logged in as the wrong person. Are you logged in as yourself or something? No. I'm still logged into the wrong Twitch for... Oh. Okay. Well, I have the app. FEMA Web is a test app. It has an API. That's awesome. It has service URLs and all kinds of stuff. This is a different app. Yeah. Okay. Yeah. This is pretty cool. Okay. So FastCLI, I believe, is open fast too. So I know Alex pretty well. Fast CLI. Fast CLI. What is that? Yes. Open fast. It is function as a service kind of deal. Oh. Oh. Okay. Sorry. It's okay. I'm often confused. It works with both. I am often confused and I often break things. So... So that's why we're here. Yeah. All right. So we're going to use this app. Okay. I don't know if we're off-blogging, but we'll use that namespace. Just because. Just because I'm lazy. Because every good success has a purpose. So I'm going to use this app. Okay. All right. So... I just realized that I might be... If I change... I got to be careful about how I alt-tab. And how I move my mouse. Because I can like... My mouse is suddenly moving over the Twitch stream right now. Oh. Yeah. This is weird. You should turn off... There's a checkbox for the scene. Okay. All right. All right. All right. All right. So... I just realized that I might be... If I change... Scroll... Like open the properties for the scene. Scroll down. There's a checkbox for... I apologize in advance for whatever just happened. It should be pretty safe. You can also do it in studio view, but that's probably harder. I don't see a setting for the scene to do that on the scene. I mean... On the Zoom window. The Zoom window setting. There should be a cursor checkbox. This is real... This is real Bush League stuff, ladies and gentlemen. Oh, I see. Don't make me... You see it now? Don't make me open OBS on my little tiny Baby Mac here. In case anybody knows. View options. There you go. Nope. Nothing about cursor. Really? Yeah. Let's see. Wait. Oh, wait. Are you talking about the Zoom OBS window? Yes. Oh. Zoom setting. Yes. That's what I'm looking at right now. Capture cursor. No. Ta-da. Now you're looking at my downloads folder, apparently. Cool. I'm now streaming the wrong thing. There we go. Switch your input back. What did I do? What? Oh, my God. Oh, man. This is some real Bush League stuff here. All right, we're back. You can tell that this is new to us, but this makes it so much more fun. Oh, man. Christian says we'll do it live. Yes. We will. Yes, we will. We are doing it live. Oh, the livest of live. Oh, man. All right. We should actually do some open shift. Yes. Let's give it a whirl. We're only 13 minutes in. There's actually an S2I directory and two here. Oh, by the way, I have a hard stop at 245. Well, then that's one more stopping. Open shift Kubernetes roadmap. Sure. Oh, yeah. That S2I folder is because you can override some of the source to image behaviors with your application. For those who are watching who don't know, source to image is a mechanism. It's not specific to open shift. It's one of these things where open shift is designed to work with it, but it was not written specifically for open shift. But source to image is a way to combine source code and an existing base image to get a new application image that has your built source code artifact in it that can be executed later. And so open shift takes advantage of that. You can override some of the behaviors for source to image by putting scripts in the S2I folder in your source code repository. So that's why that's there, I think. Cool. Pretty sure. So you have far more source to code experience than I do. It's possible. Source to image. Sorry. S2I. Whatever it's called. In the open shift user interface, we should be able to just put the HTTP. This guy right here. Create a build config now. Isn't there a way to just like use the developer console to Oh, yeah, that's right. There we go. I'm in the wrong console. Let's go to the developer console. We're so addicted to system administration. Exactly. We forget that there's so much more. Yeah. I totally can't even. All right. So from Git. Yes. Let's go grab this. Git repo. Which URL is it asking for is the question? The repo URL. The HTTP. Not the SSH. Great. All right. Oh, do we know? Yeah. What language? Oh, it's also Python. Look at that. We're doing Python anyway. Python, Python, Python, Python. Where's Python? There it is. Python. Three six is fine. I'm assuming. So Python three. Resources. Do we need to do anything with the resources here? Deployment versus deployment config. So yeah, this is, this is kind of one of these interesting things. When Kubernetes first. Was born. So to speak. Really all it had was replication controllers. And pods. And so there wasn't really a way. To roll out new versions of stuff natively. And so red hat came up with the idea of a deployment. Configuration. Which was a controller that would handle. The creation. And alteration and management of replication controllers. So you had a deployment config. Replication controller. And then pods. And then later on in the life cycle. Kubernetes went, oh yeah, that's a cool idea. You know, we want to start doing that. And so they have deployment. They're very similar. Deployment config has a couple of other options for what causes new deployments. And so when you're dealing with open shift deployment configs can be beneficial because we have a system of triggers. That works with things like changing images. So since we're doing building code, we probably want to choose a deployment config. Because then we can get automated triggers when the build. Output changes. Does that make sense? Mucky muck around. Yeah, absolutely. And I think, you know, to your point, Eric, the deployment versus deployment config. What I think a lot of people don't realize is, you know, open shift and Kubernetes have kind of had the same path for a very long time. And open shift has had the customers behind it saying we want certain features that Kubernetes doesn't have in Red Hat being, you know, a good customer service focused organization. We built features on top of Kubernetes and then upstream them as best as we can to make sure that, you know, the functionality gets baked into upstream Kubernetes. So a lot of times when you see deployment versus deployment config or projects versus name spaces, same kind of concept, right? Like Red Hat did something before it was probably fully baked in upstream Kubernetes and boom. Or it wasn't baked at all. Or yeah, nothing at all in Kubernetes in this case, right? With the deployment, like deployment is not existing at the time when deployment config was created by Red Hat. So yeah, like that's kind of the scenario. And that's why people sometimes I feel like, you know, they say, ah, open shift is a fork of Kubernetes. No, it's not. We pull in the upstream Kubernetes and then we layer our stuff that we built previously that our customers are still using on top of that. Yeah. Or we just donate the whole thing to the community. Right. And we've completely donated a ton of features. A lot of the user stuff and some of these other things. Yeah. Christian says we did it before it was cool and he's totally right. We do. Before they were cool. Sometimes we continue to do things even after they're not cool anymore. Well, you know, okay. So create a route to the application. We definitely want that. Right. We want the application to be accessible externally. Yeah. So route is our implementation of kind of ingressy stuff. Yes. All right. So I think we're ready here. Click the button. Punch it. Here we go. Waiting. Yeah. So this is showing us the developer view. If you click on. Gold running. Look at that. What happens if you go to the builds area? That's where I'm at. Going to logs. Getting image source. Yes. So it's got to pull the builder image and who knows how long the. Sorry. Who knows how big the Python build images. Can't be that big. Oh, you'd be surprised. Oh, really? Jafar says security context are now pod security policies and Kubernetes. That's true. They're not. They're not the same though. Yeah. P.S.P. Pod security policies is an evolving thing that kind of is like security context constraints. They're not exactly the same. They're still some differences. PSPs are still evolving. Yeah. But for sure. They're the same. So. They're features that we have created that. Make Kubernetes enterprise ready and also added. Multitenancy. Well. The string get going. Yeah. So, uh, Jafar and Christian are both on our team. They're both in the chat right now because. Uh, chatting is the thing we're doing today. It is also red hat summit time. Open shift. Uh, That's right. I wish we had a banner for red hat side. You could go to the red hat summit website and show. Yes. What's going on. So as, as many of us know.  It's kind of a bummer for lots of people. Yeah. But because of it, uh, red hat summit has gone completely virtual. And so for those who are interested in, uh, in attending virtually. Ta-da. Eventually. You will see a screen. Yeah. Yeah. I don't know why. It's a very popular event. So it's kind of the websites a little. Yeah. We've got a lot of people logged in right now. Last I heard. So yes, like it's going on. It starts officially tomorrow. Uh, Open shift commons gathering is taking part right now. So you can, I still think get started with that today. You can register still. It's free. Zero dollars. Right. Like you can register for free zero dollars to attend a two day. Event. Packed with content. So that'll be coming out and just wave after wave after wave of new content coming throughout the days. Um, and we also have some other content that will be coming out later in the year as a result of all the content we have and the fact that it's virtual. There's so much more that you can kind of do when you're in a building for four days as opposed to online for two. Right.  Oh, Yeah. Yeah. So what happened to know who that is? That's our, that's a, my buddy Rob, who is, uh, Open shift sales specialist. And thank you, Rob. Appreciate you. Commercial. He's in the chat. Yes. And Jafar is asking folks to go to his demo tomorrow. So I will happily open that up for him. Um, assuming this actually opens. Open some window in the background. So that's, that's not your phone. What? Okay. Make sure you attend. Oh, it's, it's just a live and interactive demo. It's not his live and interactive. Oh, Oh, it's going to be Burr our, our master course. Oh, Oh, Oh, Oh, well then let me pull that back up because I thought that was the wrong thing or something that. No, that link is for the Burr for the Burr Sutter. I mean, I'm sure there's other people involved. Yes. There's always lots of people for the keynote. They're usually trying to do pretty cool key notes. Yes. So yeah, Burr's going to do a live demo tomorrow. Oh my gosh. I'm sorry to make you not use 4k. That's okay. What? No, I like my 4k stuff. Actually, I could just do it on this one monitor downsize it for you. If you really want me to. Uh, yeah. So there's Burr's talk. He'll be doing a demo, uh, you know, from the private data center to the edge. Um, you know, uh, when we say edge and I think red hat land, uh, it means a lot of different things to other people, but when I say, there's lots of edges. So yeah, when I say edge, I'm talking like customer right? Like as close to the last mile as possible kind of deal. Perhaps. Perhaps. So I mean we, there's, there's probably going to be several presentations about edge, but you can, you can see more, uh, in Burr's, but you know, edge really, there, there are many edges. There's, um, you kind of have, if you think about it as like an onion, right? Where the, the core of the onion is the data center. Um, there are layers of edges. You move out and further away from the data center. So you've got, uh, near edge, which is, you know, potentially like a smaller data center.  And then if you start thinking about internet of things and whatnot, then you get to like device edge, which might be, um, which could be someone's car or, yeah, or, um, or, you know, just some handheld device that a technician is carrying. Um, so yeah, there's lots of, lots of different edges, but yeah, so user context edge, I think is sharp edges. Yes. They're sharp edges and the peeling of the onion, apparently, so be careful. Uh, the onion edges will definitely make you cry. This is true. Yes. All right. Back to our app, sir. We are an hour away from being done here. All right. So the push was successful. We've got a nice little image in our image registry here. That's, this image is actually local on the, uh, OpenShift cluster itself that we're using here. Yeah. So OpenShift, uh, automatically includes its own internal image registry. And when you use this build process like we did, um, you will automatically push the image into the registry that's already in OpenShift and it's all preconfigured. And it also is tied into the same, um, RBAC, but, uh, Chris is logged in as a cluster admin. So really that we, it's kind of, it'd be hard for us to show something meaningful. Maybe we'll have to do that for another stream. Yes. There you go. We might actually have to do this more than once. Yes.  Like we know exactly what was happening. We have the events here. Uh, we can do things with these events. For example, if we had an operator, we could trigger off these events. Um, let's see. Wow. Okay. Lots of stuff going on here. Is it running? It appears to be running. Okay. Can we ask logs? I got events. Go find the route.  I route apology. Yeah. No, it's opening. This is the route, right? This little button open URL. There's a little bit of a lag between your screen and mine. But yes, that is the button. Where not to live. Oh, fun. Also a tiny font. You know what? I'm gonna keep killing you on it.  Oh, are you gonna change your screen resolution? We're gonna do it live. We're doing it live. Oh, no. We're doing it live. Here we go. This could be bad. I know. It's already kind of going slow. All right. Ultra fine. Here's your largest text I got for you, buddy. Oh my gosh. My webcam just shut off and everything. All right. How about that? No change yet. At least not that I can observe. Oh, there it is. Hey, that looks normal. Okay, cool. Good to know. I shouldn't say normal. That's disparaging to small text. Or people with bad eyesight. I'm not sure which. Yeah, I figured that out. That's true. So yeah, apparently that's 1504 by 840. Yes, guys. You can make the browser text bigger, but the difficulty is that the default browser text for every single new tab is tiny. So you end up having to do it over and over and over and over again. But here's the thing. Much like a job, you have to do it every time. So, Eric, as we discovered earlier today in some of our testing and building with scenes and everything, we discovered that Fedora in Wayland, you can have different zoom settings. Maybe you had. Maybe you could have different zoom settings. Unconfirmed. One monitor with 200% zoom at 4k and you can have another monitor that's like 1080p at 100%. You can't do that very easily. No, right now, for whatever reason. But apparently you can on Mac. So I'm just going to throw that out here, right? Like I just did that. So plus one Mac. All right. I live in Michigan. Let's see. This application uses public data from FEMA, the U.S. Federal Emergency Management Agency's API Open FEMA Project, but is not FEMA endorsed. Enter a two-letter state abbreviation. I don't know what this is going to tell me, but let's see what kind of disasters are going on here. Waiting for the FEMA. It says waiting. Oh, it is waiting. There we go. Oh, wow. Okay. Dang. List of FEMA disasters in Michigan ranked by county. Which county do I live in? I live in Oakland County. Oakland County. Oakland County. You are somewhere on this page, hopefully way down at the bottom of the list. What if your state is just one giant disaster? It might be. Oh, Oakland County is toward the top. That's why I didn't see it. Interesting. Yeah. So Wayne County is the county with Detroit in it. So it has two more than Oakland County, which is where I live. We've got a new follower, Serena Marie. Thank you. Hey, Serena. Thanks for joining. Appreciate you following us. So yeah, we've deployed one app. Yes. And we made a matter of no time. So yeah, there was no issues, no problems there. And I mean, it's cheesy, right? But when you sort of step back and think about what we just did, and I sort of use this example all the time, we clicked three buttons, and there is now an application running and accessible on the internet. And you had already made the fun figure on that tab, which is why it's completely balanced. There we go. Yeah, fix it. And so yeah, like two, three button clicks, we got something live on the internet and some companies that takes like six months. Yeah. Get it accessible and deployed on the internet. Now granted, somebody might have to let you expose something on the internet, but more or less, we just did it live. But from the developer view, you see we have, you know, our deployment config right here, this DC label of the FEMA web. We can go edit our source code and click that. And off we go to GitHub. We can come back. We see our route. That's how we access our application. And then we see the actual like running status switches where we saw the build and log and event details. And, you know, that's our whole application wrapped up and deployed. Pretty cool. Yeah, you want to do another one? We can, we can try Ask Haven and see if it'll actually work. Okay.  So don't you have that cool tab search feature that you turned on the other day? I do. Well, no, it's not tab search. Is it? It's like tab search. No, it's not. It's, it's open if already existing tab, right? Like that's what I was looking for the other day.  There you go. That's what it's called. That thing. Yeah, it's like a feature of Chrome that you have to turn it on. It's buried in the bowels. Very much in the bowels. What, this is a real, what view of GitHub. So, oh, so this over on the left hand side of my screen is called octotree. Yes, this is an actual GitHub plugin that shows you like the actual directory structure. Yeah. So it's like an entry but for GitHub, but for your browser.  So it just makes a more consistent experience for me personally. So that's why I use it. It's free, but it has some paid features if you want. It's called octotree. At octotree.com. Oh, there's my GitHub access token. I'll change that later. Octotree. I might have to put that in the chat here. Octotree. Yes. I'm looking at my other screen. Octotree is loaded with features that bring your productivity on GitHub to the next level. I'm sure they do. All right. So I will take this URL. All right, take this URL. We will, you want to do another in the same project or not? Yeah, let's do the same project. Let's do the same project. Make more tenants, make less tenants, multi tenant, all the tenants, all the tenants, import from Git, so many tenants, all the tenants. This is also Python, correct? Yes. Yes, sir. We will not call it female web app. We'll create an application. The application name is barf goblin, whatever it's called. Last given. Can you call it barf? I could call it barf. You could also call it pizza the hut. I will call it pizza the hut. Schwartz. The Schwartz is with you, sir. Yes. Who was it that was supposed to watch that movie again this weekend? This weekend? Yeah, someone mentioned that they didn't, like we shared a GIF of the aliens mocking scene from Spaceballs and someone was like, what is that movie from? Yeah, remember in Spaceballs at the end, towards the end, they're in the cafe and they're eating, they're ordering something and some guy eats something and like all of a sudden he starts grabbing his chest. Yeah, yeah, check please, that kind of thing. Yeah, I didn't, I guess I wasn't paying attention. That was Andrew. Apparently Andrew on our team. Andrew was the one that didn't see it or Andrew was the one that didn't recognize where the scene was from and apparently from my description, you don't either. So, but at least you know pizza the hut. If I had seen the picture, I might. Yes, maybe I would have been better contact. Supposedly. Yes, exactly. That's what I hear. All right, so this is your app running along here. Oh, it's trying to build the docker file. Yeah, that might not work so good. Let's see what it's doing. That's getting all the requirements. It hasn't exploded. Which is what it did when I tried to build it locally. Bowing. You should consider upgrading pip. That's okay. Copying blobs. It's using some weird. It's using some weird upstream. It's building images. It is not only building them, it is pushing them. Push successful. Hey, it's the little things. All right. So if it works, it's not really going to do a whole lot because you got to push a CSV file into it to actually load content. But it'll at least, when you visit it, it will at least, it'll show you like, hey, click here to get a user, but then it'll probably explode. Not ready. Wait, is it something? Or it's just crashing. I mean, there's lots of options. There's that too. Wow. Can I move this freaking thing? Hide floating meeting controls. Press escape to show floating meeting controls. Thank you. Oh, the. Yes, the zoom stuff. I can't understand. Still not doing a thing. Maybe the image is still pulling. Crash loop back off. Probably because it's expecting to run as a. Rename application from Python script app.py. That's the error we get. That's it. That's it. It's not exciting. No, it's not. All right. That's okay. That's pretty sure. I'm pretty sure that's because it was doing a Docker build, but there are container build, but. Oh, okay. I'm not. So that didn't work. Does it use a web container? Or is it just a command line app? It uses a goon, goonic corn, goonic corn. Oh, really? Yeah, really? Okay. The one that's on Quay works. I don't know. The one that's on Quay works? Or what's the Quay thing? Quay.io slash. Is it under your name space? Okay. Yeah, I think so. Just go to a terminal and do pip install. Do that. All right. Where is your? There it is. That's the one. All right. The repo should have a, well, the Aliscape and repo does have a requirements.txt, but for whatever reason, yeah. It built them. I saw it go through them. Well, because it built the Dockerfile that it found. It didn't do a source build for whatever reason. I don't know. Well, we could try again. We'll do it in here. I need to the stream manager. There we go. That's what I want. All right. That openshift. I pasted it in the chat. Yeah. So I don't know why it did a, well, I know why it did a Dockerfile build, because that's what it found when you did the, from Git, because I don't, but you chose Python, didn't you? Yeah, I chose Python. What does the build config look like? Oh, hang on. Let me go back. Yeah, that's definitely not going to work. The build config. What happens if you clicked the little Git logo in the topology view? Wait, I'm way ahead of you. Oh, sorry. Screen takes a little bit. Yeah. Oh, you need a cough button. Yeah. I think I probably could, there's a mute button. All right. Do you see the build config details page? Yeah. Let's see. Git repository type source. I don't know why it did a container build. That's weird. Okay. Okay. Do you want to try your image or not? You can. Okay. Oh, Jafar says do a, do a hack and get rid of the Dockerfile. All right. So what's going on here? Can't create. Because you already have something called barf. Didn't you? No. Whatever. We'll call it max. Let's make it same. And it still doesn't work. Image name. So wait, wait, wait. To deploy an image from a private, that's not private. No, it's totally public. Yeah. Hit the, hit the search icon. Yeah. Did it do anything? There we go. Oh, there we go. Yeah. So it needed to, yeah, if you don't hit the search button, it doesn't interrogate the image from the registry. So it doesn't know how to expose the resulting image. Cool. So it validates the image. Yes, it does. Oh, sorry. See if only I would pay attention to the chat. Ta-da. All right. Let's create. See what happens. Here's Max. Yes. Serena says it also provides a bunch of defaults. And so it interrogates the image and it finds things like the port that gets exposed and all kinds of other stuff. And so then it knows what to do. I'd be curious to see the log of the busted one again at some point. Sure. I can leave this cluster here for you. Wow. Okay. You have to leave the cluster for me. Well, I can give you the login details right now if you want. This is boring. No, it's boring. If you give me the login details, we're supposed to do it live. I'm gonna trouble you to get it. Oh, that's right. Never mind. Hang on. You're defeating the purpose of the depiction. I'm sorry. I thought you meant later. Like, well, no, well, well, I mean, maybe later, later. Yeah. Before 245 later. Yes. There we go. This is Bruder working with PID 9. It's running though. It's not dead. It's not crash looping. So you should be in the restarting. All right. Let's rock and roll. All right. There's the route. You need to use your workshop. Click here. I don't know what you have. Internal server. That's what I figured, because there's no database. But you can go look at the logs now. We can be like good developer. Why did it fail? App operations. It's a tongue twister. Oh my gosh. This is quite the error message. Error exception and get user. I'm assuming there's gonna be, there you go. No such table. That's because we have not uploaded a CSV file in there. Is there a sample CSV in the repo? Let's go see. There is not. There is a sample format for the CSV file. But I mean, we don't have to go through the exercise of all this fun stuff. GitHub tab opens.  If you scroll down and read the rest of the instructions.  So this URL is going to work? No, it's not. So you have to replace this with the route. Well, first you need to create a CSV file with the following format. And curl that into the route. Exactly. Got it. All right. So live stream. Do it live. Yep. This isn't particularly open, shifty this part. But well, I mean, we've got to sort of make, I guess, because we're going to use the route to Oh, I hit escape and that damn thing reappeared. Oh, sorry. What'd you do? I hit escape and the controls reappeared because I'm in them. Yeah, not a not a power vim user. And I also named that file wrong, but it doesn't matter. So do we even name the file? Yes. It actually, so this will be an interesting text test of the app. Oh, okay. So yeah, yeah, yeah. May complain to you. I don't think that's going to work. Yeah, I'm pretty sure you're right, Adam. I think it's about to. Yeah, no, well, let's, let's see at user data. So barf.tx. I think the code actually checks for the file extension and not the file format. Not the actual format. That would make sense. App.py. And then the URL is over. Get out of here. I can't stand these controls. Where did you hide? All right. It's CSV data. No file. Where's the route? This is the route, right? A loud file. I have some kind of a loud file thing. A lot of extension CSV here. We're going to get an error of the girl. Okay. So I need to fix this. Yeah, the port number is wrong. Man, it's all wrong. God, I need to have some somebody needs to update the documentation because that's not good. Well, actually, no, well, hold on. So you don't need the port number because you're not developing locally. Um, oh, you don't want to see the error? Fine. Well, do you want to see the error? I know it's fine. Well, it helps it with Jesus Christ.  Yes, I'm sure Jesus get at it. Not overwritten. What? What? No, stop. What are you doing? Oh, gosh. Oh, correct. Do a LSL. No, what's going on here? Don't. Now it's fixed. No, I have some extension that's like, are you sure when I do things like renames just to make sure you don't break anything? I don't know. That would drive me bananas. Well, it's starting to drive you bananas. Um, yeah. All right. So now what need to do this? Adam's paying more attention than we are. Cat the file real quick. Okay. He thought they looked like the line numbers had gotten into the file, but they apparently they did not. So I think we're safe. No, we're good. Okay. So we need to curl the barf. Christian is Christian is barfing at your use of Z shell. Really? What? I thought he liked Z shell. He might. I thought he did. Wouldn't be the one that turned me on. This URL is what? That's the route URL. And then I just need the path, right? Yeah, load CSV data because the port. Yeah, it's not relevant. Yeah. So slash load on load underscore CSV underscore data. That's it. Right. Yeah. We'll find out if it's not. Okay. Well, here goes nothing, buddy. Hey, look at that. Wow. Okay. So now if you get a user. Let's refresh this real quick just to make sure it's still online and click here and get a user. Hey, user one password. Functional Python application. Look at that. It's the second one of the day. Wow. I've done two and two days. Dude, we deployed two apps to production. Technically only one of them was from source code, but two apps to production in less than 48 minutes. Well, that's what I was thinking, right? Like we could have gone a little bit harder if we wanted to with like a full Django kind of deal, but, you know, maybe next time. I want to see who this is. We got a new viewer here. If I was asked if I was sure all the time and I answer truthfully, nothing would ever get done. That's true. This is very true. That is very true. Yeah. All right. So two Python apps. We have two Python apps. We have some time left. Oh, hey, Mike. It's a friend of mine from a million years ago. We went to high school together. Let's keep in touch. See? Look, apparently. Did you want to try to get Django to work? I mean, in 30 minutes. Hey, man. You can race him. Jesus. All right. The question is, do we have an app in mind? I thought you want to do Django. That isn't it. Like just Django, like just by itself? Sure. I don't know. It's your show. Does it work by itself? Well, it needs like a database and stuff. Right. Like that's what I mean. Like check. Check if it's already in the operator hub. Oh, good question. Like in the OpenShift user interface. Django Unchained. That this is definitely not that kind of string. Not. No, not that string. Developer. No. What? Why did you switch to administrator? Well, because I'm used to going to operator hub under developer or under administrator.  Add. Really? We should just be able to see stuff. Add from catalog. Yeah. There we go. All right. I mean, technically, I think. Now this looks familiar. Dj, what happens? Django and Postgres. Wow. I don't think that's an operator though. I think it's just a. It's a source damage build of the existing. Okay. Well, we're going to deploy it anyway. We're going to deploy it anyway. So the cool thing that we do, we meaning Red Hat, a lot of these sort of existing common frameworks, I think there's like a Ruby Rails one as well. We've already got sample repositories for those. And so when you do the build, it builds right out of the sample repo. Can you go to the repo for this one? What's actually in it? What is the repo? If you click. There we go. Yeah. There it is. Yes. Django example. Open shift. It's Django. How many years ago was the last commit to this?  I'm sorry. 14 days ago. Give me a break. 14 days. Okay. That's recently. Yeah. It's just some file recreated. This is a minimal Django project. I thought Django was like WordPress-y. It's like a. No, Django is like the framework you build a WordPress-y thing on. Oh, is it just an MVC framework? By itself? I guess. Maybe. Yeah. I mean, it's super powerful. I know Ansible Tower is built on Django, right? I thought it was like its own CMS, but I guess it's a framework. Makes it easier to build and better web apps more quickly and with less code. It is a Python web framework. There you go. Reassuringly secure. I'm not sure that that definition or description by itself is reassuring in and of itself. But anyway, we're not here to pick on web frameworks. We're here to. No, I'm just looking. Is Ausgaben listening on port 80? No, internally it listens on 8,000 and that gets routed to 80. Sorry, 80 gets routed to 10,000. Yeah, the route fixes all sends. So, yeah. I wouldn't say all. Well, most. Come on. What is my Eric Jacobsism? OpenShift does not fix your bad application architecture. Right. I mean, there were so many there I could choose from. So many Jacobsisms or so many bad application architecture. No, no, no. OpenShift doesn't solve your political problems. OpenShift doesn't solve your cultural issues. Technology doesn't solve political problems. That's right. Technology does not solve political problems. Correct. All right. Let's build this thing. Okay. Well, this is kind of cheating though, because you're using an example. Well, but that's why we buy or use OpenShift, right? That's why we use Enterprise. This is the shortcut. Right? I don't know. Maybe. Could be. Yeah. Build versus buy. That's why you buy, because there's stuff ready for you to build on top of already. Status. Not correct. But so far the app was, so the problem with the crash loop had nothing to do with the port. It doesn't detect that problem is different. Yeah, the route. The second one where we deployed it from the image it was working. So. Yeah. What's going on here? Oh, so this uses a template. And so for those who are Kubernetes familiar, OpenShift templates are kind of like Helm charts. I've never actually looked, can you believe I've never looked at a Helm chart? Like I still haven't even touched one. Do they support parameters like templates do? I assume so. I don't know. I haven't touched one either. Oh, man. We are. We are. Yeah.  Just, oh, four three doesn't have Helm though yet, right? That's not until four four. Four four. It's tech preview in four three, I think. Oh, but I don't, you have to like pull levers to get it to work, don't you? Oh, yeah, yeah. I'm sure. Jeez, that is not ready. Why would that? I stopped paying attention. What are you doing? I'm looking for pods or whatever the fuck's going on here. Sorry, language, my bad. Apology. There we go. There should be. Where is Django? There's that. There's Django. It says it's running. It just started running. Yeah. There you go. Until four four in the UI, Helm charts will be available in the developer catalog in form four. Yeah, Helm v3. Right. Thanks, Serena. Hey, look, Django is working. Okay. Success. And this actual application installation as an OpenShift thing gives you all the instructions on how to work with this as is. Yeah. So you could start building on top of it. Can you scroll down so we can see the request information? Yeah. So if you hit refresh, you'll see the page views goes up. Yeah. And so that server hostname information, can you go to the terminal in the web console? Yeah. Yeah. Well, go to the Django pod in the console and then go to the terminal. Please. More, please. So, yeah, another super cool thing about the OpenShift web console is that we give you this terminal so you can actually, it's almost like a shell, so you can execute. Hey, thanks for following us, Adam. So in the shell, if you do envy and pipe that into sort, we should see, there you go. Django, PGSQL, persistent port. That doesn't look like a port. That's a whole string, but whatever. But yeah, all the connection information is being shot into this container as environment variables. And then the application code for Django is written slash configured such that it is looking for the value of the environment variable when it tries to connect to the database. So now we can externalize our configuration as code. Look at all the variables. So many variables. E to many variables. Buffer full. Buffer overrun. Okay, Django. Can we look at the log for my busted code? Yeah. Let's go look at your busted code. My code that's busted. It's the way it's picked it up. I bet it's because it's trying to run as a specific user and we don't have any UID. And so this is it, right? Yeah, crash back off. It's probably barfing. You want to see logs? Yes, please. Oh, it says it's running. That is like the most useless log file. Environment. Nothing in the environment. What are the events on that one? 90 times. If only the developer put that. There used to be a way to debug. I don't think it matters. If it had built it from source, it might have worked better. But under the animal file, that might look obvious to you here. No, it's not that. I mean, it built the image and then it tried to run the image and then it claims that the image is crashing. But unfortunately, Gunicorn is not spitting out enough information. Okay, interesting. It's all right. It's user error, but you're not the user in this case. I am. Well, yes and no. I've done broken it. You've done broken it, but I've done broken it. Well, it's got to be Python. It's just not being verbose enough. It's probably just exiting. I've always pronounced it Gunicorn. I mean, it looks like it's supposed to be unicorn, so. But there's no N to be silent. So it's not like good noon. Good noon, it could be Gunicorn. Gunicorn. I don't have to look it up. Yeah, Gunicorn. What does the internet say? The Gunicorn green unicorn is a Python web server. We have a pronunciation. Oh, pronounced G unicorn. G unicorn. Well, we're all dumb. Is that like G Willikers? G unicorn. G, look at that unicorn. We are all in the wrong. Yeah. Yeah, so I'd probably have to add some more stuff to make it look more better. But it should have built from source and I don't know why it didn't. So I don't either. Can you look at the build config for it? Yeah. You clicked into build. Like I'm seeing the way. I'm on the pod still. Sorry, my bad. I thought you clicked into build. Let me go back to the top. We can click in builds. I did click in builds. But then you clicked in a pod. You want to build config. Yeah. Yeah. Yeah, that's where I'm going. What do you want to see? Um, the YAML. Does it say anything about builds to output, escape and type source from Python 36? Creating webhooks.  I hit the back button, I bet. It says source. Why did it do a source strategy from Python 36? It identified Python. Well, we told it Python. And then what was it? Can you go to look at the build logs? I guess click builds. The builds tab. And then there should be the first build. Unless I just misread the build log. Getting image signatures from user root copy upload source. Oh, never mind.  I read the log wrong. My bad. Okay. Scroll down. So I think I know what the issue is. User 1001. Yeah, okay. No, it's doing the right thing. So it ran. It did install the requirements. Yeah, Jinja, JSON, flask, all that stuff. Okay, I see what's going on here. So the issue is that this is a flask app that needs to be run in a particular way. And so my guess is that when the container starts, it just immediately exits because it doesn't know. It doesn't have all the stuff. Yeah. So go scroll up to the very beginning. Where does it say that it got the image from? Like we need to look at the S2I run script. No, that's where it got the code from. We need to find the image. The S2I Docker build image. This guy, that one. Yeah, but that just says it's not very helpful. Run. Nothing. You're not helpful to that. I'm never helpful. You don't have to tell me that. Click on builds again. Or like, can you find the image stream? Can I find the image stream? Yeah, click on overview. Sorry. In the build. Yeah. And then scroll down. Build from this guy. Yeah, that's not helpful though. Yeah, I guess we need to see if we can find it on GitHub. Let me see if I can dig it up. Oh, I want to find the run script for... We may need to put an S2I run script in our repo here. Open shift Python. I'm looking on my own. Open female. GitHub. Open shift REST client Python. No. Source to image using images. So many tabs. Yeah, we're going to need to... Oh, go look at the Adam's repo. The one that we built earlier, the FEMA web one. Because he's got an S2I folder in there. Open shift 3 Python 3 3. All it says is app config config.py. And his .s2i. And then look in... Oh, that's the environment. Look in FEMA web, like the root level, top level folder. I don't know if Adam's still watching. Uh, he's got config.py or app.py. Sorry, I was like half paying attention to the thing you just showed. I was half paying attention too. Config. It was app config config.py. So that's why we were confused. So now if we look at... I keep bumping my desk and shaking my monitor. So if we look at config.py... What navigation is available, that's great. Gunicorn processes, threads. G unicorn. Right. Sorry, it's unicorn. Okay. Yeah, I think we just don't know how to use Python S2I as a problem here. So you may even help set these environment variables. App file. The variable specifies the file name pass to the Python interpreter, which is responsible for launching the application. This variable is set to app.py by default. But workers for secure. Sure. Well, but I have app.py. Versus he's finding an example. Yeah, config, secure, key, workers, threads, forwarded, secure. Is there anything else in the top level of this repo? FEMA web. Let me take a look at it myself. I just unplugged my headphones and they went crazy. Sorry, I didn't hear anything you just said for the past 30 seconds. I wasn't saying anything useful. I'm looking for the source code repo for this... For this? Yeah, what's the... No, no, no, for... Yeah, you forked it. What was the parent? A Clare. Okay, I see what... That's weird. Sorry, I'm looking at the Python source to image docs. Config. This variable indicates the path to a valid file with a GUNICORN configuration. GUNICORN configuration. Yeah, so we might need to... Check out this example. Remove everything in the ifv and put your command. Okay, let's see what your... Figure out what your command is and I will... Yeah, but like Adam's using GUNICORN, I think we're just missing the config. So if you copy his... If you copy the config.py from the FEMA web example... Just the whole S2I directory? Yeah, so the S2I directory and then config.py. I would be curious to see if that makes it work. Because basically it just... It doesn't know how to load our app, is what it looks like it is happening. From flask import, flask from application import application. Right, but we're not doing that because it's all in there. Goofy app, 00 port. I shouldn't call it Goofy. Osburger, Aspagin, whatever it is, there it is. You're never going to figure out the name of this thing, are you? No, I'm never...  So you want me to copy FEMA web.s... Yeah, I don't think this is going to work, but it'll be interesting to see what happens. Because I don't have like a traditional... No, you don't. So this is this. Appflask name, ifname equals main. Yeah, I'm going to paste something in the chat for you, Chris. That's the S2I Python docs. And so I think we need to configure something here. There's an example setup test app available. App file, this variable specifies the file name passed to the Python interpreter, which is responsible for launching the application. Right, but apppy is the default, which is what my answer is, app.py. App config. Right, but we don't need that because I'm using default unicorn. Well, maybe it would help. What does this default configuration look like? Well, you can look at the one in Adam's repo in the FEMA web repo, his config.py, which just sets them stuff. Yeah. And then there's a way... I think part of the issue... Well, if you look at his app, is it logging anything interesting? Let's see. Is it logging at all? Because I think the issue with mine, maybe the unicorn is not sending any interesting logs to standard out. Ah, yes, putting connection strings and stuff in here. Like who's connected to that? Yeah, running the file application from pythonscript app.py. This is a development server. It's... what? That's like not using unicorn. So far it says you could try with an S2I been a symbol script where you override the default. Well, the issue's not a symbol, the issue's run. Run. Do you want to commit... Let me commit these changes that I made. Watch it break again, at least. How about that? Oskevin. Yeah. So how would I refire the build? Start build? Yeah, okay. But is it correctly installing the dependencies? Yes, it is. We determined that it was installing the dependencies. Yeah, it was doing that before. Yeah. Yeah. Emote only chat that... Sorry, I got to change my... What are you changing? My arrangement. Just got to see how my screens are arranged because it's throwing me off. Sorry. All right. Still building. It is building. It is doing the things. It is installing its dependencies. And the stuff. And very quickly going... Does it install gunicorn? I'm just curious. It should be like one of the first things, right? Yeah, I thought I saw it downloading. Collecting gunicorn. There you go. Destroying images. Making progress. There's more lines of log, I feel, like this time. This is the build log, not the app log. Yeah, that'll do it. Push successful. So now I should try to roll out number two in the topology or in the pods or whatever. Crash back off of... Crash loop back off. Do we get any more information this time? Nope. Service port 8080. I thought we shouldn't make a difference. Yeah, you can't get a terminal because... Oh wait. Oh, never mind. Well, green for a sec. I saw green for like half a second. And I went red again. So excited. I got excited. I'm excited. No, it's not working. Forgot it's a container, it'll die soon. Yeah, well, no, that shouldn't matter. Okay, well, I wish there was more logs. It's frustrating. I want to find the OpenShift Python, like build... Oh, I think Jafar had shared it. Yeah, he shared... DevOps workshop. No, that's not the one that I want. This one? I want to find the actual... No, no, no, the actual Python source. S2I, source to image. This is for OpenShift 3. Let's go to 4, 2. OpenShift Enterprise 3.0, geez. Yeah, so this is not the right thing. I don't even think it... Do we have S2I in here? Yeah, I mean we do. It's under... Where? Look under builds and then... I don't know that we have like specific Python-y... Using build strategies. Applications? S2I build. Where'd you find that? Oh, build strategies? Yeah, build strategies. I'm hoping it takes me someplace maybe. Securing builds by strategy. Using build strategies. Performing source to image and criminal builds. Overwriting. Both reading the same documentation together. Yeah, let's see. Python, nope. Understanding build configurations. No. Yeah, I'm just going to look on GitHub myself. OpenShift Python. Sample Python. OpenShift REST Client Python. SCO or S2I Python container. I think that's the one that I want. Yes. And we're using 3.6, yeah? We are using... No, we're not using 3.6. We're using 4.2. Or Python 3.6. Sorry, yes. S2I bin. Run. So if you look at the run script. She's going to corn installed, which it should be. Jango's not installed. She should migrate. Get the default web concurrency. Maybe run in an hit rep. Maybe not. Oh, man. App home. Okay, a Python path. Sure, CD app home. App script check. App script equals blah. Okay, we don't have an SH script. Running application from script, which it does. It does. If app script is slash then app script equals dot slash maybe run in a knit wrapper. What is the maybe run in a knit wrapper function do? It's up higher. Yeah, I know. I'm finding that. Enable a knit wrapper then exact. S2I scripts a knit wrapper. S2I scripts a knit wrapper. Okay. So now go to the knit wrapper script on the left column. Please. Please. Please. Opening out. Okay. Well. What? Just wait for a bit. You're going to understand what this does. It's looking for a kill signal. And if it doesn't find one, it assumes it's good. Okay, so go back to the script. If I'm reading this right, I think. Yeah, this is like really smart. People made this and we are not smart enough. Yes, I'm not this smart. Not smart enough. Yeah. Scroll down more and more and more. I haven't sacrificed enough whatever is to make myself this smart. Manage. Look for a managed PY. Okay. If should migrate? No. If is GUNICORN installed, which it is. Setup PY. Find home access to setup. We don't have a setup PY. Look for a whiskey module. I just got my warning to join. Here we go. GUNICORN app module bind 8080 access log file equals dash config app config. App config. You may find out. And you added an app config. That's the only place. Okay. Yes, I did. Assuming it pulled that which. But it never gets to that, right? If you go to the app log. The build log, you mean? No, the app log of the crashing pod. Yeah, yeah. Hang on. Yeah, you got five minutes. It just says running from Python script app.py. Yeah. Okay. So if you go back to the code. Which code? Your code? The run script code.  I lost that tab. Oh, no. This guy. So if you scroll up. Like I probably don't have my flask app written correctly is the issue. So we could potentially just override the run script. Do something hacky if you want to try that in the last two minutes or whatever. What do you got for me? If you look at in the house gave in repo. In the Docker file. The command line. Yeah. If you just put that command line as the only line in run in the S2I folder. Put this well. Well, not not the not the command. Yeah, but just the unicorn access log file dash just put spaces between everything. Right. And you want that where? And the run. You need to create a file called run in the S2I folder or whatever STI. I don't remember what folder it is. Dot dash A dot S2I. Yeah, CD dot S2I. Is that a run file? You'll need to create a file called run. Yes. Want this without all the dashes and stuff. Yeah, I need a space between all the things. This might work. It might just. Really? I don't know. We're going to find out in two minutes or one minute. 15, six seconds. All right. So you want that there? It's worth a shot. All right. So get status. What do you got for me? Hacking with Python. That's exactly the command you're asking for. Sorry, Jafar. Jafar is joining us all the way from France. It is way past this bedtime. Jafar is always up past that time. Actually, what time is it there? 8 p.m.? Alexa, what time is it in Paris? In Paris. It's 8.43 p.m. 8.43. There we go. Thanks, Alexa. All right. If this was playing through your speakers, I could ask Alexa for things. You could. But it's not. It's playing through my head. Try it locally and it works. You tried asking Alexa what time it is in Paris, Jafar? No, he tried G Unicorn locally. Build number three is running. Here we go. Oh, wait. S2I bin run? We just called it S2I run. We may have made a terrible, horrible error. Language. We have not yet turned on the mature flag. Nope, it's bin run. Is it bin run? Okay. We might be screwed. It's okay. Move from bin. You're out of time. You're going to be late. Get ahead. I know. It's like the coffee mad header thing. Oh, yeah. Very late. Very late for an important date with kid status. Make sure I'm doing this right. Yeah, get pushed. Well, while you're doing that, oh, I can't do that because I'm signed in to Twitch as OpenShift. I was going to set my personal channel to mature audiences so that I can go hack on actually hacking on OBS and then swear while I do it. Okay. Well, I'm going to try this one more time. Are you really? Yeah, why not? We have two concurrently running builds. I wonder. Yes, I don't know which one's going to win. What's going to happen? You can race him, but we did it. I'm pretty sure that number three is going to finish and then number four is going to finish and then number four will get deployed after number three is crashing. Yes, I am joining this thing and another window while we're doing this thing. You're showing us what you're doing. I don't know if that's acceptable. No, I'm not. I'm not. By the way, Twitch says that we have completed not one, not two, but five achievements. I don't even know how far. Oh, really? That's good. No, that's a good thing because there's partners and other things and we need all the things. We need all the things. So many Twitch things. Yes. So many Twitching things. Twitching things. Oh, gosh. It's me without my muscle spasm medicine.  Oh, man. Oh, my God. See, what am I doing? I am in. You're waiting for this build to complete. Oh, you're doing something in a different screen is what you're doing. Yeah. So I'm actually trying to join the chat I'm supposed to be in for OpenShift Commons Gathering. What does it say? Oh, that's fine. I'm on a login to Intra... Oh, what? Nobody worries about that. No, but like I'm supposed to help, there was only 17 people signed up last they checked. 17 people total for OpenShift Commons? Total. No, no, no, no. To help with the chat. Oh, to help. When there was 8,000 people this morning earlier. Yeah, yeah, yeah. Yeah. So, yeah, they need all the help they can get is what I'm hearing. So, yeah. Oh, Askabin also means to spend. I didn't know that. I knew that we had figured out. Christian was actually there for the naming of... For the donning of the Askabin name. But... All right. So how do we get... Oh, you know what I didn't do? I didn't do what I was supposed to do a long time ago. Which was... That could be any number of things. I didn't drag the handle on the Zoom window to make the screen bigger and the webcam smaller because I am a dodo. And I just did that now that we have negative time left in the stream. Good job. That's okay. I'm happy that you... Well, here's the thing. I did a stream Saturday night, just to test streaming and everything here at the house. And I ran half the stream without audio. So, yeah. We is all learning. Well, I have this... I have the mixer box over here that has its on-off button. And I forgot to turn it back on after taking a break. So, yeah. It's because you have too much fancy stuff. That's true. I do. Too many fancy stuff. This might actually be running. Holy smokes, it's running. Boogers. Look at that.  I have outsmarted... Hey, what was my tweet the other day? I don't fix things. I just break them and then make engineers second-guess their decisions. Such a good tweet. Did it work? Did it work? Did it work? No, it did. It's happy. Is it not running? Oh, it's running on the wrong port. Oh, do we need to change ports? So, yeah. We can do one or two things. You can either change the service definition or you can change the run script. Oh, that's true. Because it's running. It's listening on port 8000. It's probably easier to change the service. Oh, is that what it is? Okay. No, just edit the service. Let's show the power of the OpenShift web console. Yes, I'm sure. Fine, fine, fine. We are going to show OpenShift, darn it, whether we like it or not. Can you do this without... Oh, edit pod selector. Yeah, try that. Edit pod selector. It's the first one on the list. Oh, damn. No, that's not right. Okay, try that. Edit service. Service? Try that one. No, that's YAML. Isn't there like some like cool not YAML option? Not YAML thingy? Right here? Please click a line. Can I edit YAML? No, I can't click those. Annotation. You're going to edit the annotations. What other actions are there? I can't... No, that's... I don't think you can change the service once it's instantiated. You can. You can. You were doing it in YAML. No, I mean with YAML. The question is... With YAML, yes. Yeah, is there some sexy UI way to do it? Change port.  Set traffic distribution. No, that's not going to work. Why are there two edit application grouping options? That's a good question. I don't know. Just edit the service through the YAML at this point. Okay. Geez, always. And so you want to change the target port because the route is probably... I see it even says... Oh, the route might also be wrong. Just make everything 8,000. All the things. Yeah, man. We're going to make this work or not. I don't know which chat room I'm supposed to be in right now, but... All of them. I don't know. I like... How do you even get to these chat rooms? Anyways, work stuff. I don't know. Well, we'll do it. We could do that on Twitch too. We'll all take that one. No, I'm good. Did you save it? Yeah, I saved. So now you probably have to edit the route as well. Service 8,000. Where's the route? Going to be hiding. In topology... Oh, is there a way to do this from the developer? Uh-huh. Yeah. You can open the route, but that's not going to work. Because it's the route. Unless I'm in here. That's the route. Near the routes here. Here we go. Yeah, I guess we need to head to the... Because the name... Oh, yeah. So it's 8,000 TCP. It does the target port by the name. So the way that OpenShift does the ingress, we have a controller that is router. And it uses these things called route objects. And it works very similar to Kubernetes ingress, but basically the target port is the actual named identification of the port in the service. So on the service definition that we just changed, you'll remember that there was a port called 8,000 TCP, the name. And so now if you save that, yeah, it should work now. Should being the operative quantifier, as opposed to must, which is unlikely. There you go. Yeah, baby. We did Python. We did it. Yeah, the same survey errors last time because we didn't import the file. But if we import the file, it'll work just fine. Yeah, yeah, yeah. See, Chris, I made a Python OpenShift developer out of you. I'm shocked. No, I really am. Not as shocked as I am. No, I'm just kidding. I'm shocked that I was able to do it. How about that? No, that still sounds good. That still sounds good. Yeah, no, no, no.  There you go. That makes it sound like it's all me that sucks, which is exactly what I was going for. Is it?  You just taught me how to do stuff. How can you suck? Well, damn, I guess I did all right then. Cool. Well, thanks for joining, everyone. This has been our first horrifically awful streaming experience. Hopefully it wasn't too terrible for you. That wasn't awful. We deployed three apps. Okay, the things that we did on the stream were fine. The stream itself, no problem. Well, the actions taken during the stream were good. It was everything else about the stream that was awful. All the middle parts. Yeah, all the middle parts, like using the tools and actually, yeah, that's pretty much it, just all the streaming stuff.  Maybe. Yeah. Are we doing something again sometime this week? This week, I think we are doing something maybe Thursday or Friday. I forget. I'll have to double check. I know we're not doing anything tomorrow. Is that like a you and me? Because I'm busy with summit. I don't know.  You don't have to pull up your calendar on the stream. I mean, like, I can. Well, it's not in that window.   It's just a thing. It's a thing. Well, let's see. No. Okay. So CNCF. Oh, so before we get off, CNCF has set up a webinar for all of us people, the entire Kubernetes community, to teach us. Does that include me? Yes. Everybody to teach us how to do OBS and Twitch streaming in general, better as a community, because we are all going to be doing more stuff like this. So what you're saying is that thanks to CNCF and George Castro and all the folks that got all that together for us. So what you're saying is that if we had waited until Friday to do this stream, we might have looked less like clowns? No, I'm saying we need all the practice we can get. Oh, okay. Okay. All right. Makes me look smart when I say that. I think it was. But no, we do not have anything else in the books. And I do have a two hour slot open on Thursday if you do want to tinker. So yes, we are going to find something else to tinker with. Maybe we'll turn it around and I'll be the clown trying to do Ruby or something. I mean, I know how to do Ruby, but I haven't done it on four. So that could be no elephant clown. Yeah, we could do that. Or I could break their couch base operator six ways from Sundays again, but whatever. But that's not OpenShift's fault. No, I don't blame couch base either. But like. No, I don't either. I blame me and my ability to point out bugs. All right. I gotta go. All right, chief. Thanks so much. Thanks to everybody for watching. We appreciate all your follows and subscriptions. Be sure to check us out later and we'll be tweeting and letting folks know via social media when we stream again. Thanks so much. Have a great afternoon, evening, whatever. And we'll talk to you later. Bye bye.


Daniel Collins vs. Catarina Alexandrova, the second semi-final for the ladies Miami Open for 2024. Both players were not expected to make it this far. Collins started the tournament off, unseeded, and will take on the lucky loser Perra in the first round. And after dropping the first set, fight back to win, 3-6-6-1-6-1. In the second round she take on the 30th seed Potipova. There's no problem getting through in straights, 6-2-6-2. In the third round she take on Avanessian, who had just upset Jabur the sixth seed in the previous round. But again, no problem for Collins getting through in straights, 6-1-6-2. In the fourth round she take on the 19th seed Castella, who had actually been really good this time last year in Miami. But again, no problem for Collins getting through in straights, 6-3-6-2 to advance to the quarter-final. In the quarter-finals, Collins would take on Garcia, the number 23 seed who just beat Nozaka and Goff back-to-back to get to this stage. There's no problem for Collins getting through in straights, 6-3-6-2 to advance to the semi-final. Alexandrova entered the tournament as the 14th seed, and would get a buy in the first round. In the second round she take on Vekic, there's no problem getting through in straights, 6-3-6-4. In the third round she take on Pavlia Czenkova, who had been very impressive at times this year. And after dropping the second set, Alexandrova would eventually win in 3-6-4-3-6-6-3. In the fourth round she take on the number 1 seed, Egas Fiontek, who had just come off winning Indian Wells in the previous event. There's no problem for Alexandrova getting through in straights, 6-4-6-2 to advance to the quarter-finals. Quarter-finals, Alexandrova would take on the number 5 seed, Pagula, who had had a bit of a resurgence this week. And after dropping the first set, would fight back to win 3-6-6-6-4-6-4 to advance to the semi-finals. These two have actually never played before, which is so random because they are of a similar age, and you would have thought they would have crossed paths in their careers, but never faced off a 4, so it's going to be a first time meeting, and it's going to be a big hitting meeting as well because they both hit very, very hard. Collins is going to win this one, she needs to use the crowd and get fired up. She was getting fired up against Garcia at times, but she obviously didn't have to because she was winning so easily. She didn't really need to throw the fists around, but she needs to get fired up and keep that aggression that has been doing her so well this week. If Alexandra Drogba is going to win this one, she needs to serve well, and this is the first time she's actually playing someone in the last couple of matches that will be aggressive, so she's probably going to have to mix it up, maybe come into the net, she's very good at doubles, so she can do that as well, just to throw Collins off. Very fun matchup, very random matchup as well. Who thought these two were going to make the semis? But I'm going to go with Collins in this one. I feel like Collins right now is just on something different. It's obviously a retirement as well, coming up at the end of the year, so to final Miami, she wants to do well. I reckon the fairy tale continues, she makes the final, but let me know down in the comments below. Who's making the final?