It's like somebody else already has control over the stream, is, oh there it went, no, it's still doing the thing, and there we are. And there we are, alright, welcome back. So we have another session, this time is going to be with our friend here, Jack Baker. Welcome Jack. Thank you. Glad to be here. Alright. And also we've got Fallible here as well, hey Fallible. Hello. So Jack was going to tell us a little bit, at least he did tell us a little bit in his presentation about how he kind of attacked game servers. Jack, you want to kind of give you a little bit of an introduction of yourself and just kind of a super brief overview of your talks that other people might get more interested in it as well, on top of some of the other questions that we're already seeing in the Track One Live QA channel. Yeah, for sure. So my name is Jack Baker, I don't have much of a background to talk about. This is my second time speaking at DEF CON, both times I've been about hacking video games. And for my talk this year, it was basically about finding bugs in game engines. So basically looking at the core software that you build video games on, with the hope that finding bugs in the engine means finding bugs in a thousand different games. And really amplifying that effort. So I had a reasonable amount of luck looking at Unreal Engine 4 from Epic Games and UNET, the core networking protocol of Unity. And I talk about four of those bugs. And I give some POCs, typical DEF CON stuff, I guess. Yeah, it was all pretty awesome stuff in there. Valvels, we have any questions coming in yet for Jack?  Do you believe that most game servers slash developers are heading towards a zero trust architecture for newer games in order to better protect the game servers? That is a good question. So I would actually argue that to some extent that has already been done. If I were to go back a bunch to when I was a teenager trying to learn to hack video games, I remember that there was this philosophy that the only online game you really couldn't hack was RuneScape. And the reason for that is RuneScape is about as close as you'll get to just a pure, thin client in a big video game. And so you couldn't really manipulate the client to do things like teleport or whatever because it was just basically just button presses. Now, in that case, though, people still managed to quote unquote hack RuneScape, but it was in the form of logical bugs. It wasn't trust being placed on the client. So to answer that question, I think that you absolutely can make a zero trust game engine as is, but you're balancing performance and security. And if you go too far in the security side, you end up with a game like RuneScape, which is very low, very slow, with not a whole lot going on. It's very difficult to apply that to something like, I don't know, Fortnite, where you've got 1,000, I guess 100 people shooting guns. You've got all this math going on. It's just a different scale of a problem. But we're getting much better at it. Game engines have gotten significantly better at taking that trust away. So yeah, I think that's where things are going to keep moving is taking that trust away and finding clever ways to make servers that can still handle a first person shooter, still handle Fortnite, but don't have to put trust on the client to do that. And from the perspective of game hackers, hacking will just become more of a process of finding logical bugs rather than doing what we typically do now, which is exploiting those trust relationships. Well, that's interesting. So a slightly different angle of a question coming from Blackfoot over here. Why do you think there is so little security, knowledge, share between game companies? Example, little documentation and hardening of UE4 dedicated servers? That's a pretty good question.  You don't really want to give your competitors competing game engine the keys to the kingdom, so to speak. So architecturally, most game engines are built from the ground up. There is not a lot of shared code. And that's just because it's a big investment and no one wants to share that. It's sort of a boring business answer, I think. But it's really just unreal and unity and whoever else don't want to share their work with each other. So in your presentation, one of the things that you were showing was kind of like the teleporting and the fast running. I remember one point in there, you're just kind of showing somebody running at the normal speed. And then the exploit that you were able to find was somebody zipping across the screen. In addition to running, do you think there are other things that people could use that kind of thing for?  Maybe what other kind of things have you thought of that somebody could use that type of exploit for in their games? Yeah, absolutely. So with that particular bug, I found what I think is really interesting. It's basically a bug where you can use the unique properties of some special floating point values to basically confuse the server into doing something it shouldn't. And so I have actually tried basically that exact technique on other games, other commands and stuff like that. And you can usually get something unpredictable to happen. I think I mentioned in my talk, a lot of times it's not a good thing.  But you can usually cause the game to do something it shouldn't. And so, yeah, I think these logical bugs, especially like mathematical bugs, if you can find those, are a really good way to exploit games because while the bugs aren't the most common, they are very predictable. They're not a memory corruption bug where you have to worry about layout of a memory and all those complicated things. And they tend to, I guess, slip by the architectural protection. So in that case, like the bug you talked about, Unreal Engine has a pretty robust way to prevent speed hacking. And using just a couple quirks of, basically quirks of decimal numbers, you can cause it to do something it shouldn't. And that is super useful. So that particular kind of bug, I'd say, yes, definitely applies in other places. It's just a matter of looking for it. And I guess that's it. I don't know how I was going to end that sentence. No, I really liked what you showed there, especially you were the things that we find in other places across security and other types of hacking. You go, well, OK, let's divide by zero. Let's use not a number. Let's use these things that are the outsides of this language that's being used and see what happens when you throw it at the system. And it's just nice to see in the niche that you found yourself in a lot of the same techniques work. Yeah, I guess one other thing I like about that bug is that it's not something that's fixed by say, oh, we're going to stop writing things and see and start writing them and go or rust or something. These are bugs that still exist even in quote unquote safe languages. And I think in more than just video games, that's where this sort of exploitation is going. And that's why I like that bug so much. All right. So Hawkeye has another question for you. He asks, have you noticed any new trends of input validation in high user games like Fortnite? Yeah, I mean, I keep going back to the same example, but Unreal Engine 4 uses a really, really robust system for validating user input and specifically user movement in a way that scales really well, but also basically eliminates your ability to manipulate your movement in any significant way. And so essentially that the broad strokes are basically taking authority over your character's location, putting it on the server and giving the client the possibility to call functions in order to request that you move. And that way the server has the context to say, well, you're trying to move too fast. I'm not going to allow that. I'm going to limit movement to a specific range. And so really, I think the entirety of like evolutions in the security of game engines recently has just been on giving more context to the server so we can say, well, that's not right. I'm going to stop that from happening and ensuring that the client doesn't have the trust to just overrule the server. I can't remember whether you said in your presentation, if you've talked to the engine companies about these vulnerabilities and if they have fixed the exploits that you found. But if they do see somebody trying to send like your NAN, not a number at the server, what types of things would you think that they should do to that? Should they kind of just adjust or ban or what are your thoughts for how people could, what should happen to them? Yeah. So three of the four bugs I talk about are fixed and the speed hack one, the NAN one, was one of those. It was actually a pretty easy fix. They just put a tiny little check in there that says, if this is NAN, just abort, get out of there. But in general, I would say, I would recommend possibly that if you're a game engine developer or you're working on Unreal and you think, oh, this could be a problem, it's not unreasonable to just say you shouldn't be able to use NAN in any argument. That's not going to happen under normal circumstances and just essentially eliminate that from the serialization and deserialization process. Unreal doesn't do that because it wants to consider itself sort of impartial to that. Whatever goes in one end is deserialized on the other end, but I think it would be a pretty reasonable assumption to say, if you're getting certain types of, say, floating point numbers, this is blatantly invalid and we can probably just toss it out before we even consider anything else. Just a general input validation on what's coming in. Typical boring stuff. Isn't it that way? Well, so I don't really want to give away the punchline to your presentation because it fits so well, but we'll just kind of hand wave that and say, so when you've been doing this, how often do you get booted from whatever game you're playing or how many times have you had your accounts banned?  I did a talk last year on hacking basically browser games and for one of the demonstrations, I took a game, I don't want to say its name. I've done enough to them, but I took this game and it has a global scoreboard and I just set my score to one, three, three, three, three, three, three, something, seven, and username to high defcon and they banned me pretty quickly. I think that was pretty obvious, but in general, if you're building your own game hacks, there is a pretty good chance you're going to get away with it. So I get banned pretty rarely. So congratulations or I'm sorry, however you feel about that. It's a mixed nag. Where do you also often kind of see the line here along the same, I guess similar to what Fallible was just talking about, where the old question about research versus going over the line because essentially you are affecting other users potentially as well as that game engine. So where is kind of your line on how far you'll go with your research or is it because it's in the name of research, you'll just go all the way with it. I mean, I won't do anything that's I think directly affecting someone spending money or someone or anything like that. I'm not stealing items from people in online games that that certainly crosses the line. But, you know, if someone's in a lobby of a first person shooter and someone wall hacks through and, you know, no scopes them in the head, I don't think they've been significantly harmed in any way. So I think that that is that is within moral bounds for me. Excellent. Can you explain some of the technical setup that you have in order to capture the data that you're sending across and what tools are you using? What's your lab look like? Yeah, so working with Unreal Engine, especially I needed to actually buy a new desktop to do because on the laptop I was working on it took most of the day to compile Unreal from source. And I was doing that several times a day. So that was not not good math working out there. So essentially, I do all of my Unreal development on Linux, which is a little less supported, but it's just more comfortable for me. And the other, I guess the other thing that's really a challenge is the specifically Unreal source is so big that trying to open it in most like project editors is it does not work. VS Code gets by just a little bit, but even then it gets tripped up when you try to go to this function or something like that. It'll end up, it'll spin its wheels for five minutes and say, yeah, couldn't find it, even though you know it exists. So I wish I had a better setup. I'm sure people who do actual video game development have better experiences with building Unreal from source. But I guess my lab is just a system 76 desktop with the highest boxes checked on everything just so that I can compile Unreal as many times as I want. And it doesn't take me all day. So in that way, you are, you're looking at the guts of the code, you're, you're really building it each time. It's not a situation of you're just capturing everything in Wireshark and modifying it somehow. No, I wish it was a little easier with UNET, you can get away with just looking at the traffic in Wireshark. So Unreal is pretty difficult because everything is like bit aligned. So you'll have a string that starts four bits in and just looks like gibberish. So you really do have to be looking at at the low level to really make any sense of it. And how does somebody kind of get started with that kind of thing? Because this sounds extremely technical and you have to know quite a bit. How does somebody like where would be the entry point if somebody was interested in this kind of research in order to start figuring these kinds of things out if they wanted to just even look at how games work? Yeah, well, I mean, all the code is out there for Unreal Engine, but I don't think that's something you should just jump straight into especially not if you're pretty, if you're not pretty familiar with C++ because it is a complicated code base. I think the best thing you can do to understand hacking video games is to build them. It's sort of a, I don't know, cliche answer, but that is what teaches you, oh, this is how that works. This is how I'd write it. This is probably how it looks on the back end. Also, I would say if you're going to look at games written in a particular engine, Unity games are pretty good because they're usually built. They're built with C sharp and they're typically easy to decompile back to C sharp with something like DN spy, if I'm pronouncing that correctly, however, that's verbalized. So you can actually look at the code of the game, modify it, see what happens and basically hack games without too much actual binary reverse engineering or anything like that. So we've got a question from Jade that I'm going to, I'm going to obscure this a little bit. The question is way too specific. So let's go more along the lines of where else would be interesting to look if you were done with the research that you've done so far and you were looking for a new product. What would be the things that would draw you to a new product? Yeah, so like one thing I would say is that when you look at Unity, there are a lot of different multiplayer solutions. So I looked at Unet, which is sort of the it's provided by Unity, but there are third party solutions that are pretty common photon mirror. I haven't looked at those at all. And I think that there's a pretty solid chance that the same kind of bugs apply there. And then I think most of the research I did, obviously I'm just looking at the core engines for games, but looking at specific games, you can find these exact same bugs. They're just they just may not apply to other games. So I think most of this research still applies. It just needs to be targeted either at different games or different multiplayer protocols, even different game engines, game maker. There are, well, I think I've looked at the two more common game engines. There are other engines out there. In other words, just find another big target and play or just go and learn something. If you happen to be using the game, then this might be a good opportunity. Hawkeye Dank asked another question about the outcome of your work, and he wants to know if you've managed to pull any bounties for this. Yeah, I turned down bounties for a few things because I wanted to talk about them. If I was really like min-maxing it, I probably would have accepted bounties for a few more, but you never know. So, yes, Unity and Epic Games were both really good about this. Epic has a Hacker One program. Unity, you want to just go straight to their security at Unity 3D or whatever. I don't want to give you the wrong email. Security at email address. But both were awesome to work with. I would say I would highly recommend it, and yes, there is definitely money to be made. And you've looked at the Unreal and Unity engines. Are there any others that you've looked at or found bugs with? I have done a fair amount of reverse engineering on Game Maker, which is one of the more common engines, certainly less than Unity or Unreal. Not from a security perspective, just from how do I hack this game or how do I mod this game aspect. And I guess one of the problems is that some of these smaller engines don't provide you the same tools. They may not have an entire networking solution. So there's less places for bugs to be hiding. That's why I think Unity and Unreal were such good targets. But I do think there is opportunity for bugs in those other engines. I just really haven't done the work in that context. And have you also looked at the individual games itself? And what's really the difference between trying to find vulnerabilities in the game engine and a specific game? I guess usually the difference is whether or not you're going to have easily accessible source. So Unreal Engine games, reverse engineering and actual released Unreal Engine game can be pretty tedious because you're not looking at the source. You're not typically even looking at something with symbols. You're just looking at a gigantic blob in IDA or Gidra. But I have had some success there. I don't want to burn bridges, so I'm just going to leave it at that. But I guess the main difference is just how much effort goes into reverse engineering. This sounds like a pretty specific question, but we'll toss it out there. So thoughts on cheat engine or memory scanners as a toolkit from beginners? That's from ethics. Cheat engine is awesome. It's how I started learning. My talk last year was on essentially applying a lot of the methods and techniques of cheat engine to web assembly. So games in your browser basically. So I think cheat engine is great. It is a problem that as game engines get more secure, those techniques don't work as well. So to give a general example, what cheat engine generally does, what you're usually doing with it is you look for something like your health. And you say, okay, I'm looking for something in memory that's 100. Then I take some damage and say, okay, of all those values that used to be 100, which one is now 87 or something like that. And that helps you find the value in memory that corresponds to your health. And then you can manipulate that, give yourself more health, whatever. But as games take trust away from the client, that process doesn't work anymore. You can manipulate your health client side, but the server still knows you have 87 health, not 10,000 or whatever. So I do think if you're looking at the right games, that is a great way to get into game hacking and understand those basic concepts. But it's not going to work on PUBG or something where someone has sort of put a conscious effort into making it secure. And something that's come out in the last five years, a decade, something like that. And how much now are the developers trying to go with more, I don't know if it's the right term for it. Or it's called like the thin client so that people can't really make changes in the client side or like in their mobile device going to give myself a million lives or a million gems or coins or anything like that and trying to keep all of that on the server. How much of that do you kind of see with the games and the servers? In my experience, it's really just whatever the engine does, the developer will follow. Unreal sets you up really well to build an architecture where those game hacks don't work or are exceptionally difficult. And so you see developers doing a pretty good job. Unity does not set you up quite as well from the start. And so you'll see the majority of those, I guess we'll call simple attacks do often work. That's not to say that you can't build a secure architecture on Unity. It just means that Unity is not doing the work for you. And like I said, developers will typically follow what the engine does. So as the core software, as the water level rises, developers get better at it as well. Cool. Is there anything that you didn't get a chance to put into your presentation that is additional research that you might have done? Or are there any kind of other areas that you think other people might be able to add on to the research that you've done? Yeah, I mean, so a couple of things come to mind. The first is the floating point bugs I've talked about. I think that can apply a lot. I very briefly mentioned this, but that attack does actually apply to Unity. The difference is that Unity doesn't, you don't need to speed hack Unity. You can just, or at least by using the core components that are provided for you, you can just tell it, I'm at XYZ. And if you tell it, I'm at, you know, nan, nan, nan, you get teleported to this weird like dimension where everything is like infinitely small. It's kind of cool. It's not very useful. So I think that kind of attack applies to a lot of things and I'd like to see where else it goes. Something else that I feel like I wanted to do, but I didn't quite find all the pieces was I found a number of like memory corruption bugs, like buffer overflow, stuff like that. But and a lot of those seemed like they would be good for turning something into remote code execution. But the problem that I was always running into is I couldn't imagine a situation where you were looking at a game server and you knew what it looked like on the back end. So a memory corruption exploit requires some knowledge of memory, of the layout of memory, where, where code is gadgets, stuff like that. And while you may have a copy of the client, you don't have a copy of the server. And so even if you can bypass all those difficult protections, ASLR, stuff like that, I just couldn't imagine a scenario where I could turn one of these into an RCE exploit on an actual server. And so that's why I felt a little disappointed in myself, because I had what felt like good bugs, but it didn't feel practical to turn them into into an exploit that would work in the real world. So I would love to see someone actually pull that off. So we are right down to the, to the bare end of this thing. So two questions. One is, would you be willing to post places that people can find you later, whether that be an email or a website or Twitter? We can do that in the track one channel at the end of this. And two, if you were to leave us with a call to action, something you would like us to consider as we're moving forward. I've been asking this of everybody. I kind of like this question. What should we take away from this and in our own work and how can we translate your stuff into ours? What would you want us to do? Yeah, so absolutely. I will post my GitHub. It is on the slides as well, but I'll post it again. My email address is there to hit me up. I've already had a few people. I've had a couple really interesting conversations. So I've really appreciated it when people reach out and I don't know if I could ask for anything.  It's fun.  So am I. Try it. It's it's it's rewarding. It gets your adrenaline pumping and getting banned is fun too. So that's my recommendation is if you haven't ever gotten banned from a video game, give it a shot. Awesome. Well, thank you so much for doing this, Jack. Appreciate you taking the time to be with us and really enjoyed your presentation. Hopefully everybody else goes and checks that out. So thank you so much. Yeah, thank you guys. This was fun. All right, we will be back in about 30 minutes with another speaker.


Everybody awake? Yes? This side sounds a lot more awake than this side. Everybody over here awake? There you go. Front row is awake. Awesome. Well, welcome. Today is the first full day of breakout tracks. Thank you all for getting up this early and showing up. To hear a lot about, we're going to talk a lot about the evolution of the Cloud Foundry platform, our various technologies, our projects. You're going to see a lot of great demos today. Hopefully, that inspires you to get out there and dig a lot deeper. There's a lot of projects. There's a lot of contributors that are here at the event that want to share what they've been up to. And they want to share it with other contributors. They want to share it with users. So take the opportunity later in the day to use the hallway track, use the breakout sessions. And in particular, please make sure you go talk to the sponsors. Like Abby said yesterday, we don't put these events on without sponsors. So at least go and thank some of them. We would appreciate it if you thanked them. OK. So with that, the other thing I wanted to thank you for is coming to my city. So I lived here. Lived here my whole life. Go Philly. It's actually a really great city. If you have an opportunity to get out and explore it a bit, I think you'll really enjoy yourself. It's a city that's got long history. OK, the Europeans stop laughing. We had a long history, a lot of amazing old buildings. We really have a, when the clicker works, we've got a great food culture, everything from the cheesesteak all the way up to Michelin star restaurants, a lot of good opportunities for you to get out there and enjoy yourself. World-class art museums, our parks are amazing. The wildlife is just unbelievably great. I have absolutely no idea why they made this a mascot because he's awesome. OK, well, there we go. So welcome to Philadelphia. And again, thanks for being here. All right, now let's get started. Yesterday, Abby talked a lot about kayaking. That's sort of the metaphor for how do we as technologists help our companies navigate this ever-increasing world of change? And that kayaking metaphor, I think, works remarkably well. But today I want to talk a bit about the Cloud Foundry platform and I think speak a bit more to our contributors as well as for the users to understand how our community thinks about evolution. So let's talk about science for a little bit. Evolution, Darwin's theory, all based on natural selection, right? The theory of evolution is that external stimulus cause a natural selection process, which allows species to basically be created based on minor changes over a long period of time. And as we've, of course, gotten a lot more advanced in our understanding of science, we realize that this has to do with the DNA and small changes in DNA. I think the same thing applies to a long-running software project. I think the same thing applies in particular to a long-running software project that is in a space that has a lot of external things that are occurring. We need to adapt to it. We need to adopt them. And also, for Cloud Foundry, what's really good about our DNA as a project is that we're prepared to make those changes and we have a long history of embracing other open source projects, embracing new ideas. And so over the course of this morning, I want to have everybody think about this evolution in really three contexts. One is the evolution of the developer experience, right? That the promise that we make to enterprise developers that just want to get on with the job of writing good software, solving the business problems, how we're evolving that. The second is around the operator experience. Because for those of you that are users in the room, if you've been using the Cloud Foundry platform for a significant period of time, you've likely seen that it continues to grow in use. Because whether that's a top-down mandate, as we heard, some companies approach growth through other organizations take a very bottoms up organic approach. And so that growth brings with it some challenges around scale. And so I want to push the community a bit on scale and point out some areas where we can improve. And the architecture, of course, is going to continue to evolve. And we're going to dig into that quite a bit more. OK, so some charts, because statistics. We talk a lot about the release velocity of the Cloud Foundry community. And we used to talk about it in terms of the full-coordinated release. And that was happening on average about twice a month, which is a pretty high-velocity project. Many of the commercial distributions were similarly accepting those releases and rolling out dot releases or patch releases at a very high frequency. But if we take a step further and look deeper into the way that our project community actually operates, we see that there are an enormous amount of actual repository releases that are occurring. And each one of these is a non-trivial event. So going back all the way to 2015, we had a great company at the startup called Sourced. And they're applying some machine learning to source code analysis. But they did an easy thing. And they did some count of the number of releases across all the repositories that we have. Last year alone, we were averaging 137 releases. So that's across our community. And that's over 5,000 releases that we've kicked out since 2015. That's a lot of change. That's a lot of introduction of new capabilities or fixes or security patches that all the users get to take advantage of. And the same thing in terms of commits. This is honestly commit tracking. You can think of it a bit like a vanity metric. I don't necessarily think that the more commits is better or worse. But it does tell us thematically that there's a lot of work going into the software that you're using. And there's an enormous open source community wrapped around it. Again, over 1,000 people contributed to the project in the last 12 months. So let's talk about that evolution. So we know we're doing it. Statistically, I showed you graphs going up and to the right. VCs would love it. Let's actually talk about some of the specifics of that developer experience and its evolution. Now, how many of you have heard of the V3 APIs? A couple of you. It's been a long time coming. I think that was first. The first V3 ideas were back in 2015, maybe even earlier. Jules, who told me it's OK to tell this story, will take full responsibility for sending the community down this path. He said it would take at max a month. They'd be able to knock that out. But it's taken a while. So the communities really had this pent up. In particular, users have had a pent up desire for a different way for this API to work, having a bit more granularity around how applications can be deployed. We saw Yui actually demonstrate some of the V3 APIs yesterday. So they're coming online. We have a lot more progress. But recently, the project teams have reconfigured themselves purposefully to go from the slow drift of new GA capabilities to really speeding it up. And thanks to being able to track that, since early December of last year, we went from, this is pretty stark. You don't have to read all the various lines in here. But think about it this way. We went from, on one side, only 20% of the total scope was even being looked at, thought about. Initial design ideas put together. To recently, just a couple of weeks ago, 20% hasn't been touched. So we're really speeding up the process of switching over to the V3 framework. I think that's an amazing story. I think that, in particular, I want to thank those contributors that are part of those project teams. Because making sure that we're working more closely together across the CLI project, across the Cloud Controller project, and the services API team, that's really shown demonstrable improvement in the pace of the V3 development. So we're going to have a demo now. But before he comes up, I just want to take a minute. In Boston last year, Zach came up, and he, speaking of V3 APIs, he was showing off some of the V3 API capabilities. And he did that, and he mocked me. He had me dancing as a stick figure to demonstrate that AB deployment, rolling deployment would work fine. And that's OK, because I'm here for your entertainment. But I figured this time, I was just going to use really advanced technology and embarrass myself ahead of time so that I don't care what Ben shows you, there's nothing anybody can do that's going to make me feel worse than this. So welcome to Philadelphia. Ben, come on up. All right, good luck. And we're doing all the demos live, so wish you luck. All right. OK, let's get that horrible scene off the screen there. So today, I'm here to talk to you about a project called the Cloud Native Build Packs. And for those of you who haven't heard about it, Cloud Native Build Packs was started a little over a year ago, and it started as a collaborative engineering effort between Pivotal and Heroku of all people. Over a beer, someone came over to me and said, hey, we've got some Build Packs, you've got some Build Packs. Why don't we keep talking about what the next Build Packs should look like? And so the Cloud Native Build Packs project, I don't need to sell you on how important Build Packs are, sort of, to the Cloud Foundry experience. But what we want to do is take a generational leap in those Build Packs. We want something that's vastly improved and specifically based on top of OCI images. And we'll talk about why that's important in a little bit. But the key thing to take away from this is between Pivotal and Heroku, the Cloud Foundry community, and Heroku, we have a combined decade plus of experience with Build Packs. We've seen all of you that are users, all of you that are operators that have used them to date, and we know what you want to see. So we want to make really, really significant improvements in how Build Packs work and what it means to write a Build Pack. But we don't want to lose any of the existing critical features, things that make Build Packs so good and so much more powerful than something like a Docker file. So we're going to talk about two specific features of this new Cloud Native Build Pack, but don't think that this is the only thing. So one of the very first things we see as the developers and the maintainers of the Build Packs inside of Cloud Foundry is this idea that multi-Build Pack is a really, really important feature that a lot of customers and a lot of partners want. This idea that there should be multiple Build Packs that can cooperate with one another. Now, we've built some multi-Build Pack functionality into Cloud Foundry already today, but realistically, it's not as good as it could be. It's tacked on top of something that was never really designed to do it, and it requires a lot of close cooperation between individual Build Packs. Everybody's sort of defining their own contract for cross-Build Pack communication and sort of infamously, for me at least, as the maintainer of the Java Build Pack. The Java Build Pack doesn't actually participate in all phases of a multi-Build Pack life cycle. And I view this as a problem as much as anybody. So in the Cloud Native Build Pack space, we wanted to take that idea that multi-Build Pack is really, really important. And boil it down, say it's so important it should be a native part of the API. It should be baked into the life cycle rather than expecting Build Packs to build it on their own. And as soon as we sort of got to that point when we said, OK, we're going to do multi-Build Pack, this epiphany, that now all of a sudden Build Packs could become much more modular than they ever were before. So you might see the Java Build Pack, for example, break down into a Build Pack that contributes OpenJDK, one that contributes Maven or Gradle for a Build System, one that knows how to run Java applications, Azure, Google, and other APM integrations, things like that, all get broken out into their own separate Build Packs. So that at detection time, some subset of these Build Packs sort of selects itself, says, OK, I want to work with this. I want to contribute a JRE. I want to contribute Maven or something like that. And when that execution actually happens, each one of them is responsible for laying something down. The OpenJDK Build Pack is responsible for putting down a JDK for build time and a JRE for run time. Gradle or Maven maybe get contributed. The JVM application Build Pack knows how to do Java dash, whatever it needs to do. And of course, JMX would contribute its own configuration as well. And maybe this is like, OK, yeah, it's great that these are modular now. I know one of the greatest requests for the Java Build Pack was to simply contribute a JRE and nothing else. Don't write me a command line. So now we have the ability for you to do that. But where the power really comes in is imagine you're on something like AWS, right? AWS, Amazon has recently come out with a great new OpenJDK variant called Coretto. And one of the really powerful things about it is not so much the code that's in it. It's that if you're running on AWS, it doesn't matter what environment you're running in, Amazon will provide you support. So what we really want to do is simply be able to say, OK, instead of using the Cloud Foundry OpenJDK, I want to use Coretto instead. That means that at detection time, Coretto sort of participates there. And instead of laying down OpenJDK, it lays down Coretto instead. So that's what this modularity gives us while allowing us, without forking or anything like that, to simply replace pieces and parts or compose or decompose as you see fit what you think a job application or name your language is. Another feature that we have in Cloud Native Buildpack is what we call image layer rebasing. So we're all familiar as Cloud Foundry developers with this idea of replacing the root FS of all of your applications at runtime with zero downtime, right? It's one of the most powerful features of the platform that you know you can bring everybody to a safe operating system with zero downtime. We want to make sure as we move into this Cloud Native Buildpack world and into this OCI image world that we have that same functionality. And what's really important to think about here is, to date, this hasn't actually been possible. If you use a Docker file and you want to change the from line, change to a safer version of the operating system, you have to rebuild the entire container, right, the entire image. But what we do using Cloud Native Buildpacks is all of those Buildpacks we saw earlier that are participating lay down individual layers inside of an image. And we push all of those layers directly to the container, right, out to our edge node. But as we say, one day, that operating system is going to become vulnerable, right? 0204 becomes vulnerable. It's, say, an open SSL issue. When that happens, we have the ability using the Cloud Native Buildpack spec to simply reuse all of the previous layers, except point to a different operating system underneath it. We're talking about as pointers inside of metadata, not regenerating layers. And this is really, really important because it means that your edge node, where you've got a bunch of data, a bunch of layers already cached, doesn't actually need all of the data again. All it needs to do is transfer that one particular operating system layer. And even better than that, you only need to do it once. So instead of you all thinking, perhaps, that this is just sort of a theoretical exercise, I have a demo here. So one more slide, even. So I should also say that the things that I've showed you, obviously, are not exclusively what we're doing. There is all sorts of other improvements, such as auditing via bill of materials. We're doing caching optimizations using the OCI image layer spec, security integration. Many of you have tools that already integrate with OCI image registries. And we're expecting a larger ecosystem with this strict standardization. So now to the demo. So the first step when trying to build an image using cloud-native build packs is we're going to define something called a run image. So effectively, what we're saying here, and the name of this particular image isn't particularly important. But the key thing I want you to take away here is there is a version of a particular operating system. In this case, it's version build.7. We're going to say, I want you to use this operating system as the run image for all of the applications inside of my platform. So we tagged that up in the registry. The next thing we're going to do is we're going to use a hand called pack. And pack is a CLI that wraps around the lifecycle. This thing that orchestrates all the build packs and builds all of our applications is also used to run our applications. It's a little thin CLI that allows us to execute this locally on our machine the same way you'll be able to execute it inside of Cloud Foundry. What we're going to do here is we're going to go ahead and build an application. In our particular case, it's a compiled Spring Boot application since I'm a Java developer. And off we go. So the key thing to take away here is detection. There's a number of what we call build pack groups. And within each one of those build pack groups, we have a number of build packs that will participate. So we see just to open JDK and the JVM application. We see a JRE gets contributed. And here's the command line that we're actually going to run. So if we say that pack is responsible for orchestrating our application or orchestrating our build, we are effectively acting as our own platform. So we'll go ahead and do a Docker pull to get onto our Edge node, which is my laptop.  So now we have a running application. But as we said, eventually an operating system is going to have a vulnerability within it. And so in that case, what we want to do is we're going to tag up a new version. This time version 8 instead of version 7. The command we use from here, this is the demonstration of this idea of rebasing. Pack rebase says take all of those original layers, move them on top of a new operating system. And I put time in front of it because it's amazingly fast. As we see here, about a 10th of a second, within our registry, we now have a completely safe version of our application that can be deployed as each platform sees fit. So in our case, the way we see fit is to say Docker pull. You can see most of the images already there. We just grabbed new layers for the new operating system that we're pulling down. And we'll go ahead and run that same application. And all of a sudden, we're safe, right? Great. So let's head back to the slides. So I'm really proud to be able to announce here today because it was kind of looking iffy yesterday while I was on the plane the first public beta of the Cloud Native BuildPacks project. It's the PAC CLI that I just demonstrated there, which you can go ahead and download. It provides both the Cloud Foundry BuildPacks. You saw me demonstrate there, as well as Heroku BuildPacks from our partners over at the Heroku team. And it's, of course, based on the Ubuntu operating system that you're familiar with. Thank you. If you want to know more about Cloud Native BuildPacks and how we envision it working inside of Cloud Foundry in the future, please come take a look at the talk we have tomorrow at 11.45. Thank you. Thank you. Outstanding. Thank you so much, Ben. Appreciate you coming. I'll just reiterate. My personal opinion is that the process of the Heroku BuildPack ecosystem and the Cloud Foundry BuildPack ecosystem basically coming back together again is perhaps one of the most important things that's happened in many years in the past part of the market. There's a lot of learning that's happened between those two ecosystems. And seeing that come together and benefit the whole industry, I think it's really positive, really productive. And everybody here is going to get to take a lot of advantage of it. So let's transition. I want to talk about the operator experience. The operator experience, there's a lot of components to how we think about operating platforms like this. And just like I can't talk about every project team and every part of our community, I want to zero in a little bit on the concept of scale. Because as enterprises start to use this more and more, the scale demands become very different. And there are a lot of service providers that have achieved very large scale with Cloud Foundry. Now, service providers and the enterprise, they have a lot of similarities in how they operate technology. But there are some pretty significant differences. But I think it's worth thinking about how can we continue to improve the platform? So this is a bit of a point that I want the contributors in the community to hear. And I also want those of you that are users to think about how as you run into scaling challenges, you can provide what is in fact the most important thing that you can provide an open source ecosystem. Your opinions, and your experience, and your feedback. So we're going to go back to a couple of case studies. And I remember yesterday, some of the folks from Comcast chuckled a little bit. I fixed it. Sky has been acquired by Comcast. But let's just zoom in specifically on this Sky business and their scale. This is 3,000 requests per second, just for their use to back the mobile services part of their environment. They've got 300 developers working on the platform. That's impressive. That's impressive. Home Depot is another good example. You didn't hear about them yesterday. But we do talk about Home Depot on a fairly regular basis because of the work that they've put into scaling their technology organization overall. To give you a sense for Home Depot's use, 2 billion requests a month, they've connected the environment to tens of thousands of devices. And they have over 2,500 developers currently building cloud-native applications. That's a lot of developers that need to be serviced. Now I actually want to switch, and we'll talk about a provider because there's a continuum of scale here. And we have a number of providers at a very large scale. I picked SAP in this particular case because they have an interesting story in that they use Cloud Foundry for a significant amount of product development in addition to being a core part of SAP Cloud Platform, which is the product that they offer to customers. So if you look at their internal environment scale, they're supporting over 20,000 developers that are building new business applications that they then go and sell to their customer base. In their customer environment, they have 10 different, they call them estates, right? 10 different environments overall. Their largest is actually pretty large. At this point, 44,000 running containers in the environment, and it continues to grow. So we have this continuum of scale and different needs, different organizations have different abilities to operate, different amount of investment they're going to put into operations teams. But if I summarize some of the opportunities that we have, when we think about the scaling demands as we continue to help underpin a lot of the businesses around the world, I'm just going to pick three areas. I think in Bosch, the release automation tool chain, that project community could really spend some time with the larger providers thinking about parallelism, right? How do you handle these incredibly large deployments for rolling updates? And are there things that we can do to improve that so that the updates, while working very well, don't have to necessarily take as long, right? Let's look at things like parallelism. For the application runtime, I mean, that's really where all these containers are running. And the nature of scaling software is that you bump into different edge cases, you see it stressed in a particular direction. But just a reminder for that part of the community, think about scale for every new feature that gets added. Think about being able to apply quotas to every new feature that gets added because that's how these large scale deployments are able to actually continue to evolve and support the workloads that they have. And last, our CLI team, right, that developer experience, it's a similar challenge there because the 80-20 rule, right? 80% of the time you're dealing with a single developer. But as these environments scale, the operators that are trying to do things like, for example, get a large return set, list all the orgs or all the spaces, these large return sets have become problematic at a particularly large scale. So I don't say this as anything other than presenting opportunities for all of us to think about how we can, one, inform the contributors and committers that are helping to build the software. And two, if you're a contributor and a committer, remember that at this point, the Cloud Founder software is being used in enormous environments and we're just seeing more enterprises continue to grow the scale of how they consume the platform. And we're gonna continue to see stresses and we need to evolve the architecture to account for these new stresses as we hit new boundaries. So now let's actually think about the architecture itself. There's two major changes that we're gonna highlight today. Again, I cannot possibly fit in all of the amazing work that the different project teams have done over the course of the last six months, much less the last year. But let's focus in two specific areas. What's inside Cloud Foundry and does that manifest in new capabilities for the end users? So the first area that I wanted to focus on, and Yui demonstrated this with weighted routing, the first area I wanna focus on is the networking part of the application runtime. And there's been some change in the way the project teams have configured themselves. We've combined our container-to-container networking which was dealing with application-to-application connectivity with the routing team. That was dealing with ingress, egress out of the environment. They've merged. And they've merged because the integration of Istio Pilot, the integration of Envoy Proxy, those things have proven valuable for both of those sets of use cases, right? Into the platform, out of the platform, between applications. And that's unlocking new capabilities, like weighted routing as an example. And there's a number of others that are on the roadmap. The other thing that I'll point to about this effort is that when we build bridges into other communities as contributors for Cloud Foundry, we can improve that community and the industry overall. And I think in terms of Istio, that's a great example. We just talked about scale. And as the Cloud Foundry community got involved in Istio and started to integrate it, scale became part of the use cases that they stepped into the Istio project with. And they said, look, we have these scale demands. How can we work with you to continue to scale Istio so that it can support very large environments? So that's actually an amazing success, right? We're building bridges with other communities. We're bringing software into the overall platform. That's a great story of evolution. So the next one, and Abby mentioned some news about this, right? We're very happy to say that the IRENI project has evolved quite quickly. It represents an option for, can we use Kubernetes as the underlying container scheduler? What use cases will that work for? Can we make sure that it can do all the same functions that Diego can do? There's a lot of work to be done to really reach feature parity and then reach scale parity, but it's work that is accelerating and the work that's moving very quickly. So Abby mentioned, it's passing the initial cat suite. Google and Pivotal have joined IBM, SAP and SUSE on the project, committing to it full-time. We are seeing early adopters start to adopt the open source version of IRENI. IBM just announced that they have a technical preview that uses IRENI. I believe that SUSE, if they haven't announced already, is probably pretty close to doing that. So there's an amazing amount of progress that's happened there. Now, I've been rambling for a little bit. It'd be cool to see some more command line stuff. What do you think? All right. So let's actually get Julian to demonstrate, but before he comes on, let's get him to demonstrate the IRENI project. So Julian, Jules Friedman, Dr. Jules, from IBM, he's the project lead for IRENI. He, you know, we talked before the event and he promised me that this was going to be amazing. But last week, he realized he had to practice the demo. So let's see if he did.  Musted. All right. This is the hardest part of the demo. USB-C. Maybe it worked. We'll see. So click it. Yes. All right. So we're going to talk about IRENI. IRENI is a little project we have been working on to do Cloud Foundry on Kubernetes. Chip asked me to show you an architecture diagram. This is what I call a squintergram. It's supposed to squint at it and see that it looks complicated. Yeah. Right? So the blue bit on the right is Diego Container Scheduler. On the left is all the other stuff around that. How do we convert this to let you use Kubernetes instead? Done? I make this look easy. You probably want to dive in a little bit and we will do that. So what's really happening inside that IRENI box? We're taking that CF push developer experience instead of mapping the applications to Diego LRPs, we are mapping them into Kubernetes native objects. So as you see a push, you get apps within Kubernetes. As you scale, you get more apps in Kubernetes and under the covers, that's all just Kubernetes YAML, Kubernetes objects that we're updating. So I'd love to show you a demo. Let's swap to terminal. Here we go. So I thought IRENI is Cloud Foundry on Kubernetes. I thought to get started, let's just look at Cloud Foundry and Kubernetes and just say like, how do they differ? How do you use them to actually create an application? So if we start on the right, I have a Cloud Foundry, have a little application. This is pronounced CFresh Prince. It's pretty simple. It says in central Philadelphia, born and raised. And when you curl it, it says ouch because I've always thought it must be painful to be curled all the time. This is Cloud Foundry Summit. I imagine you know how we push that to the cloud with Cloud Foundry, we say CF push. Then we say a little prayer that Wi-Fi works. No! Oh, I'm in the wrong space. Live demos are tough. Oh, that's not even right. CF orcs. No! Did you know that CF is really easy to use? Particularly the orcs and spaces, CF targets. Then you do a CF push. Good. I wanted to delete an app in another org earlier, so I was in the wrong one. All right, so we know how that works. Cloud Foundry takes that, uses a build pack, uploads it to the cloud, builds it into a droplet. We're probably less familiar here with Kubernetes, so let's just talk about how Kubernetes does a similar thing. So I have a similar app. This one says in Kubernetes is where I spent most of my days. How do we push that to the cloud in Kubernetes? So we start with this thing called a Dockerfile. So a Dockerfile is kind of like a build pack that you maintain yourself. I got this from a little web app called Google which stores Dockerfiles for you on the internet. And in order to use that, I say Docker build. This is already in cache. It's nice and fast. And I've built that into an image. That's the operating system is built into an image. So run those commands, get an image. And then I say Docker push. And then I put that image onto a registry somewhere on the internet. And it now has a URL that I can refer to that image with and run it wherever I want to run it. So next step is I will edit this thing called a deployment YAML. This is written in an entire abomination called YAML. In this case, I'm using a deployment. I could use a stateful set or a replica set or a few other things. This is a deployment. Two things to notice. It's got the name. It has this thing called replicas. That's how many of it you want. And in this case, it is the thing in this template. So spit out a number of this template. So this number of pods that look like this. And it has the image that I pushed before. So that's how those are linked together. So once I've done that, I say kubectl apply. And that will cause that to exist in the cluster. That gives Kubernetes that state. It's going to go away and make it happen. I'd also do something like kubectl expose to give myself a service, a kubectl get services. And that will let me get the IP. There's a few other things I would do. I'd set up log streaming, set up network policies, probably set up some sort of CI, make the Dockerfile a little bit better, but basically CF push Kubernetes. Now, you may be thinking to yourself, weren't you going to demonstrate Irene? Why are you showing me Cloud Foundry and Kubernetes?  The CF on the right and the Kubernetes on the left are running on exactly the same Kubernetes cluster. And what we CF pushed is running in that cluster. So if I have a look, Kubernetes get pods. Inside the Irene namespace, we see CFreshPrint's S funny name. That is the thing we pushed, and I can prove it. So let's watch it. So we can see the pods that are running. And if I say something like CF scale, give me two instances. We'll just see that pop up a new container. So we've created another instance of that pop. So we can do some nice things. So because we have CF, we don't have to go setting up log streaming and fluentD and stuff that's set up for us. So if I just grab the logs and I can just kill the logs and ouch, ouch, it's actually quite satisfying. I recommend you do this if you're ever feeling stressed. If you're on a keynote stage, just do that a few times. So how does that work? Let's have a look at the YAML that Irene is operating. So we can have a look at the stateful sets. So I'm using a stateful set rather than a service. The one that it has decided is 2zjnc. It's also my password, not really. So let's have a look at that. This is the YAML that's like the deployment YAML that I created earlier. But this is the one that CF has created for me. It's a bit more complicated. It does a few other things. But it's basically the same. So you'll see the replicas element. That's 2 because we CF scale to 2. And everything I change in CF will result in changes to this YAML. You'll see we've set a couple of annotations. So we have here the application grid, the process grid. Those are the CF grids for this. So that's how we sync the Kubernetes state and the Cloud Foundry state. We check we've got those things matched. But one thing I thought would be really interesting to show you is if I float down here, we'll see this image element. People who know Cloud Foundry know that Cloud Foundry thinks in terms of droplets so that we can patch the images over time. When we did that CF push, we got a droplet in a blob store, not a container image. Kubernetes thinks in terms of images. So how do we square those two? Well, I actually just taught Cloud Foundry how to serve Docker images, OCI images, for all of the droplets. And that means we can do some quite cool things. So if I copy this, I can actually just run it. It's just an image. All this YAML is just Kubernetes YAML. The images are just Kubernetes images. So I can run that image. And I can say cat, var, vcap, vcap, home vcap, app, main.go. And Docker will just pull that image. That's the same image in the cluster. It will just pull it down and run it. So you want to reproduce your CF push locally. You can push the CF push locally. And there's our application. There's the container running the stuff that we pushed up there. So let's show you one more thing. This is CF application running on Kubernetes is running over here. If I flip over to a web browser, we could have a look at the demo directory. And this is CF running on Kubernetes. And my suggestion for a new CF Kubernetes not quite haiku. It says, in central Philadelphia, born and raised, in Kubernetes is where I spent most of my days. But now I'm chilling out maxing relax and all call and see if pushing some apps with a simplified tool. And that is CF on Kubernetes with Irini. We have tons of talks around the conference, much deeper dive demos. Thank you very much. That was amazing. Thank you, Jules. I heard what you said about V3. We'll talk later. Yeah. Yeah. It was your fault. OK. That was cool, right? Yeah? Interesting. OK. So before we move on to the rest of the show, I just reiterate, today we showed you some demos. I talked a bit about some of the evolution in terms of the operator experience. There's the CloudNative BuildPack project, which represents some of the shift in the developer experience. And you can truly see that our architecture is evolving. And this is something that's going to continue to accelerate. This community has that long history of evolving the architecture, evolving the platform, evolving the experience around it. We're continuing to see significant growth in the contributions to the project. More companies are getting involved. More people are getting involved. And I think that we're going to see this evolution continue to happen faster and faster at even greater scale with greater impact. So I want to thank you. That was the initial part. But before I kind of step off the stage and introduce our next speaker, Pivotal had an announcement. And so I want to bring up Richard Sarota, Vice President of Product Marketing from Pivotal. Come on up. All right. Shake, hand over. Good walk-up music. Thanks. Yeah, definitely. All right. Take a couple of minutes. Yeah, after you on PCF25, what we just shipped yesterday. So just a few categories of things. We've already seen demos of things like Istio and Envoy. And that's a big piece of all of this. How do you integrate the best of open source? So things like Istio and Envoy, Kubernetes 113 coming in PKS about in a couple of days, Spring Cloud, Steeltoe, all these great things. And the monitoring indicator protocol is pretty cool.  So that's really neat stuff. Open source as well. And then there's more apps on the platform. So being able to support things like multi-port is really cool. I'm excited about that. We've been doing Windows support in PCF for years now, Windows Server 2012, 2016, and those sorts of things. Now supporting Windows Server 2019, which is great. PKS Windows, meaning Windows Workers as part of PKS, is going to be coming right around the corner. So again, excited about that. Supporting more types of workloads. Again, Steeltoe support, if you're a net developer, being able to pull that into Windows and Linux is great. I have a breakout later today at 2.15 on all the crazy things you can run in Cloud Foundry. So of course, skip every other session and attend that one. And then finally, automation. How are we just making it easier to build and run PCF? So platform automation is really cool. These are the components to actually build the pipelines to continuously deliver PCF itself, which is super great and handy as you have stem cell updates and product updates and things like that. I also like that you can have a single operations manager experience in PCF for both PKS and PAS in the same place. And find the last one that's really cool is the multi-foundation apps manager. Meaning if you have foundation sitting in Azure and AWS on-premises, OpenStack, whatever, I can have a single application interface that sees all of them and manages them all in the same place, which is really neat. So between all of those, it's some pretty exciting stuff. If you are a pivotal customer, you can go to PivNet and download today. If you're not, it's fine, nobody's perfect. You can find me around the conference and I'd be happy to tell you about it. Thanks. Awesome. Thank you, Richard. Really appreciate it. Thanks for coming up.


Hi everyone, happy Saturday, Joe for jaspyscasebreaks.com doing a quick little fat pack break of 2019-2020 Panini Chronicles NBA This is Ram team break number 752. This is originally posted at 749. So I think I think there might be a handful of you Maybe you guys right here might have Your order your receipt say 749. It's actually for 752 Think we're back on track 753 is already up on the site big Thanks all these people all the teams are in so we're gonna do the break the pack break itself first and then at the end We're gonna give away immaculate first off the line spots. So there you go eight of them to be precise We're gonna do the break first. Let's roll it. Let's randomize it five into two seven times for each list one two three four five Six and seventh and final time after seven we got Cameron down to Sean Five into two seven times with the teams one two three four five six and Seventh and final time after seven we got the Kings down to the Suns Don't we have an NFL award show? I know it's a basketball break. Do we have an NFL award show tonight? Find out who all the where is that? Where's that broadcasting? Here's the first half of the list right here There's the Palakins right there for James There's the gris for Nick no trades in these little filler breaks But let's just highlight those top two teams and let's sort by column B. Let's print. Let's rip. Let's rock Let's roll. Let's give away some immaculate spots. We got to do one more of these packs and then give away To give away eight more spots sell some spots straight up Then we're in breaks fall on that first off the line box, which should be pretty awesome Those are you're usually pretty loaded. All right, here's the final print out right here. Thanks everyone All right, there's Nasrede Carson Edwards reddish Pascal Nice RJ Baird. He's been playing some good hoops Brandon Clark Hatchimura Yoko just had 50 tonight Garland We've got a second year Luka Donchich hometown heroes. We'll see him on TV tonight. I think that's Warriors at Mavs. It's a national game on Your local NBC ABC channel that is RJ Barrett Mike with the Knicks and Dallas is Cameron and got Jordan pool and Jared Culver back here All right now. Let's see who's gonna win those spots. Good luck So let's grab everyone's names from Sean down to Ryan and everybody in between top eight after Three Three easy times good luck one Two and Three now we're giving away eight spots. So from nine on down My apologies sad times Good news is is that we've got to do one more of these. So if you want to give this a shot again Feel free to on just these case breaks calm.  I'm Joe for jazby's case breaks calm Thanks for watching. I'll see you next time for the next one


Hello and welcome to Trinatia's special current affair. I am Priya Kumari and today with the topic Brexit Deal Done. Let us see why this topic is in news. So Brexit Deal Done recently British and European Union negotiators sealed a Brexit deal and with this UK finally left the orbit of 27 nation block its biggest trading partner. Now this deal came into the effect from January first replacing a transitional arrangement during which European Union rules continued to apply to Britain. So what is this Brexit or who coined the phrase Brexit? The Oxford English Dictionary awarded this honour to Peter Wilding when it added Brexit to its volumes recently. Let me tell you here Mr Wilding is the founder and director of the British influence think tank and campaigned for the UK to remain in the European Union in June's referendum. Now Brexit or British exit refers to the process of the United Kingdom leaving the European Union after 47 years in the economic and political alliance of European countries built from the ashes of World War II. Now the recent deal what does this deal cover? The two sides have been in complex negotiations since March to try to keep their trade in goods flowing from January 1st 2021. The deal announced means that this goods trade roughly half of the 900 billion dollar of annual European Union United Kingdom commerce will remain free of tariffs and quotas. However goods moving between the United Kingdom and the European Union will be subject to customs and other controls and extra paperwork is expected to cause major disruptions. The deal was negotiated on top of a formal withdrawal agreement reached last year which ensured that the extensive controls would not be put back on the sensitive border between European Union member Ireland and the British province of Northern Ireland. The third key element of the deal is dividing up fishing quotas between Britain and European Union. So here you can see this the total timeline starting from June 2016 to January 2021. Is Brexit finally done? Is there any further negotiations left? So yes this Brexit deal is finally done because Britain is out of European Union its customs union and the single market and no longer bound by their rules. Ties will now be based on the two sides 2020 diverse settlement and the trade and cooperation agreement sealed on Thursday like the last week. So what will change from January 1st 2021 onwards? So at 11 GMT on December 31st UK left the European Union single market and customs union. Under the customs union the UK could not negotiate with other member nations of the European Union separately. All European Union policies and international agreements. So this means that the free movement of goods people services and capital will stop from January 1st onwards as the European Union and UK will become two separate market spaces with distinct regulations. So we will see this the fishing was the major sticking point because of this deal was delayed. So now on this issue the UK will have sovereignty over its fishing waters one of the major sticking points during negotiations. The UK will leave the European Union's common fisheries policy on December 31st actually it's UK already left after this deal the European Union's common fishery policy. But the current rules will remain largely in place during the transition period that will last over five years. Which means European boats will continue to get more access to the United Kingdom's fishing waters and the two parties will jointly manage the fish stocks in European Union and United Kingdom waters. Now based on today's topic let us see the question. So the question is in the context of new Brexit deal reached between European Union and Britain consider the following statements. Now statement one under the deal there will be no hard border between Ireland and Northern Ireland instead the custom check points will be present at Northern Irish ports. The deal retains the backstop agreement till 2022 in order to avoid hard border between Ireland and Northern Ireland. Under the deal Northern Ireland will stay in European Union's single market for trade in goods. So which of the statements given above is our correct option A one and two only option B two and three only option C one and three only and option D all of the above or one two and three. So please comment the answer in the comment box I will be telling you the answer tomorrow so till then see you and have a nice. Don't forget to like share and subscribe to our channel and press the bell icon to never miss an update.


I'm very happy to be talking to Roland Espinoza. He's the Vice Minister for Telecommunications from Costa Rica. Thanks a lot for coming along. You have just liberalised your telecommunications market quite late. How has that worked? We moved in the last four years. For example, four years ago we had a penetration of mobile in Costa Rica of 60%. Four years later we have now 130% of penetration of mobile. The same is happening in the internet service providers. We now have more than 120 internet service providers in Costa Rica, which is really good considering that we have only four million and a half inhabitants. Is there an advantage in coming to the liberalisation process relatively late? We had the opportunity to learn from what was going wrong in some of the countries, which is the better legislation, what are the changes we have to move on. It gave us some time in the last four years. We just had our national broadband plan, our national telecommunications plan, our national eGovernment master plan, and we're transition to digital television. It is good to be late when you learn from the others' experiences. Because many other people have learnt that replacing a monopoly with a liberalised system doesn't necessarily for the consumer result in massive savings. Yet you can learn from that and have a market that's more heavily regulated to prevent a cartel developing. Yes, we analysed very interesting experiences in other countries and our model is different than in other Latin American countries. It's more like the European model. We have a difference between the regulator and the policymaking in the executive, so that it's a very interesting difference between the Costa Rican model and the other Latin American countries. We have an incumbent company, which is owned 100% by the government, and after one year of opening the market, this company is still more than 80% of the subscribers. Okay, now in September you're hosting a really interesting event with the ITU involving youth and ICTs. What are you hoping to achieve with that? We have been working with the private sector and the multi-stakeholder model in designing some public policies related to cyber security and teaching how to use responsible social media for young and children. Okay, thanks a lot. We're going to have to leave it there, but thanks a lot.


A sustainable and environmentally benign fixation process was developed to enhance the fixation rate and color fastness of natural dyes in textile coloration using a non-aqueous medium and a cationic dye fixation agent, resulting in significant improvements in fixation rate and color strength, as well as UV resistance and crease recovery characteristics. This article was authored by N. D. Yusef Hossein, Tien Ching Chiang, Wen Jiu Shu, and others.


This video is sponsored by Rolls-Golden Blacks, so go ahead and click the link in the description. They are having a Black Friday sale, but for now, let's get to the video. What up, fellas? It's your boy Johnny, and today I'm gonna be giving you guys a little tour of my office and studio. You know, before this, I was in New York City. I shared a room with Frugal Aesthetic, and that was the living room, the bedroom, and the office. It was really cramped, but it was a great time living with Christian. I learned a lot. And then I got to the point where I was able to do YouTube pool time because you guys, y'all are awesome. So today, I'm gonna give you guys a tour of my office and studio. So, I'm starting it off. Create, because in here we only create. Open it up. Now, I have these studio light setups so I can light up the room, but yeah, starting off, let's just start off with the studio lights. These come from Amazon. These help light the videos and produce a great image for YouTube because I'm into that type of look. I don't like to produce very low quality videos, even though this is kind of low quality because your boy has been stressed, so Johnny, don't edit too much in this video, all right? Talking to you. Let's move it on to this board right here. This is my goals board. Everyone should be writing down their goals. I know this seems very high. I'm not even close to any of these, but when you have the mentality of trying to reach these goals, when you look at these goals, you're gonna put in that type of effort. If I just put, oh, I wanna hit 50K by next year, well, I'm gonna put 50K effort in. I'm not too far away. And I wouldn't get as far as if I put 500K, half a million. Most likely, I'm not gonna get to that, but I'm gonna have the effort of trying to reach 500K and I'll probably reach higher than if I set like a 100K goal or something like that. So that's a little pro tip for you guys. And we got this right here. This is the gimbal that I used to shoot a lot of my videos. You got some dry erase markers. We got my backpack. And then we got the desk setup.  If we head over here to this right here, just tap to unlock it. One is the setting where it'll be for standing. I usually move my chair out of the way. Then I can just stand and work on this desk. It's a lot easier.  As far as contents on the desk, these are the lenses I use for my YouTube videos. I'm gonna link as much of this stuff in the description as I can. I know it is the holiday season and Black Friday and all that.  But this is the 55 millimeter 1.8. This is the best lens for Sony if when it comes to shooting portraits, outfit pictures, I use this lens a lot. This is the 16 to 35 lens, millimeter lens. I don't use this as much because this is an F4 lens and you have to really jack up the ISO or she had a lower frame rate and changed the shutter speed. But this has been very versatile because it's 16 to 35. So it zooms in and out and you can use it to create some pretty dope shots. Got some batteries for my gimbal, cameras for the battery, got a nail clipper. And then here's the monitor. We got my mechanical keyboard that I got on Amazon. I don't know whose brand this is, but honestly I'd probably prefer a brand like Corsair or Razer, but this does the job. This is my Huawei MateBook X Pro. It's the MacBook knockoff because I am a broke boy. And we got the Logitech MX Master II. The best mouse of all time. They just came out with the new one with the USB type C port. This is a mouse from Razer. And then we got my headphones. These are the Sony WH-1000XM3s. That's a mouthful. This is the best headphones I've ever tried. I wore this all the time in New York City. I cannot hear anything. I don't use it as much anymore except for when I'm editing because I don't live in the city anymore in New York City and back in New Mexico. I've gotten so much use out of it. I know Black Friday. There's probably some Black Friday deals going on right now. My AirPods, the original ones. So that means I'm not as rich anymore because AirPods Pro came out. So yeah, but I use these for editing sometimes whenever I don't feel like using these. Then we got the USB hub. All my hard drives right here. I need to get more storage because I'm running low. We got a limb roller, a plant, and then these pop figures. We got Boba Fett, Darth Maul because Star Wars is one of my favorite series of all time. What's your guys' favorite episode? Mine is episode three and that's because I am a millennial. But then we got my Halo Pop figure right here. Halo 3 is still one of my favorite games of all time. We got my water ball right here because I need to hydrate. We got the tripod, which I use whenever I film my videos. Then we got some sound foam. This place used to be so echoey until I put all these in and then all the furniture and stuff inside here.  Get some sound foam. It's not gonna echo as much. And it also looks pretty cool if you can design it really well. And then we got this wall out right here because I miss New York City. I'm gonna be moving back there as soon as I make enough money. And then we got this right here. This is the mic stand. So there's a mic on this camera. You guys probably hear it right now. I usually put the mic stand right here, bend it over, pause. Then you put the mic right here and then it faces down. You usually just move it out of frame and then the mic will still be right here and it gets really good audio. So that's a pro tip for you guys also being creators. Don't put it on your camera. Try and get the mic as close as you guys can as possible. Two boxes. I listed a lot of them in New York City so I just took the ones where I could resell the kicks if I needed to. And here are the kicks. So these kicks right here is a little sneak peek of my sneaker collection. These are just like my favorite sneakers that I don't wear too much except for like special occasions or when I'm at shoots. Probably except for this one. This is probably, I wear this more. But we got the acronym Prestos. This is the second gen. This was an impulse buy. I think Christian and I were talking about it and then he got the pink and blue ones and I just decided to get this one. It was really cheap too. Then we got my Jordan 1 Royals. The second pair of Jordan's I ever got. The Nike React LMA 87s. One of my favorite sneakers. Very versatile. Can go really well with the active wear look, tech wear or just lifestyle. Red ones. Classic sneaker. It's never gonna get old. I do prefer the bread toes now that they released but the bread ones still a great sneaker. Yeezy power phases. Probably the most worn sneaker I have in my entire collection besides vans. You get the cream retro look. It works with pretty much every aesthetic. It's easy to throw on. And it's pretty comfortable as well. And then we got the Holy Grails, the Union LA's Jordan 1's. Big shout out to Christian. I know I mentioned him a lot in the video but he's been a big part of my life and he's really helped me shape this channel and actually helped me improve my channel in general. He gifted these to me when I moved back to New Mexico. And because he was just downsizing his collection. And so I'm truly grateful to get these from him. Such an awesome sneaker. Then we got this clothing rack. This clothing rack I got on Amazon as well. It's got an industrial look.  Only use this as a background for my videos but you can also use it in your place if you have a tinier place. Like if you can live in New York City you don't have a closet. Get one of these and hang all your clothes. You can put all your shoes down there. You're good. I usually rotate these out in my main closet in my bedroom just to switch up the look of the videos. We got my sling bags right here. This comes from Orbit Gear. Tactical bag from Amazon. Really, really cheap. Got a Herschel bag down here and a bandana. Then we got the plant for some added texture, color and just some liveliness in the studio because fake plants are what's up without fake plants this place would be boring. Then we got some more sound foam right here. I like to design it as well as I can. Just make the room a lot more interesting and stop echoing as much. And then we got this light right here. So battery's charging right now but I usually put this in the background of my videos. Just add a pop of color. Yeah, there you go. That adds a pop of color to the video.  Chair right here. This is from Amazon. Very comfortable. Has some back support. Not too bad of a price. I just moved the desk down whenever I want to sit and then just moved away whenever I'm ready to work standing up. Here's the second studio lights and desk. I mean, aside from more sound foam up here, that's pretty much it. I do have a bathroom right here but a bathroom's a bathroom. Yeah guys, that is pretty much it. You guys saw a ton of decorations inside here. That really is what makes the studio mine, you know? Or bedroom yours.  And I like to think of decorations like this as like your accessories for your outfits. So that's why this video is sponsored by Rose Gold and Black.   Accessories express who you are as a person.  So right now, if you guys click the link in the description, it's gonna take you to my specific landing page. They have a huge, huge Black Friday discount. Plus, if you guys enter the code Black Friday, you're gonna get an additional 10% off. So if you guys have been thinking about picking up an accessory from Rose Gold and Black, I definitely highly suggest doing it right now. You're probably not gonna see a deal like this again until next year. A lot of their beaded bracelets and necklaces go really well with my outfits. They're super minimal. You can color block it really well with your outfits.  So that's why if you guys click the link in the description, you guys are gonna save a ton of money. And honestly, the support from you guys, if you guys buy anything, helps so much. I don't make any commission off of it just to be transparent. But yeah, go and check them out. Thanks Rose Gold and Black for sponsoring this video. And I hope this video helps you guys out. If you guys are a creator or just want a really awesome setup, I really do hope this video helps you guys out. I'm gonna link everything in the description as I can. Those are our Amazon affiliate links just so you guys know because it is Black Friday. If you guys click on any of the Amazon links and buy anything, I do make a tiny commission on that, which does help support the channel in the long term. But yeah guys, what else should I add in here? Let me know what video you guys wanna see next. Just wanna thank you guys again for making this possible. I was only able to go full-time on YouTube because of your guys' support and because of sponsors like Rose Gold and Black and many others. So yeah, this studio, this whole YouTube lifestyle I'm living right now, you guys are very much a part of that as I am working towards it. You know, Thanksgiving just passing.  So yeah, appreciate it guys. If you haven't already followed me on Instagram, go ahead and do that at Fly With Johnny Tye. Subscribe to this channel if you haven't already. Smash that like button for the YouTube algorithm. And until then, stay fly, stay animosity free, get some good deals on Black Friday and I'm out bruh. Peace.


Good morning. Hello there. Nice to see you. Great to see you. Welcome. Hello there. Welcome. Nice to see you. Nice to see you. Welcome. Merry Christmas. Merry Christmas. Merry Christmas. Welcome. Merry Christmas. May I open my hand? One, two, three, four, five. Oh, yes. Oh, yes. We're going to be ten years old. We're living in Palo Alto, California. Snowed west.  This is very funny. There was a one night in Los Angeles, a snowfall. And it was the same day. And at the time, we got into a car. Because it wasn't falling down, it was out on the road. So we went to Los Angeles. And took him up there and thought, I don't know where it is. You can see it's snowing. I don't know. I thought it was a pretty good observation. Good observation. The snowflake wouldn't last long when it hit that desert sand. At dawn. Because the temperature falls immensely. Minus four or minus three. Mr. President, if you are to give Israel more aid in 1986 and 1985, have you promised to give Israel more aid in 1986 and 85? Yes, thank you. This is Frank Rose. Claude Shirley. Mr. President. And this is Deesh Rode. Say, thank you very much. I can play Santa Claus now. She has one for your wife also. She has one for your wife also. Oh, I was Nancy, we're here, but I'll take it to her. Well, we'll play Mr. and Mrs. Santa Claus. Please. Thank you very much. Oh, yes. Oh, Dave, this is Steve. Thank you very much. Thank you, Mr. President. Okay, we'll go this way. Okay, Helen, you want to say goodbye? Bye. Merry Christmas. Merry Christmas. Nice to see you. President, nice to see you again, sir. Good to see you. Mr. President, pleasure to meet you. Thank you. I know, and I know the Legion has also been very supportive of many of the domestic things we've been doing too, and I'm most grateful. I appreciate it. We understand it's important to use our modern, of course, as political states, especially when it's generated in Beijing, I just completely tripped and fired any state from a follow-up trail. DMC? That's something to see those fellas up there in the spirit they had. We appreciate you, very much. President, we do a group So the book was down in Grenada, and now it's over in Beirut. He wrote the bag to the Armed Forces Journal that he had decided because every news story about Grenada either opened or closed the paragraph if Grenada produced more nutmeg than any other place in the world. So he wrote the bag that he had decided this appearing in every story was a code and he did. He said number one, Grenada produces more nutmeg than any other place in the world. Number two, the Soviets and Cubans are trying to take Grenada. Number three, you can't make good eggnog without nutmeg. Number four, you can't have a Christmas without eggnog. Number five, the Soviets and Cubans are trying to steal Christmas. Number six, we stopped. Mr. President, Mr. Walters and your point T are very, very cooperative with the American ways of enjoying a good relationship with the, and Colonel Bidgood. We want to thank you for that appointment. Well, I appreciate it very much. I always thank you. I sincerely appreciate that you're appearing in the convention. I just want to ask you and all of us who are delighted to say that we shall speak this year. When you'll be seeing him in the near future, Mr. President, would you tell him that we'd like to hold it there? Be happy to recommend it. Well, thank you so much. Thank you. It's your pleasure. We want you at our next convention, Mr. President. That's good. Thank you. Thank you. The President will sit down for a few minutes. Mr. President, I want to show you a picture. Mr. President, I use a pentagon. The Son of Arbor pictures are called the week before the storm. And I asked Mr. Rio today, yes, which of the storms? Yes, the last week was kind of a little short. I can't assure you that I will read every word. The question is, what does the President want to ask people? I am not addicted to giving it labels. But what we tried to do here, and I think we have been reasonably successful, is, first of all, to bring about an economic recovery. And I think it is taking place. I think it not only benefits the our country, but I think our country, just as it can export recession and economic trouble, our recovery here, I think can benefit the world. Certainly, along with France, in helping economic recovery in those places. When we came here, we felt that the United States had retreated from the position of strength that I think is important to certainly the free world of the Western world. I believe that we have succeeded in restoring our strength to the place that we have a real deterrent. We've had the longest period of peace in Europe now that we've had for many years, in all the major nations. We continue, ladies, and must be at peace. And we're dedicated to that. We're going to continue with our efforts to bring about some realistic reduction, particularly nuclear weapons. I believe that the course that we've found so far has made that more possible. There have been 19 efforts since World War II to persuade the Soviets to join the reduction of weapons. They have resisted every time, until this time. Even though there's a temporary low, which I think is part of the bargaining process, they have actually proposed themselves reducing the number of their weapons, which is the first time they have ever done. We're going to keep pressing for that. I think that's the best response. Mr President, I met you three years ago after the inauguration. You haven't changed? You seem even younger. Do you feel like you're going to start over again for the next four years? Well, I'm going to be making an announcement about my decision. On January 29th, Mr Buena will be... Let me say that my physical condition won't even have to be a consideration of what I've decided. No, I feel fine. I've felt better. Mr President, can I ask you a question? What do you think is the high frontier? It's a great problem. And I think we're going to present it in order to be ready for this space war. But without restricting myself to that particular approach, I have asked for a complete study and for research into trying to develop a defensive weapon against the nuclear weapons. But again, I am proposing that in the interest of hopefully being able to eliminate those weapons. If we could succeed and bring about a realistic defensive weapon against them, then my next step would be to inform the Soviet Union that we had this and now we were prepared to join them in eliminating all such weapons in the world. Mr President, thank you very much. You've been generous with your time. I hope it's near the end of another hard day. This time is great for these to take my book of pictures. We are the main supporters of your policy in this war. We are the main supporters of your policy in this war. We are the main supporters of your policy in this war. We are the main supporters of your policy in this war. You know what you're having to interpret for me is something about reflection on my early education. When I was a schoolboy, I studied French for a couple of years. Then, 1949, the first time I ever set foot in Europe, I found myself with a couple, married couple. The three of us were driving down across France. We met at Raymond. And I discovered that even though they were English, just 20 miles away, they had never been to France. They did not know one word of French. And I was going to be the only thing between us in science. We were coming to a town for lunch. And I started trying to remember that it was a long time ago, so I couldn't remember some of what I learned from my friend's study. So we came to the town, and I mentally figured how I'm going to fight. Where do we have lunch? So there was a gendarme, and I rolled down the window with a car, and I said, pardon me, j'ai grand fan. And he told me where was the best cafe. And my friend who was driving says, what did he say? I said, I have a slightest idea. I didn't hear the answer. Well, thank you all very much. Thank you very much, Mr. President. Thank you for these. Mr. President, thank you very much. Merry Christmas. Merry Christmas, and a happy new year. We thank you. Fortunately, yes, sir. Thank you, sir. I just wouldn't want you to be deprived of any of the lectures you're watching. Thank you, sir. Thank you. Good luck. Here's dinner. Thank you, sir. Well, there's just a little souvenir of the days of my partner's activity here. And I know that we're not saying goodbye. That's right. So it's a change of locale. So I can't wait to get back on the campaign. I was there in 76 and again in 87. So I'm ready to go. Thank you for everything. I have a feeling that Kerry wants to sign in and put this book out for you. It's working under Carmen, you know.