Merci tout le monde. Good morning. Merci d'aide des nôtres. Merci François-Philippe pour ton accueil chaleurur. And thank you to Elder Eric Isaac for your warm welcome, for your blessing and for welcoming us onto traditional territory. It's always a pleasure to be back in Windsor. Today I'm happy to be here amongst friends and colleagues including Ambassador McNaughton, Minister Champagne and others to celebrate an important moment for the people of Windsor and indeed for the people of Canada.  Thank you for your leadership. Thank you for your service. Thank you for your very kind words. Today we begin full construction on the Gordy Howe International Bridge, named after a Canadian legend and an honorary son of Detroit. This bridge is a vital two and a half kilometer artery that will connect Windsor and Detroit and allow for an increased flow of people and goods between Canada and the United States. We are incredibly proud to support this essential project. After all, when we have formed the government, we have promised to invest in Canadian infrastructure at a record level. And we have worked hard to offer to all Canadians highways, bridges and transport networks more efficiently because that's how we prepare communities for the future. The Gordy Howe International Bridge is a massive, ambitious infrastructure project that will create thousands of good jobs for tradespeople, designers and engineers alike, including by the time they graduate these young students behind me. With an opening slated for the end of 2024, this bridge will be an economic boom to the city of Windsor and neighboring communities providing economic activity and growth for many years. Once it's up and running, this project will provide even more good middle-class jobs for local workers on the operational side supporting the constant flow of traffic across the Canada-U.S. border. The increased capacity at this crucial trade terminal is essential. After all, the Windsor-Detroit corridor facilitates almost a quarter of all trade between Canada and the U.S. with approximately 7,000 commercial vehicles crossing here every single day. It's vitally important that two-way trade at this point runs as effectively and efficiently as possible. This project and what it will achieve was, of course, important last week, but it's even more important this week. After all, this week Canada reached an agreement in principle on an updated and modernized trade pact with the United States and Mexico, the USMCA. This new agreement makes real progress for middle-class workers, businesses and families in all three countries and when enacted will create even more jobs and opportunities for people in Windsor and right across the country. And so I'm confident that integrated two-way trade between Windsor and Detroit will only increase from here, which is a great thing for local communities and the national economy. Shorter travel times, more efficient supply chains and better access to the U.S. market for Canadian businesses, the Gordy Howe International Bridge has been a long time coming. Several former Prime Ministers have advanced the project over the years and today I am happy to be here to celebrate the fact that after almost 20 years of hard work and determination, the project will finally come to an end. And on that note, there are many people I want to acknowledge for bringing us to this point. First of all, thank you to Dwight Duncan of the Windsor-Detroit Bridge Authority for your Tyler's work on this file over the years. Thank you also to the many Canadian and American corporations forming Bridging North America. Together, these two organizations have successfully demonstrated that government and business can work together to get big things done. Thanks also to the Ontario government, which has supported this project for many years and a special thanks to Governor Rick Snyder, who has been a true champion for this project throughout his time in office. And finally, thank you to the mayors of Windsor and Detroit, Drew Dilkins and Mike Duggan. My friends, this is a terrific day for the people of Canada. We're bringing good jobs to Southern Ontario and making our trade networks better than ever before. The Gordy Howe International Bridge is just the latest example of what happens when all orders of government work together with support from the private sector to strengthen and grow our communities. Today, we're investing in the future of Canadian workers and Canadian families. I expect with enthusiasm the months and years that come during which we will continue to build a stronger and more prosperous country to make the middle class and those who work hard to make it a part of it.


Everybody Ford is here ripping two boxes for Joseph s. Joseph has a 2023 revolution WWE and a 2023 stars and stripes baseball Star Wars stars and stripes best of luck Joseph here we go man silver of Rhett louder Jersey Auto of Casey Borba number to 200 Casey Borba Jersey out of 200 game worn a Chandler Hart number 299 Jersey card out of 250 is PJ Morland It's game warrant PJ Morland Cash Mayfield Jersey Auto Cash Mayfield Jersey Auto as game worn That's crazy yo Andy yo Andy Morales Bronze or gold there silver is a Blake Dickerson number to 100 a Sebastian Norman auto number to 100 crack dice Daniel Arambula Arambula Arambula at a 23 on the cracked ice Five is a bat relic auto with gold ink of Jack Hurley Jack Hurley number to five on the bat relic auto and a Trevor Condon Condon on the base auto here And a bronze silver and gold of Maxwell Clark It's a silver Ford Thompson Chase Davis on the auto number to 100 Chase Davis and Justin Morales Ikara on the patch card number to 10 number to 10 from the Netherlands Game worn as well My slow numbers in the box Revolution WWE now be cool to see a kaboom here Good start got a stargazing Shawn Michaels on the Sunburst out of 99 Shawn Michaels the 99 man soar on the Astro Quincy Elliott there God Julius Creed Brutus Creed Creed Brothers Fractal of Roxanne Perez Creed Brothers, they call a Jake Sean Liftoff of Rob Van Damme that is a oro men saw number to 199 on the impact Astro Rey Mysterio stereo legends Shockwave of Becky Lynch groove of Gunther Elias on the cosmic. Yep to 140 90 Elias Who did Joshua? Seemed to pre Gunther Astro of Wesley Auto Booker T nice Booker T on the auto here. I was my guy when I was a kid The glass breaking you can hear it. It's kind of crazy Joshua. Maybe Sierra's getting up there in age, too Bloodline, that's a cool one and an Astro of damage control And that does it appreciate the order Joseph S. We'll get these cards out to you shortly


We thank the Lord for being so good to us all the time He has been good through the challenges that we go through all the joys that we always come across the Lord is good and we give glory to His name. Thank you for coming. Thank you for giving me a listening ear that we may be able to enjoy the salvation that Christ has given unto us freely that we may be counted as His children. Allow me just once again to recognize a friend who has come Pastor Emmanuel Zae Zae Junior you were with us last year in July and you led us so powerfully through the stewardship week. Thank you and may God bless you may God be able to bless your ministry. I want us to look at this topic that we have today that is saying deeper things will unfold. You know, deeper things are not easily seen because they are not at the surface they are deep they are rooted you need to look keenly you need to search for them you will be able to find them and when you will be able to see them as they continue to unfold in your eyes you will see the beauty that you have never imagined and you will stick to it. Deeper things will unfold. Go with me to the book of John the Gospel of John chapter 1 let's read verse 35 and 36 we will be able to read many verses but we will go through them slowly 35 and 36 John 1 35 and 36 the Bible is saying again the next day John stood with two of his disciples that is John the Baptist John the Baptist stood with two of his disciples and looking at Jesus he walked sorry looking at Jesus as he walked he said behold the Lamb of God allow me to continue till 39 then the two disciples heard him speak and they followed Jesus then Jesus stand and seeing them following said to them what do you seek? they said to him Rabi where are you staying and he said to them come and see and they came and saw where he was staying and remained with him that day let me just top it there a little bit John the Baptist is with the two disciples of his and he is seeing Jesus Christ walking and as Jesus Christ is walking it's like again he has seen another light on Jesus Christ that compels him to testify and he testifies that this is the Lamb of God as he had testified before verse 29 that the previous day just the previous day he had seen again Jesus and testified and said that this is the Lamb of God who takes away the sin of the world and the two disciples of Jesus something comes to their mind and they question why this testimony and seemingly this is not the first that we have heard it seems that there is something more than we know and the two disciples want to question more and I just want to think that they might have also known what John the revelator is saying to us in verse 11 and 12 the same chapter verse 11 and 12 that says he came to his own and his own did not receive him but as many as received him to them he gave the right to become the children of God what John is saying there is that Jesus Christ came home he came to his people he came to the Israelites he came to the Jews but they did not receive him but even though the multitude did not receive him the remnants received him and to the remnants who received him he gave them the right to become the children of God those who will receive Jesus you have the right to be the children of God and you know because of these testimonies they are feeling that something is powerful and they want they are questioning something and they want to get an answer who is this man and that is why John the revelator or the evangelist when testifying about this thing about Jesus wanting to bring to us that Jesus is God in chapter 1 and he is the one who will save us he is again adding what John the Baptist was testifying about Jesus and he is saying that John the Baptist also testified as the foreigner of the Savior and that is why when he was preaching people came to him and asking who are you and in verse 23 is saying verse 23 John the Baptist is saying I am the voice of one crying in the wilderness make straight the way of the Lord by the way this is a call even unto you today please make straight the way of the Lord Jesus Christ is coming to serve you accept this salvation by accepting to put away all the sin that you love make straight the way of the Lord because the Lord is coming and as they are seeing that probably this is the Lord that is coming and is being testified about by now John the Baptist the Pharisees come and they send emissaries to come and question John the Baptist and ask him who are you are you Elijah could you be Elisha could you be Jonah or any other prophet then he says I am none of those then they ask him why do you baptize he tells them I am baptizing with water but the one who is coming after me his shoe latches I cannot be able to unfold meaning that a great man is coming after him and he is saying in verse 29 that verse 29 we can read it it's saying then the next day John saw Jesus coming toward him and said behold the Lamb of God who takes away the sin of the world you know that is second day after the testimonies second day he sees Jesus coming and he testifies again the third day as they follow each other in verse 35 John is with the two disciples and with these two disciples verse 36 says he looked at Jesus as Jesus was walking then John says behold the Lamb of God because of that these two disciples feel that Jesus is having something they could not be understanding and they want to understand it and they must know who is this man so the verse 37 the Bible is saying the two disciples had him speak and they followed Jesus they just had a question in their mind that they want answered so for the question to be answered they decided to follow Jesus Jesus noticing that some people are following he turns back and asks them a question and the question is what do you seek what do you seek Jesus knows that people will follow him many may want to follow him but for different reasons many are following him that they may be able to receive miracles some are following him that they may be able to get jobs some are following that they may be able to have a table that is set before them some are following Jesus that they may be able to get spouses some are following Jesus because they have heard this is the great man and he will be a king Jesus wants to know why you are following him Jesus is asking them what do you seek and I'm surprised at the answer they don't go straight to the answer that Lord we want to know you they are telling Jesus something in verse 38 they are telling him Rabi where are you staying what they are telling Jesus is that Lord teacher what we want to understand from you we can't tell you now we want to stay with you tell us where you stay we want to spend time with you little time with you is not enough give us time that we may spend time with you that we may be able to understand your beauty Jesus understands their heart and tells them come and see I cannot be able to explain to you if you have decided to understand me to be with me don't hesitate come and see there is some beauty in me there is some beauty of heaven that you can be able to understand and you cannot be prevented from knowing if you want to know come and see deeper things will unfold and ask they come with him they stayed with him that whole day they were yearning to be with Jesus they were ready to be with their master this is what I was inviting you to get this day that the moment you understand your savior Jesus Christ you will see a deeper beauty that you will never move away from him there is some beauty in Jesus Christ that you cannot just see at the face of it you must take time with Jesus you must have a deeper experience with Jesus and you will see a strange beauty that you will love Jesus Christ these two disciples one is mentioned that one was Andrew we will see it down there another one is not mentioned but scholars agree that the other disciples who was not mentioned there is John the evangelist most of the time when he is writing in the book of John he doesn't mention himself so John loved Jesus and Andrew they were first disciples of John the Baptist and they want to find out more about Jesus they want to have a deeper experience with Jesus that deeper experience changes life do you know if you have that experience the immoral life that you always love you will just feel that it is not a good one and you will change it do you know if you have such an experience with Jesus because you are very close to him do you know some of the clothes that you wear you will just find that they don't fit in with the new relationship that you have developed with this man Jesus Christ may I ask that we can see the stance of the song that we have just seen song number 290 is saying that turn your eyes upon Jesus I just need the chorus and if we may we are not going to sing it but I just want us to see the writing of it how the writing of that chorus of it turn your eyes upon Jesus song 290 the chorus it is nice it is saying we do slowly we don't hurry with the word of God it is saying turn your eyes upon Jesus meaning that you might have been looking this way turn and look upon Jesus fall in his wonderful face Helen Howard who wrote this song this lady had been a good Christian since her childhood in a Christian family but she met an evangelist who turned her thinking and she thought of writing this song in England and she says turn your eyes upon Jesus keenly look at line 2 look full in his wonderful face Jesus is wonderful but continue looking at that face until you see something that is glorious then the third line is saying when you look at Jesus like that the things of earth will grow that word strangely I like it will grow strangely deep in the light of his glory and grace what that statement meant to me is that whatever you ever loved on earth they seem to be so nice so beautiful so glorious by the way when you are singing you always feel that you are on top of everyone by the way when you have money sometimes you can be crazy when you have good education sometimes it can be very important to you when you have a beautiful wife it can be something to be excited about but she is saying that when you look at the countenance of Jesus those things will grow strangely deep your heart has changed that the sin you used to love has become something very hateful this is what Andrew and John is looking for that you may come so close with Jesus until you feel that the sin you are doing is so bad and you become so close to Jesus you feel that even the problems you are going through whether it is sickness whether it is singleness whether it is poverty you realize that they are nothing before Christ they become so minute because you have seen his glory verse 41 let's see from verse 40 two who had John speak and followed him was Andrew he is the one who is mentioned so it is Andrew and John Simon Peter's brother he first found his own brother Simon and said to him we have found the Messiah if you want me to say it let me say in such an experience that they spend with Jesus that day they were convinced you don't need to doubt you just say it straight we have found the Messiah and his brother Simon is convicted and he comes verse 42 and he brought him to Jesus now when Jesus looked at him he said you are Simon the son of Jonah you shall be called Sifas meaning stone that verse 42 I just question when did Jesus get to know his name he has just been brought by Andrew the brother immediately he comes Jesus says you are Simon son of Jonah you know when it tells me that you are Meshak son of Amayo I would ask myself you know he has known my name until he has known my father then there must be something more than that he must even be understanding the poverty that is in our place he must be understanding the sickness that is in my place he must be understanding the needs in my place no wonder he could say you can crucify me upside down the following day verse 43 I don't know whether now this is the fourth day in this chapter the following day Jesus wanted to go to Galilee and found Philip and said to him follow me now Philip was from Bethsaida the city of Andrew and Peter Philip found Nathaniel and said to him we have found him of whom Moses in the law and also the prophets wrote Jesus of Nazareth the son of Joseph verse 46 and Nathaniel said to him can anything good come from Nazareth? Philip said to him come and see he called Philip Philip knew about Nathaniel and he knew where Nathaniel could be found so straight he goes to the place where Nathaniel can be found because there was something he knew Nathaniel always wanted that is why he is going for him and as he goes for Nathaniel Nathaniel enjoys the statement you have been reading the law that is Genesis to Deutronomy and he tells them he tells him we have found him as we are going to read the next verses they are telling us that he was under the fig tree fig tree was a place of meditating upon this world let me say it was a place of meditating about the Pentateuch and the prophets and if somebody was meditating you could just say the person is under the fig tree so Nathaniel was under the fig tree and he was waiting to his desire was to see the Messiah and good news comes that we have found him you know something you are seeking and it has been found it was a nice message to Nathaniel but something comes in that we expected something greater but how comes that something greater can become can come from Nazareth the writer, great writer in the early days Josephus wrote about 200 cities and villages that were found in Galilee Nazareth is not one of them if it cannot be among 200 that can be mentioned it means that it was too minute to be mentioned we waited for something powerful how comes it can come from Nazareth we were waiting for Jesus who can be able to do to us great miracles how comes I have believed in Jesus and still the things I am praying for are coming small small some are never coming at all we waited for pump and power and we are not seeing it feeling that it is not something that he can argue out by the way the beauty of Jesus Christ I cannot argue it out with you I cannot tell you what Jesus Christ can do unto you I cannot in my own words tell you the glory that is there the only answer to you please come and see the beauty that is in Jesus Christ I cannot express to you even in all your disappointments you may not understand that beauty but if you are willing to understand please come and be closer to Jesus look carefully upon his countenance and you will realize that there is a beauty there is a glory you have never known and the great things of the world that you ever used to know they will grow strangely the sins that you commit and you feel you are powerful you will find that they grow strangely the Nathaniel goes to Jesus Christ and when he goes to Jesus in verse 46 47 Jesus saw Nathaniel coming towards him toward him and said to him said of him behold an Israelite indeed in whom there is no deceit Nathaniel said to him how do you know me Jesus answered and said to him before Philip called you when you were under the fig tree I saw you when you were searching for salvation you were searching for the Messiah and you were reading the prophets to understand me I saw your heart wanting to understand me when you were still deep in sin and you were saying this sin always bring me problems in my family and I wanted somebody who can break the chains Jesus is saying that when you were crying for someone who can take you away from your sin I saw you when you were crying for someone who can be able to deliver you I saw you then Nathaniel testifies and says in verse 49 you are the son of God you are the king of Israel then verse 50 Jesus says Jesus answered and said to him because I said to you I saw you under the fig tree do you believe who will see greater things than this just because I have told you that I understand your life you have believed just because I have told you that I understand you you believe me just because of the simple miracles I have done to you you confess that you believe let me confirm to you that when you come much closer to me and stay with me and understand me you will see greater things the things that have been painful to you in your life and you have been questioning why they are not going you will understand the reason the beauty of heaven that you will see when your eyes will be unveiled and you will see the things that we have never seen ears have never heard you will realize that there are much more greater things than these small things of earth that you love they see that you cherish that will make you never to see heaven if only you knew that you could come closer to Jesus and you will see the beauty of heaven until the beauty of that scene will be strangely dim Jesus is telling you just come closer stay with me and see the beauty that is why I am telling you come closer to Jesus and the deeper things will unfold you know deeper things means but the love of God is too deep just to see it here stay with Jesus and understand the depth of his love his grace is so wide that you can't just see it come closer to Jesus and study his word and you will understand this man that is why as I finish I will refer you to song 245 more about Jesus stanza 3 we read stanza 3 before I make a call and we sing it I'm going to make a call and what I wanted to tell you is that this month of February we have a theme for the February saying beyond all limits in studying the word of God go beyond all limits to study this word you will find yourself closer to Jesus stanza 3 of more more about Jesus that song song 245 is saying more about Jesus in his word holding communion with my Lord I want to be holding communion with my Lord and then I hear his voice in every line if I hold communion with him and I want to hear his voice in every line then I make each and every faithful saying to be mine I pray who among us is saying I want the things of the earth before me to grow strange lady that I may be much closer to Jesus can I see you please rise up


Hi there, good morning and welcome to today's Prodigy Focus. As you can see there, the US theory has gapped up highest warning, it's now had potential resistance at 16401 on the back of Chinese monetary stimulus hopes. And as you can see there, if you break above there and close above there, next potential support is at 16598. You're thrown to the fact that there might be a cut in ECB rates as early as Thursday and progress being made by John Kerry and the Russian counterpart in France over the Ukraine crisis. There seems to be a little bit of bullish momentum in the market today, but will it continue as a good question? UK100 has actually gapped up higher this morning and is continuing to advance towards the potential resistance at 6666, which also was a specified period at SMA. Any move beyond that opens up the next potential resistance at 6713. But if we hit resistance here, we could reverse back down next potential support as at 6581. Looking at the Japan's 225, it hadn't happened a good day, but with doji formation forming here close to potential resistance at 14977, that's also hitting a 55 period SMA. We are seeing some interesting moves on dollar yen, but it's more yen weakness than it is dollar strength. That's helping to push the Japan 225 up a little bit higher. Looking at the Japan 225, we are trading above potential resistance at 102.87. Next potential resistance at 103.77. And we are trading above both SMAs and that kind of strategic level just now. It's very important that it stays above here and doesn't close below 102.87 if it's going to try and make a move to go a bit higher. Looking at West Texas, there has been some oil production worries in North Africa and Libya, Chinese stimulus and obviously that ECB rate cut as well to help to stimulate the eurozone is pushing up crude oil. We've hit potential resistance at 103, that was on Friday, and today we're hitting the floating above there. We need a break above 103 to be able to challenge 105. A break and close above there could be an interesting technical catalyst for that. And obviously we've got crude oil inventories on Wednesday as well. Looking at gold, it's still feeling the pressure this morning, trading below potential support at 1295. Doji formation yes on Friday, still a down day again today. Potentially capped at 55 period SMA. Next potential support is at 1267. Any move to the upside, the next potential resistance there is all the way at 1332, so we're a long way away from there right now. It looks to be at 1295, it's going to be the strategic level in the short term. Looking at your dollar, bounce this morning to open up a little bit higher. This is a hammer formation we had on Friday but we seem to be capped with that potential resistance at 3772. If we do see a reversal back down, nice potential support is at 3709 and that's also the 55 period SMA. And if we have a look at GBP-USD, it's going to float in the middle of two ranges right now. This has been a really strong uptrend right here, five updates. We're in negative territory right now. I am seeing, looking at other FX pairs, emerging markets that the US dollar is actually a little bit weaker today in general, it's not just against sterling, but this isn't exactly pronounced move to the downside. We are shooting above both 21 and 55 period SMA. Potential resistance at 6744 and obviously potential support is all the way down around about 6519, so we're a long way away from there right now. Economic data wise, you don't have a lot today but you do have a lot more tomorrow. Later on today you do have PMI due at 245. Fast forward on tomorrow, lots of data. You've got Chinese PMI, that's obviously going to be important when it comes to Chinese monetary stimulus hopes. You've got German PMI, it's going to be good for your dollar in Germany 30. You've got unemployment, jobless rates in Germany as well, so same rules apply. UK PMI, Eurozone, jobless rate and US manufacturing PMI. So actually loads of fundamentals due out tomorrow. You've also got domestic auto industry sales over in the US tomorrow as well. So not so much in the way of fundamentals today, tomorrow could be a little bit more volatile. Keep you on the chart forum for more updates from CMT clients and our analyst team. As you see there's quite a few CMT clients posting in here, so please feel free to post your own analysis guys and make sure you make insights part of your layer so you can get the inside track of what's moving the markets from our global analyst team. And join me again tomorrow to find out what will happen next.


The mail must get through, mail from home, nourishment for the soul, half a world away from their hometown, a nourished soul is not enough. We must have ships on the line and crews to man them, but more than this, we must move food and equipment to these ships and men at their distant ocean addresses. These men need fresh vegetables and meat. On an aircraft carrier, 10 tons of groceries every day. Their ships need fuel oil, their aircraft need replacement parts, and their guns need ammunition. Today, with our Navy engaged in a hot war thousands of miles from our shores, the oil pipeline and the track for the supply train must be stretched to new dimensions in Southeast Asia. Tomorrow, we hope there will be no battle tomorrow. The Navy's job is to take the strength of America wherever it's needed, not always to fight, thank God, usually to promote peace by making new friends and working side by side with allies. An aircraft carrier task force by only being in the North Atlantic or the Mediterranean or the Taiwan Straits is a kind of insurance against battle. No supermarket down the street, no gas station around the corner. It's a long way to the shopping center from here. Wherever on the world's oceans, our ships must be the gas station, the department store, the hardware, and the grocery must go with them. For the supply fleet in the Gulf of Tonkin, this is a large order. The rendezvous address has been agreed on and unmarked crossroads among the waves. Let's come right, of course. 320, Speed 10 knots. Keeping the task force on the job starts at Sous-City, Amarillo, and San Bernardino. In It's all the cities and towns across the nation where the products of an abundant economy are grown or manufactured or taken from the earth. The Navy and, well, Pacific Fleet sailors do get around. Many seaside bases serve as warehouses for the fleet. Okinawa, Guam, Subic Bay. For the war in Vietnam, Subic Bay in the Philippines is the shopping center. Only two days steaming time from the Gulf of Tonkin. Every time you turn around here, there's another ship from the states to be unloaded. Or a ship riding high back from Vietnam ready to be loaded out again. Yankee station, here they come. The idea of taking supplies to ships at sea and handing them across the water was new to the Navy at the turn of the century. Sailing ships had been able to stay where the action was for weeks or months. Sea breezes provided the power. Sailor's diets were less complex and round shot was more easily stocked than bombs and missiles. Then came the day of the steamship with its huge appetite for coal. Large men of war burned 50 tons of coal a day and to keep their bunkers full had to return to port every 10 days or so to recole. The Navy learned a lesson in 1898 during the Spanish-American War. The Spanish fleet was blockaded in the harbor at Santiago, Cuba. When the Spaniards made a run for the open sea, three of our ships, including the old battleship Massachusetts, were 45 miles away being recold at Guantanamo. The need for on-station at sea refueling was obvious. Early efforts to solve the problem led to the development of a high line for carrying bags of coal from a collier to a warship, one in the wake of the other. World War I saw the beginning of the Navy's conversion to oil burning ships and soon the colliers were out of business. All right, when this whip, which is on the sending ship, is heaved around on, it will pick the load up in the air, hide up the clear to bulwark.  It took the pressure of the Second World War on the Pacific, a war that reached into the far corners of that ocean, to make underway replenishment a regular feature of naval operations. Americans, with their ingenuity for things mechanical, worked out several ways to do the job. Now let's go back to this third rig, which is called the Houseball Rig. It is rigged much the same as the Burton Rig, the first rig we talked about. The whip is heaved around on, which will lift your load clear of the deck. Your outhaul is heaved around on, which will start your load outboard. Bring it across.  One whip is slacked off, the other one heaved around. When you get to the other ship, the receiving ship, you'll be right over the elevator of any other landing platform you have.  All right, does anybody have any questions on this rig? Approximately how far apart are these ships and what would happen if there were a power casualty? Usually the ships steam not more than 200 feet apart. If a power casualty happens and it's something that will affect the rudder or the steering of some type, if the power casualty causes us to swerve on either one ship or the other, it's real drastic. You'll probably part all the rigs before you can initiate an emergency breakaway. The war in the Pacific made new demands on the Navy. We had the fighting ships and men, but our new mobility meant that the supply lines had to be extended quickly in order to project our power across the oceans and keep it there. This is Commodore Leon Grabowski, replenishment group commander in the South China Sea. Back in World War II and in Korea, the combatant forces would retire from the scene of operations to conduct their resupply. In the Vietnam operation, the supply comes to the combatants they remain on station. If it's a carrier, he may be engaged in their operations. Regardless of what he's doing, he needs his supplies, whether it be fuel or ammunition, delivered right across the operations. The hazards to the service force ships are just as great as they are to the other ships. The USS Constellation 4,000 hard-working crewmen pass through her chow lines three times every day. People remember, under no circumstances I want any skyrocket on this station. If anything goes wrong, let me know about it. Remember, we'll be working the hatches at the same time so they'll be swinging loads. Keep up between the load, the fuel work, and the open hatch. This is extra important, keep your feet out of the bottom of the line. You got your phone line, you're messing with your throttle. Make sure you keep your feet out of them. Any questions?  Two inch operators, you'll change the rigs during the ship. Rest your men, get your lines ready, down and all set for running. Anything else? All right, men, here she comes. Let's go. For every trip from the United States, the USS Vega comes loaded with hundreds of foods to keep those chow lines moving. 25 tons of bacon, almost two million eggs, more than 130,000 steaks, enough to keep the Constellation crew fed for more than six months. This is automation, electronic inventory control by computer. What makes this control room unusual is that it operates on a ship at sea, the USS Mars. The Navy calls it a combat store ship, but it's more like a supermarket. A thorough shopper could find refrigerated food, dry foods, all kinds of supplies, and a warehouse full of spare parts for almost anything the Navy uses in this part of the world. This is Captain H. Riley, Jr., commanding officer of the Mars. Mars handles ships alongside both sides, as do other replenishment ships. But Mars also has the H-46 Sea Knight helicopter, and this instrument allows Mars to replenish an entire task group at the same time. Normally the heavy will be alongside on the port side, receiving the normal underway replenishment. At the same time, these two helicopters carrying loads in excess of one and a half to two tons rapidly can replenish the entire screen, for instance, carry a task force. Destroyers not having to come off station to come alongside it off.  Well, there's not much, Joe, it's pretty, really, uh... No transplants at all. We've got about 60 pellets or more, and we've got about 20 left. Within the ballpark, about the same time for the Hornet as for a small voyage. That's an hour early enough for a flight boarder, so you want more. We will have two birds, and this way it will give you about 10 lifts per helo for approximately 30 minutes. Every single bird rip, uh, we all try to make our pickup smoother and better and make our drops quicker. Sometimes a long day of this flying can be rather tiring because of the concentration involved. The hook on the UH-46 is about 20-25 feet behind the pilot's seat, which is a long way back for you to be aware exactly where that hook is at all times. When you come in over a deck for a picker, you line up the spot in front of you and pass over it from then on the crewman, who is laying in the back by the hook, looking down through the hatch, directs you right or left. You also have a signal director on the deck usually who's giving you signs to tell the crewman we're going in for a pickup. He says, Roger, I have the deck in sight, and then he says, easy forward and down. And you come in and then he'll say, easy right, easy down, we have a hook up, up, up, easy right, up, easy back, mark, which means the weight's coming on, and then loads clear, you're clear to go. Helicopters can pass the bacon or the ammunition when the seas are too rough for a highline. The Navy is finding that it has developed its supply techniques so well that it must now look for ways to help ships stow the huge amounts of supplies they receive. Like the housewife who can buy almost everything she needs at a modern supermarket, a ship on the line can make one visit to the Mars and come away with enough food and supplies to last three weeks. When the tempo of operations demands round the clock schedules, supply ships play a variation on their theme, night replenishment. You put a 3,500 pound load under a helicopter.  And you get the weirdest sensations. It's akin to vertigo, I'd say. And I'd say that some of the hairiest flying that I've ever had to do is flying at night with a heavy load under me. That part of it is more excitement than I care for. The Navy has come a long way since the days of Mr. Roberts and the USS Reluctant. The newest trick in the service force bag of ships is one which will carry the beans, the bullets, and the black oil. Here at the Puget Sound Naval Shipyard, the third ship of a new type is readied for her launching day. Nearly twice the size of her older cousins, she will carry more fuel than any oiler and more ammunition than most ammunition ships, and groceries and clothing, office supplies and hardware too. But until there are enough of these seagoing shopping centers, most Navy ships will continue to pay regular visits to the oilers, ammunition ships, and provision ships. Many of these ships have been in service since World War II. The unsung ladies of the Pacific Fleet. For want of a nail, wrote Ben Franklin, the war was lost. The job of Service Group 3 in the Western Pacific is to make sure that the Navy's war in Vietnam is not lost for the want of even a case of ammunition. She adds nuclear ships to its fleet. It will slowly outgrow its thirst for black oil. But carrier jets will still need jet fuel and jets have big appetites. If automobile gasoline were being pumped through this hose, one minute's worth would take your car from New York to San Francisco ten times. Navy men will never outgrow their need for fresh vegetables and meat, and mail from home. Wherever in the world they stand their duty, the fleet that can deliver anything, anywhere, will find them.


So how many of you have used N-Linux before? A third of N-Linux? Okay, actually how many of you have not used N-Linux? How many of you have not used N-Linux? So my guide is easy, I mean. So, this is about me. So I work for Adequity. Adequity is a mobilized platform. It's actually a product of Prodigy.com, which was a search engine. Not anymore. So what we do is, we are a mobile ad aggregator. So we aggregate ads from a lot of ad networks and serve it to publishers. So in essence, we serve ads. So typically, the job is coming in, we have a lot of requests coming in. In terms of unlike, actually the request that we use, it might be that on the page. So it's a job to handle a lot of requests. So that typically might make sure that there is no... This is the basis. So it was started sometime around in 2002. So in 2001 we started, which was a request for Modproxy in Apache. And it wasn't serving his needs, so he started writing Modproxy. Then he found that it's, I mean, by nature built first aid. So he kind of... So that is when he started. Sometime around, I think somewhere late, somewhere 2002, he started. And around 2004, he had the initial drafts for the project. And by that time, he had started running it on Ramka.org. And he was a Russian search engine, pretty famous for Russian Russian. So he was right around it. So that's why he ran it close to running. So the main branch of NNX is to address the C-10K problem. So C-10K problem is basically to handle 10,000 concurrent requests. So it's a... The job of handling 10,000... So when I say 10,000 concurrent requests, it's being handled by a single box, not having a array of boxes and you handling 10,000 concurrent requests. So it was actually built to handle it. So it addresses C-10K problem. And that, it does very efficiently. There are quite a few... So there are quite a few open source, like tornadoes, people have heard of them. And then there is Cheroling, which is also getting a lot of momentum now. People have adopted it after Apaches actually said that I think 25% of the top 10,000... I mean, high-traffic websites use engineers. I'm not sure when that was collected. It should be more... Now, after 10 years, now our engineers has pointed to a company now. So the C-10K problem is, as I said, concurrent... So this, if you've used Apaches, how tough it is. It hardly scales, I don't know, a few hundreds. If you come in, if you could scale for a few hundreds, then you've done a really good job trying to make it work. So the reason being, it's IO. So IO is always a bottleneck. It might be a fire IO or it could be a network IO. So Apaches' model of using a threat for connection never scales for, I mean, let's say, very high-traffic websites. So sites like... A lot of other sites, I mean, started using it. The main reason is Apaches can't scale. So if you want to have it, you'll have to have an array of Apaches servers, which again is a lot. You'll have to use a lot of machines. How this engineering handles this is using the E-Pole mechanism. So selected E-Pole are ways to actually find which file descriptors are active. So select mechanism is slightly... It takes a lot of time to use it. Apaches uses it, a lot of other stuff uses it. E-Pole was started, I think, 2.4 kernel, I'm not sure. I think 2.6 does support E-Pole. So what essentially it has is select takes a match file descriptor as one of the arguments. And it has to run through all the file descriptors and see what is active at any point of time. And this is a lot of gas. So every time an event is active, it has to run through all of it to find which is active. What event and what is active. Whereas E-Pole takes in just which are the file descriptors you want to consider and takes in that. Now the advantages in select is you don't have to pass the file descriptors. In which case the memory requirement is slightly less. But it kind of outweighs the performance gain E-Pole gains. So that is how engineering actually scales better in terms of being fast and able to handle concurrent 10,000 connections. So small trivia, we at the moment handle roughly around 5k plus around 6k requests per second in a single box. And recently we moved to two boxes just to have a prevent single point of failure. So the URL which I mentioned is a very good resource for people who are interested in systems. I mean it's more like you need to read it if you are interested in finding out what are all things you need to know to scale in a system level. So these things are at a high level why engineering is preferred among people. So the main reason is the layer 7 load balancer. So actually when we started around 2008 we were looking for some load balancer then. We had options of LBS, it's called the next one. It did work out but the main problem was it was layer 4. So we couldn't do it, so you cannot load balancer the URL level. Let's say you want staff users to go to a different box and all the staff couldn't do it with LBS. Otherwise LBS is also a very good solution for load balancing at a layer 4 level which is at the TCC level. And it has the reverse proxy. So basically you can come in, so mod and scope proxy of Apache is kind of inbuilt into engineering. So since it was kind of, I mean it started with how they wanted engineering, it hasn't been built. Other one is embedded Perl interpreter. This is a very nifty feature if you want to do something, I mean something which engineering doesn't support with this. Usually it will support most of the things you want.  So in the use case, as I said, let's say you want to do something that you don't want to pass it to the application server to do it. Let's say it's a very trivial job but it's being done every time. So you want to, and it is very necessary before being sent to the load column server. Let's say for example there is a piece of text but you want to pass the text and see based on that and you want to do it. So yeah, so that kind of things you can write, I mean if you are familiar with Perl, you write a piece of Perl code, put it there, it does a just in time compilation and pass it there. Or you can have regixes, I mean let's say complex regixes, all the stuff you could have. So you are going to write, I mean is, that is just, I mean you are going to write is supported natively in engineering. So it's supported VCI. So Perl is like you can have proper Perl code. Let's say you want to have a particular module. Some, let's say you want to have the application itself. You have a backend of CGA, Perl CGA application.  So one example is let's say smart detection of user agents. So in R, I mean this is, it has actually a reason why I'm telling this is we have this case where we wanted to find out the device of work. I mean from the user agent we need to find the device. So and for some cases they say you want to find it whether it's an Opera Mini or not. These kind of stuff. So these kind of stuff you can do directly with Perl. I mean it's pretty simple. You can read the header, do it and based on that we can set a variable. And if the variable is set you can send it to a particular post or do a particular thing. So this is a very simple feature. And the other one is on the fly binary upgrade. This we often use when we have, when we do change, when we push to the next version, we do this. So the good thing is you don't have downtime. So what typically happens is you have an engineering's binary running and you send a USR2 signal. So when you send a USR2 signal to the master process, what it does is it creates a copy of the binary with the PID. It says PID dot the binary. And then you start executing the new binary which you have given to it. Now at this point of time both binaries will start accepting connections. Even the old binary and the new binary will start accepting the connections. Then you send a win signal. When you send a win signal to the old binary or an old master process, it will gracefully shut down all the worker process. So when I say gracefully shut down, it's basically whatever request which it's got until then are serviced. It stops accepting new connections and it shut down all worker process. And since it's shut down all the way, your new process is live and it goes with that. You almost have zero downtime. In other case, I'm not sure if there is anything like that. I think you can do it with some kind of shell scripting itself. But this is something which is built into NGX. The other one is concept changes. So let's say you want to change concept. In Apache, I think you have to restart it. If you do change in HTTP.con, you have to reset it. Whereas I think the ones which are in the document, I think it's dot rewrite or dot HTTP or something like that. It's got HTTP access. That, if you change it, I think you don't have to do anything. But the main HTTP.con, which is in the HTTP or other one, if you change it, you'll have to restart it. In which case, it has downtime. Even if you do a start and talk, it still has a minimum downtime. That is avoided here a lot. Especially when you're handing a lot of users and you want to see a very good experience for users. This one which we were telling is the PCRE support for rewriting URLs. So this PCRE module is built into the NGX. So any kind of regates match, you want to do it on the URL and rewrite it. You want to do internal rewrites. You can do it with this. And of course, to sum it up, it's super fast, lightweight. And the low memory footprint comes because of the ePoll mechanism. It doesn't follow the single connection per thread for every third connection kind of module. And it's like feature rich. Now, there is a saying which goes, which says, I think Apache does six things, but everything bad. But NGX does all these things. I mean, five things out of it, but does it way faster than that? Yeah, but it actually does it. So this is on the overview of the config. So the config is actually, it's a hierarchy model. So it has a HTTP scope, then it has a server scope, then it has a location scope and a upstream scope. So these are all the contexts actually. So HTTP scope is bad directives where you will put to have, I mean, things like number of worker processes you want to have or a number of connections you want to have. So this is for the whole engineering server which you're running, the installation you're running. The server context is used for virtual servers. Let's say you want to have to run a server on port 80, and you want to have a HTTPS and supported port, another one. Or you want to have an 8081 also for testing purpose. So you can have everything inside the same con and have, according to it, whatever conflicts you have. So everything which goes into the server block. So since it's a hierarchy module, so HTTP will have multiple servers, server will have multiple locations and location will have multiple upstreams. So it will all, I mean, the hierarchy followed by any directives which are applied at the HTTP will be inherited by the blocks inside. So yeah, so server block also can be used for handling things like, let's say, it's a web host.  So then what you do is you just have multiple server blocks and based on which domain is accessed, the server, there's a direct with one server at its own name. So based on which domain is accessed, it will go into that server block and things inside that is configured or used, executed accordingly. So location block is like, which defines what the URI should do. I mean, let's say it's a slash users. When it has slash users, what should it do? To which backend? You want to set some features and all the stuff, you could do that. So this is like the route in Node.js people have used. So it's typically like that. Just that application code doesn't come here, it just says what each one of them has to do. So if you want to do a REST API ping at all, you can set it up here and accordingly have different backends. It's very easy to do. The upstream block is the block which says which are the proxy servers. So it says A, B, C, D are the proxy servers and you put it in this one. So when you get a request, so in the location block, you'd say if it's a slash content, go to this upstream block. The upstream block is the name of the upstream block and inside that you'll have four servers. So it'll go to one of these four servers and you can define how to comment what mode we use to go to the servers. That I'll cover up in the next slide. So these are a few directives which are very important when you consider NGINX. So worker processes, so NGINX model is you have multiple processes. One is a master process which kind of receives all user signals if you want to pass it and then you have worker processes. So anything which is passed to the master is passed to the worker automatically. The worker process has to run as a root if you're running it on a standard port less than 1024. If it's a non-standard port, you can still run it as a non-standard port. So worker processes, you set the number of worker processes here. So you say worker underscore processes, let's say 96. So 96 processes will be spawned when you start NGINX. Worker connections on the other hand tells you how many connections you want to handle per process. Now these two settings actually are very important for you to know how many concurrent connections you can handle. So the number of concurrent connections which you can handle is it's a product of number of worker processes into the number of connections. So if you know if you can expect this is the kind of traffic I'm gonna have this time so you can set it accordingly. On the other hand you can also set it to a very large thing but since it's a number of processes it's going to consume a lot more memory. So every single process is going to consume some more memory. So if it went on a requirement basis you can change the config accordingly. Worker R limit no file is to set the number of file descriptors for the open sockets. If in Apache and all for that you'll have to do it at the OS level. I mean you'll have to write it in I think slash crop or somewhere to set the number of open descriptors. Just you can do it in the engineering transfer kits and do it. So worker R limit will be roughly be the same as product of worker process and worker connections. This is the number of open file descriptors at any point of time. So keep alive is a HTTP direct command. It's a header which is supported since I think HTTP 1.1. So it basically says don't close the connection in the client side. So because of this the client when I say client it's a browser. Typically it's a browser. So the browser actually holds the connection so that it can use it for another request within the same page or other. I think there is a browser constraint as to a domain you can have only two active requests, two active connections. So keep alive request on the server side. It says number of active connections it can have and the timeout it can set. So when you say 30 seconds. So these 100 connections will be held only for 30 seconds. The moment it passes 30 seconds it will start closing the connections. This is very important because let's say you want to in the case of ads which we do you want to actually show the ads as fast as possible. You don't want the user to wait. So in this case since the connections are already kept open it doesn't have to do a connect tagging. So this kind of saves a lot of time for the user to do. So it's only the read and write which will happen. It doesn't have to do so in Firebug if you do it will show you the connect time and then the read and then the write I mean response time how much time it took to make. So connect time will not be there if you do if you set the keep alive. Auto scale worker process I think there is no direct way to do it. There are other ways to do it actually. So it might not be that. So it depends. So you need to find out where your bottleneck is. So typically it will become that engine might not be the bottleneck at all. It might be that your back ends are bottleneck. So you have an array of application servers that might be blocking a lot of request. Engine might be pretty cool. I mean they'll be handing it very fast. So auto scale as such it's not there. But what which I'll cover in the next couple of slides is there are ways to find out how much time it takes to respond to a request. So you could of course write a kind of shell script or something like that to find if there is anything like that. It takes the latency is high. You can do automatic conflict change and do a rainbow. So it's all these can be scripted scripted. So that way. Yeah, it's the same. So since the conflicts can be... It doesn't require a restart at all.  Hop is a hang up signal. We pass it to the master process. Read the new conflict. If the conflict, let's say you have a syntax error or the conflict is wrong. It will not load the conflict at all. It will use the old conflict. So it's like, I mean you can do whatever kind of auto scaling you want. In fact, I think probably think this same kind of mechanisms which Amazon's auto scaling is. I mean, it's typical kind of things where it automatically changes one and have more units. Well, it depends on the problem which you are addressing. I mean, the kind of request if you are on the cloud and if you have, let's say, ability to add servers automatically. Or if you have, let's say, a lot of resources in the system which could be used. You could definitely use it. This usually kind of changes when you have a lot of static content to be changed. So only then this will be used. Otherwise, I haven't seen, I mean, auto scaling, they haven't done. We kind of do it. We check it once in a few days. See if there is a problem. Typically it doesn't happen that way. Kind of scales. At one point you'll see that there are a lot of things. Then you go and check where the problem is. And you find it and you kind of change it. If it is 96, you make it 120 years. So it kind of scales for the next few billion requests. That kind of thing. Personally, I haven't done auto scaling with this thing. But though we do something else where we kind of change the weightages to each of our backends automatically. So based on, it's a very dumb way to do it. But that was the thing which we could do it with a short amount of time. What we did was we kind of go check the resources on each of these backends, collect data based on what is the load on these kind of servers. We kind of change the weightages here so that the other one gets it. It's a poor man's fair balance. So this is the upstream block which is the upstream block. So this is how you configure upstream block. You say upstream. The backend there. It's the name of the upstream. And then you say server, and you give the ITs or the domains of whichever host you want to have. So here in the example, I've given four hosts. So if you see, so you can have hosts running on whatever port you want. So when you say main port three, so let's say you have six requests. The first request will be sent to the first server. Second, the next three requests will be sent to the third server. So it's a weighted RR, weighted roundup. And the last one says max fails three and fail time mode ten seconds. So this config, it supports this kind of config also where you can say the maximum number of failures a particular backend can take. So when I say failure, it is actually defined by a property called proxy next upstream, which says what a failure is. A failure could be an error or a failure could be a time mode or it could be a particular error code, HTTP error code from your backend. It could be something like a find out tool, get me timed out. So generally let's say I find out, let's say they have changed something and you're getting an internal server error. Any of these could be configured there and that will be taken as a failure. And here what it means is it says it can take maximum three failures within ten seconds. So within ten seconds, you have three failures for this server. Then what will happen is this server will be made in operator. So it will not send any more requests to it. So automatically it starts using only the top thing where there are no, you can set the same all of the servers to. So here there is also this one thing called keep alive and a number. So here what it says is the number of live connections you want to maintain with your backend. This also helps, wherein you don't have to make a connection to your backend. So this was supported only recently. I think 1.1.4, which is like a year ago. Now it's like 1.2 or something to work with. This was supported very easily and this we've been using it and we found that this has a lot of benefit in our kind of setup. Yeah. It will actually re-initialize the counter. So it re-initializes the counter. So ten seconds the time won't. So you get three, let's say you have a burst of three requests and all three fails. It will make it inoperative. So it will wait for the ten seconds to elapse. After that it will actually re-initialize the counter. So then it makes it. So within ten seconds you shouldn't have three failures at once. So keep alive is just like the keep alive which I mentioned sometime back. This keep alive is for maintaining the keep alive request with the clients, which is typically the browsers, the users. This keep alive is to maintain it with the backend. So Nginx keeps a keep alive with your backend server. So your backend could be something like an Apache server or it could be a Rails or a Python or anything. It could be. So it keeps a live connection. So which means that it doesn't, you get a request and you want to send it to a backend server. It doesn't have to do a connect again. So there is already a connection alive. It will send it through that. So it saves a little bit of time. So here it says, maintain 2048 live connections with the backend servers. Somebody make a connection to do that. Yeah, so this is more connection. Do the pooling of the connections. Reuse the same connections for the next request. So and yeah, so you set up the upstream block here like that and then you say in the server block you say location when you have a slash let's say wwwabc.com. So the slash, so I'll, so this location block actually tells which, this is like the which URI, URI which you have got. So it will match this and it will say it says, pass this request to the backend. Backend is the name of the upstream which you have set. And it goes into here and then it uses one of the models whichever you set. So which is here it's a weighted file where this one will get slightly three times more than the other ones. Yeah, so here in this case since I haven't put any match fails, even if it fails it will keep still set the secret request. So that's why you have to put match underscore fails. If you put that it knows that there is a failure there so it will stop, it will make it inoperative. Yeah, it will, it will make it inoperative. Basically it's like commenting out this. So it's like commenting out. So bring it back when the time is elapsed. So the 10 seconds is elapsed, it will make it actually initialize the variables again and it starts again. Again if you get it three to come in when you see it again make it. So there is also another directory which I will put it in the slide where you can hard port a particular server as down. So when you say server a.d.c something like that say it down which means that that server is down. So it will never send it across. Like commenting out but you write it down. So this is used when you want to do some kind of automatic configuration changes. So let's say you know that I mean you have some kind of heartbeat mechanism separate and you kind of ping each of the upstream servers and you get responses and based on that you know that something is down. Go ahead, chain the conflict automatically saying this is down. There's also another one which says two servers and you can give it and say backup. So the backup servers are used only when these are not active. All of these active. Otherwise it is always there. So in the other case what happens if you put all the servers here all of them will be used no matter what. So it is kind of bad and you want to do easy to run out. So it will be built for the iOS by sending to it even though the other three servers can just handle it I mean easily. So you kind of say the servers here and then you say it as backup it will never be used until all three are famous. So this is the name of the backup which is where to pass your connection to which is this. You can only put a name. Responses. There are four servers. Say there are 50 servers. Yeah. Yeah. And say it will work automatically. Yeah so that it can be so you have this include mechanisms where you don't have to have the whole config in a single file. So inside this on this you can put a include a.con inside that you can have only the single file. So inside this on this you can put a include a.con inside that you can have only the server for the name I mean the items. So there is no direct way of doing it. But it's the config supports variables that are used to do which one of them is like down. Then other one less let's say you do max fails itself of one and a phase time out of let's say one request per second. What happens let's say you start a server or you don't have the server. You've shut down the server. So it will since it's max fails one it stops sending any request to you don't have a problem at all. So it only the other ones will be used. The moment you switch it on it will send it on one more and it will know that it's active and it starts it. So wait is the so the difficult way to do is the round robin which is try this one the next request comes and it goes in here if you don't have the made it goes in like this. So the first request will again go to this one. The weighted round robin is you're giving weightage to it. So let's say a particular you have heterogeneous set of machines one server let's say has multiple and a lot of requests. So then what you do is you set the weightage 3 which means that for every let's say first request comes second request comes then the next 3 requests will be sent to the server because it can handle more. Yeah. So earlier I said you can change anything you want at runtime in the conflict and send a hub signal hub hub is a hang up signal to the master process and reload the con. So there is no it's a master it will be running or it will also say master. There is a PID so PID file will be created whenever you start an engine X that also you can it's actually set in the conflict what is the PID filename you want so you can just say kill hub cat that PID file in tic-pactics that will also put a new conflict here. So you have log levels you can set it in 4 debug and everything if you go to the log you can say that either if the conflict is wrong it will say the conflict phase to reload and it's using the conflict to say that I've received a hub signal and I've reloaded the new one. So this round-robin versus a farm balancer so not always does round-robin actually work so the problem being it kind of sends a request to every other backend always it keeps round-robin I mean doing a round-robin but sometimes it might be that one of your backend servers you do some request that's a DB bottleneck it's doing a lot of connections it keeps queuing up the connections to it it will not wait I mean it will take the connection and it's going to do it queuing it up now this is bad because a set of users will see that it's always I mean it's taking a long time and Nginx is not helping much so there is a third-party module available Nginx I mean there is not yet available natively if you compile the third-party module with Nginx you have this thing called fair where fair actually says now when you put fair the server knows the number of requests each of these is taken so the next request is given to the least busy bucket so if 1.2 is got let's say 5 requests and it's still processing them and 1.3 let's say it's got only 2 requests so it gives it to 1.3 instead of giving it to 1.2 again in the round-robin method it will be like every single time it will be like doing a round-robin of these it kind of maintains a each one is got and how many I mean whether the connections are closed number of requests are the responses are got it doesn't show a file there is a way to find it out I'll tell you there is also another thing here which says no round-robin the no round-robin is like so in the normal way to do it is when you say fair it kind of goes to the next least busy server when you say no round-robin let's say the same I mean has finished processing the request it will take it out again so we can kind of send it to the same server and so you kind of know what level your backend can scale so you can know what is the total number of concurrent connection of particular backend with scale so this is proxy next upstream which which is talking in the failure failure underscore time zone max fails so when you say max fails here the failure is defined by this the failure basically says your error so error here means it could be anything error it could be something like a final error or final 2 final 4 whatever you have it could also be just a time-out particular so it can take things like error or just say time-out or invalid header let's say the backend responds with an invalid HTTP header then also you can say that's a failure error code HTTP underscore final 4 so only for final 4 it is considered failure no it doesn't include I just so just to emulate this you put error so it's like it supports all of this have 10 more minutes okay I have lot more slides I'll just run it through so add header is to add header to the response so when you want to send a response to the client and this so what you could do is you just say X some X who is the who which backend it is and send that IP and send so based on that you kind of get to know which backend actually serve this response and cache control can be done directly from NGX the proxy set header we really don't know so this cache control so you can have this you have this CPV or something like that I never use cache control as is like always dynamic what we do use add header is for debugging purpose to know which backend it is so basically it's nothing it can take any header and any value so this is the header name and this is the value it is added to any proxy set header the proxy set header actually is used to send a request header to the proxy this feature is I mean we use it a lot because let's say you want to enable a particular feature in one of the backend this can be used for let's say you are developing on an experimental feature in your backend and you want to do it only for the you want some live traffic to see how it kind of behaves so what instead of going and changing the config there and enabling in the backend in your application server you write a kind of code where if you read headers headers are cheap to read because you're not reading the body of the request and you say if this header is set or if this header has this value then I could execute this feature for so you can set the headers in the engine itself so you have multiple backends you want to do this at one point in your engine you said you said this proxy set header so in this example I have this proxy set header X I mean you have a feature full and you set it to one this header can be read by your application servers and if it is set to one you execute a piece of code if not you don't execute it so you can change it you can toggle the flag in engine X and based on that you can kind of see the behavior of your experimental line graph this is another good thing general case I don't know a lot of people might not use this so the thing is if you want to draw beacons the beacons are to know in the HTTP world to know if there's an event happening to another third party server the easiest way is to send an image tag so in the image tag you say image src equal to something now if that is being called it means that a particular event is under now this src thing that you use is a big resource and it should not be a 404 with a 404 it's a bad kind of design so for that what we do is we draw a one by one pixel so this is supported by natively by engineers so it has a from the memory it kind of serves a transparent gif when you say you have a request saying abc.com slash beacon and you put empty gif this pixel will be kind of served it doesn't get terminated it serves a it's a response ascent the only thing is and the other way you would have done is you would have had a file in the file system when you would have read it you should have configured to a small size should read it this is in the logs you have it in the logs so you have in the logs saying slash beacon from so and so so when you do crunching of your logs you get to know what events and what actions can be called by which this is one more feature which is used to set to trot to the number of request set per zone so this is when we use it a lot during our search times we had a lot of bots crawling in our search engine that time to mitigate the DOS attacks what we do is we do this we said limit request zone and you set binary mode address and then you say zone name this is 10 m s s so much memory and you say the rate it says one request per second so it can take a maximum zone name so you can configure multiple zones according to whichever blocks you want and say what is the zone name and accordingly trot to the request so anything above let's say you get two requests per second it will do a delay it will not do it the burst is actually let's say you get four requests at any point you set up burst level then let's say you get four requests per second for all these four requests it will delay anything above some unavailable error code this is another config which actually tells you what is the concurrency limit the other one tells just the request but here it says concurrency at any point of time let's say a particular domain can handle let's say it can have one connection at a time so some kind of watch what it will do is it will just pawn threads from somewhere and it will try to print down a server getting videos also you say the binary remote address whatever it is and then you say limit connection one which means that it will allow per host only one connection at any point of time only after the connection is closed it will allow another connection yeah so the IP block that is a separate thing I mean it's nothing to it you are talking about IP block so there you can set there is something called deny and allow so in deny you can set up let's say you know that these IPs are some kind of bots you can put it on a list and you can keep up waiting there is a deny and d6 set up you could do that you can put this in a particular block and say a deny block then there is this this is one sometimes back someone is asking this sub status so sub status actually tells at any point of time what is the status of when it works so say you've done location ng-stat take sub status on and if you access ng-stat on your so here you can actually put allow a particular IP let's say you are local in your office IP or something like that in your production IP so that only from that IP you can access this location so when you access this location it will tell you number of active connections number of total connections handled after it started in this case it's around 1.6 16 million actually and the total number of business so at any point of time it will also say what is right now number of in the right state in the right state and in the waiting state so you keep refreshing it you get to know what it is that's so you can actually kind of have a script which can take data in peak times every 5 minutes and you can have a graph plotted to find out what is another one is the map directive the map directive is just like I mean it's like the hash map concept where you say map these are inbuilt variables and you say new is another variable so here you say basically you are right if it is slash aa then I want new to be set to aa.domain.to and bb if it is slash bb and so and so but in the default it's like a switch case you do all of this and you say default if none of this is there default is this now in the server block you can say rewrite dollar new I mean this is it's a so when it it will get redirected to the actually there should be a space here so this is very helpful if you want to have let's say domain parking and all that stuff this is another very recently used I mean release feature called split clients this is used for A B designs let's say you want to test different colors or designs to a particular set of users you say a split guy and you can use that can be hashed they're cooking or remote so these are all inbuilt variables so remote and inbuilt will be replaced by the IP here and you can say 0.5% of the request will go to dot menu it will be set as dot 1 and 2% is dot 2 here you say index index dollar variant which means that 0.5% it will be replaced with index.1.html so that 1.html might have different CSS or anything and you want to know what kind of perception people have then sub filter is another filter it's a directive to let's say you want to change something in the response and you've got a response and you want let's say copyright is there and you know that this is a useful thing where people don't update so you want to change it before going here and changing every different file what you can do is you can write a request in sub filter make it always whatever all responses anything that you go will be scanned through this and it will be changed and sent across error pages just like Apache custom error pages can be handled you can set whatever you want to do let's say I would make it whatever then there are this I'm not covering these these are very important characters if set and rewrite if it supports if condition so any variable you can check if it supports one year and you can do a set set is like assigning a key value value to a variable and rewrite is for internal rewrite and you want to do a redirect based on electrics and there are built-in variables dollar r underscore parameter let's say you have slash uses and id control 243 and now if you want to read this parameter and according to something what you do is the engine is then according to any kind of same way HTTP any HTTP headers it can be all underscores will be replaced by hyphens all hyphens will be replaced by underscores and these are the variables which I was talking about so this and this are very important to know what is happening so you can use dollar request time which actually tells you end to end time of how much the amount of time is taken then upstream response time is to find out what stream you are taking so with your upstream server address also long you can kind of get statistics which upstream server is taking there are other lot of modules XSLDE and these are all inbuilt modules so some problems are this you don't have like Apache where you can load a module then the documentation is bad now it's good since it started with the question thing it is always a bit of bad documentation there is a very good community IRC there are people who have answered all your questions sometimes we don't even do a Google we go ask IRC they kind of answer so to the point it's like pretty