everybody forced here ripping 2022 flawless collegiate football hobby one box number six left side zero numbers let's go ahead and do our random right now good luck everybody three and one four times so four times on the names first and then the numbers one two three and four jonathan p down two lauren e and four times on the numbers here one two three and four 14 down to nine jonathan p 14 kenneth b 16 12 james h3 andre w 13 james a 19 william m 18 todd c 20 anthony s 1 kenneth b 22 simon 15 michael s 7 curtis 25 patrick e 24 robert a 6 kenneth b 14 james a 4 kenneth b 17 james a um 4 kenneth b 17 that i just backtrack anyway uh kenneth b 21 james a 4 kenneth b 17 james a 23 craig c 10 todd c 11 marshall 5 michael s 2 dwight m 8 lauren e 9 let's get these results posted i'll get you a link in chat we're gonna get started all right there's your link in chat give me one moment and we're right at it all right good luck everybody other than vegas i don't know where they work all right dual patch drake jackson 10 of 20 craig with the 10 spot craig c triple relic two of 20 rod woodson jalen ramsey and derek stingley jr that per due relic is crazy that's game worn that woodson per due is game worn sue spot michael s i i was like that looks crazy that's such a cool card man great dbs right there wow that's wild dual patch 20 of 20 christian watson 20 spot todd c lots of like the designs on these is here the foil designs are cool team logo signers ardold epikette a 17 out of 20 kenneth b 17 spot little patch auto brevin jordan 14 out of 15 that's rookie brevin jordan this is 2021 card 14 is jonathan p that's an older card oh that's newer now 2021 patch auto isaac simons 24 of 25 24 spot patrick e isaac simons team logo signatures derek stingley jr 13 of 20 andre with the 13 spot it's almost at andrew is andre w andre 13 spot and hot a totty rookie jersey auto 4 of 20 matt corral four spot james a all right encased cards now let's see go over here first diamond guarantee sapphire gem erin donnell date of 20 eight spot dwight m he would bully people in college sapphire jam justin herbert five of 20 marshal last with the five spot herbie gem last hit is a rookie bold patch auto desmond ridder nine of 10 lauren e with the nine spots that is crazy man what is that patch desmond ridder nine spot there you go lauren congrats on that hey what's up brian how's it going man thanks again everybody got more serial number breaks coming up next


So guys, if you bought the new iPhone 14 Pro, I found that a lot of users are reporting an issue with transferring all of their iCloud data from a previous iPhone to their brand new iPhone 14 or 14 Pro, whereby once the transfer is actually complete from your current existing iPhone, your new phone ends up being a blank screen and it doesn't restart. Generally, it should restart to finish the setup, but no matter what you try, it seems like it's frozen and it seems like it's died. This happened to me as well. I tried to hold down the power button, I wasn't turning it on, I held down the power button with any of the volume buttons, nothing was happening, I've plugged it in and it just wouldn't restart and I felt like this phone just became unusable and did it actually die. So I found a workaround to finish off the whole transfer setup and if you guys are experiencing this, I feel like this is probably a bug in the transfer process, something that Apple may fix in the near future, but until then, this is the workaround. What you need to do is you need to press the volume up, the volume down and then hold the power button until you see the Apple logo on the phone itself and then you let go. So this is an example, so my phone is completely off and imagine the transfer has completed and it's died and I can't get it to turn on. This is what I did to make it turn on. Up, down, hold the power button, wait for the logo, once you see the logo, let go and then the phone should restart. Once it's actually restarted, you should see a complete white screen with a black loading bar along the bottom and that will finish the process. So let me know if this was useful for you guys and if you did experience this problem. If you did, make sure to give this video a like, make sure to subscribe. I'm gonna do plenty of reviews of all the new features and tips and tricks with the new iPhone 14 Pro. So keep an eye out for that and I'll see you guys at the next one.


Hello everyone, this is financial author Amit Dan of amitdan.com On this channel you'll find financial, travel and more videos just like the one you're watching right now If you like what you see, please give me the thumbs up and consider subscribing. Hello everyone This is Amit Dan of amitdan.com today I'll talk about new great cars which are coming to Canada and I'll talk about some features and look at some of the benefits which look like too good to be true and For the rest of the video, I'll take you to my laptop screen and we'll talk about from there. Thank you Hello, everyone. We are looking on a Bream website which is at Breamfinancial.com and I'm going to go through some of the features and then I'll explain them One by one. So Breamfinancial is launching new great cars on the Canadian market that will change the parade card game and These great cars have features and flexibilities never seen before in Canada so let's touch base on some of the features and The first one we are looking at the real world's structure. So Based on what Bream website is mentioning that there are no limits on how or when you can redeem Also, there are no specific categories to earn accelerated points If you shop more at the same stores then the earn rate increases, which is they're mentioning right here The next one I'd like to talk about is the installment payment option. So this is a feature we never seen before so Bream will offer the ability to set up installment payments towards a purchase that can be paid in installments at a set lower interest rate They call this actually a one-time installment fee here. You can see that this is 7% but this is actually just another name of a interest rate And this will not affect you the rest of the parade limit as per Bream website and the next feature is free global Wi-Fi Which is through boingo company So it will give you access to one million boingo Wi-Fi hotspots across the globe and This is a neat park that would come in handy if you travel and the Next one is the 0% foreign transaction fees So this is one of the most sought-after features on the Canadian parade cars Especially since the Marriott Rewards and Amazon parade cars offered by Chase That provided no foreign currency fee are no longer available in Canada. So this is going to be a Interesting feature or very sought-after feature for this parade car So most of lots of people will just get this great car only for this feature and then they have lots of travel insurances and Let's take a look at some of the Insurance details. Let me just try to find here. Okay So here if you see if you take a look at it and then you'll see that they're providing most of the or I would say all of the important travel insurances people look for and These travel insurances provided by reputable Canadian provider Another feature which is my favorite is that the provider is actually not One of the providers unlike the Scotia American Express Gold and many other Canadian travel trade cars Service by the same insurance company where the provider has had ratings Where when it comes to a full-fledged claims. So the provider you're going to be dealing with the brim which is a Reputable company and then that should make everyone happy and it's actually RSA So that's a very important feature and this is one of my favorites feature another favorite features after foreign no foreign transaction fee and Then if you take a look here, let me just find Here okay, so here They're mentioning that they will provide lounge access So that this will be done only the hiring cards and The name of the program is called lounge key However, it is not clear that how many visits will be included in it Or if it's just a membership, they will offer because lounge key provides different types of lounge access based on the credit card companies So some credit cards may only provide An old fee and then you have to pay each time you enter or some car will provide An old fee plus unlimited Admissions or some car to provide unlimited I'm sorry an old fee plus four entrances so it all depends and they're not giving any specifics here What type of lounge access they'll be providing and there are some more other features which the credit card will offer For example, including real-time payment clearing To open up available credit limit without waiting to two to three days, which is the case for most other credit cards and So all these features and everything it sounds like too good to be true So we're gonna have to wait and see when the card cards come out and then we'll find out more about these so Bream website is actually Accepting accepting application. So if you hit get bring then it will take you to the sign up page and when I applied for this credit card, then it told me to That they'll contact me once they start processing my application. So it looks like, you know They're not ready. They're not reviewing or accepting applications yet so We're gonna have to wait to see once, you know, they start issuing credit cards and Whether these features are all true and how much these features live up to the promise their Bream financials making So if this card happens to be a true travel credit card Then definitely this will increase the competition on the Canadian credit card market and which is good for everyone And there I and I hope to see more great cards like this in the future So that's all for now. If you like what you see, please give it a thumbs up and consider subscribing and there will be more videos coming up So I'll see you shortly. Thank you


Howdy guys, IndiePixel here, and what I wanted to do in this video was give you at least my five steps to learning Houdini quickly. All right. I get a lot of people asking me, you know, how did you learn Houdini? How long did it take you?  There are things that just kind of pop up, you know, in the new versions they add, you know, new tools and plugins and stuff like that. It's a constant learning process, but to go from zero to hero, as they say, it took me about, I would say a year and a half to learn Houdini, to be completely proficient and start using it actually on, you know, productions and stuff like that. That being said, I was using it on and off and learning it on and off. So it really comes down to how much time you have to dedicate to learning it. But what I wanted to do throughout this video is give you my five steps, five steps that you can actually follow to make it a little bit easier because I find often that a lot of people, you know, will start with, you know, the fancy VFX and destruction and stuff like that. Wow. That's really cool. A really good way to start learning Houdini is to use these five steps, in my opinion. So without further ado, let's get into those five steps. Step one, the user interface. As with all software packages, they all have different user interfaces and it's highly recommend to get comfortable, at least with the interface before you start to dive in and try to do anything more complex. I know it's not the most exciting thing in the world, but it's a necessary step and it will definitely make your learning adventures a lot easier. All right, so a great resource to use for this step is to go up to the side effects Houdini docs and go to the basics and to user interface. In here, they give you a list of all of the windows and panes and buttons and shelves and stuff like that that are available inside of Houdini. All right, so I highly recommend going through each one of these and just getting a feel for what they do. Okay, so what we can do is we're going to do a quick run through here. So this is the basic layout in Houdini. When you first pop it open up here, you have the shelves. All right, and inside of this, these built in shelves here, you have a bunch of the default tools. All right, so all these tools allow you to create stuff. So to create a box, you can click on the button over there and you'll notice that you get this wireframe, this red wireframe box. If you just go and click, what it'll do is it will create a box for you. The next thing that is really useful to learn inside of Houdini when you're first starting out is to also learn navigation. So how to navigate the scene view right here. Okay, so the best way to do is to hold down the spacebar and use the left mouse button to rotate, middle mouse button to pan it around, and the right mouse button to zoom in and out. All right, very cool. So you notice that my cursor is currently set to a pointer. When I hold down the spacebar, it turns to a hand. This means I can rotate and tumble and zoom in and out. When I let go of the spacebar, I'm in a different mode. All right, and that's definitely another thing that you should start to understand what mode you're in. There's quite a few different modes for editing the points and geometry of these particular objects. If you want to get out of that mode, you can simply come over here to this toolbar and hit the view. And you'll notice now I don't have to hold down the spacebar. The cursor has changed to that hand. All right, so learning the user interface, how to navigate, and how to just work with the nodes is a good first step. All right, so let's move on to the next step. Step two, start with SOPS. Now, you might be asking yourself, well, what is SOPS? All right, well, in Houdini, it works with these different contexts. And SOPS actually stands for surface operators. Okay, and what we are in currently, because we're at this OBJ level right here, we are currently in that SOP context. So inside of SOPS is where we create all of our geometry that then gets fed to all the other different contexts. And this is why I think this is probably one of the more important things to start with inside of Houdini, because it really is the start of all your projects. You're going to go create some geometry. You're going to go and create some particle effects or destruction. You're going to need geometry to start with all that stuff. Okay, and so basically what we do is we come over here to this network view over here. And what we can do is we can go and hit Tab and drop down a geometry node. All right, and inside of that geometry node or that SOP node, we can go and create another box. All right, so instead of using the shelf this time, I'm just using the network view and just dropping down nodes. This is probably one of the most powerful things inside of Houdini, because it basically allows you to procedurally generate models. All right, by hooking up all these nodes together, what you can do is you can create a procedure of steps that create your model, but you never lose any of the data upstream or downstream. You can always go back to a different node and change some parameters and it will all re-cook the whole network. All right, so it's procedural that way. So I highly recommend starting with SOPs, getting comfortable with all the nodes that are available in the SOP context. All right, so by using the Tab menu, we can get access to all of the nodes that are available. So getting comfortable with some of the core ones first is highly recommended. You'll start to move into more of the advanced nodes as you get more comfortable with it. All right, so that is step two, start with SOPs. Step three, attributes, groups, and components. All right, so for each one of these geometry objects that we're creating, in this case our box right here, what we can do is we can add attributes to them. Now, if we go and we pop open the geometry spreadsheet, which is open by default with the default layout here, you can see that we have a bunch of attributes sitting on all of our points. All right, so these are the components of our model. We have points, we have vertices, we have primitives, and we have the detail component. Okay, and on each one of these components we can add our own attribute. So to do that, we would go and drop down and attribute create node, like so. All right, and we would wire in the box and we turn on the blue display flag, so we take the network down to this next step right here. And for this attribute, what I want to do is I want to put it onto one of these components. And you can add as many attributes as you want to all of these components.   All right, and currently it's set to the point class or component. All right, so if we go over to our point component display, you can see we have this new attribute. And if I were to go and change that value, you can see I'm adding an attribute. Now a really cool thing about this is we can go and we can create an attribute randomize. So let's just do that. There we go, attribute randomize. And we can plug in the attribute create node. And from there, what I can do is I can create a random attribute. And this time let's just put it on the primitives so we can play around with the other components. All right, so what I'm going to do is I'm going to call this random adder. Like so. And there we go. And I just want to have it in one dimension. Currently it was set by default to three dimensions. Very cool. Okay, so the next thing on our list, now that we've gotten through components and attributes, we can also start to learn how to group geometry. I highly recommend learning and getting comfortable with all the group nodes. So to group, the most basic node is just the group node. So we just drop down a group node right here. So what I'm going to do is I'm going to give this group a name. Now what I've gone and done is set the default to use this dollar OS string. If I get rid of this, I would put the group name right here. So I'll call this my group. And inside of this group, I want to group some sort of components. So let's say I want to group one of the faces or primitives on this particular box. What I'm going to do is enable that base group and I'm going to type in zero. And you'll notice that one of the faces or primitives is selected. All right. If I were to drop down another group name and call this my group B. So let's do underscore B. And I put in, let's say primitive one and two. I don't have two of those. And what's really cool is you can promote these particular groups. All right. So we can take these groups and we can transfer them or promote them as they say in Houdini from primitives to let's say something like points. Or drop down the group promote node. What I want to do is I want to take my original group. Let's just say we do my group B and I want to convert it to points. You can see now the points that were included in those primitives are now selected. All right. And lastly, before we move on to step four, what I want to do is show you this little guy right here. So this little window allows you to go and see your groups. All right. And you can use this little cog wheel right here to switch from the different display. So in primitives, I have the face zero. And for points, I have my group B. There we go. Cool stuff. So let's move on to step four. Step four, Vops and Vex. Okay. So at this point in your learning journey with Houdini, you're pretty comfortable with the UI. You've learned how to create geometry using SOPs, and you've learned how to manipulate the geometry using attributes, their components, and grouping particular parts of the geometry. The next logical step in learning Houdini is to get into Vops. So to do this, we're going to drop down a point VOP node. So I'm going to drop down this guy right here. And we're going to feed in the output of this group promote node into our point VOP. Okay. And what I want to do is I want to take all the points that were put into group B here, or my group B, and I want to manipulate them somehow. All right. So what I need to do in this point VOP is I need to utilize that group that we created. So I'm going to say this node can only work on my group B, which are points. So we're going to run over all those points. And to make this really simple, we are just going to do a simple translation. Okay. So let's do something like add, I don't know, one unit to each one. One unit to each one of those points in group B in the Z direction. Okay. So what I want to do is I'm going to drop down a vector to float. Okay. And I'm going to take the P position. So in here, what we're doing is what we're visually programming a little operation where we are utilizing VOPs or vector operators. Okay. We're using VOPs to manipulate the geometry using code, but we're not actually having to write any code. So we can visually program our operations this way. So what I want to do is I want to take the current position, the X, Y, Z position of every single point. Okay. And I want to feed it into this vector to float node. And what that does is it splits it out into X, Y, and Z. So now I have each one of those components. So if we come into the geometry spreadsheet over here, go to points, we have our X, Y, and Z. And what I want to do is add one to the Z direction. Okay. So to do that, all we really need to do is drop down a constant. So I'm going to say constant, like so. And we'll set the value to one. And we'll add. So now I want to drop down an add node. So I'm going to take the current Z value here. We're going to add on one, like so. And then what we need to do is we need to package all this information up back into a vector so we can feed it into the final position or that new position that we just created. So what I'm going to drop down is a float to vector. So we can go from three floats to a vector. And I'm going to wire in the X. I'm going to wire in that Y and then the Z. And then we're going to take that output from our float to vector node and put it into our P position. Very cool. So now you can see that we've moved all those points that are in my group B. We've moved them over one. And we can go and change this value to whatever we want. Very cool. All right. So what we can do is we can also utilize something called VEX. So if you aren't into coding, I highly recommend that you just stick with the VOPs. But if you do want to start to code, what we can do is we can do that same exact operation but with an attribute wrangle. So we're going to drop down an attribute wrangle node over here. And I'm going to take the output of that group promote and put it into that attribute wrangle. Now, this is where we write our VEX code. So these are called the vector expressions. And what we want to do is we want to basically add on one to our Z component. And this is really easy inside of VEX. All we need to do is we say at P dot Z plus equals one. And we need to give it that group. So let's have it work only on those points. And you can see rather than laying down these four nodes, I wrote a single line of code. And what's really cool is we can actually create parameters that we can tweak. So we can say offset. So CHF creates a float channel. All right.  And now we have a slider to go and change those point positions. So we're modifying our vectors, our point positions. Cool. So that is point VOPs or VOPs. And that is VEX. So let's move on to the last step, step five. Step five, digital assets. One of the most powerful concepts inside of Houdini is the ability to create digital assets. All right. These are referred to as HDAs or Houdini digital assets. With digital assets, what we can do is we can bundle up our networks into a reusable module, if you will. All right. It allows us to create tools without having to do any sort of programming. Let's say you're doing a task over and over and over, like in Maya or Max or even inside of Houdini. Well, inside of Houdini, what we can do is we can take all those steps, usually created with all the nodes here and these networks. We can take all those steps and we can bundle them up into a digital asset. So in this case, what I've done is I've created a really basic box generator. I know it's not very sexy or anything like that, but we created it. So I'm going to call this the box generator. Okay. Well, I can right click on that node now and I can say create digital asset. Okay. And I'll just go give it a name like so. And I'll just hit accept, save it to the default OTAILS folder that's located in your documents folder.  Well, with this type properties window, it allows us to modify the UI of our digital asset. You'll notice that this now looks different from this geometry node. And it's got this pink little locks, which means that we're currently editing it, but we don't have any input. This is now a tool. It's an HDA. Okay. And what we can do is we can go and we can hide all of its default user interface by hitting invisible like so. All right. And we can start to promote parameters that we created inside of our tool in our network here. So let's say I want to go and I'll just change the size and maybe we will just promote this offset value. So I'm just clicking on that parameter and dragging into that existing parameters view. You then hit apply and accept. And there we go. So now I have it at the top of my node. All right. We can go and change the size to and it will all still work appropriately. What's cool about this now is I can hit the tab menu. All right. And if I go to digital assets, you can see I have this box generator here. So now I've just created another box. It does exactly the same thing. So imagine now creating more complex tools that takes care of tasks that you do over and over again. You can use these to create whole models and it's really the foundation when you go and start learning the Houdini engine for Unreal or Unity. All right. So that's digital assets and the final step at this point. You pretty much mastered the core fundamentals of Houdini. So I highly recommend learning Houdini in those steps as it will just make it a little bit easier. Try to stay away from learning some of the Dopp networks like destruction and particles and volumes. Dopp stands for dynamic operator. It'll only just confuse things when you're first learning. I highly recommend starting with Sops, learning about attributes, groups, components, move on to Vops, Vex, and then finally learn how to make HTAs. And then once you feel comfortable with all that, move on to all the other contexts. OK. Thanks so much and I'll talk to you guys soon.


Present Hollywood.  Greetings from Hollywood, ladies and gentlemen. Tonight's place, their way to heaven, is another J. Arthur Ranked production, which received international acclaim. It's a tender romance between a British pilot and an American girl who are separated by a heavenly message. And as our stars of this delightful fantasy, we have David Niven in his original role, and the Universal International star, Barbara Rush. Later they will join me for a preview of the one you know called Earth and another existing only in the mind of a young pilot whose life and imagination has been violently shaped by war. In 1945, shortly before dawn, over the North Sea a Lancaster bomber riddled by shells and on fire struggled through a dense fog toward the English coast. A pilot has just made radio contact with an A.R.C. rest station. Hello, down here. Hello. Can you hear me? All right, well, I can. Richard Nill. Richard Nill. What's your name? Thanks. It's funny, but all of a sudden I'm thinking of a poet. Give me my scallop shell of quiet, my staff of faith to walk fast, my scripts of joy immortal dikes, my bottle of salvation, my gown of glory hoax true gauge, and thus I'll take my pilgrimage. The Walter Raleigh wrote that. I'd rather written that than Sloan through Hitler's legs. Instruments are shot away, crew gone too. All except sub-shore here, my navigator. He's dead. The rest bailed out on my orders. Time 0445. 0445? My station warned that bomber group G for George, cinema signal C. Warning. Oh, my name is not G, George. It's Carter. Peter D. Carter. No, I can't land the undercarriage of Scott. I'm bailing out, sir. See, what's your name? June. Well, I'm bailing out June. But it's a catch. I don't have a parachute. It's all right. I might rather jump and try. Hope I'm not upsetting you, June. Are you pretty? Not bad. Got a beautiful voice. Funny, a girl I've never seen would hear my last words. Oh, June. No, just keep talking, please. I want to be alone with you, June. Where were you born? In Boston. That's the place where you were born. And history was made there. Are you in love with someone? No, no, don't answer that. I could love a man like you, Peter.  Where do you live? To leave what house? I'll be a ghost and come and see you. What time will you be there? Well, I'm on duty. It's the best sense I've ever heard. He can't be helped by the parachute. What do you think the next world is like? Well, please, just please. Well, I'll know soon enough. Some sure will probably be waiting for me. Goodbye. Goodbye, June. Peter E. Carter. He is around here someplace. Look for him. I have almost 1,000 airmen to account for. Peter E. Carter is not here. But he's supposed to be here. His name's on that list. He's either A-W-O-L-O-L. Well, he's been a mistake. There has not been a mistake here for 1,000 years. Then where's Carter? If there was a mistake, if Peter Carter was still alive on Earth, a bell would ring. Do you hear a bell? No. Therefore, no mistake has been made. And if you have any further complaints, I... Oh, no. Oh, no, no. Conduct a R-34. Conduct a R-34. Go to the recording office at the tenant club shop. Record it once, please, for the tenant club shop. No mistake, eh? Mistake has been made. Oh, it's nothing. My flight commander, sir. Peter E. Carter. I must have locked him in at the cursed fort down there on Earth. Oh, yes. It was a fog all right. We'll all be super. I've been waiting for him, sir. So have I. Don't you know a thing like this must be reported to me immediately? I lost my head, Mr. Recorder. Yes. Not long in the service, eh? Since the so-called Glorious Science Revolution, Mr. I see. Natural death? I also lost my head then. Mr. I will go after Carter at once. It's not so simple. Peter Carter has fallen in love. That complicates matters. Fall in love? Peter Carter jumped from his plane, fully expecting an immediate demise. Due to some utter fingering up here, he did not die. But how? He lost consciousness and woke up on a stretch of beach. Suddenly, he became aware of a stroke. I don't know. Why, you're due. Yes, and I'm not dead. I'm alive. Don't touch me, please. OK. I don't know. I don't know. Are you hurt? My head feels a bit clear. Peter, what a cruel joke to play. Oh, I wasn't joking. I've been crying so ever since you said goodbye to me from the plane. Don't cry, June. Don't ever cry again. Peter, oh, darling, darling. What's been going on down there? I will proceed to us at once. Explain your error to Mr. Carter and get him up here while he belongs. Oh, when you see him, give him a message for me, huh? And a pleasure? What message? Oh, just say, uh, what help? What? Oh, uh, Mr. Recorder, you have a small idea of where I might locate Mr. Carter. Wait a moment. Yes, sir. Operations, please. Yes, sir. Oh, but what about Peter, the Carter, delinquents? Quite enough. The main night, and in this garden based in moonlight... Moonlight? But it's not night already? You will soon learn, Mr. Trubshaw, that here there is no such thing as time. And what seems to you the wink of an eye down there may be a century? Are you still here? Oh, my way, Mr.... All with Mr. Recorder. Are you cold, darling? Cold? No, Peter, no.  No. Tell me, what did you do before the war? Good evening. Good evening. Who are you? What's his costume? What is wrong with his clothes? They were my very best. I was buried in them some hundred and fifty years ago. June, June, am I seeing things... Ah, she's lovely, isn't she? But save your breath, Mr. Shev. Believe it, this is nothing, yes, nothing. June, we are talking in space, you and I. Not in time. You crazy, who are you? We should have met at dawn when I'm here. Unfortunately, I missed you. Oh, I bring you a message from Mr. Trubshaw. Trubshaw's dead. Trubshaw's... Oh, yes, quite dead. He says, what hell? He always says what hell, but he's dead. Again, I say, yes. And what should be the status of a man who jumped from his aircraft without a parachute? How do you know? He should also be dead.  Far behind. What do you want now? You, my friend. What for? To conduct you where? To heaven, of course. Oh, this is fantastic.  But you cannot refuse. You have overstayed already by nearly sixteen hours. Uh, uh, time, that is. What about her, June? I'm in love with her. But what is love? The feeling of a moment. I represent eternity. Sixteen hours ago, I was not in love. Now I am. Millions of people are in love. Do they protest when their time is up? No, they do not. They have no right to. Exactly. But I have. Why?  I've fallen in love because of your mistake and I demand an appeal. Will you please be reasonable? Appeal to whom? Oh, that's your problem. You'll find out. Sir, it's never been done, never. You can go away. You are determined to get me into the cellar, don't you? And what about the cellar you got me into? I think I'll leave you for a little while. That's better. A little while, I said. I shall have to report above for instruction. Good. Go on. Report. And do not fall any deeper in love. Do you hear me? I'm warning you. She's charming, you can see. Oh, what's wrong with me? I work for a magazine. June, what did you say? I said I work for a magazine. What did you say? Well, because you just asked me what I did before the war. Oh, yes, I did. June, what's the matter with me? Has an odd thing happened while you were asleep? Or did it? I haven't been asleep. Well, then you heard her talking. Well, I know. Woffa was here to talk to you. Well, they sent somebody. Hey. June, do I look cracker? Not to me, darling. Are you? Look, there was a dense fog at dawn this morning. That's right, isn't it? Well, you know there was. And I did bail out without a parachute, didn't I? So how can I be alive? Oh, darling, we've talked about that all day. We don't know what happened. It doesn't make sense. And I'm in love with you. And that doesn't make much sense either. But I am. Well, that character insists I should be dead. What character? Well, your friend's got short pants and lace and things. They sent him down and asked me. He said he missed me before because of the fog. Bad luck for them. Good luck for me. I told him I was going to appeal.  But not my fault. I'm not dead. Not my fault. I found you and fell in love with you. Oh, Peter. Oh, my head. Oh, these awful hands. June. June, you are there, aren't you? Oh, Peter, of course I'm here. Yes, and I was the second I thought I'd lost you. Oh, what is it, darling? What is it? Sorry, Dr. Reeves. I know it sounds ridiculous. Where's this piece of chat now? In the village, at the inn. Why hasn't he rejoined the station? Well, because I was hoping so that you might help him. Or at least see him. You told me about cases like this. Oh, no. They're not like this because nothing ever happened like this. I have done a lot of work in neurology, yes, but that doesn't alter the fact that Peter Carter is the property of the Air Force. Oh, he's not property. He's a person, a very fine person. And I don't want anyone just mauling about asking him questions. I want you. I'm sure the audience will see that. I know exactly what they say. I had a talk with Carter's commanding officer right after you phoned him. The medical officer, too. Luckily, he'd heard of me or said he had anyway. What do you mean? They won't make it. I mean that I've arranged a week's furlough. Oh, Dr. Reeves. So, he believes he bailed out without a parachute. Yes. He has a hallucination. This is the 18th century Frenchman. You told him he was talking rubbish? Oh, no. Good girl. Now, look here. You still have that recreation hall at Leeward House. Yes. Yes, I meet you and Carter there. Say, about tea time? Well, I'll be off duty till five. I'd better see your field, as well. I'll want you around for a fine few. You'd just go on with your game. Oh, Dr. Reeves. Oh, he's a chess player, is he? Any good? I'll do. Squadron leader Carter, Dr. Reeves. How do you do? How do you do?  I wish you would. These visions you've had, hallucinations, have never happened before. No, never. What were you in civilian life? I taught at Oxford, European history. Parents alive? My mother. What was the cause of your father's death? Same as mine. Drain? No, war. 1917. But how long have you been in? Since 41. You must have had a good many missions. 67. About these headaches. Headaches? Oh, I know you get them. I know you've had them for some time, and I know you've told no one about them, especially your medical officer, right? What else do you know? I know about your eyes. You know a great deal. I'd like to know more. Well, the headache started about six months ago. Up here, most things. Tunsel and simple. Did you ever get a bang on the head? Drops as a baby, no doubt. I don't remember. Mind if I try something? Look straight ahead. I guess? Yes. What are you looking at? That girl down there playing the gramophone. She's got nice legs. Yes, very. Now, don't take your eyes off of her. This is going to be easy. Now, without moving your eyes, what can you see on the extreme right? Five legs. In the center? Girl's legs. Extreme left? Window. Certain? Yes. What color? Dark red. It's good. Well, that's all the red. Now then, you've seen something. Someone? Clearly? As clearly as I see you. Now, don't be annoyed with this question. It may sound rather silly, but have you imagined recently that you smelled something that couldn't possibly be there? How did you know? I didn't. A shot in the dark. You noticed this odor at the same time you saw this heavenly messenger, this conductor fellow, this Frenchman? Yes. Onions. Fried onions. Well, you ask me, this messenger hasn't turned up again, has he? No, but he will when... I don't know. Peter's lost and appealed out there. Against what? Against dying. That's the spirit. Don't you give in. I won't. That's about all for now, except you're to stay at my house for a few days until mine. No, no, it's all. What about my Kimani officer? His orders, as well as mine. I want to be around for this. Frenchman calls on you again. You're on your own for seven tonight.  Isn't that heaven? What time is it? 10 o'clock. You sleep for at least another hour. How do you know? Well, before... If the Frenchman comes again, I left a bell at the site of Peter's chair. A bell? If he has a visitor, Peter's going to ring the bell if he cares. Now, how about another game of chess? Oh, sure. If you'd like. Don't worry about him, Julie. He'll be... June! June! Dr. Weave! Quickly! Mr. Cutler. Mr. Weave, if you please. Who? Oh, your bell. Uh-uh. Oh, very well. Ring the bell. You see? Nothing happens. The bell does not ring. Hmm, a book, a book on chess, hmm? I was reading it just before I fell asleep. I looked into a hundred best games. I must look this over. I'll stop stalling. What about my appeal? Oh, yes. Well, it's been granted. Thank you. The trial will be a full twice a day. Oh, it's fresh he gave, where one will be there. You have two days in which to prepare your case. Wonderful. Don't be so happy. The counsel for the prosecution, the one who will insist that you leave this little world of yours, has been chosen. Well? His name is Abraham Farland. Come again? Abraham Farland. Never heard of him. A man from Boston. I've never been in Boston. Abraham Farland died in Boston in 1776. Oh. Exactly. The American War of Independence. The Stalin killed? Yes, by a British bullet. Well, he may be prejudiced, huh? Oh, what did I say? Yes, yes, yes. He hates your guts. He hates the guts of every Englishman. And particularly, he hates you for being involved with such a nice girl from Boston, Massachusetts. All right, then I'll appeal against him. Impossible. After all, we have to pick the best man. The honor of my whole department is at stake. What you have to do is choose a good man for yourself. As my lawyer. Precisely. Oh, who? Anybody who has ever lived upon us, all of you before those. You could even choose me. Oh, that is suit you'd just find, wouldn't it? Oh, no. I didn't think so. Well, you can choose the Socrates, William Pease. And really, yes. What about Madame Dubarie? She knows all about love. Well, the one-track mind. Now, I have to think it over. Oh, by the way, this book on chess, I'd like to borrow it. It's not mine. It belongs to the doctor. Doctors? Hmm. They give me a great deal of trouble in my job. Oh, well, you think it over. I will be back. June! June! Dr. Reeves, quickly! What is it, Caesar? Is the sense from there? He's gone, but he was here. I couldn't ring the bell until... Peter! You all right? Yes, I... I think so. I hope so, Peter.  Look up. Look at the ceiling. You can talk if you want to. So, he just left, though. Yes. I hoped you didn't give in to anything. No. Don't put over. It'll be right back. June, I've got good news. But what, darling? What? The trial's in two days. Darling! Peter, tell me. Did you smell anything? Yes. Same as before. Fried onions. Now, I want you to drink this. And he said, egg. Oh, beauty. Tell me what the Frenchman said tomorrow. I want to talk. He said, oh, good heavens, it's gone. What's gone? What book was I reading before I went to sleep? That book of mine on test. Well, your team's on the best game. It was right here. For sure. Absolutely certain. Oh, that's cool. Now, how about getting back to sleep? About my counsel at the trial. I don't think you believe a word I say. Peter! My dear friends, here on earth, I'm your descending counsel. And as your counsel, I believe everything you tell me. June, June, I don't want to leave you. Oh, why should you leave me, darling? Everything will be all right. If I can only get a good counsel. Of course you will. How important. I don't want to lose you, June. Oh, I won't let you go, Peter. No one can take you from me. I won't let you go. I won't let you go. Will he have more hallucinations? Yes. I think he'll be all right. Oh, he's not going mad again. His brain's not effective. Of course it's effective. He's having a series of highly organized hallucinations comparable to an experience of actual life. A combination of vision, of hearing, and of idea. To a neurologist, that points to a pressure on the brain. That's why Peter's sense of smell has been effective. And how did he survive the jump from his brain? I don't know. But right now the main thing is for him to win his case at the trial. You're serious? Perfectly serious. But suppose he loses? Oh, that's absurd. If we see that he's losing, or we think that he's going to lose, we'll find out the reason why he survived his jump, or we'll invent one. We have a couple of drinks. You die and invent the greatest lie in medical history. Meanwhile, Peter will have to be operated on. I am. Right away. I'll see his RAF medical officer in the morning. We can't wait for the trial, Junez. You said he may lose. We don't dare wait any longer, Dr. McHugh, and deterioration all around. We ought to operate tonight. But we're swamped here. You're sure of your diagnosis? Absolutely certain. I showed you the X-rays yesterday. The ocular report was highly organized. Illucinations coupled with a sense of smell. Everything points to arachnoid adhesions involving the olfactory nerve. But I'm no surgeon. Who do you have here? Edwin Leiser. Leiser. That's fine. Good. Yes, but I don't see how we can manage tonight. I mean, there's no crisis in a thing like this. Any day we do. There is a crisis. And I'm afraid. Insanity? Yes. Why? I told you of that trial Carter keeps talking about. Well, as far as he's concerned, that trial is fixed for tonight. He hasn't found anyone to defend him yet. Do you really believe all this? Instantly. The boy has a fine mind, McEwen. It's part of our trouble to good a mind. A weak mind isn't strong enough to hurt it, Edwin. Yes. The stupidity has saved many a man from going mad. Carter's had several talks with his heavenly messenger, that Frenchman. Solucinations, of course, but you never saw such an imagination. I don't quite follow. Nothing that Carter invents is entirely fantastic. It's invention. But it's logical invention. He's convinced he'll die if he loses his case tonight. And that's why I say we must operate tonight.  I'm sorry, but. Oh, excuse me. Dr. McEwen here. Who? A rumourman. It's you, Dr. Eves. The girl. Hello? It's me, the doctor. We're sitting here in your library and all of a sudden he just thought he was downing. So far, somewhere. Come back. That's your door, mister.  I can. May I remind you that trial is but a few of your hours off. Look there. Self after self of books about famous men. There is Lincoln. What about Abraham Lincoln? No, it's hardly fair to drag him in. I don't think he'd be prejudiced. Plato? Nobody knew more about reasoning than Plato. He's 81 when he died. He might be too old to think love important. That's your right. Now if he had been French, Richelieu, for instance. Oh, he was visible at 80. I never liked Richelieu much in the three musketeers. Voltaire? No. Then who do you want? Look, it sounds fine to have all these books written on paper. Look, it sounds fine to have all these great men to choose from, but what do they know about problems today? Hmm, true, very little. Sorry, it should be in Englishman.  Now what about this Abraham Farland? Was he a famous man? A school teacher. Now, you see? Anyway, why are you so interested in getting me a council? I am interested only in getting you where you belong. It happened. Peter, now. Come with me now. No. If you do, you will have nothing to worry about. No trial, no vexation, no pain. See over there, Peter? A great, magnificent stairway. Yes, it will take us there, Peter. It is the stairway to heaven. No. Come, Peter. Come. No, I don't have to go yet. I have your word. I can appeal. I'm leaving, you Frenchman. I'm getting out of space and going back to Earth. That's before it's too late. Peter, come here. Come back here. Come back. Come back. Welcome back, darling. Peter. Peter. You almost got me. June. June. Doctor. You come around in a moment. June, Peter's got to go to the hospital tonight. Go and talk to me, June.  Oh, yes, doctor.  You know where? Yes. That's all. Hello, Peter. Where's June? Phony. She'll be back in a moment. You almost got me. I know. He's a crafty beggar. Now, he got away by the skin of my teeth. Now, look here.  You've been promised a fair trial. Don't give in to anybody. I haven't the counsel. Will you find the right mess? Well, he might have pointed some stones. Not a cent. Don't let it go by default. I tell you, we'll find somebody. Take our staff until we do. You know, but it's famous. Well, how about... Doctor? Let's come in. I can't get through to the hospital. The operator says it's to storm. I'll take your car. No. You're more valuable here. I'll go. Now, go in to him. And don't allow him to despair, June.  Miss Adams. Yes? I'm Dr. Maturen from the hospital. There's been an accident. Accident? Dr. Reeves. He was on his way to see you. I did see him. They brought him in. His car skidded off the road. Dr. Reeves is dead. Oh! Oh, no! No! He told me about squadron leader Carter. We're taking him to the hospital now. He'll be in good hands. I'll tell Peter. Wait. He's gone ahead, Peter. He had an accident, hasn't he? Yes. A bad accident. Is he dead? Yes. I'll come down. I'll commit you in hiding. Well, Dr. Reeves, I believe. Yes? Welcome. Thank you. Well, permit me to return your book on chess. Oh-ho! Ah-ha! Oh, it's you. And how is, uh, dear Peter? He has a fighting chance. Oh-ho! Where are you taking me? Up the stairway? We'll have to skip several of the preliminaries. I'm taking you at once to the recorder. He's very anxious to see you, doctor. Mr. Recorder, Dr. Frank Reeves. But, uh, you are familiar with the case of Peter Carter. I am? He has just chosen you to be his counsel. I was hoping he would. You have very little time I was to prepare your case. Well, they tell me that seats in the courtroom were already at a premium. Seats in the hospital now? Yes. They've already started the brain operation. I'd like to see my clients immediately. Conduct them. Take Dr. Reeves to the operating room. He's shallow in the back, Dr. Reeves. Call 88. Call her. Hello, Peter. Hello, doctor. Where's June? She's raising Peter out in the corridor. They're operating on me, aren't they? How's it going? I've had a great search on Peter. Neat. Very neat indeed. I like his work. Good. Uh, about me, Peter. I'm very flattered you've made me your counsel. Are you sure I'm the best man? Quite sure. But I'm no lawyer, and if Abraham Farland gets into politics, I'm sunk. Well, who isn't? Come on, Dr. He must have something. A little common sense, perhaps. Well, if that's as rare up there as it is down here, a little will do me fine. I need evidence, Peter. June's all the evidence I need. I've fallen in love with her. Her accent is foreign, but it sounds sweet. We were born thousands of miles apart. Yes, we were made for each other. Conductors. Conductors, may I kiss her? Just in case, you know. Go on, kiss her, but she will not know it. Doesn't matter. This I want to see. Come, Doctor, to the corridor. I think they'd rather be alone. But we cannot let him out of our sight. Look, so he kisses her. Oh, you English. What is the good of kissing a girl if she cannot feel it? Oh, June, darling. You see, Doctor? She just sits in her chair in the corridor. She's crying. Ah, yes. A lady weeps. You want evidence, Doctor? There it is. Her tears. Don't cry, darling. Please. If I could only take one of her tears. But you can. You can do as you wish. How can you take a tear in the heavens? Oh, so miss me. There are rows in my buttonhole. I touch the rows to her cheek. So, and like a pearl of view upon the petals lies a single mortal tear. The only bit of real evidence that we have. Come, we must get out of here now. Monsieur Recorder, we are ready. The case of Peter Carter v. Heaven will now be heard. Ladies and gentlemen of the universe, due to negligence by our department of admission, Peter Carter is in the embarrassing position of dangling between heaven and earth. Here and now we must decide either to pull him up or grant an extension of his term on earth. The jury will take that place, please. Our counsel is ready. Abraham Farland. Already, Your Honor. And Doctor Reeves. Thank you, Your Honor. The prosecution has the floor. Mr. Farland. Mr. Carter, an Englishman, should have died on 2nd of May 1945 at 10.05 o'clock. The British double summer died. Moreover, when summoned reports from 16 hours later, the defendant refused the company the authorized conductor. For what reason, please? He claims that in the time which he bore it to us, he accumulates the responsibilities of an allegedly important and permanent nature. But no few hours, a young lady of good American stock has fallen in love with him. Are we to believe this within those 16-bollied hours? Your Honor. I object to the word borrowed. My client was given the 16 hours in question. Objection sustained. Nevertheless, I wait to believe that Peter Carter, Englishman, is in love with this young lady of good American stock and equally important to see in love with him. Why stress their nationalities, Mr. Farland? For good reason, sir. We're talking of love. It can happen, you know, between an Englishman and an American girl. My point is, the friend in the car for human events, our men and women, come to your little island as allies, was not to become your prisoner. May I remind you, sir, that we are living in the 20th century, not the 18th? And may I remind you, sir, that we are not living at all? You've got me there, Mr. Farland. Thank you, sir. Thank you. But I am up to date, Dr. Eves. Oh, I've been a-watching you, Englishman. Stand here.   Miss Peter D. Carter, what you'd call a good Englishman? Yes, sir. I thought so. Considerable handicappers. Lord, that's where Mr. Farland's father was born. And how relevant could it have been in England? My father left England, sir, because he didn't like him. Would you like it today? Well, I have here radio. Let me turn it off. Listen, everybody. Listen to the England of today. Well, here we are, the cricket match, ladies and gentlemen. Boy, it's England, 1945. It's much more like cricket weather now. But raining and play has been resumed. Oh, there's a fine crowd in the road, stopping our maximum dwellers now and settling down to enjoy this browsing force, which, to people all over the world, is perhaps more typically English than anything else. You'll miss out on me, will you, boy? Oh, yes. This is Mr. Fonstein here for Holly Hammond, ladies and gentlemen, who just played a delightful boxing shot of Miller. I think we've heard enough. May I turn on the radio now, sir? Let's hear the voice of America in 1945. If you wish, sir. Simply to gesture, what may be typically British or typically American has nothing to do with Peter Carter and or June Adams. Oh, yes, June Adams. Lovely, vibrant American girl. Members of the jury, I ask, commission young life, be slow to the crawl of a match of cricket. At this moment, this two million houses in England have no windows at all. I submit that this court is concerned with the life and death of Peter Carter and not with past history or present clubbing. But Peter Carter's characters are like every other human being who's been formed by circumstance. But why is that, sir? I beg you in George Washington's words, labor to keep alive in your breath that little spark of celestial fire called conscience. Are you insinuating that something's wrong with my country, sir? Not at all. I'm prejudiced to jury against English people. I don't need to prejudice, jury, sir. May I ask, then, a century past, that war between France, prejudice to Bulgaria's bonds here from the France vows. War, war, don't you? Don't you mean Chinese? Don't forget England's fact on China in 1857 on 15th. And you, sir? Balletage fatale from Burma. I think of Burma, doctories. And you? Gaines Barahens. Ireland. Children or jury anywhere, doctories. It must always be prejudiced in England. My lord, I challenge the jury in request of a new one to be chosen. From where, doctories? Anywhere. That being said. Why not from England? Where else have the rights of the individual been held so high? In America, sir, where he's like a held inalienable. Where a man can see father from the top of Boston State House and more worth seeing than from all the pyramids and pellets the world over. America, sir, is the only place where a man is full grown. Then I ask for a jury of Americans, and if there is one who fought in the Revolutionary War, then I want another who fought shoulder to shoulder against our common enemies. In this century, if one has a mind that can only think back 170 years, I want another who thinks 170 years ahead. Do you agree, Mr. Farland? I would welcome, sir. Court is adjourned while we find a new jury. For their interruption, we shall continue to introduce the new jurors to the court. Francois Dupont, American citizen, Peter Van Dyke, American citizen, Jim Wong, American citizen, Jefferson Lincoln Brown, American citizen, Patrick Aloysius Mahoney, American citizen. The jury will be seated. Mr. Farland. Apparently, Dr. Reed has wasted the course of time. Search where you will. Humanity arises to indict England. You may proceed, Dr. Reed. Gentlemen. Of the jury. Here in my hands, I sold a single rose. And in this rose lies my entire case. And what is my case? I agree with Mr. Farland. Has Peter Carter fallen in love during the allotted extra far as, Dr. Reed, in the disputed extra 16 hours, or has he not? Now, two young people who would never have met, but for a mistake of here, are being penalized for falling in love. On the petal of this rose is his tears. And in that tears of love and truth and friendship, those qualities alone can build a new world today and a better world tomorrow. That is my entire case, and I promise I demand that Mr. Carter shall live. Mr. Farland. No question, Your Honor. You are the foreman of the jury? I am. And we feel that the defendant and the girl should be given a chance to be heard. Is that permissible? It can be arranged. Where are they conducted? Mr. Carter is on an operating table in an army hospital in Newcastle. The young woman is also there waiting in the corridor. The jury feels that hearing them is a better understanding of conditions. In that event, the jury will go downstairs. Lead the way, conductor. Here is Mr. Carter, Mr. on the operating table. The jury will stand around, please. My diagnosis was right. Signed of vascular meningeal adhesion, binding the optic nerve to the brain. We are not here to discuss adhesions, doctor. The question would be to Carter. Let me tell you about my operation. I'm from and forth, Mr. Oh, hello, Peter. Hello, doctor. How's the operation going? Fine. You couldn't be in better hands. There's quite a draft in my head. Peter Carter, tell the jury here whether or not you tempted to influence the emotions that young American girl out there in the corridor. June and I fell in love before we ever met. You claim you love her? I do love her. Can you prove it? If you give me time, sir, 50 years will do. Can you prove it? Oh, can a starry man prove he's hungry except by eating?  I would. I'd rather live. Young devil. Pardon expression, Your Honor. Good work, Peter. Good. You're witness, doctor. No question. Conductor, is young lady available? She sleeps, Mr. Oh, she sleeps. Jury will carry note there. I put her to sleep. Do I enable you to call her spirit, sir? The jury will please note that. Very well. Miss June Adams. Don't interrupt, Peter. Miss Adams, you have been called in the case of Peter Carter as a witness of the prosecution. Where were you born, child? In Gotham, sir. You know this man? I think so. I met him only a few days ago. How do you think you can love him? Oh, but I do love him. I object. Mr. Farron's right, doctor. There's no sense in love. Well, yeah. I see wisdom still flowers in Boston. Can you prove that you love him? How can I? Would you be willing to die for him? Oh, yes. Would you take his place in the balance sheet? Yes. Don't believe that. Stand aside, Tom. You've no right to ask him.  Peter, you're not to take. Do you realize that the right is attitude you've forfeited any chance of winning your case? All right, then I lose, but you're not going to get June as well. You're witness, doctor. June, you know me well. Do you trust me? Of course I do.   If you really love him, June, that's their way. It leads to heaven. You are mad. It's the only way to prove your love to him. I do love him. You won't go. Oh, Lord, I ask the court to restrain my client. Restrain him, they'll have come. My dear. June! No! No! Goodbye, Peter. He's dying for him. For love. So typically, friends. The stairs have disappeared. What? The stairs have disappeared. The President has never done that before. No! They are coming back. Do you know what this means? A greater hand than ours has sent her back. But the universe, the law, the law of the universe clearly stipulates... I know, Mr. Farland, in the universe nothing is stronger than the law. But on earth nothing is stronger than the law. June. June. I would die if you died. I would. Peter, forgive me. It was a long shot to take. I had to take it. It has been clearly established that June loves Peter and Peter loves June. As Sir Walter Scott is always saying, love rules the court, the game, the grove, and men below and saints above. For love is heaven and heaven. As the jury consider the verdict. Case for the defendant, Your Honor. Bravo. Appeals sustained, Mr. Cutter. Thank you. There now remains the new date on Peter Cutter's file. I'll write it down. Will the counsels approve it, please? Now the factory doctor is... very generous. Isn't that, um, Mike too much? Then I agree. Then let's go back where we belong. First, dear me, I hope this won't establish a pattern. The patient may be removed to his room now. Congratulations, Dr. Leiter. Wonderful piece of work. He will be all right. Somehow I feel very sure of it. Peter? Oh, no. Are you still here? The book. The book on chess. I'm returning it now to Dr. Rees' library.  I'll have to wait so long to play chess with you. I can't. I'm sorry. In time, my friend. Au revoir, Peter. Oh, uh, she's waiting for you in your room. Waiting for me? Waiting for me? Peter, hello, darling. What do you want? I know.


Good afternoon, folks. You guys hear me back there? Good. So my name is Will Foster. I've been at Red Hat for a little over 12 years. I first started working at Red Hat after I'd gotten out of prison. And they were building the old headquarters. And I was doing construction work. And I just kind of never left. And so I'm just working at Red Hat now. And that was 12 years ago. And I haven't gotten any more trouble. So I work in the performance and scale department at Red Hat at a small DevOps team. And we do a lot of the performance and scale engineering work around all of our portfolio, a lot of upstream projects, open stack, open shift. Basically, if we make it or our pals in the upstream community make it, we try to break it at scale inside of our shared environments. But my talk today is not on performance and scale necessarily. It's on some lessons that I've learned developing Ansible playbooks. And being in the position where I didn't have a lot of time, but I needed to very quickly spin up a complex application stack using Ansible. So included today is going to be a demo. And it could go horribly wrong, which will be amazing for everyone in entertaining. Not so much for me. I hope that it doesn't. So let's get started. So everyone here, I'm sure, uses Ansible or knows what it is. This is sort of a de facto slide that I want to put in. So Ansible is a configuration management system. It's a little different than, say, Puppet or a couple of the other solutions out there. It's clientless. It's written in Python. It uses SSH as a transport mechanism. It uses YAML for a lot of the logic and a lot of the templating. And it also uses Jinja 2, which I'm quite a big fan of, for templating config files and making them modular. So why should you use Ansible? Well, the main reason for us is we don't have a lot of time to do things. And we don't want to spend it manually installing anything if we can. We want to save as much time as possible so we can use our time for other stuff. So really, it's a time saver. With any sort of automation, it reduces complexity and human error and really tries to give you your time back so you can spend it doing more important things. So I'm a really big fan of the movie Office Space. Who here is seeing the movie Office Space? All right, so Office Space is a dystopian film about a place you never want to work. It's like the exact opposite of where you want to work. But there's a lot of good life lessons that come out of Office Space here. So our friend here on the right, it looks like you've been missing a lot of work lately, Peter. I wouldn't say I've been missing it, Bob. So you're not really missing that type of work if you're using Ansible to automate your workloads. So some of the goals, and this is going to be sort of high level that we try to strive for when we write automation, is we first want to strive for idempotency. You're not always going to get idempotency, but you want to strive for it. So it's really the idea or the methodology around you can run a repeated task many times. And if it's in its desired state, nothing should change. So when you write an Ansible playbook, when you go along the journey of maybe making a complex playbook or maybe you started with something simple and people started to use it and share it, and then people started sending pull requests. And then the scope of the playbook grew substantially. You always want to try to strive for the idempotent nature of it, that if you run it multiple times, nothing breaks. You also want to try to template as many things as possible, and that's where Jinja 2 comes in. It's a very powerful templating language that you can use. And some of the other themes that I'm going to talk about and hopefully illustrate are the idea of breaking up your roles in Ansible and sort of compartmentalizing each thing into its own specific area. This helps you with when you have to do a lot of things and maybe one part depends on the other, you want to make sure that if you introduce something that breaks or if you have a troublesome part of the application stack, it's not breaking all of the other things. And Ansible provides a whole lot of very useful modules by itself, and you want to see what's out there because the Ansible community is gigantic. They're developing at a very constant rate. And new functionality that might not be there six months ago might be there today. So a good example is, say, the firewalling module in Ansible. I've done a very poor job of fighting logic in Ansible before there was a really good firewall module that did both IP tables and firewall D. And now there's a very robust implementation of that. So at the time, this is a good example of I should read the documentation and go back and use Ansible's way of doing it rather than trying to invent it myself. All right, so Baby Yoda is really important here because when Baby Yoda writes code, he holds his hand up and he's got the little three fingers. And there's the three major pillars here. You want to compartmentalize your roles. You want to plan for growth and extensibility. So if people contribute to your playbook, you want to make it easy for things to be extensible to do other tasks. And lastly, you want to strive for idempotency. Now, unfortunately, when we write code or when we write playbooks, we can't do it as good as Baby Yoda. All Baby Yoda does is he rolls up. He's got his three little fingers. And he just concentrates. And then perfect code spots out. No bugs forever. It's the best thing in the world. And he passes out for 48 hours. And then that code is the best. It's never going to be any better. But unfortunately, we have to actually write the stuff ourselves. And we're going to make a lot of mistakes and a lot of bugs along the way. OK, so I promised you a demo. So let me talk a little bit about what the demo does. And this is going to be our example of sort of a complex stack. So who here is familiar with the Elastic Search stack? Oh, that's fantastic. OK, cool. So Elastic Search is a pretty common application stack that's being shipped around nowadays. There's lots of ways to deploy it. You can do it in containers. When I started getting involved with Elastic Search a couple of years ago, I still preferred sort of a VM approach with RPM packages. But it's a good example of what I would call a complex stack. Because you have a couple of core components that really depend on the others being available before you can instantiate them and use them. So what we're going to see in this talk and also in some of the examples that I'm going to go through is places where I've used Ansible built-in functionality to ensure that other parts of the stack are available before I try to instantiate it. And from a troubleshooting perspective, we're going to go over some debug steps and some other things that you can use, hopefully, if you're in the same position. So we're going to use Sinoa 7. And if you want to look at the code yourself, it's right here on GitHub under Ansible Elk. And I'm going to pop it up here. And there we go. All right, so we are here. So the first thing that I want to look at is my inventory file. So it's going to be real simple. I'm going to deploy a full Elk stack, Elastic Search, LogStash, Kibana, Nginx, and actually do some tuning as well in the memory. On this VM on my laptop called host01, I'm going to have another VM on my laptop called host02. And it's going to ship all of its system logs via file beat over TLS to the first VM. So the first thing you do is check this one out. I'm going to take a quick look at my vars files. And we'll dive a little bit into the importance of this and what it is. But I want to go through some of the options. Out of the box, you don't need to change anything. But what I want to illustrate here is there's quite a few options I've added over time to this playbook that I maintain that either people have asked for or we've thought would have been useful. Things like swapping out Fluent D for LogStash. For example, using Apache instead of Nginx for your reverse proxy, setting listening ports if you want them different. I bring this up briefly because this is going to reinforce the idea of modularity within your playbook. So let's go ahead and run this thing. So this is going to install a full elk stack or it may explode. Who knows? If you want to start taking bets, what's going to happen? Now is the time. OK? So this is going to go ahead and run. And while this is running, I'm going to continue with the rest of the information here. So this is basically exactly what I just said. We have host 0.1, which is going to be our full elk stack. We have host 0.2, which is going to be the client. Now you've had your snack. You've played with the button. Now it's time to put your jammies on. That's the Mandalorian from, I feel like Ricky Gervais in the office where he says a joke and no one gets it and it's real awkward. So maybe I didn't do it right. Cool. This is an obligatory slide when you're running a demo and you're just kind of waiting for stuff to happen, but it's modified for Ansible. So we're actually doing work right now. We're doing work. We're just Ansibleing. We're waiting for the Ansibleing to continue. Let's see where we are now. OK, stuff's still running. That's good. We're down to setting up Kibana. This is interesting. So when I talked about waiting for services to come up and be available, I've used a few of the wait for and a couple of the other Ansible built-ins to ensure that my dependent services are actually up and running before I try to install a whole bunch of other stuff. Other stuff that we'll do here is we'll actually check the services endpoint and the API for the actual content we want to see. So we'll look for either a 200 response time. If it's a web application, we might look for, this is my ugly firewall code, by the way, we might look for certain web content to be displayed. All right, that was quick. OK, cool. So this went faster than we thought, which is good. So my last role in Ansible is going to be an instructions role that basically just prints for the user what they need to do to use the software. So we should have a full Elasticsearch stack right here. Look at that. Who's going to lose money and who's going to win money? OK, so we got a full 6.8 Elasticsearch stack. No, I don't want to share information with you. And we are going to dive in here. Now, we see here at the bottom that we've already got an index created. That's because we've sent our local system logs to the local listener for LogStash, and it started to populate an index. But I tend to pause here because some people like to change the naming convention of the index pattern. There's a couple of options with the index pattern that might be more of a design choice for your usage. So I don't want to make that decision for anybody. So let's go with LogStash star. OK, cool. And this is where you want to decide, do you want to go time stamp based, or do you want to go received at? Or do you not want to use a time filter at all? So that's going to be a conscious decision you, as a developer, or a consumer of Elasticsearch might want to make when you instantiate it for the first time. But we're going to go with timestamp and create our index pattern. And we should start seeing some logs already here. All right, look at that. Sweet. So notice that this is just host 01. So remember, that's just our first VM. But we already populated our Elasticsearch index. And this is already going to be useful in that you don't have to SSH to a machine in query journal CTL or look through log files. When you start sending all your logs here, you can only have one place you can go to search for all the stuff, which saves you time. The second step here is now that we have a full Elk stack up, we got Nginx on the reverse proxy end. We've got Elasticsearch. We've got Kibana for the dashboarding. We need to send some data to it. So we have one more line to run here. And what this is going to do is install the FileBeat client on the second VM. So it's going to install FileBeat, which is kind of a low level transport. It's mostly written in Golang. And it's going to ship whatever we tell it to to the remote server that we've already set up. So if you had, say, a fleet of systems, you could just run this once, have this in your inventory, and then they would all start shipping all of your logs to Elasticsearch. So while that's running, let's get back to our talk here. Want to mention Ansible Facts? Who here is familiar with Ansible Facts and Discovery? OK, awesome. Quite a few people. So you can correct me when I make a mistake. I really, really like System Facts. You can do quite a bit with System Facts that you normally wouldn't be able to do if you try to write something yourself. So one of the first things that I'll do if I'm trying to automate something is I see all the facts that are available to me that tell me all about the system. Anything from the amount of memory installed to the operating system distribution, minor version to the version of Python, or anything that you could really want. Discs, the size of the disks, what order they are. Facts are massive. So this is going to probably seem elementary to a lot of folks that are already doing this type of work. But the example that I want to bring up here with Facts is that in this playbook, we are actually going to tune the memory that we give Elasticsearch when it installs based on the installed system memory. So we never want to go over 31 gigs, because it's just not really useful. But we want to use probably about half the memory for Lucene indexes. Typically, that's kind of the recommended setup. And so however many gigs of memory you have in this VM, it was eight gigs. So four gigs would actually be given to Elastic, and we'd let the other four be available for Lucene. So this is just a good example of using Facts to kind of adjust the configuration. We mentioned a little bit about service dependencies. So this is the example of using the wait for here, the URI module, to actually look for the status code of 200. So we don't want to bring up the rest of our Elastic sac if the main Elasticsearch daemon is not running and it's not actually serving a 200. It does us no good to install all that other stuff if the main thing it depends on isn't available. So there's all these really useful things that are danceable for doing this. The URI module in particular is really, really powerful. The wait for is also useful and the until. So just some more options here. So this is for the listening port for LogStash. So it's kind of a chicken and egg. You can't send data to the LogStash port if the port isn't up and available for connections. But you have to make sure that the port is up and available for connections if you want to continue to install your stack. So all of these little Ansible built-ins are there for you to make sure that you have a very nicely orchestrated stack deployment. This is just an example of what you might see in your playbook run, doing these sort of checks to make sure that your hierarchy of dependencies are met. One more example, we do quite a bit of automation with bare metal hardware. And so we have the unfortunate ability to use some of the vendor tools, which each vendor does their out-of-band tooling differently. You have ILO for HP, you have RackADM for Dell. Super Micro just has a bare bones IPMI implementation. We've actually since written a tool called Badfish, which is sort of a vendor agnostic wrapper around the Redfish API to automate all of this. But in some cases, especially older hardware that don't support the Redfish API, we'll have to use the old vendor tools. So this example here is using the RackADM to compare what the boot string is of the device and then to tell us whether we need to do further automation on that bare metal host or whether it's in the state we want it to be in. OK, variables and conditional logic. So when we first started running this playbook, you saw that very long YAML file that had all those values and things in it that help us customize our Ansible playbook. So this is referred to as kind of your vars file. So this could be one file. It could be many files. I tend to have always go with group vars and all.yaml and pile everything in there. But it just depends on your usage and how big your playbook is. But the sort of what I want to glean out of this is when you compartmentalize your roles, let's say you have five roles you need to deploy a full stack. Within those five roles, the needs of your playbook are going to grow. There might be demands to substitute one part of the stack for another one. So in my case, someone wanted Apache instead of InginX because they were using a lot of the mod-ldap functionality in Apache, which InginX doesn't have, at least, natively. So when you break your roles into compartmentalized small chunks, you can then use conditional logic to have more flexibility when you're doing deployments. All right, so on to playbook and roll hierarchy. There's no right or wrong way to do this. What I've learned kind of the hard way and learned from other people and examples on the internet and the documentation, this is kind of the hierarchy that I use, that I prefer. At the very top level, I have an install directory, and that's usually where my playbooks go. There's usually a solitary YAML file for every playbook. So in the one that we just ran, there's elk.yaml, which is deploys the stack on one server, and then there's elkclient.yaml, which deploys filebeat and maybe metricbeat or packetbeat or any of the other stuff on all the multitude of clients that you have. So that I usually put that in the install directory. Groupvars is where I put my variable files, and then I have a roles directory directly under install, and then underneath my role, I tend to just have files, tasks, and templates. Again, there's no right or wrong way to do it. If there's a simple way, you don't even need any of the structure if you just have a simple playbook. But you should count on the fact that your playbook's gonna grow over time. People are gonna start using it. They're gonna have more needs. They're gonna request, it'd be really cool if you could do this thing, and this thing turns into 20 other things. And so I try to spend some time when I first start designing how my automation orchestration will work to think of all the possible cases that could be used, and I use sort of a hierarchy like this that no matter how big it gets, it's still wieldy enough. It's still manageable enough for me to quickly go in and drill into a specific area that I might need to develop against or build. So again, this is an example. This is the stack that we just ran, and we have quite a few roles in here. And we've also used the conditional logic to sort of either or things. So for example, here, if we're using IngenX, we would make sure that, oh, I can't highlight that, that's an image. We would make sure that Apache Reverse Proxy is none. So that's an easy way to swap between two different roles that do the same thing. Again, there's no right or wrong way to do it, but compartmentalizing your roles really helps you with the scale and growth of what could become a complex application stack. Some obvious things. If you're not using an SCM nowadays, then you probably got unfrozen out of an iceberg, and you've never seen a computer either. But I really like Git. I think everyone here loves Git. And I tend to use the Git branches to sort of freeze versions of Elastic Search. So for the example playbook that we just ran and the one that I maintain, I keep the last three versions, the last three major versions. So a 2.4 version, a 5.x version, a 6.x, and then soon I'll start testing seven, and then that'll be a branch. Either way, it lets you sort of, that's why Git is so beautiful. So again, this is a no-brainer. You wanna try to automate the client operations as much as possible. You put all that work into deploying your stack, but if it's hard for the clients to consume the stack or install SSL certificates or pull in config files, then you've done half the job. So you wanna try to automate as much effort you put into the main stack, all of the clients that consume it. You wanna make that easy as well. All right, so if I didn't talk about CICD, then I think Jen would punish me here. So you absolutely want to have CICD for your playbooks that you run, and the easiest way to do it, albeit maybe even the laziest way, is just to use the Ansible Lint tool. That's at least gonna provide a step for you to make sure you don't make any syntax errors. It's gonna do style checking, and it's incredibly easy. It's in PIP. There's RPM packages for it in Fedora, in CentOS. At its very basic level, you just run Ansible Lint, you point it to where your playbooks are located, or really any Ammo file. I like to take that a step further, and because everything I do is on GitHub, I have access to Travis CI. I can make a simple Travis CI template, toss that up in there, and it really just does the same thing for me. So if I'm developing against a branch and I push a commit, it's gonna run all those tests with Ansible Lint against the playbook code. And what I tend to do is I'll have a development branch and a master branch. I'll do all my work in development, and then I'll just pull requests every time from development to master. But it literally takes like five seconds, 10 seconds to push a Travis.yaml, get it integrated into Travis CI. And if you're using GitHub, there's no reason why you shouldn't be using Travis. I don't have enough time to explain how to set it up, but it is really that simple. But I do have a full guide at hobo.house, which is my blog. And I think the first link there, the latest post is how to set this up for GitHub and specifically for Ansible playbooks. All right, so troubleshooting and debug tips. If you're like me, you make mistakes all the time and you very rarely get things right. So knowing how to debug things and to figure out what went wrong is super important. So there is luckily for us the debug functionality in Ansible. And I use this a lot if I want to extrapolate a certain fact or maybe the output of a certain impact, like if I want to see what the return code is or what the standard out content is, and then I want to do automation against it. So I will put all these little pointers into my playbook when I'm testing, before I try to do automation against a certain return variable to make sure that I have it right and it's drilled in correctly. Sometimes on hardware, you'll see what you think to be the primary disk and it turns out that the way that Ansible orders the index is that that disk might be two down on the list. So if your task was to format that disk and delete it, you certainly want to test to make sure you have the right one. All right, so here's another example here where I am checking some basic things out of FACTS. I'm basically checking that I have the right operating system version that I'm looking for and my distribution major version. And lastly, you can just run dash dash check and Ansible will tell you what it's going to do. It won't actually do it. It'll run through and tell you what changes it would make. All right, so the playbook that we just ran, there's two major things that I'm working on. I've kind of been doing this in my free time, but also when we need to deploy something within performance and scale, I'll spend some time on it. We use the ElkStack to collect logs and performance data and other things like that. The two major things are obviously to upgrade the ElkStack to 7.x and I want to get to the point where I could do a multi-node deployment of the full elastic search. So this right now doesn't all in one, which I think for shipping logs, for any sort of medium type purposes is okay, especially on bare metal it's good, but really the ideal situation for elastic searches that is clustered across multiple nodes. And then all of the sort of redundancy happens at the sharding level and you make sure you have more than one shard or several shards per index. You can pick which indexes are important and which ones aren't to give those extra shards. So there's extra copies of that data. But this is not a elastic search design talks, unfortunately. So let's check back in on our playbook and let's see what happened. You guys could still win some money. It could still fall over. And what we're looking for here is we're looking for logs from our second VM that should be shipped over TLS via FileBeat. All right, so, Hosto2.  If you bet for me then you maybe won some money. So we see Hosto2 now is sending its system logs directly over to the Elastic Search stack that's running on Hosto1. So excellent. So this is an example at the very bottom where we're calling the Elastic Search API to send some payload data over to Elastic Search. And we use inside of the performance and scale we develop a automation framework called Quads which automates all of the bare metal systems as well as the network switch and network infrastructure provisioning in the future. So we enter in how we want a large set of resources to look like and when the time comes our automation goes and chops up our different scalability labs into isolated work groups that are multi-tenant and then when the timeframe ends all those resources get reclaimed and go to someone else. So that's one of the places where we're using Elastic Search. If you're interested about Quads, you can go to quads.dev. It's also out of the Red Hat Performance GitHub. All right. I wanna see if there's any questions here. Thank you for your time. Yes. Not right now. So I didn't, I wanted, that was a purposeful thing so I wanted to give people a chance to name their own index but you can do it simply with the curl command as well against the Elastic API. Right. There's still that step to go in. You do it once. You know, it's already got data there from the local host itself but it was more of a purposeful design thing but it would be a very good feature request on the GitHub that I'd be happy to work on and to set that as an option. Thank you, I had a question. All right. Any other questions? Well, Elk? Ansible? Yes. We don't. Oh, sure. Yes. The question was, I mentioned Badfish which is a vendor agnostic Redfish API tool and if there's an Ansible role for that. There's no Ansible role for it. There's really no installation but it's available via Docker. You can just do a Docker run to run it or you can just clone the GitHub and it's just a Python three. You can run it there. So there is no actual installation. Yes. Right. The question is, I don't seem to be using defaults main.yaml. I just, I stick everything in var files. Just a personal choice. That, a lot of people do that as well. No. How are we doing on time? Okay, great. Let me show you all the Badfish tool. It's really cool. So, and not only do we have a really cool logo, you can read more about Badfish here at quads.dev. So you can go directly to the GitHub and we have the core maintainer of Badfish right here in the front row, Gonza Raffles so be sure to ask him about Badfish. Sweet. But yeah, if you wanted to use it all you could, you can just do a Docker run or you can just clone the repo and run the Python file yourself. And our quads automation uses Badfish as a library as well. So that's what does all the out of band management and stuff for us. All right. Well, I don't want to cut into anyone's beer time and so thank you all for the opportunity. I appreciate the attendance and if you have any other questions later, feel free to come up and talk to me after the talk or send me a message on Twitter or I'm always on free note IRC as well. So thank you all.