And we'll just let you leave a Mario Kart edition everybody. Which funny we actually saw a Mario Kart on the street today Yeah, we just got back from the office and that's our kiddo zippin around. Yeah, it's a remote control So cheap she's a driver's license. Yeah, that's what we'll tell everybody. Yeah Okay, so it's me lady. I'm here at my desk. I'll work on some hardware So this week on the hardware you can see on my screen that came in To get put together is the bus pirate RP 2040 version which Maybe you call circuit Python. Maybe a bit blast or I don't know. We're gonna call it something We don't know exactly what yet. I'm calling it circuit pirate for now, but it Name might change or just need to you know have something for the folder name So let's go to the computer real fast and I'll I'll just go do a quick overview because it's been actually one quick thing We had a bit. Yeah, we're running a little bit behind tonight. Sorry everybody We had a visitor Eric can from seed studio stuff. I also Zach from Particle. We're starting to do things more and more. So Thanks for visiting and we have some maybe some surprises and some collabs that we're gonna be doing with seed soon Anyways, yeah back to the show. I forgot back to your computer. I'm wearing the same shirt as yesterday Okay, so back to my computer So this is The the bus pirate which is this open-source public domain board you can see here had a mini USB FTDI chip Pick chip and it had this little like jumper cable out here that you could connect To all sorts of chips and modules and things to you know do interfacing with the buses So, you know, we we stocked it and you know, it's unavailable. So this is the latest the 3.6 the latest version You know, it's got this you can see here the The header with the labels for all the pins. It's got these LEDs power to let you know it was powered USB like data transfer mode and then Wait, this is upside down Why is upside down weird? mode and then the regulators because there's two regulators output I was one of the things I really liked about this design is it had these regulators that Three volt and five volt output and you could the enable pin was tied to a micro controller pin So you could disable and enable the output power pins, which were over here Auxiliary and then it had SPI, but he could also do In addition to SPI he could also do I squared C and I love digital inputs and it was really cool as it was a completely public domain a creative common zero, which is really cool Unfortunately unavailable and I think probably because the chip shortage got discontinued We had around it maybe revising it updating it and using the RP 2040 Which is not a full drop in compatible chip, but maybe you can do a lot of the things necessary. So let's go to the overhead real fast So this is this is the one I'll show this is the demo so this is the board I thought I would just point out some of the things Here and then I realize I don't have something to point with Let's say Grab a pen So we do an autofocus lock. Okay, so the RP 2040 chip and then this is the Megabytes of SPI flash a megabytes of the ton. We don't need that much But maybe if you're programming a chip you have the firmware on the flash and that like in the file system And you know, you can have a standalone programmer We talked about this is the analog switch Which is used to connect and disconnect the external pull-up resistors They're a very interesting technique for interfacing with five volt logic Even though the even the original bus pirate was a three-volt chip. This is also a three-volt chip I added a couple of things like the stem IQ teaport and a mode switch To connect between there's a couple different You know, we're not different modes for use like if you want to have one circuit Python And have the rebel be available or maybe hide the rebel and only have the user interface available The reset button what you need, you know always and then the boot button, which is also a user button This gets you to the bootloader mode and a couple extra LED So we have that standard power LED and the mode LED I added two LEDs one for each regulator three and five volts And then Rx and Tx, you know, I thought this could be like activity. Maybe I don't know I But these are really cheap. So I threw them on Neo pixel down here, but yeah, I'm thinking maybe put the Neo pixel up here instead. I don't know And then a little bit of analog circuitry just to kind of help interface. These are the regulators So the onboard 3.3 the external three and five It's a five volt fuse crystal and then a couple resistors to keep the USB C happy and then that same header That connects and what's neat is, you know, this is the demo board version This is running my little demo the original Buspire one of the things that came was nice. It came with like a cable set that made it easy to use and You know, even though the RP 2040 is not the same as the pick chip, you know, totally different families The pick is you know pick 16 and this is an ARM Cortex M0 and it's you know Got it's got some cool stuff like PIO, which I think would make it Very useful, I think and also Pico probe, which is the open OCD port so that you know The RP 2040 I think is a really good chip for this core Sorry for this project But there's there's a couple things that were a little complicated that I'm still kind of working out so You can see here These diodes so Can you go to the computer real fast, maybe? So the diodes are Here and The idea I had is you know the thing that you know, what's interesting is your original bus part only did For sorry for ADC's to monitor the two regulators auxiliary auxiliary output so the ADC outputs and Sorry, I remember so there was the ADC the external voltage and the 3 volt and 5 volt power supply. So the fact that the RP 2040 only has 4 ADC's actually is totally fine because you only need 4 ADC's and It definitely has enough GPIO One thing that's a little annoying is you know, the the pinmuxing is identical, but you know You can mimic I scored C very easily It doesn't have open drain connections But you can also mimic open drain by like switching from output to input and then using these external pull-ups But the thing that was a little it's challenging was the pick 16 that the bus power used was 5 volt Friendly like you you could it could accept 5 volt signals even though it was running at 3.3 volts It's just something about that chip. Some chips can do this. I know the STM F103 I think very popular chip has some pins that are also 5 volt compliant And so you can use that to interface like some people use it interface with like SCSI or something Which is a 5 volt protocol even though you're running on a 3.3 volt microcontroller The RP 2040 is a 3 volt chip and it didn't say 5 volt compliant. And so one of the hacks that I do often You know, I was like, well, I was gonna rush to kind of get this out And I was like, well, I don't think it's gonna work, but I just popped it on anyways is What's called a zener clamp? And so if these signals these signals go through a 1k resistor and then they have a 3.6 volt zener diode Reverse connected. So if this voltage Let's say this SDA 0 pin goes to 5 volts This Zener will hit 3.6. This is a little, you know, plus or minus 10% That's why I use 3.6 not 3.3 because you know, I want to get a little bit of room in either direction It'll hit 3.6 volts and like turn on And clamp this voltage at 3.6 and then you'll lose that five minus three point six the You know 1.5 volts across the 1k resistor 1.5 milliamps will get drawn from the five volts Supply the digital output and it'll clamp the voltage and you have used these voltage clamps all the time They're looking, you know, they're also good for like reverse You know Voltaging if this goes below Zero volts this will also clamp the other direction So it's you know, these these are like a very inexpensive. They're too sense of peace an expensive way to limit the voltage And this would work great if this was digital IO and this input was five volts again You know as long as the thing that's pushing five volts in can supply one and a half milliamps You're good to go promise. I forgot we're not accepting five volts in as a digit Like you may get a five volt logic level input from like a CMOS push-pull output But for the most part we're probably going to be using this Pull-up kit here where we use the 4066 to pull up Those voltages and here I actually kind of messed around with this and made this 1k But this is actually So as I kind of messed around these are all 10k pull-ups the very weak pull-ups because they're meant to work with I squared C you know or I Think SWD maybe also is is open drain so This doesn't work because When this pull-up is enabled you've got a 10k you know from v external might be five volts Through the 10k resistor and then through this 1k resistor You're not going to be able to get 1.5 milliamps because you've got that 10k resistor. That's that's acting as your choke so This Xenodio needs a fair bit of current to kind of activate and without that It kind of floats at a lower voltage. It doesn't clamp at 3.6 to clamps a little bit lower So it doesn't work very well with pull-ups, you know, I should have remembered like oh, right I'm using pull-up resistors, but hey, that's why we do board spins We learn from our mistakes and we do more so I was kind of like what am I going to do like it's it's not easy to have a Digital input be protected against five volts and also be able to have you know, there's there's a lot of chips that do Level shifting bidirectionally, right because you want bidirectional and open drain support the TXS 0104 can do open drain the TXB 0104 can do digital But they can't do each you know, you can't do both and I wanted to work with both SPI and I squared C and one wire and like who knows what else protocol so That's kind of like what do I have to give up right because I'm in I'm in trade-off land and then like oddly enough I was kind of like googling for something different and I bumped into this article That linked to a post from Evan From the Raspberry Pi Foundation. It's like this project that does you know some PCMCA thing and they're like well, it's five volts but like They just plugged it in and just say hey whatever like let's just blast five volts into there and Evan said actually Even though it's not documented The pads are five volt tolerance just not five point five volt tolerant which means that You know, there's enough inputs you know current limiting and diode protection To keep just if you put five volts in you'll be fine, but five point five It's not guaranteed Also, it's not a bad idea not to guarantee this because people just like big. Oh, I connected six volts in why didn't it work? Right because you can have you know plus or minus couple Point X volts. There's a really good app note from Microchip and it's just called like Just like tips and tricks we will tip the tricks and they had a whole mess load of different ways of doing Level shifting and and what schools add a bunch of like Xena diode stuff to it's okay You want to make like a really cheap three volt regulator? I use a Xena diode. I love Xena diodes. They're great They also do a lot of three to five volt level shifting You know and I've used a bunch of these tricks to do this diode offset I've done this before Voltage comparators plus or minuses and then don't forget again inside of every microcontroller Well, almost every my controller the once in a while again, they might not have this double diode protection there's these clamping diodes that You know, you can kind of sort of mostly get away as long as this R serial this like choke Resistor at least it's high enough The only problem is that the way this resistor and this capacitor form an RC filter and so it'll slow down high-speed signals but as long as You don't have enough current that will blow out this Diode and like the diode is not going to be like a power. It's not a one-watt diode It's going to be you know, who knows me 10 milliwatts 100 milliwatts something You can dissipate that current and you can have five volts inputs and there's a couple other Options, so I might look at you know one thing is I'm thinking if it's already five volt compliant What I might do is just keep that 1k resistor and maybe I'll email, you know the RP 2040 folks Just be like hey, can you tell me the wattage of this diode and just make sure I'm well below that another thing is though when you have this current Going in here this five volts minus three volts. This is you know one point five volts across this R-sir Whatever that current is that current is going to be injected into VDD And so your VDD will start rising a little bit and I've seen this there sometimes there's boards that are like Hey, yeah, like the inputs are five volt compliant But when you power it from three point three volts and you put five volt signals into the pins The VDD starts floating up higher and higher and you know, maybe like one or two IO pins It floats up to three point four three point five But before you know it, you know, you have a couple of IO pins being fed five volts It starts to float up to Four volts so and then like now your chip may be out of spec because it's not spec to have the VDD that high so Things to watch out for you can also of course have an external Clamping diode and then you set the wattage You're like hey, you know make it as big as you want and they have another option here where this They talk about the diode clamp A cheap way to do it, but if you want you can use This transistor clamp. I've never done this trick. So I think this might be interesting. I might check that out Okay, so that's that's where I met with a bus pirate. I did write a quick hardware test you know, I love doing this because this is a fun way of verifying All my hardware capabilities. So like setting up the neopixel when you saw it it floating around and then Let's see if I can run this test So I just have a you know, very basic test that scans the I squared C and maybe they'll plug something in real fast So you can see it change And then we'll move on to So now, you know, you can see that the secondary I scored C finds the 70 address and then Remember that internal ADC measures the three and five volt external voltages and it you know, just verify that it works fine It works fine So I'm still gonna be able to use this hardware You know, I can just remove those Zener diodes and just start playing around with this hardware I'll do this over a vision maybe with those other clamp Techniques, but it's tough because it's again It's like it's very easy to shift if you're just doing I squared C or SPI or one wire like only one of these protocols Oh, yeah, there's like a really easy way to do level shifting or low protection But if you're trying to support all of them and 1.8 volts like it seems get a little bit weird and funky anyways So that's where I'm at. Okay. So Let's get on to the great search The great search brought to you by did you key and a fruit every single week Lady did use a private engineer and help you. Yes, you find the things that you wanted to key calm lady What is a great search of the week this week? We're looking at Zener diodes. So let's go to the computer and I'll show my moment of zener So Zener diodes are great for a bazillion things one of the projects that I've been working on is this protocol interface That is supposed to be five volt compliant And one of the ways I'm doing that is using this zener clamp to make sure that the inputs coming into these GPIO pins Never really get above three point three three point six volts and I've realized, you know, people will realize how amazingly wonderful Zener diodes are. They're great. They're wonderful. I mean, they're they're a dessert topping and a floor wax Some fun tips can be found in this document. It's just called the three volt tips and tricks And the particular technique that I mentioned, there's actually a couple in here So one is using a zener as a very low-cost Regulator or power supply or like whenever you need a voltage reference plus minus 10 volts It's not precision, but sometimes it's okay. Sometimes you're just like look I just need about three volt input to buy us something You just need a resistor and current going into the Zener diode And this will kind of sit at whatever, you know, this is rated as the three point six volt zener This will be around three point six volts So that's a zener power supply and there's a couple of notes about it A zener clamp, that's the voltage Protection circuit that I mentioned before The voltage going into here as long as this resistor makes the bias into D1 about Five milliamps or so or or Less, yeah, we're like five million. I mean, it's not you depending on the wattage This V out won't exceed the reverse voltage of the zener diode. There's also a Great tutorial by evil mad scientist is over ten years old, but Zener diode never go out of style So check it out interaction to Zener diodes by EMSL Wonderful scientists over in California and I tackle all the different tips and tricks that they use zener's for again, like You know simple voltage regulators level shifters Making you know stacking them up to make multiple reference outputs from a higher voltage supply Because they'll have that Positive they act like a normal diode when forward biased with like a point seven volt drop But on the reverse bias they can have an adjustable drop And so when you purchase the zener diode, you'll have to specify what the reverse voltage breakdown voltage you want is And we'll show that More more tips and tricks. Here's a fun one, you know, they use this to drop 36 volts input into a five volt regulator They just need to like lose 10 12 volts a 12 volt zener will do it as long as it's Rated for the amount of current and then the voltage drop across it. So that's something to watch for Zener diodes, let's go to digikey and check what they've got first off You have you wondering am I at the digikey site because the logo looks different. They just did a Logo refresh that they're going with a brighter red color, which I like and then losing the dash and the digikey I think they did a post on social media also about their rebranding. I like it's a little bit more modern I Personally think that the D like the the D in the center of the D like reminds you of the catalog sitting on my shelf for You know decades, maybe that's what the D stands for So they've got zener diodes. Do they ever? Hundreds of thousands of them almost so there's zener kits And there's a zener diode arrays, but we'll just look for the single zener diodes Looking for you know active ones In stock not marketplace so it gives us down to you know 9000 So the reverse voltage, so there's a couple of standard voltages There's a few you know families that are popular. I tend to use the mm series. It's made by them. Yeah, they're made by multiple different Manufacturers and they come in kind of set voltages like every point three volts It's like one point eight two point one two point four two point seven three point. Oh Three point three three point six, etc. Etc They go very very high, but for for what I often am using the Unisport, which is again clamping a signal down from say five volts down to 3.3 volts I'll let you just 3.6 volts in or now you're wondering why aren't you using a 3.3 volt? Because oftentimes I'm not biasing with a full milk five milliamps and most of them are rated that Voltage that they're rated at the nominal voltage You only get when you're putting a significant amount of current through But if I'm taking this up to some other digital signal, I'm not usually getting a full Five milliamps. In fact, this 1k resistor is limiting me to Your 1.5 Volts across 1.5 milliamps through the 1k resistor This is gonna be you know 1.5 milliamps I've measured it never quite gets to three point six is usually like three point two three point three so let's look at Again, but you can get any voltage you could possibly want including three point three So let's look at three point six volt Zener and then I'm gonna do surface mount because Personally, I'm gonna be using surface mount, but they have through hole, you know It's one thing you can definitely get through hole forever our Zener diodes and Basically, you can get, you know any package you like and the thing you're gonna walk want to watch for is No, wait, did I click three point three? Sorry. I meant three point six. So let me Let me delete the nominal voltage And then go back and I'm going to select nominal 3.6 Um Apply and then don't forget you always have to have, you know Zener die is the only work when there is a resistor you always have to have a resistor to Limit the current and the voltage that's going to appear at the So that this reverse voltage has there's some The Zener diode has like a three point six volt reverse voltage If you try to put full five volts directly on it It doesn't like regulate it. It'll it'll try to pass all that voltage through Um, it'll draw a lot of current and it'll blow up So you need to have much like an led needs a choke resistor. You do need to calculate your choke resistor How do you calculate it? It depends on the milli wattage of the diode So you have to figure out with that voltage drop across the reverse biased Zener Three point three three point six and how much current is going through it. You can't go above the milli wattage so It's a trade-off right if you're if you're trying to drop a huge amount of voltage With a lot of current you're going to have to go big. So these tiny sod three two threes You know good for those little one one point five to five milli amps little little signal level shifters If you're trying to use it in a power supply Um, like we showed with the evil mad scientist example of using it to drop the voltage into a regulator You're going to need something much much bigger. Uh, you'll need like a one watt or a two watt zener and they make them in those Um wattage, but you might have to go through hole to get that physical size Or you could always, you know, use multiple ones. This one looks like, uh, you know, it's chunky It's a do two one nine. They be 800 milli watts you can get them in, you know, you can look up here For the power max You can get them up to like a watt or one half, but again, we're doing it for signal We don't really care and I do like the sod 323. Um, I want it to be nice and compact So i'm going to pick Um that for the size The rest the 123s are a little bit bigger. I don't I want to kind of minimize space and, um You know, there's there's a there's a lot, but this one's a really, you know two two and a half cents on semi So I know that they're going to be able to always have them in stock I'm not zoom in Um come and tape in real and then, you know, look at the datasheet for Um specification I will say that they're jelly bean parts the mm 3z series, you know, they're available for multiple vendors Um, they'll just have that different 3v6 Where the xxx is in the in the datasheet? Um, you'll get different voltages from 2.4 to 7 75 volts Um, but still not a bad idea to look especially if there's um an impedance And what current it's expected again 5 milliamps is pretty common That's a good idea to look and the variation you will get variations for the 3v6 like I said can go as low as 3.4 to 3.8 at 5 milliamps um But I don't usually drive them at that Current usually drive them at a lower one. It looks like once you get to the higher voltages They're expected to be driven at 2 milliamps instead So zeta diodes, they're amazing. Uh, really they do everything I love to throw them into my designs for all sorts of like random voltage reference protection circuitry And they're really cheap Two cents. So uh, check out some of those links We'll have them in the description so you can read the evil mad scientist guide As well as the microchipped uh google tips and tricks pdf for these wonderful zeta diodes And that's our show for the week this week. Thank you so much Everyone for joining us get a little glimpse of what we're up to and more will be Online all week Tons of cool things tons of cool projects beep beep You'll see lots of factory footage new products We got show and tell we got ask an engineer. I got everything going on this week and more. We'll see everybody Later. Thanks everybody


So, hello everyone, first of all very good morning to all of you and thanks for joining this session. So, we are here to present a session on how to manage known state in OpenStack deployment. In this session we will see the different components of known state, we will see the definition of known state and we will see how we can bring an inconsistent site from an inconsistent state to a consistent state and we will see the different phases in achieving this consistency in the network. So, before doing that let me introduce myself and my team member here. My name is Vinod Yadav and I am working as a Cloud Deployment Engineer for Ericsson under Cloud Platform. I have with me Shashank Gupta who is also working as a Cloud Deployment Engineer for Ericsson under Cloud Platform. So, why we have chosen this topic? We have chosen this topic because as a Cloud Deployment Engineer we have worked on different infrastructures as a deployment and as a support engineer and we have seen the environments where we have for example 10 to 20 different sites deployed and most of this sites have a different level of hardware, different level of software, a different configuration of settings, different kernel bias version and other security level configurations. So, this kind of environments are inconsistent environment and they have many challenges like frequent application crash, they have frequent system outages that can significantly impact the tenants, it can impact the overall stability, functionality and profitability of the business. So, we have also seen the environments where we have for example 10 to 20 different sites deployed and all these sites are on the same level of hardware, software and other configuration settings. So, these are the consistent deployments and they have many advantages over the inconsistent deployments like they are most stable and because of the stability the tenants have a positive impact and that adds up to the overall profitability of the business. So, basically in this session we will try to go through the challenges which we face in an inconsistent deployment and the way forward to bring this inconsistent deployment from inconsistent state to the consistent state. So, what we hope to cover today in this session is first we will go through the definition of known state and then after that we will go through the different components of known state. We will see the different components like hardware, software, configuration, file settings, we see the kernel bias versions and other security level configuration. And then after that we will go through the benefits of known state and then important part to cover today in this session will be how to achieve known state where we will go through the different phases in achieving the known state. And then we will conclude our presentation followed by a question and answer session. So, what is known state? So, known state is basically knowing the stable state of the deployed system. Now, the deployed system consists of many open stack and non open stack nodes and these nodes consist of many components like hardware, they have softwares deployed, they have configuration files and they have kernel bias version, they have firmwares and other security level configuration. So, known state is basically creating a baseline for a stable infrastructure and deploying this infrastructure in the deploying this baseline into the infrastructure making sure that the baseline is implemented into the into the different sites in the infrastructure. So, creating a baseline is a important aspect in achieving known state. So, baseline can be created by taking a snapshot from the deployed site by snapshot I mean gathering the data from the deployed site and then doing an analysis on the on the captured data and then based on the analysis final finalizing the baseline for the deployment. So, known state basically aims in maintaining consistency in the network. A high degree of consistency means that for example, if we have 200 compute nodes for example, deployed in a site. So, a high consistency means that all this deployed compute should be on the same hardware levels, they should have the same software deployed, they have the same configuration file settings and other configuration should be same across all these deployed sites. So, a high consistency in the network avoids mismatch of the features across the infrastructure and it is easy to maintain security compliances as per industry standards. Now, with the high degree of consistency we have a high stability in the network that reduces the overall life cycle management cost of the deployed system. Now, here we will see some difference between the consistent versus inconsistent deployment. So, in this slide if you can see we have two infrastructure, Infra 1 and Infra 2. So, let us see Infra 1, in Infra 1 we have for example, 200 computes deployed. Infra 2 also we have 200 computes deployed, but if you see closely on Infra 1, most of the computes are on a different level. For example, let us say compute 1 it is on version X, compute 2 is on version X, but compute 3 is on version Y and the last compute is on version Z. So, most of the computes are at a different level and this is an inconsistent deployment. So, basically this inconsistency in the network may be caused because of different reason. For example, let us say if a particular compute there is a issue observed in a particular compute and then the fix is implemented only in that particular compute. So, the fix is implemented in a particular compute. So, that compute will be at a different version and the rest of other computes deployed will be at a different version. So, that can cause the inconsistency. There may be scenarios where as a part of continuous integration and continuous deployment, new racks are added to an existing deployment. For example, if a new rack is added and that have for example, 40 or 50 computes compute nodes and it may be possible that the important updates may be missed in the newly added computes. So, in that case it can also cause inconsistency in the network. And this kind of deployments are unstable and they are more security vulnerable. On the other hand, if you see in for two we have the same number of computes deployed, but if you see closely compute one is on version X, compute two is on version X and the last compute is also on version X. So, all these computes are on the same version and this is a perfect example of consistent deployment. So, these type of deployments are more stable, they are more secure, and it puts you in control of your infrastructure. So, in the few couple of slides we will see how we can create a baseline from an infrastructure and how our environment looks with a known state deployed. So, I have taken reference infra here. So, let's see, let's for example, if this infra consists of horizon, keystone, compute, they have controller, database and fault manager. So, in the production environment we may have different other kinds of node deployed. So, just an example I have taken here for infrastructure. So, for creating a baseline we first have to take the snapshot of this infrastructure. By snapshot I mean we have to capture the data from this infrastructure. Now this capturing the data can be done through a different way. For example, we can use different configuration management tools like we can use Ansible, we can use Puppet to capture the data, or we can use the data collection tool like Foreman to collect the data. And once the data is collected, we have to analyze the data. This analysis involves basically recommendation from architects. It involves design and testing recommendation. And also it involves referring to any release nodes, relevant release nodes for the infrastructure. And based on the analysis, we finalize the baseline. And once the baseline is finalized, it is deployed into the network. So, we'll see this in detail in the coming section, where we'll see different phases in achieving known state. So, here you can see we have six different sides. And these all sides are pointing to a stable known state infrastructure. So that means all these sides have same, they are on the same level. And they are pointing to a stable known state infrastructure. So, we have created this stable known state infrastructure from the baseline. So that means all the six sides are pointing to this stable known state. That means we have these sides on the same level. And this is a perfect example for a stable environment and an example for a consistency in the network. With this kind of deployments, it's easy to troubleshoot any problem in the network. It's very easy to locate the issues in the network. And it's very easy to troubleshoot. And it has a higher end user satisfaction. So, let's move to the next section, which is known state components, where we'll be seeing the different components like hardware, software, kernel, bios, and other security level configuration. So I invite my colleague to go through this section. Thank you, Manoj. Good morning, everyone. So the first question arises, what are components and why do we need to know the components? So components are nothing but a part of whole environment. And we need to know the components so that we are clear and specify the requirements. Once we identify the right components, we can identify the changes required, structure the delivery, identify the risk, and plan for the mitigation action, make right decision on the right time, and identify the overall cost for deploying this known state. So let's go through each and every component one by one. So the first component which we included is reference architecture. With reference architecture, we refer to standard nomenclature of the servers so that we can identify why these servers were created, and what is the purpose behind for these servers. So in future, if there are any issues with respect to reference architecture, a troubleshooter can identify the servers by looking at its name. And he can save a lot of time in looking these information outside the documents and can easily troubleshoot the issues. With reference architecture, we also aim to clean up the artifacts. These artifacts might be created during the pre-deployment phase or the deployment phase or during the testing or during the troubleshooting phase. By cleaning up these artifacts, we can fully utilize our cloud environment, and hence, it can improve the performance of our system. The next component which we included is BIOS, BIOS of OpenStack nodes. An inconsistent version of BIOS can leverage to numerous threats to our environment. So it is important that all the BIOS in all the nodes should be at the consistent version so that these risks can be mitigated easily. The third component is kernel. Kernel of OpenStack nodes. Inconsistent kernel version can also impact and can also risk our environment. And it also impacts availability of new features in our environment. Since OpenStack is used globally by system admins, so it is important that the kernel version should be consistent across multiple nodes, across multiple sites. The fourth component which we included is software. Software of OpenStack nodes. It may be NOVA, Neutron, Cinder, Lance, any core packages. This is the base of our environment. So it is important that these should be also included in knownStack, a knownStack project. These software contains bug fixes which is identified by the global system admins globally. They also include new features. So it is important that these software must be updated on all the nodes across multiple sites. The fifth component is configuration. Configuration of OpenStack nodes parameter. It may be related to NOVA, NOVA.conf, Neutron, Neutron.conf, Heat, Cinder, Keystone, everything. This is a very important component for achieving knownStack. During our analysis, we found that system admins or support teams update the parameter of some files where they have tenant issues. But it is important for knownStack that these parameters must be updated in all the nodes so that other servers or other VMs do not face similar issues. The last component which we have included in knownStack is security. Stay away from the danger. It is not only a necessity, but it's a requirement. So why not a cloud infrastructure? Whether it is a compute node, controller, or even a fuel node, these must be updated regularly with the latest security packages as per the company compliances. So summarizing knownStack, what we address with the components here. We address standard nomenclature. We clean up the artifacts which were created during the deployment phase or during the testing. We address the configuration dependencies. We fix the file system space. Maybe it's a var log or root space. We update the kernel version. We update the BIOS version. We remove the inconsistency of package across all nodes. And at the end, we secure our node by node hardening. So let's look what benefits knownStack gives to our environment. It gives us a stable environment and hence making it a profitable growth and improve our ability to mitigate the volatility in demand. It also reduces the issues in our environment and thus reducing a lot of time which is involved in troubleshooting. And thus it saves a lot of cost. After achieving knownStack, it also gives us a better software quality with better speed and better efficiency along with all the quality attributes. knownStack also gives us a global scaling and a superior performance using automation via standard and centralized process. Moving next, we'll see how we can achieve knownStack by keeping important factors in our mind. I'll hand over the slides to Vinod and he will continue in brief details about those. Thank you, Sushant. So how to achieve knownStack? So knownStack can be broadly achieved in we have three phases in achieving the knownStack. The first phase is the pre-analysis phase and then planning and deployment phase. And the last phase is post-analysis and audit. So let's go through the first phase, which is the pre-analysis phase. So in the pre-analysis phase, we identify a stable infrastructure for creating a baseline for the deployment. So once the stable infrastructure is identified, we capture the data from the infrastructure. Now we can capture the data through configuration management tools like Ansible Puppet or we can use the other data collection tools like Foreman. So once we collect the data, we do an analysis and based on the analysis, we finalize the baseline. Now if you see here in the diagram, we have a baseline ready and it's created and it's ready to deploy into an inconsistent site X. So now this inconsistent site X, in the pre-analysis phase, we have to take the data from this inconsistent site as well and we have to do analysis. And once we collect the data, we do the analysis and then we compare the data from the inconsistent site from the baseline and we have the mismatch data between the baseline and the data from the inconsistent site. Now our aim is to implement this mismatch data into an inconsistent site X. So to summarize, in the pre-analysis phase, we create a baseline and we have the mismatch of the data ready to deploy into the inconsistent site. Now we then move to the next phase, which is planning and deployment. So in the planning and deployment phase, we basically do the development and deployment. So in this phase, automation of the baseline is done for the deployment. Now which automation tool to select? It depends upon the organization needs and requirements. They can use any automation tool based on their requirement. So once the development is done, then it's very important to capture the deployment procedure into a procedure document. So during the development and documentation, it is very important to consider any customization, which is already there in the network. And we have to make sure this customization is captured into the procedure document and it should be addressed into the development phase as well. So once the development is done and once the documentation is completed, we go to the deployment phase where we deploy the baseline into the inconsistent site. And then once the baseline is deployed, we do a complete system validation. We have to make sure all our services, all the configuration files, and all the customization are preserved and our services are all up and running. And then so to summarize, in the planning and deployment phase, we have done the development and deployment and we have executed the system validation test. And then finally, we enter into the third phase, which is post analysis and audit. So in this phase, we again capture the data from the deployed site. And then once the data is captured, we do an analysis and then we make sure that the captured data matches with that of baseline. So in that way, we have moved the inconsistent site from an inconsistent state to a consistent state. So we'll see in detail all these three phases in the next coming slide. So let's go to the first phase, which is the baseline creation. So in this step, it's basically a two-step process. So first process is the fact collection, where we collect the data from the deployed site. Now the data may consist of any standard data, which is there, or any customized data, which is present in the deployed site. So we have to consider both this data and we have to collect this data. And once we collect the data, we have to do an analysis on the collected data. So the analysis involves architect recommendation. It involves design and testing recommendation. And we also refer to any relevant release notes from the deployed site. And based on that, we finalize our baseline. So this slide basically mentioned what I just talked. So for creating a baseline, it is required to identify a stable configuration, as per most appropriate end user requirement. And it involves the collection of configuration settings present in all nodes. It involves collection of the standard data, as well as any customization in the network. And it involves recommendation from architects. It involves design recommendation, testing recommendation, and also it involves referring to the release nodes. With that, let's move to the second phase, which is planning and deployment. And I invite Shashank to go through it. So now we have done the pre-analysis and identified the baseline. The next step is to deploy those changes, deploy the node state delta. Since our environment is huge, we have hundreds of compute nodes and multiple sites. So we have to do rollouts in that manner that it should be very speedy. But keeping in mind that we should deliver a quality service with full efficiency. So by automating solution, we cover all these three factors, which is speed, quality, and efficiency. As automation helps us limiting the response time between task and activity, it also speeds up the delivery by making task and activity, consuming less times with lefts or efforts. By automation, also it enables us to easy access to our dashboard with real time data and for fast governance and decision making. Automation directly supports the delivery with high quality services, with higher precision and accuracy rate. With automation, we can limit our amount of rework as compared to the manual deployments. Automation also can adapt to new features easily. And thus, we can shift our focus to value driven activities. Thus, automation is key to accelerate the process execution. So let's see what value does automation gives to known state. It can marginally reduce the cost by saving a lot of time in deployments. Plus, it gives a better software quality with high precision and accuracy. We can easily speed up the delivery in multiple sites using automation. And thus, it empowers us to utilize our full capabilities. So it gives a good margin, a rapid growth, and market protection. But to achieve this known state, we have to choose the right path, that is correct configuration management tools. Here, we are specifying some industry-spended configuration management tools. The first one is Puppet. It's an open-stack source tool. It's a very reliable and scalable tool. Another tool which we can use for automation are Ansible Playbooks. These are quite famous in the open-stack industry. It is also very scalable, easy to operate, grow, and upgrade. With Ansible, it also empowers us to control the deployments in a specific manner. Apart from doing the deployments, doing the changes, we need some other tools for data collection so that we can do a pre-analysis and the post-analysis. We can use tools like Foreman, easily create Rubyfacts, install customized plugins. And this gives us a real-time data. And we can compare the data for multiple sites at the same time. Apart from this, we need some tools to validate our environment. We can use any industry-standard tools like Tempest or anything of your choice. So once we identify our tools, the next step is to deliver the known state delta for various components, whether it is a reference architecture, BIOS and kernel, security, software packages, or customized configuration. At this stage, we address the discrepancies in software in all the sites and update the packages. We also update kernel and BIOS version, fix the server nomenclature with the standard specifications, clean up the artifacts, update the configuration, and making sure that our customization still persists. Once we did all these deployment, the next step is to validate our changes, whether our changes are not breaking the system or it's not introducing any new issues. Once the validation is complete, we move to the final audit. So let's see what phases are there in final audit. In final audit, we can use any configuration management tool like Foreman, because running the audit in manual way will take a lot of time and can have errors. With Foreman, we can easily create Rubyfacts for various things, whether it is packages, whether it is for security, whether it is for kernels. We check whether the deployed system with pre-analysis state and see whether the consistency has been achieved or not. We validate all the customization are in place, all the configurations are updated properly, and the system is secure. So once we done the final analysis and we achieved the known state, now I want to conclude with some recommendations, how can we always be on the known state? So the first recommendation is that we should have a baseline. A golden standard configuration should be set and it should be well documented for future reuse. So whenever a new site in future is rebuilt or any rack is expanded or any site is rebuilt, these standards, these documents should be always referred. And it should be updated regularly when there are changes as per the requirement. The second recommendation which we make is that there should be a proper life cycle management of system updates, whether it is a small update or a large deployment or a security package update or a software update. It should be done with the proper life cycle management process. The rollout should be done in all the nodes. The third recommendation we make is that rollout should be automated using the configuration management tools. It may be of your choice, but it helps achieving the known state properly. The next recommendation which we make is that the deployment should be in a controlled manner. We should identify whether this update is required in our system and it adds a value to us, then only we should plan for its delivery in proper manner and in all nodes across multiple sites. The last recommendation is that we should properly optimize our admin resources so that we can save our time and cost. With this, we conclude our session and we are open for question and answer sessions. Thank you, everyone. Thank you, everyone. If you have any questions later on as well, you can reach us at the email ID here. So thanks again. Thanks for joining this session today. Thank you. Thank you.


Being this close to nuclear war should change how we see things. It's so surreal how we are closer to nuclear war than we have been since the Cuban Missile Crisis and it's only continuing to escalate and yet hardly anyone seems to notice and hardly everyone is just going about their lives thinking their usual thoughts and having their usual conversations. Vladimir Putin has put Russia's nuclear forces on high alert and has issued threats of nuclear retaliation should Western powers try to intervene in Russian military operations in Ukraine. The Biden administration's first nuclear posture review will be out soon and will likely mirror these changes in Russia's nuclear posture in some ways. The probability is skyrocketing of a mass extinction event which could easily block out the Sun for years and starve everyone to death who isn't lucky enough to be killed quickly in the initial inferno. A recent New York Times article titled The Smaller Bombs That Could Turn Ukraine Into A Nuclear War Zone discusses the danger of Russia using a so-called tactical or low yield nuke if the war isn't going well for Moscow. Making the calculation that using one of its much less destructive nuclear weapons might succeed in intimidating its enemies into backing down without resulting in full-blown nuclear war, an excerpt quote. It feels horrible to talk about these things, Dr. Kuhn said in an interview, but we have to consider that this is becoming a possibility. Washington expects more atomic moves from Mr. Putin in the days of head. Moscow is likely to increasingly rely on its nuclear deterrent to signal the West and project strength, as the war and its consequences weaken Russia. Lieutenant General Scott D. Berrier, director of the Defense Intelligence Agency, told the House Armed Services Committee on Thursday, end quote. A truly sapient life form would read those two paragraphs and immediately say, Oh, well, obviously we can't continue along this trajectory anymore. Let's negotiate a ceasefire by whatever means necessary and move toward détente as swiftly as possible. But rather than move to de-escalate, all we're seeing is continual escalation, with increasingly shrill calls to escalate further. It is worth noting here that experts have been warning for years that these low yield nuclear weapons pose a horrifying threat to our species because of the risk of somebody making the calculation that they could get away with using them. As we see in this 2019 article by James Carroll titled, The Most Dangerous Weapon Ever Rolls Off the Nuclear Assembly Line. Such warnings just didn't get much attention before because they were about the United States manufacturing those weapons and did little to amplify Russia hysteria. It is probably also worth noting that the U.S. has been updating its nuclear arsenal with advancements which make its nuclear armed rivals more likely to calculate the need for a full-scale nuclear first strike. As our Jeffrey Smith explained last year for the Center for Public Integrity, improvements in the ability to perfectly time a nuke's detonation make it much more destructive and therefore capable of destroying underground nuclear weapons, which would necessarily make a government like Russia more likely to launch a preemptive strike in a moment of tension to avoid being disarmed by a U.S. strike. Others worry however that those leaders, knowing that many of their protected land-based weapons and associated command posts could not escape destruction, might be more prone to order their use early in a crisis or conflict, simply to ensure they are not destroyed when incoming warheads arrive. Promoting a hair-trigger launch policy that could escalate into a general cataclysm. Physicist James Acton, who co-directs the Nuclear Policy Program at the Carnegie Endowment for International Peace, has written extensively about the need to avert necessary conflicts, said that efforts to modernize the nuclear arsenal should be more focused on ensuring weapons safety, security, and reliability, unless on goosing their accuracy. If China or Russia believed in a conflict or a crisis that we are going to attack or destroy their nuclear forces and command posts, that gives them an incentive to use nuclear weapons first, or to threaten their use. They have strong incentives to take steps that would further escalate the crisis and create new dangers, Acton said. New Air and Sea Launched Cruise Missiles also place Russia on hair-trigger alert, Smith writes, quote. New Air and Sea Launched Cruise Missiles in particular, Nuclear Weapons Council Chair Andrew Weber said, are not necessary, and will undermine deterrence because they are stealthy, surprise attack weapons that will make opponents nervous enough to adopt hair-trigger launch policies. Since they can be deployed with both conventional and nuclear warheads and it's impossible for opponents to tell the difference, their use could cause unintentional escalation from a conventional to a nuclear war, end quote. And while everyone's talking about the fear that Putin may make a calculated decision to initiate a nuclear exchange should he feel backed into a corner, at present the primary risk of nuclear war remains what it's been for about as long as we've had these infernal weapons on our planet, that the explicit understanding and mutually assured destruction will be set into motion by a nuke being discharged by either side due to miscommunication, miscalculation, misunderstanding, or malfunction, or some combination of these amid the chaos and confusion of escalating brinkmanship, which nearly happened many times during the last Cold War. As Nuclear Age Peace Foundation President David Krieger explained back in 2017, quote. Nearly 15,000 nuclear weapons are currently under the control of nine countries. Each has a complex system of command and control with many possibilities for error, accident, or intentional use. Error could be the result of human or technological factors or some combination of human and technological interaction. During the more than seven decades of the nuclear age there have been many accidents and close calls that could have resulted in nuclear disaster. The world narrowly escaped a nuclear war between the United States and Soviet Union during the 1962 Cuban Missile Crisis. Human factors include miscommunications, misinterpretations, and psychological issues. Some leaders believe that threatening behavior makes nuclear deterrence more effective, but it could also result in preventative first strike launch by the side being threatened. Psychological pathologies among those in control of nuclear weapons could also play a role. Hubris, or extreme arrogance, is another factor of concern. Technological factors include computer errors that wrongfully show a country is under nuclear attack. Such false warnings have occurred on numerous occasions, but fortunately human interactions, often against policy and or orders, have so far kept a false warning from resulting in a mistaken retaliatory attack. In times of severe tensions, a technological error could compound the risks, and human actors might decide to initiate a first strike. End quote. As Ray McGovern explains in a new article for Anti-War titled, Will Humans Be the Next Freedom Fries? The early launch detection system Russia relies on for nuclear deterrence is technologically lagging and prone to error so that it could easily lead to a nuclear war as the result of a simple mistake. He discusses an instance when Russia's early detection equipment falsely reported a potential nuclear attack as recently as 1995, when relations between Washington and Moscow were as warm and cozy as they've ever been. It seems reasonable to say that a similar incident would have a good chance of being interpreted and responded to in a very different way should it repeat itself in 2022. McGovern says that launch to target time has shrunk so much with the advancement of technology that there are now probably multiple subordinate commanders out in the field with the authority to launch a nuclear strike. Quote. Here is the thing. The Russians have good reason to be on hair trigger alert. Their early warning system is so inadequate that there are situations, including those involving innocent rocket launches, under which Russian President Putin would have only a few minutes, if that, to decide whether or not to launch nuclear missiles to destroy the rest of the world on the suspicion that Russia was under nuclear attack. If that? Yes. Launch to target time is now so short that it is altogether likely that the authority to launch nuclear weapons is now vested in subordinate commanders in the field, so to speak. Readers of Daniel Ellsberg's doomsday machine are aware of how the U.S. actually devolved this authority during the days of the First Cold War. I for one was shocked to learn that. Worse, today the subordinate commanders might be non-commissioned computers. End quote. U.S. pundits and strategic experts seem blissfully unaware of how close we are to being fried in a nuclear strike by Russia. McGovern writes. For a lot more information on how dangerously close we're getting to the brink, check out former UN weapons inspector Scott Ritter's epic rant toward the end of his recent chat with the Grey Zones, Max Blumenthal and Aaron Mate, where he talks about all the horrible U.S. government decisions and shredded treaties which have led us from a rare moment of relative nuclear safety to the precarious position we now find ourselves in. I'm always stunned at how, whenever I talk about the way all this brinkmanship is bringing us ever closer to a precipice from which there is no return, people will often tell me, yeah well if it happens it will be Putin's fault for starting it. Like that's in any way a sane response to our plight. People are so confused and compartmentalized about this issue they seriously think, if nuclear war happens it will be Putin's fault is a complete position on this issue. I always want to shake them and ask them, if you looked outside right now and saw a mushroom cloud growing in the distance, were the words it was Putin's fault give you any comfort or would you perhaps wish measures had been taken early on to prevent it from getting to this point? It's a useful thought experiment that can be applied in many areas while we sit here on the brink waiting to see what happens. If you looked outside right now and saw a mushroom cloud growing in the distance, how good would you feel about the decision not to guarantee Moscow that Ukraine would never receive NATO membership? If you looked outside right now and saw a mushroom cloud growing in the distance, would you be able to say you tried everything you could to prevent this from happening? If you looked outside right now and saw a mushroom cloud growing in the distance, would you feel okay about how you've been treating the people you care about? If you looked outside right now and saw a mushroom cloud growing in the distance, would you feel okay about how you've been spending your time? If you looked outside right now and saw a mushroom cloud growing in the distance, would you wish you'd spent more time at the office, wish you'd participated in more social media drama, wish you'd taken fewer chances, wish you'd loved with less abandon? The swelling likelihood of imminent nuclear armageddon draws everything into focus, helps clarify your priorities, helps you figure out how to live your life from moment to moment. And from where I'm sitting, this clarity brings with it a sense of responsibility as a human being, a responsibility to really be here now, to truly live our lives with presence and appreciation, to drink deeply of the cup of human experience. Because the only thing worse than everything ending would be if it ended without having been seen and valued while it lasted. We have control over so very little in this insane little pickle we've found ourselves in. But one thing we can definitely control is whether we're really showing up for however much time we've got left in this amazing blue planet. Treasure each moment is something you hear so often in life that it becomes a cliche and loses all its meaning. But there has never been a better time to take another look at it with fresh eyes and begin putting it into practice. Treasure each moment, because there might not be very many of them left. This is the moment. This is our moment. If this does wind up being humanity's last scene on this stage, let's at least help make sure we shine as radiantly as possible before the final curtain.


Humans have observed many wonders across the cosmos, yet much of our universe is still shrouded in mystery. Among those mysteries is the formation of our universe, which should have resulted in a balance of matter and its corresponding counterpart, antimatter. Much of that matter is thought to exist in the form of dark matter, which can't be directly observed. Much of the antimatter can't be found at all. Studying fundamental particles originating from sources up to billions of light-years away may hold the key to understanding both the composition and history of our universe. Welcome to the world of particle physics, currently being explored from low Earth orbit by the Alpha Magnetic Spectrometer, or AMSO2, installed on the International Space Station, or ISS. Planets, stars, interstellar gas, dust. What we're able to observe across the universe comprises less than 5% of the total content found throughout the universe. The other 95% is dark. Dark matter as well as dark energy. Dark matter doesn't interact with or produce light as far as we know. It doesn't consist of normal matter, or matter that can be observed directly. So how do you improve understanding of something that can't be observed? One way is to look for evidence of its interactions. Kurt Costello, the ISS program chief scientist at Johnson Space Center, explains how the giant magnet of AMSO2 is working to help scientists test and modify their theories. Scientists are using AMSO2 to look at cosmic rays, charged particles that travel near the speed of light. AMSO2 categorizes each cosmic ray, looking at a high energy range to see whether that stellar phenomena that we can measure can account for all of the cosmic rays we're seeing. But if you see something in the spectra that doesn't fit, then this could be evidence of dark matter interactions. By studying cosmic rays, scientists are also able to search for antimatter. The Big Bang theory of the universe's origin requires a 50-50 ratio of matter to antimatter. But to date, the amount of antimatter found doesn't come close to matching the amount of matter known to exist. Costello says one of the goals of the mission is to detect antimatter and see if there are any large collections of it out there somewhere. When particles pass through the strong magnetic field produced by AMSO2, their paths bend. Antimatter particles stand out because their paths bend in the opposite direction compared to matter particles. The instrument searches for antimatter with the sensitivity three orders of magnitude greater than the original AMS, which flew in space in June of 1998 aboard the Space Shuttle Discovery. This could support the discovery of antimatter pools that were previously undetectable. A key factor in our ability to get the most out of AMSO2 is time. Originally expected to have a lifespan of three years, the instrument has continued to perform into its eighth year of operation aboard the orbiting laboratory. In late 2019 and early 2020, astronauts conducted a series of spacewalks to replace AMSO2's cooling pumps, which were failing. Extending the life of the instrument will provide scientists more time in their quest to unveil some of the universe's greatest mysteries. For more on scientific studies being done on and from the space station, go to www.nasa.gov. For more information about the origins of the universe, visit


The Mutual Broadcasting System in Cooperation with Family Theatre Incorporated presents Gentlemen Be Seated starring Eddie Catter, Rosalind Russell is your hostess. Things are wrought by prayer than this world dreams of is Rosalind Russell. Did you ever think how narrow is the margin between success and failure? The man who makes one percent more than he spends can be successful. The man who spends one percent more than he makes is a financial failure. With families too, a narrow margin can make all the difference. Perhaps ten minutes a day doesn't sound like much. But ten minutes a day spent in praying together as a family can make the difference between success and failure in a home. That's why we of Family Theatre earnestly recommend family prayer as a daily practice in every home. For the family that prays together stays together. Rosalind Russell returns following our Family Theatre story, Gentlemen Be Seated starring Eddie Catter. But one time or another have seen a minstrel show. This is the story of one of the great old timers of minstrels, a man who believed the minstrels could never die. His name? We call him Sugarfoot Calhoun. This is the opening week for Calhoun's minstrels, fresh costumes, newly painted scenery, the old familiar songs and the older, even more familiar jokes. They're as much a part of minstrels as burnt cork and slide drum bones. As usual, Sugarfoot has the audience eating out of his hand. He's on stage now just finishing his famous song and dance routine. Watching from the wings are his son, Joe, and Lucy, Joe's fiance. They've watched Sugarfoot hundreds of times, and still his antics seem as new and enjoyable to them as if he was performing for the first time. Hey, Pop's really knocking himself out tonight, Lucy. Your dad will always be the great Sugarfoot Calhoun. The audience loves him. Oh, and how? Oh, look now, Lucy, here's where Pop does his slide towards the footlights. Watch! Always gets over. I remember the first time he did it. Oh, like fun you do. The first time that was done, Pop's grandfather was Sugarfoot. Yeah, you gotta hand it to the old man.  He'll never believe that, Joe. No, he's just like a lot of other old timers. Can't read the handwriting on the wall. The minstrel has been through for a long time, Lucy. Only Pop won't admit it. Well, you seem to be doing all right here tonight. The house is full. Why shouldn't it be? After all, this is our hometown. Everybody knows us. Where do we get on the road again? I wish you didn't have to go, Joe. Oh, so do I, Lucy. Believe me, doing one night stands as no life for a guy who's planning to get married. Real home to go to at night, having to live out of a trunk, hop from one hotel to another. I wouldn't mind. Not too much. We'd be together and... No, Lucy, no. No, not until I'm out of this show, right there.  Then we can get married and really settle down. You know, it doesn't seem right for you to quit the minstrels. You're... Well, they need you. Outside of your father, you're the best one in the show, honest. Well, look who trained me, the best guy in the minstrel business. But Pop won't rise up to what's happening. When it comes to the business end of things, he doesn't know the score. I've tried to tell him, but he's so wrapped up in the show, he can't see past the footlights. Oh, stop pacing up and down, Joe. You make me nervous. Pop, if you go into this television deal, I'm out in a limb. When I contracted for this auto agency... Joe, did you sign a contract? Well, yes and no. It's not effective until I've plunked down the 10,000 bucks. I've got five of it. Well, Pop, I was hoping you'd put up the other five for me. That's the five I'm putting in the television show. Do you have to throw away that five grand on television? I'm not throwing it away, and besides, Joe, it's already on the schedule. You know what a schedule means to Calhoun's minstrels? I can't understand how you could work hard all your life, make a big salary, and still have only 5,000 left. 6,000? I got a little extra there. That still leaves me four short. I can't figure you out, Pop. Joe, I made my money in minstrels, and I still figure it's worth putting everything I made back into the show. But you're wrong about having only that for a lifetime's work. No, Joe. Joe, I've got memories of some wonderful years, memories of a lot of friends, a lot of people we made happy. Yes, and knowing that I kept up a great tradition. All the money in show business couldn't buy that. Pop. Joe, why don't you stay in it with me? It'll be different now. No more traveling. You and Lucy can settle down. Do a regular weekly show. Weekly show? Aren't you taking the whole thing for granted, Pop? You're being taken on a $5,000 slay ride. You don't even know it.  Joe, you just gave me an idea. Something I learned from my dad a long time ago. I'd forgotten all about it. Yes, sir, that's the thing to do. I'll see you later, Joe. But, Pop, how about this agency franchise? If I could... Find it into a television franchise, son. Pop, going into television is the last thing I'll ever do. Maybe you're right, Joe. Maybe you're right. Chorus once more. Give me a pick up, will you? There she goes on her toes all dressed up in a Sunday clothes. My best girl. Just like sweet Rosie O'Grady.  Why she calls me up now and then? Calls me down only when I'm too smart. Church's newly painted. I guess the preacher was wise from the start.  She's another frivolous salma. That's it, Harold. It's the same old routine. Why this minstrel is a natural for television? We'd be all set even without a rehearsal. Hello, Sugarfoot. Lucy, honey. Lucy, where's Joe? Couldn't you get him here? No, I couldn't talk him into it. When I said it was just to watch the rehearsal, he figured you might be up to something so... he really made up his mind to stay out of the show, huh? Oh, Joe's pretty low about losing the auto sales franchise. He'd counted on borrowing $5,000 from you. Yeah, I know. Oh, Callie, it's hot under all these lights. How do you stand it, Sugarfoot? It's worse than footlights and baby spots. I've been feeling a little... Gee, I think... That's funny. What's the trouble? Is something wrong with you? I... I think I'll go home. Harold finished the rest of this rehearsal without me, will you? Aren't you feeling well, Sugarfoot? Don't worry about me, honey. I'll be all right. Just want to rest a little. The show will go on tonight, and with Sugarfoot, you can count on that. I came over as soon as you... What's Pop doing in bed, Lucy? You didn't say he was sick? Oh, he won't let me call a doctor either. Joe, you'd better... I could hold a doc maker right away. Joe, Joe, wait a minute, please. I'm all right, I guess. I just... I just feel a little funny here. Your heart. That's what it is, Pop. You've been overdoing it. It's caught up with you. Maybe it is my heart, son. Sugarfoot, you just can't do the television show tonight. Oh, Joe, talk to him. He has a dress rehearsal late this afternoon. I'll do it all right. Remember, honey, the name's Calhoun. Besides, it's 5,000 bucks riding on the performance. They could cancel it and tell you better. No, no, no. Everything's set for tonight. There are... there are five people listening who are interested in buying a show. One of them's even put in a bid already. Just... just because it's Calhoun's minstrels. Pop, I'm going to get doc Baker. And then I'm going to go down and talk to those television people. No, Joe, no, Joe, Joe. Sugarfoot's going to be in that show, believe me. I'm not arguing about that. Look, look, Pop... you told me I was ready to take over any time, didn't you?  I do, don't I? Joe. Okay, I'm taking over, Pop. You're not well, but just because you don't have sense enough to realize it and stay in bed where you belong, I do. Quit worrying about your dough, Pop. I'm going on in your place. That's not what's worrying me. I'm worried whether the manager of this apartment building can get a television set installed in time to watch the show. Oh, Pop. I'll take care of that, too. Joe, I knew I could count on you if I needed to, and believe me, son, I wouldn't miss seeing this for... for five thousand bucks. Are you nervous, Joe? Who, me? Yeah, I guess that's a good sign. Huh. Here, I'm all made up. Now, who do I look like?  You want to know something, honey? That's exactly how I feel. Just like sugarfoot. Not just on the surface, but clear down deep inside. Here, here, listen to this. Mandy, there's a minister handy and it sure would be dandy. Oh, my, my. You're sure enough sugarfoot, honey. And after listening to what Mr. Harris said after the dress rehearsal, I think you're gonna be the first sugarfoot with a sponsor. You know, Lucy, I've had minstrel makeup on hundreds of times before this, but somehow I feel different tonight. I wonder... Yes, Joe? This is the first time I ever wore sugarfoot's old jacket, the same one his father used to wear. Do you support... Oh, that's silly, isn't it? No. No, it isn't, Joe. I know what you mean. Now, you're sugarfoot Calhoun. Ladies and gentlemen of our television audience, the grand finale, featuring sugarfoot Calhoun and the entire company. This is it, Joe. Give it everything your old pops watch. Angels in the sky promise that by and by there's gonna be a great day.  It's not far away.  And here's hotlips Anderson and a silver-throated cornet. I knew it. I knew it. Joe, boy, it worked on you just like it worked 25 years ago and my dad pretended he was real sick. I took over then and you took over tonight. Yep. Now you're sugarfoot Calhoun. Can you see that, grandpa? Are you watching, dad? That's one of the Calhouns. That's my boy. That's sugarfoot. Not far away.  Come in. This is Rosalind Russell again. You know some people think it's strange that people like sugarfoot Calhoun should immerse themselves so deeply in their work. But in show business, as in everything else, hard work is the price of success. I know it is the price that must be paid for happiness in family life. Making a home and filling it with love and understanding is a full-time job, a lifetime job. It's a work that needs God's blessing and constant help. And that's where prayer comes in. Ask and you shall receive. Remember, ask God to help. Pray. Pray together as a family, today and every day in the year. Thank you for being with us. And God bless you. Tonight's cast included Ann Tobin, George Niece, Charles Maxwell, Gigi Pearson, and Leo Cleary. Next week our Family Theatre star will be Joan Leslie in World Without End. Your host will be Robert Young. This series of the Family Theatre broadcasts is made possible by the thousands of you who felt the need for this kind of program and by the mutual broadcasting system which has responded to this need. Be with us next week at the same time and Joan Leslie and Robert Young will star on Family Theatre. Merrill Ross speaking.


If package management is being used in the target image at all, because that's optional, and then we check if smart is installed in the image. So having checked those, we're not going to skip, and so we've got this function, I'll come back to that. We've got some basic tests here. We just checked that we can run smart-wise-help, a few other options, query a particular package is installed, et cetera. Then we get to something a bit more interesting. So in this test, we set up an HTTP server running on the test machine, which has got our deploy directory, which contains all of the packages we built during the build of the image and any additional packages you've asked to be built. And then we'll tell smart to add a channel that points to that HTTP server that we've set up and do an update to fetch down the packages, or to fetch down the list of packages, some more channel tests, and install a package from that feed, download a package, and install from the file, et cetera. So we're able to test all of the basic functionality of package management just through this. So yeah, as you can see, the tests are not really that complicated. So we hope that that means that they'll be easy to write. Sorry, one second here. Okay, so in addition to the automated testing, we've got a couple of other features that are worth pointing out related to automated testing. So we have p-test. Now, this was introduced in the previous release and extended in this current 1.5 release. It was developed primarily by Bjorn Stindberg and team at Inea in Sweden. And basically, it runs tests that have supplied with an upstream piece of software. So pretty much any piece of open source software you get, well, you'd hope most of them come with a test suite out of the box. So this will provide you with a clean way to run those tests on the target and get back your results. So we provide for getting all of those tests, installing them onto the target as a group and running them using a run p-test script. So we take the output from that and we try and coalesce it into a standard form that reporting tools can understand rather than having to understand all these different, various different testing systems outputs. So we haven't got too many enabled at the moment. We've got about 13 recipes that have this in angle of things like D-Vas and G-Lib and stuff like that. And we're hoping to add more in the future. So the next one, what's worth highlighting is actually our autobilder. So not only do we provide, do we actually use the autobilder ourselves to run our builds and do our releases and our regular continuous integration. You can actually download this yourself. It comes out of the box ready to run builds, run the tests, and you can use it for your own purposes. And it's based on build bot, so it's pretty straightforward sort of standard piece of software and you can customize as you need it. Other continuous integration, things like Jenkins and stuff like that are being used in the community. So you can use those, but this one is something that we provide and we use regularly, so it's available if you need it. We're in the process of kind of extending the documentation for this, so it's a little bit easier to use. So there is some documentation there now that you can have a look at. So I'd say based on mailing this traffic, I think we're starting now to see other people making use of this, not just us, and that's really good to see. So yeah, thanks to Beth Flanagan who's working on that within Intel Yachto team. And yeah, if you're working on the core build tool, it's a bit bake. It's probably worth knowing about this tool as well as bit bake self-test. If you're working on the Fetcher code or any other piece of bit bake itself, there's a little bit bake self-test utility. There's a few tests in there to do with fetching, parsing, the data store. So it's maybe not something that as someone building OSE would use very often. Probably you tend not to do work on bit bake itself, but if you are, it's useful. And we run it basically every build we do. We do a run through that just to make sure that nothing is regressed there. And finally, we have a couple of other tools we've got in our arsenal. There's test reexact, so that goes through and basically bit bake is a task-based build system. So we store when a task runs and so we don't need to run it the next time, but it's possible that if some of the inputs have changed to a later task, the task that normally runs immediately before it wouldn't be run before running at the second time. So for example, you might need to rerun the install step without having immediately pre-it prior to that running the compile step. So in that case, if the install step, for example, did a move of a file to another location and that file didn't exist the second time it came around, then it's going to fail. So in order to pick up those kinds of issues that you won't necessarily hit on the first build, but could come back to you if you make a change for the second build, we've written the script. And again, it's probably not something that there's someone who's building R&O, so you're going to use too much yourself, but if you're doing deep customization and you're building a number of your own, running number of your own recipes that you're including, then you should probably be aware of those kinds of problems and if you need to, you can run the script and pick those up. Along similar lines, there's a test dependencies script, which has been introduced in 1.5 and that's contributed by Martin Janser, and it's been really useful to find issues to do with auto-detected dependencies, so it's quite common in particularly in auto-tools-based bits of software that they will go off and look around the system to see if a particular library exists, and if that library exists they will enable some bit of functionality in the piece of software that they're building that will use that library, so that's great obviously if you're just a developer building that piece of software on your machine and that's the only place you're going to use it, but in a build system like ours where we want reproducible and kind of consistent builds, we don't really want that auto-detection to happen or at least we want it to be under our control, so if you kind of don't pay any attention to this then you can find that you build your recipe once and then you can use those packages, the packages that come out of it, and then you build it again and because you're now building it after some other piece of software is built then the output packages are not quite the same. So what test dependencies does is it runs through a number of build cycles, takes quite a while, and kind of highlights any of those kind of floating dependencies that have just crept in, so and we've, and now we've had the script, Martin has run that over, our wide range of the recipes that we have and some of the ones in the other layers as well, and we've eliminated a huge number of those dependency issues that could, you know, quite often in the past you would come up with some odd error because in the middle of building one recipe, another recipe which thought it should depend on that has suddenly found that the library's no longer there, so we eliminate failures like that using this script. So, and this, and we would run these two scripts I think we probably should be running them for each release and I think we will in the future, so. So yeah, now, so that's stuff that we have already done, so I thought I might tell you about some of the plans we've got for the future. So, so to do with the runtime tests, obviously we can run those tests on a QMU image and the QMU on a host machine, but really for testing people's images they'd want to run it on their own hardware and do regression testing on that as well. So, there are a number of complexities here. A usual approach to things is try and keep it simple, so we want to be able to kind of scale from someone who's got a single board or maybe a couple of boards connected to their build machine and they just want to run the tests on those to get started right up to people who have a rack full of boards of different varieties and, you know, they want to be able to have multiple order builders connecting to these machines and running tests. We're still not quite sure how this is going to work, it's we still kind of having some discussions. Really, one of the reasons I wanted to get up here and talk to you today was to get some feedback, really.  You know, we really want to make sure that if we're building something that it works for you. So, it'd be interesting to hear how things work for you and how you would like it to work in a system that we were building for you. So, the other thing we want to do is integrate p-test, running these upstream test suites within the automated runtime test framework as well. So, really the challenge there is that a lot of these tests that come with upstream bits of software, you're pretty much always going to get some failures out of the box because, you know, there'll be some optional bit of functionality that we're not using or it doesn't quite work on an embedded platform or whatever. So, we want to be able to ignore those failures, but at the same time we don't want to ignore all failures in case that we regress on some particular test case. So, we're going to need to have some filtering of the results and make sure that we're able to tell the difference between a failure that we know about and a failure that we don't know about. So, we're still kind of working out how that will work and I think it won't be too long before we have a proper solution for that. So, there's a number of runtime tests that we could add to the system. We want to be able to test a broad range of bits of software, the recipes that we have in the system. Particularly, I think we will look to test things like we would want to be running the piglet tests to test our GL drivers, making sure that all of the open GL functions work properly. And we also want to run an actual GUI test. So, instead of testing just a simple command or whatever, we want to be able to automate some piece of X software or maybe something that's written in QT and make sure that that's functioning properly. So, we get a broader coverage of the bits of software that we're providing. And the other major area which we want to cover as well is non-runtime tests. So, this is testing the build system itself. So, and this would enable us to automate a lot more of the runtime of the manual tests that we're doing at the moment. So, doing things like changing inputs to the build system, adding appends, changing recipes, changing configuration variables and making sure that the corresponding change occurs in the output. So, we're going to call this OE, this script OE self-test. Again, it will be a simple thing that the order builder can run and without having to know the details and we'll get the report out at the end to make sure that everything is correct. And there's actually a proof of concept from one of the QA guys out in the mailing list for that. But this has a sort of a much wider scope of the kinds of tests that we want to run than the runtime tests. So, that's why we've kind of left it till the next release. So, we'll expect to have something out there in 1.6 for that. So, yeah, that will be testing things like the BitBake layers tool, testing installation of SDKs and making sure that the compiler will provide an SDK works and that sort of thing. So, yeah, just finally, I thought it was worth mentioning, at least anecdotally when we've been doing this, there's kind of a social aspect to the whole thing as well. So, relationship between QA and development team can sometimes be a little bit strange. You know, it's sometimes it's a little bit us versus them.  So, I think we've seen a lot more communication between our QA team and our development team through them being able to work closely together and being able to cooperate on a single project. And we certainly expect that to continue with our future work. So, it's not just us supplying them with something and them telling us about it not working or it working. It's more of a collaborative thing. And this was actually the first time that our QA team worked together on a particular project with the development team. So, that was a useful thing. So, yeah, basically in summary, I just want to hope that you've seen that we've introduced a new testing framework. We're not just improving and maintaining the build system and helping improve the quality of our own system. We're helping you to improve the quality of your builds and allowing you to run the tests on your systems that you need to run. So, really, it's more of a focus on the quality of the build system and the quality of the output. So, yeah, give it a try, send us some feedback and let us know what you'd like to see. Yeah, get involved, I guess. So, yeah, any questions? Yeah, Peter. So, the question is, have I thought about running unit tests with BitBake? So, BitBake self-test is basically a unit test for BitBake. So, is that what you're looking for? Right. That's exactly what P-test is. So, maybe I didn't explain it too well. Right, yeah. I think the way we might approach that is in the P-test package, basically with P-test you can define whatever you want when you're doing a P-test build of the software. So, you could build it in a different way and store the alternate version of that software within the P-test package. And then when you select to install P-test, you'll be running that version instead. So, I don't know if we necessarily addressed that problem directly. Peter, it's not something I've been directly involved in, but certainly that's worth us noting. Is that something you're noticing in a number of software packages or just a few? Okay, all right. We don't want to test the libraries. So, we typically just start the way it calls to the libraries. Right, okay. Yeah, we'll definitely see if we can address that. I think there's a way we can, but yeah. Other questions? Alex? Just listening to what you're saying and to what Staffel was saying yesterday. Once you can actually do the testing on real hardware, it seems to be quite useful certainly to us to use that to test the hardware for subcontract manufacturing, QA reporting. It seems to be quite a good foundation to build the comm to be able to do that. Is that something we've considered? So, yeah. The question is have we thought about testing the hardware itself, sort of qualification of the hardware? So, I guess for that, we obviously we would need to have that software which is which is being used to test the hardware, but there's no reason why, you know, I wouldn't have thought that would be a particularly challenging thing for us to do. As long as we can cross build that software and run it on the target and look at the output, I would think that would be a pretty straightforward thing to do. And certainly when we were doing, we would be able to test on real hardware, we wouldn't be doing that for making sure the hardware works, yeah, absolutely. So, yes. On the question of real hardware, can you say any more about the actual sort of roadmap? So for like simple tests, would that be in 1.6? Definitely, we'll have a, we would absolutely have a basic ability to run tests on real hardware in 1.6. I don't know if we're going to get the full sort of framework to run, you know, the huge test rack completed in 1.6, but definitely you'll be able to run on a nominated piece of hardware. So, it's sort of in some ways in between simple and advanced, as long as you're only testing one piece of hardware, you think simple will be advanced in the sense that you could do quite a lot of testing on that one piece of hardware? Yes, yeah. Thank you. Because I think particularly on the sort of arm side, because you've got the flexibility in the IP, you really want to test on hardware, real hardware, you know, QMU, well, it's good for testing QMU, but sometimes it doesn't really get there for testing the hardware. So, that sounds interesting. Yeah, yeah. We certainly hope to enable all the tests that people need to be able to do on their hardware. So, yeah. Other questions? Yeah, you know, I had a quick look at Lava. I wasn't able to find a lot of documentation on it, and it did kind of seem like it was quite oriented to running on the Ubuntu slash launchpad sort of framework, whereas we try and be quite a bit more flexible with trying to run on any distribution and not be too tired down. But certainly they're doing the same kinds of things that we would look to be doing. I think that what we've done now is the stuff that we had to do that we weren't kind of rewriting something that other people are already providing. So, now we're into a phase where we're going to try and figure out where to go next. And certainly we would be looking at how other systems work, and particularly how well they solve people's problems or otherwise. So, yeah. Sure. Hi. Would it create a test report? So, can I run the test and then put it in the compatible form for your compatible test report? Something like that? Right. Sorry. The question is, can you produce reports as an output? So, what we get back is a log. It's a typical kind of log that you get out of Python unit test, which just says pass fail. You can certainly send that out, use it, reuse it, examine it. But normally the output of the test is just whether the thing succeeded or not. But certainly I think reporting is something we'll be looking at extending in the future. So, yes. Yeah. So, the question is, if you've got multiple binaries produced by as part of your unit testing, will the system be able to handle that? Right. So, yes. Because you're defining as part of the, with p-test in your recipe that is deploying a bit of software, you define what should be run as part of when it's actually running it on the target so you can run whatever, if it's multiple binaries or just one, you're in control of that. So, that wouldn't present any problems. It really depends on what output that produces. You might have to, you might have to wrap it in a script, I think, probably. Any other questions? Yes. You use this in the CI for the October project itself, right? Yes. How do you select the images, the images types of which you don't want? So, in the AutoBuilder, there's a stage beyond where it builds the image, which is the run to run, what's termed the sanity test, which is exactly this. So, I think it's hard coded. I'm not sure. I'm not an expert on the AutoBuilder, but I can certainly put it, you're in touch with. Yes. But then, this is exactly where problems may occur because of missing dependencies or because of it doesn't build correctly if a certain package is not present. Right. So, these are the, unless you try combinations, you're not going to catch that kind of missing. Well, I guess I would say we try and, the base images that we provide and that we test on the AutoBuilder are kind of as broad as we can get in terms of the recipes that we have within the base system. So, obviously, when you're running AutoBuilder on your own, your own things, you're going to be able to nominate which images get built. So, you'll be able to nominate also which ones get tested. So, sorry, does that answer your question or? Yeah. Well, alternative wrapping is a suggestion. Okay. What we do in built routes is we make random builds. Randomly select packages and build those. Now, we don't different by testing. So, it's all in the story anyway. So, this could be something that you can add to update the industry side switch on random selected packages and see if it still works. Right. Actually, that brings up an interesting point. So, one of the other things that I didn't mention that we would like to add in future and it could be 1.6 would be, there's a thing which we've, which is being called world image. So, we have the ability to build world, which is every bit of software that we support, right? And the next thing is to try and install all the packages that are produced into a huge image. I don't know if we could do that or we could just think it's all a random package or whatever. So, that might be something that would solve that particular problem. But yeah, certainly, it's one thing, with all of the stuff, it's one thing to be able to build it and it's another thing to be able to actually use the output packages in some form. So, yeah, it's a good point. Anyone else? Okay. Thank you very much.


Scared children need calm adults. Take a breath and try to appear cool, calm and in control of the situation. Knowing what they can expect of you and what you expect of them removes a lot of anxiety for children. Rules, routines and rituals are your friend here. Communicate simply and clearly using words and media that they connect with and check for understanding. Every child needs to know they matter to someone. Something as simple as a smile across a corridor can make a big difference to a child who feels scared and alone.  Build bridges via any special interests and explore different coping strategies. A lot of kids feel unloved. Break this negative narrative by caring out loud. Kids with low self-esteem might need you to love them enough for the both of you for now.


Exactly. Wonderful. Now, what, when we're, so now we are deciding that we're using, we're using fractions, we're using division. But that's only the first step of the problem, because now we have to really analyze the different parts. And right here, we had three different groups, or four different groups, different parts. Division is an operation. There are numbers that go in between and around these operations, so we can know what to do.  And in other words, how did you decide what were, what, what numbers were each part of any given division operation? So I want to hear what each division name is for each of those numbers, and why did you choose that? Um, for example, for the first one, it says the first group had four students and shared three subs equally. So I did three divided, three divided by four because they were sharing three subs, and the three is the dividend, and the four is the divisor, because that's all, because four is what you want to split into the three sandwiches. Okay, so you're, in this case, in the first group, you have three as your dividend, because that is what is being divided equally into groups. Four is your divisor, because what does that four represent? The number of people that want to eat the sandwiches. The amount of students that will partake and eat of these sandwiches. Good.