Dear learner, I am Tapasheka Sabdas from the Department of Computer Science, Kisna Kanta Handik State of University. Today, I am going to discuss a topic, algorithm and flow set, which is from the course, Computer Programming using C. We have already heard about various programming languages like C, C++, Java, etc. A computer program is written in some programming language with the help of some instructions written in correct order to get a desired result. And the method of writing the instruction to solve the given problem is called programming. In order to write computer programs without any logical errors, it is recommended programmers to prepare a simple writing showing the steps involved in the program. With these discussions, the learners will be able to learn about algorithm, pseudocode and flow set. They will be able to define what is algorithm, what is pseudocode and what is a flow set. They will be able to write algorithms for various problems. They will also learn and use the various symbols of flow set. They will be able to draw different flow sets for different problems. Now what is an algorithm? An algorithm represents the step-by-step sequence of instructions required to solve a problem. In simple term, we can say an algorithm is a set of rules to get the expected output from a given input. An algorithm gives the logic of the program. An algorithm has a finite number of steps and some steps may involve some decision making and repetition. It is basically a blueprint to write a program to solve a particular problem. Now let me discuss the methods for writing an algorithm. For writing an algorithm, we have to first state the problem. That means first we are to state the problem we are trying to solve in clear and conscious terms. Next, we have to list the inputs. That means we are to list the inputs needed to solve the problem. After that we have to list the outputs. That means we are to find what the algorithm will produce as a result. Then we have to identify the steps. It is basically the steps which are needed to convert the process of inputs to produce the output. And the last step is to test the algorithm. That means we have to choose defined datasets and verify that our algorithm works for those datasets. There are certain terms which are used to develop an algorithm. We can use read, input and accept this type of words to represent input operation to give values of variables to a computer. Similarly, words like display, so, write or print can be used to represent the output operations. And forward arrow or the assignment symbol can be used to assign the result obtained by evaluating right side variables or expression to the left side variable. For branching and conditional statement we can use if then or if then else like phrases. The conditional statement usually contains some relational operators like less than, greater than, less than equal to or greater than equal to etc. These symbols are used while we shake some conditions in a branching or conditional statement. And for repetitive tasks like if we want to repeat certain tasks in a problem then we can use repeat for or repeat while phrases in an algorithm. Now let me discuss the types of statements in an algorithm. The statements in an algorithm are normally of 3 different types. One is sequential statements, then the other is selection or decision making statements then the iteration. Sequential statements are steps of the algorithm which is executed one by one sequentially in the specified order. The next one, selection or decision statements are used when the outcome of the process depends on some condition. And the general form for selection and decision making statements are first we have to give the if keyword then condition then we have to use the then keyword then statement one if the condition is true then only the statement one will be executed and if the condition is false that means the statement two will be executed from the else part. Now for repetition of works that means iteration we have to use the iterative or repetitive statements for this we can use repeat for or repeat while construct. Repetition occurs in one or more steps until some condition is true. Now let me come to the flow chart. What is a flow chart? A flow chart is basically a diagram, it is a graphical representation of sequence of steps to solve a problem. By looking at the flow chart one can understand the operations and sequence of operations performed in a system. That means by looking at the flow chart we can easily understand what will be the input, what will be the processing and what will be the output. To draw a flow chart certain symbols are used and those symbols are oval, oval is used for representing start and end of a flow chart. When we start to draw a particular flow chart of a program then we have to start with an oval, it is for starting and ending. The symbol parallelogram is used for input and output. In a program we have some input from the keyword then we have to use this parallel parallelogram symbol and similarly for output also this parallelogram symbol is used. Now a rectangular symbol is used for processing. Any kind of calculation can be done with the help of the use of this rectangular symbol and the diamond. This diamond symbol is used for giving some condition that means decision making and there are four arrows upward, downward, left and right arrows and these arrows represent the full flow line. That means these are used to include the flow of the logic by connecting symbols. Then a circle, a small circle is used to connect defined parts of a flow chart. Then in a big program the flow chart will be large so there may be required two pages. So to connect the symbols between two defined pages we can use this circle symbol and these are the symbols used for drawing a flow chart. Now let me discuss some simple program to write the algorithm and flow chart. Now this is a simple program to find the sum of two numbers and this is the steps for the algorithm. There are only four steps in this simple program. First step is to take the input as a and b. a and b are two variables and these are taken in step one. Then step two, sum is calculated a plus b that means the value of the variable a and the value of the variable is added and it is stored in the variable sum. It is a processing or calculation type of statement. Third step is display sum. It is a simple statement as the result of these two variables are stored in this variable sum so it is displayed. Then in the step four we have written stop that means the algorithm is finished. And this is the flow chart for the algorithm. First start symbol is denoted with the help of an open. Then input output is taken in a parallelogram. Then sum is calculated in a rectangular shape box. Then again the result that means the result is stored in this variable sum so it is in a parallelogram symbol. Then stop. This is the simple flow chart for this simple program. This is another example which is used to convert temperature from Celsius to Fahrenheit using the formula F equal to 9 by 5 into Celsius plus 32. This is the formula for converting temperature from Celsius to Fahrenheit. You have to know the formula that means you have to know the logic of the program. And this is the simple algorithm only four steps are used. In the step one temperature in Celsius is entered. In step two the calculation is done F equal to 9 by 5 into temperature in Celsius plus 32. This is the formula for converting temperature from Celsius to Fahrenheit. Then in step three display temperature in Fahrenheit. Then stop. This is the complete algorithm for this program. And the flow chart is shown here input is taken in variable C then calculation is done. Then temperature in Fahrenheit is displayed. This is the second example. In the third example one condition is here and this program is to find the algorithm and flow chart of a particular number which is even or odd. That means to check whether a number is even or odd. First we have to enter the number and it is stored in this variable n. Then one if then else is written. If number is divisible by 2 then the number is even. If the number is not divisible by 2 then the number is odd this is the condition. If the remainder is 0 that means n modulus operator 2 is equal to 0 that means there is no remainder that means the number is even else otherwise the number is odd. And this is the complete algorithm for this program. And in this flow chart we can see one diamond is used to input the condition first the number is taken in this variable n then it is said whether the number is divisible by 2 or not. If remainder is 0 that means the number is divisible by 2 yes that means the condition is true then the control will come to the even next part that means yes part it will give even number. If the number is not divisible by 2 it will go to the right hand side that means here the no part is written in the right hand side and it will display the odd number. And this is the flow chart for this type of problem where condition is used. This is another example in this example algorithm and flow chart to find the smallest of two numbers is shown. Where two numbers is taken as input then the two numbers is compared with the help of if then else statement if the number is small then it will display smallest number if the number is greater it will display the greater number. And the condition is tested in the flow chart with the help of a diamond shape symbol. In this example one algorithm is written and the flow chart is given to find the sum of first and assigned numbers that means n is entered through the keyboard suppose n is 5 then it will continue from 1 to 5 and it will calculate the sum of 1 to 5. Here one repetitive statement is used so repeat while is used here. In step 2 count is a variable and sum is a variable which is initialized to 0. Then in step 3 number is entered which can be any number like 5, 10, 50 etc. In step 4 it is written repeat step 4 and step 5 while count less than equal to n that means the loop will continue that means the repetition will continue until n becomes the counter becomes n. Initially count is initialized to 0 and when it becomes suppose I have entered 5 then it will the counter will become 5 at the n. And it will calculate the sum equal to sum plus n that means number is added with the variable sum and it will calculate the summation of all the numbers from 1 to n and in step 5 counter is incremented by 1 that means initially count is 1 for the next iteration that means for the next repetition the counter will become 1 initially 0 next 1 next 2 next 3 like this up to the number. Like this the total will be calculated and it will be stored in this variable sum. After that in the step 6 sum will be displayed with the help of a display statement. We can use display also here only I have used print word we can use any kind of word like print display write etc. And this is the flow chart for this algorithm. We have already discussed various examples of writing algorithm and flow chart of various simple programs. Now I am coming to what is pseudo code pseudo codes are informal language that helps programmers to develop algorithms. Studio code is very similar to everyday English language. It facilitates designers to focus on the logic of the algorithm without concentrating on the details of the language syntax. The sole purpose of pseudo codes is to enhance human understandability of the solution. Now let me discuss one example of pseudo code. This is the pseudo code to find the area of a rectangle. These are written in some informal language. First line is read height of the rectangle that means we have to enter the height of the rectangle then read width of the rectangle. We have to give the input of width of the rectangle then compute area as height into width. Because to find the area of a rectangle we have to multiply height and width. So first rectangular height and width are entered then it is calculated by height into width. This is the simple pseudo code for calculating the area of a rectangle. Now let me discuss another example. Write pseudo code and algorithm to determine a student's final grade and indicate whether it is passing or failing based on average mark greater than equal to 40. The final grade is calculated as the average of 5 subject marks. If the average marks of 5 subject is greater than or equal to 40 then the student will pass. Otherwise the student will fail. And we have to write the pseudo code for this problem. And this is the pseudo code for this example. First input a set of 5 subject marks then calculate their average by summing and dividing by 5. Then if average is below 40 and this is the condition then this will fail. Otherwise this will pass. If the average marks is more than 40 or equal to 40 he or she will pass. Otherwise she or she will be failed. And this is the detailed algorithm for this program. In step 1 first numbers of that means marks of 5 subjects are entered. In step 2 grade is calculated by summing up the marks and then dividing it by number 5 that means there are 5 subjects. So I have divided by 5. Then if the grade is less than or equal to 40 then the student will pass or fail. That means if the grade is less than 40 the student will fail or if the grade is greater than 40 then the student will pass. And this is the complete algorithm for this type of problem. Here I am showing the flow chart for this example. Here in the input part it is shown in a parallel algorithm. Marks of 5 subjects are taken. Then it is in a rectangular grade is calculated. Then one condition is given in a rhombus type symbol. If the grade is less than equal to 40 less than 40 then it here he or she will fail. If the grade is greater than equal to 40 then the student will pass. And this is the flow chart for this type of problem.


The difference of a victim discarding a narcissist. Normally the narcissist will discard their victim. Once they've drained their victim of all their energy and resources. Once their victim has nothing left to give. That is when the narcissist will discard you. But maybe you managed to beat the narcissist to the punch. Maybe you discarded them. But now you are wondering if you did something wrong. Maybe you feel like there is now no difference between you and the narcissist. Because you did something that they usually do. Which is why I decided to create this video. I want to provide clarity to you. I want to remove your fears and doubts. I want to confirm to you that you did the right thing by leaving them. When a victim leaves the narcissist. It's because they've become too difficult to deal with. They're no longer able to be endured or tolerated. They're constantly causing discomfort and unhappiness to you. Where you no longer want to be around them. The victim will not usually stay with the narcissist until they meet someone else. They will just leave on their own and then be by themselves. Because the narcissist has become too unpleasant to be around. So they would rather be alone. The difference with the narcissist is that they won't leave you. Unless they already have someone else lined up. Unless they already have another source of supply. Which is why even if you've been with a narcissist for five or ten years. They will be with someone else within a couple of weeks. And then within a few months they're getting married and having children. It just makes you wonder. How could it happen so fast. Because what you don't know. Is that they were already involved with that person while they were with you. They may have known them years before you found out about them. That's how they got into a relationship so quickly. That's how they got married within a few months. Because the narcissist already knew that person. Narcissists always leave their victims to be with someone else. They're not going to leave. So that they can be alone. Narcissists can't be alone. While the victim will leave the narcissist to be by themselves. They will leave the narcissist because they desire peace. What really confuses victims after they discard the narcissist is when the narcissist plays the victim. They act like you've done something wrong. They act like you're abandoning them without help or support. Because that's exactly what they do to their victims. They're self-absorbed and they lack empathy. But they refuse to recognize these traits within themselves. Instead they project everything that they believe to be undesirable about themselves onto their victims. Which is why when you leave the narcissist they will usually have a long list of things they claim to be undesirable about you. Which is really just projections of things they hate about themselves. But they can't see that they're actually describing themselves in that list. Because they lack introspection and they refuse to take accountability. Which is often the reason why they will discard their victims. Because their victim is questioning and confronting them. Their victim keeps putting the mirror in front of them. And the narcissist doesn't like the reflection they see of themselves. So when the narcissist discards you. They usually just running from everything they hate about themselves. Everything that they know to be undesirable or unwanted. And when they leave their victims. They're always looking for something which in their minds is bigger and better. Because after they've been around you long enough. Anything is going to seem better to them.  They have to do that to survive emotionally. And once they've ran you into the ground. They're on to the next shiny new toy. They're on to the next bigger, better deal. So that they can do the same thing again. The cycle always repeats itself. They leave you once they've broken you down. Or they leave you to break you down. While the victim only leaves the narcissist. Because they've had enough. Not because they've drained the narcissist of anything. Not because they want to be with someone else. But because they just don't want to deal with the narcissist BS anymore. Thank you for watching. I hope this video resonates with you. Please like, comment, share and subscribe. If you would like to donate. My PayPal link is in the video description. Coaching Inquiries. You can email me at coach.nlxv at the Cuddy UK. Thank you for watching and I'll talk to you soon.


that's a descendant that's that's caused by the outcome. If you condition on this, it distorts estimates to and this is called case control bias. So you're finding the variation in the outcome and this biases your estimate of the causal effect on why because there's less for X to explain. This is bad news, you shouldn't do this, but you need a dark causal diagram and no not to do it. A more subtle one is why I called the precision parasite. And this is live in the in the two moms example, Z is like birth order. X is the mom's family size and why is the daughter's family size. The reason be one is different is because when you, when you condition this it removes variation in X. And then you get a less precise estimate of the variation of X on why it doesn't bias estimation but it makes estimation less efficient. This is why I call it a parasite. And it gets even worse when you have a confound between X and Y as we do in the two moms case. Now adding Z exaggerates this bias. And that's what we saw in the regression examples that I showed you. So this is another kind of canonical example of a bad control. Maybe you have a confound, and you want to add Z it actually makes the compound bigger. Okay, let's transition to graph analysis now, which you've just seen in the previous slides or examples of bad controls and good controls. So let's return to the pure bias example now and think about analyzing this tag with your new found powers of the separation. So just to remind you where we were before. The X is the social category, and we're interested in whether it has a direct cause on why potentially through discrimination, but also influences the field or subject or department, the individual applies to E. And then there are these unobserved qualities of the applicants that influence both the probability that their application is successful and their choice of subject. Now, the problem, of course, is that there is when we condition on E, it's a collider on the path here from X to E to Q to Y. And so conditioning on E is something we need to do to estimate the direct effect here which is the target of interference. But when we do that we create a confound. So E is a bad control. We create a confound through Q which we have not measured and therefore cannot add to the model to block this confounding path. This sort of thing is extremely frustrating in the literature like this. And as I asserted earlier, there are lots of problems which have this kind of structure where individuals are selected into some competitive arena, they are selected by some other project or they are selected by some other process. There are hidden qualities of those individuals was influenced both their entry into that process, and what happens to them once they're there. And we want to understand some partial causal path in this process, but we cannot do so because of the hidden qualities. So the causal in estimates or change in estimates by adding E could be self deception, because of the confound path Q, or it could be the truth and we don't know, unless we can do something to estimate these potential Q variables. We want to summarize the pure bias literature and things that have a similar structure. And what we get from the analyzing the graph here to understand why the regression models behave as they do. Controlling for E opens the non causal path as I said it's not a backdoor path but it is non causal it's not a backdoor it's a front door. It's sort of the sub backdoor path through either gets opened up so backdoor pass aren't the only threats and that's, that's the general theme of this section of the workshop here graph analysis section is that backdoor pass are kind of the first thing you analyze but there are other threats, and this is one of them here. Bad controls extend beyond. How can we estimate. Not all is lost because of course we can estimate the causal effect of X on why the total causal effect through both past Q is not a confound if you don't condition on E. However, this is not what anybody wants to know. Right. You cannot sell any audience on the idea that the total causal effects is what is of interest to social policy or reforming that policy. What we cannot credibly estimate is this direct path from X to Y, at least not an observational study, or without some data that helps us estimate Q. I'm going to come back to that example of your bias example in the next section to follow this one. This is the other example now the example of two moms and do some further graph analysis on this. So as I said the theme of this section is there are more than backdoors and when you analyze the dag or the causal model. More generally, in your context you can potentially do more than that. So here's an example where in the two moms case, it seems hopelessly confounded, we've got the regressions, adding, adding the variables to the help. In fact, it hurts. And we have a confound between the treatment, which is the mom's family size, and the outcome, the daughter's family size. However, what I want to show you is that if you're willing to make stronger assumptions about the functions in the tag to make something called a structural causal model, instead of a directed acyclic graph, then you can analyze the graph and potentially do a lot more. And here's a structural example of that, which is fairly general in a number of literatures. So the kind of takeaway point, just in summary is that not every statistical analysis is going to look like a regression model or multiple regression model. Sometimes you need other things and you can derive the structure of your statistical analysis from the structural causal model itself. Let the causal model drive. Don't assume that what you're going to end up with is a regression, because I'll show you in this case what you end up with is not a regression. Okay, here's the dag from the two moms problem. I just want to remind you, we're interested in the causal effect of mom's family size on the daughters and we've got their birth orders here and there's almost certainly some measured confound or a whole suite of unmeasured confounds in MD like income and educational background cultural background. Now let's make stronger assumptions let's assume that this is a linear system, the easiest sort of system to analyze. You can also analyze nonlinear systems but I want this to be the simplest example possible. We put coefficients on these packs, which represent the causal effect of each variable on the one it points to. So in the case of the birth orders. First born daughters that increases their fertility by some factor B on average and we say that that affects the same, both for the mom and the daughter. But after this effect little M is the causal effect of moms for family size on the daughters that's what we're trying to estimate and then there's this confound, which means that we can't use a regression to estimate this by just regressing D on M. But what can we do. Well, it turns out in linear systems. It's a fact that the covariance between two variables in such a system can be calculated as a chain of products of the past coefficients. So, the simplest case, the covariance between B one and M is going to be B times the variance in B one so you say the intuition you want to get here is you start with the variable B one. So the originating cause the or cause, and then that determines how much variation there is and that variation gets multiplied or shrunk by the past coefficients on the way to the variable of interest in this case they're just one arrow. So there's just B times the variance of B one and that is the covariance that you would observe in a data set between these two variables. We can do the same for the covariance between B one and D. We can't calculate the covariance between M and D because it depends upon this, this confounding past and we don't know the strength of anything on this confounding path and we can't measure it so you can't calculate covariance between M and D which is what we want. We mean you can't estimate M, but here's the trick we can estimate the covariance between B one and D. All right, because the confounding path is not open along that. And so the coverage in B one is deep by the same rules is B times M times the variance in B one at the start. So now we know two co variances in this graph, we have two unknowns B and M. And this is a system of two simultaneous equations and we can solve for him to give you the intuition of this. The second equation here, I'm circling it with my cursor, the covariance between B one and M is B times the variance B one solve that for little b. And so little b equals this covariance divided by the variance, which is a regression coefficient those of you who've had a kind of traditional linear modeling course. Take the second equation and substitute that solution for B in here for B, and then solve for him isolate him on the left. And what you get is M equals the covariance between B one over D, B one and D divided by the covariance between B one and M. And this is a valid unbiased point estimate of the causal effect M. Of course, we need more we need a confidence interval around this and there are a number of procedures for doing this in the next section the last section of this workshop material. I'll show you a general way to get some sort of confidence bound on these estimates, but you could also bootstrap here there's a there's a wide range of procedures that that people use to do this. The point is that this is not a regression estimate in a traditional sense this depends upon simultaneous equations and their analysis. Okay, so let me try to summarize a bit we'll zoom out and then talk about estimation more. The whole point of this business is when you have a causal model. You have to put in a bunch of work to do that and scientific conceptual work to do it, but you get a tremendous amount out if you're really to analyze the graph what you get out are the implications of the model, which are not apparent to almost anyone just from stating the assumptions themselves. The causal models are DAGs, other than when you analyze DAGs you can say very general things, and not all models are even linear equations like the example I just gave, gave, but all causal models are generative and so they all have causal implications and when you analyze them. Using whatever tools are appropriate for that form of model, then you do the same sorts of things with them that we've done here. We use them to derive tests of the model structure and to derive and to derive an appropriate statistical procedure for challenging the model with data. So, last part of this and in many ways, most expansive part of this ties together all the other things. We need to actually have a robust way to fit arbitrary causal models to data, and there are a number of ways to do that.  It's Bayesian inference, which is just probability theory really. And the full luxury part is a bit of a joke and say that all luxuries have costs so you get a tremendous amount out of this approach, but you do have to do some work to make it work. And that's the price of the luxury. So to motivate this I want you to think about the world of regression or general general generalized linear models, more generally. So, in previous parts of this spring school, you've, you've heard about generalized linear models in general linear mixed models GLMMs. The thing about all these models is they're just regressions. And just like cats are all cats, that's the point of this meme. Whether it's a small domestic cat or big tiger they all behave the same there's different sizes and if you were shrunk 200 your size to both of these cats would eat you. And this is what regressions will do to the fact that GLMMs are bigger and they can accommodate fancier effects doesn't change the fact that they're fundamentally non causal machines. They don't understand causes. And if you're not careful they will eat your analysis, just the same as a standard GLM causal analysis about much more than regression we need some generalized framework for confronting our causal models with data. That is not in what I've sometimes jokingly call econometrics jail, where you think of everything as a regression problem. There's some procedure and state. So, we do have general frameworks for doing this and the the one I prefer because it, it lets you just write the causal model as a statistical model is Bayesian inference. Bayesian inference, all I mean here is that it's probability theory sometimes people introduced Bayesian inference by saying, Oh Bayesian inferences distinct because it has priors. What's the difference. The difference is the Bayesian inference is just generalized permissive probability theory. It lets you do what you want as long as it obeys laws of probability. So, for example, you can take a generative model, and then you can program it as Bayesian network and Bayesian inference can extract information from the data, if there is such information in the data and if there's not it'll tell you that too. The generative model itself is neither Bayesian nor anything else frequent tester or whatever there are other paradigms beyond beyond those two. The generative model is a generative model and Bayesian analysis is just the use of probability theory laws of probability which everybody agrees are correct to extract information using the implications of that model. So, but the truth is, with full luxury Bayesian inference is that luxury has its cost it has a price tag. But what you get out of that is that if you've got a complicated causal model and you're not very good at graph analysis or any other kind of analysis. The probability theory can actually analyze the model for you and automatically recognize the complications of its structure for the evidence.  But the price of all that of that luxury the full luxury is that you have to do the programming. The computation can sometimes be quite challenging. Some causal models in fact, even if in principle, there's an available causal estimate in practice there won't be, because you will not be able to get stable numerical estimates of it. So just just the theoretical possibility of a causal estimate is no guarantee that you can derive one. Okay, let's let's take the case where it does work though. Okay, we're back to the two moms. And what we're going to do is, is take the dag for the moms, and I've drawn it here at the top and I've just flattened it so it fits on the slide better but let me rehearse this for you real quick so this is the structural causal model for the two moms. And I've drawn that unmeasured confound now is an explicit variable you it's a common cause of m&d. We haven't measured it. And then we have these past past coefficients B and B and M. Now what we're going to do is in order to practice full luxury Bayesian inference you need to translate this structural causal model into a set of functions that it implies now remember every node implies that there's some function, which takes the arrows and enter it as an input, and then outputs the variables that are emitted as arrows out. So you can think about this is as for every variable, we can write down a function that determines it, according to the structure of our dad. So let's go one at a time and just work through this. So first there's m which is mom's family size. This is a function of all the arrows that enter it, which are B one and you remember we haven't measured you, but the model says it's a function of you. And so we write it. So we have M is a function of B one and you, and I've just written this function we haven't said what it is yet but it's going to be a linear function you know that. But that's not the important part about this it's just to say that this is the structure M is a function of some function f M mom's function. Now the daughter same sort of thing. The daughter is now a function of three things those the function of you and be to just like the mom it's metric, but also potentially of moms family size that's the research question here and so now we have the daughters family size is and we have the function and its inputs are MB two and you. And then B one and B two are the birth orders, and they're both a function of whatever determines birth order in this example which is some unnamed processes right there are essentially random in this graph, because there are no arrows into be B one and B two. And the same for you, whatever determines the unmeasured confounds like economic background work. It's not modeled in this deck. And so there's some function which creates a distribution for you just as there's some function to distribution for the birth orders. But it doesn't have any inputs which we've measured in this graph. So this is the essential tactic that you use to program what's called a Bayesian network in this. And then once you have this version of it you, what you, you make these functions like FM FD FB and F you you make them non anonymous you choose probability distributions for them. So that there's, there's some stochastic process that takes these inputs and outputs the family size. So in this case it's a linear system. So we have normal distributions for the family sizes from ramen daughter. I made the birth orders for new lease which just means there's zero one indicators of whether the woman is a first born in the family first born daughter. The unmeasured confound we can't say anything about its scale I just make it a Gaussian variable it's just a set of z scores essentially on some latent scale, some of the psychologists listening will understand what I mean there is the standard latent variable. And then of course to make, make probability theory function you've got to define a measure for all the symbols and so we have priors at the bottom. Full blown status course I say a lot about priors and how they don't have anything to do directly with the analyst beliefs, but they have to do with scientifically known constraints on the variables. I don't have time to rehearse that whole argument now is just to say that you, you figure out the appropriate priors using scientific knowledge just like you figured out the dag using scientific knowledge. Both of these processes you can say are subjective in a sense, which means they depend upon expertise, but they're not about your beliefs, you don't have beliefs about the parameters you have beliefs about the observable data. And in my course I teach you how to connect statements about parameters to knowledge about the observable variables. Okay, if you want to run this is what the code ends up looking like. If you use something called a probabilistic programming language like Stan, or this is from my our package three thinking package. But all of these languages essentially have you write statements like this where you're writing out these function definitions, and whatever however these functions work here you have linear combinations that determine the average family size. So the code it works and you can go to the repository at the bottom of the slide and running. What happens when you're running. Okay, so remember before I showed you that if we just run ordinary regressions on this trying to predict daughters family size with the moms. It's biased and that's that's unsurprising because there's that confound you and adding be one makes it worse, because it's a bias amplifier. Add control and be too well that that reduces noise but we still have the bias and so you now have now have a more precise biased estimate. When you use the Bayesian network the Bayesian network tries to estimate the use you're basically you're telling it because you programmed the day to assume there's a confound. It averages over the unknown confound it concludes that nothing can be set. Essentially, there may be a moderate positive effect of mom's family size on the daughters in this particular sample. Again, this is just one sample but this is the pattern you're going to see on average if you run the code over and over again. But no strong conclusions can necessarily be made it may be a stronger moderately sized effect. It could even be slightly negative. So it's not getting tricked by this in a very very large sample you're going to take the code and increase the sample size bigger and bigger. This point will move towards zero in a very large sample. Okay, so that's an example of full luxury Bayesian inference. And you can do the same same sort of general thing with the pure bias example but now the issue is we don't know q so we can't de confound this. But what if we had some other proxies of it. We don't know your test scores, letters of recommendation anything. You might theoretically think matters, each of them is imperfectly associated with q which is something we can't observe directly because we don't know your test score is not what necessarily helps you get accepted well maybe that's a bad example because you've listed on your application but it's, it's other kinds of things activities that are not part of the application, which may give us information about what is simultaneously impacting your ability to write a good and your choice of field. So I'm going to say we'd say you have two proxy variables just R one and R two, and they're influenced by q. But they're not q. Right. So, what if we just added them to the regression equation in this example so remind you we did this before. Many, many slides ago in this workshop. We were looking at your model, predicting why using X, and we get this this coefficient that shows evidence consistent with discrimination but the problem is of course this is both pass right it's the total causal effective X is measured by this model here right given that this is a simulation with discrimination in it. And then we add e evidence of discrimination seemingly vanishes now no strong claims can be made, perhaps there's discrimination, perhaps there's actually some advantage of being status X in this system. If we add our one in our to it has barely any effect it nudges it slightly towards the correct answer which is closer to this that there's discrimination. It's not this far over. I think I assumed it's a right about here about point eight minus point eight is the true effect I forget you have to look in the code that's at the, I give you the URL at the bottom. What if we do the Bayesian network version of this full luxury base and we just take this tag and program it as a statistical model. The code would look like right so we've got why is now come. It's a factor of E, and X, and this unobserved variable q. Again, we have a measured q but it's, it's a variable and so you can just introduce it to the Bayesian model as a variable, and it has some unknown effect h as well. And then there's a model for q down here q is some. We don't have any cause of q and our model so q is just some latent z score thing a standardized normal, getting like a standard psychometric latent variable. It's arbitrary. Right, so there's no loss of generality, and then our one and our two are caused by q and so on average, their mean is q, but they, they're not q they're not copies of it. And then we run this and it does not just towards the right answer. It's not magic because our one and our two don't measure q perfectly. So we can't totally remove the confound, but it gets us some distance further away. And now, although you shouldn't be too excited about the zero is excluded from the integral, but again there's nothing special about zero being excluded from the interval the point is that we have moved in the right direction. So if you ran this example over and over again you, this is only one example of one particular simulated sample, but this is the pattern you get with all examples. Okay. Let me try to summarize this I know this is a bit much here and there's a magic going on behind the scenes. What I want you to take away is that Bayesian inferences extremely useful, because it lets you focus on the causal model. You're going to wrestle with weird estimators and other sorts of things. But it's only as good as the model you put into it, it's just probability theory. It's not going to do any magic if the model is bad. There's nothing there if the sample is bad. It's not going to invent information. And then of course you need a robust numerical algorithms and do the Bayesian calculations and these days they're really capable numerical algorithms for doing this like the stand language. Or the touring libraries in Julia, which can do, you can feed in your causal model as a Bayesian network, and it will take care of the details for you in a wide variety of cases, but there's still challenges here so I don't want to tell you everything soft. Sometimes you have to fight with the machine. However conditional on the model in principle, no other method is going to find information in the data that the Bayesian approach won't. It's just that the Bayesian approaches is computationally challenging quite often. Great thing about this about full luxury base is that routinely in research we have problems like missing data and measurement error. Right so remember the retracted nature paper example I had not so long ago. Most studies of an observational nature have missing data and many, many surveys and experiments do as well. And, and many many almost everything has some kind of measurement error and measurement error is not benign. The effects of measurement error depend upon what causes it and the effects of missing data depend upon what cause it, but you can add causal models of measurement of missingness and measurement to your dag to your structural causal model, and then program them the same way you would any other set of assumptions in the statistical and therefore honestly pull information out of the data so that you're not overconfident, and also so that you don't miss inferential opportunities remember this isn't just about accepting a burden so that your, your inferences are less powerful that's not how this works. Remember in the two moms case graph analysis showed us that we could do something that could not be done with traditional forms of analysis. Okay. Final thing that I didn't want to finish this content without mentioning. There are common sorts of scientific problems like social networks and phylogenies, whether they're genetic phylogenies or linguistic cultural phylogenies. These things are never observed their, their social constructions and that doesn't make them less useful, but there is no real social network for society there is no real phylogeny for a set of languages. There are ways of taking high dimensional data sets and summarizing their connections with some minimal causal structure imposed on it. And these things are never observed in data and they must be inferred. And you need a causal model of those observations and so in all of these situations, if you cannot directly analyze the social network you cannot directly analyze the phylogeny you must infer it and you will have uncertainties about the structures of these things. And I think that I talk about in my class, there are many books and papers about these things. Nevertheless, there are still lots of older analytical methods for working with networks and phylogenies which ignore this fact. And I would caution you, well to stop using those things, because they're, they're creating problems for you. All right. Yeah, so, sorry, I forgot this slide was coming so I wanted to come back to this slide just to say that reminds you this is a case where there's a lot of missing data but the problem isn't that that there's a lot of it. The problem is the cause of the missing us and the cause of the missing us in this case is one of the is the one of the primary variables itself. We can't observe this because writing strongly co varies with population size. And so we just don't have evidence about what non literate societies what their religions were like, and therefore nothing can be done to fix this. This is not a problem that statistics can solve. But it is in a sense a problem that graph analysis can solve because it tells us that that these data alone are insufficient and therefore it tells us we should look elsewhere. But that's progress, knowing that the model of interest cannot be answered by the data available is scientific progress. Okay, let me bring this to a close. You've been very patient. The whole point of this is to say that to do statistical inference responsibly and productively, you have to put science before the statistics, and that means thinking about a causal model that precedes your statistical model and analyzing those causal models, so that the statistical procedures serve them. The causal inference requires a causal model that is distinct from any statistical models who use. We analyze these causal models for their implications. And that is now that analysis is logical. And so the implications of the model means that every objective observer will reach the same conclusions about the implications of the model. And these implications can be used to design research, you know which data you need to collect, you know, you know how much you need, so on. It can be used to test the structure of the causal model, and it can be used to design an estimation strategy in this workshop I mainly focused here on three, but there's a lot of literature on one and two as well. And then the additional challenges you need some robust, robust numerical framework for doing estimation, and I propose Bayesian inferences a solution to that because there's the minimal friction between focusing on the causal model and doing the estimation. There's only one kind of estimator and Bayesian inference and that's the posterior distribution, so you as a scientist, a scientific analyst, you can focus on the causal model instead and not worry about weird things like analyzing custom estimators. It greatly reduces the amount of work in practice, although it often creates computational headaches, nothing's free. And I've said this a few times this last bullet pointed bottom of the slide I haven't really proved this to you but I've asserted it, and there's a literature on this that both descriptive and experimental research or no exceptions to anything I've said. Descriptive research depends upon causal assumptions you can't describe the target population unless you can describe why the cause is not the why the sample differs from the population. It also goes for comparisons among samples, right, even if you say you're just describing the difference well, you've got to think about sampling, and that the samples are caused by behavior researchers experimental research. I hope I convinced you there are things like post treatment bias which you should really be concerned about, but also lots of experiments are imperfect. You can't make patients always take their medicine. You can't use your causal inference and I've really only introduced you to some initial stimulating hopefully ideas about it. Just as a sampler. When we compute treatment effects, the examples I've used here the models are really simple and so you can summarize treatment effects or causal effects with a single variable. And really this is not true in any applied context and the reason is because treatment effects depend upon the distribution of the other variables in the population. And so calculating average treatment effects so called marginal effects for things requires additional steps and this is something that again that I teach in my course. So the population is the is the big version of this where we, we've got some sample for the population that we know may differ radically. It's not a random sample of the population and often that's good because non random samples can focus on small groups and get good robust data on them. But then when we calculate the effect for the population there's a secondary statistical procedure that's required and this is called post stratification there's a big literature on this. In cross cultural research, for example, but also in political science and public polling, many other areas of the sciences. Partial identification sometimes analysis in your graph tells you that it simply is not possible to get an unconfounded estimate of the causal effect of interest, but that doesn't mean you stop. Because it is possible to do a sensitivity analysis and say how much of the total causal effect is plausibly caused by the confounding pass. So partial identification, and this is often extremely productive because you're able to say things for example that in order for the causal effect to be totally explained by the confound the confound would have to be, you know, such and such strength. And then you can use additional scientific literature to talk about the effects that are on the confounding path and how strongly might be in general. And this pushes the research along in a in in a good way. If you need a causal effect you may really really need it now and just because you can't get an uncontaminated one is no reason to stop doing the research. And finally of course research design responsible research design depends upon having a causal model before you collect the data ideally, if, if the analysis of cause and thinking about statistical analysis begins after the data arrive. Then you're going to potentially encounter situations that cannot be repaired. And so having the causal model sketched out before you design your research is of course the best thing. And this is of course how experiments are designed right why are you doing an experiment because in some principle you've done a heuristic causal analysis and you know you need randomization. The same would go for observational studies. If you really hope to get causal estimates and observational setting, you need to think about the confounding structure before you collect the data. Okay, I think it's often useful to give people workflows to think this through. And, and of course it takes time to learn how to do these things and you have to work examples and fight with the computer and so on that's how everybody learns this stuff it's just time invested. But here's a cartoon version of the causal workflow for full luxury Bayesian inference and it's not too wrong. So the step one, derive candidate causal model or models using and I put it in scare quotes here science. I don't want you to think that there's some single method for doing this, use your scientific expertise do scholarship scholarship is the better work here. Talk to your candidates communicate your dags to them. Listen to their criticism, and so on. To program the candidate causal model or models as a generative simulation. This is a way to see what the, the data would look like, if this was what was really producing the phenomenon this is way to explore its implications for people who are not so confident with algebra and do calculus and other such tools it's a very general way to engage with your theories. And then you can design your research and validate your statistical analysis using the generative simulations, using the implications of the model. And then, once you're sure that your statistical procedure works on the generative simulation. That's a minimum standard right for a statistical analysis is that it works assuming that the model is correct. And then you're ready for step four to confront your model with data. And sometimes the conclusions will be not what you were hoping for, but that's still a result. And the reason is because steps one, two and three justify the answer in four. They make it reasonable, and, and something that you can argue others people should believe. And then step four, which unfortunately many, many people do without steps one, two and three than any kind of debate could happen there. Right. So this is why I say we celebrate wins and losses equally. Everything is progress for the community. And then step five we revise and repeat this loop goes on until the heat death of the universe. And jokingly now here's here is my what I call the full sadness non causal workflow. So at the beginning of this I talked about causal salad which is this joke term I like for the helpers skelter unplanned way that people use traditional statistical tools to imitate but not actually perform causal inference. And you could also make these kinds of workflows that people implicitly follow, of course if it's health or skelter there's no workflow. But it's nice to think about these things and I hope you'll see that I'm poking fun, but I don't want to blame people because this is a sociological problem, right. We, we learn our scientific procedures in, in communities, and these things are often quite implicit. So I don't mean to blame anybody here but I think you'll see that there are problems and that I hope you recognize some of these problems in this list so first item. Find or collect some variables that are conceptually but not necessarily logically relevant to a phenomenon. This goes on in tons of research where you've got an introduction that says oh there's this phenomenon it's super important. We've got some data that kind of sounds like that. What does not happen is there's a causal model that shows that the measurements that things they've measured are actually logically related to the phenomenon, given some causal process. In step two you probe the data anyway you can, anything goes, because if you can get an asterisk, then you can get it published. In step three, you tell some hopeful and actually typically causal story about what the asterisks the significant values about what they mean. But this is the first time causal storytelling appears in this it should have appeared much earlier and justified the analysis in the first place. This is an analysis that is then interpreted as causal rather than a than a causal procedure that allows us that permits us to interpret statistical results. And then fourth of course very important you should never state the assumptions that license your story is if you do this opens you up to pure criticism. Yeah, very bad. I think you get to revel in your really truly magnificent H index, because nothing else matters. I'm being cynical here I'm joking with you. Obviously, not all scientists are only after their age index. But this is a set of implicit procedures which serves metrics and does not serve the accumulation of valuable scientific knowledge. I promise you I'm almost done here. I want to say something though about this sociology bit because I think one of the, there are lots of selfish reasons to adopt a properly causal workflow where you focus on causal models first and there are also moral ones. And I'm sorry to talk about morality. No one wants to hear hear that in the lecture but but I think we have to see that that science is a moral system, and our behavior is bound to one another through ethical obligations. And what a causal flow does is it constrains your behavior in productive honest place. Here's a very recent paper in fact I think it came out like two weeks ago or last week even. And what it is is it's a survey of researchers and animal cognition, asking their beliefs about the state of research in their field and the way people analyze data and do studies and so on it's very interesting if you're interested in animal cognition research I give you the citation at the bottom. I'm just going to show you a couple of the survey results from this to highlight this point I'm trying to make. So here's what they ask people when submitting a paper, I and others, and then on the top here. They're responding for themselves. They say they make weaker claims and warranted make appropriate claims or make stronger claims and warranted 8687% of people said that they make appropriate claims for themselves. I'd say that this, the 5.8 of people who say they make weaker claims and warranted, I want to be your friend.  And, but for others, the respondents said well yeah but more than half of people in our field make stronger claims and warranted. These two things cannot simultaneously be true. Right, so you, and I don't mean to pick an animal cognition research because it's not unique in this in this way it's just, you can see that this is a self serving bias. If you think that most people are exaggerating their claims. But you're not, then you're probably exaggerating your claims to. And the thing about the causal model approaches that it's going to constrain you to say exactly what assumptions license the claims you're making. It makes it harder to make stronger claims that are warranted, because you have what warrants your claims is the causal model. Yeah, I hope that that makes some sense. One more thing from this from this paper. QRP is performed by, and then we have myself and other animal cognition researchers what's a QRP QRP is a questionable research practice, is there things like p hacking hypothesizing after results are known. And of course is also questionable research practice because that's not usually what is meant by this this is meant by these, these sorts of statistical procedures which are in a sense normative, but actually not licensed by any statistical philosophy, things like p hacking, for example. And so, again, we get this mismatch where people say by themselves. There are rarely 70% of respondents say they never only rarely engage in QRPs, things like p hacking, dropping out liars and the like. And we've got some honest people up here though, you know, cheers to these people. But for other researchers animal cognition, 50 they're saying 50% of their colleagues sometimes do and about 30% often do. So again, these two things cannot simultaneously be true. And again, it's not the causal, the causal workflow is going to solve all problems with questionable research practices. But when your statistical procedure is derived logically from the generative model for your research context that precludes the possibility of doing many of these things. Yeah. And that's a big advantage. There's an ethical dividend that comes from this. Okay, I'm going to stop there. But I want to stop with a couple of recommendations about where to go next. And the first of these is the book on the left I think this is a wonderful book it's thin. And there's essentially no statistics in it called the causal causal inference in statistics a primer by you to Pearl who's of course one of the greats in the modern growth of formal causal models and his colleagues. And I highly recommend this book again it teaches you how to think about simple structural causal models tags and analyze them there's essentially no statistical content here it's really focused on the connection between your science and writing generative models. And I think you can download the whole PDF from Pearl's website actually if you Google around a bit. And then there's my book, which I recommend with no shame, because this is a book that I wrote as a labor of love for the scientific community for my students and my colleagues. I think it's a great journey, trying to do better, and, and justify the analyses I was doing. And it has strong connection to base of course but bases in service of scientific models represented as causal models throughout the book. And it deals with many of the more elaborate uses measurement error and missing data problems, social networks, phylogenies, and the like. But that I hope you found something valuable in this presentation. And for those of you in life, I'm always available to talk to you about these things and those of you aren't like sick, you're free to send me an email. And if I can be of help for your particular problem, I will try to do so. Thank you.


okay so you do have the option to yeah hold on let me just see if that work it's flickering so just keep it on camera this is 1080i okay it's good yeah still flickering that's fine keep it on camera for now I'll just go and check it but yeah yep on two I'll zoom out a little bit yeah can you I can speak into this for this is not good go ahead check check check right here so that tells you that it's yeah so it's fine you so you're gonna be a check in one two hey hey hey that one you know you still got me in so you see that one oh she's fine yep you can have that if I like this one customer this song loud one two one two thanks for joining us I'm Preston Wade and I'm here to talk to you about the marketing and open resource software development in cloud like it's ready and I'm trying to see the subtitle I think we're going to talk about why operations matter, what we're actually providing here on why someone wanted to make a difference. I'm going to talk about operations, what that process is, I'm not so convinced about using it and why they're doing it so we can start using inspirations then the next chunk of time is going to be, the person is going to talk in the next steps of how the service is onboarded, so how the software project would be included. So all that needs to be done. So first just a little bit about our reports. So what we're doing here is we're building an all open source community cloud planning because we want to learn back how to make software and all the cloud operations that's better by running those services and then open operations. So it's sort of normal open source development, which is the point you need to say now because two years ago there wasn't such a thing, there wasn't being able to make it normal. In a regular process this is how to change those, but in a stream development process and that goes into testing environment and integration and on the other side of that you can do deployment and what is the difference. But it goes to users. At that point in time those users can then use, in that whole procedure, experimental software or at least software that can be directly connected to that stream and that will make improvements in the future. That's sort of the power of open source software in a lot of ways. So what we're doing here with the awkward person methodology is essentially the same process in terms of studying the stream development or in the same testing process but then there's another step after the step CD and that is to bring you to the cloud environment. That is a problem, a whole production, live environment with all the other software that you're running for. It's not a testing system that's brought up, tested and done right now. It's an onboarding environment to be running in. And then it's delivered to your users. Well it actually gets another layer of testing, another layer of improvements and what we learn in it can be find it, find it to go back. This is all for yourself. People and users can write an article and see that and so forth. So of course users get their regular chain of feedback to the developers and I'm not sure that many cases of chance to get to the software faster because they're not having to install some of these cloud services in the future, seeing how that future is working. And in addition, it gives them an opportunity to test and prove that software in their own environments while it's still being developed so they can quite feedback on proving it and they can provide the other software in terms of the day or the surface or whatever. This is a change that they're seeing. Your environment is all going to be as well. And at the same time, other of the sort of projects that are involved in the software are in there as well. They're learning and improving, perhaps, and knowledge. So that community cloud space becomes a creative practice and an actual place where things can be done and we can bring out for services. You want to think about what's the surface level expectation is like an output service, and you're not trying to compete to a virtual environment. So in order to put this together, this is from this offering first idea of the two things that we have said and all of that, we put together a project, an open source project that's set up by opening operations. And I have, this is open sourcing operations. I'm trying to change the language because open source is not a very, you know, what we're advising you now but opening is a very, I mean, that kind of opening, especially, so you'll see that kind of throughout. But essentially, that means that we, you know, we're saying if you run your software, paint production before you deliver, and then you build a prototype of operating in first environment, and then you have an operating dashboard that will operate for us if you can talk about it. I think it will work as well. I think you might have seen a lot of stuff that will keep the same results. And then we kind of do that because it's going to talk about a concept but we want to actually show that your idea is going to do something. It's like we're saying, come test me with the software. We're testing, we're testing, including a concept with everyone else. And that's part of the information here to do is, you know, looking at open source projects that you want to do. And so we're ready, we're now prepared to, especially with kind of a high touch at this point in time, I'm sure you could bring a project support. Of course we want, that's not ideal. It should be much more self-service. And that's what we're going to do. We don't have that because we're not an existing cloud domain, a commercial cloud that has all this stuff there for the last two years. This is just that we're all developing together to be open to having this system. And the same thing with SRA practices, is that we are here. The development is in the open, we're writing, we're providing a lot of participation from the necessary teams to deliver conceptual documents, our PBRs, architectural decision records, and so forth, who prints on how to do things. And you can take and create your own cloud based on your own. And so recently, recently we've been working on this kind of message in front of the game. That's what you can have an idea about having some set of principles. It's quite the first audience that's actually seen this. I think next week, this is our last week, these four principles. And so a lot of words we're already getting across from the room. I think it's just the first time it's been out, but I don't want to just read a slide full, but I'll go ahead and do that and add to it. So I'm going to first look into the concepts. Relying on standing definitions of open and open source and open one. That's what I'm saying before about the opens, right? So the keys are operate, open, governance, and hybrid. Those are the four principles. By that we mean operate and build software, optimize and run as a service, and allow others to run it as a service easily, including document how we operate it, how we operate the cloud and run itself. Open. We develop open source practices, tooling and documentation and actual software content and everything that allows us to build and manage our software. The corporate lessons we've learned from operations back in the code automate where possible in each of these open source communities. Governments. And this is an important part is that something that's always the same when there's those cloud environment fields of governance and anything like that. So we've worked on fostering an inclusive, respectful and collaborative community through clear standards and accepted practices. For example, codes of conduct, dispenser, and power. And the last one is that it's hybrid. And this is being another a number of measures on that. We ensure that there's no dependency actually to the cloud environment we're operating in. I always bear in mind that software and management works identically on at least one other platform, one other cloud or other kind of business. So these are as directional. Our approach to that environment is mostly like this. We're just trying to be our conceptual investment. So just a quick little bit about what's been happening in other versions of using this stuff. OS Clidement is an important example of this. They're an open source collaboration community and they're building data and software platforms around modeling, financial markets, and investments to consider climate change. Because all of them also consider climate change. So this is a, what the community of practice is all about. So this is a, what the community of practice and development around data science that's happening. And they're creating a group of data commons of all of the models that they've got and then creating and providing some different analysis around with each other. And so those workloads, so the workloads are running on top of Open Data Hub, which is the upstream of Red Hat within the data science product. And so this team has been doing this for the last, most of the last year. So it's providing the ability to quickly scale up and bring in members of the community to work directly as a developer to ask data scientists without having to learn a whole bunch of human and whole bunch of processes. And it allows them to work on, to work from idea all the way through innovation all the way through the struggle, all the way through the competition. So yeah, so essentially I'm just looking to see how these work really go in software operations match up. I mean this is another way of looking at the aspects of this for principles for the work. But in a sense, it's a lot of them to come up with on-time open source communities. We're not spending a lot of time making decisions around which tools we use and who's going to pay for the AWS bail. And so I wanted to think of it as an approach that I'm working on. So I'm just going to give you the next part of this and start doing some of it. So as with all the different components, it's for something creating workloads, like this each project of data process that you can interpret in different scenes. And this is another thing that we also work running management optimization on web first. The example here ACMI is the main problem. And we also use it in the service. We check our data from web first steps. Because of what you can see on the server. The project of our content besides the current aspects of it. First we're trying to build a government score on the source code so we can also build their kind of group friends. It's an example of a really interesting problem that we've been working on here for the last time already. Part of the model here is that we provide open telemetry. We did obligate it to be with the DII, the kind of information that's invented for our organization. So people are using it on their power to scrub and anonymize data. So these are problems that people have that actually had a reason that's why I think this would be that problem. So what is all this concept behind where can I start? For this, all these different workloads and the service you have you're kind of improving all kind of personas. These two examples I'm focusing on the developer. Two examples to make oneness and of course communication as a whole. The rules as a service is already something on it. So let's talk about ineness using githubs to manage the audience and the stores for people to work on. Then you have this dynamic file that you can set by when you can first is the rules as a service. So instead of running your own by this and then you can search and this is what you can do in the program. So it's great it's down that's a positive problem in that way by itself the service code the thing I want to point out is that unfortunately the rule that was just set in there in terms of how that is going to be beneficial for you it's unfortunately not. One of the things that's important to us is a lot of people don't know what a hub is and when they hear that it makes it good. So today our documentation on our process is a lot to teach and learn from people working on improving the documentation of the goal is to make it so that data scientists can come in and they can not have to worry about any of the problems. So there's a gap between the intention that we are able to put to that all the time.  That's it before we do an extra high touch right now because there's something that's improved on HM and automation before that happens. You point to this one because the next example and she actually wrote an amazing blog on it and told me what it is and what it is about. So she used data to get a kind of magic data on this case. So this is a basic idea the difference between data can relate to all of these which you guys state in the same way and you can just put it in there. So why this example is happening when you look for stars because you will go in this direction and you can do a quick turn to get some data even better the ideas are already in the very large amount of data and you can do all this with a small draw and in short time in this case I'm just going for the steps. So she made it really easy by how many to get it and how to set up to a yellow silence and short with the same day in space and and when you open them data will just be connected to this and she wrote this in her little repository we wrote all the different files in the database in there and at the end we can just easily go to our first last and smart and find all the different settings in the different files we will see how easy you can connect the two lines quote and it's going to be very invisible we are not going to have stuff here because it's some other data science yesterday but an easy point easy follow the different web pages of the data that is collected here and follow the what file and you can 20 minutes that's really short if you want to follow the link the page is also online so just go for the steps we'll be running in a few minutes and you'll all get your work done and this is at the end the link page or anything that you just did follow our Twitter and most of the topics I'm recommending going to our repository because there's a lot of stuff happening so please sign up and get all the help from folks here and so there are a lot of recorded presentations out there right now our YouTube channel has a number of pieces going on the things that people that could see exactly so we chose not to get into that today but we didn't have to fight for this because we didn't have anything with any allocations but what's nice about using the blog is a lot of people this is how documentation gets created to start with and to start with one account this gives you an open source project with a mindset about what you want to try out something to walk through and model if you write down some steps and help us get that published then we'll be happy to do that we have wanted to that's our presentation one to do a couple minutes less questions we've got a mic in the back but I need to do something to stick the mic up but then you can still clear yes, we can still clear thanks I'm a big fan of Operate First and I'm really glad to see all the open source communities projects kind of seem to start to aggregate on your community cloud I'm very interested in the distributed telemetry do you have any stories of what people have been able to discover about how their services are running by using the distributed telemetry or even just are there any astonishing discoveries when they actually try to run their software on a real cloud do you think that's mine for you or one of the things one of the things it's a big question I think that's something we're trying to track right now with the stories of people about what's going on so I know what gets in and then it doesn't just remind me all this kind of story because there have been several things that have come from what's going on in the open grid about what's going on in the open grid the way that products are going to be and part of this is that we don't have a full telemetry staff at the company running so we can then go back for that yeah these are first steps the kinds of gaps that we're getting from people right now what you thought it was going to take to get your service running and your knowledge is coming back this question so this is very interesting to me as someone who's had to deal with applications and had to figure out how they're supposed to be deployed because nobody else does including the app developers themselves especially with a lot of open source projects where people are doing this sort of without a native kind of approach of developing applications I mean you guys started figuring out outreach approaches to getting open source projects to start looking at as part of their development process as part of them actually making their applications and whatever to consider first coming to Opry first and build their applications with the full life cycle of an application on the process in fact we're experiencing that right now so I started working on the project here and it's immediately with the possibilities but I was in my experience with open source projects that you're saying hey you've got a cool platform you can use it and it's not necessarily so what we focused on was and also because it was going to take those journeys to know so we focused on what happens so we knew we could ask this out of the game and do that so now this is the first time we were starting with the OO and certainly we're beginning outreach because we wanted to get a point where and then also making it really clear that this isn't just like an easy to use free resource that you can work with there's a lot of things to use with it there's going to be some steps involved there's a pain involved with OO that will be going on in the future and I think in essence from the we talked about augmentation making sure that when you come in, at least a lot of people come in and just don't count what you say and what you say and just make a PR and that's like it's not, we make sure that we're very careful about it so the impression I got from having to work with you know random open source projects that open stack or organize whatever is that they don't actually know how you're supposed to run it and the works on my machine gets real hurtful right at that point because they don't really have things like practicing how to run it instrumented things in that nature so that's something that I would like to see come out as a positive result of this effort and that part of those defined like the conceptual answers that you need to have and actually make the creative choices that are providing to you both from your practice Thanks very much for your presentation two quick ones so it wasn't quite clear to me the intention was to search for applications for a long term or if they had a particular maturity point that they were intended to all for stand up their own structure oh it's a good question but it's like a right idea that's a little bit different from my perspective we're not we're asking we're providing resources for open source projects at that point like we all need workloads if you bring your software here that software needs to be running and testing something like I'm not going to go over it from users to your software I can see a lot of it's like we're not going to we're not going to take the likes that opens off per se but because it's more of an and I think what we're now that I'm seeing this out loud I'm thinking that that's probably the part that's maybe that's something that we've added to the onboarding processes like the discussion with the project and creating a set of these ones that we know what's going to happen with those ones and we keep developing a service that we're adding to what we're going to be writing in it could run forever and I think it's just I was just interested if there was a particular maturity from our data but that's a good thing we might find a thing of experience and just a second one for me just around maturity and observability I was just looking at it it looks like you have like a sheer confanance as I assume that any of the service maintainers have access to ideal to find your own dashboards and have matrices is that the case? I have a picture request out on this is that an issue a project page so there's two aspects that we want to see one is the front of what the world sees the one in the world comes and they'll say where the project is how it's constructed what are the set of things that the project wants to show to the world and then there's the dashboard that are there to develop and I think we're just starting to get some of the some of the clusters that are showing I guess I touch on the community currently but now I can write on the on the website but yeah there's a difference between what we want to provide and where we're at right now so yeah, that's the do you help them to find the rest of those and things like that or at least maybe solve to order best practices around finding those great question that you get so for example we're we have a member of our community it's essentially the it's the name of the research cloud that is going life as life as well to be students and that and so that is in operations there's been many school activities that go on time so we're going to be working in a long term discussion about an SLO process with that so not like the other stuff I'm writing and then we're getting in and as you show up where I'm basically thinking to point it out some of the contributions that we get from the SRE team that Brett had has been around finding SLO so there's now a full SLO and scrap guide to use when you want to have those discussions to work with a team so we're using that to have those discussions with that team the first one at that level that's a big piece and then I think now that I've got that framework we're going to be adding to be a a lighter weight version of a a difference of projects in so much kind of a better way of discussion so then so I can kind of iterate on so the goal is to be able to provide what doesn't exist in the world or the best practice that's out there so we've written up that's perfect otherwise as it turns out there's not a lot of open source open content around SRE practices appreciate it, Brett Holmes, thank you that's another hand over here a little bit of my question which was I was wondering about some of the origins and some of the things that you were taking into direct inspiration how are you trying to do more architecture and the best practices and I think a really important question was we're going to open it for the last project and that's part of the dynamic except for the cloud people, cloud native for the people who started some of the work part of the open sector is a part of the concept of running open operations is something that has been going on for a while there's a number of the entire cloud foundation it all runs open infrastructure that essentially everything but the passwords is available and the order of business as well there's a lot of projects to do and so it's a model that's been out there for a while this idea of taking something up to the cloud level I feel like it's kind of a natural next step that's going to happen and then just starting to get out to give it to you how to actually preview the cloud and then to the next level I feel like that's very important there is a sign down there for the closest operation yeah and I think if some of these people are interested in working on this we can do the work daily of course on the cloud practice level but also in terms of like the disruption of the industry you can kind of expect that something like this is going to happen all the private cloud providers have the same level of disruption on this right so and this is how we all do it and so we definitely have time if there's any other questions if we're hanging out here I'd be happy to take any more one observation is interesting one choice for operators first it's pushing and the other one is like I work with Red Hat SSO and we were very interested in working with SSO so someone probably will reach out and the other thing is like how is this different from RH OBS Red Hat for Observer so that is a product I don't actually know the details of the product but the I think one of the aspects is that one thing is that it's probably different for RBS is that we're running bare metal we're running an open chip on bare metal we're running some bare metal and that's something we need for that for other services on bare metal that's what we want to do that's what we want to maintain so we definitely have access to be able to provide more deeper access to abstracting of please much about the potentials and then wherever the components are that would be either they are already installed or they could be installed because it fits everybody


Hi, this is Pastor David Rosales of Calvary Chapel of the Chino Valley, California. In our day, it seems fairly common for professing Christians to casually complain about their churches, its ministries, its leaders, and of course, its pastor. I've been in various public places and have, without any design of my own, unfortunately overheard people complaining and gossiping about their pastor and their church, and I could not help but wonder how others were viewing their loud comments and if those over hearing this kind of talk would ever be interested in visiting a church or hearing the claims of Jesus after hearing such things. After all, if the people speaking were followers of Jesus and were still so petty and mean, why would any self-respecting pagan want to go to a place that produces this kind of person? Now at this moment, there are some of you who are angry enough to stop listening so you can post on Facebook about the so-called pastor who judged you. In other words, even when convicted, you will find an excuse to remain in sin because you think that this is how God designed you, thus blaming God for your sinful heart and sinful actions. I would venture to say that you attend a church that does not teach you the Bible, or that may teach you from it, but does not give you the impression that it matters much if you listen and actually obey with the Bible teaches. This is the sickness of the church and sadly it is something that seems to be the norm in many church communities today. Churches led by pastors who won't confront sin and members who won't repent from it and argue in favor of it. How sad indeed. If you're still listening, allow me to proceed a bit further by sharing a few things that we glean from 2 Thessalonians 1, verses 3 and 4, that should encourage you today to grow in your faith in Jesus and your daily walk with Him. In these verses, the apostle Paul told the church that he was bound to thank God always for them. Think about that for a minute. Paul was obligated to give thanks for these believers. In a time when pastors are disrespected for their work, these people touched Paul so deeply that he was obligated to give God thanks for them. What was it about them that prompted such a prayer of thankfulness? The church was under reflection and persecution and instead of caving in to the pressures they had remained strong in their opposition to it and had not yielded to the temptation to reject Jesus and the gospel. Instead of their faith wilting under pressure, it was growing exceedingly outgrowing all boundaries. Instead of hiding the light of the gospel into a basket, they were living the gospel out in the open and in spite of the growing and often painful opposition, they were spiritually maturing. This was an answer to his prayer that he had prayed in the first epistle where he had told them that he prayed night and day that they might be able to see them in order to perfect what was lacking in their faith. At that time, their faith was lacking, but now it was ever-increasing and he was truly blessed. He also was obligated to thank God for their love, for Jesus, one another, and for society at large. Instead of becoming hostile towards the world and fearful of it, they actually saw the needs of the society that they lived in and desired to somehow teach them so that they too could be set free from such fear and torment. The fact is, they understood that love is the true mark of the believer, not simply what the believer is opposed to. There are numerous churches that are being fed teachings that actually make the people angry at the world and afraid of what it is doing and the result is a lack of love for those who are lost. The people in the world are viewed as threats and enemies and anger replaces love for them and hopelessness takes a place of faith and the hope that God could reach them. In the case of the Thessalonians, the hostility that they as a church endured did not divide them, but instead had drawn them together even closer and the band of community in Jesus was actually strengthened. When one of them suffered as a church, they suffered along with them and as a result, their love for one another continued to increase. This faith and love was accompanied by patience, a patience that was being demonstrated in the midst of such afflictions and persecution. When Paul spoke of their patience, he was not speaking of an attitude of meek submissiveness, the kind of attitude that simply puts up with things and never responds. He was speaking of patience that was heroic, the kind that courageously endures to the end and holds fast to what is true. He rejoiced and thanked God for them because in spite of the organized persecution against them, they were enduring. They held fast to what was true and what was right. They did this because their faith was grounded in God and it was in God that they hoped. He rejoiced because their faith and love was being demonstrated by their patience. His concern had been soothed by the continuance and fruit of the Spirit because faith, love and patience was being exhibited in the face of prolonged and aggressive hate towards them. This provoked Paul to pray a prayer of thanks as his heart was overcome with relief and gratitude. They had so blessed him that he told them that he boasted of them among the churches of God. In other words, he held them up as an example of what the grace of God can produce in the lives of those who are truly believers.  Is this something that your pastor can say of you? Is your pastor obligated to pray a prayer of thanks because you are in the church and you are such a blessing that he simply has to pray this prayer of thankfulness? If not, perhaps it would be a good thing for you to seek the Lord to help you to become what the Lord has designed you to be. Many years ago, I told my own pastor, Chuck Smith, that it was my desire to remove pressure from him and that I never wanted to be the one who put pressure on him. I wanted him to know that I was there to be of help to him because I believed that God was using him to reach the world and was blessed that God had used him to teach and reach a lost hippie boy like I had been. My opening words were direct and by some standards may have appeared a bit harsh, but the question remains, is it not time for us to become the kind of people that others are actually blessed to be around? This is Pastor David Rosales of Calvary Chapel of the Chino Valley, California.