Okay guys, welcome. So Yeah, we're here today the things this conference and we are present gonna present the thing that was Madrid community So we're gonna tell you what this is First of all let us present ourselves so I'm Mario I work at the moment a Sweeper to start up on we're working on providing customer service contextualize customer service for the connected home and also I'm a part for the the network Madrid. It's called TTN Madrid community here in Madrid when we are trying to build a public own IoT network here in Madrid, and here is TTM a dream member core team member and also you have owner of our camp of our company stirrup and actually are Very very focused on the TTN project here in Spain and we are talking about this project What is about TTN network and where's all that things involved on that community project, right? Wait, so that's us and this is the thing that was so To get your kick started. I'm gonna give you a quick Deep that I'm not deep but a quick dive about wireless technologies that what are people using in IoT and why This approach from the thing that was is a approach that we believe is a valid one and And the most appropriate one for the community network. So Yeah, you know, it couldn't be an IoT event without the typical hype slide here So, you know billions and trillions and cillians of connected devices and applications Smart cities and those tell you the blah blah blah So basically we have we're gonna have tons of devices at home or in the city to get connected and we have many options actually to achieve this Here are the technologies that are actually enabling this these scenarios the wireless ones. Okay, so here Let me explain you a bit. We are Just Picturing here these technologies comparing their bandwidth back by bandwidth. We meant how much data we can transmit And here is the range the coverage for this communication. So here I We are gonna be classifying these technologies in several groups this first group here. We are in a We are putting inside the Wi-Fi technologies and the 3d communications. So As you can see here For me with looking at the range the Wi-Fi is just on the left. So the range is short kind of 30 meters kind of stuff Then we have the 3d like it's a cellular communication. We have it everywhere here in our in our cities So the range can be but the bandwidth is actually quite parallel so we can do Netflix streaming Spotify We have very low latency. So it's really useful for some scenarios when we want some latency I don't know if we were for instance using this to track a race. I don't know deep racer race We have there in the in the hall or whatever race. We will need low. We will need low latency. So But what the thing with if we have great bang with a low latency the problem is the power but our consumption is really really high and We will need like a big battery to do this for instance typical connected vehicle connected cars solutions they're using this m2m solution the 2d 3d and Well, the battery for a car is a big one But if you don't manage it properly, you can leave the car Right there dead and you will not we don't want to be able to to actually get the car running So that's the problem with this a technology the the power here at the beginning we have the shortest range and Really low bang with this is the RFID NFC all these things you're having now in your in your wallet with your Apple pay or Google pay They are called contactless sometimes. There's some contact actually so it will be contact with or I don't know the The name but yeah, they think he is minimum range very limited data That's my car number or whatever ID also this running Stuff with the with the artist in there in the in the in the races are using this technology The good thing for this is you don't need any battery the car is just powered by itself with the radio So that's a good thing, but the use cases here are very limited Then we have something in the middle right there Is called is the sick be bluetooth and all these technologies bluetooth has quite some traction at the moment for IOT So technology I like really a lot But again, right here is a limit is a limit and factor if we are using a Bluetooth 5 for instance now is the technology of use in the blue today like the top Specification for Bluetooth. I have tested like ranges about 300 meters or so, which is pretty cool Power consumption is okay for bluetooth as well. So it's quite useful. But again this range Could maybe I don't know I can maybe track things here in the in the cinema and all in the venue here But no in a city or a bigger scenario. So that's the limiting factor here And then we have the our Now the technologies we're going to talk here. This is the long range. I Mean long range and low bandwidth here so here is the sick folks Laura and and narrow ban IOT and LTM that they are long range so we can achieve Kilometers range low power we can achieve several years of battery and Then we have the one problem because these things Don't come like a chip So in order to have this you have to compromise something and we compromises here is the limited bandwidth So we wouldn't be able to use this technology to Stream an Netflix video or watching YouTube or whatever. We're just gonna be able to send some events data I don't know Mike like a temperature has gone over a threshold or whatever Triggering an alarm things like that. So this is what this technology is for So hopefully now you have all these pictures of technologies together and you have a good understanding Sorry if I got to the technical, but I think it was necessary and now Angel is gonna ask you a question to Get started. Thank you So we are talking about Laura. Okay, Laura means long range the logic, but anybody here knows what is Laura exactly? Okay Two people. Yeah, two people only. Okay Laura once means long range and also I want to apply the name of low power consumption, right, but also is a kind of Radio frequency technology, right? So as Mario says we can send an amount of minimal Packets or very very little packets at least that 150 bytes this time and depends on this Okay, we cannot do or use that technology for for streaming video or streaming audio or whatever But we can use it for okay Send a little amount of data of remote sensors, right using this technology I'm going to kill in the next slide that about this technology of low of radio and Okay exactly Laura is Based on that thing. So first of them the range is here, right? It depends on the areas and maybe in European areas, maybe you can reach at least One or two kilometers depends of the places of the gateways and also of the of the nodes, right? But if you go to a rural environment, maybe you can go more further. Maybe okay 14 kilometers Sorry, 40 kilometers or more Normally a very less light of sight you can see where you are you can put it out with in inside the Gateway, right? This is one of best the most important things of this technology The other one is the low power the low power that That kind of devices. I'm going to explain the three kind Devices type ATP and tapes in the next slide, but normally the low power means that imagine a note That need to send a temperature maybe and this note wake up sense the temperature Data and then comes down to sleep for I don't know 20 meters half an hour or whatever so This kind of the knowledge to sleep the the nose helps too much to to get low power to use that batteries for four years, right? also, we can use Talking about gateways and getting the idea that the gateway is like a okay like Wi-Fi router that is not a Wi-Fi because using a technology lot of lot of technology he can receive and huge amount of data of different Thousands of devices maybe using a magical number of 65,000 whatever. I don't remember But yeah, more or less a can he can can manage that huge information for many different Sensors in the same time not not in the same time in different channels, right? But in the same in the same gateway, right? So this is an important thing Also is based on an open expectation on an open frequency that frequency depends of the areas in in Europe you are using 868 in the United States are using 1915 I think 433 yeah 433 in in Asia depends on the other places, but are little and narrow bands Specifications of frequency that you can use for free. We don't need to pay any any kind of royalty or any any anything's like a huge Operator, right? So this is a very very good thing also we can use for it, but We use that frequency Using maybe not not Okay, you you know that maybe there are another technologies using the same frequency to you are You need to use it Coleman right with without without all for you and the only thing on the log question to To the that just say that the thing is not good is also for the bandwidth. Okay. We don't try we don't we kind of send Brockless radio broadcast Video whatever but it's using for in this case maximum 15 kilobyte per second You can use it depends of the the the more that you are transmitting the data You maybe use more long packets, but at least I think no more than 150 or whatever, right depends of the if you use Maybe one packet of 150. Maybe is using Less time to send that data and maybe is not Getting far away that you're using 15 kilobytes and using more time in the in the in the time, right? so depends of the Decide of the packets go more for it or not. I'm talking about Laura one What we apply this one? Sophics to this word to Laura because Laura is a radio technology and Laura one is a kind of Protocols that network environment architecture based of a network layer, right when The part of the Laura that is a great the great one We have this different frequencies and the the regional ISM band and we can use depend of the place That this is the Laura and then we can select the kind of different type nodes The network capacity the battery consumption of this one and also the application to my data is going to do or is going to put it on in a in a in a panel or whatever, right? So Laura one is for key set to a network based upon Laura radio and butter, okay? So inside Laura one Some things to do to say one of them is there no association between another and again going Laura one Okay I have my sensor here and I got gateway over there and my sensor It can talk with that in sense Sorry with that gateway and send the data because I go to another place that a another Gateway using the same Laura one to knowledge and the same Laura one network server my data comes to data That gateway so it's not that you think that to the same gateway. Okay. Okay, imagine that we have One gateway here in Spain. I have another gateway in another place. Maybe you came the same the same Note will send data in both gatequests, right? Okay, all the network is able to control duplicate data security notifications, whatever Okay, so we are not worried about that and also no handover we're running we can move with this with this note and Actually depends of the in the new notes also can switch to different frequencies the new ones, right? But you can move around the round around the globe and with the new ones know we can select a TCA so 1915 or whatever Okay, talking about the notes. We have three types of notes no a and no B and no C Most important thing is the note 8 is more focused on battery efficiency, right? So this is a kind of know that wake ups send it out and go to sleep for the next time a You similar one also is useful to send that and also to receive data, but it's more focused to send that so imagine that We can change the the time it's time that No need to send the temperature imagine that the no temperature is sending one hour, and I want to change to send at 15 minutes, okay, and mode a when the node send the temperature Before go to sleep. He gets maybe two seconds listening for something and this listening for something It may be something packaged to me and this space is when that data comes to me and they say hey Change your mind and the next one time try to send the temperature. It's 15 Minutes times, right? So this is the the this is the focus of the functionality of that notes Then in mode a more B is the same But the listening time is in in different in in timetables and in pretty fine in timetables between the gateways and the node so start maybe to wake up not to say nothing but maybe to wake up to listen something and then go to sleep, right? and the note C is the worst in the cases of Energy efficiency because it's always sent is listen to continuously imagine a Balbona to actor or whatever, okay? This must be always wake up to know if it's any kind of of data to Open the bubble or not. So this may be a classy node, right? I'm talking about a little bit about the network We have here on that side the end note and we have for petrifying water meters stress containers vending machines gas monitoring temperature whatever Those nodes talks with different Concentrators or the gateways, but baby can be put in Around the an area or around your country or whatever Those concentrator get we send that data and here it starts a dual K per change Encrypted one of that K per change is to encrypt the communication with never server and the other K per change is to Encrypt the communication with the application server Okay, so I do dual encryption to to know to that to that packet, right? What are the things network? Okay, the fish network is an internet of things network For all by all is like an open network like an upper network for the cities and that you can use that network for our own projects, right? and it's made it for this so this starts in Amsterdam in the year two and fifteen i'm going to show you a video for the For the guys that started the things the things network listen, please message imagine an internet of things data network that's created by the people and free and open for everyone to use That's our mission at the things network. We are a group of people that is building a global crowdsourced open Free internet of things data network new technologies allow for things to connect to the internet without bluetooth 3g or wi-fi this technology is called laura one It's very battery efficient. So devices can last up to three years It's long range. It has a reach of around 10 kilometers and slow bandwidth ideal for the internet of things The good thing is that this network can be built at a fraction of the cost of traditional mobile data networks The bandwidth used by laura one is open and the network equipment is low cost In the old world building such a network was up to large corporations We built the network ground up funded by its users So with a small group of people it's possible to provide data connectivity for entire city It's our mission to support that globally The city of amsterdam was covered in four weeks and use cases were built on top of that starting from the first day We believe the abundance in internet of things data connectivity We're providing result in exponential innovation in the internet of things.  Let's build this thing together Thank you So, uh, it's everything starts in absurden with that guy and another another guy with him together and in a few weeks They have coverage all the central laster around with that gateways to start meeting community projects, right? So We are the network. Let's going to build the things together. This is the main message of of this of this of this The things network, right? Yeah, here the vision is The idea to create a decentralized network an independent in internet of things network Where the people are the owners at the own operator at the same time. So you buy Getaway you put it on your gateway with internet connection and you are the owner of that gateway and you are the property and property of that gateway and you uh Maintain that gateway that everything every time it go ups without Interventions, right to to to serve to the other guys that are the things network to use his own notes in joke gateway or across your gateway Well, this is the idea the basic idea and very important thing here on these three things One of them that is the data is your data so I can send from here my temperature to Get it at a strata data to to to put it on my database and do what would you draw in on grafana or whatever And my data is my data if I don't collect that data that data lose the data goes out nobody Do nothing with my data and also the encryption Is only for me all for my applications. So I am the own responsible of the my data, right? This is a very good thing nobody Plays with your data now if you don't get that data you lose that data It doesn't matter that you're using a gateway that you set up yourself or using a gateway from the community It's all the all your information is going through the cloud from the end to the the network community infrastructure And then you consume it in your application You don't you don't have access to even though even you if you own a gateway and you can see the traffic You won't you won't be able to this be encrypted Yeah, because it's encrypted by another guy without keys, right Also the network neutrality No companies are changing them the way to to made or to to create or to maintain that network, right? And it's because this is open source to open source that to Base it also in software open source software To to get everything open to maintain and to make changes with no with no privacy Right and to collaborating together to make this project alive Okay There was a kick started in 2015 and They can he can reach at at least 300 Thousand euros and with that money he just start to create a basic ttn That gateway at ttn nodes. This is the The first ttn node that they create and also the the things in gateway and also In a in an Arduino format on an Arduino platform It's also creating with a radio base it on Lara one to start to make some Okay to start Learning platforms or whatever to start to work with this with this with this The things that work right and also with all the community infrastructure for the network servers and whatever And also the global impact this is starting after them but So much communities like our community here in Madrid and in another country in another cities are starting The things networks in a the things network Madrid France, Paris, whatever new york in around the world And that's very good Because you can use your own nodes in every world As as you are closer. Yeah worldwide. Are you close to a the things network gateway? Your device will work, right? And now we are going to use to talk about some use cases. Mario Yeah, just to give you a quick video about possible use cases that people are building with this technology For instance these pretty birds here. They were part of the initial deployment in Amsterdam So basically what we are doing here is they were measuring the air quality They were with an air quality management project and why why did they choose lower one for this? One because the temperature does not vary Very quickly. So you don't need to start to keep measuring this This magnitude all the time. You don't need you don't need latency for this. So this is perfect for for lower one But the lifetime is also key You won't be able to get up there in the traffic lights or wherever they're pretty placed to change batteries every week That will be feasible Also, it's very specific. This is cases only an uplink going up to the platform sending the temperature You don't need to change anything to download. So this is a perfect scenario for lower one Another one kind of the same same scenario as up linking messages. This was doing in Oxford Oxford area in the United Kingdom So you in using an ultrasound sensor in the river zones They were measuring Detecting overflow or the rivers when they were Having some storms and some running and they are we are saving this data and this within the thinnest world infrastructure They were building this dashboard for people to send alerts and stuff Here is a use case. We are very devoted here in the communities our our use case here in Spain is the Not in Europe, but in Spain we normally live in condos and communities. So It would be a perfect scenario for deployment having a gateway for the community and then having the smart communities Like a mini mini smart city here. Actually, you can sense the pool the lighting the security and stuff again long battery lifetime and really cost efficient project like I don't know 200 euros for a gateway then communications are free as we said no SIM card no no taxes Smart parking solutions again. Even three were important. I have very long back low bandwidth I need to send us an event. It's a car over me. There's no a car. There's a park place available Long battery lifetime same again Pet finder here. We can also do some stuff as Angel told you with no C for instance, we can we can just embed a GPS inside the The sensor and we can whenever we detect that my dog is apart from me I can trigger I can just enable GPS On demand and it can start sending GPS positions so I can locate them I can understand even this this use case to elderly care or whatever. So it's another use case I'm basically anything so As we say here a public network owned by citizens will be able to deliver high impact and high value use cases So this is a network built by citizens for citizens. So wherever you can imagine We are open to you because we are really starving for use cases here. We know about technology We are missing some use cases. So I invite you guys to come to us come to us with your use case So let's see. Let's see what we can build together You've already cool to monitor in Mobile gateways, maybe in the city if we get an agreement with a council we can get I don't know gateways in buses in waste trucks, whatever So we can get like dynamic coverage maps in the city. That would be awesome Also in remote areas and rural spaces touch the best for Laura one if I go in the middle of the desert I don't have any any communication there. I don't have an oil and gas plant over there I don't have any communication. Maybe a satellite backhaul. I can go there. Just put my gateway in the middle I can get 100 kilometers because there's nothing in the desert and then I can have a satellite satellite Backhaul or whatever. So it's I'm actually your your own case.  We will give you some of our some of the places you can find us So, yeah, I'm gonna speed things up. We are getting running out of time. So I want to tell you about the things conference 2018 This is happening yearly in Amsterdam These guys the guys you saw in the video are conducting this conference where all people are talking about Laura one and you know funny stuff This is the current status. They started in 2015 at San Jose covering city of Amsterdam in four weeks. Now they have 91,000 members Almost 10,000 gateways and they are they have presence in these countries. This is the community network built at the moment Okay, I just may see there Europe is pretty crowded in Spain. We are still getting there, but It's it's it's quite amazing. I think And yeah, the I will show you a quick video about the conference and what this has become in four years time Okay, please We need to rethink security And we're super super excited about this product And so imagine the use cases you can drive with this single piece of artwork And a lot of fun as well. It's good to see lots of solutions. Whereas I think in in prior conferences. There's been lots of technology And we're super excited for launching these gateways around the world It's even more exciting is that we're gonna do this as an extremely disruptively low price rate And that's why we are going to help you by providing lower vent connectivity of satellite We're standing on the shoulders of giant All the things conference has been amazing We've really enjoyed a lot and very inspiring conversations with a lot of the community. We're really looking forward to next year There's one more thing we're giving away 800 of these gateways to everybody here Yeah, you can see now what the This movement has become so it's quite amazing what people can do when they get together and they agree to something So here it was the content of the last year's conference the conference This year's happening in january as you may see So, yeah, they released a new stack open source again with some cool features of technology I'm not gonna bore you bore you with that at the moment I'm gonna tell you about what what for me for us was the more Most interesting topics here in the conference. There was this guy appearing on the video Thomas telcom from lacuna space. That's a startup doing a satellite deployment for lower communications It's quite amazing. As I said actually what our tests show that if you can actually see The gateway from here Maybe you can you won't see because of your eyes But if it's there and it's nothing in the middle you have line outside you can you get communication. So This guy is telling us that Normally our our iot applications are being deployed here in the cities This where we live is all this color area Like we have 2g 3g 4g wi-fi 6-force lora, whatever That's easy, but their their their mission is to get coverage in the white space in the map I think that it is on purpose because everything is quite white Yeah, that's that's the objective. So How what are you doing here that you seen low Earth orbit satellites that are this a big big hype on this at the moment They are very cheap to launch like I don't know 50 000 euros maybe a bit more And yeah, they just put a gateway there. They just So these satellites to the space and then you get coverage. It's amazing. It's like 600 kilometers And you still get coverage You may see this typing machine there They were receiving data from the space and actually doing the the printing the message quite impressive the For a day a satellite in these orbits that Does two times a cycle on the on earth So that means you can you may be able to deliver two packets. I mean two transmissions per day With only one satellite. That's quite impressive. I think Actually, it's getting really busy this orbit because everyone is now launching satellites Forgetting, but I think it's a really interesting use case. So basically they are doing They're putting that you have to hear their note. You have the satellite you get the lower wonder Then they have some relay relays here in the on earth and then you have a platform connected to the thinner course Or under another one provider So this was pretty interesting another thing they were doing is geolocation in in holand in netherlands. They have this kpm in one of the first telcos worldwide and deploying a national wide Lora one network. They have all of these gateways And they are using trilateration technologies to I mean measuring the time differential for rival of this for the signal They are doing this trilateration operation just to determine location for the node without using gps Which is which has some really huge impact on battery lifetime and net and node cost So this is the results to me. They are really optimistic I think in the netherlands. They don't have many buildings as here. So amstradam is quite flat and So they have these Percentes of our success, which is they are able to locate 95 percent of the nodes With an accuracy of 100 meters or less, which is quite impressive here This is for for high rise of building environments This would be more or less our measures here in madrid. Maybe more I think this is very optimistic But it's a way to go just to provide you with a course geolocation without gps using just lora one radio So yeah, you can get a an accuracy between 500 meters and 500 meters with SSI levels You know the quality of signal strength the longer the weakest and then when you are getting closer You can use the you have many gateways as they have in the network. You can just compute The time the the signal takes to reach the gateway and then subtract it and then they do this trilateration measurement And then the last one is this guy Paul McManus Is he started MEST IoT? It's a company there in in australia based entirely on the thin networks and the thin industry That is the business branch of the thin networks. They are working with australian councils Basically the business model is building a poc using open source and the community environment They are also running on partners for nodes and then he's just going crazy and selling stuff in australia And if they like it, they are building You know a service with slas and stuff over the thin industries So they're doing really really amazing things in these councils in australia. They are promoting stem skills for for kids They are engaging communities raising awareness level on technology same thing we do here as well in the ttn madrid community they have packs counter and tools with for for councils and they have for some agriculture city Applications, etc So this is what the world is doing and the community is doing in the world worldwide With a big growth and avangel is gonna tell you what they're doing here also in spain And because we are really proud of we have achieved in these four years as well Okay, thanks mario. Yeah in the things that were here in ttn connected community here in madrid Actually, we are approaching reaching to 140 contributors here in madrid and with a proxies madrid 38 40 Get quiz also here in madrid and the community area of madrid And very very huge and very very active community Uh, or our main things actually are okay. One of them. This is priest avoid to try to Talk with this and get all the knowledge of all people to know. What is this? Also trainings also helping consultants and companies and also Doing and helping little deployments to uh, to people that start to use that Network here in in madrid and different projects, right? Uh, our community is a reference now here in spain. We I think is we are the big one right here in spain, right? Yes, for sure. Yeah. Yeah, and uh, okay. We'll show that our ranking worldwide. Yes, of course And also, okay doing work work jobs by mating nodes also workshops for mating get ways We thought we reached Actually close into 900 followers on twitter and okay mario here talking in google In google campus last year. I remember a few months ago. Yeah, too much. Yeah, I don't I don't I don't remember And in the middle one of the above thing was the first record Interestial lower one here in spain one of our very active guys in galileo Comes to la bola el mundo here in madrid with uh with a note and he could reach a gateway that is in the salamanca city across more or less Near of 140 kilometers directly connecting Using 20 millibots. Imagine that you can open your Garage door with you with your remote in 100 in 100 kilometers. It's the same thing, right? It's also amazing and that guy He he launched an elium Balloon to the stratosphere up to 30 kilometers Yeah, 33 300 000 kilometers stop and reach the world Level the world record level reaching Distance of closing 800 kilometers to From the area from the area from the saragossa from saragossa are reaching a gateway in lisbon in portugal Yeah It's awesome. Okay. We are actually the fourth contribution City in in in the top in the top 10, right? Um And we participate in some summer events here in 19 in the in the 2019 We are based in a medial up rado here in madrid close to It's not in that ocean and we have in spain and we meet weekly every every friday talking of use cases installations Whatever We can share with this with you. So please you can Work on everything everybody to come with us Also working with companies and preparing hack days Starting with and in this case with picon using their notes and configuring with the things network also in at first intelligence international forum of citizenship and tiencia ciudadana A workshop of of of Doing no sensors, right? Also, that's a chamber. I have at least Eight to ten paths. Okay The same thing is playing the system and doing different labs with nodes with with gateways Etc Also helping to present the first nascent a lot of one operator here in spain that this redxia network is a A company based to offer a Lot of one a network in a in a in a In a yeah, like like a things network exactly. Okay Okay, also helping enforce a set that is very variation because That guy julian is one of the companies to start up a little Micro satellite The next in five days I don't think to to launch from new Zealand in five days to launch this handmade Micro satellite to this Okay, to the space to starting to send data in lora in lora Frequencies, right? We had the pleasure to be with him in a conference. Yes, when you need him live to our conference in In the media lab prado and this guy julian is amazing. He is like he's 17 years He's a brilliant man and it's amazing to see all this all this power here in the in the community in spain So you want to join with us? Please you can follow us on twitter. Also, we have a slack to you can contact with us on the slack Also, we have a meetup. This is the url for meetup and We are open to everybody to start to Make that community more bigger and and and from from everybody, right? Yes, so I think we are in time Do you want to okay? Do you have any kind of any questions or whatever? Thank you. Also. Thank you for your coming for your patience. Yeah, also for your patience No Yes Okay, thank you Thanks Thank you very much How do you see the development of the narrow band iot? Like do you see it like a competitor like an opportunity? Yeah, good question It's a complication because no one iot is is working in another different band and it's more maybe focus on offer Business case a case of use, right? Because a narrow band iot is used by big telcos and you see the frequency of the big telcos and this is uh Using another technology that is not narrow band that is a lot of one and is using another different Frequency so I think it's a complication It's not a competitor. It's my opinion. Yeah, I agree with you depending on the use case Yeah, you may use one on the order you can combine both also also depends on your Service level agreement what you want to achieve Normally narrow band iot networks are going to be backed by huge telcos and businesses So this is more like what we are doing here is a community effort And and a community and raising the the knowledge also these guys from radexia. They are building this Lera one operator. They are the drivers from the narrow band iot I will say I will add also that narrow band iot deployment is going a bit slow But actually that's that's expected. That's to be expected because they are building something like professor Really professional. Yeah, I think it's a mobile is growing on them and right. Yeah, I think basically in demand. Yes. It's on basic on them and right More questions Okay Yes, please distance okay As you said, um lora is designed for to work with long range. Yeah Very low But they need it exactly so but I guess the gateway is a different thing. You need a power chain Exactly and you need that exactly So my question is pretty simple. Is there any way to A kind of hardware hardware to repeat the signal to to the final gateway. Imagine you are talking about cities So the power of electricity is accommodated Yeah, but thinking in a rural in in a rural environment. Is there any way from A Lora device to send the signal to another Another lora device that works like a repeater to send the signal to a final gateway very very good question You are talking like a mesh network do it but lora, right? Yeah a kind of right? Yes, you can do it but with lora not with lora one You were just on point in your question using lora and lora one exactly this network is lora one and this is this You couldn't be able to do that with the thin network. This is lora one if you remember this Network graphic we sold over here with the nodes here and the gateways There is no communication between nodes. That's what you're proposing But you can use lora as a physical layer. Yes, of course And build as any any protocol on top maybe doing a repeater for example this company We mentioned the picon one. They have a this called pymes. Yeah, and they are doing Kind of the same you're proposing as using like a like a network transport You can use lora only lora to make an a mesh network I mean one of them repeat all that traffic too directly a lora one Gateway or whatever, you know, maybe it's I don't know if we We start to your question, right? Yeah, thank you. Also, if these guys with the satellites are Are actually doing their work you will be able to just use the satellite More questions No, anyone of you is coming to our Weekly meetings. Yeah, we are now going outside taking a beer if you want to discuss with us anything Thank you for much for coming here


In addition to classes, in our C sharp code, we can create what are called interfaces. An interface is a list of method signatures. What is a method signature? Well, it's the part of a signature which the caller needs to know to call the method. It's the name of the method, plus the return type, plus the types of the parameters. If I'm calling a method, that's what I need to know. I don't need to know what the names of the parameters are. I don't need to know what the body of code is. I just need to know the name, the return type, and the input types. So here, for example, is an interface called IAnimal. And this is a convention in C sharp, as it all interfaces begin with a capital letter I. And this interface has two method signatures. A method sleep, returning a float, and taking a float, and a method eat. Returning nothing and taking nothing. Having defined this interface then, any class which has methods matching these signatures, any class with a method sleep, returning a float, and taking a float, and a method eat, taking nothing, returning nothing. Any class with a complete set of methods matching those signatures can implement the interface. And so here, for example, if we have class cat, and we have class dog, and they both have methods eat, taking nothing, returning nothing, and method sleep, taking a float value, and returning a float. Let's say the input value f represents time, the amount of time to sleep, and then the cat sleeps. We don't really care what the methods do, so we'll just say that it prints out cat sleeping, and it prints out cat 18, and dog does the same, but it says dog instead of cat. So it doesn't matter really as far as language is concerned for interfaces. It doesn't matter what these methods do. They can all do whatever. This method sleep could launch missiles. This method sleep and dog could do something entirely different. The language doesn't care. But because these classes have methods matching all of the signatures in this iAnimal interface, we can mark both these classes as implementing the interface. And we do so in C-sharp with a colon, followed by a list of all the interfaces which this class implements. In this case, they just implement the one interface, iAnimal. So now the compiler knows that both cat and dog implement the iAnimal interface. You might think, well, the compiler could figure out for itself which classes implement an interface. They could just look at all the methods and see which has a complete set. But C-sharp doesn't do that. It could. There's a language go where that's how interfaces work. The language just figures out which types implement which interfaces. But we have to explicitly in C-sharp denote it on our classes which interfaces they implement. And in fact, if we get this wrong, if eat has a different signature, like hey, now it takes an integer, well, now it doesn't match the signature. And now the compiler will look here and say, wait a minute, this class cat can't implement iAnimal because it doesn't have the right method signature for eat. But let's say it does have the right method signature. And now what does this mean? What is the significance? Well, here, let me bring this down. Okay, so now having defined interface iAnimal, we can use iAnimal as a variable type, including also as a parameter type in our methods, and also as a return type of our methods. We can say that a function returns a value of type iAnimal. Well, what does it mean to be a value of type iAnimal? Because we can't instantiate iAnimal itself. There's no such thing as a value concretely of iAnimal itself. But any class which implements iAnimal is considered by the compiler to be a subtype of iAnimal, meaning that instances of those types are considered to be instances of iAnimal. And so I can assign to A, I can assign it instances of cat, or I can assign it instances of dog, or instances of any other implementer of iAnimal. We can have any number of classes implementing this one interface. Anyway, having assigned cat to A, be clear, interfaces like classes are considered to be reference types. So variables of these interface types really just store references, not the values themselves. So the address of cat is now stored in A. But the compiler doesn't consider A to be a cat, it just considers A to be an animal. It doesn't know specifically what kind of animal. It doesn't know if it's a dog or a cat. For the very same reason, it doesn't presume to know what the value of any variable is. It doesn't know if this value is null or what. Because there are many cases where it couldn't figure it out because of runtime logic. And so the compiler never presumes to know anything about what A is other than it's of type animal. Could be a dog, could be a cat, or some other implementer of animal. So then all we can do with A is call the methods of the interface. Because it's guaranteed effectively that at compile time, the compiler can know whatever A is, it has to be an implementer of animal. And so we should be able then to call methods of the interface. We can call here sleep, A, pass in a float value. And at compile time, the compiler doesn't know specifically which method is being called. It just knows it's this sleep method with this signature of one of the implementers of animal. But it doesn't know if it's dog sleep or cat sleep. It doesn't know which one of those two. And so it defers the question until runtime. Not until this is actually executed, does C sharp look and see, hey, what is A actually storing? Is it actually dog or is it a cat? In this case, it's going to be a cat. And so at runtime here, when this is executed, the compiler will decide, okay, this is calling sleep of cat. Here too for all of our method calls, the choice of which method of which class and which overload within that class was entirely a compile time choice. But now it's only partially determined to compile time, which method's being called and the choice of which specific method to call is deferred until runtime. This is runtime polymorphism, as we call it. And this could be useful because imagine say we have some method that takes in an input and we don't want to specify specifically, oh, it has to be a cat or a dog. We want to be more general than that. We want to require that whatever gets passed in and has to be something which we can perform certain operations with. Well, that effectively is what an interface defines an interface defines a set of methods which a set of classes all have in common. And so we can define a method that takes and say just any animal, whether it's a dog, a cat or other animal types we define all implementing this interface. And we don't have to care specifically what kind of animal. It's then up to the implementers of these classes to decide, well, cats and dogs, they're both things that sleep, but maybe they sleep in their own particular way. So it makes sense that they can have their own separate sleep methods, both cats and dogs eat, but maybe they eat in their own particular way. So again, be clear, there's no necessary relationship between the code in this eat method and the code in this eat method. They can do entirely different things. Generally, the intention behind interfaces is that, well, the language could just enforce what the method signatures are, but generally you have an idea some semantics of what the method is supposed to do. The language can enforce that part, but that's left up to you the implementer of an interface. You have to abide by the informal contract of what the interface methods are supposed to do. But again, that's up to you, not the language. Now be very clear here for our variable A, its type as far as the compiler is concerned is animal, ianimal. And so even though we can look at this code and say, yes, of course, this is going to be a cat, I should then be able to access the fields of the cat instance through this reference A. But no, the compiler will not allow this because as far as the compiler knows, A is an animal, but not any specific kind of animal. The compiler doesn't presume to know which specific kind of animal this is. In this case, you could very trivially do the logic and figure out, yeah, of course it's going to be a cat, but again, there are going to be trivial cases like say if and then some condition and then you go down to one branch and it's a cat, but you go down another branch and oh wait, now this time it's a dog. And now it's simply impossible a compile time to figure out whether this here is going to be a dog or a cat, it's just going to change depending upon what happens in the code at runtime. So the compiler never presumes to know and so it never lets us use this thing as a specific concrete type. It only lets us use it as the interface type. We can only just call the methods of that interface. Of course though, there are cases where given a value of an interface type, we want to get the actual instance as its own type. We want the compiler to let us do stuff with that instance as its concrete type. And we can achieve that with the cast operator. So again, we have A of type by animal based on some condition. It's either going to be a dog or a cat and we don't know. But what we can do is a cast operation and we can cast our reference A known by the compiler to be an animal to cat and this operation returns the same instance referenced by A, and the current type of this expression is cat. So the compiler is happy with this assignment. It says, oh, you're assigning a cat to a cat variable, that's okay. Again, the reference A which we're casting and the reference returned are both references to the same instance. It's the same address, but to the compiler they have different types. The reference A has type I animal. The reference returned by the cast has type cat. And because A might not actually be a cat, it could be a dog or something else. It's a parameter of I animal. At runtime, this cast operation performs a check. It looks at the type and says, well, are you actually a cat? If so, everything's fine. But if not, if this is not a cat, it throws an exception. And because we generally don't want to trigger exceptions in our code, there are exceptions to that, but generally we don't. You really should only use this kind of cast when you know for certain that the thing you're casting to cat is actually a cat. If you don't know for certain, if you just think, well, it might be a cat, then you want to use cast as, which instead of throwing an exception, when A is not a cat, it will just return null. So what we always want to do next is check if what we got back is null or not. So we check if it is not equal to null. Well, then yeah, we got a valid cat and we can do whatever with that cat. Otherwise, well, it wasn't a cat, we need to do something else. Last thing about interfaces. I mentioned earlier there's the problem in a statically typed language that sometimes you want to return different kinds of values in a single method or function. Well, interfaces provide us one means to do that because an interface is a type like any other. So when we define our method, we can say that returns an interface type. And then in the code, say we branch on some condition, unspecified here, but some condition and down one branch, we can return one implementer of the interface, in this case dog, but then down other branches, we can return other implementers of the interface, like say cat here. So because interfaces have subtypes, when a method returns an interface type, that method can effectively return different concrete types. One more major concept in C sharp is what's called class inheritance. Here's an example where we have a class reptile, and we have a class snake. And the colon here with a class name after this denotes that snake is inheriting from reptile. After the colon, when you list interface names, that means the class is implementing those interfaces. But the first thing after the colon, if it's a class, that means that this class snake is inheriting from that class. So snake inherits from reptile, and what that means is that everything reptile has, snake has as well. So inside snake, you only see one field here, the length field of type float, but it also implicitly has a field name of type string and a field age of type integer. Snake, the child class is inheriting that stuff from its parent class reptile. The child class also inherits all of the methods from its parent, including eat and lounge. So snake has those methods as well, except in the case of eat, snake has overridden the method, meaning basically it has redefined it. So yes, snake inherits this method eat from reptile, but it has overridden it with its own version of the method. Same method signature, different code. So now, say we're in some method somewhere in code, and we create a snake variable s and assign it a new snake instance. And then, well, we can set its name because even though the snake class itself doesn't say it has such a field called name, it actually does because it's inheriting that field from the reptile class as parent. Every snake instance has not just a length, but also a name and an age. If we then create a variable of type reptile, well, of course, we could assign instances of reptile to this variable r, but we can also assign it instances of snake because a parent-child relationship between classes is effectively a subtype relationship. The parent class here reptile is the supertype, and snake, the child class, is a subtype of reptile. And so, as far as the compiler is concerned, anywhere we're supposed to have a reptile, well, a snake would suffice. Instances of snake are considered valid instances of reptile, which makes sense because everything a reptile has, a snake is going to have that too. A snake is everything a reptile is, it just has potentially more stuff as well. This doesn't work the other way, however. The compiler doesn't consider reptiles to be snakes, and so we can't assign r here to s. That's invalid. Even though in this particular case, you and I can both look and say, well, this reference r is actually holding a snake. The compiler will still disallow this because it doesn't presume to know what actual value r is holding. It doesn't know that in this case it is holding a snake. It could be an instance of the reptile class itself or an instance of some other subtype of reptile. If, though, we really want to take the snake instance to be referenced by r and get a hold of it as a snake so that the compiler lets us access the stuff, particularly a snake, such as a length field, well, we can do that if we cast. So here I'm going to cast this reptile to snake, and if this reference r here is not actually referencing the snake at runtime when this cast operation is performed, we get an exception. Otherwise, it just returns the very same instance, referenced by r, except now the compiler considers the result of this operation to be a snake. This operation is a snake expression, and so this assignment is now valid. We can assign a snake to a snake variable s. So when we get rid of this compile error, so now this is okay. So now both r and s are referencing the same instance of snake, and given these references, well, we can set the length via s to be 4.2, and that's okay, but if we try and set the length via r, SNR are referencing the same instance, but again, the compiler considers this to be a reptile. The compiler looks at this and says, well, yeah, it might be a snake, but it doesn't presume to know that, as far as it knows it's just a reptile, so it won't let us set the length property, which reptiles don't necessarily have. Snakes are reptiles, and they have length properties, but not all reptiles have length. So you'll get a compile error here. Now, what about the methods and this override business? Not to be confused with overloading, which is a different thing. Well, say here we have our variable r of type reptile, which is going to happen at runtime. We're either going to sign our new reptile or a new snake. So when we get down here and we call the eat method, at compile time, we don't know if r is referencing an instance of reptile or snake. It could be either. At runtime, then, when this method is called, then C sharp looks and says, well, what is the actual type of r? If it's a reptile, then we call this version of the eat method. If it's, though, a snake, then it's this one that's called. It's whichever is most specific to the type. If snake did not override the eat method, then snake would just be inheriting this version of eat. And so either way, this call here would call this method the one defined in reptile. But because snake has overridden eat, it's now a question at runtime of what the actual concrete type is. So interfaces were one way to introduce runtime polymorphism, a runtime choice of we're calling either this method or that method. And now with overriding inherited methods, this is the other way in which the decision of which method to call gets deferred until runtime. The general rule is that at runtime, the method most specific to that type is the one that executes. In a more complex scenario, we might have multiple levels of inheritance. We could have a class A, which is a parent of B, and B is the parent of C, C is the parent of D, and D is the parent of E. So we have this level of hierarchy, five levels deep, and we say that for a class, all the subtypes thereof, all the classes down the inheritance hierarchy, those are its descendants, and then for all the classes up the inheritance hierarchy, those are its ancestors. B, for example, has ancestor A and descendants C, D, and E. And a class effectively gets everything from all of its ancestors. B gets everything from A, but then C gets everything from B, including the stuff B inherits from A. So C is getting everything from A and B. Anyway, so imagine then in this scenario, class A has a method foo, which B then in turn inherits, and C normally would as well, except C, let's say, overrides foo, such that D and E are inheriting this override of foo rather than the one from A. So then, say we have some variable X of type A. What can we assign to A? Well, of course, we can assign instances of A. And B, its child, we can assign instances of B. But in fact, we can assign instances of any of its descendant classes. So we can assign instances of any of these classes to this variable X because this type is A. All of those things are considered to be instances of A. If we then have a call to foo X, the compiler can't know which method of foo is being called. It's either this one or this one, but the compiler can't decide between them. That has to be deferred until runtime. And then at runtime, based on whatever happened here, whatever got assigned to X, whichever concrete type, well, if the type is either A or B, then it's going to be this method foo that's called. But if the type is C, D, or E, then it's going to be this override foo. Again, the general rule is that the method called is the one which is most specific to that type. So for example, an instance D, the foo which is most specific to it is this override from C, not the one from A. Another way to think of it is that the language simply at runtime looks at the actual concrete type here, sees if it has a method that matches. If not, it looks up the chain. And the method which executes is the first one up the chain. So the idea with inheritance is that, given a data type, a defined class, we can create more specific variations of that class, which add on to what they inherit from their ancestor, and moreover, for methods, they can actually override the code, because a more specific type may need to do something in its own particular way. The ancestor class, the parent class, represents the general case, the child class, the descendant, may need to do something more specific in its own way. Thank you.


Willem, I heard there are new icons in the toolbar? Yes, the icons are actually done as real 3D objects. And here's our proof. Here we have a scan of Campbell Barton. This is a Campbell. You had achieved a Campbell? Exactly. And then we've taken the scan and inserted it as one of our icons. So in the toolbar, as you can see, now we have three Campbells. And there you go. Manipulators. Exactly. And I can even... Open the Campbell. Open the icons. Oh, this is the icon file. This is the icon file and I can make Campbell bigger. Save. Update the icons. It's like a little script. It's a custom script. And then Campbell takes a bit more time to calculate. But that's worth it though. It's Campbell after all. And there you go. We have a big Campbell. Now he's bigger. It's beautiful. So worth it now. The whole code quest. Outside of the joke, this is a great way to make your own new icons. It makes it much easier to adjust the icons. Nice. You're making this in 2.7 for the time being? And I promised to switch over to 2.8 this week. That way we can say we are using 2.8 to make 2.8. That's how good it is. That's how good it is. Thank you very much.


Welcome to ST Microelectronics tutorial on power MOSFET parameters. In this session, we will review the basic static data sheet parameters, avalanche ratings, and thermal parameters described in most MOSFET data sheets. Let's look at three fundamental characteristics of the power MOSFET and their respective temperature dependencies. First, the drain to source breakdown voltage. This parameter should be specified with zero gate to source voltage to ensure that the device is in the off state. The breakdown voltage must be defined by a condition of a allowable drain current flow, in this case 1 milliamp. It will always be specified as a minimum value. Here is guaranteed no more than 1 milliamp of drain current at drain voltage up to 400 volts when the MOSFET is at 25 degrees Celsius. Above this voltage, the MOSFET may enter an avalanche condition whose details will be discussed later. The curve traced in the lower left corner shows this behavior. The temperature dependency of the breakdown voltage is positive, so that as the junction temperature increases, so does the breakdown voltage in a linear fashion, often up to an improvement of 10% or more at maximum operating temperature. Some data sheets will emphasize the breakdown voltage rating at maximum junction temperature rather than 25 C, so as to improve the first impression of the device capability. So be sure to check in greater detail when comparing one MOSFET to another. Next, let's review the gate threshold voltage, VGSTH. This is a commonly misunderstood parameter. The device is tested with the gate and drain connected, while a voltage source increases the voltage until a specified drain current begins to flow. Here we can consider the device to no longer be off, it's conducting current far greater than leakage current. However, it is certainly also not fully on in the true sense of a power MOSFET. The threshold voltage is simply the minimum voltage that initiates some drain current flow. To fully enhance the device, a larger voltage must drive the gate, as we'll see when describing the RDS on rating. VGSTH has a negative temperature coefficient as plotted in the lower right. One must take this into account when designing the gate drive circuit to avoid phenomena such as millicapacitance induced gate turn on. Lastly, one of the most important parameters in specifying any power MOSFET, the drain source on resistance, or RDS on. This is the most critical parameter affecting conduction losses in the application. It should always be specified at a defined gate voltage and drain current, as well as with a defined maximum at 25C. The gate voltage test condition ensures the MOSFET is fully saturated and no longer operating in linear mode, as signal amplifying MOSFETs are operated. The test drain current must be specified since the RDS on is not constant with respect to this current as seen in the graph in the lower left, commonly found in most MOSFET data sheets. The RDS on has a positive temperature coefficient shown in the lower right graph. This curve is also plotted in the data sheet. RDS on can increase by well over two times at the maximum operating temperature. So it is quite important to take this into consideration during system design. Let us switch our discussion to the Avalanche condition, which may occur when the drain-to-source breakdown voltage is exceeded and the two failure mechanisms associated with it. Avalanche characteristics are typically a uniquely defined set of absolute maximum ratings within the MOSFET data sheet. Avalanche begins when a critical electric field is reached that causes a positive feedback loop of carrier concentration called the Avalanche effect. It is not necessarily a destructive phenomenon, but must be bounded by some maximum values to maintain the reliability of the device. Within the Avalanche characteristics table we often find two parameters. The maximum allowed Avalanche current, or IAR, and the maximum pulsed Avalanche energy, or EAS. The IAR is defined by the maximum current during an Avalanche condition that avoids latching of the parasitic bipolar transistor in the MOSFET structure, and the subsequent degradation of the MOSFET voltage blocking ability that follows. Since bipolar latch-up can occur at any time that this current is exceeded, IAR is considered a limit in both repetitive and non-repetitive conditions. Operation below the IAR value can be considered safe. EAS is a temperature-dependent value. It is defined by the maximum amount of energy that can be dissipated in the MOSFET during Avalanche without exceeding the maximum rated junction temperature. In most cases the starting reference temperature of the dye is 25C, so should Avalanche occur at different operating temperature, this value will change. Often there is a graph of Avalanche energy versus junction temperature to assist with this calculation. Since repetitive Avalanche conditions result in a dynamic thermal profile for the silicon, the IAR can only be specified for a single event. Now that we've seen how temperature can have a dramatic effect on MOSFET parameters, let's take a closer look at the thermal parameters specified in the data sheet and how to interpret them for design considerations. In all instances, these resistances are used for design considerations to keep the internal silicon junction below its absolute maximum rated temperature, or Tj. Otherwise, the device is subject to degraded performance, reliability, or even failure. Thermal resistance is a measure of the power dissipation needed to cause a rise in temperature between two materials. Often the MOSFET data sheet will specify two such resistances, the junction to case resistance, Rthj to C, and junction to ambient resistance, Rthj to A. For packages that are not readily attached to a heat sink or with low thermal resistance to a solder wall pad, such as an SO8 or TO92, you will usually only find the junction to ambient resistance specified, as the case is not thermally controlled by a mass like a heat sink or PCB. The junction case resistance refers to the dye specifically. It can be interpreted as the thermal resistance when the package is held at a constant temperature or mounted to an infinite heat sink. In this case, the junction temperature will rise linearly with power dissipation above the case temperature, as specified by the junction to case thermal resistance. It is typically lower as the silicon dye increases in size. The junction to ambient resistance is defined by the package and is seen as the relationship between case temperature and power dissipation as the device sits in still air. In this condition, the power dissipation allowed by the maximum operating junction temperature tends to be low enough to consider the case and junction temperatures as approximately equal. It's important to note that the thermal resistances are specified under continuous dissipation of power, but we know that power dissipation can often come in short pulses during switching operation. For this reason, we define a transient thermal impedance, Zth, as seen in the graph on the right. It can also be defined as a multiplication factor of K that scales the thermal resistances already defined. Short duration pulses of power dissipation affect directly the silicon only and the thermal impedance is defined largely by the properties of the silicon and its dimensions. As the pulse duration increases and the thermal capacitance of the silicon saturates, we now define the impedance based on silicon size and the thermal capacity of the preform attaching the dye to copper. Finally, we see a thermal equilibrium reached at long time scales as the internal thermal capacitances are all saturated. The total resistance is defined by the characteristics of all layers of the package in silicon. The resulting graph we use in practice is shown here, the thermal impedance chart. It's applicable to single pulses as well as repetitive ones that are defined by the pulse duration and duty cycle. As the operating conditions approach DC, you'll see that the thermal impedance approaches the defined continuous operation thermal resistance junction to Ks, r, theta, j to c. That concludes our tutorial on MOSFET parameters and thermal considerations. Thank you for listening. For more information, please go to www.st.com.


We're here at Wicked 2012 in Dubai in the United Arab Emirates and I'm very pleased to be joined by Mishuki Mwangi who is Senior Development Manager for Africa for the Internet Society. Mishuki, thank you very much indeed for being with us today. Thank you for inviting me. I'm happy to be here. I'd like to start off by asking you about the particular regional concerns that Africa might have in terms of the internet and telecommunications. As you well aware, Africa is considered as an emerging economy, an emerging region. And for that reason, being behind the rest of the world, there's a huge contingent of the African community here. And it's here to protect its own interests because it has interest to catch up with the rest of the world. And that's why there's a strong team here to participate in the discussions of the Wicked. Now you're also here representing the Kenyan delegation, is that right? Yes. What particular outcomes are you hoping to see here? Well, with the Kenyan delegation, the interests here will be to ensure that we are able to participate at the same footing with the rest of the world. And that is of a particular interest, not just to Kenya, but the rest of the African group as well. What has been your impression of the process so far? Well, being the first time to Wicked Conference and coming in here to support the Kenyan government from the private sector, first and foremost, we are quite impressed with the fact that the ITU is opening up and the Kenyan government and government in Africa are bringing on board private sector to get involved in the process. And for us, this is a welcome change and this is the start of collaboration and partnership, which is something we've observed on the Internet and we hope that it's going to continue going forward. There's been a lot of talk about transparency at this conference. It's obviously a difficult conference. A lot of the subjects are very dense. What's been your experience of this? Well, for the Internet community, for some of us who it's the first time, we'll say it's a different environment from what we are accustomed to. And we have to learn how the process works, which is a place to start. And then we need to see how we can also get to learn how to engage in the process. So, for us, it's been a learning opportunity. And we thank the ITU for making the opportunity possible for the stakeholders to get involved. Yesterday I had the Chairman sitting where you are now. And I asked him about what happens within the actual meetings themselves and whether a lot of it actually happens outside of the meetings in formal gatherings. What's been your experience of that? Well, from the structure of the meeting, what we've learned is that there's what happens in the meeting and there's what they call ad hoc meetings and committee meetings where more discussions tend to take place. So, it's a mix of both. And how is Wicked impacting the work that is being done in Africa? One of the good things about such a process is that it brings to the fore the discussions and the important issues which are currently with telecommunications and the Internet. And in this respect, it has provided a platform where multistakeholders are able to engage. And what we've seen in Africa, especially with the work the Internet Society is doing in Africa, is that we've found a platform where we can work together with various partners, not just the private sector, but including governments. And as a result, we are working with the African Union. Right now we're in a process where we are working with the African Union to help implement critical infrastructure in Africa through the Axis program where we're implementing Internet exchange points. And that is a process which is really critical towards bringing Africa to the same level as developed countries. So for us, we see that the outcomes of the Wicked, the work that's going on with the Wicked, is helping bring up the countries which are really merging or lagging behind on this very critical resource which is the Internet and telecommunications. And so you're optimistic for the outcome of this conference? I would like to remain optimistic because optimism is important in trying to achieve the objectives of the meeting. And we hope that with the involvement of the stakeholders as a whole and the member states that we will be able to reach consensus which is really important and critical and the way forward for all the parties that have an interest in the Wicked process. Mishri Kimwangi, thank you very much indeed for being with us today. Thank you.


Hello everyone, I'm Sanjay Gupta. I welcome you on Sanjay Gupta Tech School. In this video, I'm going to discuss about Apex test classes related interview Q&A. So if you are giving any Salesforce interview as a fresher or as an experience candidate, so I hope these questions and answers will help you to prepare for that. So first question is, what is Apex test class? So the answer will be the Apex testing framework enables you to write and execute tests for your Apex classes and triggers on the lightning platform. Apex unit tests ensure high quality for your Apex code and let you meet requirement for deploying Apex. Apex code can only be written in a sandbox environment or a developer or not in production. So this is important. So in real time projects, basically we create sandbox copy by cloning production. So all the build or development thing we do in the sandbox environment. So test classes are also built in sandbox and then you can deploy them to production. Apex unit tests are required for deploying and distributing Apex. So if you have implemented any Apex class, and if you want to deploy that Apex class from sandbox to production, or you want to distribute that as a part of package, app exchange package, then that Apex class must be having a test class implemented. Benefits of Apex unit tests. So ensuring that your Apex classes are and triggers work as expected. Having a suit of regression tests that can be rerun every time classes and triggers are updated to ensure that future updates you make to your app don't break existing functionality. Meeting the code coverage requirements for deploying Apex to production or distribution, distributing Apex to customers via packages. Code coverage requirement for deployment. So to deploy code or package it for the lightning platform app exchange, at least 75% of Apex code must be covered by tests, and all those tests must pass. So it is the minimum requirement. But while you are writing any Apex test, so try to have at least 80 to 90% code coverage so that whenever your Apex code is changed, so it will be at least 75% because every time whenever Apex code changes, you need to change your Apex test class as well. In addition, each trigger must have some coverage. Even though code coverage is a requirement for deployment, don't write tests only to meet this requirement. Make sure to test the common use cases in your app, including positive and negative test cases and bulk and single record processing. So make sure through test classes you test both the positive and negative cases and also try to implement test classes for bulk testing. And if you want to know like how we can implement test classes and how it works in Salesforce, so you can just visit StudySalesforce.com there you will find all the pre-recorded videos. Important about test class. So calls to system.debug are not counted as part of Apex code coverage so that you need to remember. Test methods and test classes are not counted as part of Apex code limit. So no worries about writing long test class with more methods. Just to make sure that all your code branches are covered. Class can be deployed on 0% coverage as well, but that overall coverage of your production or after getting your code deployed should be 75% otherwise Salesforce won't let you deploy your code. So this is the syntax of test class. If you're creating any class and you want to convert it into test class, so you just need to write at the rate is test annotation before the class and before each method as well. Then at the rate is test and test method so at the rate test is test is the annotation and test method is the keyboard. So just prefer this at the rate is test annotation. Test dot start test and test dot stop test. So these are two important statement which we use in the methods which we implement in the Apex test. So the start test method marks the point in your test code when your test actually begins. Each test method is allowed to call this test method only once. Any code that executes after the call to start test and before stop test is assigned a new set of governor limits. The start test method does not refresh the context of the test. It adds a context to your test. So always remember if you want a new set of governor limit for each method of your test class. So you can enclose your code inside this start test and stop test methods. For example, if your class makes 98 as a girl queries before it calls start test and the first significant statement after start test is a DML statement. The program can now make an additional 100 queries one stop test is called. However, the program goes back into the original context and can only make two additional as a girl queries before reaching the limits of 100. So because of this start test and stop test, you will get additional 100 queries limit, right? So all asynchronous calls made after the start test method are collected by the system when the stop test is executed all asynchronous processes are run synchronously. Next question can be what is at the rate test setup. So use test setup methods, methods that are annotated with at the rate test setup, right? So to create test record once and then access them in every test method in the test class. So for example, if you are recreating data in your test class in different different methods. You can start off creating them again and again in each method. So you can create a common method that you can annotate with a great test setup annotation and whatever data you create in that method. So in other methods, you can just query the data and you can write your test methods. Test setup methods can be time saving when you need to create reference or prerequisite data for all test methods or a common set of records that all test methods operate on. If a test class contains a test setup method, the testing framework executes the test setup method first before any test method in the class. Further related to at the rate test setup only so records that are created in the test setup method are available to all test methods in the test class and are rolled back at the end of test class execution. So whatever data you create in the test setup method which is annotated with at the rate test setup. So in one method if you have varied the data and if you have done some changes. In another method, those changes will be rolled back and in the another method you will be having the fresh data. So last point says if a test method changes those records such as record field update or record deletion those changes are rolled back after each test method finishes execution. The next executing test method gets access to the original unmodified state of those reports. So that is why if you recreate data so instead of recreating them you can just use at the rate test setup annotation and how it is work how it works in Salesforce. So just visit study salesforce.com you will find a video and you can just understand common test utility or test data factory class. So similar to at the rate test setups like there we created common data in a class but in suppose that common data you want to use in multiple classes. So you can create a separate class for data creation and that class you can use in another test classes for testing. So that can be named as test utility utility or data factory or any other name as per your project requirement. So create test utility or data factory class to create test records once and then access them in test methods of any of the test class. This class can be time saving because when you need to write code for prerequisite data creation once the test methods those are available in different test classes. You can call methods defined in test utility or data factory class in test class as and when required. Now assert is also important in test classes so what is assert in test class it can be a good interview question. So while implementing test class in each test method we can validate the result to do so we can use assert in the code we need to make sure all asserts should pass. If any of the assert fails it means either assert is not written correctly or there is some errors in the code for that you are writing test method. So for example how to write assert so you can write system dot assert. So here first parameter will be Boolean condition and then message and another is assert equals which receives expected and actual as in parameter and third is a message. So here if both expected and actual matches so assert will pass if both doesn't match so it will fail. Now Apex class Apex test class best practices. So start test class with at the rate is this annotation and start test method with at the rate is this annotation as well methods of test class must be static and why name your test class as your original class plus test or trigger name plus test. So you can just append the test so that they should resemble same except that test word. Prepare your test data which needs to be used for test runs. Further always write test methods will with bulkify data either use at the rate test setup or util class. Use test dot start test and test dot stop test methods to make sure that the actual testing of your code happens with the fresh set of government limits. These methods help you to reset your government limits just before your actual code of testing gets executed. Use assert statements to test whether the actual code is executing correctly and giving the result as expected. Always try to test both positive and negative scenarios. So these were some best practices of Apex test class that you need to remember. Next we have at the rate is test here we can write see all data equals to true. So it annotates your test class or test method with to open up data access to records in your organization. So if you want to fetch the data that is available in your or under S objects. So you can write see all data equals to true. So the at the rate is test see all data equals to true annotation applies to data queries, but doesn't apply to record creation or changes including deletion. So you can just query the data but you can't change new and change records are still rolled back in Apex test even when using the annotation. If a test class is defined with the at the rateist test see all data equals to true annotation the annotation applies to all its test methods. The annotation applies if the test methods are defined with the at the rateist test annotation If a test class is not defined with the address test, see all data equals to true annotation, and any specific method is defined with address test, see all data equals to true annotation, then that specific method can access all data of the org, other methods cannot. Using the run as method, so it is also important, usually all Apex code runs in a system mode, where the permissions and record sharing of the current user aren't taken into account. The system method run as enables you to write test methods that change the user context to an existing user or a new user so that the user's record sharing is enforced. The run as method doesn't enforce user permission or field level permissions only record sharing. You can use run as only in the test methods. The original system context is started again after all run as test methods complete. The run as method ignores user license limit. You can create new users with the run as even if your organization has not additional user licenses. So this is the way how we can use it. So you just need to query the profile and then you need to create a user. So you need to initialize all required fields of the user object and your user will be created and then that newly created user you can use here in system.run as you. And whatever code you write inside these braces, so those code will be running as that newly created users context. So these are some Apex test class related interview questions and answers. So I hope these questions will help you. While giving any interview and if you want to learn these concepts and details or just visit study salesforce.com. Thank you.