What we want to do is some name and I think you get the message so first we have talent on the on the scene as you've seen in different areas and sectors And this new generation and I see it Day-to-day in my life you you witness it as well Needs a purpose you can read it you can experience it yourself And I think they are part of the solution. I hope we could show it to you and and We have it's part of the solution by the way for us not only to explain all the rational aspect But also to put more emphasis on the purpose So I would like to open the floor to questions on the technical aspect of climate change but also on what this young generation is expecting and How they would like to engage with you as you show in the case of Lyon the call for diversity the four call for Finding a solution all together, which is part of the solution open for question Yes, I Wonder if it's not too rude if each of you could tell us how old you are We heard 25 so you don't have to say it again You should not have corrected So not quite as young as the others at 37 I'm 35 And I was not part of your question So, yes, please This is just a wonderful moment. I'm very touched with your lineup of Future leaders of the world Congratulations on this panel. My name is Tatsumasa. I'm the mb professor in Japan also Germany London of captain Fercot captain London. I need your advice please I Belong to the energy envelope workshop. We had a long debate on how to narrow the generational gap on climate change perception and we came to an idea next year in UN climate summit in September 2020 We will respond to Greater Thunberg's challenge with something concrete measures But do you think this is a great idea for our generation to do to breach the gap with younger generations or You have second thought. Please give us advice what to do. Thank you I'll take maybe another question. Yeah Thank you everyone great presentation very enlightening. I just want to add something because you all spoke technical I to give the the the subject a bit of a geopolitical perspective The climate change has a political implication I'm a specialist on Syria and what led to the Syrian crisis, of course, there was corruption oppression You name it, but there was a drought You know that came to Syria that year and of course the government is inefficient and oppressive and doesn't care that led to 1 million people 1 million people in rural area to be Driven below poverty line and they went to the to the cities You know in suburbs in and this what led to major discontent and this was the spark for the revolution also a lot of a lot of Inter-tribe Intergroups fighting in Iraq is on on on areas that have that have water So what I want to say the climate change is not in our health in 50 years It's also leading today to political Unstability especially area like Syria in Iraq, which is the most arid area after the basin of India Every seven years they have one year of drought and you know, we don't have any efficient solution I want to add something, but there are I mean you spoke jihad spoke about about water scarcity Well, there are solutions. For example, they make Kong River You know Laos Vietnam and Cambodia they did the rotation presidency where the the government of the three countries discuss among them and Source project to better benefit from this water. Thank you another question Yes Hi, my name is Manu. I'm from India. I have a question for Peter So it's a difficult one. I don't know how to articulate it really So I study international relations. Yeah, so they trained me to be Thinking as a realist. Yeah, so my question is would it be better not to talk about the profit motive? you know and See climate change or the combat As as an industry the reason I ask this is again coming from maybe a cynical point of view that I draw an analogy with What's happening around the world when you speak of war? They say war is business One of the reasons we have constant endless war is the military Industrial complex. So I asked this question because would you say we have the risk that Somewhere down the line. There are interests, you know that rise to almost sabotage the Objective behind the scenes because it's business. Okay, so three sets of question one on the generation and Gender one on geopolitics and one on finance.  Let's start with you Jan. It's easy Give time for the others Yeah, I'm completely aligned with you there were the effects of climate change are already there and we see them in Africa more than anywhere I Referred to the Deforestation, but there is also the desertification That is happening today the soil is is growing and it's leading actually the growers the to move their Heads down south and They move down south to the agriculture lands and actually now there are a lot of troubles and tribe conflicts between the growers and and the farmers and leading to extreme Violence, especially in Nigeria, for example and also in north of Mali And we also have the problem as you said of drought and we had it in Africa like that in the last two years in Australia and East Africa and the effects were dramatic the the prices of the crops increased people on extreme Poverty and couldn't couldn't afford to to feed themselves But to be able to have innovative solutions like the one we referred to for example in the Mekonga River It will be possible if you were we had more geopolitical stability To be able to do that we need to talk to each other the countries and to build alliances and And this is it actually operationally very complicated today But I hope that's because of the urgency and the momentum at some point our Heads of states will realize that there is an emergency to and that we need to talk to each other and to find solutions because it's It's a problem that is concerning everyone and everyone will be facing. It's the end of the day James maybe a compliment. Yeah, so to the to the first question in terms of what can be a concrete measure that you could bring forward Again, I think we're all looking for that. I would just encourage you as you think about those concrete measures Think ultimately about about the issue of inequality and this is what I was trying to touch on mostly is that it Ultimately, you need to think about how how can you enable people to actually use those measures? There's one thing to to have good policy. There's one thing to have good tools But if people in the end aren't able to make use of those if people aren't able to internalize those because of other externalities because of the concern for you know The say their safety there their their safety or security in their work They're just not going to get there those tools won't actually be used as efficiently as you hope they will Thank you. So Peter on finance, and then I will ask Polina because I'm sure she's a different I have a rather direct question to me so So I kind of wanted to touch on some of the generational Conversation to is because I wanted to use actually a very personal example is that you know Trying to narrate what we do is so fascinating right now particularly with invention capital particularly with old venture capitalists and Convincing them that they should invest follow-on finance and our portfolio companies So there are two different languages that I find myself speaking One which is about my conviction about how we should consume less We should do all of these different multi-prong approaches and I can focus on the impact slant of things Interestingly not all of mainstream venture capital cares about that So to some degree I have to then go from talking to an entrepreneur who is very inspired about what they're doing And have so much conviction around that and then I have to put it on a very different hat and go talk to The endresons of the world's the founders funds of the world's these different sorts of investment funds Thankfully, all of those firms actually are forward-looking but you know The other thing that I wanted to touch upon about is what motivates people You know, we're all motivated by quite human things desire drives love power all of these conflicting and and at the same time, you know strangely compatible drives and What I notice is that Some people are responding better to the narrative when I start talking about money Because it is a better anchor for them psychologically and ideologically And so I want to show people. Hey, you can have both I just try to figure out who my audience might be To give them to to understand or to to focus on what might motivate them and speak in a language that meets them Where they are Thank you Rational view Polina so I would like to touch a question about Young and old people. Let's I don't know old is fine to say like this but What I want to say if you are talking about a human extinction. It's not about old young woman Man, it doesn't matter. So we all should unite and fight it. I Mean, why do we need to plastic bottle to fill up our cups here? Why we cannot fill up it in advance and bring I mean from the cafeteria. Why we make a lot of waste so we Yeah, they're all different. It can be different approach from government But if you have some power in Government so influence on it if you cannot influence 25 years, you're trying to push some law. It doesn't work. So go to plant trees at least you will put some positive step in there in our planet and You will do Something good or okay, maybe a political Sphere, it's not for you go to be engineer and Place a PV models be built wind turbines. It doesn't matter what just to find your best way where you can be useful This is what I think So Xavier on this question on how you mobilize across because you present us the governance the National Committee and then what about Generation gap or diversity? I I think this question is very interesting because on the citizen convention I think 25 25 percent of the people are retired So you have to go over the generation gap because otherwise there won't be no decision in the end I think One of the most important thing that people let's say elderly can testify about is how the life improved Over the course of the life Because the carbon that we use we have used it to to improve our lives to to eat better to be better to have better health to to have more Transportation and the youngsters they probably don't realize that that's also probably the reason why they don't understand Why the elderly are more attached to the way they live today because they have Realized how they lived yesterday, and I think that there has to be a discussion about What we can? Maybe as you said Abandoned like plastic bottles and I don't know the factory that you have big huge huge car and a big house Somewhere far from the city and the things that are that really matter because unlike my neighbor I'm not completely sure that technology can produce the entire Solution and especially technology without regulation that would be able to Generate money out of the air So out of the alien you make money out of the air We make a lot out of the polluted air Also wanted to tackle the question of the generation gap and participating in this Conference I realized that I also have a personal generation gap So I'm still a Chinese citizen. So in my life I didn't have the opportunity to vote for any political party and for a very long time I wasn't really interested in politics up to the point where realized that Voting is not the only opportunity to create change to create innovation And I think that's also where the younger generation Sees their opportunity that without a vote they can also participate and in a dialogue create change and From personal experience. I can also say that in our company For instance our CTO he has worked for the automobile a mobile industry for over 30 years and At a certain point he got the realization that this is not what he wants to do for the rest of his life And what he wants to leave for the next generation. It was also his personal experience that drove him to our company and This again makes it possible to learn from the older generation and learn from their experience on how you can create a sustainable future Thank you Yeah Yeah with that, please first of all, I just want to say it was Deeply inspiring and thank you all very much For what you contribute to Let me throw the policy challenge at you and we do plant trees person, but but let me throw the policy challenge right now there's roughly 5.9 to 6.2 the numbers aren't in for 2019 Trillion dollars being paid as fossil fuel subsidies today If you want the figures you can get them on the IMF website The problem is about 75% of those subsidies make energy Provided by existing energy utilities Affordable for people who can't pay market prices for about 75% of that 5.9 6.1 trillion One problem. How do we shift? That Package of subsidies which would make a real difference in terms of creating alternative technology solutions and Potentially make some contribution towards changing behaviors. Your point is very valid How do we shift that into energy transitions that actually focus on deep decarbonization and increasing use of renewables 0.1 0.2 right now we've got about 2,000 gigawatts of coal-fired plants That are less than 12 years old The capital cost involved in those particular investments today is gigantic and most of it is still Attracting debt service obligations from either the countries or the utilities that put it up in the first place How do we deal with that problem in the context of energy transitions? It's not that we don't need to deeply decarbonize and to shift vastly towards more responsible lifestyles and To the extent that we're going to rely on fuel for electricity and and mobility Increasing use of renewables. It's how to do the transitions. That's the challenge You're all making a contribution to it Precisely because you're doing that I'm throwing out the bigger challenge to you not because I expect answers now These are really tough questions, but just because that's what we all collectively face If we actually want to get down somewhere close to that 1.5 degree level Thank you I think it shows how seriously you are taken given the size of the challenge. Thank you for the point Maybe we'll see there is another question and I'll come back on this because I think it calls for another thing Is how do we carry this conversation forward with the talent we have? I don't like you I don't think we'll have the answer right especially in 2.47 2 minute 47 seconds But it's how we carry it forward and it's a challenge to some name and myself is yes I think part of the team we have here and others young leaders we have brought in this could work on this and Uncome with proposition we your last question in particular have been discussed when we have prepared this session and Unfortunately, we acknowledge that we didn't have a proper answer But it is acknowledged so to your point so agreed another question Please be kind. Thank you Another young leader that can contribute to the answer Well, first of all, thank you so much for your presentation. Very exciting very inspiring I'm I'm always I'm less skeptical than Xavier about technology I have high hopes in technology to help us move towards new business models that are more like circular Economy style or that help us live with the consequences of the pollution But for now whenever I hear about all these fantastic innovations, it's still very localized or regional and my question is What should be or what could be the next steps to move from? local fantastic innovation to more widespread all around the world Thank you wants to comment Yeah, I'll try to give my share my thoughts for the your question sir on the challenge the policy challenge I think that it's Almost impossible to solve the equation of one securing that the Middle-class Population still can have access to transportation and then to the carbon taxes and we see with the example of friends What happened when they they took off the carbon tax, but at the same time We also need to invest So for me, it's not a shift of the budget I think that we have to realize that we need to spend money and more money and more debts to be able to address that problem and I think that If it's more that today, it's gonna be less investment tomorrow to try to solve it's gonna be too late so better in spend the money now and and try to to push that transition without Harming in the livelihood of the population It's controversial, but I think that that is necessary in this case Thank you. We are at the end of the time. So I thought a couple of other questions You still have the opportunity to engage with our young leaders I think on the last point we take the challenge to build something and structure something maybe not be for one year but in preparation to be discussed with Terry how he wants to handle because Big challenges are thrown to our young leaders and I think we should say yes to taking the challenges Always say yes and then get back and surprise you with the answers. Thank you for your participation


squad attacks utilizing all infantry level squad weaponry. Make sure the squads are better adapted towards squad attacks as well as making sure that the Marines and sailors in this training are able to conduct squad attacks on large populated areas. Every bit of training is going to be another rep in as many times as you can push during training as many times you can push a berm push a bunker get the Marines behind their 320 grenade launchers as well as their smalls or just overall weapon systems that's always going to benefit training and it's always going to make us well rounded to better adapt at what we can do.


Bryce Harper thinks this umpire is too soft to be an umpire. This breakdown is brought to you by Scott's Miracle Grow. Let's get into it. Top of the third. Phillies are up for nothing. There's two outs. 0-1 count. The next pitch. Fastball outside. Evens the count. 1-1. Back in Bryce's favor. And then he doesn't swing at that curveball. 2-1. He's working the count. This next pitch is pretty big. 2-1 pitch is very big. I'll show you the stats in a second. He's going to go high fastball. And the ump calls it a strike. And Bryce is like, come on, man. What? Here's the pitch. And it's high. Data says it's out of the zone. Now here's why the 2-1 pitch is the most important. These are MLB league splits for the year. After a 2-2 pitch, the average batting average is 182. A 2-93 on base percentage. A 2-98 slugging 5-91 OPS. But after a 3-1 count, the numbers get a lot better. 2-52 batting average. Look at the on base percentage. It goes from 2-93 to 5-94. The slugging jumps up and the OPS nearly doubles. So the 2-1 pitch is the biggest swing pitch of an at bat. And when you lay off a ball that's out of the zone and the umpire calls it a strike, it really changes the at bat. And if you go even further and look at just teams, after a 2-2 pitch, the Phillies, they're 12th in MLB with a 6-04 OPS and a 3-08 on base percentage. But if you look at the Phillies after a 3-1 pitch, they're the second best team in baseball. A 3-02 batting average, a 1.195 OPS. Let's go even further and look at Bryce Harper's splits.  It's not the same. It's a 2-78 on base percentage. So that pitch being called incorrectly in that count is the most drastic effect a single pitch can have in the swing of things, besides maybe the first pitch. So that's why Harper's like, come on, that is massively different. Now the pitcher gets to throw more junk and dance around the zone and entice Harper to swing, and he's going to throw a really nice curveball that just goes, whoop, bam!  Toss him!  No, that's not a strike, and the umpire just ejects him.  What? He's like, I tried to tell you. I tried to tell you. I don't know how he could have warned him in time.   Poor coach going Dean Porton on him on the way to the penalty box. Hey, don't touch me.  I didn't say anything. For what? You're soft. I'm allowed to throw my stuff. He's actually not. He can get fined for it, but usually they don't get ejected for simply that. I don't know what he said. If he said the U-word, whatever, but now Harper says, you're soft. You are so soft.  That's how it ends. Bryce Harper giving some career advice on his way out. Recently, my career took a little bit of a turn. I started doing play-by-play for 11-year-old Wiffleball games. Scott's Miracle Grow had me out for Scott's Lawn Stream. They're doing a whole Lawn Stream Fest, and I kicked it off by doing play-by-play for a Wiffleball game on the live stream, which is the Lawn Stream. They have a whole series of live backyard events. I did Wiffleball. They got Cornhole coming up. They're building birdhouses. Right now, you can get 20% off on two or more Scott's products at scottes.com when you use code Johnboy. Thanks for watching, guys. I appreciate it. Enjoy your days.


Hi, and I'm not going to talk today. There is another talk tomorrow that I will be leading. So please join us tomorrow at half past ten In training room 2 2 we're talking about open secret or Kubernetes operators as well You don't have to type the commands in You can just click on it. So if you've even got an Android tablet, you can still do this iOS tablet Sorry, it's not working So I can just click on that and it will run it. So it's very simple to go through this Okay, so just read click and you don't you don't have to worry about trying to copy paste anything or enter in by hand And that's it This is this running on overshift. We've also embedded access to a web console in there So that you can play around there and look at what's happening as well The web console is not used in the workshop itself. It all the workshop is done using command line only But you can go through and dig through there if you want And just a little trick you can drag this left and right Whoops You can drag that divider left and right now. I've marked up all my screen to make it So you can see it better But just get on a little and in a minute I'll just start going through it myself once I sort out my laptop and and get this other head set off Okay, so if you came in late and you want to do that That's the URL you can go to if you actually want to do this yourself But what I'm gonna do is I give a bit of a Short slide deck and then I'll go through and step for it myself Now Kubernetes, this is what we're demonstrating today It's the some fundamentals of using CUDA metanese using the command line to deploy an app you're going to go through and Deploy a front-end web web application Which is a blog site using Django and you're gonna have a back-end database and you're gonna go those up together Make it visible public so that people can use it Initialize the database and that's what the exercise is about So Kubernetes Presume you here because you have heard of it now when we get into Kubernetes Your head can very very quickly explode. It's a very complicated system when you look at the whole ecosystem And there's a big steep learning curve one important thing to say about that is that Don't expect to understand all of it. It's like a Linux operating system You don't go to Linux expect it to be able to learn all of it Kubernetes is the same Take the attitude that you're going to lose learn a piece at a time as you go along Because you'll never learn everything about it. Okay But what is Kubernetes and what it's all about and what is it trying to address? So obviously containers is the big buzzword in the last few years which Docker May very popular because they made the idea of packaging up these applications to these things called containers and running Running to an image and running them in very very popular When you look at What that technology is about we've come from a history of having a virtual idea of virtualization Which is the idea that you can run up machines multiple instances of machines within one physical machine in each in their own little compartments now containers is essentially the same basic idea But it's intended to be a lot less overhead because when we talk about virtualization We each of our little eyes sandboxes are running a full operating system when we talk about containers. We are only running The processes of the particular application you want to run So you don't have all that overhead of the operating system in each of your little isolated containers You are making use of the fact that underneath your container runtime There is just one operating system running which is being shared across all of your containers So containers is just a fancy way of putting a fence around a processes for your one application And that makes a lot more lightweight than using traditional virtualization So the general flow if making applications run in containers is that you're going to take a set of instructions of What steps need to be run to take the bits and pieces you need for your application to build into a package what we call an image It's like a glorified table So you might say that I need to have these particular operating system packages available I need this particular language runtime And then you're going to need all the particular packages for that language runtime So our case we're using Python application in the front end. So I have to install all the Django bits For that as well because I'm using Django web frame it So you're going to build that into using that set of instructions You're going to build up your magic table or image and we're going to put that up into an image registry a Place essentially where we can store that and get access to it then to deploy it Somewhere So the next step is whilst we built our image We're going to take that image pull it down from an entry tree to a container runtime environment And we're going to run it and that will run up your processes inside that container So essentially that's what it's all about Very lightweight of doing containerization Compared to virtualization where you're just running up your own application processes Now running a single container is quite easy Okay, Docker made that very very easy so that on your laptop you can just go Docker build Give it the set of instructions in the Docker file. It produces your image. You then go Docker run Great apps running The problem with that is that when you want to start scaling out your application So you have multiple instances of it even on your own single machine or across machines So that you can distribute many minutes across a big cluster of machines That's when things get hard and problems can start to arise if you try and do homegrown solutions yourself With Docker alone You're gonna have lots of lots of problems You're gonna have to solve along the way and it's gonna be a lot a lot of work And this is where Kubernetes comes in Kubernetes is a What's called a container as a service platform Essentially, it's providing you the smarts to be able to manage a set of machines And now each one of those machines will have a container runtime on it where you can run up applications And Kubernetes is going to manage for you all of those different machines And so when I want to deploy an app now, I can tell Kubernetes here is the image for my application Which I have packaged up. I need this many instances of it running and you tell Kubernetes and it will worry about Where to run it on which nodes in our cluster. It'll get up and running for it It will manage them look after it if instances my application die It will replace them it will migrate instance between nodes if it needs to because a node has gone down or it's getting Too much memory resources on it being used and it needs to rebalance it can manages all those things for you So whereas before we're doing straight Docker that would be a quite complicated process because you have to Write a lot of stuff to manage it Kubernetes is going to manage it all for you So that's what Kubernetes about how it fits into that that story of containers So that's all I'm gonna do with the slides that just sets a little bit of context for you for those who are following a lot of going to follow along rather than actually doing on the So I'm now going to go into the slides now just very quickly for those who may have come in late If you if you really want to do this because it is a hands-on workshop. Why am I having so much trouble with the mouse today? Okay, if you really want to try and do this workshop yourself to hands-on workshop you can go to that address you'll get a Blue button come up saying start workshop. Just click on it and you'll get to see this particular Workshop environment. So I've got here showing here and you'll be able to just go through And do this yourself. Everyone got that now who wants to do it? As I said, we're gonna leave this up for a day and the cluster automatically get destroyed So you can come back and do it later if need be How's that showing? Is that not too small? Okay, so I already said a bit about Kubernetes. So I'm gonna skip some of these initial slides The Kubernetes cluster we're using today is actually OpenShift. So OpenShift is a distribution of Kubernetes Which provides that container as a service functionality that Kubernetes provides But it actually builds a whole lot of stuff on top as well. Now Kubernetes is viewed as being a a more of an operations platform OpenShift adds on top of that extra functionality Part of that is what people would call platform as a service Which is an easier way of of deploying apps. It has in there support for Running CI CD pipelines using Jenkins Has support for being able to Take your source code and build it into an image for you So you don't have to worry about actually generating all the instructions and that's a thing called source to image So it has all these extra features in there that is still a Kubernetes distribution So we're using it today and the exercises all you're going to do is use the kubectl command line You're not even going to use the OpenShift specific command line So all the things you would do here today because OpenShift is just a Kubernetes distribution you'll be able to apply somewhere else and When you go through this environment, you've automatically got access. It's all been set up for you. So you don't have to worry about that So What I'm going to do first is I'm going to deploy my whole application my front-end application and my database And we'll see what it looks like and we're going to destroy the front-end and then I'm going to step through Deploying that front again front-end again It's step-by-step and we're going to explain the concepts of the different components I'm going to deploy which create my whole application so that you can see how all those things fall together So I have two two directories here one which is containing my my database code Now when we talk about deploying apps to Kubernetes We're going to provide it with a whole bunch of configuration For different things that can be defined using YAML or JSON. I'm using YAML today So in this directory, I have four different config files for my database backend Which are the bits and pieces of the different components to deploy So I've already pre-created them. So if you do have them already existing It's actually can be very simple to then get an app deploying in Kubernetes if you already got them It's it's creating them, which is the hard bit in the first place So I want to know what's going to happen when I deploy this There's a command in Kubernetes in kubectl is kubectl apply I said she can give it that configuration and it's going to take it and it's actually going to deploy my app based on What that configuration is so I want to see what that's going to do now I can supply this dry run option which says go and Pretend you're going to do this and tell me what you're going to do So all that directory had was these four files each of them had different resources Describing what's required as a deployment the system following claim a secret and a service But we'll get into what's inside of some of this So I did a dry run this time I deal for real I'll go and deploy that That is gone and deployed my application For the database and if I flick over to the web console we can see that is currently being deployed So that'll just take a take a moment So back over here from the command line we can also monitor the status of the roll out there We can use this kubectl roll out status and it will just monitor that deployment as it happens And and once it's finished setting that up we're done So we know we can move on So deploying apps when you've got the config already is really simple This is it's the creating of now. We've got our front-end app as well same thing I have a directory which has some different resource files in there and I can Just deploy that one as well, and I can monitor the the roll out of that Now while that's happening Let's dig around in this this console a bit more So I've now see I've got two deployments in my my project or namespace now when you work in Kubernetes You can it's not just one big sandpit You can actually compartmentalize applications under what's called namespaces So that way if you've got a billing system You might deploy that in one namespace if you've got a web forum Another namespace and you can work with them independently in this particular environment. What's actually happened when you went to that?  You don't have your own cluster You're all working in the one and you can't see anyone else's applications that they are deploying Because that namespace or project provides you a bit of isolation from everyone else So this one should be up. So the database is up and running now and the Web front-end as well Now in this particular case Because the resoft definition it's got everything we needed it has deployed the database We deployed the front-end front-end database already been linked together So the front-end has the credential information for the database. It knows the name of it knows how to contact it We've given the front-end web application a public URL So we can just click on that and we have our front-end working Now there's nothing nothing currently showing there in the way of blog posts because we haven't loaded the database of anything Now these resource files if I go back over here Well These resource those files went on to create these different resources you saw there and This this comes where You know, this is where the part of the learning curve starts with Kubernetes and things get very good Very can get very complicated and messy, but everything in Kubernetes is driven by these resoft definitions Essentially they say what just my application needs to look like and Kubernetes essentially Makes the deployment agree with what your your resources all time. So there's some key commands in Kubernetes, which is kubectl kubectl get another on kubectl Describe which you'll be using a lot when working with Kubernetes to find out what the state of your deployments and everything else so we've done two Deployments here. We've done a front-end and our back-end. So if we say kubectl get deployment it can show us our two deployments We can also zoom in further and and actually look at particular one by name So here I'm saying I want to look at the deployment for just the blog And if you want more information, that's when we can start to use kubectl describe and It gives you a lot lot more information about the state of your deployment just that one resource If you want to get even more complicated now, we started off with a YAML file for our description you can actually get back out that YAML file which was loaded in and That's actually a lot more in there than what we started with and that's because when you create the deployment You create a minimal deployment definition in yours and kubectl will start filling that out with other information be they defaults for particular deployment resource resource memory and CPU based on Quoters that might be or limit range what's called limit ranges that might be applied to your program project So it looks complicated But what we're actually going to use to create this in the first place is a lot simpler than that and as well as the YAML you can you can get JSON as well. I personally hate YAML. I always prefer using JSON But everyone seems to like using YAML for blog posts and documentation. So I use YAML for this So we have a project here which has multiple applications in it One of the big problems with kubectl is how do you know what belongs to what? These resources that we're creating do have names associated with them So with the blog front-end was called blog the database was called blog-database But it's complicated and messy to be able to deal with multiple of these raw resources at the same time You have to use the names all the time. So a very key concept that exists in Kubernetes is the ability to label things This is not just for you to be able to make queries based on your resources to get information out Those labels are also used by Kubernetes internally to draw relationships between different Things so the deployment that's just saying this is the image I need to deploy and get running in a container But I need to access that so we also need what's called a service Which we'll get to in a moment and you need you've got a relationship there between it So you're gonna rely on these labels So the labels are something that when you create those resoft definitions you need to put in yourself So you need to make sure you set them up in the right way so you can do these sorts of queries to make it Easy so so I can this case can make a query using kubectl get to get the deployment for My front-end application by using a label And one very very useful thing one very useful Useful labels is deleting things now. I want to actually delete my front-end now so we can go back and do this again but my Deployment for my front-end wasn't just that deployment object It was also a service object an ingress object at a persistent volume claim And I need to delete those all at once I can delete them by name But it's much much easier to use these labels to lead it so I can just run kubectl delete Deployment service ingress secret PVC give it a label and I've gone and deleted all that application. It's all gone So we can now start over and we start looking at these things now piece by piece. I Lost everyone already. How many is actually doing this actually in the workshop? Having no problems So what we're going to do now is going to deploy this front-end in pieces We're going to leave that we've left the database alone. We're going to leave that one there We're just going to redeploy the the front-end So what we've got starting out is this deployment resource. So it's big hunk of yaml It has a name blog has these labels blog again And inside of that is then has what's a template which essentially? Defining what that deployment is to look like so we have a name of an image in there which we're going to use this for in this case It's this open-shift Cata Cata blog Django Pi so that is the image. I would have built previously from my Docker file So it has all the bits of my application unit my runtime and everything in there And that's sitting up on a registry in this case. It's sitting up on a registry called Docker hub and that image is On the internet and I want to deploy that So my deployment says that's the image. I want to deploy I'm saying that it exposes a uses a port 8080 for being able to access it for my web traffic I need to set some environment variables for the Weather databases credentials for database and other bits and pieces. I have a volume definition next I need persistence storage. So that has all those bits and pieces in there Now in this case, you know, I've created that I knew how to create that if you've coming along and Have never used communities before what most people do is they'll go find some article documentation and go I'll just cut and paste this I'll change the image name and and then use it and hope it works That's honestly that is actually how most people would be doing this Kubernetes does provide you a little bit of assistance, but not much on being able to create these deployment objects And they have two commands for this this first one called coupable create deployment and essentially you can give that The name of your image. Do you want to run? And it gives you a starting point Now unfortunately, that's not really complete Like there's no port in there. How do I do that? There's no environment variables There is another one which can get you slightly further Which is Coupe cuddle run blog and if I run that one, you can see I can get a bit more information So I can define a port I can set up an environment variable. I can Say how many instances of my application and number of replicas I need So you can use those to sort of create a skeleton where you can start out with that to be honest You're can't avoid in Kubernetes having to drop down and start playing with YAML or JSON files to deploy your applications That's again where that learning curve gets very steep very quickly But we'll start out with this second month as starting point and we will Try and add bits pieces to it. So I've already Taken that that one there from that Coupe cuddle run. I've dumped it in a file in my my directory here and I'm gonna Again use my Coupe cuddle apply now You can just use Coupe cuddle apply and give it a single file It's actually possible to have one file which has whole list of resources in there And you can have everything in one file now I've used a different strategy here, which is to have a directory where each of my resources is a separate file There's different ways you can approach this you can you can go to that and there's a link in in the notes there off to where there's a Discussion on the Kubernetes documentation about the different ways you can do things because with that Coupe cuddle run command I Did a dry run option just to see what it would create if I left that dry run option off It would actually go and create that resource in Kubernetes and actually get my image deployed And that's what's called an imperative command essentially you're making an action essentially telling I want to do this and it's going Going to do it The problem with that is that when you do it the only record of your configuration exists in Kubernetes So if I want to make changes, I have to then go edit in Kubernetes Now you can do that as a Coupe cuddle edit command, which allows you to edit But how then do I reproduce that on another cluster? You sort of like got to extract it and move it out. That can be a bit of a problem moving Configuration from one cluster to another so they're much better ways to always capture Your configurations in a file in the file system get it under version control so that you can track it So that's what I've done here. I've got a directory in there With my files in it and I'm going to have one file per resource instead of one with lots in it So I can just then she go Coupe cuddle apply give it the directory and it will go and deploy that So I'll have that deployment now Popping up over here again, but it's just a deployment. I'm missing my other bit. So let's let's Move on to those that's that's running so I've got my Image my application deployed. It's running in a container. It's just not terribly useful yet because I can't access it But let's have a look at the what's happened here first So let's lose our Coupe cuddle get command and we're going to list there Now I created a deployment resource, but you'll actually see that there's actually been a lot of other things created in there It's also created what's called a replica set and some pots now What that deployment object actually is is it acts as a template? So when I create the deployments acting as a template for the creation of the replica set The replica set is in turn acting as a template for the pots now You remember I created that deployment initially saying I wanted to replicas So the two things you have here is the pots the pods represent the instances of your application So I have my two instances there the replica set. It's like a It's like a little bookkeeping management thing in some respects It's it's there to drive some of the Mechanisms inside of Kubernetes which manage pods. So from that replica set Kubernetes will monitor replicas sets It's from that can see are you want to actually deploy that application? How many instances and it will then manage the number of pods it'll ensure you've got two replicas running There's some magic little things going on there internally I won't go into too much. It's just to sort of get you the idea that these things are happening So yes, I look in there if you did look at the replica set You'll see that there's a lot of overlap there with what was in the deployment And I said that's because it's acting as this this Deployment is acting as a template for the replica set and And similarly I can look for at each pod and I'm just looking at Hey, I've got both here same thing It's you'll see a lot of overlap because the information is flowed through so a pod represents an instance of your application The replica set is essentially a configuration a synthetic synthesize one which Kubernetes used to know It has to monitor application and keep how many instances running all the time So one of the things here is in that deployment We set the number of replicas now, and that's why we ended up with number two ended up with two so you can One of the good things about Kubernetes is that scaling apps is really really simple It is purely just that number in there which controls in the revincents that I got I don't have to go and create new resoft definitions for each instance that deployment replicas set Pods that flow means I just all I need to do to scale up an application is change that number of replicas So we can do that So I can run this command Kubernetes scale deployment replicas and and it is going to start up a new one You'll see how it's starting up my new instance there in a new container. So if I keep doing this command I'm now up and running Now I haven't had to make any decisions there about where that instance runs We're running a cluster here with 20 nodes because frankly we had no No idea how many people going to turn up. I asked the organizers how big is the room you've given us? 200 300 people and we had no idea big to conference was so we could really be cluster much bigger than we needed But I didn't have to make a decision about where that ran that Kubernetes knows I want free replicas. So it will look at What requirements my application may need if I've defined it in terms of how much memory and CPU it needs and it will Look at what resources are available in that cluster and it will go okay I've got a node over here in my cluster, which is got lots of resources available I'll go and start it over there and you don't have to worry about Now when I ran this cube cut or scale deployment or scale command I was modifying the Deployment resource definition inside Kubernetes. Now you remember what I mentioned before about difference between making edits in Kubernetes and keeping them in files My local configuration is now out of sync with what is in the cluster And this is where keeping your files is good because if someone does a mistake like that You do need to bring it back to what it was before I can actually go back and run the exact same main command I run before to deploy it and say Coupel apply again. Here's my directory of files Kubernetes will see oh actually you want to go back to that and it will go and Do what I essentially bring the state of the cluster my application the cluster back to agree with what my configuration said So it's already scaled that back down to two Because my resource file, which I'd used only had two in it. I scaled up to three manually. I reapplied the config It's put it back to two So this is why it's important. It gives you that ability to reproduce your deployments So always use the config files in your version control Rather than trying to make manual changes like manual changes in Kubernetes is fine in development But production the ability to redeploy things always use Okay Now I mentioned a bit about Kubernetes making decisions about where to run things one of the things I mentioned earlier was the fact that if An instance my application will die Kubernetes knows how many I want so it will take care of ensuring I already have always have that number So I'm watching here the the pods I have there Running already for my instances. So if I actually go and delete one You'll see that my pod is terminating and Kubernetes realizes. Oh, one of my instance application has died. So it'll go. Oh, you actually wanted to we're down to one now So we will go and create a new one for me And so always ensure that it has those two we're running if your application starts crashing And again, it will make a decision about where to put that and actually may migrate that to a different node if the resource balance have changed So I would for pods containers. So essentially the pod is the instance inside a pod The pod is actually as a wrapper around a container So we started off with containers pod essentially some abstraction inside of Kubernetes to wrap one or more containers Because when we were doing that scaling the number of replicas What the the scaling unit is the pod so I could have a grouping of multiple containers But when I scale it, they're all going to get scaled together now. I had a database and a front-end I have them as separate deployments I'm not running them as different containers of in the one pod or group because I need to be able to scale them independently Usually you're going to end up with one container per pod There are use cases for having more than one container grouped in a pod together And one example of that is things called sidecar containers if you needed to add in a special process for handling instrumentation for collection of metrics and so on you might use that but usually it's one container pot So the relationship now is container. It's wrapped by a pod Pod is managed by the replica set the definition of replica set was controlled by So that's the relationship So the node when I talk about in the cluster it Can be a physical machine or it can be a sensation instance of an operating system Right, so you can be deployed to physical hardware or could be deployed in a virtual machine in a virtualized environment You can do it So I have all these pods now you need to know what these pods are doing so it is possible to Get the logs out so you just need to know the name of the pod And I've just done a funny horrible script here to get the name of the pod out So I've got a name of one pod and I can look at the logs for that and we see that it's a Django application using modWiskey Everyone thinks modWiskey is great if you're a Python developer. I Wrote that one pity So you can get logs out By default it's like Docker. You have to go to every pod to get the separate Logs out but it is possible to deploy to a Kubernetes cluster. What's called aggregated logging? Which can bring the logs for all these different pods together into a common application and One solution for that often is I'm going to get this wrong elastic search fluid D. Cabana Combination of those tools, but there are other options as well And usually that or sometimes that can be integrated into the the web console And if we've open-shift that is the case so you can very easily get to that all aggregated logging mechanism Now we get to logging now each of these pods is actually it's like a little mini host And it is actually possible to get into them if you need to interact with the processors in that app So I can run a kube-cuddle exec command and run command in there to show my environment That one obviously exits straight away But I could actually also get in there and run an instance of bash and Get in there and what run whatever commands I want You know look at the files. I can interact with file system. I can look at the processors.  It's not too bad Now so we have an instance of application. We can get into them. We can see logging, but we still can't access them Now each one of those pods I said it acts like a little host now each pod does get its own IP address That IP address is only accessible inside of the Kubernetes cluster Not outside But dealing with IP addresses when communicating between components of an application is a pain in the neck You don't know what these IP addresses are in advance and if a pod gets killed and replaced It gets another different IP address things will change all the time So Kubernetes has this idea of a service resource which you can create now If I run this command Am I still inside? Okay, I thought I pressed exit You'll see each has this different IP address now when you have model instances I want to be able to talk to these via one IP address Rather than multiple so this service we have a service idea of a service abstraction You can see it up there Essentially on creating a service called blog has a label again And then it has this definition here with that. I'm going to create a service the services own IP address Has bought 8080 and what's going to happen is it's going to map Any connections to port 8080 on its IP address and route that for automatically to one of the instances my pod for me Where which pods are used is is determined by this selector and that's where I mentioned before about labels being very important So I can apply this and it creates me a service I Have a service the service has its own IP address and I Can I mentioned the label so that selector in their app blog Essentially the same as looking up the pods by that label selector those are the things will get mapped behind that service I can actually look specifically at which ones are mapped By looking at what's called the endpoints And it will show me the two IP addresses for the pods and they are mapped now behind that IP address for the service Again, it's still an IP address. They're a pain to deal with So the name of that service is added into an internal DNS server inside of the Kubernetes cluster So I can access that using a host name of blog. I don't need to use the IP address So if I need to access it internally like if I'm in the same name space I can just say blog host name or if I need to access it from other namespace I have that ability I can use blog namespace name Service and port and so I can then kill that so I can access it But I'm accessing this because my terminal is running in the cluster. I'm not outside still yet So this is still not public so we can now expose that and to do that. We use what's called an ingress Essentially saying here's the host name. I want to make this thing available outside of my cluster F and This is the name of the service which I want though that Request to be mapped into and also the service has a mapping to the pods So what will happen now is the request will come in from outside Hit the router which is configured with this ingress and it will then distribute that will send that traffic to one of the instances of the pods So I can apply that I now have an ingress credit We can see that that's the host name was created now Internally to the cluster my service and pods were listening on port 8080 Now outside of the cluster using non-standard ports is not real good But the router is smart enough and where ingress is set up is that externally people will be using port 80 So standard port and the router maps that through automatically to port 8080 internally So that does it all for me One very important thing don't show here remember how we deleted our instances of our pod earlier and it created a new one It got a different IP address Cuminers will worry all about that when I delete a pod and it comes up with a new IP address the old pod is automatically removed from the list of endpoints from the service and from the pods that the router is sending traffic to and it will automatically add that IP address back into the service A new one and again for the ingress so it worries about reconfiguring the internal network with service and the router for you and you don't have to worry about it So I've got that up up running now and I can go visit it again This time I happen to have some data and that's only because I'm not using my real database yet This is using an internal test database when I deploy it without a real database So to link the database We need to set some environment variables. So so that was our resources for our database So, you know, hopefully now now we're deployment and services. We have a couple others of system volume and secret And I can see that on my deployment for my blog I currently have one environment variable now I want to set some others in there for the name of the host of the database now We know from the what is it before about a service name access the host name for my database internally So by my host name for my database is gonna be blog dash DB. I need to spy a user password and database name So I need to set those So Kubernetes has a command a kube-cuddle Soops set n which does allow me to set environment variables And that's okay for setting individual one environment variable For the host and I can do that And essentially if you look at the definition of what it's doing is just filling in some extra fields in my YAML But for the credentials for the database, I actually have them stored in what's called a secret This is a way of putting information and storing configuration for that as part of the communities now The database story using those I want to reuse those in my front-end I don't want to have to enter them in separately that way I can keep them in one spot So the the kube-cuddle set n command has a way of essentially setting up the definition Of my YAML to say I need to set these environment rules, but use them from this secret. So I'm not creating them separately So secrets is a way of storing configuration There's another thing in communities called a config map, which I don't go into who is very similar secrets is Essentially the same as config map but just provides some extra guarantees around about how information is saved in the cluster That's never saved to disk for example in a secret on a node at least so from those I can update my YAML definition Adding my extra hosts and also using it from the secret for the other credentials and again I can just apply that I've now linked my front-end to my database now when I'm making changes like this to the environment variables Kubernetes is smart enough to know that's a configuration change and is really deploying my pods for me So it's deleting the old ones and bringing up new instances And it's doing that all for me That's linked together Now whoever if you familiar with Django, you'll know that Great it will can auto configure the data figure the database for me But I need to set a credential and that's where I can Use the fact that I can exec into a pod to do a command and I'm gonna Have a little magic shell script here. We're just gonna do some things for me It's gonna check my migration is happening and I can go and add my credentials in So I've set up a Set up that that'll actually also pre-loaded some content in my real database now as well So I have everything going Now one final thing and we've got five minutes left. It's excellent This particular web application it's storing blog post information the database that's giving persistence for that now But I also need to store images for images uploaded with blog posts now for that I need persistent storage So what we can do here Kubernetes force concept of persistent volumes So you can have a whole bunch of storage available and you can make what's called a persistent volume claim That essentially says that I need storage of a particular size a particular type and I need it from my application So it supports a number of different types of storage or access modes Depending on whether you need storage which can be mounted on multiple nodes in a cluster at the same time Which is fall like file system storage or with a database for example We only have one instance so we know we can get away with a type of storage that only needs or only could be Mounted on one node time say elastic block storage in Amazon for example, so you can describe the characteristics of the storage you need by your yaml definition and We could create that essentially is then communities will say okay I've allocated some storage, but I still need to actually mount that in my application So I need to go back to my original deployment now and add actually a couple of extra bits of information And and that is the first one is that this deployment is going to need that Persistent volume claim that was just created that persistent storage and I need to go into each of the definitions for the container in that pod Describe the deployment and say I want to mount that persistent volume at this directory inside of that container So again updating my original yaml file on disk I've added those there at the bottom I Can apply those and I now have deployment ingress persistent volume and service blog and we're back now to what we had when I deployed it in all in one go So if I were to go back to my blog now I've set my my password my access to database. I could log into it. I could create posts I could upload images The images are stored on disks the post in the database If any of my instance my application die They'll get restarted elsewhere And they'll be already connected to the database When your pod gets moved from one node to another Communities will worry about moving the storage the persistent volume mount with it So it will handle that or for you and you don't have to worry about it So that was it if you're working through that there are some links at the end for Finding information about OpenShift, which is the cluster we were using here using Kubernetes So OpenShift is is okd, which is the open source upstream project, which is used Goes into OpenShift so OpenShift obviously is a product from Red Hat and Okd is the open source upstream project that feeds into that if you want to run OpenShift on your own Laptop, there is a project called MiniShift which you can use Or if you want to actually deploy a full cluster on your own heart up on Amazon We have try.OpenShift.com at the moment is where you can go and try the very latest version of OpenShift Which you're going to be releasing down the track soon which is OpenShift 4 And there's some links there to Kubernetes and a final one at the bottom Which is good site which is kubernetesbyexample.com Which you can go there and it provides you again goes through all of different resource types Explains a bit about them different examples of how to use them and so on and that's it That's the end of the workshop. So if you have any If you are still awake, I took a nap while he was talking So questions One container and one pod and that is That's what is preferred So if you want to put multiple containers in a pod then I should have a single Diploma to YAML with the different configuration. Is it how does it work? So you can put multiple containers in a pod but think about this as an example Okay, we had a front-end and a database Yeah, if we ran the front-end in one container and a database in another container of the same pod I Can't scale that up because you can't just take a database like Postgres And say I want ten instances now. It's not that simple So most of the time you prefer having one container to pod because then you can scale up the number of replicas separately Okay, but they said there are some use cases Sidecar containers and like this workshop environment is an example where I'm actually using multiple containers The terminal and the content we're running in From an application running in one container that embedded console in there was running in a separate container of the same pod But that purely that's because it was convenient in the way that I'm running up stuff for this environment Okay, so does that answer the question? Yeah, sure. Thanks One more question. I thought you were throwing the real microphone from it Hey Just does the shaking when you throw it turn it on No, so um my question is Anthony with regards to the workshop um, is the code available for the for the workshop or It will be gone after the day as you mentioned, okay, so this particular cluster. We're doing the workshop in That will leave that running until tomorrow because it's just it's scheduled to be deleted about 10 or 11 o'clock The morning so we live at running so you can get access to so if you want to try again You can do it now. Are you asking about the ability to do it again or the actual the workshop it's the workshop content itself Yes, it is up on a github repo. Okay But right now because we've been developing this the workshop environment over the last few months to get it all nice and polished The documentation isn't really there for you to go and deploy it yourself But it does require you have open shift to deploy it into a Technically I probably could get it going in plain Kubernetes, but I haven't done that yet That's just you're not from me. Yeah, I'll probably Talk after but we will we will probably try to post them if you follow him on Twitter We will try to post them the instructions with a false as a Twitter handle so anyone can can follow it Okay, I think we are running out of time Okay, so next thing is proof what are going to be taken here I think Michael is setting up things So, thank you very much Graham and Joel. Please put your hand together for them


Good evening, everyone, and welcome. This is Melissa Armo with the stocks. What should I am reviewing here, Baba? This stock had earnings, and they were this morning. And I really wish I would have done a video, actually, yesterday afternoon. I talked about it in the live trading room, and I got so busy I didn't have time to put a video out. But I predicted that the stock would actually get up on the earnings. I thought about doing an option in it yesterday afternoon, and I didn't do it. I was thinking about doing the 89 calls, and they would have been a week out in the expiration, and they were like $0.70, which really is like nothing, because today, then, they were worth more than $5 into the open. It's just another crazy call that I didn't do, but certainly hit the nail on the head as far as the movement or prediction of the price. And so I waited until today, and the stock did get up this morning in the earnings. And now I'm in an option. So really the way to do this is to wait for the stock to gap. But every once in a while, I do make predictions of the direction of bias that the stock will actually move in the earnings. And it's really interesting how right I am very often on that, but I don't always do the option prior to that. The best thing to do is to wait until after its gaps, and then you rate the gap. So this gap this morning, this was the best bullish gap today, and you could have gone intraday long this for a quick scalp up. It never got over 93. But this was a tremendous move for the stock today, and I predicted that it would hold in the gap up, and that is what it did. So you see the low today was 91.26. High up here was 92.80. Pre-market high this morning was 93. Prior day, well, this was yesterday, before the earnings, which was this morning, it closed at 87.33. So it was at 93 at one point this morning. So just a tremendous move for the stock. And here you see, so it gapped up, and then it came in a teeny weeny little bit after move up this morning quickly, then it fell and held right here. And this is really a nice chart. So now I'm in an option in this. The strike price is 95. So it's very close to the number here. And so I really paid up for it, and I actually have it out for a month. So a lot of time in this, and very close to the strike price. So this could turn out to be a really good trade. The first target is 95 though. So the first target is here 95. And I liked this so much today that I just really didn't even care where I got in it. As long as you get in this today, you know, this is a good move. It's just a good, good, solid move. Anywhere you got filled in this price today in this option is a goodbye, because the stock price is really higher. I mean, it is really higher, so you gotta get in it. And sometimes you just say, you know what? I'm paying the price to be in it, and that's the end of it. So my cost is like $1.39 here. But this is doing it for the move to get it into the number and pass the number and beyond. So the first target is 95. 98 is the next target, very solid about that. And the real target for this is 100. This is a real, 100, $100 price point is a real target for this. So that would be $5 over the strike price that I bought it today. And of course, there's many other targets. So this is a nice, beautiful bullish gap. Very, very aggressive for me to go along an option and something that gapped up $6 overnight. Very aggressive to classes along the day, which I did in the trading room, even though I didn't intraday go along it. And very aggressive for me to even predict that it would gap up before it did, or even that it would hold the load today, which it will. So this probably opens neutral or possibly up a little bit tomorrow morning. And my prediction is that it rallies tomorrow and goes over 93 and runs actually tomorrow up into 95. So we'll just have to see. Let's quick look here at the after hours of the market. Market looks strong. Market's continuing higher and higher and higher. And this chart, what this chart did today and what I absolutely loved about the gap and talked about in the room and talked and talked and talked about today is that this is a corrective gap in this chart. So prior to this day, this chart was not in an uptrend. As of today, as of the gap this morning, this chart was in an immediate definitive uptrend starting today. So it is a new buy. You could go along the stock today as a swing trade, as an option trade in the longer term, the stock as an immediate buy today based on the gap up today. And this is one of the really important things about learning gaps for me because many traders would see something like this and think it's a fade. A fade as a swing trade or an intraday trade or that it'll fill the gap, it will not fill this gap at all. This gap will not be filled at all this calendar year. And I don't know if it'll ever be filled again, but I don't wanna say that forever is a long time, but stocks can change direction of biases all the time. But as far as this year goes, 2016, the stock is not gonna break through the low of today's bar. And remember, these are areas, but this is pretty much it. Right here. This is the new support here for this. It's not gonna be broken in this calendar year. So we're higher from here on up. And after it gets over 93, again, that was the pre-market high. It just has nowhere to go but up. But here's the next number. And over 95, the stocks should just fly. I mean, the stocks should just fly. And actually, this is a big buy point here, which is the $100 number. But that's really my target. This is a massive buy point here. So the big, big buy points are 93, 95 and 100. So you gotta hold it over 93. Whether you hold it over 95 or not, you're not gonna be up more than a dollar in this at 95 if you bought it today with me. And then the $100 number is a big number too. That's another buy point. So just huge institutional buying today in this stock. And we watched a trade in the morning. Let's go back to the one-minute chart. So here's what this did today. And the one-minute chart, and we watched it, we saw it, we saw it in the room. This, this was real. This is like a one-minute bar, look at that. Look at that, look at the volume in that. And then this held right in here. The stock actually set the low of the day at 953. Let me just double check that. Yep, so the stock actually set the low of the day before 10 o'clock today in this chart. Tremendous, tremendous institutional buy in this today. And this is really higher. So I'm in this at an option. We'll follow it and see where it goes. If you would like to do the golden gap class this weekend, you will learn how to rate gaps based on my 26-point rating system that will help you decide whether something is a short or a long, which today this was a long, not a short. And also, you will be able to use my system for day trades or swing trades. And I'm offering the gap options letter free from now until the end of the year if you sign up for the gap class by tomorrow for this weekend. So have a great night everyone. Email me at melissathestockswish.com if you would like more information about my golden gap system. Thanks everyone, have a good night.


Hello everyone, my name is Dave Moss. I am, actually I have two hats here. I am director of investigations at a non-profit organization called the Electronic Frontier Foundation. I'm also a Reynolds School of, sorry, I'm also a Reynolds scholar in residence at the Reynolds School of Journalism here at UNR. If you're unfamiliar with the Electronic Frontier Foundation, we've been around since 1990. We are a advocacy and legal organization that defends civil liberties and human rights as technology rises in society. Happy to talk to you in-depth about all the stuff we do, but I don't have time for it in this presentation. What I do have time to tell you about is a partnership that EFF has had with the Reynolds School since 2019. We teach a lot of things to journalism students, particularly about investigating technology, but the centerpiece of our partnership is a project called the Atlas of Surveillance, where we are trying to map out what police departments are using what technology across the United States, whether that's face recognition or drones or any number of technologies. But one of the specific things that we've been working on is technology at the US-Mexico border. I think there's this conception in the popular psyche that the border is just all of what you see in the foreground here, just a desert barren wasteland, where what falls to the background is the fact that people live at the border. There are communities at the border. There are quite large communities at the border, and so when folks in Washington are talking about putting more and more surveillance or so-called virtual wall at the border, one of the side impacts is that it does actually impact communities who live there. And so we've been mapping this out. And so some of the things that we deal with when it comes to the virtual wall are things like surveillance towers, and there are at least three different models of surveillance towers along the US-Mexico border. We have the integrated fixed tower, which you find in Arizona on the left. You have the remote video surveillance system by General Dynamics in the middle, and then you have the new AI-controlled towers called Autonomous Surveillance Towers by Andrel Industries, which we'll talk a little bit more about in a second. But we also have a couple of different kinds of spy blimps across the border. We have technologies called license plate readers that track your vehicle. Some of them are very obvious. Some of them are covert, but you find those throughout the border as well. And so the question comes, well, how should we be documenting this? How should we be mapping this out? And I'm gonna actually show you the output first. One of the things we've been doing is actually mapping the precise locations of as many surveillance towers we can find along the US-Mexico border. So as of this week, we have mapped out 467 towers. We think they're probably close to 1,000 between both the southern and the northern border. We are not doing the northern border at this point, but I do think this is the sort of best map that exists. And it may actually be a better than the map that CBP has itself because they seem to lose track of where their towers are. So how did we go about it? Well, a lot of different methods. Going someplace in real life, still underrated. We've gone down to the border several times now on research trips. And sure enough, we see things we didn't know existed, like a blimp over Columbus, New Mexico. This is another anderal tower we found in New Mexico as well that we didn't know about until we were there in person. But oftentimes we do stuff with public records and FOIA documents and things that we find online. And if we're lucky, we find a document like this that tells us the name of the tower and actually gives us GPS coordinates. That makes it really easy. What gets a little bit harder is when we have to deal with things like environmental assessments, where they give us a map and they say, well, it's kind of generally in this area, go fish. Sometimes we'll get like a map like this where they won't tell you where it is, but they'll give you a very close-up look. And then you spend a lot of time on Google satellite trying to match up the bends in the Rio Grande until you can find the location of the tower. But thankfully, they have a very distinct fingerprint or aerial fingerprints, we're able to find them a lot better. And Google Street View itself ends up being really great because you can explore and you can confirm whether you can see it on the ground. So this is a thing called relocatable remote video surveillance system and you can zoom in with Google Street View to actually find it. That's the same tower as before. Just that's as close as we could get in Google Street View. And here's where VR comes in. So this is actually the shelf next to my desk at home. I have multiple headsets now. This has become part of my daily sort of work process. And what I'm gonna talk about how we're using is you can use like kind of one or two different apps depending on what system you use. Most of what I'm gonna talk about will work well with Google Earth VR. I specifically use Wander, which is available for the Quest systems. And just a little bit of an irony alert here. As you all know, probably Palmer Lucky was one of the creators of the Oculus headset. He is also the creator of the Andral Century Tower. So there's a little bit of irony in using one of his technologies to investigate another one of his technologies. So some of the benefits of using Wander is basically what Wander does is take Google Street View and makes it immersive. Makes it a series of 360 degree photos that you can move around with. It also includes user submitted 360 degree images. So if the Google Street View card didn't go someplace but a hiker did, you're gonna have access to those images. It also interestingly has a very large screen version of Google satellite. So instead of looking at it on your desktop, I'm able to have like a movie theater, like a screen essentially this size in my headset to analyze a satellite footage. You can also bookmark things, which isn't so easy on my browser.  But it also has a social component that allows you to take other people into the experience and show them around. So just to give you an example of how this might look and how my process of finding these surveillance towers, I might just open up the map and zoom very deep in satellite mode and just go up and down every road looking for one of these three aerial fingerprints of these surveillance towers. And you can see this is me finding one of the Andrel ones which corresponds to the one on the bottom right. Or I might just open up the map and when you see blue lines on that, those are places that I can go in Street View. And so I'll just see how close I can get to the border, drop myself in there and just look around like I was driving around in real life. And that's how I was able to find a whole series of towers in Nogales. Interestingly, the Google Street View car actually gets closer to the border on the Mexican side very often as compared to the US side. So oftentimes I'll be looking for the surveillance towers from Mexico. One of the other cool things that we can do is border checkpoints. So there are dozens of checkpoints if you're driving in the borderlands. Normally you have to go through them very quickly. If you are not going through them quickly then that's bad news for you because you have been stopped and you are being detained. However, because the Google Street View car went through these checkpoints we can go through leisurely and slowly and look at all the different kinds of technology that have been installed in one of these places. And so this is someone from the news organization Bellingcat, I'm taking them on a tour this is them, me showing them the tour. So then there's a question of how do we present this to the public? How do we help people better understand surveillance technology? Now back in 2018 when there was the Oculus Go we actually built an app called Spot the Surveillance which puts you on one street corner in a one still 360 degree image. This was in San Francisco and we created a little game where people would look around trying to spot pieces of surveillance technology and then it would tell them when they found what it would tell them what the technology could do. So here's somebody looking at a body worn camera and learning about body worn cameras. Took a lot of effort to put this together so it's very useful to be able to have some piece of software that somebody else built that we do not have to maintain and continually do updates to. So now what we do is take people on tour virtual reality tours at the border and I've done this for Oscar winning documentary filmmakers, for academics, for journalists and I'm able to do a lot of cool things with them that I wouldn't have been able to do in real life. For example, on the left we have the San Diego side of the border where the wall meets the Pacific Ocean. On the right we have the Tijuana side. This is an hour and a half of travel to go what is like essentially a few hundred feet but in VR I can just jump back and forth and actually show people very quickly the difference between the militarized U.S. side of the border versus the very party time side of the Tijuana border. And we're able to still do spot their surveillance like activities. I will put people into situations and I will say look around, do you spot something? And then they do and they're able to get the context of this is a spy blimp over your house, over your neighborhood. This is not just the middle of a desert monitoring people who are like drug mules. This is monitoring people going about their daily lives and we find that people respond well when we give them pictures of things when they are able to look at like, you know, a slideshow presentation like I'm showing you but the ability to look around and see the full 360 environment that is being captured by one of these towers really does change people's perspective of border surveillance. And that is all I got for you today so thank you for coming.