Well, I can make it small enough and just run it not in full screen mode, that's fine. So this should all work. So the point of this talk was to talk about unprivileged containers and what we're doing from the file systems point of view. So I did give a talk a few days ago about unprivileged containers. And so I'm not going to repeat everything in that talk. So I'm going to really skip over the bit about containers except the reason I was altering these slides so that I had something different to present is because I was doing a bit of changes in response to what various people have said about container technologies and the state of containers. So this is a bit about who I am. I've been an open source advocate for a long time. I got into containers in 2011 and I've been doing them for that amount of time. So in many ways, my container technology experience proceeds darker. But the primary point about this is that I'm principally interested in the kernel primitive interfaces for containers, not most of the Docker DevOps stuff. But fortunately, most people here are sort of interested in kernel stuff as well. So I don't need to explain the big difference between them. So we can just get straight into the kernel API for containers, which Richard Briggs went over a bit, the C Group and the namespace API. And the fact that we have every orchestration system for containers uses this same API. So if you're working in this API on any feature or any security thing, whatever you do is automatically inherited by any of the orchestration systems. But as a caveat here, it's provided they turn it on. So one of the problems with, or I don't see it as a problem. I see it as a benefit of container technologies. The virtualizations are completely granular, which means that if you choose not to have them, you don't have to have them. And that means things like Docker can get away with not turning on the user namespace because it's not forced to have it. But equally well, it means that there's an infinite configuration space in terms of the way you could set up containers. This alleged OCI project standardized container format is nothing more than a lie in these terms because all it's standardizing is the packaging format for IS containers with immutable infrastructure, nothing else. So we'll do nothing to standardize the format of how you actually set up containers. So we'll still have this infinity of possible configurations. And if you think of an infinity of possible configurations, a subset of that, which is also infinity, are absolutely demonstratively completely insecure from the get go. So you have to be very careful about how you actually set up containers. So if we go with the C groups, which I'm not gonna bother with very much because most of the interesting container stuff is going on in namespaces at the moment. If you look at what's going on in the kernel, C groups are arguing basically about the V1 versus the V2 API, which it's not really feature enhancing. It's sort of a somewhat political discussion we've got into at the moment. Namespaces are where most of the interesting sort of development and certainly the interesting security development is going on. So I'll just mention a few of the C groups just to prove I actually know what I'm talking about, principally because you couldn't fact check me at the moment even if I didn't. And then we'll move on to the interesting stuff which are the seven namespaces. So there were six plus the new C group namespace. So it's network IPC, which is used to virtualize the system five IPC primitives, which means we can have a separate IPC namespace per containers if we choose. The mount namespace, which is one of the really important ones, because it means we can have a separate mount tree per container. The interesting thing about the mount namespace in Linux is that Linux mounts have always been based on something called the subtree concept. So when you set up a mount namespace, your subtrees, you actually get a clone subtree right at the top and you get identical mount namespaces for the two containers. And if you want the container mount namespace to look different, the first thing you have to do is start throwing out attachments to the subtree until you get there. So there's somewhat of a complexity in setting up mount namespaces securely. And we'll get into something of that when we come to the problems with unprivileged containers, because primarily they do lie in mount namespaces. The PID namespace you've heard mentioned, a lot of container subsystems Docker included use it. I've never quite figured out why, because the main reason for the PID namespaces is if you're doing system containers like LXC. And for those of you who don't know what the difference between a system container and an application container is, principally a system container runs in it. So it looks like a fully booting machine operating system. An application container. So Docker would like to pretend that an application container just runs applications, which is sort of true. But it doesn't in the Docker case, since they have a whole ton of infrastructure in there that they get through the mount namespace. But, oh boy. Yeah, well, that's okay. So I could prove the difference between Linux and Windows by doing the install in front of you while I'm doing the presentation. But I consider the risk is just too high and the publicity benefits to Microsoft are too great to do it. So if we continue, the PID namespace primarily is so that Inet can run a PID one in multiple containers. That's the main reason why it exists. One of the other benefits it does is it virtualizes the process subtree at one point. So if you wanted one container not be able to see the processes inside another container, then it's a security feature as well, which is why Docker mostly turns it on. The UTS namespace allows us to virtualize the host name. So the host name and domain name need to be virtualized if you want to bring up an NFS server inside a container. Because the NFS server and the NFS client often use the kernel primitives for getting the host name and domain name. And then we have this final thing, which was what got disked this morning, which is the username space. So instead of telling you why you should fear username spaces, I'd like to tell you why you should love username spaces. So that's what most of the talk will be about. And I give brief mention to the C-group namespace. It exists. It's a recent 4.6 feature. And it exists primarily to virtualize certain information about C-groups. So in the long run, we have a hope that the C-group namespace will actually enable us to bring up unprivileged C-groups. But it looks like there's about half a decade of arguing between where we are today and where I'd like us to be.   But one of the things that you hear a lot about this API is that it's completely toxic. So it's very difficult to use. Docker will proudly boast that the reason you should use Docker is because you can't use the native container primitives in Linux. But unprivileged containers, as far as I see them, which is a way of setting up containers so that you don't have to rely on an orchestration system, is also the backbone of all security in container subsystems. And we'll go into that as well, why? It's definitely a way of setting up containers without root privileges. And this is a very contentious term because it means different things to different people. So what it, in truth, is it's a way of putting an ID into a container that inside the container can pretend it's root, so it can be with root privileges. But if you look from outside the container, it's a nobody UID, so it's an unprivileged UID. So this idea of setting up a container without root privileges, you can do it in two ways. One is the simple way, which is basically don't damn well put root into your container. This is what a lot of people should do, but don't. And the other way is that, OK, so you realize you have some sort of application which requires some sort of rooty privileges, so we have to give you a UID zero inside your container that has some sort of elevated privilege over all the other UIDs inside your container. User namespaces can be used in both cases for the separation, but the contentious bit is the unprivileged root user that actually has some privileges. So if you think about the problem, the ideal would be to put a fully unprivileged UID inside the container and just pretend it's root, give it no additional privileges whatsoever, but you unfortunately find that a lot of applications that depend on root to do things start falling over because there isn't sufficient privilege there to actually do stuff. So this is the reason why you have problems with the username space, because I use it as a way of setting up containers without root privileges. But the way you set up a container, you have to call unshare, and unshare is a privileged call to the root user, which means I can't do it unless I first set up a username space and pretend to be root. So a lot of the container primitives in Linux can't actually be set up without becoming root, and that means that if it's an unprivileged container you want to use container primitives, you actually have to have a root set up inside your container to do it. And obviously I want to do this independently of any orchestration system, as I said. I'm interested in things like micro-execution containers. So these are very tiny short-lived containers with a truly invariant thing that just have a script inside the container. And the current state of unprivileged containers is that in 4.8 RC3, user namespaces work really well. And C groups just don't work at all. So this is why this talk is entirely about namespaces because I just can't get C groups to work for me. So let me explain a bit more rather than dissing them about how user namespaces actually work. Because this is the key to understanding what all the security primitives that Docker will eventually be relying on and why there is such a problem and such an issue in security terms. So the real issue is that, effectively, user namespace gives enhanced privileges to a user. So it's a mechanism for elevating the privilege of a user. And every time you do that, you get the potential for security threats, which is what Richard was complaining about this morning with what Red Hat has seen. However, what I can actually tell you now is that it is also very possible to use this mechanism to actually give a user sufficient privileges that they think they're rude, but they can't do any damage to your system. That is the sort of ideal we're all aiming for. So the allegation that I heard this morning is we're not there. But I'm here to tell you that we are because the Bluemix container cloud, which if you've gone to any IBM keynotes you'll have heard up to your ears, is currently running on a bare metal environment using only the user namespace to actually protect the hosts from the guests. So in fact, we're demonstrating in a publicly accessible cloud today that user namespaces are sufficiently well set up for us to actually do security separation. So we've got essentially the running of our business cloud bet on this. That's obviously an invitation to go and hack. So please don't tell IBM I told you to do it. It's Eric Biederman, I know. But the point is that Eric is very conservative. And you also have a guy called Dan Walsh at Red Hat who says very much the same thing as well. I'm not telling you that all of the problems are solved. What I'm telling you is we think it's secure enough now to actually do the correct privilege separation that allows us to bring up bare metal containers. And if you think of all the promise of containers to the service providers, bare metal is really where we need to be because that's where we get all of the density benefits of containers without any of the junk overhead of running hypervisors. So this is a very important milestone. And this is why we're willing to sort of, well, I say we're willing. I suspect IBM research sort of did it and the cloud group went along with it and they don't really understand what we've done. But this is what we've done. So the key point from you as low level system people to understand is we have a public cloud that is bare metal containers using only user namespaces. But the thing that I'm interested in with user namespaces is certain rooty privileges you have to have if you want to bring up unprivileged containers. So I spend a lot of my time worrying, how do I actually do this in the cloud? And the key thing is actually the ability to create other namespaces. What a user namespace is is actually a mapping between interior and exterior IDs inside a container. It's controlled by about four files here. So we have mapping, these are actually basically a triple parameter. It lists from, well, basically a target UID, a destination UID, and a range. So in order to map, say, 100,000 UIDs, I don't need 100,000 entries. As long as they're contiguous, I can just do them as a range mapping. It's basically just a shorthand way of doing it. So we can map UIDs. We can map group IDs. You don't have to worry about this project ID. This is a group quota thing. And it only really applies to XFS currently. And I think EXT4 is growing it. So you can forget that. And then we have this thing called set groups. Because one of the security problems we discovered with user namespaces is the ability to actually change group once you're within the user namespace. There's an exploit there where if you use the UNIX group semantics, you can actually use group membership as the ability to deny access to resources. And if you can call the set group call, you can actually drop this group and suddenly get access to the resources you were denied. So for those of you who use this obscure mechanism, that's why that exists. And the shadow utilities actually provides a way of assigning ranges of user IDs and group IDs to unprovalaged users. Right at the moment, if you start a username space as an unprovalaged user, you're only allowed to map one UID, and that's your own. And you're only allowed to map it either to yourself or to root and to nothing else, which is, again, a security thing. But if you want to cope with ranges of maps, you actually have to have some privileged program do it for you. And so new UID map and new GID map from the shadow utilities package are the way you do this. And what user namespaces do is they retain the concept of an owning namespace. So you can get an interesting issue where you can set up many namespaces. But unless I actually have the right username space, I'd get permission denied while trying to enter them unless I were real root. So the way you set up unprovalaged containers is you have to begin with a parent username space, and then all other namespaces that you create are owned by this. Unmapped UIDs inside the username space are commonly completely inaccessible. Again, this is a security feature. So usually when you set up a username space, you set up a subset of user IDs, not the full four billion we have in Linux or whatever, that huge number. Usually you set up only a few thousand to a few hundred thousand, depending on how your container operates. If you actually were to escape from the container, all of these UIDs outside your mapped range are fully inaccessible to you. Even if you have rooty privileges, you're denied permission to access these containers. Or these files that are mapped outside of your namespace.  But this is basically what a username space has. It has a mapping from the interior UID, the UID in the container, to what the kernel sees as your UID, which is effectively the exterior mapping. And the range that's mapped is a subset of the range that will be allowed. Anything that's unmapped, you will never get access to. And then you have the concept of an owner KUID as well. And this is roughly equivalent to root. Although if you don't set up a mapping to root, the owner does not get rooty privileges, because most of our root checks rely on a UID check, which is fudged by the username space. So just being the KUIDT is not enough to get you root. You need the owner KUIDT, and you need a mapping of that UID to zero within the container. And then you get rooty privileges.  So the security problem that I want to talk about is container images. Because if you think about the way this all works, all file system accesses occur using the kernel's view of the UID, which is basically the full range. And what that means is that if I'm trying to mount file system images to an unprivileged container that's operating in a UID range that's way, way, away from, say, 0 to 1,000, which is the usual one for system images, if I put a standard docker image into that unprivileged container, everything will fall over because my UID range is completely wrong for actually mounting what is a real root in that image into my container. Because let's say I've set up a container where I mapped from 0 to 1,000, and I map them to real UID 100,000 to 101,000. When I try and mount the image that's at 0, all I see is nobody, no group, and I have no permission to do anything. Operating system images tend to get rather annoyed when that happens and they refuse to boot, just as you saw with my laptop and system D, because they can't alter any of the directories that they need to alter to be able to get the operating system to run. So the only way we can actually get operating system images to run is if we also had some mapping on the back end from the KUID, KGID, the real kernel UIDs back into the file system that actually allowed an unprivileged user at 0 to come into the kernel at 100,000 and then that 100,000 when it tried to write to the disk to go back to 0 again. So as you can see, this is starting to set up a security and permissions problem that has somewhat of a potential for being a nightmare. So this is the way it happens today. There's my container with what it thinks of its UID and GID. On top of that, every time you come across this container to kernel boundary, you get mapped back from your UID to the kernel's view of your UID. This kernel view is what's actually visible in the host, which meant that if UID 0 escapes from the container into the host, it's a fully unprivileged user ID 100,000, which is where a lot of the security aspects of this come from. But the problem is that if I'm trying to go from here to a file system, the writes occur at the kernel's view of the UID and GID, not at the container's view, the specific problem here. And this means that if your image is shifted, and some of the Docker images in the repository do have UID shifts in them, it will work. But the problem is that you actually have to know ahead of time what this range shift is and have programmed your container for it, and it's just a complete nightmare scenario that nobody wants to deal with. So the ideal is that all images that go into any repository will always be at physical UID 0, and we have to manage the mappings on the back end. And a lot of the argument is about how we do this. And so the way that we actually want it to work is that the container writes at its UID into the kernel. That UID gets remapped for permission instances. So if it escapes, it's still at KUID. But as soon as it writes to what is its root, it would write at what its UID is. But if it got access to any other part of the file system tree, it would still be writing at what the kernel's view is. So the problem we have is, how do we actually set this up so it will work? And right at the moment, this is an unsolved problem in Linux. So it's what we're actually trying to work on. So an old solution that has existed for a long time that everybody seems to know about, but nobody uses. I have actually tried to use this, is something called bindfs. It's actually a fuse file system that can do UID shifts. It's actually very useful. The drawback is that when you specify the UID and GID shifts, it's one UID mapping per entry. And that means if I want to map 1,000 UIDs, I need 1,000 entries. And unfortunately, that's a bit bigger than the fuse command line can cope with. So it's a soluble problem, but no one's actually ever bothered to try and solve it. Principally because nobody likes fuse, and they don't want to use this as a basis for their containers, mainly because everybody whines about performance of fuse. Now, I don't want to get into debate. I think fuse would be fast enough. But it turns out that it's fairly easy to do this in the kernel as well. But if you actually want to check out bindfs, it's done by, I think it's Matthew Partel. It's done by him. This is a GitHub account. You can download it, compile it, and play with it. And all it really does is a simple remounting of a subtree from one part of Linux to another with this UID shift. But once you have a subtree, you can set up a container's mountain namespace to have only this subtree. So effectively, you could confine that subtree so the container wouldn't have access to anything else outside of this UID-shifted subtree. And if it did, it would still be trying to access the files at its unprivileged UID, because the only one with the correct shift is where you've remounted this bindfs thing. However, in the 4.6 time frame, which we're now well into, actually in the merge window just before 4.6, two other solutions for actually solving this problem appeared. One was the one that I did that I'll give you a demo of. I would like to have demo both of these. But the problem is that the code for these two is somewhat incompatible when you try and put them both on the same laptop. And I couldn't, in time, come up with a kernel that would do both, so I can only demo mine. But the other one was the portable root file system solution by Jalal Harouni. So we have this current case of we have two proposed solutions, and nobody really knows which one to pick at the moment. So let me tell you how they work.  So it's much easier to set up. It takes a mapping range as a mount argument, so it's very, very easy to do. And again, it's basically subtree shifting. So you take a subtree at one point and form a new subtree at the different UID shifted another point. And then it becomes your problem to make sure the container has access to this. But if you get it wrong and the container goes back to the origin of the subtree or to anything outside it, it still sees everything at the kernel's view of the UID, not Shiftfs' view of the UID. So only the subtree you mount is shifted, which gives you some form of security protection for Shiftfs. However, the fundamental drawback is that root is required to set up this mapping. That is how I did the security piece. So this mapping has to be set up by root ahead of time, and then the container could bind mounted. So it allows unprivileged users to use this, provided some administrator has already set it up before you actually do it. And obviously, if you think in terms of container orchestration systems, particularly things like Docker, they already have root privileges anyway. They can just do this. It's fairly easy. If I think of how I would really like to do it, we would probably do a new UID, new GID solution, which is there would be a file somewhere in Etsy that says what pieces of the file system which users should have access to and what shifts. And I'd just be able to execute a CID binary, or it would actually be CID Shiftfs or whatever if you're doing capabilities, allow that to mount inside my container and be done with it. So there are many ways of actually solving this problem that would actually work. And the point is that if you do it within the file system, the container can then remount it, and everything just works. And the security is basically in the mapping range. So the way you would get security for multiple independent tenants is you'd give them non-overlapping UID ranges, which means that if one tenant escapes into another tenant's container, they're likewise fully unprivileged in that tenant's container. And so Shiftfs can give you the same security because you bind non-overlapping ranges. And so if you try and mount a system that you're not supposed to have access to, the UID Shift is wrong, and you're still fully unprivileged there and cannot get access to it. So it works reasonably well for sort of reasonable security primitives in this case. The portable root file system works in a different way. So it allows any file system that's mounted on Linux to be marked as shiftable. And once that file system is marked as shiftable, you can actually bind mount it into your container using the UID Shift of the namespace that actually exists in that container. So this is slightly more insecure because it means that you have to be careful what you've marked as shiftable because almost any container can bind mount it. And so we were discussing adding a few more security primitives to make sure that this actually works. The other disadvantage of this is it requires changes to underlying file systems. So the reason the Shiftfs code looks more attractive to Alvero than this code is this code requires a lot of changes to the underlying VFS code. So it threads all the way through the VFS code. And then because it has markers on the underlying file system, it actually touches even individual file system code in the Linux tree. Whereas if you look at the code for Shiftfs, it's basically a single contained file. It can do everything with the current VFS interfaces. So no extensions are actually required. But like I said, both can be used to bind mount the root file system or an image for unprivileged containers. And the permission to mount is still a bit problematic. So the way it was coded the last time I saw it, any container can mount this provided the file system is marked, which I think is too permissive in terms of the way it goes. So we probably still need some permission system to say, this container can mount this file system, but this container can only mount this file system, and so on. So that's yet to be worked out in this patch set. But now what happened, the reason none of this is upstream, is we also had another problem that Cest4 sheaf canonical is working on, which is trying to do unprivileged fuse. So the problem with fuse is that fuse current requires root permission to run. And if you're routing the container through a username space, you're not root enough to be able to run fuse.  So Seth and actually Eric Biedermann are trying to solve this problem as well. And one of the ways that they're trying to solve it is they're actually looking at adding a separate username space that does the mapping from the kernel to the file system. Who screamed? So well, if Casey you want to scream at them, the container's mailing list is where it's all at. Now if you want to rant on the security list, fine, but no container's person will see it. If you want to object to this, you have to come on to our list and object. But this is currently what they're thinking of. So each superblock would effectively have its own mapping, and that mapping would be in effect every time a right was emitted from the kernel to anything that underlay that superblock. So this is roughly what it would look like. So the container would have its own UID and GID. That would be translated by the username space into the kernel's view of that UID. But that KUID would be translated as you go across the VFS boundary into this superblock version of UID and GID. So effectively, it's a double mapping system. The thing about this is that if I make use of this in ShiftFS, lack of security becomes Eric and Seth's problem. So for me, it looks like a very good solution. Obviously, I can see why you might not think of this as perhaps the best solution to have. But for me, it means that the problem, it's the SEP field. It's somebody else's problem now. It's not my problem. But the patches for this basically appeared in the 4.7 cycle. They are not in the 4.8 merge window. There is plenty of time to discuss this if anybody has security concerns about it. So if any more people want to scream, don't do it at me. But the challenge is going to be, how do we integrate all of this? The reason I'm a bit dubious about this is double shifting just looks like a much more complex administrative problem to me. But if Seth and Eric can come up with the useful primitives that allow us to apply it easily in a secure fashion, I won't object. And I can modify ShiftFS just to take advantage of this. So the bindments of ShiftFS would just make sure the SUID and the UID mapped instantly to one another, and it would be fairly easy. So there's an easy way of actually for me to make use of it, and then the security problem becomes their fault. But the challenge really is how to integrate all of this. So now, effectively, instead of having two separate solutions that we just had to choose between, we have two solutions and a proposal that's radically different from both of those solutions. And now we have to alter everything to fit so that it would eventually go upstream. So I don't even think any of this will be upstream in the 4.9 merge window. It'll all be several kernel divisions beyond. So there is time to fix all of this. And both ShiftFS and Portable Roots, they're both based on Superblocks. And since the translations for the file system mapping were done in the Superblocks, we can both trivially take advantage of it. And one of the things that would help Jalal with with his Portable Roots is he'd no longer need to mark the file systems. So it removes some of the objection to his code patch was just spraying through the VFS. He'd still does the translations of the inodes inside the VFS. But looking at his code, I believe it might be possible to defer those translations to the ones that Eric and Seth are doing. And so for him, the advantage is that Al Vero's Roth is redirected to Seth and Eric. And he doesn't have to suffer from it. So it actually, to me, to both of us, it looks like a reasonable solution because I don't have to accept Rotten Tomatoes for you for the security thing, because that's Eric and Seth's problem. And Jalal doesn't have to accept Al Vero's Roth, because that's now Eric and Seth's problem. So it looks reasonable. And if you know something about the way kernel development works, anything that takes problems away from me and gives them to somebody else means that my code is more like to get upstream, this sort of thing may actually happen at some point. And the problem really is going to be how do we parameterize all of this in a secure fashion? So let's see if I can actually persuade the laptop to do a demo. I just need to shift back so I can actually see my screen when I'm doing this. Can everybody see that? Is that legible? At the back? Are you OK? OK. So why doesn't Richard like user namespaces? So does everybody know the kernel primitives for setting up user namespaces? Unshare and NSNT, you've all heard of this? Or do I need to give you a brief overview? So you enter user namespaces via either an NSNT which attaches to a namespace or unshare, which actually uses a fork, a clone command, to create a new namespace. Within Linux, user namespaces are all marked by a weird iNode. And you can see this if you look in proc. Let's look at proc self NS. So all of the namespaces sitting in here. This is a new kernel. I think it's 4.6. So you can see that these are sham links to this sort of weird iNode number. And each of these iNode numbers represents a separate namespace. And so this is perhaps why that we don't want to use this for tagging audit, because these are the seven numbers you'd be using for the tag, until we get pressure for randomization of our iNode numbers, right?  Why wouldn't you pressure us to randomize that? Yeah, I'm sure we'll come up with a solution. I was just showing how bad it could be. So let me create a username space. So if I just unshare the username space. Oh, let me demonstrate, first of all, what my problem is. So I can't create a mount namespaces me. Right at the moment, I'm user JJB. I'm completely unprivileged. The system denies my permission to do this. So I cannot create any namespaces other than a username space, just to prove that I'm unprivileged. I'm at UID1000, GID100, which is a standard users one on SUSE. And I also have 469, because I do occasionally play with Docker. So the reason that username spaces are so hated is because of this. So this is not an SUID binary. And I am now root. So what unshare minus R does is it's installed a mapping in the UID files. If I look at the UID map, and it says, my original UID of 1000 is mapped back to 0. And that's the only UID that's done. So every other UID in the system is fully unmapped. And this means that if I look at something in my home directory, I'm now root and root. Great for me. But if I look at something and remember, I've only set up the user namespace. I have no other namespaces on the system. So I have full access to the rest of the system. If I look at root, I am completely unprivileged there. So this is the root file system. Completely unprivileged there. The UID0 is unmapped. And if I try and do something in that file system, I'll get permission denied. So although I appear to be root, I don't have root enough to modify anything outside of my mapping, which for me now is basically just my home directory. One of the things that we really want to do with ShiftFS is actually solve this problem so I could bring a root file system up at UID0 inside my container. But if you look at the way I actually set up containers currently, so this is my directory for architecture emulation containers. And as you can see, they're all roots, but they're all owned by Shifted UIDs. So I can actually, as myself, bring this up in a fully unprivileged container. And so I did this demo a long time yesterday, so I'll just skip over it quickly. I won't show you all the scripts that do this. But let's build a container for AH64. So this is set up to bound namespaces for me. And I can do NS Enter. And I have to enter the mount namespace as well. There I am as root again inside this. This is actually an AH64 container. Sorry. An AH64 container, so I'm running as AH64 now. This is why I like it. But now I've actually got a range of UIDs mapped because of the way I set this up. I've given myself permission to do this. So I've mapped the 0 through 1,000 as mapped at 100,000. I've punched a hole in it for my own UID. And I have to map nobody as well because operating systems require that nobody use it to operate. And this means that I can do things like this inside this environment. So I can just become me, and I can actually go to my own home directory.  So I've actually flipped the real root out of the way, and I've bind-mounted this container root. And I can actually show you this because if I go back to being root and I touch a test file in that root, it will actually appear in my containers root. And there it is. And so the thing we want to do, and if I come out of the username space and just go back, you can still see it there. But this time, it's still owned by 100,000. So I've done nothing that was outside of my UID range when I did this. But the thing that I can do with Shift FS is I could do this UID map from me to root, only me, and the GID map the same. But if I map the root file system into something in my home directory, this is my real root file system now.  This must be because. OK, we'll just pretend this worked. What I would have done is it's because I prepared the demo for 48RC3, not for this. And of course, Shift FS is not upstream, so I needed the module. And I've obviously forgotten to put the module in. I think I switched on to 43 stable, and I've forgotten to update something. But anyway, I had to do that for the projector. So anyway, what have happened is that I would have done the same demo with the test file, but this time I would have showed that as myself, I could create the test file in my real root file system and it would have appeared there owned by UID0 and GID0, which really is just a demonstration of why this bind mounting Shift FS is so dangerous, because if it's misused, it goes to an unparalleled container, the ability to access any file system on the box. And that's obviously the wrong thing to do. So, end of demo, let's go back to the slides and get the conclusion, because I'm practically out of time. Work, please. So that was the demo. And now what we basically have is the conclusions, which are the problem of connecting file systems to unprivileged containers is still pretty much unsolved. So I've previewed to you roughly how we're going to do it. If there are security concerns, which the squeaking in the room seemed to imply that there might possibly be, now would be a good time to object, because we're actually just discussing this at the moment. But what we are hoping is that this problem has to be solved soon, because without it, we cannot mount root images securely into unprivileged containers.  Or we do unprivileged containers and force Docker to come along, which also means we have to be able to unmount what are effectively privileged root images into an unprivileged container. So that's effectively a choice of two evils. And we have to take, I honestly believe we actually have to do the mapping path, because allowing real root to exist in a container is much more of a security threat than building a fake root into a container. So with that, I'll just say this was done by Impress.js, it's a web page, this is why you won't find it on the Linux Foundation's website, because apparently they can't cope with this format. But what I'll do is I'll put it up on my website and send a URL, which at some point within the next 10 years, the Linux Foundation might be able to redirect to, but James will kindly send it out to the list and he'll be able to get these slides. And I'll just say thank you and call for questions. If we have time, I think I've taken us into the tea break now, haven't I? Okay, thank you.


So, uh, Winter Soldier, what are you, what are you saying?  He says in the movie, that's like, you know, that's a leaf blower in comparison to the suit in comparison to the other stuff. Black Panther Necklace, because it will go into the suit and then you'll be protected by from the machine gun. Yeah. And also you can take it off. When you're flying machine gun arm, it's really hard to take off. You're like Kanye in that all falls down video. It's really hard to fly. Can it not come off and go through security? It's a machine gun. What more do you want from me? It's a machine gun. You're getting trouble in those things. Would you rather fight 50 duck-sized Eric Killmongers or one Eric Killmonger-sized duck? I would rather fight one Eric Killmonger-sized duck. How come? Having to deal with 50 little, little Killmongers running around. I don't think it's about size. Like, that's too much to deal with. Isn't he a bit crazy? Eric Killmonger-sized duck. Because ducks, they ain't got thumbs. Yeah. They ain't got thumbs. You know, without thumbs, you can't hold weapons. Would you rather visit Wakanda for a month but not be able to Instagram it or go for a day and take as many selfies as you want? A month. A month. Just get away from this place. Yeah, get you out. Do some other stuff. Yeah. Yeah, just go for a month and not take any pictures. You have to soak that up. Just the memories. Yeah, just so you have to soak that up. Would you rather have a private stash of vibranium or a private garden of heart-shaped herbs? This is such a bad boy question. Oh! I'm with the herb. I'm going to stick to the vibranium. I'm with the herb. Shuri loves, because I know how to work it, you know what I mean? And I don't want to physically go for anything right now because the heart-shaped herb, you take that when you're about to be the panther and that's not my time yet. So I'll stay in my lane and do my vibranium. I'm with the herb. I need to touch. I need to touch the higher powers. Cognia worse. Cognia. You could try out, like, experiment with it in, like, cooking or... Yeah, be bionic stew. Pampfer stew. Pampfer stew. Say that. Oh, Lord have mercy. Listen, I'll open up a shot. Would you rather fight Black Panther or Eric Killmonger? Eric Killmonger. He's easy to beat. Woo! Spoiler. What do you mean spoiler? He's easy to beat, like, my brother. I'm going to defend my brother regardless. There's no spoilers in that. He can't, like, he's just, like, going to burn it all. I'm going to balance it out and take Black Panther. Just throw it off. Now, take it. Eric Killmonger.  The characters. Me going a date? I don't want to go on a date with either one of them. Too much drama. That's too much drama either way. Eric Killmonger is going on a date with my brother. That's just weird, but then the movies, but you can't say it. Let's just look and get that answer. I've got a girl, like. I'm chill, like. Great answer. She's watching at home, like. She's watching, like. She's, like... Daniel? Daniel. Would you rather have a suit designed for you by Shuri or by Tony Stark? Shuri. Come on. Better come correct. Come on. Tony Stark, you can't even move like that. Shuri's, look how flexible he was. He could backflip. Shuri's way more considerate. See how he brings out his, come on. She designed it for you as well, because she's like... For you. She cares. Like, Fubu. Tony Stark would just... He'd be just designed his own one. Yeah.  Try to, yeah, yeah, yeah.


back at this series swept the twins down to the most incredible season you know what they were able to accomplish and home run record you know the great pictures that they have that's you know what a year but you know this series you know we went out there and played our game you know we're just not a team that goes out they guess guys on base you know we drive them in you know work the counts control the zone and our pitching staff stepped up for us you know especially in game three you know several you know coming in your race and you know the second game with the bases loaded man that was huge it was huge you just laid it all on the line for us and you know that's why one on the mound every single time think about some of the defensive plays behind the pitchers tonight labor torres had a big one D to your gore is all serious you know that's what's really that's what we did all year in the season you know that's why one thing I said earlier in the year before we start the postseason was guys squad there and keep playing our game you know keep playing our game we play good defense you know we get guys on base when we drive a man you know just keep it simple and you know we were able to do that especially that play you know Glaber made diving in the hole and special you guys talk so much about controlling the zone there's one thing to say you're going to do it it's another thing to actually do it what makes this lineup so good at wearing down pitchers and controlling the zone just there's no egos everyone's so selfless they go out there and if we're not gonna get pictures ahead we'll just pass up a ton you know that's the thing is we everybody checks her ego at the door that's what makes this playing for the Yankee so special doesn't matter we got MVP's in here saw young all stars you know guys want to get the job done all we want to do is win you know so it doesn't matter who gets a job done as long as we win so it's some special advancing obviously first and foremost but be able to do it in three games now have a little bit of rest and be able to situate things how much does that benefit you guys that's huge you know first off we want to go out there and win our division you know that was our main goal you know going into spring training you know if we want our division we can set ourselves up for the postseason that's what we did you know going through this DS and be able to win this now it's time to set ourselves up for the CS you know whoever we face so let's go and do it think you have some more celebrations left in


So, a story that's shocking out of Britain, a British member of Parliament, member of the Conservative Party, was knifed to death by a Somali immigrant, some bloke named Ali, and Ali Habi Ali. And it's a strange case, as Colin Liddell knows. He was living in a 2.5 million dollar London townhouse, and his father is a high-ranking member of the Somali government. And his father is part of a Somali faction that is opposed to the Emirate of Qatar.  Maybe this has something to do with David M.S., the member of Parliament, and his ties to Qatar. So, what's the David killed due to his connections with Qatar, Colin Liddell writes. And then the other question I have is, how come we had a complete cessation of Islamic terrorism while Donald Trump was in power? And then as soon as Donald Trump is removed from office, then we have a resumption of Islamic terror. Is there any connection between those two events? Seems to me likely that there is a connection that while Trump was in power, I think Islamists saw that it was not in their interest to continue to commit vast amounts of terror. And so they stopped. But now that Trump is out of power, and the spotlight is off of Islamic immigration into the West, then these Islamic terrorist events escalate. So in France, so it's a year now since a French school teacher was killed by an 18-year-old Chechen refugee, a Chechland Islamic refugee who was upset because his history teacher was teaching civics and he talked about the right to blaspheme, the right to free speech, freedom of conscience. And he showed his class caricature as the Prophet Muhammad, and the girl told her father, kind of a false version, what had taken place in the class. And then it inspired this Chechen refugee to go behead the teacher. And so France, probably more than any other Western nation, has the highest percentage of Muslims and has the highest fear of Islamic terrorism. And so we have the growing popularity of right-wing pundit Eric Zamor, who is a Sephardic Jew, and seems to have about a 45% chance of becoming the next French president according to the polls. So he has a strong opposition to anti-Western immigration into France. A lot of news stories today, but right now the top one on New York Times is 90 Seconds of Rage. About the January 6th riot, the U.S. Capitol. And the New York Times asked, how could these ordinary citizens commit acts of breathtaking brutality? And it just reminds me of a classic observation from the social sciences that when our friends do things that are discordant with how we view them, we just dismiss. So anyone else acted in the way that our friends act at times, we would be on guard and we would disavow and we'd want to distance ourselves. But when our friends do things that are outside of our expectations for them, we always excuse it. All right? So we think of excuses for the people we want to excuse, and then we come down with a judgment for those who are not in our in-group. And that's the way the world works. We have different standards for our in-group and for our friends and for everyone else. So this New York Times article is called 90 Seconds of Rage, about 90 and 10 seconds of brutality in the United States State Capitol, and it talks about seven men in particular. Peter Steger, a bearded truck driver from Arkansas, who weaponized old glory. So he used the U.S. flag as a weapon. Logan Barnhard, heavy machine operator from Michigan, who once modeled for the covers of romance novels. So these guys were all punching and beating police. Three fencing contractor from Georgia, Jack Wade Whitten, four geophysicist from Colorado, Jeffrey Siball, five former Marine from Pennsylvania, Michael Lopatic, sex deputy sheriff from Tennessee, Ronald Maccabee, and seven, a self-made businessman from Kentucky, Clayton Ray Mullins.    So situationism reminds us that there's no such thing as moral character because who we are differs depending on the situation we're in. So the most you can say is that we have domain-specific traits. So someone may consistently be honest in business, but he may not be honest and faithful in his marriage. All right, someone may be kind and gentle in church, but very tough and harsh in business. Someone might be a wonderful raconteur and storyteller at a bar, but in a competitive situation, he may turn into a total jerk. So none of us have traits that will exist across all domains of our life. So when they reach out to friends of these seven accused men, all the friends say, oh, these are wonderful, kind, gentle, law-abiding souls. And it just reminds me of this finding from the social sciences that we simply blind ourselves to behavior of our friends that we can't explain or don't want to explain. We always just come up with explanations.  All right, so we see what we want to see and we ignore what we don't want to confront. So we have these reality distortion machines going on in our head. So they essentially operate to keep us feeling comfortable and so we don't want to think bad things about our friends. So we excuse their bad behavior. We magnify the bad behavior of our groups and we maintain this distorted view of the world just to keep ourselves feeling comfortable. And I was just reading a similar article in the New York Times about this a couple of days ago. Australia is not a police state. So it's become a staple on right-wing media that Australia has turned into this evil dictatorship because of its laws restricting social gathering, trying to reduce the spread of COVID. So from Tucker Carlson to other right-wing outlets, they've suddenly got this agenda of presenting this distorted perception of countries that are tougher on COVID than what they would prefer.  So we all tend to think that we're just right. We have just the right amount of moderation. So Tucker Carlson early on in the pandemic went to Mar-a-Lago to advise Donald Trump to take COVID very seriously. And so Tucker Carlson's show took COVID seriously about a week to 10 days before Sean Hannity. So Tucker Carlson viewers were more prepared to take social distancing measures and other measures to restrict the flow of COVID about a week or so earlier than Sean Hannity viewers. But now if you go too far in COVID restrictions, then Tucker Carlson wants to portray you as not a free country. It's Australia's now some kind of dictatorship. So Ron DeSantis, the Republican governor of Florida announced the end of last month, Australia was not a free country. Well, there's no perfectly free country. Australia has had 150th the per capita death rate of the United States. So maybe they have been doing something right with regard to COVID. On the other hand, there's so much we don't know about COVID and what are effective restrictions against COVID that it may well be that these government measures have not been particularly important in restricting COVID or any account for say 50% of that discrepancy in per capita COVID death rates. So there's nothing that Australia and New Zealand have done with regard to COVID that other Western countries have not done. And the United States death rates are right in line with those of other industrialized Western nations. So you have tighter societies, more regimented and corporate societies like Japan and Korea and China. And then you have looser societies like the West where people are a little less likely to just fall in line with whatever the government line or the social line is of how we should respond. So there's a lot we don't know about what are the most effective strategies with regard to COVID. But still saying that Australia is not a free country because it's got lockdowns seems to me absurd. So when I was in Australia, I would notice how the Australian news media would portray this very distorted view of America. It's like this incredibly violent Wild West type atmosphere because they would focus on those crimes, on those stories out of America that were shocking such as Bernard Getz shooting all those people on the subway. And so we tend to distort the world around us to provide us with a feeling of comfort. So if you're in Australia and America is the dominant country on the globe, then it comforts you to think that your country is infinitely superior to America in many different ways because America is just so violent. Well, most of America has the same rate of violence as other Western industrialized nations. It's just certain pockets of America have astronomical rates of violence. What characterizes those certain pockets of America with astronomical rates of violence? Well, their demographics elsewhere in the world also have astronomical rates of violence. So those demographics in America that commit disproportionate amounts of motor and violent crime, they also commit astronomical rates of murder and violent crime if they're in London or if they're in Scandinavian countries or if they're in Australia, all right? So Somali immigrants in Melbourne, for example, have committed crimes like 50 times the normal rate of the population. So different groups commit different crimes at different rates. And America's, for example, racial experience pretty much is the same as those demographics have had elsewhere in the world. So there's nothing unique about America's racial experience. There's nothing really unique about America's COVID death rates. They're right in line with what you would expect. Now, with the 1918, 1919 Spanish flu, Australia also got off really light. So then maybe because Australia's less populated, maybe because of Australia's climate, there may be all these other reasons aside from government policies and lockdowns why Australia's had much lower rates of COVID deaths. So when the stock market goes up, politicians like to take credit. Ah, Trump, you know, gloried in the US stock market, but stock market doesn't just rise and fall on what a president says. So I was listening to Skip Bayless, the Fox Sports Commentator and he said that he has certain rituals with his wife, Ernestine, that she starts watching a Cowboys game with him. She cannot leave because when she leaves, they always lose, right? So we have this magical thinking in our head that, okay, because our government did this, then that's the explanation for the result. And the result may be overwhelmingly from other causes aside from government policy and the Cowboys winning or losing really doesn't have anything to do with Skip Bayless's wife getting up and leaving during the middle of the game. But we tend to think in this magical way. So in the United States, Poland and Britain, we've got all these protesters assembling outside Australian embassies, denouncing Australia's decline into thuggish autocracy and say save Australia hashtag that trended on Twitter. And Australians were confused, like what were they requiring saving from? From sunshine, from free healthcare, from low COVID deaths. But there's this right wing propaganda that depicts Australia as some kind of blasted hellscape being just ruthlessly repressed. And like where the heck does it come from? So looking at this essay in the New York Times and says that this propaganda is made for an Australian audience as part of an international right wing campaign to recruit those frustrated by lockdowns and sure of vaccines and animated by appeals to personal liberty. So Australians have been enlisted as unwitting props in an American culture war. So you ever felt like you've been enlisted as an unwitting prop in some inter-Nessian struggle at work or in your social community? This is how I think Australians are thinking. So you've got all these right wing videos that are edited in a deceptive way to try to depict all this brutal police violence against hapless Australian citizens. And they're just shown without context. They're deceptively edited and they're spread across anti-vaccine and anti-lockdown channels. And most of the incidents were recorded 12 months earlier and they usually resorted from provocation campaigns by anti-maskers to defy restrictions and to initiate confrontations with police officers. So we've got all these right wing American influences with millions of followers sharing videos in which Australian anti-maskers staged disruptions in shops or start fights with the police. But when you edit the videos in a particular way then it looks like innocent citizens are being brutalized by Australian police. So to give you an example of distortions that Australians think about Americans like I have Australians saying to me why are American police killing so many innocent people? And so I asked, they said this would never happen in Australia. So I said, okay, what's the procedure in Australia if a police officer shoots someone? He says, well, they take away his gun, they put him on death duty and they do an investigation. I said, that's the exact same thing that we have in the United States. If an American police officer shoots someone, they take away his gun, they put him on death duty and they investigate. It's the exact same thing. So it's not like Australia has unique policies with regard to COVID that the rest of the world didn't think of, right? It's nothing that Australian New Zealand have done that other nations have not also done. But it may well be because of Australian New Zealand being island states, because they're not as crowded as many European and American places and because of the climate that these other factors outside of government policy had much more to do with Australia's low COVID death rates. And I'm not saying Australian policies did nothing wrong. I'm not expert enough on public policy in which policies are most effective with regard to COVID. I don't automatically assume, however, that restrictions on personal liberty in the face of COVID automatically wrong. Sometimes they may be wrong, sometimes they may be right. Sometimes there are higher values than personal liberty, such as survival. Sometimes personal liberty, I think Trump's other competing values. So I see myself, I understand myself trying to be right in the middle here. So anti-lockdown protests in Australia were relatively small by Australian standards. So it's not unknown in Australian history to have over a hundred thousand people gather to protest something. But these anti-lockdown protests in Australia never got more than a few thousand people. So big difference in the Australian outlook compared to the American outlook is that Americans venerate freedom, Australians venerate fairness. So there's much more of a sense of solidarity in Australia. There's much more of a sense that we're all in it together. America is much more individualistic country. So you fly into Australia as an Australian citizen and you feel like you're coming home. When you fly into America as an American citizen, you feel like your government's treating you as the enemy. So Australians, generally speaking, trust their government more. They feel that the government is more on their side and is generally effective and is trying to do the right thing. So Australians generally overwhelmingly support these government restrictions on personal liberty in the name of reducing the spread of COVID. Now, it's interesting that it was a bumbling government response that has led to many of Australia's problems. They were slow securing an adequate supply of COVID vaccines in the time before the arrival of the Delta variant. So Australia's government let down the population by not getting enough vaccines. And so Australia was about six months behind the vaccination rates of the United States. So when Delta blew through the United States it did not cause as much disruptions when it blew through Australia because many more Americans were vaccinated. But now I think a higher percentage of Australians are vaccinated than Americans are vaccinated. Edie says, I was at a protest in Germany. I saw a protest of being dragged by the hair through the street and kicked with the knee in the face by a policeman. Did I dream that too? I have no idea. But I do know that when you initiate a violent confrontation, people often respond with violence. So you might push someone and they may respond by kicking you in the nuts or punching you in the face. So when you escalate the tension and when you escalate the confrontation then disproportionate amounts of violence are often used. One protest had died in police custody in Germany because of a heart attack. Well, may well have been a heart attack. When you escalate tension, escalate confrontation and escalate violence, then a lot of bad things happen that are not perfectly proportionate. So in general, you wanna behave in a very polite way to people who are armed, whether those armed people are police or not police. You didn't see a policeman being dragged by the hair. When you increase tension, confrontation, escalation around police, they're gonna act out. Just as if we increase tension, escalation, violence around you, you'd be more likely to act out. So police don't have to wait until they're dragged through the streets by the hair before they act out. All right, so therapists talk about couples should try to lower the temperature. So let's say couples are engaged in a passionate disagreement. If they simply take a break, usually they have much more success coming back to the disagreement later on when the emotional temperature has been reduced and they make much more progress. But if they keep going at it while the emotional temperature is burning hot, then really bad things result from that. So if you're in disputes with people and the emotional temperature is running very hot between you, then you're very likely not to like the results as opposed to when you can reduce the emotional temperature, then you're much more likely to have some kind of successful outcome. So you put police under pressure, or you put armed people under pressure, or you put dangerous people under pressure, they're much more likely to lash out with violence. So the situation is going to have a tremendous effect on people on how they behave. So you may have a law-abiding, compassionate, sane, moderate policeman that you escalate the tension, the pressure, the violence, the confrontation around him, and he's very likely to lash out in ways that he otherwise would not. And you also see this in the 90 seconds in the State Capitol on January 6th when you had this vicious outbreak of violence against police officers and people behaving in ways that are completely uncharacteristic of them, but when you get caught up in a frenzy, right, when the emotional temperature is rising hotter and hotter and hotter, then you're far more likely to behave in ways that are outside of what is normal for you. Okay, Daily Caller has been really good on this John Gruden story. The NFL wants fans to believe that out of 650,000 emails, only John Grudens were offensive. So the NFL has analyzed over 650,000 emails and the NFL did not identify any problems anywhere near what you saw with John Gruden. So really, out of the 650,000 emails, only John Gruden said something that was offensive.  The most obvious answer is that John Gruden was declared an enemy by NFL Commissioner, Roger Godel. Roger Godel wanted him out and so he selectively leaked John Gruden's emails. So according to Associated Press, no current team or league personnel is caught up in this web of 650,000 plus emails. Really? Not a single current person in the NFL was involved in any of these 650,000 emails. So John Gruden is canceled for private comments he made a decade ago, appears to be a coordinated and deliberate campaign to end his career. He was deliberately targeted and taken out. Luke, what are your thoughts on Australia's Gitmo and how some Iranians and Afghans were fleeing war zones in the 1980s are still being held by the Australian government? This is against all laws as far as I know. Well, if you try to illegally enter Australia, you will never be allowed in Australia. So you're talking about both people. People who try to illegally enter Australia, you never will be allowed into Australia. If you get caught trying to illegally enter Australia, you will be sent off to detention camps in non-Australian islands surrounding Australia, where Australia will pay for your upkeep, but the purpose is to resettle you somewhere else. Do I think China is going to be nicer to the Aussies? I have no idea. Australia's pretty well situated and it's alliance with the United States to contain the reign of China. Two of China's three essential sea lanes go right past Australia. So India could cut off pretty much all sea transportation to China. Japan, if it wanted to, could cut off all importation of energy and other goods into China. The United States could cut off all importation of goods into Chinese ports and Australia could certainly be a part of those efforts if it wanted to. What happens when Aussies lose their country but they're not going to lose their country? What Australia is doing is totally illegal. It's not illegal because these are not Australian citizens. So Australia can do with them what they like. There aren't any effective international laws about what countries must do or not do with non-citizens. Non-citizens trying to illegally enter your country, there are no legal restrictions on what you can do to them. International law is just vague. It's virtually meaningless. These are non-citizens trying to illegally enter Australia. They have no rights, right? It's like they're invading Australia. There are no rights protecting invaders. Australia's like Israel. Yeah, Australia stands up for Australian national interests in a way that America's generally failed to do with regard to its own illegal immigrants. No NFL fan will stop watching because of the Gruden thing. Exactly. But it is interesting that the NFL maintains that this was the only guy saying something offensive in currently being personnel out of 650,000 email.  Stolen land is just tendentious. Nobody grew up out of the land. So anywhere, any nation, there are, what, 300 countries in the world is all stolen land because someone always lived there before you did. Luke is way underestimating China, or China's falling apart. Two-thirds of China doesn't have an adequate supply of Australia. I go back to Australia. I've been back regularly, so no, I have no problem going back. If you think Australia is a police date or some fluggish dictatorship, there's just no empirical evidence for that. If you think Australia is a prison island, that's just a fact of your, that's just something out of your imagination. There's no basis for that. Now, Australia does not have, for example, the First Amendment rights of the United States, right? I'm not aware of almost any nation that has America's First Amendment rights. Unlike basketball, the NFL can't expand internationally. Well, it can expand internationally. United States, the National Football League plays several games in Britain. In fact, I think there's one game going on in Britain, in London right now. So the Dolphins hold a 13 to 10 lead over the Jaguars in London. That's the NFL expanding internationally. So one day, we may very well have an NFL team in London. We may have an NFL team in Mexico. We may have an NFL team in Canada, but we play pre-season games in Mexico and we play regular season games in London. And there's an NFL game going on in London right now. So yes, the NFL very much interested in expanding internationally. They've had that London game for 20 years, no increase. No, you're wrong again. So you're consistently wrong here, Glyde Medley. Are you embarrassed about that? They're playing more games in London than ever. They've had NFL minor league teams in Europe that failed, yes, but they are playing more games in London than ever. You're saying that the NFL can't expand internationally, but they've been playing in London for 20 years. They've been playing in Mexico pre-season games. So yeah, they have expanded their audience. So Eric Adams, the next mayor of New York and our likelihood, he is committed to keeping gifted programs in schools. So current mayor, Bill de Blasio announced plans to eliminate gifted schools, but gifted programs, but Eric Adams wants to keep them. So Eric Adams seemed like the sanest of all the available candidates in the Democratic Party for the next mayor of New York. And this is another example. Yeah, if they keep making the NFL more gay, maybe the Euros will become interested. Oh, am I a contrarian? Yeah, I think I probably have some contrarian instincts. I think that my need to be contrarian is probably correlates with my narcissism. So narcissism is not a fixed date. You're not like an eight out of 10 narcissist, you know, 24 hours a day in our likelihood that there are various situations that will bring out narcissistic tendencies. So let's say I'm on a panel. So I participated in public panels. I was on a panel with Eugene Vollek and Mickey Kals and Kevin Drum and some other leading bloggers. And so if there was a topic of conversation that was brought up, yeah, my mind would probably run to having a different perspective than the perspectives already offered. So part of doing what I do, offering opinions on the world is you wanna offer something unique. Now, that's very dangerous because when you wanna offer something unique, that will lead you towards conspiracy thing because it'll lead you away from the mainstream evidence-based perspectives. So that's why many pundits, many people who do what I do, they increasingly tend towards conspiracy theories because with conspiracy theories, can they keep offering something unique to their audience? So you have this incentive to try to provide your audience with something unique. And so it draws you to contrarian thinking. Contrarian thinking is primarily found in conspiracy theories. And so there is a tendency once you start developing an audience where you're giving your views on the world, you have to give them something that they can't find in the New York Times. And on Fox News, you have to... What? Unique USP, a unique selling proposition. So there's very strong tendencies to be contrarian and conspiracist. So I'd like to think I'm aware of those tendencies and the higher one's narcissism, meaning the higher one needs admiration, then the more likely you are to slip into contrarian and conspiracist thinking because to feed that audience, to feed that unique selling proposition, to feed your desire for admiration, you have to give them something unique. And the only way that you consistently give an audience something unique that they can't find in the mainstream media is generally speaking, being contrarian and conspiracist.  Yeah, because you understand yourself as having these unique perspectives on life that are not reflected in the mainstream media. And so you're consistently taking the contrarian and conspiracist perspective because you feel like you have something unique to give to the world. And you may well go beyond the evidence in furthering your opinion that you have these unique important insights that are not to be found in the mainstream media. So that can very much lead you down a dark path. Given that a conspiracy is just three or more people colluding, it happens all the time. You're speaking there, the literal meaning of conspiracy theory, yeah. It's just two people colluding. But when we talk about conspiracy theories, we're not talking about the literal meaning of conspiracy theory. Conspiracy theory as it is understood is as opposed to the conventional wisdom. It's not 9-11 was a conspiracy theory. Al Qaeda conspired to commit 9-11. So the literal meaning is two people conspiring to do something, but that's not how conspiracy theory is primarily understood. Conspiracy theory is primarily understood is not just various people, two or more people conspiring to do something, but as opposed to the conventional story, as opposed to the mainstream media, as opposed to conventional scholarship. Oh, so all these missionaries have 17 missionaries were taken by a gang in Haiti, Port-au-Prince. So we have all these American Christian missionaries going to Haiti to do good. Now, remember, Haiti through its history deliberately killed all its white people, right? They slaughtered them, then they apologized, and they asked France, I believe, to send the more white people that they wouldn't commit slaughter anymore. France sent the more white people and Haiti slaughtered them all again. And yet more Christian white people go to Haiti to try to do good, and now they get kidnapped. Christian aid ministries said up to 17 of their group were kidnapped in Haiti. So maybe it's not a good idea to go to these places. All right, so there's a whole 12-step group for people who can't stop helping. It's called Al-Anon, people who want to help alcoholics help drug addicts, but often the desire to rescue or the desire to be rescued comes from the same sick place. It's a good idea to help moderately and appropriately, but flying off to Haiti to volunteer, probably a really bad idea. It probably comes out of a pathological need to help. So just because you desire to help does not mean that what you're doing is a good idea. Just because it gives you a good feeling, just because it makes you feel righteous and look righteous to your friends doesn't mean that it is righteous. New York Times story, despite a punishing drought, San Diego has water, it wasn't easy. So San Diego is one of the highest functioning cities in the United States. When San Diego was damaged by fires approximately 10 years ago, San Diegans bonded together to help each other. They were the opposite of the people in New Orleans who were just completely pathetic and waited for the government to come and bail them out. San Diegans got together. And people I know, like people in San Diego when they know the state's in a drought, they voluntarily take on measures to reduce their use of water. So San Diegans have confronted California's water shortage and they've taken all these measures to reduce their consumption of water. They have been good citizens, all right? But other parts of the state, let's just say other demographics in the state are not nearly as good at conserving water. So now San Diego is very likely to get punished. And water they have reserved for themselves may well be released to other parts of the state that have not been very good with conserving water. So San Diego has probably done better than any other locality in California with conserving water. Now this is a problem with left-wing policies. They consistently benefit those who do the wrong things.  You don't work, liberal left-wing policies want to provide you with welfare. You get hooked on drugs and alcohol, liberal left-wing policies want to pay for your rehabilitation. You don't conserve water, liberal left-wing policy wants to take water from people who have conserved and give it to you who's splurged. San Diego is probably the most pro-social, like has the, among the highest exhibition of good citizenship of any of America's major cities. It's a strongly military town. It's surely a shining light on the hill. Oh, this is a funny story in the New York Times. Shorthand staff, some U.S. hospices are asking new patients to wait. So people are dying and they want to go into hospice, but hospices have a severe staffing shortage. They say, please wait on your dying, all right? Please wait, we've got to admit you now. So just hospices, you're dying, you want to go into hospice, it's like, oh, can you hold off on that? We don't really have the staff right now. All right, a horrifying story out of Philadelphia. One was raped on a train. Passengers watched and didn't call 911. So I wonder who were the people on this train? I suspect they weren't Sandy Agans. All right, so this guy, Fysten Neuhe, all right, horrible man, long criminal record. He boarded a train, sat next to this woman, gradually got aggressive, eventually ripped her clothes off and raped her. And the people around her, they took pictures, but they did nothing. And the sexual assault carried on for eight minutes and nobody intervened. So I'm just curious, who were these people? I don't think they were Sandy Agans. So who were on this bus in South Eastern Pennsylvania Transportation Authority train? In Upper Derby Township, where they just sat back and looked on and took photos as a rape was conducted for eight minutes. I'm curious who these people are, who just sat back because I don't think they were Sandy Agans. Then finally, op ed in the Washington Post, chronic pain is surprisingly treatable when patients focus on the brain. So not bad by Nathaniel Frank, he's the director of What We Know Project at Cornell University, which aggregates scholarly research to the general public. He talks about one-fifth of Americans suffer from chronic pain. And he was like that too. Often surgery is performed, despite dismal success rates of around 25%. And this guy says, nothing worked until I saw the late New York University physician, John Sano, who I've often talked about on this show, put me in an eight-week cognitive therapy program that finally provided me with relief. So chronic pain is often neuroplastic. It's generated by the brain in a misbegot effort to protect us from danger. So let's say you don't wanna deal with your anger with your friend or with your spouse or with your kids.  So John Sano's approach is now called pain reprocessing therapy. So when our brains are on high alert, we interpret our surroundings through a lens of danger. And this is just like with the police, right? When police are on high alert, when we're on high alert, we interpret everything through a lens of danger and we're going to overreact. And so this pain reprocessing therapy aims to lower the threat level. So it's just like trying to lower the emotional temperature on a confrontation. So most of chronic pain is not structural. It's a mind-body phenomenon. And by changing our perceptions, gaining knowledge, altering our beliefs, thinking and feeling differently can dramatically reduce the pain. So it doesn't mean that the pain is imagined. It means that the pain's response and voluntary response like blushing or crying or elevated heart rate or bodily reactions to emotional stimuli. So neuroscientists often know that pain is an opinion. So most pain is not factually present but is generated by our brains and therefore depends on the brain's fallible perception of danger. And if you can shift the brain's perception of danger, then you can reduce your pain levels. So there was this one study that looked at MRI scans of 98 people with no back pain and two-thirds of them had disc abnormalities. So these body changes don't necessarily hurt. So data do not support a physical injury model of back pain. Most back pain is not related to physical injuries. Most back pain comes from the way that you're emotionally processing life. So exposure to stress or adversity or just difficulty with life, difficulty with processing your emotions, difficulty connecting with others is the number one predictor of chronic pain. Most of this research is focused on back pain but there are many other forms of chronic pain that are also neuroplastic, meaning an opinion. Most pain is an opinion. So thousands of people, I've seen thousands of people heal from dozens of chronic pain conditions with a mind-body approach says Nicole Sacks, a psychotherapist based in Delaware, specialized in eliminating neuroplastic pain. One person's back pain is another person's sciatica, is another person's irritable bowel syndrome, is another person's migraine. So her approach includes meditation, expressive writing. So that's what John Sonner would have people do, just write out all your feelings. If there's something that you might be unconsciously angry or resentful about, what could it possibly be? If I was jealous right now, I'm not conscious of it, who might I be jealous of? Because often we get physical pain to distract ourselves from the surfacing of difficult emotions. And deep journal writing invites us to unload these difficult emotions. So most chronic pain is real, it's debilitating, but it's learned. And so because it's learned, it can also be unlearned. Yeah, the great thing about back pain is that no one can prove that you don't have it. So you either need to go on disability or take a day off from work, you can just say back pain because no one can ever disprove it. Speak on how China has advanced hypersonics unlike the USA now. I don't know anything about it. I do know that China often lies and that most Chinese products tend to be quite shoddy. If danger is real, then you should be alert. And the outside world is more dangerous than what we consciously think about. But that doesn't mean that obsession with danger necessarily serves us. Why would a sane male intervene when there's a rib going on? I think most, most sendyagans, let's put it this way, that they would be outraged if they were on a train and there was a rape going on. Look, is the US the best nation in the world? That's just highly subjective, best in what sense. The United States is the most powerful nation in the world. They have the strongest economy and the strongest military. Like China's per capita GMP ranks 75th in the world. So the United States also has the most efficient, hardest working workforce in the world. Okay, so we've got a link from the chat here saying that Beijing blasts nuke right around the globe. China fires hypersonic missile to circle planet in low orbit and terrifying display of its advanced weapons, catching US intelligence chiefs off guard. China's made astounding progress on hypersonic weapons. They are able to circle the globe at a low orbit, missed target by two dozen miles. Well, we know how incompetent much of China's tech has been like they send satellite into space, they lose control of it and it crashes to earth in unpredictable ways. So Chinese military launched the long March rocket in August carrying a hypersonic light vehicle around the globe for cruising towards its target, which it missed by two dozen miles. So China's made astonishing progress on the development of its hypersonic weapons. Okay, so China's been threatening to overtake Taiwan for 50 years, it still hasn't done so. China hasn't fought in a real war since 1979. Right, so the Chinese military does not have an impressive track record. So count me skeptical about these claims of amazing Chinese military prowess. If the USA was a ship, would you say it was survivable? Right now it is the most powerful nation in the world. Things can change overnight, nothing is immutable, but I would expect for at least the next 50 years the United States will continue to be the most powerful nation in the world. USA lost in Afghanistan recently, it means nothing. It had nothing to do with American national interests. It's good that we got out of there. So we fought a gratuitous war. We spent $2 trillion on Afghanistan completely needlessly, gratuitously, pointlessly and we got out, it doesn't negate in one wet America's strength and power. It's precisely because we're so strong and so powerful that we can waste $2 trillion on a pointless war like Afghanistan. When did the USA win a war last? Well, it depends on what you mean by win but our armed forces are trained and have had plenty of real-world war experience. So they're gonna be much more effective than a Chinese military that hasn't fought in a war since 1979. So we got blooded in Afghanistan, we got blooded in Iraq, we got blooded in the Kuwait war back in 1991. So our armed forces have had plenty of real-world experience that the Chinese haven't. The US hasn't fought a near-peer competitor in the last 50 years. Because there aren't any peer competitors in the United States, it's that powerful. It's like saying, how come none of the Dallas Cowboys Super Bowl victories are classic Super Bowls? Because in all the Dallas Cowboys Super Bowl victories, they annihilated their opponents. Right, so somehow is that a diss on the abilities of the Dallas Cowboys because they annihilated their opponents? Is it a diss on the United States that haven't fought a peer competitor in 50 years plus because the United States hasn't had a peer competitor in 50 years? At its best, the Soviet Union was something like had one quarter of the GNP of the United States. So the Soviet Union was a third-world country with some first-world weapons. So the United States has been so powerful over the past 70 years that it has not had any peer competitors. Look, the Chinese military has stolen all the biometrics of US government employees. They hacked, they have huge dossiers of blackmail on everyone, I guess they do. When did the USA annihilate China and Russia? Well, the United States defeated Russia in the Cold War and the United States could end China very quickly. They could blockade all of China's ports. China has to import virtually all its energy. So if the United States wanted to, it could just blockade Chinese ports. China's economy is heavily export dependent. The US blockaded China. China's exports would end. Its economy would end. It would not be able to import energy. It would be finished. Like China's surrounded by enemies. India could blockade Chinese ports. Japan could blockade Chinese ports. It's very easy to end China because China's very vulnerable. It has to import virtually all its energy. The United States is a net energy exporter.