Hello, I'm Callum McLaughlin, I'm 19 years old and I come from Manchester, England and I study in the University at Motsiteum with Professor Claudius Tanski and I'm here playing Beethoven's Pathetique Sonata Opus 13.


Good morning, everyone. Am I audible? Awesome. Before I start, how many of you have used Kubernetes? How many of you have used Kubernetes in production environments? Okay. So we all share the same thing. Today, I'll talk about pods. Pod as we all know, pods is one of the basic building blocks of Kubernetes. Just to introduce myself, my name is Chetan Shivshankar, and I work as a Kubernetes Tech Lead at Burkana. I have around 14 years of experience. My experience spans through the build and release engineering, the SRE, and the DevOps profile. So right now, I'm working at Burkana to build an awesome product called Debass. It's based on the operators for MySQL, Postgres, and MongoDB. So the plan is to provide the database as a service on these three database variations. By the way, this is a working custom resource, as long as you have the CRD, so it will work. So when I was a kid, I used to have this magnifying glass, and I used to burn that small piece of paper by trying to focus the sunlight. But today, hope I'll do something different and better. In this talk, we will talk about what is a pod in the context of containerity because nowadays there's so many projects, and we'll make it simple by just going through one of them. We will try to magnify from the higher level of Kubernetes cluster all the way down to the basic building of the pods and the containers. So how it all started was, when I was wanted to explore pods, the first thing like every software engineer does, I tried to search Google for what is a pod, and then what are the internals of pods? I didn't get any satisfactory results, so then I tried to go into the github.com, try pod, try to get any details on how it works. But all I got ended up was the pod specs, which to be honest, didn't give much information. So that's why I started to learn and explore more about pods. I thought to put up a presentation which gives an high-level overview rather than going through many multiple stuff and collating it. So what is a Kubernetes cluster in a very simplified way? All you have is a control plane, and you will have a set of worker nodes which are constantly communicating to the control plane, and then you have a Kubelet, which is nothing but a simple process, which is running on a worker node, which is constantly communicating with the API server. Kubelet ensures that pod runs on a specified node, or whichever it's scheduled on. So let's take the glass and try to see what actually happens on a worker node. So worker node could be a physical machine, or a virtual machine, or whatever. All it's basically is like you have a operating system running on top of it, and you have a Kubelet which is a process, and you have a bunch of process which is running on the operating system, and container runtime is also one of them. In this case, we will take an example of container D. So basically, container runtime will have something like a container runtime interface plug-in, which is actually an interface to have a communication between the Kubelet and the CRI, which makes this container runtime pluggable. You can have something like a container D, and you can replace it something with CRI or something like that. So that's the advantage. So this container runtime manages the containers or essentially the pod. I'll come exactly on what the pod is, but for now, let's assume that container runtime actually manages the container. So the next question is, what is a container? Container is a mechanism where you actually ship your application, and all the dependencies along with it in a like a small shipable stuff. Essentially, with that, you don't need to worry about packaging all the dependencies and all the stuff. All you have to do is get your container and run it, and it will start working as you expect.  It's just a simple process, like the Kubelet or container runtime and all those stuff. How do the container gets its unique qualities is, you know, with its own C groups, the namespaces, and the file systems. We will talk about what it is, but this is a high-level overview of what a container is. So let's zoom into the container. So when you want to use a virtual machine or a physical machine or something, the first thing you always want to do is you need to have some resources. You don't want something like I just have a couple of vCPUs or I need some 10 vCPUs or something. You need a mechanism where your machine will get some resources. The second thing is assume somebody on their machine is doing something, and all of a sudden your SSH terminal or whatever breaks when you're debing a production cluster. Just because whatever they did, it's affecting you. It's not the ideal way, right? You should have some sort of isolation. What you should be doing on your container should be totally independent of what happens on the other container. So you need an isolation. The other case could be you're working on something, all of a sudden your machine breaks. It just stops working because somebody else did like an RMRS or a fruit. Okay, you did it, but why it's affecting me? So you should have that proper isolation, right? So that's where container comes in, where you have a way to allocate and restrict the system resources to the containers, and that is managed through C groups, and you have a way to isolate the resource from one container to other. So that's possible with namespaces, and each container has its own file system. It's kind of like even if somebody does a RMRS or a fruit, right? It affects their container, not yours. So it's like you need to have a mechanism where it's completely different. So let's talk about control groups. So C groups is basically a Linux kernel feature which is managed through a pseudo file system. The pseudo file system is actually, in general, it's CIS-FSC group, like in whichever Linux machine you go, it should be like CIS-FSC group, and it's hierarchical in nature. It means the simplest example to check is, just check out the buckets. Assume you have a big bucket, which is like capacity of 10 liters, and you start trying to pour the water into the buckets, the smaller buckets. So no matter whatever you do, the capacity of the buckets is just 10 liters. Even if you pour the full or the half of it, the smaller buckets cannot exceed 10 liters because you only have 10 on the top bucket. Similarly, if you come to the second level of the buckets, if you have some five liters, no matter whatever you do, you cannot pour more than five liters into the lower buckets. So that's like a hierarchical in nature. Then C groups also provides a mechanism to allocate resources. You can mention like how many liters of water this bucket can go and like, okay, I need to place a bigger bucket or I need to place a smaller bucket, that you can do it with control groups. Or you can also do some processes, might not need to access some specific devices or specific resources. You can also control this with C groups. Some of the resources which can be managed by C groups are like CPU, memory, the block IO, the process IDs, and all the stuff. There are some things like IDMA and NUMA, which probably I will never use it in my life. But yeah, they're also managed by control groups. The second thing is like I told you, every container should have its own file system. How do we manage it? How can we make it possible? So any container is actually basically a set of image layers. So when you actually pull a container, you're pulling a set of layers. I mean container images. So what you actually do is when you run a container, it creates a thin read light layer on top of all the stack read layers. So as you can see, there is a set of the four layers which are blue in color. They're all read only. So these are like a standard reference. So I assume I have a Ubuntu image and I'm running several containers. Depending on this Ubuntu, I don't need to have this Ubuntu image like four or five times. All I need to do is have a single layer. So I mean single set of Ubuntu image layers. And the system will just allocate a thin read light layer so that each container has its own right layer. And whatever operations or whatever the right things, I mean right operations it does, it's completely exclusive to that container. And we also manage it by, each container will get its own root file system. This is actually kind of possible with namespaces and also storage drivers like overlay to better affairs and all that stuff. So ideally the mechanism is either you have something like a union overlay file system or you have something like a snapshot based systems. So in that you can actually get each container having its own file system. How many of you have used the BSDJ zone or the change root, CH root? So I think probably you have been very familiar with this right, so with CH root, you have a mechanism where you have a process and you provide a mechanism so that that process has its own root file system. Basically what it means is you see two different colored nodes, right? There are the white ones and the blue ones. So the white ones are the ones which you actually see the file system on the node itself. But the blue ones are the one where you have a fork from the main system and what you see it is as a container. So the container sees everything from the node slash A slash B and all its child are like C2 and C1 but on the parent node, it's actually a path like slash A slash B slash D. Similarly, if there is a container which is running on slash A slash C, it's totally different from the container which is running on slash A slash B. So you have a different file system. So no matter whatever you do, the container on the blue one cannot see outside of slash A slash B. So it's restricted. So you have a proper isolation. And then what is the namespace? So again, namespace is a Linux kernel feature. It provides a mechanism to isolate the resources by process. I mean like, I have a process, there are a couple of process and each process needs to have its own set of resources, right? For that, we use something called as a namespace. It's kind of simulating a virtual machine where the container or a process has its own stuff and whatever is being done is not being reflected in the container. And one of the most popular known way to get a namespace is probably the command unshared. The types of namespaces which are actually supported are like, we have the list, right? So some of them are like the mount namespace, so which provides the ability for each processes to have their own mount file system. Then there's UTS namespace, which is used to have its own hostname. The system IPC namespace, where with this it's possible to have its own like semaphores and the shared memory process and all this stuff. The network namespace and the PID namespace where each process has its own subset of processes underneath it. Then there's a user namespace, which means like each process will have their own set of users. Then there's C group namespace and there's a time namespace. So these are the some set of namespaces supported by the like pretty much like most of the Linux systems. So what actually happens when you create a board? You have something like a Kubernetes client, which is Kube control or a program or whatever, right? Like you initiate the program and then the first thing what it will do is it will connect to the control plane. Ideally the API server. So the control plane could be anything like EKS or GKE or it could be something like a self-managed one like co-ops or QVertman. What it does is this actually talks to the KubeNet to ensure the pods runs on specific nodes. And then the KubeNet actually in this context talks with container D using CRI so that there's a communication happening between our container D and KubeNet. So the container D uses a process called shim. So shim is a very simple program. So basically the idea is to isolate all the container management stuff or decouple the things from actual container D binary to something independent of it. So the purpose is assume you have like 100 containers and if we're managing everything through one container D binary, right? Like I mean like one process. If there is something wrong and you need to restart container D process or whatever like you need to manage it, you're pretty much affecting all the 100 containers. So you need a mechanism to decouple it. And also there needs to be a process to handle the file descriptors, right? So shim does the job. So the container D actually doesn't create all the C groups and namespaces but it relies on something like a lower level binary like RunC. So RunC is the one which is like the real understated hero which actually kind of creates the container. It's manages the C groups and namespace and all those stuff. So with RunC, you get the containers. So if you're already wondering the talk is about pod, what are we talking so much about containers means? I'm getting there. So what is actually a pod? Pod is basically an abstract of one or more containers. So in general, if you run a pod right, you will have something like, in this case let's assume I'm running a pod with couple of containers, container one and container two. In general, the system will actually attach something like a pass container. So the role of pass container is very simple. All it does is it establishes a namespace and it provides a way for other processes to come and attach its own namespaces. So you have a mechanism to manage it rather than each processes managing all the stuff right. You have an easy interface where the other processes or the container comes and attach to the one and the pass process is like ever running, while low pitch also reaps the zombies and all those stuff. So you have the additional benefits. So when you run a pod with couple of containers, so the container one and container two and also the pass container will actually share the same time namespace. And it will also share the same network space, the IPC namespace, the UTC namespace, the C group namespace and also the username space. This is in general and you have an option to choose whether if you want to share the same PID namespace or if you want to isolate it. So by default, the PID namespace is different between the containers of a pod, but you have an option to make it same. Like we will go through that in the demo and for sure each of the container has its own namespace, its own namespace. Otherwise everything will be having the same amounts and all those stuff and it's such a mess. So let's run to the demo. So for the demo, I'll take a very simple example. I'm running this pod called demo pod and all it does is it has couple of containers which is an Alpine container and an Nginx container.  So you know this, let's ignore all the things which are commented out. So by the way, is the screen visible or should I make the font more bigger? It's fine, awesome. So what I'll do is I'll just create a pod, okay. So it has got, it is running on a specific node so we'll go into the actual node and see what's happening. I'll go as a root, okay.  So first thing I'll do is I did run a Nginx, right? So the Nginx process is actually not reflecting on the host node. And the second thing is not actually an alpine but the sleep command which I am using it for in the alpine image. You can see a very familiar similarity that, you know, this was the root process and the parent of is 27308, which is the same as the one for the sleep process which is also 27308. So let's see what's that process. The 27308 is actually, you know, like the container Dshim, like I told, right, the container D will actually spawn a process and ensure that the container Dshim takes care of all the required things, right? And that shim actually spawns a POS container and then the other two containers, right, the Nginx and the alpine container gets attached to it. So that's why you see like the three different processes and they have the same root. So let's check what's actually happening in this namespace. As we know, like any process in the Linux, right, will have its entry in the, you know, slash proc zero-pull system. So what I'll try to do is I'll try to go into the each container slash proc slash. So you can see here, right, like these are the namespaces associated with these three processes, which is actually a container. Like you see that the C group namespace is same for all of them. The IPC name is similarly same for all of them. That's the 854, that's the 854, and that's the 854. And mount space is different for each one of them. You see here, that's like 852. Here it's 856. Here it's 858. So it's actually using a different mount namespace. And the network namespace is common. Again the 97, 97, 97. The PID namespace is different now just because we are opted it to be different, like which is by default. So the PID namespace of this is different and this 857 is different and 859 is different. The rest of the namespaces are same for all the containers, like the time namespace, user namespace, and the UTS namespace. Now we got an overview of namespace. Let's see how it actually reflects on the C group level. So like I told all those C group file, pseudo file system is in slash as FSC group. And these are the resources which are actually supported by the C group. I believe this is like C group we too. So you have something like a block IO, CPU, devices, C group, the freezer, memory, and I think the huge transition of cassette buffer, perf event, PRDs, there's so many things. So I think one of the easiest things to look in is like WhatsApp memory. So we will go to the memory. Here you can see, right, like there are so many slices. By default, Kubernetes always creates the pod under something called a skew pod slash slice. You see here, right, that's why you have all this skew pod slash slice. And the quality of service in Kubernetes provides three different mechanism. One is the best and best effort in the bus table. For this pod, we have not specified any resources. So it comes under the best effort category. So if I go to the best effort, I see this, okay, pod, okay, I see a couple of them. So what I can do is skew control, get, oh, JSON, pod. So basically I'm trying to get the UID. So this is pod AE911694B. So this is the one which is actually a demo pod. I'll exit this. So how it actually happens is, the Kubernetes takes the pod ID in general and uses it for creating the C groups. So I'll go to this pod, double A, double E1. And then you'll have the containers. So you see, like you have all the stuff which are all the memory entries are related for the pod. But you also have the subdirectories, right? These are actually for the containers running within it. Like I told right, it's actually hierarchy. So you have a bigger bucket, which is the pod, and you have the smaller buckets which are the containers. So there's also another way, easier way to check what's the C group, but I'll show the complicated one. So CTR, I'm using something like the container declines and I'll just check for what is there for the Nginx. So you see this is the container name. And if I go to this, so there are again, a lot of entries later to this, you know, the C groups. One thing which I can check, which is pretty easy is like, you know, the cat memory limit underscore bytes. As you can see, right? There's no cap for it. It's like a very huge number. So by default, if you don't allocate or specify the limits, right? It's by default, it's a kind of, okay. Run it till the node can take it.  So this is how the actual C groups reflects into the, you know, like the host system. I'll also do a small change in the pod.ml. What I'll try to do right now this time is, okay, before that I'll also show this thing. I'll try to exec into the alpin container. So I'm actually exec into the alpin container. And if I do a ps-ef, so all the process which I'm seeing is just related to the sleep. That's the only thing which I'm running here. I can't see the engine x or I can't see the pass or anything because, you know, I have like different pd namespaces. So right now what I'll do is I'll modify this pod.ml to share the process namespace. And what I'll do is I'll also add the limits for both the containers. So before that, I'll remove the pod which was there just to, okay. So now I'll apply the new pod. If I see here, it has got some nodes. So let's go into those. Okay, we're in. Again, the basic thing is easiest way. Check the engine x process. Get the pid. Check the sleep process because we are running sleep with alpin, right? Get the pid. And let's see what actually happens, you know, but when we share the pid namespace, right? So again, we'll check what's proc ns slash proc slash ns. Okay, I'll do this, it should be. And I'll also just to make it simple, I'll just check the pid one. You can see here, right now, these two containers are actually sharing the same pid namespace because while we specified the shared namespaces is equal to true in the pod spec, you're actually having this, you know, that shared pid is actually reflected into the actual host. And let's see, we also added a memory, right? Like maximum limit of 200 MB. So let's see how it actually works in this. So what I'll do is, this is a simpler way. Each process will have something like a C group entry, right? So 30375 slash C group. So I can easily hop through this using this stuff. Where is the memory? Yes, I can take this path. Again, if I need to traverse, it's always from the, you know, like the C group parent, C group, then I need to check for the memory C group, right? So I go into this, then I go into the actual directory. So if I do something like cat memory limit underscore bytes, I see a different value. It's not the one huge, right? If I want to know actually what it is, I'll just see, like, you know, this is in bytes, 1024 by 1024, you know, this is the 200 MB. If you remember, this was the value which we used in the pod specification. We have pod.tml, right? You see here, right? This was the value, which is, this was like, you know, 200 MB. Even for the NGINX, we used 200 MB. This is how it got reflected. And as, this is hierarchical, right? So this is the memory value for the container. And if I go one level deep back, and if I check cat memory limit underscore bytes, and if I calculate the actual value, 1024 by 1024, it's 400 MB. Because the pod added the value, I mean the limits of both the containers, and you know, no matter whatever happens, this cannot exceed this. And the other important thing is, we need to see how actually the namespaces is shared. We saw when we checked into the Alpine container, right? It was only, we were only able to see the sleep process, but let's see what happens when we, you know, share the namespaces. TI, the demo pod, minus C demo Alpine. You can see the difference, right? Right now, this container can also see the pass process, and it can also see the engine X process, because all of the containers in the pod are sharing the same PID namespace, because we configured it to be that way. Okay, so this was the demo. And just to conclude, you know, like pod is an abstract of one or more containers. You have C groups, the namespace and file system, which actually are the building blocks of the containers. The containers of a pod will obviously should have different mountain spaces, because, you know, that's how it can have its own file system and all this stuff. The container of the pod might or might not share the namespaces. It all depends on the configuration which we have used. And in general, all the rest of the namespaces should be the same. And container D also spawns a shim process, which also manages a lot of other things, you know, like containers using, you know, low-level runtime like RunC. That's it from my end. I hope you had a good time, and I'm open for questions if there are any. I'm always reachable on my, you know, can also reach me on LinkedIn or my email ID. So if there are no concerns now also, I'm always reachable.


My name is Dalai, I've been working, nowadays I work as a Development Coordinator for Blender, at Blender in Amsterdam. I started coding for Blender 11 years ago, my first patch into Blender. And although it's fascinating to talk about the Blender project for 2020, I think you can all find these in our official communication channels, which a lot of you don't follow. So I recommend going to code.blender.org. This is our main communication page from developers to developers. We just recently posted something about the main 10 projects for this year. But for this moment here, I think it's more interesting to take from all these projects, which can see how it's gonna be affecting for the end users, what's gonna bring to Blender, leave them aside for a little bit, and talk about a particular project, which for me is a particular pet project. It's an area of technology in Blender, which I'm quite passionate about, virtual reality, virtual reality or augmented reality, or XR, which is an umbrella for all of those. And from this project, try to illustrate a little bit, how do we get new developers in Blender? How do we get new features into Blender? How is our communication? Where does that happen? How it is to be transparent and open and big at the same time. So let's start our journey here. In 2014, we're starting to play with VR in Blender. So this is the Gooseberry project. Was there at the same time the one of the open movies we had in Blender? Was starting, who here knows about the open movies? Okay, good answer. Open projects made by the Blender Institute, Blender Animation Studio, and I was playing with one of their files and starting to render with stereoscopic VR. Basically, you create two panoramas, you put an Oculus and you can look around. 2014, like six years ago. Was actually really well-received. At the time, the mother of the director of Gooseberry, of the Cosmos Lundermat was there. She was like, fascinating, oh my God. And for me, it was easy because that was something that did not start as a feature for VR. It started as something for full domes, it's a different kind of technology, and I started working on this as a contributor, as a volunteer, and at some point, made it to Blender mainstream. 2016, we said, okay, if you can render in VR, but what if you can, what if you could, gives one to Tom as well, to be very thankful. What if you could also author in VR, if you could experience and see how the project is going before you go all the way to the final rendering. So this is where we're starting to experiment with storyboarding into Blender, but then put in one of those headsets and look around. At that time, what if a plugin using the Oculus SDK, totally non-GPL compatible, totally experimental, non-official. But it got things going, like it actually, the technology is very interesting and we're starting to get some traction. 2016, the Blender Animation Studio, they had the Caminandes, one of their open productions over there, and they said what, if you could partner up with Google, Google at the time was promoting a lot of the cardboard, their cardboard headsets, and they wanted content, and they wanted authoring tools, DCC, they called digital content creation tools. And Blender, as a big umbrella, was never afraid of partnering up with someone as big as Google, if it was of common interest. There was nothing that was violating the openness, the freedom, it's the other way around. They allowed us, allowed Blender to actually move forward a little bit with VR agenda and produce a really interesting content. At the time they're using Open H&D, it was a Linux-based, reverse engineering-based H&D VR support for Blender and Linux. What I'm saying that, because at the time, I say, one of the experiments I was showing was using the official Oculus SDK, the other one was using some reverse engineering Linux, but how does it become mainstream? How can we take something like this and make into Blender? The interesting thing is, there are a lot of people interested on that. That project I was showing here, something I was actually developing personally, myself, like in a research facility in Brazil, because people from Oculus Animations, Oculus Story, which was a mini-group inside Oculus, the company was bought by Facebook, they wanted to experiment with storyboarding for VR experiences.  And if you could have something that the same offering tool for the game can also be used to preview the game, it's actually very impressive. But I have people like the MPX project, which are people that were already involved in Blender. I have a guy who here knows what is the grease pencil in Blender. Some grease pencil is what allows people to do those kind of 2D drawings in a 3D environment. And the whole grease pencil team is actually composed by people that are not in the payroll of the Blender Foundation, it's like contributors, and they've been involved for a few years already. And they went to the next, well, went to the next level, sorry, and decided to think, how what if we could also draw in VR? Could be working with Blender, put in Oculus, and work a little bit and take it out. So that was the whole idea. And what they wanted is seamless integration. They wanted to be able to not have to learn a new UI, not have to learn a new way to interact. So then, for example, they wanted the whole Blender interface inside the VR space. And they made it, they had someone hacking their way around Blender. It was a really nice prototype. Had people like Blender XR, which is a company called Marui, they developed a plugin for Maya for VR. Basically a plugin where it could do all sort of operations immersed in VR. So it's only UI, it's only UX. And they wanted to start supporting Blender. But they had the same problem we had in the other projects. How can we do something that's compatible with GPL, with some Blender license, and at the same time, compatible with the industry standards for, you know, the Oculus or the Vive or the Microsoft lens. Interesting problem. Blender Facts is a group in Germany. It's also been involved with the Blender development as contributors. So users, artists that use Blender, giving us feedback, sitting together with developers to think about the features. And they were taking some of the open movies and re-rendered them as a panorama and have a small TV that you see immersed in the CDV to play in there. And they're also interested on using Blender in VR for seeing inspection. They're doing architecture reconstruction. Won't be able to look around and then look around. And before rendering the final thing, they wanted to use Blender, they're using Blender. And surprising, Ubisoft. More recently, they joined the Blender Development Fund. It's a way that if you watch the tone stock, probably he covered most of the, he sort of how the funding happened to Blender, where you are today. But basically, Ubisoft not only joined the Blender Fund in giving a Blender money, but also promising to allocate some development time on their own team, Ubisoft France, to implement features into Blender. And they're particularly interested in VR because they want tools for set dressing. So we have your set, you want to put different furniture, or pebbles, or stones, or for a director.  Since everything nowadays goes through computer, goes through 3D, Maestro also have authoring tools for the director to be immersed. So how do we conciliate all those different tools and what's the role of the foundation in all of that? Because you think about it, the foundation can grow until a certain point. But the fundamental role of the Blender Foundation, I would say, is to make sure the collaboration can happen, to provide the infrastructure, to provide the onboarding, and to make sure it cannot work together. Luckily for everyone involved in that last year in June was the first release of OpenXR 1.0. OpenXR is a standard by Kronos. Kronos is the same group behind HML, behind OpenGL, so all those acronyms we got used to. And they tried to unify this whole ecosystem for VR. While before, every time a software wanted support, either Oculus or Vive or Microsoft HoloLens, you need to support their SDK, you need to be compatible with their SDK, yada yada. They created a whole obstruction layer where Blender does only needs to worry about OpenXR. And the same way OpenGL is integrated on a low level in the operating system, it just, unless it's compatible, I don't know the details. Should not matter. But it allowed Blender Foundation to say, you know what, we officially can actually help bring VR into reality. So last year, we had Julian Izo to participate in the Google Summer of Code. We still use the Google Summer of Code to bring new developers on board. And he basically got, as far as, I'll say quite far, a whole scene inspection. This is again one of the open movies we had at the Blender Animation Studio. And he was using OpenXR to the whole thing on Windows, I believe. Because on Linux, they still don't have head tracking. But we say, you know what, we can, as a Blender project, can support the basics of VR. VR is a very niche project that is a bit overkill to dedicate. We have the whole that fund, right? To dedicate to core money, to feature creep, and try to get a really smooth VR experience, which whole here has a VR headset. Oh my God, there's actually, oh. I've seen a lot of people. We are like a very biased sub-sample. But it's a very interesting topic. And we developers, geekers, thinkers, we like to think about that. So the idea was to at least get the basics running, the fundamentals. You learn actually being a contributor to Blender for years already.  You participated in two Google Summer of Codes. First Commit was in 2014. And nowadays, after the Google Summer of Codes, it was a nice project. Julian also was available. He said, what? Come on board. We had enough funding at the time to have him working for time. And that's not, he's not there only to do VR. He's working using interface and basic, but fixing, trying everything else. But it's also part of the process here. Okay, this is working well. Let's get him involved in. Let's commit both parts to continue this relationship. Of course, again, we don't do anything only by ourselves and for ourselves. So for instance, the Blender conference this year actually got one of the, like a small representative representation of those groups of stuff I was telling about. People from Blender FX, Daniel from MPX, people from Websoft. We then could sit together and say, okay, what can the foundation do? And what can everyone else do? So I agree that the first two milestones is by the foundation, which is a basic open Excel support. It is a basic scene inspection and API for drawing in VR. But what's gonna be the usability into VR? No one knows. Still, it's gonna be a few years until that's consolidated. So Daniel's gonna lead a third milestones toward basically drawing and sculpting interaction. Marui, which is not represented here will make sure their plugin can be run into whatever API we come up with.  Well, we cannot have people gathering physically at all times. It's not practical. And at the same time, we, Blender as a project has years, 20, 25 years. Wait, how many years? 18. 18 years. How short is it? It seems it's open source. But it seems 998 is when it was online. And the whole infrastructure of Blender, of the communication was built on top of, you know, mainly in the East, 2002 here, IRC, which in a way didn't aid it so well when it comes to competitive Twitter, to Facebook, to people gonna use the channel they're used to use. So we're trying to modernize it a little bit. So this is a rocket-based online IRC. It's like, so we have a generic, you call Blender.chats is the website. Anyone can go there. It's where developers now talk among themselves. It's where we work. We even, as an example, have a Cahol VR room, channel only dedicated for that topic. And it's really the place where people are supposed to work. We have a DevTalk, which is a discourse based website. Where, again, we try to separate user feedback and usability from general development. But the idea is that the user, the cycles module, the grist message module, the VR group, should be able to use that among themselves. And everyone can read and can follow. They can, in a way, interact. We keep everything open and transparent. We have the, every Monday, every Monday we have like a development meeting. And we keep everything there, post it, what happened, what didn't happen. The progress reports of every single developer. Jesus Christ, shame on me. It's only one more slide. And we, as mentioned before, we have a nice blog where we encourage, not only our own, it's not a place for a PR. We're not here about PR, not here to talk about marketing, but a place where people can share development. We're at the Grispens of team, which is working in Spain, in Argentina. And we kind of keep tabs on their work and have some collaboration. They can go there and own that space. The Blender infrastructure is place for everyone that contributes to the Blender project to really take ownership from. And of course, use this for also outreach for the community. We're using YouTube, using Twitter. So, overall, we are in a bit of a transition from going over tradition, IRC, and mainly lease, and lonely developers working their own little projects to try to be bigger and try to get more people to collaborate. So, basically, you hope we, yeah, you hope that given insight in the project and more people can join us. Thank you. I also believe we might have five minutes for questions. Yes. So, if anyone has any questions or comments. Where you hear from in the beginning, sorry. More or less. If you go to the code.blender.org, we posted this last Monday. There's an overview of the 10 big core projects. There's even more than that. But those are the projects that's everyone's responsibility. Every single developer in the core team be responsible for this. The criteria, we didn't put there, but it's basically if a developer goes away and they're leading a project here, someone will fill it in for them. If the developer goes away, maybe won't have developer VR for another three years. Yeah, that's the reality, right? Those are the core projects we're gonna make sure is delivered. I see a hand here. Just a question. In fact, in SVR and you see the same thing in your screen and then in VR, it actually is really different. I mean, the feeling of seeing the models is really different from, so, exactly how does it help the productivity to have the VR? Is it just for making VR or does, for example, you think VR will help you make, like, I'm gonna be later on. I'm just curious about how VR helps the productivity because I will assume if I make it something on the screen, people will look at it on the screen. But if you make it on VR, then the screen's going to be different. So just my question is how? Yeah, could anyone hear it? Could anyone hear it? I don't know. Could it get the question now, no? What's the point of VR if you're not only doing VR? If you're doing VR, it's very obvious, of course. But again, Ubisoft, for example, they'd like to, when immersed, they can still have a traditional virtual camera there that you preview in the virtual set. If you're doing architecture modeling, I want at some point, that's more AR.  If you're doing character modeling, you probably have seen those making-offs of Disney where you have these sculpted characters. You could also use these to inspect them. I'm totally biased, but for sculpting, can actually sculpt in a more natural medium, right? You actually see and move around and touch. But the real answer is no one knows. But we're willing to give it a try for the technology as long as there is this other part from the community like embracing that as well. That's kind of the process. We need to create people to come back to. It's a good midterm, middle, a good compromise between digital and analog. You have a question? No. All right. For today, I don't need to, I mean. To use Blender. Oh, to use Blender. Yeah, I see. For 2D people, well, there's a whole roadmap now for storyboarding with tools like Blender. For even like 2D, because even for 2D, it's so handy to have a camera where it can actually pan around that it can reuse the assets for different shots. That's a whole discussion. Think you might have to for one last question? Yeah. It's not. We do have a developer, Ricardo Antalic, who's been hired to work full-time with triaging to help the infrastructure as a whole, but also to try to tackle the video sequence editor. But it's one of those projects that if he has for whatever reason decided to walk away, we won't be able to prioritize. However, it's in the agenda. This Vulcan, for instance, is in the agenda as well. More storyboarding for 2D is in the agenda. More sculpting tools, texture painting tools. There's a lot of work being done. Just, we had to draw the line at some point and the other can promise. Everything else is circumstantial. And again, anyone is welcome to add to Blender to bring, ideally, to see what the roadmap of Blender tried to help on top of that, otherwise it might get too complicated. But everyone's welcome. So it's a bit of an open end. What's going to be there? We can only tell when it's ready. Well, thanks everyone for the time. We have stickers here. And that's what time has. Thank you.


Oil and gas production wells are a significant source of methane emissions in the US, but their contribution may decrease as the country transitions away from fossil fuels. However, some wells remain idle and can still emit methane, so it is important to monitor them closely. Additionally, orphaned wells can release dangerous substances into the environment, including methane, hydrogen sulfide, brine, and potentially other harmful chemicals. This article was authored by Amy Townsend Small and Jacob Hoshower.


let's get on with this new new thought trailer that gitty tissues superman and magnus's caucasian counterpart thaw superman versus thaw i'm sure he put this together well so without without further to do let's get this on and let me make sure the uh volume is up what are you up to now luther just to see how it reacts that was good y'all that was good um post your comments down below let me know what you think if you enjoyed my reaction hit the like button subscribe share maybe get a t-shirt or a mug or something teddy bear uh if you didn't make sure you like subscribe share get a t-shirt for you and your pet mouse or one million subscribers


This is Nate Adams with Energy Smart Home Performance, and I want to show you what my foam contractor has started calling Nate Picking. So whatever you do a foam job, this one ran until 11 o'clock last night, got killed himself. So you're going to get some stuff just isn't perfect. And it's my job to come back and just kind of look it over and nitpick and hit various things. So you have little holes like this, these are called pinholes, and they tend to let a lot of heat through them and they can turn in the moisture problems and all kinds of fun stuff. So I hit those, just some various things. And a nice thing about using the orange spray paint like this, I like to see up in here, this is a tough thing to see. The foam guy is wearing a mask with fresh air coming into it, and it's really difficult to see what you're doing really well. So nothing like going back after the fact to catch misses, but with this orange paint all he has to do is spray foam on it until the orange is gone and he knows he's done it. So it's very easy to see through the mask.   They just are. But with a little bit of extra time, you can catch your misses and get a really nice result for the whole.


Thousands of Sudanese are crossing the northern Akhwen border into Egypt as they flee fighting in the country between the army and the paramilitary rapid support forces that erupted in mid-April. Buses are lining up at the border area and families have been sleeping outside in the desert waiting to be let in to the neighboring countries. The Sudanese Health Ministry says at least 512 people, including civilians and combatants, have been killed and another 4,200 wounded since the fighting began.


Hey, this is Brett, and this 2019 Ford F450 Crew Cab Long Box Dual-Re-Wheel FX4. XL is stock number 13461Z. I am here at Summit Automotive in Fond du Lac, Wisconsin. You're new and used, heavy-duty truck. Headquarters, this 2019 Ford F450 has the 6.7 liter power stroke diesel engine. It's paired up with the six-speed automatic transmission. This truck has been fully-safetyed and inspected by our service shop per the state of Wisconsin inspection process. It has a fresh oil and filter change on the fluid tab and checked and topped off. And it is 100% ready to go. I'm going to go all the way around in this video. Inside underneath, start it up and take a look under the hood. Also, forgot to mention, this one has six brand-new tires on it. And I will show you all those. The hood is in fantastic shape. Oxford White is the color. And I shoot all my videos in 4K. And if you like the video, you subscribe to my YouTube channel, which is youtube.com slash Summit Auto. Click the bell notifications to get updates on the videos I do each and every day, as well as having access to one of the largest catalogs of vehicle walk-arounds on YouTube. 8,000 videos and counting comes with polished aluminum 19 and 1 1⁄2-inch wheels. That's they're in pretty nice condition. And it has brand-new hand-cooked smart AH35 tires. These are 22570 R19 and 1⁄2s. Still have the little wear knobs on there. We put all six of these tires on in our safety inspection. Frame and underbody is exceptionally clean on this truck. That's because this one has lived in Texas its whole life. Front fender has no dents or dings. The headlight lenses are nice and clear. And the front bumper and lower valance are in fantastic condition as well. I didn't see any dents or dings on there. No cracks in the lower valance. And the grille is in nice condition too. This one does have 360 camera, which I will show you in just a little bit. Once again, that hood is in fantastic shape. No dents or dings on there. And it does have the cab lights up top. Passenger side front fender, just as nice as the driver's side. And the passenger side front wheel, no major scuffs or scrapes on there. Looks really good. And as you go down this side of this 2019 Ford F450, take note of how clean that body is, how reflective and mirror-like that paint is. I take these HD videos, so if you are far away or even if you're close by and you just cannot make the trip down, but you're still interested in purchasing the truck, you can see the truck, hear the truck, and have confidence in the vehicle that you're looking at, so that when you get here, there's absolutely no surprises. Or if you get this truck shipped to you, you'll know exactly what you're gonna be getting.  The back wheel is in excellent shape as well. And the back tires are brand new, too. You get the anti-sway bar right there with the camper package. I think those are standard on the F450, and underneath, you get all the remaining factory exhaust hasn't been altered in any way, and that premium underbody is like new. Definitely nice to have a Texas truck. That is for sure. Factory step bars, duly tub is in really nice shape. I just saw one tiny little scratch right there. Other than that, very nice condition. You do get the FX4 off-road suspension package, which gives you all the skid plates. Rear bumper is in great shape, no denser dings on that. It does have the full towing package, of course, with the receiver hitch four pin and seven pin wiring. The tailgate is in fantastic condition. I didn't see any denser dings on there. Does come with the locking tailgate. The tailgate step assist, and it has the fifth wheel and gooseneck prep package. Comes with a very nice spray and bed liner, LED bed lights, and seven pin wiring. And the bed itself is in fantastic condition, and see any major denser dings in there. And the tailgate has that spray and bed liner on it too. And there's your tailgate step assist. Shuts nice and solidly. Coming down the driver side, just as clean as that passenger side. No denser dings or scratches or scuffs on the dually tub on this side, looks really good. And for full disclosure, this back wheel is just as nice as the rest. And these tires are brand new as well. And the cab and doors all look fantastic on this truck. Didn't see any denser dings on them. Does come with the telescopic tow mirrors, blind spot monitoring, built in directional signals, telescope out like so, and they fold in like that. Inside the XL package gives you the gray vinyl interior. 40, 20, 40 split bench seating in the front, no rips or tears on there, looks really good. Comes with the heavy duty rubber floors, auto headlamps, tilt, telescopic steering wheel, power windows, locks, and mirrors. Take a quick look at the back seats. They are just as nice as the front seats.  No rips or tears back here, and these seats fold up. Has the nice flat floor back here, which is nice.  They're not gonna wreck your seats. Child safety locks in the back doors and the inside and bottoms of the doors all look like a truck from Texas. Get the VIN sticker right here, as well as the tire and loading information sticker. Everybody always wants me to show those. Hop inside, check out the miles, the radio, and everything that this truck has to offer on the interior. This one does have keyless entry and remote start right there. You can see that this one has 47,628 miles. You get the built forward tough animation at the beginning there, as well as the digital instrument cluster, digital speedometer and compass display. The instrument cluster is very nice and clean. Comes with the multifunction steering wheel cruise controls on the left, information center controls as well, volume and tune controls on the right. It does come with a six speed automatic transmission with the optional tap shift. This one has the sync eight inch radio. It does have AM, FM and Sirius XM radio capabilities, as well as Bluetooth capabilities on here. You get all your different apps including Apple CarPlay and Android Auto. Why is that important? Because you can project your cell phone to the screen with one of those apps. And if you have Waze or Google Maps on your phone projected to the screen, it's like you have nav right on the screen. So that's pretty sweet system right there. There is your backup camera that is working nicely. You also have your 360 surround cam right there too. And now with that surround cam, you can change this and you can also check out your cargo cam which is working nicely as well. So a lot of cool stuff you can do with the radio, downhill assist control, stability control and your factory exhaust brake. Turn dial four will drive factory brake controller and then you get your more tactile volume tune and climate controls down here. Two USBs, 12 volt PowerPoint, 110 volt, 400 watt max plugin. Get some cup holders down here, rubber floors in nice shape, dual glove boxes and the passenger side floor mat or floor and seat are an excellent shape. The headliners in great condition and you do get six auxiliary upfit switches and map lights right there. We'll start it up and take a look under the hood. Starts right up. You know, check engine lights or anything like that. I would personally like to thank you for checking out the video today and hopefully from this HD video, you've been able to verify the quality, condition options and of course, cleanliness of this truck all the way around inside out. All the lights are working nicely. And under the hood we have the 6.7 liter power stroke diesel engine. Engine bay is very clean, runs very smooth. Once again, this truck has been fully safety and inspected by our service shop. Has a fresh oil and filter change while the fluids have been checked and topped off. Has six brand new tires. Where's the emission sticker? And it is 100% ready to go. I would highly recommend this truck from a quality and condition standpoint. Six brand new tires on a fully decked out. A F450 is really nice to have and it's fully inspected and ready to go. Highly recommended. And to see more pictures of this truck or one of our other 550 new and used cars, trucks, SUVs, minivans, wranglers, half tons, three-quarter tons, one tons, you name it. We got it 450s, 550s. We got it there too. Go to that website right there, summitauto.com, full pictures and descriptions of every single vehicle all at summitauto.com. If you'd like to check out more HD videos, you can go to youtube.com slash summitauto. Click the bell notifications and get updates on the videos that we do each and every day, as well as having access to one of the largest catalogs of vehicle walk-arounds on YouTube, 8,000 videos and counting. In fact, in a second you will see a link to subscribe and my YouTube channel on the upper left, a link to more F450 videos that have done in the upper right, a link to this vehicle on our website and lower left and a link to one of our latest YouTube videos in the lower right. Click those, check us out. We're super excited to help you with this Ultra Clean 2019 Ford F450 Crew Cab Longbox Dually XL in Oxford White with the Polar Stroke Diesel. Thanks again for checking out the video. Remember to like, subscribe and share on the YouTube channel. I really appreciate it. Thanks again.