Okay, so I guess it's a good time to get started. We have a pretty tight schedule. I'd like to thank you all for joining this session, showing interest in Linux and encryption and in performance. So those are the three topics I'm gonna be talking today to you. My name is Daniel Soldo. I'm a performance analyst at IBM R&D in Germany and the southern part near Stuttgart. We have one of the largest IBM R&Ds outside of the US. So basically to know a bit more about myself, just short introduction, I'm actually coming from a little country in Europe called Croatia from the city of Split. Four years ago, I did my studies there and let's say four years ago I made a jump into the southern part of Germany in a little town called Bublingen. The main reason and probably the only reason to do that was the IBM R&D in Bublingen. So as mentioned, it is the largest IBM R&D outside of the States. And besides other things, it is also the home of Linux on the IBM Z platform. So this is basically the stuff I'm doing there, combination of Linux on Z, performance evaluation and crypto, and let's say the performance evaluation of the crypto stack on Linux on Z. And Linux on Z, IBM Z is basically the mainframe. So I guess it's a pretty known name during all these years. This is a picture of the first mainframe released in the 60s, so it's a pretty, pretty old platform, but it is still very much in use and currently it looks something like this. So it's a very modern platform, it's a scale-up platform, so you can imagine it as a very, very big server. The current version goes up to 170 CPUs, each CPU running at a rate from 5.2 gigahertz. So it's kind of a really powerful machine. Most of the airlines today, most of the insurance companies today, most of the banks today are still relying on this machine. We have Linux running on it and it is a growing business, the interest is there. So I'm gonna see the future should be interesting to work on it on. But today's talk is motivated by something called data breaches and the last year or two, we're seeing data breaches getting quite a lot traction also in the media. So we don't have a month without seeing a big name, without seeing a big name, a big famous company having a data breach there. The interesting fact about data breaches is that it isn't always someone else who suffers from them, it might also happen to your company, it might also happen to some partner company you're working with. And there are some interesting facts we found out in some of the recent reports we had. And with the most shocking ones are maybe that an average data breach costs around $4 million. So it is a serious trend which should be taken seriously as well. What I found interesting about all these data breaches in the last, I guess in the last six years, only 4% of the data which breached was encrypted. So everyone knows about encryption but we're still not doing it enough. And Europe, we had last year a interesting regulation called GDPR, General Data Protection Regulation. And in one part of GDPR, they state that companies may face fines up to 20 million euro or 4% of their annual turnover, whichever is bigger. It still doesn't mean that it can be taken as simple as it is stated because there are a couple of measures all the companies can do to avoid paying such big fines such as reporting the data breaches as soon as possible, such as giving their customers some other benefits to avoid big costs for their customers. And last year, so GDPR came around May last year. So one year after, we had around 56 million euros in fines. Interesting fact about that is that the biggest fine was around 50 million euros. So the rest of the fines during the whole year, there have been around six million euros which have been distributed on different companies. So the rest of the fines haven't been that big but the general opinion is that the regulatory body of governments are still warming up. So the bigger fines are still going to show up. A few examples, this is pretty fresh news. We saw the ICO from the United Kingdom. They showed that they stated their intention to find British airways for around above 180 million pounds and Marriott International with a fine of around 99 million pounds. So there are some serious fines there and we gotta keep track what's gonna happen with those companies. But yeah, the situation is getting serious. One interesting thing there is that the data breach fines, they may sound really serious. They may sound big, but that's only the tip of the iceberg. There is a nice study from Deloitte. They showed that it's only the tip of the iceberg and that the real costs are actually hidden at the moment the real costs will hit the companies in the years to come. So for example, they identify the value of lost contract revenues during the next five years or for example, the brand devaluation is going to happen during the next couple of years. So they identified those costs to a company as a much more serious than defines. Anyway, they are ways to protect yourself and there's a site called GDPR Associates and you may find it online. They prescribe a number of methods how to protect your businesses from data breaches in an efficient way. And maybe the number one way to protect the data is encryption and crypting it and having a backup policies. This is for most of the businesses, the number one step to go. So maybe some other examples are updating security policies doing regular risk assessments. But I would like to point out this point, staff training and awareness. So there are a number of reports recently which showed that and I guess in the first quarter of this year around 70% of the data breaches were caused by employees having their passwords saved in plain text files. So raising the awareness and providing some more education to the employees is of great importance to play the data protection game. So let's get back to encryption. It's been identified as the number one way to protect yourself. And what about encryption? Why should we actually do it? I tried to divide it maybe in two groups. One of them is to prevent the data breaches and we saw a number of data breaches which happened and they have been serious only because of when the breach happened, the data was exposed directly. It wasn't encrypted. So for example, Equifax, they had a huge data breach once the attacker was inside, he just found huge databases full of plain text data. So it was like just take the data without any consequences without any obstacles. So encryption is a very simple mechanism to maybe not to implement but for a lot of people to understand but it's a very powerful in terms of it helps very quickly to reduce the attack surface. And the other side of the story is big enterprises, they do business with a lot of, in a lot of different industries and all these industries have some regulatory bodies coming up with regulations which they should follow. For example, the payment card industries regulations, the GDPR as mentioned before or the Health Information Privacy Act. So to be compliant with all these regulations, a lot of them request the big companies to have encryption mechanisms implemented. So by having encryption implemented, it is a very quick way to be compliant to a lot of these regulations. And there's this big question, why are we still not doing it? And maybe one of the first answers there is performance. When we talk about performance, the second thing everyone thinks about is IT costs. Okay, it's nice and simple, I will implement it but then I will have my IT costs, let's say raised by 30%. The IT folks, they are faced every time and in a lot of discussions with executives how to reduce the IT costs and then they come up with some crazy idea like encrypting everything and then the IT cost jumps 30%. So no one likes to hear that. Missing skills as both a technical reason and a organizational reason. So find the right people and educate. No one, I mean, we all have a lot of stuff to do and we lack some time to do the proper education but yeah, that's a time management issue all the companies have to face. It's also interesting to see that there are countries which block encryption of data. For example, HTTPS, there are countries which block HTTPS and if they not manage to block it completely, they try to in a few different ways they try to degrade the performance of HTTPS. So they are a couple of also political reasons why encryption isn't implemented in some cases. But the focus of this talk is actually on the performance of encryption in Linux and how did it evolve and what actually happened in the recent time. Recently, there's been with visible a focus of a few vendors to show that low-cost encryption is actually possible. So marketing charts are often getting charts like this. For example, from the Intel platform using the ISNI instruction which would improve the IS performance on the Intel platform. They claim that there's less than 1% overhead to encrypt 100 gig of data using the ISNI instruction. IBM, for example, with the IBM Z platform we had with the recent machine, there's been a aggressive marketing campaign called promoting a feature called pervasive encryption. So the focus has been all the time, okay, let's shift from selectively encrypting only critical data to pervasively encrypt everything we have in our systems. And to do that, we had to do some hardware optimization. We had to improve the actual infrastructure we had there. So there have been a couple of hardware optimizations which led to significant performance improvements. So we saw in some cases, we saw up to 18 times faster encryption or in some other cases up to 93% lower cost of encrypting. So just by switching off, just by upgrading the machine to the latest one. And yes, while talking about encryption in Linux, we can separate the whole encryption on three different groups. So the first one being data in flight or data in transit encryption. Maybe the most known, most used algorithm standard, there is TLS, which is actually in Linux implemented in the OpenSSL package. There are a couple of other examples, but a couple of my next slides are gonna be talking mostly about the TLS standard. Data trust, when talking about data trust encryption in Linux, mostly the discussions start with Lux and DM Crypt and everything revolving around them. Data trust encryption, it's interesting because we may talk about different levels of encryption. They're about different granularities. So we can talk about file system encryption, for example, or let's say database encryption. So it's just the difference, the granularity. Data news, it's a quiet, trendy topic. It's been, we saw on the first day of this open source summit, we saw at the keynote that this week, there has been this, how is it called? Confidential computing consortium presented and it's actually handling this issue. There are a number of vendors, a number of companies who are joining forces and we see a lot of movement in that area. So these are some examples of technologies already available there, but be sure that now in the time of cloud computing and the time of multi-tenancy, this is a very important aspect of encryption and the focus is getting and getting bigger, I guess. About TLS, Google has an interesting transparency report and this transparency report, we may find that since 2015, there's been a great increase of usage of TLS. This chart shows only the usage at the Google Chrome browser and it's kind of interesting to see, okay, right now we're mostly above 90% of TLS coverage on all the websites on the internet, but it's also a bit scary to see that only four years ago, every second webpage wasn't using TLS at all. So an improvement has been made and yeah, it should probably not get worse. What happened last year? We had August 2018, we had the new TLS standard, TLS 1.3, it's been an update almost after 10 years of the TLS 1.2 standard. So finally we got an update and regarding cipher suites, we got only five cipher suites now. This is very, it was kind of shocking, but it's very interesting to see that TLS 1.3 is limiting us to the usage only of five cipher suites. It is quite different compared to the TLS 1.2, which had I guess almost over 20, 25 cipher suites to select from. The important news there is that we're limited only to use authenticated encryption ciphers for the symmetric part. So it basically means from all of the IS modes you may only use cipher suites which use IS GCN mode. And the other one is Cha Cha 20 Poly 1305. There are also some new crypto algorithms as mentioned Cha Cha 20 is there. And also interesting the key agreement method X25519, I'm gonna be talking later a bit more about it because it's using a elliptic curve named curve 25519 which brings in a bit more performance. And yes, and the key exchange part it restricts us only to ephemeral Diffie-Hellman. And the TLS 1.2 it's been possible to use Diffie-Hellman not ephemeral. So it basically means right now we have the key generation be mandatory. So every new handshake, every new TLS connection is generating the key from the beginning. So in a way it gives us the perfect forward secrecy. TLS 1.3 promises superior privacy, security and performance regarding performance. They simply by reducing the size of extra data and the handshakes they managed to get some of the performance improvements using these three different Cypher suites. I have some, the guys from Wolf SSL they made some measurements publicly available. So just by switching from TLS 1.2 to TLS 1.3 they got this performance improvement between six and 15% using these different Cypher suites. Elliptic curve cryptography as probably well known RSA was before was probably the most used asymmetric crypto algorithm. But in the recent years RSA suffered a couple of attacks and there are known vulnerabilities. So elliptic curve crypto is basically the way to go when talking about asymmetric encryption. And at this link you'll find an interesting comparison of the popularity of different curves which are available. We see that the P256 curve is still the most used and the most popular. Very interesting article. The author he tries to compare these curves to popular singers today. So for example he says that this curve is like Beyonce and this curve is like Cardi B. So it's kind of fun if someone's interested in elliptic curves. But we see the rising share of the curve 25519. And this curve is basically set as the default in the TLS 1.3 standard. And yes, we have some performance numbers here as well. And it's maybe important to note that these performance numbers one should take them carefully and they basically highly depend also on the application which is implementing them. These numbers are an example from a Nimbus Jose project using JSON web tokens. And they saw like 14 times better performance using this curve compared to the P256. Also, the curve is known as to have better performance as the prime curve. But another argument why someone should use it, well you may find that quite often online people like to use it because it's not a NIST approved curve. So they connect NIST with NSA and the government. So let's keep the crypto away from them. So I mentioned already the TLS 1.3 and forces authenticated encryption. So basically means moving all these cipher suites using ISCBC mode are moving to GCN. And some data from Firefox state that we already have the vast majority of websites using ISGCM mode. So around 88% of all the websites currently are already using GCN. Maybe more reasons why to switch to GCN. Different vendors have also noticed that GCN is the way to go. There are hardware instructions, hardware improvements in that direction. And this is, for example, a comparison of three different Intel processors comparing the throughput with GCN against CBC. And in all of the cases, GCN does have a lot better performance than CBC, maybe up to three times in the final case. At IBM with the Z14, as mentioned before, there was a great strategy in the direction of motivating people to encrypt everything. So the hardware improvements we introduced there when comparing the ISCY for modes, you may see GCN down here showing a improvement of around 12 times compared to the former machine. So the focus has really been set on improving the performance of the hardware there. ISXDS mode has also tremendously improved the performance. The point with ISXDS is that it's basically selected as the mode of encryption to go while doing data at rest encryption. So XDS is the preferred mode for data at rest encryption, data in flight encryption, GCN. The focus is clear to see. Intel also has some nice charts showing a lot of improvement in the hashing performance. Also CBC and GCN showing solid improvement to previous generations. When talking about DM crypt, it basically serves us as a good way to enable transparent end-to-end volume encryption. So one of the major benefits of using DM crypt is basically the transparency. What does it mean? It's a transparency in these terms means basically that the developers don't have to change any application code. So you don't have to implement encryption inside of your application. Your application can remain intact and they will write data encrypted at the disk. So the good thing about DM crypt as well is that it's basically a device-mapper target. So you can combine it with other device-mapper targets such as logical volumes, such as multipath devices and so on. And LUX, as you probably have seen before and know about it, LUX is, I guess everyone has it already on his laptop. So while booting the laptop, you'll probably provide a LUX password because it is widely spread and widely used by desktop, by server and by Android smartphones as well. So the Android disk encryption is based on LUX and DM crypt. So it may have different formats. The most popular one is LUX because it basically integrates a header in your encrypted volume and in that header it will be saving your encryption key. So if you're not using it, if you're using the plain mode, you will have to think of a safe place where you could store your encryption keys. These are some numbers I made comparing the latest IBM Z14 compared to the previous one. And to be honest, I was hoping to see the performance gap between no encryption and having the encryption turned on. I was hoping to see it very close, maybe below 10%. But in this case, I got around 20% overhead having the encryption turned on compared to the no encryption case. The third case is by using protected keys. Protected keys is basically a mechanism of protecting the encryption keys by encrypting them with a master key. So yeah, we may talk about it offline if someone is interested. Right now let's just focus on the clear key bar here. So I got around 20% degradation of my throughput just by turning encryption on. Important to note here is that in this case, the workload I had, it was direct IO and it was synchronous. So having synchronous IO basically means that every IO request is waiting for the previous one to finish so it can start. So direct IO meaning that I'm not using any means of caching. So I'm avoiding any kind of page cache in Linux. So in this case, I'm actually having one request encrypted and getting it down to the disk so I can then send the next one. So it's far away from a realistic use case. It's maybe, one could say that it's possibly the worst case scenario. But for us, it was kind of important to see how does it look like. And what happened is that by the end of 2017, we already had that Linux kernel 4.12. And with the 4.12 Linux kernel, it has been possible to extend the sector size at the device mapper level. So by having that in December 2017, we finally got the Lux2 support and Lux2 made it possible to use the 4K sector size in the encrypt. And just by turning that on, the encryption overhead also in this case got to about 8%. So this is basically what happened only in the Linux world. So this example is on the IBM Z14 platform, but it isn't bound to the platform itself. It is already shown on a conference 2016, I guess. It's already shown on a ARM Cortex processor. The guys, they didn't have that Linux 4.12 kernel at the moment, they just hacked the kernel, they had it that time and had to patch the kernel by themselves so they could use the 4K sector sizes. And already in this case, they got an improvement, almost a factor too. So the same effect seen on the IBM platform here shown on the ARM platform. So it's platform independent and could be tried on any platform. What also happened is in the beginning of this year, Google presented Adiantum as a new cipher for data at rest encryption. And the cipher is basically optimized for embedded devices, for IoT devices, for smartphones. And they claim it provides five times better performance than the usual XDS mode used for data at rest encryption. So it's based on Chacha 20. Chacha 20 having the maximum amount of 20 cycles, they used 12, so we could claim they were using Chacha 12 cycles. I'll try to go quickly over this. So just to give a few examples that hardware acceleration is really used first of all to offload CPU cycles from your main CPU and secondly to get better performance in encryption operations. So for example, the Z14 has co-processors on each core in the machine, you have a different, you have another little processor just specified for the crypto operations. Another thing are PCI express cards which are used first of all as HSMs and then of course also to accelerate mostly asymmetric crypto operations. Intel has quick assist technology which is also an interesting example. It's also a PCI card and it gives improvement in crypto. It gives also improvement in compression. Compression is very commonly combined with encryption because of performance reasons of course. So to be in time I go over a couple of future topics which are gonna be interesting in the next couple of years of course. Data and use protection, we already saw it fresh this week that there are big things happening and big things are gonna be happening I suppose in the next months, years. Cloud HSMs, HSMs are a topic for themselves.  So in these cloud environments, customers want to have safe mechanisms how to store their keys so that their cloud service provider can't even know them. Quantum resistant crypto, quantum computers are emerging, they're coming so people got together and trying to get some new algorithms which could resist also the quantum computers. And polymorphic crypto is also a very nice topic which is going to happen in the next time but the guys doing polymorphic crypto I guess they're hoping a lot to see the presentations of quantum computers so because with current computers they're lacking performance to do it how they would want. Quickly to just recap the key takeaways. So it's important to stay up to date with crypto and security news. So we have it every month, there's new stuff coming out just improving performance and getting new functionalities so keep up with the news. Another thing is we should raise awareness on the education level. We saw that a lot of data breaches are made because of lacking education and awareness on these topics. And performance evaluation of your workload it's also very important because different types of workload do perform differently by use of encryption or not. It is a good thing in every company to start doing the evaluation by themselves. And again, a lot of vendors of hardware they see the requirements in the encryption space. So there are a lot of improvements and as customers the best thing we can do is just try to use them and try to exploit them. And yes, and that should help you in your data protection journey. So thanks a lot for your attention. I guess we have maybe a minute or two for additional questions if there are some. Yes please. Right, right. So I'll repeat the question quickly. What are the tools I use to measure the performance to see the differences? I used, I guess, just two simple tools available at the Linux community. The one is a flexible IO tester, FIO.  But FIO and SAR, SADC, SISTAT, those are maybe some, this is one tool which may be used to just follow the system performance but I used it to get some more CPU utilization numbers and so on. Yes, side effect. So the question was regarding boot time impact. Yeah, that's a good one. But I guess most of the bigger systems are not, I mean, that could be an interesting question regarding containerized workload or virtual machines. But the focus was, in my case, was mostly on the bigger kinds of systems, let's say databases, bigger instances which don't really do a lot of rebooting in, if not necessary. So yes, but regarding boot performance it could be maybe, and yeah, but encryption isn't used that much in that step. Maybe secure boot processing is being done but it doesn't take a lot of the time in the whole boot process in both boot sequence. Yeah, another question, I'll say. Right, right, right. So the question was, do I have any experience with applications which would reach the encrypted data and what would be the effect? So I did some evaluation with a Postgres database. So having a Postgres database mounted above the encrypted volumes, both transactional, both data, both log, and I had a generator of requests aside, HammerDB, and it has been hammering the database all the time and I saw around 5% throughput degradation by having encryption implemented at all layers. So it was kind of interesting because this kind of benchmark is a microbenchmark. It's synthesized only to measure this particular part of performance. But having a database, for example, and then it's like more realistic end-to-end scenario. So in this case I saw around 5% degradation, so to say. So yeah, I'll wrap it up and conclude. Thanks a lot for your attention and have a great weekend. And yeah, before that, a great rest of the conference. So thanks a lot. Thank you. Thank you.


Men do very well with having a mentor following seeing what they do now The problem is is that the the role models that are out there for men are terrible They tell you either you got to be the version of masculinity that drives fast cars sleeps with everybody Parties all the time like this weird Billionaire character that anything else, but he's also super happy and satisfied with life or whatever that Version or you get this other version where it's like this emasculated weak docile Subservient, you know kind of whatever type of dude when in reality the best role models show you that they're good fathers They're good providers. They're good partners. They're disciplined. They're consistent. They're honest, and it's like an integrity integrity Like like media does not highlight that at all You don't see any of all the models all the models we get media are terrible. They teach men to be either Violent assholes or docile sheep very interesting


Okay, everyone, our ninth and final exercise in the chest caving fixing progression is the barbell back squat, because I'm guessing everyone is here to fix their barbell back squat. And today, instead of a barbell, I don't wanna go back in the garage. I have a pool cue. That's gonna serve as our barbell. First, quick recap. So we unlocked our lower back. We increased some of our core mobility first and foremost with the full rock back exercise. And then we taught our hamstrings how to turn on and our glutes how to turn on while we're laying on our back with the glute bridge exercise. And then we went to number three, which is for some reason I keep forgetting, oh, the rocking, yes. So we were laying on our back rocking back and forth. And we're holding those new mobile positions, that new rounded back position and keeping that with a little bit of ab tone while we rocked back and forth. Number four, we started to progress into more of a squat pattern with the backwards bear crawl, with the hips coming up, just like squatting down, right?  We went to the pool table wall and did a wall supported squat. We used the wall to help us kind of sit there and just find and feel our feet flat on the ground, find and feel our heels firmly in the ground, find and feel our back into the wall, find and feel a nice reach and a little bit of outer lower abs so that we could hang on to those while we're doing our squat. Remember the wall supported squat is easier than doing a normal squat because I have support. I have another point of contact on the wall.  We needed to take the crutches away. He said, while holding a pool cue has a crutch.  And so what we wanted to do is load our hip, but we didn't wanna just throw you into squatting with two legs. We wanted to see if you could do it one side at a time. And so what we did was we did a split squat like this and we had you reach across your ankle and tap the outside of your heel just like that. We had to try to see if you could maintain those abs, find those hamstrings again during a single leg activity. And then we increased the demands and we made you lunge into the movement. So it's the same kind of movement, but now we have more gravity to oppose. We've let your body weight start to accelerate towards the ground and then you catch it and then you stand back up. And then we moved finally to bilateral movements. Well, I guess we had already done plenty of bilateral movements, but we moved bilateral on your feet, normal looking squat. We grabbed a dumbbell and we held it in front of your body as a counterweight. See, this little barbell even works for that. I could reach it out and that makes it work really well. We did a goblet squat, okay? And we used that counterweight to shift you back to help you find and feel those abs while you're doing these squats, to help you find and feel those hamstrings, those glutes, to help you sit back into the right position, to help keep you from falling forward, to help you oppose gravity with your anti-gravity muscles, your hamstrings, your glutes. And we need all of those things because otherwise we put the pressure where you're used to putting it, which is your mid-back and that's why your chest is caving, right? So you'll notice I'm not talking a lot about chest caving here. I don't want it to cave, but what I wanna do is I wanna give you some directives. I wanna give you something to do about it. I don't wanna just say, hey, don't do that, which sometimes is fine. Sometimes there's a very appropriate cue and I use it all the time verbatim. Don't do that. But what I want to do is I wanna give you something to, after doing this exercise and trying this cue, I wanna give you some other stuff that you can keep to and that'll maybe make it easier for you in the long run. So that's my long-winded introduction, our long-winded summary of this nine exercise progression that we've done on fixing the chest cave. Last one, exercise number nine, the barbell back squat. Make sure your hands aren't too close together. Make sure they're not too relaxed and wide. Find some sort of, again, middle ground is what we're looking for. I'm gonna turn so you can see me a little bit better. Again, something slightly wider than shoulder width, maybe squat on down. Make sure you're not shifting forward and shift back into your squat. So normally I'm gonna tell people to just start that way. And if you find that you're not getting what we want, you're not able to feel your abs and hang on to them throughout the lift. Which I could do it pretty well there. Maybe you just need to set up a little bit more deliberately. So make sure you're not leaning back, arching back, tuck your hips, exhaling, that always helps.  And make sure you're looking forward as you squat. Oh, it's kind of falling forward a little bit. Oh, that's better. The reason I'm falling forward is I just did a nice squat workout that you may have watched about a week ago with my sister Maddie in the garage. And all the muscles that I'm supposed to be using are very tired now. So again, I feel my abs. Feel a little bit of hamstrings when I shift back far enough. Oh yeah, there we go. And then try to even it out. Push evenly through each foot. My feet are staying flat. You'll notice my toes aren't coming up. You'll notice my chest isn't caving because that's what we're trying to fix here.  Sometimes it's just too much weight, okay? So keep your ego in check. You can always progress back up, but what I want is I want every rep to look clean. I know your heavy reps don't look clean, but if you do a heavy, dirty rep, every time you work out, you're not training for strength, you're testing your strength, okay? You don't want to train into bad patterns. You want to train into good patterns. And even if you're not feeling that tired, like if I start doing this, and I'm collapsing towards the end, even though my legs aren't tired, and I'm just not able to shift myself into the position that I need to be in, even if I'm not tired, say it one more time, then it's enough, okay? We're working up to a technique maximum weight, not to a maximum weight, okay? There's a difference. When I lose technique, especially when I lose a lot of technique, I need to stop, okay? Keep your ego in check. That's been very hard for me. I say this as a loving father who's made mistakes to my children here. I've made them my own. I don't have kids right now, or I don't know, whatever. We're not gonna talk about that. I say that because I've made those mistakes, right? I've not kept my ego in check, and I've used too much weight, and I want to get stronger. I've wanted to get so much stronger that I just throw away everything that I know, and I just push myself as much as I can. And sometimes that's not what you need. Sometimes that is what you need, and you need to know how to push yourself and how to overcome adversity and stuff like that. I want you to be uncomfortable in the gym, but it doesn't have to be during the squatting. So you can do squatting with an appropriate weight, and you can find that your technique is going away, and you can find that you're trying to re-engrain a good technique. And what you might need to do is stop before you get tired from squatting, and then do something else. Maybe you go back to the glute bridge we were doing.  Hopefully you got one if you don't have one. You could do a hack squat, you could do a goblet squat, and you could use that as a loading implement, and you could teach yourself how to have endurance and how to deal with fatigue and still get a nice training effect while you're repatterning what you need to pattern. Okay, so that is the bigger picture here of retraining our squatting pattern to fix our chest cave. Hopefully you found this series helpful. If you did, please leave a comment below, maybe on all of the videos so that I know what you're getting and what you're not getting, so that I know what you like and what you don't like, because if you don't like it, I don't wanna keep making these, but the only way I know is if you tell me, okay, we're all about open communication here in this relationship, said your father. Oh God, I can't believe I said that online. That's all I got for you. Good luck with your squatting. Hopefully your chest stops caving. If it doesn't, we can try some other stuff.


Hello my name is Tobias. It's a third time that I have the honor to be here at the conference and to Say you something to and show you something which hopefully is interesting to you But the very first time that I trust the internet and This means something because I never did this before so everything is running with the internet Give a big applause to all the people who care about the internet. It's great Okay, let's see if it is it's stable my talk is about look development with cycles and I'm Very happy to talk about this because this is a very serious topic and in our commercial projects We have a lot to do with look development and today I will cover this here in my presentation So, um, for example, let's take this customer case Let's say you have a customer and the customer ordered you to do a rendering of an interior scene an architectural scene with a couch in the middle and painting on the on the back and floor and by the way, this is This is not a real customer project, but I I think it's a good to explain a look development and No, imagine that you have done everything right. You had a Briefing from the customer. You had a pre-production meeting You've got sketches. You have made pre rendering and test renderings And so you could be happy that everything on in about the information you need you have already and You start doing your job and after a while you finish the scene you switch on rendering you're waiting a couple of hours until it is finished and then you're proud of your work and you go to the customer and Present the results to the customer and what Happens very often is that's a customer says may be we can change something For example, this is a is a couch. It's more looking reddish and if the customer wants to Get the couch in another color for example black You realize that this was never mentioned before and that you have open you have to open gimp or Photoshop to arrange this and But you can handle this this is not a big headache for you, but unfortunately the customer continues the customer starts to think about Giving this couch here on the left a bigger room a bigger space in the image and to let the spot that I have placed here, which is Looking and directing light to the center couch To change the lighting a bit so that the couch on the left is also illuminated or for example That's the light are coming from the window into the room and illuminates also this couch So if the customer Tells us to you you are thinking oh my god this this would require me to do all the rendering again so you have an again to wait hours until your renderings finish and You are you are coming very soon out of your budget and this is a problem that we are facing in Every project and we need to cope this because we also want to satisfy our customer So what can you do? let's assume you have a couch which is in the more a reddish color dark red color and you want to Change the color to make it looking more black then at first you have to prepare a mask this mask It's not easy to set because you have some kind of de-focus in your scene You have a blurry background and the blurry foreground and you have to place a mask Exactly to to catch all the pixels from the couch, but after you have done this you can not only just Decrease the brightness in using gimp or Photoshop because You will lose all your highlights the highlights which you can See here on the on the couch and are very important to Transport the material of the couch so this gives you a headache and you have to cope with that you have to to set up a pipeline that can cope with problems like this and This is exactly the topic. I want to talk about today. This is look development look development covers two Disciplines the first is to really discover and define an artistic look so that is appealing that is Presenting a product in the best possible way, but also the second Topic is also very important here And this is to build up in technical infrastructure and implementation to achieve The artistic look defined in step one So this is look development on the one hand It's very artistical on the second hand. It's very technical and you have to deal with both somehow So what you can do in most cases is use render passes because when the passes allow you to manipulate all portions from your image Very in a very high detail without destroying other stuff in your image And for example, you have the ambient occlusion pass or the glossy pass or couple of tons of other passes in blender and now the question is Which passes should I use to meet the customer needs and How should I combine them to create a beautiful image at the end? And to answer this we can go into the cycles manual then there is Sketch or as an illustration and this is also the most important slide of my talk and This is this one it Defines mathematically How all those passes all those render passes can be combined or must be combined to achieve The combined image the combined image is a default render output of blender But if you render all those passes here diffuse direct diffuse indirect Translucency and so on and you combine it as it is shown here Where the plus is you can add the passes where the cross is you have to multiply the passes If you do this exactly as it is shown here, then you get the combined image You can compare it to the combined image that is coming out of blender directly and there is no difference So this is the way how compositing in blender works and the good thing is If you have understood this way how blender compositing works you can manipulate single passes of this scheme and To show you this I would like to start a screencast That is still loading Those a bit too long so that I switch to my plan B so this is a screencast I made some minutes ago and What do you here have is all those render passes in a interactive application? This is Blender. This is the Blender compositor and for example what you can see is That it's very easy to change the color of the couch For example make it more blue or make it more reddish or make it black. This is Not a problem. It's also very easy to change the color of the spotlight because the spotlight is the the only light here in the scene and if you change its color then the color changes everything in the scene you can also render out all passes for another light source for example the windows and I will now switch on the windows and you will see that immediately the scene is flooded with additional light So this has nothing to do with the hours of render time. It would take to render again the scene This is all done in compositing So the left on the right window. I will add colors for the left in the way I make it a bit red orange like and the right window a bit blueish to to mimic to simulate the darkness or the darker day outside and I switch on a specific look up table and then I can achieve a look That is appealing at least to me and this is the way how look development Works as it best. You can iterate very fast. You can try out things and you have to try out things. This is the the bread and butter of any artist of any compositing artist you have to iterate also together with the customer Now I make the lighting a bit more dramatic in order to get more contrast. I switch off the lights from the window and I do also overdo the spotlight Also the spotlight has a white color and you cannot go whiter than white So this is a limitation that you would have in your normal compositing software But if you have the single passes of the spotlight you can also increase the white to very high level and to and increase the energy So here is the last example Which what is also possible is to set the focus point In compositing and I will show you this now Right now the focus can can we dim the lights a bit? The focus is somewhere here in the front The spotlight here is very bright. It is very sharp And the wall in the background is very blurry and now I can just interactively Create a Defocus and I will let the camera now focus to the wall And you can for the first time see the paintings and now the defocus is coming back Okay, so this is what you can do with compositing and this Helps you to work with the customer because you need that kind of iteration if you are making Work with a customer who is not In a 3d and and needs to To see a different by variations This is a progress that I would love to see in my Projects at first we discuss the shape then we discuss material light background and camera and We have kind of agreement with the customer. So that's a customer Agrees on the work that was done so that we can go on to the next level And the problem is that the customer is not Um It's not in the 3d area and cannot understand how we are working. So for example, if I present to the customer A clay rendering like this Then the customer is some kind of yeah, I'm not very happy because the customer thinks. Oh my god. This is clay and I don't like to see my product in clay And um, you have to explain a lot. So this is not working So if I work with you, this would not be a problem You can just ignore lighting and material and environment and camera And you can focus on the shape which is currently our main focus But with the customer This is not working and therefore most of our projects Are not looking like this but are looking more like this and this gives you a headache because The customer wants to come back to all Decisions that we have made before And whenever you nail him down To approve something then he finds a way to circumvent this So we are always starting again to go on everything and You need a pipeline and this is my talk about That allows it to go back to the very first thing Even if you just are close to release in the next days Okay, five minutes left um, we are doing a lot of projects which Oh the internet is back Which I will just show shortly and all our projects are about customization So whenever a customer has individualized products products that can be customized Then it is required to render them live because you cannot make photos and show them in the webshop And for this reason, um, they use Life rendering technology and we are completely Building the technology on blender and we have a blender in the farm That is connected to the applications and to the GUI In the front end and can render live the images so that we can serve very Different customers in Different branches for example for the magnifying glasses or also in the fabrics industry Which is coming here. So this is a fitting simulator. So The customer can set up the body sizes and we simulate how the claws will look like Okay, um As I'm a bit late, I will skip some of my slides. So Light development is very important, but I have to skip it even a material development also very important environment development I will skip also, but Here I will spend two minutes Because this is very important and interesting To achieve a specific look It's very easy Doing this because blender has So-called lookup tables included lookup tables Transform a specific color From the input space to an output space and they were coming from the ages before digital photography when the photographers had to buy films of specific sensitivity And some films were made for daylight photography and some for interior photography Some can take a better red colors and some other And then some prefer other colors and in blender you can choose among 66 lookup tables and I have Discovered those and I made An overview where you can now see all those lookup tables What do they do with your a render output? You can just go through them. You see the link At the top and then you have an idea. What is How is your image changing? I done this Yesterday night or I started to do this yesterday night because um yesterday somebody Yeah told us that it's very difficult to do color management in blender and to understand color management So I started to look for an Survey how to do it, but actually I found none So I started to to create the survey on my own And the first part is already finished. This is the overview of the lookup tables and the second part And we'll finish tomorrow. Hopefully and there will I will explain how to use histogram waveform and vector scope to create a look Of your images that you like Okay, this was my presentation. I hope you learned something. Thank you very much for being here. Thank you very much for watching. Bye. Bye


What's up guys and welcome back to Pure Fix TV. We're back again with George, expert mechanic and rider. What's up George? What's up Amanda? Will you tell me what a flip-flop hub is? Sure, it's a hub that has both a freewheel and a fixed gear cog on it. The freewheel is used so you can coast for maybe somebody who's just starting and they want to ease into it. Some people like to go directly to the fixed gear, which gives you a direct drivetrain to where you can pedal forward and pedal backwards and the bike will move with you. All right, so how easy is it to change from freewheel to fixed? It's pretty easy, I can show you. First you want to loosen both of the bolts and then you want to take the chain off. Flip it over to the fixed side, put the chain back around it, and then you tighten the bolts up. And there you go. That's how easy it is to go from freewheel to fixed. Usually once you go fixed you don't go back. Thank you so much George. You're welcome Amanda. All right, now you guys know what a flip-flop hub is. If you have any questions for George or any of us you can leave a comment below or hit us up on Twitter at Pure Fix TV. Until next time, I'll see you in the streets.


The pride of winning the bid of a World Cup tournament such as the FIFA World Cup that Qatar will host in 2022 comes along with the responsibility for the safety and security of infrastructure and fans. To best plan for the safety and security of spectators, inhabitants and infrastructure, Interpol member countries hosting major sporting events can benefit from global expertise on safety and security. With this perspective, Project Stadia at Interpol General Secretariat has developed the following areas of expertise. The command and control strategy, Project Stadia advises the host countries to set three levels of command and control. The strategic level, for officials with a global responsibility of the whole event. The tactical level, the security managers of a sensitive site in a stadium or an airport, for example. And the operational level, for commanders on the ground such as those managing stewards inside stadiums and those dealing with crowd management and managing the evacuation of a stadium. Project Stadia helps also to identify the best practices required for each of these levels. The creation of a network of subject matter experts. Project Stadia organises experts groups at which experts share their experience on three main themes. Sports legislation experts group to advise legal requirements that are necessary for a major sporting event, for example to frame the use of private security companies. Physical security experts group discusses proven security measures to protect spectators and property from damage or potential attacks. And cyber security experts group which provides guidance on emerging risks and trends in securing the cyber infrastructure and governance frameworks. Border management. Interpol offers a range of tools and services such as stolen and lost travel document to help member countries enhancing their border security measures. Security debriefings. Stadia team interviews officials who have been involved in security of major international sporting events. All best practices and lessons learned will be available in the online Stadia knowledge management system. It will be updated regularly by contributors in sports legislation, physical security and cyber security and content will be validated by subject matter experts. This knowledge will only be available through the secure Interpol network. Thanks to Project Stadia, Interpol is in the process of creating a centralized repository of information on security of major international sporting events which will be a legacy accessible to all Interpol member countries.


We do have a criminal justice issue here in some cases, but we need to distinguish between those two things. The overwhelming majority of people in prison today are there suffering from substance use disorder in some form or another, and we need to make sure we're treating them appropriately so that they don't go back to doing what they were doing that got them into prison.


Yeah, I have not tried to pronounce the full name of Krishna. At least I can pronounce Krishna correctly, but I'm not sure I can pronounce the rest of the name correctly. You can just call me Casey. So Krishna is a senior personal engineer at Google. And I think he is currently based out of New York in the US, right? Yes. Awesome. Thank you very much for joining us. And Krishna will be talking to us about how to build your first multiplayer dedicated game server on Cuba. This is an exciting thing. We have a lot of gamers in the community here. So we definitely want to know how to do this. So over to you, Krishna. Definitely. Hi, everyone. Let me show my screen. Please let me know if everyone can see my screen. I'm just sharing my whole screen. It's not up yet. OK, it's up now. Excellent. I can go ahead and start the session, right? Yes, please. Yeah, OK, great. By the way, I'll be presenting the screen. If there is any pings, please feel free to stop me. But here's our agenda. So we'll just do some small intro. I'll be talking about the game infrastructure as a whole, how the game back and up front looks like. I'll take you through building a game step by step. By the way, I have a code script which I already executed given the time. But also, I have the code script which will explain you how to build or deploy a game server on Kubernetes. I'll also talk to talk you through another way of doing that using Agnes, which is an open source project. And I'll tell you the difference between doing the hardware versus Agnes way. And I'll summarize that, and we'll leave there. So within half an hour, I'll try to cover as much as possible. I have some simulation. I have two demos for you to look into and understand how the game infrastructure looks like. So intros, my name is Krishnichetanya. You can call me KC. That should be good enough. I'm a senior customer engineer working with Google. I've been with Google for the last four and a half years. Did a lot of roles in a random startup program in India. Moved to US, now working with enterprise customers. And their sales belongs to enterprise sales division. So that's me. Love working with startups. Love working with community. I love sharing what I learned. That's all about me. Now let's talk about the game infrastructure. So what you see on the screen is a typical, very high level game infrastructure. The way it looks like is you have multiple clients. It can be mobile, PC, handhold, whatever the client you use. You have a front end and you have a back end. And the front end have two components, game platform services and dedicated game servers. Dedicated game servers is a place where your game is actually deployed. Now analytics and game database is, again, at back end. Now, if you go deep dive into what is game platform services, this is where a lot of things happen, like leaderboard, matchmaking. So imagine I wanted to play a game with Abu Bakr. Now, we both actually join online. Someone has to match us for a game onto a dedicated server nearby so that we can play. So that kind of services happen on game platform. I mean, these combined together are called game platform services. This can be like online lobby, chat, inventory management, all the, you know, axillary services which you see on top of the games are kind of like, we can bundle them into something called game platform services. We have dedicated game servers. This is exactly where the game is actually hosted. This can be thousands, thousands of servers based on the game you're playing. It can be deployed in multiple regions. It can be deployed in multiple hardware, no matter where the game is residing on. Now coming to the game database, this is where, you know, game also comes with compute and all as well as assets. The assets are something where the images, the video files, all the assets which are like very heavy in size. They typically actually can be residing. I mean, you can create shared state where you can store the game assets in a game database and finally you have analytics pack. So where the query is, you understand what's happening within the game, the events within the game, all that information which are real-time happening can be captured in analytics pack. So these are like four major blocks. I just simplified a lot of gaming infrastructure for your understanding, but try looking at these are four foundational building blocks to build any kind of backend for a game server. Now this entire backend can be deployed anywhere. Like you can deploy it in on private cloud, you can deploy it on public cloud, you can actually do even make a fully managed solution. Doesn't matter. It's like you're running on Kubernetes, you can run it anywhere for this session. A lot of demos you will see, I created Kubernetes engine on Google Cloud. Just, it just makes my, you know, deployment easy, but you can choose to deploy that anywhere in any cloud or any public data center. I mean your own private data center. Now let's go through what happens when two players wanted to play. Now, this is kind of a traditional workflow where when two players, if you look at, I'm just turning on the laser pointer. So here are the two players who wanted to play a game. So there will be something called matchmaker who will decide who two players would be playing with each other or kind of match them, send a request to a service called a server manager, which essentially takes a game server from the machine cluster and then dedicate, I mean, send the request back to matchmaker, which will allocate two players on the dedicated game server. Now, rephrasing it, you send a request to matchmaker, matchmaker talks to server manager, server manager talks to machine cluster, dedicates a game server, I mean, takes out a game server, which is near to the players, send the request back, players directly connect to the machine cluster, I mean, dedicated game server, which the server manager decided, and then they start playing. Why don't you use load balancer and et cetera? Obviously, the latency is very, very important. The typical architecture of having a load balancer between clusters, all this doesn't work. So you need to think differently in terms of how two players talk, I mean, connect to a game. It's more like a server manager, some sort of code, which I would say the server manager talking to a cluster, taking the game server, sending it back to two people. That's how the workflow looks like. Now, the highlighted part on the right is what we need to concentrate on. What do we do to create a server manager, which will take a game server or how this deployment of cluster of game servers versus a server manager looks like? Now, I'm gonna show you a simple demo of a first bit of open arena, a game which I deployed on Kubernetes Engine. Now, the whole, there are so many constraints, don't look at this game as like a fully production game, but more or less a smaller version of a dedicated game server I deployed just before joining this call. So what I'll show, it runs one match, I mean, you can look at the constraints, it's not, what I wanted to showcase is this is not a production grade gaming, but obviously this is exactly what I just showed you on this screen, I'm gonna deploy that, I already deployed that and I'll show you. So before we go there, what is the step by step process of building this architecture? First of all, you can take open arena game server, you can set up, I mean, you can containerize it before you deploy into Kubernetes cluster and setting up a Kubernetes cluster, I did it on Google Cloud, you can, I had something called scale manager, scale manager is a service which will look into the cluster, scales the cluster if there is a huge load, that is an optional service, I did it because you just need to have that scaling on workloads, like you need to have more virtual machines available to you if the game is actually scaling. So scale manager is a service which runs on top of Kubernetes which will scale the cluster if at all needed and we verify the setup, we connect to the game server, we start playing the game. Now most of them is one-time work, setting up Kubernetes cluster is obviously done on cloud, we verify connecting to game servers, that's what we do it, like let me show you the script first of all, before I take you through the demo part. So I hope everyone can see my screen, right, like the game server, can see? Okay. As we can see your screen. Excellent, so if you look at the script for which the first time you install the tools, there are, I mean obviously the tools are Cubelet and Docker, you start actually downloading the game server from the storage which we have, once you have that, the second step is containerizing this. I don't want to go deep dive into individual commands but giving you a high level idea that this part is about containerizing and uploading it to content registry. Once you have that, this is an important step. As I mentioned, if you remember the first slide of what I showed you, there is a game server, game state and a game database. So the game assets has to be deployed on a storage which is shared with Kubernetes. So I created a virtual machine, attached a file, attached a storage file onto it and then, you know, cleansed, formatted the disk, set up my assets into it, deleted the virtual machine, had the disk ready, set up firewall network, created a Kubernetes cluster on Google Cloud and then attached the disk as a volume and volume claim. By the way, whoever is new to Kubernetes, think of it as a declarative programming way of, it's a container orchestration engine for containers. So what we are, for you to summarize the assets, volume is where the assets like the videos, audios, all that file assets of the game are located on. So I'm sharing that assets with Kubernetes engine so that I can start using them. Now the scale manager is something where, as I mentioned, I would use this program to scale my Kubernetes cluster, whenever it is needed, the nodes when it is needed. And finally, I deploy open arena using the Q, open arena which are already containerized, deployed R2 as my content registry. I'll go ahead and deploy. Let me show you my screen of where I deployed this. So if you can see my screen, this is a cluster which I created and here is, let me show you Kubernetes cluster. Kubernetes engine. So this is the cluster which I created open arena. If you look at, it has couple of nodes located in US. So now I've been running this before we joined the call. So what I did is if you look at, let's get the nodes, okay, let me show you. Now Qubectl pods. So you can see there are scale manager, which is running and there is open arena DNS, which is actually the node which, sort of the pod which is running. So this already executed and it's done. Now let's delete that Qubectl delete pod open arena DNS. Let's redeploy that open arena DNS pod again. Now let's deploy the pod again. If you wanted to see how the pod looks like, it's very simple. This is how the pod looks like. There is, it's talking to a volume claim where the assets are located and then starting actual in play is opening up a container with certain arguments, which says, hey, run this container, run this game server on a specific pod and make it ready. So it's a very simple service. Now if you go ahead and look at pods again, you'll see open arena running. Now let's do this. This is where my open arena is running. Now, so I just had open arena client installed and connect, let's connect to the server. It might be a small glitch, but you see it's connecting to the same server which I have and my game started. So let's exit the game. So this game is connected or running on an open arena cluster which I already deployed on Kubernetes, on Google Cloud and you can see the whole setup launching here. So if I delete the pod, imagine if I wanted to delete the pod again. Let's get the pods and let's delete the pod and let's start connecting the game again. You'll not be able to connect to the game. You see that? So what did we do? I'll just summarize the information again for you. I'm sorry, the console's open. Did I lost you guys? Can someone say hi? Yeah, hi. So what did we do just to summarize? It's impossible for you to like maybe reduce your resolution because there's some folks on the live stream that are seeing they can barely see the text. Sure, I'll expand that. So maybe I'll zoom it again for you. Yeah, thank you. Sure, thanks. So you missed nothing, by the way, if you don't even see the text because I'll share this script later, but for your information, what I did is I just deployed the game server. Like I just deployed, I just did the same steps. I containerized a game server which is an open arena game server. I set up a Kubernetes cluster, I set up a scale manager, I verified the setup, I connected to a game server and started showing you the connection directly. So it's a very simple task, step by step. This is how you can actually build a game server if you wanted to do of your own. And as I said, the Kubernetes cluster can be deployed anywhere. I chose Google Cloud. You can set up on your laptop, it can be done. Now the challenge with this kind of approach is if you look at the whole architecture, you're building everything of your own. You're actually building your game machine cluster, the server, matchmaker. The best part is you're getting all the benefits of Kubernetes, your parts are deployed, it's scalable, you can run anywhere, it's a hybrid cloud. Now what if I tell you there is a better way of doing this? So this is absolutely a perfect way of doing, but there is another way of doing that. So that's called Agonis way. Agonis is an open source project. Let me show you what Agonis looks like. Agonis.dev, so if you look at, this is an open source project dedicated to run dedicated games overs on Kubernetes. It was done by Ubisoft and Google Cloud. You can find all the kinds of examples, all sort of documentation on it, it's as good as a Kubernetes project. Now what Agonis does is, Agonis is a batteries included open source dedicated game server hosting and scaling project, which runs on top of Kubernetes. So basically what Agonis does is, if you are familiar with Kubernetes, it takes the controller part of it, creates a new controller for game servers, which it extends Kubernetes for gaming. So you don't need to do all that cluster deployment, it will do, I mean, Agonis can do it for you. Now, how does the game server looks in Agonis world? So the way a game server looks in Agonis world is obviously you take a game server application, create a, declaratively create a game server, and then actually send it to Kubernetes API. The benefits of that is, again, it can be deployed in hybrid environments, physical missions can reduce the cost, cloud bus can handle the capacity. Now, comparing that with the traditional architecture, traditional architecture, send them, it requires a matchmaker, send a request to server manager, server manager dedicates a game server, clients connect to the game server and you start playing. That's what we saw in our demo. Now compare that with Agonis, Agonis looks like this. Everything now is part of Kubernetes. So if you look at back and forth, there is nothing like, the machine cluster is only in Kubernetes, everything is actually outside, I mean components within Kubernetes. Now, if you look at Agonis architecture, now Agonis have, still have custom matchmaker. I'll talk about custom matchmaker in a while. There is another open source project called open match, which can do a better job of talking to Agonis and does matchmaking for you. But imagine you have a custom matchmaker again, now client wanted to play a game, like I wanted to play a game, I send my mission sensor request to custom matchmaker, Abu Bakr wanted to play a game, he sends his request goes to custom matchmaker. Now the request, the matchmaking is done there and the request would be sent to Kubernetes API. Kubernetes API will talks to Agonis controller, where Agonis controller will talk to a fleet, I'll talk about fleet in a short while, but Agonis controller will talk to a fleet, takes a dedicated game server, allocates a dedicated game server for us, send the request back to custom matchmaker, will custom matchmaker send that information to the clients and the clients connect to game server. Same process, traditional architecture, in an Agonis way, everything is Kubernetes. Now how you deploy a game in Agonis is very simple. By the way, before we go, how we can deploy Agonis has SDK integrations in different languages, have different functionalities. The reason why you need this kind of SDK functionalities if your game server wanted to talk to Agonis, wanted to integrate to Agonis to do a lot of activities, SDKs really help. So you can actually build your own, integrate your own custom game server with Agonis, start playing that. So it kind of gives you, it takes away the problem of you managing the entire cluster, Agonis does that for you. Your game server actually can talk to Agonis, can do a lot of functionality using SDKs. Now, it works across cloud providers, it does auto scaling, its auto scaling is very easy, it has local tool deployments and you'll have a dashboard and metrics for Agonis. This is how it's typical game server deployment, declaration looks like. So, let's take a first person shooter FPS game called Zanotec and if you wanted to dedicate or deploy a game server, you can now deploy a game server using same as what Kubernetes does. You can have a game server kind and you can specify the ports where the name obviously and you can specify the ports where the game server will actually open and run and the template of image of the Zanotec example, I mean, Zanotec game server, which you wanted to containerize and deploy. So previously, if you look at the script which I did, you do a lot of stuff for actually deploying, containerizing, deploying that, managing that and all that stuff, nothing. You just say, I want a game server like how you wanted a pod, you can say I want a kind of game server and this is my container, this is my pod and Agonis will be able to deploy that for you. So game server deployment is easy. Now, you want a fleet of game servers, you need multiple game servers, not just one. Now, you have another template called like another declarative way of creating fleet. So fleet is more like multiple game servers, same as how you look at deployment in Kubernetes. Fleet has multiple replicas, have a template where you can specify the ports and the template for image, which will run the fleet for you. So things boiled down to very simple. Now, the controller will be running that, running fleet, running game server for you. And the last one is game server allocation. Now, you have a fleet of game servers. Kubernetes API wanted to allocate a game server for you and send the request back to matchmaker based on whether the game server is available for connection or not. You don't want to delete a game server in which players are running. So these kind of requests are done using game server allocation. So game server allocation is another request which you can actually send where you will be matching with the name. The fleet, within the fleet, help me with a cluster image called Zonetic.  So putting this together, it's the biggest difference what you have seen from traditional way of deploying is you don't need to do everything of your own. Your extending Kubernetes functionality to build something called Agnes, which is a cluster, which is again having a controller of its own which will do the job for you of creating a fleet, creating a game server, creating a fleet, and then actually doing multiple game server allocations and then give you the back request again. So everything is now handled within Kubernetes instead of you managing it of your own. So it just makes the backend development so, so, so easy. Now combining this with something called Open Match will give you much more advanced features. So Open Match, you can write custom logic within your console, custom logic to create or find compatible players. Agnes with Open Match running together can actually build, you can build a better game server within very short period of time. Now to summarize, obviously, the request comes to Open Match. You can write custom match logic within Open Match, talks to Kubernetes, Kubernetes talks to Agnes controller and Agnes controller finds a dedicated game server within the fleet, takes the game server, send the request back to controllers where the people, the clients get connected. Now let me show you Agnes script again. So let me show you Agnes before we go to Agnes script. Here is what, how you can deploy that in Agnes. So I have shown you a big script for gaming on the hardware. So Agnes script is very simple.  And this is, let me quickly run that for you. I know we are running out of time, but let me show you a demo quickly. So what we are doing is I just created a Kubernetes cluster, and deployed, installed Agnes onto it and then deployed a game, that's it. So three-step process, very, very simple. Rest of everything is handled by the scaling, the deployment of a game server, everything is the packaging of solution, and then deploying that, everything is handled by Agnes. So you don't need to do a lot of hard lifting on your part. So I already created a cluster. If you look at the, sorry, I already created a cluster called Agnes demo cluster. I'm just reusing the same for this demo. And let me create a firewall. I mean, this is a tricky part because obviously I need to dedicate, open up a port with a firewall and then deploy Agnes into it. Okay, now let me go to boot engine. So this is a simple game.  So it's a simple server, game server running on Kubernetes cluster, on Agnes, that we created. So let me open a virtual machine and then send a request to this terminal and see what it does. I have five more minutes. Just give me a moment. I just wanted to show you this demo and we can close this. So meanwhile, if you have any questions, maybe I'll start answering them and then I can show you the demo before it loads. Any questions? I don't have any questions from the audience yet. You can probably go complete what you want to do before. I think I have a particular question I need to ask. I'm sorry, you have? Yeah, you can complete the rest of the demo first. Sure, sure. So this is what we did. I deployed a service. Now let's open a virtual machine and start pinging the cluster and see what it does. Okay, and this is where we are. This is where I always pray to God and see whether it works or not. First demo works perfectly. Now let's get the game server. This is the IP address on the port which I need to get connected to. And let's call this and see type in new. Okay. So I'm actually pinging the game server. I'm actually deploying. So if you observe this, let me zoom it a little. So if you observe, now I can say cube CTL gets game servers. Game server is another declarative but if I install organize, you will get game servers as another type actually. So I'm saying, hello world. Okay, it has a community.  So if I wanted to shut down the game server, I can do that. I can say exit.  So essentially what we did is I deployed a game server. I installed organize. I deployed a game server on top of it. I connected to the game server and then started actually playing with that from another virtual machine. So to summarize, the component is like the agonist way of doing this, again, clients request and agonist will do the fleet management to get the game server back to it. So this is what the two ways of like, if we go back to our agenda, what we discussed so far is to summarize. I explained you the game server, then I explained you how you can build the game from scratch by creating multiple services, like by containerizing game server and then deploying on Kubernetes cluster. Then I showed you the difference between that and agonist. Agonist is an open source project and how it is differentiates, how it extends Kubernetes API to give you much more functionality and how there is an SDK integration where your game servers can work with agonist and then explain to you multiple terminologies in agonist. There are a lot of examples for agonist. You can build, you can start playing a lot of games by deploying that. That is, you can play zonetics game on agonist very short time. All the examples are there in GitHub and you can find more information at agonist.dev and if you wanted to, I can actually share the script for deploying games over without agonist also and you can compare and contrast these two and understand how the game server works. So this is, I'll stop here and write out of time but over to you if you have any questions or else, this is it. Yeah, that's awesome. I think what we'll be looking forward to is sharing the scripts and your slides so we can share to the community. We'll send it to everyone that is VP and also when we are uploading your video online to also share the scripts and the first that you shared. Thank you very much for your time and it's been awesome having you. Thanks, thanks everyone. Thanks for your time. Yeah, I'm ready. Sure.


Pressure measurements show pressure values that are compared to a reference point. Common scales for pressure measurements include absolute pressure, vacuum pressure, and gauge pressure, and are characterized by the reference pressure used. Absolute pressure scale uses the absence of pressure referred to as absolute zero as a reference. In a pure vacuum, absolute zero occurs and pressure readings can only be positive. Unit of measurement for absolute pressure is pounds per square inch absolute, abbreviated as PSIA. When the pressure sensing device is exposed to the atmosphere at sea level, the measurement scale will read 14.7 pounds per square inch. A common method to measure absolute pressure is a mechanical diaphragm gauge. The diaphragm is a flexible membrane that flexes when exposed to pressure. On the opposing side of the diaphragm is the reference pressure, which is vacuum for absolute pressure. As the diaphragm element bends towards the side with the lowest pressure, it pushes on a spring that is mechanically linked to the gauge pointer and indicates the pressure value. For vacuum pressure, the scale begins at atmospheric pressure at sea level as the reference and ends at complete absence of pressure or pure vacuum. The unit of measurement for vacuum is inches of mercury. At sea level, the measurement scale indicates zero inches of mercury. And at pure vacuum, the measurement scale indicates 29.92 inches of mercury. Gauge pressure scale uses atmospheric pressure as the reference. The unit of measurement for gauge pressure is pounds per square inch gauge, abbreviated as PSIG. At sea level, the gauge measurement is zero. Measurement of gauge pressure can be positive or negative and is determined if it's above or below atmospheric pressure. Gauge pressure can also be measured with a mechanical diaphragm gauge. Using atmospheric pressure as the reference, the diaphragm bends towards the side with the lowest pressure that operates the spring that is mechanically linked to the gauge pointer. Positive gauge pressures are demonstrated with an inflated tire. When the sensing element is attached to the tire, a positive pressure is indicated on the gauge. Negative gauge pressures are indicated on the gauge with pressures below atmospheric pressure. Maximum negative value for gauge pressure is pure vacuum or negative 14.7 PSIG. Typical negative pressures include material handling of glass sheets using a vacuum gripper where air is evacuated from the suction cup.