Welcome to Drupal South, second day, so today of me and Gaurav will be discuss how we can simplify Drupal testing using Cypress and Cucumber. So I know you all are working in Drupal, so but you can also use Drupal to build a complex website, but testing is always like I would say I can just blast my head off if I am going talking about the testing, so today we are trying to explore a new ways how we can perform the testing in Drupal. So our focus is mainly on Cucumber with Cypress, Cypress is a like another tool and Cucumber is also one more tool, so we are trying to achieve a new testing framework using Cypress and Cucumber. So for this presentation I will try to share as much as example and we will have a quick demo to understand how Cypress and Cucumber will work. So before going into the detail I just want to tell me about myself and the Gaurav will introduce himself. So I will working with Salsa, it is almost 6 years and I have around 14 years of experience in the web development and I am working as a technical lead in Salsa. In my professional experience I have done so many projects from the small website to a large scale web applications and right now I was looking into multiple aspect of how we can perform the testing in a various tools and technology, so this is this one is the like I got curiosity how we can use these front end framework in Drupal itself. So I will let Gaurav to introduce himself. So hi everyone this is Gaurav, I am working with Salsa from last almost one and a half year and I started my career when I started with Drupal 7. So like from Drupal 7 to Drupal 10 it's been already a long journey, it's already like 9 plus years and during this time I have worked on like various projects, the middle size team, large size team and different you know different kind of projects. Mostly like what I feel that I have also worked in Drupal migrations like from Drupal to Drupal or other platforms like Aashaya point and other platforms like that. So that's all about me, so continue please Gaurav. Thanks Gaurav. So today we have a small agenda to discuss, we will look into what exactly the software development life cycle and that how you can perform different methodologies for the testing. Then we will look into the introduction to Cypress and Cucumber, we will talk about the Drupal module and we will talk about the standalone setup of how Cypress and Cucumber can be used as a standalone application or as a standalone framework for the testing. So if you guys are not interested in testing I think you can leave, you can definitely leave for the may be there are other presentation you can you want to attend. So let's get into the detail. So first I will try to talk about the software development life cycle in agile way. I am also a certified scrum master, so I know how agile work in a normal every, so we are using agile but not a fully agile normally the hybrid cycle we are doing. So in agile as you can see there is a normal iterative approach you can follow, you can plan, design, develop and then test, then deploy, review and the another thing is launch. So if you look into the testing step, so the test is the one thing that we have to perform, it could be manual, it could be automatic, you can use multiple type of tools like B Hart is a very famous framework that you can use and the unit testing in BHP Drupal itself provide there is a unit testing framework is available, so you can perform for that. So in agile there are multiple methodologies to perform or to create a software, first I would like to discuss about the test driven development, I am now you all are aware about the test driven development, yes no I do not know may be I am not going into the much detail, it is just a context what exactly the TDD will look like, this is the flow, you can see the first thing you will write a test, watch it fail, write your code, minimum code, minimum necessary code if it will pass and then what will do, you will review, refactor your code while ensuring all the test will work. So it just the benefits of TDD is you will get the improved code quality, but the limitation is it always look into the smaller amount of chunks of like if you are have a function method it will apply on those particular unit of code only, it is not about the behavior of a whole application, you can write as much test you required for any application like if you are working on a Drupal module itself you can write whole lots of unit test that will perform for every function. So I am not going into much detail, but the another methodologies that we are going to discuss today would be the BDD, the behavior developed development. So this is the another logical step after the test TDD because in TDD we are not looking after any business perspective or end user perspective, we are always concentrate on a chunk of code if it is ok or not it is passing the test or not, but if you are looking into the user experience how the application behave at the end user it will the different thing. So BDD is also a agile methodologies that extend TDD by focusing the behavior of the system from front end user perspective.  Definition is all about like given then why you all heard about the user story how you write the same thing you can use as a your testing step or a testing criteria in that. Then write the test it will fail run and write your code and then it will pass you can deploy your project. So those are the two methodologies we normally using in our basic practices. Now I will talk about Cypress and Cucumber I did mention these methodologies because those are the things we are based on the Cypress and Cucumber is based on the BDD only and TDD plus the BDD. In the behavior user we always look after how the user experience matter if you are talking about a business requirement if you understand the business requirement and you can write a test which is normally any person can read that provide a good acceptance criteria over. So let us talk about the Cypress and Cucumber here, so what exactly the Cypress you will see test automate accelerate. So it is as simple as that you can write test automate it and it will work in any pipeline or something. So what exactly the Cypress is Cypress is a java base java script base end to end framework that allow you to write and run test in a browser environment only it provide you the cross browser platform testing you can run on any browser it does not matter which browser you want to use you can use any browser Chrome Firefox it allow you to like if you want to test your application in real time you want to time travel through the what exactly has been done so far while you are testing the application it provide you the snapshot of all the test cases you can easily travel like if you can actually save the video of your test like if it is just a browser if you are following your step manually you will go to the home page click on something and it will open another page. So everything will be done by the Cypress it will automatically open the browser and follow all the steps whatever you mentioned in your business requirement it can also possible to include in a CI or any pipeline you can integrate it anywhere and it will run whenever you push a new code. So why we should use the Cypress I would say there are few benefits you can see on the screen first thing I mentioned about the time travel, debugability, automatic waiting, real time reload, screenshot and videos and the consistent result. So what do you understand by the time travel that I mentioned you can easily allow user to see all the test whatever Cypress have perform you can easily watch your videos it will also allow you to because it is a javascript framework so sometimes it happen that application have some as x calls or something so you do not need to write a weight or something it will automatically weight browser to load all the required JS or CSS or all the DOM elements and then it will perform for the steps. You can also allow this application to real time reload because in real time you can just create your application and whatever you update in application it will automatically run test on the updated code. So these are the few benefits that we should be using the Cypress then we will talk about the cucumber. So in Cypress is a framework testing framework and cucumber is a tool that supports BDD practices it allow you to create a test scenario in a Gherkin language like given then and why similar to be hard if you are familiar with the be hard so the same thing you can do in the cucumber. So if you want to create a new things like in a Cypress with cucumber there is a plugin available that you can combine those so Cypress will provide a background application and the on top of that cucumber will create you the behavior driven developments. So it will allow you to create test in a human readable language and then the Cypress plugin it will automatically convert them into the Cypress available format and the all the test cases will run. So I will pass it to Gaurav to continue. Thanks Govind. So we already have a Drupal module for testing this like this is available for end to end back end and front end testing and the module is called Cypress in general like the other modules how we install it like using Composer and just download it and enable it and after that we can write our own module on top of it like in custom folder where we can like mention different folders there is a folder structure in Cypress how we can write the test I will show that in like you know in further slides but this is that will be the way of writing the test after that we have to add the dependency as well of the Cypress module that we need to make sure that the Cypress module is enabled and then like there is a module page which I will basically provide later in the references and resources links where we can be there is a readme file which can be followed and it has all the commands which is used to run the Cypress on browser on terminal and yeah but today we are talking about the standalone FES setup which can run like if we want to test only the front end and like site not the back end of it and we want to set it up so how to do that for any site. So if we do that there are majorly four steps first three steps are mentioned here first of all we have to basically create the package.json file by doing npm init it will generate the package.json file for us after that we have to install Cypress so there is a command npm install Cypress save dev and then it will install the dev dependency in the package.json file and the third one which is the most important is Cypress cucumber preprocessor. So like Govind already explained that this is the preprocessor which will actually convert the jerkin language written statements in the executable Cypress code which can be installed by npm install save Cypress cucumber preprocessor. And the fourth step is about creating the cypress.config.js file where we actually write the base URL like what is the base URL of the site we want to like you know run test on and then the folder structure like it's mentioned there is SPEC pattern where you'll find the feature files where we actually write the code and after that the view port width height so base in this testing framework we actually can see the test running on the browser right so the browser will open so we can actually decide the height and width of the browser like how it should look like in my system and other few like attributes are passed here. So this is how the folder structure looks like first of all we have the test folder and then Cypress inside that we have few folders like fixtures integrations plugins and support each of them have different roles in the like you know Cypress so fixtures where we can use the static data so let's say there is a site which is like dynamic and the data is changing like every time when we run the test so our test will always fail like let's say if we say that first test is this is Gorub but next time when I load the site it's it's changed to this is Gorub one so the test will fail right so we have to write stuff basically a network response and write the static data so that every time my test will pass so this is where we exactly do that then the integration where we run the actual test then this screenshots folder gets automatically created like when we run the test all the screenshots of the different pages get stored in this folder a plugin is to basically like modify and extend the internal behavior of the Cypress and support basically if you want to add the custom commands that can be used across the site so this is how the folder structure look like if you move to the next slide yes there are few commands which come out of the box with Cypress I've categorized them in three different ways first is parent command child command and the dual commands so parent command is about like see why dot visit if I want to visit any page then see why dot get if I want to get any data of any element in the DOM so similarly like this in child command see why dot click if I want to click on any event trigger find and the dual commands which has see why contains wait if let's say after a request if we visit any page we want to wait for five seconds or two seconds so we can mention see why dot wait so it will wait for till that time and after that it will run the second command so this is how it works few examples for this the first one is so in general we write it like this create a board given I'm on empty home page and similar like very much similar to other tests in jerky language and in the back end what is happening that I'm on the empty home page so it is actually going to the home page see why dot visit so this exact command will be called similarly others few other examples if we talk about the data driven example we can pass the arguments like board name and later we can define the examples like board name is shopping list and rocket launch so the same set of commands starting from three to seven will run twice because we have defined two different like values for these variables and it will check both the tests and it will run differently like the if it can happen that for the first one it can pass and for the second one it can fail working of array if you want to pass the data in array like milk bread butter jam so this is how in the back end it is done it can it is very much customizable we can write any you know logic and we can do any statement and it will work accordingly hooks can be used there are four major hooks here before before each after after each so for example if you want to run like post statement before any statement so this is how we define before and then it will always go to API reset it will send a post like request there always before running any command and then if instead of before before each then it will run before each statement do similarly after and after each test tagging just like other test environments we can tag our test so there can be any number of test and if our test certain test is failing so we can tag it and we can run it like high tag equal to and whatever tag we define there like here with it is defined smoke so yeah so most important thing is how we actually launch the environment so there are three basically different commands first one is NPX Cypress open so NPX Cypress open is used to run open the browser which actually opens that Cypress tool and runs the command so NPX Cypress open and NPX Cypress run run will run in the terminal one more thing I want to mention is that we can also define the configuration variables where base URLs can be defined with the user name and password so from the local code base any environment which is production known production environment can be tested directly from the local environment code base so sometimes it happens that like the test was passing in my local environment but it is not passing on the production environment so this is how we can test it that why it is not working on the production or production so let's go to the demo here I have set up a local environment which has this home page and then there is a view which is created with articles page it has three articles now there are two environment one is Cypress one just to showcase how to generate the files it test folder Cypress folder is there now let's run the commands so there are three commands which I mentioned npm in it npm install Cypress and cucumber preprocessor so after running this and fourth step I have already generated which is Cypress.config.js file just to save the time while generating this it will ask for package name and other sort of information I am just choosing the default one downloading the node modules yeah just to save time I'm just so package.json has their dependencies created Cypress and dependency as Cypress cucumber preprocessor Cypress.config file is already there let's go to the so this is the first feature file which I have written has three tests first one is about test login URL with user authentication second is I'm passing the argument as I showed on the in the example the URL is the home page and the articles page and third one just to show that if it test fails how it looks like so the fail test user login is directed dashboard it will open up a browser Cypress tool it ask for browser which one to open so I have chosen Chrome the base URL which we set there is coming up and the feature file which we created is coming here let's bypass so we can see after clicking on first feature all the tests are running here on the left hand side and on the right hand side it is actually showing the browser how it looks like that it is entering the things you know the fourth one is meant to fail so it failed here so it says cross right so we can see that three tests are pass passing here and the fourth one is failing in the second one it ran two different tests even though we wrote a single test but the arguments were passed to twice so it showed two times and the last one is if you want to run it on the terminal how it looks so npx run npx Cypress run so it will directly run it here instead of going to the browser we can see the similar result the first three are passing and the fourth one will fail so that's all these are the reference and resources like we have followed I would say like we are working on some automation of like how you upgrade your Drupal sites automatically so we are planning to achieve this because we can have these set of rules using these user stories like we can create a these kind of test and if these tests automatically pass we will trying to deploy everything on production so that's why we are trying to get customer on board on these type of things so they can understand okay these are the test have been passed and then we can also showcase them okay this is the whole report you can see what exactly happened in while test has been run so it provide that capability we can share the video we can share the screen short and they can easily read it see I have also seen some somewhere that it doesn't sometime respected so if we say then and if we write when then also it works sometimes but in general like when we write the step in the back end code we actually mention that this will this command should run only on when so we mention when and then bracket and then write everything inside so this is how we generally do it it's similar to be hard in some way try to typecast it you know bind it more similar to be happy yeah so the first thing there's a module available in for the Cypress integration yes this month the full definition that you are expecting the all the test I am aware that you did all the traits for the different kind of steps and we have so similarly it's it's still growing is still evolving so maybe we can do similar stuff on that but it actually the other thing is it depends on a browser it's a mostly browser specific Cypress it front end technology framework it's not a back end they provide us API integration as well so you can perform all the things that you are doing in be hard in any way so if you are trying yeah you can you can do that there's a commands available if you use this module yeah you can yeah yes you can use that yeah you can because it's a module available you can integrate it there's a command to perform yeah yes this command is available on that you can extend that for you yeah but we also provide a standalone framework because yeah


Hello friends, myself, Prof. S. P. Mankani, Assistant Professor, Department of Mechanical Engineering, Valchand Institute of Technology, Solaapur. So today we are going to discuss about Cochran boiler. See at the end of this lecture, students will be able to understand the working of Cochran boiler. See here just the constructional details has been displayed in this particular slide. So different parts are given. So in this particularly we are going to be studying it as the working advantage as well as the different parts means the construction parts are concerned. So here the overall view if you are going to observe it here I given this one representation as a red color. So which is indicating it as at a higher temperature and this particularly we are taken it as a blue color with this one as a water is there and here the stream part. So this particularly the boiler is a fire to boiler. So this particular Cochran boiler is more popular in our area as far as Solaapur district is concerned. So in couple of industries we are having this particularly a Cochran boiler because of it can be installed easily as well as so this is going to be utilizing the lower quality of the fuel and the requirement of the textile industry is going to be fulfilled by this Cochran boiler. Because it doesn't require as a more the high pressure boilers are concerned. So as far as the units are related. So here coming to this particularly as the Cochran boiler the constructional detail we are going to study and as well as the working and then advantage and disadvantage. So here considering this as a constructional details. So here this is the fire door is concerned here the fuel is going to be there on this particularly grate. So this particular grate so this on this particularly we are going to be putting this one as a fuel. So this particular advantage of this Cochran boiler is we are going to be using a lower quality of the fuel even some of the wastages also they are going to burn in this particular Cochran boilers. So here this damper is provided on the grate and a blow off Coch is given in the left side of this diagram. So when the fuel is burning on this particularly the grate. So that fuel creates the the flue gases the flue gas start flowing in this particular path which is given as a red color arrow mark. So here in this particularly the pipelines the flue gas is going to flow and this we are going to be calling it as a fire tube boiler with a reason that the flue gases are passing through the tubes and water is surrounding this particular tubes and that is the reason we are going to call this as a fire tube boiler and it is a low pressure boiler. So the flue gases while it is passing through this particularly tube it transfer the heat energy to the water which is surrounding towards this particular pipelines. The flue gases come to this one as the smoke box here the partial this one in the this particularly smoke box the some part of the the dust is going to be extracted here. The remaining flue gases is going to flow through this particularly chimney. So as far as the detail of this particular chimney is a separate topic the designing of this particular chimney is a separate topic we are not going to discuss that one just we are going to consider this part as a important as this level of this particular smoke has to go in such a level that it should not harm the normal movement of the birds are concerned. The flue gas has to cross that much this area is concerned. So then coming to this one as this particular portion is the steam portion this is a steam portion and remaining this one is a water portion. So here this one is given as the external shell of this one the boiler. So inside this there is a high pressure steam we are going to calling this as a superheated steam in this particular shell. So here the anti-priming is provided in the steves stop wall. So through this one we are going to be using the steam for our working of industrial purpose. So the high pressure steam we are going to be taken through this one. This here given as the steam stop wall and here one more the notation is given as a steam or this safety wall here is a safety wall. So while you are studying of this Cochran boiler just you compare with your household this one as the cooker. So in the cooker also they are going to be providing as a one safety wall they are going to provide it. So it is a safety purpose the name itself indicating it as a safety purpose. So and below that one there is a pressure gauge is there below that one there is a pressure gauge. So it is indicating the pressure of the steam inside this shell pressure of the steam inside this shell. So then there is a manhole is provided in this one. The manhole is the size of this manhole just for your understanding purpose we are going to discuss that as it is a size of this hole is a normal man can enter inside through this one and just he can clean it all the related here in the parts and then he can come out from this this is a manhole they are provided for a cleaning purpose. So then coming to this one as this external part of the shell and here there is a water level indicator. So this is a water level indicator this indicates how much the water is there inside this particularly the boiler. So water level indicator is one of the important this one indicate this one as for indication of the level of the water. So these all are coming as this all are the integral part of the boiler. These are the mountings of the boiler. So here one more word is coming as the accessories of the boiler and mountings of the boiler. So mountings is the integral parts. So without that the boiler cannot work effectively. When you go to the accessories part those are related as the increasing the performance of the boiler is concerned. So here there is a one fusible plug provided here. This plays the important role when there is a water inside this particularly the boiler is going to a level less. Here there is a water level indicator is also there. So this is for the regular observation of working and in any case if the water level is going below that one in any emergency cases. So this particular fusible plug is going to be operating. So means the temperature crosses that time in the emergency cases this fusible plug is going to be coming in the picture. So that time if it opens if it crosses that particular temperature by any other reasons also so that time this fusible plug is going to be dissolved means the excess temperature. So that time this whatever the water is there inside that will come on this particularly through this path on this one as a grid means it will stops the further burning of the fuel. It is for the emergency working it is for safety purpose. So coming to this one this we have discussed about the city wall. So coming to this the rest of the this informations we are going with this one as the firebox and this is a vertical feed pipe and this is a fuel a fuel pipe. So this we are going with the next this one I given all the details you may refer all individual parts also I explained already the detailing I given it those particular information about the detail part. So just you can observe this the great of this chamber as well as the working just I given this one as a JIF the for understanding purpose working. Just you can observe here the flue gases how exactly it passes through this particular aero mark I have shown it then it will go to the chimney and that goes to the exhaust and here in this particular part the storage of the steam is going to be taken place rest of the total content will be there as a water on this particular surface because the heat is going to be transferred through this one. So let me know so this boiler either it is a water tube boiler or a fire tube boiler this boiler is a fire tube boiler the reason is that the flue gases are passing through the pipes and surrounding that one there is a water. So that is the reason we are going to be calling this as a fire tube boiler. So just you can observe this diagram here there is a firing is going to be taken place on the grid the fuel is going to be supplied through this field door. So then this flue gases are passing through this particularly pipe just you can observe neatly so then it will come through the chimney then it goes to the atmosphere. Just for it is an understanding of the working principle of this particularly the Cochrane boiler thank you for further part of will be covered in the next lecture thank you.


Hey friends today I am heading to the regal eagle smokehouse to try and compare it to what I think my favorite barbecue place on Disney property is and that is the polite pig is it better We're gonna find out right now as it stands before I walk in here the polite pig is my favorite barbecue spot and What gives me those credentials? I'm the master in the meat sweats.  I'm sure they don't actually use that wood, but wow look at that What a beauty, huh? And then the actual indoor and this is where the food is gonna be so that's where I'm gonna be See in here is feeling fantastic But it is very busy and very loud in here because it just opened I think yesterday So a lot of people are real excited and it's been waiting a long time people have been waiting to actually get in here And here's a look at the menu I'm more than likely gonna go with the American platter so I can choose three different types of meats and Garlic toast and a side, but I don't know which ones I'm gonna get. What are the options? What are the choices? I don't know What I decided on getting was the American platter and I ended up getting ribs pork butt and brisket and Onion rings is my side But then the cast member who I was like oh should I get the french fries or the onion rings? He said he got to try the fries or not normal Disney fries So he actually gave me this small french fry isn't that so cool? So now I get to try a little bit of both This looks amazing now Now we got to find a seat this place is packed look at it in here. Holy moly I don't even know where to go. Oh got one. Oh with a window view. I Like this seat a lot get my own paper towels. I think they're on every single table, but Look at that nice beautiful view one thing. I immediately got to say You know how you can't get back to your seat without like trying a french fry So I did I tried a french fry and they are not like your typical Disney french fries They have a special seasoning to them. I like them a lot. Thank you so much But hold the phone Where is the barbecue? They got to have like barbecue dispensary somewhere in here. Oh, I see it I'm gonna leave my food on the table. Hopefully nobody takes it. Oh, yeah, and here they are Sweet mustard sauce savory spice sauce a classic smokehouse sauce and ketchup I went with the sweet brisket and then the classic smokehouse to start off with looking pretty good Brisket sauce a little watery though And holy moly we got the fancy stuff here. Mom get out the good silverware. Oh, I like it Not sure where to begin The pork butt looks pretty delicious the ribs. Oh, yeah, I like those ribs or the brisket. Oh choices I Think I might as well just get an onion ring done. These are beer battered. I hope they're pretty delicious I'm fortunate to be able to try both the fries and the onion rings But if he didn't give me the fries, I would probably still choose the onion rings over the french fries Even though the french fries are pretty delicious. Those are definitely really really good now We want to try a little of this smokehouse barbecue.  So I got a little extra. Maybe I'll try some french fries with brisket sauce. That sounds good. Mm-hmm. Oh Yeah, the brisket sauce is pretty good now. We're gonna try to Get this brisket in one bite Trying to pull it up right on this board. Oh, there we go. Oh There we go Oh It's good. It's very good next time though. I'm probably gonna tell them a little light on the sauce I want to taste a lot more meat and flavor than just a sauce. So I'll know that for next time, but now On to the reds But we're gonna need some of that classic barbecue smokehouse sauce on there. Oh, yeah Look at that. Just like a TV commercial. Oh Now we're gonna Oh, we gotta get this side.  So I gotta be careful.  We're gonna get sticky buttons, but Here's the good stuff. Hopefully The ribs are delicious, but they're not fall off the bone ribs Which doesn't mean they're bad Just some ribs are a little bit more sturdier than the others and I like these very smoky You can literally taste the smoke on these ribs And just like that we went through that whole entire platter I'm also impressed by the amount of napkins I use Usually my tray is covered with napkins when I'm eating barbecue, but look at that Not too shabby And I got nothing on my shirt That's a good day right there I'm gonna give you my final thoughts on the barbecue in a second But I want to show you a little bit more of the inside because the Deferration and the decor is really cool. I like it a lot And the official pit master of the regal eagle smokehouse is Bobo, right? There's a certificate stamped and authorized by the judge Sam the eagle I decided to come outside because I like I said I wanted to give you my final thoughts on the barbecue But I also wanted to see if my favorite restrooms at Epcot are open back up They have little restrooms on this side that I used to love going to because they were very quiet back there So I'm gonna take a peek seat. Oh Nope Not open. It's kind of sad. I really do like these restrooms Look, you can see a telephone sign over there. Oh Well So final thoughts on the regal eagle smokehouse the pork belt Fantastic, probably the best I've ever had it was delicious best thing on the menu that I had I mean, I loved it. It was literally hands-down next time I go there I'm probably gonna do two sides of that and then pick one other meat But that was phenomenal the ribs were kind of just ribs. I Would say flametree barbecue is probably a better rib and The brisket the brisket was a very good decent size brisket Like you get a lot of pieces Trills end is probably a little bit better. Would I say this is the best barbecue on Disney World property? Unfortunately not I still have to stick with the polite pig. That is my favorite barbecue joint on Disney property Now they come in and a close third probably a toss up between them and flametree barbecue I feel like other than that it's still a fantastic place to eat and a great addition to Epcot I definitely will be back. So love the life you live. We'll see you next time Bye


Hi everyone, I'm James. I apologize for being remote. Wish I could make it there. It's scheduling just in workout. I am presenting along with my colleague, David Woodhouse. We are colon hypervisor engineers in EC2, specifically working on the virtualization aspect of EC2. And this is kind of perhaps a bit poorly or confusingly titled, but we are basically, it's kind of an RFC presentation, discussing some options for making guests memory and state be able to be persisted and recreated or restored after live updates. Specifically live updates is a K exec. And doing this in the presence of some virtualization requirements, like being able to do device pass through memory of a subscription and some other virtualization aspects which we'll go into. Yeah, so roughly we're going through problem and requirements, implementation options, comparison steps, and then have a discussion afterwards. And I'm most keen to have the discussion and get people's opinions on this. So fundamentally a live update to the hypervisor is done by a K exec where the state of the virtual machines is serialized. A K exec is then done into the new version of the hypervisor user space VMM processes started up. The guest state deserialized and then the virtual machines are allowed to run, basically pick up from where they left off. And we need to persist guest memory across this K exec basically. So when they pick up after the K exec, they can get say memories there. And that basically as far as I can tell implies that this memory can't be kernel managed in the traditional sense that it needs to be managed separately and we'll kind of go into options for that. We also need to be able to support memory of a commit where we can using some sort of a control process be able to reclaim pages from an instance or a guest's virtual machine and kind of put them somewhere else like a swap out workflow or be able to reclaim using when they are balloon reports of free page reports, those sort of things. Yes, that's another sort of requirement here. And also the ability to support sidecar virtual machines where guests can donate a portion of its memory to run another virtual machine. And also be able to deliver page faults to user space. For example, if doing post copy live migration or in the case of a swap workflow if you need to swap in a page that has been swapped out. And another requirement for device pass through is to be able to hand over slices small section of PCI bars to virtual machines. So these are kind of the constraints that we're looking at how to solve something that handles these various requirements for guest memory and these other aspects. So, as I mentioned, the guest memory is probably should not be touched by the new kernel. So something like a kernel command line parameter to carve out a large portion of the host memory space for guest memory and only have the kernel manage a small portion of it. We also need to play nicely with something like user fault FD for faults. Only anonymous memory is supported currently with user fault FD I believe. So need to figure out how to do that if we are not using anonymous kernel managed memory. And I think I've mentioned the PCI bars already. The, yeah, there's this kind of, there's this requirement for basically a privileged process to be able to do mandatory access control and the guest memory where, for example, when sporting sidecar VMs or when carving or when doing something like a swap workflow, we need to be able to remove pages from the guest memory space and treat the VMM process as essentially an untrusted process. So control process needs to have mandatory access control to modify the guest memory mappings. And also just note that we don't need struck pages for any of this. There's already been work that's done upstream to remove the need for struck pages for much of the KVM guests memory maps. Some other things to keep in mind. IAMMU mappings need to be kept in sync with user space mappings as guest memory is reclaimed through something like a memory over subscription component IAMMU or map back in the IAMMU also needs to be kept in sync. And also IAMMU page tables need to persist so that DMA can be kept running during the Kexec process. And just another potential use case is to be able to do faster Kexecs by passing state between the old kernel and the new kernel. So these are, this is kind of what we're looking at developing a solution to solve. Specifically, we want to develop something upstream to solve this. So before I move on to possible implementations are there any questions on or clarifications on the problem of what we're trying to actually do here? Yeah, yes. One small question, the... Sure. It said you don't need struck pages required. Does that also imply that you don't need any... Yes, that is correct. I think that in fact with the TDP IAMMU our mapping was completely removed if I'm correct. So yeah, that's not necessary. Essentially, we can treat all of this as PFN map memory. Thanks. I was just trying to see if there was overlap with something else I'm thinking of. Sure, I'm going to show this thing. Okay, I'm not sure how to make this side, but I'll go away. Okay, any other... Yeah, unfortunately, I can't see you so anyone feel free to interrupt at any point. Okay, so now let's get onto some possible implementation options for ways that we're thinking of doing this. So one option is to basically use something like a fully-fledged file system. And by a fully-fledged file system, I mean the file system in the kernel that is responsible for doing page allocations, all these sort of things, like a traditional file system does, but on this reserve chunk of memory, which the kernel is not managing. So I have a file system managed that. And just like any file system, it would keep data about which pages for which files have been allocated where on that memory. And you could potentially mount this or create a file system on top of a, like a DAX device or supply command line parameters or something in kernel command line parameters to indicate, okay, this file system needs to work on this reserved large chunk of memory. And then the files in this file system could be used for guest memory. And this is probably just something like PK-RAM on top of DAX. PK-RAM patches, I think we've posted again last year sometime, but I haven't seen much movement on them, so I'm not sure what the status on top of PK-RAM is. It is, if we try to do something like PK-RAM on top of DAX, it's not too clear to me how we would do something like other sorts of memory like PCI bars, if we need to pass through a portion of PCI bar space, how do you convince this file system to be able to do that, struggling to see that. Also the mandatory access control kind of aspects of this where we want to carve out a chunk of the memory of a guest and use that to spawn another guest or to be able to map portions to scratch page or to trigger some sort of user space driven swap workflows if a portion of this file is accessed. The kind of file system semantics here, I think we would struggle with. It's not clear how we would do those kind of mandatory access control parts if we had the kernel fully managing this file system itself. So that's the one option that we're looking at. The other is to get the kernel to do less of the file system work itself and rather punt it to user space through something like a fuse protocol, but instead of fuse today is kind of in the data path where it needs to move the actual, get the data for the read and write operations on files. But instead of that, it would rather do something like when a guest tries to access a portion of this file could bubble up something like a fault to user space and say, this portion of this new file, this file has tried to be accessed. What would you like to do? And then user space could say, I would like to map it to this PFN or something like that. Basically, so you still have a sort of file system interface of files, but the actual mappings and allocations and which part of which file is backed by which memory page would be that sort of decision would be made by a user space control process. In this case, user space even needs to, probably user space needs to keep track of where all the mappings are. In other words, which parts of which file correspond to which bit of memory so that after K exec, once you've done your live updates and those files start getting accessed again, user space can replay those same mappings into the kernel so that the same memory can be provided. Where was I on my process? Yeah, and the control process would also then be able to do these kind of more advanced things that you would struggle to do with the first sort of fully fledged file system operation where the control process could tell the file system, you know, unmap this page. If it gets accessed again, we need to trigger a swapping workflow and it could probably also do things like part of the PCI bars where if a portion of a file is accessed, this user space fuse sort of thing could say, well, you need to back this now by a particular PCI, IOMM address basically and set those mappings up so that would then be set up in the PFN mapped page tables. Maybe the allocations could be assisted in file system itself is and keeps a metadata about allocations, maybe everything would just be recreated from user space after live updates, not sure. The thing that makes me a bit nervous about saying, okay, we're gonna keep all of this, keep the allocations inside the kernel, inside this file system means that if you want to add new node types, you need to have things like translators to be able to do rollbacks, roll forwards and that kind of gets a bit hairy. So passing that that sort of state from one kernel to another is a bit, could be a bit hairy and perhaps just getting user space to read to re-inject those mappings is the way to go. And now the third option is something like, much more like a raw memory device, a character device with just file descriptors, no file system involved, just raw FDs, something like dev mem FD or even a mem FD, FD. They could be initialized or instantiated with backing memory and that backing memory could be something like a DAX device or even dev mem or PCI bar or something like that. And then the control process could do IO controls onto that file descriptor and say on the file descriptor that gets handed to a particular virtual machine and say which offsets in that file descriptor correspond to which actual host the FDs. So in a way it's kind of similar to the fuse option in that user space is basically programming in mapping saying which host physical addresses back which aspects of which parts of a file but instead of actually having a file system interface you just have a FD. It's possibly easier to do this without kind of having the constraints of a file system just having raw FDs mean you can have a new device type of things like that instead of having to work in inside the constraints of a file system style interface. Once again, user space would need to persist mappings across Kexec so that it could re-inject the same mappings after when those files start getting access and those FDs start getting access again. And this is something that we have, we're running and have built using this interface but it is very tailored at the moment to this one particular use case that we have and it is a clumsy kind of passing file descriptors around so we're looking at exploring other options for how we can actually build something upstream to support this live update use case. Okay, any questions so far before we start looking at kind of comparison between these approaches? Yeah, so maybe I have one question. So you are speaking about restoring mappings and stuff like that but after Kexec you have to restore perhaps also other stuff like open files and similar things. So how like to me it kind of resembles basically checkpoint restart that already exists where basically they want to basically save all the system state like all the open file descriptors setup, you know, pipes, perhaps even networking connections and stuff like that and then restore it like they do restore it in another container or in another virtual machine basically. Here you want to restore it on the same machine just the different kernel but still the principle seems to be very similar so I'm kind of wondering what are the intersections here? Sure, yeah, so I think one of the things that sounds different to what you're describing here is that we're not trying to kind of get everything recreated automatically. The idea is to Kexec into a completely sort of fresh kernel restart all of the user space processes that they need to come in, open their files again, create their KVM virtual machines again, all that sort of stuff. So you really are kind of creating everything from scratch but what you want to do is allow those virtual machines to pick up from where they left off in terms of having the same memory and the same memory. So the way we think about live update is it's like live migration in time instead of space instead of moving the state of that machine and all its memory to a different host and starting up a new BMM on the new host you basically Kexec into a new kernel and complete file system and new version of the BMM, et cetera on the same host and then just pick up your state from memory and it's like completing the live migration from there. So there are no file descriptors, no user space state. There in this particular case, there isn't any networking at all. We don't build config net because it's all pass through devices. So there's nothing of that kind, nothing of the checkpoint restore style thing to be moved across. Okay, thanks. Yeah, thanks for the question. Are the guests doing like the equivalent of a suspend the Kexec resume? So the guests are actually mostly oblivious to this. The process, the guests get paused, state serialized, stashed somewhere in this persistent memory that we're talking about, which is not kernel managed. And then after Kexec, KVM, VMs are created fresh but then that state such as VCPU state, where all the registers are in everything gets re-injected back into KVM. And then that VCPU gets resumed from basically exactly the instruction pointer where it was left off. So other than a short pause for when the actual Kexec happens and the user space process has already started the VMM process is basically the guest is unaware of this live update. It basically experiences some steal time like it might in live migration. But yeah, a little bit more unfortunately but we're working on that. But that ties into the other thing that we spoke of as sort of future work, right? We talked about a way to pass information from one kernel to the next. Now, any driver or subsystem could theoretically just pass a blob of information sort of like a bit of a device tree maybe to the incarnation of that same driver in the next kernel. The classic one is loops for Jiffy, right? Why bother recalibrating when you can just be told? And any driver can be given sort of this is the exact state of your hardware that I left it in for you a half a second ago and it can treat that as a plate blob for that driver and it can decide that it wants to consume that and hey, I don't have to go and re-initialize hardware or I don't have to go and enumerate what disks are on the other side of it or it can decide to throw it away and say, screw it, I don't trust that old kernel I'm gonna go and re-initialize for myself. So you can actually get the pause time down quite significantly by doing tricks like that which may or may not eventually tie into stuff that we want to persist from one case to the next but we were trying not to go down that rat hole too far. Right now. Yeah, I'm trying to keep this just sort of simpler comparatively simpler initially like how do we get to guest memory within all these virtualization constraints across. Okay, any other questions before we, well, I guess I'll just keep going but yeah, as I said, feel free to intro. So just looking at these different options here. So the nice thing about having the sort of fully fledged file system in the kernel is all your allocations, mappings, whatever done by kernel you don't need to switch to user space. You get the advantages of a file system which is really nice. You can see all your sort of guest memory files use file system semantics. And if this all the states and allocations and mappings and everything are persisted within the kernel in this persistent memory it can be available immediately after Kexec without needing to reprogram any mappings from user space. But the more advanced cases like how to do mandatory access control, deliver page faults, PCI bars, IMU page tables this I think becomes a lot more complicated and unclear how to do. With the few star file system you're pushing more messages and more control to user space. There's a better path to be able to get PCI bars and faults across to user space that it can then make decisions about. Although it could still be difficult to get some of the mandatory access control, logic or interfaces I suppose, convincing your file system to do this kind of stuff using traditional file system semantics. The role memory device where we move away from file system completely and just use file descriptors it's probably the most flexible custom device, IO controls, all that sort of thing. But I think the main disadvantage and we're not bound by file system semantics which it's got pros and cons basically. But I think the main disadvantages that we have to pass file descriptors around and we lack their introspectability of the file system. Yeah, so those are kind of options we're thinking about, advantages and disadvantages of each. We also need to think about what we're gonna do with this IMU remappings to the best of my knowledge it's still the case that if you do device pass through using VFIRE causes all the memory to be pinned. And that's if we want to do this kind of dynamic memory stuff where we can reclaim pages from virtual machines and map them back in later, we need higher IMU dynamic remappings as well where the user space page tables and the IMUs page tables are kept in sync. I almost think that's kind of an orthogonal thing that we need to solve somehow although it is also a requirement yeah that we need to figure out some approach for. I want to comment on that. Hi, here is David. So for VFIRE IMU, you might want to take a look at RIDOMM. RIDOMM is able to reconfigure that but it's something different than your traditional free page reporting or something like that. Like really to add and remove memory from a virtual machine and it is able to reprogram then like the IOMM. Maybe that gives you some clue what you might or might not want to do. Just a heads up. Okay, that's great. So VFIRE IMU can actually reprogram you saying that the hosts IMM you when pages are at removed. Like you essentially have like some kind of a sparse memory area that you expose to a virtual machine but you program the IOMM you only for the parts that actually have semantics for the guest which means like the parts that are actually currently usable by the guest. And can you update the IOMM you? The downside is that you have to do that like in some kind of chunks because I think you can only have a maximum of 64K mappings in VFIRE IMU. But like let's set some limit on how many like different mappings can actually have and what will be the granularity which you can add or remove memory from the virtual machine. Okay, so this is actually operating in these chunks. Okay, yeah, you see if we're doing this kind of individual page level thing I suspect we will need a more granular interface but it'll definitely be interesting to look at just to see how that's done. Okay, just carrying on here. So obviously we need to kind of decide on what approach we're gonna attempt to build here to work with upstream collaborators to try and develop something here. Just as a straw man like the few style file system with doing raw PFN mappings from user space that seems like maybe the most appealing way to do it. And yeah, we would like to get a RFC patch series together in the kind of coming months based on what we think here at least is the good approach to pursue. And hopefully later this year it presents some more polished patches and approaches at KBM forum. Yeah, so that's what I have. I'll open the floor for comments and feedback. I have some ideas for feedback here but yeah, open the floor to questions. I'll at least cop to looking at the PKRAM patches and then saying why to myself and then totally going away without saying anything on the list. The views and the raw device options seem less scary. They seem like, okay, I can review the small semantics that are needed on the kernel side and the rest of the use case and complexity can be pushed to user space so that sounds appealing at first glance, but yeah. Personally, I was scared away about the complexity of PKRAM. Yeah, I also took a skin through those patches. Did anyone happen to know what the story with PKRAM is? It seems pretty quiet. I mean, I don't have any details but I assume like when they send it the last time we weren't especially talking with joy. Like it was basically not really feedback because the issue with anything like that and also what you're discussing it is very, very specific to like big cloud vendors that do like very advanced stuff, so to say. Which of course, like the more complicated it gets the harder it is for us to digest it if you get what I mean. And to PKRAM was like in my humble opinion something like that. Yeah, those are the things we're looking at trying to simplify, right? The concept of, you know, fuse for DAX that's something that simple and you can imagine that we will find plenty of other sensible use cases for that that are not just applicable to big cloud vendors, right? And we have... Yeah, and that was one of my... DAX, somebody who's done DAX support reviews. I think it was Vivek, right? Maybe not exactly what you want but at least I know somebody's looking at DAX support reviews. That'll be a good start, thanks. That's great. David, did you catch that name? I didn't. I'm probably gonna get the wrong person but I think it's Vivek going out from Rithkast. Okay, thank you. Yeah, so I'm just on that topic, you know, the kind of use case specific thing. Yeah, that was one of my points that I was keen to solicit feedback from the room here. You know, are there other... The sort of infrastructure, has it got other uses that we should keep in mind because we would obviously prefer not to build something that's very use case specific? Usually whenever you talk about machines, the other big use case is databases because they have some very... A lot of stuff in common. So I would be wondering, for example, if you can use something like that for very big in-memory databases. Because I've heard of some setups where it takes them, I think, 12 hours or so to boot a machine and to load all the data or even longer. Of course, if you can do a life of that on such a machine with whatever, 12 terabyte or even more, you might have quite some significant benefits. But I guess it wouldn't be a question for our database folks. Yeah, now, we've kind of carefully tried to pick out the live update part here. You know, I talked about it a bit earlier and tried to keep things separate. But yeah, absolutely. And it's not just checkpoint restore. Across live update. But there's a whole bunch of other things we can do to speed that up. Some of the big database platforms also just take minutes. And you're writing disks. That's one of the other things we can clean out, for example. So yeah, we have definitely started looking at that internally as well. That's sort of from the point of view of what is something we want to build into the guest kernel for people to use on that kind of platform. It was Vivek and he's working on something called VrtaOSS and then DAC support for VrtaOSS, which is based on views. VrtaOSS, okay. So that would be, what is this? Okay, so file system, Cervantics, but that's to the guest, right? So the guest would be able to access a file system that is backed by a VrtaIO channel, something like that. Okay. So what they're attacking on is that you, like VrtaOSS is to speed up file access in your virtual machine, and it tries to avoid the page cache. And what they're thinking about is, I think sharing the page cache between the hypervisor and the guest in a DEX area, meaning like DEX you're meaning, I think you have a PCI bar that exposes that to the guest operating system and whatever it is and then like access faster or something along those lines. And I think there's some kind of tech support for that, but I also have like not too much knowledge about that part. I think the sounds of it quite, the sounds different, right? I mean, we're not trying to use. I don't think it is. I don't think it's importantly different. The point is VrtaOSS is implemented in user space, the kernel provides views for DAX or DAX support for views basically. And so yes, there are implementations of a kernel of a user space thing, which presumably has a BFIO connection to VrtaIO to talk file system protocol and then just tells the kernel, yeah, you want that page from this file? It's at this PFN. And that's the key, right? We would go and write some other user space thing that comes up with other answers. But I think this is the kernel side of what we need of at least the basis of it. And we need to look at the precise revoke semantics. That's the key part, right? But yeah, this is a good start. Yeah, I think. Okay, I believe I'm out of time. Any other last questions or observations? Thank you very much. Thank you. Thanks, James.


Yesterday, after weeks of battling with YouTube, they removed the strike from my channel and reposted my video debunking QAnon COVID conspiracy theories. In my video, I was debunking a QAnon channel by the name of destroying the illusion. In his video, he was explaining why he's anti-mask and encouraging others to not wear masks as well. As someone who tries to teach people critical thinking skills, I feel it's important to explain why videos like his are not only wrong, but they're also dangerous. If you need further evidence of what these QAnon videos are capable of, look at the scenes from a recent protest that took place in St. George, Utah. Well, this morning I was informed that the video from destroying the illusion was taken down by YouTube, and I thought that this would be the perfect time to make a prediction and discuss the psychology of cognitive dissonance. I predict that not only will Jordan Sather from destroying the illusion say that YouTube took down his video because he's right, but I also predict that in the comments of this very video that you're watching right now, you'll see QAnon members who now have stronger convictions that Sather was right.  Thousands of psychological studies over the years are on my side with this prediction, and today we're going to try to understand why. There's a common misconception that people from QAnon and other conspiracy groups aren't intelligent, but that couldn't be further from the truth. By understanding the thoughts and behaviors of groups like QAnon, we can better understand ourselves to avoid the same thinking traps that they fall into. So in the first part of this video, we're going to discuss the work from famous psychologist Leon Festinger and dissonance theory. But before we get started, if you're new to the Rewired Soul, make sure you subscribe and ring that notification bell. Here we use critical thinking and practice skepticism to improve our own emotional intelligence and overall well-being. And as usual, all of the books that I reference will be linked down in the description below. There are affiliate links, so when you use my links to read these awesome books, a little bit comes back to support the channel. Leon Festinger was a psychologist who came up with one of the most important psychological theories when it comes to understanding why we humans can sometimes be so irrational. Festinger and his fellow researchers tell the story of the origins of dissonance theory in their 1956 book When Prophecy Fails, a social and psychological study of a modern group that predicted the destruction of the world. In the 1950s, a group by the name of the Seekers believed that on December 21st, 1954, God was going to flood the earth and aliens were going to save the chosen ones in their flying saucer. The Seekers were led by a woman by the name of Marion Keech, which was an alias to help protect her identity. Before creating this group, Keech followed Scientology and she believed that she could communicate directly with an alien species from the planet Clarion. Keech started to gain followers and over time, they started to proselytize others. Members of the group quit their jobs, dropped out of school, and sold all of their possessions in preparation for the end of the world. Through her quote-unquote communications with the aliens, Keech told members that they needed to remove all metal from their person before being lifted into the flying saucers as well. The problem was that when the saucers were coming changed a few times, so the members were regularly told to remove any metal that they were wearing. When Leon Fessinger and his fellow researchers heard about the Seekers, much like we're now predicting with QAnon, he predicted that when the aliens did not come, it would just strengthen the Seekers beliefs. And to fully document everything, some of the researchers infiltrated the Seekers to have a first-hand experience of what went on. And by the way, I highly, highly, highly recommend that you read that book if you want to learn more about this story. So, as you've probably guessed, on December 21st, the end of the world did not happen and aliens did not come. Afterward, the researchers followed up with Marion Keech and the other Seekers and Fessinger's prediction was correct. Keech and her followers believed that they ended up saving the world due to their strong faith, so their beliefs grew even stronger after the disconfirmation. Cognitive dissonance explains why members of groups like QAnon and the Seekers have such a difficult time seeing the reality of the situation. Dissonance happens when the mind holds two incompatible beliefs and in order to ease dissonance, the mind comes up with post hoc rationalizations. After researching the Seekers, Fessinger found that there are five conditions that can strengthen cognitive dissonance. When we understand these conditions, we can better understand what's going on with the QAnon members. So, here are the five conditions. Number one, a belief must be held with deep conviction and it must have some relevance to action. That is, to what the believer does or how he or she behaves. Two, the person holding the belief must have committed himself to it. That is, for the sake of his belief, he must have taken some important action that is difficult to undo. In general, the more important such actions are, and the more difficult they are to undo, the greater is the individual's commitment to the belief. Number three, the belief must be sufficiently specific and sufficiently concerned with the real world, so that events may unequivocally refute the belief. Number four, such undeniable disconfirmatory evidence must occur and must be recognized by the individual holding the belief. And number five, the individual believer must have social support. It is unlikely that one isolated believer could withstand the kind of disconfirming evidence that has been specified. If, however, the believer is a member of a group of convinced persons who can support one another, the belief may be maintained and the believers may attempt to proselytize or persuade non- members that the belief is correct. So, of all these convictions, Thessinger believed that the strongest factor was that last one, social support. Groups like QAnon strengthen their beliefs due to the fact that they all reinforce one another's beliefs. As a recovering drug addict who has helped many people get sober, a saying that I've personally passed on to others is, always travel in groups of three because it's easier for two people to think that really bad ideas are really good. I'm under no delusion of thinking that all QAnon members will see my video and understand the problems with their beliefs, but I do hope that I can impact just at least a few of them. More importantly, I do this work to help us better understand ourselves and the world around us. I've had many of you leave comments or reach out and say thank you because you better understand a loved one who fell into the QAnon rabbit hole. And others come to simply learn a little bit more about why we think the things that we do and do the things that we do. Although people like Jordan Sather from Destroying the Illusion and other QAnon members are spreading dangerous ideas, none of us are safe from cognitive dissonance or other biases of our minds. One of the most well-versed people on this subject is Professor Jonathan Hyde from the University of Virginia. He's also the author of one of my favorite books, The Righteous Mind, Why Good People Are Divided by Politics and Religion. Hyde explains that we think it's a scientist in our mind who argues our point, but in reality, it's really more like a lawyer who is trying to justify our emotions and what we already believe. In his book, The Political Brain, the role of emotion in deciding the faith of the nation, Professor Drew Wesson tells of a study he did where he presented people with information that challenged their political beliefs. Wesson's team used fMRI brain scans to see how the brain responded to this information when the person was asked to discuss the information that they were presented with. While you would think that people would argue from the rational part of the brain, the prefrontal cortex, to defend their beliefs, the emotional part of the brain was the part that was doing all of the work. Like Jonathan Hyde theorized, our inner lawyer defends our beliefs, not the inner scientist. While we may not be able to pull everyone out of the rabbit hole, we can all learn more about our own minds to catch ourselves when we fall into our own self-deception. Personally, I'm constantly reading books that help me better understand how flawed my thinking can be. Currently, I'm reading Hide and Seek, The Psychology of Self-Deception by Neil Burton, and I just finished the phenomenal book The Art of Thinking Clearly by Rolf DeBelli. At the end of the day, none of us will ever be entirely rid of our own self-deception and ego defenses, but we can avoid falling into cognitive traps like QAnon by gaining knowledge and becoming more self-aware. All right, everybody. Thanks for watching this video. And again, like always, down in the description, I've linked all of the books that I referenced in this video. All right, they're all amazing books. And I highly recommend you check out when Prophecy fails. I recently just read it after wanting to read it for a long time. Like if there's a psychological theory that I'm really fascinated with, I love reading an entire book about it. And this one was great because it was all about the origins of it. But anyways, when it comes to cognitive dissonance, like anybody who has ever taken a psychology class, they like throw this word around, right? But it's important to understand that we can all struggle with it. We all have our own biases and our own motivated, motivated reasoning and all these things that cloud our judgment, especially when we're discussing serious topics like wearing masks, getting vaccinated, we're coming up on the elections pretty soon. There's going to be a lot of arguments and a lot of debates. And what helps me have better discussions and calmer discussions is understanding not only what's going on in the other person's mind, but my own mind as well. Like it's so important to look at these different studies and understand how our inner lawyer is defending things. And sometimes we're being completely irrational. So what we want to do is what Nobel Prize winner Daniel Kahneman says, activate our system too, which is the most more rational part of the brain. And that only happens when we pause and really think about things. Alright, but anyways, that's all I got for this video. If you liked this video, please give it a thumbs up. If you're new, make sure you subscribe and ring that notification bell. A huge thank you to everybody who supports the channel by being over there on Patreon or getting my books from the rewiredsole.com or getting Burke's books by using my affiliate link down in the description below. That helps support the channel as well. And a huge thanks to everybody who supports the channel by getting merch from the merch store. You are all awesome. Alright, thanks again for watching. I'll see you next time.


The latest weapons, coupled with the fighting skill of the American soldier, stand ready on the alert all over the world to defend this country, you, the American people, against aggression. This is The Big Picture, an official television report to the nation from the United States Army. Now, to show you part of The Big Picture, here is Sergeant Stuart Queen. The English poet, Ford Maddox Ford, once asked a question which has plagued military men since the dawn of history. He wrote, sometimes wind and sometimes rain, then the sun comes back again, sometimes rain and sometimes snow. Goodness, how we'd like to know why the weather alters so. The Army's need to know more and more about weather that surrounds this planet is a vital part of the expanded research program of atomic weapons. We all talk about the weather. The Army is doing something about the weather. The weather is either a friend or an enemy. It is never neutral. When it is bad, it is very, very bad. Freezing fingers, noses, toes. The many American men who fought through the winter campaigns in Europe or trudged back from the Chosin reservoir in Korea will testify to that. Sometimes it lasts for weeks, sometimes for months. There are hurricanes that can toss a powerful ship around like a cork, thunderstorms that raise havoc with a plane in flight, innocent-looking clouds that conceal the lurking enemy, sudden storms that transform peaceful tropical islands into scenes of death and destruction. In Korea, American forces went through practically every variation of weather conditions, from rain to snow, from 20 below zero cold to semi-tropical heat, from calm to typhoon, from sunshine to overcast. The Nazis were master weather forecasters. They knew about the weather and made the most of it. They knew it seldom rained during September in Poland. It took the Nazis exactly 16 days to crush Poland that dry September in 1939. But today, World War II armies like this are obsolete. The modern American Army, with its reliance on atomic weapons, rockets, and guided missiles requires more weather information than World War II forecasters ever dreamt of provided. To gather that information, the Evans Signal Laboratory near Asbury Park, New Jersey has been made the scene of a weather research program. Behind Barbed Wire, protected by maximum security precautions, the Evans Lab, which is a subdivision of the U.S. Army's signal engineering laboratories in Fort Monmouth, New Jersey, is the site of many scientific projects. Of 500 scientists working here, many are in the meteorology department. One of the Army's largest research centers, the Evans Lab, provides the multimillion dollar plant, the elaborate equipment, which is required for the meteorology program. Side by side, in radar, radio, thermionics, and communications, scientific teams are working in support of the Army. Because the weather is big, it frequently requires big equipment. The international competition for knowledge, the necessity to know what makes Mother Nature tick, has made towers like this one an essential, as man peers farther and farther into the world that rises above and beyond him. The Army has brought together a top-flight group of meteorologists. Their task is two-fold, to design and develop new weather equipment, and to learn when, where, why, and how the weather works. This is the story of these men and the knowledge they have run from the sky around us. It is in the AeroGraph and Saund section of the meteorology department that much new equipment is designed, developed, and tested. Equipment used to explore weather conditions 20 miles above the surface of the Earth. It takes long hours and constant experimentation to find practical ways of exploring the upper atmosphere, where the temperature may be 120 degrees below zero, the humidity almost unnoticeable, and the air pressure one-one-hundredth of that on Earth. But equipment to do exactly that has been developed. This young lady, who is a mechanical engineer, is checking a circuit from one of these new sensing devices, a device designed to be sent up by plane or balloon to one-hundred thousand feet. In the Radio Saund, it is a remarkable achievement. This is how it works. The senses of the Radio Saund, the eyes, ears, nose, taste, and touch, which feel out high altitude weather conditions, are called elements. Incredibly sensitive, this tiny, delicate instrument, which you see pointed out by the pencil, is a temperature element. It reacts to minute changes of heat. An engineering wonder. It is made of a carefully prepared ceramic material, covered by a protective shielding less than one-one-thousandth of an inch thick. It will record temperatures down to one-hundred and twenty degrees below zero, Fahrenheit. The humidity element, which is a little larger, has a thin film-like layer which responds to moisture in the atmosphere. In just a moment, you'll see a demonstration of exactly how sensitive these elements are. Here a temperature element is removed from its protective vial and connected to a special strip chart recorder. The heat of the scientist's thumb and forefinger is instantly recorded on the strip chart, although it took many months of experimentation and thousands of dollars worth of elaborate machinery and equipment to produce this tiny element, it can now be manufactured for less than seventy-five cents, as the temperature element detects fractional changes of heat. So the humidity element discerns minute fluctuations of water content in the air. For this test, a few drops of water are used to moisten the corner of an ordinary desk blotter. Although the blotter absorbs the liquid, the humidity element easily picks up the mild evaporation which takes place. And the strip chart notes the results. When these temperature and humidity elements, together with a small barometer, are mounted with a miniature lightweight radio, we have the Radio Saund. This ingenious device is used to gather information about the weather, thousands of feet above the ground, and to radio it back to the meteorologists waiting below. It is the best instrument of its kind in the world. Radio Saund, which means radio sounder, weighs only two pounds, yet its ultra-high frequency signal carries over 200 miles. This is the radio section, the transmitting tube, the antenna. Although winner of first place at an international convention in 1956, it is already being replaced by a newer, more advanced model seen here on the right. The new Saund is now in the engineering stage of development. But let's look at some of the equipment other nations are using. This is the British Saund. Relatively heavy, it is less accurate, and is more complicated than ours. The Saund from Finland, while the lightest made and inexpensive, is less accurate. The Polish Saund, only reasonably accurate, is complicated, difficult to operate, and relatively expensive. The Japanese Saund, while quite accurate, is handmade and very delicate. The Saund of the Soviet Union offers an interesting comparison. While it is generally accurate, it is far less advanced in technique than ours. Many of its parts are mechanical, where the American Saunds are electronic, and its tubes are of an old standard design. Extremely accurate, easy to manufacture, and costing less than $20. The American Saund is a fine example of the Army's determination to provide the meteorological information needed by artillery, missile, and atomic warfare teams. Last but not least in importance in the Radio Saund system is the ground equipment, which receives the radio signal from the Saund's miniature transmitting set. This is the data recording and processing equipment, a linked series of electronic brains. These machines automatically record temperature, humidity, air pressure, and wind data, process it, and provide information upon which a weather trend may be determined instantaneously. For many months in the Aerograph and Saunds section, different phases of the Radio Saund system have been undergoing tests. A series of balloon flights has been conducted. For each flight, however, every part of the Saund must be checked out to see that it is in perfect working order. A pressure chamber, which simulates high-altitude conditions, is used to test the instrumentation of the Saund. The unit's power supply, an 80-cell battery, is always activated at the last minute. The battery is designed to last for three hours and is energized by adding water. At the same time, the balloon, which will carry the Saund up to over 100,000 feet, must be treated in hot water to help it expand when it reaches the thinner atmosphere far above the Earth. And the battery, of course, must be tested too. This entire system, as you can see, is designed for use in the field under combat conditions. In operation, the Radio Saund will provide vitally needed weather information quickly, efficiently and accurately, to Army ground units. Every part of this amazing device was developed here at the Evans Lab. The elements, the radio, the battery, and the highly accurate ground equipment. While outdoors the weather balloon is prepared for flight, the Saund is placed in a ground check chamber, which ties in the transmitting set with the ground receiving equipment, which is already standing by. Even the balloons used to carry the Saund are subject to experimentation. This is a new trial balloon made of synthetic rubber. For the higher that the Saund is carried, the more information it will send back, and information is what these men are after. Although the lab already holds the world record for a free balloon flight, 142,000 feet, work on these hydrogen-filled bags does not stop. When the balloon is fully inflated, a small parachute made of orange waterproof paper is attached. Many of the Saunds, returned safely to Earth, are found and used again. A 50-foot length of cord is used to suspend the Saund well below the gas-filled bag. When these final preparations have been completed, the signal light for launching is given from the control room. And here she goes. Lacking equipment is quickly put into operation as the balloon rises, and the recording and processing apparatus begins to transcribe the weather above. The American Saund is highly regarded throughout the world and is often used as a standard because of the proven superiority of this electronic equipment. A steady stream of weather data is sent down by the Saund to the men waiting below. As the information comes out of the processor, a trained technician notes the machine's calculations and compiles the results of the test flight. When all of the results are in hand, the information is taken to the laboratory weather station. Although the primary purpose of such balloon flights is to test new equipment, the weather data gathered is of value to other laboratory scientists who frequently need to know the local weather picture. The compiling of weather information from many widely-scattered individual weather stations is the technique used by most forecasting systems. From any separate reports, a total picture is derived. Today, a revolutionary system of local weather forecasting is being perfected by the scientists at the Evans Lab. For the first time with this radar weather set, a single glance at the special tracking scopes will reveal the weather picture for 200 miles. The operator of the radar weather set can tell the intensity, the height, the range, and the direction of any storm within that 200-mile area. This special stop-action film speeds up the work of the radar set. Taken during a spell of extremely bad weather, here you see a high-altitude storm moving from Buffalo on Lake Erie past the Evans Lab and out to sea. Heavy rain and snow descended from the same direction and blanketed the area from New Haven to Philadelphia. Despite all of the electronic equipment available for research purposes, the basic work must still be done by the human brain. For many of the scientists, thinking is the main job, for no electronic brain can invent new ways of solving a problem. It takes long years of training and study to make an expert meteorologist. With geophysicists like this, today's blackboard theories become tomorrow's tools for weather research. Here's one of the most unusual studies currently being made. This oversized fishbowl filled with water is called the tornado tank. By creating currents in the water, it is possible to duplicate exactly the action of a tornado.  You are about to see a miniature tornado. It begins with a slowly circulating ground current. When a persistent updraft is added at just the right moment, the circulating current will begin to wrap itself around the updraft, forming the so familiar twister. The result is devastating. Real houses in the heart of a real whirlwind would be tossed about exactly as these are here. For the power of a tornado is equivalent to an atom bomb being exploded every second. Through this study, the Army hopes to develop a better understanding of tornadoes and a new early warning system. Another series of experiments is being conducted with rockets. Aerobi rockets like this one have been used to collect air samples from 80 miles up. Other rockets are used to map the winds on the border lines of outer space. This rocket is designed to spray forth 10 packets of high explosives during its ascent. By measuring the time lag between the preset explosions, scientists on the ground below can compute wind and temperature data at the top of the world. The packets of grenades are carried in these compartments and ejected out the front of the rocket. A special radio transmitter sends back the sound of the bursting grenades to tape recording equipment on the ground below. These films were taken at an actual test firing of a grenade-spraying Aerobi rocket. This experiment performed at the Army Proving Grounds at White Sands, New Mexico was conducted under the technical supervision of scientists from the Evans Laboratory. A elaborate electronic equipment was set up to trace the flight of the rocket, which would reach 80 miles above the Earth's surface. Tracking and sound-ranging equipment would record the information beamed back by the transmitter inside the rocket. Nuclear research helping man climb toward the stars. In just a moment you will hear an actual tape recording of the signal sent back by this grenade-firing rocket. Man stand by as blast-off time approaches, listen now to this tape from the White Sands Proving Grounds. Eight, seven, six, five, four, three, two, one, fire! Ops you hear are the grenades exploding. From this recording physicists are discovering new and invaluable knowledge about the weather on the borderlines of space. The firing is over, but the work of these men to determine all the results has only just begun. Many other experiments are being conducted at the Evans Lab. Some of these small instruments were built for Operation Vanguard, the Earth-Moon satellite. An important job for the satellite was the assignment to develop a solar battery, a battery which could take the power of the sun and transform it into electricity on which to run the satellite's scientific equipment and its radio set. These cells taped here on a drum which revolves under an artificial sun constitute the new solar battery. Placed as they will be in the satellite itself, they generate a steady 12 volts. When the Earth-Moon satellite is launched, man will have taken one more step into the wonder that lies beyond his own planet. Of course, what you have seen in this short film is not the whole story. There are many other projects being carried out at the Evans Lab. But the least of these is the calibration of Army reference barometers before they are used to check Army field barometers. The sensitive, delicate barometers are put through a series of checks in this specially constructed constant temperature chamber. And in addition, there are many projects for the Air Force and the Navy as well. From all this, from these scientists and their work is coming new knowledge, knowledge which will serve not only the Army, but which one day will be of value to all mankind. The men and women of research programs like the one you have just seen are too frequently forgotten. When you see a military parade or a newscast about a new Army weapon, remember the scientists behind the scenes. They deserve your thanks. This is Sergeant Stuart Queen inviting you to be with us again next week for another look at your Army in action on The Big Picture. The Big Picture is a weekly television report to the nation on the activities of the Army at home and overseas produced by the Army Pictorial Center presented by the United States Army in cooperation with this station.