Thank you, Brian. So thank you very much everybody for waking up so early and coming to this session I know it's very difficult myself I had some problems this morning to wake up because you know, it's fast and so Saturday night generally You do stuff interesting with friends and you remember that You were called by Brian to say hey you need to give a talk tomorrow morning or I propose my name So sorry if it's not exactly the same topic By the way, we can talk about the original topic because I have planned for that and and it's a topic which is also interesting It's a relevance of Linux distribution at the era of darker containers. It's something that we can Address hopefully I will cover it a bit But if you have questions on those topics if you have concerns and raise your hands and we will try to do our best to Answer those points So let's start so my name is Bruno Conec. I'm working For a hardware manufacturer, I won't give the name here because they didn't want to support my travel this time So I will use my my association name to present the topic here I've been doing Linux and stuff for the last 25 years and I'm part of different upstream and downstream projects. I'm for this talk I'm particularly constant because I'm a major packageer and I had some Development to do to be able to package more easily at the container era Okay, so let's start with a few reminders so that everybody's on the same page Containers are just Compared to hypervisals or bare metal environment are really really near to the bare metal infrastructure The only stuff which is different from the bare metal infrastructure is that you have the Engine which is managing the notion of containers here And which is just a thin layer that you put on top of application. So you put An environment which is suitable to isolate the execution of your application if you want So you have namespacing of C groups which are set up by the way by default on your operating system And here in a container context that the container engine which creates those Environments of execution for the application before launching the application So no specific overhead because anyway, the canal is doing the job that you use it on the bare metal that you don't use it On the container environment at the same same cost For launching the applications just see the fact that you have an isolated environment is what is of interest to us in this context So I would talk about Docker because I've started using Docker and adding Docker To the magia distribution three or four years ago something like that three years ago and It applies to other type of containment engine, of course Some stuff are typical to docker some other stuff are really generic to to containers environment So the idea is really to pack everything together to give you a way a new way of delivering application to your users 40 years ago you were using tar and A script in the tar file and you were delivering your application to your customer like that or to your users like that After the Linux revolution you had more clever way of doing that which are called packages And we are in the distribution dev room So people building distributions are really keen to make packages to create a Suitable environment for delivering application taking care not only of the application itself and the right place Where it should be delivered on the system So having a standard which is a so Linux on our base which gives you all the directories in which you Need to install your software The logs are in bar logs the application is under us are you have ETC for the configuration files, etc So this is standardized. This is taking off This is taking care of by the distribution management system and the distribution management system is also creating Support for the dependencies for the build dependencies of the software and for the installation dependencies of the software Which is a big advantage? So that's one of the element why using distribution is still relevant compared to to the docker environment So docker came and said okay. There is a new way of packaging application. You can have this Apps in the box that we had in the previous in the previous slide and everything Inside that that box inside that context can be shipped Easily to another platform and run easily on another platform. So that's really the approach they had is bundle everything The approach is to say okay. If you have one process you want to run you will create one container so if you have an application which is comprised of Seven different demons running together working together then you would like to create seven different containers Images and seven different containers to host them It's working with layers and I will detail that in the next slide You have the notion of image and the notion of container which is an instantiation of the image Which is read write in which you can work whereas the images is read only itself You have additional features So if you want to share your images if you want to distribute your images especially inside your environment or outside You have the notion of registry. That's what the people from docker run on the docker hub. So when you do a Docker search for an image it It's interacting with the registry It's trying to find an image which has the name that you gave and it gives you a list of dozens of different images corresponding to what you are looking for You can do exactly the same internally and you can have so private registry as well to allow the sharing of images Which is like on distribution when you do repositories in your distribution and you manage packages Inside the repository and you share the packages through repositories They created the notion of docker files. So this one is linked to docker Which is the receipt to create the image? So you want to have instructions that helps you build an image on a regular base? You can replace it's like the make file for building an application. It's a receipt to build the docker image Inside the image everything is volatile. So when the container dies You lose everything sort of it's stored on your disk in a layer, but you lose everything So you want to have permanent information stored in volumes Which can be mounted from the host inside the container or you can use? network-attached volumes if if you need that Inside the container you are completely isolated from the world So you need to specify which ports you want to make available to the outside world so if you run one demon inside a An image you want to expose the port of that Network service to the outside so that it can communicate with the outside world The goal is to is if you remember JVAP from eyes. It's Right once run everywhere. So it's pretty the same on on the docker container image It's create once run everywhere on a given OS You cannot really mix and match it between different OSes The stuff I have not written here on the slide that you have a standard describing images, which is the OCI and It gives you the possibility to Use the same image content with different Implementation of container engines So we can take a docker image and run it run it with rocket or CRU When you want to orchestrate stuff you go a bit upper in the stack you have the notion of composition You can create YAML files to give to your engine the information on how to launch The container how to instantiate the container from the image So which type of volumes you want to attach which type of port you want to expose which type of environment variables You have which type of networks you have all that stuff that you can pass on the command line to the docker Command you can also store it in a YAML file to and give that YAML file to someone else And you have the docker compose a layer which will create all the the containers from that description based on the bios image that you have So HLA errors is a swarm of Kubernetes that you can use everything is using a rest API Even the command line interface tool so they always discuss with the docker demon on your system Using the rest API. It's developed in go and the composition is really developed in in Python and license under the HEP V2 zero so I Said in the previous slide there are there is a layered approach. This is how it's working So everybody is using the same kernel on your host There is no difference. There is no kernel inside the container image So if you go inside a container image and you use a you name command to look at what is it It's a kernel running Below on your whole system. It's not a kernel coming with the image That does not mean anything because it's just an isolation of processes So you have the same kernel It's launching different stacks different application But it could be a process that you run on your system or it could be a process that you're running in a container on your system It's the same then on top of the canal once you have created that and you have your C groups and namespace Available as feature of your canal to be able to enable those those type of Working environments. You have the notion of image. So the image is a read-only part of the solution and You can create as many layers as you need to reach a point where you are happy with your image You can have something as simple as a just a busy box binary. That could be your image so you execute Docker you create an instance based on that image and you will be in an environment where you just have the busy box binary and You have the 100 something commands as a busy box is providing to you in a very small footprint environment That's one way to deal with it You can use a very small distribution like the talker guy develop alpine Which is a very small Linux distribution To provide a strict minimum of environments that you need to have something which looks like a Linux environment because busy box is really really small Or you can put a full distribution or normal distribution the minimum set of that distribution So for a major distribution, it would be 200 something packages For Fedora the same for Debian maybe a bit less. Okay, so you have the possibility to really create a small Layer, which is the base of your distribution on all top of your distribution You can install packages using your own normal mechanism. So if you're on Debian, you do DPKG install You do if you get install if you're on Fedora, you do DNF install if you're on major Yeah, you do you are PMI, but that's the same approach You just use native tools that you have on your distribution to build the context that you want to have you can add scripts You can add binaries you can do peep install you can do npm install you can do whatever you want inside and That's isolated and once you have that once you are happy with the result of your build of the build of the image And the running environment then you can instantiate One version which will be the container in which you will have the right the right to write in it modify stuff And that's what will be that's where will be Running your application on top of it Any question at that point? Is it obvious for everybody? Okay Good, so why do you want to use distribution packages with Distribution and packages inside the distribution with containers and vm and that probably was what's original speaker was intending to cover more So First why do you want to run containers because you already have a distribution? well What you want is next not necessarily polluting your distribution with a ton of stuff that you want to test in an Dedicated environment, especially when you do stuff like Java script node gs Type of stuff where very few distributions have package the whole stack that you would need to develop That does not exist under an opium format or that format because it's really a moving target You would need thousands of dependencies when you do npm install of something you you get 10,000 of different modules installed Through the network That's a huge work for a distribution and most of the distributions that just package the node gs itself So you can do npm install and then the rest is not packaged because it's moving too fast It's not possible to keep up with that. It's not the case of some other languages You have a lot of pearl modules a lot of python modules a lot of Java modules as well Which are available under a package format so you can benefit from the work of the distribution people to have a Queer on set of packages but force moving target like node gs. It's really something where you want to isolate it from your Native distribution because you don't want to install on a distribution something which is not packaged Why because it creates I mean the Manual installation compared to package installation is Direct way to create problems in your environment because you may have Stuff in the standard place and you may have at the same time the same stuff in a non-standard place under a US or local for example, if you just do Configure make make install for a GNU software It will by default arrive in US are local and then you will have binaries in US are local bean and binaries in US are bean and you don't know which version is which and sometimes you don't point to the right Configuration file because you have multiple instances. So really if you want to to have a serious Execution environment and also build environment. You need to be very clear of what you do and and Identify clearly where you need to use non-package environment such as node gs for example compared to package environment The advantage that containers bring like VM You are not polluting your your running environment You create an isolated place where you can do everything you want at the end It's just in that environment and that's something you can send to someone else for test or whatever So that's something you should be able to rebuild easily So doing it with VMs you should automate the creation of the VM and the operating system Deployment in it and the installation of your application in it, etc. It's easier with container than with VMs But that's the same approach You want to be able to easily scratch and redo your running environment execution environment if you have problems And so it's easier with Docker file to to do that and to address that and to rebuild on the on a regular base Your Docker images to be really up to date Containers also bring something which is useful and that I'm using and that's the goal of the talk in fact You can have on a single Linux distribution tons of other distributions available to make your test so you can automate the Portability of your application in different running environments in different distribution You can package for different distribution your software so that it's installable natively for the people using packages from the distribution So it's a really an easy way to to distribute for for other distributions at the one you have or for I mean I'm running the six version of magia which is the last stable version. It has more than one and a half here now And we will issue seven in a couple of months But I don't want to run a non-stable distribution I use my my laptop to work and and I mean working with a Development distribution is prone to break my ability to work very often So I prefer to isolate the test I do on the development distribution in a specific environment such as a container And that's the goal Compared to to using natively the development environment and having the compiler it's a compiler broken for a couple of weeks because There are stuff that we need to to put in place when we move from one version to another etc Another advantage of containers with regards to VMs is that it's very easy to share your home directory with you with the container so you can attach when you Launch your Instance of a container from the image you can say to you to that attach my home directory and Put it in the home directory of the container environment so that I'm at home and I can use all the Files that I need to work in my environment Which means for example that allows you to share if you are in a opium based Distribution all of the configuration files that are needed to build packages correctly So opium macros opium RC. You can also keep a look on your SSH keys I have I have my SSH key in the build system of magia to be able to push packages and ask for the build system to To recreate the packages. I've tested locally You can do the same with other distribution as well. What I do is really generic. It's not linked to magia itself The only way is the only place where you really need the VM compared to a container to do that isolation Is if you need a different kernel between what you're running and what you want to test That's the only only place where it's important for people like me who are doing packaging most of the time I don't care. I can use a native kernel of my distribution to do the packaging. I'm packaging for 120 different distributions The software I'm upstream for without any problem due to the difference of kernel in on the host and inside the packaging environment So that's really feasible. So how do you deal with that concretely? So you have the Docker registry or you have your own registry or you have your own local images You have a set of images that you can put on your on your environment You create those images using a Docker file I will show you the content of the Docker file just after and every time you need to Test something in a different environment than the one you're running you instantiate a container for the distribution Which is your target and inside the container your building packages that then you can send to your distribution repository either using Subversion or git sources depending on the distribution and the package management system of your distribution okay, so Maybe I should turn around and And show you the real file instead of so so the one on the slides for people will want you have a look after the presentation But I should be able To show you something else here, which is a real one Okay, so I have a way to capture some parameters as input which is not really important I have a configuration file that I can use To pass some variables and have default variables Available in my environment here so the version of the of the major distribution target temporary directories a mirror That I can use to download the dependencies Working directories the architecture are on which I'm working because I can also build for different type of Of architectures, there is a very convenient project in QEMU which allows you for example to run on an x86 machine non x86 binaries As if you were in a virtualization environment except that you are not virtualized You're not in a VM. You're virtualizing the instruction set, but you're not in a VM So I'm I started to able to just a raspberry to make some test with the another architecture to see if it was working here That seems to be very interesting So I get my my create my information My UID TID because I want to map those inside the container and then I write I generate a docker file here I start from What I call my J are official Repository which is in fact local to my system. So those are my local Root images for the distribution. I can show you if we have time how it's built The first thing I do is I add that my distribution inside the the image when I build the image I say I want the latest version of every package that I need then I Can okay, that's not that's commented then you install all the dependencies that you need In your environment, so I have that the repositories and then I install all the dependency packages that have been updated since the last time And I install in that environment because I'm building packages The set of packages I need to build packages. So there is a BM command which does the build through opm build Magia is using subversion for configuration files and stuff like that We have the image here repo command, which is the interaction with a magia official repository and the launch of the build as interaction with the build system of magia and Some other useful tool like a color diff and studio because I want to be able in my Build environment. So when you're building packages for for a distribution never build as route That's a if you if you take something out of this this talk is never built as route in standard because when you're building a package You don't know what you are launching your you are packaging this Set of software which is coming from upstream and those guy made you Remove files, etc. If you don't set up the right environment viable You will remove files in a place where you don't expect to remove them So never run as route run as a single user. So that's why there is some Magic here to create the user in the container image Assocating the right the right ua djd. This line is not useful anymore and giving to that user the studio the right to studio in the container and Without any password to be able to launch some commands as route when you need them But not when you don't need them and you do you do that on purpose. So every all the builds Is done as a single user, but sometimes if you want for example to install the build packages on your Environment, then you will need a route access to be able to write in the package database That you want to install package and then I create the home directory of that user I say that I will be in a work there, which is my the place where I have my My major environment I run the container as a user not as route and I launch a bash command and the rest is just some A small part to detect if there is already a container if I force I can remove the the previous image to rebuild an image And then I just run So this is the line which is creating the instantiation From the image. So here we are building the image with that receipt once the image is built you instantiate an environment You say I want to remove that environment at the end of the run. I want to map my I want to be able to SSH Correctly from my docker container environment. So I need to make some stuff with the with the socket Inside the environment and set up the SSH socket inside the environment to the same place where it is outside So I can communicate using my SSH agent, which is already installed my system I just want to mount my home directory and on my home directory inside the container and I I use the image which is tagged like that, which is the name of what we are creating here in the in the receipt so How does it work? So here I'm running on the major 6 And I can create of course a major 6 environment as well so by default by default so I didn't relaunch anything this morning, so I can not Let me just Let me just restart the docker-demand because I may change some stuff since yesterday Try again So I have a certain number of images. That's why it takes a bit of time So there is there is a couple of images and you see there are a lot of different distributions that I use to build to have different Environments to be able to build different software correctly. So that's why it takes a bit of time Is it better now? No, it's still not no such holes. So I may have lost my network here Which is here. Where is my mouse? Here Yeah, I have no no LAN. Can I use the system legacy here? The system one should be better. Oh, yeah, right So the difference of This should be before I'm not pointing to the right image. I Miss the architecture here Okay, so here. Where am I? Am I I am in a container which has been instantiated from the image which is here You see at the prompt change of course from That perspective here. It's still a major year six environment, but this one has 232 packages where has my native distribution That's 3000 packages. So I'm in a completely new different environment It's a fresh major year six environment Which has a minimum set of packages that you need to have to run the command which can install additional packages So that's what you want to have you have a bare minimum distribution on which you you are able to use if it's a DBN Distribution APT get if it's a major year PMI if it's a Fedora DNF That's just what you want to to be able to do because that plus a network configuration correct so that you can Touch your repositories and download content from the repository. So where you're here So the stuff which is also not right is that I'm a root in that environment. I should not be a root I should be I should be a single user Yeah, so Yeah, right So this is this is the image. So this is the official image. This is the one I I use As a base environment. So this is not the image I use to build my packages I can do the same Easily with another version. So if I use the cauldron version here, I will be now in a different environment Which is the magia 7 version Which has a different set of packages Only 219 so nice job for the guy working on that because they reduce the size of the minimum distribution set from 232 to 219 so we have less packages when we want to create a Small distribution with magia 7 release and here if you look all the packages, which are installed or MGA 7 where has of course here all the packages which are installed on my native system or MGA 6 So I have I have a working magic environment here Which is completely different that I'm pointing to the development distribution I have all the dependencies of the development distribution. I can really do what I want in that environment easily Let me try to Just fix that Because there is something wrong here. You should never make changes Well, that's not true. That's not very correct. In fact, that's not very correct So they before the distribution is a representation Let me check Because yesterday I was building some stuff. So so I have in my own environment normally this one for example so if I go here into This one Yeah, which has the which has the architecture that was the missing part of my on my script script has not been updated for so now I Have an image which is Based on the previous image. So this is still a control version version 7 But this time I have a bit more packages because in my receipt So if you if we look at the docker file That we have for example, where is the presentation So if we look at the docker file that we are using here in the presentation, which is which is the same in addition to the standard distribution which has 219 packages I Asked to add a couple of additional commands to be able to work So for example, I should have the BM and the MGA repo command So let's go back here So here here first I am a single user. I'm not root anymore I change the environment in which I want to run and I have access to the BM command I have access to the MGA repo command which were not there before So and I am placed in my in my directory where I have all The packages I am following for my Jaya that I can rebuild So let's take for example Something related to docker as the docker compose. I will do a remove of Everything which is not relevant So all the intermediate build stuff here I just keep the sources and the spec file which are the strict minimum I need to build packages. So For those not really familiar with that maybe so the spec file is again a receipt Which gives to the rpm system instructions on how to build a package for the distribution. I'm running so it gives you some Dependencies at build time that you need to satisfy to be able to build and as docker compose is a python script It needs a certain number of python modules to be able to build correctly and then it will also Indicate some Installation dependencies. So if you install that package on the distribution, you will need to satisfy those dependencies Around python modules needed and then you have the receipt to be able to to build the software in your environment So for the measure your distribution is as simple as doing BM And of course it does not work not because it's a demo because it's it's on purpose I missed all the dependencies. I show to you that there are build dependencies here And I don't have those if I do our PM pipe rep Python I have a certain number of Python packages typically What is needed to build? Python packages and the Python 3 and 2 versions as well itself But very few other packages just setup tools is the only one I have for example, I don't have I think it needs The docker package the web socket client, etc. So all those packages are not available yet So I can say to my system. Okay I need to be a root because I want to install additional packages And I want to install the packages which are mentioned in the spec file that I need to have So it says okay I want I will default to to using bill requires so which are the bill requires that you need Okay, you need a Python docker package. Which one do you want? Say, okay, let's take the first one And you have recommended packages or optional packages So I say okay, I don't want to pollute too much my system. So I would say okay do not do not install The recommended packages just the one I really need to build so the list of packages as dependencies which are needed in my environment are those I Will say install those stuff and hopefully if there is a bit of network You should be able to download them. Which does not seem to be the case Okay, so maybe the mirror is having an issue because I have the network here. Let me check Yeah So I cannot touch the mirror myself either on the web browser. So I need another mirror Let me try So let's say, okay, this mirror is broken does not want to deliver to me stuff. That's not a big issue Well, that's a problem, but that's not a big issue. So I will go in my Configuration file and I will change the mirror Okay, let's do it the other way around. So I will change the mirror also reference to the mirror here Inside the configuration file to something which is better Which is a kernel.org mirror which should be working Fine here. Oh, there is to this trip. Okay This time should be a bit better So let's try again. Okay, so when you deal with a mirror which is up to date and available You can download the dependencies to build your software it install them for you So now you can build your package and this time as all the dependency requirements are satisfied then you can Build the package and you have in your environment to gain all the directories that have been created For example, you have the new package which is available here Which has just been built in my environment Which is clean because it has been built using the magia cauldron tools magia cauldron dependencies creating an MGS 7 version. So everything is completely Safe from a build environment and now I can just try to install it and Again, it's looking at dependencies at install time and it's okay for Installing that package you will need those packages as the dependencies So just say yes, it will download at some additional packages And now you have the package which is here and you can start testing it in your environment because it's working So you have a strict minimum environment to be able to make tests of one package that you have built here Which is exactly what you want to do and I'm not polluting as the rest of my system It's completely isolated and I can't do that as many time as I want with different distributions available any question Yes Yes Yeah So generally what happens by distro vendors is they have a build system and On the build system you have machine with all the targets that you need to support what you want to support So here I'm testing on my local system I will check that everything is working when I'm done. I can use the major repo command to push My content to the build system pushing my content is just pushing the subversion Set of files that are under control So in my case here, so here is On the build system the subversion Tree that I mirrored I mirrored locally You can have a look at the different stuff that have been that have been done From the system so you see what happened to the life of the package During its development you see when you have modified the compose file when you have a build a massive build For example for my js7 which happened which change automatically a certain number of stuff Okay, and when you are happy with what you have so in your environment what is important or The sources directory and the spec directory so the spec directory contains the spec file That is mandatory to rebuild and the sources directory contains the sources of survive version I have had during time of that component and a shawan file Checkings as for the checksum of the of the source file So those are stuff that are in the subversion repository on the repo at in the major build environment and when I launch build for me The package it will go to the build system extract from Subversions the right files do the BM command like me on all of the target systems that you need to to support So it will be for x86. I eat 586 Which is a 32-bit version arm 7 hl because we are not like the end because I see you have a deep end issue So we are not as deep end Maintaining as many as many architectures that you are maintaining of course and we have less packages as well as the end Here only 30,000 when they been as 50,000 something like that So that's that's the way it's done You you have so your your target system on on the build infrastructure that are used to build the final system So your your building stuff you are testing it of course You may have a software which is working nice on x86 and not working on arm and you will not detect it through this process You will detect it when your contributors say hey It's broken on my on my version and you you have a back zilla You give the architecture on which it's not working and people will make tests on that version if that not done that before That's a way. That's the way it's done No, it's a dedicated system, which is I think using just shrewd for due to I mean you don't change build system easily That's that's one of the problem So yeah, that's the way it's done any other question Okay So if there is no no other question, I'll leave you a bit of time to change room and get another fantastic presentation Thank you very much


So I just posted that I'm going to be making little applications using Godot And I've already got a few questions one of which was making dialogue boxes and also Combo boxes as they said or drop-down menus. So let's go ahead and see what options we have in Godot And how easy they are to use in this video. We're gonna again. Just go over the basics.  So let's check it out. Okay, we're starting with a new project here We're going for more of an application So we're probably gonna use the user interface because we're making a user interface go ahead and click on that and We're going to add a few things to this We're going to add in as we're looking for a dialogue window also known as a pop-up in this case We're gonna say add child node to our control node here And I am going to say pop up and we have different options here You have your pop-up and then you have sub options from that as few as down here You have accepting confirmation dialogues file dialogue dialogues if you want the user to be able to select files from your file system We're gonna go with a blank window. So just a dialogue window. I'm gonna say create So that created it but by default it's going to be invisible I'm gonna click this to make it visible, but it'll still be invisible when we start up our application Unless we tell it to appear which we're going to do with a button. So real quick I'm going to enlarge this a little bit and With it selected. I'm going to say in the layout here. I'm just gonna say center So now it should be centered and I'm gonna hit control s to save my project I'll just call it the scene control and if I hit f5 it's gonna ask why I want to be the default scene And we'll select this scene we just created and as you can see I have a blank window because it's hidden by default That's what this little icon here is probably telling us warning. It'll be you have to call pop-up I guess you can call pop-up I usually use visibility. I think it does the same thing So with the select though we can give it a title. This is going to be a menu where you select someone's name Okay, so I'm gonna say pick a name Now to make this dialogue visible. We're gonna want a button. So to our control node. I am going to add a child node I'm gonna type in button and I'm gonna add a button. I'm gonna choose my layout here I'm gonna say center on bottom-wide so bottom-wide. I'm gonna make it a little bit thicker here And this is gonna be very big, but we're gonna say choose name So now we have that and we'll link that to a function in a moment But let's add a few more things here again to our control node. I'm going to add a label So what we're gonna do is when our pop-up window appears We're gonna have a drop-down menu to pick names from and then when we click an okay button in our dialogue box It's gonna change this label. I'm gonna tell the label to be top-wide and That's good for now on that Now I am going to go to our dialogue here. I'm gonna say add a child to that. I am going to add in a Option button. So the option button is basically what we're talking about in this tutorial. I'm going to center that Horizontal-wide like so and What it's going to do is it's going to give us a drop-down of list of names that we can pick from then We want a button that we can click okay that will change the label to say what name you picked So I'm going to add another button but into our dialogue box make sure it's in your dialogue box and I'm going to say Bottom-wide for that. So bottom-wide gonna make it a little bit bigger and I'm just gonna label that Okay So we have all our elements now. Let's work on the code. I'm going to say here I'm going to attach a script. I'll just control call it control GD. It's gonna be a Godot script I always forget there's an option to not have all these comments in here and I should click that but I always forget Okay, I'm gonna just copy and paste to save some time So our buttons here are our items here can be renamed So for example, I can rename our option button because you might have more than one to something such as Name box is what I'm going to go with for my example. I'm gonna go back to my code here and I am going to copy and paste some code to save some time basically all these were saying on rate because we're gonna be grabbing these objects these elements here and They have to be up here before That you can grab them. So that's we're saying on ready Then we're gonna create a variable and give each one a name We're gonna say get the node by that name. So for our name box, we're looking at the one that's inside our window dialogue We're gonna get the name box for our pop-up window. That's gonna be our window dialogue and again You can rename them over here, but to make things clearer, but just for time's sake We're gonna leave them all at the default names besides name box that we renamed and then we have a choose button We have an okay button and we have our label now What we can do at this point is we can again if we start this up We're not gonna see what we'll see your button down here. Our label has nothing and our button does nothing Let's make our button make our pop-up visible. So I'm gonna choose my button here Make sure you're choosing the correct button again. That's why rename them over here might be a good idea If you have a larger project you can to button down button up button press I'm gonna do button up. That's what I normally do and I'm gonna go ahead and say on Choose button up. What are we gonna do? We're gonna do that. Here's the function So what are we gonna do? We're going to take our pop-up that we created up here and I believe there's a pop-up option. I just do visible truths now if I Run this and I click this button the dialogue pops up now There's nothing inside our menu here and our okay button does nothing. So let me go ahead and just close out of that what I'm gonna do is I Am going to instead of adding one by one items because you might have a lot of items I'm gonna create a variable so on ready. I'm gonna say names. I'm gonna give it three names here And then we're gonna loop through the names So I'm gonna create a for loop So again what this is doing is we're creating an array of names right now with three names We're gonna say okay for each name. So we're gonna go through names. We're gonna go for each name We're gonna find our name box, which is our option button, which we've renamed name box up here We're gonna add an item and we're gonna add the name So now if I run this when that's visible you can see there's three names Okay, and our okay button still does nothing. Let's make our okay button do something. We're going to say Our button here. We're gonna say on button up We're going to let's rename this to so we know what button it is to Okay connect So as this function gonna do well if we have our dialogue up already, it's visible. We're gonna make it Invisible so we're gonna say False so if I run this now we can click choose name We can choose a name and then we click okay, and that dialogue goes away but now we want to do something with the name that is selected and Although there's probably a few different ways to do this. What I'm going to do is just say Okay, find our label which is defined up here as the label that we have on our main window We're gonna say it's text equals and we're gonna say you have selected and then we're gonna add to that from the name box We're gonna get the item text, but which item we're gonna get the item that is selected from the name box I'm gonna click at five to run that I'm gonna click choose name I'm gonna choose a name when I click. Okay, it now has said you have Selected John if I go back in here I can select a different name and click okay and has changed to you have selected Chris and of course we can also pick Jake Don't want to leave him out perfect That's pretty much the end of this tutorial. Obviously we can create an exit button of some sort on this The only other thing I might do is come in here and like with our label. I might tell it to Center the label so now when we run this and we choose a name It's going to center it there We can center it on the window if you want we can add other fonts to it in the size We've done all that in previous videos. The only other thing is like you might not like the look of this default theme, right? It's kind of standard most application programming interfaces that give you Buttons and drop-down menus have a very basic standard looking Options that usually are meant to be standard, but not very pretty. I am not much of a designer That's why I say I'm a programmer not an application designer because to me application designer is someone who has more of an artistic view We're not going to go over in this video But for all our buttons and dialogues and windows you can add themes So we can say new theme in here and you can add this and then once you create a theme You can save it as as a resource and use it anywhere in this project or other projects We're not going to go over that in this tutorial, but I just wanted to point out that that was an option So again check out the links in the description. Hopefully I'll remember to put this example code into a Project online that you can check and download, but that's the basic concept and again We did option box, but if we go back into here, we go Add a child you can see that there's checkboxes check buttons color picker picture at color picker buttons menu buttons we just an option button there's tool buttons link buttons and A whole bunch of stuff and again you can make them look however you want if you have that artistic Feel which we might go over themes in a future video, but I do thank you for watching I do thank the viewer who asked this question for the idea to do the video on it And I hope that you have a great day. So that's it I know I said we have a great day, but I thank you for watching this video Sorry if there's a little bit noise in the background. My kids were doing something. I have to go check on that So I apologize if there was any no background noise in this video that you heard my kids yelling But other than that, I hope that you enjoyed the video. I thank you for watching Please visit films by Chris comm and again. Have a great day


Well, we've all been involved in this story especially when the attorney for the family was here and dropped some bombshells last week But this question is about armor correctional health services, which is contracted to run Duval County's Jails health care and they continued amount after Dexter Barry a heart transplant recipient died last November after he didn't get his Anti-rejection medication while in jail. I'm sure all of us have seen the video from the backseat of the police car as he told The officer I need to take these meds three times a day In fact, I didn't get my last one the officer sounded sympathetic tried to get a supervisor to come up with some idea But apparently mr. Barry ends up in jail does not get his meds by the time he's out The meds apparently arrive at the jail and then he unfortunately passes away. So Andrew Pantos the the tributary staff Obviously did a lot of work on this. I've done some research, but not a lot Certainly we are aware that that Tony Baceli former Jaguar is an active lobbyist with them The big question that came from the attorney and others for the family is why didn't the jail staff the armor? folks just Send them to the to a hospital and take it away from their hands and their problems. So take it away Yeah, so there's still a lot of things we're looking into and my co-worker Nicole manna at the tributary has been digging in deeper and deeper into some of the problems with armor correctional and the medical care at The jail, but lately what we've been trying to show is how much JSO should have already known about armor correctional before they ever privatized their medical care in 2017 2017 after then Sheriff Mike Williams had taken over Mike Bruno as corrections director They signed a deal to privatize away the the medical care and hire this outside group armor correctional Would hire Tony Baceli as their lobbyist already armor had developed a reputation for its poor care across the country And when they re-signed that contract last October under interim sheriff Ivy at that point they'd been criminally convicted in another state They had been removed by most sheriffs in Florida who had initially hired them because of the poor care in their counties and because Many of those sheriffs including our neighboring baker sheriff said they were lying to them They were misleading they were they were withholding information from sheriffs And they were doing the bare minimal amount of care they could and billing as much as possible from taxpayers Yet despite all of this being known widely by sheriffs across the state the Jacksonal sheriff's office signed a lengthy extension that amounts to more than 90 million dollars total over the course of the contract with armor correctional to continue handling the medical care and Now what they've said is that they did order the heart transplant Anti-rejection medication for Dexter Berry with that it would take at least 48 hours plus an extra I think four to six hours, so they're saying at minimum It's going to take two and a half days to get medication that these recent transplants Recipients need to take three times a day and you don't take in your recent transplant recipient Your body's going to reject that transplant there Friday arrest Monday release at that point with two and a half days of these Without these meds. It's too late in a matter what happens That's where the cardiologist that we've spoken to have said is that by that point It's too late. Your body has already now started to reject this heart that he waited 10 years on a transplant list to get And you know you got to think of how much effort goes into you know when Mayo clinic or any other hospital is doing a heart transplant And then to go into a jail. That's not ready to deal with the specialized medical needs And for him, especially the the other question is why he was even arrested in the first place for Something that was so minor as he and a neighbor were arguing over the neighbor not paying for Wi-Fi that that mr. Berry was providing and at he said, you know, I'm gonna beat you up using a profanity If you don't pay But both men were handicapped and elderly it did not seem like a very legitimate threat and the police officer Arrives and decides he needs to take away mr. Berry and arrest him on this charge and that ends up Amounting to what seems like a death sentence Based on the lack of medication that he received and what we hear is that even if his girlfriend had been able to Go back in the house and get the meds the jail policy does not allow you to drop it off because the jail Maybe rightly so it doesn't know what's in that container But the officer apparently was sympathetic enough to try to talk to the supervisor and the logic says maybe that Officer could have gotten someone To go back to the house with mr. Berry in the backseat going It's in this room and get it and it worse there would have been a few hours delay So let's open this up in a dual case is like, you know, it's own. There's a lot of complexity, right? Oh, yeah issue is when you're dealing with privatized, you know medical care in it in a Prison or a jail and armor obviously has contracts across the country and across the state But they're dealing with a very transient population They're dealing with a very unhealthy population and they're trying to cut costs And one thing that you've seen in other areas around the country is that there's been these short-term issues with armor administering medicine quickly and often people are coming in and out of the jail if they don't have to administer meds Immediately it can be a money-saving thing. And so it's not necessarily They're making that calculation But they certainly are every time that they have to decide whether they're going to administer a medicine or not that person Could be gone or discharged or bonded up by the time that they actually receive the medicine that they I mean Logically you have a private medical care Contracts coming in saying we can be cheaper than you doing this in-house and we can be a for-profit company that is serving our shareholders are serving our Fiduciary interests while also being cheaper that means they're cutting costs somewhere. They're providing substandard service somewhere They're they're having to find some way to to cheapen what's being given and you're deciding as a city as a Sheriff's office that you're okay with spending less and potentially getting Substandard care well the jail did actually do its own medical care at one point and then it contracted and work with the Department of Health in Florida, but the logic here. I'm being told is that Armor came in and said we can save you millions on the contract and that was the draw And then with lobbying to show that that savings would allegedly happen, but you're right with cost savings comes Problems with service and let me say this if I can real quick My understanding is that the contract did not save money Duvall County had one little lowest cost providing in me Healthcare in the state by far when they brought the contractor in they actually cost went up Yeah, but that's what armor's promise was to everybody. I'm sure correct You know the thing that I I see wrong here is that this is a very I guess Specific prescription. They're not gonna have it on a shelf, right? They're gonna have to order it It's gonna I like I can I can understand why they wouldn't have it readily available Because how many individuals are you gonna get a rest or gonna be arrested who's just had a heart transplant a week before or six Months before so that said something fell through the cracks if this is beyond the scope of your capabilities to your point, Dan Why did someone say hey listen? We don't have this we understand the significance of the health risk Transport them to chance, but yet mr. Barry's attorney says that since announcing this he has heard from another Former inmate who was a transplantee so this is obviously something that should be in the scope of a Subsection of the contract that says if a very specific issue comes in. This is how we handle it exactly because Apparently, there's a lot of deaths that have occurred In jails. In fact last Friday. We got an email from JSO about a patient an inmate sent to a hospital Who then passed away? They call that an incustody death Even though that apparently that person was sent to be hospitalized. I mean you do have to be fair That is a very unhealthy population. They you know, they're they're you know 20-year life expectancy less than the average person, you know And a lot of times people are living in difficult situations when they're incarcerated. They have some addiction issues The bar is pretty high for like the level of care that would be needed to provide, you know for for this very at-risk population But the issue of everything when it comes to our carceral system is that we try to do it on the cheap We want to lock everybody up for crimes But we do not want to pay for the fact that it's very expensive to house someone and care for someone And it's you know, there's there's enormous costs. They're already well beyond health care that are safety issues for people Who work in these facilities? The guards that work there. It's you know, there's a lot of ways that we're cutting costs that are making it less safe And don't forget that many years ago a sheriff decided to cut costs by serving only bologna sandwiches at the Duval County Jail So and I don't I know they don't do that now, but


Hi everybody, welcome back to theCUBE as we continue our coverage here at AWS Reinvent 22 when the Venetian at in Las Vegas. It is Wednesday and the place is still hot but I can guarantee you that. We continue our series of discussions as part of the AWS startup showcase. This is the global startup program, a part of that showcase. And I'm joined by two gentlemen today are going to talk about what Core Stack is up to. One of them is Easy Natarajan who is the founder and CEO. And good to have you with us today. We appreciate it. Thanks, Easy. Nice to be here, John. And Brad Winnie, who is the area sales leader for startups at AWS. Brad, good to see you. Good to see you, John. Thanks for joining us here on the showcase. So Easy, first off, let's just talk about Core Stack a little bit for people at home who might not be familiar with what you do. It's all about obviously data, governance, giving people peace of mind but much deeper than that. I'll let you take it from there. So Core Stack is a governance platform that helps customers maximize their cloud usage and get governance at scale. When we talk about governance, we instill confidence through three layers, solving the problems of the CIOS, solving the problems of the CTO, solving the problems of the CFO together with a single pane of glass which helps them achieve continuous, holistic, automated outcomes at any given time. So Brad, follow up on that a little bit because Easy touched on it there that he's got a lot of stakeholders with a lot of different needs and a lot of different demands but the same overriding emotion, right? They all want confidence. They all want confidence and one of the trickiest parts of confidence is the governance issue, which is policy. It's how do we determine who has access to what and how we do that scale and across the only startups and enterprises, this is a huge concern, especially as we talked a lot about cutting costs as the overriding driver for 2023, the economic compression being what it is, you still have to do this in a secure way and in as a riskless way as possible and so companies like Core Stack really offer a core, no pun intended, function there where you abstract out a lot of the complexity of governance and you make governance a much more simple process and that's why we're big fans of what they do. So we think governance from a three dimensional standpoint right now, how do we help customers be more compliant, secure, achieve the best performance and operations with increased availability at the same time do the right spend from a cost standpoint. So when all three dimensions are connected the business velocity increases and the customers ability to cater to their customers increase. So our governance tenants come from these three pillars of finance operations, security operations and AI operations are total operations.  So part of what's going on here which is critical for AWS is if you notice a lot of VZ's language is at the business value with key stakeholders of the CTO, the CISO and so on and we're doing a much better job of speaking business value on top of AWS services but the AWS partners, again like Core Stack have such great expertise in that level of dialogue that that's why it's such a key part for us and why we're really interested in partnering with them. You know, how do you wrestle with this? Or wrestle may not be the right word but because you do have, as we just went through this litany of these business parts of your business or a business that need access and that you need to have policies in place but they change, right? I mean, and somebody maybe from the financial side should have a window into data and other slices of their business. There's a lot of internal auditing obviously it's got to be done, right? And so just talk about that process a little bit how you identify the appropriate avenues or the appropriate gateways for people to access data so that you can have that confidence as a CTO or CISO that it's all right and we're not going to let too much out to the wrong people. So there are two dimensions that drive the businesses to look for that kind of confidence building exercise, right? One, there are regulatory external requirements that say that I know if I'm in a financial industry I may need to follow in NASD, PCI and sort of compliance or if I'm in the healthcare industry maybe HIPAA and related compliance so I need to follow, that's an external pressure. Internally the organizations based on their geographical presence and the kind of partners and customers they cater to, they may have their own standards and when they start adopting cloud, hey for each service, how do I make sure the service is secure and it operates at the best level so that we don't violate any of the internal or external requirements at the same time we get the outcome that is needed and that is driven into policies that is driven into standards which are consumable easily like AWS offers well-architected framework that helps customers make sure that I know I'm architecting my application workloads in a way it meets the business demands and what Corsak has done has taken that and automated it in such a way, helps the customers simplify that process to get that outcome measured easily so they get that confidence to consume more of the higher order services. Okay and I'm wondering about your relationship sort of what AWS goes because it's almost like to me it's like going DC fishing and all of a sudden you get this big four, 500-pound fish, like now what? Now what do we do, right? Because we got what we wanted, you know? So talk about the now what with AWS in terms of that relationship and what they're helping you with and the kind of services that you're seeking from them as well. Thanks to Brad and the entire global startup ecosystem team at AWS and we have been part of AWS ecosystem at various levels starting from marketplace to ISV Accelerate to APN partners, cloud management tools, competency partner, core cell programs, you know? The team provides different leverages to connect to the entire ecosystem of how AWS gets consumed by the customers. A customers may come through channels and partners and this channels and partners may be from Wards to MSPs to SIs to how they really want to usage and the ecosystem that AWS provides helps us feed into all these players and provide this higher order capability which instills confidence to the customers end of the day. And you know this can be taken through an MSP, this can be taken through a GSI, this can be taken to the customer through a war and that's how our play of expansion into larger AWS customer base. Brad, from your side of the fence. You know, this is where the comments of scale come to benefit our partners and AWS has easily the largest ecosystem, whether or not it's partners, customers and the like and then all the respective teams and programs bring all those resources to bear for our startups. Your analogy of catching a big fish off the coast, I actually have a house in Florida, I spend a lot of time there. I've yet to catch a big 500 pound fish, but yeah. But they're out there. But they're definitely out there and I, you know, so in addition to the formalized programs like the global partner network program, the APN and marketplace, we really break our activities down with the core stacks of the world into two major kind of processes, cell two and cell with. And when we say cell two, what we're really doing is helping them architect for the future. And so, and that plays dividends for their customers. So what do we mean by that? We mean helping them take advantage of all the latest serverless technologies, the latest chipsets like gravaton, thing like that. So this, that has the added benefit of just lowering the overall cost of deployment and expend and that's, and we focus on that really extensively. So don't ever want to lose that part of our, of the picture of what we do. And the cell with is what he just mentioned, which is our teams out in the field compliment these programs like APN and marketplace with, you know, person-to-person relationship development for core key opportunities in things like FinTech and retail and so on. We have significant industry groups and business units in the enterprise level that our teams work with day in and day out to help foster those relationships and to help Core Stack continue to develop and grow that business. Yeah, we've talked a lot about cost, right? There's a difference between reducing costs or optimizing your spend, right? I mean, there's a very different prism. So in terms of optimizing and what you're doing in the data governance world, what kind of conversations, discussions are you having with your clients and how is that relationship with AWS allowing you to go with confidence into those discussions and be able to sell optimization of how they're going to spend maybe more money than they had planned on originally? So today because of the extra external micro market conditions, every single customer that we talk to wanting to take a posture status of, hey, where are we today? How are we using the cloud? Are we in an optimized state? And when it comes to optimization again, the larger customers that we talk to are really bothered about the business outcome and how their services and ability to cater to their customers, right? They don't want to compromise on that just because they want to optimize on the spend. That conversation is trickled down to taking a posture assessment first and then are you using the right set of services within AWS or the right set of services being optimized for various requirements? And AWS help in terms of catering to the segment of customers who need that kind of a play through the partner ecosystem. Yeah, we've talked a lot about confidence too, cloud with confidence. What does that mean to different people, you think?  I actually think it's flipped the other way around now. I think the risk factor is more on your on-prem environment and all that goes with that because the development of the cloud in the last 15 years has been profound. It's gone from, that's been the risky proposition now with all of the infrastructure, all the security and compliance guardrails we have built into the cloud. It's really more about transition and risk of transition and that's what we see a lot of and that's why again, what governance comes into play here which is how do I move my business from on-prem in a fairly insecure environment relatively speaking to the secure cloud? How do I do that without disrupting business? How do I do that without putting my business at risk? That's a key piece. I want to come back if I may, something on cost cutting. Sure. We're talking about this on the way up here. Cost cutting, it's the bonfire of the vanities in that everybody is talking about cost cutting and so we're in doing that perpetuating the very problem that we kind of want to avoid which is our big cost cutting. And I say that because in the venture capital community what's happening is two things. One is everybody's being asked to extend their runways as much as possible but they are not letting them off the hook on growth. And so what we're seeing a lot of is a more nuanced conversation of where you trim your costs it's not essential spend but reinvest especially if you've got good, strong product, market fit reinvest that for growth. And so that's, so if I think about our playbook for 2023 is to help good, strong startups either tune their market fit or now that they have good market fit really run and develop their business. So growth is not off the hook for 2023. And then let me just hit on something before we say goodbye here that you just touched on too Brad about how we see startups right, AWS. I mean obviously there's a company focus on nurturing this environment of innovation and of growth and for people looking at maybe through different prisms and coming in. So if you would maybe from your side of the fence easy from Corsetac about working as a startup with AWS. I mean how would you characterize that relationship about the kind of partnership that you have and I want to hear from Brad too about how he sees AWS in general in the startup world. But go ahead. It's kind of a mutually enriching relationship, right? The support that comes from AWS because our combined goal is help the customers maximize the potential of cloud. And we talked about confidence and we talked about all the enablement that we provide the partnership helps us get to the reach at scale. We are talking about customers from different industry verticals having different set of problems and how do we solve that together so that like the reinvestment that happens in fact healthcare customers that we repeatedly talk to even in the current market conditions they don't want to save, they want to optimize and re-spend their savings using more cloud. So that's the partnership that is mutually enriching. Absolutely. Yeah, to me this is easy. I think the reason why a lot of us are here at AWS especially in the startup world is that our business interests are completely aligned. So I run a pretty significant business unit in a startup name but a good part of my job and my team's job is to go help cut costs. So tell me, show me a revenue, show me a revenue-responsibly position where a part of your job is to go cut costs. It's so unique and we're not a non-profit, we just have a very good long-term view which is if we help companies reduce costs and conserve capital and really make sure that that capital is being used the right way then their long-term viability comes into play and that's where we have a chance to win more of that business over time. And so because those business interests are very congruent and we come in and we earn so much trust in the process that I think that that's why I think we being AWS are uniquely successful startups. Our business interests are completely aligned and there's a lot of trust for that. It's a great success story, it really is. And thank you for sharing your little slice of that and growing slice of that too from all appearances. Thank you both. Thank you, John. Thank you very much, John. This is part of the AWS startup showcase and I'm John Walls. You're watching theCUBE here at AWS ReInvent22 and theCUBE of course, the leader in high-tech coverage.


Today I'm at PDAC Toronto, 2024, and I'm going to be speaking with Pat Ryan, the President of UCOR. So, over to you, Pat. Tell us, what is UCOR doing right now with regard to its rare earth permanent magnet total supply chain? Because I know that you're developing various aspects of the chain, and you've had some successes in various parts of telescope. Yeah, a great question. I think as people know, we're focused on that mid-market where separation is key. And we're using our RapidSX technology, which is a column-based technology that deploys the solvent extraction as used in mixer settlers. It deploys it that much more effectively. So you get through three ports that are three to ten times better than we're measuring. But our commercial demo plant in Kingston, about two hours from here, we've been running different materials through. We've been testing and tweaking the commercial demonstration system. As we engineer the full-scale system, and as you know, permanent magnets, they work with your NDPR and your Disprosium and your Turbium. The one critical thing that we're really focused on, Jack, is that heavy rare earth element. There are a lot of players evolving in the West that are making NDPR, getting close to making NDPR. It needs to feed downstream into the supply chain. That's obvious. But the heavy rare earth is still missing. We had a news release this morning where Disprosium is at 99% plus using our Rapid SX technology, and we are producing kilograms of it. Within the next three, four weeks, we'll have a lot more Disprosium to actually then distribute to customers that are looking to use it to make those permanent magnets. And as you know, the permanent magnets, they really only work because the heavy rare earth allows it to operate at a very high temperature, such as an electric vehicle. Where are you getting the feedstock for these heavy rare earths? Well, the feedstock is coming from the Asian market, not China. And we've run some Xenotime. We've run some Bacnazite, and this happens to be an eye on a clay, and it does come from the Far East, but not from China. So you can kind of guess where that might be, but I'm not going to come right out of my comfort zone. And how much Disprosium oxide have you produced, or whatever compound of Disprosium? Tell me. So we just started separating today. You'll see in the news release that we're running our raffinate through, we're running our strip liquors through, putting them in 5,000-gallon tanks. So there's many gallons of this material containing Disprosium. And by the time we're done processing it out, we'll have kilograms of Disprosium to be used for our customers. To be honest with you, the first time I bought Disprosium was 1962. And it was in grams, and it was made by the biggest iron exchange columns I ever saw in my life, with feedstock from Africa. So since then, I don't know that anybody's really been producing it in North America. I suspect if you're talking kilograms, that's commercial. And I think you'll be the first commercial producer of Disprosium materials in the United States at that level ever. Well, this is a commercial demo. And as you know, the engineering is being done for a full-scale. And our full-scale plant will run heavies in a much bigger quantity. In fact, we're targeting some of the order of 900 tons out of that first Louisiana plant, so 900 tons of heavy rare earth. And yeah, feedstock is always an issue. You've got to find it. You've got to strike up your deal. We're not in a buy-suller range with a feedstock company. We're looking to joint venture appropriately. I think that's what the West needs to do. If you try to take each note of that supply chain and get your economics to work very soundly, it can be a challenge. Now, our rapid SX technology is really robust. The Cap-X is barren on. The Op-X is really great. It's where we need it to be. But we're not going to be a standalone tollinghouse. So therefore, we're reaching upstream to the feedstock companies and say, let's work together and have a value proposition together to move forward. So yeah, significant quantities of heavier earth that we can then supply to makers. When do you hope to have your Louisiana plant in operation? In 2025. The engineering is going on right now. We have Orbital Engineering who are out of Pittsburgh. They have an office in Baton Rouge. They're working on the engineering and the scale up of our rapid SX tech into a building that we have in Alexandria and Metchem out of New England. They build chemical plants around the world and Metchem is involved with us, as well as Kingston Process Metallurgy, who are a very valuable partner that we have currently in Kingston. And they're all of these people are working together to take a copy and paste. What we're doing in Kingston, we've got what we call a rapid SX machine. We're going to build seven of those in Louisiana to get to 2,000 tonne per annum, X-serium, X-itrum. Then we'll build another seven and then we'll build another seven. So eventually we'll have 7,500 tons total. What's interesting to me is that while everybody else is talking about it, you're actually doing it. That's a big difference. And what's intriguing to me is that certain entities of the US government have thrown money, excuse me, invested in various internationally known, large, non-Chinese rare earth producers who aren't even, haven't even broken ground on a plant to process heavy rare earths. And in fact, they won't tell us where they would plan to get them. So the only plant I see producing heavy rare earths in the United States any time soon would be Eupor. Yeah, I know the other entities you're speaking of, of course. And when you're building out a plant, you've really got to be robust on your commercial workup. You've got to be really robust on your engineering that you're not putting a couple of Bunsen burners and some shake flasks on a table and trying to make something happen. The plant we have in Kingston is the size of about two tennis courts. We've invested an excess of $10 million in the last couple of years to get that thing fine-tuned.  But in that separating, there are 600 sensors, there are pumps, there are PLCs, pH controls and whatnot. And on the back end, you have people taking it out. So that whole machine in the middle, which is a column-based tech, doesn't have people in there with mixer-settler tanks and watching every part of the system. It's all really controlled, so when I say machine learning, it means that as the Rapid SX technology, as the machine continues to process, it's gathering lots of data over and over and over and over and fine-tuning and fine-tuning and fine-tuning, such that we can put multiple feedstocks into the plant. This really tells you more about you than anything else. Kat, how long have you been a manufacturing executive? I've been a manufacturing executive in the automotive industry for, dare say, 30 years. I was a very young mechanical engineer when I started at Tier 1 Automotive Company and I do understand the intricacies of building manufacturing plants and building product to spec. I'm always a little surprised, if you will, by people that talk about, we're going to make this concentrate and the automotive company's going to buy it and it's like, that's actually not what's going to happen. And even if you think they're going to buy it, they're not going to buy it like that. And you know things like PPAP and all the requirements to get something in a supply chain that actually then meets the different tiers of supply so that they know what a magnet gets made that goes into an electric motor that that magnet is in fact on spec where it needs to be all the time, every time. You know, you couldn't be more right. I always tell people, it doesn't really matter if you're supplying salami or motor parts. There are specifications, there are procedures, there are rules and the most important things you have to deliver on time to spec, the agreed price and the quantity, okay? And this is the issue.  You've been a supplier for what, decades of large amounts of material. Yeah, you know, one other theme that I heard you speak about recently, Jack, which I think is really true to the automotive industry. It happened when the, remember when the door blew off that the Alaskan jetliner plane? And I thought, oh wow, is Boeing ever in trouble? And the CEO stood in front of a group of reporters and he spoke about what they were going to do to fix that issue. And the one thing that hit me was that he said, we're going to fix this really quick because we own our entire supply chain. And I went, oh my God, that's what the automotive companies used to do. They used to own their entire supply chain. And now we've got these little fragmented pieces starting to come together, but it will have to go back to owning your supply chain. I think that's right. I saw an announcement about a week and a half ago that Ford and GM were going to do something together on EV components. Okay, no, that's talk, but it's a start. And as you remember all the car companies made all of their parts 30 years ago. Then they decided just in time was better and they could also hit the suppliers for lower prices, get rid of UAW, all these good things.  And now the wheel is turned and they're getting bitten, you know where. Absolutely. Okay, and the only thing difference now is that the components are more complicated than they used to be. And you don't just take a blueprint and build a factory. You're gonna have to have people, you're gonna have to have a time where you learn how to do these things. Correct. And we're talking years and billions of dollars and I don't know how they're gonna do that. So. Well it is what has to be done. Yes, absolutely. It is what has to be done. So my guess would be that someday you'll probably sell you for a lot of money to Ford, GM, or Saletas. Possibly, you know, we're trying to build that vertical integration, not just be one node. And I really believe it's ultra important to joint venture with your partner in the supply chain because you've got to have that shared profitability. And I think make the Australians call it the pain gain model.  And your value proposition together is that much more effective as well.  Just like Boeing owns their supply chain and the North American manufacturers need to catch up. You know, the key thing in the Boeing announcement was that they're buying back the fuselage maker that made that unit, okay? They sold it off for just in time and all that. And now they're taking it back. And I think you're right, in the long term, they'll go back to model A instead of B, okay? And listen, thank you. This is way too much here. The viewers are going to have to think about this because Pat actually knows what he's talking about which is very rare in this business. Thank you, Pat. Thank you, Jack.


Goal 13 are the sustainable development goals, climate action, how climate change affects biodiversity. As the Earth's conditions have changed, ecosystems and species either adapted or died off. Most species haven't had time to adapt to climate change. Increasing temperatures in damp, natural disasters growing in frequency are prime examples of how climate change is disrupting the natural balance. Humans are directly armed because of climate change's negative effect on biodiversity. This includes loss of water sources in damp, a higher rate of difficulty when obtaining certain medicines due to the continued damage to the plants they are made from. The Millennium Ecosystem Assessment, which studies human impact on the environment, states that climate change is likely to become one of the most significant drivers of biodiversity lost by the end of the century. Just like us, plants in damp, animals need the world to be hospitable. If we can do our part to help them, they can help us too. Restoring habitats can remove carbon dioxide from the atmosphere. This will help reduce climate change by removing all the excess carbon stored in the atmosphere. Also, conserving intact ecosystems, such as mangroves, can help reduce the disaster's impacts of climate change such as flooding in damp, storm surges. We can also do our part to fight climate change by burning less fossil fuels by driving less in damp, lowering our intake of processed food. Humans, plants, and damp, animals all must share this world. By working together, we can make sure it will be a safe place to live for generations to come.