Good evening and welcome back to Byline. This is our public affairs show right here on Amherst Cable and it's done cooperatively with the Amherst League of Women Voters. We're bringing guests on from our town council and from committees that operate here in town trying to help our town government accomplish various things and also we bring staff in from time to time and that's what we're doing today. We have Stephanie Ciccarello who is our sustainability coordinator, is that your official title? Sustainability Coordinator, but Stephanie you're not new to town, you've been in town government for 23 years, yeah you started with wetlands? In total, yes I started inspecting silt fences five to ten hours a week. That was how I got my foot in the door. Interesting. What's a silt fence? So that's that sort of dark green fencing that you see around construction sites, it's to keep the soil and sediment from migrating, keeps it on the construction side. And then from there you morphed into some energy work? Yes, then I became the energy task force coordinator and worked with the energy task force that was a committee that was meeting for a period of time and then that morphed into eventually becoming sustainability coordinator. So the energy task force doesn't exist anymore, but remind us a little bit about what it did because it then led to other things. So tell us what their job was and maybe a highlight or two about various initiatives that they undertook that helped lay the groundwork for what we're doing today. So the energy task force came about as a result of the town participating in the IKLI Communities for Climate Protection program. Is that a government program or private? No, it's a private program. So IKLI is a non-profit, the acronym used to stand for something, now it's just kind of a weird name. Okay. But a wonderful organization with a very strange name. And so they launched a program called Communities for Climate Protection and it laid out a five-milestone process that communities could sign on. They would, at the time when it first started, when we were involved, they would provide an intern to do a baseline greenhouse gas emissions inventory and that would be milestone one. And then from there the next steps were to define a climate CO2 reduction goal, then to create a climate action plan, implement the measures in the plan and then sort of to start the process all over again was basically mile five. And so we had an intern from Hampshire College, Ariel Foster, who came in and put together the baseline inventory, but then she also assembled the energy task force. And the inventory was of our greenhouse gas emissions here in town. Right. And this is both in terms of commercial activity, transportation, residential. So what are we putting into the air? Right, exactly. Well, what is our contribution to CO2 emissions in the community? I'll always say this about inventories. What's good about inventories is they give you an idea of where you are, but it's hard to identify all of your emissions in terms of the transportation sector. So what you need is consistency in your data. So that was just to provide the groundwork and a framework for which we could try to track our community emissions. But she also put together the energy task force. She worked with the then department head of conservation, Pete Westover, and invited various stakeholders from different departments but also within the community to come to the table and talk about creating a climate action plan. So that was kind of the basis for moving the town towards these next goals, these next milestones. But Ariel was only with us for a summer to do the internship. Well, that was a lot of work for just one summer. She did a lot in one summer. But then she left, and I was working in conservation. And I had been teaching at Holyoke Community College, teaching environmental science classes in labs. And so I saw this opportunity to continue with this effort because we certainly laid the groundwork. We wanted to keep it moving forward. And so I stepped in and was able to work with the energy task force and became their coordinator. So what they were really tasked with at first was to create the climate action plan and create the target goal. Yeah. And then once that was established and the task force was operating, we moved into a more aggressive program around energy. And that was under the aegis of which town department. So, excuse me, so it really was the work that I've been doing has always been within the conservation department. Okay. What, how things sort of transformed over the years was that we sort of went from the ICLEI program, which really looked specifically at reducing CO2 emissions to then becoming aware of the state opportunity to become a green community, which was really an is about reducing CO2 emissions. It's just that it's done through energy efficiency. It's looking more at energy efficiency as a means with which to reduce CO2 emissions within communities. So it's when you're talking about energy efficiency, you're talking about reducing your energy usage and saving money and it's a more, it's an easier message to convey to municipalities than at the time saying you must reduce your CO2 levels, which we know is really important. Right. But how do I do that? But how do I do that? And people also, and I think this is still true and especially now when we know it's such literally kind of we're at that crisis point where I think it was easier for people for a time to digest energy efficiency versus CO2 reduction. So it was an easier sell to communities to get them on board and it's been an incredibly successful program. I think it's one of the best. And that was generated, that was a program generated at the state level. At the state level. We were the only state in the country at the time who created this kind of a program which allowed communities to organize themselves around energy conservation and figure out what they could do for their own buildings, their municipal buildings, but then also to work with businesses, institutional settings such as we have the colleges and then even residential. So what were some of the milestones that you or highlights that you can recall from our green communities experience? Because we were one of the first if I remember correctly. One of the earlier communities. Certainly not the first but earlier. But very early. And how many years have we been in a green community? So we officially became a green community in 2012. Okay. And so that's seven years of work. So what are some of the accomplishments that we can look back and say, oh, well that was worth the effort. So one of the first, actually the very first project that we received funding for was to retrofit all of the town streetlights from high pressure sodium to LED technology. And that was a very significant project. The thing about the streetlights in town is that we don't own all of them. So the utility owns some. So not all of our streetlights are LED. So if you look closely, you know, if you pay attention and really look, you can see that some of them. That's still the case today. That's still the case today. Utility owned ones are not energy efficient. But we pay for the electricity. Correct. Correct. And we are polluting our environment. Hey, utility, get on the stick here. What's going on? Yes, well. Okay. So do you know what kind of savings was involved in that? Yes. Well, we've been tracking our data. We've had a little bit of trouble with the software recently that the state provided specifically with the LED streetlights. But we, at least in cost savings, at least it was estimated at the time on a magnitude of, you know, 24,000 or more per year of savings, of energy savings and cost savings. Great.  And on a scale of 1 to 10 as a measure that we took, what's its impact? One very low, 10 extraordinarily high. Oh boy. You know, maybe, maybe a three, two, three. Three. Okay. So it's a low intensity initiative, but it's, it's useful and productive. But it's useful. And then we went on to do other initiatives with state funding. We've done, so there's other, other programs outside of green communities that we've been able to participate in. And one that actually involved residents was the Solarized Mass Amherst program that we participated in. And we were able to add one megawatt of renewable energy to the state portfolio with the installation of solar photovoltaics on private residences and businesses in town. So that was a significant contribution. So we contributed 1% over a particular period of time. Right. Which is not insignificant when you think about there are 360, 351 cities and towns and 1%, that's, that's not bad. Right. And we're a relatively small community. Yes. So we were very proud of that. There are other communities at this time that have surpassed us, but we sort of held the lead for several years. And are these installations mainly on residences or it's a combination of residential and commercial? A combination of both, but mainly residences. So that was a really significant program that we were able to coordinate and bring to the community that might not have happened otherwise. Great. Any other examples from earlier green community initiatives and grants? So some of the other things we've been able to do, and maybe not specifically through green communities, but certainly through collaborations, we've been able to create a regional bike share effort which was funded, that was actually funded through a federal grant. It's called CMAC, it's the Climate Mitigation Air Quality Grant funding. And the town of Amherst worked with the city of Northampton to sort of get the project idea going. And we brought in the Pioneer Valley Planning Commission and they assisted us. And with that effort, we reached out to other communities and there were in the end five communities that worked together with also the University of Massachusetts, Amherst, to create a regional bike share program. And are these the bikes we're seeing on the corners of downtowns and other places where you have six, eight, ten, twelve, fifteen of these motorized bikes that you can self-propell but you can also are aided and assisted by the little motor that you're generating power as you pedal, right? There's no fossil fuels attached to that. That's all your own energy, correct? It's your own energy. Well, there is some power, it depends on the community you're in and what the makeup of their electricity is, but they do charge at the stations when they're locked in to the stations they are powered. So there's a little motor in there. There's a little motor that gets powered and then you basically... Keep it going. Right, you keep the motor going. Excellent. And how many of those do we have situated here in Amherst right now? So Amherst has, I believe, a hundred bikes in town. So we have... And is it growing? Yes. We're actually about to launch another phase of expansion. The town of East Hampton has joined on. There are another, I should say East Hampton has joined on. And there's other communities that are interested in joining us as well. And so what do you do? You've been jointly for a certain number of units in each community, and then a developer comes in and says, we'll put X in your community. There's no cost to the town, right? There are some minor costs that are associated with the infrastructure. So putting down the concrete pads, the electricity hookup for where the kiosks are definitely are something that the towns need to continue. But that's modest. But that's modest compared to what the cost of the stations are. Right. And are those somewhat grant supported? So we... Putting in the towns part? We have... So we have been able to utilize some grant funding to sort of expand, to actually to start the program and then to expand the program. Mm-hmm. But it is owned by a company called Bowegan out of Canada. They actually have bike share programs worldwide. And so they technically, they own the system and they operate the system for us. Okay. So that's why the costs that we have are typically minor associated with the infrastructure. Mm-hmm. But the... We're assisting by getting a grant and expanding because we want the program to expand, but they actually double the size of the system initially. When we got the CMAC grant originally, we had 29 stations that were proposed for the region. And then Bowegan came in and they basically doubled it and provided all the additional bikes and stations. We like a lot of data around here. Is there any data points that you could share with us with regard to, I don't know, how many people are using it or how often they're using and how often there are no bikes available when you get to the kiosk? Right. Well, technically, there's always supposed to be at least one. Okay. Technically, at least one. Technically, there should be at least one. Actually, there are reports. There is data. I didn't look at it. I just... Okay. I know. I'm just throwing this out from the field. I didn't check on that one. But it's actually... It's doing well. So they're well-used. They're well-used and I can say that the two largest communities of users are Springfield and Amherst. Excellent. And are people of all ages using it or is it mainly students because we have such a large student population? It's a range. There's definitely a range of users, but the primary user tends to be a college age. Okay. And there's enough demand that we're going to expand. Yes. There's definitely enough demand. So that's good news. Same company or is it going to go out to bid for others to have an opportunity? That I'm not sure. But now I think we're still within the contract of our current existing company. So it may go out to bid in the future. So that's sort of like the past, which is bringing us up now to the present, which is now we have a new town council and one of the committees that they've created is a committee on energy and climate change. Energy Climate Action Committee. It's the Energy and Climate Action Committee. Energy and Climate Action Committee. The idea that the word action is in there. Yes. So it's not just about we're going to sit around and talk and use and plan and then hope that somebody does something. No, we're going to do something. Right. So where is that effort? You're staffing that, correct? Yes. So I'm the staff liaison. So I'm working with them. It's been great. They are really engaged and currently they've been working on community outreach to identify where the sort of get a sense and gauge where the community is in terms of understanding about climate change and where we are and to gauge where people are in terms of being ready to really make a change. I think when you brought this up earlier, one point I wanted to say when you were talking about just sustainability in general, I think what's important is that people make decisions every day. And I think we don't often, when I do the work that I do, I'm mostly focused on the municipal buildings and that's what we as a town have control over. But we don't often have as much of an ability to reach to the community. So this committee is really looking outwards rather than inwards. Exactly. Because the town itself, our municipal operations, we've done a fairly good job at reducing our emissions in terms of our buildings and building energy use. But it's really the broader community and transportation that really sort of serve as sectors. And most of the energy that's consumed is actually consumed not by the town government. It's consumed by us as consumers, as in our homes and our businesses and our jobs. So every little decision we make from turning on and off lights using devices like Nest or having those things installed where when you enter a room the light goes on and when you leave it goes off. All of those decisions and all of those things add up when a lot of us are doing it. And so that's what they're focused on is trying to think about how to work with the institutions, how to work with retail, commercial, et cetera. Great. And so I'm assuming there's going to be a lot of public engagement in this process so that people both learn and help plan and then hopefully we'll have some stake in it because they were part of creating it and then they'll try to do it. Exactly. And that's definitely when you ask what the next steps are. Definitely those are the next steps. And what they'll be looking to do is to create a climate action plan that will identify specific goals, targets, objectives and ways of achieving their larger goal and they'll set whatever that larger goal is and then the plan will sort of help provide the pathway to get there. They'll certainly be looking at things like community choice, energy aggregation as one of their proposals. They'll be looking into that more in depth. Yeah, could you explain, so the viewers will understand what energy aggregation is and I should disclose that when we worked on the utility deregulation bill I was a key player in that as a legislator and put in their language that gave communities and counties the opportunity to aggregate energy demand and create their own systems to be able to meet the needs of their community. So with that, explain how we do this and what we're doing. Right, so it really, in the simplified version of this it really gives communities an opportunity to have more direct involvement in getting their energy, so specifically electricity. So we should say that this is very much focused on electricity. So one of the options would be enable the communities to actually have more green energy as part of their energy portfolio package. So we are hoping that if we can become a community choice aggregation we can sort of green up our grid but also it will provide an opportunity for people to have more direct involvement in where their energy comes from but also we're hoping to sort of expand this more to the basic level, I guess I should just say that the basic level is just basically people being able to sort of have more direct say in where they purchased their power from and that they can purchase a greener product. That's kind of the baseline. Where our committee would like to see this go is that we can expand that so that we can even have more generation, so more renewable energy generated within the community. So for instance, community solar, maybe a community solar project where the solar is actually in town here in Amherst and may even directly support nearby facilities. So we have more direct connection to how our energy is being distributed. I don't think people understand that even when people have solar on their homes that the solar energy feeds the grid, it doesn't go directly into their house. Most people, even people sometimes with PV systems don't really understand this. Some day when we have battery storage people may store some of the energy generated on their roofs and now it goes into the grid and that means we're all sharing in it which is why we all share in the cost of it. So this is an initiative that would definitely certainly make a difference on green power supply and in terms of total emissions, obviously that would have a very large impact. It's not the only thing, as you say, sustainability is about so much more and I think their climate action plan would sort of lay out other things as well in terms of land use. And this aggregation project is not just Amherst. Again, this is another one where you're talking with and potentially working with other communities because the larger the pool, the greater the savings for the consumers which is an incentive to become part of that program and then the greater the energy reduction especially if we combine it with conservation and with green energy. Well, our specific goal is certainly not as much cost savings most traditional programs look at cost savings. The effort that the city of Northampton, the town of Amherst and the town of Pelham are working together to promote is to look at an aggregation that would actually focus on reducing CO2 emissions and greenhouse gas emissions. That's really the primary objective of what we're trying to pursue. Looking at all of these decisions and plans through that lens. Correct. And that's the most important priority and so if you have a choice between investing in project A and project B, one saves more money than the other but saves less CO2, you'll gravitate to the one that, okay, that's really interesting. Right. And speaking of solar, did I hear that the solar project over in East Amherst near the old landfill is taking some steps forward at this point? Yes. So the North landfill is being proposed to be developed for solar. They're proposing Cypress Creek Renewables as the company that we're working with and they're proposing a 3.8 megawatt solar array on the North landfill location. What's unique about this project is when at first, in 2015 when we sort of revived the solar landfill idea, it was proposed for both landfills and because there's a threatened species on both sites, we were told that we could develop one site if we put the other site under a conservation restriction to maintain it as habitat. To create a balance. So it's right. So the species that utilizes both the North and South would at least have the South landfill. I got it. So it's been through some of its permitting already. It's gone through natural heritage. It's still got to go through the Department of Environmental Protection, the state, at the state level. But next week, next Thursday, October 24th, it will be in front of the Zoning Board of Appeals. So we encourage people to come and sort of get more details about the project, especially about ours. So we're really excited about the fact that it's moving forward in the permitting phase. It's been quite a journey to get there. How does the community benefit by doing this? Obviously, it fits into the reduction of CO2. But on the money side, how does that work? Is the town going to gain revenue from it? And is that revenue here marked and focused on particular purposes? Right. So there's two ways the town will benefit financially. One is through the municipal electricity will be provided at a reduced rate. This will be under the SMART program. So under the SMART program, it'll be one cent below the basic utility rate. So that we know is essentially what we can look to for savings. But then also the company, because they will own the array, will be leasing the land. And so instead of a tax payment to the town, they'll be making a regular payment under what's called a pilot payment. And so that will actually generate revenue for the town. And annually with the energy savings, cost savings, and the reduced electricity rate and the pilot payment, we're looking at about a little over $100,000 annually for years one through 20. And then from years 20 through 30, it would be roughly $70,000. And where do those dollars go? The town treasury or the consumer's pocket? The town treasury. The town treasury, which affects property taxes. That's the last word. So thank you for joining us. And we thank you for the good work that you're doing. And keep it up. Thank you. Thank you for joining us. And we'll hopefully see you on another show.


Let's talk about how Netflix makes GRPC easy to serve, consume, and operate. So I'm Benjamin Padurka. My pronouns are he, him, and I work on the Java platform at Netflix. My team specializes in the experience for RPC-oriented APIs. So we deliver a consistent experience for a point-and-point communication and JVM applications, and we do this by providing a variety of RPC frameworks to our engineers. Today, we're going to talk about Netflix GRPC Java. This is our client server framework for GRPC. We also have a variety of what we call our HTTP frameworks for just doing restful ish traffic. You might be familiar with some of our OSS libraries, Netflix Concurrency, and Netflix Systrics, and then my team also owns all the application framework integrations for these frameworks. Now, I see people already taking pictures of the slides. Go for that. I also have already uploaded them to Shgedd so you can get those there. I'm going to reference a couple of other talks here, and I'll have a link slide at the end that you can take a picture of then, or again, grab it off of Shgedd and just get all the slides there. All right. Netflix GRPC Java is our most highly featured and complex RPC framework. We have over 600 applications serving 1,300 services, and we have 1,500 applications with GRPC clients. It's critical that all these integrations are easy. We call making things easy our paved road. We approach this from five different angles. First, tooling. How to engineer CIN ad hoc requests and actually author their products. That's what we have to do to get started. Security. How do we establish and enforce RPC integrity and access controls? Resilience. How do we ensure that RPC succeed or degrade gracefully? Preservability. How do we understand the behavior of the system? And finally, ergonomics. How do we make all of this and other common RPC activities easy? Throughout the presentation, I'm going to show a few code samples. This is going to be from a Spring Boot Netflix application. Spring Boot Netflix is our paid framework for Java back-end servers. To learn more, I recommend the recent presentation, how Netflix really uses Java today by Paul Baker. Before we even get to the serving GRPC, we need a proto-specification in stubs. When a Java project is initialized to our project generator and GRPC is a requested feature, we include a proto-definition module and a client module. These modules include Gradle plugins, which orchestrate the OSS-Protobuf Gradle plugin for stub generation, include additional product plugins for adding ergonomics accessors. As an example, we will generate Java optional for all of the optional fields in your proto-3 spec. Generate clients with bundled configuration and language injection bindings. Finally, we advise on breaking changes in proto-lock. Here we have a code sample. This is a Hello World RPC. We generate into all the services, help our engineers get started to see where they should be adding code. We have a couple of proto options here, where you can see we've got API documentation built into the proto-spec. Finally, if I was going to remove that RPC, we get a nice error off of proto-lock. Client ship with all the necessary configuration to connect and configure the supported features. If necessary, these are overwriteable by our dynamic configuration service. Clients are using a configuration-aware managed channel which will rebuild the interceptors and the underlying transports. Then we can automatically swap them in for new RPCs. This means that we can reconfigure your RPC without interrupting any of the call flow. We generate Java clients by default, but we also have paid support for Python and Node.js clients, though they have a reduced feature set. Finally, we will generate a server module that's going to be a Spring Boot Netflix application. It'll be completely wired up to the server stubs with examples for how to test your application. At the end of the initialization process, engineers have a GRPC server running in tests with an example service endpoint and published clients ready for consumption. In a totally about once a month, I run a lab for new engineers at Netflix. We have them start from zero and then deploy to multiple regions in prod in 90 minutes or less. Another key deployment or development activity is sending ad hoc requests. As we saw before, we have three options for API documentation. So we can annotate our RPCs, our messages, our enums, and then we can now serve this documentation generically via the existing service reflection interface. With that, we can use common tools to display this documentation. An example, we have GRP Perl here at the bottom from full story, and that just works out of the box. It will show all the other options. That's a really good fit there. Then we've also extended the GRPC UI to include this protocol information. Finally, we do also translate all the proto and doc into an open API spec, and this allows engineers to have a single interface for GRPC and RESTful APIs. Our security features are pretty boring just like they should be. Our developers and servers are issued certificates signed by our internal CA. This establishes their identity. We use these certificates to then build mutual TLS connections for our first level of security. We also propagate end-to-end identity information, so we can authenticate calls between both the immediate color of the RPC and the initiator of the call chain. Our engineers don't need to worry about setting up this SSL context. They don't need to worry about propagating identities, and they don't need to worry about integrating with authentication or authorization infrastructure. All this is handled by our RPC framework and our application framework. All an engineer needs to do if they want to add security to method, is add an annotation to it, and it'll be automatically enforced. Resiliency is probably our largest investment and it doesn't lend itself to good pictures. I've just included a couple of diagrams I use for training new team members. We start with name resolution. We're using Eureka as our preferred name resolver. This is our open source project. We've extended it with a really small adapter to bring it over as a GRPC name resolver. We also support DNS. Eureka doesn't cover all of our use cases. As an example, if we need to do some special call routing to a different region or different environment, then we'll often fall back for DNS for that. Name resolution has also been extended with support for our canaries. This allows us to do AB tests. This is how we validate changes so easily. Once we're done with name resolution, it's time for load balancing. Our default is choice of two. We're doing all the load balancing within the client itself. We're not using very many intermediate load balancers. This is completely configurable for special needs, so we can handle subsetting, you can handle additional tweaks that tries the two algorithm. We can also swap in different algorithms. Some customers prefer to run with round robin or load balancers with more sticky capabilities. This goes as far as they can actually inject custom load balancer implementations using the application framework. We bring concurrency limiters, both on our clients and servers. This is using our OSS Netflix concurrency limits library. On the client side, we primarily run fixed limiters, and this is serving primarily as a latency-based circuit breaker. If your downstream server goes latent, your concurrency is going to spike, and we can start short-circuiting all those calls. That also helps protect us from engineers who might inadvertently spin off a few thousand async requests without any other following on it. The concurrency limiters are going to throttle that really quickly and help us control that traffic. On the server side, we run concurrency numbers to help protect us from turning herds of clients and ensure that we keep a base-level traffic flowing. Server side, we're using our gradient two algorithm and AMD for other special cases. These are both adaptive limiters, so they can learn the maximum concurrency of the server within a few parameters. We have deadlines. Obviously, OSS DRPC has full deadline support in the context. We've extended this in a couple of ways. One, this is completely configurable on our clients and servers. Our engineers specify the default deadline for an application, for their service, and for their RPC endpoint. We're going to take the smallest deadline of those, and we're going to apply that. The other thing we've extended is we've actually propagating deadlines through other IPC frameworks. A deadline can start at a gRPC server and then flow through Netflix Web Client. Maybe we're going to make a graphical call, and all that call chain will execute with that same deadline. We have hedging and retries. We've had them for quite a while, so we're not using the OSS implementations. We actually have implemented them via interceptor chain. Again, this is configurable for service and for RPC. Good examples of when you might want to use retries and not hedging or hedging and not retries is if you're running batch traffic or not. Hedging is really good if you need to ensure particular call latency, batch traffic isn't going to need it. If everything's failed and we actually get a failure back on the wire, we support fallbacks in a really easy way. Our service owners ship default stackly configured responses actually right in the protospec, and then we can construct those in the client and return it to the API or to the application. It's often easier for applications to receive a fully formed answer that is degraded experience than it is for them to be directly handling the errors. Sometimes that static response isn't sufficient, so we also support dynamic fallbacks. Our engineers can just implement an interface and again, we'll load that in through the application framework, wire it up, return it through the stubs. With all these failures, we're pretty good at handling outages and maybe bumps. However, we did learn that we can't wait for an outage to occur to see how the system's going to perform. So what we do is we perform what we call failure injection testing. We can actually annotate an RPC to cause failures at any point in the call chain, so we can inject latency or failed responses. And if you wanna learn more about this, recommend the AWS re-invent talk, building confidence through chaos engineering on AWS. Observability, I was really excited to see that talk about observability during this morning's keynotes. We're doing a lot of the same stuff. We track metrics for every call for both the client and the server. This gives us really important visibility on how calls are impacted and how they might be experienced differently on different sides of the network. At an OSS level, we're using our spectator API and the specification in there for what we call our common IPC metrics. So we're tracking per attempt call latency and flight counters and message sizes, both incoming and outgoing. Our OSS concurrency limits also have metrics. This helps us understand when the concurrency limiters are engaged and more importantly, what the state is for our adaptive limiters. This helps us understand why we learned a particular limit, not an OSS, but also helpful to us. We're tracking deadlines remaining for incoming and outgoing calls. This helps us understand if a call arrived on the box and maybe there wasn't enough time to answer it. We also do analysis on this so we can identify if a service is running with inappropriate deadlines. With all these retries, we tracked what we call our top level call metrics. These are more API oriented than our PTC oriented. So we're actually tracking at the stub level how the application is experiencing the RPCs. Finally, we've instrumented our load balancers and name resolvers to give us more information on sub-channel states. This is pretty handy when a lot of connections start failing, we can actually check to see did we have a spake in sub-channel failures without needing to actually log onto the box and see anything. So again, all this is integrated with our OSS spectator library and using Atlas for our metrics database. Tracing is all OSS, it was previously internal. We've since migrated to OpenZipkin and Brave. Tracing is expensive, so we sample out the edge, but we do get these nice distributed tracing graphs. If you wanna learn more about tracing, there's the tech blog post, Edgar Solving Industries Fascist Reservability. Again, I'll share a link with that at the end of the presentation. Our logging implementation is pretty straightforward as far as we emit logs on, well, access logs so you can get a Apache style log for latency and results. That's, you know, we don't wanna do that on every single RPC for higher RPS services, but that is available. We also have MDC integration. So when you're getting logs in your logging framework, we can actually tell you what RPC was being called which generated every log message. The more interesting part is we have some automated error analysis. So you can enable this when you're getting errors back across the wire. One really handy one is you get a deadline exceeded.  We're gonna gather some additional information and we're going to annotate the failure with this. So we can understand where did that deadline come from? Was there actually enough time to service the call? We have several of these failure rule sets. It just helps our engineers quickly understand what's going on within the system.  Anything that's done frequently for an RPC, we wanna bring that into the framework so make it easy. Caching is our number one ergonomic feature. Over half our production calls are served from a cache owned by our RPC framework. Cache configuration, so cache ability, keys, eviction rules are all stored in proto options. Advanced needs are covered by allowing clients to inject custom code. So they could maybe programmatically determine if a call should be cached or not. On the server side, cache calls are antiseptic and never reach the server subs. On the client side, the calls never reach the network. We support distributed caching through our OSS EV cache. We also have on heap and off heap caching for staying on box. And the kind of neat one is we have a cache that runs per incoming RPC. So if a engineer is written, maybe a naive data fetcher and it's repeatedly making the same call, maybe fanning out traffic, we can actually catch that call and return it from the cache instead of hitting the wire multiple times. From an application framework level, we've got quite a few integrations as I mentioned, almost everything we manage in the RPC framework we allow our engineers to extend. Something I want to show off here, this is a smoke test. This is an online test for making sure that the client you're shipping is actually able to talk to the server you're also shipping. And it demonstrates how our engineers actually bring in steps. They don't need to call the managed channel builder. They don't need to add all these interceptors. They don't need to set up all these features. All they need to do is just annotate their stub and we'll wire it in for them. Because our clients ship all the configuration they need to run, our customers rarely need to actually override anything. So they just need these two lines and then they're going to get the fully featured client. Again, these are plain GRPC subs. That's intentional because if you want a different API, maybe if you're going to abstract the RPC there, just inject the stub into the other API client and you provide this better experience. The other application framework integration we provide is we've added spring admin actuators that give us a live view of that GRPC framework on every instance. This helps us identify misconfigured components or a particular bad node. There's way too many other ergonomic features to go into detail. We take Jakarta validators and map them over to bad request trailers. We catch exceptions thrown from the server and map them to detailed status codes instead of just getting an internal. We provide batching at the client layer. We expose all of the netty client and server tunables as dynamic configuration. Again, we can change your max layout header size without impacting call flows. And we support the GRPC JSON transcoder from Envoy for clients who lack GRPC support. So with all of this done, what's next? First, we're going to work on service mesh. All of this has been implemented in Java but I mentioned that we also have clients using Python and Node.js. So what we're looking to do is we're going to shift many of these features into a sidecar proxy to reduce duplication and improve our polyglot experience. We don't have enough language platform teams to pave every single language that our engineers want to use. We want to enable them to have resilient RPCs. We're also looking to invest further in API and schema management. We've gained a lot of experience recently with GraphQL Federation and we want to bring all these ones back to the RPC space. So that's how Netflix makes GRPC easy to serve, consume and operate. And I'll put this slide up. These are the talks I mentioned and I will hold for questions until people want to go for lunch. Hey, thanks for your talk. Antoine from DataDog here. I'm magic, that's a lot of features. Like how big is the team that maintains all of that? Can you give us an idea of how much effort went into developing all these things? Yeah, so the Java IPC team is currently three engineers and I'll just say this with a big and two open headcount. And where does the headcount need to be located? If people want to ask? I would recommend checking our job site for... But are they local engineers or do you also hire remote engineers? So I am not local to the barrier. I flew in from Michigan. Another one of my team members is in Arizona. We do have one engineer here there in the Los Gatos office. As far as hiring remotely for the open headcount, I recommend checking the posting on the job site. In one of your slides, you talked about batching, but I didn't really understand what you do and... Yeah, so some clients, because they've got so many RPCs, what we do is they might be iterating over a list of making multiple calls to a stub and we will actually capture the calls to the stub and then we'll build a batch request out of it. So we'll actually translate to a different RPC call that allows multiple fetches and then we'll send that off and then we'll break it back into multiple responses at the sublayer. Oh, that happens transparently. So the developer doesn't even know about this. It takes some configuration from the client because you have to write the logic for how you should batch and translate the requests. But once that is done, it gets shipped off to all of your clients inside your jar and that way the customers of the service don't actually have to worry about it. I have another question. You also talked about fallback. So you can provide a default answer if there was a connection failure. Yes. Did I get it right? So in your proto file, you can specify a default answer. Yes. How do you plummet or how do you implement it? It's a proto option. So we can read it off the RPC and then our code knows to go take that proto option. So the engineers are gonna put it in there in the JSON format and then we'll build that back into the message, construct it, and return it from the client stub. They can also inject code to do a on-box calculation of what a response could be for a fallback. Okay, and you said in many cases, instead of getting an error, getting the default answer is a better option. We found this for some of our APIs because this allows the calling application to interact directly with the stub because they can assume that they're gonna get some user response back from the stub. So it avoids having to wrap all the subs and try catch to get the status exceptions. On the developer tooling slide, one of them, you kind of had something side by side on the left-hand side, there was something that looked like YAML. What was that before this? Oh yeah, I think this one. What are we looking at on the left here? So this is the actual example of configuration that our client shipped. So when you write your GRPC service, you configure how your client should operate with the CML file, and then that gets rolled into your client jar that gets to ship it out to all the applications. So is that something Netflix specific or? Yeah, it's currently Netflix specific. So what we do is we monitor this configuration. This is statically configured when you're putting in the jar, but it's also wired into the dynamic configuration system. So we monitor that configuration for changes and then we rebuild any necessary interceptors or channels to support those changes. Okay, follow-up question. Talk to us a little bit about the time dimension of all these things. So you have this, what'd you say, 1500 services or something? I assume people don't get them right the first time. People need to change stuff over time. What's versioning look like for you? Is all this in one repo? And you're just like, we've got to change everything every time we change like a proto buff or something. How are you handling that? Do you hold to like that? We always make backwards compatible changes. There's a shit ton of if statements in our code about is this here, is that here, is that here? Yeah, talk a little bit about the time dimension. So on the wire, the proto format is extremely compatible for the backwards. And we use proto lock to help our engineers not make breaking changes on the wire from a serialization standpoint. Would you call it proto lock? Yeah, we use proto lock. It's a great old plug-in. Okay. Well, I think it's a binary that's wider into a greater plug-in. But we use that to help our engineers avoid making breaking changes on the wire. As far as compatibility, just within the RPC level. So maybe the behavior of RPC has changed. This is handled by our canary tooling just to help our engineers for not breaking anything. We do gradual workouts. If there's any spike in errors, we'll automatically roll them back. So do you have anything like a proto C plug-in that would say, hey, you're gonna change this and actually this is gonna break in production? Like we already, you know, we can tell this service that this version is deployed. That's gonna break. You can't roll that out. Or do you do everything statically? So that's what proto lock gives us. So if you were to make a breaking change in your proto, then it's gonna generate error for you at the time. Okay. Do you have all of this sitting in like one repo or many repos? We are not using mono repos. We have mostly every application sits in its own repository. So your repository is gonna have your proto definition, your server implementation, and then the modules for your client and stubs. And those are just generated off of the produce. Okay, thank you. Hey, I had a quick question. Hey, Zach, your mic stop working. Good to do the press. So you have a pretty rich feature set here. I'm just wondering technically, how does this all plum in to the GRPC system? Is it a wrapper? Is it a component within the system? Like from a high level, how do you plum in a lot of these features? Yeah, so a lot of these are implemented as either interceptors or modifications to the channel builder. What we have is we have a, what we call a channel feature or a service feature. And that's how we control ordering of all these components. So application startup, we'll discover all the channel features and service features that are on the pass path. And then we will use a visitor pattern to basically build up with the comprehensive state of your client or server will look like. So it's going to be a stack of interceptors and then either a netty channel or netty server underneath it. All that's wired in through our application frameworks. So we've got juice adapters for our legacy framework and then our new framework share all using Spring Boot. Is that covered? Yeah. Hey, we have a question over here. I have a couple of questions and I'm seeing a lot of new terms here. It's really new terms like edging, fallback, failure ingestion testing. Can you talk about this failure ingestion testing? Is it on the live environment or is it something? Yes. Like it happens something and we're retrying it in the production environment? Yes. We do a lot of testing at prod. So if you're going to go and you're going to watch maybe one piece, it's possible that your request will get fagged for being part of the failure injection test. And we will annotate your request that says this service needs to fail on the call chain and then we can then monitor if you actually successfully were able to watch your show if you were, if the resiliency features were working through that section. How do you manage the data is like use the same data what you've got it in the request or is it something that your synthetic data is applied and retested? We're tracking the failure injection rules and headers which get propagated throughout the call chain. Oh, okay. Interesting this. The second point is like you said two lines of code in your actual service itself and you said you run those on each region or how do you do that?  So part of your system testing is going to confirm that your actual GRPC client wired up to your actual network configuration talks to the server. So I think you're talking about this slide. This slide, yes. So this is a online test that's using a local NetEase client server pair to confirm that again you might have changed security rules or something like that and this is what's confirming that you're gonna work. But it's only implemented in Java not in any of the languages. There are test structures for the other languages. Java has received most of our investment so far and I focus on Java so it's hard for me to go into too many details but we do have GRPC clients for both Python and Node. We don't run GRPC servers in those languages. Yeah, one last question. So you saw, I mean I've seen that slide saying that streaming, right? So you have streaming options also in Java site. Do you have any like in Java client being a streaming receiver, right? It's a receiver. Now how do you use it in like different engines like Apache Beam or Dataflow Engine? So how do you make a call to your streaming servers? Do you have any simple framework to make these connections and receive a lot of requests and post requests? We have a internal data streaming framework. I'm not sure if we're really standing on OSS that provides a tight integration with GRPC. Okay. It just wires up against the observers and listeners. It's a struggle going on with how to do it in using the Apache Beam. So I thought you might have some frameworks built in already. Nothing specifically comes to mind.


Hello everyone. Welcome to NPTEL course on groundwater hydrology and management. This is week seven lecture three. This week we are looking at multiple methods in increasing the recharge rate. This is because India is being seen an unprecedented use of groundwater and with it there is a lot of recharge needed to sustain groundwater use. In the last lectures, we looked at how the methods are devised. It is direct methods, indirect methods and a combination of both. In today's lecture, we will look at the direct method and most important methods for India. First one is the runoff conservation. As the name suggests, runoff is from your water balance equation we can get, which is the water which comes from rainfall, which is not going into the ground as groundwater recharge or storage. It just goes on the surface as runoff. There is a need to conserve the runoff, prevent the runoff from escaping the watershed and it has multipurpose measures. For example, runoff conservation can help in soil, water conservation. It can help in afforestation because it can give water to forested regions and improve the forest cover. It can increase the agriculture productivity because now you have more water. You are lessening the loss of water from the watershed. You are keeping the water within the basin and so there is more use for increased agriculture productivity. These are mostly preferred on low to moderate rainfall. If there is excess rainfall, you do not need to capture the runoff. Let us let it go because if you capture the runoff, then flooding will happen. So these runoff conservation measures are mostly needed for the low and moderate rainfall. In other words, in India it is the arid or semi-arid conditions. Let us take Rajasthan for example. There is only limited rainfall and occurring in very short time frame and if you do not capture the rainfall as runoff and storage etc, it just leaves the watershed. So it is very important to capture it and also there is a need of controlling runoff loss from basins across the world. This book, if you see here, it is the FAO's book on resource management for upland areas in Southeast Asia. Upland means it has a good slope, high hilly regions etc. There is good rainfall in hilly regions and if you do not manage it properly, then the runoff will just flow downstream and without any use for the upland communities. Upland, uphill, all these higher elevation lands are same meaning. So where does this understanding come from? The basic understanding comes from your water balance equation where you have your precipitation, runoff in, runoff out, ET, groundwater in, groundwater out and changing storage. If you do not, the point here which I am discussing is, if you do not reduce your groundwater output, that means you are reducing your storage because it is a negative and assuming like for example in this area you do not have ET, so let ET be zero, groundwater in is equal to groundwater out, so let it be zero and there is no water coming in. So groundwater in is zero and surface water in no pipe connection, nothing is coming in. This is the upland.  These are called zero or closed basins because it does not let the water out and to be honest in some regions these are needed because the water is not enough for the upland people. So moving on we have these water balance equations and other equations that support that we need to capture the rainfall and also manage the rainfall very well. So these are runoff conservation. So basically catch the rainfall, runoff etc. If you catch directly rainfall, it is rainwater harvesting. If you let rainfall convert to runoff and then you conserve runoff, then it is runoff conservation. So let us look at some methods. The first method is the bench terracing. I am using the methods given in the CGWB manual and I will be taking some references from TNAU, FAO etc. So what you here have is bench terracing or terracing is converting a slopey land into terraces.  So if you have it like this and water is falling, water flows down along the slope. It is much faster rather than going in steps. So if water is, for example, you have a slope and water hits rainfall hits, then it quickly goes down the slope. However, if you make the surface as terraced cut through in between, then water would flow and then go down like this, go down like this, go down like this. I will use a different color. This is your land surface. So water will go like this. So what is happening is you are delaying the water and by delaying the water and hitting down because it goes down, goes down, goes down, then here there is good recharge happening and net groundwater is recharged. So let's see what is a quick example. We have these locations mostly in the high upland regions or high elevation regions where there's good rainfall but because of the slopey land, water just goes down. So it is kind of a runoff conservation where you wait till the rainfall converts to runoff and then you capture it, slow, make it slowly go down and then recharge it. So it starts with leveling of slopes. First you make sure the slope is leveled and then remove any unleveling patches like ditch or a gap, etc. So you make it leveled so that water runs smoothly and adequate soil cover for irrigation is also needed. So you cut and then use some land where you can put the soil. So you need to get soil so that you can grow native species of vegetation or agriculture. Remember in the example I showed when you cut it, you can further reduce the speed of the runoff if you have vegetation because vegetation can act like a buffer and that buffer would make the water go slow. Okay, so here's what is happening. If you have just plain land then cut the land and so water will move down a little bit slow but if you have your agricultural slope along with terrace farming and or native species, water will slow down. Once it slows down, it goes into the recharge watershed area, the boundary of the watershed and elevation map.  Okay, so because I know how the elevation changes, I can say every 10 meter elevation difference I can put. If I don't know that, then what would happen is you will randomly put in these terraces and it won't work well. So in ideas, you convert a slope into cutting by terracing activities and then put soil there because initially there won't be any soil, bring agricultural relative soil up and then put it there so that crops or new vegetation can grow. Once vegetation starts to grow, water will automatically slow down and then recharge and also support the vegetation that is on the land. So everywhere has given you multiple examples of these types and which land uses you could use. For example, all these are cross-sectional views.  So if you look at here, you could see that a first initially dashed line is the initial line because it's a sloppy slope and then you cut it, take the soil, put it down in the next terrace or you can remove it and put agriculturally active soil and then you can make some feed that agricultural field or trees or something that can help slow down the water. So for rice or for flood irrigation, you can keep it gently sloping, not high sloping along the slope because you do need water to stay there for long. Rice takes a lot of water. For mainly rainfed crops or irrigated crops in dry season, then there's more steeper slopes. It's okay to have a steeper slope. Remember to convert a slope to a straight land, you have to do a lot of work and a lot of machinery or construction is needed, like in terms of removing the soil and cutting terracing. So understand if you have that bandwidth. These are the continuous type. Discontinuous type, improved for upland crops, especially semi-permanent crops, small, small crops you can put. You can have trees in between the crops like fruit trees, brooched terraces and then you have individual plants, big trees or big plants can be kept and then you can also have a mixed farming. So you can have both a terrace and a tree and a terrace and a tree. So if you go to regions like Ugi in South India and in Tamil Nadu, you could see that along the slopes, they make tea plantations and to keep the soil holding on better and also to help the slowing down the water, you have equal of this or other trees in between the tea plantation. So yes, you have to sacrifice a bit of the land but it is good on the overall cycle. The next one we want to see is contoured bunts. So similar to your terracing, however, this is not along the hill slopes. Terracing is a very, very high elevation whereas contoured buns are construction of narrow-based trapezoidal buns. It's just a bund along the semi-sloping land, not a high-sloping land, semi-sloping. Let's see how they make it. So you have a slope or a land, a piece of land, you make a trench or ditch. You have to dig a little bit, put the soil out along the after the ditch or trench. So when water comes and you can also have stone or vegetative barriers to slow down the water. So the idea is to slow down the runoff or capture the runoff. So if runoff comes, it first slows down and then goes into this trench. Here's where water starts to rise and then it is also not overflowing because you have this bun which is slowing down the release of water. So once this ditch is full of water and the enough water is available for going over, it goes over. Now the point is how does water recharge? Along the trenches, water recharges. Along the trenches, water recharges. In the previous I said every step there is a recharge. Here every trench or a ditch, there is a recharge. Leveling of land is needed before you start these processes because you want to remove the irregularities, uneven surface you need to remove. Otherwise water would go somewhere else, not into the ditch. Your whole idea is to get water into this ditch. So from here it recharges. When you slow down here, yeah, there is some recharge happening. But most of the recharge would happen here in the ditch. So a lot of surveying is needed to get the elevations correctly to level it and the elevations are very, very important for these kind of studies. And it is also important to consider the spacing between the trenches. If you have too much trenches, then the land is lost. The stability is gone. And the cross section has to be done well to capture how many interspacing of trenches has to be built. Need to change as needed for undulating land. Sometimes the spacing is not the same. If I say for example, I have 10 elevations, so do I have 10 trenches? No. It depends on the land also, not only the elevation. So the land is also important. The cross sectional view here shows how this is done by CGWB. For example, the water is coming. It goes into the trench, recharges down. Okay. And then the water is prevented from moving readily out, but still water would go slowly out. And then another trench goes down, recharge and then it goes up again and then recharge again. So the recharge happens along the trenches and along where the water flows. But especially in the trench, there's more water recharge. Let's take this example. You have 116, which is your elevation. And then 100 is another elevation. Water runoff flows from high elevation to low elevation. So from 116 to 100, water is moving slowly. And while it moves, these trenches are there to capture the water. And after the water, there's a bund. Okay. So this bunds actually prevent more water from flowing. Okay. So water is flowing like this. And this is where we captured it in the cross sectional view. It goes in and then the bund. And then goes in and over the, while it goes into the trench, it is recharging. This is clear. More schematics are given in the CGWB, which I've shared earlier in the last class. Then we move on to gully plugs, NALA bunds and check dams. The spellings of NALA is different in different regions, NALA, H, but the meaning is the same. Okay. So there are certain similarities between a gully plug, NALA bund and check dams. But there are also some certain differences. I will go through this in detail. And more importantly, these all work on the principle of if you reduce the runoff, if the runoff is reduced, slowed down or conserved, a conservation of runoff, then water will go into the recharge. Let's look at the definitions. Constructed to check the flow of surface runoff. Hence the word check dam is, it is made to check or slow down the flow of surface runoff. While you check, there's a checkpoint. There is a traffic moving and when there's a checkpoint, people move slow. So that is where you temporarily slow down the runoff and the runoff goes in as recharge. So here you could see water can come and then the gully is plugged. What is a gully? A gully is a sudden dip in the elevation where water is flowing. It could be a stream order, very small stream order, et cetera. So along the stream order, if you put stones and other things that is plugging, like a plug you put for leaking water, like a tap. So here if you put a gully plug, then water will go through and recharge and then still go through the horizontal way. Our aim is to get water vertical from horizontal. So for example here, water will be flowing and then hit this rock, still it will flow, but some water is gone into the ground road reaches because you're slowing down the water. And what you put in the gully depends on what materials you have. It can be rocks, pebbles and other soil materials or it can also be some seedlings and saplings, wood, et cetera. So that is the beauty of this technique. It is not that expensive. This community participation can help in building these structures, mainly to slow down the water and get the runoff in. Construction can be of different civil work and levels. Civil means civil engineering or machinery where you can have multiple constructions or less construction. Very important to understand the bank of these gullies or stream models. If the stream or the gully is not stable, then when you slow down the water what happens is all these material can collapse. Some collapse is happening here, but mostly this is where the maintenance is very much needed. Different materials can be used ranging from wood, loose or dry stone, big rocks or very loose stone that can be clubbed together and used. You can use woven wire like wire nets can be used to slow down the water and a combination of rock and wire can be seen here in this diagram. So all these can be lined across the gully so that water can move and then slowly get infiltrated. As I said we can also put saplings and seeds as FAO has recommended on the top figure. So what is the big difference between the other methods? So gully plugs are the first order stream which means it's a very very small river or a stream network that connects to a river and so the water volume and the discharge velocity is small. So even though it is low you're trying to reduce it so that you can have more recharge. Mela's would be of a higher order it's the same technique but higher order so once the order is higher you would expect to not use the same wood or dry stone but you would use more like cement and rocks. In other words if you look at where these are more appropriate the gully plugs are more appropriate in the forested zones where you have water coming slowly okay rainfall happens and the stream is just starting the starting of a stream is around the forest so there the stream the first order stream you can put a gully plug and right there water can be used. In fact beavers it's an animal called beaver you can google out beaver so these beavers actually these small small forest rivers by making these dams gully plugs and in that they can catch fish or also they get more water so that they can enjoy the environment. So check dams are of higher stream orders and it has a gentler slope. If it's too much slope the water cannot stay so it is gentler slope. Let's look this is a nala a small nala built across the river as shown in the CGWB report and check dams are much bigger it is smaller than a dam large irrigation dam where you cannot walk and run like the kid is walking however it is bigger than the nala nala is much much smaller and also please remember all these are expensive there is money needed for these so it depends on not only the water which is coming but also how much money is available for these kind of activities and if your village or panchayat has enough money then mostly they go for check dams lesser money they will choose the gully plugs or nalas as in when needed and also these check dams can be in a cascading effect so these are called cascading check dams which means one after the other after the other same way you did look at the terrace farming where you had a terrace another terrace and another terrace so or a trench contour trench a trench a trench and then another trench along the elevations here what happens is you have small check dams where water is stored and then overflows and then stored and then overflows so wherever it is stored that is where the recharge is happening so here groundwater recharges happen here to slow down not much is saved behind the gully plug but still some recharge is happening whereas here also there's recharge. Let's look at the next one to slow down the runoff and capture is percolation tanks village tanks and ponds what you see on the top is farm ponds or small small village farm ponds where along the Konkan region Maharashtra you can see that big big ponds are created to capture the runoff so while runoff is coming down the hills for example this is the hill and where it is when water is coming down it is getting stored in these farm ponds and from there the ponds the water recharge is happening okay it's basically evacuated land along the slope or along the land surface where water runoff can be captured but make sure the runoff comes there otherwise there's nothing to store so percolation tanks how they work is a small check along the river and it has good gravel and material underneath the dam to enhance percolation okay this is the difference between a check dam and a percolation pond whereas a check dam would allow the water to go and then it overflows and then goes here you're trying to create a pond you don't see a pond overflowing not often so you take water from the main channel and then you put it in the pond okay so similar to Nala but bigger catchment areas it has much much bigger catchment areas no outlets gateways but spillway as I said you don't have a gate to open and release the pond water but spillways are there a small embankment and along the embankment the water can go should have high permeability that the soil or the land underneath the pond has to have high permeability so it is not just evacuating the soil and then you put the water in here what mostly is done is you can line certain types of soil rocks and materials which have high permeability so that when you put the water in it it starts to increase the infiltration okay many designs exist we will see some of them so in this percolation pond what is you can see is it is along the slope and water is being first shunted into the pond area once the water is ponded up then water starts slowly to recharge percolation tank is along the river and a tank can also be off the river you can just take the water and put it in the tank so mostly when what is the difference between a tank and a pond is tanks can also be along the river channel whereas ponds are normally kept away okay and they can not be not be just fed by the river but it can also be fed by rainfall small barriers to promote groundwater recharge similar to farm ponds without lining so normally farm ponds have lining which means cement line underneath so when water flows it can not go groundwater where village tanks and farm ponds need not want recharge all they want is to store the water and then they use the water later for irrigation whereas percolation pond the aim is to get water in the groundwater okay there is evaporation loss because when you pond the water there is evaporation loss but you are also augmenting the percolation not infiltration percolation infiltration is just going in very slowly this we saw in the previous lectures whereas percolation is going into the back of the village tanks are somewhat outside of the main river channels it's a tank so normally tanks are also away from the river channel whereas water can be put in from the main channel so or runoff can be routed into the tanks whereas a pond is similar to a tank but smaller in size and also water can be put in through runoff routing okay so we route the runoff into the percolation pond so the village tank what is new about this is village tanks were never for groundwater recharge it was a water body that the village would use for drinking bathing domestic use and or taking the livestock for water however the cgwp manual and many studies have recommended the use of village tanks as groundwater recharge so what you need to do is make sure you remove the cement lining on the ground underneath the tank so when you expose the tank to the natural soil then water recharge can happen rather than having a cement line so normally a village tank is like a large swimming pool very very large swimming pool if it has cement otherwise it is just made of tarp some people put plastic sheets underneath to prevent the recharge but the idea here is if you manage the runoff to capture all the runoff effectively and put it in the village tank you could still get recharge going down and also use the water for domestic or the surface the next one I would like to touch upon is modification so a modification of stream channel and augmentation is also very necessary for successfully reducing the runoff conserving the runoff for recharge so what does it mean so here what you see from the epa book is that when a river is flowing when a stream is flowing when a water runoff is flowing okay if it is made to flow in a very concentrated way then fast it will go and less recharge is happening if it goes in a tortuous way there is some water that can be recharged however still the water can go fast however but if you make the stream go in a wide channel rather than a small channel if it goes in a wide channel then water will be spread across and then recharge can happen just look at this image so here what is happening is the river is flowing in a very small concentrated way even though the land is available so there is less recharge happening but in this system all the other banks are you know protected and dug deep then the water spreads once you spread the water there is more connection between water and land area the surface area and then recharge happens so like this initially this was all water flowing but slowly what happens is at this part it gets deeper okay when it gets deeper then the other land is not having water for recharge only water recharge happens here so the idea is to modify or manage a stream channel to increase the connectivity of water and land to recharge area where flows occurs only limited part of the valley for example valley is along the slopes also but it happens only in a limited section if you see a valley even the Ganges valleys and basin the bank is so big however water flows in a very small area and only in that area water is recharging however if you make the water flow like in a spreaded fashion then more recharge will happen aim is to increase spread area to have more infiltration so you spread out the water to have more infiltration is similar to the afloat irrigation method here you are you're doing it inside a river channel bank stabilization is important so as and when this happens you need to make sure that you clear this element so what is happening here is when water is flowing here sediments are depositing and only water is flowing in this area slowly the sediment deposit is high and water only flows in the center region what the idea is to make sure you push all the sediment out so that water can still flow the common methods are widening you widen the area of where the water can flow or widen the stream channel leveling you keep it on the same level like here all the water is on the same level in stream ditches so along the stream you can have multiple ditches where sediments can be deposited rather than at one location depositing in stream levees like this example the levee is a small check time kind of thing but not like a dam it's just a small like a speed breaker within the river so when the water is flowing it slowly goes above and then goes down and while it goes up and down there is some gravel fill here a different material is filled so that water can recharge low head check dams is the same as I said it's in stream levees so you can have a small check dam but not like a check dam where it's big and then it stops the water it is just there to so the water can go over and then slow down while it goes so with this I think we have covered the major major factors for conserving runoff and recharging it through direct methods I will see you on the indirect methods and other methods for runoff to recharge in the next class thank you


Problem solving is a method teachers can use to guide students through any kind of problem. There are four steps to problem solving. Define the problem, make a plan, put the plan into action, and check the result. As an example, you'll see how these ants use the four steps. The first step is to clearly define the problem. To understand what the goal is and what is keeping you from reaching that goal, the ants want to move this cookie into their ant hill, but it's too big to fit. The second step is to make a plan for solving the problem. This step includes talking about information and ideas that will be helpful. The ants decide to break the cookie into small pieces and move them into their ant hill. The third step is to put the plan into action. They break up the cookie and move the pieces. And the fourth step is to check the result. It looks like it's working. Sometimes the plan does not solve the problem. For example, this piece is still too big to fit. But that's okay. The four steps may need to be done more than once. It's an ongoing process until a solution is found. Define the problem. Make a plan. Put the plan into action and check the result.


Hi everyone we just finished our gynecomastia surgery he did excellent he even took a nap while i was working how was it it was awesome i think it was a great experience how was how was it after we after you saw it you were surprised i was very surprised never seen that in my life very flat very flat raise up your arms right after surgery he's raising his arms no pain he's doing well he's going to go home and rest and uh no working out until i see you man i know you're anxious to get those chest going but no working out till i see you did great thank you


Hey you guys, happy Sunday morning. It's 926 a.m. Sunday July 9th. I think we are starting off our Sunday morning doing something we haven't done since before COVID started. Yep, we're going to the gym. Oh god. It's not my favorite place to get exercise. I'd rather just walk the neighborhood but you know it's nice to be able to have that option when weather sucks basically. If it's going to be you know 100 degrees outside that's not when I want to go walking. If you know it's really stormy out and it's not safe to go walking. Today none of those are true but we did know we need to bite the bullet and just start going back to the gym at least once a week. Go back to a routine. Yeah back to a routine so we are going to start our Sunday morning off doing that. I'll let you know how it goes. I'll be back. Everybody it's 10 17 ish a.m. Monday July 10th. I have more crocheting to do because I'm working on a couple different crochet projects. I have video editing to do. I kind of want to film a video and get that edited too and just a day at home. My stomach is very gurgly this morning. I don't know why but you know anyway it's going to just be quite day at home. I have projects to do things to get done. I am babysitting tomorrow and so he comes in around lunchtime so I have today and tomorrow morning to get stuff done and then the rest of the week is pretty busy so I guess I should get to it. I'll be back. I haven't edited any video. I was too busy making a bag. I wasn't intending on making today. Now I've got to clean up that and the sewing machine and the thread on the floor. Turn off some lights and maybe grab a snack and then get to editing because editing has got to get done. It's okay I've got time only halfway through the day. All right so it's like 7 30 it's a little bit cold. Putting on sleeves aka a coat might not have been a super great idea but it wouldn't be the first time I took it off and tied it around my waist. Anyway we're gonna go get a few steps in but I'm with him so that means he won't be able to walk as fast as usual or probably as far. I'll have to take my time. Oh god. Slow down.  Hopefully I can get the last couple rows done on the baby blanket tonight and then I can work on the edging tomorrow but we'll see. I'll be back. Have I vlogged it all today? I don't think so. It is Tuesday, January, July 11th and junior just went home and because today was a babysitting day and I haven't got a whole bunch of stuff done today although I did get some lace dyed for next upcoming recycling project which is a coat and whether I dye the coat also or not I'm not sure yet. I don't think so but we'll see. Anyway I'm gonna sit and finish the baby blanket I'm working on. Have some water and a snack because watching little ones even if they're only a couple months old takes a lot out of you. So anyway we'll go walking when Bob's off at work and then we'll see what else we get up to. I don't know yet. I'll be back. It is 11 10 a.m. Wednesday, July 12th. Pretty sure. Anyway I had counseling this morning and did a couple of chores. Now we're going to go out and run some errands. I did dye some lace yesterday for my next upcycling project and it came out a little too red so I have it soaking right now in some gray dye. We'll just take a chance. We'll leave it soaking in there until I get back. It might turn out too gray but we'll find out. Right now it's too red so gray would be better. Anyway okay all done with our errands. I found a couple things at Goodwill, a couple things at Value Village and a book for Mr. Bob. I think he's gonna like. I also got the groceries I needed. Check the PO box. By the way if y'all want to send me happy mail I do have a PO box. Address is down in the description. Anyway I am starving to death to the point where my stomach's kind of nauseous so that means it's time to go home and eat. My counselor and I of course are talking about my mental, physical, health and well-being and she reminded me I've been wanting to try coconut water and it's really good for you. I don't have any idea what it tastes like but I do like coconut. Raw coconut. So we'll see. I got some at the store. Also for the first time in a really long time I was a little creeped out at the thrift store. Had some young man who I'm sure was young enough to be my son come up behind me and say hey baby I'm sure he was talking to me because there was nobody else around but him and I. So I said I'm fine and I went back to putting my nose into the shelf so what I was looking at and then ignored him. It was weird you guys. It was very weird. So anyway I am gonna go home now. It's time to go home. I'm done dealing with humanity. All right that's it for the minute. I'll be back. Okay guys so this is for another upcycling video. We're gonna start working on that blazer. So you've seen this blazer hanging on my mannequin for a bit now in the vlogs. I've talked about it. I paid about five bucks for it recently at a thrift shop and I don't think it was ever worn very much because one pocket was still sewn shut. Okay you guys I once I got home from errands was sewing and sewing and sewing. I'm working on the jacket. I am filming it for YouTube. It's seven o'clock. I lost track of time and if I hadn't had taken a glance at the at my watch I'd probably still be sewing until the jacket was done. I tend to be obsessive about things a little bit. Yeah anyway we should eat dinner and I think I'm thirsty. All right I'll be back. Good morning everybody. It is 10 27 am on Thursday July 13th. I think I head out to run a couple of errands and then I've got to pick up my sister at the airport. My dad is driving down from his house today.  She and her family are moving so she she's flying in today from Utah to help her move. There's a lot of stuff going on can you tell? So I've got any sewing done today. I might not get any sewing done for a couple of days on the jacket but that's okay. I can stare at the pieces I have pinned to it and make sure those are what I want to do which I'm fairly certain the answer's yes and just be double sure before I take it any further and yeah it's all good all good so anyway I've got my water I've got my wallet I've got my keys I'm all good I think I got my small tablet so I can read while I'm waiting for my sister's plane to get in so anyway we're gonna go run a couple errands and good morning everybody it is Friday morning July 13th I think oh Friday the 13th oh anyway maybe it's the 14th I don't remember it's Friday it's 9 16 a.m we just dropped my dad off at the airport he is headed to Florida to meet up with my sister and her family my sister Karen and they are all going on a cruise I think to the Bahamas and this is my first dad's first trip a vacation like this out of the country and his 84 years of life he's never been out of the US so yeah anyway I'm very excited for him he's gonna have a good time I think now I have to make my way home so far traffic's not been too bad cross your fingers it's still that way on the way home because Portland traffic's been horrible lately so but we'll see I don't know all right I'll be back so my sister's still working and when she's done we're gonna go out for a bit but while I am here with some quiet time I decided to rearrange my trims and doilies a little bit because this stack of drawers was traditionally yarn and embroidery floss at least that's what I thought was in there I went into one of the drawers the other day to get something out and realized there's a bunch of a bunch of ribbon in there and it's not the thin silk ribbon I used for embroidery was just yeah so plus we had these bins over here where are we here there were like overflowing I couldn't the bin with the doilies in it had lots of other stuff in it I couldn't find what I wanted it was just a mess so I consolidated some of the yarns and things at the bottom so it freed up a drawer a whole drawer at the top which I then put all the ribbons and trims that were over here over there then I had an empty bin a whole bin over here so I separated out the sort of netting and vintage fabrics from the lace and doilies yes I have a whole bin of lace and doilies and that's after I've used a bit so it's all separated now easy to find yeah loving that all right I'm gonna sit and have some water now wait for my sister to get finished and then we're gonna go run a couple of errands and I'll be back we are leaving my niece's house and we helped them pack a bunch of boxes in the garage we can't help pack the pot because it's not here yet but we did do a lot of stuff in the garage I'm a hot sweaty dusty mess so anyway we're gonna head towards home not sure what else we're gonna do today but I'll let you know I'll be back hey guys it is 9 16 a.m Sunday July 16th yes I forgot to close the vlog yesterday was a very busy hectic stressful well not stressful exhausting day we helped do some packing at the niece's house and drove home and then Bob got a call can he come help today tomorrow then today at daughter's house with some of the construction going on over there which we didn't know he was doing which meant that after dinner we had to go grocery shopping because we were going to do that this morning that was just a crazy busy day needless to say I forgot to close the vlog anyway some of that's for next week's vlog it has been a great week not as productive as I would like but you know what life happens I did find another interesting free pattern on the internet which I'm printing out right now I also picked up a couple of cool things at the thrift recently this last week with my sister one of them is a jacket it's middle of summer 90 to 100 degrees out and I'm making jackets which yeah it makes no sense but that is what it is all right anyway I hope you like share and subscribe I hope you guys have had a great week that you've had a creative week that you've enjoyed your week if you have any questions comments or concerns please do leave them down below check out the video description and above all go out and have a great day do something nice for yourself because you deserve it I'm going to finish my coffee I'll see you next week bye guys