Okay then I started with this slide because I want to say thank you to Maria Laura. This is a seminar part of the Alumi Network as you can see there is presence from people from all over the world and yeah thank you Maria Laura for keeping up this important work for the Institute and for everyone. I think all of us as Alumi that studied the HR are very interested in keeping always up to date with different things. Just one fast question I just want to confirm that you are seeing my slides. Now what I have prepared for today is precisely this discussion about what is artificial intelligence, how artificial intelligence is making a change in water resources and I'm seeing from the perspective of hydrophromatics and hydrophromatics at IHE has been bringing this together in different ways. I have to acknowledge a lot of this work. Professor Dmitri Selomatin have been here for already for some years at IHE and he have been always pushing new technologies, implementing new areas, always something that can be applied and can be new. It's started, it's implemented, it's tested and therefore what you're going to see here goes like in that framework of ideas that have been developed at IHE. So where to start in all these things? This presentation is artificial intelligence and it could be interpreted as complex as if you go to the Stanford Encyclopedia of Philosophy Online. You will see that is the field devoted to building artificial animals or at least artificial creatures that in the suitable context appear to be like an animal. And for many artificial persons at least artificial creatures that is suitable context. So as you can see it's very very cumbersome definitions that well we really don't know how to understand that. But if you go into a simple not also technical description or maybe a proved one Wikipedia is mainly used for this type of finding information and descriptions and Wikipedia says that is intelligence demonstrated by machines then now it's more up to something that we can understand that machine that is an intelligence and unlike the natural intelligence displayed by animals and humans this is this is different is leading artificial intelligence nowadays talk about intelligent agents. And these agents are devices that receive its environment and take actions that maximize its chance of successfully achieving its goals. And this is this can be if you look at that sentence it can be just a simple sensor on the wall where you just pass and the light turns on you pass and the doors open you enter into a room and the temperature regulates you enter to a room and the light regulates according to the day such that you have a friendly environment. So these many small things can be interpreted as AI type of things and and this goes even with the concept of some people in electronics called Domotic that make intelligent houses. You clap your hands and the lights turn on or you say a voice and talk to some device and device opens the door close the doors and alarms and so on that's called intelligent houses. So indeed this definition is kind of another part of the definition it says the colloquial term artificial intelligence is often used to describe machines or computers that mimic cognitive functions that human associate with human mind and that's another point of view that in the same context computers are these machines right kind of develop analyze and provide some some responses in the context of what you are telling them. So artificial intelligence so far yeah it's kind of having some sort of machine that helps to respond in a certain way understanding what is around okay. Now where this this came from we can say that the computers came in from the first talks and the mind paper of 1950 from Alan Turing he argues the question kind of machine thing and six years after this question came from Alan Turing in this paper the concept of the term in Dormand conference in 1956 artificial intelligence born that was the first time many researchers start to talk about artificial intelligence. So from that perspective we have computers where it started the concept then programming on top of the computers then came internet was a change in paradigm and it started to still have a lot of things ongoing and the last part is artificial intelligence on top of all these things. So what I'm going to present in this following 20-25 minutes will cover the development and at the end I will show four examples of artificial intelligence now from the most modern concept point of view but I will show you different paradigms that have been growing and you are still probably people working with the results are working with some of these paradigms in day-to-day life. So the first thing was the computer the device and that device the computer every computer has some memory and you will see about the RAM memory when you're buying a laptop the memory long-term that your hard drive and you want to move it from one side to the other to your USB. You have every computer have a central processing unit so it will process all your information and every computer have a ALU which have Arimetic Logic Unit which will process the mathematical component of that and then you have peripherals that are the ones that allow you to interact with the machine. So kind of the computer already is kind of mimicking this concept of what is needed to be able to understand some artificial way to reproduce things. After we got the computer then we started to program on top of it so solve many tasks how can we make computer do more and more and more things and this was a boom from all type of areas of science then the main goal on this as you see here in the second part is automate or program activities. How can I reproduce a very complex problem that I solve in one place create a program and use it to solve another and another and another. The main principles of this automation in programming is has only two components the first one is just half a logical decision if you have some condition then do something that's the basic principle of programming and the second basic principle of solving is our loops so how can I do something many times iterated so for a condition do something until something happened. So you have these two components that allow you to do almost everything in program and that's I would say is the main let's say challenge to how to use these two components to build and build and build and build much more complex automation with a computer but that was the beginning and the beginning growth into programming whatever sources and this was I would say hydra informatics that programming and that idea of being able to use these tools who came with the numerical methods to solve for physical equations and we had in those days hydra informatics Michael Abbott IHE Delft in the Netherlands they started to think about how can we build models that can represent fluid dynamics from the basic equations so they started to move from what was before a conceptual model a model physical model into much more complex representations where we solve the fluid equations we can evaluate cross sections in a river see where they are going to inundated we can build hydrological models that flow that can show the flow that will happen in certain moment inundation areas water depth and so on so that's kind of an example on this part of programming but it didn't stop there and that when you finish that that concept on on programming you move into internet and the cloud and how internet and the cloud started well you had these machines we had these models you you just saw them in water resources at least these examples in water resources is how they can communicate how can one office that has one information in one place and another has another how the computers can communicate and then it moved we need to communicate faster so they started to create the networks and computers but then we need to share information and then the networks start to grow and grow capacity distance and so on and reach a level where the communication and information was not constrained was open so everyone could move and start to add the information and this ended in the new social world of digital citizens everyone has its profile everyone has its place where they are sharing what they are happening there are different types of of spaces where you can contribute and you can say what you what you're thinking what you're doing so that that created a kind of unexpected space in this technological development but as well there was a competition in one side from all the internet if you have a large technology that covers all the world you have a lot of information I want to search along it how to solve this problem of searching through hundreds of thousands of of data and that was the different internet searchers we used to be digital Alta Vista there was Yahoo there was a MSN hotmail still there are many many search engines but Google took the lead it seems that it was able to respond to what the people wanted if you want to know about something then the most accurate one was Google and then they say he became company became rich would be largest in the world in that moment only because of the search engine but to complete the story of what these have providers it end up in now this search engine became like a kind of a game a kind of a artificial intelligent space where you can nowadays ask what's the weather in any country in Latin America what is the currency conversion right now what is happening in Australia so you right now you can even say how can I cook something what where can I find a place to replace my things so as you can see this starts to become a kind of intelligent responses to everything that you want and it's only based on searching through databases only looking what is there is nothing really intelligent behind but it's answering all the questions that you have that paradigm and what the resources end up in what we have right now on what the related data information about the weather sensors in real time that we can have right now the devices information about extreme events this is also an important thing because in the past something could be happening in Africa in America in America or whatever and no one knew about it or it was not so well informed but now everything is connected so it would appear that now you you can understand what more what is happening worldwide before was not possible and the concept of remote modeling what resources this was something very interesting in the year 2002 they started a program called hydro Europe and this I mentioned this because it's the concept where I started to see for first time remote modeling how can people access models complex systems through internet and hydro Europe in 2003 in fact this is my batch on the master of science in IHE I am there somewhere with some glasses and also professor Joana Popescu which was the leader on this program through Europe and there were four or five countries and what they wanted to do with this program is that we all in different countries were accessing the same model but each one working in some characteristics and problem and we had to build a project out of all these very complex information system and at the end we went all into France and East and we met the people we met the we went along the the the region understand the things that were happening but before that we were three months working online with remote systems so this was an interesting change in paradigm everyone started to think about how to do models and to be able to share them now reaching the the the area of more advanced things in water resources we can say that this end up in now we have more information there is a boom of how to deal with extreme events you you can see that due to the fact that the news about events are happening everywhere we we are not more aware so now we we want to deal with extremes we want to see how the other people are dealing with the streams we we want to be more informed and knowledgeable in the rest of risk how much risk right now I'm having right now we are more prone for experience like which type of models are they using what type of infrastructure have they implemented what sustainable development interventions can I do all this information is there now the last thing that you can see in this boom of the internet is that now you have social media in water if some expert in water wants to find a job that's water jobs if there are there are many many groups about risk risking extremes in floods in droughts in water management diplomacy and so on there are government awareness organizations social media even Facebook for for for cities for regions for awareness of an extreme events and so on but this is very interesting that it came into that but now that I move the last day I think I counted myself 10 minutes to reach here I don't know if I took 10 or less or more but this is artificial intelligence now and what you are seeing in these slides is the the concept on on on different specialized websites about how the artificial intelligence developed which basically is what I I said this last five ten minutes it's okay the concept that started but it was a little bit vague everyone was thinking about what can be and what is and there was always fairs of what can be reached then 1980s and 2010 there was machine learning moving and starting and from 2010 there was a shift in paradigm again on a competition an international competition on on any major pattern recognitions where an algorithm that used deep learning made a breakthrough it managed to improve the performance of the of the of the classifier to identify things with with an impressive accuracy and relatively very fast and the nowadays yeah you any one of you can install in five minutes this network of 23 layers and you can identify many objects there is a test where you put the camera and you put your cup your copycuff and it will tell you if that's a copycuff and it is really simple that's I encourage you to explore these type of things it's really simple and so on but okay what is the context of artificial intelligence and deep learning or machine learning I would say the machine learning in general it's more wider and that's why here I will talk of most of the things about machine learning it's the ability to learn without being explicitly programmed and that just that sentence makes a very important shift in paradigm so nowadays there are many people saying you don't need to learn how to program now you just put a machine learning that will program in between packets program the thing for you what's the meaning you have inputs and outputs and use in the past you had to learn what were all the process and you had to program all the processes to be able with one input obtain one output now not anymore now you start to think about oh hey I have this data from the input and I want to obtain these outputs every time that I have this combination I need to have this type of responses and then if you build a table that allow you to know what is happening in the action and what is the consequence you can build a neural network without having to program thousands of lines of code and that's that's one of the things that I want to show you here how it works so in this concept artificial intelligence is building from knowledge from mathematical equations it's a framework let's say now we are here talking in more detail on machine learning and it's built from different areas of science so terminology sometimes in different papers it starts to keep coming to be cumbersome so experts in finance talk about artificial intelligence and machine learning precisely in their own terms and they develop their own algorithms people that are working in image recognition another one people that are working in databases and big large databases talking in other contexts so that's why having all these areas of development requires some some time to be understood and know what is the best to do is not magic you cannot just select one thing and we'll solve the problem you need to really go a bit deep into it I don't know I somehow I lost the presentation I don't know if hello can you hear me yeah would you like me to bring your presentation back yes please sorry I somehow I press to change not this yep thank you yep do you see it now yes thank you okay now continue with the concept of machine learning and now I want to bring more more ideas and bring that's now down to earth so you understand what is machine learning and this will open a bit the scope for what you and Jose will present in a few minutes so what is machine learning so the machine learning is described that they use and development of computer systems that are able to follow in instructions okay and then here you have inputs and outputs on the on the right you have a real system and what you want to represent is that when something happened in the system you have some output that you are measuring you're observing and then you want your machine learning to learn from that experience and receive the same input know what is the output and he will produce an output and you need to differentiate the if the predicted output should be equal to your observed output and this is trying to learn is minimized the difference between both so how can you change the the parameters inside the machine learning data driven model to make the best prediction on on what would happen in real life and this this this slide is from the lecture from Dimitri Solomatin in IH in 2009 and where he most of this concept of machine learning has been explained as data driven models so you will find a lot of literature publications where machine learning has been described in this area of science as the data driven models whoops again somehow if I press a space it jumps here sorry Abraham I will try not to press a space okay now to to understand a bit more these systems and and how they became so so so how they work and why they start to become complex once in a while when you start to grow and grow the problem is this thing like a transition from one neuron what is one neuron in these concepts of machine learning and I'm giving the example of the one of the most well-known algorithms which is the MLP multilayer perceptron network so everyone that thinks about machine learning identifies it with neural networks although it's not like that there are many many types of networks and there are many type of algorithms that feel that are part of machine learning that are not neural networks but in this case I wanted to mention this at the core because well some of the things that is going to are going to present Jose and and some of you is are in this area of work so one neuron is simply like what you're seeing in the screen is like a kind of linear regression you have x1 x2 x3 multiplied by a weight 1 weight 2 weight 3 and if that combination of values of your input multiplied by a w w is any number that you need to fit such that your value of a will tell you that is one if it's one class and zero is if it's then the other class they call this activation so it activates and says for example it's above the threshold it's going to be a float is below the threshold then it's not a not a flood in normal machine learning or when you are looking in other areas of science it says oh that's a dog not a dog it's a cat not a cat you know it's it's black and white and this was more of the most simple way to see this activation functions the the next level is to see it in this two-dimensional so this regression in fact is aligned and what you are trying to find is this slope and the place where the line should go such that you classify all your points in according to what they are so you already know that the blue points on the right are one class and the crosses are another so you need to find the slope of this red line that's that slow is this double you and the bias parameter of course to displace it and if you find that that exactly divide both then you have a classified everything above the line is across below the line is a dot that's the first concept of one new which is this one but what if you combine that with another with another with another with another and with another and finally with another and you have what is called a multilayer so each one of these rows for these columns of of sorry it's one of these rows is one one layer and that's what they call this multilayer and this is this was one of the the beginnings of neural networks and they say that this is a universal approximator the challenge here is that you have so many nodes and every one of these lines that you see there is a weight and to be able to learn and that the learning is identifying those weights they will how can I find the weights that will perform the task of classifying or being able to let me know that certain combination of inputs will have some result and as you can see that's that's that's the challenge learning and learning is an optimization problem how can optimize the weights such that they will produce what I want so where these machine learnings are applied so you will find the experts in finance time series that works with things like this or even in voice recognition but in water resources we use it to to forecast or to simulate a railroad runoff options pattern recognition you can find it like this in other areas of science in water resources we try to look at remote sensing images to try to identify patterns of floods or patterns of crops or whatever in other science a large colliding hydrant in physics in water resources we have big data in atmospheric science every second in every place and there every minute every hour every model simulated in a scenario of climate change you have big data there in text mining we have in in general in internet Google systems and so on in in water resources well we are just right now starting to understand how can we convert this qualitative data into quantitative data now again going deeper where where is this AI in water resources how can and you can find many applications nowadays that use machine learning for simulation of events from forecasting rain or discharge for early warning systems and even building surrogate models that replace a operational system so like real-time controlled situations where you want them to reproduce or represent something that you want to achieve certain performance so this is this first paradigm in water resources completes only time series and there is most of the time no spatial information the second one is the image classification remote sensing so there are many algorithms and you go to Google earth and gene and you will find classification programs in remote sensing images mainly about land use flood classification and so on so how can we learn that some pixel in a survey was identified as a certain type of crop or certain type of grass or whatever then you go into the image and you look at the place where you did the survey and then you make your remote sensing image to learn this this result in every pixel and then you say okay now if now that I know that that combination of bands in my remote sensing image give this this this value of colors that colors in fact is a class which is a land use then I will use it for the whole image and then you reproduce what is happening so mainly this this type of problems are a spatial or geo reference information as you see they do not work in time it's only one layer or it's a it's a spatial representation and you want to identify what is happening everywhere and if a new image comes you also would like to try to explore the same use of things but it's not explicitly in time the third area of application of artificial intelligence is in decision-making and I would say that the last 10 years there have been approach of using text mining and recently I would say in the last two or three years there are people working with natural language processing that has advanced quite a lot to take information from social qualitative information this information is highly abstract and dynamic is changing every day the news the people tweeting Instagram and so on so this all this information how can you take this information to obtain okay you look at this information and obtain something that is useful for either for your models or for taking a decision and number four of the ones that I know I'm aware of all these some of these applications is the spatial temporal models so let's say agent models cellular automata models pattern tracking so how spatial temporal information of dynamic yeah nature can can be seen and can be used for replicating what is happening in real life so let's see the context these are the four examples which are with this four examples I will finish my presentation I hope not taking too much time because we started late and the first one is flow forecasting I mentioned it before if someone wants to make a full flow forecasting with physics you could go with a very complex physical based model most of the time flow forecasting systems work with conceptual simplified representations even with the statistical and this is one conceptual model and although it's one of the simplest models have many many parameters what has been with applications of neural networks is to try to say okay what are the inputs and outputs of that situation so or either you go to the conceptual model and you program every equation and say if this is happening then do this and if there is a saturation of the flow then do that and if there is a level of the groundwater then put some percolation and change it and put some runoff and so on so you can put all these type of complex equations or two say okay let's build a machine learning model in this case a neural network model what are the the previous time steps which are in fact the inputs of the normal conceptual model what is the PT precipitation in time minus one minus two minus three so what's the lag precipitation what is your lag discharge and then what is the the the output of that what is the discharge at the next time step or what is the discharge at the following forecast horizon and this is how the network learns learns the the real system and then when you use the real an operation it will reproduce this limitations is that it is fixed time step so whatever you give him is what he's learning he and most of the time you read only the the measurements from your device that makes it well there is no no knowledge representation and is fixed on on your delta T in a conceptual model or a physical based model you are representing the physics so you can play with time in in this type of models not a second example is the optimal reservoir operation and this is a Dominican Republic the the MSc research of Carlos Tommy from Escuela Colombian engineering he just finished in fact this week and was very interesting okay so that's why I am bringing here this is in the river tuna and that was a war at the which is one of the most important in this river basin and it has a there have been many many floods in this region the reservoir is meant for producing energy it also helps on on the irrigation district and also has been discussed oh sorry again space I cannot hear you somehow is mute about now yes now I can hear you yes okay I just wanted to ask you to please start pointing up they are running a bit behind yeah it's only two slides more yeah okay thank you that's sorry for I was thinking in this 30 minutes but yes thank you okay so this is the case study of the tuna river and let's imagine that in fact this is not good but okay let's go backwards let's imagine that you want that we have the last 12 years of of of operation of this reservoir and there have been many floods and there have been many situations where there was not enough water for the for the crops in the region and it was in fact operated trying to to satisfy everyone but mainly energy production and that if we look in detail why we don't try to learn from what they have and this is a relatively recent concept you learn on on the past you built a model that represents what is happening but after you learn that model then you say okay now I have a representation and I want to in the future to solve the the challenges of the of the system I need an optimal energy production and I need a reduction in the terms of flood situation and I need enough water for microbes so here we build a neural network model where the three objectives this was first was built to reproduce what was there happening to reproduce what you can see in the blue line the rainfall is on the upper part that's an average frame of the of the system and the lower line is the green that is the energy production and the artificial intelligence there were many many models built and finally we got one that managed to reduce the the floods and you see the blue and the red line on the on the middle graph and all the events yeah maybe 80 percent of the events were were really solved by making an intelligent machine learning to take the decisions and this this was built on past experience and then optimizing what will be the maximum reduction that you can have in flood with the maximum production of energy with the maximum satisfaction of of agricultural irrigation okay and then this is third example as I said it's only four examples of how I'm almost going to finish sorry just mentioned the PD studies of vitality as he's the one that working in these special droughts it's a case study in eastern India this region is very famous for the production of rice and there is a situation where if you have a drought in this region well you will impact in your crop yield but the region is so big that to be able to make a survey and to analyze the impact it will take you like two three months to be able to to understand how much was the impact so we look at past situations and how how much the crop yield was impacted and we made it learn and by looking at the spatial temporal variations of the of the droughts there is an animation here that I see it's not working okay what is supposed to happen is that these areas starts to change by learning the changes in the areas we could determine how much drought how much crop yield will be affected now the this work was extended and what you can see here is the whole India and what we are finding the variations in the space and time of each one of the events along a certain number of years and this was 15 years and then we look at how the the patterns and we made a tracking of all the large events in the lower part that you can see the vectors that show how are the the droughts appearing and by doing this you can identify when a drought is going to happen how it's going to happen what is the synchronicity of the drought so this is very very interesting and this is all looking at the pattern tracking emotions and the last one is the example from the news social media this is also very very new it was in a competition of artificial intelligence in Colombia with 22 universities and the the concept is how to to bring the qualitative information from the network and what was proposed by Santiago Duarte the student from Colombia was to create a system that was scrapping we navigated through the internet started to extract information from all the newspapers more than 4090 news articles and after extracting he passes processes with a natural processing language extracting intelligently the the information such that you can have an index that will tell you that is good or bad and he created this app that you can see in the address HTTP Santiago Duarte 09 users earthengine.app and what is going to show you something like this this is one of the six apps that you will see there and what it will show you is the feelings of the people and how this has an index of the help of the rivers how how they are feeling that the river is in a bad condition a good condition since this analysis is done historically it was mapped with decisions made by people in the regions and we were able to see what wrong decisions led to decay in the information that was from the news from the people and from the social media as well when there was success in a decision we also felt the feeling of the of the of the people around the system and that's it that's my presentation so that's so what you think will be the next AI application in water resources what it is just to spark ideas and I hope the ones of Theo and Jose can complement and they for sure will go deeper in many things


A federal competition and consumer protection FCCPC Tribunal sitting in Abu Dhabi has directed multi-choice Nigeria limited operators of DSCV and GOATV to maintain the status quo of its March 30th order pending the hearing and determination of the substantive matter. The three-member tribunal headed by Thomas Okosun gave the order following an oral application for adjournment moved by counsel for the firm Jamiu Aguru to enable him respond to the counter affidavit and written address including the content charge filed against his client. The Clements Festus, a new fighter illegal practitioner and coalition of Nigeria consumers on behalf of himself and others had sued the company and federal competition and consumer protection commission, SECPC as first and second respondents.


Today I have the pleasure of speaking with Frederick Kozak from Appia, Rare Earths and Uranium. How are you today Frederick? Very well. Thank you, Tracy. Great to see you again. Well, allow me to start by congratulating you. Your most recent results, I think, are definitely an understatement. Would you not agree? Yes, I would. It's really quite remarkable what we are learning at Alsace Lake and it just gets better and better. All right. Well, we started with assay results and discovery of a significant new mineralized zone at Alsace Lake. So what is that significant zone and what does it mean? So at Alsace Lake, Tracy, we've got some very high-grade Rare Earths on surface in the WRCB area. And so we did quite a bit of drilling last year. We drilled 55 holes, 5,000 roughly meters out of the 8,000 meters we drilled in total on the claims block. And to our surprise, pleasant surprise, we have found another zone of Rare Earths. And we're calling it the AMP zone. And our news release, unfortunately, was quite technical, relatively speaking. But it is a zone of lower-grade Rare Earths. But the good news is we've penetrated it with every single drill hole that we put into the WRCB area. And more importantly, it is known thickness of 10 meters or more everywhere underlying what we have drilled at WRCB. So it is really something quite significant. And more news to come because we're drilling right now at Alsace Lake. We've been drilling there since mid-March. And we're drilling on another project that's a kilometer and a half away that looks like something similar to this AMP zone, but much, much thicker. Well, stay tuned on that. We've got assays to come. So, Frederick, I think if I hear you correctly, the last news release I was going to ask you that question was indeed quite technical. You found a second zone of Rare Earths. But if I also understand correctly, they're still very near the surface. Is that correct? This new zone, the AMP zone, starts at surface and is visible on a relatively constant dipping plane under the surface. And yeah, it's not something that we were expecting to find. But the assay results have shown us we've got something very interesting here. And so, for those of you out there in the race to Rare Earths production, actually, I think someone mentioned to me that the new theme should be sprint to Rare Earths production. How is Appia doing presently? Well, we are in the middle of our largest ever drilling program at Alsace. Like we've talked about being able to drill 12,000 to 20,000 meters this year. We started drilling in March, as I mentioned, and we're going to have an update on our drilling progress, hopefully in the next week or so. And that will really give investors a good idea of how we have been progressing. We're very pleased with what we're finding. Just to recap, I mean, the Alsace Lake claims block has 27 square kilometers of high-grade Rare Earths mineralization on surface. So there is something very important and very large going on here. And we've been working there since 2017 drilling started in 2018. We're on the verge of finding, well, we are finding things that are going to be very valuable in the, as you said, the sprint to Rare Earths and Rare Earths metals in the Western world. And of course, in addition to that, you know, we're actually working on panels for PDAC. You're going to be at PDAC, right, Frederick? Absolutely, yep. And at PDAC, I was working on some panels for the Investor Intel Media booth. And I'm like, Rare Earths, because we'd love to talk about Rare Earths, of course, at Investor Intel. But we also love Uranium and you have five mineralized projects, right? Yeah, we've got four in Saskatchewan, all mining block claims that APIA has held for a period of time. One of them we relinquished and then added back last year. And don't forget the historic Elliott Lake Camp Uranium project that APIA is also holding that was, oh gee, Elliott Lake has seen, the area has seen 300 million pounds of U308 produced historically. So that's also part of the Uranium portfolio at APIA. So you're almost too good. You've got too many good things. You've got Rare Earths that people are talking about. Jack Lipton often tells me you have the best monazite in North America or Rare Earths. We heard this from a few sources. And of course, you have Uranium projects as well. And we all know in a Uranium bull market. So what are you going to be touting at PDAC? Yeah, Tracy, we will be at PDAC. And if you'd like to have a meeting with myself or our CEO, Tom, drive us, we'd love to meet with you. Send me an email fcozacapiaru.com. And you can also see our email addresses in our news releases on apiaru.com. Well, Frederick, as always, it's a pleasure. Again, congratulations on your most recent assay results. I have to confess that it was Jack Lipton that talked me through them. And I think he actually used the term blockbuster. So congratulations. And thank you so much for an update on APIA, Rare Earths and Uranium. Thank you very much, Tracy. See you at PDAC.


The one-scale every 21st century entrepreneurs must have. Just a century ago, in the days of John D. Rockefeller, Thomas Edison and Henry Ford, if you successfully created a product that the market liked, you're rich already. You're not just rich, you're rich for a long period. This lasting success was possible because the world changed very slowly. Today however, in our super-connected information-saturated world, if you launch your creative product today, this time next week, you can be sure that someone or tens of people are somewhere planning your downfall. They have known about your product from another continent and they are willing to create something superior and cheaper and in a few months, you can start experiencing unexpected market battles and if care is not taken, your business may join the rank of Nokia, Yahoo, MySpace and the likes. In this video, I'll be sharing with you an important scale every 21st century entrepreneur must have to actually succeed in the business world of this era. If you're new here, consider subscribing so you won't miss other interesting videos like this. Now, let's get into it. From my experience, the single most important skill you can have as a 21st century entrepreneur is what I call start-up scale and what I mean by that is this. When you're starting a new business, all hands are on the desk. You want to pay 100% attention to the market. You want to know who the major market players are, what their strengths are and what their weaknesses are.  You want to know the emerging threats and opportunities. You're willing to create product and test to see what the market thinks about them. You're just a babe and you know that you can only survive if you learn. However, if you're in the 20th century, after you succeed, you naturally become unshakable and you can relax. The power we've lost. The reason why big companies could relax and stop trying in the previous centuries are three. One, the high cost of production process. Even in the year 1920, you had an idea to produce a better car. How easy do you think it was to compete with Henry Ford? Yes, you could get some investors to back you. But how easy? Yes, you could start an automobile company. But how easy? Now think of our world today. Yahoo! Yahoo was the king of the internet in the last 15 years. Yahoo was so valuable that Microsoft wanted to acquire them for over $44 billion. Today, where is Yahoo? And how did they die? Yahoo was killed by LittleGoogle, a company that was a babe when Yahoo was the king of the internet. Nokia was the first mobile company to sell a billion phones. Long before Apple was anything in the phone market, Nokia has been reigning. Today, where is Nokia? Facebook killed Myspace and we are waiting for who may kill Google. But why is this happening so fast? Well, David's are killing Goliaths so fast today because it's far cheaper to start a company now than ever before. As you watched this video, a guy from Silicon Valley may be working on a super technology that will allow us to browse the web without the internet. Even if that guy is broke, he has the internet to connect and share his vision with investors all over the world. He could raise a billion dollars next week and if the market really prefers his invention to Google or YouTube, it doesn't matter how much money Google has, that guy would win. Such a thing can hardly happen in the past. 2. The difficulty involved in entering a market As explained earlier, because of the cost of running businesses and the little connectivity among people, it was hard in the past to compete against the giants. Another point I should add here is the fact that you have to go through several regulations from one country to another, from one state in a country to another. The already successful companies of the 20th century had gone through all these and they even had the money and influence to block your way so that you won't get through some government approval. That is almost not happening today. Through the internet, I sell my company's products and services to different countries and continent. I don't have any boundary retractions and by that I can compete, even with the giants.  3. An imaginable competitive advantage the giants had If you are the Rockefeller in the 20th century, you didn't only have money, you had political influence. Rockefeller will go after stubborn competitors, sell his products at half the price, force the competitors to sell at loss and get out of the market. Today, only a few companies can do that. What you should do today How they have shown you the reasons why big companies in the past could become semi-gods? What should you do if you are an entrepreneur in the 21st century? Very simple, always behave like a startup. Jeff Bezos said, at Amazon, we act like we are startups. If they don't, they will become history very, very soon. These are some specific things you have to do. 3. Thousands of years ago, a philosopher complained about the new generation of people. He thought that they were lazy and didn't keep the custom. Well, that's the same way we feel today. It's natural for people to resent the generation above and below them. If you want to go far, you have to rise above such needless sentiments. You have to be able to work with people who are older than you, but most importantly, you must have a significant percentage of the next generation in your team. Why is this important? Well, whether you like it or not, younger people hold the key to the next revolution. They know better where the world is going than you can ever catch up with. They naturally understand and use the new technologies and products because they are far more adventurous than the older generations. The older you get, the less adventurous you are, so you will miss out on the new trends and technologies. Having young people in your team will keep you updated and you'll be able to see where the world is going and how you can take advantage of the new trends. 2. Study History No, you don't have to go to Harvard for a degree on history. You just have to read books and online resources about the past as related to your industry and the world at large. Why is this important? Well, as an entrepreneur, we have to live in the future and to live in the future, we have to know the past because the best way to know tomorrow is by studying yesterday. Read some history related to your industry and the world. Watch some documentaries, know the past so that you can take advantage of the future. 3. Don't joke with an emerging threat Every now and then, a new startup shows up as Google showed up to Yahoo! Google guys were willing to sell Google for a million dollars but Yahoo wouldn't buy. Not buying isn't the biggest mistake of Yahoo. Taking Google for granted was their costly mistake. Pay attention to the deviates in your industry.  The goliath and some of them may succeed if you let them. If you pay close attention to the deviates and take them serious, you can always outsmart them. 4. Keep it hard with yourself The best way to remain in the business in the 21st century is to compete with yourself and kill some of your products, process and strategies before someone from the outside will kill your business. Let you be your biggest critic and you will win for a long time. 5. Be willing to step aside Old dogs cannot play a new trick If you find it hard to catch up with the trends and technologies of the new world, stay back and let a younger person ride the vehicle of your business. In all, we as entrepreneurs have to understand that it's not business as usual. The world has changed and that has given the deviates more power than ever.  The only way to stop deviates is for you to remain deviated yourself. Let your start-up spirit remain with you and you will win for a long time. Thank you for watching our videos. We'd like to give you another interesting video for you to enjoy next but before then, our team will be very happy if you can like this video and share it with your friends on social media. If you're new here, don't forget to subscribe so you won't miss other interesting videos like this. Look at your screen now to see two other videos we handpicked for you to enjoy next. We love you.


Most of what we do in life is unconscious. Whether you're the person that decides that, if you're not sure what to do in life, you're just gonna do what other people are doing.  But in this video, I thought I would share one thing that I think can maybe help you wake up from the matrix. What's up guys? Alex Hine, author of the weird book named Milk the Pigeon. It's not that weird, not that kinky. I think it's pretty helpful at helping you wake up, but you be the judge. Before we jump in to this matrix-busting video, check out the link below. It's for a free journaling worksheet. If you wanna wake up, start living the life you actually want. Download that and fill it out. So look you guys, I'm rebellious, but not in the way that you think. You know, when typically you think of a kid that's a teenager and they're rebellious, you think about them going over to the Mr. Jones's house and like egging them, right? Or stealing something from the local candy store. Or doing the old, what is it, Happy Gilmore?  That's what you think of as being rebellious, most of the time. But the way that I've always been since I was young is more intellectually rebellious. I'm more the person who will incite the rebellion or pay the kid 20 bucks to go poop in the bag and light it and put it on the old foggy's porch or on the corner, all right? So that's my version of rebellion. And the way that came to be was his understanding when I was young that like Mihaly Csikszentmihalyi said, the founder of this concept, Flow, he said that most of us, when we are unsure what to do in our lives, we do either one of two things. Most of us conform, i.e. we do what we see other people doing either consciously or not consciously, subconsciously, and the other group of people rebels. But very few people do what is in between. The conscious path, which is really thinking about what you actually want to do and being deliberate about how you want to live. Now, why is this so important? Because I think what we are talking about here, when the movie The Matrix came out and when Nio was offered that pill, that was really this idea of continue sleep walking through life or wake up.  Because being an unconscious automaton might be a more content life than actually waking up and seeing reality for how it really is. You know, there are all kinds of cliches about really intelligent people, the most intelligent people, being both the most antisocial and the most unhappy. You know, Nikola Tesla has this great quote that antisocial behavior is a trait of intelligence in a conformist society. That to be antisocial is actually quite a wise or quite an involved thing to do and to be. And obviously he was tooting his own horn. But the point being is that The Matrix is when we are sleep walking through life. The Matrix is when we don't know the game being played around us in life. Where we are deciding unconsciously, either through conformity or unconsciously through rebellion. When neither of those are maybe aligned with our goals or maybe one of those is aligned with our goals. In which case, that is what we should be doing. You know, if you want to be the doctor, conforming is a good thing. Because that's an existing job and maybe it has prestige in your country. Maybe it makes you money in your country.  You know, this is the conscious path. This is waking up from The Matrix. But I think the quintessential aspect of waking up from The Matrix is just one thing. Deciding deliberately how you wanna be and how you wanna react to something. This year with COVID has been the perfect case study of looking at how human psychology works. Because the people I know that were more on the anxious and hypochondrious side before COVID now became basket cases. So it only exacerbated, you know, if the thread, the tendency is towards overreaction, they just went off the deep end. And the friends that were like screw the government, it's all conspiracy, they went off the deep end. And the friends of mine that were pretty level headed and looking at the research made level headed decisions, made the best decision they thought was correct. And then they kept living that way. And so many of us though, lived this life of overreaction or underreaction rather than thinking, how do I really want to be? What kind of person do I wanna become? And therefore, what action should I be taking that are congruent with the kind of person I wanna become?  You know, you see these unconscious kind of reactions where you have in the male dating space, they talk about red pill, right? They talk about being woken up to this game around dating women, where they just wanna date the richest guy, the most fun guy, the woman most status and prestige. And sure, those underlying currents are there, just like most men wanna date the most physically beautiful girl. These are biological things that it's hard to fight. But the point being that, that is still an unconscious reaction because a lot of these men that are in this kind of community are often these kind of but hurt, for lack of a better word, but hurt men that are sore and they're whining. And rather than thinking, you know what, I'm going to channel my feelings of rejection by women into becoming the best version of myself. Rather than doing that, they often channel it into this deep kind of melancholy and this resentment and this apathy. Apathy would be a good thing actually. Resentment can even trigger shootings or violence towards women and other people. So this is still an unconscious path. And what I'm trying to encourage people here to do the most is to think about your life. Just think. Earl Nightingale, great personal development speaker, said most men would rather resort to crime than even think about their life because crime is easier than sitting down and coming up with a strategy to live a better life. So I think when people make these references to waking up from the matrix, what we really have to pay attention to is thinking, what kind of person do I actually want to become? Even if it's hard, even if it's easy, who do I actually want to become? And regardless of whether or not this is popular in my society at this moment in time, still doing it. And again, not worrying about if you are loved or hated. That is that monk's quality of equanimity, of being okay if they love you, you know, if you get notoriety for your work and what you do, great.  And if you are hated for some reason on the other side of that, because this exact moment in time or your society or your gender or your career is controversial somehow or culturally at odds, then you're at peace with that too. And that makes you a strong leader and that makes you an exceptional human being. So in terms of waking up from the matrix, my two cents is don't react to any one way but decide and then lead the field because that will make you someone who is breathing rare air. Now, Skillshare currently has an awesome deal going on through September. The first 1000 of my subscribers to click the link in the description will get a one month free trial of Skillshare so you guys can start exploring your creativity today. Now, for example, one of the courses that I actually joined was called DSLR Filmmaking for Beginners. And that really helped me understand more about how to produce more professional YouTube videos. The lighting, the aperture, the lens, and so on. So don't forget to check out the link right below this video for that special for you guys. Skillshare is a company I actually love and I actually use, so check it out. Again, don't forget, get the free download below on that journaling worksheet. If you wanna wake up from this BS and besides that, I'll catch you in these two related videos over here.


Let's discuss two major, very popular deadlifting variations today. The conventional deadlift, where my feet are a little bit closer while I'm picking a bar up off the ground.  So biggest differences. I need more pelvic control and mobility, mobility to deadlift with my feet a little bit closer together, okay? What's going on there? So I need more hip flexion, because the shape of my hip joint allows my knee to come up more when it's out here. You see how it's up a little bit higher? That wasn't just a parlor trick. I'm going to try to bring it in, and it's going to lower, okay? So that's just because of the shape of the hip joint, right? And if I think about this motion, that's kind of what this is. That's what a more conventional deadlift stance is. And so a lot of people are going to find it difficult to get into a conventional deadlift without compromising their back position. So for a lot of new people, when I'm teaching a hip hinge, a more sumo stance makes a lot of sense, right? If they want to learn how to deadlift from the ground up, a sumo stance is going to get them there quicker and more safely, just because it's more comfortable. I do like to train people in the conventional stance, and maybe what you do is you start with a sumo, and then you move to an RDL in a more conventional stance. That makes a lot of sense to me. Other things, I might just want to try my luck. Start in a conventional stance. I'm going to start from the top down generally, and I'm going to teach them how to load their hamstrings first, just like this. And then eventually I'm going to say, okay, now bend your knees and get down to the ground. Good. Just a slight bend, right? Not too much. Do this thing, which a lot of people will do, and then it just looks like a wet ragdoll trying to bend over. So the biggest thing is just the mobility, right? Mobility allows me here. Some people will have issues getting into a sumo stance, right? So if my hips are retroverted, I'm going to feel pretty good out here, and I might actually need to be out here. But if my hips are antiverted, I'm going to have a lot of motion this way, but I'm not going to be able to get my feet out very far. I'm definitely not going to be able to do something like this, right? So these people have a lot of motion this way, which is kind of like this way, and they don't have a lot of motion this way, which is kind of like this way, right? So you don't have to know if this person is antiverted or retroverted or the degrees of motion within their hip. What you do have to do is notice if they can get it, and if they can't get it, to give them something else, okay? So that's the big thing. If you're looking at yourself like, let's say you're 23 years old, and you want to learn how to power lift, and you looked up something online, maybe some 5x5 program, maybe you looked up some videos online that aren't mine, and you said, okay, a Sumo deadlift is going to make me stronger, so I'm going to do a Sumo deadlift. But you're someone with antiverted hips, and you find it really difficult to get out into this position. Don't force yourself there. You're not going to be stronger there. You're not going to keep training there, right?  None of us know what we're talking about, and we need to realize that, and realize that the hard way plenty of times, right? So that's the big differences between the conventional deadlift and the Sumo deadlift. Big things are hip mobility. Some people are stronger here, some people are stronger here. Sometimes you're stronger here just because you're not used to pulling that way. I think a lot of people do really well here in a Sumo deadlift, especially if you have some history of low back issues, you're probably going to do pretty well here. Your deadlift generally looks a lot prettier if you're doing it this way. But I will say, you know, I feel really comfortable in my hip here, but when I do Sumo deadlifts, I get the weirdest, weirdest knee pain. So I don't like Sumo deadlifting. I don't feel like I can really load my legs quite as much. And maybe that's because I'm just pretty flexible, right? And I need a little bit of extra stretch in all my muscles to get good leg drive from that. Just a little anecdote, my own little anecdote. Try to experiment again. Put your biases aside. Try not to use too much weight, right? Let's not let ego get ahead of us. Let's make sure we, you know, evaluate ourselves very objectively and find out what works for you.


Before you kick back and relax watching your favorite Christmas films, if you're in the mood to spice up your holiday eggnog with a real kick, for your viewing pleasure, we have rounded up 10 of the best, of the worst, Christmas themed horror films. The grossest, the nastiest, and the most hilarious. Are they good or bad? You decide. Even with the recognisable cast of actors and having WWE's Goldberg playing Santa, can't save this movie from slaying itself. The holiday chopping season runs late when an axe-toting maniac dressed as Santa makes a Christmasy visit to a flandering wife who murdered a husband. Well, it's got the Goonies mummy in it, so...   The name says it all. Aliens invade Earth over the Christmas holidays and it's up to Santa Claus and his elves to save the world. You know what? I think this is going to be the best Christmas yet. I am Santa Claus! A maniac with very little Christmas spirit is killing everyone in a Santa suit in London, but only Scotland Yard can stop it. Take a notorious serial killer, transform him into a mutant snowman, and let him wreak havoc on the town, oh, and throw in a bit of Shannon Elizabeth at her best. Any movie with Gary Busey is scary enough, but turning him into a gingerbread man, this is cinematic gold. Garnt milk.  I want to know the connection between the elves and the Nazis. The elf mates with a virgin on Christmas Eve to produce the master race, and it will eventually rule the world. They have magical powers, they can't be hurt or killed, they eat anything, they're a perfect soldier. A man in a study is your grandfather, and your father! I implanted my own daughter to produce an offspring that would be suitable to the elf. Directed and written by John A. Russo, creator of Night of the Living Dead, Santa Claus mixes soft-core porn, a deranged neighbour who dresses as Santa Claus, with cheap horror tricks. Definitely a Z-grade movie. In this horror sequel, the younger brother of the murder in the previous film takes up his siblings' unfinished business. This movie has the best, all-out killing spree that last seven minutes. It makes no sense, and it is beyond hilarious. So that's our picks for the top 10 Christmas horror movies. Hit us up in the comments below on what your favourite Christmas horror movie is. And for more videos, remember to subscribe to Movie Nerds on all social platforms.


Tezal Zhuhai Our Tezal Training Center in Zhuhai is a very good choice for your Tezal course if you plan on teaching English in China. The demand for English teachers is enormous and there are many thousands of vacancies throughout the country, both in the major cities and also in more rural areas. After completing your Tezal course in China, you will have a wide range for job opportunities, not only in China but also internationally. One of our three locations in China for a Tezal course, Zhuhai is quite a modern and debasiling city located within close proximity of Macao and Hong Kong. Zhuhai provides visitors with a genuine insight into life in modern China. The local populace are well known for their friendliness to visitors and most visitors find the city to their liking as it really is a lean, well-organized and beautiful city as well as a plethora of restaurants serving excellent cuisine at very inexpensive prices. Zhuhai offers something to cater to just about every taste, from excellent and inexpensive restaurants to a wide range of entertainment and leisure activities, including a modern selection of discos and bars for night owls, excellent shopping facilities and exciting amusement park and even water park. There is certainly plenty to keep you occupied in your free time. While being a modern city, Zhuhai can also boast a great deal of culture and history both within the city itself and in the surrounding areas. There are certainly lots of interesting places to visit. In Zhuhai itself, you can have a trip to see a local Chinese tea factory and get to know the hometown of Sun Yat Senator A train journey to the mid-tropolas of Shanghai or Beijing, where you will have the chance to see some of the wonders of the either worlds such as Forbidden City and the Great Wall. Nearby Hong Kong is a world-famous center of finance in the region and is also a very cosmopolitan city. Hong Kong offers you the opportunity to witness all the excitement of this busy and bustling city. Even closer to Zhuhai is Macau which is known as the gambling capital of Asia with its wide variety of casinos, exciting nightlife and many other entertainment facilities. Macau is just a short taxi ride and border crossing away. Zhuhai offers a fascinating blend of modern and ancient with a wealth of culture and tradition, a remarkably diverse and detractive landscape and exciting leisure and entertainment facilities. This combined with the huge number of tesal job opportunities throughout China and Asia makes Zhuhai an ideal location for your tesal course and a base from which to begin your experience in teaching English abroad.


All right, well, Dan, I think you have everything under control. So I can hop on at the end to ask questions or if you know how to ask questions yourself, that's fine too. Yep. OK, so this talk is talking about speeding up and securing container image builds using Builda. And really it's going to cover some sort of advanced features that most people don't know about and some really cool stuff that's been added to Builda over time. So quickly, hopefully most people see a Builda conference. They probably know what it is or at least hopefully know a little bit. But just to level set, I'll talk a little bit about what Builda is.  We have a coloring book out. And this is what the coloring book character looks like. The logo is a Boston Terrier. And of course, it's making fun of my accent in the way I say Builda, to build container images. But the real goal with Builda was to be a tool for co-utilities tool for building containers. When I mean that co-utilities is sort of a base, what I wanted is a easy way to build images, container images. Not always have to use something like a Docker file. But especially really if we look at what a container image is, it's just a tie ball with some, you know, it's a tied up directory in Linux. And then some JSON file that describes what's in the tie ball. And so what I want to do is just create a directory on disk, put some content in it, and then run a tool that would basically create a container image out of it. And that's really what Builda does. So to give you a little bit of syntax for Builda, you basically do a lot of the commands that you would normally see inside of a Docker file, but you can do them as a command line. So you can basically do Builda from Fedora. And what that will do is go out to Fedora, pull down the Fedora image off of a container registry to the host, store the content in the container storage and create what's called the Builda container. It's just basically an identifier and allocate some space and stuff for, but basically it's an identifier in the Builda database to tell you that you got a container. And what that container looks like is just an ID for, in this case, we just set it up to be Fedora working container. So it's based off the image name. If I pulled it again, I'd get dash one, dash two, dash three, it's pretty simple. And then the next step I want to do is I want to be able to mount the container. So I'm going to do a Builda mount of that container. And at that point, it hands me back a mount point. And I can go into that mount point and actually look at the contents inside of that directory. And that's basically the idea of what we're doing at Builda. And now the goal there is to put contents into that directory. And when I've given a longer version of this, I always talk about Docker copy. And Docker copy was a cool feature allows you to copy content from the host into a container image or copy content from a container image out to the host. And then I start to make fun of it. I built a similar tool for Builda called copy. And so just basically using standard copy, you can copy content from your host into a container image. But you can extend on to that. You can actually use DNF. You can yum install directly into the container. So yum has the ability to change the root directory when you want to install content. So you could actually use that or you could use make install to install content in the directory. So the real idea is that you can do stuff with bash and actually Builda has a concept of scratch. So you could build it from scratch, mount it up. And then also you have an empty directory and you just want to put your executable into that directory. And say it's a statically linked executable, package it up and you're done. It's really that simple to do stuff. Now there's other fields that we have in the Docker file that have to be set. And those are all done with the Builda config command. So things like the entry point, environmental variables, labels, basically all this, all the other special fields in a Docker file we handle. There is a Builda run command which allows you to run a container on top of the image. So similar again, it matches up with the run command inside of the Docker file. Finally, once you're happy with the way your image is started to look or your container images, you can actually commit it at that point to a standard image. And that image can be an OCI image or a standard Docker image. And then you can push it out to a container registry. And once it's out of the container registry, you can use any container engine to build a run and you can run it inside a Docker, inside a cryo podman. You can use it inside Builda again to pull it down and you can use our container D or any of the tools that support the OCI or the standard Docker image format. And usually when I give a presentation with a lot of people, I have them chant out at me anything that's in red. So at this point, you guys are all saying, Dan, wait, what about the Docker file? And Builda actually supports, fully supports Docker file and allows you to build using Docker file or the way we like to do is we have, you know, Builda Bud. And so it has full support for Docker file has, you know, everything you can do in a Docker file, you can run through Builda to be able to do. So anyways, then finally, I'd have people yell out to me to build, to have a scripting language, perhaps Builda file. And I say, yes, I developed a brand new one called Bash. The bottom line is here is that, you know, we wanted to build a low level tool that made it easier for people to embed the concept of, you know, building container images into additional tools.  And other things that have happened is to Builda libraries and, you know, we're not really building Builda as a library, but in Go world, you know, a lot of people vendor it into other code. And so the Builda capabilities are taken, this code has been taken and embedded into OpenShift for doing sourced images inside of, so anytime you're doing OpenShift 4 and doing container builds, they're actually using Builda inside of these, you know, their environment. Obviously, Potman Builds is actually pulling in the Builda code to be able to build, you know, so this is more for Docker files. There's Ansible Container Support and other people are looking and embedding Builda all over the place to be able to build containers in it. So another thing I wanna talk about quickly is the concept, you know, this talk is called improving speed of Builda, but also improving the security of container builds. So most people when they build container images are either doing it manually or they're doing it inside of a CI CD system or even inside of something like Kubernetes.  You have to embed the Docker socket into, you know, to be able to do a Docker build of a Docker file. And the problem with this is, you know, from a security point of view, this is a very bad idea. And I wrote an article back in 2015 that where I basically explained to people that access to the Docker socket is the, basically, I describe it as the most insecure thing you can do on a Linux box. It's worse than sues, giving someone the root password of a system or giving them sudo without, you know, password access. Because in Docker, I'm able to actually go and run containers and I can run privilege containers with the operating system mounted into them. And I could do all sorts of havoc on your machine and then I can remove the container and all the logs when I'm done with fairly simple Docker commands.  At least if I go through suosudo, then you'll have a record that it became root on that machine at a certain point. So that's why, you know, access to the Docker socket is very bad.  You know, they have to give access. So with Builder, a lot of, you know, really what we're pushing is the idea that you could build images, either rootless, or we have full support for rootless builds. And we have support for lockdown builds inside of containers. So imagine launching a container that actually builds a container image. And so you could use a tool like Podman to be able to do that. But a lot of people have stumbled, you know, how do you do that, you know, what do I have to do?  There's three versions of them. We have what's the stable version, which was based off of stable Fedora versions. Then we have the upstream version that's based off the master branch inside of our GitHub repository. And then we have a testing branch.  You often the stable branch and the testing branch are the same. But basically we keep these images up to date with whatever the latest version of Fedora and whatever the latest version of Builder is available. So there was a couple of things that we did inside the Dockerfile that we used to build the Builder container. So the Builder images here. So the first, I'm just going to take you and go out to the GitHub for Builder and actually take a look at these Dockerfiles. But I want to show you and explain what's going on when we build these images. So the first thing that goes on is obviously we're just pulling in the latest of Fedora, the latest version of Fedora. And then then we're installing a fuse overlay into the container. And for size reasons, we want to exclude container SC Linux, which will pull in all of SC Linux. So we install Builder and fuse overlay. Fuse overlay is our method mechanism for mounting an overlay file system without being root. So the Builder container can run as root or can run inside of a username, space as non-root. So that's the first step. The next step after we get the software installed is we're actually going to be, we're going to edit the storage.conf file. Storage.conf file basically describes how the storage driver is going to be used inside of your environment. So storage.conf, most people never edit it, but storage.conf has some really cool features. And one we're going to be talking a lot about in the next section is the idea of additional images. And I'll get, you know, basically the idea of an additional image is right now almost, you know, anybody that's used Docker or Podman has used one image database, one image store, where you pull down your images and usually that's stored in BioLib containers.  What we wanted to do is basically allow you to have additional stores that, you know, basically copies of the original BioLib containers directories into a different location. And we envision that you could share these with your network storage and things like that. But these are really just read-only stores to be shared with containers. And I'm going to show you some of the power that this allows us to get. So basically we're just setting up, we're doing two things with the said command. We're turning on the mount program to tell it to use views overlay. And then we're enabling additional images into the system. And I picked out the BioLib shared directory as being the directory where it's going to, that builder will look for additional stores. So to look in its, you know, current, its main store and as well as the BioLib shared. The next thing we're going to do is we're going to create a couple of files. Since we didn't, we not only have to create the BioLib shared directory, we just specified above but we have to create a couple of lock files that builder will blow up. Container storage requires these lock files to exist. So that's all that those lines are doing. And finally, we're just setting a couple of flags in the environment to tell builder to run in, use the namespace mode, you know, without having to necessarily be rude. So that's basically what a darker file that we use for build, build the containers. And they come with that pre-installed environment ready to go. So now I want to step back and, you know, originally we wanted to talk about, you know, we're talking about building container images whether we want to build them securely or fast. So there's always a battle between security versus speed when you want to, you know, do almost anything on a Linux system, you know, there's certain things, security features that might slow you down a bit. And then, you know, a lot of people want to turn off all the security features in order to build speed. So speeds, you know, speed that a process can run versus the amount of security you can wrap the processes with. And when we build container images, we face the same trade-offs. And we designed, the goal was to, we designed build a image, build that to the builder image to allow people to experiment and basically make their own decisions about where they want the security versus the, you know, the speed barrier. So let's look at different ways of building container images. And so I'm going to be down below is actually a darker file that we're going to be using to sort of demonstrate, you know, speed in building container images. And this is a fairly common format that people use when they build, you know, they put into darker files. A lot of commands that might have a couple of run commands in different spots that is installing software. And then often at the end of the software line, you'll see, you know, this is DNF Clean All. And the goal of these DNF Clean Alls is actually to get rid of any cache or any type of stuff, additional storage that you know, one side of your container. And so anyways, that's, so we're just going to demonstrate and show, you know, how much speed this costs you. So what we're going to look at right now is the most secure way you want to run a container on a system. And that's totally locked down. And so we're going to run a container. You know, we're running the builder inside of a container here. So we're using Podman to run. We have a device here that we're adding to the container. So we want here is builder in order to use the fuse overlay file system inside of the container. It has to have a device step fuse. And that's not assigned by default. Here we have the, you know, actually builder image that we're going to use. And we're going to take a local Docker file in my home directory mounted into the container. Since we're locking down with SE Linux, we're going to relabel it to be able to be used in the container. And then the final step is actually just going to build the container image. So when we do this, when we have this type of description here, the container starts with an empty by live container. So there's no pre-installed image inside of the container. We don't know what the Docker file is going to have. So it actually has no content and by live containers. And this means that if there's a from line inside of the Docker file, all images have to be pulled to this container, right? So this is going to DNF database is going to also have to be run for each run. And this is going to make things much slower. But this is the most secure because it's totally locked down container image, although it is running as rude in this case, unless we take advantage of user namespace, I mean, it's totally isolated from the host. There's no information going into the container from the host in this type of environment. So what I'm going to do at this point is I'm going to start a demo. What this demo is going to do is it actually fire it up and it's starting to pull down an image. And I'm going to go back to my presentation because it takes so long to actually do the effort, right? So it's pulling down all the content inside of the Docker file and basically demonstrating it. So what we want to do here is, oh, let's see if it's finished. Oh, it's still going. This is just setting up the demo, sorry about that. The problem here is Fedora is updated since I last ran this. So anyways, let's move on to the next section while the demo does its processing. So the next thing we want to do is, so we went from the most secure, now we're going to go for the least secure. And what the least secure is running pretty much the same command, but in this time, I'm going to volume mount in violite containers into the container. So I have violite containers as the content is basically the container images on my host and I'm going to volume mount those into the containers. And what this does is it allows me to have the images pre-pulled. So say my Docker file is going to pull Fedora, while I'm already running Fedora, so I don't have to pull down the Fedora image when I run. But I have to disable SE Linux for this type of environment because SE Linux would prevent access to violite containers from the container if a container escaped. Oh, but what I get here is, I can do this the fastest because it can share container images with the host, so I don't have to pull them again and I can use them instantaneously inside the container. Let's... So here I am showing the slowest and it's pulling down the image to the container. I'm just doing a build a pull, I'm not actually running the full build a bud at this point. And you can see it's pulling, it's going out to container registry, pulling down an image. And that took about 19 seconds to be able to do. So now I'm going to show you what would happen with the second example, where I'm volume mounting in violite containers from the host. It's another, it's a brand new container image. And when I run this mode, it takes one second. So it went 18 times faster, mainly because the image or the UBI 8 image was already pulled down to the host. So the last example I'm going to show you is sort of the hybrid model where I can get a really, really shared fast environment but it's still a lot more secure than that. So the second example I use there would have allowed, if the container has access to violite container storage, so it could write to that directory and be able to cause issues on that. Let me, so the medium one or the Goldilocks one if you saw my talk yesterday is to be able to take that violite, it's the same violite container storage that I just mounted, but instead of mounting it in violite containers inside of the container, what I'm going to do is I'm going to mount it in violite shared, which is where additional stores have come in. So what's going to happen inside the container now is the container has its storage, which is in violite containers, but it's going to use additional stores. So it's got, it has a read-only directory that we had set up or we set it up to darker file to look at violite shared. And what's happening here is basically I'm taking the host container storage, the image storage, mounting it into the container and I mounted it and read only this time. And so if I run the container here, it takes one second. So basically it gives you the same performance as far as pulling the image because again the image is already stored instead of taking 18 seconds to pull it in or instead of allowing me to write from the container to the host, I can take the container's host directory and mount it into the container. And that's basically what, really a huge advantage and speed can be acquired by just taking the host storage and volume mounting it in into the container. So this is fast since it's using the container storage from the host, but it does not, since it doesn't have to pull the images to the container store. And it still needs to push the images to registry in the container engine will pull the image. But basically from a security point of view, it's very secure because it's totally locked down container image. Container is not able to write anywhere on the host. This does not use username space right now, although we've experimented with allowing it to also use additional stores inside of a username space. It's mostly isolated from host. There is some information leak into the container and that the container will know which images are being used on the host. But that information is usually, all those container images usually are available at registry, so that usually you're not gonna store much secret information in those directories. But those are the trade-offs. So these we talked, basically we've shown that through the use of additional stores, we're able to speed up building images because you don't have to pull the images. Really, in my opinion, we haven't taken advantage of additional stores as well as I would like. Additional stores are also available for Cryo or for Podman. But we potentially, if you're running hundreds of thousands of containers, a lot of places you're gonna be running them on many, many nodes. And we have everybody pulling these images to every node in the environment. Every time there's an update, you have to update hundreds of nodes. But the funny thing is, why are we pulling these huge images to every single node in the environment? Why are we taking care? We've been working with HPC, high-performance computing, requires huge images, many gigabytes in size. We're pulling those images around all the place. Why are we just using shared in network storage for these images? So when we designed additional stores, our goal was to allow us to take and set up a big farm of stores of images with all the content. And then instead of even pulling the image to the host at all, you just assumed you would be available. As soon as I updated an image ad, I'd say a container registry, if I shared all the storage via NFS, all the images via NFS, they would be instantaneously available to all of the engines. So build their Podman, Cryo, could get instant access to images without having to pull. Now there are potential shortcomings for using network storage for your images, such as network latency and hiccups. But you're already using shared storage, most likely. You're probably already using something like NFS, SSFS of Luster or iSCSI or S3 to share your volumes, the data that the containers are writing. So I don't see any reason why we wouldn't share, also use those same sharing mechanism for sharing the content. And then we'd be able to, as I said, instantly get our containers up and running without having to always pull down images. So the next part of this talk is, we've looked at additional stores, when I, why are builds slow? Well, the first one is obviously when it's pulling images, images can take a long time. The next one for anybody that's run DNF or YUM inside of, on a VM or inside of a container, there's always this huge slowdown. And it's, if you've ever run these commands, it can take about up to a minute before any content actually starts getting pulled down to the container. So that time when you say DNF, YUM install Apache, and it'll just sit there for what seems like forever. It's like 60 seconds doing nothing. And then you'll finally see it starting to move forward and pull down Apache. So what is going on there? Well, when you run DNF and YUM, they check to see whether their local cache is out of date. So there's a big database store on your host under ViLib containers, ViLib DNF and ViLib vCache DNF, that has all of this metadata about all the software that is available to be installed on your machine. And what happens when you run these commands after a while is they go out to a centralized YUM repository and find metadata and download it. And that metadata has things like all of the RPMs but it doesn't have just that, it also has all the paths.  But anyways, all that data is stored in a huge XML database. The files and historically XML is very difficult to process. And what's happening is these files are huge and then DNF and YUM spend a lot of time processing these files as they download. And these is the second take 30 seconds. I've seen it even take up to a minute. So anytime you have an updated machines, you always see that. So imagine you're doing installs via Dockerfiles and say in a build file, this problem becomes usually more difficult. If you're doing it once a day inside of a VM or once a week inside of a VM, you don't mind that.  And we showed earlier the definition of the Dockerfile that I'm gonna be running in these tests. But one of the key factors when you're building images is to keep them as small as possible. And so that construct of doing a DNF, dash Y install ACDPD there, and then using the DNF command to clean all when it's done. So basically get rid of all the cache. That's gonna remove all the cache that was downloaded.   And then later on inside of the command you might install another package. And guess what? You're gonna pay the price the second time for downloading all that content. And you'll spend another half a minute downloading that content. So this is the way people designed Dockerfile. So they hit this issue quite often and it just causes the time that it takes to build an image to be really, really poor. So what we decided to do is that we looked at this problem and said, how can we make this better? And what we wanna do is we wanna came up with a concept what's called an overlay mount. So all the container engines are heavily using the overlay file system. What the overlay file system allows you to do is take a lower level directory or file, group of files and mount them into the file system and then create what's called an upper directories. And what happens is anytime you read content in this overlay, it reads content from the lower but if you try to write any content it writes content to the upper. And so really what overlay is doing is it's merging the upper directory and the lower directory together and that's sort of what you are seeing in your mount point. So overlay allows us to sort of share read-only content from the host but allow you to write content onto the directory. So unlike I say a standard bind mount volume where you mount in that directory you either can write to it or you can't you can either modify it or you can't and an overlay version you can modify it but you're not modifying the original content you're modifying a different content. So the beauty of the overlay mount is that it's writable inside of the container but we can have it read only in the host so you can have the containers actually modifying actual content on the host.  We destroy content when the container exits. So anytime a container exits an overlay mount cleans up and I'm gonna show you why that's important when we get to our demonstrations. And think of it like overlay volume mounts is sort of being like a tempFS. So when we're gonna use overlays we're treating them like a tempFS in that you're any content that you run while the container is running gets written to the system it can be used from that point on but as soon as the container exits just like a tempFS that data disappears from the system. So when we're gonna use the overlay mount we're using a, you know, looks just like a standard volume mount and part man or Docker but we have a special colon O at the end that tells us to do it as an overlay mount. And we're gonna do, we're gonna be volume mounting in Vakash DNF into the container. And when I, what this allows me to do is take the cache from the host and mount it into the container. So I can basically pre create the cache on the host and as long as I'm using, you know in this case say we're running on a Fedora 32 machine I'm able to pull down the entire cache once a day have it in my host and then share that between all the containers. Violet in this case via cache DNF on the host is gonna be a read only lower layer for the container and then inside of the container there's gonna be a Vakash DNF which is where writeable content is gonna go. It's actually gonna go into a container private data store where the store is. And, you know, as I said, what we would recommend is that you keep your Vakash DNF on the host up to date. Now if the Vakash on the host is not up to date then builder will go back into the slow mode of DNF will go into the slow mode where I'll download the cache but in order to get the speed ups that we're looking for you gotta keep the host up to date. So here we have this is the slow mode for running containers. And as you can see here, it's going out and surrounding the first DNF command. And you can see that it's taking time. All this stuff that's going on right now is all involved in downloading the YAM cache, DNF cache. And you see it takes forever. We haven't seen anything about pulling down Apache. Now it goes into pause mode. So it's downloaded the cache onto the host but now it has to process it. So it's going through and processing all that XML data. Here it goes back out to the host and pulls down and figured out it needed additional data. It's pulling down that data to the host. And again, all we wanna get is one package or a few packages onto the system but we're spending all this time just downloading data to the host. And let's see, do we finally start to process? This is where I need the Jeopardy theme song playing. I guess I should have sped up the video at this point. Let me see, does anybody have any questions while we wait for this? Okay, so Richard Jones asks, what happens if DNF is running the host and modifies Vokash, DNF wall container and this use in the storage? That's an interesting question and it's really undefined. I would say don't do that. I would recommend that you don't run containers that you don't run your scripts while your builders are running. The problem is the overlay kernel, the overlay mount basically says if you modify the lower level directory while the upper level directory's while it's being used in an overlay then it's undefined what would happen. So I can't really tell you what's gonna happen other than there's a potential. As you see, it's actually I missed it. So it finally downloaded all of the packages and installed it in here. So this is all the packages. And you see that it happened fairly quick but guess what happened now? We did the clean all and we're back doing the exact same thing again. So because I had two different run commands inside of my image to pull it. And then I did the clean all it got rid of all the cache and now we're back pulling the container image again. So someone asked here, Michael Smith, if you're using ButterFest could you take a snapshot? Yeah, I mean, you could use he's basically describing you could use ButterFest to protect against the situation that Richard talked about. And then you would take the ButterFest snapshot and mount that into your containers and then allow systems on the host to modify sort of a different environment. So now we finally see that it's installing. So it went through twice to install the packages onto the host and finally we're committing the image. And just imagine going through and doing this many times a day and that took about nearly 200 seconds. So it took about four minutes, three and a half minutes to be able to install just those two simple packages. So now we're gonna do the command again but this time we're gonna do it with the overlay mounts. So here we have a up here I'm actually taking the hosts. What I've done is a pre-populated I actually am running off Fedora 33. So what you can do with DNF is you can pull down content for Fedora 32 when I put created a special directory where I downloaded it, which might also be a mechanism to fix the problem that Richard talked about where someone could modify the cache while you're running. But basically I'm just volume mounting that in into, but notice I'm mounting it into Podman here and I'm mounting it at read only. And then in Builder when I execute Builder inside of the container, this is where I'm using the overlay mount. So it's mounting by like cache DNF in my Builder container into my Podman container into my Builder container to do it. So that basically I'm doing two mounts and I'm actually doing the whole thing right away. And I'm not sure why it's pausing it right now, but this is one of those. When I demonstrated this in this earlier work perfectly, so this might be internet pickup or I'm not sure. But anyways, you get the idea and what should happen here, what should be happening right now is this should be going very, very fast and usually it can take drop it down from those three minutes down to about 18 seconds. But obviously something has gone wrong on my system. Oh, I will go back to the presentation and you guys will have to believe. Anyways, you see that even though it didn't demonstrate very well, you can see that it didn't pull down all the cache data and do anything with it. So it ran right away and I was installing the packages which seems rather quick. So it did start to work. Now we're gonna do the clean all again and again, I don't know what it's stalling for here, but it might be that my cache is slightly out of date and it's doing some processing on it. But anyways, we don't have to do that to huge downloads and stuff like that. So usually we'll see quite a bit of speed up and I'm gonna go back to the presentation. But actually, I guess that's the end of the presentation. And then demo, but if you think about this, right? Because we were able to take the volumes in and mount them in as read only into the container, the Viacache, again, we're doing this as securely as possible. There is potential information leak, but again, that's really shared content that people would expect to be able to read from the host into the containers and I can thoroughly control it. If you were doing this on rel, you could actually have volumes. You could use in pre-park to late rel seven, rel eight, Ubuntu, well, Ubuntu app is better than Yum in this category, but you could have multiple Fedora repositories. You could have OpenSuzi repositories. You could have all of those on the single host and just have, say, a cron job that would run once a day to download all these images. So I guess that's the end of my presentation at this point if we could open it up to anybody have any additional questions. Let's see if it finally finished. Okay, so whatever that pauses is causing, it took 167 seconds. So it would have taken a lot quicker, but I'm not sure what's going on that's causing the failure, but that's one of those demo things. I should prerecorded and then I could do the fake stuff, but anyways, any other questions? Okay, I guess at this point we could, here comes the niche. Yeah, I was just hopping on in case. Yeah, I think we're good to go then. So just as a reminder folks, we do have a breakout room available. I'll drop a link to that in chat right now. So if you want to continue the conversation, I'm sure that will be there for at least some time. Yeah, so I actually should have pointed out that all this technology now is being put into OpenShift. So the OpenShift builders are starting to take advantage of some of these features to be able to speed up, builds as much as possible. So really that's our goal is to, if you had huge farms and machines to get rid of these, everybody pulling the images repeatedly and everybody pulling down the YAM and DNF caches all the time. So I will go to the next room and. Before you hop off, Dan, we just got a question. So Michelle is asking if you have any idea when the Ansible containers integration is happening? So that's not something our team is working on, but there is Ansible containers work going on right now for Builder. I believe people, there's a thing called the Ansible Blender, which is available now. So there is the Ansible bindings to all this stuff available at this point. Okay, I will go to the networking room, I guess. Thanks, Dan. Yeah. Check the pictures that match.