Good afternoon to all of you, we have reached towards the end of the workshop and this is the life question answer session. However, we will be in touch through Moodle at least for the next one year and we hope to get many more questions through Moodle. One question which was asked earlier let me answer that which had postponed as I had not completed the topic on Neostok equation the question was difference between a segregated solver and a coupled solver. Now as whatever was taught here in this course is you can consider it as a segregated solver where we solve an equation at a time and this is what is used on what we call as fully incompressible and weakly compressible flow problems. For highly compressible flow problems density based formulations are used which are solved in a coupled manner. If you have any questions please ask. Sir the question is regarding the grid transformation which you today explained. Now when we transform the grid and the it is changes from physical to the computational plane the governing equation of continuity momentum and energy do they also get transformed or not? The question is in today morning in grid generation I had mentioned that for the purpose of grid generation we are transforming to make the procedure easy it is just that we are defining a hypothetical plane which we are calling it as a computational domain and obtaining the grid in the physical domain. Now the question is this is as far as generation of grid is concerned now whether we transform the fluid mechanics equations also. Now there are two part of this now there are two answer up to this question earlier people when they used to solve by finite difference method they used to transform the governing equations also. But nowadays when people are solving by finite volume method then they do not transform. So the same governing equation the finite volume method which has been discussed here is used without any modification. So there is no change in the equation it is just that we get coordinate of the vertices of the control volume from the grid generation procedure then we forgot about that transformation in the solution methodology thank you. When it comes to UG program CFD subject would like to suggest some books and the syllabus content the question is when it comes to the undergraduate computational fluid dynamics course whether we would like to suggest some syllabus. If you want a suggestion in fact Tyrone Professor Poranik had done this exercise for here and when we were proposing full CFD course we were thought about it. So maybe we can put that syllabus jointly from our side in the model. Professor Poranik will add to it. Let me quickly add to this actually I think if you go through the entire set of slides that we have covered here if you focus only on the finite volume part and perhaps a little bit on the initial governing differential equations of fluid mechanics etc. those two put together in a very methodical fashion can constitute a really good undergraduate CFD class. In fact the CFD class that we offer here which is typically for final year undergraduates and first year post graduates is more or less based on the finite volume part that Professor Sharma has covered with a little bit of addition from here and there. So in that sense maybe you can use that as a framework and you can actually design your own course based on that. That is what my suggestion would be at least thank you. Sir one more question here when we are conducted a lab sessions there we observed negative Grashev number how we can interpret this one sir. So the question is that in lab session we had given a negative Grashev number. So let me open the slide corresponding to that let me show you the problem and then discuss it. When the Grashev number changes direction it is a positive to negative sign then there is change in the direction of the buoyancy force. So let me show you the problem and then discuss that I think we had discussed it we had given that problem for force mixed convection. So in this case if the Grashev number is positive then the top plate is hot as compared to the bottom plate and then the hot fluid remains close to the top wall and vice versa when it becomes negative then the buoyancy induced flow is upward. So there is more rigorous flow circulation when it becomes negative as compared to when it is positive thank you. So it is just that when changes sign the direction of buoyancy forces change. Thank you sir over to you. Amritsha school Bangalore. Yes sir I have two questions first one is you told the need of staggered grid with some particular term. So this term making the necessity of staggered grid and remedy is staggered grid. So I need once again the explanations and second question is you told about semi implicit simple algorithm semi implicit technique and again in that one particular expression making semi implicit. So that can be make it as a full implicit as you are telling. So I need some more explanation on that particular expression sir. And the last question is we come across always the dilemma of using whether photon coding or C coding or C++ and some people will tell this object oriented programming is much more helpful. So I need your opinion in that sort of. There are three questions the first question is on the need for staggered grid on that mentioned but further clarification on that. I had mentioned the term which is used which causes the need for staggering of grid the problem is which I termed as pressure velocity decoupling. Now what is this pressure velocity decoupling let me try to explain in slightly different way although I had explained it many times. Let us suppose this pressure force when we calculate at the phases of the control volume right now I am showing you pressure force in the x direction and this comes in which momentum equation x momentum equation. Now this x momentum equation is an equation to calculate the u velocity. So when you are calculating u velocity if you use linear interpolation to calculate pressure at the phase centers then you end up with an expression that to calculate velocity of node P you are having an expression which involves alternate neighbors which does not involve pressure of the same grid point. So to calculate velocity of this grid point you are the algebraic equation is not using pressure of the same grid point. There is a breakage in communication of velocity and pressure of the same grid point and this is what is called as pressure velocity decoupling and which results which could result in a flow field which has zigzag pressure and wavy number distribution which will indeed be obeying the mass conservation and momentum conservation. But you can very easily see that this number distribution is not cannot represent the real flow field. Thank you. This is the first question. Now the second question is on semi implicit method. I had mentioned there is one step which makes the method semi implicit otherwise it is a fully implicit method. Now let me go to that step this is that step. Now what happens before this step everything was going on fully implicit. Now what is this equation? Let us look into this equation. This equation is velocity correction as a function velocity correction at a node P as a function of velocity correction of the neighboring nodes. Now let us look into what is the equation for velocity correction. This is the equation u star minus u n this is the equation for velocity correction. Now this involves its own neighbor like when you write it for u w it will not only involve neighbor P but it involve other w also. So each neighboring velocity correction involves its own neighbor and neighboring so that way this equation is such that the sparseness of the coefficient matrix is broken like if there are 25 yellow circles then you get 25 equation and each equation there are 25 unknowns and in this case if you follow an iterative method it will be a very costly affair and in computational fluid dynamics as you know that the approximations which we are using we have to take a very small control volume. So to avoid that this issue this term is dropped that is the velocity correction of the neighboring grid point is dropped by dropping this we are considering this as negligible. So this term becomes approximately equal to the second term as shown here and that is why due to this assumption that the neighboring velocity corrections are taken as 0 this method is termed as semi-implicit. Now the third question is a more general question about the suggestion on the programming language although in fact the way we had worked is that as you know earlier photon was quite popular as far as the CFD programming is concerned with the advent of object oriented programming now C has become C C++ have become more popular because another reason which we see is that if you want to develop a graphical user interface if you really want to you build your own CFD softwares then these languages are much more powerful. So nowadays we have also started working using object oriented programming and that is what is being commonly used. So I would suggest the usage of C or C++ for the CFD programming thank you. I have one more question like when you come to this computational heat convection I think your lecture so we had a problem where we were looking at the pestlet number if we take a like a very high velocity flow and this pestlet number being huge very large like it is around 200 or 150 like that in that case your advection diffusion term actually will I think will slowly rise actually I think towards as we move towards the like the end of the maybe the length as we go by the length wise actually whatever it may be my question is like if this particular thing is there then how your diffusion term all those things how we can relate our solution that numerical solution in that case. So the question is on when it is a convection dominate or advection dominated flows how we can correlate the solution or how what is the role of diffusion actually it is something like this that we are just having we are having conservation law where let us suppose it is like a plus b is equals to c plus d well let us say a is the unsteady term b is the advection term c is the diffusion term and let us say d is the source term. So it happens so that when it is an advection dominated flow b is very large as compared to c so that way you can get an idea you can also get an idea that as far as the as you know I had taken an example of ice and fire to discuss the advection phenomena. So when it is a heat transfer problem and it is a advection dominated and actually in a multi dimensional situation in a one dimensional situation you can get a feel and you can correlate however in a multi dimensional situation it is not only advection diffusion but there are other terms also which pressure plays a very important role. So in a when you are solving full fluid flow problem unless you analyze in detail this term the solutions which you get many a times it is difficult to and anyway you when you do a simulation there is a particular Reynolds number which you decide as a governing parameter and based on its magnitude a priori you have an idea about the relative strength of the advection and diffusion. So the answer is when you look into the answer look into the results if you want to do a detailed surgery of advection and diffusion maybe you have to take a control volume and then do a detailed analysis. Excuse me sir I need last one clarification connected to semi implicit technique that when we neglect neighbor points as you suggested by removing neighbor points so if it is going to become semi implicit then the particular point where we are doing the analysis is not influenced by neighbor points. So then solution I think convergence it may take more time and rather than how solution will be accurate. I agree with you you are right that when you are neglect the velocity correction of the neighboring grid point the pressure actually when we staggered the grid it is true that to calculate velocity at the particular grid point the pressure of that grid point is although not involved but at the phase the pressure difference which is involved is the driving force. So rather than alternate pressure to a decent grid point pressures are involved into the expressions so and this has been found numerically also to work well and there is no problem as far as the result is concerned and this method is quite popular and no such problem has been found earlier. Why Prisa Puranic will add to it? Yeah your observation is correct I think the convergence will definitely go down that is the rate of convergence because you are using an approximate relation by making the method semi implicit I think that is absolutely correct. I think as far as I remember if you keep those terms which you are dropping to make it semi implicit then it essentially becomes a matrix inversion type problem which becomes computationally enormous and in order to avoid that computational cost this sort of an approximation is involved and the iterative technique will slowly keep on improving the solution to eventually the correct solution but yeah I think there is a price to pay in the sense that the convergence could be slow but then you avoid extremely large computational cost I think that is my understanding of this. Thank you. Sir for a transient problem for a transient problem when explicit method is used which is preferable whether it is iterative time advancement or non-iterative and why what is the reason and that is my first question. Second question is when we are assigning initial guess to which node we assign is it for the next node or what exactly that is that I am not clear and my third question is pressure velocity coupling that you have shown in topic number 7 and slide number 10 that is clear sir but how that is being coupled with temperature is not clear I request you to explain again. Sir my next question is when under relaxations and convergence I could able to understand that one its effect on accuracy I am not clear and my next question is while doing CFD analysis what is the acceptable percentage error when comparing with experimental results. There are five questions the first question is when using explicit method whether one should use an iterative method or a non-iterative method explicit method is a time marching is used for unsteady state in an unsteady state formulation. Now in an unsteady state formulation the nature of explicit equation is such that if there are 25 interior nodes you get 25 equations and in each equation there is only one unknown. So there is no iteration needed to solve the linear algebraic equations at each time step in explicit method so there is no question of iteration in explicit method although time marching needs to be done to reach to steady state. Then the second question is regarding the initial guess what is initial guess and the clarity on that actually this initial guess is needed if you are using a unsteady state formulation sorry if you are using a steady state formulation similar word we use in an unsteady state formulation which we call as initial condition. So note that in unsteady state problem we march time by time in a steady state formulation we march iteration by iteration in both the type of formulation when we are solving for a particular time step in unsteady formulation and when we are solving a particular iteration in a steady state formulation the way we solve is that we take the value of previous time step in case of unsteady state formulation and previous iteration for steady state formulation. So initial guess is the value of the interior nodes which we take in a steady state formulation when we start the simulation. Now the third question is pressure velocity decoupling how this is related with temperature calculation this concept of pressure velocity decoupling is completely for the fluid flow once you have got the correct velocities then it does not matter so the temperature is not related with pressure velocity decoupling problem it is just that once you are able to get the correct velocity field you just have to solve an unsteady advection diffusion equation which is an energy equation. Now the fourth question is under relaxation and convergence and its effect on accuracy under relaxation like in a unsteady state formulation under relaxation is needed in case of solution of pressure Poisson equation and as far as the role of relaxation parameter on the accuracy is concerned it is just that using under relaxation you are slowing down the change in the value of the variables but we indeed get accurate solutions. So whether in a problem if you use smaller under relaxation or a larger interesting if you are getting results you should get same result so there is no effect on accuracy if you are getting a convert solution with two different values of under relaxation parameter both should be almost same. Now the last question is what is the acceptable percentage error while comparing the CFD simulations with experimental results now the answer to this question is depends on which problem you are solving because you cannot expect the same order of expression same value of expression like just to give an example if you are doing a laminar flow computation it is expected that the mathematical model for laminar flow is accurate enough so it is expected that for laminar flow numerical and experimental results should match within 5%. If you are solving some other problem let us say multi-fuse flow problem in which mathematical models are not well yet established so in those cases even a percentage error as high as 15 to 20% are considered acceptable so it depends upon the problem and you need to understand and know how good is the mathematical model with which you are solving the CFD problem. Thank you sir I have got one or two questions number 1 topic 6 slide number 29 because in that figure the stresses are shown away from the faces okay so the question is that here the normal stress are shown one acting in the positive x direction and one acting in the negative x direction is this a question. So I think the question is on the direction of the this stresses which has been used this directions are making basically taken from what we study in as Professor Puranic has also mentioned in solid mechanics that on the positive faces the stress acting in the positive direction is considered as positive and on the negative faces this stress is acting on the negative direction is considered as positive so that is the convention which is being followed here. Thank you okay sir next one if we have got a comparative result so we know the diameter of the impeller feed and fluid property now if we want to know the velocity distribution of the fluid of the velocity driven within the fluid so what sort of equations we could apply the question is that if we know the fluid properties what should the what type of equations we should apply is this a question and I know the speed of the stirrer I know the dimension I know all the properties of the fluid and when it is rotating at a given speed how to find out the velocity distribution within the fluid contained in the vessel. So the question is that there is a application which is being said where there is a stirrer this is the moving boundary problem where there is a fluid structure interaction so indeed the equations are same which has been discussed here those are corresponding to law of conservation mass momentum and energy this same equations are applied there also. However what will happen is that let us suppose if you have a stirrer then you are as this problem is called as moving boundary problem and the region in which you have a fluid as your stirrer is moving will vary so moving mesh dynamic mesh generation is used or nowadays Cartesian grid method is also used to solve such problems because in that case one of the challenge is to apply the interfacial boundary condition between the moving solid and fluid. Sir the last question these is respective question that was posed by participant yesterday that is the transportation of a flurry so flurry is considered as a Bingham plastic for which the real logical model is tau v is equal to tau 0 plus mu into du by dy so if we have got that sort of fluid because the Navo-Stokes equation to those things could not be applied so in that case how do we handle that type of problems. So the now question is on a Bingham plastic fluid taking a specific case of a slurry so in this case I agree that the Navo-Stokes which we have shown here is indeed applicable but it is just that now it has to be it will be a having we have used a Newton's law viscosity for an incompressible fluid in that case we have to do the same thing for a non-Newtonian fluids which is studied mainly by the let us say chemical engineers but the same conservation laws are applicable but the constitutive relationships are different so I have two questions so one is related to transition zone so that is when the flow is changing from laminar to turbulent so in that particular region how to analyze the flow field so because we will not be knowing a definite Reynolds number so how we can encounter this problem and solve and that is one the second one is when we come across with the multi phase flow or two phase flow how to analyze I will be happy to answer your second question two phase flow because we are nowadays working on code development for multi phase flow so in a multi phase flow so let me answer first your second question so in a multi phase flow the mathematical model are in there different types of multi phase flow you have one case let us say liquid liquid flow you have a liquid gas flow you have a solid liquid flows which are called as granular flows and when you look into the numerical methodology you will see different types of numerical methodology for multi phase flow and in many problems the mathematical models are not well established and the level of accuracy with which you can predict numerical simulation results are also not that good as compared to the laminar flow so in a two phase flow extending whatever has been taught here as I always try to give you a feel saying that here we try to create a movie of the when it's a single phase flow you want to understand the characteristics of the flow so you want to create let us say movie of velocity pressures and temperature now when it's a multi phase flow one of the let us say dynamics which you want to capture other than the fluid dynamics is what is called as interface dynamics what so to capture the interface dynamics you want to create let us say movie of interface so to create a movie of interface first important thing is what variable should be used to represent the interface like flow is represented by velocities pressures and temperature similarly we need a term to represent the interface so this is one thing secondly once you have represented the interface then you need to come up with a mathematical model to capture the temporal rate of change of interface so first representation second mathematical model to capture the temporal evolution of the interface ok once you are done with these two things then actually the interface motion is coupled with the flow it so happens that the interface is like a massless particle and it nature of variation is such that it's like a pure advection so from fluid flow whatever flow field we capture whichever flow is hitting the interface it just is carried along with that interface and we solve an advection equation to capture the temporal evolutions of interface what I am talking of right now is for used in let us say volume of fluid method or a level set method or the combination of the method which is called as combined level set volume of fluid method and this method is more popular in a separated flow situation you need to use two fluid model in case of when you have a too many interfaces and for solid gas flow solid liquid flows we have to use discrete element method which is a Lagrangian method so there are different methods for different class of problems in multi-phase flow and your first problem is that when there is a flow transition how to solve it one of the big questions which comes to our mind is that whether to solve this by laminar formulation or by turbulent flow formulation what turbulence modeling when you are close to transition normally if you look into the published literature people use the laminar equations because you can even solve the turbulent equation turbulent fluid flow with laminar equations but you need to find a grid whereas if you are in the transition region regime you need you do not need that much fine grid so for transition region you can very well use laminar formulation without too much of computational cost without too many without the need for too many grid points and get an accurate solution thank you. In the special topic on computational heat conduction you have explained that the tangential heat flux at the node j, i max minus 1 is equal to tangential heat flux at the node j, 1 that day night I worked in my home I have come with the equivalent result that temperature at the node j, i max is equal to temperature at the node j, 2 for the same condition is it am I right? Yes, yes, yes you are absolutely right you are using a boundary condition which is called as a periodic boundary condition let me put the question so the question is on slide number 8 here I had given a pseudo code to calculate the heat flux and what is being suggested is that alternatively what you can do is that you can use a periodic boundary condition for the temperature where you can have a fictitious node here and the value of the temperature at this fictitious node you use a boundary condition is equal to the last real cell value and you can have a layer of fictitious cell here which will be the east neighbor for this grid point whose value you will take from the first real cell this is what is called as a periodic boundary condition and I think you are talking about it indeed this will give you the same result thank you. So I carry the same that is a result to the finite difference technique where I am analyzing with respect to pressure distribution there also I am encountering the same periodic boundary condition problem can I use this result that the pressure at the i max is equal to pressure at 2. Yes, yes, yes, yes. Sir, Dr. Puranik sir, when I synthesize the matter that I have learnt from your topics on differential equations and finite difference equation if you take a physical domain and then if you discretize into a number of subdomains for example for a rectangular 2D domain we draw a number of horizontal and vertical lines and we place grid points at the intersection of these lines these grid points and our second order partial differentials at these grid points. If you consider the matter that has been thought in differential equations, I think but the differential control volume having dimensions of del f del y and del z hence can I make a synthesis that the grid points which we plot on a computational domain is that macroscopic or representing the differential control volume macroscopically. Yeah, so the. Once during the application of conservation loss to that differential control volume and second during the process of finding field variables at individual grid points with the with respect to the value at the neighboring grid points. Yeah, so the question is about putting into perspective this entire finite difference or perhaps even you can say finite volume technique as well with respect to how we can interpret that as mimicking the fluid flow governing equations. Actually whatever you have observed and pointed out is very correct. What you can imagine that or interpret is that the grid points where you calculate the solution numerically can be indeed considered to be infinitesimal control volumes which are which are shrunk to a very very small size and in that sense you can imagine the grid points to be on a per unit volume basis giving you the solution. The other point that you are trying to convey is that we seem to be using the Taylor series expansion twice in the sense that once when we derived our governing equations in the fluid mechanics part we utilized the Taylor series expansion and now when we are using the finite difference technique we again seem to be implementing the Taylor series expansion and that also is absolutely correct. Here at least let me try to give you the perspective from my understanding when you derive the governing equations in differential form in fluid mechanics the first order Taylor series expansion that you employ is indeed on a real infinitesimal length. So the delta x and delta y and delta z that you think about and utilize during the course of the derivation of the equations in my opinion would be really really very small so that the variation of the property that you are looking at over a distance delta x is happening over extremely small distances in the physical domain whereas the Taylor series expansion that you employ in the case of finding out approximations in finite differencing and the delta x s and delta y is that you use in the finite difference equations those are actually much larger than the delta x s and delta y that you have utilized when you came the when you when you derived the governing equations. So your observation is absolutely right is just that we need to perhaps keep in perspective that when we derived the equations the delta x s and delta y is were really infinitesimal meaning tending to very very small values whereas in case of finite differencing we are actually utilizing a much larger value of delta x and delta y otherwise we are doing the same process namely we will use the Taylor series expansion. Let me go ahead and add again something that I can consider a little bit of any perspective in this situation even though you use let us say a first order formulation in both the governing equations as well as for a finite differencing you will see that the finite difference solutions are going to be more approximate than the actual solutions let us say if they exist and the reason is again to me at least is that the discretization lengths delta x s and delta y that you are using in the finite difference formulation are much much larger than what you have imagined to be using in the case of governing differential equations hopefully that answers your question. Thank you. Hello sir in case of in most of the books K epsilon turbulence model has been explained at the end of the books sir can you explain brief about this sir. The question is about the K epsilon turbulence model which we had not discussed here however I would like to point out that in case of turbulent flow this K epsilon model which is quite popular basically you have a transport equations which is also an unsteady advection diffusion equation with a source term so there is one equation for K and there is another equation for epsilon. So you have two different equations which is also an unsteady advection diffusion equation and they are solved using the procedure which has been discussed here. So the same finite volume method which is used here is used in discretization of those and solution of those. Once you have obtained K and epsilon then turbulent diffusivity is calculated through an equation. Thank you. Let me just add to that so the K which is the turbulent kinetic energy and epsilon which is the dissipation those terms and their governing equations which are essentially what professor Sharma said are the advection diffusion equation. They require actually sufficient understanding of the turbulent flow mechanism before you can actually go ahead and derive those. It is way beyond the scope of this present class to talk about turbulent flows and in particular the turbulence modeling. However when we put up a list of reference books hopefully by tomorrow on the Moodle we will include a few which will deal with this kind of derivations and discussion about those so that you can refer to those. Thank you. Sir there is one more question. Is it necessary to have experimental validation for every CFD problem? Question is is it necessary to have experimental validation for every CFD problem? If you had asked this question maybe 10 years back the answer was yes but now CFD has got lot of confidence and even if you validate with a good numerical results it is not necessary to have an experimental validation. Thank you. Can I do varangal? There has been a problem on moving source term in a 2D conduction problem. Can you throw some light on how to model such problems? How to implement the code details? The question is towards the end of today's lecture I had taken a topic on grid generation and I had shown you an animation for moving source and I had told that there is a method which is becoming quite popular. In fact there are some software companies who had come up with this method and there are some well established companies who are trying to implement this method. Unfortunately that slide is not there but that is called as adaptive multilevel grid generation. I had not discussed the methodology, how we solve the atmospheric equation. I had just shown you the grid generation. However, if you are interested I will be happy to share some literature where that method has been discussed. This method has been quite popular in compressible flow and is becoming popular for nowadays becoming popular in incompressible flow due to problem of mesh generation for moving boundary problem after every time step. So what the question is it needs lot of I need to discuss the method which is quite involved. I can just show you the reference but at this moment it will be difficult to discuss in total. Thank you. Sir where do you find such problems in real time applications? That moving source problem which we had done is basically a test problem. So that was not a practical problem which we had done. We had developed the method and we wanted to test that method. So we took that problem and that problem you can call it as a hypothetical problem but it is a very good test problem. Let me add quickly to that. If you are referring to a moving heat source type of a problem one application that can be thought of is usually an electronic chip such as a computer processor. So what happens in a computer processor is that at different instance at different regions on the chip are actually generating power depending on how the data is moving etc. So that is from a thermal point of view it is like a problem of a moving heat source in a substrate or in a medium. So that is one example. Thanks. Next to you Hyderabad. That is mentioned in the lab session 5. It is mentioned that the product of Reynolds and Trandall is equal to 1 for the natural convective heat transfer. Can you please elaborate on that statement. How the, I guess the product of Reynolds and Trandall is Trandall number which represents the relative dominance of convection to diffusion, kindly elaborate on that. Yeah, the question is on the lab session there was a problem on natural convection and in fact I discussed that problem today morning in that non-dimensionalization I had shown that Reynolds number into Pectlite number sorry Reynolds number into Prandtl number which is called as Pectlite number comes out as a unity. In fact if you look into the way we have done non-dimensionalization where we have defined the characteristic velocity in case of natural convection as alpha by L. So if you take if you do a non-dimensional if you start from a dimensional form and see the non-dimensional form you will realize that indeed Reynolds number into Prandtl number comes out to be unity. So you need to work on I am exactly right now not remembering but I had worked on it and found that this for this type of non-dimensional representation it comes out to be unity thank you. The physical significance of Pectlite number is equals to 1 the Pectlite number is in a natural convection it comes in energy equation itself 1 upon Pectlite number represents a diffusion coefficient. So I understand that if you try to write now in this case what happens is that the diffusion coefficient is coming out as a non-dimensional form of the diffusion coefficient is coming out as unity. So I can understand that having a diffusion coefficient unity where you do not have a control over the diffusion coefficient it does not happen quite often but in this case as we had a situation where we do not have a characteristic velocity and this was a closed cavity problem. So we had to take the non-dimensional in this way and this does not have much physical sense as far as unit value is concerned. Thank you sir. Over to you. Right now it is 3.35 so we will break for C session.


Welcome to the SNAP! This is a segment where we answer frequently asked questions and provide helpful tips and tricks in a very rapid-fire format, so let's get right into it! In this episode, we'll review how to use the DynaVap wand adapter with the iSpyre wand and DynaVap vaporizer. The DynaVap wand adapter is a flexible, high-temperature, silicone heating assistant designed exclusively for the iSpyre and DynaVap devices. To use, insert the adapter into the bottom of the iSpyre wand. You can adjust the depth of the adapter up or down to have more control over heating temperature. The lower the cap sits within the adapter, the hotter the hit. This adapter also works with the armored cap. And this has been the SNAP! I hope now you know how to use this brand new DynaVap iSpyre adapter. Thanks for watching! Make sure that you check out the other videos on our YouTube channel.


right 109 calls right today they're coming to the 112 calls guys watch Amazon for tomorrow this thing is literally you know it could be a day away from getting involved welcome to access a trader the number one community for those who are committed to taking control of their trading in order to achieve success profitability and longevity thank you for joining us here's Dan Shapiro to help you find your edge master your process and own your future hey guys good evening everybody welcome to another edition of the access of trader.com nightly update show happy Wednesday hope everybody had a good trading day if you are branding to channel please like subscribe share tell a friend we are trying to push through the unbiased technical analysis movement and I think the day-to-day basis works very very for a lot of traders kind of you know simplifying the way you look at the market into a small universe instead of having mass opinions what you think is going to happen in a certain time frame so let's talk about it right so yesterday the market had a really good organic rest right we had this big big move up on the queues for the last several days the day before CPI you know it was very very methodical not a lot of expansion because again it's very understandable if people probably are not making any bets until they see the inflation numbers core CPI came out this morning and this is the first time in two years it fell below 5% they'll get excited 4.9% but again baby steps Rowan wasn't built in a day the initial spike very very aggressive you could see the pre-market spike very very aggressive and then it came in pretty more aggressive and then the spike back aggressive so the one crazy part about this tape and it again you could you can make the you can at least see it like I've always maintained the idea of the scoreboard is a scoreboard the scoreboard is telling you where where it yearly highs where it yearly highs I'm okay the way it got there so I do see a lot of frustration though from especially a lot of perma bears that how is this market with all this aggression especially intraday that's being pulled how can this market feel so good for certain people but again the scoreboard is the scoreboard right now we are at yearly highs we came in today with the cues up more than 21% for the year and it is what it is I think the the narrative of the market is only being pushed up by five stocks you know I think you could put that to bed of course the markets are going to go straight straight up and again we've seen some technical damage in a lot of areas even from February but yet we find ourselves back at highs again it doesn't make a difference how you feel about it what your opinion is again the scoreboard is the scoreboard the Nasdaq today price improved on anything the only reason why it stopped going higher because it hit the Bollinger ban at 326 we talked about all these prices on the weekend video that it needed to get above that 324 level if you guys remember on the spies right we talked about the spies that it needed to get above 314 that's where it got rejected that's the one aspect of the market that's still seeing the disconnection if you saw the banks today they started getting weaker like a name for example like key corp right key corp had this really disgusting move down phenomenal move overnight this is the lowest close in the five day formation again you see a lot of charts look like this look at a name for example like h-band as well you're kind of starting to see the same thing so the fact that the Nasdaq is you know putting in such aggressive rallies despite now this is now going three four days despite the continuation of weakness in especially the regionals really does show you how strong the tape is obviously again every single day that can change and the banks could rally in the queues members of the Nasdaq 100 get slaughtered and you know it's all part of the game but as of right now that's exactly what's going on you you got after the close you had you know numbers come out on disney not a you know not a huge reaction but down you know down 2% and then nothing crazy but down you know down 2% so and now is obviously the big loser after the close down over 20% today we had the google ai event if you guys remember google was a pretty big bot they were pretty big buyers on google all the way through the last couple of days if you guys remember they were coming for you know the the 10s the 11s the 12s and you know the google event actually played out pretty well here's kind of the fine twice i'm just going to read them to you they they rolled out a lot of different stuff the new palm too large language model all ai of course the new ai writing tools i'm not going to go through all of them but let's see here you got the ai search bar the ai budget android phone you got a $1800 pixel folding phone hey listen the market liked it right the market liked it they threw a bunch of ai you know ai which is the hot take of of of 2023 and you know they it took a lot of names higher as well we talked about amazon last few days and they were coming for aggressive 106 107 right 109 calls right today they're coming to the 112 calls guys watch amazon for tomorrow this thing is literally you know could be a day away from getting above you know that last run into the linear regression line this thing looks really really great um you know meta you know meta i was watching meta today for continuation people watching the video for the last couple days i was waiting for them to get above the five day just like everything else in the cpi when everything spiked you know meta spiked it just went straight down that didn't even give you an opening range play which is very very odd considering that it does have a catalyst and you know really really strong earnings but again you know it is what it is uh some names that did not participate today uh tesla right i actually got long tesla above above the high from two days ago it stalled out literally one of 50 cents did nothing it was a real seller in the crowd got out of the position uh got out of the position no harm no foul and you we watch this thing get hit keep an eye on tesla for the next couple of days you guys see how the stock is just stood is getting defended here on the five day right this orange line keep an eye on this thing if this stock can't rally in the next couple of days if it eventually starts losing the five day moving average maybe this thing starts to roll over again something i want to see because the one thing i've always i've always realized and a long long time ago when the market is this aggressive and the stock is now participating that's a problem right you want to give it one shot you want to give it two shots uh but the stock is now participating that's a it's a you know it's not really uh a great uh great sign um microsoft again uh is going out of its mind we talked about amazon we talked about microsoft amazon google all these things the last couple of days have finally got above this channel here got above last week's highs and now is uh really really uh moving uh apple i think might be one day away right which it's a great consolidation just needs to get above the earnings highs hopefully in the next couple of days uh this thing uh can wake up as well and let me just give a get get you guys a couple more names to kind of watch uh for tomorrow uh oh shop uh listen that Shopify uh Spotify right so i traded Spotify also today finally got above tomorrow the thin stock finally got above the uh the earnings highs we talked about now put a nice little move but boy oh boy i really thought this thing was going to explode up 10 today of the consolidation and watch uber in the next couple of days keep an eye on uber so i know i understand uber had a big big run and yes you'd like to see it go sideways maybe for the next couple of days but eventually it starts it needs to start taking out this upper range here and when it does uh maybe this thing finally starts uh waking up as well uh still waiting for this IMGN this is like the longest uh consolidation like ever uh but eventually you know i think listen eventually this thing uh gets above the range that the recent PRs range uh this thing's going to go to so look the market is continuously to be strong uh you know is that going to change you know who knows right who knows we're not in the guessing game uh but the most important part is we're sticking to the themes the option flow the deep out of the money short term expiration whatever is is happening that is uh what is being rewarded in this tape uh a name like Shopify uh we've been talking about a potential back test right uh the other day it opened up down $1.50 it did nothing today to put an inverted hammer again i'm not talking about this thing this is the high for the stock destruction of prices but i want to watch this thing for the next day or so if it could start losing a couple of days of ranges this is strictly for a trade right don't get crazy the stock looks great if the market continues it'll probably be higher you know a couple weeks from now we're just looking for it to take an advantage of gravity plus this inverted hammer here and if it starts losing back this five-day moving average maybe it'll finally give us a you know a nice uh a nice trade to the downside because keep this in mind the stock has gone from 46 uh all the way to 66 you know what i mean so you know a couple of dollars two three dollar potential back test is not uh really the end of the world again i just want to be prepared on both sides of the market so let's talk about today's channels uh Spotify again we talked about it i you know i i traded some Spotify i went up like a dollar a dollar change nothing crazy there um tesla you know i bought tesla off the 73 80 74 area uh that was the high from two days ago like i knew there's going to be a little bit of supply coming in so it hits supply but then a reload seller came into the stock and we were watching it watching it watching and i was like hey guys if this thing doesn't move uh in the next minute or so i'll get the hell out i use break even as you stop and you know the seller just was relentless and that's kind of why i'm watching this thing and this is kind of why i'm watching this thing if it starts losing uh the five day in the next couple of days on the video had an initial thrust uh 289 73 needs to build and then the stock you know never just really recover the whole day but it took out the 89 73 went to like 291 i still like this thing over the next couple of days but i think right now it's a little bit in the middle of the range probably needs one more uh day of rest uh microsoft just a monster uh 3 10 20 needs to build we talked about microsoft consolidation this is why apple is consolidating as well got above these two candles here right you see this here right 3 3 10 20 was the high from two days ago yes this high was 3 10 once it got above the 3 10 20 it took out the previous channel so i have 3 12 went to 3 13 this thing still looks good uh on dips or into strength above today's range uh amd is just an absolute free show monster these days uh amd 96 80 needs to build here was amd went yeah basically 100 right we took out 96 80 and went right to 100 99 94 just an absolute stellar move uh there uh etnb we talked about last night 18 35 needs to build not a huge initial move but uh is stock is looking pretty good etnb broke out about 18 above 18 35 went to about 19 before it got rejected but this is definitely the highest close in this whole formation uh img and i'm still waiting it's been rejected off 14 like 68 thousand times or at least twice apple we're still waiting for that consolidation meta again we talked about we talked about meta just never gave that opening range high and ttd got rejected same area mary got rejected off the same area and that's it right that's it so you know the plan every single day is definitely be prepared you know i'm watching some potential if the market is weak tomorrow i'm definitely watching tesla if the market's weak tomorrow i'm definitely watching Shopify in case it can't rally uh and then in verne the hammer is a clue that there's a you know another day or so of back testing but at the same time man we're watching we know strong stocks in the dip microsoft google amazon these things are rock stars right now so until it stops working you got to keep working right guys everybody have a great night game five tonight nicks uh heat i will be there guaranteed guaranteed a loss for the nicks right i have to bella check or at least reverse bella check the market hopefully i could break a 20-year streak of losing home playoff games when i go guys have a great night everybody god bless as a reminder tomorrow is thursday it's my regular night off so there is no video if you are planning to join us in the live webinar please get there early tomorrow for morning strategy we discuss the morning pivots get you situated and see how the wonderful world of pivot works guys have a great night everybody god bless and i will see you all tomorrow take care


I shouldn't dude, I shouldn't but I To be honest, I think I gotta try Let's go How do I do this? How do I do this? How's it going everybody? Dots it away here back with some more dragon ball fighters ranked matches this time playing the suggested team of Napa sell and Android 16 All right, I'm focused up Let me let me just try to replicate what happened in the Saiyan saga around this area. Oh to pick low if I could Neutral Let me at him. Oh, okay. I didn't expect him to swing like that to be completely honest Nice, I definitely thought we were about to get hit there sell please hit. No, I missed it. I'm actually not too um Well, I'm not too versed with using cells as this should be a great spot for us though Counter doesn't matter though the sidemen is still on the ground So I'm gonna get this man. I'll clap him never mind Simon take the day off for all I care We are good. You know what I was gonna level three, but that didn't work out Another counter. All right, we got to watch out for that at this point We got it. We got to start considering that We should also look out for a spark if we can I would like Napa to live we might die It's a piccolo combo a lot of damage on the board here. I don't think the bar is gonna work out though Too too much damage, but it's not enough. I Am scared though. All right, we're good If he didn't block that we were definitely dead Is that a good is that a good piccolo assist? I don't know it was threatening I'll say that I can say I can confirm that it did threaten me. It had a very threatening or give me that Nice no barrier. Oh I could have confirmed off that piccolo. Oh, they hit some was pretty good It didn't actually combo though. So I shouldn't have gotten hit again. It was more of a fear tactic cooler I cannot hit this guy. I am really struggling All right, Android 17s moving against cell is on the receiving end of a lot of damage Nobody's lost the character yet, but I've definitely been switching out a whole lot more. I say I got a super dash in that situation Defense would get me out of this Defense will get you out of any tough spot. You've ever been in let me talk to him with Napa here For just one second. I just need a set if we get a character here. I actually feel like we have a strong chance of winning. Oh No, I'm gonna go for dragon rush. It was close, but I was too far. Oh We dropped nice and I should have seen wait. No, he's got it. He's got the kill I thought he I thought he would miss the super if he went for it there But the vanish was a really smart. Okay. Well, I feel like the reverse also goes He got a care. Let me get a read real quick. Can I talk to you? Let me get another one Man, that is decent. I definitely wouldn't ever I don't think I'd go for that over a any day of the week That's all can't really complain Nice It's like when a Bardock player goes with the AS is you know, it's like it's good But I mean I'm not complaining bro. It could have been worse for me So we've been forced into a situation where we're down to our last character cell Who doesn't have a ton of health left he almost does though I am getting destroyed by that assist. Maybe I got a reconsider. Let me spark.  That's crazy nice combo. I Really if I get one character, I'm feeling so much better about this Be nice. That's the one character. We need it. All right to come back starts here Now a lot of people would ask really I mean does one character really change the situation you're in But I got it. I got to say no if I'm being on Let's go it changes everything You just didn't know it until that reflect Let's go. I mean that wasn't a reflect, but I will definitely count it as such. I Don't know if this kills. I have to level three anyway, but limit break give me strength You in the earth shall perish. Let's go not anywhere near enough, but run up dragon man That is crazy. I did not expect to get stepped on not expect for him to wake up and just step on me That was I mean out of all the ways to die. That was definitely the one with the most comedic value Man just stepped on me. All right, I can appreciate it. He's running two of the three planting team And that is just kind of ate my super dash All right, so it has a decent hitbox up there as well. It actually hit see I'm used to playing Krillin I was ready to just call in the towel on that one. Oh That was supposed to be a 5h or 2h. Sorry. I mean it came out as a 5h I would have got hit anyway. The barrier was still up. I tried to delay it enough, but Areas causing problems 70. I'm gonna early spark this match No to age. Let me get it again. Then let me run it back one more time. No way Okay, I can't believe that I like they were just absolutely destroying the other characters. Oh My god, can you tell I'm panicking? Can you tell I'm panicking with these movements? I Think he's gonna jump. I couldn't follow up.  I am just bad with like I Am bad with now, but I really need that be the system to make it work Or at least just assist that um Give me that no, come on get over there. Got him That's fine. Oh, no side switch either definitely looking a little rough. We got to clean up the conversions here We're getting stray hits. We're just not doing anything with them. He was plus. Okay I thought I had the thought I had advantage on that when I can't really blame the character on that I don't have spark because I used it early to try to get a lead. I'll take it. Let's go. Can I switch out? I can't I didn't get enough bar for the level three that trades that assist is doing it All right now, but dragon rush lands. That's all I need to see Talk to me. It doesn't work. Talk to me again The old American resets a He thinks I'm a genius right now, but trust me. I thought that I thought that conversion still worked. Oh my goodness Napa didn't get it done Theme in the neutral.  He's not no conversion That counter is fast. Okay. This guy plays a very different piccolo. Oh, he just counters everything. It's got a good range, too I like I like this piccolo. I like this piccolo a lot actually Okay, try to get cheeky there with a little reset do it three times if I have to There we go beautiful to age there. I am not upset at all. I Definitely did the wrong input. No another kill. I could have gotten oh Spark there it is. Okay. Well, not not it's not a really dangerous spark to be fair too many dragon rushes this game I respect it. No spark, but we need a tag. We need this tag. Okay. We needed that we need to stall No beautiful ex execution really putting the ex execution. Yes. I thought of that just now Barely I got I got I have the pressure really got to my head Luckily, even if we die here cell will still remain in the back to heal But if we lose Android 16 too fast, I will say I don't like our chances in this match I'm not gonna ex grab in the air. Yeah, I didn't think he would jump and go do stay on the ground though No, okay, switch this out. He didn't give us an opportunity to think There we go. I have not been throwing in the beam at the end of those key blasts So I really I'm happy that one worked out. Okay, so let's try to let's try to counter this ex counter. Oh Unreal I Got a down take here. I got a down take buttons if he tries to do anything fancy with it Is that confirmed that does combo bullies to get off that just the dragon rush? Okay. It's just a dragon rush on a mind dates Back in the danger zone. We're back in the danger zone. It gets the piccolo. Oh There's too many ways this could go wrong right now too many ways this can go wrong. That was one of them. Oh Okay, no more jumping. Yeah, no more jumping. Oh No way nice button. Okay. Good. He's super dashed. Please connect. Please connect Please kill limit break damage. I know I didn't go the route. Okay, good.  That piccolo was scaring me. Okay. I'm glad we were able to bring it together Hopefully that's our hump if we can just get over the hump with this team and start actually moving Well, I think we can get this set. Is it one one? This is the most stressful one one. I've ever seen in my life This is too stressful, I Get I am my neutral is bad dude, but that piccolo assist is impressing me I never even thought of that assist Pickle if you're a piccolo player down below in the comments. Let me know um, what's the verdict on that? I don't think people would run it over a though. I still think a is probably I just lost Napa right away I still think a is probably stronger a assist is just cheap But that's surprisingly our that's surprisingly decent as well It could just be it's my first time running into it, but I'm impressed. I'm impressed.  I'm not going for dragon rushes anymore No Yes, 16 actually so big he took a hit for me. This is like this is what I meant to do Uh, I probably could have killed with a level one into level three now that I'm thinking about it But whatever I'm I'm confident.  It's on you Chad Did I not tell you did I not I called you guys chat? I've been streaming too much. I told you comment section. I knew that if we believed in ourselves we could make up for that differential He's gonna Yix counter Really? No Yix counter It's hard to predict Seven bars though. That is a lot of cash. He's probably gonna level three just to flex no Yeah, I forgot he's piccolo. He's got he's got other ways to flex with the meter Dragon rush down to five. Yeah. Why not set me up for the old mix? No tech come on. I gotta be able to take those if I want to win this we're gonna have to do it do it all with cell now He's got a level three here though, right? Yeah, okay So now he's back down to zero bars. We knew he we knew it was gonna end up with him spending a lot of it when we saw He had seven Ken limit break cell do it. I don't know. I don't know. I would definitely say he's the character I'm most confident with in a 1v1 scenario Napa is probably my better best character on the team, but I really do need he's blessed. Why do I keep doing that? I'll take it. I will definitely take that That was not a real combo. I mean it was a real combo, but it was not something I should have gone for DP he's gonna use that every time He's he's looking out for dragon rushes or just six ends like that, which is good. He's running. He's killing my time There we go, that's a clean hit clean going on to just piccolo. We're out of spark, but this is fine We have the health lead. This is fine if we force a 1v1. We've been in this situation before and we have six No, dude, I shouldn't dude. I shouldn't but To be honest, I think I gotta try I summon force general let's go How do I do this? How do I do this? So thinking if I'm thinking logically I should get sparking and spark right away And vanish Hopefully this works. I wasn't even that skillful, but we'll take it. I definitely thought that would work out differently Huh, I needed to hold it and vanish I think I needed to hold vanish in DR that would have been the accurate play But I summoned for shedrock for the two Let's go I knew I shouldn't have but then again I should have The Dragon Ball curse is broken right before Roshi comes up. Give me that I'm too confident now. Wait a minute This is gonna get me body This is gonna get me absolutely body, but the confidence is back in full swing. I'm just having a blast See none of these assists really work with Napa or at least the way I I use Napa very lazily And maybe I can lab out away but with random teams Napa is such a harder character for me to use because you can't force that Sidemen stuff or the the really basic B&B one anyway It would be so interesting to do that. Oh this team All right, it's time I get out of here That's not gonna confirm it anything. I took my sweet time vanishing. I'm expecting it. I don't know why I kind of felt like it Yo, that was fast. I didn't think he'd be able to get away with that one All right cells back on the move and by on the move. I mean he's getting physically moved You can't back dash against cell. He's too quick. Just look at his speed. It's literally a voice line of his Constantly flexing the speed. I don't know if it was just me right there, but green cooler kind of looks like Staying socket TN. I don't know if anybody else saw that but it kind of look for a second It looked like TN attacked me.  Nah Could not be me. All right, let me go ahead and I'm on level three here, but I don't know what to you know What let's just keep the let's keep the dream team alive. Let's keep all the assists up I Think he counters here to be completely honest with you. I'm bad at forcing them Jump the command grab. Oh, well, I'm a little early. Okay, not bad Yeah, not bad I'm a little Going for a vanished combo went pretty low to the ground. So yeah, I think he has a specific route in mind Hell zone again, is this the actual yeah, this combo is gonna get the DR into the corner felt that this is where we spark This is definitely where we spark by the way our team is I can't believe it counter Mmm, that'll do That'll definitely do I maybe the ex counters not happening. Haha. I definitely I I thought that ex counter was gonna be like a DP gotta respect it. I was I was more worried about the next upcoming dragon rush mind game But yeah, the ex counter seem to have gone out of fashion I'm still gonna keep it in the back of my mind if we lose this set not set if this game and goes into goes into Final game. I'll definitely still keep it in my mind, but I think I'm worrying too much about it. Okay. Good. Good Nice, dude. What are you doing? So check this man? I Tried the command grab. Okay. You got me. You got me Man, it feels so much faster. What other cells do it? I lost. I'm not winning this game He's confident with cooler right now Actually focus up. Let's not give up yet. Napa is Not we can do this. I didn't run fast enough. I did not run. I didn't run with enough confidence I tried to get behind him and if I didn't I should have blocked No faith in myself level one kills here. It's going into the final game. Oh Yeah, we lost confidence there pretty quickly We didn't even touch cooler because I was just always so worried about it. All right All right, we need confidence going into this next game. I want to see pure confidence That it's funny because at the beginning of that game wasn't wasn't this the game after shed robbers of it So I went into that one with way too much confidence and then I dialed it back. I should have kept I should have kept it up No, not that much confidence. I didn't mean to do nothing to spark. Oh, no. Oh, no way too much confidence. Oh No, dude. Okay, we're playing from behind already. Come on. I usually I start these games from behind But not this behind beautiful Just like he drew it up Barely making that happen, but I'm I'm cool with it.  Okay, at least we got 17 At least we got 17 down. Oh that double Sunday would have been sweet though to be honest It's fine. We got to play our best against Pickle. Do what we can now. I thought that was Napa So this might be guy by the command grab again.  Okay Six and he's really worried about that dragon rush and I'm trying to play around it Okay, let's uh Go back out in the cell. I guess Maybe Napa would have been the better choice. I don't know. I don't know He's not going for it anymore. Oh The overhead were dead. Okay, that's fine. That's fine. He's gonna switch out into cooler though Which is the bad part cooler coming in is definitely the more devastating here thing here for me. Wait. Ah Forgot about the old dragon rush No, wait, he's gonna get away with just two bars. Oh, man Well, he technically used the hell zone I guess but I was hoping for this I was still hoping for the clean three and yes spark. All right, so there's a lot of things to be worried about here I think we've proven that there it is tried to force the dragon. She never get a hit there Get that confirm it I guard cancel That's still plus. I gotta respect it. I have not respected it most of the games I think that's the third time Respect it this time. I did I not block Respect it. No, I didn't I I didn't respect it my bad my bad Good stuff. I'm living though. That's great. Unless he sparks. No, you can't spark off that tech it that time I thought I'd be able to get a button in falling. Okay. I think He's realized he can dive kick me to death beautiful Try to get a little three in all we're playing from behind. It's okay. We can still do this I just need it. I need to get my feet set. There we go feed our set neutral We got to win neutral. Don't believe his lies.  I didn't think I left the gap No, I saw it at the last second. I was like that looked a little slow. No, that was it No, I can't believe we lost that set. Oh, that was rough, but I am glad we finally use that team Thank you for suggesting it. Sorry. I I didn't see it for so long. I think it was like 76 days or something But hopefully you enjoyed it. Uh, I'll never forget your kindness Other than that, I've had a great time recording this cannot wait to see some more teams I actually know it's almost Roshi week. So, uh, yeah, I guess we'll suggest any Roshi teams other than that I have been down to do it while you're down below in the comments Let me know your favorite moment make sure to the like button and subscribe to the channel and check out some Of the other videos that should be up on your screen and don't worry We will have some master Roshi content on this channel very soon other than I have been dr. Doya have yourselves a good one And I will see you in the next video


Can you hear me OK? All right. Yeah, so I'm going to be talking today about something that's probably running in every Linux laptop and server as well, which is a system D and D bus. So a little bit of background myself. My name is Leonid. I work at Dropbox on the infrastructure team and does a deal a lot with Linux and servers and all the infrastructure. And one thing I keep noticing is that when I go to servers, we maintain. I always see system D and D bus running there. So they're like system D. They manage new services. But I was always curious, what is D bus? What's it doing? Can I use it for something? And I start looking into that a few months ago and start exploring. Can I do something with it? Can I use it for some of my services? Can I use it to programmatically do some tasks? And yeah, so this talk is the result of this exploration, really, is to take a look at what's going on there. So I'll start by just describing the scope of this and then go briefly through D bus and system D. Then see how really linear distributions laid out the configuration for that. It's very shortly about that. And then the main point here is to show how a Go developer can interact with these services and build something out of that. And at the end, it's sort of wrapped up with, is it worth it? Or what is it good for? So yeah. So we'll be looking at system programming. So this area, as Miky Pide has it defined, is software that provides services for other software. So this is not applications, not user-facing services. This is more like a back-end infrastructure components. And I'm going to be looking at Go developer point of view. So it's developed test debug cycle is to how to get productive with these tools with system D and D bus. Not really how to configure system D itself, how to manage D bus, how to manage containers, et cetera. And again, this is modern Linux. So think about most stable distribution, Linux distribution. I used Ubuntu 18.04 as an example here. But I'm very sure Fedora and other distributions, they have the kind of similar setup, which is standard. So let's get started. What is D bus? So first of all, is a specification. So free desktop.org is a initiative. As a Linux desktop defines the set of standards around Linux desktop. So D bus came around 2003. So this is a very, very long time ago. So JSON came around this time. So you can just kind of put things in perspective. And I sort of divide this specification in two parts. One is core protocol, which deals with a type system, wire format, and certain core pieces of the protocol. And the second one is the message bus abstraction. This is where it's actually used as a message bus supports naming, well-known buses, meshes, routing, and standard interfaces. So we'll be looking into that. And there is also a reference implementation, which is used pretty much everywhere. LibDBus implements the core protocol part. And DbusDemon implements the Dbus abstraction. So this is what you get on your Fedora or Ubuntu. There is many alternatives implementation of the core protocol. There is SD bus from SystemD. There is GoDBus, which we'll be using today. There are not that many implementations of message buses. There's Dbus Broker, but we're not going to look into that. So what is SystemD? It came out 2010, 10 years ago, as a CSV niche replacement, but expanded much more. So I'm only briefly touching this because there's so much to go into that. Again, the goal here is to really show how to use Go to interact with SystemD. And many mainstream Linux distributions actually have that by default configured, including there's Linux from scratch, which is interesting. It's basically just a document. And even that has SystemD version. And also all the SystemD APIs, they provide it through Dbus itself. So you can read the code of SystemD to kind of understand what's exactly there, but it's very powerful. And to start with, we need to first understand the how Linux configures that, how distributions configure SystemD and Dbus. And this is like we're going to be using today something called Linux Session. This is really how Linux distribution configures all the environment. So here you can see the output of SystemD CGLS, which, so SystemD partitions your user space into a set of namespaces. And they're nicely grouped into hierarchies here. This is Linux Session hierarchy. User at 1,000 is basically what everyone would get if there's SSH on the basic Linux. This case is Ubuntu. And this is already enabled by default. Highlighted there is the two components. You can see I have SystemD Manager running already. So this is interesting, because SystemD can run many SystemDs on the system. So this is sort of like a delegation. They run a separate user manager for every user in the system. And you can see also DbusDman runs a separate call session bus, again, under generic user. And this is how it looks like from the process point of view. Like if I look all the processes, so I'm using RayGrant here and the generic Ubuntu image around PS3, which shows me all the processes for user RayGrant. And you can see SSHD bash and then the command. But then the highlight, again, I have a SystemD and Dbus. So I haven't started that manually. It was already there. So it's there by default. So I don't have to do anything. Also I don't need a root to do that. So it's kind of, this setup is rootless, sort of. I don't need any extra permissions to do anything. Everything is already set up, configured for me. So from go point of view is, it looks like this. So we're going to be dealing with the writing code in go process there on the left. We're going to be using two libraries, goDbusDbus and core OS, goSystemD, which is a library in top of goDbus. It provides a more go, kind of go flavored abstractions in top of Dbus. The central component is DbusDemon itself that implements the message bus obstruction and it uses the reference implementation libDbus. On the right we have a SystemD which uses a different implementation of the bus library called SDbus. All these three components communicate through a shared Linux domain socket. So it's a standard, it's part of the specification. It's called a session bus. So basically it's a, it's a Unix domain socket. It's like a single file on the file system. Not nothing special about it. Again, I don't have to set it up. It's already there on most of the default distributions. So let's start with Dbus. So the thing about is when I started looking at that, there was kind of quite steep learning curve here is if you compare that to GRPC, for example, it's like most recent version, GRPC or even like a REST API. In REST you have a simple URL to identify what you wanna do, what's kind of method you wanna call and GRPC sort of abstracts that all away from you completely. In Dbus it's a bit different. It's very, it comes from the ages before web I would say. So if you heard something called CORBA and this object oriented abstractions from the 90s, so this is where it's coming from. The terminology boils down to really like three things. So you have a bus, which is basically, it's a process. So you connect to, we can use the Dbus demand. It's a process. So it's kind of like address. It could be Unix socket, it could be TCP, which is not quite used often, but still. Connection is identified by name. You can think about it as a DNS name. The object, and this is kind of the part of the object interface and the member. This is really three things kind of combined. You can think of it as a one thing. So it basically tells you what the kind of URL is, which is the object. What type of interface method you're gonna call. And the method has to be a part of some interface called the member here. So object interface and a member you can think about as a URL based in a REST kind of JSON RPC or something like this. There are some tools. Again, these tools are available by default on most of the Linux distributions. So you have Dbus send. It's a convenience CLI tool. If you want to interact with Dbus, you can send a command here in the example we can see I'm using session bus. This is again, like this is a user's private session that's configured everywhere. And I'm calling a method on the default destination which is org for desktop Dbus. The object path is slash, which is kind of root of the hierarchy. And then the method is list names. It shows me what connections available on this bus. So I see Dbus, I see system D and then I see two private connections which come from the Dbus send itself. There's another tool, bus cuddle. It's part of system D is also available by default. It's part of system D package. It's pretty much can do the same as Dbus send but it's more like a terminology is a bit different. So in Dbus send, you use session. In Dbus cuddle, you use user to kind of, there are two commands, tree, which lets you list all these object hierarchies that available under for certain service name. There is also introspect that shows you what the actual interface is available. What can you do with that? This is all useful. We're gonna be using this with system D. So let's start with how to use that from Go. So how do you use Dbus from Go? There's library, Go Dbus bus. It's native Go library. There's no, it doesn't depend on LibDbus. There's no Cgo. It's very kind of simple library in terms of, it just does the message serialization, deserialization and provides some of the wrappers on top of that. So what we have here is highlighted in, you connect to session bus, you create an object, instantiate connection object. It identifies where you're gonna be connecting to. And then you call a method. And then you need to deserialize the result. So serialization in deserialization, it uses reflection a lot. So it's kind of like a bit of a pain point because that thing panicked on me a lot when I tried to, when you try to deserialize something in the wrong format, it was just panic. So you have to be careful with that. It's easy to make it panic. So Dbus message format is a binary format. It's a kind of interesting one. So you have every type release prefix with the ASCII character. So here they use the call it signature. So for example, why this signature translates as Y means byte, U means you int, A means array and parans means it's a struct. So it's kind of easy to understand but yeah it's not what you see in very often these days. How to construct a message in go? Yeah, this library has this message type as a type. If you wanna make a method call, you call it type method call. And then it takes a bunch of headers. And the headers really set the destination, the, what the method is, what the interface is. And then the body of the message is, it looks very similar. So all the messages they operate on this generic interface. This is again, like because it's all user reflection, I find it hard to, it's very easy to make a mistake and then this thing will panic or you'll get something not that you wanted. But yeah, so briefly about introspection. So when you wanna call some method in Dbus, you need to know which parameters it's going to take. The way to actually implement that, it uses XML. So it's really, it's a standard interface and you have to define this XML format. The format is easy, you have an interface and then you have a method, then you list your arguments. So you can think about it as a sort of like, if you use GRPC, this is like what you define in protobufs. The problem is that it doesn't generate anything out of that. So you still have to kind of code by hand manually all the wrappers itself. So if you want to export an object, for example, this is, I wanna run the bus service as a worker, a generic worker. Export this object, so first of all, there's not like a request handler, I just export the object and all the methods, all the public methods will be available on the bus. So three lines, I export object, I also need to export this XML definition and then I need to request a name which is kind of like a DNS name under which name will be available, my object. And this is how it's implemented, so you have to kind of hard code XML, beat and error code and then all the public method will be exported. You can configure that, but the point here is it's a regular go method. The only difference is if you return an error which is quite common in go, here you have to do different, it has to be a debust error, so it's encoded properly. There's another concept in debust called signals, it's implement one to many publish subscribes, so this is where it gets to useful parts actually, you can implement publish subscribes quite easily and it's async and you have to kind of filter which messages you want to get on the bus, it's possible to get all the messages, but yeah, you have to configure that first. There are some best practices, they're, I found these two nice pages, one is a Chrome OS apparently, either used or uses the bus for everything and they have this nice page where they say it's like basically, avoid every advanced feature of the bus, avoid properties, complex object hierarchies, consider using protobufs instead of complex messages, so you don't have to deal with that XML definitions and don't use the bus service activation, this is kind of, I think it's a legacy feature but you can start a service through the bus, I guess, and then there's another article, it's about how to version, it's essentially, it's same as GRPC, once you made it an interface public, you can't change it, you can only extend it but you can't really change anything that's already available. So let's go to system D, so we know a little bit about the bus, so system D, very powerful, it's basically how the Linux user space looks these days and to use it, you have to understand the bus, you can of course call the sub process, you can exec and that's kind of ST, so yeah, so D-Bus interface, it's very powerful there, so system D really, high level, it's system D operates in units, it can run jobs that transition these units through a set of states, so units are really stateful and changing of states, you can set up D-Bus signals to receive all the signals when your service start up, shut down, something happens to that, there are three commands really to start exploring the API, is the first one is tree, at least all object hierarchy, introspect, see what's available, what interface is available and then the last one is actually see which units implement what interfaces, so how do you use that in Go? So CoroS, I think this is the part of the, they were building a container engine on top of system D and as part of this, they build this library, Go system D, it's a wrapper on top of D-Bus, it has some helpers, but the essence is just, it's a thing wrapper, so very simple how to list all the units currently available in system D, connect to the user connection, so you don't have to use root for that, so and then just call list units and this is super, super easy, how to create a transient unit and this is where it's actually like more like exploration area, I'm trying to see, can I use system D to simplify some of the infrastructure related like very low level, system level automation I'm working on and the one nice thing is system D has this concept of transient unit, it's a unit created dynamically, it's not persisted on disk and you can run it through CLI, system D prizes your local system D run dash dash user and you can run like an end of command in a transient unit and then you can see all the output of that, so having example, this is how to do that in Go, very easy, you connect to the bus, then you have to create a job, basically it's a, you start a transient unit and it takes a list of properties and this is what you want to run under this unit, this could be any command or it could be any service for example, if you wanna run a Go playground or something like that, so you can start that and then you have to wait on the channel to when the job is completed, so it means that the task or the service is activated. So this is really a raps to talk and I have like pros and cons, you can read through that but yeah, this is the end, it's kind of very stable but the D bus part is really, yeah, it's a lot of legacy stuff and yeah, it's a steep learning curve as well. Yeah, this is it.