Welcome once again to the breakfast here on Plastiv Africa. Now let's go to off the press and have a review of the stories making headlines across the country this morning. We're starting with the daily independent newspapers. I expect that should be on your screen in a few seconds. Yes. It says, Banks fear Enyra may erode profitability. Platulou Cook government polls, APC clears all chairmanship and councilorship positions. Also, 1999 constitution is a glorified death certificate says Bakari. TDB reunites with associates as Song Wulu host APC leader. It says, I return hail and hearty and well, and that's from the ex-governor. Autumn not responsible for insecurity says a middle-bound forum. And Petroleum Tanker drivers suspend planned nationwide strike. 2023 presidency, Ushimba Joe on a coalition cause with Tinubu pushes to succeed Bakari. We can also find on the daily independent 308 billion Naira presidency, National Assembly budgets, Dwarf Ministry of Powers, 301 billion Naira. Zoning PDP national chairmanship position, leaving presidency open risky says Bode George. Now let's move away from the daily independence of what we can find on the punch. It says here, why federal government can't remove fuel subsidy now? That's from NNPC marketers and experts. It will be disastrous to remove subsidy without refineries working, Ipman says. And subsidy now political matter, all Nigerians shoulder in it, says ex-LCCI DG. No provision in 2022 budget, but petrol subsidy continues, declares NNPC. Budget finance power projects get lion's share of 1.16 trillion Naira loans. And also federal government to spend 44.64 billion Naira on military equipment, arms and ammunition. S.A.N. Wright Malami threatened suit over Nigeria's 62 billion dollars with oil firms. Change of guard imminent in 2021, throw away 1999 constitution says Bakari. Still on the news, or still on the punch rather, presidency, Doc Pessie backs north. Tinibu says restructuring a must. Special salary, paying education students unsustainable, and it's a Greek gift, says the NPTA. Students merciless beating, choir orders Arabic school, Arabic school heads suspension raises panel. We can also find here NDLA raids Legos or your drug joints and others arrest 110 dealers. Man arrested for allegedly defiling 13-year-old neighbor's daughter as wife goes for vigil. Those are the big ones on the punch this morning. And now let's see what the leadership newswapers has. It says here each Nigerian owes foreign creditors 64,684 Naira. Puts Nigeria in the right direction. Bakari tells President Mohammed Buhari. And also only God can give and take life. That's from former Lagos State Governor Abul Ahmed Tinibu. Nigerians kick as federal government approves genetically modified maze. And I think that's all we can share on the leadership this morning. Finally on the daily trust this morning. Benwe, Borno IDPs sacked by insecurity, fleeced by aid workers. How sharp practices worsen matters. Officials deny neglect charge. Female IDPs survive through prostitution in Borno. And it says here we've built 10,000 houses for them. Two years after, federal government loses 24 billion Naira to land border closure in Ogun. This is not the time to break up Nigeria. Says the Vice President of Shimbaju. Electoral Bill, Senate Rep Committee to meet this week for harmonization. And I think a few others. Pandora Papers, Al-Bishabaidi, poor setup company for wife and kids in tax haven. Despite release claim, Niger monarchs still missing one month after. And finally 2022 federal government votes 650 million Naira from Mambila Power Project. I'm going to start this morning and say good morning to our guest, Mr. Mark Adebayo. Thanks for joining us, sir. Thank you so much for having me. Good morning viewers. Thanks for joining us. I want us to start with the story on the top right, top left corner of the daily independent. It says 308 billion Naira, presidency and national assembly budgets, dwarfs a ministry of powers 301 billion Naira. Let's start with your thoughts on that one. Thank you so much. Succesive governments in this country have always misplaced priorities when it comes to the annual issue of budgeting. Where the government do not see a reason to fund the critical sectors that affect the lives of Nigerians positively. I think power issue is a major challenge in this country. You should get the priority attention of government, but we are not seeing that in this budget. As I'm talking to you now, there is no power here. I have to be using alternative sources of power. Abu Dhabi's power situation is always very terrible from inception. That's why if you look at the budget of the field of government, you see billions of Naira every year being budgeted for generators. And it is a shame that we are having that. I believe that power should have gotten more rather than the other fight for those expeditions which we are having in this budget. For instance, the field of government is budgeted 26 billion Naira for travels and feeding of the presidency alone. Who does that? And then in this heavily indebted economy, now you have budgeted 26 billion for yourself for feeding and travels. We keep misplacing our priorities. It's not only this government is guilty of that. Even the government before it. Only that this one is not guilty. That is the problem we are having. How can you budget 26 billion for feeding and travels? And look at how much you are budgeting for power. It is almost sinful. That's a misplacement of priority. If you look at the total budget breakdown, we are having a budget of 16.39 trillion. And if you look at the allocations, maybe education is faring better this year. For next year, but I believe education still deserves more than it's got this year. And I'm not saying that because look at the financing. You are going to finance this budget by 3.61 trillion Naira. Financing of debt, debt servicing, you know? You are getting that much. So it's a situation where you are in this type of depression. Economic depression in Nigeria is what you need to do is to face the critical sectors. Like education, like defence, because we are having insecurity, infrastructure, health. These are the areas that you take priority attention on. You take human rights percentage of the budget, but we are not having that. Alright, I'm going to say good morning also to Tunde Kola Wale. Thanks for joining us. Mr. Kola Wale, can you hear us? Yeah, good morning. Very well, thanks for joining us. I want to get your thoughts also on the daily independent. It says here, 1999 constitution is a glorified death certificate. And that's from Tunde Bakari. Let's get your views on that one. Can you hear us clearly, Mr. Kola Wale? Tunde Kola Wale, good morning. Alright, I want you to react to the story from Tunde Bakari on the daily independent. Alright, we're going to have to reconnect with Tunde Kola Wale. Mr. Adebayo, can you hear us? You loud and clear. Alright, so let's get your view on that one. It says 1999 constitution glorified death certificate. And that's from Tunde Bakari. Well, in 1999 constitution of the Federal Republic of Nigeria as amended is actually a death sentence of this country. I've been issued from the very beginning, it was never meant to sustain this country. It is a non-sustainable constitution being administered on the un-sustainable structures. Because the constitution defines the structures of the country. And the correct structure as we have is unitarized federalism. It's just a glorified federalism. We are not operating the federal system actually. So the 1999 constitution is a death sentence of the country. It is moribund. It is un-sustainable. We must keep Nigeria safe. We must save Nigeria from primary short death. We need to revisit, review the constitution of the Federal Republic of Nigeria, 1999 as amended, to ensure true federalism, to ensure true federalism. We cannot have, in a country of over 200 million people with kind of that capacity that we have, we cannot have a unitary system of government. And that is what we are having now. It is not sustainable. We have to go back to that constitution. If we must silence the people that are agitating for secession, we need to revisit the 1999 constitution by allowing the country to purchase true federalism. We need to go back to what used to work for us, which is regional government. That is what I believe that the socio-political zones must be able to exercise independence in terms of governance in many areas. We should just leave constant the first international global message to the federal government. Let these regions determine their own fate by themselves. Economic fate, their social fate, their political fate by themselves. We cannot have one person sitting in Abuja and dictating to everybody around the country. It is not going to work. So the 1999 constitution is an abattoir that we must throw away and give us a living constitution. I agree to that statement, that we have to review the 1999 constitution to make this country work. It is not working. The 1999 constitution is not working. It is not working for this country. We need to do something. We need to think out with it. I am going to try it once again. Can you hear us? Yes, I am hearing you. Good morning. Good morning once again. Let's move away from the constitution now. There seems to be, on the daily independent, one story that is having different angles. It says here, Tinuble reunites with associates as Song Wulu host APC leader. And at the same time on the daily independent, it says 2023 presidency, a Shimbajo on collision course with Tinuble pushes to succeed Buhari. What are your views? And you know, is it likely that this is just clickbait? What? Those are two very important questions, so rather than them, if I have my way, I wouldn't be commenting on such, on a large polar metinuble. In my own Bulu opinion, I sympathize with him, with respect to some of the health challenges that he has had, they are very, very difficult. But when we are talking in terms of presidency, that is the person who will be succeeding, General Muhammad Buhari. I am not sure. I am sure he is a fit and proper person to succeed in for so many reasons. He is not on his side, just like Dr. Bani Rea said, anybody above the age of 60 shouldn't be shadowing the responsibility of the presidency of the Federal Republic of Nigeria in 2023. We have enormous challenges in our hands. We therefore need a very agile person who can move around, who can shake things off, who has the wealth without to be able to find out themselves with something. Take for example, look at what the marathon is doing in France. Wherever there is a problem, wherever there are challenges, you find the president Macron hoping to run the places in his chopper without tension to talk to people and to make sure that the country's pilots are right. We should see back to him. I am also not sure that we have the credentials to become the president of the Federal Republic of Nigeria for also a few reasons. One, when you read the Nigerian constitution, the economy of the country is putting the hands of the vice president. And General Muranadev, who already has also come out to say, look, he gave that portfolio to Professor Yemio Shibaga. If you look at what the performance of the economy is doing, it means that Yemio Shibaga has said, hopefully, it is suddenly the responsibility of money to the economy and the economy is in this kind of factor. Then what is likely to be the performance, even if it comes especially from the Federal Republic of Nigeria. But then more, I see a lot of people praising him. His past story is entirely gays and lurid, so a lot of things are ignored. But you see, the system, I mean, show me your friends and I will speak to you all. Yemio Shibaga is able to operate this new play and this play in the midst of the people who have perfected hypocrisy and legitimized it. That means he himself may not be as clean or as fattened as people are pretending or are presenting as he is. For God's sake, these two people, he says to Nigeria, he's targeting of what we are witnessing under the APC and the General Mohammad Wali regime. He also appeals not to be politically speech, but to many conservatives too. It regards to issues of corruption. Just look at the health system in London today. The report in the paper today is that that property where he went to recuperate, where people have been visiting, was bought with lots of money. Was bought with lots of money. Even though the pensioner said it's 20 for him or bought the house for him, he signed it tonight. But the Pandora paper, which International Journalists investigated and came up with, just like the one they did before, had little life. Even the journalists are not thorough with some of the interpretations. You can't say that it's too polyjournalist. A consortium of journalists from different parts of the country, some of the best in their trade, came up with that very raging indictment. Mr. Kola Wali, can you hear me? Mr. Kola Wali. So that is the identity we should be talking about to people's prejudices. All right. I'm going to bring in Mark Adebayo on the same discussion. But I want you to take it from the angle of Southwest politics. And if this really is just a newspaper trying to create chaos here and there. What are your thoughts and how do you expect this to play out with regards to the struggle for power around the Southwest politicians? Thank you so much. It's a real struggle, a real struggle for power. I want to think, personally I would have loved to see Anashivadu, which is per degree, like he did in 2015, and like has been doing in Lagos. He has nominated some young, vibrant person to become Nigeria's next president. It will further enhance his political credibility as a statesman in this country. It will have been better for him to do that. But having said that, he has the constitutional right to contest for the presidency of Nigeria. His biggest undoing is not even himself. He has a couple of baggages like the lawyer mentioned. But if General Muhammad Uguwari, at his age, had performed as a president and given Nigerians the kind of leadership he promised in 2015. Nobody will be talking about the issue of age. The age consideration will not come to the leadership very well of Nigeria if General Muhammad Uguwari had performed well. But this is a president who has performed less than 10%. So people believe his age, but have you not believed his age? I mean, it's about the same age as the president of the US. So it's not about age. Everything General Muhammad Uguwari has been doing is intentional. Whether in the area of open gracing, whether in the area of tracing gracing routes or enabling Mietyala and all those things. They are intentional. So it's not age. The president, what is happening is a question of competence. And on the issue of Professor Oshiba Uguwari, the issue is that I do not believe that Professor Oshiba Uguwari has the kind of free hand that people think he has. I don't think so. I don't think he has the free hand to do. To even run the economy the way he should. He has the boss. He has to clear things. Even at times we are hearing that he has to clear things with the presidential staff and the secretary to the government of the federation. It is as bad as that. So I do not think we should blame him for that. But I want to believe. I want to believe that Nigerians would prefer a new face as president of Nigeria. A new face. Let me call it a political phagin. As the next president of Nigeria. A young, vibrant, educated Nigerian to become the next president of Nigeria. That is what we are going to do long. We should swing now. I don't think the political group are players. Mr. Oshiba Uguwari, what do you think about the possibilities of a clash between these two persons and factions that might be pitching tents either with Bola Mettinibo or with Oshiba Uguwari?   So what do you think is likely of that clash? Now, there will be, there's something that Tefela called a run for offer fight. We have been hearing of this since last year that there's a major clash of interests between the first president and his political godfather, Oshiba Uguwari Mettinibo. I do not think this will work well for the Southwest. If these two titans clash, it's not going to work, you know, in the interest of the Southwest. The earlier they settled this, the better. Nobody should wear the under one finger. Both of them have presidential ambitions. The VP has presidential ambitions. Bola Mettinibo has presidential ambitions. It's not a hidden agenda. It has been on the front burner for a long time now. And we are here since last year, we have been hearing there are, you know, there are some clashes of interest and we see, you can see that there are moves, there have been moves across the country by both, by both political figures in the area of Etonio Interi presidential race. So definitely there will be, when it comes to power play, there will be clashes, there will be clashes. How it pass out later, only God will know. But if the presidency should, and that is going to be the game changer, wherever the presidency goes, whoever the presidency supports, it's going to be the game changer in this, in this matter, in these calculations. All right, we'll see. What we know is that both of them have enough baggages that can disqualify them from the presidency. And they are going to bring out the worst of themselves when the fight commences for real. It's not going to... We'll see how it turns out. To Nicola, will you, are you still with us? Yeah, I'm here. Okay, so now let's move to Barno's state. It's a story on the daily trust that I found very interesting. It says he has sacked by insecurity, fleeced by aid workers, and it's talking about how sharp practices have worsened the situations of persons in IDP camps. It says also that female IDPs survive through prostitution in Barno, while the government is claiming that they've built them 10,000 houses. Share your thoughts on that one. What is the tragedy in the first time that the people who are within their own country become internally displaced persons? But before I address that, let me quickly make a little comment on what my colleagues over there have said about age not being a factor. I disagree with him that age is a factor and countries where age has no issues are those countries that are very strong in positions where governance is almost autopilot. Would anybody as a president of America, no matter what the age is, since the age is, if the remainsment is copper, but if this is green capacity, this is green tax, he will be able to rule America conveniently and effectively. But here, institutions are not functioning, they are not working. If you put somebody who is not on top of his game, who cannot do things himself, he is likely to be a colossal failure. With the clashes of these two people, I agree with him that it is the president Muhammad Buhari, a game of the day that is going to be the game changer. So be that as it may, let's go to the IDP. The IDP is an unfortunate thing, just like I said, people getting to stay in their own country almost 10 years to come with a position in their own country is not tidy enough. And then more importantly, we are not making provisions for these people to be able to meet efficient life. Look at the budget that I got and present it to the National Assembly. How much have you seen the other person, for the IDP, compared to what has been budgeted for the National Assembly, compared to what has been budgeted for troubles and other evidences in the presidency? So I wouldn't, if you also add to it the challenge of corruption, that we see, or which is manifested in places like prison, and which sums of money I am at for the freedom of the image. But those images, they have to feed themselves. You could expect that the same thing is happening to the IDP. Besides the paranoid cabinet, who in my humble opinion appears to be sincere, appears to be hard-working, appears to be showing their role of impact, so they may rescue people from the dilemma, or from this quagmire they have planned themselves. I haven't seen much for many other, or from the federal government, to see the challenges that the IDPs are facing. So if the women are not into prostitution, to be able to feed themselves, if they are also like we have had in some quarters, even selling their children, to be able to raise money to keep those bodies together, some are also into selling of drugs and water. Some are also becoming common, or the insurgents for the bandit, some are also going on us in some of those IDP centers simply because we have refused to meet proper provisions for the upkeep. Not too long ago, you remember, money that should have been made to take care of IDPs. Millions of Naira were set to have been used to cross grass in the IDP camp. Not too long ago too, the Nigerian airport had mistakenly bombed an IDP camp. Up to now, we haven't had much to see. That was the concentration. And then the inquiry that was committed, where that error came from in some other countries of the world, very high-power panel was set up and a proper sanction and the remedies were put in place to ensure that there's not happening again. But because we didn't investigate this person, few other ones have happened in there. The government should set up the Nigerian people, the philanthropists who will also come forward to support especially the governor of Boronosa to ensure that we alleviate the problems of these IDP people. IDP people. It's a nice thought that people will become internalized state parties within their own country in their own fatherland. Because of an emergency, because of religious war, that is just inflicted by our cautionary and irresponsible. I think we lost to Nukola already. Marca de Barrio, can you still hear us? Yeah, I'm hearing you. Let's get you to speak on something on the punch this morning. It says, why federal government can't remove full subsidy now and then PC marketers and experts are saying, and it goes on to say it will be disastrous to remove subsidy without refineries working. It's a big man. Subsidy now a political matter or Nigerians shoulder in it and also no provision in 2022 budget but petrol subsidy continues declares the NNPC. Share your thoughts on that one. Let me start from the last one. The NNPC says there's no provision for subsidy in the 2022 budget, but says that subsidy will continue. I don't know the kind of magic they're going to perform to bring that to bear. The Nigerian subsidy subsidizes oil to the tune of 150 billion naira per month. And that is 1.83 million naira annually. We are told that the landing cost of petroleum in this country is 256 naira. We buy for 162 now, which means that the government subsidizes to the tune of 94 naira per liter. Okay. One of the biggest frauds, a letter of fraud committed by President Buwari was to tell us in 2015 that there was nothing like first subsidy in the country. But for the past six years, it has been running a regime of subsidies. Whatever we have, my own media concern is that nobody should even think of removing any subsidy because Nigerians are already over oppressed, over depressed in terms of the economy of the country. Food prices are skyrocketed by a minimum of 400 percent. So you cannot over, you cannot be already overboding. So you cannot put any other burden on Nigerian masses. So we have to find a way to continue subsidizing the full consumption of Nigerians. So the fact that everybody says they will continue to subsidize is a good tidings. I think they should just continue to subsidize no matter what happens. If the presidency can allocate 26 billion for feeding for two families, they should be able to continue to subsidize the full consumption of Nigerians. But because we are about to wrap up I want you to help us understand this. If there is no provision for it in the budget where does the money come from to continue to pay subsidy? That was why I said I do not know the magic that NNPC is going to perform. No, but doesn't that mean that there is there are some sharp practices here and there and some auditing that needs or proper auditing that needs to be done with what really is going on with Nigeria's money? Which means that the president was right when he said in 2015 that nobody was subsidizing anything. Maybe now they have woken them to spend the coffee. Maybe we are not going to see the reality of that subsidy is a fraud and even if you remove it if you don't put it in the budget we can see continue to buy fuel at 162 Naira. It means that something is fishy somewhere. You say you are not putting the subsidy in the budget but NNPC is coming out to say that we would continue to subsidize even if the subsidy is not in the budget. I agree with Deepman that it would be disastrous for anybody to think of increasing the fuel prices again in this country. Look at what we are passing through in terms of electricity tariff. So if anybody increases so if they say they are not going to increase it and it is not in the budget it shows that the subsidy regime has been an abracadabra all this while and they have an abracadabra in the response to it to make us continue to buy fuel at the current rate without it being in the budget. So somebody, if it happens there will be queries. There will be investigations. People have questions to answer. That is going to be the president of Nigeria in the Petroleum Minister. So he has questions to answer and so he has to we will have to tell us where have all the subsidies been going to we need to interrogate that issue. It will be interrogated and that is what I think. But the most important thing is that for me is that nobody should think of increasing the fuel price of fuel products. Nobody should think about that. It should not come at all. It is going to lead to a cataclysmic response from Nigeria.  Same thing with diesel. The same with kerosene that used to be that used to be the cheapest among the petroleum products. I don't know but I think one litre of kerosene is around 250 to 60. One litre of kerosene. That is supposed to be a circle for the masses. It is costlier than PMS is costlier than this is unfortunate. How do you even defend that? That was one area that late president Yara Dua did very well. He reduced the cost of PMS and made sure that kerosene got to the masses who needed it. It caught down the price of socially. People are not buying kerosene at that high cost. It is ungodly. It is a fact. It is a part of our leadership strategy. Thank you very much. Very interesting conversations with you this Monday morning. Thanks for staying with us. Thank you for the wonderful week. Thank you very much. Thank you very much. Thank you for your time. And we will see you at some point. Stay with us when we are back. A little bit of history. We are going back to 2002 to tell you about the Nobel Peace Prize that was given to a person on this day. We will be back.


Sweet and spicy fire cracker ground beef, high protein, perfect for meal prep. I'll show you how to make it in under two minutes. We'll start out with a bell pepper. This is a flame bell pepper, but you can use red, yellow. You can also easily double this and just double all your veggies and use two pounds instead of a pound of ground beef. But we'll get to that. We'll want to cut the bell pepper into thin slices and then cut those in half. We'll take some trimmed green beans and cut those into thirds. You can adjust the size of your veggies. You can even dice them. Then we'll take half of a sweet or a white onion, cut that into kind of thirds as well, mix those up and set them aside. To make the sauce, mix together a fourth cup honey, a teaspoon each of kosher salt, ground ginger, and garlic powder, half teaspoon of red pepper flakes and black pepper, two tablespoons of rice vinegar, a fourth cup of buffalo sauce, I use Frank's red hot, and a fourth cup of water. We'll set that aside while we brown and fully cook a pound of extra lean 96 for ground beef and about a half tablespoon of oil. Once that's fully cooked and broken apart, transfer it to a bowl and then heat a tablespoon of oil in the same skillet before adding your veggies. We'll cook these for maybe four to five minutes until the onion and pepper begin to soften and pick up a little bit of color and those green beans are a bright, vibrant green. Then add back your cooked ground beef and the sauce. And once the sauce hits, you want to stir everything together and then leave it alone for just a couple of minutes. Keep an eye on it, make sure the sauce isn't burning, but we want the sugar and the honey to start to caramelize and the water will cook off and the sauce will turn into a sticky, sweet and spicy sauce that coats everything evenly. And then once your sauce is there, after a couple of minutes maybe, you are ready to play. You can go over rice, a blend of cauliflower rice and rice. Check out my previous video with my teriyaki meal prep bowls for an idea on mixed rice. I'll throw that and a link to this bowl recipe in the description below. If you enjoyed, I appreciate it if you like and subscribe for more kind of healthy recipes.


You'll see section for a quick write. First, independently, just for about a minute or so, responding to this question. What is Wheatley's purpose in writing this poem? And how is tone related to purpose? And this is something that a lot of you have already been addressing, but try to write it down. About a minute and a half, what is Wheatley's purpose in writing this poem? How is tone related to purpose? Because in a second, I'm going to ask you to make a claim about tone is relation to purpose. Remember, we're thinking about the big picture again. Not just she has this such-and-such tone, but why she has this particular tone.


Hi, everyone. I think this was my cue. Welcome to a series of fortunate events. My name is Matias Novak, but you may pronounce it in any other way that vaguely resembles that. You may know me better as a Symphony II guy, but since Drupal is about to or has already embraced Symphony as part of its core, it makes sense for me to be here. And I'm talking about events. What are events, really? And this is something I've learned to ask ever since I studied philosophy, actually. You can sound like a very smart person if you ask things like, what are events, really? And then ask it again. No, but really, what are events? Yes, in the case of events, it's really very simple. Events are just things that happen. And what's very interesting about events in particular, especially during this talk, will be that they can trigger actions. Just now, a very practical example. You arrived. And then this finally triggered me to turn on my microphone, which was an event that triggered you to stop talking, actually. And then that particular event triggered me to start talking. So that is just a series of fortunate events leading to this particular fact of me being here talking to you. And when it comes to events in software, this is more or less the same. Events model what happened inside a system. And also, the actions that are triggered by particular events are what happens inside other parts of the same system, and sometimes even what happens in other systems. So within a system, you can respond to events happening somewhere. And you can do some things based on that particular event. Most programming out there looks something like this. You will have only a long list of commands, basically. There is the command do this, the command do that, update something, and then finally return something. You will see this again and again. And if we were to introduce the concept of an event in such code, it would only be very easy. We would only have to write some comments like this. Of course, there's no implementation to events at this time, but it's very easy to at least introduce a notion of events. So when the command do this has been executed, really what happened was that the event this was done took place. And the same thing for do that, this stands for the event that was done, and so on. So it can be very easy. This is more of an everyday code sample that you will find in any project, really. Most projects have some kind of a post or an article. And most articles in posts can also have comments. This is what code looks like that tries to add a comment to an existing post. You provide a post ID and a comment, which is just a string here. You fetch the post from some place, probably the database. You add the comment to the post, and you save the post again. And that will basically save the comment, too. And then after the comment was added, you want to run some code like this, the logger. You want to maybe add a line to the log file saying there was a new comment. And you want to send a mail to people who are interested about this fact. So you want to send a mail saying there was a new comment. Well, something I would have to mention here is that in order to send an email and to add a line to a log file, you would, of course, need a mailer and a logger, which you need to inject using constructor arguments. And then you would be able to do such a thing from inside the post service. Now, to introduce events in a bit more interesting way than just adding comments in place, it would just be as simple as creating a private method probably inside the same class, saying new comment added, and to put all the logic that happens after a comment was added right there inside that particular method. By the way, it looks really great to see my code so big on the screen. It's at home I usually write smaller codes, so that's just very nice. Well, just a note about the graph of dependencies here. The post service needs a logger and a mailer, and this is something we have to keep in mind. It's somehow strange, right? And this leads to some design issues. I really don't think that the post service should know all about the mailer and the logger. It usually doesn't have anything to do with that kind of tool. And if I would like to change the behavior that happens after a comment was added, I would have to modify the post service class itself, even though the post service is not worried at all about sending mails and writing lines to a log file. So this is something I would really like to change, I would like to be able to modify that behavior without touching the actual class. And, well, of course, this talk is about events, so we are going to fix those design issues by introducing events, but only gradually. I will show you several steps that lead eventually towards using events in your software, but there are several other steps that we have to take before that can actually happen. First, I would like to introduce something called the observer pattern, or at least an implementation of that pattern in my code. Observer looks something like this. Inside a subject, something happens, and several observers are interested in this particular event. So there's already a slight hint of using events. So an observer pattern or implementing it allows you to notify other parts of the application when something changes or something happens. That might be interesting to others. It looks very simple. You have a list of observers, and each observer you call its method notify, and then you let it go. The observer is allowed to handle its own logic. The observer contract is actually very simple. It only has this notify method, and it's all there is to it. Just let's take a look at some very concrete observers, like the logging observer in our case, and when notified of the fact that a comment was added, it is allowed to add a line to the log file using the logger, and as you can see, it only gets the logger injected as a constructor argument here, and then when notified, it will log a message saying there is a new comment. And another very concrete observer is the notification mail observer. It has only one task to send an email when a new comment was added, and of course it uses the mailer for that, which is injected as a constructor argument. Now, we have moved some logic from the post service to another class, two classes actually, and we have to make that logic available inside the post service, and we do that by constructor injection again. We provide just an array of those observer objects. We inject it into the post service, and then, well, this is called configuration since we are going to do this outside of the post service, and maybe we use some kind of a dependency injection tool like the symphony service container to actually take care of this for us. Now, before we had this very nice dependency graph, but not really very nice since we wanted to move those dependencies out, the post service depended immediately or directly on the logger and the mailer. And now afterwards, the post service depends on an unknown number of observers, which is a very abstract thing, and there are two concrete things, the logging observer and the notification mail observer, and each has very specific tasks and use different dependencies like the logger and the mailer. So there's no dependency on the logger and the mailer anymore from inside the post service, which is really great. So now it's time to have this little design principles party here since we have applied at least three of the solid design principles that you may have already heard of. I will explain them quickly to you. We have on the fly, so to say, applied the single responsibility principle here. The principle says that each class should have one small well-defined responsibility and nothing more. Basically, let's take a look at the different classes and what their responsibilities are currently. The post service, its only responsibility is to add comments to posts, which it does very well. The logging observer, its only responsibility is to write a line to the log file. And the same for the notification mail observer, it only has to send an email, which is a very small, well-defined responsibility. And the other side of this single responsibility principle is that whenever a change is necessary, it only has to happen in one place, or it only has to occur in one small part of the application. For instance, when someone walks in and says, well, we have to capitalize all the comments that have to be added to posts, we immediately open the post service class and modify some code there. And then if someone walks in and says, we are going to use a different logger, we are going to use monologue, for instance, or maybe even the PSR3 global logger interface. Now, then, of course, you have to modify code in the logger observer. You don't have to modify code in the post service for that, just the logger observer. And the same goes for the notification mail observer, since it knows all about sending emails and what is going to be inside the message. And so if someone asks you to add a timestamp to the mail, yes, you can easily do so. The second principle that we, well, knowingly or unknowingly applied here, is the dependency inversion principle. And it basically says that you have to depend on abstractions, not on concretions. And you already heard me use that word, abstract and concrete. What happened in the beginning, post service depended on something very concrete. It was a tool like a logger and a mailer with very concrete implementation details, just like we saw in the dependency graph. But now it depends actually on something very abstract, an observer, which really tells nothing about what's going on inside the code of the observer. So instead of depending on concrete things, we have been depending on abstract things. Like you see in this nice little diagram, there is nothing concrete about any of those observers. So the only things that are concrete, which are depended upon by other classes, are the mailer and the logger. And those are depended upon by very concrete classes themselves, like the logging observer and the mailing observer. As you can see in this part of the diagram. Well, the last of the principles that we applied here is the open-close principle, which is quite, I think, quite a famous principle. A class should be open for extension and closed for modification. We really applied this principle here since you don't need to modify a class anymore to change the behavior. So if we want to change the behavior that happens after a comment was added, we don't need to modify the post service class anymore. We can just switch out some observers, like in this diagram. You can switch the second observer and use another observer there. You can maybe even leave out the first observer or add another observer. And for all of these behavioral changes, you don't have to modify post service at all. That's really great. So we made the post service class close for modification. There's almost no need anymore to modify code inside that class. And we have made it open for extension. Well, this is a very famous event that happens in many houses all over the world. Mr. Body was murdered. Who recognizes this image, by the way? Yes, well, quite a few people. That's great. Well, this part is about event data. And, well, we don't have any data about an event currently. But we would, of course, like to know a little bit more about when and why a particular event occurred. So when you say, oh, Mr. Body was murdered, you would definitely like to know who did it, really. Well, Mrs. Peacock did. Which you all may remember. Where did it happen? Well, in the dining room, yes. And how did it happen, since we want the gory details, with a candlestick? Yes, and it must have not been a pleasant experience. But if we look at our own implementation of events currently, we don't have anything like that. We're not able to know anything about the event that happened inside one of the observers. So as you can see, when we are notified, we have no clue about the context in which the event occurred. So, yes, I would really like to be more specific about which comment was added, to which post it was added, when, really. So I need more information, and I want to log more details in this particular observer. So let's introduce an event object. It's very simple. We have a class, which is just some kind of a value holder. You may provide it using constructor arguments, in this case the post ID and the comment. But it may just as well be some public properties. It can be just very easy. As you can see, in this case, I wrapped those inside some public methods, comments and post ID, in order to be able to later retrieve the actual post added to and which comment really was added. What this does is it stores the context of an event that happened. So whenever an event occurs, we create such an object and we provide the information that was currently available at that time. And, well, since we want to pass that information to the observers, we have to change our interface here. So let's leave the observer part behind and implement command or event handlers. This is the interface. It looks like this. It has a handle method instead of a notify method, and it provides the event object as an argument. And now all of the event handlers may use the event object if they like. Or they can just be simple observers just doing something after they are notified of an event. This is a rework of our existing... Well, then it was called observer, but now it's called event handler. And basically it does almost the same, but now it has the right data about when the event happened and why in what context. The same goes for the notification mail observer or handler. It now implements the same interface, and it does more or less the same, but it uses data from the actual event object. Again, some configuration is needed to get this all working. Instead of providing an array of observers, we provide an array of event handlers that are more or less the same, but still there is some configuration going on outside of the post-service class. And just in the same way as we looped over observers, we are going to loop over event handlers, but right before we do so, we have to instantiate our event object, which is an instance of command edit event, and we just have to provide the right arguments to its constructor, and then it will already work. So this allows us to push some information to the actual handlers or observers as they were. Well, let's take this one step further. We introduce a mediator, which is another design pattern. I already mentioned observer is a pattern. These are some patterns from the design pattern book, Elements of Reusable Object Oriented Software. I have added a slide about this book at the end. I think it's really interesting to read the book and learn some of the very commonly used design patterns, since you will recognize them all over the place used in very famous projects. Well, we are going to introduce a mediator, which is really a simple design pattern, although mediators sometimes cost a lot of money. But we are going to leave the talking between the objects to a mediator. And, well, there are some famous mediators out there, the Doctrine Library and the Sand Framework both have an event manager, which is basically a mediator for events. Then there is another one, which I find quite nice. It's the event emitter created by the PHP League. And Symphony has its own event manager or event mediator. It's called the event dispatcher. And yes, since we have such a close relationship nowadays, well, I am going to talk here about the Symphony event dispatcher, of course. So before, this was the situation. The post service called each of the event handlers directly. So it called the logging event handler and it called the notification meal event handler. And now afterwards, we are going to leave the talking to the event dispatcher, which we put in between the post service and the handlers. And in code, this would look something like this. We inject an event dispatcher as a constructor argument. And then later, we create the same kind of objects that the command edit event, and we dispatch the event to it. We say, just handle this event. I don't care how you do it. Well, just figure it out. So we add a little string, which is the name of the event that occurred, and it will later allow the dispatcher to find which listeners or handlers it should notify. And then, of course, we also provide the event object to add little context to this particular event. If you're going to use the symphony event dispatcher for this, you have to extend the symphony event class, but that's not really a problem unless you really care about coupling like I do. But, well, okay, for this particular case, I let it here. Yeah, so this is just one thing you have to do. You have to use the event class and extend your event object from it, or event class from it. Then you need to have a little layer of configuration. So you instantiate the event dispatcher, which is just a very simple class. It doesn't need any constructor arguments. And then you instantiate all of your event handlers, which a symphony would call, or the symphony community would call event listeners, by the way. So on the dispatcher, you call the addListener method, and you add instances of the event handlers, or the event listeners. Again, you will see here the use of the string comment underscore edit, which is the name of the event, and the dispatcher will know how to find which event listeners to call. Then the second argument is an array of the object and the method that the dispatcher should call whenever the event occurs. So then you can instantiate the post service, and you will have a post service object with the dispatcher inside of it. Really nice. Yes, well, as I said, symphony2, Drupal 8, it's a good match. And when you want to use events in your application, it will be very easy, since the event underscore dispatcher service is already available, which is an instance of the event dispatcher. So you can use it right away and inject it inside your services. Then you can also register your event listeners very easily using service tags. And just a quick hands up, how many of you have used the symphony services YAML? Define some services for Drupal 8. Yes, well, quite some people. Yes. So this is a really great way to prepare your objects to be used. So you can just... Oh, I have some slides about it. This is the way service configuration looks like. You have a post service, which is defined by post underscore service. It's just the name of the service. You provide the full class name of it, and then you say it needs these arguments. And the arguments themselves can be anything, or not really anything, but many things. But in the first place, they can be other services, too. So you have this little ad, and then you write the name of another service that should be injected as a constructor argument. And that's very easy, since the event dispatcher is already defined as a service, you can use it in your own classes. Just great. If you have event listeners or event handlers, you can easily register them using a service tag, and this is what a service tag looks like. You create a service. It is called Logging Event Handler. You provide, again, a class, and some arguments. Also, a logger is already available in Symphony 2, so you can just use that one. And then the tag looks something like this. There is a name, and then there is an underscore listener. You provide the name of the event to which this listener is going to listen, and then you mention the name of the method that should be called on that object once the event occurs. So it's really very easy, and you can start using it immediately in your projects. And the interesting thing is that Symphony as well as Drupal have fully embraced the concept of events in their application. So when a request comes in in a Symphony 2 application and a response is about to be generated for it, this all happens using events and event listeners, partly by event listeners of the framework itself and partly by user-edit event listeners. I will just give you a quick overview of what Symphony does under the hood when it tries to create a response. And this is equally true for Drupal itself. And they have added some extra events to it, but it's really more or less the same. If you look in the index.php file for Drupal projects, or Drupal 8 projects, you will see something like this. Request is being generated from the super globals like underscore post, underscore get, underscore server, cookies, files, anything. And then this request object is provided as an argument to the handle method of the kernel. The kernel does really all the work, and on its way it dispatches lots of events, and the end result of all those events adds up to the actual response that should be returned to the client. And so the response object is the return value of the handle method, and the response can be sent to the client. So just a quick overview of those kernel events. The first one is kernel.request, and it allows event listeners to do some route matching, for instance. The URI will be looked at, and it will try to be matched with existing routes in the application. And then the resultant controller will be used in the step afterwards, after this one. Also kernel.request is an excellent time to do some authentication checks. For instance, this is also the way the symphony security component itself does it, but this allows any further execution of the usual flow. So you can break in and return a response right there, and you can say, in that response, you can say you are not allowed to be here, or something like that. Then the next interesting event would be kernel.controller. It allows you basically to replace any controller that was previously matched. So again, you can do something like preventing access to the current controller, but you can also do some other stuff that needs to be done before executing any controller, like maybe checking some access-related things. Then the controller should return an actual response object. At least that is a symphony philosophy. But in most situations, it doesn't. So for instance, in Drupal 8, you will always return an array, I think. Well, that array will, of course, be used to render a template. Yes, the kernel.view event allows event listeners to hook into this process and determine how to convert an actual return value of a controller to a true response object. So yes, in most cases, it's just render a template. But in other cases, it may also be convert the return value from the controller to maybe a JSON response for an API or something. The last event that I am going to... No, no, almost the last that I am going to explain here is the kernel.response event. And it can be used to modify the actual response object at the last moment that's possible. So right before sending the response back, you will, back to the client, or not even back to the client, but to the client, you are allowed to modify the content of the response, maybe add some headers to it. Symphony itself injects its toolbar, maybe you've seen it before, right at this time, whenever the response is an HTML response. So this is also used to add some cookies, maybe, or, well, remove some cookies if that is necessary. And then kernel.exception is used whenever any part of the application throws an exception. And it is used to ask one of the event listeners to generate a response for such an exceptional situation. So maybe you want to respond in a particular way to a user when a particular exception occurs. The most general way to handle an exception, of course, is to render a nice page with a friendly little fellow with three fingers, I guess, and the stack trace if you're in development mode. What's quite fascinating is that Symphony uses events not in a very traditional way, but in a, well, maybe a modern way. It allows event listeners to talk back to the one who has dispatched the events. So kernel events are not merely notifications. They are not meant for other parts of the application to be notified of something. They are meant for other parts of the application to be actively involved in some step of the process. They are allowed to modify, well, parts of the application or parts of the process by maybe returning a response early or modifying an existing response overriding a controller. And these are all very active things to do for event listeners. So in the previous parts of this talk, it was all about being notified, doing something when something else occurs, but now it's really like talking back to each other. And this very much reminds us of the chain of responsibility pattern, which is also from that famous Design Patterns book. It looks something like this. There is some sort of request, not even an HTTP request, but any kind of request. And there are several handlers like Handler 1, 2, 3. Each of them is asked to handle the request. But Handler 1, it doesn't know what to do with this particular request. So it lets Handler 2 do the work. Well, yes, Handler 2 knows something about this and it creates a response, which is actually used as the response for this particular request. Handler 3 will not be called in most situations. So that's that. When transposed to the symphony world, it would look something like this. You have event listeners 1, 2, 3. You have a particular event or request, like I've got an exception. So symphony, what should I tell the user? Now, Listener 1 tries to do something with it, but it doesn't know how to handle exceptions. So, well, yes, Listener 2. Well, Listener 2, in fact, knows how to handle this exception and it generates a response. And now Listener 3 will never be called. So you might wonder... Sorry. You might wonder how can I influence this process since if I am Listener 3, well, maybe someone else handles this request and I never get the chance to do so. The symphony event, especially, offers several ways to influence the chain of responsibility here. It also allows you to, well, prevent other listeners from picking up this request. One way to do it is, well, for instance, if I set the response on something, I can say stop propagation right there. And, well, this way, I particularly prevent other event listeners to handle this request. So that's great. Maybe this is the best response ever. Another way to influence the chain of responsibility is to use priorities. Whenever I add a Listener to the dispatcher manually and also with the service tags I mentioned before, you can also provide a priority, which is an integer. It can be a negative number by default at zero. But this way, you can modify the priority or the prior prioritization of all the listeners in the row. So when you use a priority of 1,000, maybe, I don't know, I think the limit will be PHP in max, or so. Then you will always be the first and you can stop any propagation of that particular event. So that's great. Now, well, you may have some concerns, or at least I do when I look at events at code that uses events. And in particular, if you're not used to using events in your code, introducing an event dispatcher may seem really strange. And there are several concerns that I like to address here, and I hope I can convince you to either step over it or, well, maybe do something about it. And the first concern is that events or the way events are handled can be very difficult to understand. So, well, I really think this is partly true since this type of understanding I call click through understanding. So if you are working in an editor which shows you some links to maybe methods and where are variables defined and in which file is this class defined, then, yes, it will be hard to understand event handling since whenever you encounter an event dispatcher in symphony code and you click on the dispatch method to see what's happening inside that method, you will see something like this, it just points to the interface. And there's no clue about a particular implementation of event listeners there or you may never know what happens behind the scenes. Well, this is a very easy solution. You just have to install XDbuck on your machine if you didn't already have that. Since that will basically allow you to step through the process when the application is running. So you don't need to click through anymore to where a method is defined or where you really expect the code to be. Anything can be different at runtime. So you have to have something like this, an interactive debugger where you can step through the code while it is being executed step by step. So then you will see what is the value of any current variable that is used and where did this current line or what is the stack trace? So you can see where you come from. Well, this may seem a bit... not really a solution, but it is. I think most of the modern code nowadays, like Symphony 2, is in my opinion quite modern code, works with interfaces a lot and then you are never able to click through to the actual implementation. This only works with concrete classes, right? So one, I think, bigger concern would be that you have some out-of-the-main concepts in your code. Like, if we looked at the original post service class, we saw things like a comment, which was a string, but, all right, a post ID, which is the identifier of a particular post. We saw a method add comment to post, and then all of a sudden we introduced this strange word, dispatcher, which has nothing to do in the domain of adding comments to posts. That really doesn't sound like something that you would usually use when you're adding comments to posts, but that's really strange. And while we did a good thing, actually, we fixed some very, very bad coupling issues since we used a mailer and a logger directly inside the post service. Yes, well, let me just tell you another part of the story. This is Konstantin Kudrashov. A great name, I think. I hope I pronounced it well. Also known as Everset. I went to a talk. He did a talk at Symphony Live last week. He had some great words to say about this. So let me just show you what he said. This guy, coupling, has a sister. So even though we are fixing coupling issues here, well, this sister, she's called Cohesion. And, well, she is important, too. And she also has her own ideas about what should happen to the code in your class. Cohesion really is about a sense of belonging together. So when you look at code, I think most of you have said one time or probably many times, hey, well, listen, this method doesn't belong inside this class. It just doesn't belong there. It's about a different concept or it doesn't feel right. Or maybe even what is this variable about? It doesn't make sense in this context. And this is what Cohesion is about. It is about belonging together. And the thing is, in most code or most domains, dispatcher, event listener, and even event, they shouldn't be there. They are just words that have nothing to do with the actual problem domain of adding comments to posts, in our case. So, yes, more difficult of a problem, but there are very easy solutions. The first thing you can do is have better naming in your code. So instead of writing things like notification meal event listener, such a class should be named send notification meal when comment added. And this already makes a lot more sense to anybody who would look at the code and try to understand what's happening, even if they wouldn't know about event listener. Then a comment added event, it doesn't really mean anything. You should write something like comment added, which already explains about itself that it is some kind of event. It just happened. And something like on comment added, which reminds us more of jQuery development, should definitely be something like when comment added. And this is something you can explain to anybody, just write the code out loud, and everybody will understand. If you use things like event listener, event, or on as a method name, that doesn't make sense to most people. Only if you know about event listener, of course. So basically this also hides implementation details. I think most people will not worry about whether you're using symphony event dispatcher or the doctrine event manager. You should just hide the fact that you do such a thing. It should be just plain by looking at the code what the code is doing. Another solution is to not use an event dispatcher. And I tend to not use it when... Or I tend to only use it when things are not naturally cohesive anyway. So for instance, the mailer and the logger in the post-service class, they showed no cohesion at first. So mailing and logging has nothing to do with adding comments to posts. So these things were naturally uncohesive and we could easily move them out to event listeners. There's no problem in that. But well, if there is natural cohesion, you'd better not introduce an event dispatcher, which would cause low cohesion. But you have to use something else. You may use observers there, or you may any other objects that just collaborates with the object you're currently talking about. For instance, when you look at the code, the symphony code for resolving the controller, you will see something like this. There is the event getResponse event, or something like that. You provide the request as a constructor argument. And then the dispatcher is used to dispatch the kernel.request event. And any listener is allowed to populate the request attribute underscore controller. Well, this is some magic going on. But it's really very... It has low cohesion, since many of the concepts used inside this piece of code don't clearly communicate what is actually going on. Maybe I would have expected something like this. So controller is controller-resolver-resolve. And of course, you may use the request, but in the end, I just want to get a controller from this. And I don't want to use a dispatcher. It's just totally unclear what happens in all the event listeners. So yes, well, there are several alternatives. You could just as well use observers like we did in the first few slides of this presentation. A third concern, which is also important and somewhat profound, is that you feel that you lose control in a way. Well, you know, you are relying on event listeners to do some very important work. It's not like you can just disable an event listener and your application will work, will still work as it did before. No, event listeners are very important. Yet how do you know if they are in place and well configured and that they do their job, that they are supposed to do? Yes, well, one thing, of course, you can, or you should have some kind of a test that shows that all those event listeners work, but if and still, this is not really a solution, or there isn't going to be a solution since let's label this as a won't fix. You have to really learn to live with this kind of loss of control. This happens all the time and it's good. Ah, yes, so I had one slide saying it's good, which is a good slide, by the way. Well, what this is called, this loss of control, is actually called inversion of control. So there's no real loss of control. It's just that this particular class, the post service in our case, doesn't have control about what happens after a comment was added. That's really good. It looks something like this. First, we have a thing that exercises control, yes, it exercises control over the other thing, and then we'll just give up control and there's no relationship even with that first thing and the second thing. You, of course, know all about inversion of control since, well, yes, a router determines the right controller for you. There's no way that from inside the controller you have to say, yes, yes, choose me or something. That doesn't happen. It all happens outside of the controller. Also, the service container, at least the symphony one, injects the right constructor arguments. That is also inversion of control. You leave that part of control that you would usually exercise yourself by instantiating any objects you need, right where you need them, to something outside of your class, like the service container.  Someone will bury your body for you. It's not that you have to do something for that. You just leave it to others. So it's just all the same. But just like John Nash, or I don't know if the real person said this, but at least he does in the movie, I must admit that I'm also terrified, mortified, petrified, stupefied by inversion of control. It's really scary to give up so much control on all the things outside of your own classes. But it's really the best way of doing things. It will lead to better design, which is good anyway. It doesn't need any explanation. It will require less change since every little class has its own responsibility, like we saw before. And that will, in fact, make maintenance much easier. Just by looking at the names of the classes, everything will be clear, and any future maintainer, will be able to quickly find where he is supposed to modify some code. Yes, that is just good. At this moment, my presentation is somewhat finished. I always learn to ask questions when presentation finished, so I don't know if there is a microphone available to just have something. Yes? Oh, you can just move to the front and say anything you like to me. Anyone? I'm just going to count to 30 in my head until someone... That's really hard. All right. All right, thank you. Yeah, this was the other... Thank you for no more questions. Well, just some commercial messages towards the end of this talk. I wrote this book. It is very much about symphony, but it's very, very interesting to Drupal 8 developers. It contains lots of information about how you can create service definitions, all about those particular kernel events that lead eventually to the actual response. And because you're DrupalCon, I have created a special discount for this book. When you download the slides, just check out Twitter later. Or already, you can already download the slides on Twitter. Well, you can just click that link and you will get the discount. Also, if you're interested in package design, about which I'm writing a second book, well, just take a look at it. Maybe it interests you, and maybe it doesn't say anything to you. No problem at all. I just wanted to quickly mention this. Then there is this book Design Patterns, which I also mentioned sometime. I didn't write this book, of course. It is the famous Gang of Four, starting with Eric Gamma and all the other names I always forget. Lucky Eric Gamma, of course. It contains explanations of all the design patterns, like observer, mediator, chain of responsibility, and so many more. Then this book, Solid Principles, or it's not called Solid Principles, it's called HL Software Development. It's by another big name in the industry, Robert Martin. And he explained all about what he calls the Solid Principles. And these principles are very widely known and are very useful any day you're writing code. So just get it. Yes, some images I used. I especially liked the Capio. And, well, of course I'd like to know, what do you think? What did you think about this information I gave you? How did I do? Did I wait too long or too short to ask some questions? Never mind. Well, you can find me on Twitter, too. And, well, then this was really it. So thank you again.


update. Good morning folks. Steve Rhodes coming to you live from the shores of sunny Delray Beach, Florida. This year 11 a.m. update, we got a bit of a mixed bag. That mixed bag today coming from the NASDAQ and the semis. They're down 49 and 36 points respectively. Otherwise, U.S. indices are trading to the upside. That was up 325 points. That's 1% move. Three tenths for the S&P are 14 points. A little over 1% for the Russell. 21 points there. 369 points. That's 232 and 3 tenths percent for the trannies. Gold's up 30 bucks. 1.5 tenths percent. Silver's up 1% or 27 cents. Lights we crude is, let me change this to the September contract here. Sorry about that. U23. Got lights we crude up a buck 5. That's 1 to 4 tenths percent. Let me get natural gas to the same thing. Natural gas is up 8 pennies trading out of 258 and a third of your treasury up 18 ticks. Printed out at $127.04. Let's figure out what all that means by looking at that nine panel. Market update chart. We begin with the E.S. Mini. We're trading above yesterday's high. Things are just simply bullish out here. We do need a bearish reversal candle to confirm a roadsman to mitigate our top spot. Bottle tuna is still below its 50-day exponential moving average. That always puts the wind at the sails. Not always, but the majority of the time it puts the wind at the sails of the buyers of the bulls. The NQ, no topping pattern. As of yet, a bearish reversal candle would confirm a roadsman to mitigate our top. Otherwise, price continues to move higher. U.S. Dollar indexes may form a teeny-nigh-count pattern tomorrow. We'll have to come back and take a look at it. But if we were to see a bullish reversal candle today and you could see a hammer candle, well that would confirm a buy the D point pattern. Goldilocks targeting the top of its weekly profile, 1995-60. That likely will be the end of the initial move for gold. So I expect that we'll see gold top tomorrow or the following day. And then we'll probably take a look at a two-bar, two-day pullback out there. Silver right now is trading above a new profile that is attempting to form. Attempting because I'm using my advanced Doppler tool here. But right now, sellers are lined up at $25.28. You've got price printing out at $25.31. A close above that. And I think price is going to do this anyway. It's going to make its way up to $26.02. Now, whereas gold has a topping pattern, silver does not. Light-sweet crude. Light-sweet crude consolidating with inside its new profile. Support down at $72.34. Resistance up at $77.15. Natural gas. I can't make hay of this. I think that right now what we're seeing is so far the move today is a counter-trend move right up to the center of that bowler-structured profile. We saw three consecutive closes below that profile. We could really be looking at A to B equal CD to the downside of natural gas. Folks, stay tuned for the Trader Z show. If you're off to start your Tuesday, please have a terrific one. Thanks for joining us. We'll look forward to speaking with you again soon. Take care.


The Kraft Foods Company presents Willard Waterman as the Great Gildersleeve. The Great Gildersleeve is brought to you partially transcribed by the Kraft Foods Company. Well, this is the week most of the kiddies start back to school. This always creates a great deal of consternation and preparation throughout the nation. And in the city of Summerfield, there's one home contributing more than its share to the Confucian. Yeah, it's the home of the Great Gildersleeve. Come on, Leroy. Okay. Here's your lunchbox, Leroy. Okay, Bertie. Leroy, the judge is waiting to take us. Shake a leg. Leroy, let me look at that shirt. Oh, my goodness. Gosh, Marge, I gotta go. I thought I saw a spot on your clean shirt. You spilled prune juice. You'll have to change. Oh, for corn, say. No. Marge, it isn't bad. It just looks like a dark button. What about them ears, Leroy? What about them? Bertie, I renovated his ears personally. Let's keep going, Leroy. You'll be late for school. I was ready 15 minutes ago. Then Marge and Bertie started picking on me. Women. I just want you to look nice, Leroy. You want to make a good impression on your teacher the first day. What's the difference if I'm going to disappoint her the rest of the year? Leroy, the judge is impatient. Honky, you would have to put our car in the shop this week. Ew, now it's all my fault. Here, Leroy, put on this tie. Tie? Marge, either boy doesn't need a tie. Heck no, ties choked me. Stuff in. I'm in a school room anyway. Leroy, lift your chin. I won't wear it. Yes, you will. Now that you're older, you should wear one every day. Whoever heard of a tie and blue jeans. Let's keep going. I have a meeting with the mayor. All right, judge. Uncle Morty, if you're going to meet the mayor, you should have a handkerchief in your brass pocket. Yeah, I have one in my hip pocket. I just, I'm your best one, Mr. Gillslee. Now you just run upstairs and get it. I'm good to run right out the door. Come on, Leroy. How are you heavy? Start the car, judge. And, judge, you're not very talkative this morning. Gildy, I'm happy to show for you and Leroy, but I'm not in the habit of being kept waiting. There was no women, judge. They wouldn't let us go. Change your shirt. Wash your ears. Are your shoes shying? And don't forget your brass pocket handkerchief. Yeah. Well, I suppose your tiredness is understandable. Of course, I have no such problems to contend with around my house. I get up in the morning, have my rye crisp and a beaker of Kailak water, and I'm off to the bench. I don't know how lucky I am, judge, no women. Well, they certainly made us late this morning. The mayor's going to be seething. Darn old women. Well, I'm afraid I'm late also. Blame it on the women.  Why, too, Leroy? Leroy, where'd you hear that? I heard you say it once. He won't. He won't, Leroy. We ought to boycott them. Boycott them? Sure. Let's us three bachelors make a deal. Never have anything to do with them. That's hard to do, my boy. Well, of course, but we won't have anything to do with them.  Ha! Gildy. You will. You will recognize the magic moment, a chance minking perhaps, a drop glove, a lady in distress, or an exchange of glances. You judge, here's the school. And the spark is ignited as the world stands still and somewhere bells begin to ring. I know. What's this, judge? Gildy, you know what I mean. Well, I never heard the bells ring, but I could be a little deaf. No, I've never been down for the count. You ought to be looks at women anymore, do you? You watch it, judge. The lady's pulling out from the curb. What? Be careful. She's going to put right... Oh, oh, judge. No, you've done it. You bang right into her bumper. It wasn't the judge's fault. Why didn't you watch where she was going? Women. It appears the lady and I have locked bumpers. Oh, I'm so sorry. It's all right. It was our fault. Gildy, get out and fix it. Yes, yes. Why don't you get out? Well, I'm driving. That's obvious, judge. Bounce the car. Leroy, the bell will be ringing any minute. I can get to my seat before the bell stops ringing. All right. Let's hurry. You'd only take a moment, madam. You bounce, Leroy. Big car. It doesn't bounce easily. Yeah, I know a judge.  No damage done. Hope you weren't shaken up. No, not at all. Thank you very much. Yeah, that's all right. I have to be running along now, so... So... So... So... So... She was pretty. Well, thanks again. Wait a minute. Are you pleased? Yes. Madam, you miss... Misses? Ah! Yeah, this car you're driving. Doesn't it belong to Mr. Bullard? Yes, it does. You know, I thought so. He's a neighbor of mine, you know. Really? Ah! Remember the deal! You know, then... I'm sorry, but I must be going. But I... I wonder who she is. What a beautiful woman. Gilded! The bells are ringing! It's a strange thing that happened to me this morning. I haven't been able to get her out of my mind all day. Okay. All right. Yo! What is it, Midry? Where are you going? Yeah, I'm coming home. Why? Well, you were... Yeah, I did, didn't I? An exchange of glasses. And the bells began to ring. You said they have a mind? You don't know. Nothing but my hat. Well, you're not wearing a hat. Yeah, I must have left at the office. By the way, Margie, do you have any idea who was driving Mr. Bullard's car this morning? What's this? Does he have a girlfriend we don't know about? Oh! Uncle, that's Mr. Bullard's sister. Your sister? Well, great! She has a daughter about Leroy's age. She has a daughter? Uh-huh. She and Leroy walked home from school together. Married, huh? Well, she was. About three years ago, her husband left her a big ranch in Arizona. Oh! Isn't she attractive, Uncle? Well, we just exchanged glasses. That is all I had was a passing glance at her this morning. You know her name, Margie? Well, the little girl's name is Babs. I don't know what their last name is. Yeah, it isn't important. It means nothing to me. I mean, that is, say, there's Mr. Bullard in the yard inspecting his percentilums. I think I'll run over and pass the time of day. Let me know her name, Uncle. No, Margie. As long as I'm going over, I might find out what her name is. Show her neighborly interest. Well, hello, Mr. Bullard. Good afternoon, Gilda's name. Yeah, I see you're in your chrysanthemum bed. Obviously. Gathering your bouquet for the table tonight? Yeah, I see you have company. Oh, you do? Yeah, I saw her in your car at school today. Well, boulet for you. I guess your sister, Mrs.... Mrs.... Mrs. Gilda's leave. If you came over here to get my sister's vital statistics, suffice it to say she was born in 1916. She's five feet five and three-quarter inches tall, and she weighs 118 pounds. Yeah. Well... And at present, she is very happy. Well, good, good day. Well, wait a minute. Gilda's leave. Take this chrysanthemum. Me? Why?  Ha, ha, ha, ha, ha, ha. He's a hard man to like. Stuffy bullet. Frankly forbidding me to meet his sister. In business, though, I were an adult. I'm the water commissioner. You know, I'm a tax payer. I own my own home. I have a right to know who my neighbors are. You know, Leroy. He went somatic. That's a bike wheel? What happened to the spokes? Babs knocked them out. Babs? Yeah, Mrs. Winthrop's brat over at bullets. Mrs. Winthrop. So that's her name. What do you care what her name is? Look at my bike wheel. Yeah, Leroy. Let's not get upset. How did it happen? I was riding down the sidewalk. No hands. And she stuck a broom handle through the spokes. You're right. Isn't that a dirty trick? What are you gonna do about it? Yeah, Leroy. I can't imagine Mrs. Winthrop's daughter doing a thing like that. Oh, she did. What are you gonna do about it? Well, I think I should take you across the street so you can apologize. Apologize? Me?  Apologize. I wasn't doing anything. Well, Leroy... I don't get it. She sticks a broom handle through my spokes so I have to apologize. I don't get it. Leroy, not so loud. I don't get it. I should apologize. Well, for one thing, there's a woman involved. And the man always apologizes to the woman. That's the shiverest thing to do. What on? Knee up on the porch, Leroy, like a little man. This is so... Leroy. I don't get it. Yes? Pardon me, Mrs. Winthrop. I'm Trockmorton P. Gellersley. We talked briefly this morning at school. Locked bumpers, remember? Oh, yeah. This is my nephew, Leroy. How do you do, Leroy? Hi. We live across the street. I'm the city water commissioner. Yes, my brother rums things and telling me about you. You don't believe everything he says. Yeah, I mean, I... That is, we came over to apologize. Apologize? It seems your little daughter stuck a broom handle through Leroy's bicycle wheel. And he feels pretty bad about it. Don't you, Leroy? If you say so, Aunt... That's the boy. Now, apologize. I'm afraid I don't understand. Leroy, you say Babs deliberately put a broom handle through your bicycle wheel? Yeah, and I wasn't doing anything. Well, then why should you apologize? Ask Donk! Well... As a matter of fact, Babs should apologize. Oh, no, no, the apologies are all ours. Well, why? Well, Mrs. Wether... Honk says there's a woman involved. Oh. Yeah, well, what I mean was, the man always apologized to the woman. That's a chivalrous thing to do.  Mid-vict who? Oh. It all seems so silly. Yes, well, I just thought we'd come over and apologize. Well, what for? What's the reason? Well, I thought I had a reason when I came over. Maybe that was your reason, Honk. He just wanted to come over. Leroy... Is the apology finished? Yeah, and so am I. Come on, Leroy, let's go home. Well, seeing Mr. Bullard's beautiful sister was the most electrifying experience the great Gilda Slave ever had. But so far, he's been thwarted in his attempts to be neighborly. Hmm. Yeah. She's so lovely. Yeah, I shouldn't have gone over there. She made me feel like a tongue-tied adolescent. Water commissioner, you missed the boat. While the water commissioner flounders, let's look in on the Bullard Fortress and see how they're reacting to his latest salad. Robinson? In the solarium, Paula. Oh, there you are. I just had a little chat with you, Mr. Gilda Slave. Oh, no. Yeah. He came over to apologize. For living? No, but it was a strange apology. Leroy was riding his bicycle and Bab stuck a broom handle through his wheel. It was a terrible thing for her to do. So what happened? Mr. Gilda Slave came over to apologize to me. Oh, did he? Paula, I can read Gilda Slave like a book. A big, thick, very dull book. The only reason he came over here was to try to meet you. Oh, it was quite obvious. I suppose I should consider it flattering. Paula, how could you? Not every man would go to such lengths to meet a woman. I gave him such a bad time. You did? Paula, I'm proud of you.  Rumson, I think I should go over and speak to Mr. Gilda Slave. Go over there?  Well, it's the least I can do after what Babs did to Leroy. All right, all right. Go ahead. Waste your time with the water commissioner. After all, you're 36. 35. Oh, yeah. You're old enough to know what you're doing. Thank you. But you don't know what you're doing to your brother. Are you really going? Yes. After dinner. The heat has affected her mind.   I couldn't eat a bite. It isn't that I'm thinking about her. I'm just thinking what a fool she made of me. Oh, Timor. Yes, Marjorie? Mr. Peabee's here. He is?  Well, I don't think I'll go, but... Come in, Peabee. Uh-huh, Mr. Jonas Slave. Are you ready for your meeting? Well, I'm not going tonight. Thanks, Peabee. Have a date, Peabee. Peabee, I'll never have another date. Okay. Oh, he's disappointed in women, Mr. Peabee. He's going to say it. Uh-huh. We met Mr. Bullard's sister today. Well, I met her too, but I didn't notice anything that would disappoint her.  She's just another ronson bullard. Well, she's prettier. I'll leave you two alone. Cheer him up, Mr. Peabee. I'll try. Anyway, care for a winter green, Mr. Gillifrey? No, thanks, Peabee. Let's see if I can remember any amusing stories told around the fountain today. You never mind. I take it you wish you had a date. Peabee, the lady just assumed I came over to ask for a date. Accidentally, I want to apologize. Well, what did you do to apologize for it? Let's not go into that. Yeah.  Just because she's a woman, she toyed with me, like a cap toys with a mouse. Well, women can do that on occasion. I know I'm a little mousy sometimes around, Mr. Peabee. Well, I know, mouse. I can play rough, too. I'm going to rare up in my hind legs and have nothing to do with it. My, my. You know, I mean it, Peabee. From now on, Mrs. Wenzup can go her way, and I'll go mine. In fact, I'm not even going to speak to her. Hey, hon! What is it, Leroy? That Mrs. Wenzup's coming across the street. She is? Yeah, I mean, she is. What are you supposed she wants? Maybe she wants to play cat and mouse. Yeah, all right, Peabee. Here she is, honk. Mr. Gildersleeve, I'll step out the back door so you two can be alone. You, Peabee, stand to your ground. I'm going to. Leroy? Yeah? Answer the door and tell Mrs. Wenzup I'm not at home. Oh, boy, will I? Why did she have to come over here anyway? Hi, Mrs. Wenzup. Hello, Leroy. I'd like to speak to Mr. Gildersleeve. Honk says he isn't home. Is there any message? No, and you didn't bother to tell him I called. Okay. Leroy. I sure fixed that, honk. Yeah, you fixed it all right. Now I'll have to go over and explain. Why did you tell her I wasn't home? You said to tell her you weren't home. You didn't have to be rude.  Yes, you did. You said tell her I'm not at home. Yes, but... Give me Mr. Peabee. Yes, again. You keep out of this. I know what I'm doing. No, no, I wouldn't say that. What a terrible thing to say to a lady. Yeah, she'll understand it was simply a boy's prank. Cheers. Here she comes. I can hear her little feet on the hall carpet. What is it, Gildersleeve? Oh, boy. Nice evening. It was? Yes, well... The reason I came over to Mr. Bullard, I'd like to speak to your sister, Mrs. Winter. Oh, well, I have a message for you, Gildersleeve. Really? Yes. She says she isn't home. I didn't say that. I know that. She did. No, this whole thing is a mistake. You are so right. Good night, Gildersleeve. But, Bullard... Good night, Gildersleeve. In just a minute. Gildersleeve, you rainbarrow Romeo.  Rainbar. That doesn't... Bullard, I'll never speak to you or any member of your family again as long as I live. Gildersleeve, I have only one thing to say. Yeah? Well... To you, too. You don't have to pick us up in your car, Judge. We get ours tomorrow. Don't we, young man? Yeah, tomorrow. It's been no trouble at all, Gilder. By the way, I understand the lady who captured your fancy yesterday morning was Mr. Bullard's sister. Judge, she didn't capture my fancy. Hello, boy, young teller. No. Now on, I'm having absolutely nothing to do with Bullard or his sister, even.  You said it. Gilder, that's not the way you felt after you talked to her yesterday morning. As I recall, you were seeing stars and hearing bells. Don't be ridiculous, Judge. I did nothing of the kind. I realized right then that Paula Winthrop was just like Bullard. I saw right through her attempts to be friendly with me. She didn't pull the wool over my eyes for a second. What's this? I'll get all that. No, don't you try to defend her, Judge. She's just like all women. Yeah, all Bullards. You can't trust them. Next time I meet her on the street, I'll cross over to the other side. Now you're talking, honk.  Almost time for school. You better run in, my boy, before the bell rings. Okay. Oof. Who did that? Somebody snatched us. If they scratched my bag bumper. I mean, Jim, with drivers. Mr. Bullard's car. Bullard. Yeah, that's what I've been waiting for. Let me handle it, Judge. Punch him in the nose, honk. Now get a little... Stand back, Judge. What's the matter with you, Bullard? Can't you see where you're going? You... You... It's you. Well, Mr. Gildersleeve. You follow? Yeah, I mean, Mrs. Winthrop.  Stupid? No way. All you had to do was look back, and you could have seen I was going to park here. Yes, but... She looks so sweet. But she sounds just like Bullard. What's going on, honk? Hurry up, Gildersleeve. All right, Mrs. Winthrop. I'm very sorry we happened to be on this street. And I'm very sorry we happened to be stopped right where you were driving. I'm very sorry for Lily. Are you really? Yes. Why don't you come over this evening and apologize? Rumson won't be home. But I will. He'll answer right behind you. He knows at Leeroy. The great Gildersleeve will be back in just a minute. Let's see. Monday. Hi there, Bertie. What's cooking? That's what I'm trying to figure out, Mr. Heaston, just what Bertie's going to be cooking. I plan in next week's meals. Oh, what's this you have down here for lunch, Bertie? Oh, here, where you have velvita, apples, sandwiches, and bacon. Oh, that's one of Mr. Gildersleeve's favorites. Mr. Heaston. Are they easy to make, Bertie? Yes, sir. You just spread slices of toast with craft mayonnaise and put a slice of good golden velvita on each one. Then just put a thick broiled apple ring on the velvita and top each sandwich off with two slices of bacon you're partly brailed. Then Bertie slides those sandwiches into a medium oven till the bacon is crisp and the velvita's melted. It never takes long because velvita melts so easy. And do they come out good? Oh, I'll bet, Bertie. After all, craft pasteurized processed cheese food is delicious with its rich yet mild cheddar flavor. And those velvita sandwiches stick to your ribs, too, Mr. Heaston. Right, you are, Bertie. Velvita is rich in important food values for milk, so it's good for every member of the family.  That's why Bertie cooks with velvita so much, Mr. Heaston. Velvita is wholesome good. You're right, Bertie. That's why Bertie cooks with velvita because it's wholesome good. I know, Bertie. Mr. Heaston, you know why Bertie cooks with velvita so much. Yes, Bertie. That's right because velvita is wholesome good. You were a knight, Paula. The full moon, your hammock. Lovely, isn't it? You know, I misjudged you. Yeah, I thought you were pretty hard to get along with. And now I know that isn't true. You're gentle and sweet. Thank you, Cropmorton. I really like you very much. You do? Yeah. Paula, I hear bells. That's my brother, Williamson, at the front door. I'll sneak out through the hedge. Good night, Paula. Good night, folks. This is played by Willard Waterman. The show is written by John Elliott and Andy White at this partially transcribed. Excluded to the cast are Walter Tetley, Mary Lee Robb, Lillian Randolph, Gail Gordon, Jean Bates, Earl Ross, and Dick Legrand. Musical compositions by Jack Meakin. This is John Heaston saying good night for the Kraft Foods Company, makers of those famous Kraft quality foods. Be sure to listen in next Wednesday and every Wednesday for the further adventures of The Great Hildesley.