This afternoon, we're going to talk about group application adjourned to the Group Application Communication Core. The idea is to show what's behind the group communication or the group application, sorry, and talk a little bit about Paxus and how our Paxus-based implementation works. I think you already saw this slide, but I'll let it here for a while. I'll talk a little bit about myself. I have joined Oracle at the time until I was son, eight years ago. I've been working basically on application and HA for the last eight years and a half. And before that, I was to work on database as a consultant and basically on Postgres, Oracle, Microsoft, SQL server, and before joining, Son and Oracle have never worked on MySQL before. She has been a pleasure to work with a lot of great guys and to develop an application to improve application for the last eight years. So our agenda. The idea is to give a little bit of background on what the plans are regarding application and specifically about group application. And then we're going to dive into what's behind group application, specifically about our Paxus-based implementation. And then I'll show a little bit about performance, but just a sneak peek preview because after me, there will be a guy named DeVeter that you dive on performance and you explain everything that you can and you cannot do with group application in terms of performance. So group application is a tiny piece, a tiny but important piece within the MySQL iNodeB cluster. The idea of the MySQL iNodeB cluster is to be a fully distributed database solution. So we'll have the router that will be responsible for delivering or sending the query to a specific replica sets. A replica set is powered by group application. And you can, as you can do now, with a synchronous application, you can plug your synchronous application to our group application core here. And our group application solution is called synchronous application, but I would discuss a little bit about that because I really don't like the name because it's not really a synchronous solution, but I'll talk a little bit about that in a few minutes. So although it's fairly new, you can still use all the MySQL ecosystem solutions. You can use the synchronous application, plug it into our group application solution. You can use semi-sync application. So you can still grow your database, you should grow your cluster using the asynchronous application solution plugged along with the synchronous application solution that you provide with the group application. So you have also an important piece of this puzzle. It's called MySQL Shell. That's responsible for orchestrating our cluster. You can use the MySQL Shell in a user-friendly way to add nodes, remove nodes for the cluster, and clone cluster. Basically it's an admin tool to make things easier to the end user. And of course, in order to reach one of these replica sets, you need to keep track of the members that have joined the cluster and have left to the cluster so have metadata on this information. It's our future. It's not really fully implemented yet. And you can see a sneak peek preview of the solution in labs, but you are working hard to make this idea, to make this solution, eventually GA. So in the core of the MySQL and Adobe cluster, you have the MySQL group application. It's a multi-master update everywhere application plugin for MySQL with built-in autonomically distributed recovery, conflict detection, and group membership. And the key point here is that it automates failover. You don't need a script. So that's when a master fails, have to failover to a new master, have to pick one of the labs that has the best GDT. Everything is fully automated when you use our group application solution. You don't need to think about it. And it also provides multi-master updates everywhere. You can write to any master, although you're not recommended this yet. There are some still rough edges between our group application solution, and I know to be specifically about gap locks. You actually work on making the gap locks work in sync with our group application solution. But if you control your workloads, if you have ideas on how you can split your workloads between the servers, the multi-master you work just fine. And it provides full tolerance. So that's when a node fails. Automatically, the cluster will detect that the node has failed. And if you are using the single primary solution, it will elect a new primary automatically. So it's about automation. It will hide all the complex about failover from you. And you don't need to have a script to do a lot of things and having seen some talks this afternoon or this day that script can do bad things when combining them with users. So and what's group application? So you have three important pieces in group application. Have the replication plugin is the core part, the core piece of the solution. And have a bunch of APIs to talk to the server. So everything that the group application needs from the server is provided through a set of APIs. And you have an API underneath it that is used to propagate information. That's case the information is the transactions to remote nodes. How it works. During the execution of a transaction, there is no interaction among the nodes. Everything is done locally. But upon commit, you get all the things that the transaction has done. And you propagate all these things to the remote nodes to all the havocers. And then the magic will happen. Exactly what happens. When the chance propagates to the remote nodes, there will be a certification process that will be responsible for verifying if there is conflicts among possible concurrent transactions that have been executed on other nodes. If there is a conflict, the transaction will be hold it back. If there is no conflict, the transaction will commit. So that transaction, remote transactions is committed through what you call an applyer. An applyer gets all the updates that you call a write set. And you inject, we will apply these updates on the remote nodes. Of course, in the originates machine on the machine that the transaction has executed, you just need to reply back to the end user saying, OK, the transaction has been committed or the transaction has been aborted. And everything is integrated in MySQL. It's integrated with iNodeB. Of course, it's our first GA solution. It has been GA since December. There are a lot of things to be done. But the idea is to provide a lot of performance schema tables so that you can monitor the solution. There are a few performance schemas already provided that you can use to check what's happening inside the cluster, what's happening within a specific node. So underneath, that is this group communication API that's responsible for propagating the information to the remote nodes. And we're going to dive a little bit in this API. So this API is quite simple. It's a thin layer. The idea is to hide all the implementation details on the group communication system itself. In the beginning, our solution was based on CoroSync. It worked fine as a prototype, but it had several issues with CoroSync. And I highlight some of the main issues that led us to choose another solution. I've decided to choose an in-house solution. And in this thin API that sits between our group communication implementation, the core of the group communication implementation, and the message bus was really important to make this transition easier, or is in our case. So in the beginning, there was CoroSync, but I've decided to move to our in-house implementation. And I will talk a little bit about it. So it's a thin layer, but it has to preserve some important profits from the group communication system, whatever the group communication is. So I have to provide total order in the sense that when you send a message to a remote node or to remote nodes, it has to be totally ordered among all the messages that are being sent by concurrent nodes. It has to preserve safe delivery, which means that I will only allow a node to get these messages to deliver these messages when a majority of the nodes get it. And this was one of the key issues that you had with CoroSync. CoroSync didn't provide safe delivery, which means that a node could get a message, then do something by these messages and fail, but the other nodes wouldn't get it. So basically it means that you could have inconsistent neural cluster. And that's why I have decided to use our in-house implementation. Another important point about the group communication system and that this thin layer has to preserve is the idea of view synchron. Basically view synchron means that whenever there is a chance in your cluster, whenever a node is added, whenever a node is removed from your cluster, the information about the membership has to be totally ordered with the message that's sent through the cluster. So it's quite important to decide when a node joins, when a node leaves. Those information has to be totally ordered with the message that I extended in the cluster. So it's a key property of a group communication system. And this usually called, these view synchron properties is usually called virtual synchrony. And you may have read somewhere about group communication, about synchronous application, about Galera. And they use the virtual in the name. And in my opinion, at least in my humble opinion, it's not really a good idea because the virtual comes from the virtual synchron which basically means that nodes that have left the cluster, nodes that have joined the cluster, this information about chance in the cluster have to be totally ordered with the messages that have been sent, that are being extended. So there is nothing to do with synchronous. There is nothing. And there is no correlation between synchronous application and virtual synchrony. I don't know why people come up with this idea and this name, but it's wrong. And our solution is not really synchronous. It's not synchronous application. And I'll explain, as I have said before, why it's not synchronous in a few minutes, in a few slides. So our group communication engine. So our solution is based on boxes. It was initially based on Corosync, but we have decided to use our in-house boxes implementation. It has nice features. It has compression, built-in compression. It has the ability to run different platforms, basically all the platforms that are supported by MySQL. And Corosync only supported Linux. So it was basically a no-go for us with Corosync, in that sense. It has support to dynamic membership, in the sense that it can change the cluster when everyone can add nodes, can remove nodes from the cluster. It has support to SSL. So if you need encryption, you can use SSL. And I forgot to mention something about the, let me go back one slide, sorry. So I forgot to mention about closed group. Closed group means that a node is only allowed to send a message to the group, to the cluster, if he has joined the group. So it's basically about security. So security is very important to Oracle. It's very important to MySQL. And that's why you have this property of closed group. So that's why you have great support to SSL. And you also have IPWideList, and you can specify which nodes are allowed to join your cluster. So there is no third party software required. You don't need an external component to run group application. You don't need an external process to run group application. Everything's title integrates within the MySQL product. And you don't need your, don't have support to Mootcast. So it means that you can run group application in cloud without problems. And most of the time, you really don't need Mootcast. I think Vitor, you talk a little bit about this in his presentation about performance. So I have decided to use Paxes, but there are a lot of Paxes variations. Moot Paxes, Fast Paxes, Disk Paxes, and we have picked one specific solution. In fact, we have started developing our in-house implementation. And then later, you came across this paper that is called Dimensions, or this protocol that is called Dimensions. So our solution is pretty similar to Dimensions, but was not initially based on it. And there are a few difference between our implementation in mentions, but if you want to pick one protocol, one paper, that has a lot of similarities to our solution, I would say that it's mentions. So to understand how mentions work and how our solution works, you need to understand a little bit about Paxes. So Paxes is really, really, really simple. And although the implementation is really trick, to get it right, to get a good performance is not easy, but the idea is quite simple. So I have notes that have an important, that have rows in the protocol. These rows are, they are proposers, they are acceptors, and they are alertness. You have phase, I'll explain each phase individually. And usually all the members, all the nodes have the same rows. They are all proposers, acceptors, and alertness. And the masses that are sent through this, in our case, are transactions. And in order to make progress, you need a majority. So if you have three nodes, if you have three members, and at least you need three members, you can tolerate one failure. One of these members now in these slides can fail, and you still can make progress because there'll be two nodes. So I'll explain a little bit about each one of these phase so that you can understand our Paxes-based implementation. So the first phase, this prepare phase, or leader election phase, based one of the nodes, one of the proposers, you'll become a leader. And the idea here is that if there are many bosses, there is no progress. If many people or several people are bossing around, there is no progress, as in real life. So we have to pick one of these members, one of these nodes, as a leader. So this is the first phase of the Paxes protocol.  One of the nodes you send this message, usually the node with the lowest number, in this case, in our case, in our example, zero, member zero. So I use the same set of images through all these slides. The dark blue or dark gray, I don't know, whatever, it's a leader. The other ones are basic acceptors or learns. They can become a leader eventually if the current leader fails. So the member that wants to become a leader, you send a message with a ballot number, with basically a token, say, I have this token, number N, and I want to become a leader. Everybody that gets this message will reply back if it didn't receive a previous message with a higher number. So basically to promise, okay, from now on, I will, you are going to be the leader, and I will reply back to you as long as anybody else send another message with a token or with a ballot number higher than you. Everybody will make a promise to follow that leader. So you only need the first phase to elect a leader. When there is a leader, as long as there is a leader, you don't run the first phase. You go always to the second phase. And the second phase is the core of the protocol, is the dissemination of the data, of the transactions to all the members. So the leader, in the previous phase, in the previous phase, you get information from the members and it will also check if someone got a previous message. If that it was a previous message, it will reuse it. Otherwise it will propose whatever it has in the queue to be proposed. So it will send a new value if nothing else happened. And the protocol requires just a single round trip to get an agreement. So basically to say, okay, that's the next transaction that we will commit in our group communication solution or group application solution, sorry. So the last one is the learned phase, okay? You get an agreement, you got an agreement, that's a transaction, the next transaction to be will be transaction X. Then the leader, you reach the agreement and the leader needs to inform the other members that there was an agreement. So there is a third phase, the learned phase, where the leader will inform all the members that something has been decided. And usually you can pick back the learned message in the previous message in the accepted phase so that you don't need really to send any specific message saying, okay, that's the next transaction, the next message that has been decided. So you can basically pick back this information in the other, the previous phase of the protocol. Time's up. Okay, really? Okay, so sorry about that. And okay, so you don't really want to commit one single message, want to commit a single message. So all the messages will be kept in a queue. So we'll have a sequence of messages. So we're going to commit the next transaction, the next transaction, the next transaction. If a leader fails, we need to elect a new leader. So, and why? You have decided to create your own Paxus-based implementation. Because the leader can become a bottleneck. Don't want to send a transaction to the leader and then the leader, you send the transaction to all the nodes. It's really, it's not really good. So that's why you have decided to create our own Paxus-based implementation. So in our solution, everybody is a leader.  Of course you have to organize these slots in a sequence. So let me skip a few transactions. And there is a few slides. So there is a key issue here in our solution. So if a node has nothing to propose, you have, this node has to inform the other nodes that okay, I don't have anything to propose. So I'm gonna skip my turn in these slots in the sequence of messages. And there is can, I mean, this, you can use a simple learn, you can use a simple learn message to do that.  You don't have any transaction you kill. So let's move to this slide. So current, you recommend only the primary single solution. So there is no direct mapping between our primary solution and our Paxus-based implementation. In the sense that if a node fails or if a node has nothing to say, has nothing to commit, it still needs to send a learn message and this can become a problem. So in our layer, in our thin layer, you immediately expel a node when a node fails. Otherwise, every time you'd have to run the full Paxus implementation to get an agreement for that slot. So a few optimizations.  You have pipeline, you can commit seven transactions or you can send threads, you can run the agreement protocol, the consensus protocol in parallel. You have batch. This is not really exposed to the end user right now. You have plans to do that. You have compression and just to finalize or to finish some numbers. With multiple writers, you are able to reach more than 100,000 transactions. That's pretty good. And this is a key information so that when Victor presents numbers about group application, you are going to see that we have room for accommodates transactions that come from my scale. Our group implementation solution has room for growth. Latents, let me skip this one. Okay, sorry. Let me jump to the conclusion. So group application, our group communication solution has become GA in December. There are a lot of things to be done. Basically, you have decide to use Paxus just to be able to play with the idea of leaders, acceptors, and learners. And you have big ideas and big plans for implementation. So we stay tuned because it's gonna rock. Thank you and sorry for the other time.


Well, thank you very much, speaking for myself and I think speaking for the Vice President also gives us great pleasure to join with the Cuban American community in commemorating the anniversary of a great day in the cause of a free Cuba, the establishment of the Cuban Republic 86 years ago. On that day, May 20, 1902, the bonds of friendship between the peoples of Cuba and one of the United States were reaffirmed, the birth of the Cuban Republic was the culmination of a long and arduous struggle of revolts, political imprisonment, executions, and exile. Today, that passion for a free Cuba remains alive in the hearts of thousands of Cubans everywhere. Cuban Americans have demonstrated that a free people can accomplish unencumbered by tyranny and I am confident that the time will come when the spirit of freedom will reign in Cuba itself. And let me just say throughout this administration in good times and bad, I have always known that I could look to the Cuban American community for support. Your support, your friendship has meant more to me than I can say. Having suffered personally the evils of communism, you have an acute understanding of the danger that communist expansion poses to this hemisphere. You have stood in support of people everywhere who seek freedom such as the people of Nicaragua. And let me assure you, as far as this administration is concerned, the freedom of Cuba is a non-negotiable deal. We will never, ever negotiate away the dream of every Cuban American, a dream that I too hold in my heart, that Cuba will again join the family of free and democratic nations. Only 90 miles of ocean separate the island of Cuba from the United States, but between our governments is an unbridgeable gulf, the gulf between freedom and tyranny, between respect for human rights, and the rejection of individual freedom. Within the revolution everything Castro has proclaimed against the revolution, nothing. Well, nothing has meant no freedom of speech, assembly, religion, or economic activity. Everything has increasingly meant a Cuba depended on subsidies from the Soviet Union to keep its unworkable communist economy from complete ruin. Everything has meant every conceivable cruelty, abuse, and torture to the point that Cuba today has the worst human rights record in the entire Western Hemisphere. Everything means the Cuban political prisoners where writes that brave freedom fighter, Armando Valladaris, Castro's prisoners, quote, have been held longer than any other political prisoners in Latin America, perhaps in the world. The violence, repression, and beatings are facts of life for them. And today, at this very moment, hundreds of political prisoners are naked, sleeping on the floors of cells whose windows and doors have been sealed. They never see the light of day or, for that matter, artificial light. Well, end quote, denied medical care even visits their spirit remains unbroken. If they who suffer so greatly will not negotiate away their freedom with Castro, neither will the United States of America. Jose Martí said one revolution is still necessary, the one that will not end with the rule of its leader. It will be the revolution against revolutions, the uprising of all peaceable men who will become soldiers for once so that neither they nor anyone else will ever have to be a soldier again. Well, at a time when young Cubans are shipped abroad to advance foreign designs, the rulers in Havana are necessarily worried about the new generation's interest in Martí's message. In this anniversary of the Cuban Republic, I join a million free Cuban Americans in reaffirming our solidarity with the long-suffering Cuban people. In the heart of the Americas, the long night of totalitarian rule cannot endure forever. Long live the dawn of freedom, Viva Cuba Libra. You won't be in the picture, we won't see you. Stop, do you have to go right away? No. Stop and see me. Good. If you can't see the camera, it can't see you. Sir, why don't you come right there? Perfect. I think we can almost see everybody here. This is great. Sir, if you're in the picture you need to get in the back row, you won't be seen. Okay, great. Now, everyone can look up here. Okay, great. Everybody's looking up here. Next miles. One more for cross Saturday. Thank you, sir. Thank you very much. That was a Russian and some said, how high does communism really stand in Russia? And he said, well, I figured out if I'm 1.6 meters. And he said, well, how old are you? Well, they said 9.8 years. I had communism. I've got one more Russian. And he said, what about the place? Well, he said, you had a choice betweenocking and communism and a little more comfortable than what it was. He said, yeah, but communist hell is the only one that has a good chance of being the system of great Down. I'm just afraid someone's going to trip back here. What do I want?


Hello my dedicated viewers I would like to welcome you to the program agriculture on the move my name Philip Sidney your host today with me is Mr. Krithus Alexander who is our crop protection officer in the crop research division in attached to the ministry of agriculture he is not new to this program you have been here many many times he's well-versed in our discussion today and of course we are looking at pesticide awareness week welcome to the program sir thanks for having me on the program Mr. Sidney I know I know you've been very very articulate in times past because you you are you are I must say the master when it comes to to to pesticides and to give information out to the public but every year we are having you know pesticide week which is an awareness program why an awareness program why every year and why a whole week well to begin with this week the pesticide and toxic chemical control board in collaboration with other pesticide boards of the Caribbean we celebrate in pesticide awareness week and the chosen theme for pesticide awareness week is choose use alternatives to toxic household agricultural pesticides for us better life and environment our actions are our future well as we all know pesticides they are critical inputs in agricultural production there are lots of benefits from pesticide use but there are lots of these benefits as well and to make it worse we have a problem with the indiscriminate use of or pesticides so we need to make persons out there aware of yes the benefits that these benefits and how it can improve in terms of pesticide management in San Diego so hence the reason for this very important thing alternatives yes we've been using pesticides for a long time but what we have to understand is this probably 50 60 years ago pesticides to persons who are not using pesticides and pesticides basically the the growth of the those toxic pesticides in agriculture in the households as public health pesticides basically started as I said before this from the second world war so we need to make persons as I said aware of of these things so this week we haven't pesticide awareness week we're hoping that as many persons as possible though we know COVID-19 is around but we online we're having more online dissemination of the information so we're expecting that by disseminating the information to key persons like the extension officers and so on key other key persons in society the information is spread to other persons out there I recognize the the the starting of the theme it's also the same theme with World Food Day our actions our future so is it an FAO initiative ah basically as I said it's in collaboration with the CGPC but FAO we also working under the umbrella of the FAO as FAO CAFSA and so on so it may be possible that yeah that's how yeah it was this year's team is captured under this with of course other areas below it but over the years when you have had a week of pesticide awareness do you all go back and evaluate and to realize what the impact that education that awareness has brought about well yes because awareness is about change making persons aware building capacity and so on no matter yes I'm seeing they've been ideal to have as probably many persons as possible but to us the persons promoting to the modern area so we're looking at every year for the growth of this activity and we've been seeing positive benefits in terms of more persons being aware of the of pesticides out in the environment in households and so on so what are the program really for the week I mean do you have a specific I know COVID has prevented you from doing a lot but do you in the light of in light of that what are the programs well we have the your show agriculture and the move because we believe well many persons out there are watching agriculture and the move and we have more online dissemination of the information we have lots of information like videos brochures and so on that we disseminate online because that is the way to go because the face-to-face interaction is basically for the time being and who are your target audience out there our pesticide is everybody's business although we use pesticides as agricultural inputs we use pesticides at our homes we use pesticides in the hotels we use pesticides everywhere so it's everybody's business the that is your pesticide yes yeah but you are you are throughout the year I'm hoping the week of awareness is not the only activity or activities that you have to bring to the fore in terms of awareness what do you all have throughout the year to actually educate the people out there who are using pesticides the right way to use it the wrong way to use it well the department the research department on a continuous basis we have capacity building programs in the farmers on pesticide use and safety that is basically it going all the different regions we have group discussions with the farmers and so on I know schools are not in operation but when the schools who are in operation do you all actually take it to the schools to to educate the young ones so that they took and sensitize the parents and farmers yes because the I know for sure about two years ago the the environmental health division because they are represented on the pesticide and toxic chemical control board I know they had a program on some rap trap competition these are smart activities you can introduce to these schools and that program was basically teaching people about the IPM integrated pest management because everybody took on they were controlling rodents using the pesticides the clay rats and so on but if you use an integrated approach where you clean the area and you do certain things it means that the rap population will be at a population where there is there will be no need for those toxic pesticides that we are seeing out there so in other words you're looking at alternative use of that harsh chemicals yes basically the females in the choose use the alternatives because there are alternatives available to some other toxic pesticides are you referring to the organic chemicals um yes some some are organic but some some of the for example the the charcoal that we use out there you can do what is called biochar and that that can control so then so you can use your garlic now to blend the garlic you can act as a repellent right you can you can use what is called fire reflux there they are plants that will repel certain insects for you so we're looking at the alternatives but the problem with alternatives that is something new persons doesn't start to research about the alternatives so we need to do some evaluation of the alternatives as well but do you have alternatives now on the market so that the farmers can use yeah they are quite a lot of alternatives persons now are registering a lot of alternatives pesticides you have a number of alternatives on the proof pesticides in Russia okay so now to get those chemicals registered you mentioned about the the the you are registered on the board yes okay tell us the function of that board well basically the pesticide board is the regulator of pesticide in the same position you the board is responsible for pesticide registration the board is responsible for issuing the import permits to those persons who want to import the board is responsible for monitoring of those pesticides the board is because you have to to have an idea as to those persons whether they are complying with the the the pesticide act so we do continuous monitoring to especially the agri shops to find out whether some of the pesticides that are on the shelves whether they are registered or not so the board it's not a board who deal with the entire lifecycle management of the pesticide I would have like to see the board dealing with pesticide from registration to disposal so basically the board deals with importation and registration but not disposal of pesticides in the environment. Supposing there is a chemical that you are allowed to be used and over time you realize that you know they found that there are problems with it okay I know there are chemicals that are banned over in some of the other island countries and we are still using them right can you explain this well basically a pesticide can be banned in England just an exam or Australia and we still have it on the on the approved pesticide these are different conditions okay but by right after the pesticide is registered we have at registration you register the pesticide based on the information that is available right but as you know we have smart scientists out there better tools so they are able to do food assessments on the of the pesticide and it's the duty of the pesticide board to recommend it because the pesticide board cannot ban a pesticide you can recommend to the minister for banning of a pesticide but we've done this before it has worked so we're hoping that the pesticides that we have on the list after further review they are not as dangerous as some of the pesticides that we have not registered on the list okay but if there there's a chemical that definitely you all ban okay how you all get the manufacturers well the distributors to ticket off the shelves and when that is ticket off the shelves how is it being disposed for last issue disposal um after as I said is the minister that can ban the pesticide right so if you decide to to to ban a pesticide first of all you will stop the importation of the pesticide great all import permits will cease from from from this thing will not write any import permit for for such pesticide now when this is done you have to write to all the the agribusiness shops to make sure that that pesticide is not on the shelf also it will not make any sense that we ban a pesticide in central south and products coming from overseas are treated with that pesticide it means the products coming into the country treated with that pesticide will also be banned which is not it will not be allowed in the country because it's banned in central south so how do you want how do you do a surveillance on that well that is the big issue right now present as we speak I know we've hired a research um analytical chemist at our department and she's looking into this thing to to monitoring all the the the pesticides are the two make sure that the mrl because because after you use a pesticide sometimes the residue when you take that pesticide to mark that product the products are sorry to market it means you may have some residues pesticide residue on that so we have to see now you can be tested do off and on check with the market on different places and check the mrl on these products well said we'll do for our first break you are watching agriculture on the move stay tuned we'll be back soon for effective chemical treatment of black sega toka practice routine preventative maintenance of all tools and equipment especially the mist blower to ensure proper functioning clean sprayer after use and service the machine regularly as recommended by the manufacturer whenever you are using pesticides to control black sega toka disease personal protection and safety measures must be followed spray operators must always wear proper protective gear before or when handling pesticides put on your overalls respirator goggles boots and gloves to avoid contact with the skin inhalation and ingestion of pesticides for more information on how to treat and control black sega toka on your farm or in your backyard garden contact the black sega toka management unit at 451 5491 or 515894 or email bpmu at cndw.lc this message is brought to you by the ministry of agriculture in collaboration with the international cooperation and development fund of the republic of china on taiwan welcome back to the program agriculture on the move with me mr kitters alexander who is our crop protection officer and is also the registrar of pesticides here in st lucer my concern i'm sure people are asking the question leaders what is happening to a chemical that you is banned and it is still they are still in containers how are you are going to dispose of that chemical for uh for a this chemical not to be used in the future okay in st lucer i'm probably the the the the carbion you don't have the facilities to destroy the chemicals so last the last time this we had a problem with this it was through the intervention of the feu we were able to package um those chemicals those absolute chemicals and shipped to somewhere in europe for for for destruction but again if you as a as a registrar you know well you have a problem with a if a pesticide you take the the phase out approach where you try to phase out gradually phase out the chemical and when you believe well you you have sufficient information when you believe well the stock is very low you you you put the ban on the chemical so that that chemical is going to collect all the chemical and store the chemical in one location so that when a project like as i said like the feu when if you have a project on pesticide disposal they will take those pesticides to some site in europe or some other place for destruction yeah but why why why a phase of approach in the sense that if they recognize that that chemical um is toxic to to to humans and you know probably the the negative results that it has why not take it off the shelf one time why why have a phase the approach well let's that we all pesticides are dangerous correct to human health so as it's when the information becomes available that is the time you're going to take the decision against that particular pesticide okay as i said what as a at a board level what what you can do is present the case to the minister and the minister will take the decision that is the law take for example last year we had a problem with clope i refers in the bananas remember we had a problem but a number of shipments were rejected right and it took us about two months to take that particular decision but they were still using using it well they had no choice but they they could not use it because had they done so the bananas will be rejected in in europe and the the the market had already taken the decision that if they continued that that would have been it for bananas so they had no choice than to stop you know now let's assume well it was something you had to do immediately take an exam it was a very toxic pesticide that we decided well we would have removed that pesticide from the market immediately and we don't have the facilities to destroy the pesticide that's the problem with us pesticide the problem with pesticide in st lucha the caribbean underworld and some other countries is that yes we're using the pesticide but you don't have the facilities to be to destroy the pesticide if something happened it means that pesticide will have a problem in destroying the pesticide where are you going to store the pesticide you cannot dispose the some of the pesticides that we have the the normal garbage truck the solid waste management authority i don't think it's they will collect pesticides because it's very dangerous for disposing yeah yeah but in over the years um you all have been having demonstrations with the farmers for the safe use of pesticides the PPEs etc um going out there do you all still see that farmers and farmers farm workers are still not sticking and adhering to the procedures well to me that is one of the sorry stories of pesticide use in st lucha when you go out there and you see in 2021 having done so many programs on pesticide use over the years all the the data is on the on the on the pesticide label when you see persons now in 2021 applying pesticides without gloves without boots without the necessary protective clothing so you either sit myself whether all the programs that we've been having those whether it's making any sense but it's making sense because some persons are yes i get in the information that that is the point you can take the donkey to the water they're gonna force the donkey drink that that is the point so it's very sad to see persons now even this bottle there about two months ago i see a lady applying dramatic zone with one of those bottles there's puncture a few holes in the in the in the cover and then the lady had they had they had they i wonder what's happening to to us in the lucha wow in discriminate pesticide use right that is a major concern as somebody who is involved in the risk assessment of some of these pesticides but apart from from from okay the um occasional persons committing suicide by Bobby drinking but um are you all hearing of the indiscriminate use of the pesticide without PPEs people are going to the hospitals and they get sick well it's happening because sometimes you use the pesticide you feel dizzy persons say well probably just a straight headache it's the impact of the pesticides sometimes you you go go in the some of the markets in the world you consume some of the vegetables after you have a bellyache and so on yes that is pesticide poisoning persons are not aware of those things but it's happening the merchants that are selling pesticides um are they mandatory to uh sell PPEs well by um on the pesticide act it's not mandatory to sell but as the registrar you can refuse the registration of a pesticide if you think the necessary protective equipment is not available out there if you act registration you can do that you can also recall a pesticide if you believe if you have enough information to believe that yes persons are using the pesticide but it's a danger to them the level exposure is so high and the the protective equipment that is required is not available in St. Richard you can withdraw a pesticide but generally apart from being specific to a pesticide but generally do you all have or do you all ensure that the merchants that are selling those the pesticides are equipped in selling the PPEs well no for now the body is not but but but you do you think that is a serious yes as i said it's it's a very serious problem before you apply pesticide you must have all the mitigative measures in place like your protective equipment your your equipment is properly calibrated and persons don't don't look at these things even the the weather condition is also important when when you apply in the pesticide exactly so we have lots of work to do still but where where do we go with antidotes if a pesticide is registered after you have done all the the research on the background on that pesticide is there antidote for each pesticide that being produced because what happened if a pesticide is this in the pesticide you have the active ingredient that is what what is going to deliver that is what is going to control the the insect or whatever pesticide and there is what is called the inert ingredient right now that is where the problem is the secret the trade secret a manufacturer will not tell you what is the inert ingredient in a pesticide because they believe as i say it's a trade secret somebody can go ahead and use that secret to do their own pesticide okay that is an issue for us now by the the approach is this if you after using a pesticide something happened to you if the doctor if you go to the hospital the doctor will ask for the dosy on that particular pesticide if there is mass poisoning of a particular pesticide emergency persons they're going to ask for what is called the dosy that at registration every pesticide you have to the the registrant you have to present a dosy to the to the registrar so that you can review check the ecological hazards hazards on human health on animal health on the environment and so on that is critical that is a critical document that is accompanied at registration that is what the doctors and that is where they're going to get all the emergency measures to defend but but is there for example i remember some years ago when gram oxone came to the to the fore people you know people were drinking gram oxone i mean commit suicide and one of the things apparently they sued the company and because they did not have an antidote for it at the time that what is called fool right yeah they keep the call it soil which is soil really that they coated right which is which is a clear clear clear soil right because you know once again gram oxone is contact is not a systemic so when it hits the soil is is non reactive that's why it can be so so so then they use they can use soil you know one of the things that we tell people if somebody in your immediate area or immediate vicinity would drink gram oxone the best thing to do is to get soil immediately with water mix that another person drink to drink it because there is some what they call it some cation exchange capacity and then it will nullify yeah the the effect so that's what i'm saying so for gram oxone we know there is soil but we it has their pellets pellets they have it in pellet form we will not advise that person try this well that's what i was told right okay based on because the whole idea is you're trying because once you drink gram oxone immediately if you do not get you know something to to to notify this thing or neutralize it the person will die that's it for you yeah exactly so something that is why they have the antidote they call it soil right which is soil really soil that is coated so you can take it take it in so i was asking the same question with other chemicals where other chemicals have some sort of antidote right in order if with chance you inhale it you you it falls in your mouth or whatever the case may be something immediately on site should be able to assist before that person is taken to hospital yes i said several of the pesticides you have antidote but it will be indicated on the dorsi on the dorsi especially on the msd a sheet okay that is where you're going to find it let's talk about household use of aerosol spraying for mosquitoes you know i mean when i was young honestly i never took this into consideration i mean some of the aerosol they smell nice so you you know you spray and you stay in it in in in the room where it is sprayed now i mean growing up then i got to know of course the hazardous how hazardous thing is what do you all have in place to educate those persons out there um again we advise that before you use any pesticide you should read the pesticide label that is very very important right you should not buy any pesticide if it does not have a pesticide label so before you apply the pesticide you will read the pesticide label there you will know um how long the pesticide will after spray in the pesticide how long it's going to stay if you live in a house how long the pesticide is going to stay in the house how long what are some of the measures that you can take to reduce the impact of the pesticide on you right that is that that is very important you will get that on them on the pesticide label okay but as i said the issue for us i repeat is in discriminate pesticide use it's like the police you cannot police everyone in St. Lucia the information is there what i would encourage persons to do is read the label and use the pesticide according to what's on the label that's about to end you have any final words to the public well as i said before it's pesticide or when i speak a lot of persons now they have a phobia for pesticide now pesticide use you can get a lot of benefits from pesticide use and as i said earlier when you started there are lots of these benefits from pesticide impact on human health impact on the environment impact on the soil and and so on but it's very important that you follow advice if you're not sure about the pesticide you call an agricultural officer or somebody with some knowledge on pesticide use before you apply the pesticide because as i said we are killing ourselves slowly but we're not recognizing especially the farmers who decide that they want to add more to the pesticide you know in terms of their read that's a problem anyway we have come to the end of the of the program thank you for being here mr alexander and i wish you success and of course continue to educate the populace as to the indiscriminate use of pesticide thank you again it was a pleasure being here all right and i will come back as soon definitely you'll be you've been watching agriculture on the move thank you for viewing remember this this program is very interesting interesting because pesticide pesticides are dangerous very very dangerous so if you do not use properly then we will suffer the consequences anyway stay tuned we'll be back again with another program agriculture on the move eat fresh st lucas best i'm philip sydney goodbye


Okay. I think we can get started. We are about on time. Thank you for joining my session. I'm the guy that stands between you and lunch, so I'll try to get through this quickly. So we can all go in it. Today I'm going to be talking about strategies for deploying, developing and deploying embedded applications and images. And for you, the previous talk in this room from my colleague Drew, there is some overlap or I'm going to go into some details of some of the features that he mentioned. So the scope, what we are talking about today is this loop while you are developing applications or when you're developing your embedded system where you build some kind of software, you need to deploy to your device, you need to test it. And what we are trying to do here in my session is to take a look at a few of the tools that are available to us. It's also telling a bit the story that I've been through throughout my career in the Metal Linux, the tools I've used and what I use today as my primary tools when developing systems and applications. So quick overview, more detail overview. We'll try to take a look a bit at desktop environment and how that works when you develop applications and embedded Linux systems. I will take a look at the embedded environment that's available to us as well. And I will try to take a look a bit on development workflows using package managers, but also using Yachto with core package management system. We'll get into that a bit later. We'll also take a look at network booting and using software update solution as a development tool as well. So a little bit about me. My name is Mirsa. I've been working with embedded Linux in the last seven years. Started out more at hardware side like hardware development. Also doing local level stuff like U-boot and Linux kernel development. And the last two or three years it's mostly been Yachto and build root, build systems, creating custom distributions and stuff like that. And I am working with an embedded solutions architect at Nordentech. And I also work with the Menderer.io project, which is an over there update for embedded Linux. We also have a boot upstairs. So if you have any questions about that, you're welcome to join us. So let's start with the desktop environment. So developing applications on a desktop or laptop system where you have Ubuntu. Generally everything is available to you through our up-get install. If you're missing some dependency library or you need development tools like CMake or make or it's all available to you pretty easily. It's just up-get install and you're good to go. You also have a high availability of trace tools and debug tools like AGB, GDB, S trace and other things. So you have a lot more control over your, when you're running your binary, for example, you can easily debug it since you're building and running and testing on the same machine. And you generally, when you are able to do this, you have very short cycles of making code changes, building, to testing. And generally, I mean, I would probably try to keep development as much as possible on a desktop or on a PC and even go to some extent to mock certain hardware features to be able to do some basic sanity testing on the desktop environment just because you get these short cycles of changing code, building and deploying. But also be aware that it's mostly basic testing because you are not testing on your dedicated hardware where this will run eventually. And you also maybe have some constraints that, if your embedded device is less powerful, that also has an effect on your binaries and stuff like that. So you can go to the, like when you go to the desktop embedded system, you can probably reproduce most of the applications. You have access to like R&B and Ubuntu or Raspbian if you're running embedded devices, which are similar to a desktop environment that you have on your laptop. So you can install development tools on that as well, make, see, make it. And you can use that as a development workstation, but you shouldn't really because generally, it's very slow. It's not like compile times are terrible. And you cannot really set up the exact same environment that you have on your PC. So it's not really viable in the long run. So what we need to do is start doing is cross-device development, right? We cannot really use our embedded devices as development stations. So we need to use our laptops or desktops, which are much faster. But then we need to start cross-compiling application. And that's when it starts to get a bit complicated. But this is the accepted approach nowadays. And this is how generally most people do it using Yachtor, Buildroot or other build systems to cross-compile on a more powerful machine and then transfer it to the device, only the binary. But it also introduces complexity because now you have, you compile the code in one place and now you need to transfer it to one device or transfer it to multiple devices and then you need to run testing. And this is where it gets a bit messy. So like the initial approach or the entry point that most people have experienced in this room probably, you need to transfer files between your laptop or the desktop and your device. So you can easily do that with secure copy, for example, SSH or take a USB stick, transfer it. But this is the entry point and it's surprisingly how many people are, they stop here. This is how they develop applications for everybody devices. But this is, of course, error-prone and this is not something that you, it's a lot of manual work and there's people still trying to automate this as well, but it's not really recommended. So then if you have, if you are using ID integrated development environments, they usually have some kind of plug-ins or to be able to cross compile and usually you have some kind of post build hooks which will transfer your binary to the device and run it. So you can from the IDE run your binary on the device. For example, if you're using Qt Creator, you can launch the debug server on the device and also connect and do debugging remotely. But people, it's not very common to use, I don't use the IDs that much, at least. So the next step would be, okay, we have package managers, that's pretty familiar to all of us. That's how we install applications on our laptops. So, and with that, you get some kind of more sanity checks, more controls. You can state dependencies, the binary that you're installing has dependencies on this version of this library. So you get more, more sanity checks to avoid error-prone manual transfer of devices. And generally, there's three popular package managers. You have the Debian 1 and Fedora and OPKG. So the step, what you would do trying to utilize that, you'll probably add a step in your build system when you're compiling your application. If you're using make, let's say it's make Debian package, right? So it packages your binary, and if your application has some extra configuration files along with it, and it packages it in a deb file that you can then transfer to your device and install. And this, again, gives you more dependency tracking, sanity checks, and it gets a bit less error-prone. You can also provide custom package feeds where you can upload your Debian package that you create for your application, make it easily available to your devices. And package managers are useful usually during development or prototyping when you're working with a better device. You're trying to debug something, you notice, oh, I'm missing a tool like S-Trace or TCP dump or hyper for whatever, and then you just run up to get installed, and you can continue on debugging whatever problem you're doing right now. But this is not always the case. You don't have package managers on all embedded devices. This is generally if you're using Debian or Ubuntu or Raspbian, something like that in your embedded system. But if you don't have that, let's compare this. And I'm going to focus a bit more on Yachter project and work more on how to utilize, create package feeds in this environment similar to what you would have in a Debian-style system. So there's something called the on-serm distribution, which maintains package feeds. They have a meta-angstrom layer, and it seems that it's, I haven't used it in a while, but I checked it up. It seems that it's still maintained, and they have a sumo branch from this year. So what you typically would do is include meta-angstrom in your Yachter builds and set your distribution to angstrom, and then you get package feeds that the on-serm distribution maintains. So this is also helpful while doing prototyping or early development of your embedded platform if you're using that. But also angstrom is a lot more than package feeds, so maybe you don't want to use it for other reasons. The package feeds are nice, but maybe in the long run, you're trying to create a more customized based on pokey or something like that. And then there's a way to create this as well using Yachter work war. This is how meta-angstrom does it as well. So Yachter generates package feeds for you basically. When you do a build, image build, you will get one of the output directories is packages. So you can choose between RPM, DEB, and IPK, and it's stored under the attempt deploy IPK. So that's just packages, and it's not yet a complete package feed. So what you normally would need to do is there's a command that's a bit bake package index that generates all the files that the package manager that you're running on device needs. So after you have run the package index command, you can simply expose the deploy forward where all your packages are on a simple HTTP server, which makes it accessible on the local network for your device. But this only fixes the server side package feed in this case. So what you need, you also need the tools on your embedded device. So there's an extra image feature that you can set that's package management. That will install if you're using IPK, yeah, if you whatever package manager you choose, it will install the device specific tools needed to fetch packages. There's also a template file, or it's a complete recipe actually, in meta open embedded, which is called distro feed configs. So if you include that in your build, it will generate the configuration files needed for your package manager that you run on your device. And there is some configuration parameters that you can set. And the interesting is the URL or the IP address on the local network where your package feed is. But if we take a look like what that recipe creates, in the case if you're using Oopiko G, it creates all the feed configuration files, depending on architecture, also generic packages. And this is all output from Yocto. And you can see the URL that's configurable.  So in the workflow, if you set this up while doing development in some way, then it's easy to make changes in your build environment.  And then it's available for your device to fetch. You don't have to reflash the device with a disk image each time you make a change. You can also run the bit bake world command that will generate packages for everything that's buildable in your environment, basically. So it builds that you shouldn't, but yeah, that takes a while. So you should... But that's a way of providing a more complete package feed. Even if at the build, when you build the image, maybe you don't know what package you would need. So bit bake world will build everything, then it's available through a package feed to your device while doing development. Any questions? You can interrupt me while... So this is something I've never done this myself. But apparently there's people doing this. And sure they can do that. But in the server world or enterprise, it's very common to have some kind of configuration management tool to manage a fleet of servers. And there's a lot of tools that are available. There's CFM, Genpuppet, Ansible, Chef. And these are all configuration automation over a large fleet of devices. And some are applying these workflows to embedded devices as well. So that means you have some kind of golden image that you install on all your devices that you need to install the configuration management server on your device. This is usually something like a manual work that you would do during provisioning. And you also have to set up connectivity and trust between your configuration management server and the device. And then you are able to script the configuration of your device using these tools. Which is an interesting approach as well. So but usually when working with embedded systems, you have a dedicated, in some cases you build a certain hardware for a certain use case. And then you have some custom kernel and you have some custom kernel options that you depend on. And then you write some application that integrates with other system components in the system. So it's not a single binary anymore. It's starting to get like a full system that you have developing. So testing usually involves you have to deploy everything to test reliably.  And when you move on to this, more like a system level testing or when your application grows and it's integrating with other components in the system. And there are other ways of doing it. And one way is network loading, which is pretty common in continuous integration systems as well. And what you do is you provide all the resources necessary to boot your device or network. So the device on boot fetches both the Linux kernel device tree and the root file system. Meaning that you just need to reboot the device to update the software. But there is some complexity involved in setting up network booting. But it can also be easily extended to multiple devices. So if you have 10 devices that you want to deploy the same software, maybe they are interacting with each other as well. This is a way of doing that. So network booting, it's pretty common to use something called pixie Linux or pixie, pixie boot in Uboot, if you're using Uboot as a bootloader. And pixie boot in Uboot is almost a derivative of pixie Linux. And what you are using basically is TFTP. So you have a TFTP server somewhere. It can be your laptop or desktop or you have a central system where you put your build artifacts or that you want to deploy to your devices. This is what a typical pixie boot configuration file looks like. There is more complexity in setting this up. But what this means is that every time the device reboots, it's going to fetch software from the network. And then it makes it somewhat easier to deploy. But you can also script it using the boot shell or hash shell. Language. And like we are just TFTP, the kernel image, the device tree, and then set up a network file storage mount of the root file system. And again, this is pretty common used in continuous integration systems. You can also set this up for your development workflow to optimize the time you spend on waiting for software to be transferred. Yeah. And in the end, similar to network booting when you need to have a complete system that you are testing that's both Linux kernel and your application binaries and configuration files where you have applied custom configurations all across the device. So there's a lot of update solutions nowadays. I work with one of them, Mender, but there's Rao, there's software update, SW update, and there's more. And if you integrate one of these early on in the development process, you can use these as development tools to deploy your builds to devices reliably, but also like on many devices if you're testing many devices. One benefit is also that you're like, it's similar if you're deploying the same system in production for doing software updates. You test it throughout the whole development process. If you are using the same tool to build confidence that everything is working, that the tools are appropriately configured and that they are working. And if you some of these are using image based updates, which is really nice when doing testing, because image based means that your devices are stateless. When you flash them with an image or flash 10 devices with the same image, you're pretty sure what software what software you're running on these devices. So there's no like someone has entered a device or changed a configuration file that affects your tests. But also one benefit if these update solutions generally have robustness built in. So you're not breaking devices.  So that's also a help to ease the development flow, so to say. And it also fits well into developer workflows. Like build system integration, you have some kind of something that produces by an image that you need to transfer to your device, which are build artifacts. And then generally you have some kind of central place if you have an update solution that's able to do over there updates. You probably have some kind of management server and you can utilize this in your development cycles to update or test on larger fleets reliably. Since I'm working with Mender, I'm using Mender a lot as a development tool as well. And Mender does deploy a AB update strategy, which means that you have two full copies of the operating system and you do image-based updates. You always update the whole system. And you can Mender works both in a command line mode so I can set up, expose my artifacts on the local network. And if I have terminal access to my device, I can apply that update, a simple command line command. But I can also integrate it in like the Mender server with my CI continuous integration loop so that when I push changes, they're automatically built and they can be automatically deployed to certain devices as well. And this is generally what the command would look like if I'm on the client terminal to fetch an artifact and apply it. I think that's it. I'm pretty fast. That's okay. Any questions? I'll do a question. Okay. So on the slide where you were talking about package fees with Yachto, how broadly applicable are those packages? Are they very specific to the particular board you built for? Or can they be built so that obviously the ARM core or whatever can they be used on other kinds of platforms typically? Yeah, the configuration files includes recipes generally specify, okay, if a recipe specifies this is an ARM specific package, then it's going to end up in an ARM specific folder in the package field. So if you're running X86, you won't get access to, so that's one of the benefits of using that distro feed config. It generates configuration files based on your current architecture that you're building with your image. So you can have multiple architecture, you can have both ARM and X86 feeds in the same folder as long as the configuration files points to the correct locations. Thank you. Have you considered using the Yachto way of test image to create like a test image integration for Mender? Yeah, I think we're not using that. I've used it in other projects. Our testing framework is based on Python, PyTest, and Fabric, I think. So that's what we, but I have used the Yachto test framework in other projects, which is pretty nice. And it's fairly easy to set up. Yeah, so is your framework available for the users of Mender, or is it just when you develop Mender? All our QA is open source. It's only that we have a Jenkins server that runs the builds. That's not publicly accessible, but all the scripts we're using is publicly available. Hi. I was wondering, you're promoting packages. Is this just for deployment and then AB images for production and, sorry, development versus production? Yeah, it's generally package managers are really good while developing, but not something that I would use deploying. So during production, you'd prefer an AB image? I prefer image updates, generally. Okay, thank you. Could you please explain at what level Mender works? Is it kind of extension to Uboot or in a Azure bootloader, or it's a user space application? So how it generally works? It's everything that you mentioned. Now, it's a client in user space that you have. It's the Mender client. It's a management server. But the Mender client requires Uboot integration, because you need to have control of the boot command. If you are having, you need to switch, like, which partition am I booting right now? And that happens in Uboot. So I love that. Okay, if there's no more questions. Thank you for listening. And have a great good lunch.