Hello, everyone, and welcome. My name is Melissa Armell, and I am the Stock Swoosh. Today's lesson is going to be called Don't Worry. So don't worry about things that have not happened yet. Many traders worry and overanalyze things in their head and go over them, and over them, and over them. Every possible scenario of the worst case things that could happen when they trade or in a trader before they take a trade.  You're not going to find success. Don't worry about things that have not happened yet. Planning for the future is one thing. Worrying all the time is another. Trainers tend to worry so much. And I think people in general, you can't always plan out exactly every single event that's going to happen. It's a good idea to think about things and plan for the future.  Then you'll never end up taking any steps forward to do the thing that you want to do whatever that happens to be, whether it's a trade, or whether it's trading, or whether it's changing jobs, or whether it's buying a car, or a home, or any big purchase you want to make, or even anything in a relationship. You will never end up taking whatever steps you need to take to get there. If you're constantly worried about things that haven't happened or every possible negative outcome that could happen. So when you take a trade, if you come and you learn in my method and you want to trade with me, you put in something called a stop. The stop is like the protection. It's like the insurance. So that if a trade fails, what's the worst thing that could possibly happen? You would lose that one amount and one trade on that day. You wouldn't lose an endless amount. For example, say you risk $1,000 and you put the stop in. How much would you lose if the trade fails? $1,000 depending on where you get hit out could be a little bit more, but you'll get hit out. All the stocks that we trade have volume, momentum, are well-known companies of the market. So when you are looking to do something, don't worry so much about every single possible outcome that's negative. Because in doing so and thinking that and going over and over and over in your head, you're creating the negativity. You're creating the fearful things that you do not want to happen to actually happen. Of course, sometimes in life, we have to take chances. Everybody does. I did. I do all the time. I'm doing that right now with things in my life. I've done it in the past. You can't move forward in life. You can't achieve your goals. You can't achieve success. If you're not willing to take risks, take calculated risk, that's the whole idea of putting in a stop when you take a trade. And you have a plan of action to get to the next level, but thinking and worrying and constantly worrying, going over all the negative outcomes of things that could happen, whatever you're doing with the market, whatever you're doing with trades, whatever you're doing with the next point you want to get to in life, whatever that is, the next level, financially or growth wise, again, whether it's personal relationships or professional, if you're constantly focused on the negative, if you're always worrying, you're in a fearful mindset, a fearful mode, and that's not going to serve you well. You're going to end up creating the negative things you want and don't do that. Like for example, when I take a trade, I never actually believe the trade will fail. I do put the stop in to protect myself, but my belief system is that the trade will work. Now, that doesn't mean that every trade I take works, sometimes they don't, but I believe that they will when I take it. It's the same thing when I decide to do a project, a goal, or achieve anything in life or decide to take risks in my mindset, my mindset is that I will have success, okay? And it doesn't mean that you're not going to have sometimes hiccups along the way. It means that if your mindset is focused on the positive, not the negative, and stop focusing on worrying, worrying, worrying all the time, you're going to have a better odds and better chance of seeing success and somehow when something comes up, you'll find a way to overcome it. When you have a bad day trading, guess what? You're going to get up tomorrow and probably have an amazing day, if that's your attitude. Think about what I said today and hopefully everyone had a good day and I will see you tomorrow.


Okay. Good afternoon everybody. My name is Ben Hale. I'm a pivotal employee and I am the lead of the Cloud Foundry Java experience, which basically means that if you want to run Java applications on Cloud Foundry, I sort of oversee all of the teams that are responsible for doing that. And my name is Paul Harris. I'm the lead of the Cloud Foundry Java client. I've been working in tech for about 20 years now, the last three of it as a developer. So I'm relatively new to this and will be relatively gentle with you all. Great. So today we're going to be doing a talk called Designing, Implementing, and Using Reactive APIs. This talk was originally supposed to be an hour long, so strap in. This is going to be pretty fast. I am in protest so I will not read this next slide. Would you like to? Exits. There's probably an exit here as well. If you see me running, just follow. I think that's the basic message. Okay. So we're going to talk about reactive programming today, but the term reactive has been just vastly overused. It's been hijacked to me in a bunch of different things. For the purposes of the discussion today, we want to define reactive programming as something that is a way to broadly define event-driven systems. So we effectively want to take code that you've already written or code that you would know how to write imperatively, and we want to move it to a foundation that is asynchronous primarily, and this is probably the biggest thing that you want to take away from it, non-blocking. And we'll talk a little bit about why this is really important. A functional style code base, so you're going to see sort of different things. You're going to see a lot more use of closures and things like that that you may not have normally used. But the whole goal behind doing reactive programming is to give us stable, scalable access to external systems or inside of our own system. The goal is to take what is an imperative programming that can potentially get you into trouble, things like exploding thread pools, things that block for way too long, blocking all incoming connections, to sort of give you a programming model that removes that kind of behavior. And so the way we're going to do this is we're going to talk about the Cloud Foundry Java client. We give this talk in a lot of places that are not Cloud Foundry summits, which means that we have to explain what Cloud Foundry is, the fact that it's composed of about 550 different restful APIs secured by OAuth, but you all know that. There's normally a slide in here that says, don't worry that you don't understand these Cloud Foundry concepts. The names will be self-explanatory. I don't have to give that today because you all know all of these Cloud Foundry concepts. And so what we take away when it comes to writing the Java client is that we have these really, really low-level APIs. They often need to be orchestrated. So I don't know if anybody has ever looked under the hood of what CF push is. Paul will be happy to tell you CF push is at minimum 13 different network requests trying to get all of this stuff coordinated. So the Java client itself has become the preferred language for orchestrating Cloud Foundry. More than any other orchestration tool, we find that things as varied as Spinnaker, the tool from Netflix that's used to sort of orchestrate pushing applications to different Cloud platforms to something like Spring Cloud Dataflow uses this. We see it in different customers as well. We have everybody from like internally inside a Pivotal. We have an internal version of Cloud Foundry called PEZ, and they do a bunch of orchestration there. We see other clients outside doing orchestration and automating access to their Cloud Foundry footprint for their customers using the Cloud Foundry Java client. The problem ends up being that when people first started trying to do this orchestration, just making rest call response, rest call response, and knowing which of the 550 different APIs to call and what the payloads are supposed to be was really, really problematic, that kind of generic access, something like this, where you might have a map of string object and you need to pass a bunch of stuff and make this particular request really, really problematic to know that you got it right to be able to test it extensively. So what we wanted to do was write a Java client on top of it, effectively a language binding that makes things much more strongly typed, much more obvious exactly what's going on, so now you know what name should be. You don't even need to know what the payload key is. We'll take care of that for you, but you write code that is much, much more understandable, and you can do things with it that's a little bit clear to read. I want to push this particular application located here, name this thing using this build pack, and I want to map that response back, getting its ID so that I can do something. So we knew that we wanted to write a language binding for this kind of thing, but we were still toying around with what it meant, like what that API needs to look like, and it turned out that the high-latency network interaction is a really, really good fit for reactive design. There are a number of places that reactive design works really well, but as a sort of first rule of thumb, if you go over a network, you really, really want to use reactive programming, simply because it allows you to write asynchronous, non-blocking kind of operations, really, really simple. So we partnered with something that came out of the Spring team called Project Reactor really early on. We drove their design, they drove our design, and we came out with something that we think is really, really good. So what does it mean? As I said, when should we use reactive? So networking is always a really, really good example of a place to use reactive programming, because it has certain features, things like high latency. If you take a look at sort of imperative programming, whether it's the servlet model or even something like Spring's HTTP client, what you end up with is a network request goes out, but it holds open a thread. There is this binding from one thread to one request, and threads are really expensive. I mean, they're lighter weight than processes, obviously, but there is a very small finite number of threads that a JVM can feasibly keep. Maybe it's 200, maybe it's 2,000. It doesn't matter really what the number is, but effectively, if you hold one of these very scarce resources for an extended period of time, just blocking, waiting for something to come back, you are wasting it in a very bad way. We also see going across network things like failures, intermittent network failures, and what it means when the server on the other side starts sending you a huge amount of data, way more data than you can actually process. All of these things are really good indicators that reactive programming is good for going over the network. We also have anything that requires highly concurrent operations, so if you have something that can be sort of scattered, gathered very broadly, that's really good. So a good example of this was someone asked in the Java client GitHub issues the other day, how would I enumerate the tuple, org name, space name, application name for everything on my entire platform, right? And you can imagine platforms having thousands of orgs and tens of thousands of applications and things like that. If you tried to do something like this sequentially, or even if you tried to coordinate it directly yourself using fork join or something like that in Java and imperative programming, those APIs aren't great, right? And so reactive programming gives you a way to sort of declaratively say, I want these things to happen sequentially, and I want these things to happen parallely, and I can stack them together, right? So I want to, I need to enumerate all of, I need to enumerate an org before I can enumerate its spaces, before I can do its applications. But once I'm inside of an org, I can enumerate all of its applications in parallel on each one of those spaces, all of their applications in parallel as well. And you never have to manage that multi-threading, that concurrency, the framework, the reactive framework takes care of it for you. And then finally we talk about scalability. Scalability, anything that you need to handle a huge amount of data or a huge number of connections or a huge amount of load, reactive programming by its very nature of not doing blocking and doing things asynchronously is another place that's a really, really good fit. So we're going to talk a little bit about the API that we designed is based on, as I said, project reactor. And so the types that you're going to see in here are going to be reactor types, something called flux and mono. But everything that we talk about here is effectively in all reactive frameworks. So if you're using something like RxJava or Vertex or something like that, all of the concepts translate over. We just happen to use this set of names. So reactive APIs, the first fundamental difference of a reactive API from a normal imperative API is that a reactive API always returns something. It's basically what we would call a flow of values of some kind. And there are two major variants. In truth, there's really only one. There's this concept of a flux. Zero to N values are going to be returned. We also specialize. It turns out it's really useful to know if it's going to be zero or one versus zero to N. And so we have a specialization of flux called a mono. So we're going to see in examples like this, something like this. If I want to list a set of applications, listing that set returns me a flux of those applications. So I can list and then I can take that list of all those applications and I can map something out of it. So effectively what this says is for each application flowing through that flux, I want to get its name and then at the bottom we see where we subscribe. I want to print that particular name out. So you start seeing this composability where at any given line, any given operation behaves on one single element flowing through. In the end, all of the elements will flow through and each one of them will get its name and each one of them will be printed out. But one of the key differences between sort of imperative programming and reactive programming is this idea that each one of these little atoms, each one of these little operators behaves on a single element flowing through. Mono response works very similarly except it only does one. And so we see listing applications again. We get all the names. But you'll notice the next thing we do is we collect all of those names as a list. We wait until every single element has come through that flux, put them all as a list. And now I have a mono that just contains a list, which I may check, does an application name exist in that list itself, right? So it works very similarly in that data is flowing through but in the mono the big difference is only a single piece of data. And what you'll see certainly inside the Java client API is it's very, very common to sort of have a stream of stuff that gets collected into the list. And then that list is then inside of a mono. That is the one thing that flows through because something like testing whether or not a name exists, an application name, is very difficult to do if it's just sort of data going by. It's much, much more efficient to just collect all those names and use a standard invocation name contains or something like that. There are ways to do this without converting it. But in a lot of cases actually having an entire list is the most efficient way to understand everything that's gone through. So as we said every method must return something. Void is not a valid return value when you're talking about reactive programming. And the reason is because when we take a look at code a reactive flow is basically a map of execution but it is not executed yet, right? So if we take a look at this imperative operation, when I call delete passing in a string ID it executes this thing, the rest template goes off, goes and deletes something and when it returns that deletion has completed, right? So before it can get out of that delete method and get back into cleanup you can be sure that something has happened, that an operation has been completed. But in reactive programming this is not true. So in this particular case when you call delete it basically sets up a framework that says when someone is finally ready to execute then I will go delete something. So that method returns instantly back to cleanup. Only on this subscribe call here does the delete actually begin. So subscribe basically means start and I want you to hand me some information. In this particular case the use of mono void that you see up there is basically a shorthand way of saying just tell me when you're done. I don't expect you to return anything but you do need to signal me that you are complete or that you have an error. You know? Okay thanks very much Ben. So we've looked at the details that Ben's gone over now. We're going to look at a little bit at the implementation, how we've been implementing stuff reactively. So the first thing, sequential and parallel coordination. So as Ben's been saying there's a lot of benefit here in being able to parallelize things. The project reactor people will tell you most vehemently that this is not about performance, it's about managing loads and things like that. But the fact is if you can parallelize dozens of calls that you would normally do sequentially then clearly there's going to be a performance benefit there. Unfortunately doing things concurrently can be very hard to do. You've got to manage thread pools and all the other problems that Ben's mentioned. Fortunately something like project reactor and various other frameworks that are available will allow you to define sequential and parallel operations and the relationships between them in a pretty simplistic way so that you can concentrate on the code that you need and you can leave it to the framework to do the hard lifting of managing those thread pools etc. So if we take a look at a little example here this is about retrieving some list application information. We have the first method is a get page and all it does is make a call and say give me a page defined by the page number that we've given it. So underneath that we have the main method that starts very simply. It says give me the first page and when it gets that first page back there's a bunch of resources on there but there's also information about the payload that we're requesting. One of the information items on that payload is the total number of pages so it could be two, ten, whatever. So what we're going to do is we're going to extract that information out and we're going to have this thing a flux range so flux a bit like a stream in Java 8. It's going to say give me a list of numbers from two to whatever the total number of pages and for each of those numbers I'm going to do a request to get page. So that flat map says I want you to do all of those at the same time so it will do get page for page two, get page for page three and so on. It will make all of those requests, it will put them together with the that start with there just says don't forget about the first page that we've already got and it will put all of that information together and well in this case sys out obviously not terribly useful but a good example. So the key thing there is we started with a single operation and then everything else, every other request from there happened in parallel, big performance gain potentially. So as well as just defining simple flows like that we can do various sorts of conditional logic. It won't surprise you to hear that we can do the standard things and branching and so on but there are a couple of slightly more unusual things that we can do as well. One of those is we first need to understand that in reactive programming an error is just a value that can be passed on the same as any other value. That means that we can pass it on to the consumer if it's something that we don't particularly know about we can just say here this error happened. We can change behavior, we can generate new values based on that error as well, potentially if it's something that we're expecting to see. So if we look at this example we're going to do an application statistics request so we want to, for a particular application we want to know it's uptime memory usage, things like that. In the normal run of things we give it the application request and we say based on this ID retrieve this information for me it will go and take a look and say here you go here's the information you were after uptime etc. But we may get an error back and one of the errors that we could get back is an application stopped error and what that says is there's nothing wrong everything's working fine it's just that the application is stopped because it hasn't been started for some reason. So in that case we do an on error resume so we've got an error but we don't want to stop we want to resume we want to continue processing and in this case we're going to return an empty object that says I checked there was no information but you can carry on normally and use that information. What it doesn't do it's not a catch all for errors so we've specified that is an application stopped error if anything else comes up then somebody else is going to have to handle that we'll pass it on however we decide to process it. As Ben mentioned earlier not everything will return a particular value sometimes it will just return a complete to say I did the thing you asked me to do and now I'm done and we can use those indicators in the same way that we were using the errors we can again use logic from them we can pass them straight on as just here's the value that came out. So if we take a look at an example of that with this empty logic something that may be familiar to you if we're trying to find a domain based on its name we don't necessarily know if it's a private domain or a shared domain so we have to check both places. So we start here by saying get the private domain ID based on a name and it may return a value in which case we'll pass that on as a string is the ID. If we don't get a result from that if we get an empty that says I checked and there was nothing there then we switch based on that empty and we go and check the shared domains and we do a query and we get back a result and again we may get a positive result we'll pass back the ID but it may come back again saying I checked I still don't have anything for you in which case we now have a problem because we've checked shared domains we check private domains we don't know this name that you've given us and in that scenario we've got an error and we will report that as an illegal state exception so you can see here we've changed logic based on whether we got a return back and then eventually we've actually changed the return type or the return value by generating an error. Okay that's a little bit about processing now we've got some testing which I'm sure you'll all be wanting to do. One of the problems we face when we're testing is that most useful flows will be asynchronous that's what we're about we're trying to use this asynchronous to speed things up to make more efficient use of our resources. Unfortunately in this scenario most testing frameworks are aggressively synchronous so they run the test then shut down as soon as possible and that gives us a problem because we are waiting for something to happen asynchronously that the test will not wait for so what we need to do is to block the main thread and make test assertions in the asynchronous thread and we've got a little example of that here. So I'm going to generate a single value alpha just one value I'm going to subscribe to it and then I'm going to assert that the value I get equals bravo now fairly clearly that should fail and sure enough when I run it it's actually passed and the reason it's passed is because the processing that did the assert equals happened on a secondary thread but whilst that was off doing its thing the test looked for completion didn't see any failure because the assert equals didn't generate anything on the main thread completed and as far as it's concerned everything's passed fortunately project reactor gives us a way of dealing with this and that's to use something called the step verifier the step verifier has a number of other benefits as well as just handling that blocking which would be enough it allows us to do things like multiple value assertions expected error assertions unexpected errors if there's something that we didn't actually know was coming back we can still handle it so if we look at an example of just one of those things the multiple values we're generating a flux here so we're going to have two values emitted alpha and bravo we subscribe to it using a step verifier and then we're going to say we're asserting in effect three things we expect that an alpha will come out and the alpha will be first we expect that bravo will come out and that will be second and then the third thing we're saying is that that's all that we will get back so the next signal that we get is an expect complete give it a duration of five seconds because this is asynchronous which means we don't know how long it's going to take but we know we don't want to wait forever and I don't have a slide to prove it but trust me that works okay so that's implementation that's here's a little bit about how we've been using it and how we expect other people to use it as well one of the big problems that we see a lot of people facing is that the reactive framework can only coordinate its own operation it doesn't know about the environment around it so whilst it's managing its own threads etc what's happening underneath is not visible to it now a lot of the time that doesn't matter if you're running in a servlet container for example it's effectively long-lived and the reactive framework doesn't care what's going on but there are situations where it can cause problems and obviously one of that in addition to the testing we just looked at is if you're running in a main method which we'll try to complete as soon as possible so if we have a look at that happening and what goes wrong I'm going to emit a single value here alpha I'm going to delay the subscription so I'm going to wait for a second so if there is a problem here with concurrency and asynchronously then we will find out about it we subscribe and we're going to try and sys out the value that we get back and when we run that it runs to completion because there's no problem with running it but when we look at the values that come out we see that there aren't any values because the main thread completed before the subscription which was delayed actually got to do anything the way we handle that is using a countdown latch so what we're going to say is I will set up this precondition that needs to be satisfied before the main method can complete and I do that by creating a new countdown latch with just a single flag on it again the code is pretty much the same I emit an alpha I wait for a second I subscribe and you can see I've got some parameters inside that subscribe I'll explain what they are in a moment but the key thing here is that they count down the latch they release the latch in this case and when I run that I wait for the latch and what happens is it executes again because still nothing's gone wrong but this time it's actually waiting for the alpha to be emitted so as I said we've got some additional parameters in there they are let us define the behavior that we're going to have in particular scenarios one of which is error handling as I've said before errors will just go through naturally until somebody catches them so we need to be able to handle those things so if we take a look again a very similar piece of code we're setting up a countdown latch again this time we're going to have a flux I mean it's going to have two items in it the first one is just a simple string and that will work just fine but the second item is an illegal state exception so we know that this is going to throw an error we subscribe to it and then we have three parameters inside that subscribe the first one is on next which just says the next time I get something that comes in do this and that's the normal operation if you like and in this case we will set out the second one is what happens in case of on error and in that scenario we want to do something we want to handle the error in some way here we just print out the stack trace pretty straightforward but we also want to make sure that because we've had an error and this is a terminal condition if you like that we need to count down the latch we need to say this processing is complete the final parameter there is on complete so if everything has completed successfully we've had however many things emitted and now the flux says I'm closed then we still need we could do some other processing as well but we still need to release that latch to say this process is now completed we do the latch await and again that will execute correctly just going back to that actually this is one of the two biggest problems that we see people having when they're using reactive not just to do with our code but in any time that um you've written code that you think is great and it produces nothing because everything that's happening is off on a different thread and you don't see it so if you start using rector and you you don't get the results out that you're expecting it first thing to think of is countdown latch it's not necessarily the solution but it's a good place to start one final thing is point free style so you may have noticed from the code samples that they're using something that might look a little bit unintuitive if you look at it from an imperative point of view there's a link there to point free style guide and the reasoning behind it um what we found is that um it's kind of unintuitive at first and Ben certainly didn't like it when we got started um but after a while you get used to the the style and how it works and and it becomes more readable becomes more compact which helps with understanding the flow so if you look at this um slightly more complicated example i'm going to delete an application so i'm supplying a name and i've got two steps that it needs to take first of all it needs to look up the id based on that name and then it needs to actually do the delete based with that based on that id so you can see that the first builder that i've got there i could construct that in advance i could set up a variable and just insert the variable name inside that but you can see that in the second um builder i can't really do that in advance very easily because i don't know what the application idea is there are ways around it you can um create an unbuilt builder if you like and then just complete it inside there and there are various other cheats you can do but we found that ultimately when you get used to it that this style of um effectively inlining everything is much more useful uh than than trying to stick with the old style of imperative code okay with that i'm going to hand over to ben to wrap up yeah just to sort of build on this a little bit um you do end up with much denser code than you might otherwise um there are ways around that uh so if you ever took a look at the java client code itself you'd see that we'd never actually write a flow that was quite this dense that had this many lines will you you get a lot of reward from really extracting out uh methods and using the java method reference syntax so instead of um this whole second uh sort of flat map here with application id there'd be a method called uh was it get application id or delete application or something like that um that would take in just the application id and so this would sort of collapse to become a one liner and the same thing with the pagination utils and that whole thing that would you know have a list applications method that's absolutely compresses and so this realistically um even using point free style collapses down to like two or three different lines and the key is that it ends up being much more readable whether like if you're taking a look at it um even expanded like this i don't think anybody really thinks at having a bunch of assignment and equal signs and curly braces and stuff like that makes this any more understandable than if you sort of collapse the whole thing down into very small methods that have very clear names on it so uh with just a couple minutes left uh let's go ahead and take a look at um a summary of this so we talked a little bit in the very beginning about how to design so when is it appropriate to use reactive programming the key the easiest one um and probably the first place every single person is going to get involved in reactive programming if you choose to is if you're doing anything over the network the the sort of ability to do asynchronous non-blocking style programming inside of java is the key reason to start taking a look at reactive programming uh reactive methods must or methods and reactive apis must always return something void is not reasonable um you always want to return mono and flux and as i just said you want to have these very small reusable methods and if you take a look at our code you'll see um that a lot on the implementation side remember back at the very beginning i mentioned that one of the key value propositions of something like um project reactor rx java is this idea that you can declaratively say here are the things that need to happen sequentially here are the things that are allowed to happen in parallel with one another and you can look at it and read it and understand how these things are related to one another but someone else some other framework is responsible for doing that coordination in the most efficient way and if you take a look at reactor um things that you think might have been parallelized uh aren't necessarily because it turns out that doing things in batches uh but doing them sequentially can actually outperform doing everything in parallel um or everything in parallel at the exact same time and so you want someone else working at a different layer of abstraction working that out for you and you are simply saying here's what needs to be sequential and here's what's allowed to be parallel finally in the implementation um testing is a really key thing but has a lot of caveats or a lot of gotchas simply because so much of reactor programming happens asynchronously on different threads and test frameworks aren't necessarily designed to um uh think about things in that way on the use side um we said there are a couple things that go um problematic um you want to probably make sure you're using things like countdown latches to guarantee that you're holding processes open um longer than they might otherwise simply because a bunch of stuff is happening on other threads um there are ways we didn't discuss them in here but there are ways to effectively say uh I don't want to use a countdown latch I just want you to turn this back into asynchronous non asynchronous thing by blocking it open um we saw how to handle errors remember that errors are actually values that flow through a chain there are no exceptions uh you pass exception types around but nothing ever gets thrown in reactive uh you want to make sure you compose methods and obviously the point freestyle we discussed there at the end so that's it for us uh thank you all um I think we're right at time now so I will step off the stage and allow the next speaker to come up and we'll answer questions thank you very much


All right, welcome back. In case you're just joining us, you are on the breakfast and it's time for us to take a very hot sip from a very hot cup of tea or coffee because it's time for Off the Press. Chris Kenjewando, member of the Chartered Institute of Appetrators in the UK, is joining us right now here in Lagos. Hello, Chris. Good morning to you. Good morning. Thanks for having me. Am I right to say you are in Lagos right now? Yes, I'm in Lagos. Thank you very much. And happy birthday to you. I wish we could sing, but we can't. The voices are gone. We used to have voices that could sing, but no, not today. Happy birthday, Chris. Happy birthday to you, Chris. Thank you very much. Thank you very much. All right, so let's go straight to the punch newspaper and it leaves with Abuja Land. FG may revoke land allocations, the merely 6,000 buildings slums. While the ride is there, illegal buildings must go down. We can tell ministers and ambassadors others. Slums in Nyania, Apo, Idu, 27 hours may be affected, residents, but minister. As a right in front there, we have a picture of the ministers who were sworn in yesterday in Abuja. So let's start with this statement from Muki. Chris. Yes, yes. I didn't as much as say, as the deputy minister to Kandai beat, take his time to study the situation. It's just less than 4 hours on the seats. He needs to come down and take his time to look at the groups and look at whatever and over and over to the minister and to meet with his team and then from there he can start working. He doesn't have, you know, Abuja is in natural states. It almost has the status of states. So it's not just a ministry. So you still have to constitute what they call them secretaries in FCT, which is the equivalent of commissioners to the state. So he will take his time. I don't think this is time for us to start giving orders. Yes, I will tell you before that the Abuja master plan has started very, very much. The last two administrations really dropped the ball and I mean the administration of Jonathan Gulo Jonathan and I was in Abuja about three weeks ago. I was shocked by what I saw. That is not the Abuja. I give them Abuja for close to about eight years during the passenger time. And I know what Abuja used to expect. Abuja is a complete mess now. I flew in in the evening and you can't believe that from the airport or to the Mariah Duaway, which is the airport route to the town, to the city center. You don't have street lights. We'll be to so many countries.  But that of Abuja master plan, especially the last minister, the man practically did not. They call him KIV minister. You know what KIV means? Keep in view. That's what he does. He passed to him just put KIV and just passed on. He used to, at least he was one of the worst minister that ever decided about the FCT. But so if there's any distortion to the master plan, building of illegal buildings and rest of them, then definitely the decision has to be made so that we can go back to what it used to be. That is the failure capital territory. What I'm just saying is that, yes, yes, okay. Yeah, hello Chris. Yes, Newsome Weekends hit the ground running as Newsome Weekends. Okay, yeah, Chris, we kind of lost you a bit there. That's the audio. I was just saying to Nyambu that Newsome Weekends hit the ground running as Newsome Weekends. I wasn't expecting anything different from him. He didn't disappoint. He didn't disappoint. And he has started the... You saw what he said yesterday. He said some people were dancing and he was referring to the BDP, some B2DP. He said that the president wrote to all the practices, governors to nominate candidates as ministers and they heard it and that he got the permission of the national chairman of the DDP and all other stakeholders from him. So what I'm saying is that Abudia knew the reverse. It's a different ball game. So let him take his time to see what is on ground. Then take decisions that we... Whatever decision he takes, it's going to affect all Nigerians, unlike reverse states, where it only affected the people of reverse. That's what I'm saying. But if there's any distortion, you can rest assured that we can deliver. But to all him also to deliver, he must get the parking of the president. If he doesn't have the parking of the president, I can tell you that's not what he can do. Because most of the people that he's talking about are very powerful.  So except the president, Shinobu gives him the kind of power that Obasanjo gave El Rufai to be able to do what he wants. You know that Obasanjo gave El Rufai an unfit power to do whatever he did. And that was why El Rufai was able to achieve. So the ability for Wike to achieve whatever he wants depends on also the power given to him or granted and the parking given him by the president. I agree with you, but for President Bola Tinubu to put Enwike there, I would like to think he knows why he did that. Because Wike, everybody knows Wike for who he is. He's rugged and he, as I said, he did the ground running as Wike. There have been divergent views on how he has started, something he should calm down just as you have said. Read the books. What's in the records? Find out what and what is there and what he should address and how he should address it because of course Abuja is not just about the roads, the structures. You have health, you have water, you have other things to consider. But then that is Wike and that's who he is. Now we want to contribute to that. Well, it's Wike you are saying. I'm not sure there's a contribution to that. But like Chris said, he has to have the buy-in of the people that make Abuja thick because whether we like it or not, Abuja is a property of cultures, of peoples. So many things in Abuja that if you say Abuja, not be reverse, it will also be a very critical factor. And if Wike, because he just talks like a dictator, if he takes that to Abuja, it may not work.  Alright, so let's read some of the other headlines here before we move to the next newspaper. You have right on the masthead, FG may raise $17 billion from oil asset sale. That's from JP Morgan. You have government to revive Ajalkuta Steel. Umahi plans road inspection. You have bought Chairman MDs by additional 145 billion Naira bank shares. And underneath you have, I want to reunite with Boko Haram husband. Older teenager confesses taking part in over 40 robberies and maybe arrest 10 oil thieves with over 100 jericans. Chris, you want to talk about this story on the cheaper girl that was rescued who wants to reunite with her Boko Haram husband? Well, it's quite unfortunate, but I want to understand the human relationship. Love, whether forcefully or forcefully. Once a man goes into a relationship with a woman, irrespective of whoever he is, along the line they have to bond, they'll get to bond, and I think that's what has happened in this case. Don't forget that most of these girls were just young girls that were in secondary school that never knew men, vegans and the rest of them before they were packed away by Boko Haram. And you come to realize that those probably were the first set of men they ever met. And because of their relationship, they had children for them, they believed to get there. And then they spoke to them to bond. So if some of them say that they miss their husband, it's not that of this, because they're not just their husband, they're also the part of their children. So I was not surprised. And they said that, there's a particular one that said that she has two girls for one of the commanders to think that one died. That is not the first time. Those that were rescued, or those that came out in the past also said, sometimes they want to go back. But that is the situation, that is the situation and ourselves. And it is what it is. But the fact is that, I still believe that, we drop the ball on this issue. So many of these two girls would have rescued and would have been allowed to come back. Not as many as close to about, if not about 20 or 80 or close to 100, as they were the Boko Haram terrorists. And some of them, we are married, they will be vulnerable. The terrorists are not that conscious, they may not be seen as. So that is the situation, as it were on that. So I am not sure. And nobody should be surprised.  Of course. You know the bond between mothers and their children. So here it is, but whatever, that aspect of it is something that one cannot be put in touch. Indeed. But it is good that to see that they were not killed. The important thing is that, it is good to know that they were not killed. Because the belief is that probably most of them will be killed and messed up. I know some of them would have also died because of where they are. But the fact is that we have seen some of them coming back or being rescued. Means that most of them are still alive. Only that they are the custody of these terrorists. You know something you said Chris, very instructive, very strong, is that we dropped the ball on this case. This children should have all been rescued many years ago, when this incident happened. They shouldn't have been left in the hands of these bandits. And I understand that this husband that she is talking about has also been caught. But you know they were separated because he had to be handed over to the units in charge of profiling those bandits that are captured. Yes, she said that the husband is a repentant Bukohara leader. So he is repentant. He is no longer present in the course of Bukohara. So let them do their profiling and if they find out that he is repentant. There are so many hundreds and hundreds of those of them that came out in the past that have been given amnesty. So this one would not be an exception. What do you think now that you've mentioned that word amnesty, what do you think of the amnesty given to these repentant Bukohara people? It's like going back to the since most of us condemned it when it happened in the past. I'm afraid that is not the best way to prove. Here is point A for whatever anybody says. If you are found to have killed people willily, then the law should take its course. The issue and they were comparing it with the Niger that are militant and you say it's not the same. It's not the same. Niger that were fighting for a cause. They were not killing people. They were already posting pipelines and for a reason. And once that issue was addressed there was nothing like that again. But what was their problem? What was their agitation? Where were they killing people? They were not only killing innocent people. They were helping them. They were ripping them. They were killing soldiers in their hundreds.  What happened? And that to me was not good enough. But in the reason of the government, that is what they decided to do. And we cannot question that. Personally, I'm afraid that is not the best kind of amnesty. You know, as much as, yes, well, just say no, they were better. But they are supposed to have started jet time. At least. Starting jet time. As in deterrence. Because they killed people. Because there were also instances of that. There were some instances of that. Some of them were for me and the rest of them. And there were some that they went back. They went back to join Bukaharam again. And they continued from where they stopped. So best. That is in the past. I don't know how this government is going to handle this. But that was what the Bari government was needed for. And that was why the soldiers, the soldiers at the point was also on the rise because people were not being given the necessary punishment that they deserve. They just, they bring them out and they say they reform them. They will give them SIM card, give them money, and ask them to go. We leave them to go back. There was a particular one that was arrested. And at the point, when he came out, he was even going back to kill certain people before going back to the bush. So this is not about the Christianity and where he said, oh, God has for me, God has for him. No. There was a statement by Putin, by Vladimir Putin. I'm sure he must have seen that statement. What is not a materialist. It is a yes. Our duty is for you to, for us to say it. Our duty is not for God to kill. We said be to wear because we are there for give you or let you go. But we are going to do what this is doing. Yes. Okay. I'm sure he must have read that. Yes. Yes. I've seen that. Yeah. Their only is to send you to God. You know, God will. Yes. We send you to God. So it is not for God to forgive you or let you go. It is his duty to send you to him. So that. Okay. Well, we've seen, that is a Stockholm syndrome where people want to get married to their captors. They want, they fall in love with the people who kidnapped them and all that. We've seen it, not only in Nigeria, it happens everywhere. It's human nature. But right now, it worries something in the nation newspaper, but the small headline there, up top left, is that Nigeria's net foreign reserves is at $3.7 billion. That is according to J.P. Morgan. What do you make of this? Well, we ask the congregation how nice is that the country needs and no matter what we have in our region and that is how inasmuch as it doesn't touch the purpose of an average Nigerian, for example, the life of a Nigerian. Yes, it's good for us to say but the fact remains that you need to live to be able to enjoy the benefits of your energy and that is the situation as it were. Presently, Nigerians have a serious problem, food crisis. I had a new minister from Nigeria to say that agenda is full $133 million Nigerians at now calm down calm down without this before we have all the promises made and the rest of them so why don't you just take your time most of these ministers they are just making no chances without thinking through what they are saying because at the end of it you come to realize that what you know when you prepare to go to the market in the morning there are certain things in your mind but by the time you get to the market you don't have to find that the prices may change and the rest of time so you have to take some of it those are part of the instances that I remember in the last session where some services were appointed and one was given another and said that it was within one month that he was going to work with the Boko Haram and within weeks they attacked and kissed so many sweaters so and I believe he let them take their time as for the results I don't know how did the president save one trillion Naira from the removal of subsidy and that the effect is going to check that the president made a broadcast talking about the palliatives to now Ninjas have not heard Ninjas have not heard the effect of that palliative prices of goods rising the treatment is out of the reach of people and so many other things so I think that what we just this one and that the effect is that how is it affecting the lives of Nigeria is that going to reduce the price of bread is it going to reduce the price of rice is it going to reduce the price of goods or is it going to reduce the prices of tea and the rest of them the staple foods most Nigerians cannot go to bed to feed them most of them go to bed properly before you go to 1 0 1 to bed with and that is a problem that is not 1 to 1 I always see the minister of Agriculture coming in and saying this is the roadmap in the next room this is what we need to achieve to break down the prices of rice this is what we are going to do to break down the price of dairy They are at the perjury of oh we are not going to have to increase that is why they said that the market process is good that the protocol finally will come back on stream. We need to see tangible solutions to some of these problems. I'm not just debate brandishing because that will be here in since 2015. I'm not carried away by that. Yeah, well, we have just touched it. The other headline there still in the nation newspaper is how we will implement Tinobu's agenda. And we've seen the riders there when the Cabinet members lay out priority areas and President demands performance and urges restoration of faith in government. From we keep pulling down buildings to better I do bringing 130 million people out of poverty to the Minister of Information saying they will not tell lies to defend the government. And so many other very, very loadable statements. How much do you believe? How much faith do you have in all these statements that they're making? You have touched on it, but let's just talk a little bit more for emphasis's sake. You know what I say in local palace, I also call in Ishak Raghura. You know Ishak Raghura. Ishak Raghura. Yeah, so what we are saying is Ishak Raghura. When the Jews are down, you come to see who can. I want to give them, since I have an open heart, and I want to give them the financial benefit of the doubt. I want to be an optimist as a Nigerian. I want to believe that they have what it takes to be able to get out of where we are. I want to also believe that most of the things that they're saying they are going to do it. But when I can sort the promises that we make to Nigerians in 20, 20, 19, and how it banned that, they have my heart sinks as a Nigerian. I don't tend to be a total optimist again. I become a pessimist. So about that, we will not die to Nigerians. He dies in New Wave, fine. The Minister of Information is a publisher, is a publisher of Blueprints in New Wave, and is a third journalist. And I hope you will be able to. He's just wanting for him to wish, and he's not wanting for the government to have the equipment, if he wishes to tell Nigerians the truth as it were. And those, his august, don't want Nigerians to hear the truth. There's nothing he can do about it. No, he can resign. He can resign. It's not in our character to resign. How many don't resign? But there is something he can do. He will just choose not to do it. But one thing we've seen is that even those who critique governments, once they get into that corridor of power, once they join the other side, they become government apologists. Thank you, my sister. You know what he's saying that he used to say now? That's the way you are. That is the situation we face. Yes, table manners. Yes, I give my brother that he can resign. That's not a long reason. But I want to ask you, since 1999, what's your name? Just one. They just will not do it, but that is something they can do. But what you see, my worry is, even yesterday was the day that they were sworn in. Some of them got to know their ministries yesterday because there was a reshuffle meant even before they started. So I'm sure these people will study the ministries they have been given before they can come out with a blueprint because we've always said this. Why not just tell these people what you are likely to be if you pass the screening of the Senate so that all that time you will use it to formulate a policy or have a roadmap that will guide you in whatever you are going to do. But they don't know. They never know. Maybe they are the ones that never know. They will need three months at least. Maybe they are the ones that do not know. No. They simply don't know. Because if they know, even the president for the first time since 1999, you see a president that has given a sample of folios to ministers and just 24 hours before they were sworn. They don't know. They don't know. But we will continue to say that that is the way to do it. They should be able to look at it. Because that will also assist the Senate to ask the right questions. To ask the right questions. Like the guy that is talking about the lady that is talking about lifting $113 million. How are you going to do that? Exactly. Do you understand what I am trying to say? And that is it. The minister of education who was the former vice chancellor of the base university where that is owned by the vice presidential candidate of the Labour Party. You know that base is owned by the minister of education who is the vice chancellor of the university. The question we have asked is how are you going to say to the issue of us through federal government so that we don't have this. So there is a lot of questions that we ask but we lost the opportunity. The only time that we ask them questions is when there is someone there when they are coming to defend their budgets. They will be forced to come. We have to pass on the gamers under the table and rest of them so that they can ask them questions. So we lost the opportunity as a best. I hope that the president has given them a marking scheme because that is what we don't want to do. If you are going to as a lecturer but you are going to be keeping a marking scheme these are the key areas we have to consider. These are the list you can foreshort of. And when you foreshort of that it will be sad. So many of them were there for 40s and 80s and they did practically not and they didn't do anything about it. So we must have a benchmark for each minister that if you foreshort of this then you have to go. And that is why I always say that the box talks on the table of the president the ability to perform and not be able to perform will also depend on their head which is the president. If he is going to make sure that the deliver on what he has asked them to do then I will just say that go and have a feeling that we are back to square one. Chris I totally agree with you at least after one year they should be able to assess them and say okay do you know where you are going with this ministry we have given you and either sack them or retain them and then I want to ask you Chris does the parliament not have the right or does it to ask the executive to make sure they attach portfolios before sending their ministerial lists so that they can thoroughly do their job their oversight function of grilling these people and screening them thoroughly to know if they have fit for the portfolios that you know they are supposed to be assigned to. Maureen this is the same parliament that tells some of them to take their bow and go. Let me answer that with you know it's not as all called fit for purpose it's very straight when you say something is fit for purpose that is not for you. But it also comes back to it is not just making a pronouncement we are going to have an amendment to the constitution that is more specific so it's not just what the parliament will just just like we said that you know that that's an amendment to the constitution same before like before that giving the president a timeline on when to present his ministers 60 days. It wasn't like that before the same thing with God knows so what we are not saying is the same parliament that are made as an escort when you are bringing the list of ministers that designate and touch the portfolios then it becomes law and the president cannot do anything about it but if the parliament will not be able to do that there is nothing the president can do what he likes and that is just his discussion he may or may not be able to not hold it to reach. Okay we should move to the next alright we will move to the next newspaper which is the leadership the leadership naturally is leading with the Tanubu and the minister's story Tanubu to ministers go to work Nigerians will tolerate failure but we are not going to go to that we have talked about that already so I demo I read Petitions NBA over planned that's another headline there that I think is interesting Chris what do we know about that well for that the Nigerian NBA the institute an investigation into three members of that session one is professor the professor that was accused of social harassment two is a baddest lawyer the lawyer the female that has chips on social media then third is the Adamawa suspended Adamawa wreck over behaviours that they said that it brings to the the association or the profession to repeat so that is just so investigation is ongoing and the two of them are lawyers and that is why the NBA is stepping in so I think they are instituting an investigation into the activities of that suspended wreck in Adamawa knowing fully what it is I went to announce the name of someone that didn't need an election and was trying to dam the consequences so he is just trying to hide behind his fingers but it is what the NBA to do after the investigation they come out with their report if they find him guilty probably they might suspend him today this is not the first time that a lawyer is suspended because some lawyers have been stripped of their essay and I am sure you know of that in Nigeria so that is the ongoing debate whether what they care you must be saying that they are stripped and try to smoke you and on social media she scored baddest lawyer and just I divided it over that whether she does aside her profession the business of anybody then the dean of faculty of law accused of sexual harassment is on suspicion NBA is also looking so those are the three three angles they are looking let's wait and see what they get I wish that they could also handle the issue where someone's husband was influencing some judgments and nobody seems to be talking about that anymore they are talking about that they are talking about the the Kachua the president of Kota Papel I am sure that the woman has retired I don't know what I have done about her if she is in service there will be some kind of they can also investigate that I understand the husband has gone to court to get an injunction to stop the ICPC normal normal injunctions all the time that's how we know you said it's happening why do you guys do this you people in the law profession should you be getting injunction no no no people in the law profession because I wouldn't give an injunction to someone who has been accused of something if you have the evidence you are sure that you didn't do that prove it and just let's get over with it but you go and get an injunction perpetual injunction do you remember the Petrol did the case of course I am sure you remember Petrol of course yes if that was when I got to know what perpetual injunction was perpetual injunction I better go to the next okay let's go on the man's head you have Taraba Task Force arrest 3500 illegal minors I find this interesting because we know different states in this country where illegal mining takes place different states in this country you have illegal miners who come here and cut away our treasures and the question I ask is where are the state governors when these things happen and that's where I find interesting what Delia Lakke has said that he's going to ensure that our wealth being filtered away through this because we've depended so much on oil we've not paid enough attention to the non-oil sector where we can actually get revenue from so Chris talk to us about this this headline I just have to agree with you you took the words off my heart and that is where the Minister of Delia Lakke has his way work out that is a sector that is totally negated equating with that of gas those are the two sectors that are making so much money if we look at our gas deposits if we are able to harness it properly we will make more money from gas than even this oil we are just discussing because our gas is one of the finest in the world and is most sought after this is why you see that energy is doing so well making so much money so if we are able to harness that area of gas then we are going to go there are so many countries in Europe in the situation with the war between Russia and Ukraine most of them are being start of gas because most of the gas they use is coming from Russia and because of the strong relationship between them and Russia they have been saying so if we can be able to harness that gas most of those things you see us my brother is from the south even men are from the south so you see those gas that you are playing in your everyday not money now there is nothing Chris is this over the years as a broadcast journalist we have discussed these issues on air and experts, energy experts have cried against this flaring of gas but governments come and go nothing changes, why? yes because we don't want to do this right thing do you know that there is a law against the area of gas management are you aware of that there is even the there is also issues of flaring of gas most of those companies find it much easier to flare the gas than combating them and when they play them they just pick peanuts in most countries you can do that you can't just do that and those are the kinds of things they don't do that is what Russia cannot do in the country that is what most of this air companies cannot do and that is why now we have a minister specifically for gas let us see what he is going to do do you understand, for the first time let us see what he is going to do so if he is going to stay there and sit there playing gas and not say anything about it you know before it was lopsided gas and petrol was lopsided so we find it difficult you have the onshore, the offshore so which is why I give to those to this government at least they are taking out of the post but back to the issue of mining before we can do much about mining they also have to think about the constitution because the right, forget whatever is happening in the state the exclusive right to these issues and mining it is an exclusive right it is the exclusive best only the better government can give basis for that even the states don't have the power so most of them are not because most of the things going on in the states are illegal but we feel that it can be decentralised and where the state and the federal government can help people arise to go into that licensing people, monitor the way it is done and do you know what is you need to go to church and see what is happening you need to go and see what is happening there it is so terrible yes I grew up in Plattestate now let's look at another thing quickly now because our time is up we go to Kaduna Governor Sahni slashes fees in Kaduna tessiary schools we hear as a result of the palliatives that have been given he has decided to make sure that tessary institutions pay less people in the tessiary institutions pay less So that's part of the palliative. So it brings us to the issue of the palliative, 5 billion to every state that will be given. And we've heard that 48% will have to be returned to the federal government. What do you think about the preparedness of states to even use this 5 billion as palliatives that will be beneficial to the people very fast now so that we wrap up Chris? My sincere opinion, I believe that there's money in new wastage, and that is my personal opinion. 5 billion to states, then you give a state that has 7 local government 5 billion and give a state that has 54 local government 5 billion. What will be that they be able to do? They are also putting it in the hands of governments who are going to distribute it among their supporters so it doesn't make any difference to me. So personally, I've heard that that will be challenging to something. And also remember that in this money have been disposed of most of the states, they didn't say anything about it, they kept quiet. But the federal government came out with the circular and the announcement that they have been sent to show. If the federal government hasn't come out with that, then they're just going to sleep and share it among themselves the way they should. For me, the palliatives, after promises and the rest of them, we're not yet feeling this thing. It's because the government is not in what it's supposed to be. There is policy so much, so don't forget where they started from. We're going to give them 10,000 Naira, say whatever amount they say they're going to give. So how many millions of people exchange their mind, state to go and get the register. After that, they change their mind, they can say, okay, we're giving this to them. At the end of it, 180 billion was disposed to the states and to them. Go and ask yourself, have you seen anybody getting anything out of that money? I've not heard. Probably they've not studied the postman and the rest of them. But there can be more police secret. I still believe that the best way to go about this is making sure that our refugees are working. If our refugees are working, then the prices of petroleum will come down. Then prices of wood, which is tied to petroleum will also come down. Except we do that, all this thing we're just doing is just trying to scratch the surface and refuse to treat the tree, which we see to treat the moon. We just add in plaster and just drop in whatever ory on a saw, it will not heal. That's my personal opinion. Okay, thank you so much Chris. It's always a pleasure to have you on off the press and happy birthday again, wishing you the very best of the day and the rest of the year. Yeah. Very much, I really appreciate it. I've been wondering if you could do that. Me too. Chris Gendian-Wine, a member of the Chartered Institute of Abitritters in the UK has joined us on off the press, as he always does on Tuesdays on the breakfast. Stay with us, we'll be back with the first hot topic. You don't want to go nowhere because Sarah will be joining us.


Hello and welcome to another MVP Buzz Chat. My name is Krish Muckley and I'm here talking today with Leslie. Hello. Hello, everyone. Hello, Christian. How are you? This is our first time meeting.   All right. Well, as Krish mentioned, my name is Leslie. I'm a Microsoft MVP in the developer technology category. I'm from the American Public. As a full-time developer. And I consider myself as a full-time blower, too. The name of my blog is into Spanish because my main focus is my community. That's the way I started writing about technical content, about feature and programming in general. That's where I started Dominotik.com. Were you doing stuff for work related or just things that you were interested in kind of solving problems? You had questions that you wanted to find answers for? All of it. Sometimes I'm reading something really interesting and I want to share with everybody about some books about programming, like clean code. I really like books, for example, and I try to do something about it. Or sometimes I work in the Azure and I try to share what I learn about that. And that's it. That's the most important thing in my blog. I try to put myself into a schedule. Like, I want to talk about this and this and this, but sometimes by my work and everything that I'm doing in the moment, I just change in my mind and say, okay, right now I need to write about this. You know, that's one of the things that I do with and I love OneNote 4 is because I read something or somebody's speaking on the like, just today I was doing an interview earlier today and I jotted down on a little spiral like notepad that I keep down here of two blog ideas and I'll add them over into OneNote and maybe I'll come back to them or add to it and other things, but I have that rolling list and sometimes it just, it doesn't happen.  And I'll look through that library of ideas and be like, oh, I started down something, actually, there's something I want to say about that and then put that content together. Yeah, that happened to me a lot. I'm trying to create content for my blog and also another thing that I'm thinking in town is right now I'm writing in English in the medium platform and for my blog, Dominic.com is in Spanish. So I tried to combine one topic that I think can be useful and a tactic for more people. Like a topic that is really important to people to know right now because you know, technology is changing every day and sometimes you say, okay, I'm gonna write about Azure Functions, for example, but you see some blogs and you see some, today some Twitter's and you say, right now people are talking about food practices or unit tests and so you'll switch to that because people are going to be interested in that. Yeah, that's a great question of like how, how do you balance the, I mean, because obviously there's topics out there that a lot of people are actively writing about. Nobody has your experience, nobody has, yeah, like the nuances of your profile of the customers that you work with, the stories that you have, your life experiences, even though you're writing about the same technology topic, you're gonna have a different approach to that. But do you, do you weigh that?  I think that, I mean, is a balance, I need to take a balance on that situation. For example, some people write in a topic but they are too in a high level, like really technical for maybe people that already know about that and need some special tips. And the thing is you can make the same topic, you can create different kind of the compensation of logging like for an entry level, middle level. So, I think I'm loyal to my style of playing things and even if another people write about it, I think I can add something different that is based on my experience. But sometimes if you know that that topic is over, I mean, send blogs about that and LinkedIn, I mean, no, I don't wanna write about it because maybe the topics that I want to focus, one of them have taken it down so. Yeah, well, that's why I'm also a big fan of calling out and referencing other bodies of work, other articles. And you can almost just kind of summarize a topic if somebody else wrote and went into depth and explain that technical aspect and you can then take kind of a different direction with the rest of it. Say, hey, if you're looking to go in depth on how to build out this component, this person wrote this great article or they've got a YouTube video on that and then you can kind of take it in a different direction but kind of build off of other community content. Yeah, I think it's really important to collaborate with the community. And for me, it's really important to give the credit to people that made something that I feel inspired by. I try to be really for reference the books that I read and I find something useful because they deserve the credit of that. Even if I give something, because even if I'm writing about fling code, for example, about the book, I search for another information, I mean to add something more than what is already on the book because it doesn't make any sense to just copy everything and paste it on my blog, right? But I really want to make people to know that that is not all my idea. There's a lot of other people to talk about it and that's the point of that person, that's mine. Right. And take what you want. So I mean, developer technologies is a pretty broad category. What do you specifically focus on? Like what are you passionate about within that area? I'm a backend developer and I'm working on .NET and I'm a self-taught in .NET Core. So in my way to learn, I found some interesting topics and I grew out about it and put it on my blog and even create a course of the fundamentals of .NET Core in my YouTube channel. It's either into Spanish for my, but it's good. And that's it. I mean, I work about, I try to write about what I'm working right now. For example, I really get into Azure, like really enthusiastic about some of the services that are available for all that developer, you know, I'm not too enthusiastic about infrastructure. And I try to write about that, about Azure and services in, I mean, based on my role as a developer, something that I find useful and I start to share it and backend is a software.  There's plenty of people out there. You know, some of the most brilliant coders, engineers that I've worked with throughout my career, some of them didn't have any degree, some of them had other, like one, I would think of my friend, Chris, who is a VP of engineering now, had his degree in music and played with the city symphony, right, for several years and then just realized, you know, that was going to be difficult for him to have a family and, you know, and it kind of continued doing that, but he, it was always passionate about technology, but he just had a mind for it. But so my, my suggestion is, I'm a huge advocate, a community advocate as well, is that it's a great way for people that feel like they don't have the right pedigree or the right, you know, a schooling background, educational background, they can still go out there, be self-taught and learn and share and do very well. And I would even argue that somebody that has a strong community background and is plugged into that and leveraging that and giving back to the community has a much better leg up on future job prospects than even somebody that comes right out of university. Now, I know it's all a lot of things that depend. Yeah, because I have my education, like in college, I have a senior degree in software development in, I don't know if it's called the same there, but it's like an institute, it's not a college. It's previous to college, it's just for technical education. And after that, I went to college for my engineering degree. Yeah, I'm not saying that that was like your story, I just, it just made me think. Yeah, but the thing is sometimes, that's something that I try to encourage the, the other people that were studying with me. Not all that you need for being a good developer, you're going to learn it on college. You have to be clear of that. You need to learn by yourself, try to find your path and try to find the things that are really useful for you. Because sometimes the curriculum of your career is going to be really general about some topics about programming and things like that. And if you don't put yourself the idea, okay, I want to be a developer, I want to try to focus on the science or something like that, you will be an engineer at the end of your career, but you're not going to have a really deep knowledge in something that you want to get a job. Right. And get started. So one of my brother-in-laws who was self-taught and did very well, he just didn't click with a lot of school, but after years of as a developer and a front-end developer and very talented, but finally went and did like a, I don't know what you call it, it's not like a certificate program. It was very intensive full-time, but it was a technical school in person and it was like four, five months long, very intensive because he wanted to have that formal training that he never got. He wanted to understand, it was very condensed because you had to already be a professional within the space. You couldn't just like, hey, I want to learn to code. Like, no, that's not what this was. These were people that already knew, but like him wanted to have that formal structured education so that they could, he could go even further within his organization and he was able to go and find a job right out of that experience at a much higher level of pay, having completed that. So there's something to be said about, either approach there. One of the things that I love about technology though is that so much of it is like, find what you're passionate about, like in an industry or building a type of thing, like you could just find something like it where it just really clicks. There are so many different opportunities. Hey, I've been in tech for 30 years. I have a marketing degree. Yeah, so I was in marketing and on the business side, but I was just drawn to the technology field and just was passionate and found a place where I fit. Yeah, that's nice. And also that's something that I share with people that were sitting with me. You don't have to be a programmer. There's another topic that you can fit in technology. That's a really good advantage and you have a lot of opportunities. And that's something really important to share. Even for countries like me, where people don't have a lot of options to get good jobs and get a good income as a programmer. Because I know here being a programmer, well, we are being really good paid for the average of people around there. So you don't have to feel like being a developer that just learned this and this and this. You have a lot of opportunities. You have really different options that you can get and be as good as a developer. I mean, yeah, that's science or cloud architecture. I mean- Well, I was even thinking like non-technical role because I know some of the best project and product managers have that engineering background. And they didn't enjoy the engineering side, but they love the project and product creation, that process on the management side. And it's always good to have people. It was for me to be stronger than business and the marketing side to pick up the technical skills. It's the same thing. You have people that lean towards the business focus but have the technical background and there's tons of opportunities out there. You know, certainly there are a few times in my career where had I had a more formal engineering background, I would have moved up much more quickly than I did. But, you know, so there's a lot of, I'm always envious of people that have the engineering background but wanna get into the business or even the marketing side of things. I think have an advantage over the rest of us that don't have that. Yeah, yeah, it's really good. And I have a colleague from my university that he's now in the business side of technology and he's doing pretty well, so. It's a little secret that's out there for all of the recent college grads that are thinking about careers is people that have the technical training that have an aptitude towards technology. But if you're on the business side of things, you know, I think the pay scales tend to be higher than straight engineering and a lot of roles. So just, you know, just throwing that out there. You know. Yeah, sometimes the point is. I think there's more jobs that are in pure tech like more available opportunities out there for engineers, especially just in the modern era that we're in, but anyway. I'm going to take your concept after this meeting. What's funny is because many years ago I was well, just for a year, I went and worked for a company that had, you know, that was a services company and they did placement and I was kind of in that world. So it's funny as I'm still in contact with people that once in a while will reach out and be like, hey, have you heard anything about us? You know, that was 20 years ago when I was in that line of work, helping people find jobs. I was like, yeah, I can't really help now, but as far as just advice on careers, I mean, I'm like I said, 30 years in tech, I have some opinions of where you can go and find job opportunities and yeah. So reach out to me. Let me know if there's anybody that's out there watching that is wants some help on that. So. Oh, maybe me? Yeah, always happy to connect with MVPs. So yeah. So what else is, so what are you passionate about? I mean, we just had Ignite. So anything that really kind of stood out that you're really excited about? Architecture. I mean, thought architecture for me is, I mean, like my green job. I mean, I just figured out that there's a lot of things that we do in programming that can affect the performance of your architecture on the cloud. And sometimes as a developer, we are not aware of that till we are really into the architecture stuff like orchestrating the servers and pull all in that. And you find out that one server is being down for some reason and you have to find the service that is pulling it down by bad code. I'm really worried about that. And I really like to learn more about this topic. And I know it's a long way to go because architecture implies a lot of things about infrastructure, about cloud architecture and software development as well. But I'm really happy to take it. Well, that and it's constantly changing. And it's, well, having worked in, you come from the SharePoint side of things and companies moving from on-premises to the cloud. And a lot of those companies started out by just picking up and moving what we call a lift and shift of all the things that they had built for on-prem and they just moved to the cloud, talking about architecture is like, no, it's not built the same way. It's incredibly expensive to try and run the way that it was architected for on-prem out in the cloud in the way that the number of times, the number of calls, the number of services that are running, all the systems that are ahead is just, so it's just a very different way of thinking and architecture and designing the solutions that you build and run. It's, I mean, there's- Yeah, that's really excited for me to consider about all the solutions and how we can try to move to the cloud, but I mean, in the more, in the less painful way to the company. Well, there's going to be opportunity for years in working with companies, with customers, just on that problem. As they continue to transition, you know, they're, again, they're old, they're legacy systems into the cloud. That's a great place for job prospects. Yeah, so I mean, there's a lot of people like independence and that's all that they do with client after client is that's it. Yeah, so I have an opportunity out there. For the Leslie of the future. Yes, exactly. Well, hey Leslie, it was really great getting to know you. I was going to say that over the last couple of months, I was really hoping that Microsoft was going to do an in-person MVP summit, but they just announced that it's going to be all online again, you know, given where we are, you know, which is unfortunate, but, you know, hopefully we, you know, we could connect and do something online at some point, you know, and for folks that want to find out more about you and get in touch with you, what are the best ways to reach you? On Twitter, of course. Yeah. My Leslie, my handle is I less RG and also in my blog. I mean, I think that's gone. And as medium as Leslie, I mean it. And of course I'll have the links to all of those, her social and her MVP profile and her, the two blogs, the two sites, the English and Spanish out on my blog. So if you go to buckleyplanet.com and you search on Leslie, you'll be able to find her profile there on the video and the podcast and all that information. So, well Leslie, really appreciate your time and getting to know you. I think you're, in fact, I was looking through my list. I think you're the first person that I've interviewed from Dominican Republic. There, do you know how many MVPs there are? In my country. Yeah. There are eight and we are four women in the MVP program. And I mean, we have three MVPs in the same category as me and developed for technology. One of them is Lomariz Reyes. She talks about Samarit and now Maui and Charlene also. And we have a lot of MVPs. It's the MVP site does not make it easy. Like you can't go search by country. They just, Microsoft doesn't provide it like that. And unless MVPs have the words Dominican Republic in their profile, doing a search, you'll only find those that it's included there. Like there's one MVP that's listed who lives in Spain but he's originally from the Dominican Republic. Yeah. One of the reasons. Right. But it's, so it's always, it's great. Do you guys ever get together or have you talked about that? Yeah, for example, we have, we are planning to get together for an in-person meeting in this year. It's possible with all the schedule. Yeah, it's, it's difficult. Well, we, so we, we've tried. So here in where I am, I'm based south of Salt Lake City, Utah. And there are four or five MVPs that are within like a two hour radius of the area. And we've done like a, I think it's now quarterly call to try and keep in touch, but even then we're not consistent around it. But yeah, it's, it's just another way to, for community to come together and connect and share ideas. But yeah. Yeah. Sometimes it's kind of hard, but it's really important to keep connected with our community. Yeah. That's the way that I started writing and being an MVP to the community. But that's the story for another day. Thank you so much for your time and hope to connect with you soon. Thank you so much for the invitation. Have a nice night and everyone around there. Thank you for sharing this moment with us.


Good day, fellow investors. As I said, when I analyze a sector, silver in this case, we analyze everything. So stock number two on the silver mining ETF list is Fresnilla. Stock number three is Industria, Pei Noles. I don't know if I pronounced it right, but that company is another Mexican miner that owns 75% of Fresnilla. So it will discuss them as a whole to show you what is there, the opportunity, and you will be able to compare it with the other miners that we discuss here. So Fresnilla, Mexican miner, it has seven mines and a satellite mine, two development projects, a lot, a lot of exploration projects, which lead to this. Fresnilla in the past four or five years is all about growth. Growth in silver, growth in gold, growth in EBITDI, even if silver prices didn't do so good. So everything looks very good here. The pipeline is huge. You can see early stage exploration. Amazing. So mine operations are just the tip of the iceberg on what can happen here. They expect higher silver production in the future. And with that pipeline that we just saw, we can expect it even higher in the future. Growth in resources over the last 10 years has been very, very positive, which means that there will be much more years to mine. Also much higher, gold production expected. The financial summary, the basic EPS is around 0.75, which gives Fresnilla price to earnings ratio of 23. The dividend yield is 1.3%. And that's exactly what was left after all the CAPEX investments, production, sustainable and increased production have been made. The all-sustaining costs, which are always important, are at 10.34, which is much lower than the current price of 16, and makes Fresnilla a low-risk player. However, there is a lot of CAPEX spent there investing a lot in new projects, and it also costs to sustain the operating mines, which means that in the beginning, if things stays as is, you won't see an increase in the dividend because all the money goes to investments. However, from 2020, things might change, as there will probably be much less spending on CAPEX. So Fresnilla looks good. They have a dividend. Everything looks very, very well. They know that probably the Mexican mining environment, they are specialized in that. They do their business. They are growing, increasing production. If silver prices go up, Fresnilla will go up. They will have better margins, but not that much better margins. So Fresnilla is, let's say, a low-risk, good reward play, which is okay if you want the dividend, if you want safety, if you want some exposure to the metal, but it will be probably a little bit more, let's say, elastic than holding actual silver, and you get a dividend that's less costly. Just, let's say, very, very good business. I'm not going to say anything about the investment, but good business, stable business expected to do well over the long term, if silver prices stay as they are. But the cost is around 10 per ounce, so I don't think silver prices will drop much more than that. However, there are also gold miners, which makes things a little bit more exposure to gold, where everything can happen. So, good business, good operations, which is important. Quick look at Industria Penales. You can trade it at the Mexican Stock Exchange. They own 75% of Fresnilla, but they have some other operations, a little bit more diversified with 41% gold, 25% silver, 11%, 11.3% zinc, and the rest for other metals. The price to earnings ratio is 14, the dividend yield is similar to Fresnilla, 1.46%. So, from a quick view, it isn't much different. I'm not that informed about Mexican markets, but seems similar to the other company. Let's check our table, huge pipeline, growth, lower cost, high capex, Mexico, good business, good company, good miner, so limited risk, but also limited upside because it will be probably fairly priced. Same story for Industria Penales. Thank you for watching. Did I miss something? Is there something in the company that I didn't see? Please let me know as we share our knowledge here. I'll see you in the next video.