Well, this is your second time at the Nexus Institute. What do you think makes the Institute special? And why do you think it's important that it exists? I think there's many reasons for that. The first and absolutely first and foremost is Rob Riemen, who is an absolutely crucial figure, I think, in Europe generally at the moment, who one of the very few people I know that has the courage to question things that nobody actually dares to question and to say things that nobody dares to say. And raise discussions on subjects which are absolutely crucial from a point of view which is not biased but actually interested in a true and sincere exchange on those matters, and that's the only way to actually come forward and reach any sort of progress on political, cultural and social themes. And I tremendously admire his work, and I think that his work basically gives a spirit to the Institute in many, many ways. And I think it's very important that a place which is not affiliated with a particular direction but just with the sheer interest of questioning things and creating such different situations and contexts where such a discussion, such an exchange can happen exists. I think very, very often these things happen with a certain agenda, with a certain goal. And I think the most beautiful thing about all Nexus projects that I've been either involved with or have seen that you never know what's going to happen. There is no clear goal with it. The idea is to bring a very, very diverse group of people together, throw them at each other and see what happens. You know you will be further than where you started and I think that's extremely important. Thank you for that. What has Nexus meant to you personally? It meant many different things. First of all, I will never forget the day when a few years ago Rob suddenly calls me up and says, well, Mr. Salomon just cancelled. Would you step in and do this master class with the members of the Concertgebouwork Orchestra on Mahler? And I was, first of all, completely overwhelmed by that. I mean, I was very, very young and it was a huge responsibility as well considering, first of all, the topic. And the fact that somebody saw in my work the sort of let's say the true core of it and gave me that chance and had trusted me with that kind of task was, first of all, very moving and important for me personally but also showed me that there is actual interest in the kind of discussion I would like to raise. And it's very rare to find people that are interested or willing to risk to that extent that just say I don't care if this person is famous, I don't care if this person has the right political connections. It's about I think that what this person is doing is right and it has to be supported and threw me straight into the most, I would say, most critical and in a way, in many ways also sort of dangerous, let's say, spot and said go do your thing and knew that it's going to work out. And that is, that courage is something I tremendously admire and I have in many ways seen it also as an example to follow in my own work and try to promote and encourage people that I believe in regardless of where they come from and what they have already achieved. Wonderful. My final question, this symposium that we are having right now it's about building, about education. What do you consider essential in any education? I think I could talk for three hours to answer that question. Oh dear. I'll tell you just one anecdote which I think will summarize the whole thing. When Rob asked me to write this essay, I first of all wrote on something completely different from what he asked me to write on. That's what usually happens. But just out of, as my very first initiative was I wanted to look up in the dictionary in a thesaurus and see what is the definition in a typical English dictionary of education. And then it says something along the lines of the act of teaching somebody something in a school. And I remember I was so shocked by that sentence. Basically, so the stuff you learn in school is what a dictionary sees as education. That was for me the first impulse to actually question what is it that we are giving or we are in a way leaving for the next generations to have. What is our cultural identity? What is knowledge? How do we define knowledge? We are living in times where I think most people consider information to be knowledge. And that is something that I think is profoundly mistaken. And what does knowledge actually become? And I found the whole occupation with this topic extremely inspiring to realize that knowledge has very little to do with facts and with information and education has also in its broader sense very little to do with knowledge but with an actual form of identity. And on that I could elaborate at length. I'll let you do that in this symposium. Thank you very much. Thank you.


This is less of a talk than it is an apology I Right last week in AWS and I host the screaming in the cloud podcast and I inadvertently have spent the last three years Misleading you all I've been a staunch advocate for cloud I now know that this was wrong and I wish to apologize unreservedly. It doesn't matter which vendor Google Amazon Microsoft Oracle. It's all the same. It is expensive and you deal with lock-in It's not acceptable. So instead. I'm going to handle it differently What you may not be aware of is I have a side project called Twitter for pets It's the leading social network for pets. It's like regular Twitter only 80 times less racist They're good dogs and We are not going to do it on cloud. We're going to build our own data center We hop in the Twitter for pets corporate jet with the pets and we fly to a different city We don't put our data center in the same city because of dr concerns and real estate in San Francisco is expensive We're based there because that's where the good developers live Our first data center we tore as a super nice security guard He lets us in and doesn't need to see our ID. That's an instant fail because we have auditors We manage both medical and financial data for the pets. It's a hard fail the second data center We look at our one-line diagram It's an art. It's an electrical graph of everything in the system. They show four transformers We walk through two pads two transformers. It's aspirational. It's a joke. It's a one-liner diagram We visit the third data center things seem mostly fine. We shake hands. We sign a three-year contract Everything gets done. We can start moving in in only four short months. We start buying servers from Dell It turns out that when we wind up placing orders We have to schedule it carefully if it goes too soon. We pay extra storage charges if they don't know it's coming They wind up leaving them out in the rain because of this because Dell screws it up We get both they leave it in the rain and charge us for it. We smile we sigh life goes on We unpack some boxes. There's no fiber. We don't need a g-bick Cisco screwed it up They sent us the fiber version instead of the copper version. We open a support case It only takes four short hours We then wind up building out our data center cage. We check it end-to-end it contains no children This is apparently a comp a hard thing to do This does render us ineligible for some government contracts, but that's okay unlike many tech companies We will not name Twitter for pets has standards It turns out we were wrong. There is in fact fiber there. Okay. We're gonna need that g-bick That's a bit of a problem. Fortunately that product case is still pending. We can swap it out It's annoying life goes on These are rack nuts. This is why everyone bleeds while building data centers.  There are four different sizes. No, they are not compatible Yes, we buy four different kinds because whatever we get we know we're going to be wrong We rack a bunch of servers 11 or perfect the 12th does not we begin diagnosing because we are adults and Professionals it only takes us four short hours to figure out the problem. The problem is it turns out as a failed cable This happens from time to time. We always have a cable tester for that exact reason We also bring in the world's best firewall. We cut the cable when we throw it away Why do we cut the cable before putting it in a trash? Terrific question. I'd like to introduce you to someone. His name is Dewey Dewey has a job that job is called remote hands He works for the data center and charges 75 bucks an hour to do simple tasks for 125 There's a smart hands option which really says insulting things about Dewey, but he's a trooper He lets it slide two o'clock in the morning in the hotel. We get a phone call. That's right Nagios It's the original call of duty. We rush back to the data center. What happened? Well, it's pretty obvious once we get there we go back and take a look at the networking side of things Remember that fiber? Yeah, it's loose for a reason. It turns out that one of the remote hands people decided to tighten it for us So it wouldn't get caught on anything tighten fiber. It breaks. It breaks. It doesn't pass light TCP now terminates on the floor. It's a problem We believe strongly in the in the culture of a blameless post mortem We conduct a root cause analysis and blamelessly determined the root cause is Dewey We talk about hiring potentially smarter hands budget makes that a bit of a non-starter We finally get back on the plane and who I fly back to begin work on our application And that plane is the only part of that story did that did not happen at a data center build out for one company This is not worst case. This is typical case, but we own our own destiny We are able to build out our own stuff without lock-in and now we can begin writing our code as soon as we finish Installing Kubernetes, which is a short thing to do when you don't get what you want You get character. My name is Corey Quinn. I'm a character


That was unexpected. Hey guys, so I watched another movie the other day and that was called Black Sea.  One, Jude Law actually was good in a movie. I don't know how you guys feel about the actor, but in my opinion, I've never really liked him in a lot of projects. He's I don't know. I've never really enjoyed his presence in a film. However, just the idea of Black Sea just sounded so intriguing that I had to watch it and in my opinion, it's a near-perfect film. It is so good. The characters are fantastic. The drama is amazing. The music works just right and the finale is great. There's only one little tidbit in it that I will get to later, but admittedly it's very good. The film is about a submarine diver or submarine pilot who's put out of a job by his company. So then he finds out from a friend that there was that this drop is one of the issues. This friend just drops this information that when before he was fired from his company, they went out into the Black Sea and they think they found a Russian Nazi U-boat that has a bunch of gold on it that was from the Russians during that. They did this transaction in the Second World War to try and keep allies. However, that U-boat never arrived, then Russia was invaded by Germany. So after they dropped this, they then figure out a way to acquire a Russian submarine and they get this crew of rag-tag people who have been kicked out of jobs and being beaten down by big corporations and they go down into. They also have to bring one of the corporations do cronies with them to make sure that the thing works out alright. So then they go down into the depths and everything from there is tension. An amazingly well done film and just the tightness of the film, the horror of the darkness and everything was just so well done. The characters, like I am serious. They have a lot of rag-tag actors in this film. They've got the guy from the squeaky guy from Killing Them Softly.  He always said, I'll go down that. And so it was so cool. They just watched this film and then there's obviously there's issues that arise, certain parts of the submarine stop working. And at one point when they really, when they get to this point and you really want them to succeed, the music just curms in and you actually, I actually stood up. I was like, come on. I was so drawn into this film. I was amazed at how well drawn in I was. And then the only thing that I really had an issue with is just how silly the corporation twist angle of it is. It's only, it's kind of brief, but admittedly it's one part that I thought, oh it's like, okay. Come on. That's like textbook comic book villain idea there. It doesn't dissuade from the rest of the film. It is more so just a dialogue drop. But otherwise I just didn't, I hated that part. Otherwise though, this film is immaculate. The camera work is fantastic. The shots of the death are amazing. The characters just so twisting and everyone is trying to survive in their own means and the manipulation. And also the other thing too is Jude Law's character is trying to kind of portrayed as though he's going crazy at the end, but he's not.  But anyways, the whole point is that Jude Law's character is supposed to be just drawn. He's basically gone out of his mind to try. It's a Moby Dick story. He wants to get his gold back because he wants to not get, he doesn't really want the gold for himself.  And that's what I liked so much about this movie was that aspect. But in the end, sort of like a cross-imaging of how the film ends. I won't reveal it, but it's still, I liked how it ended. And in the end, I'm going to give Black Sea a 6 out of 7. Honestly, you should watch it. It's a fantastic submarine movie. I love submarine movies even if they're awful, like U571. Really, watch this movie and I'm going to drop it now. Pause it right now if you don't. It's very much like a perfect storm. That was the film that I kept on bringing to mind. So it kind of ruins it, but it doesn't at the same time. Anyway guys, I hope you enjoyed this review and I'll see you guys next time.


Hello, I am Dr. Satish Kumar Kashi, Professor in Civil Engineering, Walchand Institute of Technology, Solapur, introducing to you a topic Introduction to Deep Foundations. Learning outcomes of this session, at the end of this session the students will be able to list the types of deep foundations, they will also be able to suggest appropriate type of deep foundation for a particular site situation. Deep foundation is a type of foundation that transfers building loads to the earth farther down from the surface than a shallow foundation. Some of the common reasons for adopting deep foundations is, when very large design loads are there or a poor soil is there at shallow depths and site constraints like the property lines. For deep foundations, the depth is greater than breadth, such that d by b ratio is usually more than 4 or 5. The deep foundations transport the load of super structure vertically to the rock strata lying much deep, hence deep foundations are used when shallow foundations cannot support the load of the structure. Now, let us classify the deep foundations. The deep foundations can be broadly classified into pile foundations, pier foundations, well or chasen foundations. Deep foundations that way can be made up of timber, steel, reinforced concrete or prestige concrete also. First, we will discuss pile foundations. Piles are relatively long slender members that transmit the foundation loads through soil strata of low bearing capacity to deeper soil or rock strata having very high bearing capacity. These foundations are used for economic construction purposes or soil considerations and when it is desirable to transmit a load to strata beyond practical reach of shallow foundations. Piles are also used for angering the structures. Piles are also acid structures in reducing lateral and overturning forces. Now we can see this particular building, this is the building, this is the ground level. Here there is a basement and below that the piles are reaching up to the hard strata through this particular soft soils. Here this is a load coming from a structure. Here a group of piles is there which transmit the load to the high density soil or high bearing capacity soil through number of piles.  This particular picture shows you a building constructed over a soft soil but transmitting its load through soft soil, through pavement up to the wet rock available to great depth may be say 15 meter, 20 meter, 22 meter and so on. What metals are used for piles? The metals can be steel in form of edge sections, steel pipe sections, concrete piles can be there, site cast or precast piles can be wood, pile can be timber piles piles also can be made up of composite material. Now here this typical picture shows a spiral red threads for an auger for piling. It means here we are going to have a pile foundation. So before that by using auger we are excavating the ground and making a vertical shaft for inserting a pile. Piles can be precast piles, driven piles or piles can be cast into piles, a driven pile. A driven pile is relatively long slender column provided to offer support or to resist the forces. A driven pile is made up of pre-formed material, it will have a predetermined shape and size, it can be physically inspected prior to and during the installation of a pile. Here the pile that is a driven pile is installed by impact hammering, vibrating or pushing into the earth. Now here this picture shows us the concrete piles driven into the ground for a deep foundation of a large building site. So these are the concrete piles and these are driven into the ground. Driven precast concrete piles. So we can define driven precast concrete piles as the precast concrete pile is a fabricated high strength pre-stress concrete column which is impact driven into the soil by means of an adjustable hydraulic or a diesel hammer. Now here we can see the driven precast concrete piles. So these are the piles laid here and the piles which are driven into the ground one can see here. Here we can see the driven piles which are in form of steel H piles. So whenever we are going for piles we will always find for steel piles H sections are used preferably because the H section has almost I X section I Y Y equal and the buckling can be registered. Now let us discuss about the board cast in situ piles. Board cast in situ pile is constructed by digging a hole into the ground by suitable means such as a percussive or rotary method with the use of temporary or permanent casing or a drilling mud.  Sometimes this casing also can be kept at its place if required. So this was something about it board cast in situ pile.  So we need to group a pile so as to transmit a load when loads are very heavy. So a pile group with a set of piles that have a pile cap that means they act together to carry the load. So the pile cap would normally be in contact with the ground and the piles would be designed to share the pile load at the ultimate state. So here we can see this is a bridge these are the bridge piers are transferring the load to pile cap and through pile cap load is transferred to the piles and ultimately load is transferred to the hard startup below. Let us have some questions pile foundations are used when the soil at shallow depth is weak or highly compressible for large heavily loaded structures while good founding startup at great depth uneven loading different parts of structure with weak soils in upper layers ground improvement at shallow depths is not feasible and uneconomical and out of these answers you will find all the above answers are correct. Second question the advantage of steel piles over concrete piles in solution is easy high driving energy can be applied during the solution load capacity is high they are economical. So A, B, C are the correct answers but D is not they are not economical. Now let us discuss about well foundations well foundation is a type of deep foundation which is generally provided below the water level for bridges. Cason or well have been used for foundations of bridges and other structures since Roman and Mughal periods. Here we observe a bridge resting on well foundations. So these are the well foundations which are provided for a bridge. This is a bridge superstructure as we observe well foundation. So this typical well issue here. So this is a well foundation a well extending up to hard startup a well curve here transferring load to the hard startup. Here a well foundation under construction you can observe. So this is a shuttering which is being constructed for the RCC well and here you can find one completed RCC well. So this is the RCC structure and this is the reinforcement in the circumference of the RCC well foundation. You can observe this is open at top it is also open at bottom and after finishing the work we close the bottom by bottom plug and the upper surface is again closed for supporting the load. So question in a well foundation top end is open but bottom end is closed during construction. Bottom end is open but top end is closed during construction. Both ends are kept closed during construction. Both ends are kept open during construction but closed after the construction. So the answer D is correct. Now let us discuss pneumatic caisson foundation. The term caisson is derived from the French word casse which means a box or chest. It consists of on ground construction of reinforced concrete caisson having working chamber inside the lower part and pressurized air supply to working chamber to prevent underground water from coming in the excavation work and finally sinking the caisson. We can observe this here. So here this is the pressurized air supply arrangement provided here. The work space is here observe this is the water level here this is the river bed and we are sinking this particular pneumatic caisson. So people will work here in this work space they will dig at the curve and the caisson will be lowered and these are the partial access shafts or tubes are provided here. People will not work continuously here because they need to work at pressurized air. There is one more type of foundation drill pier. A drill pier is a deep foundation system. It uses large diameter concrete cylinder constructed by placing fresh concrete and reinforcing steel into a drill shaft. It is also called as a caisson drill shaft cast in drill hole piles or cast in situ piles. So this is a drill pier foundation and it is reinforced and at the bottom you will find you will find a base resistance is provided here. This diameter can vary as we want and so on. So these are the references which are used for this presentation. Thanks a lot.


I was on a podcast recently and someone asked me a question, well, there's public cloud, there's private cloud, there's multi-cloud, there's hyper cloud, there's so many different clouds. What is distributed cloud? And I think this is sort of the evolution of where we're seeing cloud go. And we've talked a lot about hybrid and multi in the past, but really the last six to eight months, I really see a dramatic shift into what clients are demanding. They're demanding all these use cases that I described and this concept of distributed cloud, meaning public cloud but distributed to lots of different environments has emerged. And I really like this definition in particular from Gartner. It says distributed cloud refers to the distribution of public cloud services to different physical locations while the operation, governance and evolution of the services remain the responsibility of the public cloud provider. And I think that's kind of key. That's what we're hearing is that clients want to turn key solution. They want this to be super easy and they want someone else to take that burden away from them. And so introducing the IBM Cloud Satellite, it is IBM Cloud services anywhere a client needs them delivered in one single pane of glass controlled through the public cloud. And one of the things I think is a little that we're hearing is a little bit unique and really advantageous is that there's a lot of flexibility in the infrastructure that you can leverage. So there's lots of different options. And one option is that you leverage your existing infrastructure that lives in your data center today or anywhere resides but you're leveraging that existing infrastructure. The second option is leveraging our global technology services at IBM. We have an amazing services organization and they can come in and actually provide infrastructure as a service to you in a turnkey solution and do it all for you. And then of course you can leverage IBM Cloud as one option for that infrastructure. And then we also have an appliance that is pre-configured to run IBM Cloud Satellite so you can a little bit of a DIY solution where you can run that in your data center. And then finally, of course, we can run at the edge. So IBM Cloud Satellite is enabling the flexibility to be able to pick where you wanna run and the kinds of infrastructure you wanna leverage. And then of course you can sort of leverage other IBM Cloud services and then even content and middleware like IBM Cloud Packs. So I talked a little bit about the use cases and what Satellite is but now I wanna pass this over to my colleague Jason McGee and he's actually gonna give you a walkthrough and a demo. So thanks, Brianna. I think that gave a really good view of the problems that we're trying to solve with IBM Cloud Satellite and this exciting new capability that we're building to take the experience of public cloud that you know and love in IBM and extend it in this flexible way to other physical locations where you might want on it. And I thought maybe the best way to go a little bit deeper and help you understand what we're doing and what Satellite can bring to the table is actually to show it to you. So I'm gonna walk you through a quick demo of IBM Cloud Satellite. This is of course early. We're just entering beta at this time with Satellite but I think it'll give you a good sense for the core ideas that Satellite brings to the table and how you might actually interact with it as a user of the cloud to be able to take advantage of services anywhere you want. So here I am inside of IBM Cloud in the new section that we're building around Satellite and this part of IBM Cloud's job is to help you define and manage satellite locations that extend the IBM Cloud and allow you to deploy services to them. The most important new concept that we're introducing is the notion of a location. A location is a collection of resources outside of IBM Cloud's data center. So it could be in your data center, it could be at the edge of the network, it could be anywhere you need them in a shipping port in a distribution center, anywhere in the world that you need to be able to land your applications or services that you wanna consume from the cloud. To get started, of course, I need to create a location and creating a location is actually really easy. It starts with two simple questions. One is the name of the location, but the other is where you want this managed from. So with IBM Cloud Satellite, the IBM Public Cloud acts as the common control plane, as the management hub for managing all of those locations and the things that run in them. And so your personal location, let's say in your data center, connects back to IBM Cloud. So you pick one of our major regions, like Dallas, for example, as the place that you want to connect and manage your location. So now what I've done is I've created this location and I've been caught as off defining it and standing up the resources that I need to allow me to start to leverage that location. Now we're not gonna, you know, in the interest of time we'll go and look at an existing location that I have and we'll use that as the base to go from. Okay, so here you can see in my account, I actually have a bunch of locations. You can see that that location we just created is in the process of being stood up. Let's look at an existing location that we have and take a look at the process to go from defining that location to actually making it available for you to use. All right, so here you can see all the locations that exist within my account and you can see that my location that we just created is in the process of being stood up. But instead of waiting for that to finish, let's look at an existing location I already had defined. So we're gonna look at this location called Port Raleigh. If you click on the location, you can see that this location has been populated with a set of hosts. Well, how did I get here? Let's just walk quickly through the process of creating a new location. So I've defined it and after it finished, I would land here. The next step in creating a location is you have to add some hosts to it. You have to configure some Linux machines to act as capacity to support running applications and services in that location. Adding hosts is really easy. You need a Linux machine, could be a virtual machine, it could be a bare metal server. It could come out of your existing VMware environment on premise or out of an open stack environment out of physical servers that you have in your data center. You stand up those Linux machines and all you have to do to connect them to satellite is run a script on them, which will register and connect them to IBM Cloud Satellite. To get that script, you click retrieve script. You can label those hosts so that you can organize them.  So let's say you do that on six machines. Those six machines will become available in the location. The next step is three of those machines need to be used to manage the location itself. So we need a little bit of capacity in satellite that allows us to manage the workloads that are gonna run in your location. And so to do that, you configure those three hosts and you simply select from the six that we created the three that would be used to manage the location. In this case, I've already done that. And then I'm done. So at this point, I have a location that extends IBM Cloud. I've populated with a set of hosts by running scripts on simple Linux machines. I've configured satellites control planes so that it can manage the location and the rest of the capacity within that location is now available for me to use to run services on that location. Now, let's say I want to actually run a service on that location. Let's take something simple like OpenShift. How would I do that? So if I go to the OpenShift service within IBM Cloud, this is the service within IBM Cloud that runs OpenShift clusters as a service on your behalf. You can see here a list of a bunch of clusters that I have, some of which are in satellite locations and some of which are on the cloud. If I want to create a new one, I simply hit create. I can create clusters on IBM Cloud or I can select satellite. When I select satellite, I can then select the list of locations that are available to me in my account, like Parali. I give the thing a name and I hit create. And satellite will go and actually create that OpenShift environment inside the location and run it for me. So this is the same API you see on public cloud. It's operated as a service, just like in IBM Cloud. We update it, we manage it, we maintain it. You simply consume OpenShift in that environment. And if I were to go look at one of those clusters, like this one that already existed, I can see that this one is using two hosts within the location and I can access that OpenShift console the same way that I would access it in any other environment that I'm running. So it's a simple example of how we can get an OpenShift cluster up and running within the cloud and within that location. Now, satellite does some other interesting things for me which I think are worth highlighting. One is satellite locations are connected back to IBM Cloud. That connection is managed and secure and we control all the traffic that's going back and forth between the location and the cloud. And you have the ability to configure and control which services are accessible from the cloud and from the location. You can control the traffic and who can talk to who. And so for example, if I'm back here in the location, you can see I have a set of endpoints to find. Let's take something simple. IBM Cloud provides a logging service. In satellite, we send all the logs for your applications on that OpenShift cluster I just created to the logging service on IBM Cloud. That connection between the location and the logging service is defined inside of satellite. You can see here I have that connection defined. If I click on that connection, I can see all the traffic that's falling back and forth to that specific service. I can see all the sources who are connected to that service. I can turn them on and off individually. So I have full control over exactly which endpoints are exposed in the location and on the cloud. And I can even audit all the traffic that's happening on that specific connection. And so I can go to my security team and I can show them exactly which interactions are happening and who is doing what. So all of those connections are managed for me. The final idea in satellite that's probably worth showing is the idea of configuration management. So I've created these clusters in this example, these OpenShift clusters. I can organize those clusters into groups. So I can have for example, a group of clusters for development and a group for pre-production and a group for production. And then I can create configuration. So let's say I wanna make sure that all of the members, the developers building my logistics application have the right set of let's say resource quotas on the cluster, the right access or resources on that. Why can define that as a configuration? So here I've defined a configuration for the logistics team. It's actually has two versions. There's one version of the configuration that gives each developer one CPU and one gig of memory to use within the environment. And there's another configuration that gives them 10 CPUs and 10 gig of memory. And then I can define subscriptions that say for different groups of clusters, here's the configuration to apply. So you can see here for the development group, they get the one CPU version and the production group gets the 10 CPU version. And I can easily change that. So I can say I wanna upgrade all the developers to 10. I change the version to 10 and satellite will automatically roll that configuration out to all the clusters that are in that group. So there's a powerful configuration management system built into satellite. It even lets me get a live view of all of the configurations that exist. So if I actually go look at those resource quotas, you can see these are the resource quotas applied to all of my clusters. If I dive into that cluster where you're looking at, you can see it's currently running version one and it was updated here. I can even get a full history of every time that configuration was changed on that cluster. So you have full visibility into all the things that are happening. So these are the ideas of satellite. You extend IBM cloud with new locations. You can manage the network traffic within those locations. You can manage configuration of applications within those locations. You can provision services onto those locations and consume those services just like you were on the public cloud. We're even working on new services like databases where you can deploy databases into that location and you can manage those databases just like you're managing everything else on the public cloud. So hopefully that gives you a good sense for how satellite works and how you'll be able to leverage it in order to take advantage of IBM cloud services.


Hello, thank you everyone for coming today. Today we're going to talk about keeping helm reliable and usable. And when we were putting this together, we realized there's one more thing we wanted to throw in there, and that's stable. So welcome to keeping helm reliable, stable, and usable. Hi, I'm Matt Farina. I'm one of the maintainers. And let me pass it off to these others to introduce themselves. And hi, I'm George. I work at Bloomberg. I'm one of the managed retainers as well. Hi, I'm Karina Angel, and I work at Red Hat. And I'm Ian Zink, and I'm a software engineer, solutions architect, developer advocate. And to start, I'm going to quickly first define what we mean by these terms. So I like definitions. They help us be on the same page. They can highlight characteristics that might not be immediately what we might not immediately think of. So here are two definitions of reliable that we think are useful. Consider these definitions as related to helm, both the CLI running for seconds and the SDK, which is used in long running processes, like a controller. If you think about reliability, you need to think about the system and the software around helm. For example, if helm raises an error because it can't download a chart or communicate with a Kubernetes cluster, is the problem due to helm or something else like a network problem? For helm to be reliable, the eras need to be outside of helm, even if helm is the one reporting them. We want to focus on this reliability aspect that helm should not cause errors within its control. And there are perhaps two themes regarding stability. First, there is the purpose of helm as a project. Helm is no longer a startup project. Knowing its purpose for both you and us helps us know how to use and develop helm. And users want to know that helm. What do you want to know? Oh, OK. Certifier. OK. I'll start this. There are perhaps two themes regarding stability. First, there is the purpose of helm as a project. Helm is no longer a startup project. Knowing its purpose for both you and us helps us know how to use and develop helm. And users want to know that helm can be depended on for the long term. Second, there is the software itself. Of course, helm needs to change over time. There are always features to add. But it is even more important for helm to be stable. We'll talk more about why and how we do this in the following slides. We also need to talk about quality. Quality goes along with reliability and stability. In fact, software reliability for helm has more to do with quality than traditional reliability engineering, for example. And so this is the project management triangle. This is an iron triangle. But you need to, if you want features, you cannot control for cost. The same in the case of helm, they are a limited number of people invested in the project. So to add features or make changes takes time. If we were to try to move too fast with helm, it would lead to reduced quality making helm less stable. Usable. Jacob Nelson holds a PhD in human-computer interaction. He used to be called the king of usability. I think we all know what useful means. Settling, which is useful, has a benefit. It is practical to use. Utility is in providing features you need or want. This is touching on helm's purpose and the types of features delivered to fulfill that purpose. With this in mind, let's look at usability. And Jacob has a different mission to go right on with this equation. If you want something more formal, and hopefully with me quickly running through these things, I'll set the context, the remainder of the presentation. All right, so we want to ask, why is helm concerned with some of these things? And to dig into this, I started to pull some of the metrics and numbers here. And so if we looked just at the last month and helm the client binary downloads, we find for just the latest version of helm, we had approximately 2.2 million downloads, right? And total downloads across all versions were over 11 million, and that was over 151 terabytes of data transferred out just to download the helm client. That's not small. But if we dig in a little bit deeper here, what we can see is helm 39 that came out a couple years ago had over 440,000 downloads, right? And helm 321, which came out years ago, had over 470,000 downloads. So you see these old versions are still being downloaded and used. So when we think about the interfaces and things around helm and how you interact with it, it actually matters how people consume it because they're building their CI pipelines around this stuff. They're building their experience around it, even with integration with things like our CDN and how we provide that out. And even 217 that came out years ago, it's been years since that's deprecated, we still have a lot of people still using that. And that might be surprising. I would recommend people not use some of these old versions because the CVEs in them, right? Things have been discovered in the dependency trees, things like that, and it's still used. So the CLI is downloaded and used by a lot of people in a lot of places.  So helm 3 introduced the Go SDK where you can work your own applications on top of it and interact with charts and registries and management, and we've got a lot of big projects that use it, you know, OpenShift, Rancher, Flux, there's all these different things out there that are using the SDK, building integrations on top of it in order to do things. And so there's just so many people out there using it. If you break something, that means we get support requests, right? And we're volunteers working on this project. If we break an experience or something, that breaks their tooling's workflows and that's not a good thing either. So we realize that we're kind of a foundational building piece and so we've got to be careful in that. And then there's things like, there's tens of thousands of scripts on GitHub that are doing things like installs and upgrades and running template. This isn't fetching helm. This is actually working with it. So if you break things like command line switches, this impacts these scripts. And this is just what's publicly available on GitHub. There's all these, you know, thousands of use cases out in the world of companies' private scripts and you start breaking companies' workflows and things like that. So people depend on helm. And then there's, of course, the public charts, right? We can't know how many charts there are out in the world but Artifact Hub, another CNC project, lets you discover distributed charts all over the world that people wanna have listed. And we've got over 11,000 of them out there, right? These are all these people building charts, sharing them with people, people consuming them and this doesn't even account for all the private ones people use inside of their organizations and do it on their own time. And so we have to be careful not to break their experience. And what that boils down to is really, helm is widely used and expected to be mature software. And so we have to treat it that way. We can't go, if we go breaking things, that's a real burden on us to deal with the support influx. If, you know, we break things, that means we make people unhappy because there's so many people out there using that. And we're gonna dive in a little bit more into who they are. So we have a better idea of what this means before we get into how we deal with it. So let's talk a little bit about how helm uses scope to keep helm reliable and usable. So when we talk about scope, one of the very first useful things we can do is say, well, what is helm to start to define that scope? And luckily the helm homepage helps us there because helm is the package manager for Kubernetes. And that leads to the next question, which is, well, what's a package manager? And it's a system or collection of software tools for automating the process of installing, upgrading, configuring and removing computer programs. And I think, you know, throughout computing history, there's been many of these that we've interacted with and Kubernetes and Helm together being one of the latest iterations of that. It's also useful to say, what isn't a package manager? It is not a configuration manager. And if you try to use it in that way, you might have a bad time. So it's not like Ansible where it's gonna help you iterate across versions. And it's not a GitOps tool like Flux that can manage your configuration and keep it up to date from point to point. This model really kind of helps drive that point in. So you can kind of see right where Helm's at across like comparing to Linux, right? Like you have app and Helm kind of fits in there. You can kind of see where the binaries would map to images and config and to manifest and bringing that back to scope, you have to think about when you're contributing to the Helm project and writing issues and requesting things, what should a package manager accept? So whenever you're working with the Helm project, try to keep that in mind that that's our scope and what we're attempting to excel at. And what of those features should also be in a higher level abstraction or something that's orchestrating those interactions. And the other really important thing when you're considering scope is what is the priority order of each thing, of each user profile when you're considering it? So for Helm, we are prioritizing the application operator. So if you have a PR or an issue and it's about an operator issue or if it's going to negatively effect an application operator, we're going to look at that either positively or negatively depending on how that particular persona is interacting. So if you can help each one of those items, those are gonna be things that'll really help the Helm project. Okay, let's talk about versioning. Okay, changes in Helm, they follow semantic versioning. Breaking changes are in the major versions and new features go into your minor versions. Bug fixes go into the patch releases and you wanna add a new feature, you need to wait for the next minor. Releases are monthly. Currently, we have three minor releases a year and those follow the Kubernetes releases. They at least shadow them, but every month that is not a minor release, it's a patch release with bug fixes. So you can keep an eye on those if you're looking for one of your features to get in or one of your bugs to get fixed. Typically, releases are on the second Wednesday of the month unless it's not. But if we're talking about January, it's on the third Wednesday. Sometimes there are exceptions if something happened with the build. Typically, well, now you may wonder what's in an API. Because we are calling out that we're not changing or breaking APIs. So for Helm, this includes the Go SDK as well as the CLI input and output. The SDK is used by applications, the CLI is typically used by scripts. This does mean, again, no new features go in the patch release. You can't add to the Go API and add features even with flags. We have a policy on what changes with the major version and that is recorded in HIP for. So HIP is a Helm improvement proposal. And that is in the community repo. So Helm improvement proposal four provides guidance on how to handle everything from command line flags and output to handling changes to the Go API. Again, it is documented in the repo. And we'll talk more about HIP's later. Again, Helm is written in Go and we're providing the Go SDK. It follows the direction from the Go project on module compatibility. So if you've ever wondered about that and if you work with the SDK and wonder why we don't add to the existing Go interfaces but instead create new ones. It's because, again, the Go community direction. We are asked that a lot. So we follow that. Helm policies are mostly captured alongside other proposals in the community repo. If you can tell, I keep pointing you back to the repo. We get a lot of questions on these HIPs and where to find more information. Now the governance. In order to graduate, you have to follow, you have to have formal governance in place. As a long time graduated project, it has been in multiple years. Helm has governance about how certain things are handled in the project. The governance says how we will handle certain things and that will be covered again more a little bit later. All right, another question we are asked frequently. Helm four, who's interested in Helm four? Maybe? Okay. So if we're gonna talk about versions, we may as well talk about major versions. So Helm four. It has been four years since Helm three was released and in fact, the four year anniversary is just a week away. A little over a week away. Since we have been working on the minor versions and adding features in that four years, we've accumulated a lot of debt. So you can imagine after all this time, really we can't undo anything without making a breaking change and we're talking about being reliable and stable, right? So and really Kubernetes has seen a lot of new features that we would love to take advantage of. So again, these are gonna be breaking changes. So let's talk a little bit more about this. There's two areas that we've started to discuss. Now, first we're figuring out how we will work on Helm four while still maintaining Helm three. We talked about the monthly releases and we need to keep Helm current with Kubernetes. At the same time, we need to figure out how to make these changes. While we don't have all the details yet, hopefully next KubeCon we can dive into that more. What we are looking at doing is what we did during Helm threes development. So we still had to maintain Helm two. And during that process, we maintained Helm two with full bug and maintenance support for six months followed by six months of security fixes. So really we would love feedback. It's time to talk with us as now and this is what we're looking into. Okay, second, we have to figure out what we're gonna change in Helm. We aren't gonna change everything and we're not gonna have a years long development window and I know you're thinking, okay, what is gonna change? We don't know yet. So this is the time that we all should be talking about this. We're in the process right now of figuring this out. We have a whole backlog of PRs and issues that many of them, we've discussed with a lot of you that we can't implement it yet because it would be a breaking change, right? But do you wanna call out? Don't worry, we're not breaking existing charts. Quick show of hands, is anybody using V2 charts still? If anybody wants to admit, okay. So remember what Matt said, you have to consider the vulnerabilities but we're still not gonna break you. That would break a large part of the ecosystem. V2, V3 charts, there will still be compatibility. We don't want to cause anything to break. And if you wanna come help with V4, please come talk to us. This afternoon we'll be at the Project Pavilion, at the Helm booth, also weekly developer meetings. Those are Thursdays at noon Eastern and the Helm Slack, but there's so many different ways to help from contributing changes, giving feedback on ideas, becoming a maintainer to help drive this work. So please come talk to us. All right, let's talk about testing. How do we pull off this testing thing in keeping Helms stable, reliable, and all of those things? Because testing is at the core of what we're gonna do. So let's talk about some of the different types of testing. Now, first of all, we've got a lot of tests written in Go because Go is the language that we use. Used to be run in CircleCI. Today it's run in GitHub Actions. We did the migration a little while ago and so we moved over. And we've even got automation that kicks off this. So this case, this is a pull request to automatically update dependencies because we wanna keep dependencies up to date to knock out CVEs in the dependency tree. We wanna shake those things out. But we do have lots of automated tests. And so let's dig into some of those tests here. The first thing we have is we have unit tests, right? Obviously, we do lots of testing. So testing down to the unit of work. And in this case, the unit test is also testing the Go API. So if we go make some kind of change under the hood and these tests start failing, it'll tell us that, hey, we broke the API somewhere because it's important for us to have test coverage of that for the interactions that people do because the Helm CLI that everybody works with is actually built on the SDK. So it can even break the Helm CLI if we break the SDK. So there's lots of testing in there down at that unit level. But we also do other kinds of testing. And in this case, this is an example test we have where we are testing the CLI itself and we run commands, you know, Helm install this, Helm template that. And we go see whether the output generated by Helm is the same as what we expect. And we call it a golden output. And we run a series of tests. You can see the first test case there at the bottom, but there's a whole series of test cases for different commands. And this is just an install. For each of the commands, we try to have this. And we're not connecting to a real Kubernetes cluster to do this, standing that up in CI, having fresh environments is hard. And so, and it's not very fast. So we do mock things. We've got a mock Kubernetes API client that Helm uses. We have got a mock release storage. And so we've built this all up. So these tests execute very, very quickly. Which is useful for developer feedback, even in CI and everywhere else. But we also do have some integration tests. And this here is from an editor and it shows, hey, we're actually standing up distribution in CI and doing OCI tests against it. So we can push and pull charts from the OCI registry that we stand up and we pull in an actual Docker distribution now, CNCF project in to do that. Now it's not just CI testing that we do as far as testing goes. And one of the things we do run across everything is we're using CodeQL. And we will scan the code with this on every pull request, every change that lands in a branch. It's constantly being scanned for those kinds of things. And if you're not familiar with CodeQL, CodeQL is provided by GitHub and it does semantic analysis of all of the software to say, here's where we think we found vulnerabilities in your code based on just static analysis. And we run it on everything, it's nicely provided by GitHub and it's a free tool that can be used for there for your projects, but we use it as well. But this kind of analysis isn't the only thing we do and all tests don't just live with the Helm project. So we also do fuzz testing over our stuff. And you'll see this lives in a different repository. This is the CNCF fuzzing repository. It's a project that was funded and sponsored by the CNCF to get started. And what it does is fuzz testing. Now, who in here knows what fuzz testing is? Anybody know? Okay, for those of you who don't, you take something like a string input to a function and throw whatever at it and see if the function handles it, right? So you've got a string, so with the Helm command you can do set something, right? What if you did 20,000 periods? How would Helm do this, right?  Does memory explode? Does something happen? And it looks for cases like this by slowly throwing more and more things to find where your code doesn't handle it. And this is important for finding security vulnerabilities because if you've got outside interactors and you're building something on the SDK, maybe they denial of service you. Maybe they cause a memory overflow which is a panic you can't recover from in your code. And so it looks for things like this and it helps you do that. And so we have a whole bunch of fuzz testing against Helm that helps us look for these things and that ultimately at the end of the day brings stability and improved security of the code base because you can't dost it as well. And this work is funneled through the OSS Fuzz project which is something sponsored by Google and there's a number of projects that go through it but we are run through this system regularly and it'll tell us if this system just running in the background finds more things on Helm and then we can go in and fix those situations. And some of the CVEs from last year were fixed because of that. All right, we also do manual testing. A security audit really is a manual testing and so periodically we do things like that in order to manually test and look for these kinds of things as well. But it doesn't always catch everything and we actually had an oops in Helm 3.13 which was fixed in 3.13.2 that went out today when working with registries because we stand up a registry in CI and we test but it turns out authentication against registries isn't to a spec and not everybody does things the same and a recent change broke some of that interaction and the only way to test that would be to go to all the major registries and test against it in CI or somewhere else and we don't have that setup today but it is fixed and we do catch these things but sometimes we don't catch them right away so there's always room to grow and improve the testing but that is one of the things is we do invest heavily in testing. So much so that if you're looking for a place you want to contribute and you don't have an idea of where to get started a great way to learn the code base and to get involved is actually to come contribute tests down. We would love that and our existing test layout our style of what we're expecting and you learn the code how to use it for your own SDK uses or whatever by writing tests. So with that, I'm going to hand it off for the next section. Here we will describe how the Helm project inclusive of all the maintainers and the community is managed how we manage changes how we govern the project from selecting new maintainers to getting releases and generally how the project aims to meet the reliability and usability goals that we set out earlier. So community and governance and where it starts with Helm Karina briefly mentioned governance I'll go into more detail here and how governance interacts with the community. Helm is an entirely is entirely a community maintained project and so community engagement is critical to Helm. It requires the community to contribute to the additional features or functionality are desired. For example, more frequent releases or faster PR reviews. And so to ensure Helm can meet the goals of the project just like all CNCF graduated projects Helm must have a strong governance model that is having to find rules that oversee the stewardship oversee the stewardship of the project. And so the governance governance for the Helm project is comprehensive from major things like the votes needed to elect election new maintainers and ensuring maintainers uphold the goals of the project to more routine things like running a weekly developer call or defining release cadence and criteria. We've mentioned tips already but just like many projects out there Helm requires significant changes to be proposed with a Helm enhancement proposal or HIP. I'm sure many of you here are familiar with Python's HIPs or community's HIPs the Python and community's equivalents. Helm has HIPs for very similar reasons. The rationale is that significant changes need more design and more review. Significant changes need a way for the author to adequately describe the problem and for the community to adequately comment on the proposed solutions. And the results of these discussions need to be more formally recorded for example than a GitHub issue. It's worth mentioning that HIPs are not limited to feature proposals only. They can, they could be for improvements in process or simply informational for example we all have a Helm V4 HIP. When Helm wants to more formally document their intention of the project and in essence HIPs allow anyone from the community to formally propose a direction for the project. And while running a HIP might seem like an overhead compared to a quick GitHub issue in PR they certainly result in proposals which are much more well thought out and with higher quality results. They ensure changes are aligned with Helm for the expense of implementing and the HIP document is much more easily discoverable. As a follow up to the points that were made earlier around testing, stability, release process and visioning I want to re-emphasize these things and the why is quality. The Helm to continue to be successful as we said it must continue to be reliable or as this defines there's ensuring quality remains high over time. Practically this means changes to Helm must fit in with the scope of the Helm project and contributions must have a high standard of implementation. Recent bugs and issues we have had have had roots in well intentioned changes that have come from perhaps not well thought out ideas or poor implementation. Fixing these bugs has literally broken other workflow flows as such is critical for Helm to only accept well thought out and well implemented changes. And in particular scope as Ian talked about is actually a difficult thing when your user base and usage is so varied and wide and the Kubernetes ecosystem is growing so fast. Okay, so let's talk about contributions a little bit because these are so important to keeping a project like Helm usable and reliable. So over the last year there's been over 900 issues closed and every issue, I guess not every issue but most issues they come down to something we could have done better with documentation or even the issue itself produces documentation. So if you run into a problem with Helm please do produce an issue and so we can look at it, we can document it and get it resolved. Over the last 12 months we've had over 150 pull requests closed still more than 300 outstanding. So there's still a lot of work to be done to clear that backlog and make sure everyone's heard. If you like stats you can go to the CNCF DevStats site for Helm which I've linked and you can look at all sorts of stats on who's doing what and it's kind of a fun browse anyway. This is one of those charts I kind of massaged it a little bit to smooth it out but when I was working in the Helm booth at Kube County, one of the themes that we heard was hey, I don't feel like you're listening to our PRs I just wanted to kind of demonstrate that we are doing much, much better. We've gone from 28 weeks or so to on average receiving feedback all the way down to two and a half weeks right now on your PRs. So if you open a PR you're gonna get feedback much faster and we're gonna kind of help you guide you through that process. So please do make PRs, join our calls and talk with us. We also need more people to help review these things. It really helps when someone else chimes in and says, hey, you know, I reviewed this, this looks good, this would help me as issues appear on the repo. You know, feel free to interact and you know, provide people guidance. You don't even have to be a maintainer to help out with that stuff. So please do. And we are having a retro, a very special retro. This is something that I've wanted to do for a while in the Helm community. We're all gonna get together. All of you are welcome. And we're gonna have an extra long developer call and we're gonna have a retro board. We're gonna go over what's going well, what you all are thinking about, what you're upset about or what's not going that great. We're gonna discuss the most upvoted items and figure out what we can do better. Great action items on what we can do. So I'm really looking forward to that. There is a link to the developer meeting. You can Google it. It will also be the first link. If you Google the Helm developer call and add it to your calendar and please do join and just discuss the project with us and what we can do. So the more people that show up, the better it'll be. Finally, this is a link for feedback on this talk and I'll open it up to Q and A. All right, does anybody have any questions? We've got a few minutes left. If you do, walk up to the microphone please. It can be anything Helm related. Version four. Okay, well we will be here. We can continue to answer questions. If you wanna step up to the mic, go ahead. We'll be up here for about three more minutes then we'll step off and you can catch us on the side if you'd like. Thank you.


You are here. Sorry, I'm rather distracted and it's this whole phone thing.  I can't get off of the social media stuff that all the kids are on these days. It's from snapchatting to Facebooking to, well, all sorts of that. The term is matching law. And if you know what the matching law means, you'll understand why that whole intro is hilarious. No, really, matching law is about an allocation of responses. So it's really a procedure for studying choice. When you have two alternatives or more, then matching law talks about how your rate of responding will be distributed across those choice alternatives and making sure that that distribution matches the rates of reinforcement on each alternative. That's not perfect and it's not explanatory. It's not explanatory.  So for some reason, this seems to be more reinforcing than this. So which is odd to me because this keeps you alive and this keeps you informed. So I think I would rather be alive than informed but it doesn't seem to work that way in practice. Deciding to do homework versus going to play a video game.


Hello and welcome to the session. In this session we will discuss a question which says that Sam and Mike leave for the club. They travel 11 kilometers from their home at a bearing of 34 degrees and then change direction to a bearing of 115 degrees and travel another 7 kilometers. In that is, how far are Sam and Mike from their home and we thought as at what bearing must Sam and Mike travel to return to their home. Now before starting the solution of this question we should know some results. First is law of science. Let A with C be only triangle with small a, small b and small c representing the measures of sides opposite to angles with measurement A, B and C respectively. Then sine of angle A upon side represented by small a is equal to sine of angle B upon side B is equal to sine of angle C upon side C. Here we can write it as side A upon sine of angle A is equal to side B upon sine of angle B is equal to side C upon sine of angle C. And law of science states that for this triangle the following equations are true. First is A square is equal to B square plus C square minus 2 B C into cos of angle A. Second is B square is equal to A square plus C square minus 2 A C into cos of angle B. And third is C square is equal to A square plus B square minus 2 AB into cos of angle C. Now these results will work out as a key idea for solving out the given question. Now let us start with the solution of the given question. Now in the question we have given that Sam and Mike leave for the class. They travel 11 kilometers from their home at a bearing of 44 degrees and then change direction to a bearing of 115 degrees and travel another 7 kilometers. Now let us make its figure. Now bearing means angle made with the north direction. Now this is the north direction. This is the east direction. This is south and this is west direction. Now since this is north direction and from home they travel at bearing of 44 degrees. So angle made with north direction is 44 degrees and starting point is A and from this point they travel 11 kilometers and reach at this point. At this point we B from here they change direction to a bearing of 115 degrees. So this angle is 115 degrees with north direction and they travel another 7 kilometers to reach club. Let the reach point C after travelling 7 kilometers now join point A and point C. So we have triangle ABC where side AB that is small c is equal to 11, one side BC that is small a is equal to 7. Now we have to find how far they are from their home that is we have to find distance AC which is represented by small b. Now for finding side B we will use this second equation of log cosines. Now we already know measure of side A and measure of side C and now we will have to find measure of angle B. Now let this angle be angle 1 and this be angle 2. Now let us represent this line by L and this line by M. Now this vertical line M is a straight line. So here you can see angle 1 plus 115 degrees that is this angle plus this angle is equal to 180 degrees as they form linear pair angles. So this implies angle 1 is equal to 180 degrees minus 115 degrees which implies angle 1 is equal to 65 degrees. Also you see two vertical lines are parallel that is line L is parallel to line M and AB is transversal. So these two that is angle 2 and 44 degrees that is this angle forms alternate pair angles so they are equal. So we have angle 2 is equal to 44 degrees because they are interior alternate angles. Now this angle B is equal to angle 1 plus angle 2 which implies angle B is equal to 65 degrees plus 44 degrees that is equal to 109 degrees. Now we have got the measurement of sides A and C and also angle B is equal to 109 degrees. Now putting all these values in this equation we have B square is equal to A square that is 7 square plus C square that is 11 square minus 2 into 7 into 11 into cos of B that is cos of 109 degrees which implies B square is equal to 49 plus 121 minus now 2 into 7 into 11 is 154 into cos of 109 degrees is minus 0.32 this implies B square is equal to 170 plus 49.28 which implies B square is equal to 219.28 taking positive square root we get B is approximately equal to 14.8 thus Sam and Mike are approximately 14.8 kilometers away from their home. Now we have to find at what bearing must Sam and Mike travel to return to their home. So in the figure we see that now they will change the direction to follow path AC so that they can reach home. Now we have to find the bearing when they change direction. So here we have this vertical line at point C showing north direction and we have to find this angle. Now let us denote this vertical line by P and this angle by angle 3. Now here we can see vertical lines M and P are parallel to each other and BC is the transversal. So angle 3 is equal to 65 degrees that is this angle because they are interior alternate angles. Now we know that angle around the point is 360 degrees. So this total angle is 360 degrees and this is angle C. So the bearing equal to 360 degrees minus this angle 3 that is 65 degrees minus angle C. Now we have to find angle C. Now we know the measurement of sides B and C. We know the measurement of angle B so using law of signs we have sign of angle B upon side B is equal to sign of angle C upon side C. So let us put the values. So this implies sign of angle B that is sign of 109 degrees upon side B that is 14.8 is equal to sign of angle C upon side C that is 11. So sign of angle C is equal to 11 into sign of 109 degrees upon 14.8 which implies angle C is equal to 11 into Now sign of 109 degrees is equal to 0.95 upon 14.8 and this implies sign of angle C is equal to 0.706. And this gives C that is angle C is equal to sign inverse of 0.706 and this implies angle C is approximately equal to 45 degrees. So bearing is equal to 360 degrees minus angle C that is 45 degrees minus 65 degrees that is equal to 250 degrees. Thus, mic and fan should turn to a bearing of around 250 degrees to return to their home. So this is the solution of the given question. That's all for this session. Hope you all have enjoyed the session.


St. Louis Blues are playing Colorado Avalanche. Colorado are up three to one. And from what I hear, there's some bad blood from the playoffs last year with Cadre on the Avalanche. And also, from what I hear, two out of three men are going to experience male pattern balding in some form. And you can go to keeps.com slash Johnboy. Get 50% off your first order to get some treatment and prevent that from happening. So the Blues got 42 seconds. They're going to try and net one more. Make it a one goal game going into the third period. No poke check, Avalanche have it. They're coming down. They're setting it up. He just rides that dude right into the crossbar. No one else knows that that has happened. That pass is deflected perfectly. He shoots it on net. It's not going to count because the nut is off. It's more rings. That guy's like, why'd you ride me in the crossbar? Could have been a nice chance for us. And he says, well, smart play by me. Quit hitting me. Bennington, the goalie gets in, immediately turns his head. Head on a swivel looking for Cadre. As soon as there was a scrum, knew he was on the ice. Tries to hit him with a stick right there. Bad blood from last year's playoffs is what I've been told. I Googled one Google. So now he's going to skate around. He's hot. He's heated. He's fired up. He's going to find the puck. He's going to shoot that at the other goalie. He says, yes, make that save. How about it? Then he sees Cadre coming around. He's just swinging the stick right at his face. He's like, what's up, dude? Does that scare you? Should. I'm a little unhinged right now. And the refs come over. They're like, what are you doing? Stop. Cadre's taking it in like, oh, whoa. You're really mad, man. I'm going to go egg you on to see what else happens. Let's see what other high drinks we get into. He goes and talks to him. Ref says, get out here.   And then Cadre gets all smug here.  Bittenton's like, yeah, it is good stuff. Then Cadre, here's the refs talking. He's like, wait, I got a penalty. For what? And then refs talking to the coach. He's got nice hair. And the coach is listening. And then he's like, he should have got it. He's crazy. Why? For what? I'm really getting one. So then he ends his conversation with the coach and the coach is like, yeah, that makes sense. Wait, hold up. Nothing that you said makes sense at all. What? Huh? Huh.  You got a 10 minute misconduct. He's like, that's what he just told me. Sorry, man. I don't know.  The good thing is that the coach and the goalie on the blue side all agree. We can't just have people swing in their sticks. You know, we can't have them swing in a stick. I don't want to condone the stick swinging. We can't have them swing in a stick. I definitely don't want kids out there swinging their sticks. We can't have them swing in a stick. You just can't have them swing in the stick. But Avalanche head coach also said it was the right call that Cadre also got 10 minute misconduct. He said, that would have been a big goal for us. Cadre, you can't continue to try and escalate an altercation. It's no different from getting into a fight. Sometimes they let you get away with it, but that had dragged on long enough.   Cadre, you just like let it be. You already won. Why'd you have to go back and egg him on? Now there's a 10 minute misconduct. We're just talking, I don't know. Does his hair look great? Yeah. If he would have lost it earlier on in his life, what are you being upset? Absolutely. Did he go to keeps.com slash Johnboy? I have no idea, but you can. You can get 50% off your first order of hair loss treatment, and thanks to Keeps for sponsoring this video. Keeps has been around for a while. They help us out. Have good hair like him.


Hey, sect-goers! Welcome back to our channel! Do you often feel drained and unhappy in your relationship? The person you once fell in love with just doesn't seem to be there, and the relationship seems to have taken a turn in the wrong direction. Healthy relationships sometimes take work, but the positive feelings often take the front seat. They say they love you, but because of the negative feelings, maybe you sense their love for you might be a toxic one. To help you identify if this may be the case, here are seven signs their love for you is toxic. Number one, you give up on your needs because they just don't care. Have you expressed your needs and wants in a relationship to your partner, only to have them ignored? It's unhealthy for our needs to be suppressed or put off, and this goes the same for a relationship's needs. Perhaps you desire a strong connection, affection, or respect, but every time you bring up what you need is a couple of fight erupts.  These are all toxic relationship behaviors. You may even give up on bringing up the topic because you simply want to sway away from another argument, but suppressing your feelings is never healthy. Instead, both of your needs should be discussed in order to set the relationship back on a healthy track. Number two, hostile communication. Does criticism take the lead in your conversations with your partner? Are arguments a regular occurrence? Do you expect your partner sarcasm around every corner? A healthy couple should value kindness and respect. Respect and communication are one of the most important aspects of any relationship. Without them, your connection may falter. Sooner or later, you may even avoid meaningful discussions. Hostility, sarcasm, and criticism are all signs of toxic communication. Number three, you put in all the work. Do you find that you're the only one putting in the effort? Successful relationships require effort from both sides. You may think you need to work just a little harder. Give a little more of yourself in order for the relationship to last. You feel exhausted. Look back and ask yourself, have they ever put in any effort? Do they simply not care? It's important to remember work from both sides needs to be given in order for a healthy relationship to last. Number four, they're jealous. Trust is huge in a relationship. If you can't trust each other, that should be a red flag. If your partner often gets ridiculously jealous and takes it out on you, there's likely some trust issues present. This may even lead them to extreme behavior. Do they over question you after a night out with friends? Do they try to control your actions and enforce rules? All toxic behaviors. Number five, resentment. Does that ever feel like your partner is keeping a tally sheet of all the mistakes you've made? They can't seem to stop bringing up past mistakes to use against you, even when you thought you'd resolve them. Holding onto grudges won't benefit anyone. If they continue to hold onto their frustration and resent you, it will likely only grow. Number six, they're controlling. Does your partner seemingly question your every move? Have they suggested a set of over restricting rules for you to follow? Controlling behaviors are extremely toxic and could even be a sign of abuse. You should never have to feel like someone else controls your actions as if they own you. And number seven, dishonesty. Communication and respect play a huge role in the strength of any relationship. But honesty is just as important. Communication has to be sincere in order for it to work. And if you respect someone, you know they deserve the truth. If your partner often lies to you or simply avoids certain topics, it may be a sign there needs to be a change, whether that means having an honest, open conversation or for you to move on. So do you relate to these signs? Share with us in the comments section down below. If you found this video helpful, don't forget to click the like button and share this video. Subscribe to Psych2Go and hit the notification bell icon for more content like this. And as always, thanks so much for watching.


Hey, everybody. My name is Lance Ball. I'm a software engineer at Red Hat for the last couple of years. I've been working on this project that is now known as Knative Functions. I want to show you today how quickly and easily you can get up and running with your first Knative applications using the power of functions as well as camel K for an event source. First of all, I want to talk a little bit about what Knative brings to the table besides what everyone already knows about, and that is scale to zero. It's also very much about developer happiness through the Knative Functions programming model and client tools. It's about ease of deployment using that same CLI as well as the Knative Client CLI. And then finally, we've got this common event format called cloud events that ties everything together. It's that common thread that goes through the Knative serving, eventing, functions, modules, the building blocks. I think that these three things all come together to make Knative something sort of greater than the sum of all these individual parts. So functions. For a lot of developers just coming to Kubernetes, it's a lot, right? There's a lot of mental overhead. There's a lot of things you have to learn. Knative functions is a programming model and a set of tooling that works to kind of reduce the friction when you're first coming to Kubernetes. It significantly reduces the time to productivity, I think. All right. So how are we going to do this? I have this demo that I wanted to do today, but for obvious reasons, I'm not actually going to do the demo. But for the record, I do have it down to under five minutes. This is a kind of bad diagram that shows what we're going to try and build. First of all, there's a camel K, KAMLIT. That's going to serve as our event source. It makes polling requests to the Twitter API, the Search API, converts those results into cloud events, sends those cloud events directly to the Knative event broker. That's the little hollow diamond that you see there in the middle. That event broker has a couple of triggers associated with it. One of them sends cloud events to a translate function, which uses the Google translate API to translate the tweet if it's not in English. It returns a new cloud event to the event broker with a new type. That new type triggers another function called a viewer function, which does nothing but print that tweet or the cloud event of the tweet to the screen so that we can see everything working. Okay. So let's take a look at the code then. Here's our translate function. It's pretty simple. You can see it's just a little bit of JavaScript. It receives a cloud event. As the data for that event, we have the tweet. This is coming directly from the camel K, KAMLIT. We check to see if the tweet text is in English. If it's not in English, then, well, if it is in English, then we just return a new cloud event with the body of the tweet text as our data. If it's not in English, we call the Google translate API and return the results of that as the data for our cloud event, as well as the original tweet text. The next function that we have in this little application is a viewer function. It's even simpler than the translate function. It's written in go, and all it does is receive a cloud event and print it to the screen because, like I said, we just want to make sure that everything works. In a real application, you're going to do something a little bit more interesting, I hope. Okay. And this is the Twitter search KAMLIT. It's really just a bunch of yaml as long as you have your access token, your API keys, and your secrets and some sort of search term that you want to search for. You're set. You deploy this thing. It starts polling the Twitter search API, converting those results into cloud events, and sending them directly to the default Knative event broker. So how do we put all these things together? It's just a handful of command line calls. First of all, to deploy the two functions, we used to use the func deploy command. So we deploy the viewer function and the translate function. Then to create an event broker, we can just use Kn broker create default to create a default N memory event broker. Then we use Kn trigger create to create the two triggers. We give them names. The dash S flag tells us where the events are going to go. So the first one is sending events to the translate function and filtering on type Twitter search source. The second one is sending events to the viewer function. That's the result that's coming back from the translate goes to the viewer function filtering on type Knative function translation. Then finally we use the common kubectl apply to apply that YAML that is our Twitter search camlet. If everything works as expected, we get scrolling tweets on our screen with the viewer function as we tail the logs. In this case, it's not actually happening in real life because this isn't a demo. This is a screen capture of the last time I did this before coming up here. That's it. Thank you very much. There's a QR code if you're interested in checking out this demo yourself. A couple of links there. Hope you have a fantastic KubeCon. This has been an honor. Thanks.