Alright, thanks for staying with us. The new administration elected to power in 2023 took a hold of the economy with the monetary and fiscal policy implemented such as floating the exchange rate, removing subsidies on petroleum products and lifting of some foreign exchange restrictions. Now these policies led to intended and unintended consequences. Now rising inflation erodes the value of Naira while the manufacturing sector and other stakeholders in the forex market thread carefully between the unstable exchange rate. So today we're going through some of the highlights of the Nigerian economic and political ecosystem for 2023 and we are also going to be discussing our expectations for 2024. So it's just Uti and I. So we'd love to hear your thoughts. So please let's hear what you have to say. Remember you can join this conversation, send us an SMS or what's up to it, 1-803-4663. Alright, so Uti, month of January, what was the major thing that happened in January? We started selling money. 2023, I don't understand. The lily redesign, the cash crunch, the rise of the of the cash black market. I saw bankers scaling fence, they were jumping fence for their lives. People in the bank stripping naked. People, I mean I saw an old man crying and wailing. You know, I saw a mother that could not pay her child school fees. Then POS people went bizarre. Absolutely. We were buying and selling money. We were, I mean everything, at that point in time, I think it was just pure chaos and the fact that the authorities then were coming after the bank, saying they were holding notes, they were doing all these raids. All of a sudden it was, they were giving the impression that banks couldn't distribute cash, which is their business, which is what we have, you know, they're there to do. I mean the whole thing was just a mess in execution. Failing to understand, I don't, I don't even think it was understand. Failing to acknowledge how much we're still dependent on cash, even though we've had cashless policies in place for, I think somewhere around 10 years. So it really was a huge hit for us and a dismal way to begin the year. I mean banks were inundated, banks were shuffling down because they just didn't have cash to pay people. You know, people were coming to bank branches and having to put out chairs, canopies, give water, like all sorts at that point in time. Really the first quarter of the year was really marred by all the cash challenges. And then we went straight from cash to elections in February. Because this year was the one year. No, no, 2023 was, you know, like literally right. That's why I said that it was in, it was just a lot of emotions. I remember going through my phone, you know, people have been doing this posting of their 2023 like dump. I just, where do I start from? From the excitement of the elections. I remember when I took my picture, I was in the UK. I said, no, no, no, no, no, no, I must come back to Nigeria. I must vote. Hell, share for yourself. We sit down for UK. They see my coffee and be watching the elections. Like literally, right, the elections came in February. It came with a lot of, and you know, for the first time, right, a lot of young people were really, really out there. You could see the consciousness of young people wanting to participate in the electoral process in Nigeria. And of course, the drama came with all the threats with all the The butterflies versus the ephedians versus the... Who were the ethical ones? Articulate. They were not relevant. They were not relevant. Oh my goodness. No, they were not relevant. It was a battle between, even though the result kind of like is trying to prove otherwise. But I feel, because based on, I went to like several polling units and the battle, PDP was not on that, on that ballot. As far as I am concerned, based on the voting, it was APC and Labour Party. It was Peter O'Bee and Tinnable. There was no, there was no article. So I don't know where that result came out from. But hey, but that was it, you know. I mean, the elections for me beyond, you know, the things that you said, I think it brought to the fore a lot of our unconscious bias. Absolutely. All the issues about tribe, all the issues about this is our own is vote for your son, vote for your person. Like all those, all of a sudden, we forgot that we were like a multi-ethnic country. Absolutely. And, you know, all the unconscious biases rose, both conscious and unconscious, heightened. They all rose to the top. And, you know, we got a glimpse of how, if we're not careful, there's a snowball effect that can just eclipse all of us. Absolutely. You know. So that election process was incredibly, incredibly divisive.  Yeah. The judicial panel. It's days to read the, their outcome and their findings, you know, then there was that whole tension afterwards of will the inauguration happen May 29th? And there was all this tension, then all of a sudden it seemed like people didn't care, but then some people were not letting go. There was all the issues that court cases, court cases, then it seemed like the Labour Party was imploding on itself. And then we sort of got through all of that. Eventually we got to the inauguration and there was a speech. And there was a speech. And there was a speech. And they were just, they just drummed the bobshell. But some of us went to bed, I woke up and the world had changed. Like literally, there was the other day I was feeling my tongue. You know, I, I stepped back. That's why I said that. See, if you do not know that God exists, 2023 should show you how, but you know how you are buying few 16,000 dollars, 10,000 dollars, and you are feeling it. Yeah. We moved from 16,000 to 50,000 dollars filling your tank. I've got skills. So literally, I keep on asking, please, where did you keep the money? Because maybe I don't, I literally, I don't know how I feel my car.  But even at that, I remember the first time I filled my tank after that fuel, after the subsidy was removed and it was about 36,000 something. And I remember paying and then I was like, what in the world just happened? So since then me, I just got into the routine. I don't wait for my car to go to empty. It's a psychological thing where I still want to pay a tinky, but every half tank, just go out of bed. You know, but I mean, and this is where we speak to the resilience of Nigerians. We went from 168,000. Yes, yes, 100,000 to six something. No, five something. We started on something. We started off, no, we started off four something. Yeah, we then moved to five. I think now we're at six something.  That's what it felt like. But we were here, you know, so the resilience. Nigerians are pushing through, we're suffering. And I remember we had a show then where there was talk about, I think the topic of the show then was sacrifice. Nigerians making sacrifices. And the things that we talked about there, funny enough, still came up in today's speech. We are still a citizenry being asked to sacrifice. But guess what? You are still passing. What was it 7.3 trillion? What was that that they passed over the weekend? Additional loans that we're just essentially mortgage in the future of our generation. So a lot of the things that we said in 2023 still ring true today, in that I mean, if I come to the President's speech this morning, so much, I mean, I try to understand it, or the spin that I'm putting on it is that it's a New Year's Day speech. So it's not overly, it should be positive. Absolutely. But then there was so much detail that was lacking for an administration that has been in power for seven months. And all that the President could state today that he did was I remove fuel subsidy. Fuel subsidy is not gone by the way. I was going to tell you that right now, do you know when the landing cost stylishly snuck back? The landing cost of petrol today is over 1000 naira. So how we pay 600 and something.  And then the second thing was the narrow devaluation. Now, well, not the devaluation, but the closing of the windows. So these things that have happened, they happened almost immediately in May, early June. What else?  You're re talking about renewed hope. You're talking about improving productivity. You're talking about how you're going to put policies in place. You're talking about how you're going to address minimum wage. What exactly have you been doing since the beginning? So you know, if you think about it from the perspective of I remember when, um, of the fashion I was in office, he used to have these 100 day in office. Yes, town halls. Yeah. So if we were to take 100 days in office, you should have had two town halls by now. What would you have said that your administration has achieved? And when you talk about renewed hope, nothing that we have seen so far. People are hungry. People are suffering. There is poverty in the land. So what exactly are you doing to renew our hope? It's not just by saying my renewed hope agenda. What is it? How are you renewing the hope of the masses? You started off, I mean, I remember then all the back in the days of Balablu and we are going to plant maize. And then, you know, you hadn't you had talked about how I do it. Thank you. You talked about how you were going to plant however, 100,000 or 150,000 hectares. Then, seven months later, you're not telling us how you're going to plant 500,000 hectares. Yeah. The 150 have you planted this? Where are we going to harvest? Where are we on that 150 hours there? I mean, I'm not a farmer, but I don't know how long it takes corn to grow. You probably know better than me. I mean, doesn't take long. Exactly. So have we planted that 150,000 acres? You were talking about food scarcity and shortages. What have you done? Tangibles. You know, and this is where for me, I think that his PR team and his media team need to do better. Because when you are talking about and we all know the positive impact agriculture can have on this country, the amount of arable land that we have in this country for agriculture is amazing. But then we have a security problem. So when you then talk about security, security, you just sort of glance over it. But then less than how many days ago, how many attacks have we had in how many different communities? Absolutely. Five people still got killed. Was it yesterday or two days ago? I mean, first of all, let's talk about the fact that that wasn't even mentioned in the speech. It was not, it wasn't talked about, right? You know, so there were, there were no tangibles for me in that speech, right? And when we take into account everything that has happened in 2023, I needed more assurances. Acknowledging that he understood that people were going through a lot is great. You know, that for me was probably one of the best parts of the speech in that, oh, guys, I am aware, I'm aware of what you feel. Now the way to renew hope, when you then tell me you are aware is to give me tangibles, is to give me timelines, is to tell me what to expect and when and then to continue the narrative. So your PR team literally needs to be on the ball, right? So if you told me you're going to plant 150,000 hectares, what kind of volume of maize was I looking at? What kind of value chain do we have? Where are we? Yes. What kind of value chain? You know how many cycles of maize that would have been used? So where are we? So how many tons of produce have we realized? How have we processed this? How have we used this? How has this come in to move the economy positively? It's the same thing with even the stuff they do. What's the that minister for humanitarian this thing? No, if that's minister, what is the parameter? Because if you really want to say that you are targeting Nigerians, the everybody's vulnerable right now. Everybody's vulnerable at different levels. Exactly. And the way you're talking about, I mean, we closed the year, inflation was 28. something percent. I mean, at this point, as you breathe air, you are getting poorer. It's like you have a permanent rat where you keep your money and it's just chewing through the thing faster than you can get it. It's that bad. Let's not talk about the free fall of the exchange rate, even though I think I was reading something about it rallying by almost 130 something there recently, but I didn't get the chance to read the entire story. But even the usual influx of IGGBs that we get in this festive season, didn't have a positive noticeable impact on FX. Can I even tell you what happened? So when I went to do my last year's on the 30th, I did last year's. Let me not be like say lost. So there was one of the I just just gave back at me, whatever. Not really, not even one. I think there were like three of them. There's lots of them. One of them in particular didn't have none. She had a hundred dollars. Do you know that she gave the last lady the hundred dollars with the hope that she was going to give her cash back? She didn't have the cash. And guess what? The cash, that exchanging that dollar would have even given her more money because she had already exchanged the dollar at a very crazy rate. For me, I just kept quiet like I was not hearing what they were saying. But she couldn't even finalize the transaction. We're in another cash box right now. So I mean throughout the last quarter of last year, I mean of course we know that one of the things that the president scrapped when he came into government first was extending the validity of the old notes. That gave us some respite. I think that was end of March. Yeah. I think that's when that whole when he's when he announced that the old notes were going to extend it to December 31st and then of course they came I think was it three months ago and now said they were extending it. It was indefinitely. Yeah. But the fact is there's still cash, there's no cash available now. So if you've tried, you may not have noticed. If you don't, if you withdraw cash from ATM, you'll notice that if you take your card to another bank's ATM now, you probably can only withdraw 5,000. For some banks, they've even configured it if it's not your card or card of setting back the push it out so you cannot withdraw. So all of these things, banks are having to find ways to manage that deficit where cash is not available. So where is the cash? So I would imagine I don't I don't have the facts to that, but I would imagine that at the time when cash was being collected in the volume that it was being collected by CBN, I would imagine that a lot of destruction had happened. That's the only logical thing that I can think of. And of course, production is now not able to meet demand as much as possible. I mean, if you, during the cash crunch, because those notes are being produced here, right, during the cash crunch, the new Naira notes, they were also you, I mean, if you took tissue and wiped it, it would come up. So really, really we've been through it. I mean, that that sort of also gave rise to a lot of the fintechs, you know, growth that we saw in that area. A lot of people opening accounts because, I mean, now you can buy plants in traffic and transfer. You can buy almost anything in traffic and transfer. Absolutely. It brought it to these pros. Yeah, you know, even though a lot of, a lot of pains, a lot of pain, I mean, that was one positive that came out of it. So very rarely, I mean, you and I went to the market and we were just sort of transferring money everywhere. Even though my bar was not working that day.  But so we're still, we're still struggling. You know what? Let's just take a very short break because, you know, after all of this drama, there was the, there were arrests. Yes, yes, yes. But we'll take a break, we'll be right back. Stay with us. All right, thanks for staying with us. Now, if you just tuned in, we're discussing highlights of 2023 and hopefully we'll be able to get to our expectations for 2024. Now, please let's hear what you have to say. Remember, you can join this conversation. Send us an SMS or WhatsApp<PHONE_NUMBER>3. Please send us a message. All right, so what do you mean? There, after all the, the settling in, the judgments from the Judicial Council, from the Supreme Court as well, and all of those dramas that happened, then there were now multiple arrests, right? The EFCC boss, you know, was arrested, MFLE, even though a lot of people are like, can they hold him by the jugular because he's like, you know, that one was just pure beef. Like, they arrested like everybody. Before we even said that, whether his right or wrong, whether his which one to, MFLE was arrested and I think he's still in custody or hasn't been granted bail. You know what? I was following up up until like two weeks ago. I know you went back in court at some point a few weeks ago. I think they were, I think they were, they were conversations around bail, I'm not sure. To be honest, I stopped at the point where he turned up at the court with a big Bible. A Bible that was almost the same size as him. And at that point I was like, you know what, I give up. I don't have what to know anymore. Why would decide what you are doing? Tell us. I cannot be following this story. Because after two weeks ago, I was reading where they had talked about him, buying off banks with proxy, right? Yes. Investigative report. Yes. Investigative report that came out saying that he bought out, I mean, he had a lot of fronts that acquired a lot of things illegally, right? So I mean, so at that point I said, see, you be alright. Because I was not there when you were eating the money. I would not be there, you know? But you see, so I want us to find a balance, right? So with the things that happened with our judicial system, the prior, I mean, post elections and all of that, of course, the arrest of Emile Feli and all of that, do we have faith in the judicial system? Jonathan, do we? Because again, this is, I get the fact that Emile Feli, whatever it is that is happening to him, a lot of Nigerians actually at that point, people don't even want to care. But I don't also want us to lose the fact that we must always find balance. And no matter what, everyone is innocent until proven without reasonable doubt that the person is guilty. So even though we are happy that certain arrests were being made, at the same time, was the process transparent? Was it clean? And do we have faith in our judiciary too? Because again, let's not forget allegations that were thrown around our judiciary. They were saying that certain monies were paid, especially to the judicial panel, that committee, right? So monies were paid to them and again, allegations of never getting a fair, fair, was it called judgment, when it came to the aftermath of the elections, right?  There has always been and in the face of nothing significant changing, there will always be mistrust, distrust with any institution of the government. The judiciary is the same thing. So today, even if I follow the due process, do the people believe I follow the due process? Even if I attempt to be transparent, do people believe that I'm actually being transparent? There are a lot of challenges that are being faced. Do we have faith in the judiciary? Absolutely not. Do we trust anything? Once it carries the taint of government, we naturally have our backs up.  You can trust what I say. You can believe it. I'll do what I'll say. I'll, you know, I'll do what I have to do. And I use that to piggyback to the to the president's speech. He also talked about working to bring in foreign investment and how, you know, Germany. Meanwhile, we are seeing capital flight. Is it not here that how many pharmaceutical companies closed down and carried their money and they left, yeah. Is it not shop right that, you know, so we're the, the, yeah. The game shot down in 2023. The game shot. Absolutely, we're seeing companies pull out. And, you know, for me, again, this is missed opportunities and that's why I keep talking about his PR team and being able to tell the right stories for him. Now, if you take the, and the media, we also have a responsibility, right, to share the right stories and, and, and let the populace know the things that are happening, right. There was a lot of shout about companies leaving Nigeria, but then there were lots of companies that also came into Nigeria, right. Even in Lagos, there's the, the car brand that's trying to build it as a plant. There is, what's the company that makes diapers that also built a large, or are building a large factory. There is, there's the other company that also does hair products. What was that one called now? The, the extensions, the extensions that make the darling curl and all of that. Also, again, commissioning the big factory. These are all companies that have invested heavily in Nigeria. So, they were able to tell a story. This is the balance that you're talking about. You can't just say, I will get in capital and back it up with, oh, like XYZ that has happened. And then I will acknowledge that some have gone. Absolutely. Then I can now see that truly you're not just trying to wash me with what you're seeing. I can then start to see that, oh, there is an understanding of the scope of the problem. There's an understanding of solutions because one of the things that I find right now that when we talk to people, everybody's like, the, the diehard fans are like, he's working, he's working, give it time, give it time, give it time. But in general, without information, without clarity, I don't, do I know that it's working? I don't know what you're doing. I don't understand it. I don't know what your long-term goals are. I mean, and speaking to clarity and information, right, I feel like this is where the media then comes in, right? Really. And you see, I like what you said, you kept on going back to the PR team. And this, this PR team cuts across all government agencies. Absolutely. It's not even just every public office because again, there has to be proper strategies, you know, for information dissemination. You can't just have anybody because the person is your person. Yeah. Get professionals on board so that we can actually look at these things. Where we are wrong, we admit it there and there. So that shows that you are being honest and you're transparent with your people, right? I suppose just trying to whitewash it and make it look good. I mean, I remember one of the topics that we talked about sacrificing, right? Yeah. When people were saying that imagine in the heat of all of these things that happened, you bought SUVs for your lawmakers, right, at ridiculous amounts. Even if you had bought SUVs, uti, right? And you even said, you know what, let us patronize the local manufacturers of SUVs in Nigeria. No. You are all the way to the great end. Because if you even take the people who were existing office holders, maybe you're bought them card before, they didn't amortize it. I mean, these are the things that you need to show us that you are also tightening your belt. The sacrifice cannot always come from the populace.  Like nobody wants to build that car. So there's so many ways in which you can be more prudent. You know somebody was saying there's about their salaries. I said, how many are they? There are less than 8,000. How many are in the senate? How many are in the lower chamber? Like literally, that money is a drop in the ocean. But if we're serious, we start to make some symbolic gestures for starters. Then we start to have real plans about, you know what, how are we going to cut this recurring expenses? Because you are borrowing to your government. You're borrowing to pay salaries. You're going to pay. I mean, and most of this borrowing do not even go into capital expenditure. Exactly. It's recurring expenses. Which is a big problem for us. So again, so I mean, we've touched a lot on a lot of things, right? So how do we move away from this? Like I hear you, because again, some in the midst of the conversation, you're already preferring solutions as to what our expectations would be like, you know, for 2024. I want transparency. I want a government that feels my pain. I want a government that understands that we are all in this together and we'll tighten our belts together. I suppose us, I mean, this is why the drama that happened with COP28, right? Where somebody was called. I mean, even just in the size of the president's entourage. That came to Lagos. Yes.    You know that everything matters.  What does that tell you that this person is doing just fine? You're doing just fine. So I mean, and this is the conversation that I want some level of humanity when it comes to governance in Nigeria because the truth is we are humans, right? And Nigeria's, in fairness, Nigerians don't need too much. We are not asking for too many easy going people. We are the easiest people to govern. As I said, by the little that we get, and that's what even makes it painful, right? Because it doesn't actually take much to wow us as Nigerians. We take the little and we're just like, whoa, whoa, whoa, we're so excited. I mean, it really doesn't. And I mean, there's so many places where quick changes, low hanging fruit, quick wins, can be made. But like I said, it's all about the narrative. What stories are you telling? Right now, the renewed hope cannot be renewed because nobody can see the light at the end of the tunnel. Everybody untouched. You know, so we don't say what they say, renewed hope. It means there was hope in the first place. That's why I say it. There was never hope anyway. And they not done anything in the last seven months to bring hope in. Absolutely.  If I can't see where you're going, I expect that you know where you're going. And then I place my own faith in you. And you commune, I believe that you are leading and then you are communicating to me so that I continue to have that faith in you that we're going somewhere and then I see the result. But right now, all we keep saying is more and more promises, more and more promises. And the promises are light on information, right? So this 500,000 hectare weight, right? Is it a cut across states? How are we addressing security to make sure that the issues that we're dealing with now because I don't get why we're having food crisis in the first place was because of the insecurity a lot of farmers had to abandon their farms. A lot of farmers were killed, a lot of farmers were kidnapped, a lot of farmers, you know, had to pay ransom to go and get their harvest from the farmlands, right? So these were the issues that even brought about the food insecurity in the first place.  Where are the lands located? Where would it be? Would it be, would it be okay in partnership with, I didn't have said this thing several times before. I will repeat it again. We were called to come and bid for a land, a farmland that was owned by Lagos state government. Just before someone who came in to power in the previous administration, we came, we bidded and everything. The next year they said, okay, we're waiting for the results. Next thing they say, oh, that it had been allocated to someone, right? This land was in Ocean state. It was owned by the government. It was a palm plantation. So because we are palm planters, right? So it was like a square peg in a square hole. So they said, come and bid and all of that. But we never got any information. Only for us to just wake up one day the next day in the papers, I woke up one morning and I saw a Lagos state government acquires new farmland. They didn't even mistake to even, they, maybe they should increase the hectares. It was the exact hectares, exact location, exact this. And I said, why, how are you acquiring something you already owned? So it didn't make sense to me. So I ever since that time, any time I see things like this, and that's why I love what you're asking for, because it is vague. If you give me details, you cannot come back because there is a lot of repetitive projects in Nigeria. What you did 10 years ago, you come back and say you're just about to do this layout. And it's a repetitive project. You've done it before, right? You see, they never executed it. So they put it back into the project. And if we had real forensics on our budget, Uti, we will not be where we are today. We will not be where we are today. If we had real forensics. The budget is part of, I guess, the key things that we talk about in 2023. Of course, I think there was, oh, I forget his name now, the man who's challenging the way the budget has passed the 2024 appropriation and that. So the truth of it is there's enough issues there also. And when we talk about going into 2024, I mean, when we won't talk about results and measurement of metrics, I think inflation is at about 28%. Food inflation is over 32%. It's crazy, Uti. All these things you have to plant, please, I see up in this food inflation. How is it going to bring it down? And those are the things people want to hear. Not just, I will do, I will do. We will do, we will do. Well, what have you done and what are the results? But like I said, when we started the show, I am positive. I am hopeful, call it wishful, call it whatever you want to call it. But I am, I believe that the motivational speakers that we were, that's we kept saying it is well and will be fine, persevered, be strong, we made it, we did it, we're here. I think we should carry that into 2024. We have seen, at least I would say, I have seen that there is an understanding of the areas that we need to fix. So those key things like the subsidy, even though whether you argue it here or still not here, there is at least some awareness of some of the big things we need to fix. I mean, I remember he also talked about the refineries coming online, Potatakot, Tangoti. I mean, the Tangoti, the number just, the days keep just rolling, right. Did he have to, did he have to commission that refinery? But you see, this is what we are saying, because you wanted to put it on that somebody, somebody's you know, but hey. So, so let's hope that we will see, I think, you know, we didn't, GDP didn't grow as much in 2023 compared to 2022. So let's hope that if we see a dedication to the things that he mentioned, because that's the final bit I will speak about in this speech, he mentioned the things he was supposed to mention. Yes, security, food. Now, if they actually, gradually do it and get through it, right and deliver on it, then things will be better. Absolutely. But as it is Nigeria and it is our current leaders, everybody pray. I was just going to say that in fairness, look within, find, I mean, people are actually getting remote jobs. Just find ways to just don't jackpile, please. Please, you push not leave. All right, so good evening, my wonderful sisters. Welcome back to the new dispensation. It shall be well with us. Amen. It shall be well with all by God's grace. We will be amongst those that God will pave ways for. Amen. Now, and other years to come, compliments of the season. Thank you so much from Mrs. Adeneji from Aja. Oh, wow. Thank you so much. We are happy to be back. Yes. We missed you guys, you know, but you know, we have to take a break every December, when I know this, but we missed you guys. We're happy to be back and we're hoping that this year truly we will make a meaningful impact. So our conversations will truly bring, you know, we want to be able to bring real time solutions to people. So whatever the issues are, we're able to tackle it, you know, with the information and you run with those kinds of principles and all of that, implement them in your lives and we actually see results. So I'm looking forward to testimonies in 2024. We would find as much as possible, we would look for opportunities. When we find those opportunities, we would share as well, because again, I believe that the difference between a rich man and a poor man is the amount of information that is in somebody's head and it's not in the other person's head. It's as simple as that. So if we get ourselves informed and we continue to pump those information within ourselves and implement those information, I think things will change. But Uti was really lovely doing this with you. Absolutely, yay. Welcome to 2024 again. So what are we doing again tonight? We're hanging out. Yeah. Yeah. We have to go and do January 1st hangout. Yeah, I agree. Thank you so much for watching, guys. Now, before we go and show you followers across all social media handles that waste your Africa, you can drop your comment, interact with us further and share. Remember to share. Engage on social media. Share with families and friends. This year, we have been begging you to share. Don't watch it alone. Don't watch it alone.  Now, remember, if you missed our quote for today here, it is again, whatever happened or whatever has happened in the past year, the new year brings fresh beginnings. Let's be hopeful for 2024 and believe that fresh things will happen this year for all over. We'll see you guys tomorrow at 8 p.m. As we bring another great conversation to your screen. Ciao.


If you get an opportunity to deliver a Toastmasters speech project outside of your home club and you want to know what is the right way to do it in pathways, then this video is for you. I found an opportunity to deliver one of my speech project as a guest in a club. I want to make sure that I submit an application to the VP education for her approval before delivering my speech. Start by going to Toastmasters.org and then we can go to Base Camp by selecting Pathways and go to Base Camp. If you are a member of multiple clubs, make sure that your home club is set to the right one because the notification will go to the VP education of that club. In my case, I have set my home club to quit Challengers Toastmasters Club and click on Base Camp. Next, I will click on the Education transcript to access my education material and the speech project that I want to deliver in an external club is from this path called Presentation Mastery. If I click on the open curriculum, the project is in level 2 and this is the project I want to deliver, Introduction to Toastmaster Mentoring. As you can see, I have activated the project, I have gone to the material and I am ready with my speech. Let me click on Paths and Learnings. Next, I will click on this button with the three dots and I get several options. The first option is what I am interested in, Add External Training. So, let me click on that. This is an application to the Base Camp Manager, typically your VP education, to approve your speech outside of the home club and this could be in another Toastmaster Club that you are not a member of and it could be even in a non-Toastmaster environment as long as there is a Toastmaster Present to evaluate your speech. Give a brief description of your assignment. So, let me type Level 2 Speech at Don Bosco Toastmasters Club. Describe your plan for completing the assignment. Let me inform the VP Education that I plan to deliver this project on Friday. Next, specify who you will present or work with Don Bosco Toastmasters Club. Indicate the start and completion dates, that's just one day, Friday. Next, select the path that you are pursuing. In my case, it is Presentation Mastery. Next, the project within that path, in my case, that's Introduction to Toastmaster Mentoring, which is here. Next, you will choose the location for completing the assignment and there are two choices that we can deliver a project in a club other than a home club, which is my case, or it can be a project that you deliver outside of Toastmasters. Let me choose in a club other than my home club and finally, you can attach a document to support your claim. For example, an agenda of the meeting. I happen to have the agenda, so let me select a file and here I have attached the agenda of the Don Bosco Toastmasters Meeting and that completes my application. All I have to do now is to click on the submit button and a notification will go to the VP Education of my club to approve this request. Let's wait for her approval. Hello, my name is Priscilla Diaz and I am the VP Ed of Kuei Challengers Toastmasters Club. I have an email notification from Basecamp and as you can see, there is a request for an external training. I can see here that Agustino Bereto, a member of the club, has requested an external training request approval. His request was sent to me yesterday to approve that. All I need to do is to log in to Basecamp. A hyperlink is provided in the email and I will use that to log in to Basecamp. I am already logged in to the Toastmasters website and now I will click on log in as Basecamp Manager. Here I will click on the pending request as this is where I need to approve a request. So here we see a request sent by Agustino Bereto and what he is requesting is a level 2 speech at Don Bosco's Toastmasters Club. Let's open and see. Here are the details of his request and that is to deliver a project on Friday 5th at 3.30 pm. Introduction to Toastmasters Mentoring. I just need to check one more thing. This project has been activated by Agustino Bereto. To do that, I will now click on his name here and that takes us to his curriculum. It was Presentation Mastery so I will check if he has activated his project. It is level 2. Project is Introduction to Toastmasters Mentoring. It has been activated. Everything is in order and now I can consider approving this request. To do that, I go back. All you need to do is click on this green tick here. So let's do it and I shall put a comment here to encourage Agustino Bereto to complete his project. Submit. I have just received a notification that my request for an external training has been approved by my VP Education. When I open my inbox, I see that I have a message from Basecamp indicating that my external training request has been approved. Let me click on that. The email has details on when the request was approved and more importantly it has a link that will directly take me to my Basecamp curriculum. When I open my curriculum, I find a new training level 2 speech at Don Bosco's Toastmasters Club. Let me click on it. This is my training request. Let me click on the options. Here I can see the details of my request when it was made on 5th of February, when it was approved and more importantly the comments from my VP Education which says all the best for your speech on Friday. Now I am ready to deliver my speech at Don Bosco's Toastmasters Club. I just completed my project and I think it went very well. The mentoring project had two objectives. One is to identify how Toastmasters envigions mentoring and the second part was to share my experience as a proteja. But this is the fifth time I am doing the same project. So I reached out to my evaluator and I told him let me spend the 7 minutes doing what I really love to do best explaining to members the clear distinction between coaching and mentoring.  And this is a very important aspect of a Toastmasters learning program. You can work with your evaluator to focus on areas that are important to you so that you develop yourself. Having received the feedback from my evaluator, I can now go to Basecamp and complete my external training project. Since I have completed this training, I can now click on the button Mark Complete. The request has one more step. A notification will now go to my VP Education indicating that I have completed my external training and to mark it as completed. Let's wait for her. Hello again. I have just received an email notification from Basecamp requesting an approval. Let's check. The request is to approve an external training completion. And to make it easy, the link is in the email. So I will click on the link and go to Basecamp to approve it. I will click on login as Basecamp manager. I will click on pending request. The pending request is again from Agustino Barreto where he delivered his level 2 speech at Don Bosco Toastmasters Club. Agustino Barreto had shared with me his project which he posted on YouTube. Skills that they are good at. But we need one mentor to be with us on a journey in Toastmasters. That was an impressive speech by Agustino Barreto and I am happy to mark this project as completed and to mark it approved. All I have to do is click on this green tick. Let me leave my personal feedback in the commence column and click the submit button. And that's it. If I now go to parts and learnings, the project for the external training is no longer in the active list. If I click on this button and choose completed projects, I can see that the project level 2 at Don Bosco Toastmasters Club is marked as completed which means it has been approved by the VP education. The final step is to go to my active projects, go to my path presentation mastery, go to level 2 and the project introduction to Toastmasters Mentoring. Click the launch button. This will take you to the point where you had left off which is to prepare for the speech. Move forward till you find this section which says assess your skill after and complete the assessment. Once the assessment is completed you should see this button submit and when you click the submit button your project is completed. Click the forward button and you will get a message congratulating you for completing the project. Close it and you will get a tick mark next to the project. This indicates that this project is completed. So there you have it a complete guide on how to manage your external trainings in the pathways education system. I wish you all the best in your Toastmasters journey of communication and leadership.


Hi. Welcome to Learning the Basics of Apache NIFI for IoT. I'm Timothy Spann. I'm the principal data flow field engineer at Cloud Era. And let's get into it. As I mentioned, I'm a D zone leader, big data MVP, and I run a virtual meetup. So join me at our next event. What we're going to cover today is the basics of Apache NIFI. So first up, what is NIFI? We'll give you some of the general capabilities. I'm going to do a tour in the environment live, show you what we can do, what everything does, so you learn your way around the environment. Then I'll show you a bunch of examples doing Internet of Things flows, how we do data processing, a couple of options, how we could get data in from different edge devices, and then what we could finally do with that data, all from one easy to use open source tool. So Apache NIFI is great because it doesn't just work with one type of data. So if I have structured data, that's fine. Semi-structured like JSON or CSV works, unstructured data, which can be as instruction as binary data, a zip file, an image, a video, any sort of binary data that maybe you don't need to process, but you need to move from one place to another. We could do that. And you could do it with almost any type of data you might have in all different varieties of industries or home data. Done this with military construction data. So today we'll cover a couple of different common data sources that you get when you're getting from IoT, things like MQTT, REST and web and Internet sockets, Apache Kafka, which is one of the messaging buses. I'll show you how we interact with files and different types of logs, outputs from Python, which could be running on devices. And when we're transferring files from different servers or devices, we often will use something like FTP. And I'll show you some of the best practices when you're trying to build these flows so you can solve any of the issues you might be having right now with edge data ingest. As a reference, this is a typical layout for a simple NIFI-driven application, whether it's IoT or not. So we've got data sources coming in. NIFI does the ingest, does some transformation validation. And in most cases, we'll push it to some storage layer such as Impala. Or I'll publish this for some data syndication with Kafka so they can be used by other servers, other systems, other consumers of data. And very often that data will also feed into machine learning data science applications, where we might want to do some model execution to get some classification results, whether that's deep learning or just regular machine learning. And we've got a couple other open source tools that help us do that. So today, we're pulling in some data, sitting on some routers and devices. We've got logs coming in. NIFI is handling all of this and connecting us right into Kudu. I'm also going to show you a little bit of what Flink brings to the table. Apache Flink is another open source tool designed for doing ultra-fast event processing. And what's nice for our use case today, I'm going to take device data, get it through NIFI to clean it up, get it into Kafka so I could share it. And then Flink is going to read it, but it's going to do it in an interesting way. You don't have to write any complex applications. You don't have to deploy things in a difficult manner. I'm just going to write a simple select star to be able to grab that data, event a time as it comes into the system. And you can imagine what you could do with the power of SQL. And then what's data if no one can look at it? So I'm bringing it into Kudu table. Kudu is a data storage engine that we have Apache Impala on top of. That shows up just like any other database table. So we'll use the open source visualization component Apache Hue. So let me run SQL, see the results. I could also do some simple charts. But at a minimum, this gives you an idea. I can get this data. It's coming in. It's in a format that people expect if I need to build reports, extract data, plug this into your reporting tool. I could do that all from whatever open environment you have. Now I mentioned what knife I can do, but where did it come from? You know, what's some of the background here? So this is right from Wiki. I think they summed it up pretty well. Knife has been around for almost 14 years at this point. It was originally a US government project. They needed to be able to grab data from all different systems wherever they may be. You know, basically extracting it from systems, doing some kind of transformation, loading it somewhere else. It was originally called Niagara files, because the idea of a waterfall of data, they shortened it to Knife, which is little catchier and uses less space. And then in 2014, this technology, which had been mature at that point, became open source and donated to the Apache Foundation. And that's been out there for people to use for a number of years. You'll get these slides and you'll see a number of resources that I've included, including my blog and my Everything Apache Knife GitHub that has a lot of information that'll help you, you know, on your journey to learning Apache Knife. Now, one of the things that makes it really powerful is, you'll see when we go into the environment, it's an open source web-based tool. It's all drag or drop. I don't have to write scripts. I don't have to compile. I don't have to deploy code. I'm dragging and dropping connecting boxes, doing flow-based programming, but behind the scenes, this is not just for simple use cases. I can scale to millions of events a second, can ingest terabytes or petabytes of data, and I can make it dynamically controlled based on what I'm doing. So if I want to do, you know, more data than maybe I can handle, I could set up back pressure so that it'll queue up while I'm waiting to process. I have ability to adjust what kind of guarantees I have on the delivery of data. I could decide what the throughput levels are, how much latency I support. All those sort of things are adjustable right through the UI. Some of them can be preconfigured through configuration files or through administrative tools like Apache and Bari or Cloud Era Manager. Everything allows for full security. We have SSL everywhere. HTTPS can be supported for ingest, for communications, for exports. Same with a secure FTP, pretty much all the secure TCP IP channels. And what's beyond that and something that was part of the original focus of the product is that we have full governance and data provenance. What this means is every piece of data that comes into the system, I have a full record of it, a full audit log. You don't have to hand wire something up to do that. You don't have to be thinking of a strategy to figure out what's happening with my data. I know it every step of the way, what data I have, what size it is, when it arrived, how it changed, who changed it, what was the value before, what was it after. This is great if you've got secure data or things that you really need to keep track of. And then beyond that, you may say, well, I like NIFI, but it's missing one critical connector. One critical piece of data it doesn't work with. It doesn't have a connection pool for some certain item. There's some little thing missing. Fortunately, you can extend this. Everything again is open source. The API to add your own processors and controllers is very straightforward. We give you a Maven archetype for developers out there. You type one command line prompt. It builds you a runnable example. You just have to put in your code to do something and whatever parameters you want to do. And then you drop it, comes into the screen like one of the boxes you see here. So if you wanted to write your own type of routing, you could add that. That might let you integrate with one of your own internal systems that may be proprietary or may not have an open source component for it. Or if you want to connect to an existing security or monitoring system, those connectors are built there and they're very extensible. If I need to create a new kind of task, very easy to do. Now, one thing that's unique about NIFI, but will be very familiar for people who've used the internet and used the web. How it works is when we bring in data, we have the content. And that could be part of a file, it could be JSON, whatever it is. We call that in the flow file the content. Now, there's another piece which resembles the headers and HTTP. These we call attributes. These are key value pairs that we put metadata in or any data that makes sense from the previous action. So if I'm loading a file, I want to know the name of the file, the size, the path I got it from when it was last changed. Any of that sort of metadata that you have access to, we like to put it there. If you write your own, you could add whatever values you want to these attributes. It's also a way that you can not change your data, keep it idempotent and add enrichment around it without changing that data. So having that header and the content live together but be slightly separate there is important. Again, they're all tracked with the provenance. Now, overall, NIFI does some pretty, it's a pretty simple three step process that most people have. When you're trying to look at a problem, you say I need to acquire some kind of data usually. And NIFI has almost 100 or more out of the box, different connectors to get and acquire that data. Now, there's also a ton in the open source. I've written some because sometimes you come across something that maybe is only interesting to you or it's a smaller community or it doesn't belong in the standard part of NIFI. So you write a processor to do that. But out of the box, you've got JDBC, you've got all the Hadoop components, all the cloud sources, all the TCP IP sources, all the major file formats, whether it's XML, HL7, JSON, a ton of different things are supported. And when I bring it in, I could do those things I mentioned before, whether that's routing to determine what happens next or maybe I throw the data away, transformation, and that could be it's zip file, unzip it. It's a tar file, split it up into multiple files. If it has secure encryption, decrypt it. If it doesn't have encryption, encrypt it. Grab IP data and geo-enrich it to get the lat long. Translate it from JSON to Avro. Lots of different things you could do. Make two copies of it. Turn two records into one record. Lots of those sort of things. And there's no limit to how many you could do. I could take one source of data, send it to 50 different destinations. And that's the final part. You did some processing. Now that data is changed or I've changed those attribute metadata around it. Let me deliver that somewhere, many somewheres. So maybe we'll see in the examples I'm sending it to Kafka. I send it to HDFS. I send it to an Apollo table. I send it to a Slack channel. Could have sent it to a database, file directory, email. Pretty much anywhere you need to send your data in an enterprise system or in some kind of research facility, you're able to do that. And now under the covers, we've got 300 plus of these processors, plus hundreds more in the open source. You could just pull in yourself. One thing I wanted to add there is this is not a fragile system designed to be clustered, scale up to, you know, hundreds of nodes, millions of events a second with guaranteed delivery there. It's a nice system. And even though it does look like just a GUI, there is version control under that. So I need to make a flow to do something. I save my versions and then I can have a DevOps tool, push that to another server or make that available in the open source for people to use. And I'll give you some of those flows in a link later. You can download some of mine that we're showing today. And you can use them in your own environment. Now we touched on the provenance. This is the lineage that tells me what everything happened. And what's nice is it's all indexed. It all has a unique ID for every file or event that came in the system. It's got a timestamp. It's got everything that changed. This comes in really important if someone tells you, yeah, I gave you a file with 10,000 records. And then when you deliver it to where your final end point is, you only had 500 or none. What happened to that data? Did it really come in? What did it look like? You have all the data to know. And it's not just in some table or directory somewhere. This is live data that you could use as part of your coding. So you could check, you know, number of records at some point and say, okay, I only got a hundred records. They told me a thousand when it started. It was, you know, 200, you know, what happened? Let me send an alert. Let me change the data. Make me retry the data, all those sort of things there.  I can look up the key, match that to a unique ID, then say if it came to Kafka, I can match it to an offset and a topic and a partition. And all of this provenance data, I could push to things like a patchy Atlas or to your own tracking system, which is stored in a table and people could search, okay, where did this key come in? How did it change? You know, how big was it when it came in? All that sort of data is available to you. This metadata can be very valuable if you have audits or if there's any government regulations around your data. Or you just don't want to lose data so you want to know what happened to it. Another thing that's come in handy to me is sometimes you have different types of data. I have data that comes in every hour. That's a standard load. I expect it every hour. It's the standard data. We process it when we process it. But on that same channel, I could also have an alert that says server seven is running out of disk space. It has minutes before it's going to crash. I don't want to wait for that big load of data that I process every hour before I could send that message. I don't want to have to write a separate NIFI cluster to just do alerts. Every step in here, and you'll see these cues when we go into the examples, these all have the ability to have priority. So I can prioritize those alerts to say if an alert comes by, you know, this attribute will be set, push them in front of these other messages. They happen every hour. They can wait. Now, another thing that's come into play in the last couple of versions of NIFI is a lot of people have structured data. It's very common. Structured data can also mean semi-structured data that follows a standard schema, things like CSV and JSON. They might always look the same. You know, I always have the same field names. Always have the same types to them. This is a schema data I expect from a microservice or it comes out of a database. It always looks the same and I'm going to put it in a table with the same format or a known format. So I could use these schemas or NIFI can guess what that schema is for you. And it could do things like run a SQL statement against that data while it's in process. This is nice. I don't have to learn regular expressions. I don't have to try to figure out some custom logic of how to translate data between types. You know, how do I route this one? Okay, I have something that routes CSV. Now they tell me the data is JSON or XML. Now I've got to figure a way to do that. And then at the end, I always want the data to come out as Avro. You know, where do I do that step to convert it? How do I make that conversion easy? By having a standard schema, I can easily read it and write it to no matter what type it is. And do those translations as part of a routing. So I can have SQL on the events as they come in, route it based on that SQL, transform it based on that SQL, all in a single step operating in thousands of records at a time. So it's very fast, but it does all the functionality you need. And I'll show you a bunch of examples of that. This is a great paradigm if you know what your data looks like. It doesn't matter if it's coming from sensors. Works great with IoT. I'll show you a couple different sources of that. Another featured NIFI has is some people will tell me they don't want to have a cluster somewhere. You know, I run NIFI when I need it. You know, maybe it's I want to consume a record from a file, push it to Kafka or read from Kafka, manipulate, transform the data, push it to another topic. It happens as a job or I only want it to happen when an event occurs or I want to schedule it. I don't want to set up a cluster for that. Maybe I'm running on Kubernetes, maybe in Docker containers, or maybe I just don't want to run a server. The stateless engine lets you do that now. It gives you the functionality of NIFI, but I don't have to run that UI. I don't run a server unless I'm running your flow. So I'm just running flow at a time and I just run it once, complete it, or I can have it continuously running until someone wants to kill it. That is very helpful for a lot of use cases, especially ones where you want something to happen in like a one transaction or one event. That's what the stateless engine is there. So if you've seen NIFI in the past and you didn't need a web UI, you don't want to use any disk for your actions, but you like the idea of NIFI simple flows, the stateless is the great engine for you. It comes with the standard build of NIFI.  You set up a configuration file that looks like this, tells me what NIFI registry, we mentioned that for version control, which one of those I'm using, if they're a login, what bucket you're using, which is something like dev or production, what individual unique ID for that flow, it'll grab that flow, apply your parameters, apply your SSL and any Kerberos credentials you might have, and then just run it for you. Makes it really easy. This is something you could trigger with DevOps tools, trigger in a cloud environment, spin it up, run it, shut it down. Something that's very important if you have those kind of event at a time, you don't wanna leave a cluster running. Now those parameters also come in handy if you are running a cluster. We can connect those same parameters, set a group, share them, have them secure. It makes it very easy if I want to run that same flow, but I have different values there. It's a different server name, different login, different Kafka topic, different table name. You know parameters. This makes it very reusable. Something you could save once, pull out of the registry, put in another cluster, or run it in stateless mode. That's a nice one. I'll just show you today, retry flow file.  Maybe it's offline, maybe it failed. You know, there's lots of things. Maybe my network is slow. And let you configure that programatically to decide, I'm gonna try three times. I'm gonna put a weight in there. Maybe 10 seconds between tries.  So in this case, you see beneath here, I've got data coming in. I try to push that to Kafka. If Kafka server is not up, or I can't get to it for some reason, I'll try a couple times. And then when that doesn't work, I push it to something very stable like HDFS or a object store. Now, one thing you'll notice when I go into the demo is that each little connection between these steps in a flow, there's a little name thing that says queued on it and it may have a number on there. This is where we do back pressure. These are little queues that make sure there's data that while my process is running, if it's running too slow, the data will queue up here.   You could set a fixed size, or you could use our machine learning with a couple of different mathematical equations or create your own that decide, okay, I'm okay with this growing 14% based on average usage and I'll let it dynamically adjust the size of these queues so we don't run out of space and trigger back pressure. Those are all options you can set. There's a lot of options in each individual step. What's nice is this is each step. So if I have a thousand of them, but I'm only care about one, because that's the downstream one that goes to Oracle, that one I can configure, and I don't have to worry about the other ones, but I can set defaults if need be. Now, another thing that's important, if you've done Spark, if you've done Impala, Parquet files are extremely common. So we've added readers and writers for them so I could do something like take adjacent file off a directory, do a SQL query on it and write it instantly as Parquet. So you've got one step to take raw data, convert it into data that's friendly for Spark and Impala, fast indexed, and you don't have to do much else. And also because it's using these record paradigms, I can grab thousands of records at a time and send them out. So I don't have to worry about any kind of small files issue. I've got links to a couple of articles that help you explore that. Some other features of NIFI that are nice. We've got a bunch of different reporting tasks. So if you have existing reporting tools, we can publish into that. We have a couple of different ways to do enrichment on these records, but I think the most critical, if you're doing any kind of ELT or ETL, is these lookup services. We had a couple before. Some were based on CVS. Some were based on XML files or Mongo or Redis. But we've added some real enterprise ones here. We've got one for database. This connects to any JDBC store, commonly relational database. The Kudu one, this is a great one. Kudu's really fast, so is HBase. So this will let me look at a field in a record and replace it with something. We also have one to do this with REST. So if you've got REST-based microservices you want to use to take a value and transform it or augment it or just do a lookup. I get the name Tim in and I want to look up my client ID and put that in the record. I could do that in two steps, very fast at scale, thousands of records at a time. Makes great for loading data. Now we mentioned running all this stateless NIFI. That's a great way to do it. But we also sometimes need an actual cluster and that needs to be stateful. And we need to be able to have three, five, seven, a regular cluster amount in case a server goes down or gets slow or crashes. So we use ZooKeeper to keep that in sync. Every one of the nodes has a ZooKeeper client. And then the ZooKeeper will elect a cluster coordinator who decides how jobs are managed and who's in charge. And then you've got a primary node. We use this because in some use cases you will need to run a job on only one server. And that could be because a file exists and if five servers try to access at the same time, it's not going to make sense. Or there's a lock on it. It's a server like Oracle and maybe I can't hit it with 25 concurrent connections and have a good experience. Or I only want one copy of the data and it really can't be broken up at that time. Let one NIFI node read it and then I'll distribute it after that. NIFI has built in load balancing and distribution. We mentioned version control. It's about as easy to connect as you can imagine. We talked about data enrichment and transformation. Those lookup records make it really easy. It could be as simple as looking up via a file or we showed some of them before with Kudu or databases. Ingesting databases and putting them into multiple data stores is as simple as a handful of steps. I've included some articles there. Finally, I'll show you some example IoT flows. This one you're seeing right here is about as simple as it comes but in two steps, I read data from Kafka, put it in a permanent store. When you look at this, there's no mention of field names. There's no mention of anything other than a table name and a topic. Then we use a schema to know what that data is, transform it into the type it needs to be and store it where it needs to go, makes for a rapid development experience that you could push right to production. As part of this, NIFI does have some hurdles to get past. It's so easy to do. People will often not reuse things. They won't think of using parameters. They won't realize that what you do in NIFI can be very reusable. They'll make a lot of one-off things. They'll put a lot of hard coding in there. Then when someone else wants to use it, they'll have to write it from scratch. You're not getting your best experience with NIFI then. Use parameters, make things reusable, put them in a chunks as different process groups so other people can use them in your system. If you need a custom processor to do something that's maybe specific to your company, or if you already have Java business logic, let's wrap that in a custom processor so we could deploy it. Use the ones that are supported out there in the industry. Clutter has written and tested a lot of these in the enterprise. Those are known to be fast performance and do what you expect. If you could use record processors, do that every day. If you know what this data is, it is faster, easier, much better experience. Let's look at a demo here. It's nice to talk about it, but let's see what NIFI really can do and what is the power. Now, this is perhaps the simplest example I could show you. I'm grabbing some transaction logs and all I need to specify is the directory. I'm telling it, let's start at the beginning of the file. I'm going to split those up. One line becomes a flow file. As you see here, we already have 300,000. It builds up pretty quickly. This is that queue I was talking about. What's unique about NIFI is I could start and stop things without breaking anything. I can configure this right here. I can name it. If this is something you might want to check later, you might want to name in it. Remember that priority? I could change that right here. If I have an attribute, I could add it as the prioritizer. I could change how many objects, how big they are, how I want to handle load balancing between nodes. I could round robin it, partition it based on one of these attributes, send it always to one. I could also compress that data if it made sense for me. What's also nice is that data sitting in the queue, it's not lost. It's waiting. As you see here, we could see a number of the attributes involved in this particular event. Name of the file, that unique ID we have for each one, how long it's been sitting in the queue, how big it is, what type it is, those sort of things. I have access to the actual data, which is a line from a log. Then when I'm done, I could just push it to Kafka. I have a broker. I set my login information, what topic it's going to, by using transactions. Do I have a schema? What's the name of this producer? That sort of thing. Let's send 300,000 messages there. Pretty straightforward. This is one flow just to do that. As you see here, I stopped this. This is still running and it's running after. We don't lose data because someone stopped something where something went wrong. Like here it's mad I stopped it. Sure. What we can see here too is we get a summary of every piece of information of things going on. You see I stopped this processor. That's how many records just came in. This is when I'm reading the task. I could see a graph of everything going on with the data. Those sort of things pretty, pretty cool. What's nice is underneath the covers, everything is a REST API. So if I want to know this data, I could just put it into developer console, see all those REST calls and do it myself. So I don't want to use the GUI. You can do the same with the command line tool that it comes with. Very easy process. I've got another NIFI flow here to do a little different things. I've got a couple of different options here. What we could do with NIFI really depends on what makes sense for your case of data and what you're doing. So for this one, I'm getting data from NVIDIA Xavier box, which is a pretty powerful edge device that has GPUs, that has a lot of RAM. It does a lot for an end device. And I could see what's happening with this box. So I'm sending data from that device over HTTP. And I have all the information I need to know about it. Again, that unique ID. I've got a schema for this data. I've got the data here. It's a number of records. And I could decide here, how do I want to route this? Looking at the data, I can look at any of those attributes. I can look into the data. Here I'm just going to distribute it based on a couple of attributes. If you'll notice here, these are images. Like we have mentioned, we could deal with structured, unstructured, semi-structured data in the same flow. Here you'll look, this looks like a little different from most of the data you're used to, because this is an image. And we'll just bring in an image. I could do whatever processing I want to do on images. I could send that to a deep learning library. I have some built into NIFI for doing things like single shot detection, all those things. We have a lot of options you could do with images. We mentioned those queries. I can do queries on data. Here, I don't have a schema yet. So I'm just going to infer what it is. And then when I'm done, I still want it as JSON. So I'll just keep it as JSON. That's fine for doing what we're doing here. Not a big deal. As you can see here, I've got a lot of different flows within here. And I'm processing over a gigabyte of data as the data comes in. Another common flow, I've got things coming off of a Google Coral box. Again, doing some routing, checking if it's valid data. And here, again, I've got some images coming in and some sensor readings. So here, I'm going to do another query on those values. One of the values is a temperature. So I'm going to check to see if that temperature is over 80 degrees. So hopefully it's not. If it's really hot, I'm going to do something with that data. That's our warm data here. And we could just take a look at some of the data in here. And we could look at the actual data. And if we look in here for temperature, for Fahrenheit, we could see it's 96 degrees. That's pretty warm. That's probably the reason why it exceeded that. We might want to send an alert. We might want to do other processing. Here, I'm just going to send that to a Slack channel. And in Slack, I formatted the message. Just tells me it tells me it sent a message. It just went to Slack. And if I want to configure this to do whatever I want in the message, I'm putting in the attributes I want to display. And some boilerplate text just to say, you know, this is what happened in the system. And we could take a look what channel was sending to coral. I could go take a look at coral. And I can see that our data got sent here. There's a unique ID. There's the label from the deep learning system. Here's a start time. Here's a scoring 39%. Just to give you an idea of what's going on in the system. Let's make sure we load a couple of their copies here. So here I'm querying and get another data source. This is thermal data. Again, I have the queue here queuing up as more data keeps coming in from the edge. And it's a lot of data. But it doesn't matter to NIFI. I'm going to turn on routing. And now I'm sending a whole lot of data through the system. And that happened almost instantaneously. As you see, it's coming through the system. And I've got some queries here. This just gives me all the data. But in that one step, taking CSVs and converting them into JSON. Don't have to do anything specific there. And now I've got JSON versions of the data. Here I'm taking a look and taking JSON, writing it up as cleaner JSON. And then I'm pushing it to our Kafka topic. And I can look into Kafka and see everything that's going on in Kafka. Let's pick an example here. I can look at any of these topics, which ones are getting data in the last six hours. Who's getting a lot of messages? These were the messages from that, that log messages we were looking at. And there's a lot of them. And we could take a look at all of them. Obviously that's waiting for someone who's interested in that data to consume it. I've got other logs. I've got gas sensors, tons of different data. We were just looking at that webcam one. So I could take a look at that data. And this is showing me the results of some pictures that I'm taking on a live web camera. And then we ran TensorFlow against it and we could see what the results they think they are. It's very easy for me to send that data. But how do I write those flows on the edge? NIFI's piece of it. The other piece is a smaller version of NIFI that we call Minify. And to deploy a flow in Minify, I set up something similar to NIFI. Here I'm running a shell script. I can run a Python script. I can run native code, whatever it is. And then I'm also grabbing images. You saw those images coming into the system. So when I execute this process, it sends data to me and that I'm sending to NIFI over HTTP. But it's also grabbing those images. So that's a simple way for me to develop these applications. And then when I change them, I could publish it to any agent that's associated with this agent class, which is raspy and Java. And it'll just send this flow to them. And that's the code they'll run. And they'll run it every, we could take a look. Every 60 seconds, it's going to run that capture of sensor data. Again, a very easy way for you to send those agents out there and get results from them, see what they're doing, any events they're doing. When they got deployed, very easy. I deployed one of them a couple of days ago, one of them today. Very easy. So those flows are running. So we saw the logs. We saw things go to a Slack channel. Over here, we're doing SQL queries against those events. And again, if I want to run additional SQL queries, I could just stop and add more. I could do some query, I could do select a certain field. Maybe I only want one field. Like we saw temp F as a field. Maybe I just want that field. Maybe I wanted to do the cast on that to convert the type. I can do that. Maybe I want to do a sum. Maybe I want to do an aggregate, whatever I want to do with this data, very easy. Here I've had this one sitting for a little while from one of my other devices at 21,000 events. I've got a couple of different types of data. I've got one where I'm reading energy readings. One where I'm reading sensors and other I'm getting images. Another I'm running classification with the open Veno framework on that device. As you see here, I'm pushing through a number of records real time. Over here, I've got another query. Again, you know, the query, this time is a parameter. You can see those parameters.  I could change them here. I'm looking at temperature. Pretty frequent thing for sensors. Got a couple of different sequels there. So if I want to share that sequel, very easy. And then I'm reading it. And just sending it to Kafka. Pretty common use case, but I'm sending it to a couple of different flows. If we look at all the different topics here, I've got a bunch of data. I've got a bunch of data. I've got a bunch of data. And now we should be getting a bunch of data into this SCADA one. And then we'll start getting data into the energy one. I've got a lot of topics here. I've got a lot of different IOT data. This one I just started sending data into. Data might look weird. You're like, why is it like that? It's Avro. So I need to use a schema to convert it into something that's viewable by me. I've got humidity, pressure, temperature. You know, I've got the IP address of that device, a unique ID for it, a time. So I've got good time series IOT data here that I could do with what I want. Now one thing that I can do with this type of data is I can do flink, flink sequel. Flink is let me connect to this catalog. Let me show you all the catalogs that have tables. I'm using the registry catalog. Remember, I showed you those schemas in the registry. That is this guy here. I've got one for breakout. Got weather, this SCADA data we just saw. And from there, I could show you there's a bunch of tables. Those match up to those schemas. So now I can certainly figure out what's in there. Like we were looking at the SCADA one. What does that one have?  Do you want to take a look at them? Let's take a look. Let's do IP address, temperature, gas code, low noise from SCADA. Just a regular sequel. What's different about this sequel is it's not a regular sequel. This is a live distributed application that's just been built to do that query. And it's grabbing this and this is running on a cluster. It's been deployed on top of an Apache yarn cluster. It does everything you need to do. I've just written a real time streaming application that just uses sequel. It's that simple. And if you look at the top of this display, it's pulled in 133 pages of data from Kafka topic. And I can look at the details on that. Pretty simple. If I wanted to look at another table, I could do that. We have data coming in from breakout. You take a look at that one. As you see here, this job just got canceled. I've written a bunch of jobs. What's interesting here is this sequel supports things like insert. So if I wanted to take the results from breakout and join them together with the results from SCADA, if I had some ID that would join them, I could do that join and do an insert into a third table. That table would be defined by a topic here. It could be whatever has the same number of fields. I have one in here for what I call global sensor events, which is all the data together. And you could just define it how you want. These schemas are very easy to work with. And that would just show up here and start populating into that other Kafka topic. So we've got things in Kafka. We're able to look at data as it's ingested with Flink. The last thing that we wanted to show you is we also want to store this data. You have data coming in, a lot of different sources routing in a lot of different ways. But how do I store it? Here, I got a lot of messages coming in from MQTT, as I'm reading from an MQTT broker on a very specific topic. As it's coming in, I'm going to write that to a Kudu table with an upsert. So if I get repeated data, I don't care. Remember that retry. If it's not available, let's retry again. I'm also going to take that data as JSON and validate it. Make sure it matches that schema and then push it to a Kafka topic. So we can look, is that breakout data in Kafka? We could find that data and go right there. Common way to do that is just we'll go here and search. Here's this Kafka topic. We've got an alert on there because no one's been reading the data. It's Avro has a schema. Boom, the data's coming in. Is it getting into a table? I can see it right here. Just came in. I'm grabbing some of the fields. I've got over 100 records. I could see what I want with them. I could choose what fields they are. This is Apache Hue. You know, if I want to see different columns, I just add them to my query. Screen's a little small here, so I can't show you everything, but it shows you how easy it is to load data. And now that's in Impala, I can connect this with Tableau or anything that uses JDBC to access a table. Very easy to write reports now that you've got it there. The same thing I have with that SCADA data we were looking at. Same thing I have that stored in a table. Very easy for you to do queries, sort them, do whatever you'd want to do. Within Kafka, we have the ability to change that and join them together if we wanted. Very simple to do. And then we'll get our running nodes here. You can see all the jobs that completed. Very easy to do. From the NIFI side, any of these simple flows do more than just pull from IoT. It makes it very easy for you to acquire that data, validate it, transform it, enrich it, and then push it into enterprise systems, whether they're in the cloud, on-premise, whatever your data store is. It could be Mongo. It could be a relational data store. It could be an object store. Any of these things. So if I wanted to send that data to another place, very easy to do. This makes for a very powerful tool for doing everything you need to do with IoT data. Hopefully this was, showed you the basics of using Apache NIFI. I've included a number of articles there that dive deeper into specific pieces and parts which might be important. Things like, how do I write a query? What's supported in the SQL? Behind the scenes, this is Apache Calcite, which is a common SQL engine that's used in NIFI, Phoenix, and a number of other things. Very easy for me to do IoT at scale. I'm running in my house here only a few devices. I think I have six behind me. So it's only six of them. Maybe they're publishing a few records a second each. Maybe that's only a few thousand images. This is very easy for you to start off at that level with a few million records and then move your way up to billions, trillions. As much data as you have, we can get that in one environment. And it doesn't matter if the data is binary, if it is JSON, CSV, XML, it's coming off a raw device and you need to convert it. I could do all that here with that full provenance to know everything that's going on, full tracking so I know how many records have come in, how big are they, what type are they, are there errors? What do I want to do if there's an error? How do I handle that? Interacting with storage systems, interacting with distributed event processing, interacting with schemas that let me know what my data is supposed to look like so I could validate it to say this one better, it has to be an int that has to have this field or a field is optional because it could be null. All of that from one environment. Being able to see that data as it's coming in based on how many messages are coming through the system. What do they look like? Very easy to monitor this. I could see who's consuming my data. I have an application over here that's consuming the energy data. This is a Kafka Connect app that's just sitting on this topic consuming that data, writing it to HCFS. It's very easy to share this data between systems. I hope you've learned a little bit about NIFI. To learn more, we've got an open community where we chat about NIFI and a number of other open source projects. Also, I run an event virtually online, a future of data. You could join that one or any of the other ones we have around the world. This has been great. Hopefully you've learned something here. And thanks for coming to my talk about learning the basics of Apache NIFI for IoT.


Three area hunters were rescued from a crow and county lake this morning after their boat cap size. The boat capsized just after eight on Camp Lake in the southeastern part of the county. 71-year-old John Puffall, who lives on the lake, noticed something shiny on the water while enjoying his morning coffee. He took his pond tuned out and was able to rescue the men and their dogs. 39-year-old Jason Worley of Bolas, 43-year-old Jamie Doucette of Becker, and 30-year-old Andrew LeBlanc of Little Falls were treated by Garrison Fire Personnel for possible hypothermia. Sheriff Todd Dahl says that because of the cold water, the hunters probably would not have lived if it weren't for the quick action of Puffall. If you enjoyed this segment of Lakeland News, please consider making a tax-deductible contribution to Lakeland PBS.


When the Narcissist fails without you Narcissists have a delusional sense of superiority They think they can make it on their own out there without you. They have an exaggerated sense of their own abilities and importance They think that they can accomplish something without any help or support But we all make faults and mistakes We all fail sometimes and when that happens we own it We understand that we are responsible and we hold ourselves accountable for our failures So that we can then do better in the future So that we can prevent it from happening again This is a healthy way of responding to our failures Which then allows us to grow and succeed But the Narcissists do not respond to their failures in this way Narcissists are very controlling They have to have influence and authority over everything. They have to be superior They have to be the best So they cannot deal with failure It will mentally destabilize them.  They want you to think they're doing fine without you Even though the opposite may be true They are heavily focused on perception management They are focused on influencing the way in which you see them and think about them If the Narcissist has failed without you In most situations, they won't want you to know about it They will find a way to cover it up to make it look like nothing's wrong In their minds the less they talk about it the better off they're going to be They're pathological liars They will lie to people and act like it never happened They will act like you got it wrong Because they don't want to talk about it. They don't want to deal with it. If they are unable to lie They will just act as though it wasn't their fault They will say that something happened And that they weren't happy about it But it was someone else's responsibility They were not the cause of the problem If they do make a fault or mistake They will minimize it They will act like it isn't a big deal When the Narcissist fails without you They will do whatever they can to hide it To act like nothing's wrong To act like they're so much happier without you Even though their lives may be in shambles They want you to think that everything's so great They want you to think that you're missing out They can seem so delusional It may look like there's nothing for them to be happy about But they will still act like they're living their best lives Because they're too weak to confront the reality of the situation They're too embarrassed to own the state of their own lives They'd rather just pretend They'd rather play make believe and act like everything's okay But if you've managed to expose what is really going on in their lives and there's nowhere left for them to hide They will be forced to admit it They will be forced to accept that everything is going wrong But they're not going to own it They're not going to hold themselves responsible for their own lives Instead they will find someone else to blame And most often It will be you They will tell everyone that you are the cause of their failures They will tell everyone you are the reason why their lives are in shambles They will play the victim And act as though you ruined their lives They will say that you're the reason why the relationship failed They will act as though you abandoned them As though you left them without any help or support They're never going to take responsibility for their own lives They will recognize that someone needs to be blamed for it And if you're not going to take responsibility for their failures They will often find someone else to blame They will blame anyone they can find As long as they don't have to take responsibility for their own actions When the narcissist fails without you They will often try to point out things in your life Things that they think are not good They will try to turn the tables on you And make it look like You're not doing well without them It takes the focus off of them So rather than you questioning what happened with their lives Now they're pointing out things with you Even though you may be doing okay You may have progressed a lot since they left you But narcissists are experts at finding faults No matter how great something is They can always find something wrong with it Because they see so much wrong with themselves They project their insecurities under everyone and everything around them They could not deal with their own issues They cannot deal with their failures They're not just going to come out And say that they're struggling without you Even though that may be the case They care a lot about what you think about them They want you to see them as being superior They want you to see them as being something desirable and attractive But they also want the ability to withhold themselves from you Because that is what gives them supply If you were to know the truth about what is really going on with them You would realize how twisted everything really is Because really They see you as being superior to them Which is what gives them the desire to demonstrate their false sense of superiority over you If they can trick you and get you to believe it It makes it more believable for them It gives them supply It makes them feel better about themselves When the narcissist fails They will often play the victim They will act as though by you trying to hold them responsible You are the problem They will act as though everyone blames them And nothing they do is good enough They will mentally destabilize And you will be unable to communicate with them They have a need to be superior They have a need to be better than everyone around them They are arrogant and entitled And they have been lying to themselves for a long time Acting as though they are never the cause of anything Doing everything they can to dodge accountability for their actions They are shame-based individuals Doing everything they can to avoid reflecting on their shame They cannot self-reflect because then they would have to accept their shame They would have to accept the painful feelings of humiliation and distress Caused by the consciousness of wrong or foolish behavior Which is something they cannot deal with They don't mind projecting their shame onto you Because then they don't have to carry it But they are shame-based individuals Most of what they say and do is in response to their feelings of shame It really has nothing to do with you When the narcissist fails without you They will mentally destabilize And they will often want to take revenge on you They will want to demonstrate their superiority over you They will want to be in an authoritative position They would rather that you admire them But if you're going to see them as a problem They will become an even bigger problem for you They will make them want to take revenge on you For not seeing them in the way that they would like When the narcissist fails without you They will try to pull you into their world They will try to make you think that they're so much happier without you They will try to make you feel like you're missing out But this is all just to punish you For leaving them or for not validating their false self The truth is in most situations The narcissist is failing without you They are miserable And they're just doing everything they can to cover it up Just remember when they were with you How nothing was ever good enough for them How they were always angry or upset about something Yet they still try to portray this false image to the world As though they were so happy and everything was going great These individuals are pathological liars They would rather live in the land of make-believe Than to experience real life Thank you for watching I hope this video resonated with you Please like, comment, share and subscribe Click the bell icon to receive notifications for my future videos Check out the new Narxivore website at www.narxivore.co.uk Where you can read my blog posts, book coaching sessions and join a support forum If you would like to donate, my paypal link is in the video description Coaching inquiries, you can mail me at coaching.narxivore.co.uk Thank you for watching and I'll talk to you soon