I'm Conor Svensson. This is of Ilya Kirilov. I'm the founder of a company called BLK.io, and we also maintain and created Web3J, the Java Library, for integrating with Ethereum clients. Web3J was initially launched just before DevCon 2, so it's been around for a couple of years now. It started off as just being an implementation of the JSON RPC API, but then, when we started thinking in terms of smart contracts and digging below the surface of it, we added in things like the transaction sign-in capabilities and then creation of bindings in Java so that you can basically, once you've got your smart contract ready, you can do everything else within the actual JVM. It works as well, nicely with Truffle too, so it uses contract ABI metadata files, whether they come out of Solidity or Truffle. It can use that to generate the smart contract bindings. It's a reactive functional API, which basically means it's easy to compose streams as per RxJava to operate on events that are taking place on the blockchain as they happen, and it provides full ENS support as well, which was added last year. I'll now pass over to Availa, who's going to say a couple of things. Yes, so the Web3J ecosystem has got many components with it. The core Web3J is written in Java, so it's compatible with a CoreLyns, Scala, and Android as well. We've got build tools, Maven, and Gradle, so you can generate your smart contract wrappers within your build pipeline. We support the Quorum client, parity and get clients as well, and the recently announced Pantheon client from Consensus. We've got some framework integrations with Spring to easily create RESTful APIs and Apache Camel for your enterprise applications. We released Web3J 4.0, really excited about it. Some of the main things that we've updated is now we're using RxJava 2, the flowable API. We have HGWALA support, BIP32 and BIP44 standards were implemented. Another main thing is we've got snapshot releases that are now available so that you can stay more current with what we're doing. I'll hand over back to Conor to wrap up. We're going to keep this brief. It's a lightning talk. Just to give you a few metrics as well about the library, we've had 75 different contributors now who have actually contributed to it. It gets over 20,000 downloads a month as well. If you can, all the different components, it's over 100,000 downloads but the actual core library itself. There's a very significant user base globally for it. Projects got over 2,000 GitHub stars. A few months ago as well, we received funding from the Ethereum Community Fund, which we're very grateful for because this has enabled us to actually have someone working on the library full-time. We really want to continue supporting the JVM ecosystem for working with Ethereum and just improve on it. Our plan is very much to grow the actual team and the amount of work that we're doing here. We're also to the Gitcoin. Gitcoin have been great too in terms of offering espounties to and will continue to for smaller issues as well so that we can just get more people involved and also continue just to maintain and just make it even easier for a wider number of people to work with the library. If you want to have a chat, come say hi. We've got stickers and all the usual swag things as well if you want any of those. Thank you.


Towards the end of the last lecture we briefly touched upon questions related to energy methods in stability analysis and we will be looking into those issues in detail in this lecture. Before that we will quickly recall what we studied in the previous lecture, so we considered dynamical systems of the form Y dot equal to A of Y, these are autonomous systems this is a vector of functions, so A is, this is also a vector of, Y is a vector N cross 1 and A is a vector of functions, this is independent, time doesn't appear explicitly in this, then we say that it is an autonomous system, we call points at which the system state is at rest that is Y dot of T equal to 0 as fixed points, there the equilibrium points are the fixed points and these points are obtained as roots of the equation A of Y equal to 0, so we saw that for a undamped single degree freedom system the origin is a fixed point, similarly for a damped single degree freedom system origin is a fixed point, for a system with negative linear elastic stiffness and a positive cubic non-linear stiffness we saw that the origin is a fixed point and also there are a pair of fixed points located as shown here, so non-linear systems have more than one fixed point, the kind of examples that we studied we observed that non-linear systems had more than one fixed point, whereas linear systems of this kind exhibited only one fixed point. Now we were interested in studying the stability of the motion in the neighborhood of fixed points, so if X star and Y star are the fixed points where F and G are 0, for example we consider a pair of first order equations X dot equal to F of XY and Y dot equal to G XY, the fixed points X star, Y star are obtained by solving this equation and if we perturb the motion in the neighborhood of these fixed points the perturbations evolve as per this equation and we showed that the question on whether these perturbations grow in time can be answered by studying eigenvalues of this matrix and we showed that if A is greater than 0 where after doing this eigenvalue analysis for this Jacobian matrix we wrote the eigenvalues as A plus minus I B and if the real part of the eigenvalue is greater than 0 then motions grow in time and the fixed point X star, Y star is unstable, on the other hand if real part is negative the fixed point is stable, A equal to 0 is a case where the motion will be, perturbations will be periodic, so the question on whether fixed point is stable or unstable remains unresolved, so depending on the nature of these eigenvalues we classified the fixed points as node, saddle, focus and center, so in a node both eigenvalues are real and are of the same sign, so depending on the sign the fixed point can be stable or unstable, in a saddle both roots are real with one root positive and other root negative and the fixed point is unstable because there is a positive real root, focus the roots are complex conjugates and this the fixed point could be stable or unstable depending on the sign of the real part of the roots, center roots are pure imaginary and a linearized stability analysis is inadequate to answer the questions on whether the fixed point is stable or unstable. There's another way of looking at fixed points, we can consider two possibilities, one is known as robust cases, here we talk about rappellars when both eigenvalues have positive real part, and we talk about attractors when both eigenvalues have negative real part, saddles are the ones where one eigenvalue is positive and other eigenvalue is negative, marginal cases when both eigenvalues are pure imaginary, there are other situations like higher order and non isolated fixed points where at least one of the eigenvalues will be 0, so we are not going to get into greater details on this, we'll later see how all these ideas are related to structural stability. Now we use the word bifurcations, this is relation to the number nature of the fixed points, as the parameters in a nonlinear dynamical system are changed, one observes that number of fixed points can change, the nature of the fixed points can change, the stability of the fixed points can change, so whenever such changes take place we say that the system has undergone bifurcation, so there is various nomenclature associated with bifurcations depending on before the bifurcation occurs what was the nature of the fixed points, and after the bifurcation occurs what is the nature of the fixed points, we saw that there is a node, focus, saddle, center, etc., so there is half bifurcation where a periodic solution is borne and the several you know classification of bifurcations, this is, this again we are not going to get into greater details on these issues. Now we are going to discuss in today's class energy methods for stability analysis, so what we will do is we will consider a system with n generalized coordinates, and focus attention on statically loaded structures, these energy methods are based on two axioms, the first axiom states that a stationary value of the total potential energy with respect to the generalized coordinates is necessary and sufficient condition for the equilibrium state of the system. The second axiom states that a complete relative minimum of the total potential energy with respect to the generalized coordinates is necessary and sufficient for the stability of an equilibrium state of the system, the first condition pertains to the equilibrium, the second condition pertains to the nature of the equilibrium whether it is stable or not, so this discussion is available in the monograph by Thompson and Hunt, so some of the material that I will be discussing are drawn from this resource. So we can make some remarks, see axioms are statements which are consistent with our physical experience of the world, these statements are deemed to be self-evident, and also in these axioms the kinetic energy and dissipation energy have not entered the statement of these axioms, I am drawing your attention to that fact. Now in the statement of these axioms there are issues like stationary value, relative minimum and etc., so we will quickly see a few results from optimization, so let F of X be a function where X lies between A and B, and let F prime of X star, F double prime of X star and F n minus 1 X star be 0, and F n of X star is not 0, where N is superscript N means I am considering nth order derivative, F is a function of a scalar variable here, if N is even, F of X star is minimum value of F of X at X equal to X star if F of X n X star is greater than 0, on the other hand F of X star is a maximum value of F of X at X equal to X star if F n of X star is less than 0, if N is odd F of X star is neither a maximum or a minimum, so we can see a few schematics here, this is a function F of X versus X, and we have here A1, B1, A2, B2, A3, these are known as local extrema or stationary points, obviously F prime of X is 0 in this depiction here, this A1, A2, A3 are known as local or relative maximum, B1 and B2 are known as local or relative minimum, in the range of X between A and B, A2 is the global maximum, similarly B1 is the global minimum, in this function again lying between these two points A and B, the local minimum and global minimum coincide, here this point F prime of X is 0, F double prime of X is 0, but F triple prime of X is not 0, so this is a point of inflection, okay, so this also is embedded in the statement of this theorem, now let us consider a function of several variables, let F of X be a function of X1, X2, X3, XN, if F of X is an extreme point minimum or maximum at X equal to X star, and F of X star exists then dou F by dou XI X star is equal to 0 for I equal to 1 to N, okay, these are standard results from calculus, then a sufficient condition for a stationary point X star to be an extreme point is that the Hessian matrix of F of X at X equal to X star is positive definite when X star is a minimum, positive negative definite when X star is a maximum, that means when you consider the Hessian matrix F of X, if it is positive definite when X star is minimum it is positive negative definite when X star is a maximum. What is Hessian matrix? Hessian matrix is the matrix of second order derivative of H, so this is given by this elements of H IJ is dou square F dou XI dou XJ, clearly since dou square F dou XI dou XJ is equal to dou square F dou XJ dou XI this Hessian matrix is symmetric, now we say that the Hessian matrix is positive definite if all the eigenvalues of H are greater than 0, or Q transpose HQ is greater than 0 for any choice of N cross 1 vector Q, or we have few requirements H11 absolute value of H11 must be greater than 0, the 2 by 2 determinant H11, H12, H21, H22 must be greater than 0 so on and so forth and determinant of H itself must be greater than 0. Now what we will do is we will try to use these exams and try to gain understanding of how these exams are applied by considering few examples, so these examples are drawn from this book by Simetsis and Hodges, the first example we consider is that of a rigid bar which is loaded actually and which is supported by a spring K, now as if a neighboring equilibrium position exist then the potential is half K A square tan square theta minus PL 1 minus cos theta, this is K A square tan square theta is the strain as is stored here, now theta is a generalized coordinate, so there is only one generalized coordinate, for equilibrium dou U by dou theta must be equal to 0, so you differentiate this with respect to theta I get K A square tan theta secant square theta minus PL sine theta must be equal to 0, so if you organize these terms we get the condition that sine theta into K A square by cos cube theta minus PL must be equal to 0, so this quantity can be 0 by either sine theta being 0 or the term inside this bracket being parenthesis being 0, so we get the condition sine theta equal to 0 or K A square divided by cos cube theta minus PL equal to 0, now this is the condition for equilibrium, now we want to examine the stability now, so we have to differentiate we have to find now the second derivative dou square U by dou theta square, so dou U by dou theta we have obtained this is given by this expression, and upon differentiating this with respect to theta we get these terms, and by reorganizing them we get the equation in this form. Now we will consider now the equilibrium position theta equal to 0 and see what happens to the sine of dou square U by dou theta square, so when theta equal to 0 we can see here cos theta is 1, cos cube theta is 1 this is 0, so I get dou square U by dou theta square is K A square minus PL, theta equal to 0 is stable if this is greater than 0 or P is less than K A square by L, so this is a condition for stability of theta equal to 0, so P critical obviously is K A square by L, now if theta is emanating from the second branch, okay, so in that case I have theta which satisfies this equation, now if you look at the expression for dou square U by dou theta square there is a term which is exactly equal to this and that is 0 and I am left with this term, therefore dou square U by dou theta square for theta which satisfy this condition is given by this. Now this quantity is always positive, you can see here K is positive, A square is positive, sine square theta is positive, cos 2 power 4 theta is positive, this would mean that any theta that satisfy this equation is always a stable equilibrium point, so now we can plot this initially till theta reaches this K A square, P reaches the value of K A square by L the only theta equal to 0 is the possible solution, and this is stable, this branch is actually the root of this equation, K A square by cos cube theta minus PL equal to 0 is this branch, this is always stable, and once K A square by L is crossed these points become unstable, so this is the load deflection diagram for the problem based on the two exams that we have developed. Another example, there are two rigid bars supported on spring here, these dots represent hinges and these bars are loaded actually through these loads P, now as the load P increases these two bars are on rollers, so they will move towards each other, so at some point this roller would have moved by this amount and this comes here, and this roller would have moved by this amount it comes here, and consequently this link moves downwards, right, so these loads are now doing work on, the work done by P on this system is P into this distance, and on the other hand because of this motion there will be energy stored in K, so what is the total strain energy, potential energy here, half K delta square minus 2P L square plus delta square, how do I get that? This is a rigid link therefore this length is L, so this deflection is delta, so L square plus delta square is, sorry this is a right angle triangle therefore delta square plus this square it must be L, so based on that I get this distance as L square minus delta square, so the distance by which the load has moved is L minus L square by delta square, and there are two such motions, so that's a factor 2 comes here. Now delta is a generalized coordinate, so I have got now U in terms of delta, for equilibrium I have dou U by dou delta equal to 0, so I differentiate I get this equal to 0, and this is the load deflection path which satisfies the equilibrium condition, U this equal to 0. Now for sake of simplification we can linearize this function, so I take L outside and I have dou square root of 1 minus delta by L whole square, and if delta by L is small I can approximate this as K delta minus 2P delta by L, which is equal to delta K minus 2P by L. Now equilibrium point therefore is delta equal to 0, now what is the second order derivative? Del square U by dou delta square is you have to differentiate with respect to delta I get K minus 2P by L, for delta equal to 0 to be stable this quantity in the parenthesis must be greater than 0, so I get the condition K minus 2P by L must be greater than 0, or P must be less than K L by 2. So according to the linearized, after linearizing the problem we have got this result that delta equal to 0 is a stable branch till the time I reach P reaches the value of K L by 2, after that delta equal to 0 is unstable, we are unable to trace the other paths because we have linearized here, so I have left this as an exercise you don't do this linearization but plot this curve, and evaluate the second order gradient at each of these points and see whether the sign is positive or negative, and then decide upon whether the point on this curve that is this equal to 0 curve is stable or not, so then you will be able to trace the complete solution, obviously this line will be part of the solution but there will be further information which is not encapsulated in this load deflection diagram. Now we have considered two examples with one generalized coordinate, now let us consider an example where we allow for two generalized coordinates, so this problem is conceptually similar to the one that we considered just now but it has now three rigid bars with two hinges and again loaded actually, so upon the application of these loads this roller move to the right, this roller move to the left, and these springs gets compressed, and this is the snapshot of the deformed configuration from which I will be able to write the expression for the total potential energy, this is energy stored in K1, I am calling this as K1 K2 numerically both are equal, so this is K1 delta 1 square plus half K2 delta 2 square P 3L minus this distance, this distance, so you can compute this distance by using simple geometrical arguments and we get U as a function of delta 1 and delta 2, so this is the total potential, and now I have for equilibrium I have to differentiate this function with respect to delta 1 and delta 2 and equate it to 0, so if I do that I get two equations, for example dou U by dou delta 1 I get this, and here again if I linearize, if I assume that this delta 1 is small in relation to L I can linearize this function and I will get dou U by dou delta 1 is this, and for equilibrium this must be equal to 0, a similar equation by differentiating this with respect to delta 2 can be done, you differentiate again assume that delta 2 by L is a small quantity linearize this function and I get K2 delta 2 minus P into this quantity equal to 0 as a condition for equilibrium, so there are now two conditions for equilibrium I can write them together, before that we can also think of, that is what we are doing here, dou U by dou delta 1 equal to 0, dou U by dou delta 2 equal to 0 leads to these pair of equations in the matrix form this is the equation. Now we can examine the stability by considering the second order gradients, so that is the Hessian matrix I have to find out and see whether Hessian matrix is positive definite or not, so I construct the second order derivatives and the Hessian matrix, and for Hessian matrix to be positive definite there are two criterion K minus 2P by L must be greater than 0 and determinant of this must be greater than 0, so I get this condition, first condition is K minus 2P by L must be greater than 0, second condition is this, now if K minus 2P by L is greater than 0 it automatically implies that K minus P by L will be greater than 0, and hence this condition in conjunction with this really translates to this condition K minus 3P by L must be greater than 0, so we get from this P critical to be K L by 3. Now in one of the early discussions on stability we considered the problem of snap through, we conceptually outlined how the solution might be, but now we will work out the solution in some detail, so for illustrating that we again consider two links, rigid links connected through a hinge here, and this is supported on a spring as shown here, and when P equal to 0 this bar occupies this triangular position, now as P is increased as shown here, as P is increased this point moves down and this roller moves to the right thereby compressing this spring, and this load will do the work through this distance and there will be strain energy stored here. Now we will write the expression for the total potential in this case, you can note down the nomenclature here, alpha is the angle that this link makes to the horizontal when P is 0, whereas theta is the angle made by the link to the horizontal when P is not 0, so theta is the generalized coordinate whereas alpha is a parameter of the problem. So we get the total potential to be given by the strain energy stored in the spring which is, what is the distance through which this point has moved? This distance is 2L cos alpha whereas this distance is 2L cos theta, so the difference between the two is the distance through which this roller has moved and that is here, 2L cos theta minus 2L cos alpha whole square half K. Similarly the work done by P is P into this vertical distance and this vertical distance here is L sine alpha whereas here it is L sine theta, so the distance through which this has moved is L sine alpha minus L sine theta, so that is this. So we can take out 2L outside and rewrite this expression and now we are ready to investigate the stability. For equilibrium we have to evaluate dou U by dou theta, dou U by dou theta upon differentiating this with respect to theta I get this. Second derivative I differentiate this with respect to theta and I get this expression, we can do a bit of simplification and we get dou U by dou theta and dou square U by dou theta square as outlined here. Now we examine the condition for equilibrium, the condition for equilibrium is dou U by dou theta equal to 0, so that means this quantity must be equal to 0. So we can rearrange the terms and if we do that I will get the equation as P divided by 4KL is sine theta minus cos alpha tan theta, so this is actually a load deflection curve which is non-linear, theta is the displacement and P is the applied load, so points P, theta form the points on load deflection curve and for equilibrium they should obey this relation.  Now graphically this curve looks as follows, this line that you are seeing here is the load deflection path given by this curve, this curve is this red line, when load is 0 the Y axis is the load, when load is 0 the deflection will be this, this is the theta which is alpha, this is actually alpha, this value will be alpha, as load is increased the theta goes on reducing and when it reaches this point B, so what I am doing is for every value of theta here I will evaluate dou square U by dou theta square and see what is the sign of this quantity, if it is positive it is stable otherwise it is unstable, so these points are stable and moment I reach this point B what happens is this branch will be completely unstable, so the loading path unstable positions cannot be occupied, so the structure actually snaps it comes here, this path is unstable, now upon increasing the load further it traces this path, now similarly if you start unloading the structure would be able to realize this path, but at this point it snaps to this, snaps upwards and comes to this point and again these points will be stable, okay, so this region is never occupied either in the forward path or in the reverse path, so this region is unstable region, these values of theta cannot be realized by the structure, so that is what this theory tells, and this as I said is a snap through phenomena where if you carry an umbrella during a rainy day, windy day, the curvature of the umbrella, the sign of that suddenly changes under certain velocities, so that is the kind of thing that we are talking about, but under static loads. Now we can make few observations here, to study this problem we need to use large deflection theory, if you linearize you won't get these details of this theory correctly, here at B there are no adjacent equilibrium positions possible, so in the neighborhood of B as load increases the system loses its stability and moves to C to a far away state, this is C, it doesn't come in the neighborhood, this behavior is called limit load buckling, okay, the buckling of spherical caps and arches display this behavior, that is curved elements. Now we can compare this with buckling due to bifurcation equilibrium, so if you recall when you studied this problem of an ideal beam carrying a truly axial load, Y equal to 0 was the equilibrium solution and we are interested to see if there is any other equilibrium position in the neighborhood of Y equal to 0, so by assuming that there exist in neighboring equilibrium position we wrote the equation, presuming that such a neighboring equilibrium exist and try to find out for what value of P that assumption is valid, so that led to this load deflection diagram as shown here, so when load is 0, P is 0, this delta is a mid-span deflection is 0 and as we gently increase value of P and at every increase suppose you pluck the beam and allow it to oscillate and see whether it returns to its original state or not, assuming that system is damped, it will return to its original path till P reaches a value P1, after that depending on the perturbations that you give it occupies a neighboring equilibrium position, okay, so that is the phenomenon of buckling due to bifurcation of equilibrium, whereas in limit load buckling what happens is as you go on increasing the load the structure deforms, it is now here the deflection is 0 for as the load increases, but here the as the load increases the deformation also increases, okay, so we started here as the load increases the deflection is changing, this is unlike this situation where with increase in P origin still continues to be stable, okay, and when it reaches this value a critical value it occupies a faraway position, in buckling due to bifurcation of equilibrium as load increases deformation deflection remains at 0, non-zero deflection becomes possible only when load reaches the critical value, till that time there is no deflection, whereas in limit load buckling the structure deforms with every increase in applied load, both load and deformation evolve as load increases, and the critical stage when structure becomes unstable and the system gets into an equilibrium far away from the original equilibrium position, so when that critical condition is reached the structure occupies a faraway equilibrium position, as the load approaches the critical value any small increase in the load results in large changes in deformation, even away from this critical condition with increases in load the deformation changes, whereas that doesn't happen here, so to analyze limit load buckling we need to perform a non-linear analysis, now suppose if we consider the same problem purely based on equilibrium considerations, suppose I find out the reactions and take moment about B and write the equilibrium equation, so that can be done, for example this reaction vertical reaction by symmetry is P by 2, and the force in the spring we have already derived it to be K into 2L cos theta minus 2L cos alpha, now moment about B if you take here F into this distance and this reaction into that will give me the required relation and I get the equilibrium path, that is a relation between P and theta, but this analysis does not address the questions on stability of states and hence cannot explain if all states are realizable or not, you will get this graph and if you plot it you will get a curve like this, but you will not know whether this path is realizable or not, okay, but also there will be a problem here if you consider this value of P there are three possible solutions, so which solution will be realized, you see that question has to be answered, so that depends on how you are approached that point, and this intermediate point cannot be realized at all, okay, so these details will not be delineated if I do simply an equilibrium analysis, so you need to perform a stability analysis as well, now let's now return to problems of continuum, so far we considered some simple examples involving rigid links and some simple mechanical models, so let us return to problems of say stability of beams, so let us consider this problem of ideal simply supported beam carrying truly axial loads, and we are considering whether there is an equilibrium position in the neighborhood possible or not, so I can write the expression for strain energy in the system as shown here, how do I now apply the axioms to investigate what value of P such positions are possible, so what we do is we use this Rayleigh-Ritz type of analysis, so this we have discussed earlier when we in the very first few classes when we discussed approximate methods for determination of natural frequency, so we are used to the language so I will not repeat all the details, so we start with a trial function, for example if I take Y of X to be Ax into L minus X, so as you can see here at X equal to 0, Y is 0, and X equal to L Y is 0, so at least the geometric boundary condition is satisfied, this A is the generalized coordinate, now if you look at the expression for total potential it has D square Y by DX square and DY by DX, so you find out Y prime of X I get A into L minus 2X, Y double prime of X minus 2A, substitute this into B and perform this integration I get V of A to be A square 2EI minus PL cube by 6, DV by DA simple you differentiate this with respect to A I get this, D square V by DA square I get this, now I will need these two quantities to infer equilibrium and stability, for equilibrium DV by DA must be equal to 0 that means A would be 0, and this equilibrium position is stable if the second order derivative of V evaluated at this point is positive, so what is DV by DA at A equal to 0, it is a constant everywhere, so I get this, and this is if it is greater than 0 A is stable, so for this to be greater than 0 P should be less than 12EI by L cube, so P critical according to this theory is 12EI by L cube, now if you recall we have computed the critical load for this case and first critical load is pi square EI by L cube, now this is 9.869 EI by L cube and this approximate analysis gets an approximation of 12EI by L cube to this number, so there is about 20% error in this analysis. Now if you recall the discussion on choice of trial functions when we discuss Rayleigh Ritz method in the context of determination of natural frequencies, we classified the trial functions as being admissible comparison and Eigen functions, there are geometric boundary condition and natural boundary conditions, and there is a field equation, the trial function which satisfy the geometric boundary conditions and which need not satisfy the natural boundary conditions and field equations are called admissible function. If the trial function satisfy geometric boundary condition as well as natural boundary conditions but not the field equation, they are called comparison functions. Eigen functions are those which satisfy the geometric boundary condition, natural boundary condition as well as the field equation, that means they are the exact solution. Now if you look at the trial function that we have used, Y equal to AX into L minus X is an admissible function, because the second derivative is a constant and bending moment would not be 0 at the supports. Now we can try other shape functions, for example Y of X could be a deflected profile of the beam under its own weight, suppose if I take the beam and apply a concentrated load, sorry distributed load which mimics its own self weight, this deflected profile will satisfy the geometric boundary condition, and obviously if the analysis is right the bending moment computed from this curve will be 0 at the 2 supports, so it will be a comparison function. So you can use that A into this shape can be taken as a trial function, that's one way of constructing comparison functions. We can also consider for example if it is sine N pi X by L, there are 2 eigenfunctions, okay, so if I use in the Rayleigh Ritz method sine pi X by L as a material function I will get the exact solution, but you would not know in real problems what would be the eigenfunction. So to illustrate this let us consider a single span beam which is made up of stepped cross sections, the middle half has a flexibility of EI and the other quarter have EI by 4, so I want to find out the, this structure is subjected to axial loads, and I am interested in knowing the critical value of this load P where the equilibrium position Y equal to 0 loses its stability. So I will write the expression for V, I had taking into account that this EI is different in different cross sections, so first I will integrate from 0 to 0.25L, and then 0.25L to 0.75L, and 0.75L to 0.25L, and I use EI by 4, EI and EI by 4 in these 3 cross sections respectively. The axial load of course is constant throughout, so I will take, there is no need to split this. So this is the expression for the total potential, now I can try 2 term solution, I will take A1 sine pi X by L plus A2 sine 3 pi X by L. Now if the beam are to be uniform, okay, sine pi X by L will be an eigenfunction, because it is a true mode shape of the, buckling mode shape of the beam. On the other hand if the, since the beam is inhomogeneous sine pi X L, pi X by L will be a comparison function. So I am considering these two comparison functions, and A1 and A2 are the generalized coordinates. So I can substitute this and perform this integration, if I do that I get this as my total potential in terms of generalized coordinates A1 and A2. Now condition for minimum, sorry equilibrium is dou V by dou N, dou A1 equal to 0, dou V by dou A2 equal to 0. So if I do that I get this matrix equations and the A1 equal to 0 and A2 equal to 0 is the equilibrium position. Is it stable? So I have to construct the Hessian matrix and evaluate it, the solution A1 equal to 0 and A2 equal to 0 and see whether it is positive. So the critical condition of course will be the determinant of H is 0, so if I do that I get the critical value for P to be given by this number. Now here of course if I retain only if the first term I can put A2 equal to 0 and the critical load corresponding to that will be this term equal to 0, which will be 0.864 pi square EI by L square, that is I am forcing A2 to be 0. So if only one term is retained I get the answer as 0.864 into this multiplier, if two terms are retained I get an answer 0.735 into this, it so happens that the exact solution for this problem is 0.65 pi square EI by L square, this would mean that retaining the second term reduces the error from 33% to about 13%, so it offers advantage. Now we can consider few more examples so that the ideas get fixed in our mind, so we consider now a cantilever beam loaded actually through load P as shown here, so this is the expression for the total potential, I will try and take a trial function AX square, so Y prime X is 2AX, Y double prime is 2A and YFX is admissible because at the free end we need conditions on bending moment and shear force that is will not be satisfied by this, so substitute I will get V to be this, so dou V by dou A equal to 0 is the condition for equilibrium and that means A equal to 0 is the equilibrium position. Now differentiate this with respect to A again dou V by dou A and look at the sign of this quantity at A equal to 0, if I do this for A equal to 0 to be stable I get the condition that P must be less than 3I by L square, so according to this single term approximation the critical load is 3I by L square, whereas the exact solution is 2.467 EI by L square, so we can improve upon this solution by taking YFX to be A into phi X where phi X is a deflected profile of the beam under its own weight, by that in this case what is meant is you have to consider a deflected profile of the beam this is phi of X, I don't mean weight in this direction of the applied load but in this direction, okay, so that might offer some improvement. Now we will consider one more example, we will consider two alternative trial functions, one in which the geometric boundary conditions are satisfied and another one in which the force boundary condition is also satisfied. So let us consider this property cantilever carrying this axial load P, the geometric boundary conditions are Y of 0 is 0, Y prime of 0 is 0 and Y of L is 0, so I will now select a trial function which satisfy these three conditions, so I will start with Y of X is A naught plus A1 X plus A2 X square plus A3 X cube and I will differentiate this and by using these three conditions I arrive at a trial function which is Y of X is A into X cube minus LX square, okay, this satisfies all the boundary conditions, geometric boundary conditions. You now substitute into the expression for total potential and if you perform the requisite calculation I get P critical as 30EI by L square, so I have skipped those steps you can fill it up. Now on the other hand if I now consider the force boundary condition also while constructing the trial functions, so I will now assume a fourth order polynomial for Y of X, so four of these constants I will evaluate by imposing the four boundary conditions and the fifth one will be treated as the generalized coordinate. If I do that the polynomial that I get eventually will be of this form, Y of X is AL to the power of 4, X by AL to the power of 4, etc. So this trial function is a comparison function, it satisfies the geometric boundary conditions as well as the force boundary condition, the force boundary condition is Y double prime L equal to 0, that is EI Y double prime L must be equal to 0 which is the bending moment. Now with this I get the potential V of A as shown here and I use the two XEMs and check the sign of the Hessian, check the condition for Hessian to be positive definite and I get P critical to be 21EI by L square. So summary is in first choice I had a trial function which satisfies geometric boundary condition but force boundary condition was not satisfied and I got a P critical of 30EI by L square. In the second choice both geometric and force boundary conditions were satisfied and I got this answer, the true answer is exact answer is 20.14EI by L square, so you can see that the extra effort that we made in achieving, in satisfying the boundary condition pays dividends here. Now we talked about Rayleigh Ritz method, we could also use the Galerkin's method, here the starting point will be the governing differential equation itself, so let us consider an inhomogeneous beam where EI is a function of X and the governing equilibrium equation is given by this, this can be obtained based on application of Hamilton's principle and you will be able to get this with along with all the appropriate boundary conditions, so that would be the starting point for applying Galerkin's method. Now I assume Y of X to be given by this series A n phi n of X, where phi n of X need to be at least admissible, so if I substitute this into this equation, the equation won't be satisfied, we will be left with a residue. Now as we have seen in method of weighted residuals, weighted sum of this residue is taken to be 0 and the weighting function in Galerkin's method is taken to be the trial function itself and I get a set of N equations, so if we multiply by phi K and integrate from 0 to L, I will get these terms and I can evaluate this term by parts and use the boundary conditions and I will be able to simplify this, I have not shown those simplification, we have done that when we discussed a Galerkin's method in the context of vibration analysis, so I will get equations in this form, so the new thing is there is one more integral J N K given by this, here also we can simplify this by integrating once. Then this is for K equal to 1 to N and in a matrix form I can write it as K A plus P into J A equal to 0 and this matrix J is known as stability matrix, we want now if you want a neighboring equilibrium position a non-trivial solution is needed for A, so the condition for non-trivial solution is the determinant of K plus P J must be equal to 0, so this is an eigenvalue problem with P as the eigenvalue and A the deflected profile is the eigenvector, so this leads to estimates of N values of P at which the system admits a neighboring equilibrium state, okay, so this is Galerkin's method, so the Galerkin method you know we can use it for few examples, for example if you consider a beam fixed at the two ends carrying axial loads as shown here, again I want to recall that this fixity convention that we are using here should be taken to mean that the translation and rotation here are 0, but the axial deformations are permitted, otherwise this load will not do any work on the beam, that is not what is meant by writing this fixity condition. Now how do we estimate, the problem here is to estimate PC that is a critical value of this P by using two trial functions Galerkin's method and these two trial functions the way they are derived is in one case I apply a UDL and find the solution, this is phi 1 of X, in the other case I apply half the beam load this way and other half this way, that means this load acts upwards, this load acts downwards, so the deflected profile will be something like this, so this is phi 2 of X, and they are explicitly given here and I leave it as an exercise that you use Galerkin's method and evaluate the P critical value. Now there can be other examples that can be used, for example we consider the cantilever beam deflecting under its own weight, so we found out the possibility of the structure buckling under its own weight, so this problem can again be tackled using Galerkin's method, this is also left as an exercise. Now so far we have considered simple structural elements, but when we come across built up structures like a two span beam or a portal frame or industrial shed carrying various types of loads, how do we proceed, how do we determine the equilibrium position and their stability, so here again if you can construct the global trial functions, the trial functions which are valid all across the structure you can still use Galerkin's type of approach, but they become increasingly unwieldy, so this situation we have encountered when we started discussing application of finite element method for vibration problems. So what was the remedy at that time, what we did was a structure like this is discretized into elements and the nodal displacement degrees of freedom, the nodal displacement values were taken as degrees of freedom and the field variables within an element were interpolated using the nodal values of the degrees of freedom at the nodes, and then we formulated the mass and stiffness matrix, we can do the same thing here instead of using global trial functions we can construct trial functions which are polynomials over pieces of these structural elements and then demand continuity of deformation etc. across these elements, so that is basically the idea of using finite element method for this type of problems. Now how these ideas are developed is what we will consider in the next lecture, so we will close this lecture at this point.


Hello everyone. I'm Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. In this video, I'm going to demonstrate how you can create your first lightning web component. So jumping to the Visual Studio port. So in my previous video, I already demonstrated you how you can set up the Visual Studio port for Salesforce to build lightning web component. So in this video, I will be building a full lightning web component which will be having code in HTML, JavaScript, as well as in .xml. So here you can see we already have this demo LWC lightning web component created. So I'm just closing all these files which are opened here. And if you want to create new lightning web component, so just come here on LWC folder. It will be available under force-app slash main slash default. So just right click and select create lightning web component. So here you need to provide the name of your lightning web component and then you need to press the enter key. So I'm labeling it as first LWC and clicking on enter. So it is asking for the desired directory. So I'm again pressing enter so that default will be selected. And here you can see first LWC. This component is created. So JavaScript file is opened automatically. We have HTML file as well as we have meta.xml as well. So here inside this template, I will be implementing the code. So I created a div and inside this div is basically known for division. It is tag of HTML. So we are using it now. Again, I'm using a div. So inside this, I'm going to show name and then inside curly braces, I'm writing name, right? So here you can see this name will be displayed as is on the screen or on the browser and this name which is enclosed in curly braces. So this is basically an expression. So this expression is having this name as attribute or you can say property. So this property we will be declaring in the JavaScript file, right? Now, similarly, I am creating one more division which will be for company. So here I'm going to display name of company. So again, this company will display as is and the company which is enclosed in curly braces, it is a property that we will be defining in JavaScript. So one more div, then here I'm going to show designation and its value will come from designation property. Then one more div I'm creating and here I'm writing salary. And inside curly braces salary, right? So this way this HTML file is implemented, which is showing which will display name company designation salary these captions and whatever is available inside curly braces. So this is so these are properties that we need to define in JavaScript. Now I'm going to open the JavaScript file so that we can write the code there. So I am just before that you can just save it. So, for example, if you do some modification, so you will see this white circle. So if this white circle is available, it means your port is not saved. So if you just save your file, then you need to click on JavaScript file. So in JavaScript you can see LWC functional LWC module is by default imported and lightning element functionality is important. Then here name of classes first LWC because our lightning wrap component folder name is first LWC and it is extending this lightning element functionality. So inside this curly braces you just need to declare the properties. So, first time creating name. So, name equals to Sanjay, then I'm providing name of company tax school, then designation founder and salary. So I'm putting $10000. So this way, these four properties I have created and also remember like after each line you need to provide semicolon so that these lines will be separated. So name company designation salary these are the properties and these are having some values as well. Now, here also in JavaScript, you can see this white circle is available. So you just need to save this JavaScript file as you implement. And now I'm jumping to JS-meta.xml. So this meta.xml file is configuration file. So in this file, we just need to define like where this lightning wrap component will be used. So first of all, I need to convert this false into true so that if is exposed is true, then only your component can be used outside this VS code. And if I open this component and open this file, so I'm just copying this target. So what you can do if any of the component is already implemented in your VS code. So you can just use or you can just reuse the code which is available in the configuration file in newly created configuration files. So here I'm going to paste this code and I saved it. So this way, this newly created component I can use on home page or as well as record page. So all three files are saved. So this way, I hope you understood how I implemented HTML file, how I implemented JavaScript file and how I implemented this configuration file so that we can use this component outside VS code. So now let's understand how we can deploy this lightning wrap component to the org and how we can use it. So for this purpose, what you need to do, you just need to right click on this lightning wrap component folder. So if you right click on this folder, so you just need to click on deploy source to all. So it will deploy all three files together. So here you can see deployment started. And once it is deployed, so you will see this message. So first LWC dot HTML first LWC dot JS and JS meta dot XML three files are deployed successfully. So it is showing success message here. Right now what we can do we can jump to our org and I'm going to open sales application. So I'm on home page and on this homepage I'm going to drag and drop that component first so I just clicked on here I can and then select an added page. And if I go to left and scroll bottom scroll to bottom so here first LWC is available so I'm just going and dragging and dropping up it after assistant. Right. So here you can see some information is displayed. Now I'm just clicking on save, going back. So here is the result of our lightning wrap component. So we just provided the values manually in the JavaScript file. So those JavaScript property values are rendered here. Right. So if I take you again to the component. So in this component like we created these properties and these properties we used here inside curly basis. So this name company designation and salary are getting replaced and the values are coming from this JavaScript file. So in lightning web component whatever variables you want to create. So those variables you will be creating in JavaScript and those variables are known as property and those properties you can use with the help of this expression. So you just need to use curly basis and then you can put the name of your property. Right. Now I'm going to show you one more thing like how you can use lightning web component like base lightning web component. So here we enclosed it in there. Now I'm just moving it to back and this way I am commenting it out. So this way if you want to comment any particular statement in HTML so you can use this less than exclamation and to hyphen. And then to hyphen and greater than sign. Right. So whatever code is available in between this syntax so it will be a comment. Now here I'm going to use base lightning web component. So I'm using lightning hyphen badge label will be available from designation property and I'm closing it here. So it is closed automatically. So opening tag and closing tag both will be required and this lightning base label will be designation. Right. So this way you can use this base lightning web component in your LWC. Now I'm going to save it. So I just modified the HTML file JavaScript file is same. Right. I didn't change anything here. I'm not changing anything here as well. So what I need to do here I have two options either I can deploy the whole web component or I can just deploy this HTML file because I just changed this HTML file. So I'm right clicking on this file and clicking on deploy a source to or so this file will be deployed and then we can jump to the org and we can refresh the page. Right. So now if I come here so I'm going to refresh this page because component is already placed here. So I clicked on refresh. Now here you can see the change like here name company and this designation is showing in different way because we used lightning bass. So this way lightning bass is available and it is showing the designation on it. So this way you saw like how we can use predefined elements as well. Right. And because we are using diff so every statement is coming in different lines. So this is a small demonstration like how we can create our first lightning web component having HTML JavaScript and how we can configure our configuration file. Then to deploy a component from VS code to order how to place that component on home page. Right. So I hope you understood whatever I demonstrated here in upcoming videos I will be explaining some more difficult examples so that you get familiar with lightning web component.


Hello. Okay. The next talk is about Custom Deviant Distributions by Andres Tilde. Again, whenever you want to make a question, just raise your hand. Wait for the microphone to reach you and then you can do the question. And please try to look at the camera and, well, nothing else, Andres. Yeah. Hello. And I want to add, even if it is... Now there's a lecture you can ask in between if you'd like to do so. But the title is Custom Deviant Distributions. And the subtype is making Deviant the distribution of choice for specific work fields.   Custom Deviant Distribution. And in principle it is something about linking the upstream developer with a user by just making specific adaptations to Deviant. And the second part of the talk I want to elaborate a little bit on the techniques we are using. And I want to say a little bit about the future of the Custom Deviant Distribution. So I want to give a short introduction because I think it is a third talk I've given at DevCon about Custom Deviant Distributions, but I enjoy it. I will not tell you the same. I'm just going a little bit in the details with the first slide. So in fact, in Deviant we have 22,000 packages, a little bit more, a little bit less, whatever. And in principle the users are not interested to install all these packages. Even it would be technically possible with conflicts or whatever. They are normally interested in the subset of packages and I think you will not find much more than 1,000 packages on a really existing machine. So the problem is every user has a specific work field. So it's not about the fact that every user probably needs a browser and needs an email client. It's about getting specific work done in his day-to-day work. And you normally want these users to get in some easy installation without working down this list of 22,000 packages. What do you think? How long would it take to read 22,000 package descriptions? And I assume you will understand all these package descriptions. It works not for me. I can assure you I will not understand 1,000 of these descriptions because I just don't understand the content. So it's about making the user be able to understand what's this really large package pool and what is really useful for me. So Debian is a very general distribution. The reason for this is that if you have 1,000 developers, statistically it is quite insured that from every working field there is anybody who is working in a specific field. So in principle the Debian developers are a good team with enlarging this number of 1,000 people by 3 or 4,000 people who are actively providing some stuff without being an official Debian developer. I think Martin elaborated in this talk. So we have a specialist for every field which is worth working about. So the idea is we do not want to derive from Debian. It is what I also said in the round table before. We want to make Debian just the distribution which is fit for any special purpose by including small adaptions to make people able to use special applications to find these special applications and to get a computer which is a real workhorse after a short time without doing much work. If you want to bring Debian to the masses, you have to make it brain-dead easy to install a computer for a specific purpose. I know that every attendee of this conference is perfectly able to find all the packages which are fine for him. But I want to make it easily accessible for everybody, for your mum or whatever, or your grandma to install a computer which exactly does what she wants it to do. So I had a little funny story. A doctor, a friend of mine told me, what are you doing? You are traveling around the world with this stuff. What is this about traveling around the world? Well, I'm doing this Linux stuff, you might have heard about Linux. No, I haven't heard it. It is some kind of secret society. I admit I was a little bit speechless to call Linux or Debian as a secret society. But I was thinking about it and it's not that fast because we know that we are anything else but secret. But we have one feature in the normal life. We are here in this hotel very close to friends. But if you go out over the street and ask a random passenger, what's Linux? He said, whoa, what's that? And if you say, well, this is an alternative to this operating system, how I have heard about this. I've experienced this two times on my travel to here. In the underground, in Frankfurt, I was talking to a random passenger and after telling him that this is something, some alternative to Windows, he asked me, does it have any chance? Well, this is really interesting. So I do not want to elaborate on the question whether we have a chance or not. It works for us and this is okay. But we have one feature, this is a concealment and I think the concealment is that we, as any other Linux distribution as well, are sometimes concealed under the noise of advertisement of proprietary products. We normally do not advertise what we are doing. We talk to friends, they're in a school and you could use it, but this is not advertisement. I'm no businessman and I don't know really how much money compared to the real value is provided by a company is put into advertising and we are doing just nothing, we have no nothing at all. So we are really concealed, which is some way why people think we are a secret society and we are somehow concealed by this unity. What do I mean by this? If you talk to people who are a little bit more educated about Linux and you are asking people, well, since Ubuntu exists a little bit different, but before Ubuntu existed and you ask people in German Linux, ah, Susi Linux, I know it. If you ask people in America, ah, Red Hat Linux, yes, I know it. If you want to France, ah, Mandrake Linux, ah, I know it. So there are so many different distributions which are taking over the name Linux. As I said, I have no problem with different distributions, it's fine and you should use the distribution of your best friend, it's completely fine. But the problem is we are not speaking with one language to the outer part of the world and I think this is not so good. We should try to come closer because finally we are on the same side. We want to provide free software and we know the reason for this and I think we should try to get over this unity somehow. And one way, this is not the final solution, but I think one way is to break the secret by advertising complete solution to these people. So coming back to the friend of mine, which was a doctor, it would be really nice if I could hand over a CD and say, well, try the CD and run your practice with it. Well, I think this dream will not be possible before 10 years. 10 years is a large time in computer business, but before it will definitely not be possible, perhaps then perhaps it will take longer. And well, in my case with the doctors is a really special field. Imagine normally you know your doctor has some money. He doesn't care about you have paying a program or so. But this is different if you come to schools. If you just come to schools, we just had a very good example in Extremadura. Every school is running Linux. If you go to Extremadura and ask 100 people about Linux, they might know because every school is running it. And so they are providing a complete solution. The solution is putting Linux on every single box in the school and this means in every classroom is one computer for two people. So not only in the computer cabinet or whatever. Once I've seen the Extremadura, I called Germany a developing country after. I've seen the schools there because if I go into the school of my son, there is one computer cabinet with 20, 25 computers and it is used once a week by the pupil. That's not very funny. And I do not want to tell you what's hardware and what's software anyway. It's running on these computers. So I mean, if we try to break the secret by providing ready solution for schools, for some enterprises, for very specific work fields, people might know Linux and might know free software and might know Debian if we manage to do it. So the next point is you want to be some missing links between upstream developer and the users. What do I mean with this?  And well, if some Debian developer is able to detect the software, he can make a package and finally the user, if he is lucky, finds the program in the 20,000 packages. The problem is sometimes that these, I call the upstream developers experts to solving certain tasks, have a lot of knowledge about the task they are doing, but they have quite frequently not enough knowledge to have a solid build system, write proper make files, use auto-make stuff, and so this is some knowledge many upstream developers do not really care. And so the upstream developers anticipates enhancement of Debian developer if he said, well, you are building a library with some compile option. What about using lib2 or something like that? So the Debian developer has a completely different view on the building of the package and how to integrate some software into a complete system. And so the work of the Debian developers is greatly appreciated normally by the upstream developer because it enhances the quality of his software and also helps to propagate it to other distributions. So we as a Debian developer give some value back to upstream. And finally, it is in my opinion a good idea to get these upstream developers closer to Debian by telling them, well, what would you like to think about becoming a Debian developer because while you are doing some good stuff and you are the best man to verify that your software really works and you know all options and so I think it's a good idea to get these upstream developers in and the same is true if you want to become interesting for your users. You provide some ready packages from upstream over Debian to the user and I have some very interesting guys working with medical software who are really, really happy that we are doing this stuff in Debian. But why should these upstream developers not work with some other distributions? Well, the first problem is the main distributors with the main commercial distributors like Red Hat and Susie care for the shareholder value and do not really care for this special application. This is fine. If it's kind of a special application from upstream, it makes a lot of work for a distributor to find, for instance, a special school management system to move to its distribution, test it, roll it out to the users and you cannot make so much money from the schools because normally they have not so much money, at least if this might appear in Germany and so it is questionable if Susie would roll out the school distribution and so the chances to do it in Debian are higher because we do not have to care about making money. We can say, well, it makes perfectly sense to do this and we try to do it and as I told you before in the round table it is a kind of doocracy principle. We think it is reasonable to do this and that and we just do it and then it works and that's why we have a good chances to be the missing link between the upstream developers and the end users. Another point I want to make is, I try to make it in Martin Medox talk with a method diversion. If you want to attract your users, you have to, you can talk to him that you are very good or this is advertising but as I said advertising does not really work for us. We have to just provide interesting techniques that the user wants to use our stuff. The acceptance of the new methods we want to provide to our users has to be based on a solid technical base. We have this and this feature and people really want to use it. If they do not want to use it, they will find something else by chance but it must be attractive by providing good techniques. What we found out in the custom distribution effort is we try to provide good ways to make packages into categories. Categories means this is a work field. For this work field you need package A, B, C, D and we put it in one category or we call it task files. I think the main point once people joined this custom distribution effort was that we started providing web pages which are just making these task files visible. Up to one year ago Debian Meet was the only custom distribution which was using a technique which was intended to work for all of them. Then I was able to convince the Debian Edu people and we found a common framework and this framework was just displaying. I will show you in the second part what we are doing and this pushed the number of CDTs which are using this technique to five and probably three or four others are on the queue to take over this technique. We have found some kind of key documentation feature and documentation is principle our only way to advertise to the users. We have good documentation, you can read it, you can see what we are doing. We have some means to promote software that builds a really complete working environment. You can browse down the list which is not the package pool of 22,000 packages but 20 packages which are really specific to your work field. We can finally realize the end user interest to install this software of the work field and we also provide means to do it with one mouse click or one up-get line or whatever. Because upstream developers are often weak in just advertising their software they just put their software on the web page and are done and the better one are using Savanna or Sourceforge but I have seen software which was provided this way. I like sailing and some pictures about sailing. I like cats, this is my cat pictures and on the very bottom of the web page was a link to medical practice management software. Well, this doesn't work, nobody will find it and so you have to care about better ways of distribution of the software. So Debian wants to help these people and provide much more simple access and to make sure that this software is not just hidden like a needle in the haystack. And CDDs are somehow, well I called it kind of a looking glass into the Debian package pool. If you are looking at the Debian package pool this is probably the user who just have read 22,000 package descriptions which are swirling around his head and he is absolutely not able to make any sense of it. Just use some logos from packages and some Gimp magic. And now comes Debian Edu and makes this. You are focusing the interest of the user exactly on the Debian Edu stuff and people notice, oh, there is something which makes me happy. Or Debian MedSize, this is our stuff. Forget the other stuff, we care about your database system or Apache stuff. This is not for you. You don't have to care about it. Just try to use the applications and do not try to install all this stuff which needs computer expert experiences and knowledge. Just click on one button, install this and you are fine. So this in principle is what we are doing in CDDs and everything of this whole slide is inside Debian. This is an important point. And the term custom Debian distribution is, I admit this is really broken because it says for somebody who hears the term custom Debian distribution is immediately clear it is something else in Debian. And when I was having talks about custom Debian distribution, Debian science or so I told them we are doing everything completely inside Debian. I told them once, twice or three times in the talk. And the first question after my talk was why are you doing some additional distribution about scientific software? Couldn't you use Debian? Well, yes, I told you but you was not hearing. And I am thinking about finding a different name. There is even a wiki page renaming custom Debian distribution to something else in more sense to make people understand immediately. If you hear a name you should know what it means or you could name it like a fancy thing but a name which implicitly say something else and it is a little bit broken. It was not my idea, sorry. So now I am coming to the technical part of the talk and how to use this CDD Dev package. Well, basically it is doing some very simple Debian control files.  The task is for instance in school mathematics, physics. So it is just the topics which are run in school or whatever. We have Debian Junior, they have games, writing. Also what is fit, which makes in Debian Junior case makes the small children able to write something. It contains some simple text processing program or something like this or games. The task is just the topic of the thing you can do with your computer. Then this task has a short description, long description. You know this is what is always inside the Debian control file. And then we have some depends. So this task depends from package ABC so you can have recommend other packages and you can have suggested packages. So this is quite simple. The CDD Dev tool now parses this task file to make sure that the package you mention as depends and recommends are really available in the Debian package pool. It might happen that the package managed from Debian because it's RC buggy or whatever and just goes out and so the CDD Dev tool just verifies that you get a really working control file. Then we have done one thing that if you specify it depends in your task file. We turn it into recommends and the idea was you should be able to reinstall the meta package because well some people do not want to have this resulting meta package and recommends are installed by default anyway and so we are discussing about this but in principle you should not wonder about what depends and up and recommends. This makes sense. The packages which are not available in main will be turned into suggests. That means if you have non-free packages mentioned as recommends or depends you don't have to check the CDD Dev tool just realizes this is not in main so we just suggest it. It is perfectly able to install the meta package and suggest are just ignored or you can install them with well yeah if you are using Synaptic or so just click on install suggests it is just to make sure the resulting meta package can in any case be included in Devian main. This is the main idea why we turn the non-existing packages in suggests and you can even mention packages that are not even included in Devian itself. I will come back to this later if I will talk about prospective packages part. So CDD Dev tries to create a proper Devian control file to build this meta packages and in addition to this task cell control file is generated this is heavily used by the Devian ADU people which install which are using some installer who is just presenting the user with the Devian ADU task cell file because if a user is installing Devian he gets a do you want a desktop and an email or whatever this makes no sense for specific use. The specific user knows that he wants to want a machine which is should be running in the computer lab in the school or in a medical practice and he wants to have the specific task so this task cell file is also generated by CDD Dev. So then we have some web tools to make sure that the information in the meta packages is easily accessible for people who are not just installing just want to have a look at it and Devian made has developed several web tools which are taken over to the other custom distribution as well for instance there is a so called Bucks Overview there is a link to the Devian translation Devian description translation project these people are just having a small metering in the micro scene they could tell you more about this then we are doing some QA features which means I do not think that the custom distribution is only about packaging software I think we should form a team which really cares about this software we have no image but I think it will show up later and I can keep on talking, is this okay? That's okay so we are making some QA stuff in the custom devian distribution feature because building a distribution is not only building packages but it is just caring for your users and if the user has broken packages or if the quality of the package is not as we expect the user becomes frustrated so we try to build really good teams and then we manage the QA status and we are using the really nice QA features which were presented yesterday by Tincho Tincho also had this devian midfuel and I was happy that he liked it and finally we have this task overview and I managed to make this task overview available to all other devian distributions and it's no little bit of shame that I cannot really continue without the screen because I wanted to present something it's my laptop at least provided in the stream it is streamed what I'm saying so if people have it in their screen I just continue for custom devian distribution it's working, it's coming in so this is great, thank you for the technical people and I've just re-initialized oh yes, great, thank you so this bug overview just looks at the task files I mentioned, looks for the dependencies looks for the bugs, all these dependent packages are showing I'm sorry, I just used a German local just to make sure you see that it's localized this bug overview, it's not too because I forgot it, we have this localized page and you are looking at devian mid bug overview so this is a few or four medical images and this is one bug and this bug overview has a color scheme which makes sure that the release critical bugs are colored red the yellow and greenish ones are not so important bugs and the blue are wishlist bugs you see, it is a translation bug in the SQL app stuff and so I can show you online later on if you want then for the deviant description translation project if you say we care for our users it doesn't mean we care for our English speaking users it means we care for all users and especially if you come to real end users in a clinic, for instance I think if you go here in a hospital in modelplata and would like to find a body of the stuff who is able to understand a single description in English of our packages you get some money from me I don't think I have money I don't think you find anybody we try to care about the translation of all this stuff you see yourself in some descriptions we have this overview only for some languages in principle we could add more but it makes no sense to make a list with only red crosses we try to find out the languages which are quite good translated so here the Brazilians do very well the Spanish and the German are also well these have so many red crosses because they are normally well translated probably it is the special field which is not so good translated and the Italian guys have to do some work so this is the overview of the Description Translation Project and you could click on this special packages if you want to translate if you have an easy way or you should have, we are working on this this is a few you can see this is another example from the Debian Mids Project and you see that these three translations are translated and the Italian one is emitting and you find a link if you can speak Italian language and want to provide some translations, you can do it so this is what I understand with doing custom distribution stuff not only building packages, care for your users make sure they understand what you are doing so then we are watching upstream this is a part of this QA the stuff you find in the qa.packages.debian.org stuff we just put a different layout on it and we cared for showing up all the packages we care this is also an example from Debian Mids because it is not yet ported for the other CDTs I am just working on it and so you see for which of the packages are new upstream versions available so you have a very easy overview of what this set of packages you are really interested in and you can also see which other features of the QA work is interesting for your very specific package set and finally we have so called prospective packages this is to do list that means the following if there is a WNPP bug ITP or something which is interesting for us we just use the package file as the main source of information and just put these items into the task file it depends on the not yet existing package home page responsible it is interesting to know who actually issued this ITP bug because sometimes this person just vanished so you can ask are you interested so then the license, the number of the bug and if there is an unofficial package you can put the URL because the user might be interested to install the unofficial package perhaps there is an external repository not yet included in Debian this depends goes in the list of suggested packages and if the user on his machine just adds an additional source line he just can install this unofficial package so this is an additional feature this is a package description the effect of putting this I think this is not so good scaled I just use Debian science stuff because can you see this better this actually this task pages are ported to to all the TDDs it is very easy to you just need to create task files you get the green ones are the packages we have in Debian so if I browse down we have a lot of astronomy related packages was you aware of this? so this is a problem you have get an easy overview of what is really in Debian with a special working field and now we come to the yellow section this are experimental or unofficial Debian packages that means there are any Debian packages out there or there is some packaging stuff in a repository or whatever and these one are listed here I don't know if the projector makes it's really good yellowish green is above and the below is yellow and the red ones this is a real to do list we have an WNPP bug but it is not so there is no official package available and there is some work to do and this is just listed to make the users aware if you see it on your screen this is better on the webpage if the user sees the green ones packages are in Debian well it's fine I can use them the yellow ones I have good chances to install on my machine and these people are really working they are working on this stuff and they are showing what work is done and it also makes sure for the CDD people that they do not forget if you are if there are more ITP bugs which are solved by an upload of a package or which are solved by just removing it from WNPP because nobody cares anymore and so this list makes sure that the package will not be forgotten so this is our task pages and these task pages finally convinced several people to take over this technique the Debian Junior people had some issues why we do not want this task files built this way and that way and why should we use it and now they are using it as well so here are the this is what I showed you online so coming to the end my plan is well it was on my tool list for Debcon I will finally do it I want to do some further enhancement to these task pages to make it some more it is my last slide thank you I have got some additional minutes it is the last slide anyway so I want to do some further enhancement to this task page this is fine web stuff which was done by one of our Debian made crew available for other CDDs it is just some factorization putting some variables where Debian made was formally and changing some URLs so this is probably quite cheap to make available for all CDDs and I also want to bring back external projects to the Debian community by providing these tools so we have several people and we have seen them in the round table for instance in Munich people if they think well this is a cool tool to show our administration that if we join closely to Debian then perhaps it makes life easier to join Debian to make the focus that your special task is really interesting for us and we want to care for it and so I really hope that we will have success to people who derive from Debian but might come back and if you wonder whether you find these slides you will find them after my talk I just didn't link to this but normally you find all my talks also the old talks and you can feel free to ask some questions no questions? I don't mean that you didn't understood me or I explained everything so good that you perfectly understood perhaps just a comment what I started to see is a lot more people are producing bug overviews for different things and duplicating a lot of work that should really be done in a centralized location one thing that would be nice is instead of people making more bug overviews if they started working with me and the rest of the DebBugs team to make those overviews available because there is nothing inherent that is possible to do so that is something that instead of duplicating work would be better spent doing it at once centralized yes there is a very good hint and I wanted to come back to you once I am there this David Palaino is a very great guy he was very fast doing things and I hope in the process when I want to generalize this which duplicates at less as possible so we just want to have this specific few and this specific package and if there is a solution which makes this brain that easy then I will talk to you just to make it really obvious you can do it now it will be a long URL but you can list every single package that you are interested in and a single query and it will show you only those bugs in those packages so in a single tiny dot url you would have that exactly so we definitely want to avoid making more and more stuff it is just to get this set it is our interest and provide all the bugs and if it is easy to use with the BTS I am very happy about this some more questions so there is no point in waiting any longer I got the red light from there Andres it is documented in your article that if you obtain the complete Dabin GNU Linux distribution you have all available custom Dabin distribution included is that works for the install process I don't know if it is possible to have a custom Dabin installer for a CDD I don't know if you consider that should be the same Dabin installer inside Dabin or if I change something the installer like the images banner or some splash in these Linux you are scratching on the definition issue of custom Dabin distribution in principle in my opinion it should be possible if you are creating your CDD installer you just switch to the build process and this build process cares for just turning one single switch to install Dabin Edo or Dabin Brazilian to make sure that this installation medium must install this CDD this should be the ideal goal we could probably could make some tweaks or whatever and I do not know if it is really possible but the goal is to change as less as possible in Dabin and if you think it is not possible for you to make this installer this way and make this installer it is tiny bit different with a different image but you could even put your splash image in a package in Dabin which is needed to build your installer at least this is my idea if you disagree plus tell me anybody else? thank you very much for your attention