Okay, why? Is that right? Wow. From IBM, is a cloud solution specialist specializing in particular in blockchains and hyperledger, yes? Yes, correct. All right, well, take it away. Right, good afternoon, everyone. So my name is Kai Wain, all right. So today we are going to spend some time on the blockchains part of it. How many of you heard about blockchain, the fundamental stuff? Oh, okay. Wow. So I'm not going to go through the basics, right? But I want to actually share a bit in terms of, I would say, the IBM experience in starting this journey, right? So probably I start with telling a short story, right? Well, how did this journey even started? IBM started with something called Bitcoin as well, for this reason. So we started as a research project, right? So IBM's with a color of blue, so we call it blue coin, right? So we researched it, right? We understand what the technology does. No, Bitcoin is not the technology, right? The technology is called blockchain. And it seems like this technology can deliver kinds of capabilities or functionalities that is needed by enterprise customers, right? So it become a research project, it become a product development. This is where we start to develop, it become a full-skills solutions, right? And this is where we start to get into, I would say, the full force of building this as a business from IBM perspective, right? However, right, what I want to actually go into more details will be the way we actually started into the open-source journey style. Of course, as we know, blockchains, we talk about ledgers, we talk about immutabilities, we talk about finalities of it, right? There are key elements we always mentioned within the blockchain, right? We talk about, yes, they will be distributed ledgers, decentralized. Everyone keep a copy of the same transaction, right, within the network. So which means we are talking about building a network, right? What does it mean from you? What does it mean from our customers or our user perspective? It can be a network of one person. So it needs to be a collective of people within that community, right? Then this is where we start to have to contribute a code into the open-source community itself. But of course, this is where we talk about what to be stored inside the blockchain. This is where we start to talk about the transactions, how we should execute the logic, right? Consistently as a smart contract for all the participants. This is where the code start to develop, become more and more matured, and we started with a project called Open Blockchain Initiative, and eventually we donated code into these communities, right? How many of you heard about hyperledger? Oh, okay, most of you, all right. So the journey started back in almost, I would say the end of 2016, where hyperledger project is formally so-called being established under Lien's Foundation, right? And of course, this is where IBM's, part of the community itself, contribute the source code, right? Contribute our knowledge in terms of setting the directions, how the blockchain can be beneficial to the industries. And this is where the growing of the community start to happen, right? And today, as far as I know, we have more than 250 members, right? From various technology providers, I believe, Microsoft is in the community as well. But we also have a lot of so-called industry players, right? In supply chains, in health care, even in government agencies, who participate and contribute their knowledge into the project itself. Just like any others, I would say an open source community, right? Hyperledgers, of course, in this case, it's not belong to IBM, right? Very important, right? And there are multiple projects under the umbrella of hyperledgers. The one I would say actively being contributed in terms of source codes, knowledge, experience will be something called hyperledger fabric. Hyperledger fabric. How many of you heard about hyperledger fabric? Oh, okay. Much lesser compared than I expected. Hyperledger fabric is one of the, I would say, the projects, right? We call it blockchain operating system to be set up to build the network, right, interconnect the network, right? With the concept of orderers, with the concept of peers, right? Separate into endorsing peers, committing peers, as well with the consensus mechanism built into the orderer with the Kafka technology itself. We have been gradually starting the journey, right? When the so-called community is formed back into December 2016 by introducing version 0.5, version 0.6. Then we started a regular so-called release, right? Working closely with the community. So right now, we are in the stable version of 1.4, right? And it should be end of this month or the end of early next quarter. Then we should be releasing hyperledger fabric 2.0, right? And of course, there are a lot of new exciting features that have been built along the way from private data collections, multiple channels, you know, knowledge proof. So those are some of the key features our customers needed, right? And industry needed as well in order to build a comprehensive solution based on hyperledger fabric or based on blockchain asset technology. So of course, the key question always asks, right? These technologies seem to be only happening for the past two years, right? It started with Bitcoin back in 2008. But something relevant to industries, right? Only happened within the past two years. Is it real, right? I don't know how many of you, whether you ask yourself, is this real, right? Is this article you see on the newspaper, this solution is real? Does it really help to solve industry problems, right? And this is where with the past engagement, I'll say IBM helping our customers, right? In terms of building real and solid blockchain driven solution in various industries, right? With the technology of hyperledger fabric itself, it allows us to build different smart contracts, right? To actually model different business processes and based on the same technology which is called hyperledger fabric. And this is just some of the customers that we have, right? Of course, various industries. Some of the logo, you may see it, you may get familiar with it. Some of the logo, you may not even heard about it, right? There are a few areas that I would say distinct, right? I would say that that is actually the key focus of what IBM is heading into as well. So on the area example in trade finance, right? So whereby collective of banks set up a internet work between banks in order to allow trade financing facility to be provided to the... and imported to the exporter in a much more easy and streamlined way. We also work with customers such as Walmart, such as Nestle, right? In order to build and ensure the facility, right? Along the food supply chain. We also work with the customer in this region, right? Customers in Thailand, right? In order to build the latter guarantees so-called processes of. So those are some of the... examples whereby how hyperledger therapy, right, get to be implemented and run as a production solution on the market itself. Of course, this logo looks nice, right? It seems like those are assisting IBM customers as well. But that is not the main point for today's session, right? The main point is how we derive these problem statements, these business use case. Hyperledger therapy can be the technology to address those challenges itself. Throughout the engagement with the customers, right? We learn it ourselves, we learn it from our customers. We start to identify a few key major characteristics, right? Which is needed by our customers. And this is important in order to roll out hyperledger therapy projects successfully, right? So as you put it into the sixth category, sixth category, right? Is there a network exist in these problem statements, in these particular challenges, right? Is it only you? Is it only a set of people? Or you need to work with upstream, downstream, with different set of participants within the industry in order to deliver something, in order to execute certain processes, right? So this is where the business network comes into picture. Second, where are those information stored? In a CIM solution, right? Is it in ERPs? Is it in one particular portal? And some of it, you may be surprised, it's written in paper, right? Especially in supply chain. So how all this information can be shared in order to streamline the business process. And who will consume those information? Multiple writers, right? Who will contribute the data? Who is going to use the data for certain activities, right? Multiple writers should be involved in that process itself. And is that a trust? Do I believe the information you share to me? Can I use it immediately for the execution? Is there a level of trust between you and me for me to proceed with the business transaction? And process. Is it a process to govern it? Or it's just an ad hoc activity we are dealing with. And lastly, right? Rules, right? What are the execution rules? What are the logic we need to, so-called, depends on it in order to execute with this particular process? For example, do I pay you after you ship the delivery to me? Do I pay based on this interest rate have been agreed upon? So those are the different type of business process involved in the industry itself.  So this sounds like a lot of criteria in order to, so-called, make it solution real for the actual usage itself. So let's go through a simple case, right? So whereby we build a solution surrounding it. It's called Threadlands. I'm not sure how many have heard about it. But I believe you've always seen a lot of big container shipping around the world, right? And majority of the goods we are having today, including your shirts, your jeans, the food you are eating, right? It's actually shipped in container, right? So how much time it takes, right? In order to ship the container from the exporter to importer. So this is where our collaboration with our customers, right? Start to actually highlight something very important. The cost of processing the documents itself is higher than the shipping cost, right? So especially with nowadays, the fuel prices is going down. There are a lot of more and more manpower is needed. The information engine is needed in order to process the paperwork. It becomes not scalable in terms of business process perspective, right? So whereby blockchain can be a tendency to bring different people in the logistics supply chain ecosystem together and have the common rules set, right? To allow the process to be streamlined to move forward. And don't forget, each parties have their systems in order to keep track in terms of logistics, supply change, warehouse. So blockchain able to help to aggregate those information. Of course, blockchain sounds as an interesting technology, right? Everyone wants to explore the potential of it to maximize it. But of course, it should have a certain principle and guideline to move forward as well, right? So this is where the entry point becomes something important. With the solution we are building, why we try to address business differentiation or is for the larger benefit of communities or this is more towards to create a new market, right? And each of the use case will be tailored and slightly being positioned and build it according to the entry point to address the business challenge, right? And this will be basically some sort of guiding principle, right? So that we can build the solution that address the needs by the user, by the industries. And this is just, I would say, the starting point, right? You may realize that, oh, you have IBMs, right? You have so many projects, right? So I heard about someone building this network. I heard about another so-called vendor building the networks as well. It seems like a pocket of network here, a pocket of network over here, and somebody building something. Information in a certain way still in silo, but in bigger silo, right? Rather than interconnect the network. So the next evolution of, or the next phase of blockchain while we're looking at is building networks of networks. Networks of networks, right? We start to realize that each of the networks serve a particular purpose, right? They need to streamline supply chain process. They need to streamline government process itself. They may need to streamline KYC process for the banks. But at a certain point within the process itself, they may need to interact with another network. This is where the concept of network of a network come into picture. At a certain point of execution, can we bring this set of information in immutable way, right? Move to the next so-called network itself. So you may start to see some of the news happening on the ground whereby we talk about interledger protocol, right? Collaboration between Ethereum and hyperledger projects, right? In order to allow this kind of information sharing between two different networks to be happened, right? That is still in, I would say, the project status itself. But the industry and the vendors are moving to the same direction, right? In order to solve the problem, right? Of course, from IBM perspective, right? Open source is something IBM has been doing for past, I would say, 25 years, starting from Linux foundations to Java to Eclipse, right? And even today for hyperledger fabric. That work is not going to stop, right? At any point in time, IBM have more than hundreds and thousands of developers have been codes into a blockchain community as well, right? And Fabric is just one of the projects IBM is contributing. And of course, we want to make this easy for our user, right? Especially for those people who are sitting in this room. Oh, I want to test it out. I want to start something, right? Can I test it out with hyperledger fabric? Can I leverage it on the new features within Fabric 1.4 in order to execute certain activity? Yes, please feel free to visit to club.ibm.com. So we can offer you some beta, so-called services for you to test it out. But eventually the messaging, right? Is to allow hyperledger fabrics to offer as a service to our customers, right? To you guys to continue to achieve build interesting solution on top of it, right? So that is, I would say, at least the commitment from IBM to allow the technology adoption to be easier, right? For everyone in the industry to move forward, right? So of course, so far what you see is still the slides, right? How blockchain application may eventually look like, right? So I want to actually give you a simple example of how the solution actually looks like. Oops, let me actually mirror it. So this is one of the examples of the solutions that we have is called IBM Food Trust, right? I'm sure quite many of you never heard about it.  How many of you whether wonder where is this item coming from? Is it from Philippines? Is it from United States? Is it from Europe or Vietnam? And in between, who has actually processed it? Who has actually cleaned up, right? Today actually implementing sustainable plantations, right? Today has been certified with their factory to process it with the cleanest certifications. So those are what we call food supply chain, right? Whereby in the US itself, last year alone, there are people falsely or actually passed away because of E. coli bacteria, which exist in the veggie itself. So those are the food supply chain reality, right? People have confidence with the retail store, believing what they are getting from the store is actually so-called safe to be consumed. But in reality itself, the item are actually separated in every place in the world. And it may change hands in between with multiple suppliers, with multiple distributors, with multiple logistics provider to ship it from the farm all the way to the retail shop, right? So this solution will tend to actually help us to keep track in terms of the activities, right? As well as who is involved in that supply chain for the visibility. And this is where I have a product, basically broccoli carrot to be tracked, right? And I will actually punch in, okay, this particular padlock or this particular box during the shipment that I want to track the origin from. So this is where I plug in the log number, search for it, all right? I want to use it for the selections. Then I run the trace. So this solution has been connected to various food supply chain provider, right? All the way to the farmers, right? To the food processors, to people like Walmart as a retailers, to logistics parties, so that each of them still continue to use their system to do data entry, to do management. But piece of information based on GS1 standard will be actually sent to blockchain. And each of them will actually keep track, a copy of ledger for the transaction itself. And this is where we start to actually build the food supply chain for the first time. So I know exactly this box of the registry to the retail shop itself. It's actually getting from which particular distributor, right? It has been processed by which particular manufacturer. It has been so-called keep in which particular warehouse and all the way to the farmer, right? And always remember, the item you are getting may not source just from one particular farm, right? Because the producer always source from multiple farms, collect it, process it before it actually redistribute again to the different retail shop, right? So this is the visibility that we want, right? To ensure the food quality we are getting, to ensure the food safety we are getting. You don't want to get into situations whereby, oh, the item required to be recalled due to bacterial infection, due to expiry date, and you may not know which particular item still being circulating around the market itself. So that is quite generous, right? Put it this way. And today, with the effort based on what we have studied with Walmart, with all this provided itself, it's easily took more than one week to discover any item to trace back all the way to the suppliers, right? Which is very alarming, right? Just imagine if you have someone you close with, admitted to the hospital and they don't know where is the source of the infection happen, right? So that is something that IBM, working with the players in the industry, we try to actually build a solution to address, right? Of course, this wouldn't be happening without the contribution of open source, right? Without the so-called industry player committing to the open source technology as well, right? So we realise this is something beneficial to everyone and this is where the direction of IBM to continue support open source technology. All right? I think we have three minutes. I'm open for questions if there is... Oh! So, yeah, a bit higher. Just curiously, I think it's really fun and interesting to use the blockchain technology to trace the source and all of the different pit stops and checks that have just happened through your food supply chain. Yeah. But we're placing a huge amount of trust on people who are handling these goods from one place to another and I wonder how is it any different from just having a manifest and a list and maybe a table and a database? Yeah. So thanks for the question, right? So it's important, right? It's something that we realise, right? Can we come up with a solution whereby all the information can be just using express sheet or even use comprehensive database to do? But what we realise there is that has been done and it's not practical, right? Because for those suppliers, right, a lot of, I would say, the parties within their so-called industry chain, value chain itself, we call it, they are not... they are actually reluctant to pass their information to other people to manage, right? So that becomes a key concern, right? Each one of them have their own security policies and the way they want to manage the data, right? Because if they pass that responsibility to you, then the question to you is, is it you taking the risk of managing my data, right? So this is where the trust issue comes into problem. The trust on the item itself and also the trust you can help me to protect my data, right? We saw two reactions. One is I reluctant to pass it to you, right? MBC provider reluctant to take that responsibility, right? They'll say, sorry, I'm just a technology provider. Your information is your information, right? Then this will become a chicken eggs scenario. So blockchain, in that case, nicely fit to address that kind of concern while they still have the control of what to be shared. It lets the participants have a greater amount of trust in each other, but it doesn't necessarily... Then you don't need blockchain. Do I know that they actually did this while we don't know? Yeah, they had a lot of trust in you to need blockchain. This is a general supply chain issue. The good news is we can take another question. In the meantime, does anybody in the room have a mini-DP to HDMI adapter? I thought I had one, but apparently don't. Mini-DP or Thunderbolt to HDMI? And while anyone's asking that question, any more questions? Fabulous. I wanted to ask about how the blockchain development is going on in the future. I think last year was like the height of the blockchain craze, and now the hype is starting to die down with the values of the Bitcoin and so on, not growing anymore. So how do you see the future there? I see the futures whereby... There's a certain trend whereby it's so-called cool-down in the industries, but I also start to realise that the industry is taking more serious by looking at what it tends to solve. We are right, as in last year itself, we see a lot of so-called POC kind of proof technologies, right? Whether it works in supply chain, whether it works in healthcare. But we always ask the user, ask back the customers, what actually you tend to solve? Does the technology help you to solve the so-called challenge itself? Right, whereby technology is convincing to actually solve it. Now this year, we start to see maturity going up whereby people start to realise that this is not just a piece of technology I can implement myself. We need the network. We need to solve real problem statements. This is where we do see cooling now, but at the same time, we do see user seriousness into getting something into production grid start to pick up at the same time. So for me, it's a good thing. I believe this happened not only to blockchain, it happened to any other technologies as well. Okay, we have one. Thank you very much. I'm enjoying seeing blockchain becoming reasonable rather than crazy hyped, so a round of applause, please.


Good morning everybody and welcome to this talk on how not to write device drivers. Skip that. If you don't know me already, I've been working in Embedded Linux for many years and you can catch up with me at these places. But the important thing then is that today I want to be talking about device drivers and how to do it in user space. So I'll begin by talking a little bit about device drivers in kernel space just to give the background. And then we'll talk about user space device drivers and I'll follow up with some examples using GPIOs, PulseWidth modulation and I2C. So the conventional driver model is that all the hardware is accessed via the kernel. So if you want to access some hardware, you have to write a kernel device driver that exposes some kind of interface within the user level and then applications way up here. Can you see that? No you can't. The application somewhere way up here can then call the kernel system interfaces. The kernel then accesses the hardware on your behalf. Down here in the kernel you can handle things like interrupts and also do fancy things with DMA and all kinds of other stuff. And then the interface between the kernel and the application is basically through files. As we know in Linux everything is a file except network interfaces which are sockets. That's almost a file. So most of the time when you're writing user applications you interact with the device whatever it is via the POSIX function calls, I open, close, read, write, et cetera. And the files you are accessing are going to be usually either device nodes, that's the stuff in the slash dev directory, or we can also expose attributes via the sys-fs interface via slash sys whatever. So for example we'll look at the moment at the GPIO and you can access GPIOs through slash sys slash class slash GPIO. So this is the normal way of doing things. So writing kernel device drivers is a lot of fun. Hands up who has written device drivers for kernel before. Yeah pretty much everybody. So I mean it's great fun, I really really enjoy that. But it is a little time consuming. You are working within a kernel environment which is quite a lot different to a normal programming environment. And it has the problem that if you introduce a bug in a kernel driver, then you can crash the entire kernel and bring the entire system to a halt. So bugs in kernel code are much more serious than bugs in user space. So the reason for this presentation really is to say that if possible it would be good if we didn't have to write kernel device drivers. Both because it takes a certain amount of time and effort, but mostly because it introduces points of failure into your system. So I want to encourage you when you are accessing hardware to think can I do this from user space? Do I really need a kernel device driver to do this thing? If you can do it from user space, then do so. That is safer and easier for everyone. Note about device trees. So since we're talking mostly to an embedded audience here, you'll be aware that if you're working on ARM platforms and several other platforms as well, in order to access the hardware, you'll need to tell the kernel where the hardware is and you do that through a device tree. So as a part of this, but I'm not actually going to go into this because that's kind of too much detail for this session, but as part of this exercise you still need to write the device tree or the device tree overlay to give the kernel access to the particular bit of hardware you're trying to get to. So I'm going to start with GPIOs, general purpose input output. So these are the most basic level of digital IO on a system.  And as outputs, we can use them to control lights, relays. We can control other chip selects and various other things. And then as inputs, we can use it to read the state of a digital input, which could be a switch or a button or something else. And when we read them as inputs, we can either read them in polled mode. We can just keep on reading the input and see what it is. Or in most cases on most modern SOCs, we can configure the GPIOs to generate an interrupt. And the interfaces we're going to be looking at allow us to wait for that interrupt so we don't have to keep on polling. You have the luxury at the moment of having two interfaces, two user space interfaces, two GPIOs. We have the old GPIO lib interface. It's not a library, by the way, it's a kernel driver. So GPIO lib has been around for quite some time. It exists as a CISFS interface. The great thing about it is it's scriptable.  You can write shell script or whatever to access those files. So it's nice and easy. But it has a few problems. In particular, it doesn't handle interrupts particularly well. And there can be issues if you want to change more than one input or output at the same time. So we have, in addition, then the GPIO Cdev interface, which is the modern better way of accessing GPIOs. But since it uses IOCTL functions, as we'll see in a moment, you have to write some code to do that. You can't script it. So starting off then with the GPIO lib CISFS interface. So first of all, looking in the, no, it's still not working. Looking in CIS class GPIO, you'll see a number of registers called GPIO chips, something or other. So each one of those directors, rather, represents a GPIO register. Typically, as in this case here, the registers are 32 bits each. And we have four of them. This actually is from a Beaglebone. We can then, we have these two files called export and unexport. So you can write a number to the export file, and that will export a GPIO to user space, which you can then access. And then when you're done with it, you can unexport it by writing the same number to the unexport file. Now these numbers are a linear range, well, there are a range of numbers starting, usually started from zero and going up to the maximum number of GPIOs you have. So in the example here, GPIO chip zero, this register will have the first 32 GPIOs numbered from zero to 31. And then GPIO chip 32 will have the next bunch numbered 32, 263, and so on and so on. This is a slight pest because it means you have to convert the, normally when you look at the schematics, you will see the schematics label the GPIOs as the GPIO register and then the bit within that register. So you have to convert that GPIO chip and register number into a linear GPIO range.  The important ones are one called base, which tells you the first GPIO number occurring in this register. So we're looking at GPIO chip zero on the screen, so base will contain zero. N GPIO tells you how many GPIO pins there are in this register, 32 in this case, and then label is an arbitrary label to identify this thing. And in the case of this particular SOC, you will see that it is just the name of the chip, it will be GPIO chip zero. So then if we want to export, say, pin 42, which will be the 10th pin on the second GPIO chip, you just write 42 to the export file and then you see that magically GPIO 42 has appeared as a subdirectory. Assuming that's possible, if the GPIO has already been used by, for example, something within the kernel, then the export will fail. But assuming it is a free GPIO that we can export to user space, that will succeed. And then if you look within that new directory, you get the access to the GPIOs. So there are a bunch of things in here as well. The important things here are a file called direction, which can be either output or in, sorry, out or in for an output or an input. It defaults to an input. And then we have the file called value, which represents the value of the level of the pin. So if it's an input, when we read value, we read the level of the pin, one for high, zero for low. And when it's an output, we can write one or zero to value and that sets the output to be either high or low. And then we have this file called active low, which we can set to one to invert that logic. So it turns out the hardware engineers get a bit confused about high voltage and low voltage. It's quite often they get it wrong. So in order to get it right again, you can flip active low by setting a one to that, which means that when you write a one to it, if it's an output, it goes low and when you write a zero to it, it goes high. Okay, good. Next thing, interrupts. So if you want to monitor an input, you can just pull it, but that's inefficient. So if the GPIO hardware underneath can generate interrupts on a level change, then we will have this extra file called edge and we can write to that to indicate how we want to generate the interrupt. So edge can be non, meaning we don't generate any interrupts or rising or falling or both. So we can interrupt on a rising edge, a falling edge or both of those. So in the example on the slide, I'm writing the string falling to GPIO 60 slash edge. That will then give me an interrupt on a falling edge. And then, unfortunately, you can't use the interrupt mechanism from a script. You need to actually write a bit of code and you need to poll. And there's some examples on my website, but not on the slides, which show you how to do that. But essentially you call the poll function that will block until the interrupt comes along. When the interrupt comes along, you unblock and then you read the value and find out what it was. Okay, so that's the GPIO lib interface. The GPIO Cdev interface achieves a similar thing, but using nodes in slash dev. So when you enable this, you'll find that in slash dev you have GPIO chip, zero, one, two, three, et cetera. So each one of those nodes in slash dev represents a GPIO register, similar to the GPIO chip directory in CISFS. The difference then is that there are no sub directories. So GPIO chip is a character node, character device node, and so it doesn't have a structure within it. You have to open it and then you can use IOCTO functions to access the pins. Why, so this is actually more complicated, it's more coding to do simple things at least. What are the advantages? Well, first of all, it has the naming scheme that's more accurately reflects what you'll see on the schematic. So we name them now using the register, GPIO chip, one, two, three, et cetera, and then we number the pins within that, exactly as you will see on the hardware diagrams. And also since we are treating the register as a single entity, you can actually do several transactions in one single function call. So we can set a number of bits, for example, in one function call, and we can do that without glitching. Whereas with the GPIO Lib interface, you could only change one input or output at a time. Sorry, you can only change one output at a time, I should say. And the way it handles interrupts is a little nicer as well. So I'm not going to go through every single aspect of this because it's quite a complicated programming interface. So I'll just give some demo code that gives the basic idea. So this bit of code is going to be writing to GPIO chip one pin 21, which is an LED if you have a Beaglebone black. So the first lot is just the various include files you need and the variables. The interesting stuff is on the next slide. So here we open GPIO chip one. The next line, we set the line offsets to be 21. Remember that's the pin we wanted, 121. I set the flags, so we want this to be an output because we're going to use it to control an LED. Default values, so initially we're going to set it to zero. And consumer label, we can actually give a human readable string or at least a meaningful string, a meaningful label to these GPIO pins, which helps with debugging and such like. And then the last line, we have a number of lines we want is one. So having created that request structure, we then do the IOCTL, get line handle IOCTL. So this is a little bit of magic because this will return a new file descriptor, a new handle if you like, for this request. So we can now use, it actually returns in the request structure in the FD field. So then, if you look at the IOCTL down here, we are using that file descriptor then to change the state of this GPIO pin. OK, and we could do this multiple times. We could have different file descriptors for different groups of pins on this GPIO. And as you can see where we have line offsets up here, the fact it is line offsets is an array. So we can actually create a file descriptor handle which represents more than one pin. So as I say, we can then manipulate several pins in one go in a single function call so we atomically change those outputs without any glitches. So it's a nicer interface from a technical viewpoint, but there's a bit more coding involved to make it work. You can also, so the GPIO CDEV has an event mechanism which is tied into the GPIO interrupt mechanism. I haven't got an example of that code, but it's plenty around. So using that, we can then listen on an event. We can use poll or select to wait for the event to happen and then we handle the event. Alrighty, so GPIO, that's the fun stuff. The next few things, so I need to look at pulse width modulation and I need to look at I squared C and then I need to make a few something up remarks. So pulse width modulation isn't so often used perhaps as GPIOs, but pretty much every SOC has some PWM circuits. And essentially the idea of a pulse width modulation is that you can create a pulse train as shown at the top of the slide there where you have a period for the pulse and a duty cycle which is the percentage of the period essentially that the level is high. And then by modifying the duty cycle you can change it from 0% which means it's permanently off to 100% which means it's permanently on so you can do the full range. And it's used, the two common use cases for PWMs are dimable LEDs including back lights. So as you change the duty cycle the LED will be brighter or dimmer. And the second case is for servo motors. Typically servo motors are controlled by a pulse width modulated chain and the deflection of the servo motor is controlled by the duty cycle. So this is kind of useful. It's fairly simple to programme. Again there is in this case just one interface and it's a CISFS interface very similar to the GPIO lib interface. So if we look in CIS class PWM you will see that ok there's a slight missing key actually you will see that there are a number of PWM chips one for each PWM interface. Some PWM interfaces can handle multiple channels. So here I'm looking inside PWM chip 0 again this is actually from a Beaglebone. And if we look inside the PWM chip you can see that my arrow needs to move along a little bit actually. There are two files called export and unexport. So move that mentally along a little bit. The arrow should be pointing to the export so we can write the PWM number to export and that will then export it. And unexport works in reverse. There is also a file there called NPWM which says how many PWM interfaces we have for this PWM chip. And in the case of this particular chip which again is the Beaglebone this PWM chip 0 actually supports two PWM channels. So I can write either 0 or 1 to export. So let's go ahead and export channel 0 and we find then that we have a new directory for this PWM interface called PWM 0. And if you look within that we have the controls necessary to control the period and the duty cycle. And there's a flag to enable it or disable it. So initially it will be disabled which means it's not actually running. We can then set the period in nanoseconds and the duty cycle so that's the on part of the period also in nanoseconds. Oh and there's a file there also called polarity. We can set polarity to 1 which means that it flips it round. So during the on period it will be low and during the off period it will be high. So it just inverts the waveform. So we can do this from the command line or from a script. So in this case supposing I want a PWM with a one millisecond period and a 50% duty cycle. So one millisecond turns out to be a million nanoseconds. So we write one million to the period and we want it to be 50% on 50% off. So we write 500,000 nanoseconds to duty cycle.  And then we write one to the enable file and that sets the whole thing running. Okay so again that's fairly simple to do from user space. And then the last thing I'm going to finish I'm going to talk about is going to be I squared C. So this is inherently more complicated. I squared C is a simple serial bus. Two wire bus usually used to connect sensor devices, small e-proms, maybe control devices like touch screens. Although they usually use SPI. So with I squared C it is a bus. So you have a bus controller which is usually part of the SOC. And then on the bus you have a number of peripherals. The peripherals have a seven bit address usually hard wired. So when you buy an I squared C chip the datasheet tells you which address it is using. Commonly there are two or maybe four addresses you can choose from by linking various wires together. If you have a problem with a conflict where you have two I squared C devices with the same address well you can put them on different buses. Most systems have several I squared C bus controllers. So you can put them on to separate I squared C buses or you can go and buy a different chip. The way the addressing works is a little bit odd. So we have 128 addresses from a seven bit address but a bunch of them are reserved by the bus mechanic or the bus electrics. So it turns out you only really have 112 nodes per bus. So accessing this from user space you can do this by enabling the I squared C dev driver within the kernel and that will expose in the dev directory a device node for each of the master bus controllers. So you might see something like this. So here we have two controllers on bus zero and bus one. And then as before you can access them using open close read and write but most of the time you use some IOCTL functions to actually initiate I squared C transactions. The structures you'll need to do all this stuff I defined in that I2Cdev.h file. Just as an illustration of a couple of things you can do so there is a package called I squared C tools which help you in debugging these things. So this is an example of using I squared C detect on a bus and it's printing out so essentially it does a probe to every possible address and then prints out the results. So in this case here there is a device at address 39 and there are also a bunch of things at 53 to 57 but they are marked with a UU so that means they are already used by the kernel so we cannot access those addresses from user space. In point of fact since again this is from a Beaglebone those addresses are the I squared C eProms that are used by the Beaglebone which contain various IDs and such like but they are handled internally within the kernel we can't without some fiddling around access some from user space. We have an unhandled device at address 39. So again from the command line we can use there is an I squared C get and an I squared C set command so we can use this for simple diagnostics and simple use cases. So with I squared C get we give it the bus we want to talk to the chip address and then the register on that chip. So in my example here it turns out that the chip at address 39 is actually a ambient light sensor which I bought from Adafruit one time and reading through the datasheet from this we can see that register 8a contains the ID so we can check that we have the right chip and the right version of the chip by reading the ID register at 0x8a and it comes back with 50 and then I look in the datasheet and it says yes 50 indicates this is the right chip. So we can use I squared C get to read any 8 bit register in a similar way we can use I squared C set to change a register value I squared C set the bus, the chip, the register and then the value. So you can do a certain amount using I squared C get and set you can do more complicated control of the chip by using the IOCTL functions. So we can use, this example code here is showing how to read a, no, so you were writing register. Say that again. So actually this code is reading so we're opening the bus I squared C dash one we're selecting through the IOCTL we want to talk to chip 39 and then actually we are doing a read of the ID register which is at 0x8a. It turns out that the way that I squared C works is in actual fact you have to do a write then a read it's basically a loop so you have to write the value and then read the register value out and then you read the contents of the register back. Alrighty so there are three examples of systems of increasing complexity from GPIOs which are comparatively simple, PWMs slightly more simple, slightly more complicated maybe and then with I squared C you can do quite complicated stuff again doing it without having to touch the kernel. There are similar interfaces, generic drivers for SPI for USB and also a bunch of others I should have mentioned so for example if you are using GPIOs as if you have a bunch of GPIO buttons to control the user interface or something there's a whole GPIO buttons subsystem which will map a button, a key press sorry a button press into a key code which you can then handle within your user interface so we have GPIO buttons we have also the LED subsystem so my example was using the GPIO level to access the LED there's actually a whole CIS class LED subsystem which does more sophisticated things with LEDs and then you can also go you can also go further by using the user defined IO subsystem so this is very generic that allows you to create again from user space a program that completely accesses the hardware so using the UIO framework you can map the registers of the piece of hardware into the application memory address space you can also write a little stub kernel function which will handle interrupts and then you can actually do the majority of the handling in user space so this is the main use case for this seems to be FPGAs if you create an FPGA you will inevitably be creating some kind of interface through that piece of hardware and the simplest way to access that from user space is to use the UIO subsystem to access your bunch of registers that are exposed on the FPGA what are you missing by not writing a kernel device driver? so there are some things there are reasons that kernel device drivers exist in the first place there are a couple of things to do with robustness and performance so it is perhaps a worry to you that if you are handling a device from user space a user space program can be killed and terminated whereas there is no way to kill or terminate a kernel device driver except by terminating the entire kernel of course so it is maybe smart you could be regarded as being more robust to put the code into the kernel for that reason also within the kernel we have a lot of sophisticated locking techniques from spin locks, mutexes read write locks and the read copy write update mechanism so you can do, if you have highly contended locking scenarios you can do those better in the kernel than you can in user space and also you have more direct access to the hardware so you can do fancy things with memory addresses and DMAs and such like and then finally and probably the biggest reason to write kernel device drivers in the first place is that there are a whole bunch of subsystems within the kernel in which you can just slot in another device driver to cover so a simple example of this is the backlight, the LCD backlight it's usually a PWM channel that controls that so you could quite easily control it from user space using the PWM user space mechanism we just talked about but in fact there is another subsystem the backlight subsystem which exposes a different user interface via CISFS and if you want to expose your LCD backlight using that standard interface you would have to write some kernel code to do that Okidoki and that is everything I have to say on the subject right now so we have a couple of minutes literally three minutes spare for questions so if you want to ask a question I encourage you to come and use the microphones here so that the question is recorded on the video that's been made but yes, anybody have any questions or comments on not writing kernel device drivers? I'm afraid it's a long walk Is this working? Seems to What progress has been made on being able to access DMA from user space because we were interested in our company for that kind of task but there didn't seem to be anything very stable yet there was some movement in that area but not a So which interfaces did you look at? I can't remember which one it was but we were looking at there was something that exposed setting up a DMA channel from a user task but it wasn't an official thing yet So accessing DMA channels directly from user space is kind of tricky because the DMA hardware is very specific to an application to a chip and the way the memory is allocated and the way memory addresses are handled is also very system specific So I would guess I'm not aware of any standardised way of accessing DMA channels from user space and I would guess that there would not be such a thing because it is kind of tricky and device specific So there may be particular examples in particular particular board support packages but I don't expect to find a generate one Talking about GPIOs Have you looked at LibGPIOD which is a tool that exposes for the character driver and functions that you can either script or have either bindings into your Python code So there's a good point The way I describe the interface is that you write the IOCTS directly in your code to control either GPIOs or I2C or whatever There are in many cases libraries that will help you do this including LibGPIOD which gives you a high level abstraction and is easier to code to So in fact I would actually recommend you would use a library such as that I just didn't really have time to delve into that in the slides It's also upstream now It's also upstream in the kernel so we can build it and use it OK, maybe time for one more question I think we're coming to the end of our slot Ah, Michael You know in the Raspberry Pi world there are lots of Python libraries for doing stuff in user space You never change your kernel Any experiment on other platforms? I guess it's portable at the same way on Beaglebone Black for example It would be nice if there was So certainly the Raspberry Pi and the Beaglebone also has bone script something very similar So these platforms are highly scriptable using Python or JSON or whatever scripting language you like I don't know of very much effort to port that to other more deeply embedded platforms So Mike's experience at least if you get a single board computer or a system on module from one of the many vendors of these things they don't come with Python support very much they don't come with fully scripted whatever So it would be nice if they were to maybe as the Raspberry Pi concept continues to roll through people will start doing this more But yeah, it would make our lives a lot easier if we could just write everything in Python code Okay, I think we're pretty much out of time now so if anybody has any remaining questions grab me as we finish this session But meanwhile, thank you all very much for coming along to this and I hope it's been useful


Hey, Psych2goers! Welcome back to another video! This video will be different than usual, than the usual content in this channel. And this is Mafia. I'm Mafia. I'm 15 years old. And I'm one of the animators in Psych2go. And it's nice to meet you. I animate for Psych2go. I even have my own personal YouTube channel, which is also called Mafia. I post my animatics there for fun, and do random stuff there as well. Mostly about an anime I watch called Toilet Bound, Tanakoku. Munger Eaters, where are you at? Oh, and let me show you my workplace, if you want to see. This is my workspace. I work here. It's right next to our kitchen, and I have some gloves over there. These are my glasses. I keep them in a fan because my hands are steady, and I keep that to cool it down. And this is my tablet. Yeah, that's it. I do other stuff in my free time too. I play Minecraft, and I often write the script and work on my story for my original characters and stuff. A lot of people have been asking about how I balance my work, my school, and my YouTube channel. Let me just turn on this minifam. So the way I balance my school, my YouTube channel, and my Psych2go is that all it takes is a little time management. And my mom helps me with that. So yeah. I usually just have like four hours in school. I have four hours of classes. It starts from 12 noon to 4 p.m. So I work in the mornings and later after school until like 9 30 or something. I usually just switch between YouTube and Psych2go. Alternately, what do you call that? And yeah, school is manageable. Yeah, it all takes a little time management and focus and not getting constantly distracted. I mean, not in a lie. I kind of get distracted sometimes with other stuff.  It's been really fun working with Psych2go. It's been really fun being part of their team. It's been fun making videos for them. And it's also been really fun, especially when I get to put some little Easter eggs of the things I like into my videos. And I like expressing myself a lot in these videos that I make. Through it, it kind of added more to my knowledge. What's the word for that? It expanded my knowledge. It expanded my mind. I don't know how to describe it. Like I do this, I hone my skills and continue to grow as an animator. Oh, I found the right word. It expanded my horizons. Oh yeah, and we're looking for new members to join our team and the link is in the description to apply. And if you're interested, you can go check it out. So it's been a quiet journey. And I'm currently editing the video right now. And thank you all for the love and support. It really means a lot to us and to the team. And it really, it's really one of the, it's really the main thing that keeps us to push forward with what we do. Thank you all. Love you.


Design is a philosophy.  Design is a creative problem-solving approach. Design is the details. Design is usability, accessibility and feasibility. Design is so much more than just beauty. Do you agree?


Hi guys, and today I want to talk about a topic that I get asked a lot to speak about and that is what are my opinions on new grads in the ICU. So I personally wasn't a new grad in the ICU. I had a year of experience going into the ICU, but with that being said, hey, shh, Abby, but with that being said, I still, do you mind? I am sitting on the counter, but with that being said, I still felt like a new grad starting off in the ICU, even though I had a year of experience. So let's get down to my thoughts. I think that to be a new grad in the ICU, you have to be a special sort of new grad. And what I mean by this is, there's different types of new grad nurses. Some have a little bit more confidence. Some are smarter than others and that doesn't mean that you're, and I'm not saying that means you're a good or bad nurse, but to be in the ICU, it takes a certain sort of personality. You have to be a quick learner. You have to be willing to jump right into things and get in on the action and not be afraid to just be challenged and have new things just thrown your way and you have to kind of figure it out. Personally, I think it's really great to have some experience elsewhere before going into the ICU, but I do think that it's possible for new grads to go into the ICU and do well at being an ICU nurse. I have seen and I know of a lot of nurses who were new grads that went into ICU and who are doing fantastic right now, but they also have those personalities where they're confident in themselves and they're just really go-getters and they're striving to learn and not afraid to be hands-on and just like, hey, throw it my way and I'll figure it out and I'll be challenged. And yeah, so I do think new grads can work in the ICU, but I really think that you should look at yourself and look at your nursing capabilities and decide, should I have some experience elsewhere first? Will I have the confidence enough? Will I have the motivation enough to learn in the ICU or am I gonna kind of be shy and I don't wanna say cower away, but kinda cower away at critical situations when they arise. And that doesn't mean you're a bad nurse, it just means that you're self-aware of your personality and that doesn't mean that you won't be an ICU nurse in the future and you won't be a great ICU nurse in the future, but some people need that little bit of experience first off before they can go into the ICU. So let me know your thoughts in the comments below about new grad nurses in the ICU and let me know. And if you have any other questions, leave them in the comments below, give this video a thumbs up and subscribe to my channel and I'll see you next time, bye.


We pray, we pray, we pray, and then we get discouraged and we'll leave. The prayer comes, but we're not there to receive it. So don't give up. Don't stop praying. Keep persevering, keep praying, keep believing, keep serving God. He hears your petitions. He will surely come to those that cry out to you.


We'll put it under there. This is going to go somewhere. It's going somewhere. We're going to roll. Let's get it apart from there. Roll. Roll. We're going on a journey. I am. I'm going to roll. I'm going to roll. I'm going to roll. I'm going to roll. All right. He's actually off. I broke the level. One of the legs isn't on. He's our time-lifter now. It's got a way. Yeah. Here you go. It's number one. I'm like 15. That's a high five. We won. He's worried about me because he didn't want to go to the hospital. He's worried about me because he didn't want to go to the hospital because he didn't want to go to the hospital. He's worried about me because he didn't want to go to the hospital. He's worried about me because he didn't want to go to the hospital. He's worried about me because he didn't want to go to the hospital. He's worried about me because he didn't want to go to the hospital. Thank you all very much and let me reassure you I know that some of you will probably be present in a little while when I've got to make a speech so I won't make two of them or I won't make the one twice. But I just want to say again this hospitality and the warmth of your greeting and all is a very heartfelt experience for me. I'm grateful to all of you. I'm also more full than I should be. But it was wonderful and I can't help but think though seriously how much of the problem that's on all of our minds how much of it is evident there is a sermon or a speech in the menu. Because is there any place in Cuba outside of maybe the presidential palace where that menu could still be served. Just before boarding the plane this morning I was handed some a little report and Cuba is not even able to meet its quota now for its customers in its principal crop sugar. And I've been told since I've been here they're importing that. And if ever there was an explanation of the difference between freedom and what they now have there it's all told in what we've been eating here in the menu because that's no longer available there. And if I go on any longer I will be making the speech that I'm going to make later so I better not do that. But thank you all very much. Thank you. We gather here to write some history. All of this happened because of the effort of the group of well-intended men and women. Ladies and gentlemen there's a name for this kind of spirit. It's called the American spirit and there's no limit to what it can do. But let me yours from the islands of the Caribbean to South to Central America to North. Orphanage and then to a foster he is the United States. What to say he gave me a pair of running shoes. And I'm not sure what. Oh there were those who thought Miami had reached its peak and was on the way down. The economy seemed stagnant. There was a little hope inside the international center. A gateway to Latin America. The Cuban people it's a failure of Sadelle Castro. It reminds me of what happened to collect stories that the Soviet people are telling each other. Russian people. In turn he said the potatoes. He said there are so many that if we put them in one pile they would touch the foot of God. And the commissary said just a minute in the Soviet Union there is no God. Democracy and justice. Perhaps the greatest tie between us can be seen in the incredible number of cathedrals and churches found throughout the hemisphere. Our forefathers took the worship of God seriously. Our struggles for independence and the fervor for liberty unleashed by these noble endeavors behind the people of the new world take thousands of troops in Africa. Much less know about the casualties they've suffered. The greatest threats to dictators like Fidel Castro is the truth. And that's why I'm urging the Congress to approve legislation for the establishment of radio martini. It's such a government to intimidate us.


As conversations build on the next general elections and a ruling party rated poorly in key governance standards, we look at the opposition parties. Are they truly ready? Away from politics, the African Cup of Nations has begun, but not without controversy. Wallace Codd joins to discuss fears of poorly rated football competition. And as always, we will be going through the major newspapers and having a review of today's biggest stories. Good morning, thanks for joining us on the Breakfast here on Plus to be Africa. I am Saugie O'Bama. And I am Messi Boku. It's good to have you join us this beautiful Friday morning. Absolutely. As always, we will start with top trending stories. But much later, we're going to be having a discussion on the opposition parties across Nigeria. Some of the things that I've read across social media and seen people say and ask is, these opposition parties simply waiting and asking that Nigerians simply hand their votes over to them without doing any work, without fighting, without working hard and tirelessly to ensure that they convince Nigerians that they are a better option. And so we're going to be asking those questions this morning. Have they done well enough? Are they doing well enough in the period to convince Nigerians that they are a better option come 2023? And of course, Afgan, with our discussions with Wale Scott, will also come up this morning. We'll be looking through the officiating and a few embarrassing or seemingly embarrassing moments at the Africa Cup of Nations. But before that, our top trending stories. Let's start with, of course, one of the major opposition party, the PDP, Chief Delay Mamadou, the owner of Ovation International magazines, has declared his intention to also run for president come 2023. And of course, he's running under the platform of the People's Democratic Party. This, of course, might come as a shock to some people, but for others, they might seem very indifferent. And mostly because he, as a Nigerian, has the right to contest and everybody does. But he doesn't have a lot of experience with regards to governance. He has not held any government position in particular in the past. He has, of course, hung around a lot of politicians. He has a lot of friends in the political space. But at the same time, the chances, and this is one of the things I've also seen mentioned, the chances of the PDP giving him the ticket are close to zero. Well, so, like you rightly mentioned, the fact that everyone has a right to contest, including, we can also declare an attentional thing. We want to contest on that any party. However, I listened to him and he talked about not having that experience, but he has talked about the fact that he's been economically viable. And if you talk about business and what have you, he has been very strong. He also mentioned the fact that he thinks it's a plus for him that he's not actually had any political office. For instance, let's say he's not whether by appointment, or by election, he's not been a commissioner, a councilor, chairman, and what have you. So he was saying that that's an a plus for him, because I really don't know why he thinks that that's a plus for him. But he's mentioned the fact that being an economic or being in business, it's a plus. And he understands the plight of Nigerians. He understands the pains. He also went on to highlight some of the gains he has achieved in entertainment, the fact that if you see right now, young people, artists in Nigeria, both male and female are topping the charts, and he has contributed to all of that. But like you rightly mentioned, because you want to begin to look at the experience, do you have the experience? That's number one. Do you understand the pain? And he said one of the major issues, because he mentioned one of the major issues has been disunity for us as a country, that he's the uniting factor. He mentioned the fact that he's also from the Southeast, I mean, Southwest. Southwest. And he also has some kind of affiliation with the Southeast and what a view. But let's see how it goes, because at the end of the day, the People's Democratic Party would have to look for a very viable candidate to push out there if they have to clinch to the seat of the 2020 president. And because of how critical it is for the opposition parties and every other party, mostly the PDP and their chances of winning the elections in 2023. I remember they did all they possibly could in 2019, I believe. Maybe they can assess some of the mistakes that they made. Maybe they can also review some of the decisions that they took, the persons that they put as their front runners, which a lot of people have looked at and said, okay, these are very, very reasonably good candidates. But in 2023, PDP has a huge task ahead of it, to not just find the right candidate but also convince Nigerians that these are the persons that will be able to move the country to a better place at one seat next level, to a better place generally. And so because of how critical their decision is, not just anybody, it can't just be anybody who has a seemingly popular face or decides that they're a member of the PDP and they want to run for president. And that's why it might be a far straight for the limo model, like I said, the chances of him getting to get really, really, really slim because of how critical that decision is for the PDP. On any other party, he maybe will stand a chance. But he has, a few months ago, joined the PDP or gone back to the PDP. I also don't think it's the first time he's running for president. Yeah, in 2011 he actually contested. So he has just a few months ago gone back to the PDP. And so I'm not sure if he's aware that his chances of getting that ticket are extremely, extremely slim. And so it's starting to look like it's a joke to some people. Exactly. Now, if you want to look at it and if you feel that the PDP should be thinking in that particular direction, you see one strong argument is still on. It feels like a lot of people are trying to just ignore. It's the fact that if you say rotation has been it, despite the fact that it's not been constitutionally guaranteed, then everyone should be thinking, political parties at this point in time should be thinking of which zone should have taken it and should pay attention to it. So let's assume that these political parties put their acts right and then they pay attention to the fact that the South East should be considered. Following all of the crisis, I mean all of the unrest in the South Eastern region, iPop and people asking for a referendum and wanting to go different paths. One would think that the PDP should be considering that. That should be number one. And if they're able to zone, then of course you also have people who are from different regions of the country, also part of members of the political party like Dilma Mood. And then you would think that that would also be a factor because before you win, elections are numbers. It's not just about having a fine phase or having so much money and whatever you need to do. You need to work with numbers. And so if you have people from different regions, then it's possible that you are able to begin to converse and push this candidate. But most importantly, because people, I mean it feels like you see the declaration, a lot has been talked about now. You see the candidates that the highlight has been on if you want to use that particular word. And it feels like nothing has been really talked about the South East. Those who have actually come out to declare their intention don't seem to be having that highlight, don't seem to be having all of the attention that the counterparts are having from different regions. So we can quickly move on. I think that's the PDP's decision, not Dilma Mood's decision. No, no, no. I'm just saying that as a party, that if they think that they have to get it right, then they need to begin to consider some of these issues that putting the parties apart. And to be honest, nobody knows what the PDP is thinking. You have also seen Alan just say that there's people who jump in first and declare their intention first. They eventually get pushed aside a few months to the elections. And these are some of the names that will eventually very likely be forgotten in a few months that they're even running. So the PDP still has a lot of calculations to make. And same with every other political party. They have a lot of calculations to make leading to the elections. We're just in January 2022. And I understand that one whole year of politicking is what we're going to experience. It's still reasonably too early, exactly, to conclude that that's what their decision would be. The South East still will have a chance and have a shot. Moving away from the PDP and, of course, Chief Dilma Mood, let's now move to an Ambra State where something pretty interesting happened yesterday. The governor of the state, the governor-elect of the state, the former CBN governor, set up a transition team that will, of course, lead him into government when Willy Obiano's term expires. This transition team has been praised. And if you look across the comments that I read, a lot of people commended Chikuma Soludo because of the people who made the team. There's criticism with regards to the number because there's 80 of them in this transition team. And I also saw people comment and say that this is quite a large number of people for a transition committee. But if you look at the quality of persons that made up the team, that basically made everybody relax and say, OK, well, this looks like a very, very capable team. A couple of them, they are not even from an Ambra State. So he wasn't even looking at a state of origin when making that transition committee. He was looking at competence, was looking at the quality of the individuals that will lead him into government. And that's one of the things. Some of the people that were mentioned that have been named, let's see if I can quickly find that list. Just a few of them, you know, that really caught my attention. Mrs. Obi Ezekwisili, who's the chairperson of this transition team, Professor Benedict O'Kee or Rama, Right Honorable Ucho Kaffo, Professor Patutomi, Professor Chidi Odinkalu, Mr. Steve Mwaga, Chief Osita Chidoka, and Honorable Dr. Ben Wanko. That's just eight of them that I'll quickly mention. Along with, you know, a couple others that, well, are phenomenal persons in governance, in economics, in whatever field that they are.  So this basically got a lot of people excited about what Anambra will look like when Chukumasulo eventually takes over office. Well, those persons that some people are saying that, yeah, this is an opportunity, the importance of having a technocrat in the system, the list of persons that constitute the transitional team, look like the person that would add value, for instance, Obi Ezekwisili, some persons are quite impressed at the fact that they should be leading the team. And we're hoping that Anambra would actually turn to what the government actually thinks it will become. But, like we would always say, maybe too early, you begin to wait to see, you know, what the plan is. Some people would say, speaking English is not a criteria that it would translate into development and what a view. So at the end of the day, let's see how. Yeah, it looks really great, it looks great, because we've seen, even when this administration came on board, you want to talk about the economic team of the president.  But where are we right now? And so as much as it's commendable to say, yes, that's a step in the right direction, you have quite some amazing, fantastic personality in there with some qualities and experience, and we're hoping that that would affect and bring about change and development in terms of these ideas. Another thing also, again, is implementation, because usually that's always the problem that we have. So you have a very wonderful policy. You have very brilliant, and at the point of executing, where do we stop? But it's a good one, call us to them and let's see how. My thoughts on this, when this current administration came into power in 2015, and this is in response to what you mentioned, follow up to what you mentioned, the first of all criticized because the government took about six months before he set up his, if I was able to name ministers and the likes. People in government defended and say, it doesn't matter how long it takes, as long as they eventually name. And then eventually name these persons, and they were basically political cronies. They weren't necessarily people who were experiencing any of those fields. They were basically round pegs and square holes. But anybody who seemingly assisted in getting the government into power was thrown in and given some position. And that's why you say a lot of MDAs in the country didn't work. If you ask 80% of Nigerians, who's the minister for this or that, I'm sure a lot of people do not know. Because these persons are almost relevant in those fields that they were given. So there is that. So it's a plus that you can see Chikumatsu Ludo and the mindset and the kind of people that he wants to surround himself with and understand implementation is different from sharing ideas. But there is that. The Anambra people are excited because of the caliber of persons that Chikumatsu Ludo is. His background as a CBN governor and what it promises for Anambra State. And so himself and then having a team like this, these aren't necessarily going to be people working for him in government, it's a transition team. But at least it gives you an idea of the caliber of minds that he wants to surround himself with while getting into that position. Another thing that I would mention is we also need to realize and this, okay, some other things, two things that I'll mention. First of all is shed a light on the fact that we need to see some of these persons show their hands at the state level. Some of them have contested for president before or have tried to get into the seat as high as the presidency before and they failed. So people have mentioned that it's also good that we see how capable they are at the state level. And that's one of the pluses that Chikumatsu Ludo has compared to Kingsley Mogalu in conversations concerning elections in the last few years. Let's see what you can do at the state level first. That's another thing. The third one that I'll mention is governance at the state level is extremely important for every citizen, for their electorate. If we have states run by persons who know what they're doing, who can develop IGR, who can give them the very basic things that make better quality of life, nobody necessarily would need to remember about the federal level all the time. Governments and their failures have also contributed to the complaints that Nigerians have had at the federal level. If you have a state working perfectly, infrastructure, healthcare, job creation and every security-wise, a lot of people will leave very, very comfortably. And if you have that happening in every state across the country, then a lot of times the pressure that the federal government also and the insults that federal government gets all the time will be less. So we need to remember how critical it is to have a government house at the state level that know what they're doing, basically. And so, best of luck to a number of people. We hope that Chukuma Soludo does succeed and, of course, with the rest of his team.  He, of course, tried to defraud citizens of $270 million, but he was eventually arrested along with some arms and ammunition. But that's not the only thing with regards to his story. His name or his Bola Renoir or Luwasegun faked himself as an army general, also even said that the president, Muhammad Bawari, stated that he was going to make him the next chief of army staff. This is a very clear story of it seems to be past me, I want to do now. But that's not the only thing concerning this story. People have also seen that this person is the same person, if you remember during the Ansar's protest, he was the same person who was firing into a crowd. He got out of his black SUV, a Range Rover, and was firing into a crowd of Ansar's protesters somewhere here in Lagos. The young man, Kuelumio Nifade, who made that recording, if you remember the story very well, who made the recording of that incident where this human being you are seeing on your screen was firing into a crowd of protesters, live ammunition. The person who made that video eventually was found dead, was arrested, a country reporter arrested by the police and never made it out alive. And that's an investigation that we still have not been able to get to the bottom of till today. But so rest in peace, Kuelumio Nifade, but this person on screen, that is not the chief of army staff, Nadia Zia, an army general, has been arrested. So how did he... So I'd like to start from the part that if the story, that's something to go by that he was found shooting in the crowd during the Ansar's protests, how did he find himself there? How was he able to, you know, deceive everyone and come... I mean, really, it doesn't really add up, it doesn't really make sense. Except there's something that we don't know, except there's a play, there's a game that's actually about to unfold, and somebody is going to take a fall for something. How do you... The military is not just any profession, the Nigerian... And that's why I said... How do you say that somebody parades himself as the chief and army general? I mean, that's a lot to even, you know, digest right now. That's why I said, you know, this is a clear case of the things we pass by when we do now, because there are things that you should try. Listen, there are things that you should do. No, no, no, you shouldn't. There are things that you can do and people will say, so how did he bridge the protocol? How was he able to carry himself so much that he couldn't be recognized? That, you know, the real army generals, the military personnel... I don't think it was necessarily walking in army circles, you know, this is a... So he was walking in isolation? No, so listen, so these pictures, you see, and aren't necessarily in it's a two division or any division, these pictures could have been taken in his own house, you know, taken anywhere. You know, maybe, of course, around unsuspecting, you know, fellow military officers. You know, but I don't think he, you know, would walk into where the chief of army staff is.  I remember also a couple of years ago, decades ago, actually, a person who, you know, said that he was CBN governor or so and tried to sell an airport. It comes in the world, for more than 200, about almost $300 million that he tried to sell that airport to unsuspecting, you know, foreigners. He also claimed that he was maybe CBN governor or GMB of NMPs. I don't remember what it was, but he also had his own, you know, ways of convincing his victims that he was this person, you know, that he had these positions. You know, it's not very difficult to take pictures in offices and claim that you are this or you are that. My only concern really is, I hope, you know, that there is some, I mean, if he's found guilty of some of all these crimes, at least there is some justice, but at the same time, never mind. I'm just thinking that, you know, that's so much to process right now. Yeah, it's a lot. We just pray that the justice actually would be meted and, of course, the law would be cut up when he may be found. We should not just end at, you know, defrauding victims. He was also caught with weapons, and so those charges need to be amended. I hope that the charges are up to 50 of them and he stays away for a long time. He found guilty. Those are our top trending stories. Stay with us. We'll take a short break. When we come back, we, of course, will be looking through the major newspapers across Nigeria this morning. Stay with us.