Until now we have discussed quite in details origin of soils, their deposition, their transportation, how would you classify them based on different schemes, particularly the geological classification I have talked about and subsequently I will be discussing about the engineering classification schemes for soils. I have tried to give you an overall picture about what the subject is, what the material is, what we are going to discuss about in this course, why this is essential. So, if you remember last lecture when I showed you the PPTs and I had compiled lot of situations where the knowledge of soil mechanics is required to deal with the situations and I had termed this as problematic soils and the way engineers and technologists will take it in today's world, what is known as challenging situations. So, when we study geotechnical engineering one or soil mechanics one, the whole idea is to understand the material, the way we try to understand our friends, our neighbours, our colleagues and then how to deal with them, how to negotiate with them. The language which we use for negotiation would be you know it could be mathematical, it could be physics based, it could be chemistry based, it could be a combination of all those things. In short, how mechanics is used to solve these problems which you might have appreciated in the previous lecture, this is what the theme of the discussion would be consequently. So, having done the origin, genesis of the soil, how it gets deposited, now today I will be talking about what are the constituents of the soil and what are their properties. Because when you try to understand a person or a situation, it becomes quite important to understand what constitutes of this material. So, today's lecture is based on this theme, this is so I will be talking about the constituents of soils, there are basically three types of the constituents, the first one is the solid phase, the second general category would be the fluid phase and within the fluid phase we will have liquids and gases, do not you think that this system is just like human beings, you see if you see our body, we have all the three phases, is it not, we have fluid, we have gases and we have skeleton, bones which are the solid phase, so this is the philosophy which I use to define the soil mass and the way the soil technology can be created in another course, not in this course. That means this system consists of solid phase, liquid phase and gaseous phase. Now, what happens is the engineering properties of the soil are going to be a function of all these properties, is this okay? So, when we talk about the engineering properties, they are going to depend upon all the three phases, that is solids, liquids and gases, solids are nothing but the minerals, we will discuss about this in details, liquids are, it could be water, it could be the effluents coming out of different industries in the form of the pollution, the gases could be air or this could be different type of gases, let us say methane, gas, carbon dioxide, combination of all these things, vapours, water vapours, a simple example would be if I take a soil mass which is saturated, saturated means the one which is soaked in water completely, if I take it out of the water and put it on an oven, so slowly and slowly what is going to happen is that the soil mass gets dried up, that means what is happening is there is a conversion of fluid phase from one phase to another phase, that means the liquids are getting converted to the gaseous phase, keeping a skeleton constant but suppose if I elevate the temperature so much which is beyond the melting point of the solids, what is going to happen? The entire thing will become, it will melt, it will become like lava, these concepts are being used in today's science and technology when we deal with the soils, particularly radioactive waste disposal, where suppose if I want to remediate the soils which are heavily contaminated, alright, so what I will do is I will pardon off some area, I will use laser torches at very high temperature at 2000, 3000 degree centigrade and I will, what can I do with the soil now, what is this process known as, known as, nitrification correct, say it loudly, so this process is known as nitrification, now this is a very big scheme which you can follow in today's world, you know there are not many specialties who can vitrify the contaminated soils and this is a big challenge in the country, how would you deal with these type of situations? Okay, so let us come back to the conventional thing, the solid phase consists of primary rock minerals, clay minerals, the third one is inter granular cement, somebody was discussing about this in the first lecture, the cementation between the two particles, I think I gave you enough logic also and the fourth one is organic matter, in modern day application of geotechnical engineering all these constraints play a very important role, so it depends upon the way I want to doctorine, you understand what is the meaning of doctorine a material, how I want to you know over power the material, how I want to negotiate with the material, how I want to utilize the material, I can use these phases to solve a given situation, we will discuss about this later on. The second phase is the liquid phase, so here we have either water, dissolved salts, now when I say dissolved salts these are mostly contaminants, whenever you get free time please check it on net, there are lot of researchers who are working in the field of contaminant transport in geomaterials alright, in western world there is a big passion, most of the problems where the industry would like to sponsor research and where they would like to appoint you guys with the knowledge of subject would be mitigation of contaminants in the soils and rocks which becomes a geo-environmental study. As far as the gases are concerned we have air, it could be gases which might produce because of disintegration also of the soils and why disintegration should occur because organic matter is already present here, we discussed about this if you remember, so organic matter when it comes in contact with moisture, humidity, temperatures, bacterial activity it might produce gases clear and those gases may get trapped into the matrix of the soil and hence this becomes a constituent, we might be having vapours also, one thing you should realize most of the textbooks deal with the conventional geomechanics, conventional geotechnical, conventional soil mechanics, they are not very contemporary, so what I try to do here is I try to give you an idea about the contemporary subject by including the examples or by citing the examples which are going to be useful in understanding the subject in a holistic manner alright, so that is the state of the art of the material, otherwise there are so many simplifications with which the conventional subject deals with but now the time has come where all of you should be aware of what is latest, I hope this is one of the reasons why people do not like civil engineering number one, why they are not getting jobs number two and why they are not into different areas of activities which they are they could have done in the best manner number three alright, so in most of the textbook you will find like this, now let me add one more phase, I hope you will agree, if I add let us say bioactivity microorganisms is this correct, so this becomes contemporary geotechnical engineering, this is fine, in textbooks you will not find this, so should I teach all these or not, any after effect of this, what will happen, suppose if you know all these things, microorganisms, when you talk about microorganisms, so as a third year student you can eliminate this part completely, this is just for general knowledge, we have pathogens, you must be studying all this in environmental engineering courses also, virus we have bacteria, we have fungi correct, that also gets converted, so whenever you get time please go through their papers and see what type of systems we have been talking about and how do these systems constitute the soils, so now coming to the primary rock minerals, see these are basically the pieces of rocks which gets disintegrated, disintegration is nothing but the weathering also alright and the attribute is that this would be having several minerals, so there are few guys who are experts in petrographic examination, I think we discussed about in the first lecture, so I will take out a rock sample, I will cut a thin sample mostly in earth science department, what they do is they will make a ultra thin sample and then they will try to study the microscopic feature, the mineralogy, the compactness of the minerals age, you know carbon dating and all those things people do, as far as geotechnical engineers are concerned pieces of rocks which are disintegrated from the parent rock, parent body I will write which is nothing but rocks and the diameter of these particles is going to be greater than 2 microns, this is okay, see this is how the classification system started the physics of the material, another interesting thing is, this is the first time you see we are talking about the dimensions, so what happens is the primary rock minerals are the ones who guide mostly the engineering properties of the soils, so these are the ones who are responsible for engineering properties of the soil, we will be talking about different types of engineering properties, how would you compact them, how the water permeates through them, how gases permeate through them, how to consolidate them, what will be the strength of these materials, when do they collapse and so on, so here we are more interested in their grading and compactness, now sometimes this is also known as skeleton, this is the skeleton of the entire soil system, so suppose if I am coming from Unilever for that matter alright and company asked me to design different type of soaps, lipistics, different types of cosmetics alright, so next time when you use soap you will realize that this soap is nothing but a multi-phase unit constituting of all this and in this system I can add one more perfume, plus one more color, plus one more detergent, plus one more durability, so sometimes soaps melt in the bathrooms clear, some soaps do not melt, why? You can do engineering of the matrix of the system which constitutes of mostly rock minerals, we will talk about these details, the second in the series which is very very important is minerals like human body, what is the importance of minerals in human body, I hope you understand, you take food and they say balanced diet would be the diet which has several minerals in it, clear, so suppose if I ask you to run from IIT campus let us say extreme hostel number 15 to main gate during summers peak summers, those of you who are champions you can run 25 kilometer, 50 kilometer, 100 kilometer, people like me can run say 1 kilometer, 2 kilometer, another person cannot run even 300 meters, what will happen is so it is clear and what happens during sweating, most of the minerals ooze out from the body, oozing out means they get discharged from the body through skin, clear and in the process what happens, if I ask you further to exert yourself you may collapse, clear, the same is the situation in the soil also, later on we will see, if I do not control the mineralogy, if I do not control the minerals properly in the soil with proper nutrition, with proper water, what is going to happen the whole system will collapse and then there is a case like railway track collapsing, embankments collapsing, dams collapsing and so on, alright, why, because the minerals have become altered or the right minerals are not used or the nutrition was not given, whatever you can think of. So as long as clay minerals are concerned, I will be discussing about this in details in a separate lecture because as you must have realized from this discussion clay minerals are the most important thing in the matrix of the soil. So this will be discussing separately, normally these are the byproducts of chemical weathering of rocks, I hope you understand the difference between the two, the first one which is primary rock minerals is the physical process, based on only the size, clear, this process is clay minerals are mostly formed because of the chemical process and this chemistry of the material guides its mineralogy, alright, so mineralogy is nothing but a chemical form of a material, so this influences mineralogy, we will spend enough time on this to study. Normally clay minerals are very small in size, so the way I wrote here D is the diameter of the particle alright or the size of the particle, particles need not to be spherical all the time, so when we talk about the clay minerals these are not spherical particles, they are going to be needler alright, so they will be needles, plate legs, mostly tubes and rods, incidentally bacteria is also like that, are you realizing this, most of the time the bacteria is also either tubular or in rod form, now this is a very good interaction you know bacteria interacting with the clays and what happens and why, they have very large surface area and we call it as SSA, we call this as specific surface area and this is basically the total surface divided by per unit mass, so suppose if I assume a cubic structure alright, this is a basic unit of a structure where these are the particles of the soil, I am assuming them as perfect sphere, so you can imagine if you see the front view you will find there are 4 particles sitting like this and I can always construct a cube out of it, is this okay, so d is some dimension, now this dimension could be the diameter in case of the big particles if they are rounded or this could be plate leg, so I will simply say the length is equivalent to d, so what I am trying to emphasize is these sizes are going to be extremely small and they are less than 2 microns, so the first difference which we have created between the different constituents of the soils is based on the physics, clear, the second one is based on the chemistry and both these things are coming from the weathering process, you take a hammer and start hammering on a big stone, so what is going to happen, after 1 hour everything will become pulverized and it is up to me I can use ultraf, you know pulverizers also and I can crush it to small small particles even less than 2 micron also, nanosize particle, most of the Ayurvedic medicines work on this principle, what do they do, have you ever seen Ayurvedic doctors, they have a pestle and mortar, so what do they do, they will put some tablets and they keep on crushing them, why the more finer you crush the more active it becomes, in other words what I am going to get is by decreasing the size from here to here, you are reducing the size of the particle, you are making system ultra active, so this material was a stone, it was a good paper weight for my office, the moment I have crushed it, I have made it nanoparticle size, it becomes what, a medicine, you understand, I can put it in concrete, the durability of the concrete will become 200 years, 2,000 years, so all these Roman people, Roman empires, they were so intelligent, what did they do, they took rice husk, they took bagasse, bagasse's residues of this sugarcane, they incinerated it and after incineration what happened, these material got converted into ultrafine silica particle, clear? And the moment you put it anything, it becomes hyperactive, so the cement which they have used 2,000 years back, 3,000 years back, still the walls are there, go and visit the entire Rome, anybody has been there, see this should be very good, you have been there, where Turin, you have been to Rome, very nice, so all the structures which you are seeing over there, how many years old they are, thousands, they have started right and see they are still intact, why? And we cannot make buildings for 50 years even, what is the reason? The basics and science behind the materials is missing, though we have beautiful SCN microscopes and what not, but we are not using the knowledge, good. So, did you follow something interesting? If I start from here, if I crush it by grinding, there are many companies in India, what do they do? They take slags from industry and they pulverize it to the nano size, they call it as microcement, ultrafine fly ashes and what do they do? They directly add it to the cement, clear? That is it, it becomes green cement. So, remember the movement particle size decreases, the specific surface area increases, when specific surface area increases, this material is bound to become hyperactive. So, what can I do? If I use the right species of the rocks, right species of the minerals, they will be having medicinal value, metrogene, what is metrogene? Medicine, when you have loose motions, stomach upset, what do they do? They will give you a capsule of a sort of a mineral, that is it, okay. So, that is what I said, this was the paper weight for me, big size particle, what I am going to do with this, nothing just decorate on the desk, crush it and see the magic, physical alteration, all right. I have increased the activity. Now, this activity I can do in several ways, nature does by chemical weathering. In an industry, you can open up an industry tomorrow, collect all the dust which is lying outside your industry, process it by different type of chemicals and you can produce best possible, best grades of minerals which you can sell in the market. It is a big market in the market, clear? You can sell it. So, I hope you are realizing how nature, what it has done in millions of years, I can do it within few hours and that is R and D, there is science and technology, you understand? And then I can use for any commercial purpose. Read some of you who are interested in opening up your industries, silica reduction technology, SRT, it is a beautiful subject to work on. Whatever clay sands are lying over here and there, if I can process them and if I can take out the silica in a suspension form, somebody was asking about this in the very first or second lecture. If I can take out all the silica from these quartz particles and I can make a suspension, this becomes a beautiful medicinal application in terms of transplantation. I hope you understand different type of bone marrow replacements, different types of, you know, cosmetics and whatever, wherever they are being used. So, this is the scope of the subject, I hope you can understand, a lot of things can be done with this material, it is a magic material, is this okay? Because we are in the profession, we use it for making buildings, foundations, there is that. Is this part clear? Okay, so the quick answer would be, I would like to use them as chemicals. What is the difference between homeopathic medicine, ayurvedic medicine and alope and homeopathic, ayurvedic and allopathic, what is the difference? Quick relief, long term, homeopathic somewhere in between, allopathic, immediate and further injection. So, whatever suspensions I have taken out from these stones, I will take them out chemically, I will inject in your body, done. I use this concept to treat most of the caves and their statues in the Ajanta and Allora, this was a beautiful project which I did. I did the dripping of the statues with the calcium silicate, getting the point. So, micromaterial, it can be injected into any system and this becomes strong system, durability, is this okay? The second thing, look at your question, repeat your question again, another angle of your question, yeah. Sometime back I was talking about the Deccan trap, Deccan peninsula, basalt granite, over the years what has happened, millions of years what has happened, the weathering is going on in the natural process, resolution we were talking about, resolution of rocks. That means this rock got weathered physically, chemical action started, what happened? They got converted to very fine clays, marine clays, they got deposited there and marine clays have lot of chemicals into them, chlorides, sulphates, carbonates, bicarbonates and there is a whole world of microscopic activities which is going on inside. So, now I hope you are realizing that from where to where to where we can fathom, we can travel, is this okay? So, normally if I consider this as d is the particle diameter, though this is not valid for fine-grained material, why? Because fine-grained materials will not have spherical particles of diameter d but this is an assumption. So, here the surface area would be 6 times d square, this is okay, 6 phases of the cube. So, total surface area is 6 d square, this surface area is available for the mineral to interact with water, interact with contaminants, interact with environment, interact with fertilizers, interact with microbial activity. So, the more and more surface area you produce, so suppose you are facials, you use, you know, mustani, mitti and all, fine particles, bentonite, if I put it over here, what is going to happen? This material has such a high surface area that will take out all sorts of dirt, sweat, microbes, whatever from your skin and skin becomes fresh, is this correct?  So, this is one example I have given you, I have dysentery, I have enough water in my intestine, use the minerals in right dose, it goes in the stomach, it forms a big gel, blocks intestine, you are done, as simple as that, is this fine? So, this is and mass, how do you compute the mass of this system? So, volume is known, d cube and multiplied by density. So, density of the system would be, I will use the word g, g is known as specific gravity, we will discuss about this later. And to define the specific gravity of the skeleton of the soils or minerals, we will use as prefix as gs. But after this discussion, I will not use gs, I have for the sake of simplicity, clear? So, g is the specific gravity of the minerals. So, this thing multiplied by gamma w, what is gamma w? Sorry, this is the unit rate. So, in geotechnical engineering, you have to be slightly careful about this term, because the moment a certain context comes, you will find that gamma w will go for. So, gamma w is the unit rate of water which is density of water multiplied by g value, clear? So, this term is density of water multiplied by g, this is a surface area. So, one of the ways to classify the minerals has been based on their SSA. So, suppose if I ask you that there is a mineral like, let us say Montmorillonite, which you are talking about. This SSA would be almost 800 meter square per gram. One gram of the Montmorillonite will show you how many meters square of the area, how many of you play football hockey? What is the size of the hockey field? Approximately 900 by 90 by 40. So, 19 to 40, how much? 3, 6, double 0, meter square. This material is 800 meter square per gram of the material, imagine. That means 4 grams of the material is going to show you the same area as of the hockey or football field. Are you getting a feel of it? Did you get a feel of it? In most of our Indian marriages, what do they do? They have this healthy function, is it not? What is healthy function? In Hindi, they call it uputan.  They will make a ball of that by adding water and they simply put it on your skin. Why? This powder is already in the final form of grains correct and you add water and then this becomes the best possible disinfectant along with turmeric, got it? This is the basics of the entire thing.  You want to use this material as a bowler or as a batsman or as a wicket keeper is up to you or as a golf man. Agreed? This is the number. Most of the current practices in mineralogy are based on this number. When Fukushima accident happened few years back, somebody contacted me and they asked me to convert the material on which I do my research to bring this very close to 560 value because then they would have used that material directly from India. They would have spread it on their beaches. What for? Good example of surface area. Whatever radioactivity is spread on the beaches, these minerals will simply hook them up. They will not let them go. They become naturally occurring, surfactants, cleansing agents, got it? I can use them in medicine, more surface area with that 1 gram. What is the size of the intestine? I am sure not 800 beta square for 1 gram of the thing. So, what is the size of the capsules on the medicine which you take? Approximately 1 gram.  And what do they do? They clog the entire thing. So, the more and more water they come in contact, the more and more water gets pumped on them. So, in the next lecture we are going to discuss about the whole chemistry of this process, electrochemistry of this process. But if you realize that most of the discussion is revolving around the applications part, industrial applications part and this is where you will see that these 2 subjects you cannot get rid of. Let us move ahead. So, incidentally just to give you an idea about the clean sands, have you ever seen a scrubber which is made up of clean sand? The scrubbers I think you understand. What are scrubbers? See, when your feet become very dirty, what do you do? Pumic stone. Yeah, so whenever you know elbows or feet become very dirty, what do you do? You grind them with this, correct? So, compare this thing with sands. Sands have mostly abrasive effect. There were few detergents which came in the market when you were kid and hence they were not very popular but they were very popular because they were very cheap. So, they have most of the abrasive effect in them. Now, by mistake if you use them for your changing your let us say steel, crockery, utensils, what is going to happen? They will leave a mark. So, they started using soft minerals. Soft minerals are thin plate plates, hyperactive chemicals, chemically. You just put a drop of it and it will clean the entire system. I can use this for cleaning the plates. I can use it for cleaning up of the environment while spills which happens in sea, oceans.  Whenever two tankers, when they are bringing oil from different countries and they eat something and there is a spillage or there is an oil slick which is taking place, you must have heard two years back of course, from Bombay it happened. How are you going to clean up this system? So, this becomes environmental cleanup. So, from body cleanup to utensils cleaning to environmental cleaning. The concept remains same. Is this part clear? Have you understood? I have given you the clues for the raw material and believe me inputs are almost 0. But imagine what you are going to produce is much more costlier than damage. So, let me talk about, yeah, so the logic here is the moment I start crushing them, the specific surface area is going to increase. It depends upon your crushing ability, chewing ability.  Why? To mix it thoroughly with the saliva. When I am making good cements, what should I be doing? Finest particle, mix thoroughly, let it set. Beautiful. Extremely, you went to Rome, no? Rome. So, see extremely durable system I can create. Nothing is going to impregnate through it. Durability has increased, strength is taken care of. System can live forever, forever. Okay. So, now let us talk about the intergranular cement. So, intergranular cement, mostly these are because of the cementing materials. What are the cementing materials normally? Carbonates, bicarbonates are weak, iron compounds, oxides, calcites. So, other day you were talking about MICP, if you remember this thing, microbial induced calcite precipitation. So, what bacteria was doing? It was producing calcite which is getting deposited on the sand particles and the soil mass becomes cohesed, cohesion. This thing appears naturally, clear? Many times when you walk on the sea beaches, you will realize that what water does to this free sand? Let me ask you a question, you go to any chapati. As long as the sands are dry, can you run on that? Can you drive a car on that? Yes or no? When it is dry, why? First of all answer, what is the answer? You have never been to a beach? You can drive a car or not? Why? Material is frictional fully. Take this material and do a simple test. Next time when you go, take 2, 3, 5 grams of the soil and rub it and see what is the friction, that is friction. You have gone to very high-five answers, simple things first understand. What is the difference between dry sands and wet sands? What water does to the sands? What about the surface tension? Are you getting the hints? So, water in sands make it strong. Why? Because of the surface tension. So, on wet sands, you can easily drive the car or the horse ride and whatever, clear? So, water acts as a cementing agent though temporarily. You got it? Now, most of the cementing materials are produced during weathering of rocks, silicates, carbonates, bicarbonates, iron oxides and so on. Depending upon the presence of the cementing agent, we can classify sands. If more calcium is present, it becomes calcareous soil. So, calcareous soil is the one where you have lot of calcium impregnation in the sand particles and calcium carbonate is the deposition which takes place all around the particles and when two particles come in contact with each other, they become a unit, they get cohesed. So, basically this is deposited on the surface of the particles. Cementing materials or inter granular cements are responsible for imparting strength to the soils. Later on the second course, we will be discussing in great details about the effect of cementing of the particles on shear strength characteristics of soils. Tell me one thing, what is going to happen? Suppose if you take an example of calcium carbonate which is naturally existing and suppose there is an industry which is producing sulfuric acid. Now, what is going to happen nearby on the beach itself? First of all, what acids are going to do to the carbonates? I hope you can understand what human activities are going to do to the soil deposits. So, suppose there is an effluent in NALA, most of the time we do not cover them, we do not channelize the NALA flow properly and this NALA is coming let us say from different parts of Dharavi and industrial units, Mithi river for that matter. So, what is going to happen? It is containing all sorts of chemicals into it and suppose chlorides, sulfuric acids, SCL, HNO3, they are too much, what is going to happen? These acids are going to attack the cementing materials which are present in the soils. So, what is going to happen? This interlocking of the particles gets dissolved. So, what is going to happen? When rain comes, flooding takes place, excessive discharge from the industry, what is going to happen? Erosion, is this funda clear? So, whether it is a natural process or this is a man-made process soil erosion, how many of you can fight a case in the court of law? That this is man-made, this is not natural and hence this guy should be penalized and this is the penalty on this industry, that is what I do, got it? So, the more and more industrialization is happening, what we do, people like us, we create a case out of it, we defend governments, we defend individuals, we have a profession. So, I will take samples from that place 20 years back, what happened, today is what is happening, I will prove that this is a human activity, clear? Because the top layers are only getting affected, the bottom is not affected, this becomes forensic engineering, a big profession which is the need of the hour. So, for detectives like you do forensic examination, I do forensic examination of different areas, what deteriorated my property? Somebody is going to file a suit, no? Yes. Are you getting this point? The professions are getting generated on the basics, are you realizing this? Many times, see water because of the presence of all these chlorides, sulphates, magnesium, calcium, sulphur could act as a dissolving agent, we have talked about this in last lecture also, we showed you. So, the moment cementing matter is lost, intergenerational cements are lost, finished. Another thing common sense says, as long as the calcium is present in the body or on the soils, what it does? It is a nutrient, agreed? So, whenever you have deposits of calcium on the particles of the soils, what is going to happen? These guys are going to be there, is this correct? Yes. Fine, because calcium is a source of nutrition. So, most of the calcareous sands are formed because of the microbial activity, naturally which occurs in the nature and you will find several examples. I think I have sent you some links also, go through that. This concept was used by our great emperors to make their castles, ports and what not. And over the years, this is not going to get dissolved, why? Because these type of calcium are not inorganic, their source is organic. So, most of the dams right now in the country are having a serious problem, if you are following the newspaper properly, you must be realizing that most of them are in a serious trouble, why?  So, the big issue is there is a scheme of government of the not government United Nations, where they have funded most of the third world countries to take care of their dams because if dams burst, what is going to happen? Everything is interlinked. Now comes the organic matter. So, most of the time the organic matter is derived from the plants and vegetation, the composition of plants and vegetation normally in top 30 to 50 centimeters of the soils. So, this becomes a zone of interest for very few guys, for civil engineers, this is not a very good zone to lay their foundations, understand? Why? This becomes a layer in which the agriculture is going to prevail better because of the organic matter which gets decomposed when it comes in contact with water, when it comes in contact with atmosphere and so on. But as far as civil engineering is concerned, geotechnical engineering practices are concerned, I will make it sure that my foundations are rest, where is that foundation guy? Yes. So, I will make sure that most of the foundations are going to rest beyond this zone, which is inert. Now this system is chemically, bacteriologically active. So, this is the delight of any agriculturist, but not for a foundation engineering guy. Another important thing is organic matters leach. So, it depends upon what form of the matter is which is leaching. So, this may get washed out, it may get leached due to excessive flooding. Let me ask you a question, how many of you are in favour of making dams and how many of you are not in favour of making dams in your country? Why? Suppose if you have to become an advocate tomorrow, you know Meza, Meza Parker, what she has been doing? Yes, figure it out. She was against, why? What it has to do with the context of my discussion? See, I have written here the leaching due to flooding. Why? Why I am asking this question? What is the relevance? One issue, social issues, displacement of the people, all right. Number two, no water reaches. So, we will discuss this that how creation of dams makes adjoining lands barren. So, if the case comes to me to fight, you know, if somebody appoints me as a legal advisor, what I am going to do? I will prove that making of this dam is going to create the lands barren. It is not only the displacement of the people, of course, that is number one social issue. But more than that, the technical issue is we will talk about this analysis that how the water which is percolating through the body of the dam is ultimately going to wash out all the organic matter and the nutrients because nutrients are going to harp on organic matter. Why? Because of the virtue of microorganism. Is this funda clear? Forever. You will remember this. Excellent. So, the point is that the fresh organic waste, when it comes in contact with air and in the presence of bacteria, the decomposition starts and after decomposition, what will happen? When soils get decomposed, they get converted into humus. You remember, we talked about humus, organic matter. Is this fine? Have you understood the whole thing? As a civil engineer, as a geotechnical engineer, I will hate to have this material in my system. So, what will happen? When I practice geotechnical engineering, I will make sure that I will bring the soil to the lab, put it in oven, get rid of this portion and then I can control other things better. So, most of the time, organic matter is determined by putting the soil mass in an oven, heating it at 100 degree, 80 degree, 70 degree, getting rid of all those things and then analyzing them.


I'm Eric Anderson. If you ever see me come across me on GitHub, I meet Joana A6, and I'm a software engineer at Google. Honestly, I'd be OK if someone asked me a question while I go, but it might be a little easier for mics or things like that. Granted, I can repeat back if we wait to the end, but I'm not really too upset one way or the other. But I do have time for questions. And so I'll be talking about modifying GRPC services over time, where basically you've got your service. Apparently, it's not a fixed thing, and you need to extend it. So as far as intended audience, there's actually a couple different ways you can go about this sort of talk. But I hope that you've toyed at least with GRPC and Protobuf. You know what the Protobuf compiler is to give you the generative code. You have messed with a couple different primitive data types in Protobuf. Those things aren't scary to you in any way. That's where I sort of hope that you're in that sort of that place in order to really understand the talk. But it's, I guess, you'll have to dill if you're not. But also, you've started making your own services. You've started playing with it. And then you start getting questions of should I do this or that, or surely there's a better way to do this. And so you're searching for some best practices and idioms. I need to make some assumptions, though, because there's many, many different ways to use the stuff. So I am going to assume that we're caring about cross-platform, cross-language. And we can't do tricks that only work for some people, for some clients, or something like that. Also, I'm assuming this is GRPC native. I know that using REST with GRPC is definitely a thing. I'm completely good with that. But it's not going to be as much of a focus here. There's actually some other documentation on how to build nice, clean REST APIs with GRPC. Although I am aware of it, so it'll seep through some places. And also, I'm assuming that servers are updated before clients. This might seem completely obvious to you, but if you have a back-end scenario that you're using GRPC to communicate between two servers, you can totally have you update one server before the other. It's actually a client, and it sees some new updated protos and fields and stuff before the other. And so it's not as much for those cases. Granted, you've got some things that are harder in that case, because you can upgrade both ways. But you also are in more control, so some things become easier. But I'm not really talking about that. It's also not the case of someone defining a service, and now there's going to be multiple implementations. If you're doing those sorts of services, you have to have a little bit different view of what is supported by the server. So we're talking about changing something over time. There have to be some constraints. Well, that's actually compatibility with all the people who are currently using your service. But there's lots of different types of compatibility. You can have binary and source compatibility, which relate more to the generated code. And that involves particular languages. Then you have wire compatibility, which would be how are things serialized on the wire? It was doing that earlier as well. And then you've got behavioral compatibility, where everything's good on the wire, everything seems fine. But your application is now, let's say, interpreting something differently than it was before, and that ends up breaking a client. So to just start, we'll take a binary and source just at the same time. And there's actually quite a few languages that Protobuf and GRPC support. And so that means basically all bets are off if you're trying to do something fancy. If you rename or remove something, those totally will break someone. That's not surprised anyone, probably. If you change a method type from one name to another, that's going to change method signatures. That'll totally break people in statically compiled languages. But maybe it wouldn't break broken someone if they were using Python or something like that.  I'm now going to make an N64.  They're both integers, but lots of languages will not be happy with you on that, because it'll be an implicit cast or something like that. So that basically leaves us with adding services, methods, messages, and fields, which if you've done much like library API maintenance and stuff isn't surprising, you can basically add stuff. That is the limitation. And so as we sort of go through this, it's like, OK, how do we make use of this knowledge? So let's say we just sort of had this conceptual library service, which is used as an example in some places. So we want to be able to create a book, go ahead and get a book, list stuff, delete stuff, and update the book as well. And so I put in list book here as a string. That's going to be some identifier for the book. It's going to be, let's say, the book name, or it's guaranteed to be unique. And over in list books, if you're not familiar with protobuf, the google.protobuf.empty, that is just a message with nothing in it. So it's the equivalent of a void in some languages. So this is sort of what we're starting with. I'm not saying that this actually works, but this is what we're wanting to do. And we're sort of going from here to make it actually maintainable. And so I introduced some of these best practices. We should plan for the replacement of the service ideally. So right now it's suggested to include the version number in the package name itself. So up at the very top that we have the package. That's what I'm talking about here. So you could include a v1. It's actually not that big of a deal if you forget to do that, because you can have a v2 on the v2. But having a version in the package or in the service name itself can be a good way of separating things whenever you have a breaking API change in the service change in the future. Also, GRBC doesn't let you have multiple arguments or some things like that. It relies very, very heavily on messages and you extending messages. So you want to use messages for your extending point, because that's the intention. If you sort of avoid them, you're going to have some trouble. So when in doubt, create a new message for each RPC method. So you've got foo method, and you're going to have foo method request and foo method response. And you can just go about that just all day long. And that allows you to have a very, very fine scope for adding things in the future. And then you can also feel free to add new services and methods as necessary. You don't have to limit yourself to just a very, very few number of methods. You can add them as they're useful, but at the same time don't have an explosion for every single different combination of possible arguments. This is probably nothing very special. Methods are great, but if you have tons of them, you start drowning in just the accounts that they are. And so here are some of the changes that I made into that earlier sort of conceptual model. I've gone ahead and put a v1 in the package. And then I've created a request arguments for each of these, or request messages for each of these methods. And that means that if in the future list books, now all of a sudden we want to, let's say, have a filter for you to be able to, say, only certain books am I interested in, you have a place to put that. If you didn't do this, it's not the worst thing in the world. You would just need a new method that then has some message where you could specify those things. But adding extra parameters to an RPC just happens all the time. And so you can plan for it a little bit, and then you avoid having tons and tons of methods. That one was sort of rusty. Let's say that we've got something more functional, like computational. And so let's say we've got this nice infrastructure. We're in the infrastructure, and we're providing a clock service. It's really, really advanced. You call it with no arguments. That's the empty. And then you get back a timestamp. This is in some ways fine, but you might instead choose to go ahead and make the request, make the response, message types, and there they would just be on the end. So this seems boilerplate plating. Again, it would have been OK if we forgot. We would have just ended up having a get better time method later. But doing this ahead of time does save us that cost. And really, for the users, it's not that much harder to use this API versus the one we had before. So it's not with too much cost. Oh, hey, hello, people chatting with me. All right, so that gets us binary and source. Now we're going to go ahead and go on to wire compatibility. This one's a little bit more in-depth. So RBCs and gRPC are only distinguished by their name. So that is the package they're in, the service name itself, and then the method name. Anything else than that is implicit. And so that means request and response types are implicit, those names that are used. The cardinality, whether it's a streaming request or a streaming response or just a single request, those things are implicit. That means you could go ahead and add new services and methods because those have a different name and such they won't collide with anything before. It also means you could change a message from one type to another if you were really wanting to. And you could go ahead and add a stream keyword to an existing method. But because of where we were before with APIs, doing those last two will totally break people at compilation time. Now granted, if you can force people to get a compilation error, and then they'll update, but it doesn't work as well. Wire compatibility for protobuf is even a little bit more granted. A lot of people have had familiar, are already familiar with protobuf, so they may need to be aware of some of this. And some of this is slightly different in proto3 than proto2. But message names are implicit. So if you change the message from one name to another, it can act like the same thing, except when that's not the case, like any. And except, I guess metadata would also be a common case where it sort of leaks through. Field names are also implicit. That's why we've got the tags. So you've got the equals of one at the end of your field. Those are also implicit, except when they're not. Converting to and from JSON is pretty common. And FieldMask is maybe something that you might want to use. I'll talk about it later. So I'm saying it is, but then it's also not. We do know that field tags are explicit. You cannot change the tag where it says equals one, equals two, equals three at the end. If you change that, yes. You're totally going to be breaking someone. That should not be a surprise. One interesting thing is some tags are the same on the wire. Sorry, some types are the same on the wire. Int32 is the same as int64. So that means you could actually say, ah, I need some more bits. I'm going to upgrade this to an int64. As far as Protobuf is concerned, that would be fine. But it's risky because of the API and the ABI stuff earlier. So really nothing new. Our limitations were pretty existing. We're really just limited by binary and source compatibility. So I don't know what that same practice is. Oh, yes, we follow the same practices we were talking about before with the binary and source. Now, yes, you've got more options here. If you don't care about that binary and source, you could do more fiddly bits here.  That means I can control things. However, in a larger application, even if you control both sides, it's actually really hard to make a breaking change all at once to the entire code base. And so you start having to abide by the earlier rules. You really only get to break stuff whenever it's a small enough project and you control both sides. And then that takes us to behavior compatibility, which is actually really, really wide scope. Most of your effort I think will actually be spent here. The other stuff, you can add stuff. That's easy. We move on with life. Here is the application-specific pieces, which means I can't necessarily solve all of your problems. Everyone's gonna have a different problem. But there are some common patterns that you might actually want to know about. So here's some of the best practices I want to talk about. We'll go ahead and start with the new primitive fields default to zero or empty string or each primitive sort of has its default. Now, that is actually a statement that is just true. That is how new default fields work in Proto 3. The point of this is to actually accept that. That's how Proto 3 works. Don't try to avoid it just because you think that that's silly. There are ways to avoid it. There are ways to get around it. But if you just let the zero value be the I don't care value or the default value, you'll probably have a better time. If you need to, if you need to know field presence because that was removed in Proto 2 to Proto 3. There are these wrappers and in fact, it's called wrappers.proto. So every primitive field has one of these wrappers. And so it's really, really complex as in you've got a string value and it contains a value. That's, it contains a string value. That's all we're talking about. These are not anything that are really special. It's just that we need them. And so there's some well-defined ones that are already made for you. So you're free to use those. Also, if there's a couple different fields that you need to sort of know about whether they're there or not together, you can go ahead and make one of your message that's custom that has those specific fields and that message overall is either present or not. But all of this relies on the fact that while we lost field presence for primitives, it's still there for messages. And this is actually not really all that strange. Most programming languages actually deal this way. You have an int in your Java or C, and there is no, oh, this int isn't there. You're sort of forced to make it zero or negative one or something like that. And if you need it, if you need to know whether it's there or not, you end up making a pointer to it and then having it be null or something like that. That's the same thing as this. This is just normal boxing that takes place in languages. So moving on, there's updates. Whenever you add a new field, if you're not a little careful, you could actually have some client that's doing an update clearing that field. So let's say that we've got our library service before, so I just took out the important parts. We've got update book and I ask, all right, this is the book I want the new contents to be. That's in the request. And then in the book response is the name, the author, and the title. And that's really all we have right now. Well, and I guess, let's say that I'm actually, there's a client that's preexisting today and it looks at the book request and it goes ahead and updates the author name because it was misspelled or something like that. So it would commonly get the current book. It would modify the message and then it would upload it again via update book. If we end up having a new field because apparently users were forced to keep on reading the same book over and over, we're now going to introduce this field called red. And if it's red, now then we have a little icon or something on the UI to tell, hey, user, you might not be as interested in this book. So if there's an existing client that was modifying the author, it downloaded it. The red bit was let's say on, whenever it processed that, that client which was older would throw it away because it wouldn't know about red. And so then whenever the client then modifies author and then uploads the changed version, the server now thinks that the client was clearing red because it looks at the value of red and it's now zero. So it's now accidentally performing a change. This was not as much of a problem in Proto 2 because you had field presence. So you'd see, oh, red isn't there. It must not be a set. So, Fieldmask is actually a partial solution to this. You might not have looked at Fieldmask before. It's there, but it's not necessarily advertised in a lot of places. And so basically all it is, is you say which fields you care about. This is useful for both querying, where you say I only care about these three fields, don't bother looking up the rest from the database. But this can also be useful for updating, where you say these are the fields that are actually selected. And so it can have basically a repeated field of pads where you specify. And it works fine with sub-messages. If you have messages nested inside of other messages, you can say just the fields you're interested in. And Fieldmask defaults to all fields because this works pretty well for querying, where you say just get me everything and you don't need to fill in the Fieldmask. The reason I say that this is a partial solution is while it would solve our problem from before because the client would say I only updated author. And so the server would know to only update author. It's really annoying to use all the time. It's fine to use some places, this doesn't hurt, but if like every single API you started throwing this in, you'd get it probably pretty annoyed with specifying these fields. But this is how you would use it. So we had our update book request from earlier and you just go ahead and specify a mask in that request. And then this is what Java would look like, but each language has some helper utility in order to use this Fieldmask. And so we go ahead and get the name of the book and we load the book from the database with its current values as they are right now. Then we do this utility function. What this does is it copies fields, I can even point with this, eh, no. It copies fields from the request book into the destination book, into the current version that we just grabbed from the database, but it filters based on the mask. So it only copies the ones that are listed in the Fieldmask. And at the end of it all, we'll go ahead and push the book back into the database at the very, very end. So that's basically the flow. There are some options on the Fieldmask we tell, if you're doing this yourself, you should probably take a look at those. But it's sort of not important for this. So going a little bit more, I mentioned it earlier, there's actually some other API guides. The rest one suggests not to add new fields to things that are updated in this fashion. Not all of your messages are used with that sort of update request. That's actually a little bit hard in my mind. Granted, there's reasons for it. I think that this is still slightly an unsolved problem, except that Protobuf 3.5 re-ads unknown field support. So the initial problem was that the client threw away the request, sorry, the red field. With unknown fields, the client would go ahead and save that. And it has no clue what it is, but it just saves it. And if that message gets serialized again, so it didn't know it whenever it read it, whenever it serialized is it again, it'll go ahead and re-add that field. And so it's just a pass-through mechanism. And that's useful if you end up persisting stuff in a database or something like that, like a local data cache or something like that. Whenever you do understand what these fields are, you would be able to read them. But also in this case, it allows pass-through. And so the unknown fields are no longer cleared. So in a couple more months as Protobuf 3.5 sees more and more clients using it, this may be a problem that is just not an issue anymore. It just sort of evaporates if you can require Protobuf 3.5. So some people don't necessarily know how to use air details with your RPC. That's completely fair. So what the suggestion is, we've got the status code. And that's good, but it's very, very coarse. For additional information, you should make a message for it. And you make that however you want. It's useful for your application to say, OK, this failed. Client, whenever you need to know what went wrong, here's what you look at. And you can use a message for each different type of failure or for a small class. There's actually some predefined ones in airdetails.proto. I just took a sampling here. There's some more. A debug info is just like a list of stacks, just as strings.  Or is this a failure because the user ran out of disk space? So it can provide a little more information there. Help just provides a link to a documentation so that whenever someone sees this, they can actually go and look up what the actual more words than can fit in the description. They can look at what went wrong. There's also localized message, which is useful because the normal description will be in English. Localized message can be localized string for whoever the client is. And so then they can read it. So the recommended practice is to use these messages and they need to put them somewhere. That really is put them in metadata, which is what we used to recommend. It turned out to be hard to pass that around in some languages. And it was unclear. You've got this metadata and you've got this air. It was a little unclear how they related exactly what. So was the particular metadata key because of the air? Or was that just extra information, let's say tracing information or something like that? And so Google RPC status is pretty simple. It's the code in the message, which exists in GRPC today, and then an ENI for details. GRPC actually used to use this exact message type for its response status. And there was a point that we decided to remove the dependency on protobuf. And so we went ahead and removed this message. But we decided not to put details anywhere other than just the metadata because the metadata would work well for that. It turns out that it does work. It's just a little bit hard in APIs to propagate all these things together. So languages are receiving utilities to work nicely with Google RPC status. Not every language has it yet, but it's coming. And so for Java, here's the difference of before and after. You end up getting a status, this Google RPC, com-Google RPC status, as opposed to the normal status. And this is what the client code would look like. But then you have that ENI field where you can put associated information if you're propagating it with, I guess, exceptions in Java was a little handled already. Java was able to do it. Some other languages, it will propagate more nicely with error paths. And then the last thing, because we like streams and we like long-lived RPCs, that's one of the things that are really nice to do because you can issue the request and just wait for an event to happen, I highly suggest that you break that occasionally because clients are really easy at avoiding work that they don't have to do. So whether on purpose or not. And so if a client doesn't realize they need to handle the fact that, oh, this RPC might fail before it completes, then they very likely will have some bug in that code path. And so go ahead and if there's something that takes a while, go ahead and sometimes purposefully complete the RPC prematurely. That could just be after a fixed age or randomly just to introduce some noise. And then the client will see that it completed early and then go ahead and re-issue the request and then it'll be able to wait a while longer. There are some cases that this can free up connections, but as far as this goes, I'm mainly talking about it for the client code health. And now we're to Q&A. Thank you. Thank you. He's in the room right here. Oh, none. It seems, oh, look. Oh, oh. So does anyone have any questions? Like this is, I guess, free for all because people have probably dealt with their own problems. Were people following what was happening with the unknown fields? You all might not have even noticed that unknown fields were being added in program 3.5. A lot of people, that probably makes them pretty happy because that was a feature they sorely missed from protobuf 2. So the question was how do the versions work or how do they interact? Are they compatible? So to begin with, most languages, if it's supported protobuf 2 originally, protobuf 3 runtime also supports protobuf 2. So you can mix and match however you want in that case. Now, granted, protobuf 3 supports more languages. It was a simplification in part to allow more languages to be supported. And so you may not have as many client languages that can support it. But if you like protobuf 2, you can keep protobuf 2 when GRPC works, find the protobuf 2. It is, as far as wire compatibility, protobuf 3 and protobuf 2 use the same wire format. There is some compatibility there. The intended way of dealing with it is, let's say you've got a protobuf 3 client and then you've got a protobuf 2 server. The protobuf 2 server sees a little bit more information than the protobuf 3. And so if you're going to have them differ, you would probably have the consuming side be protobuf 2 because you can then see a little bit more information. But it can work a little bit both ways if you're careful. As far as some of the features and stuff that were added in protobuf 3, there's all protobuf 2 equivalents to them and things like that. So it was understood that you might need to mix and match a little bit. And as far as the protobuf 2 and protobuf 3 compatibility, as far as which type you use, those you can actually have protobuf 3 messages include protobuf 2 messages, and even that level. It's not like you have to have a particular tree of messages that you don't cross the streams. You can actually mix and match a little bit more than that. So the question is, when do you know when you break compatibility between systems between protobuf 2 and protobuf 3? Is that what you're saying? So that is basically getting here, add stuff. Don't remove stuff. Don't change names. If you aren't wanting to support JSON or FieldMasks, you can change names. That was classically completely fine to do in protobuf. But generally, nowadays, it's a little bit closer to just add. There was a question over here. So the question is, was there any request from the community for JSON RPC compatibility or translation? I've not seen any for specifically JSON RPC. There is quite a bit of translation between protobuf and JSON. Now, granted, that may not. I think some people will get a little confused on that. That is, if you have a protobuf message, there is a JSON encoding for it, and you can go back and forth between it. I have some arbitrary JSON, and I want a protobuf message for it. It's not quite as useful for that. You may get lucky, but you may not. I've not seen anything for JSON RPC specifically. It seems very possible. I think most of the tools are already there if you were so inclined. But I don't know of any movement in that front. Oh, so not many questions. Do y'all have had no trouble making APIs and letting them survive the test of time? Granted, G-RPC is only so old, but this must be really, really easy. Your problem now. OK, so the question is, is there any way to add Gzip compression after the server is already deployed and the clients are using it? Actually, so the server doesn't support Gzip? And so you're worried that some clients may not support Gzip. OK, so this is dealing some with the handshaking that goes in with Gzip. In general, you should be fine if you are wanting to respond with Gzip. Basically, you should be able to generally just say, I want to use Gzip, and then the server says, the client doesn't support that. And then just it'll send back uncompressed. And APIs may vary a little bit on that per language, but basically, there should be no problem for the server to send back Gzip whenever it wants to do Gzip, because the client informs the server what it supports. The much harder case is whenever the client wants to send Gzip, because it needs to know what the server supports, but the server, there's not a handshake before you do the message. And so the main thing we did there was to make sure that servers supported Gzip before 1.0. So you've got that going for you. You know that you can make a client that goes against something that's at least Jrpc1.0 server, and things should work. But if there's, let's say, a new compression protocol or compression type, you're still going to have that problem. I think that that part is unsolved. I think that we might be able to solve it some with a client config in order to notify the client ahead of time. But if you're just wanting to send back, were you wanting to respond with Gzip? Yeah, so we'll talk about that. OK, so it sounds like you were maybe hitting a bug or an API gotcha. There should be a solution for that. I'm not sure exactly which one you had, but we can maybe talk about that and figure out which language you're in to figure out if there isn't a step. I think it may be possible for some of the APIs to let you choose a compression format that the client doesn't support because you know better. And maybe the client is hiding it from you. But I'm not sure that that was necessarily what you were using. How does the binary payload play into using compression? So the question is, why would you use compression with Jrpc? So there's a couple of different reasons. One, you can compress just one message worth of content.  Well, those bytes might be compressible. And so you're like, well, let's compress them. Also, there's plenty of strings in ProtoBuff Messages. Apparently, they only use so many bits because they're ASCII and things like that. And so you can also get some savings there. There is a further thing that we're working on, although it's in various forms and it may have stalled a little bit because of push. But we were working some on full stream compression where you could actually send a stream. And multiple messages would be able to be compressed with one compression context. That's most similar, I guess, normally to if you have a repeated field. And you've got very similar data. One message to do the next will be similar because lots of data happen to be similar. It's the same name over and over. You've got a prefix as part of your ID name. And so those could all be stripped out. And the full stream compression was also assuming that fact. Also, some people will send HTML responses back sometimes or things like that. And there's plenty of payloads that compress well. Exact time this ends. OK, so it's technically ended one minute ago. Y'all are free. If y'all have any more questions, I'm going to be around. You all can catch me.


okay but we are back we are back from our little break all right and before the Reverend Dr. William J. Eisenman continues with the reading where he left off before William H. Morrill III called I will reproduce the on ominous ominous ominous ominous evil sound that was left on our voicemail by the elitist by the top 1% and the message was always the same it sounds like we are here to kill you the culling of the terrible terrible very terrible and now a little medley somebody died recently somebody's always dying recently famous famous hey you know I saw last night Roddy Roddy Piper Piper really he was on this new show on A&E called storage wars I thought he was he's supposed to be on an expert on the kilt and he gave the guy a price on a kilt one is kilt's not his a kilt the guy got in what they do is you know those storage lockers yeah when people can't pay the bill they sell they sell what's in the store they auction them off I didn't know that and you get what's in the storage thing oh I don't know this was a kilt so he the guy had had the kilt he brought in Roddy Roddy Piper Roddy Roddy Piper tell him how much the kilt was worth it was almost a thousand dollars really for the kill I know every kilt has a different pattern of plaid they call it the tartan and every family every clan every family has it has their own tartan their own design of plaid so it'll plaid is not just plaid they're different the styles you know and oh well you know that show where people swap wives yeah well Roddy Piper is supposed to do it with Rick flair's family nature boy Rick flair that should be really I think it's it's coming up for the new season that should be really entertaining I don't want to miss that do they swap in all manner I don't know I you know what that's a good question they never mentioned anything sexual about it's all compatible compatibility stuff and they end up throwing each other they end up hating each other's guts because you know somebody is being is being pushed on you real quick and all their habits and their lifestyle exactly I'm trying to think of who passed away I don't know who passed away okay famous or otherwise I can't remember continue with that reading about the Republicans and welfare and food stamps you want to start from the top to conclude to read you might so reread it reread about 47 million Americans received the food stamps last year only a relative few are required to work or look for a job as a condition of receiving these aid now House Republicans are considering whether the work requirement should be strengthened as they seek to cut the 80 billion dollar a year program what do people which has doubled in the last five years no kidding because of people ran out of unemployment there on their federal extensions are not there anymore and they ran out and there's no job so naturally there there's more people applying for welfare oh these people are lazy there's no jobs out there where are the job where are these jobs that they the House Republicans are going to require people to get right away where are they maybe slave jobs because they can always they can always make those well what do you think all these privatized prisons are for right I think the internment camps they want to charge people room and board in a privatized prison which which is which means that they they want to use people in prison as slaves for slave labor and keep the poor poor as our welfare programs constantly do very wicked very wicked well what are those two from Psalms the right wing Psalms 10 to Psalms 10 aid the wicked have set their sights on the poor the all the biblical verses that prove and there are hundreds of them that prove that conservatives are wrong how to defeat a conservative bit Bible verses are all collectively under the the front cover page of one of our Facebook groups called progressive hard-hitting truth it's it's a it's a cover you can't miss it it's it's Satan on the dollar bill and right under there you you're going to see all the Bible verses that proves that Republicans right-wing Republicans conservatives fundamentalists whatever you want to call these these demons it proves that their God is not the God of the Bible everything they do as far as the poor is concerned is against the Bible that's true it's anti Bible anti Bible everything they do yes a small group of GOP lawmakers was expected to meet on Wednesday to discuss trimming the program now called the supplemental nutrition assistance program or snap oh yes snap that wants to give you a few bucks a week for food it was unclear whether they would be able to agree on an approach before Congress leaves town for its august recess another vacation yeah but they were still on vacation they were off a month from what I heard wow and they're gonna they're supposed to work nine days and then take another vacation this is no no no they don't work this is the Republican Congress that wants the poor to die and the end of people making God knows they give themselves a raise over here who blames it on Obama because they can't get together gridlock it's his fault not theirs and you know but they'll do nothing Congress that makes a couple a few hundred grand or a couple hundred grand a year with perks are not counting the perks they're the ones that would tell poor people on social services that they're a bunch of lazy bums what about them they're the biggest welfare cheats suck in the blood of the taxpayers that's why they can talk the middle class tax because they know what they do middle class they project yeah hit on others the middle class taxpayers right and the US media never mentions anything about this they don't say nothing never go to the heart of the matter the pussies you know they don't say nothing about the the House Republicans being the biggest welfare cheats and the biggest lazy do not do nothing bombs they never say anything the push to pass a food stamp bill came after House GOP leaders stripped the food programs from a farm bill that passed the chamber this month following the defeat of a combined food farm bill conservatives have demanded greater cuts in the food stamp program greater cuts not enough there now is nothing they want to cut but God forbid you touch our panty from the bloated disgustingly corrupt and where they lose trillions of dollars military but very bloated military budget and not not to mention I forgot to mention the welfare for the rich in subsidies in Wall Street bailouts oh that's okay that's okay oh that's fine but if you're poor and you need a few crumbs oh yeah it's really horrible that they're up there complaining and yelling about it and blaming that you are not godly why aren't Democrats using this material that we're speaking of today in you know in in the House and in the Senate telling the American people that they're total hypocrites the right-wingers and proving it I know why why because they're not reading a newsletter but it's common sense though what they're doing if you're if you're a hypocrite and you're pointing the finger at the poor getting help from tax dollars a little tiny bit of help and you're you're sucking up astronomical amounts of taxpayers money to do very little if nothing to buy croissants and coffee two million dollars of taxpayers money for coffee and pastries to the House Republican meetings right yeah and not to mention their salaries for doing nothing yeah they work I wouldn't even say they work our time word work no they they they they show up at Congress no show jobs no show no well yeah no show no production either well physically they show up but but mentally physically I mean mentally and they don't know what I'm saying is they're total hypocrites when they point the finger at a poor schmuck getting a few crumbs but their salaries which are based on far less than a part-time job a part-time you know what else it's based on far less than part-time you know what else is based on what it's not in a private sector it's a government job when they're against the job oh big government so it's not big government to pay them 175 thousand a year not counting the perks for for the few weeks that they actually show up in Congress not counting all their vacations they take oh no no that's not big that's not big government but it's big government when the elderly disabled the poor the single poor single mothers trying to raise kids benefiting the middle class all right that's that's bad that's big government programs that benefit the little guy is big government to Republicans right interesting the hypocrisy yes it is interesting how it continues when it's so blatantly against the Bible which they claim that to be Christians 35% of them at least claim to be Christians but they don't know the contents of the Bible exactly they don't know what is required of the Christmas so they're like snake oil salesman they're full of crap whoa their liars exactly well who pins them down being good but when they talk when listen the Democratic opponents when they campaign they could use this very valuable material in debates when a Republican says big government big government big government and Chris Christie talked about when he got elected all these people that got something for nothing well I'm gonna put a stop to that all the Democrat has to do is what about you right wingers in Washington and as governor getting a lot for nothing a lot of something for nothing giving to your cronies from the taxpayers money but to help the poor from taxpayers money a little drips and drabs that that's like a big sin to them the hypocrisy is unbelievable unbelievable a work requirement was raised during House debate on the combined food and farm bill the House approved an amendment by a representative Steve Sutherland Republican of Florida that would have allowed but not required individual states to test work requirements but a more far-reaching amendment that would have cut three billion dollars a year from the program and required most able-bodied adults to work to receive benefits was rejected you know if this is so stupid on its face if you can work and you got a job you wouldn't need food stamps if you got it obviously the jobs that they want them to work at are garbage jobs with it with a terribly outdated minimum wage law the jobs that are not making ends meet not even coming close not even coming close so they aren't real job yeah and because again a real job you wouldn't be on food stamps and do I do I consider a woman with children that's on welfare and food stamps that gets a job off the books do I consider her a like a cheat a scoff law or cheat no I say bravo to her you know yeah because there's no way there's no way that you can go from poor to the middle class or beyond welfare there's no now the object of welfare should be to make that person self-sufficient you know able to take care of himself eventually sure he may have stepped in some so hard times has got it you know get himself out what but eventually welfare should be to bring him back to where he was now where are the options speaking of bringing him back to where he was before the welfare where are the options in America today where is the job market right now it's all overseas and you know it's incredible all these southern states that have a large amount of a large number of minorities and people living on fixed incomes like retired people like let's take Florida for instance how the hell do all these so supposed poor southern states even let's say a Mississippi Louisiana Louisiana Alabama all these things how do they always end up with a Republican governor because they're never going to vote for a demon a baby killer oh secular all you're talking about their religious cult they are they vote not according to the reality of their life of their lifestyle the standard of their living they vote according to this religious cult that they call Christianity their version of Christianity and that's how they vote without using their brains and saying hey we barely have a roof over our heads and we barely have food on the table and clothes on our back but we're gonna vote for the Republican because he's against homosexuality and he's against he's for prayer in school and he's anti-abortion and pro-life so we're gonna you know and he's a bigot except if he can he can get the illegal aliens to work for like next to nothing for him you know so they vote based on their cult brainwash real smart American citizens real smart brainwashing yeah it's like Jim Jones when he had everybody drink the poison Kool-Aid or whatever right is that what he did come on now people don't worry it only hurts for a little while come on drink it drink it please what about what about the what was the irreverent the Marshall Applewhite I told everybody call no man Reverend to wear white sneakers because the space Jesus is gonna send a bunch of spaceships to pick us all up and they had to kill themselves in order to be raptured and yes these people have followers yes yes Marshall Applewhite Heaven's Gate Heaven's Gate clan you know their website is still in existence who's paying for it I don't know maybe maybe had kids Marshall because he he's he died committed suicide he believed his own crap yeah they got a picture of him with his eyes bugging out my stupid smile on his face oh my god Applewhite Americans for generations have come to depend on door-to-door mail delivery not too much anymore it's about as American as apple pie but with the postal service facing billions of dollars in annual losses and I shall interject due to Republican shenanigans oh really yeah I thought it was due to email no due to the fact that Republicans made a law back in 2006 I believe it was that the postal service should have its money for its pension plan paid for 75 years in advance 75 years in advance which is taking six billion dollars a year out of the postal profits interesting very interesting but the fact of the matter is the Republicans want to give to their cronies UPS DHL and federal express the business of the post office here you go and to do that of course they want as little work as possible I'm a security officer see I have a legal I have a legal baton I don't have to get this registered because it's from nature it's a it's a it's a rack from a a a buck a deer a deer antler see like the chilele you know you know I don't need to register this shit the delivery service could be virtually phased out like 2022 under a proposal a house panel was considering on Wednesday herb side delivery which includes deliveries to mailboxes at the end of driveways and cluster boxes delivery would replace the letter carry oh they want to lay off the letter carries yes that's the option shrinking the government that's correct except when the government the postal service was is one along with Social Security one of the examples of a government program that is you know the flea rod you know the play why can't they shrink the military budget oh you non-patriotic jumbalone oh why can't they they take a cut in in salaries the senators and republic and us and congressman instead of making 175,000 200,000 yeah I think then they'd be even more corrupt make make make it made less money make 50,000 yeah they're not even worth 50,000 yeah everybody knows that too they're 10% of the people like Congress only every time I see this man's photo he irks me his face his douchebag looking face irks me and gets under my skin so much I'm talking about old turtle face Mitch McConnell of Kentucky you're actually insulting the Galapagos you know actually turtles are supposed to be cute but not this one he he's got me made into turtle suit he's got he's got unethical underhanded written all over his face he looks like the kid that got his hand caught in a cookie jar he makes all these faces you know I mean John Boner Vayner doesn't doesn't hurt me he doesn't hurt me he just cracks me or a smooth when he he's smooth smooth yeah he's smooth you know any any any any and he makes me laugh when he cries but he cries a lot yeah he goes from real calm smooth poker face to that ridiculous like Stan Laurel you know the proposal is part of a broader legislation by representative Darrell Issa the Republican of California chairman of the House oversight and government reform committee designed to cut costs at the struggling post office up to four point five billion dollars a year the postal service had a 16 billion dollar loss last year the agency has been moving toward curbside and cluster box delivery in new residential development since the 1970s in April the postal service began deciding whether to provide such delivery for people moving into newly built homes rather than letting the developers decide a balanced approach to saving the postal service means allowing the United States postal service to adapt to America's changing use of mail Issa said done right these reforms can improve the customer experience through a more efficient post office they want their cake and eat it that's for sure they they they are the hippiest hypocrites that you'll ever meet as a Republican member this vintage photo or no this vintage image of the from way back back in the day the pyramid of capitalism yes see on the top it says capitalism with the money bag and then it says we rule you and then the next lever level is we fool you politicians probably and next level we we shoot at you right and then below that is we eat for you and then all the all the shmucks all the suckers the poor suckers working for slave wages holding all that up all right yeah


You know, it's like the cliche line, golf comes closest to life. It's, you know, you've got to be honest, you've got to be yourself and it teaches you so many things. Being on the golf course, you know, every day is a new experience. I started playing golf about 14 years ago and it's actually ironical. My parents forced me into the sport. I started when I was 11 years old. I was, you know, majoring into sports, though I was a really good academic kid also. I just started this game as a fun sport at a golf coaching camp in school. Golf is 90% mental. You know, physical fitness can take you to certain level, but if you're not mentally stable, if you can't handle pressure, if you're not, you know, calm on the golf course, it can definitely take you down. I think the biggest challenge is like every day is a new day.  And according to that, you need to, you know, really build yourself up. Every sports person for that matter goes through their up and downs. So, you know, so handling the downs is obviously tougher. It's tough being on tour by yourself, not having a sponsor. You pretty much are, you know, breaking even at the end of the year if you don't have a sponsor. It just gets tough, you know, your mentality, your thought process changes from playing there and going out there to win a tournament to, you know, being able to make cut because you want to make sure that your expenses aren't as bad.