Thank you. It looks like I did get it. Thanks very much. Good morning. Thanks. Good morning, Mark. Good morning, Howard. I'm good. Thanks. How are you doing? Good. Good morning, Jennifer, Andy, Roberta. Hi, Dan. Good morning, Chair Galvin and Board Member Walsh. Nice to see you both. Good morning. Secretary, do you know if we have. Our other subcommittee member joining us? As far as I know, this was a come-from-for-all free. Okay. We can wait a couple of minutes. Good morning. Having a little bit of camera trouble. So I will do my best today. Thanks everyone. We can see you, Lisa. Fabulous. Good morning. Thank you. It's been all kinds of things this week. No problem. All right. We have everybody, I think, then. So I'll go ahead and call the meeting of the contract review subcommittee for the Board of Public Utilities to order. May we have a roll call, please? Secretary. Here. Board Member Baden for. Here. Board Member Walsh. Here. Thank you. Thanks again, everyone for joining us. I don't think I have to give you all the admonitions that I normally give for the regular meeting. So I think this will be a quickie. First item on the agenda is public comments. So we're now taking public comments on item two. If you wish to make a comment via zoom, please raise your hand. If you're dialing in via telephone, please dial star nine to raise your hand. Do we have anyone? No public comments. There's a surprise. Thank you. Thank you. Thank you, chair, governor members of the subcommittee. Our only item is the water service agreement between city of Santa Rosa and El Cristal mobile home part. And Andrew Allen, our supervising engineer in the asset management team will be making the presentation. Thank you. Can you put up the slides? Is that how we're doing it today? No, sir, you're presenting. That's why I want to do to a co-host. Do you not have a PowerPoint presentation? Oh, I apologize. You want me to run this. I apologize. I will be honored to do that. Give me a second. I'm going to try it now. Hold on. I don't think we're seeing the right screen. There you go. Thank you for your patience. I don't normally have this, this fancy a setup going on here. So I'm actually pretty happy it made it through. Good morning Chairman Galvin and members of the board and specifically the contract review subcommittee here to take a walk you through the water service agreement between the city of Santa Rosa and El Cristal mobile home park. Again, my name is Andrew Allen supervising engineer. I'll give you this is the overview of our my presentation. I'll give you a little background on the on the project and what's happening and why we're here location map showing you where El Cristal is some specifics about the El Cristal mobile home park. The request for assistance and prior bpu and council review. Our analysis and recommendation little background, a lot of words on the screen, but we are in the process of there's nine locations in the city of Santa Rosa that the state has asked us to provide water systems that want to be consolidated to the city. And the state requires that we do this it's mandatory for us. And they have an assistance program the state does a lot of the work on the front end of this activity coordinating at hiring consultant. And ultimately they they reimburse the property owner for fees paid and construction. And then under prop one, and we've done one before under prop 84 connecting for similar water systems that are in need of connection so in grant funding for this project, and it will ultimately be a CIP projects that connects these nine water systems to city water. So location map and the highlighted water system is that the El Cristal mobile home park got quite a few right along Santa Rosa Avenue we do have a project on James court, which is actually a street project. The mobile home park so summer mobile home parks but not all, but that's the location of the various nine water systems that ultimately we're will be connected to city water. The El Cristal mobile home park is in the is one of the nine. And they have arsenic issues and then more recently came up with E. Coli contamination that they haven't been able to clear from their wells. So they have been supplying residents with bottled water for a couple of years now. And that's for use for drinking and bathing and that's challenge and they want to fix that this mobile home park and water system is actually outside the city limits so utility certificate was required and that has been applied for and granted by the city. Again with this high E. Coli the E. Coli counts the state approached us for us additional assistance, and we felt it appropriate that we allow a temporary emergency connection. And when I say emergency connection we are connecting them to our to a water supply our water supply. The full connection will include fire protection as is required for connections with the normally connections to city water so ultimately the fire connection will be made with a larger project. But we're trying to get them some good drinking water in the meantime. And that's why it's called a temporary connection but it's going to look very much like the permanent connection. Once we're all done. And the purpose of this agreement and why we're here today is the water service agreement between the water system and the city has to be signed and and submitted to the state. So it just is telling them that we're taking over and by to provide water that's really the majority of the agreement is is limited to to that other so the crux though the situation and until that agreement goes forward. They can't be reimbursed. This has been seen by bpu and ultimately up to city council, one of the back in 2020. In order to help facilitate the emergency connection, because they have a limited amount of funds that they're willing to put towards an emergency connection project. We requested and we agreed to a fee deferral agreement. And those fees will be paid as a first order business once we have the overall nine system connection project. So that's, we came to you and showed you similar information and asked that you recommend to city council. The, that the fee deferral agreement was satisfactory, and then you unanimously approve that again back in 2020. And next month in October of 2020, we went to council and they unanimously approve that agreement as well. So that was step one. In the meantime, we have the contractor has submitted plans and it's received an encroachment permit to move forward as well. The state consolidation project will provide the permanent connection to city water within the next five years hopefully a little sooner than that. Again, due to the urgency need for water El Cristal, it had the have started construction of the temporary connection. Initially, this is at their own expense. And the water service agreement is required by the state for El Cristal to be reimbursed. So they're just starting to spend money so time it's very timely that we can put this forward looking a little more specifically at the at the agreement itself. We're going to work together to complete the temporary connection here in 2022 El Cristal is responsible for paying all the costs to connect to city water, including construction costs and meter and processing fees and encroachment permit fees. And that the city will provide water to El Cristal El Cristal public water system will cease to exist. And El Cristal will be a customer of Santa Rosa water. And there is no cost associated to the city for this agreement. And it is recommended by the water department and that the board of public utilities contract review subcommittee recommend that the board of public utilities by resolution approve a water service agreement between the city of Santa Rosa and El Cristal mobile home park LLC. And I'm here to answer any questions that you might have. Thanks Andy. Any board member or committee member questions or comments. Seems pretty straightforward. I know we did see this back in 2020 I'm surprised it's taken so long to get back to us for the temporary but I guess the E. Coli issue probably spurred things on a little quicker. Things there's a lot of paperwork and steps that go through the process to to get to this point. You know, being in the middle of coven hasn't helped. And but they do have a contractor on board, they're starting construction and it's a They're excited and happy to be going we've got some of the other ones are some of the other mobile home parks are asking for the same but they don't have the same emergency. In effect with the E. Coli is just very important to get them hooked up and we're happy to do that. If it was if they just mobile home park just came in and wanted to connect there's no reason. An agreement like this isn't put in place, but it is to make sure the state wants to make sure this is all documented, and they can get pay the mobile home park and reimburse their costs. How many units are in this development. I think there's. There's 130 people I think 130 residents and I more like 60 units, I have that information I just don't have it at the, at the tip of my tongue. That's okay. No problem. Board member questions or comments. It's a big here here and thank you for the presentation and the work. Most welcome. All right, well at this point then we'll take public comments on item 3.1. You wish to make a comment via zoom please raise your hand if you're dialing in via telephone please style star nine to raise your hand. No public comments. Okay, at this point then I'll ask for recommendation or a motion from the committee to approve the recommendation from the water department. I would like to make a move that the committee of the Board of Public Utilities recommends a full Board of Public Utilities approval of a water services agreement between center of the water. No crystal mobile home park as presented by staff. Second. All right we have a motion in a second. May we have a roll call vote please. Thank you. Thank you. Thank you. Thank you. Hi. Board member bad and for. Hi. And board member walls. All right. Great passes unanimously. Thanks again, Andy. I'm sure it'll sail through BPU and the council. I think that concludes our agenda. I appreciate you all being here. Nice quick meeting.  And Jennifer, I guess I will see you on the zoom this evening. I appreciate your time. And yes, we have an important council meeting later today. All right. We are adjourned. Thanks. Everyone. Thank you. Bye bye. Jennifer. Jennifer, are you still out of y'all? I'm still here. I'm sorry. I'm sorry. I'm sorry. Thank you. Thank you. I'm the Roberta. I'm off site traveling. And her burn. What beyond the scope of her duties. To make sure I got the agenda. Got all set up on time. So. Oh great. Up in the out. Tomorrow's meeting. I think I'm going to be eating the air. For the water. So I apologize for that. Okay. I think we have a, we have a quorum. So we'll miss you, but I appreciate you letting us know. Thank you. Thank you. Thank you. It's, it's an, it's an easy agenda. It's, it's some feel good items. So that's nice. I'm really appreciate it. And so we're going to apply for the award then. That, that should be able. There was just discussion of that and how we apply or. We're going to provide information on awards. That we're giving our community for doing a great job. So that we can see how we are going to be. So, that's great, thank you. And there's also again, I guess one thing on the slide. It's got a little bit of a console. A water bill. A thousand dollars. That's area to go jostled around. So it's always one point four above. So I think what happened is a building this, but I got one for a thousand, I think that's the wall.


you're watching impulse on the freedom network and now here's anthony thank you i appreciate you and i appreciate our audience today i want to talk to you about this this is the turtle beach xl1 wired headset i spent about nine ten hours on this headset using it and um i don't like it i'll be honest this headset has very rigid foam around the ears and it also presents a few other issues when you start connecting it to different kinds of consoles and other things it's not really what i would think is a high quality headset the microphone is not nearly as positional as you would assume that it is it's got an annoying click to it when you move the microphone and all in all i just really don't like it it's made out of cheap plastic and it just it it reeks of cheap the xl1 does include the color green which is probably messing with our chroma keying however i'm trying to keep it as minimized as possible um it's very bright it the there are no lights on it however it does kind of hurt the eyes just look at it the green on black it just doesn't work for this particular headset it's a mess microphone quality on the headsets probably about a four and that's even already trying to compensate for the fact that it's a headset and not something like a condenser microphone the padding on the top of the headset is kind of like a gel foam type material which sounds good to start with except for it kind of makes your head sweat and that coupled with the strange padding on the ears just makes it work it it just makes it kind of uncomfortable to use and it made the whole testing experience i didn't enjoy it turtle beach get on your game and make some better headsets all jokes aside this headset isn't necessarily so bad once you take the price point into consideration you can pick these up for like 30 40 bucks or so they're not insanely pricey but they're just not where they need to be for my personal seal approval this headset does say that it's only compatible with the xbox 360 however i did get it to work with an xbox one to a limited capacity and of course my pc as well which is one of the reasons why i'm a pc gamer everything works the court does include the ability to change volume for chat separately from the end game which is awesome but we've come to expect that from turtle beach so it's i mean it's a great feature however it's one that we kind of walked into knowing that we have or at least assuming if you have any experience with this unit or any like it let us know in the comment section down below if you have any thoughts or concerns or questions about the product let me know if you have any requests about future things that i should unbox and or review let us know in the comment section down there and yeah till next time on anthony like subscribe comments please oh also you can always find me at youtube.com slash anthony smith freedom you thought it'd be anything this time well guess what it's cousin here to do review i'm here to do the review on the zora 2 headset made by noontech all right guys all your secrets if you really look at yourself you would be speechless what happened to being doctors and teachers what happened to being your brother's keeper nowadays kids


What's up everybody, once again it's Brand Man Sean and I'm back with another episode of Inside the Network where we show exclusive content from inside of brandmannetwork.com and this snippet right here is a snippet from an interview I did with Mike Millions who's an artist manager who's been hustling and moving his way up through the game, has a lot of lessons and was really open and willing to share them. In this particular snippet he talks about the value of relationships in the music industry and really how you should look at them in some ways. So when his career started going a little cold in 2016, I was like alright let me do something, let me figure out something else because if he goes cold, it's like a business going bankrupt you feel me, if he goes bankrupt everybody got his own job. So true.  Especially if you're not like integral, like the one in the main man. I wasn't the main man but it's just like, I really was like man, just like I met you I really could like tomorrow I'm shining you out, I'll be posting your stuff, I'm showing you love because you gave me opportunities so it's like if I see my man's woman and he the friend of my other man, I want to see him win, it's just all about that so even from the moment I met him, I showed him love, I reposed this stuff and he might not even call me, he might not even say thank you but I don't care about the acknowledgement, you feel me, because I want me now. I didn't do this and I just work my way, I show love when it's the right time and I work hard when it's the right time and I realize when it's the right time so it's all about just doing progress, just progressing so and there's industry stuff, relationship matters, not even about the money now. For sure, it's crazy how much relationships matter, at what point did you realize that? 2017, 2017, 18, because I measure my success by years, you feel me, like period, last year, this year to last year, that was kind of rough for me, especially when I was breaking, when me and my first audience fell apart because I could get, I could get, I'm a very loyal person so it could be a downfall to me sometimes especially when people are, people come in, remember when we started talking about when we built a relationship, so people come and they, they could six months, they could be cool for you six months but then the moment you offer a contract or the moment you want some extra money, or the moment you, you do something wrong, that shit switches up so and it's all about relationships and also because when people think you got money, they just gonna try to take all that shit from you, every single penny, like something might be worth 500, 1500, they gonna charge you 1500, you know what I mean, so I was like, and then I knew that I couldn't buy, okay, at one point in time I couldn't get into radio stations, couldn't get into certain studios, I didn't know what was going on, now I know what's going on, I could get into all the radio stations in Atlanta, I could get into all the exciting events in Atlanta and I could walk into all these clubs for free, honestly. So you couldn't get in just because you didn't know anything or you weren't connected, you were just early on or you couldn't get in because you were like blackballed or something like that? I was, I didn't know anything. Okay, gotcha.  You might not even have done that to them.  So and I'm not even going to say I'm successful, I'm just a really good person trying to make it so people don't like you when you're not, you know, when you, when you're doing something positive and it's weird to me because I'm like, if you're doing your thing, shout out to you, my brother, let's work, let's get it, let's win, but they don't like that. And I'm like, I'm just trying to figure out like why, like that's the, that's the negative part of the industry that I don't like, you know what I mean?  We all know each other. High school or just parties and stuff and just even messing with the same females, but it's like you don't like me because of, oh, everybody saying I would shoot oh, you got it in the club and I had a hard time being in the club. Oh, you mess with the same girls.  You know, we had the similar, similar ideas. Why we didn't, why, why we didn't collaborate? Yeah. If you remember me, instead of competing, it's, it's, it's a way for you, both of me and you to have the same ideas, but we're gonna do it different. We're going to execute it different ways, right? But why not instead of some people who just like hate on you or just don't like you instead of just collaborating, getting the idea to a better ground and just being successful and make a lot of money off it.  Can't get black ball, but me, I always say it's not where I can get black ball because I pray for this. You feel me? I pray for this. I got, I work hard for this. And if God don't want me in the room, that's God, not you. Ain't nobody to tell me what I'm about to do. So, ain't nobody close the door. Every time I, every time I wake up, the first prayer I always says, any opportunity is not meant for me. Let me know, God, close those doors. And if this is an opportunity meant for me, open them. And I'm being on stages and being on rooms with them. All right. Now, if you like that snippet, you can check out the full interview on brandmannetwork.com. And the, look, the key things that I want to just draw on are pretty simple from this, right? Relationships can open doors, relationships can close them, right? They can get you in and they can keep you out. And it's something that you do have to keep in mind, right? There are a lot of situations that money cannot buy, right?  There are plenty of those situations. So there's a lot of rooms that you might not be in simply because you don't have a relationship to get in them. And sometimes it's not even about that or if anybody's blackballing you or they don't like you. Sometimes you just aren't on their mind. They don't even know you. So building relationships and getting people to know you and keeping yourself top of mind and showing yourself to be quality and relevant to them, that gives them to have the opportunity to say, yo, you know, I'm doing this, I'm in this meeting and I'm, and I'm talking to these people. And when they said they needed this, I thought about you, right? That doesn't happen without you even having a relationship. So there's so much value when it comes to relationship, not just in the music industry, just in business in general and life in general. So keep that in mind. I know you guys might hear it enough, but it's never heard enough, right? It's something that you can always be reminded of because it's that relevant and that vital when it comes to having a successful, sustainable career. And last but not least, people are people, right?  I'm not going to do anything that I know is going to hurt somebody or I know is going to be looked at a certain way if I don't have to do it, right? And some of that comes with maturity, right? There's sometimes people will be like, yo, you know, I'm not going to change who I am. I'm going to do what I need to do and blah, blah, blah, right? You can get to a certain point in life where you realize, look, man, it's not even that big of a deal. I'm not going to even do this thing, create enemies that I don't need because obviously when we think about relationships that can easily come back to you. So that's also another thing to keep in mind, right? Having the maturity and being able to manage ego has a huge, huge deal to do with success. When I'm telling you like that, I understand managing your ego can be hard and your ego not reacting sometimes can feel like somebody else's ego winning. But trust me, there's been snippets. You can look at Jay-Z interviews and there's so many clips. Matter of fact, Jay-Z had an interview with Suzanne Lowe, right? And they talked about that. Like sometimes you just got to step back and let other people's egos move. Let their egos go to work and doesn't mean that you're losing. It just means you're not participating in that entire game, right? You're not engaging.  But you have to realize long game is going to serve you better that way in most instances. So it's another thing to keep in mind. Of course, if you guys want to see the entire interview, you can check it out on brandmannetwork.com. We help artists develop their brand and of course help them build out their marketing infrastructure so they can grow their fan base. If you liked this video, go ahead and like button. If you like it, you might as well share it. And if you're not subscribed, you know what to do. Hit that subscribe button.


This is a video about how to find the mode of a Poisson distribution. The mode will be the number of events which gives the highest probability. So the question is, which number of events gives the highest probability in a Poisson distribution? Let's look at an example to start with. Suppose that x has the Poisson distribution with parameter 4. So 4 is the expected number of events. We can work out the probabilities. The probability of having 0 events is 4 to the power of 0 times e to the power of minus 4 divided by 0 factorial, which is e to the power of minus 4 because 4 to the power of 0 and 0 factorial are both 1. The probability of having 1 event is 4 to the power of 1 times e to the power of minus 4 divided by 1 factorial, which can be written 4 over 1 times e to the power of minus 4 or 4 times e to the power of minus 4. The probability of having 2 events is 4 squared times e to the power of minus 4 divided by 2 factorial, which is 4 squared over 2 times 1 times e to the power of minus 4 or 8 times e to the power of minus 4. The chance of having three events is four cubed times e to the power of minus four over three factorial, which is four cubed over three times two times one times e to the power of minus four, which turns out to be 32 over three times e to the power of minus four, and so on. The probability that x is equal to four, if you do the calculation, also turns out to be 32 over three times e to the power of minus four. The probability of having five events is 128 over 15 times e to the power of minus four, and the probability of having six events is 512 over 90 times e to the power of minus four. Okay, well, you can see from this that there are two numbers of events which have the joint highest probabilities, and that's three events and four events. This is because 32 over three is a little bit more than ten, and that's higher than all the other coefficients over on the right-hand side. It's obviously higher than eight and four, but it's also higher than the others. 128 over 15 is just a little bit more than eight, and 512 over 90 is just a little bit less than six. So we can say that the Poisson distribution with parameter four is bimodal, and the two modes are three and four. But before we move on, there's a pattern here, and if you look at the pattern, we can work out a method for saying really quickly what the mode is. Look at how the probabilities change going up the number of events. Going from naught events to one event, we multiply by four over one. Going from one event to two events, we multiply by four over two. From two events to three events, we times by four over three. From three events to four events, you times by four over four. From four to five, you times by four over five. And from five to six, you times by four over six. Now this explains why three events and four events give the joint highest probability. From naught up to three events, the probability keeps increasing because when you times by four over one, or four over two, or four over three, your multiplying number that's bigger than one, and that causes the probability to increase. Going from three events to four events, we multiply by four over four, and of course that's multiplying by one. So the probability doesn't change. Going from four events to five events to six events, the probability decreases because we multiply by four over five, and by four over six, which are both fractions smaller than one. And whenever you multiply by a fraction smaller than one, the answer gets smaller. Now generalizing from this, we can say that the probability of having x events is lambda divided by x times the probability of having x minus one events. And if you think about it, this means that if x is less than lambda, in which case lambda divided by x will be greater than one, the probability of x events will be greater than the probability of x minus one events. So the new probability will be greater than the previous one. If x is equal to lambda, then lambda divided by x will be equal to one, and the probability of x events will be the same as the probability of x minus one events. Finally, if x is greater than lambda, then lambda divided by x will be less than one, and the probability of having x events will be less than the probability of having x minus one events. The new probability will be less than the old one. So when x is less than lambda, the probability will keep increasing. When x is equal to lambda, it will stay the same. And when x is greater than lambda, the probability will decrease. And this explains why when x is equal to lambda, you get two joint highest probabilities where x and x minus one are both modes. Let's return to our example to see how this worked. Here, lambda was equal to four, and three events and four events gave us the joint highest probabilities. Up until three events, the probability kept increasing. From three events to four events, it stayed the same. And from four events onwards, it kept going down. In general, we can say that if lambda is a whole number, then the Poisson distribution with parameter lambda will be bimodal. That means that there'll be two modes. And the modes are lambda minus one and lambda. If the expected number of events isn't a whole number, if lambda isn't a whole number, then the situation is a little bit different. Here are all the probabilities for the case where lambda is equal to 4.1. This time, if we look at how the probability is changing, this is what we get. Here you can see that the probability will increase from naught events to one event, from one event to two events, from two events to three events, and from three events to four events. Because 4.1 over one, 4.1 over two, 4.1 over three, and 4.1 over four are all greater than one. After that, the probability decreases. If we go from four events to five events or from five events to six events, we're multiplying by a number that's less than one, because 4.1 over five and 4.1 over six are both less than one. So this shows that in this situation, the mode is four, because that's the number of events with the highest probability. In general, if lambda is not a whole number, then the Poisson distribution with parameter lambda is unimodal. That means that there's only one mode. And the mode is the greatest whole number that's less than lambda. Let's look at some examples to finish with. We can use the rules that we've worked out to answer these extremely easily. First of all, suppose that x has the Poisson distribution with parameter 9. This is a whole number, and when lambda is a whole number, we know that we will have a bimodal distribution where the modes are lambda minus one and lambda. So in this case, there'll be two answers, the numbers eight and nine. Secondly, suppose that x has the Poisson distribution with parameter 6.13. 6.13 is not a whole number, and we know that when lambda isn't a whole number, there'll be one mode which will be the greatest whole number less than lambda. So here we're looking for the biggest whole number that's less than 6.13, and that's 6. Finally, suppose that x has the Poisson distribution with parameter 0.45. Well again, we're looking for the greatest whole number that's less than 0.45, and that's zero. Okay, I hope this helps you to understand how to find the mode of a Poisson distribution. Thank you for watching.


How many of you have heard the name Brahmos? Yeah, so it's a fastest supersonic missile built in collaboration with India and Russia. And I was looking at analogy of something fast for the name of my library. And one of my friend, Yuraz, came up with this since the name Brahmos. About me, I'm Sudhanshu. I work at Hacker Rank. I like talking about front end platform, architecture, tooling, patterns, and frameworks, and mostly about react. So let's get it started and let's launch our Brahmos missile. Okay, good. So just a small brief on what we will be talking about. So Brahmos, it's inspired by litastimal and hyper-estimal if you guys have heard about it. So the main idea about this library is to divide your application into static and dynamic parts and on updates, only compare the dynamic part. So I'm a React developer and I love React. React is great. That's because it provides a great declarative API. It has well proven patterns like JSX, contacts, hooks, and now the concurrent mode is coming up. It's a widely adopted library because it provides a great developer experience and that is because it has a great tooling ecosystem around it. But it has one key problem. There's something with slide, problem with the slide. Okay, so if you think about an application, it's a combination of nodes. It can be like a static node and dynamic node. So here, the green dot represent dynamic node. The blue dot represent static node. And whenever there is an update on any of the nodes, so here, let's say we are updating the last node and the state is coming from the top, React doesn't discriminate about static versus dynamic node. So instead, it tries to compare everything and then it finds what exactly changed. It finds what's the minimal update required for the actual DOM and then it applies those updates. So kind of React is a function of nodes and nodes here can be your component, your native element, and in a React term, it's basically a Fiverr node. So when I came across a talk by justin about justin about LiteracyML, he introduced a pattern where we don't have to care about the static nodes. Instead, if there is any update on the DOM, we just have to compare those dynamic parts and find what has changed and we will have associated actual DOM node to it and then we can update those DOM nodes. So LiteracyML basically is a function of dynamic node versus React, which was function of nodes. So this sounded like a great pattern. So that kept me thinking, how this, there is some problem with the figure, okay. So how this pattern can improve the overall performance. So I went to check the benchmark, check the performance benchmark between these two patterns. So there is a open source project where all the libraries have added the benchmark of itself and there I compared mostly on the pattern which I will be discussing today versus the virtual DOM. So we can clearly see that the pattern itself performs better than a V DOM. So LiteracyML, LiteracyML and HyperacyML all uses the pattern we'll be discussing versus the React view and React which uses virtual DOM. So this library usually renders like a thousand top rows, try to update it, replace it, remove it and then check the performance things. So not just the performance, even this pattern can be implemented in a lighter-wet library. So the whole startup metrics can also be smaller. So all of these three libraries are much, much smaller than the other virtual DOM counterparts. And even the memory allocation during the runtime is less on the pattern versus virtual DOM. So this gave me a good motivation to explore more on this pattern. And by the way, benchmarks are good but they're not like, they doesn't show the complete picture. So, and most of the time if you talk about performance, it's not the library which is slow, it's more of your application code which is slow. So the library providing a proper API through which you can write something, performance code is much better than the library which performs better internally but the API are not very well accepted. So, because React provide a great declarative API and now they are going toward this concurrent mode, so they are trying to focus toward making your whole application performance. So I thought like, can we implement the pattern, rendering pattern in React itself? So the first thing I thought was, can it be a improvement on React library? And suddenly it can't because React is tightly coupled with virtual DOM and the reason behind that is it has to support multiple platforms and you can write a different renders, renders for like native element for browser, for server side, for VRs. So React is never going to ditch virtual DOM, they might find a different way to figure out what is a static and what is dynamic notes on it but we don't will stay. The second thing I tried was to write React API wrapper above LitSTML, but the problem with that was LitSTML API and React API doesn't match properly, they have both a great API but the API of React is not directly mappable to LitSTML. So I was left with one thing of creating my own library and I saw that as a great opportunity to learn about the inner working of the library I use and the other JavaScript libraries for rendering your application. And also I thought like I'll have one library in my name which I can drag about, so why not? So let's not talk about how the whole bramosing work, before that let's see how React rendering work so you can compare it with, you can relate things that how bramos is trying to fix that. So in React you write something in JSX and you write a component in JSX. The JSX is transformed to create element syntax using React Babel preset. In the create element syntax the first argument is element type which will be string when for the native elements and will be component reference for the components followed by all the props you pass followed by all the children. And then create element syntax, create element function returns a data structure we call it as a VDOM and as you can see VDOM contents all the information about the nodes you are trying to render, the static part, the dynamic part and everything. And then later on it's converted to Fiber nodes and when there is update the whole previous VDOM structure is compared with the new VDOM let's say Fiber node are compared the whole Fiber nodes are compared. So here and then find like what is the actual difference and then apply those changes on the actual DOM. So in this example we are trying to update just the name from React to Delhi to Sudhanshu but it will try to compare the whole object. Now let's see how BrahMos tries to solve that particular thing. So you write in JSX the same way you write React. The main idea of BrahMos is to have the exact same React API. So developer coming from React will have a zero learning curve and also BrahMos can be built progressively. So some part can remain and BrahMos on some features that we can opt from the React tab. So you write your component in JSX then JSX is transformed to tag the template literals using bubble plugin BrahMos. In a tag template literal you have a tag function the literal part and the dynamic part which goes as expression. So tag functions are nothing but a normal function which receive a literal part as the first argument. You get an array of literal parts followed by all the expressions. And the tag function doesn't have to return a string. It can return anything. It can return object, array, Boolean or anything. So there is one key property of a tag function that for a given template the array of string or the reference of array of string would never change. No matter where you have used it, no matter where you have the places you have using that particular template. So in BrahMos we use the literal part to create template tag and because the reference of the string, array of string doesn't change we use that to cache the previously done work. So the next time you're trying to parse the same template it will just return from the cache. And then the template function returns the template instance which would never change and the dynamic values. So because the template is a static which never changes on the updates you only have to compare the dynamic parts. You don't have to compare the static part. So here we only have to compare the ID and name. So let's see more about the template instance how that is formed because the main things are happening there. So with a static part the BrahMos generate template tag, HTML template tag with a placeholder for dynamic attributes and the nodes. For attribute it creates a attribute called data BrahMos attribute and for node it creates a commit node. And for every instance of the template during the rendering it generates, it clones the DOM element from the template type and it remove all the placeholders and with those placeholders it creates the part information. Now the part information have everything about the node because this node we can directly append to the DOM. So for attribute it will have information about the node that attribute belongs to the index where that attribute lies and that helps on like a finding what is the correct order of attribute, how to handle proper overrides and all. And for the node part it will have the information about parent node, previous sibling and the next sibling. The dynamic value which I showed is directly associated with these dynamic parts. So that is one to one mapped and whenever those dynamic value is changed you exactly know it what DOM location you have to update something. So you can check more about that on the wrapper itself I've added a dog but let's talk about what's the current state of BrahMos. So it is ready for your site projects. You can start using it now and it supports all the major React API. All the major React APIs implemented, class component, functional component is there. All the life cycle methods are there. Context API is there. Hooks, all the hooks are there. The current version of suspense and lazy is there. And recently, a few days back we launched Create BrahMos app. So you can get started with your site projects. This is on alpha stage right now but you can give it a try. And the overall size of the BrahMos is 6.8 kb versus React plus React DOM which is around 43 kb. But there are a few more API has to be implemented. And a little bit of refactoring would be done. So I'm assuming like I'm trying to keep it around eight to nine kb overall size when everything is there. So right now we are exploring on the fiber architecture of the React. We're trying to implement the same thing in BrahMos to support a sync rendering. It yet has to support server-side hydrogen so it can boot up from the server-rendered page. Right now it does support create element syntax. So it by default support all the third-party component, React component but it doesn't get actual benefit out of it because everything is treated as a dynamic node there. So yeah, there are a few more work has to be done for a better third-party component. There are a lot of work ongoing for the optimization, performance optimization, and making BrahMos stable. I'll give you a quick demo of a classic 2-2-MAC built with BrahMos. So here you can add a 2-2 task, you can mark a task done, you can delete any of the task, you can filter between completed and non-completed task like that. And if you see the code, it exactly looks like React. Only the difference is instead of importing from React, you import from BrahMos, but the API all are same. You do change the state in the same way, you define the JSX in the same way. So there are a lot of things yet to be done and mostly around the development ecosystem around the BrahMos. And one good thing about BrahMos is because it has a same API as a React, it can be progressively developed. So we don't have to wait for BrahMos to be fully finished. We can start using it beforehand. For some part of like environment, you can use React and then in other environment, you can use BrahMos. But that would require a full support of React API. So there are a few things and I've already added those as a bit of issues. And it will also require environment-based Babel preset which can use React in some environment and BrahMos in other environment. Using BrahMos as alias for a React. So the third party component which are published pointing to React, those will start pointing to BrahMos. And then because I mentioned like though third party components are supported, it doesn't give you proper aesthetic and dynamic differentiation. And so we are thinking of to write a script which can transform those third party component to BrahMos, React component to BrahMos component, which will probably run up a post install, post npm install. And on the build side, right now, similar to React, everything is named spaced under BrahMos object. But there is no reason to do so. So we can probably make the BrahMos resecable and it will only import the things you need. Like if you don't need hook, it will not try to import those. On the tooling side, there are a lot of work has to done to support DevTool, the React DevTool. And on the testing side, though React testing library would work because there you just mount and try to check something. But the enzyme would not work. So we still have to write enzyme adapter. So there are a lot of work yet has to be done. And here I like to invite all of you folks to come here, join the BrahMos community or let's say BrahMos cult. And so how many of you are fan of sacred games? So join BrahMos and this is a good opportunity for you to learn the inner things of the library you use. Not just the React, also the different libraries as well. And we are also starting a meetup group, online meetup group where we'll be discussing about inner implementations of different libraries, which is the first meetup is happening on the 30th November. I'll keep it more updated on the Twitter, but yeah, that is there. So I've added the links of the BrahMos. So BrahMos is moved now to BrahMos organization. You can find everything, the BrahMos library, the Bible plugin, the to do MVC, and you can do NPM install G create BrahMos app and you can start using create BrahMos. So BrahMos, so that is also there. And the talk which inspired me to do this whole thing, lead HTML talk, I've added link for that as well. With that, I like to thank you folks. And if you have any doubt on the BrahMos, the talk or anything in JavaScript, just ask me, you can ask me on Twitter. So follow me on Twitter and get up. And yeah, I'll be around. So you can keep asking me things around it. Thank you.


Now to do that, our question generally whenever we enter a transaction is, is there a form up here designed specifically for the transactions that I'm talking about? Now if I'm putting money into the business, there's not a form up here that's specifically designed for me putting money into the business because that's not a normal day-to-day operation. It's only going to happen periodically. The next question is, is cash affected? If cash is affected, then we can use the cash related forms, in this case cash is going up so I could use a deposit form or go to the register. If cash isn't affected and there's no other form to use, then I'll use the journal entry. So I could use a deposit form, I could go into here and enter a deposit and use the cash deposit and then record the account down here which would be some kind of equity account. However, usually when I enter something into the system that is a deposit, I would only really use the deposit form if it's coming through the customer cycle. In other words, if I had an invoice and then the receive payment, there's often like a little pop-up in the bank deposit to take it out of undeposited funds within the deposit form and put it into the bank. We'll see that in the future, but that's a great tool and that's what's in the deposit form. If you had a bunch of receive payments from a bunch of different areas, different sales, then you can use a deposit form and deposit them at one time. However, if I'm just making a deposit from myself or something that's not linked to a receive payment or sales receipt, then I might just use the register which is kind of a faster way to enter the deposit. It's similar to like the bank feeds. If you had a deposit through the bank feeds, then that's like a similar kind of faster process to enter it sometimes and then it would usually make it'll still create a deposit form. That's the method I'm going to use to do that. I'm going to go to the hamburger. Let's go to the tab to the left and then go to the hamburger and then I'm going to go to the accounting on the left and the chart of accounts. I'm going to practice using these chart of accounts. If you were in the business view, by the way, the chart of accounts is located in the bookkeeping area here and then the chart of accounts on the left. Okay, so we're going to then say that cash is going to be going up and the other side is going to go to an equity account. Now we might not have an equity account set up down here yet, so let's take a look at our options on the equities and order assets liabilities and then equity. Our main equity account is what we changed from retained earnings to the owner's equity, which you can see right here. I can see that it doesn't have a balance. That's the main one. Now I could put it directly into that equity account if I want to, my owner investments or I might break it out into another equity account, which is they have one here called investments. So I'll call that my owner investment. So I'm going to put it into this investment account. It's important that it's an equity account and not an income account. If you put money into the bank and it's recorded as income, then it might be something that you're going to have to pay. You might pay taxes on it accidentally and that's not something you typically will want to do. So you've got to be careful. If you're using bank feeds, you also need to be quite careful. If you have a system which we'll talk more about in the bank feed course or section where you're just entering the deposits from the bank as revenue, you got to make sure that if there is a deposit that's not revenue, such as one from you or a loan, that you don't accidentally include it in revenue or you're going to end up paying taxes on it most likely, which is not good. So I'm going to, we could go into either of those registers, this register or the register for the equity account. I'm going to use the checking account because that's probably the way most people would see it. And then in the checking account, I can use this register to enter the deposit form quickly. So if I hit this little dropdown, they give me all the types of forms that might be used within the checking account. I'm going to use just a deposit type of form. And we're going to say that this is as of, let's say it's the first thing we do. So let's say it's going to be 010123. And then the payment, I'm just going to put owner for us. This isn't as important a field because owner, because, and I'm going to put owner. Now my only options here are customer or vendor, and since it's a deposit, I'll say a customer, but obviously it's not a perfect system, given the fact that I'm not a customer, I'm the owner. So anyways, I'm going to put the memo. This is going to be owner, owner investment, investment, or something like that. And then the deposit is going to be, I'm going to say 65,000 that we're going to take out of our checking account, putting it into the business checking account. Those two things are something that we generally want to keep separate. And then I'm going to call this owner investment, which you could see is an equity account here. So make sure it's an equity account. So if I save that then...


This is another section of the neck. This time, we are going to focus on the branches of the cervical plexus. In order to see the cervical plexus, we have removed completely the sternocular mastoid from the lateral cervical region. The cervical plexus is located partly in the lateral cervical region and partly in the anterior cervical region. We are going to focus more on the lateral cervical region. But I will tell you what is there in the anterior cervical region. We have also reflected the clavicle. We have disarticulated it from the sternoclavicular joint and we have removed it here. And we can see a remnant of the subclavius muscle here on one side and the other side, which we have cut and we have reflected. The subclavius muscle was under the clavicle in order to show the contents much more clearly. So therefore, this has given us a wide exposure. Cervical plexus is C1234. All of them form two loops, a primary loop and a secondary loop. The primary loop is in the lateral cervical region. The terminal portion of these nerves, these are all cutaneous nerves. They all pierce through the superficial fascia. They pierce through the platysma and they supply the structures in the superficial region. So those have been removed. We can see only the beginning, the roots of these nerves. So now that we have exposed the cervical plexus, let us first identify the roots of the cervical plexus. We can see the first root here. This is C2. The next root that we can see here, this is C3, which I picked up here. The next root that we can see here, this is C4. There is a C1 root higher. So these are the roots of the cervical plexus. The roots of C1234, they all make loops, which are referred as primary loops. And arising from the primary loops of the cervical plexus, we have the following branches. We have the great auricular. So let's take out the nerve. Only the proximal portion of the nerves are visible because the distal portion of the nerves have been cut because they were all superficial and they were in the superficial fascia. So we have the great auricular. The next nerve that we have is the lesser occipital. The great auricular goes in front of the ear. The lesser occipital goes behind the ear. Great auricular also supplies the pina. Lesser occipital goes behind the pina. Both of them are C23. Great auricular, lesser occipital. Then we have these nerve fibers. This is the supra-clavicular. The supra-clavicular is C34. And as it descends down in front of the clavicle, it divides into a medial, an intermediate, and a lateral branch, part of which can be seen here. So these are the supra-clavicular nerves, C34. There is yet one more nerve which goes across and goes to the anterior cervical region, and that is known as the transverse cervical nerve, which is also C23. So these are the four important sensory nerves which come out from the cervical plexus from the primary loops. On the anterior cervical region, there are secondary loops which form what is known as the anterior cervicalis. Therefore, we have not exposed that right now here. So these are the structures, the roots of the cervical plexus that we can see here. Now let me show you yet one more nerve of the cervical plexus.  This nerve which I have lifted up here and we can see the other end of this nerve here.  This is C345. This is motor to the diaphragm and it also carries sensation from the middle of the diaphragm. Irritation of the phrenic nerve in the diaphragm can cause referred pain to the shoulder by virtue of its same root value as the supraclavicular nerve which is C34 and we can see it here. And we can see that they're all arising from the same region of the cervical plexus. Now to the cervical plexus, I want to mention an important clinical correlation. For that, I have put back the sternocleidomastoid in its normal position and I put back the clavicle in its normal position. We can see clearly that all the branches of the cervical plexus, C234, and all these are emerging from behind the posterior part of the sternocleomastoid. And I have spread them out a little bit just for the ease of showing but actually they are highly bunched up. This region of the posterior part of the sternocleomastoid where my instrument is pointing where all the nerves are bunched up, this region is referred to as the nerve point. This is an important area for giving anesthesia, local anesthesia and by so doing once we give local anesthesia in this region we anesthetize many nerves. We anesthetize the great auricular nerve, the lesser occipital nerve, the transverse cervical nerve and we can even anesthetize the supraclavicular nerve. So a huge wide area can be anesthetized. So what is the location of this so-called nerve point? There are two ways of identifying this nerve point. One is to take the midpoint of the posterior part of the sternocleomastoid. The sternocleomastoid extends from the clavicle and it ends in the mastoid. So take the midpoint of that, so that is one location. The other way of doing it is to take a vertical line from the mastoid process and drop it straight down to the clavicle. And the midpoint of that line also matches the nerve point. So this is where my finger is pointing. This is the nerve point for giving anesthesia to anesthetize a wide area. And the nerves which are anesthetized by injecting in the nerve point are to repeat the great auricular nerve, lesser occipital nerve, C2-3, the transverse cervical nerve and the supraclavicular nerves. So this is the nerve point. So these are the structures of the cervical plexus that we can see in this dissection. Thank you very much for watching. If you have any questions or comments, please put them in the comment section below. Dr. Sanjay Sanyal signing out. Have a nice day.