My goal here is to give you a sense of the pace of change. The opportunities, the challenges, but where we're going, not in 20 or 30 years, it's decade. I think one of the things we don't realize is that we haven't seen 1% of the rate of change we're going to see in these next 10 years. And the opportunity for that is extraordinary because it used to be that a thousand years ago the only people who could change a nation or region of the world were the kings and the queens. A hundred years ago it was the industrialists, the robber barons. Today it's anyone. Anyone passionate enough has given access to these exponential accelerating technologies can take on the world's grand challenges, and I believe solve them. I'm executive chairman, co-founder of a university called Singular University. It's seen here. We're backed by Google, by 3D Systems, by Deloitte, by Genentech, by Cisco. Our mission as a university is to give the top graduate students and executives from around the world an understanding of what's in the lab today and coming to market in the next 2, 5, 10 years on these converging exponential technologies. Because these technologies are those that can, are the levers, if you would, to impact a billion people. And we talk about the fact that today an entrepreneur, and we cultivate about 15 startups a year out of SU, an entrepreneur can actually start a company that impacts a billion people in a decade. You'd have to have been Muhtar Ken to Coca-Cola or Jeff Emel to GE or someone of that magnitude to actually impact a billion people before today. An individual can do this. And we teach, you want to become a billionaire, help a billion people.  We talk about exponential technologies. It's our mantra. And I want to begin by saying that we are all local and linear thinkers. We evolved on a world in which the world around us was local and linear. Nothing affected you that was not within a day's walk. And the life of your great grandparents, your parents, you, your kids, 100,000 or a million years ago was the same. Nothing changed generation to generation. But today things are changing year to year. We're living in a world that's global and exponential. The question is what does exponential feel like?  You know, 1, 2, 3, 4, 5, all of us are great linear projectors. I'm saying I'm there in 5 linear steps, there in 10, 30 linear steps. I'm across the hall, 30 meters away. But if I say to you, where are you going to be in 30 exponential steps? You know, an exponential being a simple doubling. 1, 2, 4, 8, 16, 32. Very few people will say in 30 exponential steps, I'll be a billion meters away. Put differently, I will have gone around the planet 26 times. And that difference between us thinking linearly while the world that you're creating, that you're using, the technologies are growing exponentially is really the story here. You see this red line here, it's all of us. It's our politicians, it's our shareholders, it's our customers. We haven't had a hardware or software upgrade in 50,000 years. It's been a while. The yellow line is the technology you're using and creating. These networks and sensors, AI, robotics, 3D printing, all of these areas. And the difference between these two is interesting, right? Because if you're the CEO of a Fortune 500 company and some kid in the garage comes up with this disruptive new service or business model, it's disruptive stress. If you're the kid in the garage, it's disruptive opportunity. We grew up with Kodak being one of the mainstay brands of the world. And in 1996 at the top of their game, Kodak is a $140,020 billion company that 20 years earlier had invented the digital camera. A guy I'll introduce you to in a moment had come up with it in the lab and you can imagine when he brings it to his board of directors and goes, here it is, the digital camera. Right, it takes .01 megapixel images. I say, what are you kidding? That's a toy for kids. We're Kodak, we make beautiful high-resolution images. Besides, we're in the paper and chemicals business. And of course in 2012, Kodak declares bankruptcy. Effectively disrupted by the very technology that they had invented but didn't understand what exponential growth would look like. But what's interesting is in the same year of 2012, another company also in the digital imagery business, a company called Instagram gets acquired by Facebook. But they've got 13 employees and get a billion-dollar valuation. The difference between a, if you would, exponential company and a linear one is this kind of disruption. I've given it a new name, I call it the new Kodak moment. We're going to see this over and over again, projecting forward a continuation of Moore's law. In 2010, five years ago, if you remember back then, the average computer was calculating at 100 billion calculations per second, which is more computational power than we had in the entire U.S. space program in the 60s and 70s. In 2023, eight years from now, now the average thousand-dollar computer you go down to the store and purchase is calculating at 10 to the 16 cycles per second, which is just a number unless you speak to a neurophysiologist who tells you that's the rate at which your visual and auditory cortex does pattern recognition.  This is going to be transforming almost every industry. I want to share, if you would, the kinds of technologies we teach at Singularity University that we study, that our students start companies on that are converging and changing the world. And they are, you know, robotics and AI and 3D printing and networks and sensors. And these technologies, what's most important about them is that they're democratized technologies. They're accessible almost to everybody. So a kid in Mumbai on a smartphone has access to more cloud-computing power, if you would, than the chairman of MIT had 20 years ago and access to more knowledge and information than President Clinton had 20 years ago. It's an extraordinary democratization that's going on. One of the most powerful technologies coming online, let me speak about some of these, is artificial intelligence. And AI is the ability of a computer to understand the language nuance, to be able to understand the, you know, the cynicism, the humor, the confusion you have and give you an answer. We may know it as Siri on our iPhone as the earliest days. I like to think of Jarvis from Iron Man as my preferred version of AI. What happened two years ago was Michael Rodin, who is the head of the Watson program at IBM. IBM had just built the Watson supercomputer and they wanted to show how powerful this was as an artificial intelligence and so they decided to challenge the top two Jeopardy champions, the guy who had won the most money and the guy who had won the most number of games. And if you don't know the game of Jeopardy, it's a difficult game that you ask basically make a statement and have to ask the right question. It's a game of context and understanding. And I want to show you a short video clip showing you a supercomputer Watson demolishing his human opponents or its human opponents. This mystery author and her archeologist hubby dug in hopes of finding the lost Syrian city of Erkesh. Watson? Who is Agatha Christie? Correct. Watson, who is Mary Leakey. You're right. Watson, what is creed? Yes. So what was Watson? And first of all, this is so two years ago. Watson was a room size computer, the size of the stage if you would, some 3,000 power seven core processors able to process a million books per minute, able to literally download Wikipedia. It was not hooked up to the Internet. It had downloaded Wikipedia in a number of databases and was able to pull relevant pieces of information far more than our memories can withhold. But what's interesting is where IBM has taken this. So since then, over the last two years, IBM has ported Watson to the cloud and it's put an open API, basically an interface for entrepreneurs to create services on top of Watson. So where is Watson going first to medical school? They've downloaded into it all the relevant journals, all the relevant information. And Watson is able today to diagnose cancer better than any physician can. Because medicine is far more than anything you can hold in your mind with all of the lab tests that we run. There's no way that a human can withhold in their minds that level of information. But here's the notion. Today, as we go towards this future, anyone with a cell phone can call Watson and ask a question. This is the democratization, not of information like Google may be, but the democratization of knowledge, of answering questions. And we're going to see a number of companies, every major IT company, heading in this direction. So what's next? Next I'm going to talk about sensors. This is that guy at Kodak who came up with the digital camera. Here you can see it. You can imagine walking into the boardroom of Kodak and saying the future of Kodak and the reaction. So 0.01 megapixels, 10,000 bucks, four pounds. Today, here's today's digital camera, right? 10 megapixels, you know, a couple of bucks. This is a billion times better. The question is, it doesn't stop here, right? We haven't reached the pinnacle of cameras. Where is it going to be in 10 years when it's a thousand times better? 20 years when it's a million times better? 30 years when it's a billion times better? Will it be high definition cameras woven into your clothing and micro drones in the air? I want to give you a sense that sensor technology is exploding, right? My friends at Cisco talk about the internet of everything, that we're heading towards a, you know, 12 billion connected devices today, 50 billion by 2020, and those connected devices, each with a dozen sensors, we're heading towards a trillion sensor economy. Where effectively, in the near term, you're going to be able to know anything you want, any time you want, anywhere you want. This is the first inertial measurement unit. This is what got us to orbit, got us to the moon. Tens of millions of dollars, tens of pounds able to, you know, measure velocity accelerations. Where is it today? It's a buck on your phone. So where is it going next? Molecular in size, woven into everything we manufacture, every cell phone. This is the first GPS. $120,000, 53 pounds. Imagine this thing on the dashboard of your car, right? So the notion is that these sensors are exploding, and we have a bias to believe this is the best it gets. This is where it is today. It's going to be a thousand times better in 10 years. How's that going to change your businesses? What is possible? This is Google's autonomous car. And what people, what most don't understand is the domino effects that these technologies have. So what does an autonomous car mean? It means, first of all, that you stop building roads because you can put eight times as many cars on a road. You don't need parking garages or parking lots or driveways because you don't have a car anymore.  You order a Ferrari on Friday night when you have a date. You order an SUV on Saturday night when your in-laws are over. You use the car that you need when you need it. I have two three and a half year old boys at home. The chances are they will never have to drive. And so what happens to Detroit or whatever car industry center you want, when people don't buy cars, they use them on demand. And by the way, if cars don't crash, you need automotive insurance anymore. So a lot of implications that people don't talk about. And because, you know, driving an autonomous car has anybody driven one of these cars here? I know you have Matt read. So I'm going to show you what it feels like to drive one of these cars. We took a team of people over to Google from XPRIZE on our adventure trips and I want to show you what it looks like on a slalom course inside one of these cars. Oh my God! No, I love it! Oh dear Lord.  Oh my God. The implications are extraordinary, right? There are countries in the world which have a tremendous mortality rate from teenagers driving. From young men driving. This changes the game. Another technology that's going to be transforming our lives and disrupting a $10 trillion industry is 3D printing. Full disclosure, I'm on the board of 3D systems. And the ability of 3D printing to print anything layer by layer by layer out of 300 different materials. In any level of complexity you want, any level of personalization, you don't have to manufacture overseas anymore. You manufacture in your closet or down the street. And the manufacturing of multiple materials. This is a person who forgot their wrench and can print and print a wrench if you would. So what can we print these days? Here's a polygon with a polygon just showing a simple structure you can print where complexity comes for free. In China last year, for the first time, we saw the construction of 10 3D printed homes in 24 hours for $5,000 each. Last month, a 3D printed apartment building out of China. This is a person who lost their right lower limb, scanned their left limb, flipped the image, and 3D printed a prosthetic composite replacement. This truly is just the beginning of a disruption in manufacturing. The final technology I want to talk about is synthetic biology and genomics. I had the pleasure in March of this year, March of last year, to announce a new company with Craig Venter and Bob Hury, Craig who sequenced the first human genome, and Bob Hury who's one of the top leading stem cell scientists from Cellgene. We created a company called Human Longevity Inc. We've now built the largest genome sequencing facility on the planet. We're going to be sequencing between 1 to 5 million genomes in the next four years. And our goal is to create the largest impact on human health, and to extend healthy living by 30 to 40 years this decade. That's our mission. That's our goal. We are creating in one of the largest databases a collection of full phenotype data, a full genome, the 3.2 billion letters from your father and from your mother, the haplotype phasing, but besides that, your microbiomes. Each of us are a collection of 10 trillion human cells and 100 trillion bacterial cells. And so that full bacterial complement of DNA as well, full body MRI, metabolome, and the proteanome. All that information goes in, and we've brought into the company a guy named Franz Ack who ran Google Translate, and we are basically doing massive machine learning on top of this information to understand because it's our belief that your genomics actually describe how you look, how you sound, every aspect of your life. First of all, I hope you can feel the only constant is change, and the rate of change is increasing. And one of my mantras for large companies is either you disrupt yourself or someone else will. Standing still is no longer an option. The other thing to realize is that your competition is no longer the multinational overseas. It's the entrepreneur in a garage with access to 3D printing, AI, robotics, who's willing to take risk after risk, failure after failure, and go shot on goal. And so we have a generation of entrepreneurs that are empowered with more technology than the largest governments and corporations had 20 years ago. We are de facto linear thinkers, and my challenge to you is what's your moonshot? How do you go 10 times bigger, not 10% bigger in your country, in your company, and in your own personal life because these things are now possible. We have the magic of these technologies. This is perhaps one of the most important things. It's the world's population, just over 7 billion. Internet connectivity. In 2010 we had 1.8 billion people connected online. The projection for 2020 is that by 2020 we're going to reach 5 billion people online. Which means we have 3 billion new minds entering the global economy. 3 billion people who have never bought anything. 3 billion people who have never, you know, have never uploaded or downloaded or used the internet. But what's interesting, in fact, in the last month is the following. So there are now a number of ventures looking to connect not 5 billion, but all 7 billion humans on this planet with a megabit connection. So Mark Zuckerberg's been talking about and buying drone companies and looking at spacecraft. Google has had their project Loon, which is to connect using balloons and using, again, drones. Last week, Elon announced then with a follow-on with a billion-dollar investment from Google a 600-plus satellite constellation for providing megabit connections. And also, my friend Paul Jacobs in partnership with Richard Branson and Greg Weiler have announced themselves a multi-hundred satellite constellation. We have two megaconstellations going up to provide megabit connections. So what happens when we don't have 5 billion people but 7 billion people connected online? These 3 to 5 billion new consumers, if they're not your customer, they're your customer's customer. And they represent tens of trillions of dollars coming online, but they also represent one of the greatest eras of innovation ever. I'll close with another fun example near and dear to my heart. In our solar system, we have access to abundant resources beyond our imagination. So this is an asteroid. And in the last 12 years, there have been discovered a set of asteroids that come very close to the Earth that are abundant in fuels, abundant in metals, abundant in platinum group metals. And these asteroids, this is just one example. This is UW-158. And when you look at its value in terms of fuels for use in space and platinum group metals or metals for use in space or on the ground, the value is 5 trillion dollars. We're living in a world where I believe there is little we cannot accomplish. That we're heading towards a world where entrepreneurs can transform and solve grand challenges. And this is perhaps the most exciting time ever to be alive. Not under a pleasure. Thank you very much.


we will continue the discussion on normal shocks. So, last class actually we are discussing that for a shock if we know the properties at the upstream of the shock we are interested to know the properties at the downstream section. That means for a given flow properties at the upstream of the shock what are the flow properties after the shock waves that means across the shock waves there is a chain in flow properties and we are interested to find that. So, let us continue the discussions in this way that let this is the duct and let this is there is a shock here shock wave and if the upstream section is designated by x with all given properties that max sorry m a x p x rho x t x we are interested in all those properties across the shock. So, last class we derived one very important relation relating to the first the mach number after the shock downstream of the shock and we probably if you recall we get two solutions from a quadratic equation connecting the mach number at the section y after the shock and the before the shock that means m a y and m a x and we found one trivial solution that is m a y is m a x that is equality another one is the which is the possible solutions that m a y square in this way can be written as and it is very simple from that equation two by gamma minus one by two by gamma by gamma minus one m a x square minus one. So, this is the relationship that means if we know a value of m a x that means the mach number at the upstream of the shock then the downstream of the shock we get the mach number which is given by this after that what we was discussing is the non dimensional of just for the moment we come to a different aspect that non dimensionalization of velocity non dimensionalization of velocity in compressible flow. Now, the velocity in compressible flow is non dimensionalized by three reference velocity now here one very pertinent question comes that this v by a the mach number at any section is itself a dimensionless parameter, but this cannot be used as a dimensionless velocity this is because a change in mach number implies both in change in v and a this is because when the flow changes from section to section the flow velocity along with that the velocity of the sound also changes because the state properties change. So, therefore, mach number cannot be used in as a dimensionless or non dimensional flow velocity because the reference value a which is used in the denominator here by its definition also change with the change in v. So, therefore, three reference velocities actually this was discussed in our last class also, but I feel that I was little fast. So, there were some confusions. So, that is why you want to repeat it again. So, there are three reference velocities used in this connection one is the maximum velocity one is the maximum velocity maximum velocity is given by root over two c p into t zero you know relating to stagnation condition in an isentropic flow if we write the energy equation h plus v square by two is equal to h zero stagnation state and any other state given by velocity v and for a perfect gas c p by c p t that h is c p t is equal to c p t zero you know that. So, in general v is equal to root over two c p for any adiabatic flow it is the equation like that. So, the maximum velocity by theory comes when t is equal to zero this hypothetical case. So, this a theoretical velocity can be used as the maximum velocity another one is the this is number one number two is the acoustic velocity a at the stagnation condition this is given by gamma r t zero well another one is the acoustic velocity at the critical condition a star which is given as gamma r t star. Now, usually incompressible flow the velocity is dimensional non dimensionalized or is made dimensionless by use of this velocity as the reference velocity it is the velocity of sound at the critical condition gamma r t dash t star. Now, if we use this v with a star the ratio of the flow velocity to the a star. So, a star has a unique value in a particular flow condition it does not change from section to section it has a unique value that is the value of velocity of sound at the critical condition this is defined as the m a star. So, confusion here was that the last class the asterisk or the star is used for all properties at the critical condition for example, by p star we mean the pressure at the critical condition by t star we mean the pressure temperature at the critical condition by rho star we mean the density at the critical condition similarly a star used here mean means the sound velocity at the critical condition that means it is nothing, but dot over gamma r t star in case of perfect gap, but this critical condition is defined when the velocity is equal to the velocity of the sound flow velocity. That means v star the flow velocity at the critical condition is a star. So, therefore m a at the critical condition is one, but we do not use the symbol m a star to denote the mach number at the critical condition rather m a star there may be a confusion this symbol this is the convention m a star is used to denote the dimensionless velocity v by a star. So, m a star is not the mach number at the critical condition because this cannot be used as m a star because this is a unique and this is the value of this is one at the critical condition. So, we take the critical condition as defined by m a is equal to one when the flow velocity is equal to velocity of sound, but m a star is not the critical mach number at the critical section it is v by a star. Now, from a simple energy equation if I write the energy equation with at any section given by the velocity v and the critical section we can write h star plus v star square by two all right. Now, h can be written again c p t plus v square by two is equal to c p t star plus v star square by two. Now, what is c p c p t c p t here we can write c p t is equal to gamma by gamma minus one r t. So, this is nothing, but a square so a square by gamma minus one. So, if I substitute this here we get a square by gamma minus one plus v square by two is equal to similarly this we will write will be a star square by gamma minus one plus v star square by two. Now, I write this first so v square by two plus a square by gamma minus one.  So, this can be written as if I take this common so two gamma minus one gamma plus one into a star square.   Mac number is also a dimensionless quantity containing velocity, but the flow velocity and the sound velocity, but here it is the flow velocity and a reference velocity which is a sound velocity at a particular condition. So, that is the difference here both the quantities change with the flow, but here only the flow velocity change and this is being normalized with a reference quantity at the denominator this is the difference.    So, a by a star square is m a star square that means this equation now can be expressed in two fashion one is that m a as a function of m a star very simple one can do or m a star as a function of m a either of these two if it is written you will get most important one is m a star square m a square m a as a function of m a star two by gamma plus one m a star square divided by one minus gamma minus one by gamma plus one m a star square you do not have to remember all this formula you have to know the logic and the steps through which it is they are being deduced similarly one can express m a star in terms of m a as gamma plus one by two m a square divided by one plus gamma minus one by two m a square now out of this two this one is used this is very important that mach number is mach number is expressed in terms of the dimension less velocity m a star now if we use this in the earlier one now we stopped here now if I express m a y in terms of m a y star and m a x in terms of m a x star what we get now before that you see that this is the expression well no this is not the thing where I did it sorry I think I think we should concentrate here otherwise we will be in trouble so m a y these are the two solutions we get we got m a y in terms of m a x now here one thing is sure that if m a x is greater than one we already recognized that the shock takes place when the upstream condition is supersonic that means in a supersonic flow then from this equation one can prove that when simple mathematics can prove this that when m a x is greater than one m a y will be less than one with feasible values of gamma between one point six seven as you know the gamma for compressible fluids that gases varies between one is the absolute minimum and one point six seven is the maximum one for all polyatomic gases so taking any representative value between that it can be proved that when m a x is greater than one m a that means the shock changes a supersonic flow to subsonic flow this will be more clear if we express this mach number at the two section in terms of the m star that means dimension less velocity that means by the use of this equation the equation which we just yes by the use of this equation that means m a y m a that means the m a y or m a x whatever you tell that means the mach number in terms of the corresponding m a star if we do that then we will get the relationship like that m a y star so this is a very simple relationship is equal to one that means here it is obvious that the gamma factor is not there so when m a star m a x star is greater than one that means supersonic m a y star is less than one that means supersonic to subsonic now there are certain routine calculations for the pressure values now we are interested with temperature and pressure that means our basic motto is again to find out all the quantities after the shock quantities are temperature pressure density rho y these are the main flow properties or the state point so this we will calculate how we will calculate if you remember the temperature ratio now it is very simple when we have already derived the relationship between m a y and m a x now if we can write or we recall the relationship between t y and t x in an isentropic flow for a perfect gas it will be one plus gamma minus one by two m a x square plus divided by one plus gamma minus one by two we deduce it with the help of the relationship between the stagnation properties and the local properties that is one plus gamma minus one by two m a square so logic is like that and this was derived starting from the basic energy equation for an adiabatic flow and considering the flow is inviscid and using the perfect gas as the ideal gases as the working fluid well here if we use m a y if we just here sorry here m a y in terms of gamma minus one m a x then we get a relationship like this which is a big one you do not have to remember again I am telling just the logical step you have to know let me write one plus gamma minus one by two m a x square into two gamma by gamma minus one m a x square minus two gamma by gamma minus one m a x square minus one divided by gamma plus one whole square divided by two gamma minus one so objective is that when we know the property at the upstream of the shock by the m a x then we can find out the temperature ratio that means knowing t x and m a x we can find out the t y that means the temperature after the shock that means the temperature ratio t y to t x is expressed in terms of m a x with the same philosophy the pressure ratios are expressed in terms of the mach number as a function of m a x the procedure is like that if we recall the most simple ratios of p y by p x which was derived by the exploitation of the impulse function equality of the impulse function which sorry f y better to write f y is f x which was derived with the use of momentum equation with the use of momentum equation equation of motion then probably if you recall this was gamma m a x square one plus this deductions are very simple so only thing is that you will have to know the logic that this is from this so simply again the substituting m a y in terms of m a x that means the same equation m a y in terms of m a x we can derive the p y to p x p y by p x is equal to two gamma by gamma plus one m a x square minus gamma minus one by gamma plus one now here one interesting thing you can immediately prove you can immediately prove that for any value of gamma greater than one if m a x is greater than one p y by p x is also greater than one. This can be proved immediately that means this quantity is greater than one provided m a x is greater than one and gamma is greater than one this can be proved easily because if you subtract minus one from here then you will see that two gamma by gamma plus one will be thing that means if you subtract minus one it will that means p y by p x minus one is a simple thing that you can do two gamma by gamma plus one into m a x square that means for any value of m a x square greater than one so this is positive that means p y by p x is greater than one so this can be proved this is a very important conclusion that means after the shock the flow reaches subsonic that means the flow is decelerated and at the same time the pressure is increased that means p y is greater than p x. This is the ratio then again this is at the routine affair that rho y by rho x as a function of m x very simple thing so rho y by rho x we have already found out the function that p y by p x as a function of m x is known similarly we have found out t y by t x so if we can express rho y by rho x by these two ratios from the equation of state we can find it we know that p is equal to rho r t so rho y by rho x is p y by p x into t x by t y so t x by t y as a function we know t y by t x similarly this as a function of m a x we know so we can find out rho y by rho x so similar way we can find out v y by v x v y by v x from the continuity is rho x by rho that means rho y by rho x means the reverse v x by v y so this way we can find out the functional relationship m a x let this is some function this is one by function m a x so another function of m a x so this way we can find out the ratio of the properties any properties p t rho v after the shock to that before the shock in terms of the mach number m a x now one important thing is this stagnation pressure p o y and p o x now see in a shock p o y and p o x are not maintained same this is because shock is an irreversible process friction is there so stagnation pressures are not same later so this is the measure of the irreversibility measure of irreversibility irreversibility now before going for a routine evaluation of this you must know this thing that in a flow the stagnation temperature remains constant when the flow is adiabatic because stagnation temperature is the index of the stagnation enthalpy all right because in a perfect gas when there is no heat transfer in adiabatic flow the stagnation enthalpy remains constant total energy enthalpy plus the kinetic energy and in case of an ideal gas the enthalpy can be expressed as c p into t so therefore c p into t plus v square by two is known as the stagnation enthalpy that means c p t zero that is h zero so stagnation temperature is fixed provided there is no energy added or energy taken out but stagnation pressure will not be same stagnation pressure by definition is the pressure which could be reached if the flow is decelerated or comes to the stagnation condition isentropic without friction that means the entire kinetic energy is converted only in the pressure energy understand only in the pressure energy not in the enthalpy through the internal energy that is a very useful concept i think in flow mechanics also you know that is why in energy conservation whether friction is there or not there is no loss total energy remains same but difference is that when friction is there some part is converted in intermolecular energy but in in visit flow or isentropic flow without heat transfer the stagnation pressure remains same that means there is no degradation in the intermolecular energy that means the entire kinetic energy becomes zero when it comes to stagnation test the entire kinetic energy is converted only to the pressure energy and that pressure is known as the stagnation pressure so stagnation pressure will be equal when the flow will be frictionless but for any natural flow when the flow is brought to rest that is the stagnation condition the pressure there is not exactly the stagnation pressure by its definition so therefore you see the ratio of the stagnation pressure in any flow is the measure of the irreversibility that means its departure from one is the measure of the irreversibility let us find out p o y by p x the routine procedure is very simple we can express in terms of their local values and p x by p o x and we know p o y by p y p x by p o x that means the ratio of the stagnation properties to the local properties in case of pressure will be one plus gamma minus one by two m s square gamma by gamma minus one and p y by p x also this ratio also we have deduced in terms of the mach number that means we know this p y by p x that means p y by p x just now i derived that means p y by p x is this so we can replace p y by p x in terms of the m x p o y by p y in terms of the m a y and p x by p o x in terms of the m a x and this m a y is again substituted in terms of m a x so finally we get an expression only in terms of m a x like this this is a big expression again i am telling you do not have to remember this only thing is that you will have to remember the way it is being deduced one plus gamma minus one by two m a x s square to the power gamma by gamma minus one well i think is equal to here then divided by two gamma by gamma plus one m a x s square minus gamma minus one by gamma plus one whole to the power one by gamma minus one so this is the relationship between p o y and p o x and we can see the value of p o y by p is not unity that means it is different from one so stagnation pressure and we can prove that p o y is less than p o x when m a x is greater than that means this is because of the friction when m a x is greater than one that means supersonic flow is change to subsonic flow through a process shock where p o y is less than p o x that means it is the effect of friction that this stagnation pressure is lower than the initial stagnation pressure now after this we are interested to find out what is the change of s entropy let specific entropy small s we are interested in that what is the change of entropy earlier in h s plane we have recognized that for a shock to occur the entropy has to increase according to second law of thermodynamics so what is the value of this so routine calculation starts from the thermodynamic property relation t d s is d h minus v d p for a perfect gas we can write t d s d h is c p d t and v is what is v r by p well v is p v is equal to r t r t by p d p so therefore d s is equal to very simple that you have already learned in your basic thermodynamics r d p by p so now the job is to integrate only d s from x to y this upstream to downstream section so c p d t by t x to y minus integral we can take r outside the characteristic gas constant which is constant so we can take outside the integral now therefore we can write s y minus s x is simply c p l n t y by t x is equal to minus r l n p y by p x now this r can be written with this formula c p you know is equal to gamma by gamma minus 1 into r that means r is equal to gamma minus 1 by gamma alright into c p so if I replace this value of r here and take c p common that is l n then it becomes l n t y by t x and then this coefficient can go as a power here that means p y by p x it is a minus so l n x minus l n y as l n x by y using this formula to the power gamma minus 1 by gamma so I can write this gamma minus 1 by gamma c p c p is coming common so l n t y by t x minus l n p y by p x rest gamma minus 1 by gamma this comes so this is the s y minus s x now this can also be written in terms of this stagnation properties and it is very simple that we can use this stagnation properties this can be straight way written as let me write it again otherwise there will be problem s y minus s x is equal to c p l n t y by t x well divided by p y by p x to the power gamma minus 1 this can be straight way written c p l n t o y by t o x this can be straight way written c p divided by p o y by p o x now you may say sir why are you writing like this as if it appears the ratio of the properties is equal to the ratio of the stagnation properties it is not so but by the relationship it appears so that means if you write t o y by t y that is is equal to 1 plus gamma minus 1 by 2 m a y square similarly if you write t o x by t x is equal to 1 plus gamma minus 1 by 2 m a x square that means the ratio t y by t x is not equal to the ratio t o x by t o y by t o x but they will carry the ratio between these two but at the same time the p o y by p y if you do this calculation it will be obvious immediate m a y square to the power just the reciprocal of it gamma by gamma minus 1 and similarly p o x by p x will be the same quantity with mach number x square to the power gamma by gamma minus 1 so with the help of these four equations if you express t y by t x the ratio of the temperatures in terms of their stagnation temperature and the ratio of the pressures in terms of their stagnation pressures you will see this gamma minus 1 gamma gamma by so these ratio of these two quantities will cancel from the numerator and denominator so that ultimately it is very interesting that the same ratio that means the variables in terms of the local properties can be just changed or substituted in terms of the stagnation properties so that we can express this now here one thing is that t o y is equal to t o x so this is one in case of shock because it is an adiabatic condition there is no energy is added or extracted so therefore the stagnation temperatures are same that is one that means minus c p l n p o y by p o x by p o x to the power gamma minus 1 now if i take this thing here in the coefficient then it can be written and again replaced it by r l n p o y by p o x so one simple expression that s y minus s x by r it is a non dimensional quantity this side l n now since p o y is already we have proved that p o y is less than p o x so therefore this is always greater than zero that entropy is always increased alright now a very routine and very tedious calculations one can make again to have the same conventional things that the entropy change in terms of the mach number that has a function of upstream mach number what he has to do he has to substitute this big expression of p o y by p o x in terms of the mach number somewhere earlier we have deduced it that p o y by p o x in terms of the well in terms of the mach number m a x if we do that we ultimately get the expression s o y that means we get the expression s y minus s x i think you have understood that already we have deduced this so this is very interesting equation in very simplified form but if you want to express in terms of mach number at the upstream section m a then we have to substitute this ratio as a function of m x which we have deduced earlier and final result is that s y minus s x by r is equal to it is a very big one gamma by gamma minus one there is no reason to remember it but you must know this gamma plus one m a x square plus gamma minus one by gamma plus one plus gamma minus one by gamma plus one plus one by gamma minus one l n well two gamma by gamma plus one m a x square minus gamma minus one by gamma plus one now usual convention is to draw now we can show in figure the variation of entropy change s y minus s x by r with mach number m a x now it has been proved already that p o y is less than p o x so s y minus s x is positive greater than well greater than zero i am sorry greater than zero so greater than zero that means entropy increases greater than zero it is not greater than one greater than zero so this can be expressed in terms of m a x now we can plot it so if you take a value of gamma between one to one point six seven let us consider a value any value one point four four for diatomic gases then we can plot this and we will see that well so this is the one mach number let this increases three like that in a supersonic region this is supersonic supersonic and this is subsonic well subsonic so we will see the mach number if i this entropy is going like this so therefore this is an impossible this is the possible shock waves where the entropy increases possible shocks possible shocks and this is the impossible region that means where the s y minus s x are negative that means the possible shocks corresponding to an upstream mach number which is greater than one but for an upstream mach number which is less than one a process will reduce the entropy in an adiabatic flow which is violating the second law of thermodynamics mathematically we can see that there is an asymptotic approach to the minus infinity when the mach number reaches a particular value in the subsonic range this can be found out from this expression here you see that this argument becomes zero implying an infinite value for this in the negative axis then we can find that a particular value of m a x square which becomes equal to gamma minus one by two gamma plus one all right so that value of m a x square makes this argument zero so this argument zero this is the l n so therefore this becomes so a particular value of m a this becomes that this part of the curve is impossible impossible this part of the curve is impossible all right so this is the change in entropy now we just show at the end the come to this to have an idea of stagnation pressure temperature let us draw the phenoline in t s diagram we know that we drew phenoline earlier in h s diagram in a perfect gas h is equal to c p t for a calorically perfect gas c p is constant so h and t are same that means they are just change with a scale factor so the same graph we can draw in t s diagram with the same qualitative picture like this so this is phenoline all right so this is phenoline this is phenoline phenoline so if you recall the rally line which is like this this this is the rally line this is the rally line and the intersection between the phenoline and the rally line is the shock that means this is the direction of the shock that means the shock takes place in such a way that there is a change in entropy so this is the region where mac is greater than one m a that means supersonic this is the region where mac is less than one so this is rally line I must draw that this is rally line I must write r a y l e i g h rally line all right so therefore we see that these are the intersection now here you one thing is very clear that this is the upstream side and this is the downstream side that means this is the x and this is the y we have already discussed the shock wave the upstream and downstream points must match both the rally line conditions and phenoline conditions so this is the direction of the shock so shock takes place in these directions from x to y now therefore we see that in a shock this stagnation temperature is fixed that is t o x because this is adiabatic is equal to t o y that means if I draw an isentropic line from here vertical line so this cuts here the constant pressure lines in t s diagram like this these are the constant pressure line for a gas for example the perfect gas here so this is the p o x but now this state if I draw an isentropic line if I that means if I draw an isentropic line from x this cuts the isentropic temperature corresponding to this state and this point corresponds to a particular constant pressure line which physically signifies this stagnation pressure corresponding to this state that means this stagnation pressure corresponding to the pressure at this state similarly this is valid for any state that state y it has got a pressure p y and it has got a temperature t y and it has got a stagnation temperature t o y if x and y are the points in an adiabatic flow that means between these two points no energy is added or extracted that means the isentropic a stagnation temperature is same that means if I draw the isentropic line and if you just come up to the same stagnation temperature because t o x is t o y so we come up to this point and the constant pressure line passing through this point will indicate this stagnation pressure corresponding to this point since this point is right of this it is obvious geometrically also that means the entropy has increased for this point from this point then a isentropic that a vertical line will cut the same horizontal line to a point where the constant pressure line p o y which is less than p o x that means this is the difference in the stagnation pressure stagnation pressure is decreased where the stagnation temperature remains same so this is precisely the graphical representation of the shock this is the final line flow this is the rally line again I am telling this curve is the final line flow that means the flow without heat transfer but with friction and the steady state condition that is same mass flow and this is the rally line where the flow takes place without friction but in general heat transfer is there and the steady state mass flow condition is maintained that the same mass flow but the shock occurs in such a way that upstream and downstream both satisfies the conditions of no heat transfer conditions of no heat transfer conditions of no friction and also the steady state condition it is very important and there realize the concept that the shock is such that interior details of the shock friction is there shock is a frictional process and natural process which increases the entropy but upstream and downstream of the shock refers to the conditions that no energy is added and ultimately the friction is taken to be negligible in a sense that when you take the momentum equation that across the shock wave the control volume is so thin that we have neglected the momentum neglected the frictional effect so this is an approximation but it is a very good approximation so that equality of impulse functions are valid so therefore the both the upstream and downstream sections corresponds to the intersect corresponds to both the final line and rally line conditions so therefore they correspond to the intersections of rally line and final line points so therefore again coming to this picture you see so this are the two points so this has to be upstream this has to be downstream because of the second law and this figure shows you the corresponding stagnation pressure where does stagnation temperature remains same all right I think okay any question question okay thank you


Hi, my name is Clemens Lang and today we need to talk about your use of root privileges in containers. I start out with a bit about me. I did study computer science in southern Germany in 2011, got interested in open source projects while doing Google Summer of Code with a MacPost project. I'm using a Mac here. And after that landed a job at BMW doing infotainment. So that's where I spent seven years building infotainment for cars, first doing some software integration work, doing packaging. And this is where the connection to today's talk comes in. We wrote a thousand line of C single binary container runtime to simplify building software for a platform. And I got very familiar with the various namespaces involved in doing that. Then switched to over the software updates for the entire car. I think we were the second in the market after Tesla to do that for the entire car. And for the last few years, did security at BMW, CISO, SecureBoot and all that, you know, I say Linux, whatever you have. And that eventually brought me to Red Hat where I now work in the crypto team. So first note, I don't do anything with containers in my day-to-day work. So this is sort of a talk from an outsider. And what I'm doing at the moment is I patch up in SSL. I try to get rid of Char-1 where I can, you know, that might have fallen in some of your feet recently. One of the culprits was me probably. And I'm also dealing with FIPS certification because that's a fun topic for everybody. So root and containers, right? Before there were containers, there was some conventional wisdom that we always applied. If you run a service, create a separate user for it just for separation purposes, right? And while, you know, then Docker came along and we started running everything as root again because that's just what Docker did. But nobody thought this was a problem. And honestly, we still don't think it's a problem. And probably also isn't that big of a problem, right? So just to put the entire talk into perspective for you. I brought an example here. Let's assume I create a directory and varlib. And then I bind mount that into a container. That container is running as root. So I'm running the entire command as root. And inside that container, I just happen to copy bin cat into that bind-mounted directory and then run a chmod command to give it the set UAD bit. So that means anybody who runs that binary now will get effective root permissions. And that also works outside of the container. So if I then outside of the container switch to user nobody, run that particular binary and give it an argument of ETC shadow, then I will get the contents of that file even though the nobody user should normally not be allowed to read that. This isn't really a surprise to anybody. And it's not really a security vulnerability as is because if you bind mount stuff in, then you should know what you're doing. So this isn't a surprise. But if we were running this with root less potman, then this wouldn't be an issue. You would still get a set UAD binary, but it would be for that particular user that might not have privileges to do anything else. So we could improve by running this container as root less potman. Right, so running things as root less potman. That brings us to the issue of networking. Because if you want to offer a service, then you probably want network in your container. And in potman, in root less potman, there are basically two options, either it's slurp for netterness that works using a tap device, but has a couple of limitations. For example, you can only communicate among various containers via exposed ports on the exact same host or using the local host interface. And all the requests that you get will seem to originate from the IP address that's associated with the tap device. So you lose the information of where the request was actually coming from. And you might want to use that to filter for which IP networks you offer a particular service. And there's some improvement on top of that, where you essentially take slurp for netterness, put it in a user namespace that owns a network namespace, and then do a common typical networking using netavark after that. That's great, because it now allows you to do standard networking between containers. But it still uses the slurp for netterness tap device, so all requests still originate from the same IP address. So this isn't really ideal if we want to do is run a service. So the question that I was asking really turns into can we run each container as a separate rootless podman user, but with the proper networking, proper in quotes, as in the rootful networking. And that's the question that I want to answer today. And so you've now seen my motivation, that's the outline for the talk. We have to talk a bit about theory, but it will be quick, I promise you. And then I'll outline the various solutions that I found by following a mailing list post in the presentation somewhere in the podman user group in 2021, I think. That was recently removed from the web server, boo, I have to go to archive.org to get it now. Right, let's get into it. Some theory. Why is it that inside of the container we can even read the file that's owned by root? To know that we need to understand how user namespaces work, user namespaces separate, they basically give you a separate UAD range, and that UAD range is mapped from inside the container to outside the container using a mapping file, and this is what this mapping file is. You can do this with pretty much every container that uses username spaces. It essentially tells you zero in the container is user a thousand outside of the container and repeat this for the following number of UADs, in this case one. And then after that one, the UAD one is mapped to UAD five, two, four, something for the next 65,000 and 300 and something UADs. This is what it will typically look like on a modern system where you have sub UADs. And the rule for accessing files is that containers, and I looked this up in the kernel, can't access iNodes that are owned by UADs and GADs that are not mapped inside your container. So if you don't map the UAD zero, then nobody can access root files. It's as simple as that. So that's theory part one. Theory part two is on networking. For that, you need to know that any non-user namespace is associated with a particular user namespace. And if you want to do an operation inside that namespace, then you need the required capabilities in that user namespace to do that. Sounds complicated, but it will be a lot easier once we get to the example. So managing a network connection requires CapNet admin. That's the capability that Linux kernel checks when you try to modify the IP address of a device, for example. If you now do this in a network namespace owned by a user namespace in which you are root, then you have that capability usually, and that action is allowed. However, changing the host's namespace requires CapNet admin in the host's username space, which is the root namespace that you typically don't see in Configure, but it exists. And that also tells us something. It tells us if we want to use the real networking, then at some point, we will have to have CapNet admin in the root username space. So there's no way of doing any of this without using actual root. So for some pieces, we will need root. So my first idea when I was trying to do this was, okay, I'll start a rootful container, but Potman offers me this flag dash dash UAD map that allows me to configure which UAD mapping I actually want. So let's just not map the root user from outside into the container, and then the problem that I was trying to solve is solved. This is what these lines here do. So essentially, I'm saying zero in the container, maps to the user that I'm currently am outside of the container, and then the second UAD map line just does the same thing with sub UADs, which we will ignore for now because it's, you know, we don't need to understand this to understand the concept that I'm trying to go for. So when I prepared this talk, I rerun this command, and my heart almost stopped because I thought, wait, this didn't use to work. And this is the error message that I used to get when I did this. Turns out this is fixed in Potman 4.5, right? So this is what you should be doing. Thanks for coming to my TED Talk, goodbye. So I mean, now this works, but I'm still going to tell you what I did before it worked. And there might be, you know, you might learn a thing or two and you might still want to not do this particular solution, but we'll get to that. So I did some Googling. I found a presentation that essentially said, yeah, you can run these two commands then set up the network manually, and that should work. And here's a link to a mailing list post of a guy who probably did that at some point in time. And then I clicked that and thought, okay, this looks nice. I can probably do this. And the idea here is that we, you know, all of this is as a user now. So we are running rootless Potman. I create the container, not create, not run or start or any of that. I create the container without networking. I give it a name because we will need that name for the commands that follow. Right after, I run container init. That's also an interesting command because what that does, it sets up all the name spaces but doesn't actually start anything inside your container. So you have the name spaces available, then you have time to modify them. For example, the configure network, which, you know, I did here in a script, let's call it magic.sh. After that, I run potman start and my container starts as normal. So the question really is, what's inside this magic.sh? And it's this. And it's kind of a lot, right? Let's go through what this does. I will take potman and spec to figure out the PID of the container that we initialized but didn't start. And this next, the sudo ln line is really just to give the network namespace a name that the IP utility from the IP route package can use. And then I do what potman initially or internally also does, which is set up a virtual ethernet pair, move one side of that ethernet pair into the container, then rename it inside of the container to eth0, which is what we would expect the network's name to be. And then bring it up on both sides and configure an IP address so we can have a communication going on. That is a lot of work. And note that we haven't actually, we haven't, well, we had to do manual IP config for this. I had to choose an IP address and set it. Then potman and spec won't know about this because we didn't use potman to configure the network. We must repeat this every time we start the container. And I haven't yet dealt at all with exposing ports, which requires writing firewall rules, which I really don't want to do manually. This is like tedious work. And yeah, I could probably write a script. But at this point, I was almost, I was about to give up on this because I thought now I don't want to deal with firewall rules and exposing ports. I don't want to let's just run everything with root. And then I thought, how does potman actually do this? Where's the code in potman that creates all these network interfaces and chooses an IP address and assigns all of this? And it turns out there isn't, because what potman does, it calls net awark for this and just pipes a bunch of JSON into it, and net awark takes care of configuring the network interfaces, moving them into the right namespace and so on. So I thought, can I just, you know, create this JSON configuration, pipe it to net awark and it will do what I want for me? And it turns out, yes, I can. So I created a new potman network. You can give it IPv6 or not if you want to. I mean, we want to get rid of legacy IP, so you should these days. Then generate the required JSON. That contains the IP address that you want to give the container, so we still have that problem. That contains the exposed ports and then pipe that to a net awark setup with a path that identifies the network namespace in which you want to do this. And then that will give you in return a namesaver server configuration that you should somehow get into the container. I was lazy, I just wrote it to ettresolveconf. What does that JSON structure look like? Unfortunately, it's not documented, at least not in the net awark readmes or documentation and also not in the potman documentation. So I reverse engineered it and this is the rundown of what this is. It tells you, okay, I'm looking at this container ID with this container name. Here's a list of the port mappings from which container port to which host port, how many ports, which protocol, and it also gives you a list of the networks that you want to attach to and which IPs you want inside that network and this also gives you DNS. So you can get name resolution and service discovery if you also specify name aliases for that. And then there's this block network info here at the bottom that I omitted because it's really just the output of potman inspect on the network. Right, and this is the point where I show you that this works. And let's pray to the demo gods because I'm running this over Wi-Fi. But if it doesn't work, then I have a TTY recording of me showing this. So I have two shells here on a Fedora 38 system. Can you still hear me while I'm sitting? Yes, great. I have two shells here on a Fedora 38 system. One is root and one is the test user. And I said we want to start out as the test user, so let's do that. I want to define a runtime directory. Let's call our container root less and for that reason I'm choosing that particular runtime directory and that probably doesn't exist yet, so I'm going to make it. And then I'm running potman create. And this CAD file that I'm specifying here, I'll explain in a second because I automated all of this. I'm not going to do it manually now for everyone. Thanks. And that expects the idea of the container in this particular path. So that's why I'm creating it. Disabling network, giving it a name. And we're starting Fedora 38. And just for the demo, we're starting a Python web server on port 8088. So this was created now. Now I need to run this container init command that we saw earlier. So potman container init and then the name of the container. That passed. And now we can see in potman ps-a that we have the container. It's in status initialized. It's not running yet, right? So let's get the PID for this. So we can see what's going on. My time wise, I should probably skip some of this. Let's go to, yeah, I scripted some of this. And this is the part where we need to start running things as root. So as root, I have a script here that allows me to set this up. Now I need to use the exact same runtime directory that I used here. So let me copy this and fix it because obviously id-u will return something else. When I run setup, I specify a name that's used to generate an IP address. So in this case, I just used the container name again. Then I have a secret that I use so that the IP address isn't predictable that I'm generating. Test is the user that I'm running the container under. Then I want to attach this to the rootful zero network. And let me quickly check that this network actually exists. So we don't get an error. It exists. And I want to publish a port. That's 80 to 88. So 80 is outside of the container, 8080 is inside of the container. And I could also specify a network alias here, but I'm not going to show you the resolution anyway, so let's just skip it. I mistyped something. This exists and container id exists in there. There must be a typo. There I don't see it. No, no, that's not the issue. I mean at this point, this is the case where I'm stopping this and just showing you the recording because I don't have time to debug this right now. So we see the same thing, and now I'm sure that this will work, right? And the advantage is that I have time and I don't have to type, so I can tell you what's happening. So we already saw this, right? So I'm creating the runtime directory, then create the container. Without network again, again I'm giving it a name. And we're starting the exact same Fedora 38 container as created. Connect container is initialized. Then again we see the status is initialized here. I'm getting the PID of that container because in this case I'm going to show you some of the network namespaces. So what we see now is this is the process that's actually running, right? The container isn't running, but there's the C run process which initializes the namespace. This also lists the namespaces that we have. So if you have time to look at the details, you'll notice that the numbers are different behind this. So this means that the namespaces have in fact been created, both the user namespace and the network namespace. And we can also see, and that's what this NS Enter command is doing here now, we can now enter the namespace and look at the IP configuration inside of the namespace and we should expect that there will just be a localhost interface because we told it not to set up any network. And that's what we see here, right? So there's no ETH0, no other network connectivity. Now it's the point where I want to set up the network. So again we see the root for zero bridge exists. That's the bridge that I want to attach to this container. Again the path to the container, to the runtime directory that it created, set up to tell it to set up. Rootless is the name, then the secret that I use to generate the IP address, test as the user, root for zero is the network name, then publish because I want to publish a port and in this case I'm also specifying a network alias that will be in the DNS server inside of the container. This is the successful output, a lot of JSON, you don't need to understand it, it just gives you the network, the DNS configuration and now we see if we rerun this NS Enter command that the Ethernet connection exists at this point. And if we want to, right, now we need to start it obviously because the process inside the container wasn't running yet, so I ran portman start rootless, now it's running and now we still need to test it because if we didn't test it then it's broken obviously. So I'm figuring out my own IP address and using curl to send an HTTP request to the Python web server inside of the container and it works. So our networking worked as expected. I'll skip the stopping because we're running out of time. I also have the same thing automated with systemd, so I put the exact same commands in a systemd service file and the lines that require root privileges, systemd allows you to just specify a plus at the beginning of the command and I will run them with root. So that's a nice trick to get all of this in a single systemd service file. I'd show you but we run out of time, so you'd have to go to the website where I publish this. You don't have to scan the QR code now, it will be on the last slide again and so no hurries. And that also will contain this rootful network Python script that I just used to do this. So what did we achieve so far? We now have automatic IP configuration even though I had to re-implement it but the script does it for you otherwise Podman would have done it. We can expose ports with the systemd service file that I talked about. I can have this container controlled by systemd and that takes care of correct startup and tear down. Podman inspects still won't know about this network because we added the networking manually and if we try to run, try to use systemd notifications that also won't work in this particular configuration because systemd will refuse the notify, it will see it but it will refuse it. So what's next on this? Before Podman 4.5 introduced this, the working dash dash UAD map flag where this just works out of the box, I would have said maybe we should add a mode to Podman to drop all privileges except for network configuration. Now I'm not so sure. Honestly, if you're on Podman larger than 4.5, probably just use UAD map to do the same thing and maybe there's some improvement to be had for rootless networking, there's a talk tomorrow at 9.30 on rootless container networks getting shaped with pasta. So if you want to give that a shot. Right, that's it. Thank you for attending and any questions? Yes? Any standardized, I mean doesn't change under your hands and doesn't break the user's free. Right, the question was then the JSON format for network isn't documented so probably not standardized, am I afraid that this will break with the next network update? Yes, vary. On the other hand, it's also a interface across two processes between Podman and network so I know those two are developed in Unison but I'm at least hoping that they will preserve backward compatibility and what I'm currently doing will continue to work. It also looked like somebody really wanted to document the JSON interface just didn't. So I think that's the lack of time is the only reason why it wasn't documented. So the question is I demonstrated that the, that said you had a bit trick won't work because it will map to the unprivileged user. What about file capabilities? I actually can't tell you. I'd have to look into the kernel source code what it does but I'm assuming the rule that I learned from Michael Kerosky has a great training on all those isolation APIs if you have a chance attended. What I learned from him is the general rule that you need the permissions in the username space that owns what you're trying to access and if that principle holds then it shouldn't be possible because in the username space that owns the files which should be the root namespace you as unprivileged user wouldn't have the capability to do that but I'd have to test. Other questions? Questions from the Internet maybe? Thank you and enjoy DevCon.


Gwen Stefani just said she's Japanese now a lot of people are coming out against her calling it classic cultural appropriation A lot of people are coming out to defend her saying that she should be able to identify however She wants and this just turned into a hot political debate I would have never guessed that Gwen Stefani in 2023 would be able to get seven million Internet comments some supporting or some going against there some in the middle. Let's break it down We've got five major takeaways representing the five major viewpoints Of course, we're gonna give our hot takes at the end.  I mean if a man can identify as a woman why can't a white woman identify as Japanese? She's an artist anyways clearly. She appreciates the culture Yeah, I mean I do think there is something to be said for people being overly sensitive But I do think obviously they're not taking into consideration any sort of history from Gwen Stefani any sort of other comments She would have made and obviously she probably also a Republican now now that she married to Blake Sheldon So they're more defending their own tribe. You know what I would like this conversation to go is What are we fluid about when it comes to identity? Are we fluid about gender? That's fine cool Are we also fluid about culture and ethnicity not as cool right now? So I guess I want to have more conversations about that. Yeah, because I would say the gender and ethnicity are different Yeah, they're different. I get it. They're totally different That's why we need to have these conversations because are you applying that logic to this or not But we need to have we need to specify I'm not gonna give the right wing zero out of ten points on this But definitely I don't fully agree. I think they have an unbalanced perspective Of course number two Andrew speaking of unbalanced perspectives probably also the left right the left said basically you White people are the dominant baseline culture ever since Anglos conquered the world 200 to 400 years ago and they just feel like they can go around saying that they're Asian that they're Chicana That they're Indian which is all things that Gwen Stefani's been accused of even though She's Italian-American not Anglo but like basically white women can just take all the parts They want Fetishize it and then throw away all the realities because where was Gwen Stefani when all the Asian women were getting attacked over the Past couple years. She said nothing clearly if she identifies as so Asian She actually only likes two streets in Harajuku. This is fair. This is fair Listen, if someone's going to say they're Japanese do they have to feel the pains of being an Asian person, right? Oh, whatever pains there might be I'll tell you this if she said if Gwen Stefani said I'm black That would have been taken a lot differently. I don't know if Candace Owens would be defending her in the same way You know what I mean? So I do think that although being black and being Japanese are viewed completely differently in American society It's it's obviously like where do we draw the line? And by the way, I think that the left also made some valid points However, not fully also. It was also an unbalanced perspective to be fair Typically when you're this end of the spectrum and you're that end of the spectrum You just going for all the points that support your tribe and your side and not the whole thing Moving on to number three Andrew We got to talk about the pop cultural mavens This actually represents a larger section of the internet than you would think these are people who aren't hyper political I'd say they probably lean more left, but they're really more about just pop culture details and the art behind it Right and they were basically going into Gwen Stefani's past like she did the Chicana thing She did the Indian thing where she was rocking a Bindi She likes to play with culture because she points to her grow up bringing an orange County being like oh I grew up with so many cultures around me and some people were like I don't know we have to look at this within the context of Gwen Stefani's career of Kind of being a culture vulture. Okay, you know what I'll I'll say this and I'm not gonna go ahead and call her a culture vulture Because I did she did quote and say that she was appreciating all those different cultures She grew up with she had a band member who was Indian so she wanted to wear Bindi whether that's the right way to show it She's an artist, right? But I would say Gwen if you say you're Japanese do you speak any Japanese? Have you ever dated a Japanese person? Pulling the area on a grande where they kind of meant I want to be Japanese But only if I'm pretty much the top Japanese person in the world I'm the last samurai then that's how I'm getting also if she means that she more cares about Harajuku style Just say Harajuku instead of Japanese Harajuku is its own style It's its own glam rock less than 1% of Japanese people fit into the Harajuku archetype anyways What's the next perspective David? It comes from otaku's like these are people who are actually Into Japanese culture especially pop culture. Yeah, they basically said in Japan that people would not really care that Gwen Had the Harajuku girls because they don't even really like listen to Gwen's music that much Maybe the international school kids did and if anything at that time in 04 They probably were appreciative they probably were like hmm the way she's doing it is a little weird But in Japan we like weird and some people were saying Pointing out though that the Harajuku girls that sometimes had to bow to Gwen like Gwen was the Emperor or like some sort of like CEO So some people were like, you know It just kind of fits into the Senpai Kohai dynamic and I guess if we isolate it She was the Queen pop star in 04 and they were underneath her like tutelage So I guess they could see why she was the Senpai. All right guys I do think that it leads to our next perspective, which is more the moderate perspective Which is someone who's like I get the outrage But I can't feel the same because basically it's saying hey listen I wish that Gwen Stefani would just come out and say she's an artist. She loves cultures She's eccentric of a person and she's kind of a weirdo.  They got paid. They lived a fun life. So what's really wrong with it? It was probably her word choice. Yeah I think that the moderate answer once you take all arguments into like their totality is basically like in 04 Gwen was definitely a good pop artist or a great pop artist because she pushed boundaries Sort of like Madonna. Yeah, you should you was trying to be the new school Madonna, right? So she was pushing the boundary in 04 the goalposts in society change whether you like that or not Especially right wing pundits I'm sure left wing pundits like it more because the goalposts have shifted in their favor The goalposts have changed you cannot do what Gwen did in 04 with Chicano Indian and Harajuku culture in 2023 now how you feel about that is up to you But to pretend like it's the old days like 1990 standards It's wrong like basically what she did back then was acceptable It's kind of weird to cancel people post retroactively right history But obviously if somebody debuted nowadays a pop artist using all those influences It would be way more called than even the past 10 years We've had a lot of conversations about Katy Perry Kim Kardashian with the kimono all this gay shit I mean this is a thing that comes up again and again But Gwen because she has this long history of being into Japanese culture and appreciating it in her own way She's doubling down on it in 2023, which people just thought was a little bit And they don't like it because she's married a Blake Sheldon nowadays So it's the actually a well the micro mid macro situation my overall takeaway is this I Liked it when she did the Harajuku girls in 04. We thought it was kind of interesting Yes, I thought it was cool because at that time I was always in a Japanese sneaker culture I was in Harajuku Shinjuku stuff I was following Nego and all this stuff way back in the day, but a lot of people really weren't right So I was like man, she's like bringing it to the forefront now when she brings it to the forefront It is can be a hit or miss I think she had elements that were dope, but them bowing to her I could see why that was definitely cringy like I can overall like the Harajuku movement for 04 Standards, but acknowledged that there were swings and there was misses and there were swings and there was hits Yeah, I mean, I'll say this listen. She is an artist She pushes boundaries and I think in art you do have a little bit more flexibility However, she definitely did not update her firmware for 2023 what by doubling down and saying she's in the job She could have been more nuanced and just said hey I'm really into Harajuku because I don't know about her matcha brand Does she have like a traditional matcha brand? Is she out there doing the tea like the Shinto? Yeah, was she in the Shinto Buddhism? What it like? She's not really like Japanese. She's not Japanese That's just a fact, right? So she's she's into the sides and small aspects of Japan that are very popular globally Did she like listen? That's like me saying I grew up listening to rap I Dated a black girl. So hey, I'm black or something like it's literally people would be like nah That's not exactly how it works But you know, I guess what I'm saying is just like Basically she she could update her firmware for this interview and it might have saved her some trouble If you want me to really get into my last final macro takeaway Andrew How much is sort of like this Anglo view on the eastern world gonna be the default American view because that's what Megan Kelly and all the right-wing pundits are trying to maintain They're like listen guys as long as the Anglos are like well whoever's angle adjacent We just show like love who cares if like the love was a little misplaced or was a little bit misaligned Or it wasn't fully a hundred out of a hundred on the mark at least we said something positive about you We used to want to kill you guys, you know, I mean obviously referencing World War two and stuff I'm being dead serious That's how they think they're like compared to where we came from even a misplaced or cringy love for you guys It's still just just take it just accept it, right? And obviously us being like actual minorities or people like, you know, for example the writer of the article I know I didn't want to make it sound like I was overly criticizing the allure Filipino writer Like I don't fully support her or go against her at all I think she just made a solid point that I don't fully agree with but it's like I guess isn't it fair that other minorities We don't accept that same fondue point Listen, it's fair to question Gwen Stefani even in 2023 you can ask her those questions to be like, hey, what do you think about these accusations? I thought it was weird. What do you think and if she doubles down? Then she has to live with how people are gonna perceive it because she's not keeping her ears to the ground She doesn't really understand how people would react to that and even if in her heart. She feels Japanese She should also know I guess how that might be taken But it is also true that Japanese is not a group despite the whole bombing of Japan And then also the internment of Japan and then the whole war against Japan They're not really considered like a a oppressed group in America. That's not how we see it people do not take That's not how we see Japanese seriously or I would say Asians in general But the particular the cartoony anime Hatsune Miku aspects of Vocaloid aspects of Japan very seriously because I will end on this Ariana Grande used to love speaking Japanese to her crowd But then she got a tattoo that was wrong like the Hirakana was wrong on it And then she wrote like Hibachi grill on her arm Everybody made fun of her and immediately after that she stopped learning Japanese forever So clearly I'm not saying that she was fully wrong for ever learning in the first place, but clearly The respect for the culture seemed to be on thin ice I do think that if you want to use a culture and you think it's interesting I think that's fine, but you still have to do your research Like if you are going to get more popular by using elements of a culture I think that's totally cool in America like it's generally fine because I think that if you have a true appreciation Why not America's a mixed society of course, but do your research. That's all I'm saying and yeah I mean have some more conversations about it. All right, you guys let us know what you think in the comment section below I see a lot of you know discussions arguing about the micro but at the end of the day Hopefully we brought it to a macro level. Let us know what you think in the comment section below until next time We'd hop up boys. We out peace