Good day everybody. Welcome to our next section. My name is Dr. Sanjay Sanyal, professor and course director of medical sciences. And the camera persons are the usual people, Zelliga Stewart, Jenny Glover and many others. Okay. So today I'm going to demonstrate the muscles of the artery compartment of the thigh and its special reference to the femoral triangle. So let's give a quick overview. This structure that you see, which I'm lifting up here, this is the inguinal ligament and it extends from the anticepialic spine to the pubic tubercle so this is the inguinal ligament. So therefore the space under that is the sub-inguinal space, which I've been talking about in the class. And the sub-inguinal space is divided into a lateral portion and a medial portion. The lateral portion is the muscular compartment and the medial portion is the vascular compartment. Okay. Having said that, let's come jump down and look at the boundaries of the femoral triangle and after that I'm going to tell you the muscles. So let's pick up where we had left off. The femoral triangle, the superior boundary or the base of the triangle is the inguinal ligament, which you can see here. And superiorly the femoral triangle is communicating with the structures in the abdomen. The lateral boundary of the femoral triangle is the sarcto-reus muscle and you can see this long muscle here. This is the tailor's muscle, the sarcto-reus which takes origin from the anticyclic spine again, goes anterior medially and goes all the way and gets inserted onto the base and serena of the goose foot, which is here. Okay. That's the medial boundary. Let's take the lateral boundary. Lateral boundary is this muscle here and this is the rectal longus. So therefore this is the femoral triangle. Let's continue with the femoral triangle. What do we see in the floor of the femoral triangle? We see this muscle here. This is, you have guessed it, if this is the rectal longus, this has to be the rectal bravest. And the other part of the floor of the femoral triangle is the pectinus muscle, which is located here. This is the pectinus muscle. So this is the floor of the rectal. In life this was covered by a tough fascia, which is called the fascialata, which I have dissected off. And there was an opening here, which is called, which was called the serenus opening. That also I have removed. And that serenus opening was covered by the cribriform fascia. Those were removed just to show you the contents of the triangle. So let's take a quick look at the contents of the femoral triangle. And we can see the contents of the femoral triangle here. This is the femoral nerve. And the femoral nerve, as I told you in the class, it runs through the vascular compartment, the muscular compartment and therefore it is separate from the rest and therefore it is a little away from the rest. And let me first tell you the contents. The next structure that you see here, this is the femoral artery. This is the continuation of the external iliac artery. Exactly just under the inguinal ligament, it changes its name and known as the femoral artery. I'll tell you the course a little later. And medial to that is the femoral vein. And femoral vein and medial to that this small space that you see here is the region of the femoral canal, which is the site of femoral hernia, especially in female patients. Having mentioned that, let's come back to each of these structures. This as I told you is the femoral nerve. And if you look at the femoral nerve and I lift it up and you can see that the femoral nerve gives up numerous branches in the femoral triangle itself and it completely distributes itself to all the muscles in the anterior compartment. So therefore the femoral nerve itself does not go anywhere after that. Notably, I would like you to notice one branch which the femoral nerve gives, which runs with the femoral artery. Can you see this branch here? This is the saphenous nerve, which I mentioned and this is the longest cutaneous branch in the body and this runs with the femoral artery. It runs in the adductor canal and after that it pierces the adductor canal and becomes cutaneous and it supplies the skin of the medial side of the leg right up to the medial side of the foot. So this is this saphenous nerve. This is the longest cutaneous branch and this is the only branch which goes outside the femoral triangle. So that's about the femoral nerve. The femoral artery. Let's look at the most important branch of the femoral artery and that you can see here. Can you see this big branch here? This is the profunda femoris artery and the profunda femoris artery is given out somewhere near the middle or the lower part of the femoral triangle and it goes medially, it goes posteriorly and then it pierces the attachment of the adductor magnus to the thigh and it forms the, disappears as the first, second, third and fourth perforators. And this profunda femoris is the one which I told you gives rise to the middle and the lateral circumference femoral which supplies the hip joint. And finally coming to the femoral vein. The femoral vein is the medial most structure here, this thin wall. Again in life this whole thing was covered by a tough femoral sheath which I have removed and I told you the function of the femoral sheath itself. What I would like you to notice the most notable thing about the femoral vein is this nerve can you see one long nerve coming all the way. Actually if you were to trace this, this nerve also we were to trace it right on the medial side of the leg and you can see it here under the skin also. Everybody has it. This is that long syphilis nerve I was talking about and the long syphilis nerve comes all the way on the medial side of the thigh and it comes and it pierces enters through the syphilis opening, pierces the triple form fascia and it opens into the femoral vein. So this is the long syphilis vein. Of course it has got many other tributaries but those are not so important and just to complete the story you can see one inguinal lymph node, deep inguinal lymph node so I preserved it just for the sake of showing it to you. So these are the contents and the important contents of the femoral triangle, the boundaries in this. And the last part of this is to show you the muscles which we have already mentioned in the anterior compartment. So this is the sartorius muscle the tailors muscle as you can see here. Let's remove the sartorius muscle from there out of the way and I've already told you these are the muscles of the rector compartment. Let's take a look at the muscles of the anterior compartment. Can you see this muscle here which I've lifted up? This is the quadriceps, the superficial most muscle of the quadriceps and that is the rectus femoris. Just under the rectus femoris, this muscle that we see here which is mostly tendinous in its anterior part here and a little fascia bar this is the vastus intermedius and if I lift up this fascia this by the way is the iliotibial tract. I'm going to just tell a quick word of that after this because it is not strictly part of it. If I lift this up can you see these fibers coming here? These are the vastus lateralis fibers and likewise if I were to lift up the sartorius and lift up the rectus femoris I can see these medial fibers coming here these are the vastus medialis. So rectus femoris vastus intermedius, vastus medialis, vastus lateralis. I would like you to notice that all of these fibers they're meeting here in above the patella this is the strong tough quadriceps tendon. The vastus medialis gives us to an expansion. Can you see some fibers here? As many as the vastus lateralis and the vastus medialis also gives us to some aponeurotic expansion. These are respectively referred to as the medial and the lateral particular retina column which are attached to the respective TBL condyles and they strengthen the anterior capsule of the knee joint. This is the quadriceps tendon and the quadriceps tendon gets inserted onto the base of the patella. Base of the patella is here. Then there's a thin aponeurotic expansion on the surface of the patella and then the apex of the patella is down here and from the apex of the patella we have this strong ligament continuing down and this is the patella ligament which gets inserted onto this elevation that you see here. This is the TBL tuberosity and this is where we do a knee hammer tap to elicit the knee jerk reflex. So these are the essential components of the anterior compartment. Yes, before we conclude as I promised this structure that you see here, this is the iliotibial tract. It is the thickest part of the facial and you can see that it's a tough aponeurotic band which gets inserted onto a special tubercle on the antrolateral aspect of the tibia and you can feel it here. That is called the antrolateral tubercle of Gerdi. I have not mentioned it till now in class but now you've got the luxury of hearing it for the first time. If I lift it up and if you look under this through the light, you can see a muscle which is embedded within the iliotibial tract. Guess what this is? This is the tensor-facial eta. When we were doing the gluteal region that time we could not see it because this is anterior but from here we can see the tensor-facial eta and we can see the bulge of the gluteus maximus behind here but that is not part of this dissection. So just to show you that, I have shown you and just to complete the story from the tensor-facial, from the iliotibial tract, the lateral intermuscular septum will go inside and it will cover the posterior part of the vastus lateralis and it will separate this from the posterior compartment. So these are the structures which I wanted to show you in the anterior compartment with the femoral triangle. Yes, and before I conclude, I told you that the apex of the femoral triangle is here and after that comes the adductor canal. So where is the location of the adductor canal? It is located under the sartorius and superficial to the adductor longus. So between these two is the adductor canal and you can very well see that the femoral artery and the femoral nerve, both of them are running in the adductor canal. So this is the middle portion. This portion is the adductor canal from here to here. This is the adductor canal and after that the femoral artery as I told you will continue. It will go behind the femur. It will pierce through the adductor hiatus and there it will go behind the knee. It will be known as the popliteal artery. Thank you very much ladies and gentlemen for watching. Thank you camera persons. If you have any questions or comments, put them in the comment section below. Dr. Sanjay Sanjay is signing out. Have a nice day.


Warren Buffett's recent purchase of Japanese stocks reveals a pattern in his investing that you should pay attention to, earnings yields. He waits for the companies he wants and already likes and already understands to be paying a high earnings yield relative to the price. And watch this video. People look at this and say, okay, Warren Buffett is putting his stamp of approval on investing in Japan, basically. Is that an accurate read? Well, yeah, it was an accurate read, but it was an accurate reading a couple of years ago too. I mean, I was confounded by the fact that we could buy into these companies and in effect have an earnings yield maybe 14% or something like that with dividends that would grow. They actually grew 70% during that time. And the people were investing their money at a quarter of a percent or nothing. And the quarter percent, if they put it out for many years wasn't going to grow and the 14% was more likely to grow than not. And if that doesn't look like something sensible to me, that's as easy as it gets, but it's sure not to be better than I thought it would be. So he just revealed a major filter, a major clue on how he pulls a trigger on companies he likes, earnings yield. If you look at earnings and you divide it by the price, it's the same thing as looking at rent to property price. That's the earnings yield. So he filters out the losers by waiting till the companies are profitable, a profitable company that has a healthy earnings yield, that's how he knows he's in the right zone going forward. That makes a lot of companies unqualified to even be on his radar. The next filter is, is he getting more than treasuries or government bonds? If he's getting a decent yield on a quality company that has a good brand and a strong moe and good management and he's also beating treasuries, he's again filtered out a bunch of companies that are unqualified and unownable. So don't forget to look at the earnings yield of your favorite company or just wait till your favorite company meets that guideline of having higher earnings and treasuries. Let me know if you agree or disagree.


So before I get into the video here's a quick breakdown on what I'm going to be discussing today. Firstly we're going to discuss Xion Williams since NBA debut and my thoughts on the whole game and how crazy it was. Secondly we're going to look at the Pelicans and my thoughts on if they can make the playoffs and why I think they can but what they may need to do to get there. And thirdly we're going to look at some trade scenarios for the upcoming trade deadline and I want to know before we get started in the comment section down below what pieces do you think they need to go after in order for them to make the playoffs and do you think they can still make the playoffs and obviously I want to know about what you thought about Xion Williamson's crazy performance. Anyway let's get on to the video. So Xion Williamson officially made his NBA debut and it was the craziest debut I've seen in a very very long time. Xion Williamson is the first player in NBA history to score more than 20 points in less than 20 minutes in their NBA debut but if you had only watched the first three quarters you wouldn't have imagined that. Xion Williamson in that last quarter turned the switch on and just went ham and this video is not about Xion Williamson directly. Yes there obviously will be a little bit of a discussion about Xion Williamson and his first ever NBA game but this video is more so about the pelicans not necessarily what we learn about Xion Williamson in his first NBA game. I want to talk about the new Orleans pelicans and now what they could be with Xion Williamson now on the team even on a minute's restriction. He started the game off looking very slow and I tweeted he looked like an old veteran player like an old Xion camp or shack in his final years but he also looked like a rookie. He made some clumsy turnovers that didn't really look like Xion Williamson in college and even through the NBA preseason but that's to be expected. He's coming off pretty big surgery and he's also making his debut where the pressure is on him. He was nervous and I think we could tell but then that last quarter he brought the pelicans back into the game. He's hit double the amount of threes that Ben Simmons has hit his entire career. He ended the game with 22 points and at the start of the fourth he only had five points. He scored 17 straight fourth quarter points including fourth threes and he also finished the game with seven rebounds three assists and of course he did have turnovers but in the end it was a phenomenal debut for somebody who looked like he would have almost a quiet first NBA game but that's why you can't put so much pressure on a rookie because obviously let's say he didn't end up hitting the shots that he hit he would still be an amazing talent and you really can't look at each individual game and critique it or look at what he did well because obviously each game is going to be a different game and it just happened to be an exceptional game in his first ever NBA game but it easily could have gone the other way around so instead of looking at each individual game I think we should look at him in this first week then the first month then his rookie year as a whole instead of judging players so soon. You know what I mean? Anyway let's get into the video. If you remember a few videos ago I did post my thoughts on Zion Williamson and what we could expect once he returns to the league and I said in that video that I really expected him to have limited minutes and obviously we saw that and clearly it was disappointing to watch as an NBA fan and somebody who wanted to see Zion perform but as for the longevity of his career it's very important that he is on a minute's restriction just so he can get his body right because let's say he didn't have that last and crazy stint in the fourth quarter a lot of people would be looking at this game and saying yeah we need to get his body right he needs to be healthy he needs to lose weight and of course he still needs to do that but because of the confidence that we saw in that last quarter it was sad to not see him return back into the game but at the end of the day I think we can all understand the reasons why and it makes sense in the long term. But still for a team fighting for a playoff spot it was pretty unfortunate to see but yeah obviously it does make a lot of sense just as an NBA fan and even as a Pelicans fan I'm sure a lot of them would be upset that they couldn't get the win and they couldn't see Zion Williamson enter back into the game in the last few minutes to actually help his team win and obviously he would be disappointed but I think as a whole community we can understand the reasons why but it does provide a lot of hope and excitement for the Pelicans. This is not a video about Zion and the first game of his NBA career this is more so about the Pelicans as a whole because I haven't made a video on New Orleans and I think it's very important that we look at this roster and see are they good enough to make the playoffs now that they have Zion Williamson can they actually make the playoffs let's break that down in this video but before I get started if you enjoy these types of videos and you enjoyed Zion Williamson's debut let me know what you thought about the game in the comment section down below I would really really appreciate if you guys could drop a like to support the channel and if you're new around here be sure to hit that subscribe button so you get NBA content every single week and hit that notification button so you never miss an upload with that said thank you guys for all the support recently let's get into the video so firstly what we noticed with Zion Williamson in this opening game was the fact that he entered the game and he just created so much space you would assume that somebody that's so big would tend to clog up the pain but Zion Williamson clearly has a little bit more of an outside shot the people assumed he's obviously had the chance to work on that outside shot as he hasn't been able to play in the opening season so that's probably something that has created a positive outcome for his injury so far this season and so you can automatically tell that when he's in the game he just creates so much space when he's in the post they're gonna have to send a double team because it's very hard to stop a player like that one-on-one and if you have Lonzo Ball who's an improved outside shooter Brandon Ingram who's worked on his outside shot players like Josh Hart drew holiday and of course JJ Redick who's a prolific three-point shooter it's just amazing what you can build around Zion Williamson and he is the perfect player for what this Pelicans team needed and he's also the perfect player that they can build within the future but like I said this isn't about Zion Williamson and his opening game this is about the Pelicans so let's talk about somebody like Brandon Ingram Brandon Ingram obviously had a pretty rough night he shot 6 for 22 and 2 for 8 but if you actually watched the game he definitely picked it up towards the end of the game and especially in the last quarter after Zion Williamson was on the bench he ended up with 22 points which obviously he's had an amazing season so far averaging 25.6 points on 47% shooting and 40% from 3 with 6.7 rebounds per game if you compare that up with a young Kevin Durant his stats are actually looking very very good this graphic was made a few days ago but you look at the comparison between a young Kevin Durant at 22 years old and Brandon Ingram and Brandon Ingram looks like he's on a very nice trajectory to turn out to be a great player in this league he was obviously seen as somebody as a Kevin Durant type entering the league obviously the second overall pick same as KD a very skinny player same as KD a guy that looked like he would continue to grow in the league same as KD so there are obviously the similarities and he wasn't able to piece them together in LA obviously towards the end of last season he was able to piece it together but then he got injured that obviously had an effect on his career at that time because he was unable to play but now on a new team with a new franchise he is turning into an exceptional player and if you could build Zion Williamson up along with Brandon Ingram you have two prolific players on that team that can definitely take this team into the playoffs. Lonzo Ball's also playing really well he didn't start off the year amazing he was benched a few times but over the last couple of games he's definitely got his assist numbers up over the past seven games he's only had one game where he's averaged under nine assist and he's also improved on his points per game and even his field goal percentage he's become a better three-point shooter at 35 percent which isn't amazing but it's definitely an improvement on his past years and also his field goal percentage is around the same but he's still playing amazing defense as well and that's something that I think Lonzo Ball can definitely pride himself on his defense which hopefully that just continues to grow as well because when you think about it Lonzo Ball and Drew Holiday is a front court incredible defense Drew Holiday is still a veteran guy that can definitely play his role on a team and I think that at the start of the year they were looking to see what they could get for him in terms of trade but obviously he's coming back from an injury in his first game back against Memphis he dropped 36 points and against the San Antonio Spurs he had a pretty quiet game only scoring 12 points and shooting one from five for three but we know what Drew Holiday brings each and every night so all in all if you have the defense of Lonzo Ball and Drew Holiday you can get Zion Williamson healthier and hopefully you can play a few more minutes per game Brandon Nningram as your main scorer and then you've got JJ ready to come off the bench as a six man alongside Derrick Favors and then the younger guys in Jackson Hayes I think is very very exciting for the future but I don't think it's just the future I think this season alone they can definitely make the playoffs and here's why typically it's quite hard to see a team with only one all-star like Bradley Bill on the Washington Wizards Devin Booker on the Phoenix Suns Carl Anthony Towns on the Minnesota Timbles Trey Young on the Atlanta Hawks like all those guys could potentially be all-stars this year Brandon Nningram is a potential all-star this year but clearly he's not good enough to make that playoff push by himself but now this Pelicans team is unlike the Timbles it's unlike the Suns and it's unlike the Wizards and the Hawks because they actually have a good team around Brandon Nningram Zion Williamson despite not playing this season we all know how great he can be Drew Holiday was once an all-star and is still on the verge of being an all-star if he can stay healthy he's still a 20 point per game player and if they can start piecing a few wins together get on a winning streak they have the chance to make the playoffs this season so when you look at the Western Conference standings the Pelicans are the fourth worst team in the Western Conference but that only means there are only three games out of the San Antonio Spurs who are the 8c so it's really not like they're too far out of making the playoffs and with a guy like Zion Williamson back on this team it looks like they can definitely be on target to make the playoffs they currently sit fifth in points per game behind the Barks Rockets Mavericks Clippers and those are all very very very good teams they sit 18th at 45 percent field goal shooting as a team but with Zion Williamson that will bring them way higher and the highest of the Los Angeles lake is on 48.5 so it's really not that far behind their third in three point makes fifth in three point percentage they sit 20th in free throws attempted per game that will rise with Zion Williamson back they currently sit 11th in rebounds per game as a team which is actually pretty solid so offensively this team is very very good and they actually sit fine alongside some of the better teams in the NBA it's their defense that lacks in opponent points per game they're the second worst behind the Washington Wizards and that's something I think with Zion Williamson they can improve on and I think he makes this team better on the defensive end as well and with Zion Williamson's athleticism and ability to guard multiple positions I think that will really help out this team defensively which is where they lack most but I think if they want to make a strong push for the playoffs they're going to need to get a defensive minded center at this trade deadline because when you think about it their front court defensively is amazing Dru and Lonzo are very good defenders you put in Zion Williamson a bit healthier and with his athleticism and defensive ability he'll be able to guard multiple positions which definitely helps this team and then you really only need that defensive minded center and that team defensively is a very strong team and offensively they're very good as well which gives me an indication that this team will be fine not next year or in the future because I have no doubt they'll be one of the best teams in the future but this year alone if they could get a strong defensive center they could genuinely be one of the toughest teams to face off against which is very scary to watch because currently with Jackson Hayes that's who they would want to build into that role but this season Jackson Hayes is not that guy which means they're going to need to probably get somebody this trade deadline so that's going to be interesting and fun to watch to see who they can go after. Without doing a ton of research I will make a separate video on it but I think players that they could go after could be somebody like Tristan Thompson he's obviously on a pretty hefty contract but he would be great for this team because they need help on the rebounding side and he's also a pretty good defender. Hassan Whiteside if the Blazers go with Nurkic Whiteside might be expendable Whiteside could be a very easy trade target to get for the New Orleans Pelicans and he dramatically changes this team on the defensive end and I don't think the Raptors would be willing to give up Sergei Barker but he's also a guy that can definitely make an impact for this young New Orleans Pelicans team Tristan Thompson and Whiteside definitely two guys I think that the New Orleans Pelicans should go after. So let me know down below what you think in the comment section do you think the Pelicans can make the playoffs and I would love to hear who you think they should go after this trade deadline to help them push into the playoff race who should they go after and who should they target during the trade deadline I may make a separate video on that so stay tuned for that and if you enjoyed the video please be sure to leave a like subscribe if you're new for more NBA content every single week and hit that notification button so you never miss an upload it's been your boy Nick Smith I am out peace


So, how do I transcend fear? Well, first step in transcending fear is allowing it to come more to the surface of consciousness. Because once you begin to look at the split mind, you can see that not only has this divine love, this glorious love been pushed out of awareness, but even the fear and the hatred has been pushed out of awareness. So, you might say that this linear cosmos is like a trick of trying to hide away from love and hide away from fear and become extremely distracted and unaware of these emotions. Unaware of love and unaware of fear because of the intensity of those emotions. So, time is like a diluted form of distraction in which it's systematic distraction. Everything of the world, all the images of the world are used by the ego as part of this systematic distraction. And when you want to transcend fear, you basically are praying a prayer in your heart and saying, let me bring an end to the distraction. Let me see things exactly as they are. Let the fear surface and come into awareness that I may let it go. That I may not hide it from the Holy Spirit anymore. And so, transcending of the fear can only come about through mastery, through love. It's not like you transcend fear in the way it's talked about in the world. You know, fear of heights or fear of physical intimacy or fear of disasters or weather conditions. You don't transcend fear by holding on to these misperceptions and thinking that you're facing something in form. It's more that you're allowing the false ideas, the false concepts in the mind to come up and then be gently handed over to the Holy Spirit and then they are taken away. So this is the power of healing, the power of prayer to see that you must go within and in one sense acknowledge, face this fear, allow this fear to surface so that it can be let go of. So is one of the functions of this story to support the looking of that fear? Yeah, it can be very supportive to have a context for it. Because when fear arises, the mind can just go into a shutdown phase or into a panic phase or into distractions again, falling back into distractions. So the doorway is very supportive, giving a context for this transcending of fear. And it's actually very important in that sense.


Today I want to talk to you about the next steps in creating our future together at CFA. It's fair to say that there's never a quiet time in the CFA and that change is the only constant that we have. It's my preference and that of the board and the executive that we change because we want to, because we need to and because it makes a better CFA. In this phase of creating our future together we're looking very very closely at how we can improve the efficiency of our support services that enable us to deliver those critical emergency services on the ground. The work that our brigades do tirelessly day in, day out. We know we can do better. We know that our efficiency levels can improve that we can reduce duplication, that we can improve business processes across CFA and that in doing that we can better support our frontline service providers. We need to keep pace with what's changing around us. We can't rely on what was good enough yesterday to be good enough tomorrow. And in all of our support services we know that we can make changes that are beneficial in that regard and we have to live within our means just as everyone else is and we'll do that also. We restructured CFA in the last couple of years as we bought a new capability in terms of the executives as we enshrined the chief officer with 60,000 people under him to deliver the services in accordance with the recommendations of the VBRC. I think we've got that right and I think it's working quite well. Now as I mentioned earlier we need to look at our support services. How can we better do that? We're gaining greater efficiencies in the way that we support service delivery. We'll first of all reduce duplications whether they're in processes or in other ways across the business. We'll embed new, better, consistent processes across CFA. We'll provide support services to our 20 districts. They will be unchanged and we'll continue to do that in a way that meets their needs. The service support provision will know no boundaries. It will be provided where and how it's needed rather than being regionally affixed or HQ affixed. In fact we won't be talking much about HQ anymore. We'll be talking about the State Service Support Centre. One of the cornerstones of this change however is we will consolidate our number of regions. We'll come from eight regions down to five regions. This gives us a good alignment with other government departments who have done similar changes but it also gives us a better arrangement in terms of command and control for the Chief Officer and a very clear setting for us in which to support that delivery that comes from Fire and Emergency Management. When I talk about support services I mean those services that are needed every day across CFA. Whether it's at headquarters whether it's in a region, whether it's in a district, we need people and culture support. We need financial capability. We need training and development capability. They'll be provided from regional or central resources but they will be coordinated from the central capabilities that we have. By changing the way that we deliver support services we'll be able to be more efficient. We'll reduce some of our costs. At the same time we'll provide better quality outcomes. We'll have much much better support to service delivery and we'll get a raft of benefits in terms of the capability that we develop in a variety of people across the state that we don't have now and we'll maintain our support to volunteers and our brigades and we'll maintain our training capacity for all of our people. I indicated that the number of districts and the boundaries of districts will be unchanged. I also said that we'll reduce the regions from 8 to 5. That consolidation is very important to us and very important to our service delivery. At the moment both Grampians and Barwon South West would probably remain unchanged but certainly we'd look at joining Southern Metro with Gippsland out of Metro North West with Lodden Malley and Eastern with Hume. Along the way though we'd value your views starting now. Consulting with you is one way that we can get the best understanding of the front-end as to what's needed and how it will work and we're willing to continue to take that feedback over the next year or two as we deliver the outcomes. This is just another change at CFA but an important one. It involves a great many people. There's been some anxiety and some concerns in people over recent times with a view of some errant information out in the public that says that CFA is going to apply packages and get rid of some of its people. Can I assure you today there are no packages. Where we have reductions they will come only by natural attrition. Through the process we need our people to stay on board with us. At the end of the day the objective here is the communities we serve.


Hey guys! How are you doing? This is your boy Rich from RichTV.io, live in Mexico. How are you guys doing today? Live from Mexico on July 14th, 2022. We're going to talk about the top news for today and the top news for tomorrow for you to expect. So let's talk about it. 100 basis points rate hike expected in America. The bets are surging, but maybe it's a 75 point. Either way, we know the rates are going up and the dollar hits a 20 year high surging and now equal to the euro and stock set for a lower open. Again, NASDAQ finished down 142 points, was down most of the day a lot more than that, rallied a little bit. The NASDAQ did finish slightly in the green and the TSX, the Toronto Stock Exchange down 278 points, so mostly a red day across the markets. One of the big pieces of the news, one of the reasons why the market was down, banks struggling, JP Morgan earnings came out. JP Morgan Chains earnings fell 28% after building reserves for bad loans. This is not a good sign for owners and holders of JP Morgan. And guys, JP Morgan's earning per share is really, really undervalued and we like their dividend. So I'm watching JP Morgan very, very closely. JP Morgan earnings fell short of analyst expectations as the bank built reserves for bad loans by 428 million. So we need to watch them very, very closely. I think this is going to create a buying opportunity for good long-term investors who want good quality stocks that pay dividends. JP Morgan is one of those. Another one that I'm watching that I don't own yet, but I'm very interested in a very good price-to-earning ratio and a quality dividend. Morgan Stanley also reported second quarter earnings and revenue that were below, once again, analyst expectations taking the markets down. The bank's results were heard by a steep 55% decline in investment banking revenue. Profit dropped 29% to $2.5 billion or $1.39 per share from $3.51 billion or $1.85 to share a year ago. So declining revenue from Morgan Stanley and one of the reasons why they've been getting selling pressure all day. US PPI jobless claims and even with bad inflation numbers that came out, Bitcoin, once again, a hedge against inflation. I've been saying it, this is an amazing opportunity to buy Bitcoin on the dip. And we're going to take a look at Bitcoin. Let's take a look at Bitcoin right here. We've got it right up here right now. And you can clearly see that Bitcoin right now at $20,665. And if we go and we mark levels of resistance and support, you can see that they are getting resistance at that $22,000 mark and they're getting support at that $17,000 mark. So if you're buying Bitcoin and you're sitting at $20,600 where it is today, kind of right where they're getting right in the middle of support and resistance. So, you know, I'd be really looking at Bitcoin very closely. I think this is a great investment for Bitcoin at these levels of lower in my opinion. Full disclosure I do own Bitcoin and Ethereum, and I'd love to get some more and I think it's a good idea to continue to scale in at these lower levels. When you look at the chart, you can clearly see it's been much higher over the last six to eight months. So, you know, with Bitcoin seemingly breaking that 20k mark. It seems to find resistance when it breaks over that 20k mark at around 21,000 and seems to sell off. So we've been seeing that over and over again. You can see here the support and resistance levels I've shown you the lowest it's been in the last month, 17,500, the highest it's been in the last month, 22,600 and currently sitting right at 20,600, kind of in the middle. Now let's take a look at Ethereum as well. Pull up Ethereum and Ethereum at 1193, and we're going to do the same thing. We're going to show you the levels of resistance and levels of support for the last month. Okay, and you can clearly see $880 is the lowest it's been in the last month. So that's where you're getting support. That's where I would say is a decent buy zone and 1278 is the highest it's been in the last month, and it's currently sitting right at 1192. So it's near the higher zone of the last month. So Ethereum is really rallying here, but it typically starts to get resistance at around that 1200 mark. So be aware of that. It is up 7% on the day, it's been up as much as 10 or 11% on the day. So it's been rallying. Let's also quickly take a look at Solana. Solana is my third favorite crypto holding that I personally own. And you can see in the last month what they've been doing. Solana has been as high as $42 in the last month, and as low as 2675 and currently sitting right at 36. So kind of in the middle of the zone, if you can get it at that $30 or less mark, it seems like a decent entry point. But if you're at that $42 mark, that's where typically it's getting resistance and where it's been selling. All right. Economic calendar for July 15. So we're watching July 15 very carefully now. And what do you have to expect for July 15? Core retail sales month over month. This is a high impact news to be aware. And the Empire State Manufacturing Index numbers come out, which will have a minimum impact on the market. FOMC member Bullard speaks medium impact on the market and preliminary prelim UOM consumer sentiment, high impact news, financial confidence is leading indicator of consumer spending, which accounts for a majority of overall economic activity. Another piece of news. Google. Google is doing a 20 for one forward split on Friday. I am a holder of Google. I believe Google has a great future and I think it's an amazing opportunity for investors to get Google after a 24 one forward split. So I would be telling and talking to everyone about Google tomorrow. If I was you guys, please remember that Rich TV Live is strictly for information and education purposes. Please do your due diligence. Do your research before you invest in anything that we talk about or discuss here on Rich TV Live on YouTube. Make sure you subscribe. If you like the video, smash the like button, comment down below, share the video everywhere and join our trading community built by investors, foreign investors at rich TV.io. We are live from Mexico. Thank you guys for watching. Your boy Rich from Rich TV Live and our mobile. Peace. We'll see you guys soon. I'm in Mexico. I'll be back in Canada soon. Stay tuned.


I'm Chris McGuire, I'm the brand manager for Katie's skis. This morning I've been skiing the Pinnacle 9-5, the visibility is pretty poor and the snow, there's quite a lot of fresh snow out there which is lovely. It's been really easy to initiate the turn, it's cut through the choppier, deeper snow on the piece really smoothly without any drag and has made the low light less of an issue. Ski has two really great uses, the major one is that it's so versatile that somebody looking for a one ski quiver can take that ski and regardless of what the snow conditions are on their week or two weeks holiday they know they're first ski to cover all bases. The other thing because it has a super lightweight core you could put frame touring binding on it and you can use it as a touring or an access touring ski as well as just your standard or mountain ski. So I've just been out on the K2 Pinnacle 9-5, it's just lots of fun just all over the mountain loads of pop, really lightweight, it's basically just really fun to ski on every way.


Talk a little bit about asynchronous I.O. programming, otherwise known as event-driven programming. Louder? Can I make this louder? Oh, OK. I'm here to talk about asynchronous I.O. programming, otherwise known as event-driven programming. If you've ever used an async I.O. framework, it's probably obvious why it's called event-driven. If you haven't, you have to use one. And it becomes clear. And let's see, where's my mouse focus? There we go. All right, so a little bit of background on asynchronous I.O. This is a technology that is all the rage in the Python world. And it has been all the rage for about 20 years now. In, I think, 1996 or so, a couple of modules landed in the standard library that nobody remembers about. I don't know if they were removed for Python 3 anyway. They're still there in 2.7, called async R and async hat. That was the first attempt at solving all the world's concurrency problems for Python with asynchronous I.O. The next attempt came along in the early 2000s, a framework called Twisted, which is a much more ambitious and probably much closer to success, successful attempt to solve all the world's concurrency problems for Python using asynchronous I.O. I included PyQT in this list, not because it's a network framework, but because it's interesting that this is a programming technique that is useful for more than just networking. It's also extremely useful for GUI programming. And it's also kind of weirdly relevant in other ways that we'll see. Tornado, which is the framework whose use inspired this talk, came along maybe 10 years ago. I'm not exactly sure. And then more recently, we have a thing called async I.O, which is in the standard library, has been for a couple of years now. People keep doing this. Also, it's not just a Python thing. Redis and Nginx are two very trendy popular monolithic servers written in C using asynchronous I.O. If you're programming in Node.js, my understanding of that ecosystem is it's asynchronous I.O. or nothing. That is how you do concurrency in Node.js. So why is it so popular? Simple, because it works. It's a good technique. It solves the problem that it sets out to solve very well. The problem is how to scale an I.O. intensive workload. And the reason it works so well is because instead of having high overhead, like one thread or even one process for each client, you only have one file descriptor. File descriptor takes up a lot less memory, both in your process and the kernel, and you don't have expensive context switches. Or you do, but they're less expensive. Less overhead means you can handle more concurrent clients. Everybody wants to handle more concurrent clients. But there's a catch. The catch, you shall not block. The way this is always explained if you read the documentation for any of these frameworks is that you shall not block with other I.O. You're not allowed to go make database queries. You're not allowed to hit your cache server. You have to be careful even about opening local files, because a local file might be on NFS and that's network I.O. Oh, has anybody ever tried to open a local file on a hard disk that's failing? Talk about blocking I.O. That's blocking I.O. But something they don't mention in the documentation, which they should, is that you shall not block with CPU activity. And of course, you're thinking, how can I not do CPU activity? Anything a computer does that isn't I.O. Is CPU activity, right? Well, yeah, but if you're adding three integers and appending the result to a list, yeah, that's CPU activity, but it's not that much. It's when you do a lot of CPU activity that it blocks the event loop and bad stuff happens, which I'll get to shortly. So what happens when you block the event loop? So this is one reason why I threw a GUI framework into the mix, because you've all seen the results of blocking the event loop in GUIs, right? The application on your desktop freezes up, doesn't respond to input, it doesn't repaint, there's no stopwatch cursor. I don't have a lot of experience with GUI programming, but I'm pretty sure that usually the reason is, A, they're using an event-driven framework, B, somebody blocked the event loop. All the other frameworks I mentioned, turning out to twist it, async I.O., whatever, what happens is the server process freezes, cannot talk to any of its clients. And the whole reason you're using an asynchronous I.O. framework is to handle thousands or tens of thousands of concurrent clients. And if you block the event loop, you've just blocked all of them from any conversation with the server, bad idea. So the rules, when you're using any asynchronous I.O. framework are pretty simple. Rule number one, all I.O. must go through the async framework, or it has to run in a separate thread. These are Python specific rules, I have rules, I have no idea what the rules are for node.js or lib event that C programmers use. And then for long-running computation, you can do it in another thread, but you have to be aware of the global interpreter lock, which prevents two threads running Python byte code concurrently. In particular, if you have another thread that runs code that's in a C extension and that C extension releases the gil, you're fine. You'll get concurrency, you won't block the event loop. If you can't satisfy those conditions, you have to do your long-running computation in another process. So consequences of these rules, QT, I talked about QT, it's a GUI framework, right? So of course it gives you buttons and menus and mouse clicks and all that GUI stuff, but a lot of GUIs these days, and for the last 20 years, also do network stuff. So QT includes everything you need for writing HTTP servers and clients, or sorry, TCP servers and clients and HTTP servers and clients and lots and lots of networking stuff. And it's all managed through the QT event loop. Twisted, which I believe set out to conquer the world by implementing every conceivable network thing, does that. It has TCP and UDP and HTTP and SMTP and IRC and SQL and on and on and on. Not everything, of course, because then it would be an infinite library, but sometimes it's close to being an infinite library. Tornado is much less ambitious than Twisted. I suspect for a reason. It's a web server framework that happens to use asynchronous IO, so you use it to write HTTP servers. But of course, HTTP servers these days spend a lot of their time turning around and making HTTP requests, so there's an HTTP client library in Tornado. If you think requests, the library is the best thing since sliced bread, sorry, you can't use it in your Tornado application because that IO is not going through the async framework. You have to run it through the async framework. They tend to be all-encompassing. So that's the background on asynchronous IO. The project where I stumbled across some of the pitfalls of asynchronous programming. This is at work, my day job, and this is like one of the products my employer sells. The proposition is you have stuff on the internet that you care about and you wanna know when bad things happen or interesting things. We don't really promise bad things, we promise interesting things. What happened to your stuff on the internet? So if you're an ISP or a fairly big company that has like chunks of IP space, you probably have an IP prefix or two or three or 17 and you participate in the global BGP conversation among routers building the global routing table.  If you're not in that elite club of BGP people, well, you maybe just have an IP address or five or 10 or 15 that you care about, we'll ping them every next couple of minutes and you know when the latency goes up or the loss rate goes up. Or you may have transcended these mere implementation details and moved on to a higher plane of existence, the cloud.  That's okay, we'll do the same thing. Under the hood it's the same, we're just pinging an IP address and telling you when the latency goes up, but we call it a cloud zone, so it looks fancy. Anyway, all of this stuff that you have on the internet that you care about, they're all characterized as assets. So you can organize your assets into inventories and then when something interesting happens to one of your assets, whether it's a BGP hijack of a prefix you care about or ping latency getting high or the packet loss to AWS in Montreal going through the roof, whatever it is, we'll raise an alert and we'll tell you about it. And you can fetch that alert through an API, you can view it in the user interface, we can send you email, we can send you a thingy on pager duty or Slack or a couple of other protocols. Alerts are first class objects. So, surprise, surprise, we store your stuff in a database. It's a relational database with Postgres. The schema is completely boring, obvious and uninteresting.  Nothing surprising there. Surprise number two, we wrote a service to wrap around this database. It's fairly restful, JSON over HTTP, create, read, update, delete, except you can't create alerts, only we can do that internally, obviously. Really boring, not interesting, except it is the subject of this talk. Not the API, you don't care about what post slash assets does. That's not what I'm talking about, I'm talking about the software, the implementation. So here's the big picture, the architecture of this whole alert system. Stuff goes into database and we have a bunch of software that accesses this database through the stuff service. So for example, we've got a couple of web interfaces where you can see and update and create and destroy assets and inventories and you can browse your alerts and do stuff with them. Alert agents, there's one, there's an alert agent, roughly speaking for each category of alerts. So we've got a couple of alert agents that monitor BGP traffic and listen for leaks and hijacks and so forth. We've got other alert agents that do a lot of pings and monitor that for latency spikes and packet loss spikes. Notification agents to send you email or send you a pager duty message, whatever they're called. I have no idea how pager duty works, I didn't implement that agent. And we also let customers interact through an API. And this is actually the same code, they're just two instances of it. One of them has authentication and doesn't let you view other people's stuff. The internal one has, if you're in the network, you're in. And you can view everybody's stuff because it's internal. But they all go to the database. So in the course of designing, implementing and deploying this system, we discovered a couple of non-functional requirements. The first one that we discovered, actually the first one, the important one, which we discovered last, is pretty obvious when you draw this diagram, which is that everything depends on the stuff service. If it breaks, lots of things break. So it has to be rock solid, reliable. We discovered this requirement the first time it blew up in our faces in production on a weekend. The second requirement is web sockets are cool. Do you know what we could do with web sockets, guys? Do you know what we could do? We could have a reactive web interface and we could like, every time an alert is raised, just show it in the user's web browser because web sockets. That's the requirement that drove the implementation of the project. That is why we used Tornado to implement this service in anticipation of many concurrent clients doing, I don't know, web socket-y stuff because cool. So that's the background. So we've nailed down a couple, I don't think I, well, I've told you it's a relational database. When we use a relational database, it goes in Postgres, it's just part of our standard technology stack. We have chosen our server framework, Tornado, because we're gonna do web sockets, right? So we have to use Tornado, yeah, yeah, yeah. It'll be cool. When you have made those two choices, you don't get a third choice about how you're gonna access the database layer. You have one choice. It's a library called Momoko, which wrap, so PsychoPG2 is the common, most standard, most widely used Python library driver for Postgres. Momoko does two things. It wraps PsychoPG2 so that you can use it in a Tornado application with all the IO going through the event loop as you're supposed to do. Except for DNS lookups, but never mind. That's not even in this talk. And number two, it provides a connection pool because everybody needs a connection pool, so let's throw one in. Now, Momoko is perfectly fine. It does what it says on the label, those two things, and it works, mostly. It's not perfect, because no software is. So here's a rough diagram of our implementation stack. We have our service, which runs on top of Momoko and Tornado and Python, which abstracts away PsychoPG and Postgres and the Linux kernel and the real world, all that stuff. So what could possibly go wrong? Did I foreshadow you enough? So we had, over the course of four months, we had three critical outages. Two of them hit in production. And of course, what are the odds that a critical outage in production will hit on a weekend? Two out of seven, right? Well, of course, both of them came on weekends, naturally. Number one, where our event loop was blocked, not by IO, not by a rogue database, a query or an NFS file, it was blocked by CPU activity, that thing they don't tell you about in the documentation. Number two, we had a deadlock in the connection pool in Momoko. Number three, it blew up in our faces because we tried to open more database connections than Postgres was allowed or was configured for.   Oh my God, what are we gonna do? For some reason, they didn't interrupt my weekend which is really nice of them, I really appreciate that. I like working for these people. Monday morning, bright and early, I find out about this outage and I very quickly learn about a great tornado feature which you can just, I can't remember if it's a one line of code or if it's just configuration, whatever. We turned it on pretty damn quick. You can get tornado to detect when the event loop is blocked and immediately log a stack trace which is very handy because I'm sure you all have the same dedicated neural circuitry in your brain that recognizes a stack trace in a log file faster than you recognize your own mother's face. Um, so combine that dedicated neural circuitry with a feature that logs a stack trace whenever the interesting bad thing happens. We found the guilty code pretty quickly. Of course, I was thinking, oh my God, it's blocked on IO, we're doing IO because that's what all the manuals tell you not to do. But when you have a stack trace, it's hard to ignore the truth which is that your application was blocked for three or four seconds emitting JSON.  I mean, who thinks about the CPU overhead of emitting JSON, right? You're just iterating over some nested lists and dictionaries and spitting out 1,000 bytes or 10,000 bytes, whatever. Maybe it takes a microsecond, maybe it takes 10 microseconds. Well, when it's 100 megabytes of JSON, it actually takes a long time, many seconds. And when you block your event loop for many seconds, generating 100 megabytes of JSON and your web application freezes up for all users, you notice, unfortunately. So we quickly deployed a mitigation, not a fix. Another good tornado feature lets you run with multiple worker processes. Formerly, we were just using a single process, a single thread. You can use multiple processes. Multiple threads would be useless here because of the global interpreter lock. So it has to be multiple processes. So now when we hit this design flaw, we only block one of the end worker processes. The others continue working. And hopefully we have enough unblocked worker processes that most clients can continue to get stuff done. I hope it's not fixed. It's only mitigated. Outage number two, nobody's weekend was interrupted. This was in the middle of the day. Hey, Greg, this is a funny thing happening. The stuff service is frozen. And it's just completely wedged. Nothing works. Everything is busted until I restart it. Yeah, okay, pull the other one. Couple of days later, same thing happens again. Okay, fine, I'll look at it this time. So I looked and of course, I've made sure that that, this was in our development environment, not in production, so I double checked. Have we got that log of stack trace option turned on? Yeah.  I don't think so. What's going on? So I dug and I dug and I dug and I dug. Took a while to get to the bottom of it, but it turns out it was a deadlock. The deadlock was in Momoko or Momoko with itself trying to fetch a connection from the pool. This is obviously something that happens very frequently on every request. But it's, so this is weird. Before this, I had a bit of experience with async IO programming. I used Twisted for a small project about 10 years ago, but not a huge amount of experience. It just never occurred to me that deadlocks could happen. I mean, I have a fair amount of experience with multi-threading in Java, a bit of experience with multi-threading in Python, and also some fair amount of database experience. So I've seen deadlocks in Java. I've seen deadlocks in database programming. That's where I expect to see deadlocks. I just never expected a deadlock with async IO because I'd never seen one. I'd never seen a blog post about one. I'd never seen manuals talking about one. It just wasn't the thing as far as I know, but it is the thing. It's concurrent programming. Anything that can go wrong will go wrong. If you can concoct some crazy scenario under which a deadlock will happen, yeah, it'll happen. But I didn't know about it. And I don't remember the details, but I do remember thinking, I don't think this could happen with synchronous programming. Does that mean I have 10 seconds left? Okay, thank you. So I think it's specific to async IO. Not sure. I never did figure out if it was... Yeah, so the other funny thing about this deadlock was it would not have happened except for a half-finished refactoring. It was a refactoring. I thought it was harmless. I knew I had to finish it sooner or later, but I released it with this refactoring half-finished. It came up. I quickly finished the refactoring, thank you. And the problem went away and I never really investigated deeply. I never did figure out if this was purely my bug or purely a Momoko bug or something I was doing wrong that tickled a bad code path in Momoko. I don't know. Anyway, deadlocks can happen in the funniest places. Outage number three in production on a weekend. My boss's boss gets a phone call.  Nobody can connect to the user admin database because everything is broken. Oh my God, what do we do?  On a diagram, a few pages back, I showed you the stuff database. There is no stuff database. We just threw a bunch of new tables in the user admin database because it's the user admin database. Let's throw more stuff in there. It's got everything already, right? Honestly, the decision was made before I joined the project and I have no idea what the rationale was. Expedience, I assume. Anyways, that's how it is. So there were two proximate causes for this outage.  Some people will tell you, and they're probably right, that capacity planning is a dark art that you must study in an ivory tower for many years to learn how to do. That might be true of some capacity planning, but this kind of capacity planning where you have two services running on two servers with one worker process per core, 24 cores each, and you've configured it for 20 database connections max. That's 960 max database connections, and you've configured PostRise for 500 total connections. You will very quickly realize that 960 is greater than 500 and you are cruising for a bruising. Sadly, I failed to do that very, very elementary capacity planning and it blew up in our faces in production on a weekend. Oops, they didn't fire me, thankfully. Proximate cause number two is a missing feature from version one of Momoko. It never closed, this old version, never closed connections, never shrinks its pool. So when there's a load spike, it stays at its high water market, which is unfortunate. Also, tornado kind of behaves sort of similarly to its worker processes. They are forked once at startup and live forever, which is kind of an inflexible inelastic model compared to something like Apache, which has a lot more exposure, a lot more use, a lot more users, a lot more people hacking on it, a lot more features. Less widely used software has less battle testing and fewer features. So we mitigated this problem in the obvious way. We don't need one worker for each of 24 cores. We don't need up to 24 database connections per worker. And maybe we could double post-gres' max connections from 500 to 1,000. So we raised one number and lowered the other and the problem went away. Also, we upgraded to Momoko 2.0, which does have an auto shrink feature because the software had been around longer. Somebody got around to implementing that feature. Non-trivial upgrade, unfortunately, but there you go, it got done. So, now what? We've had three critical outages, two affecting production over four months. It's probably a good time to stand back and think what the hell's going on here. And at first glance, all of these outages boiled down to, gee, I didn't think that could happen. I didn't know that could happen, that the deadlock or 100 megabyte JSON responses burning lots of CPU, or I didn't think that would affect us. Maybe the JSON response falls into that category. I don't know, whatever. Things we didn't know when we deployed. And I like to pin this all on this mistake, which is the use of unfamiliar technology in critical infrastructure. Oh, and my failure to do basic capacity planning, but forget about that. Just do your capacity planning, boys and girls, don't do like I did. Now let's talk about the use of unfamiliar technology in critical infrastructure. I am in no way opposed to unfamiliar technology. If we stop experimenting and learning, we're dead. If nobody ever used unfamiliar technology, we'd all still be using FORTRAN and COBOL. No, we'd all still be skinning animals with stone tools. No stone tools where unfamiliar technology wants to, so really. In critical infrastructure, as soon as you have paying customers, I think it's tautological if you've got paying customers, you've got critical infrastructure. You can't really avoid it unless you're in that lucky stage where you don't have any paying customers yet. But you really have to try to minimize it. Keep it small, keep it tight, keep it surface area constrained. Don't let it grow without bounds. And be very, very careful about combining unfamiliar technology with critical infrastructure. If you feel like playing around with asynchronous IO because you've never used it, by all means, go for it. It's a great technology with some downsides. The problems that it sets out to solve, it solves pretty well. The problems that it has are known and documented and understood. But use it out on the fringes of your dependency graph. And I'm gonna try to stick to this rule. Don't put it at the core of your dependency graph where everything depends on it. Put it where failure of your new experimental component will only break one feature or a few users. Not where it will break everything. So you remember that non-functional requirement that web sockets are cool and we should do a reactive user interface? Well, we should have done a dedicated service just for that. By the way, shortly after this, like before this one, I think while this was being implemented before it went into production, the company that originally implemented it got acquired, priorities shifted. People moved on. And we never actually implemented that reactive web UI. We never did anything with web sockets. It was all a mirage. We never needed tornado in the first place. So we paid all the costs of asynchronous IO. We didn't get any of the benefits because we emphasized the wrong damn requirement. So please be aware of your requirements, whether they are documented or not, whether they are functional or non-functional. Be aware, whether you prioritize them or not, you are assigning priorities to requirements. And when you pick your implementation framework based on some vague fuzzy idea, you are prioritizing one requirement and deprioritizing others. Whether you make that an explicit decision or not, I would recommend making it an explicit decision and being aware of what's most important. That is all. Thank you. Question. Momoko. Momoko? Yes. Do you know about it? Yes, because the last time I gave this talk, somebody mentioned it from the audience. It's Python 3 only. And we are just starting to creep to Python 2.7. And I believe it only works with the thing in the standard library, async.io. So maybe someday in the future, but I hope not because I would rather re-implement this thing right. Other questions? Yes?  So I spent a week or two doing load testing and didn't find any bugs. I didn't find a breaking point, which means I didn't finish the load testing. I pushed it as far as I could and it didn't fall over. Okay, great. The load testing did, well I mean part of the problem was that we already knew about like the unbounded JSON response by this time. And load testing was more about concurrent load. It was not about, all right, let's make this one response completely huge. So I don't know. I don't think it would have helped. Yes. Yeah, yes. Well, it depends on what framework you're using. If you're writing it, yeah. Yes, yes. When you drink the Kool-Aid or swallow the red pill of asynchronous programming, you have to go all the way. You can't drink half the Kool-Aid. That's the thing about asynchronous IO. You can't drink half the Kool-Aid. You have to go all the way down the rabbit hole. I don't know. I've never used Node.js. Yes. Uh-huh. Yeah, Django is for synchronous IO. You can use Django or you can use Tornado, not both. That is, well, I don't know that much about Django. I've only dabbled with it, but it's... Did anybody hand you a picture of Kool-Aid that said asynchronous IO? I don't think so. I think Django is just traditional, normal, ordinary, multithreaded or multi-process synchronous IO. Yeah. No, I know if we could reproduce that in a single process. Yes. Tornado was all about coroutines. I don't know. I don't know how Flask does that. It's simpler than that. They've abstracted away a lot of that, so it's really relatively simple and elegant that you don't have to deal with callback hell in Tornado. But callbacks are happening under the hood. So, I mean, Tornado is really, really nice. It is a very, very pleasant framework to use, but it was the wrong tool for the job of Tornado. No, not in my talk. Tornadoweb.org. I mean, it works. It's a great framework. It's just like, you know, a screwdriver is a fantastically elegant tool unless you're trying to pound a nail into the wall. Yes. No, no, that we still have that problem fundamentally. And I think the fix is, it's not parsing. You think about it, okay, parsing 100 megabytes of JSON. Sure, that's gonna hurt, but who thinks about generating JSON? Well, I do now, but I didn't before it blew up in my face. This is all about generating JSON. I did think about, well, another thread wouldn't be good enough because it's all CPU. It would have to be in another process. And then you've got 100 megabyte string that you have to get from one process to the other. I'm sure there are ways to do that, but that to me feels just like solving the wrong problem. And no, I admit, we haven't solved that problem yet. I think I know how to, we just haven't. Yeah. Pyramid and SQL Alchemy just because they're the standard answers in our organization. Pyramid and SQL. Yeah, they work. They're the known, the things we know how to use, particular ecosystem. He also knows how to test out of the company that you like it. I don't. It makes testing harder. No, I have, the project I did in Twisted 10 years ago was a couple hundred lines of code over two or three weeks.  Whereas this beast is 10,000 lines of code and tests that has got person years in it. Not a wild guess. I need dinner.


فشرف بالشتغالي بالعلم ولا تبغي به ما عشت يا دادا دالا وياله من شراف عظيمي عود بالله من الشيطان الرجيم الحمد لله رب العالمين والصلاة والسلام على أشرف الانبياء والمرسلين سيدنا ونبينا محمد وعلى آله وأصحابه والتابعين لهم بحسانين لا يومدين أما بعد وإن شرح ذا كتابة تبيان في آداب حملة القرآن رتل بايا لمام النووي رحمه الله تعالى الباب السادس في آداب القراءة وهو معظم الكتاب ومقصوده هذا الباب هو مقصود الكتاب وهو من تشر جدا وأنا أشير إلى طراف من مقاصده كراهة الإطالة وخوفا على قارئه من الملالة فأول ذلك أنه يجب على القارئ لخلاص كما قدمناه ومراعات الأدب مع القرآن فينبغي أن يستحظر في نفسه أنه يناج الله تعالى ويقرأ ويقرأ على حال من يرى الله تعالى فإنه إلن يكن يراه فإن الله تعالى يراه هكذا أنه يناج الله يحصل على الشركة وهو من الملالة في قارعه إذا أطلق أكثر من أن ينجح على هذه المنزل لأن القرآن يمكن أن ينجح إبراهيم ونجحاية فيه أخر مدينة هذا الشابتر هو الشباب الرئيسي من البقية والذي يقوم بعملها بشكل جيد فهذا الشباب الرئيسي now is going to go into the fifth sorry the sixth chapter and as he said this is going to be about the etiquettes of reciting and this is the biggest part and the longest portion of the book and it's the intent of why the book was authored so the fifth and the sixth chapters are really the reason why he authored this book now I will however point out that which is particularly important so as to avoid making it too long and hence avoid pouring the reader so here the author says وَاَنَا أُشِيرُ إِلَا أَطْرَافِمِ مِنْ مَقَاصِدِهِ what I'm going to try to do Insha'Allah is I'm going to mention the intended I'm going to do just like قراهة للطالة I want to stay away from speaking too long and being lengthy and fear that I might make the individual who's reading get tired and bored وخوفا على قارئه من الملالة ملالة means boredom the person will feel bored and feel yeah bored basically won't be able to carry on reading so because of that I won't make it long the first one the first of these points is that it is necessary for the reciter to be sincere in his intention in reciting as has been mentioned before so in the first thing that he says that is needed is إخلاص and we always say that إخلاص means إخلاصنا لله صف القلب من إرادة سواه فحد ريافط that the person he purifies from his actions any purpose and any objective other than Allah نعم and to behave appropriately towards the Quran the second thing he mentions is ومراعات الأدبي مع القرآن and that the person observes manners when reading the Quran this chapter is going to speak about that what manners that a person needs to observe when reading the Quran نعم he should be aware that he is talking to his Lord and recites as though he can see Allah نعم so again if the reciter is that in his heart he feels that he is having a dialogue with his Lord الله سبحانه وتعالى and he should also read like a person who can see who Allah or he can see Allah سبحانه وتعالى and if you can't see Allah then Allah سبحانه وتعالى he can see you سبحانه وتعالى the reciter is not using سواك the author then says فصل في استحباب السواك لقراءة القرآن وينبغي إذا أراد القراءة أن ينظف فمه بالسواك وغيره والاختيار في السواك أن يكون بعود من أراك ويجوز بسائل العيدان وبكل ما ينظف كالخرقة الخشانة والإشنان وغير ذلك وفي حصوله بالإصباع الخشنة ثلاثة أوجه لأصحاب شافعي رحمه الله أشهرها أنه لا يحصل والثاني يحصل والثالث يحصل إلا مجد غيرها ولا يحصل إن وجد ويستاك عرضا مبتدئا بالجانب الأيمن من فمي وينوي به لتيان بالسنة قال بعض العلماء يقول عند السواك اللهم رب اللهم بارك لي فيه يا أرحم الراحمين قال المرداوي من أصحاب الشافعي يستحب أن يستاك في ظاهر الأسنان وباطنها ويمر السواكة ويمر السواكة على طراف يسنانه وكراس ياطراسه وسقف حلقه إمرارا رفيقا قالوا وينبغية استاك بعود متوسط لا شديد اليبوسة ولا شديد الربوط ولا شديد الرطوبة فإن اشتد يبسه لينه بالماء ولا بأس باستمال سواك غير ذا ولا بأس باستعمال سواك غيره بإذنه وأما إذا كان فمه نجسا بدم أو غيره بينه يكره له قراءة القرآن قبل غسله وهل تحرم قال الرويان من أصحاب الشافعي رضي الله عنه عن والده يحتمل وجهين والده يحتمل وجهين سواك أو أي شيء أخرى فأ here the author speaks about that it's recommended to use a miswak to use a miswak before you recite the Qur'an and you clean your mouth he talks about that now specifically using a siewaq هل أنت؟ and it's preferred that the siewaq be from the Arak tree what type of siewaq is the best it's the Arak it's from the tree of Arak and it would have been better if we bought different siewaqs and showed you guys which one it is so the person can use anything else can be used for example the person can use now toothbrushes anything else can be used it doesn't matter it doesn't have to be necessarily أي سواك now the person doesn't use any of that he uses his finger to clean his mouth what's the situation like so now we're talking about what is it in terms of reward can you use in your finger he says within the siewaq you might have this tree and you might know his siewaq now so why shouldn't the second opinion is that it is adequate in any case and the third is that the second opinion is that he should and he can and the third one is so the third one is that he should use the siewaq but if he can't find the siewaq he's then entitled to use his fingers so he should start with what this is only when it's what now it's the only time you have to start from the right is when if you're doing it if you're doing it but if you're doing it to clean your mouth from dirt then the dirt you always start with the left because the process I've always used to do good things with his right when you go to the toilet and you do you clean with your left hand so when you're doing it the first time from dirt then you start with the left but if you're doing it not because your mouth is not clean but you're doing it you're doing it to follow the sunnah then in this situation what do you do now you start with your right now because so here the person here is doing it should have brushed his teeth before even if he has brushed his teeth before when he's using this here is for what it's sunnah now you see so he's doing it in adherence to that sunnah and following the sunnah something good and it's something that you're now not cleaning so in this regard it is what it's from the right now some scholars they said they say this du'a bless it for me the most merciful again this is عبادة this is what it needs evidence so we say that this is permissible because there is no evidence for it one of the companions of imam shafri he states it is recommended that both the front and back of the teeth be clean and at the stick we move along the edges of one's teeth one's molars and smoothly along the top of one's throat so here الماورد ياقوة الكلام او علامة explain everything even how to brush your teeth and how to do it and that's not something shocking because even the same thing has been transmitted from who the messenger صلى الله عليه وسلم the same was transmitted from him narrations have mentioned that he would brush his teeth صلى الله عليه وسلم so much so until he would say او the narration mentioned so the processor would do that so these are the narrations that they brought and the understanding is that that the person he does the outside of his teeth and he does the inside of his teeth inside as well and also once he has done that so he's done his incisors he's done his molars, he's done his canines everything so it's all out then وصق في حلقه he also does that up the صقف of his teeth امرارا نفيقة very nicely, slowly and with the as they say the roof is connected to the tongue with that both of them is connected to the tongue all of that and it is from the صقف and the tongue where the odor comes from the person doesn't rush so look the length shouldn't be too long no, shouldn't be too short no, it also shouldn't be excessively dry and it also shouldn't be excessively what wet shouldn't be excessively wet so if the person feels like okay this is a hard one you go to a family they give you a hard one they've kept in the fridge you see, they've kept it for months then what you do here in this regard is you try to you try to you try to you try to try to is you try to wet in it take water and wet it if it's also acceptable that someone else's سواك be used with their permission also you can use somebody else's سواك if they give you the permission to use it would I suggest somebody to use somebody else's سواك not at all but can it be done if you both feel comfortable with each other you could do so if you wish to but I think everybody should have their own they should get their own one so the author here says the person's mouth is bleeding for them to go and read Quran whilst there is blood in their mouth you see this is dislike this is dislike doing this so you go and rinse out your mouth and when you say it's actually forbidden for a reality another you say too that they were too opinionative regarding this is it Haram he said he mentioned that it's disliked but is it Haram he says from the chef he mentions from his father يحتمل وجهيني both are possible sometimes it can even be Haram it can be فصل في حكم قراءة القرآن بغير طهارة ويستحب أن يقرأ وهو على طهارة فإن قرأ محدثا جاز بإجماع المسلمين والأحاديث فيه كثيرة المعروفة قال الإمام الحرمين رحمه الله قال ارتكب مكروها بل هو تارك للأفضل فإن لم يجد الماء تيمم والمستحاضة في الزمن المحكم بأنه تهر حكمها حكم المحدث وأما الجنب والحائض فإن هو يحرم عليه ما قراءة القرآن فإن هو يحرم عليه ما قراءة القرآن سواء كان آية أو قل منها ويجوز لهم إجزاء القرآن على قلوبه ما من غير تلفض به ويجوز لهم النظر في المصحف وإمراره على القلب وأجمع المسلمون على جواز التسبيح والتهليل والتحميد والتكبير والصلاة على رسول الله صلى الله عليه وسلم وغير ذلك من الأذكار للجنب والحائض قال أصحابنا وكذا إذا قال للإنسان خذ الكتاب بقوة وقصد به غير القرآن فهو جائز وكذا ما أشبه قالوا ويجوز لهم ما يقول عند المصيبة وإنا لله وإنا إليه رجع إذا لم يقصد داء القراء قال أصحابنا الخراس خراسانيون قال أصحابنا الخراسانيون ويجوز أن يقول عند ركوب الداب سبحان الذي سخر لنا هذا وما كنا لهم وعند الدعاء ربناتنا في الدنيا حسنة وفي الاخرات حسنة رقنا عذاب النار إذا لم يقصد به القرآن قال إمام الحرمين فإن قال الجنب بسم الله أو الحمد لله فإن قصد القراء عصا وإن قصد الذك أو لم يقصد الشيئة لم يأثم ويجوز لهم قراءة ما نسخة لاوة كالشيخ والشيخة إذا زن يافرجموهما سكشن سكشن سكشن سكشن هل أنت قراءة هل أنت قراءة without purification لا أقصد في حلوة طهارة هل سأقرأ القرآن سكشن يقصد أن يقصد قراءة while in a state of purity هناك يقول ويصدد أن يقصد قراءة إذا يقصد لكن there is nothing wrong with reciting without having made a solution but if he reads it محدثا which is that he has got minor impurity جازة it is permissible بإجماع المسلمين by consensus of the Muslims والأحاديث فيه كثيرة معروفة and the evidence is reputated to that are excessive a large quantity and it's well known there are many hadith to prove this point حيث يأتي في حلوة طهارة إذا يقصد محدثا it should not be said that he has done that which is disliked rather he has left that which is recommended by him making a solution أمام الحرامين 오늘 سيكون أمام الحرامين سيكون أمام الحرامين لأنه كشافي and so is Nauia أمام الحرامين ونخلص نهاية المطلب في دراية المذهب يجب أن تأخذ ثلاثة قوات رأيه الإمام الحرامي is the author of the letters is the author of is the author of the letters he is the one who wrote the book الورقات الإمام الحرامي رحمه الله يقول يقولون هذا الإبعمل أنه مكروه بل هو تاريك when he is good لكن هذا الإبعمل أتيس إلى المفترض ليس مكروة ما فعلت لكن إبعمل تتيسي من ما كان وقتا لا يوجد لديه كثير If the reciter cannot find water then you should make tea in water إنه لا يمكنك اللي تجاهل بأمام العبومعاليل يقول تهيَب مّما ي Oakland And a woman whose past had typical period of menstruation يجب أن ترى بلاحة، يدخل نفسها، يجب أن تقوم بلوحة، ثم يقوم بلوحة المساعدة الآن هي مستحادة، مستحادة هي... هل أنت معي؟ المستحادة يسمى كنتميول بلوحة هي when the woman just consistently is bleeding There's no stopping to it It's not menace The woman has three types of blood that come from her The first one is hail, which is menstruation The second one is called nifas, which is a postnatal bleeding And the third one, which is استحادة Which basically is continuous bleeding Continuous bleeding, which is that her body is producing blood That's unnecessary, it has no reason The Prophet told us, Alisa, so the reason that's bringing it But this is called استحادة So what does this woman do when she wants to read the Quran The woman who's in a state of استحادة The sheikh says المستحادة في الزبان المحكومي While she's in that period When she said that she's... The woman who has استحادة Can she have intimacy with her husband? نعم, she can The woman who's consistently bleeding She can She's normal This blood is not hail You see, they just need to know the difference Between when it turns into hail And there are ways that scholars verify that There's a zaman called زمن المحكوم they call it زمن المحكوم is a time where she is said to be pure And that's the time that she's not on her menses Does it make sense? That the استحادة here is just that It consists of continuous bleeding It's not menses here That continual bleeding While she's on it, she's pure She's allowed to do what? Everything It's nothing she stops from doing You see Because this blood will never stop It will never stop But the author Ibrahim Harameen says Even though she's pure She takes the حكوم of a مخدث Which is that a person who lost what? تهارة Like you know, if a person passes the wind Or goes to the toilet What do they do? They need to come with? وضوء, right? He say that She's pure but she needs to come with وضوء She needs to come with وضوء نعم Those in the states of major ritual impurity Such as of having had intercourse The woman who is The woman who is The woman who is on She's in a state of She's in a state of She's in a state of She's in a state of She means After sexual intercourse The state that the people are in It's called Or if a guy has a dream Or a woman has a dream This is called what? This is called This is the state of جنابة وَالْحَائِذْ حَائِذْ is mencis Those are called Major impurity When you have to come with وضوء is called minor impurity But when you have to come with وصول is called what? Major impurity He spoke about what? The minor impurity What did he say that the minor impurity is? Is that that person has left Yeah He has left The minor impurity When you're in a minor impurity Reading the Quran, what did he say? You've left the what? You've left To a tariq, the minor impurity He would be brothers But what about if the person is in Major impurity Either by being a state of جنابة Or a state of حيغ The author here says يحر وعليم قراءة القرآن Here is Haram For them to read the Quran He says this what? He says this Haram Yeah Regardless of whether it is a single verse Or less So he can't even say بسم الله الرحمن الرحيم He can't say anything That's if you take بسم الله الرحيم Is to be an ayah He can't read anything from the Quran He can't Yeah Instead they are allowed Only to recite it in their hearts Without uttering its words So they can say بسم الله in their heart They can read everything in their heart But they can't say anything It is also permissible for them to read from it Without uttering its words So they can look at the Mus'haf Are they allowed to touch it? Of course call it to them So she is not allowed to touch The Mus'haf Yeah So she is allowed to do And he is allowed to do All of them are allowed to do What is known as a تسبيح They do تحميد الحمد لله رب they do it تكبير الله they do all of that والصلاة على وصول الله صلى الله عليه وسلم وغير دالك بالأثكار And all the other ethkars there is He does it And the haith


What deficits do you see in the European Union as a democratic organisation? Well, the European Union is an organisation which in one way is profoundly democratic.  But making an organisation of 27 countries work on a democratic basis, that's more difficult. If you follow democratic procedures and have majority votes, it's normal in democracy. Then what happens? It means that a country like Denmark, which is not very large, can be voted down. We make decisions then over the head of the damaged people. That sounds undemocratic. On the other hand, if you don't do that, you maybe don't make any decisions at all. Normally what happens in practice is that we work by consensus, that's give and take. Everybody knows that to make the system work, you have to compromise. Everybody knows that if you're isolated, it's not that you give way, it's that you have to find a way around your problem. Everybody has to help each other, has to understand each other's problems. But is the European Union in a pure democratic organisation? The answer to that is no, because it's not a state. It doesn't operate like a state. It's a collective, a community of states trying to work out their common future.


Driving across with his left foot, here's Brock, goal for Bournemouth, goal in the Premier League for David Brock.


Here we are again, back at the Dollar General store and I got another 20 bucks, check out what we make today.  Now let's go hit the grill, you gotta turn these constantly, we're gonna keep this on a medium temperature. Alright y'all, it's been an hour and 15 minutes, we're gonna take these in, give them a look, they should be perfectly cooked and it's absolutely perfect. Look at that y'all, yum yum get you some, we'll see you next time my friends, keep sprinkling.


From Soldiers Radio and Television, this is the Army Today, a daily feature from around the globe. There's nothing like being in a training environment where it feels like the real world. In the profession of arms, there's a universal language. We have a certain way that we respect each other.  That is a fact in both of our nations. We have a mission. We have a very short time to build a relationship. This whole purpose is for sharing ideas and making sure that our capacities can be mutually understood and actually expanded. We have joint forces here. So we have Air Force, we have Army. We have people from various MOSs and branches. This exercise, condensed into two weeks, has been an absolute winner and a way for us to display our skills and share it with our partner nations. We know what we have to do together as a team in a very short amount of time. And he communicates that to me, too. Reggie! Let us do this! Soldier and communication is a way of merging cultures and sharing each other. It's all about what we can do in order to help our people and our nation and our soldiers and ourselves to learn how to be better leaders, right? Yes, right, right. OK. Au revoir! Oh boy! Yeah? That's the Army today.


this queue in a data structure. So these are the learning outcomes. At end of this session, the students will be able to demonstrate queue in a data structure. So let us start with the topic that is the queue. So the queue is the data structure where the elements are added from the one end and removed from the other end. So when the first element in the queue is known as an front, the position of the last element is known as an rare. Now, suppose this is an array where the size of this array is four, that is a of zero, one, two and three here, the front will be pointing towards the first element in the queue and rare will always point to the last element in the queue. Now, whenever you're going to add the data to the queue or the item in the queue, so insertion of an element is carried out from the front rare end only means always when you are going to add the data, it should be added from the rare end. The deletion of the element is carried off from the front end. So whenever you're going to remove or delete the data from the queue, which is done from the front end only. So the queue is known as an first in first out that is FIFO that is, for example, the queue whenever the student comes for depositing the fee at the counter, which comes from the back end that is an rare end and deposit its fees after depositing the fees, it leaves the counter from the front end. So whenever the next person comes for the filling the fees, it get added towards the rare end means one after the other. So by getting the service, the whenever is going to over the service, it is going to leave from that place. So that's why the queue is known as an first in first out that is FIFO. So now we'll see the queue operation. So there are two main basic operations that is NQ and DQ. So the NQ is nothing but where the data is going to be added in the queue, whether the queue is the removal and atom from the queue. So while doing an NQ operation, we have to check the condition is full that is the queue is full or not. DQ, when you're going to remove an atom from the queue, we are going to check this condition that is is empty. We are going to check that the queue is empty or not. So we'll see in detail now the NQ and DQ operations. So let us see now the implementation of Q. So what will be the initial state when the queue is an empty. So we have taken the size of NQ that is a of zero one two means the size of NQ will be three. So we can insert three elements at a time now. So at that time, the front and rear will point towards this position. The front will point at a of zero and rear will point towards minus one here means that this condition is known as an queue is empty and Q operation. So whenever you're going to add the data that is equal to 10, so the 10 is going to added from the rare end, which comes and sit at this position that is a of zero, that is front will be at same position that is a of zero and rare will be incremented from minus one to plus one means whenever we are going to add the data in the queue, the rare is incremented by plus one. So the rare is incremented from minus one to zero here now. So that's why this is first and the last element the queue. So the front will always point towards the first element and rare will always point towards the last element in the queue. Now suppose if you want to add the 20 at this queue here, so what will happen the front will be at the same position but the rare is incremented by plus one means what happened. This is the first element and now this is the last element in the queue. So now this is an NQ operation. So whenever you're going to add 30, so the front is kept at the same position, the rare is incremented by plus one now. So this is the position of the queue. So front is pointing towards a of zero and rare is pointing towards a of two here. So now the queue is full here in the same manner if you're going to do and DQ operation, DQ operation is nothing but you're going to remove an element from the queue here. So while deleting the data, so the first element was an 10. So if you want to delete that data, so the front has to be incremented by plus one. Now 20 will be the first element in the queue. So that's why it is pointing towards a of one that is 20. So this is the same way the rare is going to kept at the same position. It is not going to be incremented or decremented while doing it DQ operation. So if you want to delete one more data from the queue that is and delete data 20. So the front is going to be incremented by plus one and rare is kept at the same position that is front is now at the 30 showing at that position a of two only.  So the front and the rare will be point towards the initial position that is front is equal to zero and rare equal to minus one means what now automatically your queue will be in empty state. So the front and the rare will be re initialized to that condition that is front equal to zero and rare equal to minus one here. Now after this pause this video and answer this question if you have understood that. So what happens if we perform NQ operation and there is no space to insert. And what happens if we perform the DQ operations and there is no elements to remove. So what will happen? So the answer is here in the case of this array, the NQ operation is not possible and this situation is called as an queue overflow. So that's why so while performing this NQ operation, so every time we have to check this condition that is an full condition check if the queue is full. If the queue is full, you cannot insert the new element here. So while doing an NQ operation, every time you have to check this condition is full. If this condition is not satisfied, then you have to do an NQ. If this condition is satisfied, you cannot insert the new element in the queue. In the same manner, what happens if we perform the DQ operation when there are no elements in the queue. So DQ operation is not possible. And this situation is called as an queue underflow condition. In the same manner, if you delete the 30 so that the front pointer and the rare pointers are pointing towards zero and minus one respectively. So if you try to delete the elements from the queue, what happens? It shows an message the queue is in underflow condition. You cannot the delete the elements from the queue as there are no data in this. Okay, so that's why while doing an DQ operation, so we have to check is empty condition. If this condition is satisfied, you cannot remove an item from the queue. If this condition is not satisfied, you will be able to remove that elements from the queue. So we'll see now what is the front and the rear of the queue. So to keep the track of the first and the last data of the queue, and integer variables front and the rear is maintained respectively. So the NQ and DQ operations are performed with the help of front and the rare variable only. So when the data is include in the queue, the rare variable value is incremented by plus one. In the same manner when the data is DQ in the queue, the front variable value is incremented by one size is the variable that the maximum number of data can be NQ in the queue representation of an queue queue can be represented using only one of the following of the data structure that is using array and using a link list. So in the next lecture, we are going to see the implementation of queue using an array. So why we are going to for an array, which is very simple to use and easy to understand array of fixed size and integer variable of front and the rare are needed to be implemented using the array concept here. So for link list, we have to make use of and pointers here. So later on, we'll see this. So before implementing a link list, we are going to see using an array here. So these are my references that is I have used the books that is seen depth that is by the which is the good and this is the side which are going to be used for the references. Thank you.