back to the NPTEL lecture series on animal physiology. So, we are in section 6 about the blood cells immunity and the clotting. So, initiated with the red blood cells in the first section and then in the second section I bypassed the white blood cells and moved on to the bloodlets and the clotting factors. So, today what I will do I will tell some of the basics. Now, since you have fairly good idea about what blood is about some of the basics what whenever you go to a doctor and the doctor ask you to get a blood sample and a blood testing and what you see in the sheet. So, you know the doctor takes the blood or the compounder takes the blood and then it will be processed and next evening or the same day or after sometime you see a report. So, what that report really says and how you can interpret that report this is very important for you to understand this is the practical aspect of it and next thing what we will be doing I promised you that I will be covering how this different blood cells are formed how this whole differentiation process how a one single cell. So, let me rephrase this sentence essentially blood is formed from one single form of you can call it a pluripotent or stem cell or something of that that kind. So, from one source it all divides some forms following a different pathway red blood cells some forms white blood cells some form platelets how that whole thing happens. And one more thing in my last class while I was teaching about the platelets I made a small mistake just correct it I talked about the thrombocytes. Platelets are not actually the platelets of the of the human being or mammal it is for the non mammalian. So, the thrombocytes are those just slight error basically platelets are formed from mega karyocytes I will come to that just correct that small error which I made in my previous class on the clotting aspect. So, talking about the blood what a doctor does when doctor ask you to do a blood analysis. So, blood is a fluid that we all know by this time we know that it is flowing all over the body. And fluid has lot of particles those particles could be cells we have talked about red blood cells which are carrying the oxygen. Then we talked about the platelets they are also small teeny tiny particle of 4 micron kind of a major diameter or it is kind of triangular shape. So, you cannot call it a major diameter it is kind of if you take the maximum length of that triangle the kind of the base of the triangle then probably it will be around 4 micron. And those are non nucleated same way the red blood cells are non nucleated they do not have any nucleus apart from I talked about the platelets that is why the thrombocytes come thrombocytes are the platelets of the non mammalian system which indeed have nucleus in them. So, we are not going to deal with that those thrombocytes will be only dealing with the platelets which are in the human system. So, and then you have the third cell type which is white blood cells the cells for immunity the macrophages. We talked about the macrophages why we talked about how the red blood cells which live their lifetime of say 120 days or 110 days kind of rejected out of the body how they are being engulfed by the white blood cells in the macrophages. So, the macrophages if you do something called a blood smear. So, what essentially is blood smear is that say for example, in my tip I just prick it and get a drop of blood and make a smear.  So, if you look at under the microscope you will see three distinct features one you will see I told you about this platelet cells we do not have any nucleus. So, if you add any nuclear stain you would not find any nuclear staining on them then you will find some cells which are circular by concave kind of cells which also do not have any nucleus those are your red blood cells. So, there may be some red blood cells in the phase of formation which also does not have any nucleus yet you will find a kind of cell or a series of such cells which will have multiple nucleus connected to each other which are multi-nucleated those multi-nucleated cells are your white blood cells.  So, if this is your glass and if you are looking at a smear you will see something like this and then you will see something like this you will see a huge, huge cells with this now look at this and going by the dimensions if you look at it these huge cells which I am now circling in red these are your WBC's these one which I put it in green are the little it is and the one I am now putting in yellow are your RBC's this is what you can see it under the microscope in a blood smear yet these are the cellular component, but your blood is fluid and what is the fluid component. So, if say just imagine and in that smear if you have a very high resolution microscope you can see proteins just imagine for the imagine it is like you cannot really see it under like that with the known technologies then you will see a series of such proteins which are present there and they are kind of floating in the fluid which is mostly water. So, this watery fluid on which this proteins are suspended and the cell component are two different aspects. So, they are two different aspects of the blood. So, the blood essentially if you if you have some way say for example you take the blood sample in a in a in a tube like this just for your visualization say for example I give you a tube like that and here you have filled with blood. So, this is all red is the blood now if you if you take this blood and you spin it at certain rpm you put it in a centrifuge and spin it after sometime what you will see after you spinning spin it down this is what you are going to see this is spinning or centrifugation is done to separate out components within a fluid. So, what you essentially see the fluid component remains at the top and the cellular component or the solid component comes at the bottom there will be separation and separation will look pretty much like this. So, what you see is lot of solid component here and here you have a lot of fluid component. This fluid component which you separate out is called plasma this cellular component all is this you can call it a cellular component or it is technically it is called formed elements and this formed elements are nothing but what I showed you here these are the formed elements WBC's RBC's and plate. So, now put the name for that formed elements and if I have to do a volume percentage ratio for this this form elements are around 37 to 54 percent that is the constituent of the formed element whereas, the plasma component out here this plasma component varies from 46 to 63 percent. Now I talk to you about the different formed elements now I will talk to you about the different proteins which are present there and these proteins are essentially called plasma proteins. So, that form the plasma component consist of protein elements. So, which you can imagine as if cell is a bigger particle which so protein is a micro nanoparticle. So, macroscopic particle at the micron range and you have a nanoparticle. So, those nanoparticles remain suspended in the fluid and the fluid consist of lot of electrolytes. So, plasma can be now put into two component plasma protein component plasma electrolyte component. So, that is what we will do now let us classify the plasma out here plasma into two parts one part is called plasma proteins this plasma protein the major contribution is made by albumin albumin you all of you are aware of that in the this is one of the major egg protein you see that in the egg you have this albumin protein bovine serum albumin and all this albumin. So, albumin is one of the major chunk which is approximately almost I think around 60 percent of albumin apart from albumin in the clotting I highlighted that you will be needing fibrinogen fibrinogen is another component which is present there then let me enumerate them albumin which is approximately 60 percent then you have globulin proteins hemoglobulins that these are the globulin protein which constitute 35 percent then you have 4 percent of fibrinogen and you have a bunch of enzyme pro enzyme hormones. So, which essentially falls under regulatory proteins which is around less than one percent. So, this is pretty much the protein component which is involved in it. So, you have the huge chunk of the albumin globulins fibrinogen and a series of hormones and pro enzyme and everything and this concentration of these different protein varies under different conditions of your body different physiological status of your body different pathological status of your body. So, by looking at the blood sample analysis of the blood sample could tell with what kind of technically speaking one can predict cancer by very early diagnostics, but where is the problem why we unable to detect it this is the challenge the reason we are unable to detect it lies in that last less than one percent regulatory protein I just telling you all the hormones enzymes pro enzymes and everything because it is exceptionally challenging to you know I should say estimate proteins at a very low concentration it is a big challenge it is a enormously big challenge because and what level is higher than normal is another challenge to figure out because whenever cancer or any kind of pathological situation happens it is not that those proteins though they are already present in the body, but because of some x y z wrong situation their level either goes up or goes down, but how to make that demarcation because already these proteins are present in proteins and enzymes are present in such a such a low concentration they work at a it is a very low concentration chemistry thing call about it is a very femto nano femto likewise that molarity at that molarity these things are working. So, at that concentration it is really really tough and it is across the globe whether you talk about N I H United States whether you talk about other similar organizations in Europe back home in India all the places is still blood always remain one of the hot subject of research could we analyze all the component and far more early before the we reach to a point there is no point of no return that time you know you cannot read the patient will die of that problem. So, could we diagnose it is there a way to diagnose is there a way to diagnose cancer way early is there a way to diagnose some neurological disorder way early by just doing a blood sample could we predict do we have any mode how low we can detect it is all about the detection limit and how accurately we could we can detect, but what is the level of accuracy that is very very important. So, that is why I highlighted this that was the reason why I wanted to highlight this point those less than one percent do not neglect them they are exceptionally important because that is where lies all your diagnostic kits diagnostic tools and everything. Now, let us move on to the other component of the plasma. So, we talked about all this smaller particle component which are at the nano not only at the nano I mean like the at the nano size domain now let us talk about the pure elemental composition in the form of the electrolytes let us get back to the slides and once again the other solutes include your electrolytes which of course, you have sodium potassium calcium magnesium chloride bicarbonate phosphate sulfates likewise 2 plus 2 plus minus these are the series of electrolyte then you have the in this fragment you have the organic nutrients which includes your ATP cholesterol. So, this is another one fatty acids then you have carbohydrate you have amino acids likewise and then you have the organic waste it carries which includes your urea uric acid creatinine bilirubin ammonium ion. Now, having enumerated this that is I will request it all of you see whenever you get a blood profile check what all the doctors can tell you doctors can tell you get me the the possibilities the doctor can tell you I wanted to see a blood cell profile if the doctor ask for a blood cell profile what are the possibilities either the RBC profile they will doctor is asking or a WBC profile doctor is asking or a platelet profile doctor is asking if the doctor is asking for a platelet profile it means doctor has a suspicion about your clotting may be there is excessive clotting or you know there is a lesser clotting may be something related to hemophilia or blockage in somewhere in the vessels. If the doctors talks about WBC's then it has something to do with immunity fine if the doctors talk to you about RBC it has something to do with oxygen carrying capacity are you anemic or you are hyperactive or you are carrying more oxygen. So, look at it from one simple fluid these are the three aspects now if the doctor ask you I want an uric acid profile or I wanted to know what is the urea or ammonia that essentially means doctor is doubting you know how your kidney function is because urea and uric acid this is all secreted by that by that through the kidney. Now if the doctor ask get me the potassium profile this is very interesting when the doctor ask for potassium profile doctor may suspect that you may have a some clotting problem because if you remember I was telling you that potassium plays a very critical role in all kind of clotting mechanism.  Then the doctors are aware of are easier color stroll is within control or is the good color stroll and proportion of good and the bad color stroll are they balanced to balanced in an optimal zone or you are at the danger zone you are at the susceptible zone for heart attacks or any kind of other disorders they may ask for a lipid profile. So, look at it from one blood sample you can predict almost I just I mean randomly I could tell you at least 50 different situations which could happen in your body because always realize whenever you study physiology always is very holistic thing this whole blood is flowing all over your body it is not only picking up the element which it has to throw away from the body the organic waste it is also circulating the important compounds with the body needs for its growth survival and maintaining the homeostasis as well as hemoestasis hemoestasis the clotting and homeostasis is the complete balance of the body. So, that is why blood analysis and blood sampling is so very important doctor first thing doctor will say or if the doctor suspect diabetes I want the fasting sugar non fasting sugar. So, try to look through look through any of those like the blood reports and see on one column you will see what the what the analysis has told you on the other column they will see this is the control this is the maximum allowed minimum allowed zone and this is the normal zone and then you have to correlate where your value falls in terms of you know the blood cell count or carbohydrate what is what then doctor may tell you I want the bilirubin profile or the bilirubin concentration that is why doctor is basically essentially indicating doctor is suspecting you suffer from jaundice you know. So, these are some of the things which a blood analysis can tell you and that is why after giving you some bit of an introduction about the blood red blood cells and the blood let us I came to this topic that will help you to appreciate why are we studying it in depth.  So, I will try to cover it in one slide with a pictorial representation how within the bone marrow from one single cell type all the different cell types are getting differentiated the left most column we will be talking about the red blood cells are we talking about the white blood cells then we will be talking about the blood let us. So, in a one slide this is how I am planning it that will take care of all your doubts how these are being formed. So, let us back to the slide and talk about the origin of the or the basically the origin and differentiation of formed element origin and differentiation the process by which a cell attains its final fate differentiation of the formed elements. So, it starts with something called hemocytoblast it is a huge cell though it is a nucleus hemo means blood hemocytoblast this is the beginning point in the blood marrow in the in the bone marrow hemocytoblast divides into two parts cytoblast part of it form lymphoid and myeloid stem cells lymphoid stem cell and part of it form myeloid stem cells myeloid stem cell I will just put s c hence forth because that will help me is. So, then this myeloid stem cells under the influence of factor called multi CSF they form certain elements called and of course, there are few other molecules which are involved in it which is called erythropoietin EPO erythropoietin the influence of EPO some of these myeloid cells form the precursor cells for. So, this is the zone where we will be talking about all the RBC formation. So, let me put it in red. So, these are the progenitor cells for the RBC this is an put it like this RBC progenitor cell. So, this is where the RBC progenitor cells are forming and there is another series of progenitor cells from myeloid air forming I am putting them in green progenitor cells. These progenitor cells form something called mega karyoside and these mega karyosides are cells like this huge huge cells like this. So, what I will do before I come back to the right side like all the all the lymphoid stem cells and all other things what I will do I will just talk about these two elements I am just putting them in these two elements we will talk about first otherwise it will become very complex we will talk about these two elements the what is happening here. So, let us first of all talk about what is happening to the RBC progenitor cells. So, we start with after the. So, the first series of cells are called pro erythroblast this pro erythroblast this pro erythroblast reached into erythroblast stage erythroblast is the other name for the RBC erythroblast and from here it form something called reticulocyte and reticulocyte is the phase when it starts losing the nucleus which you remember I was showing in the first class how they are losing the nucleus because of 15 lipoxygenase activity. So, this is the zone where the reticulocyte is the stage when from erythroblast to reticulocyte formation this is the stage when there is a sharp peak within the cytoplasm of 15 lipoxygenase enzyme which I have already discussed in the first class and because of that 15 lipoxygenase enzyme all the different cell organelles and the nucleus completely gets damaged. So, the cell is only filled with hemoglobin molecule which helps for rest of its life of 120 days to carry oxygen from reticulocyte what we get is essentially the RBCs. So, this is the pathway which is followed which started with if I had to summarize it started with hemocytoplast then you have myeloid stem cells from myeloid stem cells because of the influence of erythropoetin some of these progenitor cells these are the progenitor cells. From pro erythroblast and pro erythroblast become erythroblast then erythroblast becomes reticulocyte and that becomes RBC. So, we had done with one set of reactions which leads to the formation of the RBCs now what we will do we will talk about the second one which is the formation of the platelets or the clotting elements of the body. Let us get back to that so what is happening here. So, same again starting with hemocytoplast hemocytoplast to myeloid stem cell the myeloid stem cells under the action of multi CSF which is multi CSF stem stands for colony stimulating factor is myeloid stem cells from progenitor cells for progenitor cell for which are destined to become platelets progenitor cells for platelets and then they form a structure huge structure called mega karyocytes. Of course, the mega karyocytes it has nucleus mind it mega karyocytes and this mega karyocytes then divides into small cells the platelets. So, this is the second root by the stimulation of the myeloid stem cells by colony stimulating factor these cells form a huge cells called mega karyocytes then mega karyocytes started fragmenting they basically as I told you platelets are fragments of a bigger cell they do not have any nucleus at least in the mammalian system in the non mammalian of course, in the thermocytes they do indeed have, but that is a totally different mechanism and we are not going to discuss this here. So, these fragments of the cells form the platelets. Now, we come to the much bigger and the tougher one which is how our immune cells are formed because as of now we bypassed all that we talked about RBCs we talked about the platelets. Now, let us get back to that whole hemocytoblast and we talked about the lymphoid stem cells and I have not talked about. Now, I am going to talk about part of the lymphoid stem cells and part of the myeloid stem cells and how they are leading to the formation of the different white blood cells which are almost 5 types eosinophil, basophil, lymphocyte, leucocyte likewise let us get into that. So, move on to the next slide. So, again we start with hemocytoblast. Now, let me use other color hemocyteoblast. So, I showed you the one classification on the one division on the side because they form lymphoid stem cell and lymphoid stem cells form something called lymphoblast and lymphoblast form something called pro lymphocyte, pro lymphocyte forms lymphocytes. This is one root, there are multiple roots which I am coming to the next. So, this is where all the lymphocytes are forms. So, white blood cells could be classified into two groups. One group which has the lymphoid lineage they form from hemocyteoblast to lymphoid cells and then through cascade of lymphoid stem cells to lymphoblast to pro lymphoblast and reaching all the way to lymphocytes. The lymphocytes are further classification which I will be coming soon lymphocytes could be B cell T cell likewise I am not getting into that at this point. So, this is one root which is the lymphoid root, but I showed you that this is another root which is myeloid root. What is happening in the myeloid root? What they are responsible for because already we have seen when hemocyteoblast is divided into myeloid root it leads to the formation of RBC's and the platelet. Yet a part of this myeloid stem cells do form other components of the white blood cells. So, we will now discuss the second root. So, hemocyteoblast to what I will do I will just pick up another color so that that will make your life slightly easier to understand. We have already talked about two roots where hemocyteoblast let us do it like this this is the wrong way to show it fine. Here let us put the myeloid stem cells myeloid stem cells from myeloid stem cells. I talked to you that through erythropoietin something is from RBC's this part is all taken care. Then through colony stimulating factor some of the cells are forming platelets this part is all done. So, we are not going to deal with this part now we will talk about what is happening to the myeloid stem cells then out here.  These progenitor cells then divide into two parts these are called one part they are they all fall under one part which are called blast cells these are called myelo blast myelo blast this myelo blast further form three kinds of myelocytes. These myelocytes then form something called band cells and this band cells form three different white blood cells one is called basophil the other in one is called eosinophil third one is called neutrophil. Whereas, there is another root I showed you there is something which form here is from myelo blast is from monoblast this monoblast form then called progenitor monocyte and pro monocyte form monocyte. So, this is the other root which is of course, separate it out at this point this is the demarcation taking place this is where the two different cell types are getting separated from here this is one type one separation this is second separation and this is the second root. So, in some total your basophil so if you look at it what are the different kind of white blood cells you have basophil you have eosinophil you have neutrophil you have monocyte which are coming from myeloid lineage and you have lymphocytes which is coming from lymphoid lineage. So, some in some in some total there are five different kind of WBCs now if you in the light of this information if you look at the blood chart when the doctor ask you that get me the blood report they will say eosinophil concentration is higher. Generally, whenever you have persistent sneezing or something doctor say oh you are suffering from eosinophilia what does that mean that means your eosinophil cell number has gone up these eosinophil what you see I which I draw which has coming from myelo blast and myelocytes and the band cells and if you look under the microscope how they look like they look something like this all these different now I am talking. So, basophil looks like this there are lot of pig a lot of pigments all over the place and if you look at eosinophil eosinophil cells will look like this something like this. So, this is eosinophil this is of course, they have to be put different kind of dies in order to color them then if you look at the neutrophil the sizes are fairly close to each other I mean these are all multi nucleated cells. So, this is called neutrophil then you have monocytes which is more compact kind of you know this is monocyte and of course, lymphocytes also slightly smaller though like this which is lymphocyte. So, coming back so if I had to summarize it. So, we talk about hemocytoblast and myeloid origin hemocytoblast divided into myeloid lineage lymphoid lineage myeloid lineage leads to the formation of RBCs let let us and basophil eosinophil neutrophil monocyte which are all clubbed under the category of white blood cells and there is another set of white blood cells which are of lymphoid origin which are formed by the from the lymphoid lineage which are called lymphocytes and lymphocytes are further divided whatever we will do now after telling you this I want you guys to visualize whenever you heard about somebody has a blood cancer what really that means. Now, in the light of this whole differentiation what I highlighted in the bone marrow what is happening from hemocytoblast think of it how tightly this whole process is regulated each cell number has to be right if it is wrong then there is a problem each cell number has to be has to be tweaked in such a way that if something goes bad you may suffer from hemophilia you may suffer from clotting disorder you may suffer from anemia the oxygen or you may suffer from or you may have higher oxygen carrying capacity if you are fortunate then you will be very hyper hyper active you may have more number of more you may be immune compromised aids your immune compromised. So, immune compromised means your problem with your white blood cells. So, in the light of this whole differentiation process from how from the hemocytoblast this whole differentiation of blood cells is forming all throughout your life within the bone marrow that means there is enormous research is taking place across the world to understand this process because this is that zone where lies some of our answer to cancer because if you have to understand cancer this is where we have to hit upon one of the of course related to the blood cancer this is why it is because this whole differentiation is very very tightly regulated I mean like you know there is one flaw from it is the person suffers. So, that was the sole reason why I took this whole class single like in a exclusively to give you in the light of this when you look at the whole thing that will make more sense to you then looking them at you know small fragments bits and pieces. So, that is why the blood analysis is so very important that you know what are you analyzing in the form of blood that is the sole reason why I just started with your RBCs talk to you about the clotting and then came to and introduce you to the whole lineage of WBCs how they are formed it is from the same cell. So, what regulates some of the open ended questions which remain which are to be answered by mankind is that what it is so unique from the same population of cell some becomes RBCs some became neutrophil some became platelets could be. So, the future of tissue engineering future of differentiation development biology is that could I pick up any cell any blood cell or those kind of progenitor cells like hemocytoblast and say I need more number of platelets or I need more number of RBCs and could you put it back that is the translational medicine where it is all heading could you do that that is the future where it lies could we control the differentiation of the development of these different kind of formed elements and if we could know how we could this is where lies some of the very very challenging questions of next century of this century as a matter of fact that could we really do that could we cure could we cure a patient of blood cancer that you know we know do not worry we can take out a cell or it is another way could we take any kind of stem cells and transform them into blood cells or any other cell type. So, these are some of the very open ended questions which for which the blood is driving all over the world the scientist are working day and night to figure out some of these answers because it is very easy to see the chart and the fact is physiology is far beyond those charts how really to do that yeah of course this is only bits and pieces and if you look at if you go back to this go back to this chart what I was trying to draw and show you guys think of it there are so many factors which are involved which about which we have no idea which are really leading to this what is leading to this what are the signal. So, that is where lies a lot of unanswered questions out here or say for example, here proethyroblast erythroblast erythroblast reticulocyte there are so many factors what are those factors and those are happening at a those are very small molecules they are expressed for a moment and that is it they moved out how we can control differentiation these are some of the questions and that is why that whole chart I wish you guys to redraw that chart in a bigger paper so that that because because there is a size and limitations of this screen that I cannot draw everything unless I am in a blackboard where I can have the whole end. So, I want you guys to you know redraw this whole thing what I have covered now as of now that will give you a kind of understanding how this whole process is taking place. So, what I will do now probably in the next class what I will be doing is that will be talking about the function of the different WBC's and we will talk about little bit of the immunity and little bit about the R H factor there are couple of things which I have not touched. So, let me tell let me tell you what I will be touching in the next class I will be talking about the blood groupings that you guys have heard this A plus B plus O and what is blood grouping really that is one aspect what I am going to touch second I am going to touch about little bit of a immunity third I am going to touch about all the all the all the different kind of WBC's which are present. So, all the different kind of WBC's blood grouping and bit of an R H factor R H positive R H negative and how that influences the pregnancy we will talk about all these things and little bit of a immunity and that is why we will close in with this section of blood cells immunity and clotting thanks for your attention.


Before individuals who attempted to tamper with an Enbridge energy pipeline near Grand Rapids earlier this week are now facing felony charges for their actions. Itasca County Attorney Mattie Adams says the four are charged with felony level aiding and abetting attempted damage to pipeline property and misdemeanor level aiding and abetting criminal damage to property. Each of the defendants made a first court appearance today and would face a maximum penalty of five years in prison and fines up to $10,000 for the felony crime if convicted. The four individuals called themselves the Four Necessity Valve Turners. This is video the group posted to Facebook of the incident. According to the criminal complaint in the case, they gained entrance to the pipeline valve site by cutting a lock off a chain on the gate that then locked themselves back into the site with a different lock.  When police arrived, the group refused to leave the pipeline valve site, but after authorities cut off the lock, they were arrested peacefully. The next court appearances are set for February 19th. If you enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland PBS.


Quantum thermodynamics explores how quantum mechanics informs and shapes our understanding of thermodynamic laws, with a focus on consistency between the two theories and the avoidance of inconsistency resulting from faulty analysis. This article was authored by Ronnie Kosloff.


Hello, welcome to CMC Markets on Tuesday the 4th of August and the weekly market update.  We've seen Chinese equity markets continue to come under pressure amidst increasing concern about the resilience of the Chinese economy. And I talked last week about the Hong Kong H shares index, how that could well come under further pressure. Chinese authorities are still trying to intervene to prop up the stock market. The likelihood is we will potentially get further stimulus measures, but be that as it may commodity prices continue to track lower. And in that context I'm going to be looking at Brent crude prices and to see where the next target for those could potentially be. And also on a very, very busy week for certainly the UK and US economies, I'm going to be looking at the pound against the dollar in the context of the US economic data that's come out over the last week or so. And this Friday's payrolls, which I will be covering live with my colleague Colin Zizinski, 1.15 on Friday. You can log in up here, just to touch the link and log in and basically cover it live with the two of us. But also we'll be looking at super Thursday in respect of the UK economy, where for the first time ever the Bank of England will be releasing not only its rate decision but also the minutes and the UK inflation report at the same time. So we could certainly be getting a significant amount of volatility certainly in the pound against the dollar towards the end of this week. So let's make a start with Brent crude prices and they've continued to come under pressure over the course of the last week or so and they've broken below a key support level on this daily chart. It's $52 a barrel. We haven't made the complete retracement back to the 2015 lows at $45 a barrel, but it seems highly likely that we could well get to that level very, very shortly. And that has wider implications not only for Brent prices, but also I think for potentially a US rate decision, in September. That discussion is for another day, but I think to stabilize Brent crude prices and commodity prices in general, because commodity prices have hit multi-year lows. The Reuters CRB is at its lowest levels since 2003. The Bloomberg Commodity Index lowest level since 2002. So the direction of travel is very, very clear. So to stabilize in terms of Brent crude prices, what we need to do is break back above that unbroken support line that we broke through a couple of days ago at $52 a barrel. That was a significant area of support. It was the March lows and it was also the lows towards the end of July. We've now broken below that, unbroken below that quite significantly. We need to get back above that and close back above that to stabilize in the short to medium term. If we don't, then the prospects of further declines in Brent crude prices remain very much on the table. So let's move on to the pound against the dollar. Now, as I indicated earlier, it's a big week for the UK economy. Not only do we have a rate decision on Thursday, midday from the Bank of England, but we also get the minutes from that meeting at around about the same time. And that's going to be significant because we've heard a number of NPC members, potentially two, Martin Will and Amy Cafferty, basically suggesting that the time for an increase in rates is coming ever closer. Now, that's important in the context of the debate and the timing as to when we get an interest rate rise here in the UK. Now, it's actually quite interesting, the narrative surrounding the UK rate decision because pretty much across the board, UK economic data has been pretty much better than US economic data. Certainly wage growth data has been that much better yet no one is talking about a UK rate rise this year, unlike the US, where wages data remains very, very weak. So it's going to be very important the tone of the minutes, whether or not we get two or three dissenters and whether or not the inflation report is either hawkish or dovish. Now, the key support lines on the pound against the dollar come in from the lows, 145 earlier this year, currently around about 155.5. We can draw the trend line in. It's quite a nice line and we've got significant resistance around 156.80, 157. The price action is compressing. We do appear to be coming close to a breakout point. Now, we can break lower. We can break towards the 200 day moving average at 154.10, but overall, I think the buyer remains for a higher pound and a lower dollar on basis of this chart in front of you right now. So that pretty much concludes this week's weekly market update. Thanks very much for listening. Don't forget non-farm payrolls on Friday. Until then, this is Michael Houston talking to you from CMC Markets.


So, I personally think that my fellowship year has been my best year of training in orthopedic surgery by far. It's a really special year to get to focus on foot and ankle alone, which I love and am very passionate about. So get to really focus on that has been great. I've also really enjoyed getting to work with just Dr. Klan and Dr. Haight Manick for a whole year and get to know them personally, get to know how they speak to the patients, kind of their thought process, how they operate, how they run their practice. It's been nice getting to spend a whole year with them and getting to see patients and follow it for a whole year. So I think that's been my favorite part. I've done a great research project with Dr. Klanton that I think is going to be very important for the field of foot and ankle. Looking at syndesmotic injuries and I don't think I would have been able to complete that study in a year anywhere else in the world. So I'm really excited, hopefully publishing it soon. So I have my husband and my two children I brought with me. My daughter is one now and my son is three. So I started with a three-month-old here, which was challenging at times. But we've had a great time as a family hiking and biking and camping. And it's really been an awesome, amazing, special year to get to spend here.


And this evening I am sitting with an absolutely amazing financial advisor when it comes to property as well as writer, author, Gavin Mukabele. Good evening, Gavin, how are you? Good evening, Azdi. Thank you so much for having me. I'm good. Thank you. That's good. Thank you for being here. Yes, ma'am. And I love the story and the conversations that we always bring to this platform. It's just a pity that we have most of the deep chats off camera. Yeah. But tonight is going to be a little bit different and I'd like to bring that to the screens of our people. And we talk about money management, right? And you know, you within the financing field of managing property and managing your money when it comes to making these big investments. Yeah.  Money management was not what you could handle and what you could do well. So on that note, I want to talk a little bit about, and I hate starting the show with the downfalls, but you said you came to a point in your life where you lost everything. Yeah. Tell us a little bit about that journey. Yeah. So I think going back, so I was working for one of the major banks. So I started off in home loans, fine enough. So I started in the cancellations department. I went to credit. So I was that guy that called you to say, hey, look, your house is about to go under the hem, so to speak. And the funny thing about it is that I used to get the repolished every week. But I didn't know about this property investment thing. And I used to like, guys, please stop giving me these things. Yeah. But I didn't know. And at the time, the repolished had everything you need as an investor. It had the account number. It had a name and say name of a client. Yeah. It had the outstanding bond amount. And back in the days, the banks will sell or will auction their house for the outstanding amount. And it had an address and the telephone number. So it was easy for, I mean, to really get in there. But yeah, so it started there. But I got into financial difficulties. And my financial difficulties really started on when I actually went in and got a lease agreement. I signed a lease agreement when I just started working. Right. A lease agreement. It was a girlfriend. And she didn't earn enough. She didn't have a credit profile. I did. Just got a permanent staff member. Bank signed the contract. I didn't know about the lease agreement.  She didn't pay. I ended up now taking credit cards. I got into a revolving loan. And that sort of snowballed. And you can imagine when it's just starting to work. And then all of a sudden, you are now introduced to debt, but not good debt. And everything just spiraled. Thank you.


What's up everybody, once again it's Brandon Shawn and we gotta talk about something that so many people have asked me before I know a lot of people are wondering what is the difference between your brand, a true core brand device and a straight up gimmick. How can you tell? But first before I even get into it I gotta start off by saying gimmicks are not a bad thing. There is nothing wrong with having a gimmick. Gimmick should be used as a tool but they shouldn't get confused with your core brand and that's why it's important to know the difference. So let's go ahead and define that.  It's not superficial at all. Now a gimmick on the other hand is pretty much defined by a device, some sort of tool that's used to get attention. We can get real deep with the core brand or the gimmick but that's the best way to think about those two things just to make it clear in separation and how you should go about it. Of course I'm gonna come with some more examples but with those two things being said you also should keep in mind that a gimmick for one artist is not necessarily a gimmick for another artist because a core brand is different for every single artist. Really quickly let's touch on an artist that I already talked about her. Just in case you haven't seen the video basically I talked about how hey nobody knew she was initially but eventually she revealed her identity and that helped her maintain her core brand because the mystery started to become a gimmick. She got her attention and that was great but when it became something that so many people associated her with it started to become more and more a gimmick and gimmicks are bad long term. You don't want people to associate you with your gimmicks. You want to get people's attention with your gimmicks but you don't want them to brand you with your gimmicks. And why the mystery was a gimmick for her is because her core brand was supposed to be about the music itself. Now let's think about an artist like Lil Pump. Lil Pump has so many things around him but one of the most well known things is the fact and it is indeed a fact that Lil Pump went to Harvard. Now a lot of people would consider that whole thing a gimmick right? So many people making jokes oh Lil Pump went to Harvard and he graduated from this class and he did this while he was at Harvard. It sounds like a great joke and it seems like it's a gimmick because it is funny and it seems like something that's simply a troll just to get attention. And indeed some of that is true but when it comes to Lil Pump a large part of his brand is that trolley. Bringing everybody in for an ongoing joke just helps build community and creates these inside jokes where fans feel closer to you. So in Lil Pump's case the going to Harvard storyline is really symbolic of something deeper and that's when we're talking about core brands. It kind of gives you a peep into who he is as a personality who he is as a core brand the less self serious the whole I'm ignorant thing that's what he pushes and promotes. Whereas you have somebody else like Lil Yachty that red the red hair particularly is something that's really just to get attention and it's something that works for him and he pushes past that by not overdoing it but at the end of the day he originally did it to get attention. So it's something he used to stick out he made all of his original music and so much stuff wearing red but it doesn't have any deeper meaning it's just a cool thing marketing branding device he's using it as a tool to get attention and that's really just a simple difference if it's attached to something deeper that people can really relate as something that represents you then it's core branding and you could keep pushing it when you have something that's a gimmick then it doesn't really represent too much deeper than what it actually is and again there's nothing wrong with that at all you just have to know how to use these things strategically and just an as an additional thing where a lot of people wouldn't necessarily associated with it being a gimmick it's fast rapping a lot of people rap fast and it's really just to get attention or to seem like they're talking about something or being cool but it's not a part of what they're trying to represent as a deeper brand now there are some rappers who their thing is fast rapping and that's what they want people to know about them but it's some people who they're only rapping fast simply for the attention hoping it makes them sound better but really they're trying to have a brand that's more lyrical or whatever the other many brands there are out there that they might want anything that you use to get attention for the core brand can be considered a gimmick in its own way but the problem only becomes when people start to associate that thing with you to the point it becomes a distraction from what your actual brand is so I've already thanked y'all before but I gotta thank y'all again for pushing me to actually come out with a master music branding guide for you guys and it's out I've already mentioned in videos and I'm gonna keep keep pushing it just until everybody who actually asked me to do it knows about it you can find it in the description below if you are serious about your artist image if you're trying to understand how to make strategic moves or make sense of other artists branding it touches on that all of that stuff in there and I actually directly answered so many questions that people ask me in the comment section so if you have an interest in branding whether it's because you're an artist or you have an artist check that out in the description below other than that if you liked this video go ahead like button if you like it might as well share it if you're not subscribed you know what to do hit that subscribe button


Today we have Jessica Hagman who's going to tell us about the Information Literacy Workshop. Hey Jessica. Hey Shay. How are you? I'm good. How are you? I'm good. So can you tell everyone what you do here in Alden? So I am the social media coordinator which means I'm usually on the other side of the screen when we're doing these live videos. I'm excited to be talking to everyone today on the other side of the camera. And also a social media coordinator for Scripps College which means that I work with students and faculty in that college to make sure that they have information that they need by building the collection and also answering questions and helping them find information for research and other projects. That's awesome. So tell us a bit about the Information Literacy Workshop that's going on this week. Sure. So we're calling it Finding Truth in a Post-Truth World because as many of you are probably aware this idea of fake news has very much come to the forefront recently. Actually if you're on our website there's a blog post about the event which lists some statistics from the Pew Research Center about how many, a very large number of Americans right now feel that this idea of fake news is causing confusion within the country about what constitutes even basic facts, especially in the political realm. So we are hosting what we're calling a networking event with the idea being that we could bring together people from the Ohio University community and also the Athens Area community, people who are also interested in this idea because of course librarians, we care a lot about information and access to accurate, reliable information and what we call information literacy. But we know that there are lots of people, parents, teachers, librarians at public schools or at public libraries, just community members, politicians. There are lots of people who are interested in this topic and we really wanted to bring together people for discussion as well as what we call a networking event so that they can hopefully connect with other people who are interested in that same topic and leave with a better sense of what events we might want to host going forward, either at the library or elsewhere in Athens or in the community, basically just to bring people together to work on whatever they want to work on related to news access and fake news and information literacy. So you did mention the fake news, so what would be an example of that for people who really don't kind of know what that is or what that means? So that's tricky because of course fake news is a pretty loaded term. I'm sure you've heard it thrown around by people. I guess when we think of it, we think of it as deliberately false information that is passed around. So I think there are some people who do engage in that practice intentionally. As a librarian, I personally also think it's important that we think about news that is not demonstrably false but maybe biased or doesn't tell the complete story or what happens when we think we just get our information worse. So if all of your information about politics, for example, comes from people who are like you on Facebook, you may be getting kind of a distorted picture. Yeah, exactly. Yeah. So what do you do as a subject librarian to ensure that you can keep up with that and make sure the information that people are receiving isn't just accurate and not that's your point of view? So I think just by talking about it is one thing that we can, that's the important thing, is I think we need to all be aware that, I don't think at this point anyone thinks that everything on the internet is true, but to realize that there is a lot of biased information and that we are all biased and the information that we seek and the information that we pay attention to. So as a librarian, when students come into a class with me, something I would talk about is, okay, we've encountered this information. Do we know who it comes from? Who gets to kind of be the expert on this topic? Are there some voices we're not hearing from? And how can we find those voices? Or if we do find something that we think is maybe not true, how would we see if we can, or maybe not the whole picture, see if we can find more information to supplement that picture or to think about mostly just finding more information. And how does our own kind of political point of view or our point of view in the world influence what information we're getting? So basically just encouraging people to use strategies and tools to get a broader picture of the world and more reliable information when it's important. Okay. And besides the workshop that you guys put on, what tip, if you had issues like one good key tip, should a student or someone like searching the internet, how can they just filter out that fake news? So like a helpful tip for that. Oh, that's a good question. I think there's not one thing you can do that's always going to work. I guess I would say just being aware of your own bias. Like I was saying a little bit before, like so I have a political point of view and so information that kind of supports that point of view is more appealing to me. And I think everyone has that. And it's not just politics. It could be anything. We all have a point of view about everything. So I would say, I guess this isn't really one thing, but to, and to be, sorry, I cannot limit myself to one thing. Same. Yeah. So to be aware of your bias and to recognize that if something seems too good to be true, maybe it's time to take a look for some other sources to support that and see if you can get a different story or the same story to kind of, you know, if it seems like it could potentially be biased to see if you can find other information or that same story from a different perspective and compare those and basically just to not take whatever information you get first as the absolute truth with a capital T and to really reflect them about what you're looking for. Thank you. Thank you. So when is the event? It's tomorrow from 5.30 to 7 on the fourth floor of Alden Library. It is completely free and open to anyone who wants to attend at the university or Athens, any community member who's interested. We will have some discussion tables and then also be collecting contact information for anyone who wants to keep working on these issues and Do you need tools? Anybody need simmering or open mind? Open mind, always important. But you know something to write with and really that's it. It will be, yeah, write something to write with because they may want to take notes. But it's, yeah, it'll be pretty low key to start off with, but we're excited to talk to people about this topic. So I'm going to need to register or anything. You don't have to. You can register online. There's a Facebook event you can find on our page and we'll put the link in the comments here. You can register just, especially if you can't make it, you could register and then we'll put you on our list to get further information or next time we have an event or something like that. But you don't have to. You can also just show up at 5.30 tomorrow and we will have snacks of some kind if that is any sort of inducement. All right, awesome. Well, thank you, Jessica. If you guys have any other questions, you can make any comments in the comment box below. This will be going on YouTube as well. So any opinions, any comments, we'll get back to you. See you at the workshop.


All right. Hi, everyone. My name is Brian Curtin. I work for Rackspace. I'm Terry Allen. I work for HP. And we're the two, one of the two of the main developers of the OpenStack SDK project. It's a project that was started, I think December or so. The conversations were started about December of 2013, so it's been around for a little over a year now. The first time we kind of got together and talked about it with a bunch of folks was in the Atlanta Summit, had a nice design session to get together and figure out what we all really wanted to do to improve the user and developer experience within OpenStack. And that's where we are today, so why? So the talk is going to cover a couple of things. I guess who is familiar with the OpenStack SDK today? Ed, one of the developers who had worked on it for a while, a little bit. So we'll talk a bit about the current set of things, why we wanted to do this, and then we'll dive into how things are structured, how they're set up, and how we're going to move forward with this project and how things will be better. So when you look at what's out there today, each OpenStack server offers its own client. So there's one library per service, and you're probably familiar with these. These are the Nova Client, Glance Client, Swift Client, all those clients. If you look on between the Stackforge and the OpenStack repos, there's something like 30 or so clients. No one's really building an application that uses all 30 of these, but you can imagine when each library, each service has its own library. Each of those provides basically their own user experience. They're all structured a little bit differently. They're all developed a little bit differently. They all have different dependencies. That kind of mounts up, and all of a sudden you're looking at a pretty complex application. It's a distributed system that's already adding complexity by being multiple services, and that complexity by itself is already daunting. And to look at all the different APIs, all the different return contracts, all that kind of stuff is not a great thing. So if we look deeper beyond just the fact that each thing has its own client, you start to see a lot of issues right away. There's duplication in the way a lot of things are created. There's re-implementation of things. A lot of different clients have their own HTTP layer. They have their own connection pooling. There's a couple of duplicated efforts there. If you see some of the more recent clients, you can kind of see their inspiration or the place they copy and pasted from another one. Dependency is a much better solution today in all of this. A year or two years ago, this was a pretty much a mess. Especially when you look at, okay, I want to use Keystone Client. I want to use Glance Client. I want to use a couple of these clients. It was at times tough to have them in the same virtual environment. So you're going to have different segregations of where you're writing your code just based on the fact that you have to do it at all. And the APIs are different in a lot of these things. Some of that's gotten better over time. If you look at things like Swift Client, it is structured massively differently than any of the others. And especially for some of these, you really have to have an knowledge of how the server is doing things and what it's calling things. And there's no really consistent view across all of this. So again, once even if you're using two or three services, there's a lot of differences. And there's really no way to just talk to OpenStack. There's a way to talk to Nova. There's a way to talk to Glance. There's a way to talk to all these other projects, but you can't just talk to the cloud. You can't talk to, I'm a Rackspace guy. You can't talk to just Rackspace. You can't talk to just HP. Peace together a bunch of things and make your own experience on top of that. A little example I'm going to show is how this all adds up, all these differences. So the basic operation of just listing resources for a particular service. And the examples I chose are that I'm going to list some servers, list some images and list containers in Nova, Glance, and Swift. And before I do this, I'm not trying to shame anyone. I'm not trying to make fun of this code. It's an example of the experience we have today. All these clients are created with the express consent, the goal of talking to that service. They're not trying to be anything that's consistent, but we end up seeing that this is what we live with. So to list servers, you create a client with some authentication arguments. You call your connection.servers.list, iterate over that, and you print out the dot name attribute of a server object. Glance looks kind of similar. It takes different arguments to clients to the way it's created, but it looks similar enough already. Now we're doing images.list. Looks very similar to what we had in the Nova one, but now we're printing what we're giving back from that list call is a dictionary. So it's a little bit different there. Look at what we do to list containers in Swift. It's called a different thing. It's not called a client. Now it's called a connection class. It takes different arguments again. And again, for different reasons, Swift can be run independently, so it has its own auth system. So it does things differently, and there's reasons for these things. But to now to get my containers, I'm calling get underscore count, and I'm getting back a tuple iterating through that and looking at the name, key, and the dictionary. Let's spot the differences. A lot of things add up. I think it's like 13 or 14 differences in that. I mean, they're called different things. When you look at that list call, whether it was servers that list in the Nova client, or the images that list in Glance, one of those, and I can't remember which one it is now, one returns an actual list, one is a generator, then the Swift client one is returning a tuple. Those are all very different. What they're returning, whether it's an object that has the attributes that correspond to the resource or dictionary keys, all that kind of stuff adds up. And this is only three things. Add two more services in there. You're going to get somehow more types of returns, more types of things that are coming out of it. And it's especially difficult when you add in the Swift client one, which requires you to know how the REST API is structured. It's called Git underscore account because it's doing an HTTP Git on your account URL. If you want to get the metadata, it's head underscore account. That's not something that an application developer, a consumer of a cloud from any of the number of vendors out there, wants to have to know. So after seeing this and having experiences talking to customers at things like OpenStack Summit and at other conferences and trying to understand what people want to build and why they want to build it and how they want to build it, they don't want to see those differences. They don't want to have to care about how the REST API is structured. They just want to know they want to get servers, they want to get images, they want to get containers. And we decided that's time to build one thing that can do that. So in the end, all of these libraries are REST clients. There's no need to have 30 REST clients to talk to 30 REST APIs when they all do roughly the same thing. They all have resources that we're talking to and we can have one representation of what a resource is and then use that from Python. One set of APIs, we don't need to have different method names for the same things in different services. We can provide a nice consistent look across the board and one set of dependencies. Maintaining an application that would use all three of those, the examples of the sort of client-to-client glance client, they all depend on different things and that kind of starts to add up, especially when you have your own application dependencies. All of a sudden you're looking at your dependencies list of 50 things to just do talk to a REST API. It's not really necessary. And the SDK itself being one project becomes one dependency for you to worry about. You don't have to worry about three or five or whatever services. So the goal with this is to get down to one thing. It was originally called the Unified SDK to provide a unified view, but we moved away from being unified as part of the name. So what the SDK is, is one package that currently is focused on application developers. These are the people who are going to be consuming an open-stack cloud from whatever vendor it is, from DevStack, from the private cloud, from something you've built yourself, something you're consuming from someone else. And you're trying to build applications, web apps, whatever you're doing. It's also one source of documentation and examples. It's the one place to get what it takes through Python to talk to an open-stack cloud. One thing I'm sure some people are familiar with, is anyone familiar with open-stack clients? So if you're not, open-stack clients. So what I'm talking about so far with SDK is that it's a library. It does not have anything to do with command line tools. So if you look at, like, clients, client, all these other clients, they're both libraries and command line tools. Open-stack client is currently a command line tool that wraps a lot of those other clients to provide one consistent, nice view on top of those. Open-stack client will remain as a command line tool, and SDK will be a library, his library, and there's a goal over time to make open-stack client consume SDK for its communication to other services instead of working through all those other clients. So they're related, they'll work together, but they're not the same thing. And so Terry's going to talk about kind of how we're going to do this. Yeah. You can hold on to that, I guess. So part of how we're going to do this is we kind of have, like, a stack, a kind of protocol stack on top of our cloud, starting with the transport, actually, then with a session on top of that, which actually holds the authentication information, and then there's a connection on top of that, which kind of ties it all together and makes it convenient for your services. The transport kind of derives off the request library, so it's just doing the HTTP part. So we have one base resource class, and it derives off of, I forget exactly what the class is, but it's a mutable map, and it's basically like a dictionary. It acts, can act like a dictionary, but we have a lot of methods on top of that to actually do the art gets and creates, et cetera, on top of that for that resource, more specific to the transport. Then we have a base proxy, and the proxy itself is supposed to act as a higher level, and within the connection class, the proxies will provide the interface that the user will actually see, so for each service there's a proxy, and the proxy itself would define all the methods for creating the particular resources, whatever they are. In order to install the SDK right now, you just pip install python open stack SDK. We released 0.5 yesterday, and it's been 24 hours, and there hasn't been a single bug fix release yet, so we're pretty happy about that, and that's about it. Don't deploy the production yet. This is kind of what the connection class looks like as far as using it. Basically it's taking just your, at a minimum, your authentication information. There's more parameters you could pass here. You could potentially pass an authenticator or a session to this thing, but if you don't pass it, it'll make one for you based on your auth parameters. I guess the next slide. One of the most important parameters that you might want to pass other than your auth parameters is the user profile, and the user profile is the way that it defines exactly what your preferences are for this connection, and one of the preferences could be the region that you want to access. So this is where we kind of handle the defining exactly which service we want to access, and there's several parameters to this. Region is given in this example, but there's also the service name. You could use a particular name that you want. The visibility of the URL, if you wanted a public URL, internal URL or admin URL, and then the version would be the other big thing, if you wanted, you know, V2 or V3, that kind of thing. And so, yeah, once you're connected, then you can actually access the services, and I'm not exactly sure what you want. The plug-in one. Oh, right, okay, yeah, that's the... Yeah, so within this connection class, there's also the ability to provide a name for an auth plug-in, and this is kind of supposed to show that, you know, you could provide your own authentication plug-in, and you just provide the name here, and it'll load that plug-in. We support, you know, we took our auth plug-ins from KSC, and they're very similar, and we've been trying to keep in sync with KSC, meaning Keystone Client, and they're very similar to what's out there in Keystone Client now, but there's also the capability to create your own plug-in to authenticate in any way that you might find convenient, and you can pass that in there on the connection. This is something where vendors who have different authentication systems or have other things to provide will do this. So right now I have worked for Rackspace and we have different auth, we're not Keystone auth, and so I have a very simple plug-in that will allow you to just say, once you've imported that, it creates an entry point, and then I would just say auth plug-in equals Rackspace, and then any credentials I pass through there know how to go to the Rackspace identity service and then opt me back and then we'll move on. I expect other vendors will have to do, or will provide similar things, and you don't have to worry about your auth URL that's taken care of inside the plug-in, so it's nice to just say auth to HP, auth to Rackspace, auth to Morantis or whatever it is, and they'll take care of the details of that. So the authentication plug-ins, as I mentioned before, we're based on the Keystone auth plug-ins, and we've been keeping in sync with their changes. I guess later on we're going to talk about some other stuff as far as authentication plug-ins, but that's moving forward. One of the major differences between our auth plug-ins and what's out in Keystone Client is the Keystone Client ones contain a lot of CLI options, which don't make a lot of sense for the SDK because we're not trying to describe what a CLI looks like and we don't want to tell the CLI folks what their options should be called or anything like that. So we've kind of removed that and just had, well, these are the arguments that you need, but we have a valid options list instead of this CLI options that KSC uses. Another part of taking that out for us was it decreased a dependency. Brian was talking before about the number of dependencies and what we've tried to do is really keep our set of dependencies down to a very minimum that you need to run and the Keystone Client was using Oslo Config, which is great, but it added a lot of dependencies to the SDK, which we didn't want to add anything that wasn't absolutely necessary. So as far as the basic service layout, I was talking about the proxies before and this is kind of where they play in. When you create your connection, the proxy objects, depending on what services you've requested, get loaded into these service names and so rather than use the service names, that we're kind of all familiar with, Nova, Glance, Cinder, et cetera, our service names are based on the actual service they provide, which should give a more intuitive for the user, for most users anyway, not necessarily open stack users. So we're using compute, image, object store instead of Nova, Glance, and Swift here and then within that, that's how you get down to access the methods for that particular service through the connection and so we're supporting, have some support, at least some level of support for 13 services currently. Some of it's pretty good and some of it's just a bare minimum, but adding the new services and the new resources tends to be fairly easy. And while we were building this out, in order to come up with some nice APIs and get an understanding of what we're actually doing there, we chose the path of go as wide as we can and as deep as we need to. So we ended up with these 13 services and we figured out, looking at a couple things to see implementing this service is the same as when we've already done, so maybe put that off later and find something that looks a little bit different. If you look at the Swift APIs, they're very different than anything else so we went pretty deep on that one to make sure we understand how that is and we've come across a number of differences and so we try to dive in and do these things and come up with enough of an exercise to have created something, a good solid base to build on. So that's why you'll see if you look at something like the compute stuff for Nova is quite complete but if you look at something like Barbecan, that's one we only got, I think there's two or three calls out of that one. Again, like we were just saying, it's pretty easy at this point now that we've gotten enough of those methods implemented to go add new stuff is not too hard, especially adding a new service. We're going to start building up documentation for a lot of that stuff. If you work on any of the servers and want to have your stuff in SDK, we'd love to help you. It's not too hard to get started. So if we look at what we had before with those, the Glantz, Nova, and Swift examples, we could just cut it down to one set of connection arguments passed to one connection and then just call compute.servers, image.images, object store the containers, and it's going to return each of those generators, each of those returns, resources that correspond directly to the resource you get from the server. So servers is going to give you a server object that has a dot name, that has a dot IP, stuff like that. Image is the same thing. They'll have a name. They'll look roughly the same, and they correspond pretty closely to what's on the rest API. And then so for one particular resource, if you're looking at any given service, assuming the resource is able to support these methods, there are some things like if you look at flavors, you can't do all of these operations on a flavor unless you're like an admin or something like that. So it's not typically there, but in the general CRUD operations, everywhere they're structured the same way so that's a consistent view. Whether it's create, update, delete, find, get, whatever it is. If you have a resource that follows all these, they'll follow the same convention everywhere. And when we're talking about servers, all of these are in there. So create server takes the attributes that it would take to create a server. Update takes an existing server and then can update whatever attributes. Delete just takes a server and deletes it. Find will do, and find we're going to build out, I'll talk about that a little bit later, but find will do some type of searching to find pattern matching based on name or based on image or based on other things. Get will do another get on that server. So sometimes when you do listing servers, you don't get a full detailed look. You get some higher level view where you can get just the name, image and flavor. If you do a get again on that, you get the full details of when it was updated, all kinds of stuff like that. And for listing multiple resources per that type of API, we've chosen to be named after. So it's the plural version of that resource instead of being something like list underscore servers. Because we're working with generators, the list name looks a little confusing. It's sure it is listing things off of the rest API, but it's not creating a list. So we chose this way. Basically, people like it. If not, we're not locked into anything. This is pretty early as you saw 0.5. So we want to make things that people want to use so if that's not a clear thing, certainly say so. We're open to building things people want to use, obviously. Because it is a generator and the way generators are typically used and iteration and filters and stuff like that. In a lot of the tests we've been doing for usability and stuff like that, it ends up working pretty well for us. But we're five people that are working on it. So we obviously can't speak for everybody. And then if you look at apply that everywhere else, you see the same thing. So where you would do create server, you would do create everything. And hopefully that leads to a much easier experience to use. There's less on your mind when you don't have to think about... Like in the Swift example you would have to do, it's either put or post underscore container to do one. So you have to know how it's doing it, the rest of the API structure to do those operations. And so getting to one consistent prefix for these hopefully is a much better experience for everyone. So this is an example of a little bit more detailed example of how you would actually create a server. And in order to do this, we're doing a find basically by name on our image and flavor first. And that find is returning an image resource and a flavor resource. And within that we're taking that and putting it in our create server command. And I guess one of the, you know, Brian worked on this, but this is one of the interesting kind of features that we have that this particular property of the server could either be an ID for that image or it could be a resource. So that's fairly powerful. Like if you knew the ID of your image that you wanted to use, you could just provide the ID as a string and you would save the extra rest call. But in this case we don't know, we just have a name that we're kind of looking for. Well, we're looking for a particular, you know, operating system of some sort. So we're going to just try and find one. And so that's what we're doing here. And so these named arguments, as I said below, and I was kind of alluding to, I refer directly to the attributes within the server resource class itself. And updating is kind of an extension to that. It does a lot of the same things in that it's, the arguments consist of just a, the server you want to update, or really any of the other APIs, the objects you want to update. And the keyword arguments beyond that are the fields that would be sent in the call. So for servers all you can do is really update the name. So given a server that already exists, set name equals something else, call update, and it's going to send that along. That was pretty easy to grasp, I hope. I guess as far as the update too, you could also, you know, do server.name and set it to something else there and then call update without the parameter. So it's kind of flexible that way. Kind of on the same theme that I was talking about before, where you can use a string or a resource, here we're showing that you could, when you're doing a get server, you could pass a string with the actual ID of the server that you want to get and, or you could actually have the server, or a server resource maybe that you got out of a find or out of a create, perhaps, and you want to get more details on it, you could pass that resource to the get command and get the server details. So it kind of makes that mapping between IDs and a resource somewhat transparent to the user. And especially if you look at something like the, here in the create server, those keyword arguments to that, making it so, it is transparent so it doesn't matter whether you have an ID or you have that, we don't have that fleshed out everywhere because we've been trying to get the APIs right and everything, and so we have a bunch of places where that works to where some places take, you'll see later there's going to be a script we show that does network stuff and it takes an ID, you have to pass the ID right now. We're going to catch up on a lot of the stuff to where you'll never have to worry about if it's an ID or the resource because as we were kind of just saying, the IDs, everything is an ID and so these resource classes are a wrapper on that, it's almost like a subclass of int or string or whatever it is in a way that they're interchangeable. So if you look at deletes, it is a pretty basic thing. Again, it takes an ID slash a resource and the one thing we've kind of added here is the fact that you can recover from a delete if it's a 404, it doesn't really matter so much or it may not matter if you're trying to delete something and it's already been deleted or you've passed the wrong ID or something like that, you may want to just be able to ignore that rather than always have to do a try-catch based on if it's a 404. So that's one little additional parameter now that we allow you to say, just ignore it, it always succeeds whether or not the operation did. And the same thing, we do a method on the list we kind of talked about earlier where the list is going to return a generator that will handle pagination. So it will handle whether or not it's paginated and it will properly keep yielding as many objects as you have. There are a lot of APIs in most of the up-to-date services that are in list form and a bunch of them are configurable on the server to be paginated and there are a couple that are just always, they're done by default. So when you're calling this, an additional parameter that's in there is to say to paginate it or not, there are going to be times where, depending on how your server is configured, if it's your own private cloud and you know that you guys always turn on pagination, you always turn it off, we can only really configure so much of this to know, we know based on the defaults that are in the documentation to say, hey, this is something that supports pagination and it's turned on and handle that. And so what we end up doing there is make a request for something that we know is paginated and go and then we set the limit and marker based on, whatever the default is, say it tries to get 100 items, do another request to see if we get less than 100, we got less than that page size, we got 150 things, stop requesting. If you get another 100, you got a full page, try again, try again, and it's transparent to the user that we're making multiple requests, we certainly are, but you never know because it's a generator, so you're making a request and it just keeps iterating until it's over. Additionally, this is one of the areas we've been working on lately that's want to be able to limit what's coming back. A lot of these ones that are paginated take query parameters in the REST API. So this is something where, in this example, we're gonna look for servers that start with my server and they run the image that we've already found. And so if we had 10,000 servers, this is gonna come up with anyone that's got that prefix and that image and hopefully at that point we're not paginating through 10,000 servers and filtering the client, we're gonna get back 100 and then we can do our unfiltering from there. So fine, we still have some work to do on this one. It works off, currently it's working off of GET, so it tries to kind of determine whether you're passing in a name or parameter and this method is very handy for, before I was working on the SDK, I was doing a lot of work on the OpenStack client and it's a constant battle where you're passed in a parameter from the command line and you're not sure if it's a name or an ID and you can kind of make a guess but still it's not a sure thing so this is something we use all the time over there so what this find does that we've implemented is it does a GET on the whatever's passed in and if it finds it then it assumes it was an ID and then if that doesn't work it uses the list command that we're talking before where it tries to search for that name within all of the different attributes of that or resources and we still need to do some work because part of the problem is that not all the services provide a decent query filter that we can actually use so we may say pass in name equals whatever it is and some services that just doesn't work and it's not actually across services either it can be varied by resource that we found so trying to put something in there it's a little bit smarter than what we have because if you have 10,000 containers you know we don't want to have to iterate through all of 10,000 of them and then find something if we can find it iteratively and add some smarts that containers is a bad example because it does support some of this stuff but anything that's giving you a huge amount of data anything we can minimize the amount of rest calls we're making is obviously a good thing it would be faster so kind of moving forward what we've got going on there's been a lot of talk lately about writing a Keystone auth package and it started and the idea of this package is it's going to just contain well there's a couple ideas about this package but one of the ideas it's going to contain all the auth plugins and that will free up the SDK from being responsible for trying to support all these auth plugins and it'll also allow other applications that don't necessarily want an SDK to use they just want auth plugins so hopefully we're going to convert over get rid of our auth plugin copies and go to this Keystone auth another thing that we have going forward is this idea of service plugins and we've got there's a change request out there that's got a service plugin capability where if you had a proprietary service with your particular provider or maybe you were working on a Stackforge project that wasn't necessarily a popular project yet you could write your own plugin to the SDK and take advantage of a lot of the higher level interface the authentication, the session handling, the transport all that kind of stuff that we've been working on and so that service plugin would work using entry points and that kind of thing and this service plugin it could be a good way to discover how to structure an API for a newer service rather than coming into SDK and all of a sudden you're releasing it and now you have backwards compatibility to think about if someone's building a new service it's probably better for them to live outside of the SDK in a more provisional state be a plugin everybody on your own time figure out exactly how you want to build your API and how you want to the experience you want to build and all the features do that outside and then at some point integrate your service and your support into the SDK because right now we're not closed off to any particular type of service you don't have to be integrated or incubated stuff like that there are Stackforge projects that are currently in there we have minimal support for the CDN service OpenStack Poppy is what it's called there's also Barbican is still yeah, Barbican is still newish there's one of the telemetry I don't remember the I forget it's metric it's one of the telemetry projects so some of those are in there they already have their APIs are baked in so they're not going to move but if you're not to that point yet service plugin stuff whether it's a proprietary vendor thing or a new project would make sense to consider this actually before we do that let's switch back to this it's kind of a more full example of how this looks and so we're not just showing one function at a time it's an example of it's in our example is a slash network slash create I think is what it is a bunch of our examples and a bunch of our we have there's a script out there that does that's of a Jenkins instance and that's what this is kind of pulled from to kind of show how a lot of this stuff works together you know walk through it Terry sure yeah you know as anyone who's worked with Neutron knows it's very complicated to set up a complete network I'm actually creating a network is easy but if you wanted to actually work it's very complicated so this kind of goes through the steps and what we've tried to do is kind of make this method kind of item potent so that you can run it over and over again and it's not going to mess up and if some part of it blows up you can just rerun it and so what we're doing here is we're first trying to find a network with that particular name that we're looking for and the way find works is if it doesn't find anything it doesn't it just returns none and so if we get if there's no network out there with that particular name we create one and then you know we go on and create our subnet in the same kind of way we're doing a find and then a create and you know here we're passing in I guess this is what Brian was talking about before a particular example of where we're not doing our ID to resource mapping here when we're creating that subnet we're passing in network ID equals network ID you know we need to make a change in the subnet resource so that it would accept either you know an ID or a resource and that would clean that up a little bit and at this point that's like a two-line change that just kind of slipped by as we were doing this it'll just it'll be called network and the type instead of being a string which is actually an ID it'll become type of resource property it'll be a network dot network class and that'll again take you to one of those so we're going on and you know down below here we're querying our external network so that we can route packets outside of our private network that we're creating and we're creating a router with that external that knows about that external network and then we're setting up some security groups and opening up some ports on that security group for that network so that we can access I think up above it you know we're opening up 80 and 22 or something like that just so that we can get some basic access to some services and we use this this method quite a bit just as kind of like a you know testing stuff we have a whole process that you know creates a server and a network and fires up a Jenkins server is kind of one of our little examples using this network that created here and so this method is actually something we might add as an even higher level something like this to take on the task of actually setting up a network so right now the current highest level is you know it takes care of your session it keeps taking a lot of stuff and that's these create, update, delete all these methods the ability to say create a server and work whether it's a Rackspace server or a HP server or whatever it is be kind of agnostic between vendors because with Rackspace you get a public IP other ones you don't you get an IT IP attach it there's a multiple step process so we do want to have I'm not sure exactly where this is going to live yet you may be familiar with a project by Monty Taylor called Shade which kind of tries to do some of this stuff where it says just give me a server give me a network give me you know anything that's a multi-step process and try to make that easier and abstract away a lot of the differences and make it into a one step process for users it's something we're exploring soon and something like this is the basis for a lot of that type of stuff and that is basically it we have if you look in our code is on Stackforce right now I'm sure at some point that will change to be under the OpenStack umbrella but it's called Python-OpenStack SDK that's the PIP name for as well our docs currently are not under OpenStack.org they're on read the docs under again the same name check out our IRC channel OpenStack-SDK's it's kind of a multi-purpose one it's not just us it's also the the go and dotnet and a couple other things. Yeah OpenStack client as well is there a lot of the same people are there and every Tuesday at 1900 UTC is our meeting really goes for the full hour it's usually pretty good time trying to make this stuff better and keep going with it. Any questions? If you have questions if you can come up to the mic that'd be best or I can repeat it for you. I'm going to close it. Okay. Thank you. I like this project very much. I have tried it in Sendlin and also in heat for heat but I do have two pain points I think maybe I'm not the only unlucky guy so I'd like to bring it up here. The first thing is about listing resources today we are assuming that all resources can be paginated but that is not true for heat the resource type is not from database there's no logic there to understand limit or marker. So maybe this is a generic thing we need to fix. I think our most recent change is at least somewhat addressed your concern there as far as the pagination I think Brian was touching on before. We don't assume anything that's paginated we have support for it and actually if you don't pass and some of these the proxy methods when they're implemented is when we figure out if it's paginated or not and so we set a paginate equals true flag or a false flag so we may have it mixed up in heat to where we either pass the wrong flag or whatever it is but that's certainly a bug and that's certainly something we could fix because most things are not paginated but we do want the ones that are paginated to be supported so it should be transparent to anyone whether or not it's paginated. My second question is about the service plugin idea but my understanding so far is that that is mostly about inclusion or inclusion of some services but I was expecting that maybe there will be some additional logic we will provide for for example for heat there are something done from the client side for example the guide file function it is actually passing some other files to be included for stack creation but today that may be not possible we don't have that logic in SDK. So you could do two things if that's a well defined thing if the method you have that would do that that could certainly be added to the proxy or in the lower the resource level. For the files to be included there's nowhere to find it's on your disk there's a local file to be included there are some parsing logic from the client side. We could provide an API where they could pass the file name we do have some we kind of went over just the basic create update kind of commands but we also have some kind of convenience methods thrown in there at places we have like a find available IP method for instance and maybe what you're talking about kind of falls into that category where we need to have a special method that would for that particular service the orchestration proxy would have or the heat proxy whatever you want to call it would have a particular method that would do what you're looking for. If that's part of orchestration we should do it. So we're at time right now we'll certainly stick around but we got to shut the video off so thanks everyone for coming hope you had a good time.