Welcome to this edition of chemical reaction engineering. In this edition, we will be looking at deactivating catalytic systems. And of course, I mean deactivating catalytic systems are not new to us. I mean chemical cross industry has made great strides in this area of catalysis and so on. But our concern here is how do we deal with designs for deactivating catalyst. And then how do we manage systems in which there is catalyst deactivation and so on. So, we will try to go through this in a simple way so that we get a grip on what happens and so on. So, we will begin and let us look at this problem of our interest is that we have a catalyst which deactivates. And we want to understand what is the kinetics of catalyst deactivation. Why is this required? It is required because that data would be that model the data whatever is useful for us to design systems in which catalyst undergoes deactivation. So, to be able to quantitate a situation like this, what we have got here is a stirred tank. There is a stirrer in the there is a stirrer and the stirrer has a small basket which contains the catalyst. Now, this stirrer is spinning the idea of making it spin so that the temperature and compositions inside the equipment remains reasonably the same everywhere. So, that or data can be meaningfully used for other purposes. We have feed coming in at a certain concentration and going out a certain concentration and that is the reaction that is taking place inside the equipment. And we want to quantitate the extent to which catalyst deactivates. We want to make these measurements so that we can make use of it in other systems design and so on. So, to be able to do this I have written down the material balance for material coming in input it is output V naught C A naught is input. So, many moles per time so many moles per time is going out and this is the rate at which chemical reaction is occurring where r a is the rate function V is the volume of the equipment. In this case this volume refers to the volume of the catalyst and this is the accumulation term which is V time d by d t of C A. I have taken V outside the derivative because V is constant that is why I have taken it outside. And I have written V naught same at the inlet and the outlet under the assumption that there is not much volume change because you are looking at the reaction which is a going to be. Now we want sort of take it forward by doing some simple manipulations so I have said this psi is C by C A 0 it is non-dimensional. And I have defined a what is called as a characteristic time tau d is the characteristic time for deactivation. What is meant by characteristic time? For example, in our commercial processes our catalyst perhaps last for a year sometimes for 2 years. While the reaction time that means the time that these gases spend inside the equipment and the time that these gases spend inside the equipment is generally quite small. But what is really of great interest to us is what is the time for which the catalyst would last. So, it makes sense for us to be able to look at what happens to this equation in the time scale of deactivation. That time scale is taken as tau d what is tau d tau d is the characteristic time for deactivation. For example, if the catalyst last for 1 year our characteristic time is 1 year that is the meaning of tau d. So, what you have done here is that we have done non-dimensionalization of chronological time t with respect to the characteristic time for deactivation that is theta. So, what we have done we have defined a variable psi with the c a by c a 0. We have defined a variable theta with this t by tau d therefore, we can now write this equation in in forms like this 1 minus of psi r a tau r c a 0 tau r by tau d d psi by d theta. What is tau r tau r is volume of by v 0 in this case this v refers to the volume of catalyst that we have put inside the equipment. Now, if you look at this equation here let me go to the next line because that. So, we have the unsteady state representation of our stirred time we have our stirred time here. Let us not forget our system we have stirred time our catalyst is sitting here material is coming in material is going out due to reaction a going to b. So, this represents 1 minus of psi r a tau r c a by c a 0 equal to tau r by tau d d psi by d theta is the statement of the unsteady state material balance for the material that is happening inside this reaction equipment. Now, if you look carefully if you look carefully what we find we find that the order of magnitude of psi is order of magnitude 1 why is it 1 psi c a by c a 0 at best psi can go to 1 I mean c a by c a 0 can be 1. Therefore, values are roughly of the order magnitude of 1 if you look at theta this ratio at best can be 1. So, order of magnitude is 1 once again we recognize that r a tau r by c a 0 what is tau r tau r is some kind of a reaction time we can all say the inverse of reaction time is rate constant. Therefore, what what this what this whole thing refers to is that is some kind of a ratio of reaction rate divided by the maximum reaction rate that is a kind of meaning this gives also has an order of magnitude of 1. So, what we are saying is that in this unsteady state representation of the material balance for this third tank all the terms are first term is magnitude 1 order of magnitude 1 order of magnitude 1 order of magnitude 1 order of magnitude 1 order of magnitude 1 the only thing that is not this tau r by tau d you see all terms being of the order of magnitude of 1 if any of these terms are very small we can knock them out. For example, if we find that this term tau r by tau d is very small then we can knock out this term that is that is the point that we are trying to get across what we are saying is that under the non dimensional representation we are able to look at the values of each term and since the order of magnitude is all made up to 1 any term which is very small we can knock out and therefore, we can understand what is happening to the system under those conditions under which this particular assumption holds or in other words in this particular case tau r by tau d less than less than 1 means that this right hand side can be knocked out. Therefore, we can look at the material balance as equal to 1 minus of psi r a tau r by c a 0 equal to 0 equal to 0 since the right hand side is near a very small we call it equal to 0 when this equality becomes 0 we call this as the quasi steady state approximation on other words what we are trying to say here is that under the condition that tau r by tau d is very very small the accumulation inside the reaction equipment can be neglected. Therefore, we might be able to quite satisfactorily say that 1 minus of psi plus r a times tau r by c a 0 equal to 0 or in other words we can say r a equal to 1 minus of psi multiplied by c a 0 divided by tau r. So, what we are trying to say here is the following now here is an instance of a reaction which undergoes a catalyst which undergoes deactivation which means what the reaction rates a keep on changing because catalyst is losing its activity. Now our interest in this whole problem is to be able to measure this catalyst deactivation and quantitate this through a model this why we are doing all this experiment. So, what we are saying now is that under conditions where tau r by tau d is very small tau r by tau d is very small the accumulation of material inside the equipment is very very small therefore we can neglected. Therefore, reaction rate r a can be measured simply by measuring the right hand side do we know the right hand side the answer is we know c a 0 we know psi because psi is c a by c a 0 c a is by being measured tau r what is tau r tau r is simply v by v 0 we have said all this v by v 0 is tau r and then psi is c a by c a 0 and both these are measured quantities and as a result we are able to measure the reaction rate at any time. Therefore, if the catalyst deactivates which means the reaction rate keeps changing with time now we are able to measure what is the reaction rate at any instant of time because all the points all the quantities in the right hand side is known to cut this long story short what we are trying to say here even for the case of a deactivating catalyst under assumption of quasi steady state which means that the accumulation inside the equipment is small we can measure reaction rate simply by measuring psi which is c a by c a 0 is measured c a 0 is measured tau r is measured.  So, what we are saying now now we have a catalyst we have a catalyst which is deactivating now our interest is to measure how this deactivation is taking place for doing that what are we doing we are measuring reaction rate how do you measure reaction rate by measuring all the quantities on the right hand side what are the quantities on the right hand side psi which is c a by c a 0 which is c a by c a 0 and then tau r which is v by v 0 v is the volume of the catalyst v is the volumetric flow. Therefore, by measuring on the quantities on the right hand side we are able to measure reaction rate as a function of time therefore, the data that is required for us to quantitate catalyst deactivation is in front of us that is the advantage of what we call as a stirred tank stirred tank as you can see here the stirred tank because we are able to put our catalyst inside this basket we are able to spin it around we can put it in an equipment we can put it in an equipment and put our material inside and then take out our material and by appropriately changing the slow rates etcetera we can measure reaction rates reaction rates for different conditions of the system of our interest. Having said this let us just look at some interesting features that might be of interest to us let us say let us say if this reaction of that we are studying a goes to b let us say this is the first order reaction. If this is the first order reaction we know from our basic understanding that the rate the conversion is given by k tau divided by 1 plus k tau or in other words if it is the first order reaction then our conversion does not depend upon concentration it only depends upon what is called as the residence time and the reaction rate constant that is for a first order reaction. Suppose you have a second order reaction you notice for a second order reaction we can do all these the extent of reaction x depends upon what is the composition at the inlet depends upon the composition of that for a PFR this is for a PFR this is for a CSTR this I have written for a CSTR. What I am trying to say here is we can devise experiments to understand what is the extent to which reaction is occurring we can measure those reactions depending upon the device if it is a CSTR we measure conversion like this if it is a PFR and the second order reaction we measure conversion like this. So depending upon the order of reaction the dependence of concentration will appear suitably in our expression for conversion in our expression for rate constant for the rate of reaction for example if you have a PFR and you have a rate function is k C A squared as is written here then the rate function will contain the concentration term in the second part. So these things we know the point of trying to draw this attention in this case is that if you have a first order reaction then there are certain benefits in terms of managing it if it is second order then it is little bit more complicated as you wanted to draw attention to those differences by pointing this out. Let us continue let us continue let us say we continue with our first order representation for the moment so we have a first order reaction in which the catalyst undergoes deactivation. Now if you say that this rate of reaction rA is given by kR times C A where kR is the rate constant then we know that because of this of the deactivation this the rate at which chemical reaction occurs changes it changes because this rate constant is changing with time. See that is why we are seeing the effect of the changes in rate constant because of that the reaction velocity change. Now I have just put it in slightly different form to make it easier to understand so I would put it in this form rA which is rate of chemical reaction is kR times C A and I have replaced C A in this form because we know all these from our first order understanding. Therefore the rate at which chemical reaction occurs for a first order process is given by this and then since the deactivation is occurring we can now see that the reaction rate at any time the reaction rate at any time depends on the rate constant kR which is the function of time multiplied by C A 0 divided by kR is the function of time multiplied by the residence time. Now sometimes it is difficult to understand this why is rate constant a function of time. The rate constant is function of time is because our rate constant actually consists of a kR 0 multiplied by a term which is called activity. Because of the fact that this activity is a function of time this product is a function of time. This is why we see because this kR is a function of time because kR 0 is multiplied by this activity which is changing because of the process we find that reaction kR is changing with time because A is changing with time and therefore reaction rate is changing with time. So what is it that we are saying now that if you have a catalyst which is deactivating then reaction rate will change with time. Our interest in this whole exercise is that can we quantitate and find a model which takes care of this deactivation phenomena. If we can do that then there are lot of things that we can do in reactor design operation evaluation and so on which makes the whole thing much easier and that is the object of this particular module. Stating it once again we are used to stating that reaction rate is kR CA 0 divided by 1 plus kR tau r for a first order reaction first order in a CSTR all these are in a CSTR. So this is all in a CSTR. Now if this reaction is undergoing deactivation then we recognize that this is going to change with time because kR is going to change with time. So these two are representations in which in here we have recognized that the deactivation is occurring here we have recognized that deactivation is not occurring. We have two statement of the same situation. What are we saying now? What we are saying now is we have said just now that reaction rate is changing with time. So we would like to know what is the reaction rate at any time divided by what is the reaction rate at 0 time. So what meaning can we attach to reaction rate at any time to reaction rate at 0 time? By definition it is activity of the catalyst. So we can say that this is the activity of the catalyst. The activity of the catalyst is reaction rate at any time divided by reaction rate at 0 time. Now just now we derived what is reaction rate at any time which is this function kR T CA 0 divided by 1 plus kR tau. And what is reaction rate at 0 time? It is 1 plus kR CA kR 0 which means that at 0 time we have taken this kR as kR 0 and therefore I have written it in this form. So if I ask you now this quantity rA what is the functionality on which this function this A depends. Now we can tell by looking at the right hand side, looking at the right hand side that the right hand side depends on number of factors. Very clearly it depends upon temperature because kR is involved. Very clearly we can expect that it depends upon concentration because CA 0 is involved. Now we can say since tau r is involved. So we can in general say that this function this quantity A depends upon the composition of the system in which the reaction is taking place which is temperature and composition. Now that composition is determined by residence time therefore it has an indirect dependence on the residence time. So what we are trying to say here is that we want to quantitate how activity of the catalyst changes and what is that function which determines this reactivation rate phenomena. So if you look at the right hand side, the right hand side if we can measure and quantitate then we will be able to get A as a function of time in data for which we can model. So this is what we want to do in this. Let us go further and see what we can do with this. So let us let us just look at what is the phenomena we are trying to understand. The phenomena we are trying to understand is what happens to rA as a function of time as CA increases. We know that just looking at I just write this function once again here so that we can remember this. We write it here rA as a function of time is for a first order kr CA0 divided by 1 plus kr tau r this is in a CSTR all these are in a CSTR. So if you look at this function and say what happens to rA as a function of time as CA increases you can see very clearly that the reaction rate will increase therefore we will get curves like this. Now suppose we keep temperature constant CA0 constant and change or increase the residence time then we will get curves like this. In other words for a given one residence time it will be this for a higher residence time it will be this another higher time it will be this. Is that clear? Because simply by looking at this expression we can tell what is the direction in which the rate functions will move. Similarly when time temperature is increased we will see a behavior like this that at high temperature it will be like this at lower temperature it will be like this. So what we are trying to say now is that if we have a first order reaction we can measure rA as a function of time and then we can plot these to understand how the reaction rate is changing with time and once we do that then we can measure what is called as activity. What is activity? It is reaction rate at any time divided by reaction rate at 0 time. Now moment you do it in this form you will find that at 0 time all the activity at 0 time should be 1. So we can actually normalize the point that we can normalize the activity as 1 so that we can plot all the data in one curve. So that is the advantage of this normalization. So what we have tried to do is that we have tried to conduct an experiment and this experiment we have done in a CSTR.  We are able to maintain temperature to that level that we want and then we are able to change the flow rates or residence time and therefore we can measure reaction rate at under different conditions. Now when we do reaction rate at different conditions we said that we can normalize the reaction rate at 0 time and we make plots like this. What we are saying here is that if you normalize at 0 time we can say that the activity at 0 time is 1 it is a nomenclature activity at 0 time is 1 then in that case we can plot all of them using the same plot or we can plot differently as well that choice is ours. So what we are trying to say is that we can plot activity as a function of time of our different conditions. Now having done this we have activity as a function of time for different conditions. What are the conditions under which we have done the experiment? We have done the experiment for different times. We have done the conditions for different compositions. We have done the experiment for let us say for these two for the moment. So our model we need a model let us say that model is this that the rate at which the activity changes minus of d by d t of d a by d t is this r d and the r d is given by this function k d times a to the power of m c a to the power of m. We do not know that function so we want to find out what is m what is n what is k d that is our objective doing this whole experiment. Now suppose we find that when we make a plot of a versus time we get a curve like this the points like this we get a curve. Let us say this corresponds to an experiment corresponding to c a equal to some c a 1. Now we repeat this for another set of experiments in which we put c a equal to some c a 2 then we get let us say all these triangles. Let us say c a equal to c a 3 we get let us say all these stars. Now when we do experiments under different conditions let us say this is for one temperature then we can do for another temperature. Let us say this is very sharp a versus t some data like this. So what in essence we are able to do through these experiments is that we are able to get a versus t and because of this experimental data we are able to determine what is the value of m what is the value of n what is the value of k d at different temperatures. So what we have got from our experiments we find k d m n this. So our deactivation experiments essentially what is the experiment we have done r a at time t divided by r a at time 0 and made a plot of a versus time and we got data we got data at one temperature maybe this may be a temperature t 1 and this may be a temperature t 2 is that clear. So from the data of a versus t we fitted the curve fitted this curve to this to this model and found out k d m and n and then k d values at one temperature that is k d 1 similarly another temperature we got k d 2 another temperature we got k d 3 and so on. So in other words we had value of k d at different temperatures and m and n is this clear. So the whole object of doing this CSTR kind of experiments is that CSTR allows you to operate at constant temperature comfortably. And therefore we are able to make composition measurements comfortably we are able to make changes in the external environment comfortably. Therefore we are able to get lot of data which spans a great variety of compositions and temperatures. So that we can fit to this model and find out k d at different temperatures find out m and n and we think I mean most of the data is suggest that m and n values as remain reasonably consistent across all these conditions. Therefore we have a value of m a value of n and a value of k d for different temperatures. Now what we normally do is that we look for a dependence of temperature on dependence of k d on temperature and this is something that we have learnt from our early chemical kinetics that rate constants against temperatures typically have an Arrhenius kind of dependence and it is not unusual to find this kind of dependence. And then when you fit it to a model like this we find what is called as the activation energy for deactivation. So what do we get from these experiments we are able to find out because we know the value of k d at different temperatures because these measurements have been done at different temperatures. And we have found out the k d from our fitting we have plotted k d versus 1 by t and we find this kind of linearity and then from the linearity slope we find out what is e d the activation energy for deactivation. So cut this long story short what we have done is the following what we have done is we have done an experiment in a CSTR. We have done measurements at different compositions in different temperatures from that reaction rates at different temperature at different conditions. We have found out normalized that reaction rate with respect to 0 time reaction rate and found out activity as a function of time. From the activity as a function of time data we have fitted to a model like this and found out the value of m n and k d this k d is at different temperatures. And then we have plotted this k d versus 1 by t and found out the activation energy for deactivation. So that our deactivation experiments gives us what is called as m n and e d and k d 0. So these four parameters come from our deactivation experiments. Now the question I mean the reason why we have done all these things is to be able to understand how deactivating catalytic reaction systems perform number one. Number two more importantly can we ensure that in spite of deactivation our process our process runs as per design. Because after all we have designed it for so many tons per day and if it does not give us that many tons per day clearly our economics do not work out for us. And our process equipments that we have put in place are not performing to the optimality that we have designed for. Therefore our prime interest in looking at catalyst deactivation is to be able to understand them number one of course number two to be able to make good use of that information so that our designs are as per our requirements. Now we want to address that we want to address that question by just looking back at what we have done. What we have done if you recall a little earlier we said our reaction rate we did this for the case of a CSTR we wrote this for the case of a CSTR. We said our reaction rates can be described by K R C A 0 divided by 1 plus K R T R. So I put K R 0 here multiplied by A. So notice here the K R 0 times A is our K R or in other words this is our K R that we have been talking about. Now what we are trying to say here is that if I ask you I want to keep the left hand side constant irrespective of what happens to the catalyst. So what is the kind of answer that we can think of if R A has to remain constant which means what then only our designs will give us the production that we have designed for. So left hand side must stay constant which means what on the right hand side on the right hand side the term K R 0 times A should not change. So we should have K R 0 times A should be constant only then the reaction rate as a function of time will not change only then our equipments will deliver productivity that we have designed for. On other words what we are trying to say here is that in the case of a deactivating catalytic systems we recognize that the catalyst deactivate therefore activity will change. But is it something that we can do to ensure that K R 0 times A does not change. In other words can we see what we can do to this product K R 0 times A so that K R 0 times A does not change. A might decrease but which means what we are trying to say here is that can we increase K R 0 so that it is able to compensate for the loss of activity. This is the point that we would like to investigate understand and see how best we can integrate these ideas into a design. Let us go forward what we are saying now what we are saying now is that our reaction rate R A it is changing with time and this is something that we have to accept because as the process is running due to variety of factors on the catalyst sintering may be may be coke deposition may be may be poisoning we do not know it could be different from different situations the activity is on the way down. So, in order to be able to anal effect of decrease in activity what is being suggested is that if you can keep this K R times A constant on other words if this product is kept constant then very clearly as you can see here when you can keep this K R 0 times A constant or we can keep K R constant then clearly the right hand side does not change and therefore left hand side does not change therefore our productions will be as per design. In other words what we are trying to say here is that the strategy for managing deactivation should be keeping this K R times A constant moment we do that we have a way of managing deactivation. Now how do we do this what is being suggested is if we assume that this A is decaying exponentially which means what we are saying that d A by d t d A by d t equal to K D times A therefore A is decaying exponentially if A decays exponentially then we can write K R times A equal to K R times E d t therefore this must be held constant how do you keep it constant we keep it constant by recognizing that K R which is rate constant which is an Arrhenius K R 0 times exponential of E by R t and K D is given by this expression therefore K R times A can be written as what I have written here A R 0 exponential E by R t and exponential K D t where this K D has an Arrhenius dependence as mentioned here. So if you look at the last line here what we are saying here is that well this term decreases with time because of K D this term increases the temperature because it is a very strong function of temperature. If this product has to stay constant it only means that the effect of temperature on increasing this quantity more than makes up for the effect of decrease in this term because of effect of temperature let me state this once again. We know that as temperature rises as t rises K D increases and also as t rises K R also increases but what seems to be happen in real life is that increase in K R increase in K R 0 K R 0 because of temperature is generally much much larger than the effect of K D increase in the activity of the catalyst. On other words what we are saying is that when we rise take temperature from x 1 to x 2 the increase in this first term you see this in first term increases second term also decreases you know because of rise in temperature but the increase in the first term compensates for the decrease in the second term so that the product is kept constant. On other words what we are trying to say here is that deactivation data that we gather from our experiments gives us deactivation parameters. Similarly reaction rate data in the absence of catalytic deactivation gives you reaction rate parameters so we have reaction rate parameters we have deactivation parameters. What is being said is that when you increase temperature the rate constant in the reaction rate system increases similarly when you increase temperature the rate constant in deactivation also increases but what is important to recognize is that the effect of increase in the rate constant because of increase in temperature compensates for the decrease in the activity because of the increase in deactivation rate constant so that the product can be held constant so that our designs ensures the reaction rate does not change its time. Moment reaction rates do not change its time then our designs gives us production that we have designed for and therefore our economics and our optimalities etcetera that we have taken into account none of them are affected. We will take an example to illustrate how this is actually achieved and some of the issues that arise from some of these features. So, let me illustrate this through an example what I want to do now is to illustrate interesting example of catalyst deactivation that we might have to encounter in process design process evaluation process optimizations and so on. So, here is an instance of an illustration where you have a PFR is a plug flow reactor I call it PFR it has a catalyst which deactivates. Now, here is a separator what do we have we have a plug flow reactor and a separator now we have this reaction A going to B. So, there are A going to B you know it is a reversible reaction therefore every reaction is reaction 1 and reaction 2 and the data basic data is given activation energy for reaction 1 is given equilibrium constants are given at 2 temperatures and so on. Now, the situation of our interest is the following catalyst deactivates. So, in a process when catalyst is deactivating that after some time the activity of the catalyst is quite and not satisfactory to be able to make good use of the downstream equipment therefore you might want to think about disposing it and buying a fresh batch of catalyst catalyst being expensive there are processes available in which catalyst can be regenerated. And you might want to see whether a regeneration process can be thought of. So, that you can regenerate and use that catalyst here is an instance of a problem in which problem statement says that this catalyst deactivates and then this the data on fresh catalyst and spent catalyst is available. And when you regenerate a spent catalyst it has certain types of activity. So, what is important for us in this particular problem is to find out whether the regeneration process that we have put in place is satisfactory for our economics to be satisfactory for which some data is given what is the data given the data says the following it says it says the following that here is a catalyst here is a catalyst fresh catalyst spent catalyst regenerate catalyst the performance is given. Now, we are asked to judge whether the regeneration process that we have adopted is good enough to be purchased. Now, whenever you want to evaluate we must say what is the criteria on which we will judge the regeneration process the kind of criteria that is suggested in this particular exercise is the following it says the following it says the catalyst that we are using in this reactor is proprietary the catalyst undergoes deactivation. And the regeneration process is available and it says that we can accept the regeneration process if the regenerated catalyst if the regenerated catalyst has 90 percent activity of fresh catalyst what are we saying what we saying is that we will accept the regeneration process if the activity of the regenerated catalyst is 90 percent of fresh catalyst. Alternatively if the activity is regenerated catalyst is 2.25 times the activity of the fresh catalyst of the spent catalyst also we will accept the process. So, what is being said is the data that is in front of us we have to evaluate the data on fresh catalyst spent catalyst regenerated catalyst with respect to the 2 criteria mentioned here which means what we must judge the activity of regenerated catalyst estimate the activity based on the data given and see whether it is 90 percent of the fresh catalyst or you can check the activity of regenerated catalyst and see whether it is 2.25 times or more than the activity of spent catalyst. If either of these two criteria are met we are willing to accept the regeneration process. In other words what we are trying to say here is that we have to deal with deactivating catalyst in our industry. So, we need a systematic procedure to evaluate process data. Now, here is an instance of process data in front of us all the data is given to us. Now, we have to set up the design equations to see how shall we evaluate the performance of the catalyst under different conditions that is given in front of us. So, this is what we want to do now this is what we want to do now that means the following that we have a catalyst which is fresh performs like this we have a catalyst which is spent which perform like this we have a regenerated catalyst which performs like this we have to see the 3 data and advise whether we should buy the regeneration process if so why if not why not this is the kind of questions that we want to answer. Let us get ahead with this problem let us get ahead with this problem how do we solve this problem how do we solve this problem. Now, to be able to solve the problem in reactor design reactor optimization reactor evaluation so on we will have to develop equations that will describe the performance of this equipment this is all once we have the equation that describes the performance then we can answer various kinds of questions. So, we will go through the algebra that is required to set up the design equation for understanding the performance of this equipment which is a P F R containing a deactivating catalyst let us see how we can do this. So, to do this so what I have done is of course I have done this drawn the same figure once again may be. So, we have this catalyst I have denoted this as 0 1 2 3 4. Now, there are few things that we can recognize very quickly without losing too much time that this is a separator separator is the reactor. Now, this is pure pure B now since this is pure B and this is C A 0 is coming in. So, we can say that since B is fully recovered this stream is only C H 0 this common sense because B is fully recovered our reaction is A going to B and B going to A therefore, this is C H 0 something very elementary nothing very complicated. Now, we can write material balances we can write material balances at various points. So, I have done just very elementary. So, this is not difficult to do. So, please notice here this is 0 this position 1 position 2. Now, we are defining conversion conversions are defining with respect to conversion conversion y defined with respect to position 1 what do you mean what we mean is that if I want conversion at position 2 and our reference is position 1 then I say F A 2 equal to F A 1 multiplied by 1 minus of y 2 that is what I am saying that is what I have written F A 2 is F A 1 multiplied by 1 minus of y 2. Why is why is that that is how we are defining conversion here is that clear. Similarly, if I ask you what is F B 2 that means what is the amount of B at position 2 we say the F B 2 is F A 1 times y 2 because whatever A is disappearing it becomes B.  If I ask you please look at this data it says composition at reactor exit is 25 percent. So, if composition is 25 percent means what this is a gas gas gas reaction therefore, if I find the mole fraction this is the number of moles that they exit. So, if this is this is mole fraction y 2. So, what what is this equal to say this is not y 2 this ratio is equal to this 1 minus F A 1 1 minus of y 2 divided by F A 1 you can see this 2 is F A 1. So, this is mole fraction. So, mole fraction at 2. So, mole fraction at 2 is 0.25 that is that is the data given please this data is given this is given here. Therefore, you can find out from this that y 2 value at reactor exit is 0.75 what I will be saying what we are saying is that if I give you mole fraction at position 2 I can calculate conversion simply from this relationships therefore, if I say mole fraction is 0.25 then conversion is 0.75 or in other words what we are saying is that in this data mole fraction at the reactor exit is 25 percent means our conversion is 75 here. Here it is 32.2 means our conversion is 67.8 in this is 19 percent means our conversion is 81 percent. So, this is the kind of data that is given that is what we are saying. So, what we have tried to say is we have found a value of y 2 because that is given to us in the from the data we have converted the data into value of y 2. So, that we can go ahead and do in the evaluation. Now, let us go forward what we is now saying is what we are now saying is all right now we know how to make good use of the data only we have to write various simple expressions for various flows. So, that we can understand what is going on in the equipment. So, please once again look at our look at our figures that we can understand what we are saying here is that F A 1 is F A 0 plus F A 4 please see here F A 1 this is F A 1 F A 1 is equal to what is coming at 0 and what is coming at 4.  Therefore, and similarly what is what is coming here all the 2 that is coming here is also going to come here. Therefore, F A 2 is also equal to F A 4 this is also equal to F A 4 correct.  Therefore, simplifying you find F A 1 that means the molar flow at position 1 is simply F A 0 divided by y 2. What we are saying is that from elementary material balance we find out what is coming at position 1. Now, what is the concentration of A at position 4 we said all the B is fully recovered and therefore, the concentration at 4 is same as C A 0. So, what we are saying now is that C A 0 is C A 4 is C A 0 and therefore, we can calculate now what is the flow at position 4 what is flow at position 4 by definition is F A 4 divided by C A 4 molar flow divided by concentration C A 4 is C A 0.  Therefore, we find the molar flow at position 4 is V 0 times 1 minus of y 2 divided by y 2. So, what we are saying is that molar flow at position 4 we have found out as V 0 times 1 minus of y 2 divided by y 2 that is V 4. So, what is the molar flow at position 1 V 0 plus V 4 that is what we have done V 1 equal to V 0 plus V 4 when you do that we say it is equal to V 0 by y 2. In a sense what we have done is that we have tried to put all the terms that are required for us in terms of quantities that we know from our experiments y 2 is known from our experiment V 0 is known from our experiment from our data V 0 is given y 2 is given. Therefore, we should express all numbers in terms of what we know that is what we are trying to do in this algebra. Having done that let us let us go forward what we are saying now what we are saying now is that we know from our material balance that concentration at 1 is simply C A 0 because this is also C A 0 we know that C A 1 is C A 0 we know and what is the concentration at any position see after all if you want to write the design equation for a for a equipment we should know concentration at any position. Therefore, we have what is C A by definition is F A by V what is F A F A 1 times 1 minus y at any position what is V since there is no change in volumetric flow V at any position is V 1 which is coming in or in other words what we are saying is that in this in this PFR the flow at any position is same as V 1 because there is no volume change in the reaction and what is the concentration at any position F A F A divided by V that is what I have written here. Therefore, concentration is F A by V which is C A 0 times 1 minus a y for component A and for B it is C A 0 times y. Therefore, what we have tried to do is that we are now able to express concentrations in terms of y now we have expressed all the other flows in terms of known quantities. Therefore, we are now in a position to be able to write the reactor design equation that is required to understand what is going on. So, this is what I have done here. So, our reactor design equation that D by D V of B is R B therefore, I have written F B we know that what is F B by definition is F A 1 times y I have written that here. So, F A 1 times D by D. So, I put all the terms and notice here notice here that I have put one inside brackets to indicate that this refers to reaction and not position. So, this is reaction one reaction two and this term is a catalyst activity. What we are saying here is that that the reaction rate function R B depends on k 1 alpha times C A minus k 2 alpha times C B. Notice that the catalyst accelerates both the forward reaction and the reverse reaction. Therefore, we find F A 1 D by D V is given by this expression. So, what we have now been able to do is that we are able to write the design equations for the reactor in terms of y see D by D V in terms of y and all other terms excepting y are known that is the interesting point that means we are able to write the design equation in terms of quantities that we know and the quantities we would be able to measure in our experiment. So, this differential equation in this form you can see here F A 0 by y 2 D y D V equal to the right hand side. Now, we are able to integrate and then get the results in the form in which we require. When we go further we recognize that we are able to simplify the equations in terms of numbers that we know B 0 we know y 2 we know. Now, D y D V we can put in terms of beta beta is simply beta is simply k e plus 1 by k where k e is the equilibrium constant. Therefore, the integrated form the integrated form of the equation which describes the performance of our equipment is given by this. Now, see what we have done what we have done is that based on our understanding of reaction engineering we are able to write a design equation which is able to describe our equipment. Notice here that k 1 is rate constant for forward reaction alpha is the activity the catalyst v is the volume of catalyst that we have used in our experiment v 0 is the volumetric flow at the inlet y 2 is the y 2 is the extent of reaction at the reactor exit beta is simply k e by k e plus. So, all the terms we know see all these are given to us in the experimental data. The experimental data you can see here very clearly all these are given to us temperature is given v 0 is given this is v 0 this is v 0 and what is this this is actually this is 1 minus of y 2 multiplied by 100. So, everything is given understand 1 minus of y 2 we will not write it like this that means if it is 25 percent this 0.25 1 minus of 0.25 is y 2 we know all that. So, what I trying to say here is that the data that is given can be now utilized to understand how the system is performing to understand what is the activity of the catalyst because our question is you are supposed to check the activity of the catalyst and compare with the criteria that is given to us. So, this equation helps us to find out the activity of the catalyst because all the rest of the quantities are known and that is the important point of being able to formulate your mathematics. So, that you are able to represent the physical system that is in front of you. Now, that we know all this we are now in a position to make an evaluation of the data that is given to us. So, let us evaluate the fresh catalyst fresh catalyst your y 2 is given as 0.75 y 2 is given as 0.75 it is given as 25 percent therefore, 0.25 1 minus 0.25 is 0.75 now beta is K e plus 1 by K e beta values are given you can see here our our equilibrium constant K e at 450 is given as 8.5 therefore, 8.5 plus 1 is 9.5 therefore, beta is 1.17 at 450. So, we are able to calculate the value of K 1 alpha v at 450 because all the terms on the right hand side all the terms on the right hand side is given v naught is given y 2 is given beta is given everything is given on the right hand side you can substitute and calculate the value of the right hand side which is comes out to be 0.847. So, fresh catalyst K 1 alpha v given as we have found out as 0.847 similarly, we can do for a spent catalyst spent catalyst data is also given. So, when I do when you do the same thing for spent catalyst we find the value for alpha K 1 v at 477 that turns out to be 0.750. Because y 2 is 0.322 is given and then this value of beta where is beta values beta value of calculated because of the from the data given. So, accordingly we find that the values are 0.678 you know I have not given the detail here 0.678 is y 2 and beta is this K e by K e plus 1 K e plus 1 by K e which is beta at 477 it turns out to be 7 by 6 I have done this calculation the details I have not given here you can check it for yourself. So, what in essence it means is that at 477 spent catalyst our value of alpha K 1 v turns out to be 0.75 for spent catalyst it is for spent catalyst 0.475 and for fresh catalyst we just now said it is 0.847 we said that just now just now we said that fresh catalyst 0.847. Now, we have to do the same thing for the regenerated catalyst correct now before doing that let us just go forward a little and find out what is the activity of spent catalyst because this notice here that this at this alpha is at 477. So, we always like to express everything in terms of fresh catalyst. So, we want to find out the value of alpha at 477, but we want to see what is alpha value with respect to our fresh catalyst to do that I have just found out K 1 alpha v divided by K 1 alpha v 450 this ratio is 0.75 or 0.4 this turns out to be 0.88. So, what we are saying is that the value of alpha at 477 divided by value of alpha at 450 is actually what K 1 K 1 at 450 I just multiplied K 1 at 450 divided by K 1 at 477. So, that I am able to find out what is the activity of catalyst at 477 in relation to activity at 450 and that turns out to be 0.33. What we are trying to say here is the following what we are trying to say here is that in this experiment in this catalyst evaluation we are given a spent catalyst we want to find out what is the activity of spent catalyst. Now, we find that the spent catalyst is working at 477. Therefore, we want to check the activity of spent catalyst at 477 and we want to compare this is the activity of the catalyst at 450 and to do that is when we have done this through this manipulation we have been able to find out what is the activity of spent catalyst at 477 in relation to the activity of the catalyst at 450 by multiplying by the appropriate reaction rates at the two temperatures that is what I have done. So, what we find what we find is that the activity of spent catalyst turns out to be 0.33. So, what we are saying here is that the spent catalyst with respect to front catalyst is quite inactive and the reason why we are looking at the way of regenerating the catalyst let us go forward and look at the activity of regenerated catalyst. Now, the regenerated catalyst data is given at 450 that is the right hand side all the data is given when you calculate we find that k 1 alpha v at 450 turns out to be 0.727. Therefore, we can compare the k 1 alpha at 450 with fresh catalyst that turns out to be 0.858. In other words what we are saying now is that the activity of regenerated catalyst in relation to activity of fresh catalyst both are at same temperature it is not 0.9 we said we can accept the regeneration process if the activity is 0.9 or higher now it is only 0.858 and therefore, criteria 1 is not satisfied. So, criteria criteria 1 is not satisfied. So, that is the first point that we recognize now let us see about criteria 2 what is criteria 2. So, criteria 2 says criteria 2 says the activity of regenerated catalyst is 0.858 and activity of spent catalyst is 0.33 and criteria 2 says if it is 2.25 times the activity of spent catalyst it is ok. If you multiply 0.33 by 2.25 you find that it is less than 0.858. Therefore, at criteria 2 is satisfied on other words what we are trying to say here is that out of the 2 criteria criteria 2 is satisfied therefore, we can accept the regeneration process. So, by going through this whole exercise by going through this whole exercise what we have tried to bring out to your attention is that in a deactivating catalyst catalyst will deactivate. Therefore, you are increasing the temperature of operation of the catalyst and therefore, the spent catalyst when we are discarding it the temperature is 477. What was 450 initially? We had to rise it up to 477 to be able to take care of deactivation. On other words what we are trying to put across to you here is that in deactivating catalytic systems increasing the temperature of operation. So, as to annul the effect of catalyst deactivation is the strategy generally employed, but this strategy may not be successful for the entire duration of operation. You may have to stop it after some time when the activities of the spent of the catalyst is unsatisfactory. You will have to take it out and discard it or replace it by an appropriate regeneration process. Thank you.


what's up guys welcome to today's video so on today's video what i'm going to be showing you guys is a shag like haircut tons of layers tons of volume i think you're gonna like it and i'm also bringing back one of my favorite things which is the razor so check out the video here we go all right guys so very excited to bring you guys this video today we're going to do a razor cut this is a medium length cut got a little bit of a shag feel to it but it's a simple simple technique so we start off we take off the top so everything parietal ridge back to mid crown and then i go straight down vertical center back and then i'm using my donald scott twist razor so this is a $39 tool available on freeslineeducation.com so if you want to get one go on over there but what i'm doing is i'm bringing everything straight out from that vertical straight out and i'm sliding from the mid shaft down to the ends making sure that i don't cut into the ends i'm trying to leave the ends preserved you can always cut the ends later and then i work my way around the round of the head using the round of the head is my guide and i'm pulling everything straight out and just doing that slide cut so i see my guide from the mid shaft and then i slide down to the ends what this is creating and what i love about this cut is that it's around shape so it's following the round of the head i get nice even layers all the way around there's no weight lines so what you're getting is a structured base for the top to kind of lay over so what we're going to do is we're going to do this kind of haircut where we over direct the entire top section forward and we cut it so it's going to be disconnected from the bottom so the shorter layers are going to hold the top that roof up and give it volume but we're not going to cut too many short layers in the very top so that's kind of the basis of this cut so remember going around the entire cut keeping it very simple just pulling everything straight out from the head just focusing on the fact that i'm cutting mid shaft and sliding down not going to the ends you can see the layers coming to life there now i let out the top i take a guide from a piece from the side um just to get an idea of where i want to start and then i cut that entire top i cut through it using the donald scott twist razor and i just work back and forth now i'm working with a heavier stroke because my goal with this is to have a nice light feel to it and you can see as i push that back those layers fly over it so shorter layers in the front longer layers in the back i'm going to use palmatril neuro lift this is a nice lightweight mousse um that i put in the hair to give it some volume and i run that through the hair so you could see all those layers popping through this is one of my favorite ways to layer hair because of the fact that it's simple and um super effective now i use a little bit of palmatril neuro protect that is a heat protectant so when i get the hair 80 dry i spray that in then when i get 100 dry i spray it in i do my iron work using a wand to curl this thing out i continue that same pattern just all the way across the head all the way around the round of the head curling everything off of the face to get my end result so now that you see my end result hope you guys like the cut check out the bang all that movement all the layers hope you like it thanks for watching all right guys and like always if you like this video then make sure you hit the like button hit the share button share this video with all of your hairdresser friends out there and remember to go to fscondemand.com i have hundreds of videos from me and a ton of my other hairdresser friends uh that we've been creating for free for you guys on that app so go check it out fscondemand.com thanks for watching


Hello everyone, welcome to the last Jenkins online meetup of 2018. I'm William Newman, the host. We have a really exciting presentation day from Box East, and we have several other people on the line who have also worked on Java 11 support, which is now in preview for Jenkins. Let's see, we have Mark Waitz, Oleg Mineshev, and Adrian, I don't know your last name, sorry. I couldn't pronounce that in English right now. Sorry, Ramon, welcome. Alright, at least why don't you tell us about this? Yeah, thank you, William. So I'm going to spend the next hour, we are going to spend the next hour together to discuss and to explain where we are and where we come from about the support for Java 11 running Jenkins on Java 11. And so what we've gone through in the last year, I would say. So let's dig into this right away. So the agenda for today is going to be, we are going to make an overview of the status of the support currently. Then we will explain how to run Jenkins, there are a variety of ways to do that. We'll cover some, we will explain actually how to find and where they are documented. We'll then explain what's missing to go to basically GA, and then we'll explain how to actually contribute because this is the gist for today. We want to explain what's the status and what people can do to report bugs so that we reach the GA state at some point. So how to ask a question during this presentation? So please use the Gitter Chat for the so-called platform SIG, SIG meaning Special Interest Group, which is the overall place, platform where we generally discuss platform things, platform related things in the Jenkins community. This very presentation you're seeing right now is available by the second link. So feel free to open it so that you can actually click the links and everything because I'm going to open some, but I won't be opening every single link we will be seeing. So the presentation is designed for the audience to be able to use it to open and dig into things during or after the presentation. So I was explaining just before what was in the platform SIG. So we welcome basically people, this is an open source sub-project I would say, of the Jenkins project. And anyone interested in those areas is welcome to participate. So what about Jenkins running on Java 11? What's the current status? I'm going to go back a bit to the last year as I was saying roughly. So the first experiment started roughly after Jenkins were 2017 in San Francisco, where we started playing with, we're seeing how Jenkins would behave on Java 9, sorry, back then. And then there were a few other initiatives and the biggest one occurred in June, that was led mainly by Oleg Nenachev, the president here, and who's been doing, no one can deny it, the heavy lifting of all those changes, but many, many people participated and are very, really welcome and we're thanking them for this. So it was again as in June and huge effort was made and progress was made back then to move forward and reach the state we know and we are going to discuss today. In June, so we were able to actually make the pipeline work, there were many improvements and so the week and long hackathon ended up producing a lot of interesting results, which we built on to reach the state of today. So we at some point reached the Java 10 and Java 11 EA preview availability on Jenkins, but the state right now is that, so we are going to discuss that a bit later. We don't see a question if there are, but basically the summary is that we only support Java 11 or Java 8. We don't support any version in between or above that as it is now. So Java 8 or Java 11, we don't support Java 9, Java 10 and Java 12 yet at least. So summarizing, this is what we went through and this is where we are right now. We are so right now announcing basically the fact that we are reaching the preview availability for Jenkins running on Java 11, which is summarized here. And so the goal, the next stage is going to be indeed reaching GA in the next month without for now committing to any precise date. We hope it might be around May or something, but there's no confirmation as of now because it will really depend on how much testing we are able to put in, how many issues we discover along the way, even if we already tested a lot. And we obviously need to test more because there are like, as you know, 1500 plugins in the Jenkins community. So we need to obviously feedback and people willing to contribute to contribute testing in, I would say, less mainstream plugins and many, many other areas. Is there any questions before I move forward? And I might think I'm online, incidentally. I'm still online. Continue. Yeah, thank you. So the chat, so if there are any questions, I'll post them. Yeah, I mean, we shouldn't be shy, I think, about trying to address questions as they come through. Maybe we can delay some if they make sense at the end, but that's really not an issue if we want to progressively address some questions really if you feel the right time to address them. No issue about that. Sorry, what? We're here for you. Okay, great. So pipeline support. This was probably one of the main issues that we had to tackle. And so I wouldn't say it solves definitely right now. It's still being worked on by the pipeline team, but we now have at least a fix that sets kind of a temporary fix for Java 11 specifically. The pipeline team is still working on a long-term fix for allowing pipeline to run on Java 11. It does work right now, but the code base is going to evolve still a bit to support and to be tested a bit more with how it was done until now, basically. A lot of things were worked on around Java 11 supporting Jenkins because, as you might imagine, there's Jenkins per se, but there's a whole lot of tools around Jenkins that we use for testing Jenkins itself. So for instance, Jenkins test harness, what you call ATH, the PCT, those tools have been needed a lot of improvements and fixes to be able to support testing with Java 11, for instance. Now, before we were supporting only Java 8 and ATH, which basically is a Selenium-based framework, I would say, not from framework, but test base for Jenkins, and it was designed because of historical reasons and mainly worked and tested on Java 8 for obvious reasons because we were supporting and only having Java 8 as a target. So we had to evolve a lot of things and discover a lot of issues to be able to just run things with Java 11. So we fixed basically the dev. We spent a lot of time in last weeks mainly, also fixing things in the dev tools mainly. And so we are going to announce the last bullet point on this slide is that since a few weeks now, we are constantly checking that the core of Jenkins keeps working and tests don't fail, also not only Java 8, but also Java 11. Actually, a few months by now. We continuously improve the flow and there are still steps to adopt, for example, a sentence test harness with Java 11, but we are moving forward. And we just, we recently changed ATH to support Java 11, as I was saying. And so we've seen a few issues here and there that we are working on fixing basically. And yeah, absolutely. Thanks Oleg. So how to run Java on Jenkins on Java 11? There are a few ways, the hard ways, I'm not going to describe too much, I'm going to just open different windows basically, but the official way is to use the JDK 11. So warning here, if I didn't say that clearly before, I'm going to say that again. It's a preview, so it's not prediction-ready. It's encouraged to test in your test environments because we really warmly welcome feedback, but it's not prediction-ready. We do know that there are a few incompatibilities, issues here and there. Most of them are probably already known about, but yeah, important warning. Apart from that, the good thing about Docker images is that you don't have to bother with passing the right arguments to be able to run Jenkins on Java 11 because as we probably are going to have a quick look at, it's not simple at all. If you try to run the war, it's not the same story. A quick look at it. If you want to see a demo about that, there is a specific link in the slides that you know you were given the link of in that slide. There's a demo on how it works, but basically you can leverage the project called Evergreen presented also at Jenkins Worlds a few weeks ago and Adrien, presenting the call right now, made a quick demo of how Evergreen has been added a new flavor to actually be able to run Java 11 out of the box for anyone very easily. That's the single command you have to run and then it's Evergreen as usual to be able to run a Java 11-based version of Jenkins. The harder version, I'm going to open the link here because that's a very thorough article that Oleg wrote a few days ago about running the whole story about Java 11. If you want to run the war, you will have to basically download and put those things on the disk, then pass the class pass the right way, then pass the right options, the enable structure Java. That's not that hard, but it's a bit complex compared to running the Docker image where we actually fix that for you. Any question? No, just a strong and compelling vote. Use Docker. Yeah, way easier. Yes, because Docker, I didn't even document that because, well, I did kind of, but that's just the official way of running things. The only thing that's changing here if you're not seeing it, is that we just use that which is a label, but it could be also if we just have a look at this. There is a question from Stephen Clarke if the future general availability of Jenkins is going to support GDKE8 or just UDK11? I am so full. That depends what it is meant, but I'm going to cover, I hope everything in that regard. For now, there are no plans to change the Jenkins core to be able to support building on GDKE11, but we definitely plan to support running on Java 11 VMs because that's the point of what we're talking about right now. In the near future, by near, I mean something like six months or less, but yes, again, I'm not going to commit yet to any kind of precise date for now, but we welcome feedback because the more we get contribution, the more we get feedback, the sooner we will be able to announce a version that is officially supporting Java 11, because then in the core of Jenkins, there are a few switches that we actually need to change and to fix to remove the fact because right now, if you run Jenkins on Java 11, you might have seen that in the article. You have to pass that switch because if you don't, then it will crash or if we stop more, if you don't use Java 8 because it's explicitly hard-coded that we only support Java 8 because we know there are a few issues with other versions. And in the past, people would update without us actually supporting some even version. So now it's enforced and when we support something, we explicitly add the support and then you can use it. So if in the future we want Java 11 to not be blocked by that switch, that's the point. And we do plan to support Java 11 for runtime in the future if that was the answer, the question. It was also noted that there is no plan to duplicate Java 8 support. So in whatever near future we don't plan to duplicate Java 8 support as work files. There is no plan to change the default Java in Docker images. So if you run Jenkins, Jenkins latest, it will stay on Java 8 in a feasible future. But maybe something will change maybe in three years or so because we have a lot of CSS releases and when Java 11 is widely adopted. So it's okay then that the plugins are built with Java 8 and even desirable that they're built with Java 8. It's just a runtime safety on Java 11. Exactly, you get the point. I think that, by the way, I'm going to use your point to insist that we do not think and we encourage plugin developers to not release any plugin that is compiled again Java 11 against a Java 11 because we do not plan to, as Oleg was saying in the foreseeable future, to upgrade Jenkins score to require Jenkins Java 11 in the foreseeable future. It's going to be probably, obviously it will happen in three, four years, I don't know, maybe before, but not soon, that's for sure. So if you don't want to cut yourself from the user base, if you release some plugin that's requiring Java 11, then you would already obviously be cutting yourself from a certain amount of instances out there that will be running Java 8 because, as you know, it's impossible to do that. We have some plan to offer filtering by Java version in Update Centers, but so far it's not implemented. Yeah, and in addition to what Oleg was saying, you have to be aware as a plugin developer that right now, Jenkins score has no idea what minimum version of Java means, meaning if you release your plugin as a plugin developer, or normal way, I would say, nowadays, then a Jenkins instance out there running, and if your plugin is requiring Java 11, a Jenkins instance nowadays running 8 would see that plugin, no issue, would be able to download, install it, restart, and it would crash. So there are probably a few doubts or debates we should check if it would crash your all instances or if only the plugin would fail, but probably you don't want to try either. So in short, don't do it. Exactly. You can just do it right now, but we are upgrading our plugin pumps. Yeah, but again, there are two things here. We are talking about two types of users here. We do welcome people to hack on it and try things and to see how it works. That's pretty well welcome and crushing things are actually the kind of thing we welcome and understanding what crushes Jenkins and what does not. So that's something, that's kind of contribution. If you want to try things and your goal is to make sure nothing crashes, then that's another story. And then you don't want to install things that compile or release or encourage that crushing basically. So we were around here. I think basically we anyway started to discuss what we want to cover here in terms of content. It's because yeah, we want to make sure we are clear about the fact that this is the stage, probably even more than before, where we welcome contributions because we have been testing a lot. We have been fixing a lot of things. We are using it in some cases in many areas. So we need to start some kind of real world battle testing checking that things work in more exotic use cases or in less mainstream plugins if you have a plugin that you know are installed like, you know, a few hundreds of times across the world given the statistics, then if you're a user of that, it's likely a very good idea to give it a try because then if you don't when we make when we reach the state where Java 11 is announced at CA, then and for some reason you are required by your IT or something to migrate your Jenkins to Java 11 that plugin might crash and you might not be able to update so that might be a more or less issue, a bigger issue for your case. It's basically rather sooner than later, so now is a good time for that. How to test and report issues? Testing already gave you the right links, the right entry points to be able to run Jenkins to run Jenkins. So, how to report and to look for existing issues in Jenkins. We created a dedicated page in the Wiki known as as you can see and in the bottom of it you can see that there is going to be an auto-populating list of Geras that are actually populated by the fact that any Gera that's found in the Jenkins tracker that's got the Java 11 compatibility level is going to be displayed here. As you can see, by the way, we welcome by the way any kind of text or whatever notes here, definitely, but if you have a very well described and you want to contribute even better, we probably welcome even more issues that are filed the right way with the right level, the right component that we can try edge, link things together and so here it would appear here and we would then try to then try to see what we can do and what's the urgency and everything. So, that's the entry point you want to use when you're contributing some time, some effort, some energy to testing Jenkins on Java 11. This is where you would go to report and to see how to report issues. Also, I think we can say safely that you would be welcome to use obviously I think it's open here the platform thing, platformer sig chat because this is where people are more alive and discussing issues or that maybe, you know, if something you don't have no idea how to file it, why, I mean where if this is really an issue, a known one or whatever, then this is the place to go. So now about non-competibilities. Right now, the Jenkins CI slash Blue Ocean image is not adapted to Java 11. There are, to be honest, discussions about the fact that will it be ever adapted but that's another story but yeah, that's something we know about. So, what is now left kind of for the road to the general availability? There are a few blockers which are generally listed under that epic but basically what we want to I'm going kind of a repeat what I was saying like five minutes ago we want testing, we want more we want more feedback, we want people to contribute some testing time ideally and so we already know a few issues for instance that one was the one about pipeline support issue which is now fixed for Java 11 but it's kind of a temporary fix and the long term fix is still going to be, is still being worked on. This is the thing we discussed also a bit earlier about the fact that the core is currently unable so Jen can score now if you send it to Java 11 compiled plugin it's going to try and install it even if it's running Java 8. We and Oleg has been doing a lot of work around that we did some already initial work to actually now plugins are you can upgrade to the plugin pump for plugins to be able to actually publish your metadata about the minimum version of Java you're requiring so now we publish that and so now we need to close the loop by making sure Jenkins can consume that metadata and filter out the plugins that have been compiled for a version that is higher than the current runtime it's running with after GA obviously there's going to be maintenance there's going to be fixing fallouts so we do encourage reports again we will probably consider sooner rather sooner or later adapting or so tools like Evergreen for instance it might make sense at some point to switch automatically Evergreen users to run on Java 11 because this is well one of the places where it does make a lot of sense because Evergreen is supposed to be always up to date so upgrading Java itself is making a lot of sense there too we probably will update also Jenkins takes but yeah that's something for really more longer term I would say not long long term but at least a few months and then obviously questions but yeah it probably will make sense given the fact that so if people are not aware yet starting with Java 9 and it got clarified progressively but basically now the JDK cadence release cadence is accelerating so we are going to have I think it's every six months a new version of Java and an LTS every few versions so I remember exactly the the jumps it's time but basically we are going to see Java 12, Java 13, Java 14 Java 15 in less than two years so this means that we are going to also probably think about how we test Jenkins how we support Jenkins with new versions and so yeah it would probably make sense to start at some point but rather sooner than later testing Jenkins on Java 12 and maybe the upcoming ones like so there's 13 basically so summarizing the links and the interesting entry points and I think now I'm going to just give back the mic and we are going to try and address questions or comments if any so one question I have is like do you have any specific ways that you would like people to test or just like load up Jenkins and use it what kind of things are you looking for I would say it's more the latter like use Jenkins the way you're using Jenkins usually and if it works then great that's already something and by the way you feel free to actually come back to us and say well I'm going to stop no I'm not going to stop sharing if I need to something I would say yeah come back to us and say I've tested my use case like all my use case and nothing ever failed that's already something very cool to know about so I mean this is not going to be a Jira I filed a Jira I have an issue nothing failed but yeah it's going to be interesting to know if actually you weren't able to crush Jenkins basically so that's already something but yeah definitely use Jenkins the way you use Jenkins usually and that's already exactly what we are waiting for I think I don't know what other things but that's already something yeah yeah that's something we need and we welcome everybody to submit your feedback if you open the blog post there are guidelines about that because this feedback will really will be really useful for us to plan other the steps of testing we want to cover a lot of plugins but not all 1500 ones so for some cases we still need to know about problem areas and how we would approach that and every input from you will help us to organize the work properly so yeah there is Java 11 support team formed to maintain this effort and any kind of inputs for us will be useful so we can prioritize our work accordingly to the feedback I've been amazed that with 180,000 installations there are so many unique and distinct ways that people can use Jenkins it's probable that any one of us on this meet up today is doing something novel that other people aren't so any testing of Java 11 has a good probability of finding things that are both interesting and useful for others in the community and still serving your needs exactly I mean that's the point that's why we are doing this in the first place we are trying to reach out to you community the Jenkins user community because we really need people to you know be sure more certain that we are not going to break user setups basically yes we think of that actually this is a preview like you said it's not ready for production yeah in your other people on the call can talk about this as well after you how not ready for production are we talking is it are you guys, you have a set of known issues do you still have aside from those what's your sense of like if I have you know Jenkins obviously I won't be using in the production but like if I have a test instance should I go ahead and throw it on there to see what happens absolutely yeah I mean and I think Oleg can talk even more about that but I've been testing it a lot on my side for instance and I've basically issued that we've been discussing a lot and now is having a fix for it I was never able to crash the instance for Java 11 reason apart from known cases that should be fixed for you so yeah the exception being that there are thousands of plugins so if you haven't touched we wouldn't be able to touch all of them so that's what part of why we're asking exactly I think Oleg has been running the Java 11 based instance for some time or so yeah I'm running my home server it's totally not a production server full disclaimer but I was I've been running it on Java 10 since August and then I switched to Java 11 as a part of the Wops world Jenkins world hackathon so now it runs on Java 11 I haven't seen any real issues but I use only a subset of features about particular cases to test actually all plugins which use external libraries for example to parse test reports to do publishing to external services it would be the top priority to try out because these libraries may be not compatible with Java 11 on their own and actually the most of work we were doing over past months is getting upstream updates integrated and getting some changes delivered to upstream outside the Jenkins project and if you're interested to test the plugins maybe it would be the first area to focus on and Mark you are the container of the Git plugin at least a beta of the Git plugin and the Git client plugin right and have you tried those on Jenkins 11 I was running them in fact we had to run them on an early Java 11 version it's no longer required that's fixed now but it's been running it runs quite well so I love Oleg's earlier description in an earlier conversation most Jenkins demonstrations on Java 11 are boring because they look just like Jenkins on Java 8 there isn't an awful lot of shock value there there's an awful lot of testing we need to do and there's an awful lot of documentation and exploration that we need but in terms of behavior it behaves very very well yeah that's the point that we had the education this morning if we were going to do a demo that's why we didn't do a demo today because we thought it would be very boring in the end I saw the slide and I'm like oh right you just scooted past that because it's like well here's Jenkins right so yeah no not really I mean I mean from your user standpoint there's nothing different really this is really a development issue that's going on to actually fix it the right way for long term but the fix that you have right now for Java 11 specifically is working for Java 11 you can just not use that and you know if you want well you're becoming a Jenkins developer we welcome people in the Jenkins dev community but if you try to for instance install the version that was listed here basically 3.0, alpha, 3.0 it's called very specifically 3.0, Java 11, alpha 1 I think if you try to for instance use that one on Java 8 then we cannot guarantee anything right but so that's why it's pretty you know it's not backward compatible there are a few issues around that so that's why we are saying beware about that but basically if you just use it the normal way you shouldn't expect any kind of special behavior coming from pipeline we do know for instance that fix is going to make data coming from previous pipelines fully or partly I'm not absolutely sure I'm not from the pipeline team not backward compatible so that means that you could be for instance not able if you restart Java 8 running Jenkins instance with a running pipeline you restart and run on Java 11 you might run into issues right you will definitely run into issues if you do that yeah so that's a pretty specific case let's see Baptiste could you minimize the video so looking at the presentation thanks so Baptiste one of the questions that came to me was what are the compatibility constraints with regard to servers and agents so my understanding is that keep the JDK the same on the master and the agents always that's whether Java 8 or Java 11 don't mix and match chaos will result if you do mix and match this is actually already something that's the case so right now you should already I mean right now this issue has progressively disappeared because we've been bumping the minimum requirement for Jenkins to Java 8 some time ago since the 2.60 .x LTS version right so now the issue kind of disappeared but before it was an issue meaning even before and even how Jenkins architecture works you must not ever make Java agent Jenkins remodeling Java agent work on version of the JDK that is different from the one on the master so there are a few specific specifics about that but basically yes for instance to be more specific you cannot run and you must not run because it will crash and the bad thing about that is that some it might work but start working and you will hit and you will have issues if you run for instance agents running Java 8 and the master running Java 11 you have to bump everything so again that doesn't mean that you cannot run any Java 8 9 10 11 workload that's something different you can basically run whatever you want from Jenkins we are really talking here about the thing needed and used for running Jenkins itself not for running the builds which is really something totally different we might I think I know what you are going to talk about yeah I just wanted to say that there is a Java support page on Jenkins.io website so you can navigate to this page and find all the information how to run these things and how to well it may be difficult to find it such way I always use Google to find it and I think it's more something like requirements like this I would send the link platforms it's add new requirements basically we link that from some places absolutely so one of the things potential users should be aware of there is a Maven plugin around and this Maven plugin architecturally it uses remote to have communication between Jenkins master and running Maven instances and it means that if you update to Java 11 you will have to build your plugins or your projects with Java 11 as well so this is the only exception from common guideline that you can build your projects on different versions if you use Maven plugin you always have to use the same version as on Jenkins master I pasted the the link it's just Maven this plugin that was one other question here so if I'm running Jenkins on Java 8 can I do and I want to run it on Java 11 can I run that really complicated command line but just use my existing instance shut it down, spin it up in Java 11 is that going to change anything or can I just spin it down again and bring it back up in Java 8 are any of the configuration files changed? I would not recommend doing that if you were able to copy your data to some test instance and do that then definitely do it because it's going to make a lot of sense obviously that goes without saying because you were saying don't do that on your production I would say even without talking about Java 11 bump, don't do that do your upgrade testing separately from your production instance obviously but even if I have a staging Jenkins and I want to I should treat this as though I were doing an upgrade that can't be reversed somewhat yeah not just somewhat, I think you should treat it as a non-reversible there are too many opportunities for failure in trying to go back from Java 8 or Java 11 to Java 8 just treat it as non-reversible the workflow plug-in change, certainly other changes Java's own changes there are just too many things that are likely to break in going backwards I would say Mark anyway treat any Jenkins upgrade as non-reversible that's why we we're very interesting and get back to something previous basically that's why we we're very interesting and get back to something previous to backup basically Jenkins downgrades should always happen through backups I should treat this as an upgrade not as something where I could do have a Docker image of one and then run a different Docker image using the same underlying folder sometimes in some versions this is not one of those things you should just do not overlap that's got it because well I mean it's really welcome and if someone is willing to do that we are definitely going to be welcoming this but we probably need to document it but it's going to mean switching your if you're using Docker it should be quite easy if you're not then well it should be feasible too but you know you have then to switch to use the right switches and everything so yeah for the sake of this discussion and this video let's just advise people not to do that because it sounds like you're like maybe no let's well I mean if you're testing if you're okay with it blowing up then exactly I mean if you're testing environment and everything is ready to spawn from your production something that would be a testing environment then that's definitely the place where you are freely and generally probably feel free and you know convertible to play and break everything because that's the place to break things right so this is the difference between devs talking and ops and test talking we just have slightly different terms for things right yeah like sure go ahead why not and I'm like oh god no don't do that yeah that means I mean we are we are still again that that's kind of wrap everything I'm saying inside the this is not a prediction propose released and inside that context then you can say okay if you have a testing environment then that makes sense to use that as kind of to try to use you know leverage that to provide feedback upstream to the community of Jenkins community to actually help yourself not getting into issues later basically okay cool so now one of the things that was mentioned earlier in the slides is that there's no blue ocean image from the docker image perspective but can you confirm that blue ocean works and is worth testing in the java 11 environment yep I mean oh like I think it was feel free to go I was about to comment on that because actually we have notion packaging it's just not official ocean packaging due to some reasons so you can follow the work around and it's also referenced from the blog post it's a fully operational version of the ocean on java 11 and it also includes pipeline support patches so one of the issues you may hit is when you update your instances you have to update pipeline support plugin to the version what is was referencing in this image everything is bundled so once you run that you get everything out of the box and yeah blue ocean is totally operational so it's just a matter of time and of decision making when we offer Jenkins a blue ocean image as official one okay so I can run my usual workflows the things I'm doing blue ocean pipeline work all those things in java 11 exactly and actually during the last hackathons we spent a lot of time in exploratory testing so we were doing things like job this we were testing configuration as code we were testing maybe integration plugin surprisingly it worked on java 11 without any issues but we tested a lot of functionality on both linux windows and it works if we talk about exotic platforms then yeah this is also an area where everybody participating here could try testing Jenkins because yeah we test only on the basic platforms so if you have an access to whatever java 11 setup which uses for example ZFS or something like that it would be really interesting to get information whether it works at all because we didn't test it so far great and yeah if you by the way I was thinking that you were talking about kofi gas code in every way we under the hood use kofi gas code so we can say for sure that after adrian's demo and adrian's work that kofi gas code on java 11 does work so obviously there's always dragons because we are not using every single thing and this is not really kofi gas code itself it could be a plugin that's not compliant or whatever but yeah we nothing surfaced in that regard there for instance so yeah I think we are we have still a bit of time so we are still able to cover a bit of questions if there are we got one more could can you give some hints of ways that issues or bugs manifest themselves when I'm running in java 11 so that I know what to be watching what are some of the places where we get common failures and so I can look there good question so there are there is the obvious one well if you see the n-grid Jenkins and like or he is not even starting then this is already something you want to report so as we were saying we don't expect that to happen or maybe with some exotic plugins that might be doing something in the very early stages that will be crushing the whole thing so might happen or I would say the other thing that springs to mind is that's kind of user facing would say in the build console itself I think which you could be seeing some weird behavior there or be on stack traces mainly and the third I would say because we've seen a few of them but we know about a lot of them I think already is the warnings and stack traces you could see from the Jenkins logs itself for instance there are a few logs already known about the fact that so starting with Java 9 and the monologization and basically for Jenkins on Java 11 for instance now in Java it's not allowed anymore to or easy or kind of allowed anymore to use reflection and Jenkins and like any Java app has been using reflection a lot and so we see big warnings coming from the metrics plugin and the money plugin like this but these has been made warning only sometimes since we actually started working and testing Jenkins the Java team actually reverted that change to make that warning only but yeah we welcome any feedback in that regard obviously so we didn't I think we didn't focus on that but please when you report an incompatibility please if you can try and spend a few seconds before filing a new one if there's an existing one so that you can maybe watch it or vote for it something like this so that we don't end up having a lot of duplicates if something is already known about for instance so here I'm going to take maybe that one I don't know I think it's a recent one you can vote here or you can if I mean you're welcome to comment here but please comment obviously if this is adding something to the table or start working on it to fix it or whatever but yeah that that's I think that that's the thing is this kind of covering your question or did I forget some aspects that was great thank you thanks very much so the Jenkins log file job failures looking for interesting exceptions the angry Jenkins all sound like great ways thanks we're at 10 minutes left what else do you want to say here I think if there is any question we are obviously happy to cover so one question was could I join the Java 11 support team if so how do I do that that was one that there may be others who want to be part of helping us make Java 11 support better so I think the as document but I am not going to require to require people to everyone to read that the whole document but there's so this is basically sending joining the platform seek sending an email to reform see me as I was referring to earlier and then it would be joining the Jenkins team yeah right so most people who don't have admin access can't get to that team no you need to be a member of Jenkins CI organization so probably going to the platform so you can ask someone to exactly would be the way to go and if you're a Jenkins CI org member you probably just should be able to click join or request joining here so just to be clear to Java 11 support team this is the team founded mostly to do trade show defects initial routing etc so it's a kind of bug trace team which kind of exists in Jenkins project but focusing on Java 11 issue specifically if you want to help if you want to contribute if you want to test that we don't expect full commitment from anybody you can just join our charts we have discussions there and then if you want to deep dive in Java 11 of course you're welcome to join this team yeah that's a great point Oleg anyone from 2 minutes to 2 years of commitment is fine so we'll come any kind of contribution obviously right and even more than 2 years speaking of contributions there is platform special interest group meetings the next meeting is scheduled to Thursday this week it's something like 2pm UTC if you're a developer if you want to know more about how to develop with Java 11 how to test with Java 11 you can just join this platform seek meeting and we can discuss there and if there is more need we can stop sessions on demand in whatever time zones so if you have questions one of the purposes of Java 11 support team is to actually help others to adopt it and we are here to help when needed great so that would be roughly 2 hours before the starting of the meeting today for mapping that to time zones a little early for us Pacific time zone a lot of Jenkins project meeting have been done at 8 or 9pm here so I guess it's fine to do that sometimes in the other way but we can organize I think that was the point is that we can organize more meetings as we needed so that's why we have special interest groups and now we have much more flexibility about organizing events maybe then Jenkins community I think we are mostly done I think we've covered all the questions that have come up online I want to thank everybody for being here today thank you Baptiste for presenting and building these questions Oleg for leading and everyone else in the call for participating do you guys anyone else on the participants list here have anything they want to add are you guys all good okay great thank you very much you can join us on IRC and on Gitter and I'll add a link to the presentation to the YouTube description when we're done here alright thanks everyone thanks bye