Hi, welcome back to analyzing software using deep learning. So we are in the second module, which is about recurrent neural networks and how to use them for code completion and program repair. And this is the second part where we'll now look into the first application of recurrent neural networks. So what we had done in the first part was to look at RNNs and how these models actually work in general. And now we look at one concrete applications of them, namely for code completion with statistical language models. As most of the things we talk about in this course, this idea is based on a paper that appeared relatively recently. So actually this is one of the earlier papers in this whole space because it appeared at PLDI 2014. The concrete application that RNNs are used for here is code completion. What is code completion? Well, it's something that you've probably already used when you have programmed in an IDE. So given a partial program, a program in which some pieces are missing, the goal is to find some code to fill in these missing pieces. So your program has some holes and you want to have in this case a model that predicts what to fill into these holes. In most IDEs you have at least the basic version of this code completion. So if you press the right shortcut in the IDE, it will, for example, propose the next method to call or maybe one variable to use. What code completion is about here is slightly more advanced than what you get in most of today's IDEs because it is not just about fitting in individual tokens, but it wants to fill holes with sequences of method calls. So specifically the code completion system wants to tell you what methods to call next and what arguments to pass to these methods. So let's have a look at a concrete example, which in this case is a piece of Java code that contains a couple of statements, but is still missing some code. So if you look at this code and know Java a little bit, you may figure out that this is code for the Android platform because it's using some APIs that are commonly used in Android. And then in this if statement here, there are actually two things missing, namely what to do if the if condition is true and what to do if the if condition is false. And filling in these holes h1 and h2 is exactly what the code completion system is supposed to do and specifically it wants to fill in these holes with method calls that come also with the arguments that you are passing to the method. So now to fill in these holes, the approach that we are talking about here is using a so-called statistical language model. So let's have a look at what such a statistical language model actually is. It typically consists of a couple of things. One of them is a dictionary of words which basically tells us all the words that we have in our language. Then there's a notion of sentences which unsurprisingly are sequences of words. And then there's some model which helps us to predict what sentences are normal in this language by basically defining a probability distribution over all possible sentences. So for every sentence, this model is telling us how likely the sentence is. So for example, let's say our language is English. Then if we ask this model about the probability of a sentence consisting of hello and world, then probably the sentence has a higher probability than a sentence that has the same two words but in the other order because it says world hello. And by knowing how likely these two sentences are, you can basically tell which of them is probably the correct sentence. So there are many ways how these models could be defined. We here focus on the most basic kind of model which essentially predicts the next word based on all the previous words or it can tell you the probability of the next word based on all the previous words that we already have in the sentence. So mathematically this means the probability of a sentence is given by multiplying for all the words ranging from I to M. The probability that we would pick a word WI given some information about the past which similar to the RNNs, I'm here calling H of I minus one. And specifically here S is this sequence of words W1 to WM and HI are all the words up to the point in time I. So this idea of a statistical language model is not specific to programs or to software. And the question is how can we use them for code completion? So the basic idea is to use a model that can predict the likelihood of sentences by basically formulating programs as sentences. So what we do here is we will look at program code as sentences in a language. And then if you have this notion then code completion essentially becomes the problem of finding the most likely completion of the current sentence. So the existing code is the current sentence and by completing this current sentence we are essentially completing the code. Now this is an interesting and very general idea but there are of course a couple of challenges if you want to make this a reality. So one of them is how to actually abstract source code into sentences. There are many ways how one could do this and we will look at one specific way here in this lecture. Another interesting challenge is what kind of language model should we use and we will see two answers to this question and then actually see that the combination of these two answers works best in practice. And finally there's the question of how to efficiently predict a completion because you want to use a code completion tool typically in an IDE where a programmer needs a tool that is quicker in suggesting how to complete the code than the programmer would be in actually writing it herself or himself. So let's now have a look at how the approach we are talking about here which is called SLANG is addressing these challenges. So here's an overview of the approach which I've shamelessly stolen from the original paper at PLDI 2014. So at the core of all of this is a statistical language model that we have just briefly talked about. Then the approach has two main phases. One is a training phase during which this model is trained to basically learn the language that it's modeling and then once we have trained model there's a query phase where we're using the trained model in order to provide code completions. For the training phase we need some training data set which basically consists of code examples which are abstracted into sentences and we'll see how this works. And then in the query phase the approach is given a partial program that has some holes which are again abstracted in the same way as during the training phase which is giving us a sentence with holes. And then we can look up in the language model what candidate sentences it suggests to fill into these holes. Then we can combine this with some additional constraints that we get from the original program and then at the end provide some completions to the developer. So let's now look deeper into the individual components of the approach and let's start with the language model because this is really the core of the approach. I already mentioned that two different language models used in slang and one of them is actually not a deep learning based language model but it's an engram language model. So what is an engram language model? I've previously talked briefly about this idea of modeling a language by looking at all the previous words in the sentence in order to predict what the next sentence will be or what the next word will be but there's a problem with these general history models. And this problem is that maybe you haven't seen anything that started exactly as the sentence that you're being provided in your training data. So let's say you have some previous or some partial sentence HI then maybe your training data does not really have any information about what comes next or maybe has just a small number of examples that are not enough to make a good prediction. So the problem here is that the training data may not contain anything about a given HI so a given previous sentence a sequence of words. Now the idea of an engram model is to not look at the entire history but to say that the next word only depends on the n-1 previous words. So in a sense this is basically looking at a limited history in order to make a better prediction because by looking at only the n-1 previous words there's a much higher chance that you have seen these n-1 previous words somewhere in your training data. So with this formulation of the problem the probability of a given sentence now looks as follows so it's again the product over words ranging from I to M where for each word we look at the probability of this word WI given the previous words but only the n-1 previous words. So let's have a look at a concrete example and before we look into examples from programs let's use an example in English simply because it's easier to understand. So let's say we want to predict the probability of the sentence 2B or 2B and let's say that our n for the n-gram is 3 so the model predicts every word looking at the 2 previous words before that word. So in this case the probability of this entire sentence will be the product of the probabilities of all the words in the sentence each time looking up to 2 words back if there are any words of course. So we will have the probability of 2 given the empty word because there's nothing before the 2 so there's nothing to look back at times the probability of B given the beginning of the sentence which is 2 times the probability of or given the 2 previous words so 2 and B times and so on until we reach the end of the sentence where we look at the probability of B given not and 2 So this product includes all the words in the sentence but for every individual word looks back only n-1 so in this case 2 words So now how do we know the probability of these so called n-grams so basically of the previous words followed by the next word and this probability is what we get from a set of training examples which helps us to estimate basically for every n-gram how likely it is So for this example of English this training corpus could for example just be a set of English texts or maybe Shakespeare texts and for programs of course we want to have a training corpus that consists of programs abstracted that we want them to abstract in order to get sentences By looking back only to the n-1 previous words an n-gram model of course has a very limited view of the past which it can use to predict the future and this limitation is addressed by the second kind of language model that we want to discuss here and this is an RNN based model So this model looks like a recurrent neural network like an RNN that we already have seen earlier in this course just that now the input is the previous word in the sentence and then what the RNN predicts us is the next word in the sentence and because this is an RNN that has this recurrent connection up here it is able to store information about all the previous words in practice of course the capacity of this hidden layer H that is used to store information about the past is limited so what will happen is that the RNN needs to make some decisions of what information to keep and what information to throw away but essentially it can store all information about the past bounded by the capacity of the hidden layer of course how do we encode these words the previous word and how is the next word predicted so here we need some encoding into a vector and what is used in the slang approach and also in many other approaches is the most simple encoding that you can basically come up with called a one-hot encoding later in this course we will see some other ways of encoding parts of programs or also natural language words into compact vectors but for now let's stick to this one-hot encoding so what does one-hot encoding really mean it means that the length of the vector is equal to the size of your vocabulary and all values in the vector are 0 except for the position of the word that we want to represent so every word in our dictionary has one position in this vector everything is a 0 but we have one specific element set to 1 in order to say that this is the word that we want to represent so this looks something like this that we have this usually very long vector of 0s and then somewhere in there we have this one specific position that is set to 1 because this is basically the word that we would like to represent and this kind of vector is now given to our RNN and then the RNN predicts the next word and then the next time step gets this next word as it's input and predicts the next next word based on the previous words that it stores in this hidden layer H so now to use any of these language models based one or the RNN based one we need to represent source code as sentences so we need to define what the words are and how to compose sentences from them remember that we want to predict sequences of method calls in these missing pieces of code so what we'll do here or what the approach does is to abstract code into sentences by basically saying that every method call is a word and a sequence of method calls for each object to be a bit more specific the approach is using separate sentences for every object so basically for every object that occurs somewhere in the code a separate sentence is constructed and objects can occur in different kinds of roles within a method call so an object can occur as the base object of a call it may occur as an argument to a call or it may occur as the return of a call and no matter where a specific object occurs everything belonging to this one object is put into a sentence and these sentences are then fed into our language models now the question is how can we actually get these sentences so these sequences of method calls from a program as in practically all program analysis tasks there are basically two options one is dynamic analysis and the other is static analysis let's look at this first option dynamic analysis dynamic analysis means that we are executing the program and then during the execution observe something and in this case we would observe all the method calls that happen the big advantage of dynamic analysis is that we get precise results because we see exactly what is happening during the execution and do not have to approximate anything the big disadvantage is that we can only analyze what actually gets executed and if there is some part of our code corpus that never gets executed we will basically not see anything about this part of the corpus let me illustrate these advantages and disadvantages using this little example down here so we have an if statement that depends on some value we don't know because this is read from some input and depending on this value we are executing this branch now if this branch is always taken so basically if you always go here then what we will see is only this one call and our analysis will not extract anything about object.bar so it's missing some information that may be potentially interesting but just for our executions is never executed but at the same time the information we get is very precise because we get it from a concrete execution and know that whatever we see has indeed happened the other option for extracting information from a program is static analysis which does not execute the code but reasons about possible executions without really executing the code the big advantage of this kind of approach is that we here can consider all execution paths which means we can basically consider all possible executions that might happen in any possible execution but the big disadvantage is that there are some pieces of information we just don't know without executing the code and as a result we need to abstract and approximate the actual executions in some way again let me illustrate this with an example let's say here we have again an if that depends on the input so we do not really know whether this branch gets executed so we can or cannot include this call here and if we don't really know then probably we will include it here another uncertainty that we have is that we in this example for example do not know whether A and B refer to the same project so they are different variables that's clear but they may be aliases and point to the same object and as I said we want to extract all calls related to a specific object into the same sentence so if A and B are the same object then this should actually end up in the same sentence but if they don't then they should not but without really executing this code we may not be able to tell whether A and B point to the same object or not this challenge we are facing here that we are not really able to precisely analyze all possible executions of the program is a general dilemma for program analysis that basically occurs everywhere automatically analyzing a program and the result of this dilemma is that you basically always have to choose between over or under approximation and we'll see in a second what exactly this means so to explain what I mean by these terms let's suppose we have some program P and some input I or some inputs I and as a result of running the program with this input we'll get some behavior which I'll denote with P of I now if you think about the space of all possible behaviors of a given program then there may be some behavior P of I1 there may be another possible behavior P of I2 and yet another possible behavior P of I3 now what we would like to see ideally in a program analysis is this set of all possible behaviors so this is what we would like to analyze ideally but as it turns out this is not really possible as I've already illustrated with these simple examples on the previous slide what we instead have to do is we have to decide whether we want to over or under approximate this set of possible behaviors and one way to approach this problem is to just look at the subset of these possible behaviors which is what is called under approximation and this is essentially what most dynamic analyses are doing so these analyses are executing the program with some finite set of inputs and as a result see some finite set of behaviors which may not cover all possible behaviors and as a result they are under approximating the set of all possible behaviors the other option is to basically go in the other direction and to consider some behavior that is actually not possible so there's some behavior here that is not really possible but nevertheless considered in this screen set and this is what is called an over approximation and this is what is done by most static analyses so now given these two options of under approximating with a dynamic analysis and over approximating with a static analysis SLANG is taking the second option so it's running a static analysis to extract call sequences that are then used as sentences for our language model specifically the static analysis works as photos so whenever it sees a loop it is bounding the number of analyzed loop iterations so even though the loop may run more often in reality the static analysis is assuming that it runs at most some defined number of times whenever the control flow joins so basically places in the code where different flows of control come in and the control may come from here or may come from there then what the static analysis does is to take the union of all the possible execution sequences that it has seen on both of these incoming flows of control and then I briefly mentioned this problem of determining whether two variables alias each other so whether they may point to the same object at run time and what the static analysis used in SLANG here does is to use an existing points to analysis that reasons about references to objects and basically tells us whether two variables may point to the same object or not and using all of these approximations we eventually get a sequence or a set of sentences which correspond to a set of sequences of method called extracted from our code corpus so let's have a look at the information that is extracted by the static analysis and for that purpose let's look at this example that we see here so in this code there is an if so we do not really know an aesthetic analysis whether this condition will evaluate true or false so what the analysis does is to consider both cases the case where we will execute this statement here and the case where we directly go after that statement because there is nothing here in the else branch so now given this example what the analysis will extract are five sequences of method calls that correspond to different paths through this code and to different objects that are at the core of every sentence so let's look at them one by one so the first two are centered around this SMS manager object here and the reason why we have two sequences is because we do not really know whether this second statement in which SMS manager is involved actually executes so there is one sentence for the case where this if is evaluated to false and in this case we have exactly one call SMS manager is involved in which is a call of the get default method where the SMS manager object is the return object the second case here and then there is another call of divide message where SMS manager occurs as the base object which is represented by this zero place in the parameter list here and then there are two sentences for message which are basically similar to what we have just seen and then there are two sentences for message which are basically similar to what we have just seen so it is about this usage of message and that usage of message the first one again for the case where the if is not executed so we just see this call of length where message occurs again at position zero so as the base object and then for the second sequence of message we also have this call of divide message where message occurs as one of the arguments and that's why the position here is one which corresponds to the first argument and then finally we have another object here namely this message list which occurs only once as the return value of a call to divide message so we have another sentence like this so basically each of these sentences here consists of a sequence of calls and each of these calls consists of a name and a position where the core object of this sentence occurs in so now once the analysis has extracted these sequences of method calls they can be used to train our statistical language model in the evaluation of the paper that this part of the course is based on they use 3 million methods from various different android projects so it's a pretty large and then extract sentences so sequences of method calls from each of these methods using aesthetic analysis and then these sentences are used to train the statistical language models that we talked about so both the anchorer model and the unn based model is trained using that data so once this model is trained we can then use it for querying the model to find out how to complete a partial piece of code so what we are given is a method that contains some holds and into these holds we want to fill in some method calls so what the approach does is to go through each of these holds and for every hole consider all possible completions of the partial call sequence that is already in the given method in reality it's not really going through all possible completions as I'll tell you in a minute but for now you can basically assume that it is considering all possible completions and now for each of these possible completions so basically each of the ways the existing calls can be complemented by additional calls the approach is querying the language model and then gets a probability that this is the right completion the approach is using two language models the n-gram based model and the unn based model and what the people who did this work found out in the evaluation is that the average of both the prediction of the n-gram model and the unn model is actually the most effective in finding the right completion so what the approach that eventually returns is a completed piece of code which adds these method calls such that the overall probability as predicted by the language models is maximized so let's have a look at how this works by going back to the example that we have already seen earlier so here we again have this piece of android code where we have these two holes that we would like to fill in and now what the approach does is to take the existing calls in this code like this call to get default or to divide message and then ask the model to complete this started sentence with the most suitable words or the most suitable method calls in this case what it would predict is that if the if branch is taken so basically if this divide message call is also executed then what we should fill in into the first hole is this call to send multi-part text message which essentially is splitting a larger message into multiple text messages and it also tells us at what position in this newly added call to use this variable message list namely here as the second argument likewise for the other hole that we have where the if branch is not taken it also predicts a method call but because in this case this call to divide message does not happen before it has a different prefix of words or method calls that have already happened and therefore the language models also make different predictions and here predict that we should call send text message and again tells us where to use one of the variables that we already have here namely this variable message so as you can see this idea is able to predict the right method calls to be called here of course it does not always work like this but at least in many cases it does so I've already hinted at the fact earlier that querying the language models for all possible extensions of a given sequence of method calls may not be feasible simply because there are too many of these possible extensions so in order to keep the time that the code completion approach takes to suggest the code completion to a developer in reasonable bounds the approach comes with a couple of refinements of the approach that we have seen so far so one of these refinements is that a user may provide hints about what kind of method calls to fill into the holes so one of these hints is about how many different calls to insert and another one is about what objects to possibly use in these method calls and this reduces the search space so that the language models have to be queried less often another refinement is to replace some infrequent words so some infrequent method calls with a special word unknown which basically means the approach is not at all reasoning about these infrequent method calls it is also not able to predict anything about them but at the same time significantly reduces the search space and then the final refinement is about using a simpler language model as a pre-filter to decide what queries to ask the other language model with and this simpler language model is a bi-gram model so basically an n-gram model with n equal to which means we are taking the previous call and then just ask what is the likely next call and out of these likely next calls the full queries for the language models are constructed so that only a subset of all candidates that would otherwise be asked are given to the language model and as a result of all these refinements it is possible to explore this space of possible completions in reasonable time and provide co-completions faster than a developer can actually type the code herself or himself alright so this is already it for the second part of this module on an n-based approaches for analyzing software so in the second part you have learned how to use RNNs for code completion and what we will do in the third and last part of this module is to look at another application where we will see how to use RNNs for repairing syntax errors thank you very much for listening and see you next time


Do you work with a producer on both series? Yeah, yeah, I do. And that's an important part of the relationship, I think, and having somebody to help you shape the story and, you know, push you in certain directions or take you away from certain directions. I think that's great, but I am very hands-on. I think that's something I've enjoyed about podcasting as well because I think in radio before, sometimes I have worked with producers where they would effectively shape the story. They'd do the edit. They'd sort of tell me how it's going to be and then I sort of have to write a script around the bits they'd cut together. Whereas, you know, this is very offered indeed, you know, and I'm choosing all the material I use and I'm choosing when to use certain effects and music and stuff like that. So it is very offered. Anything you do, whether it's kind of writing a sitcom, writing a play, making a podcast, it's always the product of several people. Like, you know, if you try and tell the story by yourself, it will not be as good as if you get input from different people.  Sometimes you don't agree with it at first, but then actually you realise they were right all along, you know, and sometimes they're like, you know, they just unlock a door and you go like, yeah, why didn't I think of that? Collaboration and being open to different ideas is a really important part of the process. And clearly, as I said before, with podcasts, with something where you're maybe producing it on a week by week basis, that collaboration can extend to your audience, you know, and, you know, in radio and television, you're generally producing something that's finite, at least in the instance of like a first series, it's finite, you produce it, then you put it out into the world and you say, what do you think of it?  And it will obviously make an audience engage more if they feel they're being listened to. When you are interviewing your guests, is it on a Zoom with a handheld microphone? I tend to prefer not, I mean, are we getting quite specific and technical? I tend to prefer not setting up on a table and making people really aware of the mic. I tend to prefer having the mic quite low and sort of handheld and sort of going between people where they kind of forget the mic, because I do think you get quite powerful audio out of people forgetting the mic is there. And I mean, that might sound crazy that if you're waving a mic in people's faces, they forget, but if you can keep it quite low if the recording levels are set right. And it makes people talk to you more as well, I think, like if it's on the table as a tendency to sometimes kind of, you know, you want the person sort of chatting to you and having that conversational kind of thing. I mean, if we're getting really kind of nerdy specific, I always record in mono. I try and always record in mono. We were talking about this before, but a lot of kind of new podcastings like this seem to be set up to only record in stereo. Somebody will probably now kind of come in and tell me about how to undo that. But it does seem to me like from zooms, you kind of are locked into recording stereo, which I don't know, it gives your podcast a different sound. Like you get every sort of like rustle of the headphone lead and stuff like that, which makes it feel to me it's more set up for a sort of very static conversation. I like to be able to move things about. I love the kind of walk and talk. I love, you know, to have action in my scenes. I love to think of interviews less as an interview and more as a scene sometimes, I think. You know, like if I've got an interesting person like on the Folsom story, you know, like we had a prison guard, Folsom prison guard, who was a great character. And so instead of just sitting and talking to him, I wanted to get it on its feet and sort of move him around. So we walked down to the gates of Folsom. We took a photograph there and it just feels like then if you're spending the money on going to America, you're getting a lot for your money because you then have the sound of Folsom prison as well as the sound of a room, you know. So I always favor a kind of recording technique and a recorder that allows you to kind of be very reactive and be moving and out and about. Yeah, I've always liked that. A sense of movement, yeah. That's really helpful. And it's funny when you speak it, I'm obviously putting it through this entire prism of where I'm going next with this podcast. There's so many different ways of going about it that there is no one right way. No, no, definitely.  It's really easy to do and edit wise. It's really easy as well because you could edit this in any way you want at any point. There's no sounds in the background. They're going to sort of affect your edit, you know. But, you know, another way to do it would be like, you know, me puttering around making a cup of coffee and tea and and toast for you whilst this is going on. And that instantly does give you a sense of character and it plunges you into, you know, a sort of sense of how the person lives. I think it's horses for courses because sometimes you want your into you totally unadulterated and, you know, you just want to hear what the person is saying. And other times it's really nice to get a little glimpse into their life. You know, I love that. That's sort of the sound of a kettle in the background and sort of cups of tea being made. I think, you know, that can get distracting at points. But I think sometimes it's a really nice way to set up an interview. Sometimes I find myself using that kind of, you know, arriving at someone's house. I always try and record when I'm arriving at someone's house. Being even recording in the car as we get out the car and, you know, like I'm full some until we seem to be constantly greeted by people with dogs barking, you know, so almost every interviewer seems to be giving me getting out of a car and dogs barking with me.  I've got to get my best ear, you know, I think it was like my best no good ear on the case.  So, yeah, again, we get back to that thing that in podcasting, you find yourself including stuff that you probably at the beginning didn't think was ever going to be relevant or necessary. But by the time you get to that stage at the end when you're doing the edit, you realise that those little extras, those little kind of seeming kind of irrelevance has painted a brilliant picture of this person and bring him to life. That's Danny Robbins and this is the Podcast Producers podcast with me, Neil Mossy. It's a place where podcast producers share their tips and experiences so that everyone can start a podcast and keep going. There's details of how to subscribe in the description. Thanks so much for getting to this point in the podcast. And thanks again to Danny. The links to him and his podcasts are in the description. And if you've got this far into the podcast, it's really good to have you here. Why not give me a thumbs up or a comment or tweet me. It'd be lovely to hear from you. And there's also details in the description for where you can find the next episode. Can you please help my daddy get 1000 subscribers? Just click on his face. Thanks. Bye.


My name is Kevin Bacchus and the family business that I work for with my parents and with my other siblings is called Bacchus Poultry. We've been in business for 80 years. The business was started by my grandfather 80 years ago. We've been grandfathered into the state inspection program. We've been under USDA and state inspection since 1970. We also raise and slaughter our own birds. We've done raise and slaughter for most of my life, which is going on a little over 40 years, and as opposed to some places that most of what you guys are probably looking for is to be able to have it to where you raise them and then sell them. Is that a good assessment? Raise the hands for those that that's what they're wanting to do, okay? For others just wanting to be able to know more about poultry processing, that's fine too. Glad you're here. Thank you for coming. We're here today because we were awarded a SAR grant. We're helping small farmers with poultry processing. There are exemptions in place. We talked outside about whenever you have less than a thousand birds and you want to process them on your own plant, you can sell them from your facility. But if you get above that or if you want to go to farmers markets, you need to have state inspection. And that's part of what our family has been able to help people with. There's numerous people, matter of fact, where we got the scalder and the picker from outside. That is from someone that we process birds for them at our facility. So we do this for numerous people, Fayette, Herman. We also have people come from Columbia down to our facility. There are some that sell at the farmers markets here. A big part of their market is being able to sell to grocery stores in St. Louis. Why do they need to come to our plant? State inspection. They can't just have it to where I've got some good chickens. I'll take them to this plant and sell them. You can't really do that. We want to be able to keep it safe for the customers. That's part of what we're here today is to have people understand safer processing practices, but also helping all of you that want to be able to make some money at it to be able to make more money at it. Bacteria and chickens. Salmonella and E. coli is probably the two most common forms that people know about. We hear about that all the time. We also have listeria, air sac, and campy labaster. The most two common forms are salmonella and E. coli. We took a temperature reading. Who remembers what the temperature was when we tested that bird? 92. Unfortunately, if you would take that bird and you say, you know what? I've gotten this chicken.   I'll get him out when I want to eat him. You've taken that bird at 90 degrees and sealed him in a Ziploc bag. There's going to be salmonella crawling all over that chicken. That's why we want to get temperatures down. That's part of why we use ice and we use water. Right bird equals dollars. We had some talk outside as well. We were talking about frying pan specials. We were talking also about the birds that we use, which is Cornish cross. If you're wanting to have Cornish cross birds, you're wanting to raise them to eat. If you're wanting to raise leg horns or things like that, you're wanting to raise them for eggs. As you can see in this picture, we have some baby chicks. Those are ones that are going to grow. Those birds were five weeks old we just did outside. You're not going to be able to get that with birds that aren't made for raising for meat. Taking a guess at these two chickens. One is five and a half weeks old. One is 11 weeks old. I think you know from what I talked about earlier which one is 11 and which one is five. The bigger one is five and a half. The one that is on to our right is 11 weeks old. It is what we call the frying pan special. You buy it at your normal farm and home store. They have them available and you can eat it. It's not a bad thing to eat. But if you're wanting to be able to have it to where you're selling it for meat, you sell, if you tell someone you're going to get them fresh poultry, which one do you think they want to buy? They're going to want to buy the one that has more meat on it. This is an example of the raising environment that we have. We talked about confinement, but these are baby chicks. This whole building, they can have to run around in whenever they get older. We make them in these little brooders. We keep them around this heating element so they can stay warm. They have food and they have fresh water that's changed out daily. You want to be able to have where there's open airflow, where there's no overcrowding, and you want to keep moisture down. Here's a very important part about the moisture. Think about moisture and what it does whenever. This is just a Kevin Backus story, OK? I get cold feet. So I wear socks when I go to bed. Whenever I wear these socks, my feet sweat. And then my feet get cold again because they've sweat.  So you want to be able to have it to where you're putting the chickens into a dry environment. These birds, can everyone see this? This is a slide of birds that we processed at our plant. Now that is not poop that is on them. That is not what's on their chest. What that is from is from ammonia burns. And the reason that they had ammonia burns is they were raising them on concrete. And if you're raising them on concrete, that poop is on the concrete.  Now we go back to the above slide. We use sawdust. You can use different things to keep it dry. It doesn't have to be sawdust, but that's what we use. But you look at to where it also, if you keep them dry, it's going to keep them warm. It's also going to make for a better product.  Not very many people. You take it to a store to sell it. It's not going to look very good. You have it to where you also want to be able to reduce the sickness by keeping it dry. Who's ever had pneumonia? I get pneumonia every year whether I want it or not. So if you get pneumonia, it's kind of like an infection in that for birds too, air sac. What causes that is because of their breathing. They're having breathing problems, and it'll cause their lungs to become infected. So if you have a drier environment, it's going to be able to keep that from happening. Now questions, I don't want to take too long because our presentation does end at five, but do we have questions about right bird and the raising environment? If you have questions, you can come to the microphone or you can just raise your hand from your seat. Okay, reducing pre-slaughter bacteria. The number of people that you come in contact with your birds. If you have a friend of yours, we have Paul the pig raiser that comes to your, to Charlie Chicken's plant. Whenever he comes there, Paul has his shoes that he's worn into his hogpins.  Now you're cross-contamination. That's a good way to get to where you have cross-contamination. We've heard about this whenever you look at people that, okay, I used a knife to cut open a chicken, while I'm going to use the same knife to cut up my lettuce. Cross-contamination. You also, we talked about mixing animal fecal matter. That's what we want to stay away from. Feed used. It really doesn't matter what kind of feed you use. You just want to be able to have something that's going to help them to grow. They can eat bugs, they can eat grass. There's different things that they can eat. You just want to be able to have something that's going to allow them to gain weight at the rate you want them to gain it. You don't want to be feeding them something that I wonder, I keep feeding them and feeding them and they don't grow. You want to be able to feed them and have them to where they're able to grow at the rate you want to have them grow. Rodents, of course you want to keep those out of any of your meat processing plants. Free water flow. If you would just have a pan of water, I take this jug of water, I set it in the house for the chickens to drink out of for days. There's plenty of water, they drink it and they're going to have water left over. But that water is not remaining fresh. So you want to be able to have it where that fresh water flow is going to also cut down on bacteria as well. Baseballs and feed withdrawal. This slide shows chickens that we have slaughtered. And do you remember how big that opening was for whenever we pulled out the craw and the windpipe? Probably about this big. Take this amount of feed in that craw to get through this hole. It's not really going to work. We caught those birds this morning at around 5.30, 5.45 this morning. They had completely had the feed out of their craw by the time we slaughtered them, right? So that means you're not having any feed in the craw. But if you have all this feed, they are not going to make, for one, they're not going to have any feed conversion. There's no way they eat that and it's going to instantaneously make them grow weight. You're wasting money because that feed is just going to be thrown away whenever we're cutting the birds open. And also, if you're looking at, remember when we pulled that neck outside and how I said it didn't have any feed in the craw? If you have feed in the craw, it's going to make it where that feed's released onto the neck and possibly onto other parts of the bird which can contaminate it. So that's why you want to withdraw from the feed earlier. And when you think about the fecal matter as well, notice how we didn't have a lot of fecal matter that was coming out whenever we were cutting open the birds? That's because they had had enough of the feed withdrawal from them so they didn't have to worry about it coming out. It's like us, we eat. If you're going to be eating, that release of food's going to come from you eating. So you want to be able to have it where you've given yourself enough time to have it to where they, usually six hours is fine. We've had it where it's been eight, 10. You can do 12. Someone said 24, you could do 24. You could do 24 hours, but six hours is usually going to be enough. There's numerous people that have come to our facility that have had it to where they actually have just put food in their cages to transport to our plant to have killed. And that really doesn't translate into a very economical choice for them. Clean birds to kill. Clean before kill is a good start. So that means remember the ones that had the ammonia burns? If you have a good raising environment, you have a good place where you are raising them, you're going to be able to have it to where that bird's going to be more clean to start with. Bacteria, if you can be able to keep them from being able to, if you will poop all over the place, you've had it to where they've been off the feed long enough to where they're not going to contaminate themselves. Now, airing them out. I'm going to show this next slide. Now the upper right-hand corner is the truck that we use. We have coupes that we bring our chickens in. We also have people that use different trailers for bringing chickens to us. See how there's plenty of open air in there? So they're going to be able to have to where whenever they are to our facility, they can, do we need to turn these other lights off? We can't, okay. Maybe if we could have everyone come closer, is that going to help any? It's not, sorry. But if you have clean transportation, which means we're not cross-contaminating, we didn't one day haul the pigs, the next day we haul the chickens without cleaning out the trailer, that's not the best idea. But if we're going to be able to have it to where they can ride, to where they're not getting squished all over the place, because chickens will pile up. If it's cold, they're going to pile together. And when they pile together, they're probably going to smother themselves. Then you're looking at losing birds. Questions about getting chickens prepared for slaughter? Does anyone have questions? Okay. Sanitation, very important. A daily checklist, which is what we call our SOP, Standard Operating Procedure. Every day, we write our SOP. It's part of our HACCP plan. We'll be talking about HACCP here in a little bit. Our SOP is Standard Operating Procedure. Every day, before we slaughter, we clean this. We clean it with chlorinated water. We make it sure that everything has been cleaned the day before when we slaughter. You have that same pattern that you do every time. It's your standard operating procedure. That's what we do. We're an inspected plant, we have to do it. Even if you don't have, if you're not under inspection and you aren't required to have an SOP, you still need to have sanitation. We need to be clean. You don't wanna be able to have birds that you're asking people to buy from you that you haven't had a clean facility to process them in. Outside, we were using some water flow, right? And someone asked me, wouldn't you wear an apron? You would if you're using a lot of water to keep yourself from getting drenched, right? But you wanna be able to have it to where when you're cleaning soap and water, chlorination, some people actually use citrus to be able to process with, to be able to get it where it's clean. I've heard vinegar and water as well to be able to use as a cleaning agent. You wanna be able to have clean products and clean equipment. Dirty area. Outside, for those that have never processed birds before, they probably thought the whole thing was dirty area.  In this slide, we have a tunnel, which is where we hang the birds to let them bleed out. We have a dunker, which automatically allows them to be able to go up and down. Now the slaughtering is done in this area. Hazardous analysis and critical control points is what we have as far as a HACCP plan. That is what we have given to the state of Missouri to say this is what we will do so that our plant will be able to be able to be inspected and that you can be able to be here. You have to have a HACCP plan. You write your own. If you wanna do it, you write your own HACCP plan. Now I write common sense when non-HACCP. What I mean by that is I'm talking about, let's say that you're wanting to slaughter some birds and you're thinking to yourself, well, I used the water yesterday to scald them. I'll just use it again. That's not the best idea. You wanna be able to have it to where you're slaughtering birds and having it to where they're being done in an environment that is fairly clean, even though it's a dirty area. Now this is another setup. This is, we did another similar to this. We did a presentation somewhere where they had been given a grant to build this on the back of a trailer. They have their dirty area, which is their killing area, then their picker and then their cleaning table and then also where they have the chilling for the birds as well. Here's another setup, very rudimentary, but similar to what we had outside. To where you're allowing the birds, you just have normal traffic cones, cut the end off of those traffic cones. You stick the chickens through the end of the cones and then you use the dunker. I used the scalding pot and then you use the picker. We're gonna be showing slides of this as we go through as well. Now let's get to some dirty work. Someone outside asked, why don't you just cut their heads off? Just whack them off. I've heard stories of, well, what we did is, whenever I was a kid, whenever I was a kid, you step on one end and then Grandma would be on the other end with the ax and cut the head off. The reason you don't do that is because that makes for more running around. The birds are going to be flopping around, moving around. They're not constrained. You have it to where those shackles that we used outside are exactly the same ones we use in our plan. It's a spring-loaded device, keeps them in place and allows them to be able to bleed out. Also makes it easier cleanup. You don't have to where they're just going all over the place running around. Now, remember the feed withdrawal? And we talked about where you cut that slid in the neck? If you cut it, if you cut into that vein where they have the food, the crawl, that's going to contaminate that neck. Then when you pull that out, it's going to contaminate the bird when you got it. So you want to be able to have it to where you've got that feed withdrawal. It's very important. This is another place that they did a setup. They have cones, very similar to what we did outside. Just cut their heads, cut their, slit their neck, and it's going to bleed out. Here's another setup. Just put them through the end of the cones and it's a very easy way to do it. It's also very, I mean, you look at this ladder and those cones, it's not that expensive. It's not going to be where you're spending a fortune trying to do this. Questions about killing the birds. Does anyone have any questions? Okay, scalding the birds. This is probably where some people, some of you want to really know temperatures and times. You can use steam. We use hot water just like we did outside. You want to test the waters we were doing where it's 140 degrees and you want to have agitation. That allows more of the feathers to be able to come off. The graph I have down here at the bottom, we talked about a hard scald and a soft scald. Hard scald is where all the yellow comes off the outside. Soft scald is where some of that yellow skin stays on it, it's still edible, you can still eat it. It's just not as presentable when you look at it. Turkeys you can also do, we do those at our facility too, but you see the times and the temperatures. The hard scald is right at 140 for about 75 seconds at the most. You look at the soft scald, 130 seconds for about two minutes, 130 degrees, I'm sorry, for two minutes. Then turkeys, a little bit warmer in between, right about 140, and you can do those for about a minute or longer. They were using essentially the same pot that we were using, just having it to where they're dunking them down. Now one thing that this next person did that I thought was really neat is he actually had a heating element he put in his to get the water up to that temperature. And then he just kind of used the propane tank to maintain it, not full blast, but just to maintain the heat. It allows them to be able to process them at quicker rate. Questions about scalding the birds? Yes, if you over scald, you wanna be able to turn it into chicken salad instantaneously? That's what will happen, because what you're going to do if you over scald the birds, they're going to tear apart. That meat is actually being cooked. If you would turn it up to, let's say we go to 150, 155, I wanna get those feathers all faster by doing a higher water temperature. What's going to happen is that skin is going to break and then the meat is going to be chewed up, essentially in your picker, as you're picking them apart. So you wanna be able to maintain that water temperature. Very good question, Debbie, thank you. Is there another, yes sir? If you're going to do many in one day, like 30 or 40, do you need to change the water along the way? Not as long as you have enough water if you're keeping to where you're adding water to it, because those birds are taking water out with them. You know, if you're adding water to it, you're not gonna have to do that. If you would have it to where, okay, we've got that one pot, we're gonna do 100 chickens. Chances are that water's gonna be pretty dirty by the time you get done with it.  It's not contaminating the birds because there's no, what is in the birds is filtered down to the bottom, so the birds are not actually touching that whenever they're being scalded, yes ma'am. How many birds do you do before you had changed the water? I would say you'd probably be looking at around, and are we talking for something like outside? Okay, if you would be doing them in that type of scenario, I'd say if you do close to around six or 700, you'd still be okay. If you'd be doing them something like outside, you'd probably wanna change it maybe every 50, just because it, and you don't wanna have it where you're constantly using that same water. Other questions? Nope. You wanna be able to, those feathers are going to hold bacteria. Thank you very much for my brother-in-law for pulling all those feathers, but you wanna be able to have it to where those feathers hold bacteria. So the more feathers you have on the bird, the more they're going to hold the bacteria. What we'll be showing you in actual slides from our poultry processing plant, there's water that's flowing in this picker. So it keeps those feathers continually coming off. And automation, hey, if you wanna be able to do it by hand, go back to the days of old and have a throwback moment with you and your kids, it's cool, but I would recommend automation because it's gonna make that timeframe a lot shorter. If you do that by hand, you're talking probably a few hours. Here's a plucker that was used. It's actually bigger than the one that we have at our plant. That grant provided this plucker. It's probably, I would say at least three feet wide. This is something that I think a lot of you have probably seen or may use on your own. You can purchase these. They're very low-cost. You have it to where the birds have been scalded. You put this picker together, which is essentially a polyurethane drum with fingers in it. He has a spinning wheel on the bottom. For the water, he uses a spray hose to spray the water into it. That allows them to be able to get cleaned off from the feathers. Now, questions about plucking the birds. I'm gonna show a video. Pardon me while I change over to a different screen here. Now, this is the way that we do it. I've turned the sound down for mercy because we don't wanna hear this throughout the entire building. But I'm gonna get to where apart where it's gonna show you how we cut the birds and how they bleed out at our facility first. Now, the reason I zoom in is people had asked where you cut them. So on this photo, we're gonna be able to see it a lot closer. You're cutting them right under where their beak is, kind of where their jawline is. As you can see, we're just cutting that slit. We're not cutting deep. We're not trying to get deep into the meat. It's just cutting that vein to get it to where they're bleeding out. And as we cut that vein, you guys saw them outside where I'd cut their vein. They're not flopping around like crazy because their nerves have not been reacted yet. So they don't really realize it. Now here are some birds that have already been killed. They've died off. And now we're gonna put those in our scalder. Our scalder is powered by compressed air. And it's gonna go up and down. We do this for probably about two minutes. Now I'm not gonna show the same slide over and over because this could be a long time. But you can see how they're going up and down, how they're being agitated. Okay, it's getting those feathers to where lots of water is getting through them. Now I'm gonna go to the picker, which is probably what everyone is wanting to see. Now here's the picker. I'm gonna back it up just a little bit. I'm gonna show these picker. It has a bottom spinning wheel on the bottom. And then it has fingers on the side. You can see the water is dripping down in there to allow for that moisture to be able to keep those feathers coming off. How long do you think you'll have to pick a chicken in this picker? They'll be done in 30 seconds. And you'll see how clean they are whenever they get done being picked as well. I think we're just about there. Whenever we're doing the picking as well, we take them right from the scalder five at a time and we drop them into the picker. Now we're ready to just go with them. Now they're spinning around. This is actual time. I have not done any editing to this. So they're spinning around and you can see them being cleaned as we're going here. And at the end of 30 seconds, we're gonna let them out. You can see they still have their feet and their heads on. And after the 30 seconds is over, they've been picked clean and then they're ready to be finished out. And that'll be another video that we'll be showing. This drum picker, we've had it for around 40 years. So it's something that has been, it's from Pickwick Company. Now we put another bunch in there next, but I won't reiterate. From that video though, is there questions that people have? Any questions that you would like to ask about it? No question. Yes, sir. This is an example of probably what you're talking about here. It's a polyurethane drum that has fingers stuck in the side of it. Those work very well for a small processing, in all honesty. If you're looking at it to where you wanna be able to keep your costs down, I think they're under probably a few hundred bucks. And you can be able to have it to where you just use the water hose to spray the water in there to keep them, keep those feathers coming off. And those are very easy to use. We've actually used them at one of the workshops we gave, we used their equipment for it and it worked very well. Yes, sir. Cold water. Just regular water is what we use when we spray it in there. Doesn't have to be hot. They've actually gotten all the hot water they need whenever they're in the scalder. Actually, a rendering company picks them up from us and then they turn them into feed. But that's what we do with them. They actually, we pay them. Yep. Questions about the dirty area? Yes, ma'am. Oh, sure.  But if you're looking at to where you want, that's up to you. You can do whatever you want with them. Now we're going to a much more friendly place, a place that people are more comfortable with, the clean area. We wanna be able to keep the equipment clean as well as being able to have it to where we remove the feet, remove the heads. We clip the neck and we keep the equipment clean. We clean all of our equipment, knives, tables, everything we use every day after our processing is done. We have water flowing the entire time whenever we're gutting our chickens out. We already covered clipping the heads and clipping the feet. These are examples where we did it somewhere else. You wanna be able to have a table. Doing it with open air doesn't work so good. We usually use a mix of bleach and a soap, type of laundry soap, dry laundry soap and bleach together. Any questions about the clipping the heads and feet? I know I asked that outside, so I don't, I'm trying to speed up through this because most people already know this part from outside, but if you have questions, please ask. All right, we talked about removing the neck, windpipe, oil gland, about cutting under the tail and pulling out the end of the intestine. Now outside, I was doing what you would call a J-cut, which is cutting up. You can also do a bar cut, which is cutting across. It doesn't really matter whichever way you wanna do it. The easier way to do it is the J-cut because you're just taking your knife up and you're not having to move the bird around cut into it this way. The important thing is when you do it is to not cut into that intestine when you do it because that looks at contamination. When we do the cutting of the J-cut or the bar cut, it just makes it easier for you to be able to get into the side of the bird. Here's where we're at another workshop that we did. Here's my, the person with the knife, there's actually my dad. And whenever we went to these workshops, this individual was very inquisitive but he learned a lot about processing chickens that day. Questions about cutting open. Is anyone having questions about cutting open the birds? Gutting, we pull out the guts, we pull out the lungs, save the giblets. I know we talked about outside. If you wanna save the liver, the heart, you wanna save the gizzard. You can be able to do that. They're perfectly edible. Actually, I love to eat gizzards myself. But that also adds time to what you're doing as well. If you're doing a few at a time, it's not that big a deal. If you're looking at processing these to where you wanna be able to sell them at market, you wanna be able to get them done probably as quickly as you can. So that's the choice that you wanna be able to make. An important part of that though, trimming the hearts is you're taking off the top part of that, I guess it's the valves of the heart, the liver, you need to remove the gallbladder. That is an absolute must. That is close to poisonous, if not poisonous.  There, whenever you get it, gall is something that whenever it gets into the eye, I don't know what it causes, but it really can cause you to have bad vision and actually make it to where it needs to be flushed out immediately. Getting chickens, we saw how to get chickens outside. Oh yeah, sure. The best way to do it is to have it to where you get your fingers behind it, close to the liver. And then when you get it close to the liver, you're separate a little bit at a time and then you just pull it away. That gall is sensitive enough to where you don't wanna just grab it like you're squeezing it, but you wanna be able to pinch close to the liver, almost like you're pinching the liver to release it and then it will come off. That's cutting it is actually not gonna help because that's gonna release it and make it where it gets all over everything. Now we're gonna show a video of how we gut chickens clip off heads and feet. This is at our facility as well. I'm gonna get to the part where we see different pieces of it. And here's an up close and personal look at cutting open and gutting chickens. As you can see, this can be done rather quickly. We saw it outside. Does anyone need to see it again? I don't wanna reiterate. I mean, we can, I can go through it or not. Yes, sir. We don't have a website. We don't have, my parents actually do not know what the internet is. Correct. Yes. And actually we'll be doing a webinar with a small, is it small form? Yes, we'll be doing a webinar later on in the year. I think probably next year, I think with that. We are not. No, we actually have an inspector that's there with us as we're processing these birds. So no, we are not. If you look at it from this perspective, whenever we're processing, this is still a bird that has not been completed. You know, if you get them home, they're looking at cross contamination whenever you're working in food processing. Whereas we're working with the same birds over and over. Instead of, okay, I'm gonna work with hamburger, now I'm gonna go over to pork, now I'm gonna go over to chicken. You know, you're working with the same product over and over. Now I wanted to show something as well about, I think it's, we actually just have a running hose of water that we use. Yes, yes we do. As you can see, there's a water hose that's running there. We rent some after every bird that we got. Now, I also wanted to go a little bit further into the presentation as far as here is where, sure, go ahead. Yes, we do. We normally have it to where we keep the neck and we keep the liver. If it's gizzard and heart, then that's additional, because that's additional work that we're having to do to be able to have them for the person that wants them. Is that all, sir? Okay. Here is a part that I was not able to show outside, but whenever you're looking at rinsing the birds, we wanna make sure they're clean. Running water is a must, have to have. The flushing method has it to where you're holding the bird under the water, letting the breast cavity fill with water and you're flushing it out. The immersion method is where you have a tub of water that you change out regularly. You lift the birds out, they drain out of water and then you're going to throw them into a chilled tank. This person here has a water spick that they're using. They've converted a sink that they're using. Works fine. Questions? Yes. Ours is actually our own well and we have to have it tested. Yes. Yes. Chilling out, this is a part of the presentation that is probably where a lot of people go from having a perfectly clean bird to having a bird that is suddenly going to be not good for you to eat. If you would take the birds that we just had outside that we processed at 92 degrees, you tick them in a Ziploc bag and you throw them into your freezer, what do they still have on them whenever they go into the freezer? E. coli and Salmonella. Because you have not gotten them down to 40 degrees. 40 degrees is that magic number of where that bacteria stops growing. You want to be able to have in these tanks that we have, these are galvanized steel. We've got ice and we've got water. We do a ratio of about one pound of ice, one pound of ice per bird. And now we're looking at to where this is what they used in another facility. They had tanks that they put chunks of ice in. That's also chilling them down to a certain degree temperature. Here's what I think is the best way if you're looking at to where you've killed the birds. You want to be able to have it to where you don't have galvanized tanks. You don't have the ability to be able to put them in a huge tank to be able to store them, right? Outside, my brother-in-law Randy, also known as Mr. Picker, he put these chickens that we did in on ice and put water with them. Now what's the water do that allows them to circulate around and get them cooled off faster? They were 92 degrees. Usually when we throw the birds into the tank they're around 100. Now Randy, you want to do a temperature check on one of those. If you get them down to 40 degrees it's going to stop that bacteria from growing. Now I'm going to do a quick time check. We've been inside for about 45 minutes. Now you do that temperature check, the size of the birds, time to get down to 40 degrees. You can't just set them in a tub of water and let them set there forever. They have to have ice. This graph shows if it's a four pound bird about four hours you have to get down to 40 degrees. Eight pound bird, eight hours. What are we at now Randy? About 62 degrees in 45 minutes. That's pretty good. We need to get down to 40 degrees and probably by the time we get packed up here at about five o'clock it's going to be closer to 40 than it is 62. You can put them back in there Randy. Thank you. One of the main things about temperature that people don't understand how that affects is that it's affecting whenever you've taken, remember the example I gave of the Ziploc bag, you process the bird, threw it in the freezer. We say well it's going to get down to 40 degrees, this is true, but it was not down to 40 whenever you put it in the freezer. So that makes it to where that bacteria was froze on there. So now when you get it back out it still is going to have the bacteria on the bird. That's the reason you want to get down to 40 degrees. And I know that some of you think that this is, well it's a chicken, I eat it, it's not going to do me any difference. If you're looking to sell birds, and I'm not into scare tactics, I'm not trying to scare anyone, I'm not trying to tell anyone anything. If you're looking to sell birds and if you've put your stamp on there and your label saying, okay Kelly's poultry, I am going to sell these birds, someone buys it, eats it, and they have health problems. Because you didn't get the birds down to 40 degrees. Who are they going to go after? Are they going to go after the person that actually processed the birds? Are they going to go after the person that didn't get them down to 40 degrees? Probably the person that didn't get them down to 40 degrees. Yes sir, yes. Yep, we have to where we're inspected as well too. So the inspector does not let us pack out our birds until they're 40 degrees. So whenever we're packing out a facility, like whenever we're packing out birds, even when people bring in birds to have them slaughtered, they have to be down to 40 degrees or else they won't let us pack them out either. I don't think that it really makes that much difference. I think that's marketing more than it is probably anything else, but there's different. Just like whenever we use the water for the scalding and bigger plants that use steam, just like whenever in chilling, some plants use forced air, which is what you're talking about, or they use ice and water. So that's what we use just because it's easier for us to be able to do that. Our plan is not that big to be able to do that. Killing bacteria, chlorination, quick chill times, state of Missouri testing. Our birds are tested. Whenever we process birds, they are tested routinely throughout the year. I think we have a cycle of 14 tests that we need to do that the state inspects us. They do the sample themselves, we don't do it. It's a rinse. They put the bird into a bag. They dump in the chemical to rinse the bag. They rinse the chicken in this bag. They pour the chemical back into a container, put it, seal it, put an ice pack with it, and take it to UPS, and they test it. After they test it, we get the results. If you're following the guidelines that we have, we have had actually negative tests as far as actual findings, salmonella and E. coli. But you have to be able to follow the procedures. If you're going to be able, if you wanna be able to have it to where you're gonna have birds that are continually eating feed or have fecal matter all over them when you're processing them, you're looking at higher E. coli and higher salmonella. It's just going to happen. When you're packing out, first you wanna keep them cool. Have a quick packing out time. You don't wanna have the birds sitting there forever. You wanna be able to have them where they're packed out and then put into a cooler. Or put into, what some of the people do, they actually have trucks that have a refrigerator or a freezer plugged into it that they pack the birds into when they're done. They've had it plugged in while they're waiting for us to get the birds processed and chilled down to 40 degrees. Labeling. If you're wanting to have birds that you're processing at Kelly's poultry, Kelly's farms or whoever you wanna be able to have your slogan as. You have to have a label done to do that. You wanna be able to sell them at a farmer's market, you have to have a label. We don't do it. We have our own label. If someone comes into our facility, we give them a label that says that they have been inspected by the state of Missouri. But if you're wanting to process your own, you have to have your own label. The state of Missouri will work with you on this as well. I will tell you that as a fact. They're very willing to do it. They wanna be able to help people to be able to do this. But it also is something that you have to realize what you're getting yourself into that I'm gonna make sure that I'm using the label properly and what I'm stating on the label is actually fact where I had it processed at. What date it was processed. How, what the actual weight is whenever I processed it. How long it took to do it. Those are different things that go on the label. Now questions about chilling out birds and packing them out. What's really important about packing out birds is getting them down to what temperature? 40 degrees, that's very important. Yes, I couldn't hear you, sir. Correct? We cut up chickens, yep. Well it's kind of what it is supply and demand. If you have a instance where a person wants a chicken cut up into quarters or into halves or cut up into pieces and you can be able to get more for that then you would charge more for it because you're actually putting more labor into it. Correct? We actually now at this time we sell all of ours to individuals. Correct? That is correct. Most people actually just get their birds whole in all honesty. Final cleanup. Remember what standard operating procedure was? Same thing every time. Because if you're doing the same thing every time it makes it repetitive but it also makes it to where you can be able to know that I washed out the tanks with water that was chlorinated and soapy. It was hot water. I washed all my knives, my clippers, my tables. All those have been done. And if you use the same procedure every time which is mandated by the state of Missouri you're gonna be able to have it to where you follow that standard operating procedure. Now I appreciate everyone's time today. I also appreciate everyone being able to fill out our registration information.  I'll be available for questions after we're done. Is there, if you wanna stick around for questions my email address is up here if you have follow up questions.  Thank you.


I think anyone watching this video is familiar with the usual suspects when it comes to the companies that were able to consistently crank out great arcade games. There's Capcom, Konami, Data East, but one that gets slept on a bit is Technos Japan.  They also developed Double Dragon, the Combat Tribes, Super Dodgeball, and the WWF arcade games like Superstars and WrestleFest, but Shadow Force ended up being the last arcade game they would develop released in June of 1993. And yes, it's a beat-em-up, and there are about a million of these that are being made around this time, but Shadow Force still manages to stand out on its own without any problem. One token gives you two lives to get through five levels, and you start with four players to choose from. There's Kai, a ninja with a staff, and my pick as the most fun character to play as. There's Tengu, the strong Hagar type with a big Pinocchio nose for some reason. Coyote, who you might recognize as the bug, I mean the werewolf from the movie Werewolf. And Bluene, the fastest character with two swords, who reminds me a lot of the dagger women from Ninja Warriors. The big hook this game has going for it, however, is that no matter who you pick, you have the ability to take the form of other enemies and play as them. Each enemy has at least a couple special moves, and the game straight up tells you how to do them right when you take control, so that's really cool. And if you get sick of a certain enemy type, you can revert back to your character with the press of a button. The only real problem with this is that it can be hard to keep track of who you actually are at times, especially when there's a second player. Early on, these enemies are pretty weak, and the only real reason to play as them is just for the novelty and to see what their special move is, but eventually switching to an enemy becomes the smarter option. Like this section here with these incredibly cheap enemies that use rifles. Take over one of those guys, and now you can fight fire with fire. Or really fight beat-em-up cheapness with more cheapness. Later, there's an instance where you fight these amoebas that make clones of you, so of course you'd rather take the form of just a regular enemy in the spot instead of having to fight a powerful shadow version of your own character. This is smart game design, especially for a beat-em-up. Adding to the depth of this game is the move set of each character, which comes courtesy of a six-button layout, which makes this closer to a fighting game than a beat-em-up. There's weak and strong punches and kicks, and you can do low and high strikes when holding up and down on the d-pad or joystick. Plus, there's another button to jump. You can do fighting move style inputs, like a half roll and then an attack button to do, say, a Hagar-style spin attack. And you can press both strong attack buttons to do a special move. Most importantly, however, is that the controls work really well. It's really cool having all those attack options right at your fingertips. And even better is that all four characters each have small nuanced differences in how they perform each attack. A lot of the typical beat-em-up trimmings are here as well, of course, like the first level has a section where there's pieces of steel eye beams falling from the sky. The second level has you jumping down a waterfall to fight in a place where I think I'd rather be fishing instead of fighting bad guys. Later, you fight through a factory with all sorts of different robots you can take over and play as. Before you end up in this weird cathedral that looks like something out of Castlevania Bloodlines, which sets up an even crazier final level. The sprites, settings, and environments are what I like the most about this one. This isn't the typical crazy looking monsters beaten up by dudes with t-shirts tucked into their jeans. It looks like something out of the Ninja Warriors universe or something closer to Hagane. Of course, I have to mention that Shadow Force has lots of typical arcade cheapness, which is to be expected for a beat-em-up. Melee combat like this means you have to be right next to enemies to do damage, and that's always going to give the AI plenty of opportunities to land some cheap damage out of nowhere. The boss fights in particular are big time quarter munching slogs, where you have to hit the guy a gazillion times to bring him down, but a simple three hit combo from them drains half of your health. But still, when you play a 90s arcade beat-em-up, you know that's gonna go with the territory. I'm willing to brush that stuff aside because Shadow Force is an intelligently made game. Most of the time with beat-em-ups, especially for the time, you get two buttons and you get your usual tropes like fighting on a construction site or fighting on a giant conveyor belt or in an elevator, all of which are in this game, of course. But the fighting game style of gameplay, plus the mechanic of being able to take the form of enemies, puts this game over the top. Plus, this game just looks cool. You gotta love the cyborg ninja motif. I highly recommend this one. It was never released outside of the arcade, so this is another game you've gotta play any way you can. All right, I wanna thank you for watching and I hope you have a great rest of your day.


there we go that was a clap worth having all right we're here yeah no one wanted the other one limp clap anyway we're here with establishing operation which is just like it sounds you're going to establish a stimulus as a reinforcer so the idea would be you may not want water right now but if I increase the room temperature to 250 degrees you're going to sweat all the water out of your body and if I show up with an ice cold water you're most likely going to drink it because the heat created the water as a valued reinforcer there you go


Hello and welcome to the session. In this session first we will discuss remainder theorem. According to the remainder theorem we have let Px be any polynomial of degree greater than or equal to 1 and let a be any real number divided by the linear polynomial x minus a then the remainder is Pa. Let's try and find the remainder when the polynomial given by Px equal to x to the power 4 plus 2x cube minus 3x square plus x minus 1 is divided by the linear polynomial x minus 2. As you can see Px is a polynomial of degree 4 which is greater than 1. Now 0 of x minus 2 is 2 then P2 is equal to 2 to the power 4 plus 2 into 2 cube minus 3 into 2 square plus 2 minus 1 which is equal to 21 that is we get P2 is equal to 21. Hence by remainder theorem we have that 21 is the remainder when Px is divided by x minus 2. Next we shall discuss factor theorem. It says if Px is any polynomial of degree n greater than equal to 1 and a is any real number then we have x minus a is a factor of Px if Pa is equal to 0 and Pa equal to 0 if x minus a is a factor of Px. We use factor theorem to factorize the polynomials. Consider the polynomial Px equal to x square minus 3x plus 2. Let's factorize this polynomial by factor theorem. First let's see what are the factors for the constant term 2 in this polynomial. So we have factors of 2, r, 1 and 2. Now let's find out what is P of 1. This would be equal to 1 square minus 3 into 1 plus 2. This comes out to be equal to 0. So we say that x minus 1 is a factor of Px. Next we find out P of 2. This is equal to 2 square minus 3 into 2 plus 2. This is again equal to 0. So we say that x minus 2 is a factor of Px. Hence we can write Px that is x square minus 3x plus 2 is equal to x minus 1 multiplied by x minus 2. This is how we factorize the polynomial by factor theorem. We can also factorize the same polynomial by splitting the middle term method in which the middle term which is minus 3 is splitted by writing it as the sum of two numbers whose product would be 1 which is the coefficient of x square multiplied by 2 which is the constant term. Suppose we consider two numbers P and Q. So we have P plus Q should be equal to minus 3 and PQ should be equal to 1 multiplied by 2 which is 2. So using these two we get two numbers P and Q to be equal to suppose P is equal to minus 1 and Q is equal to minus 2. So you can see their sum is minus 3 and their product is 2. Thus we can write x square plus minus 1 minus 2x plus 2 or this could be written as x square minus x minus 2x plus 2 which comes out to be equal to x minus 1 into x minus 2 that is x square minus 3x plus 2 is equal to x minus 1 into x minus 2. So this is how we can factorize a given polynomial by splitting the middle term method also. Next we discuss some algebraic identities. We know that algebraic identity is an algebraic equation that is true for all values of the variables occurring in it. Consider the first identity which is x plus y the whole square that is equal to x square plus 2x y plus y square. Then next is x minus y the whole square is equal to x square minus 2x y plus y square. Then we have x square minus y square is equal to x plus y into x minus y. Then next is x plus a into x plus b is equal to x square plus a plus b into x plus av.  Then x plus y the whole cube is equal to x cube plus y cube plus 3xy into x plus y. Next is x minus y the whole cube is equal to x cube minus 3x square y plus 3xy square minus y cube or this could be also equal to x cube minus y cube minus 3xy into x minus y.  Let's try and expand 2x plus 1 the whole cube. This can be done by using this identity of x plus y the whole cube. Here we shall have x to be replaced by 2x and y to be replaced by 1. So we get 2x plus 1 the whole cube is equal to 2x cube plus 1 cube plus 3 into 2x into 1 into 2x plus 1. This is equal to 8x cube plus 1 plus 6x into 2x plus 1 that is we get this to be equal to 8x cube plus 1 plus 12x square plus 6x.  This is how we can expand any polynomial by using the above identities. This completes the session. Hope you have understood the remainder theorem factor theorem and some algebraic identities.