Thanks for coming. Welcome to Docker and Buildpacks, one app, two options for deploying for to Cloud Foundry. So first let's introduce ourselves. I'm James Myers. I'm a software engineer at Pivotal. I've been on the Diego team for about two years. I work out of San Francisco, and I've been on Cloud Foundry for about three years in total. And I'm Jen Spinney. I work for Hewlett Packard Enterprise as software engineer. I'm also on the Diego team. I work out of Seattle, Washington. I've been on the Diego team for about a year and a half. Cool. So let's talk about what this talk is about and what we're trying to get out of it. So what we're going to do here is we're going to give you a side by side look at deploying one application with a build pack and with a Docker file. What that means is we're going to look at the user experience like CF push and all that stuff, as well as what happens in the system under the hood and the consequences that happen because of it. We're going to examine some of the pros and cons between each deployment strategy, and we're hopefully going to give you some insight into when you should use each of these deployment strategies. So first we're going to look at build packs. Build packs are the traditional way of deploying applications to Cloud Foundry. They were popularized by Heroku, and what they really are is just a zip file with three scripts, a detect, a compile and a release. And so what it really does is it takes some language runtime and some dependencies and your source code and then produces an executable thing that we like to call a droplet. Essentially build pack apps are your source code and the build pack and then they just run on Cloud Foundry. Next we're going to examine like what is Docker. So Docker is the popular implementation of containers right now. So basically a user will or a developer will create a container specification in a file using directives known as a Docker file and then they can build and run that container locally or on some distributed system. Deploying Docker apps to Cloud Foundry is actually a relatively new feature that came out with the new Diego backend and we're starting to see some users take advantage of its functionality. So throughout this talk, we're going to be taking one sample application and seeing how it works on both the build pack way and the Docker lifecycle of deployment. The sample application we have here is a super simple, go-lang app. All it does is it listens on the port that it's been instructed to listen on for any incoming requests. HTTP requests. As soon as it gets a request, it echoes back, hello, CF summit. So it's very, very simple. We're using this simple example, but everything we talk about right now applies to more complicated apps as well. So let's say we want to deploy this as a build pack application. Our first step is actually to do, to just open up our editor, make that file we just saw, just a single go file. Code that up. And then we're going to do a CF push. You can accomplish these next two steps with just CF push, but we're breaking them down into a CF push no start and then a CF start in order to explain the differences that happen between those two steps. So when we start with a CF push no start, two things happen. First thing that happens is the application bits. In this case, just that main.go file gets uploaded to the Cloud Controller. So this is whatever your source code is. This is not like your language runtime and your frameworks and stuff like that. That's just the code that you wrote specifically. So now that's uploaded to the Cloud Controller. And an application record is also created for this app. So this application record contains information about what the environment variables are, what the desired number of running instances are, things like that, the metadata about the app. So one reason, so here we're splitting out the CF push no start and the CF start just for illustration purposes. But in the real world, you might really want to do this as well in case you want to bind a service after you do the CF push. You want to make sure your app exists in the system. And then you want to bind the service before you actually start the app. So the next step is actually composed of two phases. When you do a CF start, you're actually doing what's called staging and then really starting the app up. So as part of staging, we have this component called the Stager. This component is a translation layer between the Cloud Controller and Diego. It's responsible for creating a task to tell it to Diego to describe, hey, I want you to take these bits and I want you to combine them with a build pack and create a droplet out of it. So Diego gets this request. It says, hey, I want you to go make a droplet. In this case, we haven't explicitly specified the go build pack. So the first thing that's going to happen is when this task is executed, all the build packs are going to be brought down that the system knows about. And each of those build packs is going to run its detect script and say, do I apply to this application? In our example, we have a .go file. So the go build pack is going to say, hey, I can handle this one. And then the go build pack then is combined with your app bits and it will combine together to create an executable that can just be run anywhere in the CF system. So the result then is this droplet. It gets uploaded to the Cloud Controller database. From there, the next step is the Cloud Controller wants to actually start this out. So it's going to talk to another translation layer we call NSYNC. This is the communication between the Cloud Controller and Diego for actually starting up apps and stuff like that. So the Cloud Controller says to NSYNC, hey, please go tell Diego to start running this. Diego being the back end knows about tasks and long running processes. So this is the long running process we want to create here. NSYNC is going to look at the metadata on this app and put together a description of the long running process that Diego needs to go run. Diego is then going to take that app, that LRP, long running process, and it's going to put it on whatever number of containers it's going to find containers on various cells where it's going to actually run this app. And then once it starts running, Diego is going to make sure it stays running, and if it crashes, it'll restart it on another cell, for example, and stuff like that. Cool. So we just talked about deploying it with a build pack, but what about deploying it with a Docker application? So once again, the first step for deploying with a Docker application is actually creating the app itself in your favorite editor. Then after that, you actually need to make what's called a Docker file or the container specification. An example Docker file is this one here. So there's various directives that mean some stuff. The first one is the from directive. So this directive I like to think of as the root FS or the root file system. And every example previously, when we talked about containers, the containers are made with a base image that is specified in the deployment. Here in your Docker file, you actually get to change that. So you can specify what you want, Ubuntu trustee, or in this case, it's a going image that already has going installed. The next couple of blocks are what I like to think of as the staging process for Docker.  And what this does is it's going to basically set up the dependencies as well as compile your application into like a running app. We also have metadata directives like expose and user. So you can use these to tell the container system or the container engine, like what you're going to do with your application. For example, I'm going to expose port 8080. I might say that I want to run with user recap. There's a couple of things you can do there. Then lastly, there's the command directive. This is basically going to specify the process that you're going to run inside your container. So this is where the build pack would figure this out for you. You're saying it yourself like I want to run my sample out. So now that we have this Docker file and we're ready to create it, we're going to actually build the Docker image. So the two steps that I'm sure most of you are familiar with are, first of all, Docker build. So what this step does is it takes that Docker file and then for each directive, it will try and create a layer. And then basically once you finish running this, you'll have a local container image that you can run and experiment with and test out. For the purposes of Cloud Foundry, you're going to want to actually run a Docker push. So Docker push, you need to upload your container image to a Docker registry that's publicly accessible by the Cloud Foundry deployment. So now that we have our Docker image actually uploaded to a registry, we can start using Cloud Foundry to run it. The first thing, once again, that we're going to do is we're going to split CF push, which is normally one command, into two commands to illustrate some of the differences. So in this case, I'm going to start with a CF push with the dash O flag. So the dash O flag is what you use to specify the location of the Docker image. So all this does in this case is it will only create the record in the Cloud Controller. There's actually no reason to upload the application bits as they're stored in the Docker registry already. So then you're going to run CF start on your application. So it's actually surprising, but there is a staging process for Docker applications. So the first thing that's going to happen is it's going to take that metadata that was uploaded to the Cloud Controller. And once again, it's going to talk to the translation layer, which is the Stager, so that it can create a task on Diego. Once this task begins running on Diego, what's going to happen is the Diego cell is going to communicate with the Docker registry. And it does this to pull down that metadata that you exposed in your Docker container, so that we know how to like run your application, so the port and the start command and all that stuff. Once you've done that, we actually compile this into what we call a Docker Droplet. A Docker Droplet is not actually an executable thing. It's more of just a bag of metadata that we can use to execute your Docker image. So once we do that, we flow that back to the Cloud Controller and save that into the database. The next step in the start is actually running the application. So once again, we're going to talk to the translation layer, which is called NSYNC. And this is going to create what's known as a long-running process. This long-running process, instead of specifying the RudaFest as its base image, it's going to specify the Docker image itself. When this starts running on Diego, what's going to happen is Diego is going to communicate with the Docker registry. And it's going to actually fetch that Docker image and pull it down and then run the start command inside it. Once that's happened, we're going to do the same stuff that we do with the BuildPack app, and we're going to make sure that your app is running and that's pretty much it. Some special things to note for Docker and Garden. So Garden is actually Cloud Foundry's container engine system that we use to run containers, basically. But Garden can also run Docker containers. And what this means is that Garden Linux and Garden Run C basically can download and fetch the Docker image and then they just replace the root file system and then create a container using this as the new root file system. They also then can just launch processes inside this container as well as expose ports. One important thing that's cool, and I'm sure if you want to, you know, will or jewel sock, is Garden Run C is now running Open Container Initiative compatible images. So this process is becoming much more standard. Cool. So now that we've talked about how the apps get deployed with both BuildPacks and Docker, let's go over some scenarios that developers and operators are going to run into on a daily basis. One of the first ones is a security vulnerability. So let's say you get a CVE and open SSL. So if a BuildPack app gets a security vulnerability, there's two things that are important here. One is whether or not it affects the BuildPack or the RudaFest. So if it affects the RudaFest, the developer does not really have to do anything. They just sit around. But the operator, it'll notice that a new RudaFest release has been made, which patches this. And then all they have to do is upload this RudaFest release and redeploy. On the deploy, we're actually going to redeploy the cells and they'll get this new RudaFest. So any container that's created with this new RudaFest will be secure and ready to go. So after a finished deploy, all BuildPack apps will actually be secure if it's a RudaFest vulnerability. The other case is when a BuildPack is vulnerable. So it's very similar here. The operator will notice that the application or the BuildPack is insecure. They'll have to upload a new release and deploy or just CF upload the BuildPack. Once they do this, you'll probably have to restage your application just to get the compiled bits to be changed. But then we'll be ready to go. As if you went to the V3 talk, pretty soon this might be a zero downtime deploy, so no downtime for your application. This is really important to point out that for security-wise, BuildPacks are great for operators and it really defines these user roles well. So like the operator can actually patch a CVE without actually knowing anything about the container or the application running inside of it. And it's pretty much, the developer does not need to be involved. The second scenario, sorry, the same scenario for Docker, the developer would need to notice that the CVE happened. So that's one thing that's different. The other thing is they're going to actually have to rebuild their Docker container. So what's going to happen is they're going to need to either rerun Docker build so that it pulls from an updated base image, or they're going to need to actually change their Docker file itself so that it can no longer be vulnerable. Once they do this, they need to repush it to the Docker registry. And then just to be safe, they have to restage their application so that it pulls any metadata that might have changed with this Docker image back down and saves it in the Cloud Controller. Sometimes CF Restart might work, but it's always a good thing to just see a free stage. Another scenario we want to talk about in order to compare BuildPacks in Docker is when you're doing local development on your app. So in this case, we had a go HTTP server. If I want to do some just quick iteration locally and see if I do this little change to bring down my app, stuff like that, we want to look at how that works with BuildPacks versus Docker. So with BuildPacks, your local environment, if I'm developing this on a MacBook, for example, my local environment isn't going to look exactly the same as the environment where the app is eventually going to be running in. It'll probably be running in a Linux container up in some public cloud or private cloud. So as I'm doing my local development, small things might be different. I might make certain assumptions about certain libraries that are available that aren't in the other environment. Or, for example, I might have a different version of Go on my system. I might have a really outdated version of Go, and when I actually combine it with a BuildPack, it's going to use a more recent version of Go, and I don't realize that. And I have some things in my code that are only working because I'm relying on some older features of Go, stuff like that. So I'm going to be developing an environment that isn't exactly the same as how the app is going to be running up in the cloud. There are a couple ways to deal with this. Some of you might be familiar with Bosch Lite. This is like a full Bosch deployment, except it sits in one VM on your local machine. So you could deploy a full Cloud Foundry and Diego to a VM on your machine and then push to that Cloud Foundry. This gives you a lot of control. You can see the logs through the entire Cloud Foundry system, but it's quite heavy-handed. And when you're just trying to see, does my app work or not, this is a lot of effort to set up, and you're probably not actually saving any time by doing it this way. So we really only recommend Bosch Lite for when you're developing Cloud Foundry itself, or you really want to see the detailed logs. More common, we suggest a blue-green style of deployment. The idea being that you make a small change. You push your app, but you push it to a special space that's like a testing space or a staging space, and your real-world traffic isn't being routed to this version of the app, but you know where it is and you can play around with it and test out whether it works or not. The nice thing about this is as soon as you validate that your experimental bits work the way you want to, it's very trivial to then go and update the route and have all the real-world traffic routed to your new version of the app. The downside with this is that every time you are doing a small update, it takes some minutes to do the push. So it might take several minutes to actually upload your app bits and stuff like that.  Or if you're debugging, if you see that your app is crashing and you're trying to figure out how, it can take a while if you have to do a lot of iterations of this. On the other hand with Docker, it's a bit easier to do some of the local development. So with Docker, if you're running on Linux, you can use Docker directly. If you're using one of the other OSes, there's probably some system out there where you can run Docker on a virtual machine. This allows you to really quickly test out your app locally, make sure that it's running exactly the way you want, and then when you go and actually do the push, you know it's going to be running in the exact same environment as how you tested it locally. So it just means you can do much quicker local iteration-based development. So this is nice, especially when you're doing more edge-casey kind of things or when you're doing troubleshooting, things don't go super well the first time. You're using more advanced features that the BuildPacks don't provide for you. Another scenario we want to talk about is when you want to port the app to different providers, for example. So the great thing about open source is that if you're unhappy with whatever vendor you're using, you can take your app and go to another vendor and it'll all just work. So for BuildPacks, for both BuildPacks and Docker, this is pretty easy to do. For the BuildPacks scenario, BuildPacks originally came from Heroku, so you can run things on Heroku if you want. You can also run on one of the many CF vendors out there. We have the CF certified program and we have a number of different vendors that all have their own Cloud Foundry, and so you can just move it to one of those vendors. There's nothing about your app that's specific to BuildPacks. The way the BuildPack style works is you don't have to know that you're running inside Cloud Foundry in general. You might be looking for specific environment variables, but other than that, it's not that different from how you would just write an app that would run on a bare metal machine, so you could also do that if you wanted to. With Docker, there are also numerous providers out there that can run Docker images, so it's pretty similar. In both cases, you have a big ecosystem of different platforms that you can port your app to. So in summary, we want to just go through the pros and cons of BuildPacks and Docker. In general, with BuildPacks, the idea is it just works, and it's supposed to work for the 90% use case, not for the weird edge cases when you want to use a super beta version of Go, for example. But for the majority of uses, we expect BuildPacks to be a lot faster and easier to develop with. You just worry about your source, you just push your source, and it just works. You get automatic and constant security updates, so you as a developer don't have to be worried about this. And all you need to do is focus on writing your own code. Cons is it's difficult, when something goes wrong doing troubleshooting locally and that local development takes a little bit longer, and there's a little bit of a black box with the BuildPack. You don't get the output, you don't actually get to play around with that droplet. So that result of the staging, you don't get to see what that really is. So there's a little bit of, you know, we'll handle this for you going on there. So you have a little bit less control and a little bit less insight into what's actually happening. On the other hand with Docker, the basic idea is you have more control, which means more work, but you can tweak whatever you need to tweak. So you can run that like super new version of, you know, Go that's experimental and not released yet. You can also do your local development much quicker. But on the flip side, it means more work for you if, for example, there's a security update or something like that. And general, you're just more in control. So it's the typical software engineering trade off of more control means more work for you. The sample app that we displayed here and we talked about through this talk is available on GitHub. We also have our, all of our cloud foundry repositories on GitHub as well under github.com slash cloud foundry. You can talk to us on the Diego team on our Slack channel. It's cloudfoundry.slack.com and the channel is Diego. With that, are there any questions? So for the purposes of this talk, we're trying to keep it mainly open source related. So, yeah. Okay. Okay. I actually haven't had any personal experience with PCF Dev, but I imagine since it's similar to a Bosch Light environment, it would probably work as well. Yes. I would not imagine so. They're still running on the same execution agents, which are the cells. Yes. So you could do that, but if you like, for example, develop it first with Docker and then want to make it run as a build pack. There's probably no point in doing it at that point. Once you've got it working, working as Docker, I would just use it as Docker.  You're saying, I want this to be my base file system, and that's going to have slight differences with how the build pack style apps are run and stuff like that. But in a given organization, you might find there are certain apps that are more tailored towards build packs and certain apps that are more tailored towards Docker. So the apps that are more basic, not touching a bunch of edge cases, don't really require a ton of customization. Those would generally be better with build packs. And Docker is when you need a little bit more finer grain control. But for a given application, I don't think it makes that much sense to mix the two strategies for the same application. I think some of the trade-offs you might maybe want to do it is if you get security updates automatically. So that's like the one case. So if you prefer Docker for development and then you want the security updates for free using build pack might work. The other thing is I think that in some previous talks at the summit, there are some ideas about combining the flows into a more stable thing. So there might be something along that lines in the future, but I haven't heard much. How does it work when it comes to third-party agents that are running on, for example, for an agent that gets downloaded and use a build pack. How does it work in terms of Docker? Do we have to involve the agent as part of the Docker container? Yes, you would be responsible for doing that inside your Docker image. So you'd specify in your Docker file, most likely. So the question was about agents for logging and stuff like that. And agents that come along for free when you use the build pack style. Does that happen also with Docker? And the answer is no, when you have a Docker app, you have to take care of all that stuff yourself. Like if you want to have specific agents that deal with metrics and logging or whatever specific thing you need, you have to include those yourself because those are properties of the build packs. See that one more time? That's a good question for the container networking team, but no, I don't think they support that quite yet, but it's in the horizon. Sorry, the question was whether or not garden supports container linking over the network. There's a container networking team that's responsible for that right now. So it's not finished, but I think it's coming soon. Yeah, so that's one of the cool things with that from directive is you can actually specify a base image.  That's always a way to do that. Sounds good.


So I've gone ahead and jumped ahead a little bit if you want you can follow along in your book But I've added in a few more records now one thing I do want to specify at least when we're dealing with these things is We have to make sure that our visit IDs are all unique say for example this last one 1560 say for example, I had made it a little typo. I had said 1564 1564 I've already got a 1564 in here and inside of Excel didn't matter Since I try and hit enter and I move through this You see what happens I get a little error now We have to read error messages because they tell us what's wrong again the changes you requested to the table were not Successful because they would create duplicate values in the index primary key or relationship. I don't know what any of those words mean We will in a second change the data in the fields that contain duplicate data remove the index or redefine the index to permit duplicate entries And try again, so it's not gonna. Let me I can't save this I Can't I Can't move out of here. I can't do anything Like I'm stuck You see I'm stuck now and it's all because this guy is a duplicate value again every Visit ID is unique. That would be like your social security number being the same as somebody else's social security number You don't want your you know credit to go down because someone else is taking out ludicrous amounts alone because well They know your social or they have the same social as you The same concept is coming in here because I have one here again I can't even change it. I've already committed to that one because I've made the change here. I Have to do it now in our case so I can either hit escape or Backspace zero 1560 again and now because it's a unique value. There are no 1560s here I can click out of it. There we are Now again, I clearly don't want to type all of these things So what I want to go ahead and do is I want to go ahead and import them from another database that Cindy Database that if you've downloaded the textbook files, you have access to and if I open it up It looks like this. This is what I'm gonna see again Notice how I don't get a lot of stuff and oh There's warning scaredy-warning. You're sending me hacking viruses and all that mister. Go in now I'm not this is access being a little cautious because we're dealing with really a Lot of data a lot of sensitive data It's being a little bit of kind of that that big brother. Hey, you know, you're dealing with some complex stuff here I just want to make sure you know what you're doing before you actually do it It's gonna do that a lot you're gonna notice So we do actually have to say enable content then again We have to open up that appointment Table by double-clicking on it and you can see it's already got a bunch of them for us Now I want to go ahead and take all of these and I want to bring them into my database The quickest way I can do this is actually by clicking on that little square right beside visit ID And bringing it all the way down. Now what this allows me to do is copy and Then if I come over to my database and I click on that little star notice what happens to the paste option. Oh Paste just became active. So that means if I clearly click on it Again, I told you that access is gonna be very big brothery. It's gonna make sure that everything you do It's very explicit and it wants to make sure you mean it So as you can see are you sure you want to paste these records because once you do, you know They're committed and if you have other back-end stuff working on that Well, you know 76 records just kicked it. So again because we're doing it. I do want to do that I want to go ahead and say yes And for my sake I can go ahead and close out of Cindy Again access wants to vary Abruptly make sure that you are doing everything that you want to do So you just copied a large amount of data. We did 76 records. That's a large amount of data in access terms Do we want to keep that in the clipboard or not? Well, do you want to save this data to the clipboard in this case? We actually we don't care about it We've already pasted it. So we're gonna go ahead and say no


I have some quickfire questions now. This is the MTV speed date. What's your go-to pizza topping? Prawn and black olives. Ah, olives and jalapeno. Olives all around? You've got to get some olives in there. Yeah, black olives. What's your most used emoji? Go on. We know. Go on. Admire it on camera. It's actually the star. What? I thought it was the angel-faced emoji. No, that's social media and that's not run by me. Okay, so someone's angelising your social media a bit. Okay, yours is the star. Yeah, what's yours? Mine is the fist bump and the prayer hands. Is there someone running your social media who is just obsessed with angel emoji? Yeah, we'll have to have a word with it now. I haven't actually, you know, I'll have to have a look into that. What's in your pocket right now? It's great gorilla emojis. What's in my pocket? My hotel room key. A pistol and a snooker ball in a sock. Would you rather have fingers as long as arms or arms as long as fingers? Both. Why choose? I want them both. I'm thinking about that. I think you get about that. I think I'll continue to think about that forever now. Thank you. Yeah. If you could go on vacation anywhere in the world right now, where would it be? Why did you say vacation? What is that? That's a very American word. I don't know why I said that. We say holiday. We say holiday. We say holy bobs. You to be fair. Holiday. What is that? What is a holiday? Yeah, right. That is a really nice concept, isn't it? Yeah, explain. I'm probably laughing. People have holidays. What does that mean? They take time off of work to go and off of... To be fair, our work can be like play sometimes. Yeah, that's true. I love doing what I do. OK, if you've got anywhere... You know what? I've never been to China. Never been. I'm interested to go. I've heard it's all happening. I'd need to go to China as well. Let's do it. Let's do it, yeah. The movie's got such a great cast, and I'd love to know what your funniest or most memorable moment from filming is. There were so many good moments on set in between so much hard work that had to get done that it would be hard to pick out and isolate a specific moment for me, because it was quite full-on. So it was like moving from one event to another, and it was top-heavy with opportunities that needed to get done that day. You sound like basically it was the most depressing... No! ..you've ever... It was like... It was a really complicated puzzle. Could you think of a fun moment? No, we were working too hard for it to be that funny. We were just working really hard, trying not to screw it up for all the fans, because your comic book fans are like die-hard fans, and you're lucky to have that kind of following around a movie even before it's come out. And there's so many people stopping us on the streets asking about Venom. It's the kind of thing where you want to try and get it right. So everyone was just putting their 110% focus in, to be honest. That was really what we were concentrating on. Is there a particular question fans have been asking the most about Venom? What have they asked you? Is it going to be R-rated? That's the big question, and the answer's been answered, isn't it? It's a 15 in the UK. And it's a PG-13 in the States. But to be fair, the thing can fulcrum into R-rated and can fulcrum into, you know, you, you for children. And my littlest ones, they watch Spider-Man and Venom quite comfortably. And Venom toys appear and let go appear in my nostril of the morning, do you know what I mean? So it's not like they're scared by him. But at the same time, there is a lot within the real estate that you can actually imbue with a complete sense of gratuity, self-defence, if you really wanted to. And I think you've got the right people for that job if you want to push it, because that's where I'd love to go with it. And I'd love to go through all the Avengers as well with him. But that's above my pay grade. Riz, maybe you could have a word. Do you want me to talk to the Avengers and tell them that you want to have a fight with them? You know, me? The Venom wants to fight the Avengers. It's a campaign, a little audition. See, this is it. Please, will you take us on? Please, and if not, we're more than happy to stand alone. We have a Venom versus 900 characters to play with, but I think there's a little bit of... You want to, you kind of want to play with them, don't you? Yeah, I want to ruck with the established family, why not? Not me, personally. But I think that's an essential element, right? I would love to see that. I think everyone would love to see that. Because we have to establish initial communication with Venom. Don't be insane, this is an introduction to you. This is Venom himself before it starts, he starts biting off the phases of others. How do you think Venom would get on with the Avengers? Who would he be able to take on? I think he'd just try and eat all of it. Yeah. That's the thing with Venom, it's not really so much like good and evil. It's like, am I hungry or am I not? Yeah, yeah.  Anything that breeds... I think Venom and Hulk is a good match-up. That's going to be hard to eat. That is... Well, you never know.  The thing is, there's no backing down on Venom, and it's a fantastic role to play with the CPS because they're a different breed of super. It's not really superhero, but it's enhanced. The Super Beans. Because heroes suggest that they're out there to do heroic acts, but Venom isn't really thinking in those times. No, it doesn't trade on that level disease of good or bad, it's more... Just what is and what's paradoxical and what is great. Can you imagine him on that side of being good or is he more of a villain? He's more of a, like, about himself. He's a very self-centred character and contained in that aspect, but, you know, I think he's very much he who has the biggest hands eats the most, so it's quite mercenary. But the point is, when you put Eddie Brock and Venom together, it's interesting, it's because it's almost like both the characters are learning the same lesson, because Eddie Brock starts off, he's just out for himself. I mean, he's trying to save the world with his journalism and his investigative reports, but he's also kind of out for himself. He's willing to do ruthless things to get his story in a scoop.  And over the course of the film, it's about them both trying to learn this journey of, like, actually, we need to make space for other people in our lives. And the thing that teaches them that lesson is that they've got to make space for each other in the same body. So because they're forced to live with each other, they realize how they also have to live with other people. And his character is pretty much the same as Eddie Brock, but has a rocket and just, you know... Yeah, well, Billionaire, industrialist, scientific, genius is trying to save the world. I wouldn't say is that not exactly the same as Eddie Brock. Yeah, there's no garb and there's no mirror image of Eddie Brock. So I wonder what he would make of, like, Tony Stark, then. What would my character make of Tony Stark? Oh, your character? I think my character would think that Tony Stark is, it's brilliant, you know, great all those toys he's making, those toys look like a lot of fun, but I'm actually trying to save humanity. I've got bigger fish to fry. Because I imagine if they're in the same universe, they might have bumped into each other at parties or something. I don't think so. I think Carlton Drake really... I don't think that party scene, the Tony Stark party scene, is really up his street vibe. Definitely rivals, aren't they? Like, I'm picking up this as sort of... Tony likes to think of them as rivals, but Carlton's just focused on the main goal here, which is making sure humanity's got a future.


The national broadcasting company presents Joe McCrae in tales of the Texas Rangers Tonight transcribed from Hollywood another authentic re-enactment of a case from the files of the Texas Rangers This rangers starring Joe McCrae is Ranger Jase Pearson Texas more than two hundred and sixty thousand square miles 50 men will make up the most famous and oldest law enforcement party in North America Christmas present p.m. December 21st four days before Christmas in the Depression year of 1931 On a city street corner in North Texas a man dressed as Santa Claus suddenly leaves his post beside a large red pot labeled help the poor Shivering with cold he enters the newly opened building of the Panhandle equity bank and approaches the bank guard Say master You might if I stay here a few minutes warm up a little sure don't I've been watching you through the winter Don't know how you stood it as long as you did. Oh this Santa Claus out That's pretty warm at first, but then the cold sort of creeps in on you How long they expect you to stand out on that? Oh eight to two six hours. That's all Two o'clock right now you can go home not till my relief man shows up I can't can't leave that he gets here some money in the pot out there. Oh Well, why don't you wait right in here till you see I was hoping you'd say that cuz I'm sure oh There is now just drove up in a car.  Well, I think he's just wondering why I'm not there. I better go out and oh He sees me. He's coming in. Howdy was wondering when you get here. God let me come in warm up I hope your Santa Claus suit is warmer than his will be closed up by the time you need woman I don't think I'll get very cold I got a cool 45 my pocket pointer right for you belly now Don't move or don't move you said keep your hand away from your gun You you guys are pulling the stick up.  I've got it now sister whether he losing others up to you Understand what do you want me to do open the kids of those money trays get to it? All right You got the sack tell her what to put in at them stuff it into your jacket when you're through all right and remember sis One yep, and this jerk gets it All right. All right go on Come on a stubborn the sack. What are you gonna do when you leave come on fast? What do you mean? We'll give you a chance to get away. I mean we won't yell or anything until you're gone honest Oh, yeah, that's real nice of you. Maybe you ought to be wearing the Santa Claus suit instead of me You think I'm gonna fall for a hurry up will you one of the bank executives is heading back here. All right. All right I'm almost through so I get it my bear. What are you doing back here? Love it?  Peabody just wanted to go What's the other one doing in the ball there? Miss Keen mother? Good answers question later when and if he comes to Congratulations on your self-control you'll have to get medals for saving your own lives The statewide alarm was put out to all law enforcement agencies in a matter of minutes But the perpetrators of the Santa Claus stick up had vanished Texas Ranger J. Spearson closest unit to the scene of the crime was requested to investigate The chief police gave me the general details. I'd like to get your story firsthand. Well, I Saw the guard take them through there Ranger I went back to see why he was leaving his post on the bank floor and that That's when I got hit. You have any idea how big they were. No, I don't I was too excited. I see What's your name Leon Peabody? I'm second vice-principal How about the girl miss Keen and the guard love it both of them were knocked out too miss Keen finally came to And we sent her home, but they took love it to the hospital. He wasn't in good shape Sculpture they don't know I'll come you stayed around. It's a nasty bump you've got I feel it too plenty But I knew the police would need whatever information they is so I stayed and you better sit down. Oh, thanks You think you could recognize either of the holed up men That's the way they were I'm afraid not it's a cinch. They chuck those Santa Claus suits right after they left here I hope they left a few fingerprints both of them were wearing gloves You get a tally on how much they made off with we're running a tape on it. We'll know in a couple of minutes Men who pull this job work pretty smoothly. They seem to know the setup behind the partitions there Have any your employees ever been in any trouble? Those men weren't employees of the bank. I know they weren't but somebody inside could have supplied them with your new layout Help them plan the job. Well, so all of our employees have been with us for at least a year And we haven't taken on any new one since we moved over here two months ago. Mr. Peabody. Oh, yes, darling Is that the rundown? Yes, sir 63,800 and we've got serial numbers on some of the larger bills. Good. That'll help if they try to pass any I'll take a copy of that list. Police can alert the other banks and merchants We'll get numbers out on the statewide and interstate. We may run down some more serial numbers when we cross-check deposit That'll be fine. I Think you ought to go home now, Mr. Peabody. We can reach you there if you're needed. Oh, thank you I guess I shouldn't even think about myself. Oh, I'm a bachelor, but the God love it He's got a wife and three children. Yeah, could he rotten Christmas present for them if he doesn't pull through? I paid a call on Miss Keen the girl who'd been slugged But she was in the state of shock and hysteria by nightfall all possible angles had been checked and we still didn't have a lead My boss Ranger Captain Stinson flew in and I met him at the airport drove him to town You talked to all the welfare agencies that have Santa Claus is stationed on the streets Yeah, and every man they have checked out clean. It was a phony set up Captain even though one of the bandits spent the whole day right out in the corner outside the bank Well, that was smart got the bank guard used to seeing him Yeah City police are checking to see if they can find out where the suits came from and who got them good idea How's the bank guard doing love it? I checked the hospital. He's still out No fracture, but they can't bring him around He may have KTX. He was Jason. Yeah Unit 10 go ahead KTX a city police report stolen car found in alley off Crockett Street between Maple and Lolley Maybe car used in pen handle equity bank robbery police chief request your assistance Ten four proceeding there immediately Unit 10 clear We better get there fast this may be the break we need Proud cars spot didn't check the license on the stolen car list. When was it reported stolen chief earlier this morning But the owner says it might have been missing since yesterday. He's been away. You check on him. Yep He's clear where he said he was what makes you fellas think this is the car found this on the floor under the seat Big red button. Hmm. Oh for Santa suit. All right. I'm gonna climb in behind the wheel for a second Ask one of the men in the prowl car to flash his light this way. Sure. Let's have a spotlight here with your boys Okay, okay. They're do Ranger. Yeah, that's fine Yeah, if any of your men move this rear vision mirror chief dope How about this front seat you slide it back to get that button you found who just saw it under there and reached in good What are you trying to figure Jason last fellow drove this car was pretty big about an inch or inch and a half taller And I am what makes you think so because the seats all the way back where it would be for tall driver And I have to raise myself a bit to get a clear view through the rear vision mirror. Yeah, that's good thinking Yes, yeah, but maybe he didn't touch anything. Maybe he left the car just like it was when he stole it I'll give odds against that Man who's getting away from a bank stick up wants to know what's coming behind him All roads out of the city had been underwatched since the report of the robbery So the men we were after figured to be close by but all we knew was that one of them was about six foot three In the morning, we made a routine check with police headquarters Morning Rangers morning to morning chief your men come across anything. I'm just going to check through this report Tells us location is just about every Santa Claus suit in town All of them belong to organizations using for the Christmas parties was once a while They let some private individual bar for kid party or something as if they put up deposit money You got a list of the places that have loaned suits out and who got them that top paper. I was just starting to check it Look if you like. Thanks Like we might be adding a murder charge to the armed robbery captain The bank guard dead not yet, but it looks bad. They're operating for blood club on the brain. He's Wait a minute. What is it Jace? We've got a boy to talk to look at this list two suits borrowed from two different organizations But both borrowed by the same man Anthony Ross one two four pedagogues Street Say that's worth looking into Jace. Come on. Let's pick him up You are listening to tales of the Texas Rangers starring Joel McCrae as Ranger Jace Pearson We continue now with tonight's case Christmas present an authentic story from the files of the Texas Rangers The home of Anthony Ross at one two four pedagogues Street turned out to be a rundown shack on the outskirts of town a Small boy and girl not dressed well enough against the cold stop playing with a mongrel dog as we drove up They stared at us while we went up the rickety porch The dog barking at our heels It's all right boy. It's all right. Take it easy There's a good Texas Rangers you Anthony Ross. Yeah, we'd like to come in. Oh sure Annie you and Jim take the dog. We can start with those boxes on the table. What's in them? I don't I don't know just just a couple of packages. That's all they they ain't mine. You better open them up Just yeah, no no wait a minute. I tell you they ain't mine You got no right to this search warrant says we have Search warrant and now look now the those things ain't stolen. They were rented a Couple of Santa suits are a cabin and look a button missing from the jacket of this one I don't know what this is all about. What why are you coming? Maybe we can refresh your memory The guard you slugged at the Panhandle equity bank isn't expected to live what who was wearing the other suit Ross Who was your partner? What are you guys doing to me? I I don't know what you're talking about. We're talking about the $63,000 stick up you and somebody else pulled yesterday and since you're about 5 foot 10 I can tell you that your partner is about 6 3 Ranges you're making a mistake. I don't even know anything about a hold up a button missing from this suit was found in your Getaway car the one your partner drove it wasn't me. I'll tell you I didn't even know what kind of costumes were in them boxes. They ain't mine and where'd you get them? I Picked them up at a couple of places yesterday morning. You say you picked them up and you're trying to tell us you don't know What's in the boxes? I picked them up for somebody else. They were rented out in your name the woman ordered him in my name What woman the one who hired me to pick him up. That's a pretty funny story Ross Who was this woman you're talking about? What's her name? I don't know. I don't even know You better come with us Ross. No, no, no, no, no, you know, you got to listen to me Please please listen. You got to believe me. I Was in town early yesterday morning. She she come right up to me on the street I was putting pulling my kids old wagon a long time to find some junk I might sell You sure you don't want to think this story over before you go any further She asked me if I want to earn a dollar running a couple errands. I said sure a Bucket give my kids a meal for a change She asked me my name and address and I told her and then then she told me to wait Well, or she went into a booth and made some phone calls when she come out She sent me to two different clubs told me that'd be costumes and packages She had him left in my name to avoid confusion. She said you didn't think that was funny Mr. All I could think about was earning that dollar. She she give me money Deposit money for the costumes and And told me to come back and meet her with the stuff on that same corner Where were you at two o'clock yesterday afternoon? I was looking around for a junk again for a couple hours after I delivered the packages and And I guess it's two o'clock. I was walking back home from town There's a long walk to here in this weather Cost of a bus ride will buy a loaf of bread for the kids you saw outside. Is that a crime?  All right, Ross.  You didn't know but you've still got them Yeah, I got them.  She she said she was leaving town in a hurry It didn't have time to take the costumes back yourself and And if I take him back, I could keep the deposits $15 each But you're not gonna believe that are you you better get your coat Will you will you give me a chance to ask one of the neighbors to watch out for my kids I'm afraid you'll be gone too long for that. I'm sorry, but we'll have to take him into the juvenile home. Oh I guess I guess they'll get better care of there than I've been able to give I get my coat Ross you've been doing any painting around here This place look like it ever saw paint put me jazzed that geez I just noticed this inside the leg of this Santa Claus Suit paint blob looks fresh. Well, how come it's inside the leg not outside? I don't know that's something we'll have to figure. This is the large size suit must have been worn by the big boy We're looking for Captain and I did a job.  He took Ross to the jail and locked him up Well, that seems to be it rangers The timing comes up the trial. He should be ready to name his accomplice That is if we don't find him before then I'd go along with that chief if we'd found any money on him or in the house Even a few dollars Kids got under your skin. I just they got under yours captain. You know it.  You might as well go over there and check with the doctors Jase I got to get back to company headquarters. Do me a favor then you're heading toward Austin Take the sat outfits with you and have them sent on to the lab get an analysis of that paint in the trousers Maybe some traces in the boots too. Well, how come the boots they made to go on over regular shoes I figured that paint stain on the inside of the pants came from a blob of paint on the shoe of the man who put Them on I see all right Jase you want to know the content of the paint and see if lab can run down the source Is that it yeah, you were working up to some kind of a lead maybe a few things I'm trying to fit together. Maybe they won't fit if they do though. You'll hear from me Over to the hospital and checked with the doctors the outcome was still in doubt Guards wife was there face twisted with worry and fear There was nothing I could do to help. I got some sleep then in the morning. I went back to see the police chief. Oh Ranger I'm glad you dropped in Had a long distance call from your lab headquarters at Austin report on that paint Yeah, close it all down paint is manufactured right here in town brand name is light glow light glow Can you get a list of local painting contractors who use it? Well, I reckon just about all of them do it's a good paint And this wouldn't hardly be Texas if we didn't deal with a local outfit. Would it know it wouldn't Thanks a lot. I'll see you later the way you're going over to the panhandle equity bank Mr. Peabody, you know who painted this bank before you opened well They was a contract for the building Included the paint and I guess that was done on the subcontract. Can you find out from the contractor? Sure But you mind my asking why I told you the day of the robbery Everything was too well planned like the men who did it knew the inside of the bank as I remember you're seeing that You think the painter's me of that's what I think but why not some of the construction men? I've got a reason for being interested in painters check it for me. Will you he checked Contractor gave the name of the painters two men Eddie West and Martin Puggan They'd been working the day of the robbery. He said at a house on the north side of town I went out to the house to see the owner. Well, yes ranger. They worked here all day that day I remember we heard the report of the robbery on the radio. They were both here all day Yes, didn't even go out to eat had their lunches with them And a smelly when the house gets painted most women usually get out of the way I wanted to watch him so I was here every minute to see they didn't get sloppy. I like things neat. I see well Thanks, ma'am. I'm sorry I bothered you Why are you asking about him Ranger? Nothing important not as long as you say they were here Goodbye, ma'am. Merry Christmas to you She was the alibi for Eddie West and Martin Puggan She was too nervous about answering a few simple questions nervous enough to make me wonder I went back to the jail got Anthony Ross out in my custody and drove him to the north side of town All right, get out Ross. We're going in here for a minute. Why what are you trying to frame now? I just want you to meet somebody Well back again Ranger. I thought we'd That's her Ranger. That's the woman was he who is this man? You ought to remember me lady My kids are in juvenile home on a county you and I've been in jail I never saw you before in my whole life. Tell him the truth. Tell him Ranger I got those costumes for her for her That word fits somebody all right Can I come in and have a look around ma'am up for what do you want? I want to check over the painting job to see if it's just new painting or if there's some new plaster under it You can't come in you have no right the boys your alibi and for must have come back here after they cracked the bank Because you must have picked them up in your car after they ditched the one they're using. I don't know what you're talking about Wouldn't carry the money on them. Did they cover it up here safe under fresh plaster and paint until it cools off? No, I can call for a search warrant and wait till the crew comes and tears this place apart We'll go better for you if you don't try to cover the money isn't here. Well, come on. Come on. Where is it? It's it's here. All right In that wall Behind the picture come on Ross Which one's your boyfriend fog in her West Eddie? West He said we'd get married Go to Europe next year. You'll all go someplace next year, but it won't be Europe West about six foot three Yes How did you know I got an early Christmas present somebody sent me a crystal ball So as I call the police and dig out that bank money you're coming with us Ranger I'm clear now. Ain't I looks that way Ross But you'll have to go back to jail for a while and be checked out with the local police I won't take any longer than it'll take me to pick up Eddie West and Martin Poggin. I Made my call then took West's girlfriend and Anthony Ross back to jail Poggin and West were playing it smart working right up to Christmas Eve like a couple of house painters would be doing I Found out where they were working a loft of a warehouse local police covered the building while I went in Eddie who's that? Who came in probably the watchman watch out for those paint cans. Don't worry. I see him That ain't the watchman boys Eddie. Come on. They share those word.  How can I got my gun? Are they ranger something you want? Yeah, I want the two men who robbed the panhandle equity bank What would we know about that ranger? I'm down off that scaffold now.  I just make you when you try to dig for that gun in your pocket.  I've got for you a pair of handcuffs Well, that winds it up for sure ranger didn't turn out too bad either. Just heard from the hospital Guard past the crisis. He's gonna be all right. You couldn't have better news chief just in time, too It's getting dark Christmas Eve Are you let Anthony Ross go mm-hmm about 10 minutes ago? He didn't seem too happy though like just like he didn't care what were these kids in the juvenile home and everything Judge might need to release him if he can't care for him Ross didn't have a dime not even bus fare. It'd take him a couple hours to walk home Oh, why didn't I think well, maybe it's just as well that way? Let me call the judge and mr. Peabody the bank vice president stores will be open late, won't they sure sure? Why it'll take Ross a long time to get to his house Maybe we can get some of your boys to help us and change his mind about Christmas You're him coming up the walk now. I'm coming slow. His tail is dry. Yeah, not that I blame you for the kids asleep Yeah, all bundled up in them new blankets Ranger and the chief The lights lights They're on The power company turned them off. Yeah, they sent a man out to turn them on again. What? What's what's all this stuff? ornaments Christmas trio all those toys and things tomorrow's Christmas Ross for you and your kids They're in the bedroom asleep My kids You brought my kids back to me. Yes, and there's plenty of grub in the kitchen and you've got a job Starting next week at the Panhandle equity bank. Just go in and see mr. Peabody after the holiday Meanwhile, he sent you a little cash in this envelope Sort of a Christmas bonus just like the rest the employees get We have to be going Merry Christmas. Yep. Merry Christmas, Ross My merry Christmas fellows Merry Christmas In God bless you Thanks God bless you on behalf of all of us on tales of the Texas Rangers This is Joel McCrae wishing you a very merry Christmas Next week Joel McCrae and another authentic re-enactment of a case from the files of the Texas Rangers Is currently seen starring in the Universal International Technicolor production Frenchie tonight's cast included Tony Barrett Shepard Menken Jim Nussar Virginia Greg Victor Rodman and Byron Kane This story was transcribed and adapted by Joel Murcott and the program was produced and directed by Stacey Keats. This is how give me speak Three times mean good times on NBC Monday means music on NBC and for your Christmas night listening pleasure tomorrow the voice of firestone presents Soprano Eleanor Stiever in a thrilling selection of Christmas melodies Next Jack Parr calls a marine veteran in Japan on NBC


I think, I think maybe, yeah, yeah, yeah, maybe I left out the beta in here, this normal, okay? So in fact, here you should put the beta, and maybe like that, or this should be multiplied by the variance, which is beta, two over beta, yeah, thanks. Yeah, it's just because I ignored the variance of the normal, okay, any, any, any, any other question?  And since it's, you know, it's towards the end of the lectures, I'm going to be brave and use some more significant, more serious tools than we did before. And the tool for the lower bound is called, it's called a riccati transform, okay? So this riccati transform is the, the word in this, in this world of Schrodinger operators for taking the log derivative. So it just shows that no matter what great things you did in your life, they may just end up naming the log derivative after you, you know, in other places it's called the hopfkopf transform and the various names. But you know, if you have, right, so, so if you have this, this differential equation, right, at f, so, so, so what is the eigenvalue equation, right? So, so you have something like an operator, which is minus del xx plus some potential, okay? You write it like this, we're depending on x, this is, this is your Schrodinger operator. The eigenvalue equation for this is, right, it's just that lambda f is equal to minus del xx, vx times f. So this is a second order linear differential equation and this is a way to try to understand the roots. If this is satisfied for f and also the boundary conditions are satisfied for f, then f is an eigenfunction with that eigenvalue lambda. So of course one thing you can try, even though I have zero chance, is just to pick a lambda and try solving for f, right? The left boundary condition is given to you, so, so there is, you don't have a choice there, but the right boundary condition, which essentially just means that f doesn't blow up, or f stays in L2, may or may not be satisfied, okay, so, pretty much all the time it won't be satisfied, nevertheless you can still get information out of solving this equation for a given fixed lambda, okay, and, and, and I'll tell you what that information is and this is what the Riccati transform is for, so, so if you take p to be f prime over f, okay, then you get the first order differential equation, which looks like this, so p prime is x minus lambda minus, oh, sorry, vx here, okay, so vx minus lambda minus p squared, so this is the term that you get from doing this, this change, and that's it, okay, so vx is gonna be your potential, which for us it's like x plus this derivative of white noise, or the O'Brienian motion, so, so, so, yeah, so, so you can solve this equation instead of that, okay, and here is what the information that you get, okay, so, so here is the, the, the following fact which is true in general for, for Schrodinger operators, and if I have time in the end I'll maybe explain it to you, but for now I'm just gonna state it as a fact, because it's, it's subtle, so, so you have lambda, lambda one, lambda one is less than or equal to lambda, sorry, lambda is less than or equal to lambda one, so, so again, I'm picking a lambda and I'm solving this equation, okay, this happens if and only if, maybe less than lambda one, like this, if and only if the solution does not blow up, okay, and I'll, I'll tell you, I'll tell you how, what this means and how, okay, so I solve it, there is, there is this p squared term, so actually this p squared term in a differential equation can be bad, right, can pull you down very fast, so, so you see now this is perfect for pale tailed bounds, right, so you want to see the probability that this is less than or equal to, I just, I just, I can just solve it for a fixed lambda and I get, I get bounds for the probability of lambda one being less than the fixed lambda, okay, so let's see how, what is the picture, okay, what is the picture for this p, so, so here, so let's look at this function, right, so for us, the Vx is x plus, plus, plus this Brownian motion, right, some variance, prime, so let's forget about the Brownian motion for now, okay, and let's, let's just look at the area operator, so what is the, how does the drift term look like, so, so let's say where it is zero, where it is zero is where x equals p squared, right, so that's a parabola, so there is x and here is p prime, right, so there is a parabola where this is zero, okay, and, and here, everywhere else, outside the parabola, the drift is down, so when you solve this differential equation, you think of some particle moving in this drift field, it will try to go down, and, and again, so here it is going down, and here this is in the middle, it's, it's going up, the y-axis is, is the drift, so it's p prime, it's, the y-axis is, so what, what am I, the y-axis is p, yeah, yeah, sorry, okay, and that's p, and I'm drawing the drift, okay, as in, in this sense, so it's a, it's, this is really a three-dimensional plot, what I'm doing, sorry, should be a z-axis and those are represented by the arrows, okay, so I'm just drawing this differential equation, so, so what's gonna happen, okay, so let's see, for example, the airy case, okay, so let's, let's say that I do this at zero, okay, what is it gonna, what's gonna happen, so, so I'm gonna, I have to start at infinity because I start with f prime over f, and f starts at zero, okay, so this one actually has to start at infinity, that's some technical thing, it's not so hard to figure out what that means because the p prime, p squared really pulls it down very fast, so, so your particle will come here and then it will get into this, this valley, okay, and it won't blow up, okay, so that means that, that means that, that's the top eigenvalue, the law, the first eigenvalue is greater than zero, which is true, okay, so now the other thing we should notice that is that this translation invariance, we still have here, so, so I should draw a different field in general for every, every lambda, but, but here the potential is just, you can just put this into x, so instead of changing lambda to be something larger, I could just look at the same picture and start it earlier, okay, okay, so, so I could start, say, from here, and, you know, if I, if I started early enough, then what the solution will just come down and blow down like this, and I will tell you that, you know, that this value, and the negative of this value, so this minus lambda one, minus lambda here is actually an upper bound for the top eigenvalue, therefore the bottom eigenvalue of the, of the airy operator, okay, so, so now, so this is the picture, but, but, but now let's put in this B, B prime, right, so when we put in the B prime and solve this ODE, right, this becomes an SD, stochastic differential equation, so what I do there is the drift of the stochastic differential equation, and what I didn't draw is, is, is of course it has some, some noise term, so you have, you know, this is, this is really nice, it's literally like a story, right, you have this particle that moves in this field and you're rooting for it to blow up or not to blow up, and you want to see what is the probability of those things happening, um, so, so you know what could happen, well, and everything that I've drawn here can happen, except there is also some randomness, right, so it's possible that this particle will start here, you know, and it's biggles, and it's biggles, and it biggles, and instead of staying in this, this groove here, it actually fights itself through this drift, gets to here, and then it blows down, so that kind of thing can happen, it has some probability, and actually you can estimate it, okay, so let's, let's, let's actually do the computation now, okay, so, so here's what I have to do, okay, to have this bound that I had up there, so what I have to do is I have to give a lower bound than the probability of the following, I have, I start at minus a, okay, and I have my stochastic particle, okay, and I have to make sure that it doesn't blow down, okay, so what I hoped for it to do is to come here and then, and then end up in this groove, okay, so, so let me write it like this, so, so, so the probability that lambda 1 is greater than a, okay, is actually equal to a probability, and let me put in here some starting points, so I start at minus a in time and plus infinity in space, and p is my particle, and this is that it doesn't, doesn't it blow up, okay, this is actually an equality, this is no, there's no inequality yet, now, of course, blow up, so again, two things can happen to this particle if you look at this picture, one is what I've drawn, it comes down, and it hangs around for a while, and it ends up sticking in this groove, okay, the other thing that it can go is that it goes to minus infinity, that's what I call blow up, okay, so now notice that there is some monotonicity here, right, so if particles start below another particle, then you can, then they always keep this kind of order, so, so I can, again, I need a lower band for this, so let me, let me put this lower band, so this is of course greater than or equal to the probability of starting with at minus a, and instead of infinity 1 of the same thing, okay, because it's easier for, for this particle that starts below to blow up, and then I'm gonna try to describe a particular scenario for this to happen, and it turns out that this scenario is gonna be good enough so that it will match our upper bound, and the scenario is this, I'm just gonna have this, have this, I'm gonna look at this strip here from 2 to 0, so I'm gonna start my particle at, at 1, and I want the, wanted to stay in here, okay, so that's one particular way to go, and then after, after I want it to, after I, it stays in here until 0, I ask it to, to do this particular one, okay, so, so let's write it like this, so it's the probability that p stays, again, it's starting from minus a and 1 at p stays in 0, 2, until time 0, okay, and then after I, I, I got to here, I want this not to blow up, okay, that's all I want. Now, of course, that depends on where I ended up, but if I stay in, in, in, in, in 0 to 2, then I'm certainly did end up above 0, and, and of course the easiest to blow up is when you start with 0, so if I want just an inequality, I, I, I, I, the following inequality is correct, I can write it as a product, it's a probability of, of 0, 0, starting from 0, 0, that p doesn't blow up, so notice that this doesn't have a in it anymore, this is just some constant, so we can basically forget about it, so we're just, so we're just, oh, I forgot to close this thing, so we're just gonna compute that last, last term, okay, and here, here comes the part that I feel a little bit guilty about, but maybe you won't kill me, which is that we're gonna compute that using Gersonov's formula, okay? So what's Gersonov's formula? P is some funny diffusion with various trips, and we know that these things are absolutely continuous with respect to ordinary Brownian motion, but there is some density, and then when you want to compute probabilities, you can, for P, you can also compute these probabilities as an expectation of this density over the event that you're interested in, so here is what this gives us, so this is equal to the expectation, and I'm gonna give you just the answers here, to 0, x minus b squared, now this is ordinary Brownian motion, db, plus or minus beta over 8 of x minus b squared, squared dx, okay, and oh, I forgot to put an exponential, so yeah, this is a, this always comes in this exponential form, this is just the density, what I'm writing, okay, density of the two processes, and this thing has to be on an event, which is what I want, so that b is in 0 to, okay, for a time bt, or bx, x is time for x in minus 8 to 0, okay, so this again is, this thing is equal to that, okay, so what am I doing? I want Brownian motion to start here, minus say 1, I want it to stay in this interval and integrating this number over there, so okay, so as it turns out, this is the nicest one, okay, so look at this term, because this is what gives you the answer, when you look at these terms, imagine that b is between 0 and 2, okay, so this thing you can basically forget about, right, because in this event b is between 0 and 2, so you're just integrating x squared from minus 8 to 0, okay, so what do you get here? So these terms give you minus beta over 24, one-third coming from the integral of f squared of a cubed, okay, so that's what we were after, this density term, and the other term is a db term, you can show by integration by parts that this is actually big O of a, so it's really, doesn't really contribute to the main leading asymptotics, and then you also have to check the probability that b is in this interval for that short time, but for that time from a to 0, but that's just exponential in a, right, any Markov chain staying in some reasonable set for a time is just exponentially in a time, so okay, so that's again unimportant, so that's the end, okay, so I hope this was somewhat useful, I've shown you how to think about random matrices in terms of random operators, right, by actually keeping the structure of the operator and using that to deduce questions that you're interested in, even in the limit, right, and they have seen I think three or four kinds of operator limits of matrices, and all of them gave us some theorems about laws of eigenvalues and other things, and as you know, this area is huge, so there is a lot to do, you have seen Elliot's talk where trying to understand how these tri-diagonal operators move under Dyson's brandy emotion, for example, so they have some nice progress, but there is still a whole lot to do in the area, and there are many, many open questions, including analyticity of beta, of various statistics that are not known, and so maybe I'll stop now, and if you have any questions, yeah, let me know. More questions? Yes, absolutely, so there is a very nice paper of Brian Ryder and Michel Ledoux, where they use exactly these techniques to give large deviation bounds for matrices, finite matrices, yeah, you know, it's not, they do almost the same as what we do, it's just harder to do with the finite process. Well, yeah, I mean, I guess maybe the precise term is intermediate deviations, so yeah, thank you for that question, so yes, that's another thing, this is also a nice way to deduce the Tracey-Wiedem formula, which is the Pen Leve formula, because when you write, you know, you look at this equality, P doesn't blow up, right, P is an SDE, and when you have an SDE, the probability of some SDE is not blowing up, it's actually, you know, expressed as a solution of some PDE, this is always the case, so you can write the PDE for the Tracey-Wiedem formula using this, and with some extra work, the key is that the values of that PDE are not always meaningful, because you don't really know what it means when you start your, you see, these things have meaning, right, this is Tracey-Wiedem tails, but only when you have plus infinity, so the difficulty is that you don't have an interpretation, a priori, or what it means when you put here a different number, okay, but you can write a PDE for this P, where A and this thing varies, so to that comes this, to the rest, you come to the theory of rank one perturbation, this is done in a paper with, in the thesis of Alex Blumenthal, my firm and student, which is that, it turns out that if you do rank one perturbations of these beta ensembles, then, and you push it through this limit, they just become boundary conditions, so for the rank one perturbation Tracey-Wiedem laws, you have the same thing except you put here some W, okay, so now I have an interpretation of that number for every A and every W, and I also have formulas for that number using, using Pen-Levey equations, and you can actually just plug in those formulas and check that they satisfy the PDEs, and it's easy to check that the PDEs have a unique solution, so that way you prove the Tracey-Wiedem laws, it gives you Pen-Levey directly without Frith-Homme determinants, yes, it's a good question, I don't know, I don't know a good answer to that, and probably for two you could work something out, but if you want for a thousand it would be, it would be maybe possible, but you'd have to give up some precision or something, well, if you go among, well, so the optimizing functions are the eigenfunctions, right, and I do have some idea of what they look like, they're similar to the arey functions, to the arey eigenfunctions, am I talking about, no, the optimizing functions are the eigenfunctions under this strange large deviations, yeah, sorry, so they're not similar to the arey, because this is large deviation regime, yeah, sorry about that, well, you know, they, yeah, so the answer to this is we haven't looked at it, whether we know, right, so we, you expect it to be close to what we guessed for optimizing functions, but I don't know how close, I think you could probably get something out of it by, by if you study this diffusion, then you can study this much more precisely, and there are various papers of studying these things more precisely, and getting further terms in this expansion of the, of the tail, and from those papers you could probably, if you wanted to get information about the optimizing functions, yes. More questions? If not, let us thank again Berlín for this, for a big round of applause.


Okay, so I posted this question on core cause saying does chess improve competitive programming? All right.  And this person, he told me as a programmer, chess improves analytical thinking. It improves calculation, improves visualization skills and improves patience and improves focus. Well, you know what happened? You know what guys happen is that I started playing chess and you know what happened? I just kept losing. Okay, I lost so much. I lost so much to the port where I got 357 ranking on bullet chess. And you know what about my competitive programming ranking skills? Man, my competitive programming ranking skills did not increase. So you know what?  So I don't think chess improves competitive programming. Okay.  And don't listen to this guy because to me, I still did not. It did not help my ranking. Now it may help you, but to me, it did not help my competitive programming ranking.  But it doesn't help me and I'm just going to say to other people that I would not play chess to improve my competitive programming skills. That's all I have to say. Ray cops, subscribe. I'll check you guys later. Peace.


and welcome to CityView, where we bring you an inside view of the City of Columbia. I'm your host, Alicia Utsi. In our top story for CityView, we take you to Page Ellington Park, where the City of Columbia held the National Night Out Kickoff. This year's City of Columbia National Night Out Kickoff event was truly a success. After missing last year's event due to the pandemic, both citizens and city staff were very excited about this event in order to re-engage Columbia. The event was attended by city leaders as well as community leaders. Our city leaders proclaimed the day in honor of National Night Out and a proclamation was given to both Police Chief William Skip Holbrook and our Fire Chief, Aberdee Jenkins. In addition, there were prizes, games, music, food and lots and lots of fun. This event was a perfect intro and segue prior to National Night Out, which was celebrated in various neighborhoods throughout our community on Tuesday, August 3rd. What it looks like National Night Out 2021 was a hit in many of our City of Columbia neighborhoods. Next, we take you to the Charles R. Drew Wellness Center, where the City of Columbia held the Community Job Fair. The Community Job Fair featured many local hiring employers and job seekers and the chance to participate in many career building workshops throughout the event. This is an opportunity for residents in our community to come out and see available jobs, meet one-on-one with potential employers, also go through workshops such as interview skills, resume building and dressing for success and then they can actually apply for jobs one site. We've got the SC Works van out here where people can meet with a career coach, apply for jobs and really just get connected with resources to help them get gainfully employed. Charles R. Drew Wellness Center was not only the site for a community job fair, but also for our community vaccine clinics. The City of Columbia has been partnering with many local healthcare providers to provide free vaccine clinics for citizens in our community. As coronavirus cases rise in the Midlands, our City leaders are urging everyone to please get vaccinated for your protection and the protection of your family and friends. Not only was the month of July a month where you could receive free vaccines, but also as we enter into the month of August free vaccine clinics will be held. In each one of our four City Council districts, please visit these vaccine clinics and receive a free vaccine for yourself and for family members. For more details, visit columbiasc.gov and also resilient.columbiasc.gov. Now we transition from keeping our community safe to keeping our City of Columbia staff safe. The City of Columbia recently received two South Carolina Ocean Safety Awards for outstanding safety performance. To be able to reduce your recordable incident rate by 20% from the previous year, that says a lot. Now today we're being recognized the Department of Public Works and also to the Department of Public Administration. All across the board, the City of Columbia organizations reduce their incident rate by 18%. That's included the whole organization umbrella for the City of Columbia. That is tremendous. A special thanks to all of our City of Columbia employees for your efforts in keeping our workplaces safe. And speaking of our employees, Amy Moore in our Planning and Development Services Department recently was awarded the Historic Columbia Foundation's Preservation Leadership Award at the July 20th City Council Meeting. Following a recognition of Frank B. Washington and a sharing of his bio regarding all of his accolades and contributions to the community, Mayor Steve Benjamin also greeted his family members who were present during the Council Meeting. In the City of Columbia's continuing efforts to encourage our citizens to become vaccinated, an educational effort has been wrapped around one of our garbage trucks, as well as one of our recycling trucks. The educational message is regarding It's Your Shot Columbia, which is our vaccine education message. These trucks will travel throughout the community as they pick up recycling and garbage in various neighborhoods. As citizens see these trucks in neighborhoods and on major thoroughfares, we hope that this message will resonate and be a reminder to all that it is so important to become vaccinated against COVID-19. Well, that wraps up this edition of City View. Thank you for watching and for staying engaged in our city. To watch more of what's going on in the City of Columbia, tune in to City TV on Spectrum Channel 1301 or you can watch our YouTube channel. You can also catch us on Roku and Amazon Fire TV. Please continue to follow us on Facebook, Twitter and Instagram and also visit our website at columbiasc.gov for more information. Thanks again and remember, we are Columbia.


This is getting started with testing of an infrastructure, so I'm not a developer. I'm a sysadmin that's just trying to do things better. I work in a mixed environment, and this journey started because I wanted to manage my window boxes. So this is just my journey into what I've learned. This is still a work in progress. I'm still trying to get this workflow adopted by my shop. But here are some of the concepts that I'm needing to teach my teammates about. So first, what is it and why is test-driven infrastructure worth the effort? Basically, test-driven infrastructure applies agile development principles and practices to infrastructure, bringing along with it similar benefits of minimizing risk, building confidence in the code and process, and trying to keep efforts on task and outcome-focused. With a verifiable behavior where we are checking our results against our requirements, we have an increase in quality, making it easier to improve upon, giving us confidence, which leads us to safety fastening because we're applying good practices and processes, which allow us to speed things up and enable us to be more adaptable, letting us approve upon our design. Of course, these new efficiencies also reduce IT costs. Current problems with system deployment and maintenance. Sometimes it's just a lack of process. Every engineer, tech, this admin is implementing solutions however they see fit, whatever they think is best. This can be chaotic and definitely difficult to repeat, can't verify what you need is actually being achieved, and is just not scalable. Or there's manual processes where things are being documented, there is some structure, but this is still prone to error and inconsistency, and of course documentation becomes outdated, and does introducing risks and deteriorating trust in your process. Or just poor code. You have started automating, but the automation is not well implemented. You can have a bunch of scripts that are difficult to understand and become unmentainable. Configuration management can help address these issues. Configuration management is translating your infrastructure into code. Configuration management ensures the systems are in a known good and trusted state. This allows visibility into your config, and they are trackable as you use version control for your configuration. And it also provides reliability as your configuration management will ensure the state of your systems and making your environment more predictable. This increases productivity, resulting in fewer outages, less firefighting, and less firefighting. Now that there's more, with configuration management, also now a more efficient way to do change management, giving more confidence to deploy, letting you scale faster. An example of configuration management workflow. This is Chef, but the idea is similar with configuration management systems. So at the top we have a repo where we're checking in our configs. In the blue below that we have our workstation where we're implementing and making our changes to our configurations and related attributes. And below that is our configuration management server, which is responsible for deploying these configurations and enforcing them with policies. And to the right is the node that it's responsible for. Some of the popular options you may refer to as Chef is the puppet. The newer guys already include Salt and Ansible. At the moment I've been starting with Chef, because I work in a mixed environment and they've had a good history working with Windows. They have a large community, a lot of out-of-the-box tools, and they've been continuing to innovate on their workflows. So an example of what a configuration management file may look like here is very simple. Just an action to make sure a certain package is removed. Below that we've added an attribute to be more specific to a version of that package we need to guarantee is removed. So the configuration management has a major shortcoming. It does not prevent that infrastructure code. That is poorly created and maintained. Incomplete code including things like leaving comments with to-dos or sloppy quick fixes can be unclear, leading to a code that can have unintended side effects and could be catastrophic, now reducing confidence in your processing code again. So configuration management on its own is not a complete solution. So we have test-driven and behavior-driven development to help us out. Test-driven development is a framework for managing and involving environments that facilitates the creation of highly reliable and maintainable code. It helps us maintain scope because we have tests that are written first against specific requirements. These tests, and we code against those tests. These tests provide us with faster feedback and help us reduce risk and build stress in our process. Behavior-driven development is an extension of test-driven development. This facilitates the collaboration between stakeholders and developers by describing requirements as system behaviors. So business values are prioritized because the requirements are correlated to business outcomes. Test-describing tests are written to describe the system's expected outcome. And communication is improved as documentation becomes more readable up-to-date and is readable for experts across different domains that can be outside of the team. So an example of such a test is here in the service spec. This allows us to a more readable test that is validates that our server is in its correct state. At the top we have it, like 480 should be listening. And below that we are ensuring that we have the right release distribution is actually deployed. So Mnemonic for remembering test-driven development is the red-green refactor. Just red, we're just starting with a test in a sales state. This test is also the beginning of our documentation. Green, we're writing just enough code to suffice the test. From there we can refactor cleaning up the code, change how we are implementing the solution, but we cannot change the behavior as we need to always pass that test. And we rinse and repeat as necessary. Continuous integration is a practice from extreme programming, a type of agile development to help speed up the process. We're basically going to automate test-driven development. So continuous integration is a practice of short development cycles with automated testing and automated code integration. This allows us to detect issues sooner with more immediate feedback because of the automated testing we are able to fail fast. And then changes become even faster to implement because they are incremental and verified along the way. So two notable types of testing as it relates to test-driven infrastructure is unit testing to verify the individual components that you're working on, independent of changes being made to the greater system by other members.  So a simple example of a continuous integration workflow.  The configuration, the continuous integration server fetches those changes and begins a build process to test and verify whether or not the changes suffice for the test. From there, the continuous integration server can send out feedback to the team to let us know the results. Popular options of continuous integration software includes Jenkins. It's probably one of the, if not the most popular software out there. That's what I'm using at the moment. I started with Travis CI mainly because they are a hosted, they do free hosting of this for open source projects and integrate with GitHub. Ms. Go, which is a tool by ThoughtWorks that looks pretty interesting to me and is probably next on my to-do list to investigate. But there's code review. Just because we're moving towards automating all the things doesn't mean code review should be overlooked. And as you see here, we have one character who's asking for his family to check his code and asking him to highlight anything that looks stupid. And he proceeds to highlight his face. So code review. Code review is just peer review of the source code. This helps improve software quality, ensuring if other people can read your code, it helps ensure that it's readable, which means it can be maintainable. It also helps with knowledge sharing of the source code. And new team members can observe different approaches and solutions to problems. Tool-assisted options include Garrett, Board of View, Fabricator. My examples are just to give you an idea what's out there. There's tons of available tools. As far as for code review tools, they act as gatekeepers for your commit. But they can assist with comments and discussions, audit and tracking, and help visualize this to actual test-driven infrastructure. So with test-driven infrastructure, we have documentation. This is the first step. Usually we start with documenting what our requirements are, including the components, versions, how to actually install, and then we move to writing tests, which will describe these requirements and ultimately become the documentation. And then we script. We script towards these tests, and we're not trying to do anything extra. We just need to make these tests pass. And another important component is being able to audit and track the code, which is where version control comes in to play. And the process is continuous where we're automating testing and changes, and if they pass, we automatically integrate them. So a workflow that I've been, that I'm the way I'm currently using it right now, there's no exact way to do this. Some people don't even do code review. So there's no 100% way to do it, but this is what I'm experimenting with at the moment. So I have my configurations in my get. I do a fork. And going the wrong direction. Do a fork. Code, code just enough to... The coding includes writing the test. So I write the test and I write the code to pass that test. I commit, and my commit will trigger a get hook that will call out to my configuration, my continuous integration server Jenkins in this case. It will push the job out to the appropriate place with the appropriate tools to run the test and send them up in the test environment, which can be a container, VM, Amazon instance. You can pretty much talk to anything you want for your test. This does not have to be your actual production-like environment just to do your initial test of your change. And then we get notified whether or not it passed. You can go to the IRC email, carrier paging, whatever your team is using at that time. And if it passes, I have Jenkins issue a pull request. And then from there, it is ready for code review, and if it passes code review, can be integrated. So continuous delivery. Continuous delivery gets your code actually to your staging environment. The practice says continuous delivery of changing. The continuous delivery is the practice of delivering every change to a production-like environment. This increases the ability to adapt as we are gaining more feedback faster. This also increases reliability as every incremental change can be observed and lowers risk as a result and is a path towards getting to production faster. So what that would look like is here we have just passed code review and the pull request is being committed. Then we call out to our continuous integration server again, pushes out our test, but this time it makes sure it spins up our test. Now integrate it with the rest of the master branch and everything else that we have that's been deployed and spins it up in a production-like environment. From there, again, we get our feedback. And if it passes this time, we actually push out to your configuration management server that is responsible for the staging environment. Continuous deployment is taking this to the next step. This is actually automating the process all the way through your staging environment to production. This provides us with a quicker return on investment because we are getting to production more immediately and we have faster client feedback. So if you break something, you should know pretty fast. So continuous deployment workflow is just, like I said, going through from our dead environment to the different staging environments, QA, whatever is necessary for your team. And then automates it out to production, which is the key difference for clarity. Continuous delivery can automate you all the way up just before getting to production. Continuous deployment is automating that final step. As my research, I found few people that are actually able to achieve 100% automated workflow like this. But options include plug-ins for Jenkins, like workflows, pipelines, Chef having native tool called Delivery Truck. Go has this idea built in from the very beginning, hence why I kind of want to investigate them. Pipelines are just a series of stages to provide you visibility and feedback in the workflow. So challenges. This all sounds great that I want to implement with my team, but why this won't work? It's a cultural shift. I have to get everybody on board to change their workflow. That's also a time investment. That does cost money. And it requires full adoption. So if people are not writing tests or they're writing too many or writing tests without the proper follow-through, it's not going to work. Or even if they're trying to, but they're not writing good tests. Either they don't know what to test for or don't understand what they're testing for or overlooking what needs to be tested. Or just writing things that will pass anyway because they're testing trivial code or their tests are trivial. So in conclusion, test-driven infrastructure improves reliability because we have a test-first process. And those tests help produce current and readable documentation because of automation. We have an increase in speed and we have an increase in productivity because our tests are helping us to maintain scope. And we are more adaptable. We're doing less firefighting. We're able to get feedback faster. And all this helps reduce the cost. So for more sources and information, I provided several links. I forgot to mention the slides will be available. I actually got a link at the very end for my slide deck. And thank you. I just do want to do a shout-out to Ned Harris of Chef I.O. because I picked his brain a lot for getting started. I had a lot of trouble getting some of these concepts and terminologies defined. So yeah. And you can follow. I'll tweet out the link for my slides in a little bit. Also, just the QR code will take you a link to my page where I'll be putting up more information about this talk. There's already a link to the slide deck there as well. I know this was a little fast. I got a little short on time. So I'm more than willing to take questions later on out in the hallway or whenever. But I think I'm about out of time. Thank you.