And welcome back here to the channel. I mean we're have it if you guys saw on energy Instagram You guys know about the sim challenge the energy sim challenge is going on energy is challenging everybody to do a big Entry in either for the motorsport seven or a set of Corsa So the intro could big thank you to energy innovations for sending me that so you guys could see it on here as well As their Instagram if you guys aren't part of the Instagram I don't know why so energy is running this awesome sim challenge big entry contest so Two ways to win enter in either for some more sports on Xbox and or a set of course on Xbox and PC I am obviously on a set of Corsa, but since I'm a Ambassador and a partner with energy innovations. I cannot enter, but that doesn't mean you can't so Basically like the video says you posted yourself a 30-second clip of either forza or a set out on Instagram and Tag it energy sim challenge, and they'll be giving away two winners one for forza and one for a set of Corsa on 129 so end of this month so big entry challenge. What are you gonna do? So you could do anything. Oh except that don't do that You can do anything you want in Either platform just make it stylish make it big make it cool make it something of Your own and add a little flair to it and the cooler and the you know best they will vote on and Pick two winners to win those beautiful sim wheels, which I have one of I have a sim wheel on mine You guys know from the unboxing they think it energy innovations broken me up with that so what? Am I gonna be doing for a big entry? Well, I feel like a really high speed entry with maybe 360s and stuff would be a good option So we're gonna do a little testing today here on airport drift track see how fast we can get going down this area and Chuck it in and then we'll add some flair to it for you know the actual video But just to get an idea of maybe how fast we're gonna be going. Let's Kick it around here Trying to go in that first turn 150 miles an hour Oh, we overshot that We definitely went a little bit too far back going backwards entry kind of made us grab More speed than we needed to so we're gonna Well, I don't have a hot back to pits button because Rip my controllers plugged in so kind of filled that so we're just gonna go back and we're gonna try this again so we're gonna attempt to do either as very 60 or just a high speed entry because They're saying big entry. Well You can either go big and go home. You can be super flowy Jump dresser probably definitely ain't very good thing as well get very creative with it I've been taking a look at some of the entries that are already out there and these are sick It is very cool to see everybody, you know giving in with the times and doing these sim challenges 150 miles an hour big dirty e-brake grab almost 90 degree lock through the turn and We were made able to do that. So now well, let's uh Let's try throwing down some 360s maybe I don't know if we'll be able to throw a 360, but we will definitely give it a shot We managed to get that turn so now I got to throw a little flare on it So I'm trying to think of what I want to do to add some flare to my mix.   We're gonna go to the last one here. We're gonna change camera.  Let's see kind of what happened Rippin down the stretch 150 miles an hour kicking it in oh If we wouldn't have gone in the dirt that would have been even of better I'm actually shocked that we were able to get that on one try 150 plus mile an hour 360 In our HTC com Z You know, we're gonna try and do that again because That was actually very impressive All right, so we're gonna go take two so the advantage of this competition You have two chances to actually win you could post a forza Motorsports forza horizon I believe any of the forces on Xbox and come over on the PC and rip a nasty a set of Corsa one So two chances to win the wheel Definitely a fun challenge and really great energy innovation is throwing that out there Mmm Take three So it's definitely going to probably take a few tries to get the perfect clip I don't know how I nailed that 360 on the first try because I'm definitely not able to do it again right now because Trying it and I seem to be found we need another rip Let's do it One final try on the 360 That's super high speed and went into the wrong gear Fail Wrong gear with the third instead of fifth that would have been way better than the other one Oh, I mean, that's a jump drift, right? We should do that So that would have been way better than the other one. Let's go one more time and Try this again because that Was nearly perfection final try make sure you guys follow me on all social media I'll have found the description box below if you're following in our G innovations And you have not heard about the challenge you have now so I challenge you to post your clips I'm taking a look at every single one of them gets posed and they're a lot of really good ones. So Make sure you guys follow me on all social media guess have not joined the discord make you guys join the discord as well 150 fifth gear All under steering the first one was the best so do y'all do here for this episode Make sure you guys follow me and also for me. Like I said as always like this. Thank you guys for coming back. I'm watching. I'm evil rabbit I'll see you guys on the track


We're a little over halfway through the college basketball season and one local team is quietly putting together a nice year. Clayton Castle has more on the Central Lakes women's college basketball team. We have a lot more girls than last year. Last year we were six to seven on a good day and this year we're about 10 so it's nice that we have enough to scrimmage each other. 2016-17 was a rough season for the Central Lakes College women's basketball team in terms of depth and numbers. Most games only six would dress due to injuries or other adverse situations but this year the Raiders not only have the depth and the numbers to back up it's 11 and 4 start but it also has the team chemistry both on and off the court. It's how well we bond and we just all get along so we I think we play for each other more than we do. I mean we all love the sport obviously but we all love being with each other and we push each other to be better. It's a lot more fun because we do get along and we do bond with each other like we're a pretty tight knit team to where this is the closest I've been with my teammates. I wasn't close to my teammates like this in high school so I mean it's pretty special with these group of girls. On the court the team knows how to score points averaging 71.9 points 40 rebounds and 17 assists per game. On the stat sheet though you'll notice that the strength of the offense is not one particular player. Offense is pretty good like we are a pretty deep team we have shooters we have drivers we have us sisters we have posts that like strong posts that can just go up and make everything look easy so it's it's fun. If the Raiders want to make a run in March however the team will need to improve an already stout defense as the saying goes defense wins championships. It's on the defense of end of the floor and this team is showing they can really play defense and and again it's something that can come and go you've got to really be ready to work at it every day. The Raiders have a big weekend coming up as they face Rainy River and Hibbing Community Colleges reporting in Brainer Clayton Castle Lakeland News. Thanks Clayton as he said Rainy River Friday night 5 30 then Hibbing Saturday afternoon at one. If you enjoyed this segment of Lakeland News please consider making a tax-deductible contribution to Lakeland PBS.


no that's a conglomerate isn't it yeah it is look at that babe that's the conglomerate we were looking for just look at that isn't that a beauty it is a conglomerate in a conglomerate what do you make of the clasts in the in the little one uh it looks like uh sandstone limestone in there deep time deep time we got deep time this is just beautiful a conglomerate clast in a conglomerate the conglomerate you have to have sand grains glued together to make sandstone broken and rolled to round them off because this is rounded and you have to have an ocean or a lake that has things living in it to precipitate and calcium carbonate to make a limestone broken loose and rounded off and then those have to get together in a beecher in a stream channel they have to be deposited with sand around them then they have to be cemented together with hardwater deposits then that has to be broken out rolled in a stream and rounded put together with all these other rocks coming from every which way all of those then have to be glued together with hardwater deposits and then we have to get from the stream the lake or whatever it was it was making these up here in the middle of the desert on a cliff and it's all in that one rock right there and there's really no other way to explain that rock in geology we often meet people who tell us that we do not know what we're talking about that the world looks like it is very very young that there's nothing in the world older than written history and we never tell those people that they're wrong that they're false that they've been let astray but we can tell these people it looks old that the scientific interpretation the best way to look at these rocks is that they tell a vast deep time so when one looks at a rock like this one that has little tiny remnants of old rocks glued together into a rock which is bounced around in the stream and rounded that then is glued in with a whole bunch of other rocks into another rock that has been bounced around in the stream and rounded that is sitting here glued with a bunch of these things on a cliff in the desert it is very hard to imagine how this could be something that is only six thousand years old and so all we do in science is what can we observe what can we test and what we can observe what we can test says really really old


Y Prif Weiniddi'r bobl tiniwb yn ychydig i adres yng ngyfyrdd yng Nghymru yn ystafell yn y gweithio a'r gweithio yng ngyfyrdd yng ngyfyrdd yng ngyfyrdd yng ngyfyrdd yng Nghyfyrdd yng Nghymru yn yng ngyfyrdd yng Nghyfyrdd. Tiniwb yn ychydig i'r dyma'r cyflwyno ar 6 am, sy'n 11 am Langerian Time, i'r panfio ar yng ngyfyrdd yng ngyfyrdd yng ngyfyrdd yng Nghyfyrdd. The president will speak on the theme, rebuilding trust and reigniting global solidarity, accelerating action on the 2030 agenda and its sustainable development goals towards peace, prosperity, progress and sustainability for all. He will also touch on several issues such as sustainable development, climate change, global cooperation and imperative to address inequalities and global humanitarian crisis. Manuel President Barla Tinnable since Monday has held what has been described as a very fruitful cross-sectoral discussion with key international and regional stakeholders in New York. Tinnable will arrive on the city of the United Nations Headquarters Monday joins other world leaders in the United States to attend the 78th United Nations General Assembly. Governors accompanying President Tinnable include Governor Babadjidesong Waluw of Lagos State, Mohammed Enuwa Yahya of Gombe State, Ubasani of Kaduna State, Abdul Rahman Abdul Razak of Qwara Sheaimakinde of Oil State, amongst others, have backed the international engagements that Tinnable has held so far. The most populous, the biggest economy in Africa, to the 78th session of the United Nations General Assembly. The several engagement, side meetings, side events, many on education, SDG, healthcare, which the countries are engaging in and the subnational are also engaging in all side events as well. Nigeria now is moving forward, doors are open for business and investments. You can see from the recent pronouncement of the federal government in terms of subsidy removal, exchange rate liberalisation, things are beginning to move forward. Stock exchange is now more robust than ever. The economy wait for one year and see what Nigeria will be. Yes, when you embark on reforms there are some slight adjustments which we are going through.


Hey what's up guys, pretty excited today. This is called the emoji pick. It's the world's first wireless voice-controlled LED emoji display for your car. I'm going to go ahead and set this up but before I do just want to run through the different things that this can do. This is the display. In the box you get the display itself with two car suction mounts and then you also have a user manual and then to charge this you have yourself the 12 volt car power adapter to plug into the DC 12 volt input onto the actual display. At the bottom of the display you have the charging port there. It's got a massive battery life in built into it so you can actually display this wirelessly. Just use this to charge it and you can track the charging levels through the mobile app which I'll cover in a second. You have a next button there to cycle through the different emoji displays and this is how you will turn on and off. There's also a reset hole there as well in case it's not working. The actual car suction mounts can be detached completely so you can use this not just for your car but you can set it up at home, inside your home office, your living room, whatever you'd like and just have it as a nice LED display. So let me go ahead and turn this on. I'm going to connect it to my car windshield here at the back. Now the one thing I really like about this is that it's super bright so it's a nice sunny day today and this goes up to 6,000 nits of brightness. In perspective my iPhone 12 Pro can go to a maximum of 1200 and I can see that perfectly fine in broad daylight so that is amazing. One thing that's also useful for is if like my car you have tinted windows and it's very black then you can still see it very clearly through the windscreen so let me go ahead and set this up but before I do I'm going to monitor all of the functionalities and how to connect it to your app via Bluetooth. Alright guys as you can see I've connected it to the back windscreen. I have very dark tinted windows so you can see it's pretty clear as well. It is getting closer to sunset time so it will get a little bit darker but you'll still be able to see it completely visibly. If you open up the emoji pick app this is where you'll be able to connect it to Bluetooth so you have to make sure it's turned on so I just need to hit connect to device there at the top. It's now connected so you can see on the dashboard there's a few things. On the left hand side you can see the battery life 74%. I've got six drawings and it's on 16% brightness. If I go to the main device settings this is where I'll be able to adjust the brightness levels. 16% is quite low so I'm going to put this up and you'll be able to see it gets a little bit brighter.  Let's go back and see all the different functionalities. Elsewhere on the device settings you can also check your drawings you can play games on it. Now as I mentioned earlier this doesn't have to be for your car you can use it to have it in your house and you can also play a game. The only game currently installed on this is Tetris. Here's an example of me playing it. It's pretty awesome it's one player at the moment so you can go and have a little bit of fun around the house if you've got some spare time. It works really well it's very bright and it just has that nostalgic retro feel to it and I really enjoy playing it. So that's one thing that you can really do with it and I even got carried away I just wanted to play it for a long period of time. Looking back on to the device you can also set the screen mode you can have it always on constant but there's options to have a slideshow or have timed. You can also change the timeout so if you want it to timeout after a certain period of time if you turn it on you can set the number of seconds you want it to timeout with so I can do maybe 30 seconds. Now the key thing and the highlight spec of this is the fact that it's voice controlled so this works with both Google Assistant and Siri as well now before I go into controlling this with my voice the tabs along the bottom this is where you can find all sorts of types of animations for this so you've got gifts emojis you've got attention icons so in here for example if you break down you can hit that when you tap on an icon or a gift you have four buttons there on the bottom the one on the left the eye icon is for previewing this and sending it to the actual LED displays and then it will upload it to the display so you can see it takes about 10-20 seconds depending on your connection speed there you go it's now changed if your car breaks down this is the perfect thing to have you don't need to have one of those manual ones that you place in the road this is very convenient to have there's a lot of things here relating to car specific drawings so you got driver and driver gifts as well in driver you can see you can have the disabled badge emergency badges and loads of different arrows to indicate whatever you'd like other drivers on the road to be aware of and there's plenty of other options that you can play around with you can have some fun and the other good thing is that if you're a business owner you don't need to set this up with your car either you can set it up in your window if you have a coffee shop you can maybe have a coffee icon you can have a text to say it's open or closed you can also have QR codes so people can scan that and use it to go to your website so there's a button here called generate QR if you select this all you have to do is select one of the options you can choose a URL you can have your WhatsApp number any of your other social media maybe links and profiles linked to the QR code whatever it may be the possibilities are endless then you can do that the button there right in the middle called paint you can also create your own custom emojis so if you select that you can start drawing whatever you like hi whatever you want then you can just download this to your gallery your camera or to a specific website there's also this button called text if you do a ticker you can basically say something like if you have a coffee shop we are open hit the button and this will scroll across as a ticker as you can see you can increase the speed with the slider at the bottom many use cases for this going back to the emoji list if you go to the gallery you can see there's plenty of cool options here now if I select one of them the other options on this the second button on that list the paintbrush this allows you to edit that emoji and add on to it the third one is to favorite it that star icon you can put it into your favorites and use that anytime you want and the last one is to delete and remove it from your favorites now if I go back to the gallery tab if I go to the favorites tab there at the top you'll see these are the ones that I've favorited from the past and all I have to do is just select that and press the icon to upload it and it's pretty much ready to go it's very quick and easy these are all my pre uploaded ones now let's move on to the voice control because this is where the cool aspect of this device comes from if I'm driving and maybe I want to give someone a thumbs up because they gave me passageway to go through then I can use the thumbs up emoji to do that you go back to your device settings and you go to voice control you'll scroll down and all of your favorited emojis and icons will be displayed there at the bottom if you've added new ones to it you need to manually add a voice command to that emoji as well so the one that says display thumbs up emoji that's the one that I will say the voice control with and that will display on there so if I'm driving I can just turn on Siri say this phrase and it will pair on the screen for 30 seconds because that's my time out so let's go ahead and give you an example display thumbs up emoji you can see how quick and easy was that let's try the coffee cup one so I will showcase you guys here display coffee cup emoji quick and easy if I'm driving and someone has made me angry while I'm driving then I can display the angry icon display angry emoji look at that so quick so easy to do and I even have the voice command button set on my steering wheel in the car to link with Siri so I don't even need to use my phone I just press the voice command button on my steering wheel Siri will open up on my phone provided that is connected via Apple CarPlay which I can do and then I just speak into the car and it will display on the back so that's one really great thing to have as well so that's it guys let me showcase to you guys a few more examples of what you can use this for but hopefully that was useful this is a really cool gadget I'm so happy with this check out the link in the description below as well you can buy it for about $100 on the emoji pic website I'm so happy with this if you did like this video and you do like this gadget make sure you give this video a thumbs up make sure to subscribe I've got really cool car accessory videos coming out like this very soon and I will catch you guys next time enjoy the rest of the video


In this world where you don't conform, people don't like it.  Does that make sense? Yeah.  Right? Like yell? Like what do I gotta do? Like, you just can't get some people to run, am I right? Right.     Let's go, man. Let's go, man.  Hey guys, what's going on? It's Andy, a lot of you leave comments, tell me that you need help. Do me a favor, I'm gonna tell you the best way to get a hold of me. Shoot me a text message right now,<PHONE_NUMBER>,<PHONE_NUMBER>. I'll help you with whatever you need.  Let's get back to the video. Guys, would you agree most people walking in and just put things off? Yes. Okay, so they walk into a gym, they're like, hey, you know, here's the disinformation about the gym. I mean, if the guy's like, oh, you can also let me walk you around and show you what we do and show you the kind of results we get people, right? We're glad that you're here. This is all I change and deal. And then the guy says, cool, let me go home and talk to my wife about it and I'll get back with you. Dude, listen to me.  Am I right? Yeah. Like, why did you even show up? So everybody who says the hardest part is just showing up. The hardest part is when we walk out here to the rest of the world. Guys, inside this room, it's a different place. Am I right? Yeah. But when you walk out that door, you guys know that this is a different place. So how can you stay in this room and stay out there?  You can't do everything that's gonna happen. It's exactly what's gonna happen. Hey guys, I just wanna tell you, you're the true one percenters. You made it till the end of the video. Do me a favor, share it with the friend that wants to go to another level. Make sure you like the video, comment below so I know who you are. Set your notifications and then subscribe to the channel. We got daily sales training videos dropping. I'll see you soon.


I think we'll get started. Just want to thank everyone for coming today. For those of you who don't know me, my name is Sam Arons. I'm a senior software engineer at Lending Home. Quick plug for Lending Home, we're hiring. If you're in San Francisco, Pittsburgh, or even remote, we're hiring all workers for all our offices. So if you like some of the stuff in this talk, come by, talk to me after the talk, and I can point you in the right direction. So the name of this talk is API, how Lending Home approaches legacy technologies. And before I dive into quite what that means, let me explain a little bit about what Lending Home is. So Lending Home is rethinking mortgage from the ground up with technology. Essentially, it's a 100% online, simple, elegant way to get a mortgage. All your document uploads are handled through the website. No more faxing someone.  No more needing wet signatures on documents and going back and forth with your bank and not knowing where you stand. Lending Home essentially takes the entire mortgage process and puts it online. Online, excuse me. We lend off our own balance sheet, meaning you get the money much, much quicker than other, let's say, for example, crowdfunding websites. And really, it's a technology first solution. We've built this with a huge number of technologies, as well as vendor integrations. This is only a small sample of what we kind of integrate with and the different kinds of technologies we use. Obviously, we're a Ruby on Rails application. That's why we're at RailsConf. So you can see a lot of the technologies here and a few of the vendors that we integrate with as well. But this is really a small sense of the overall picture of who Lending Home actually integrates with. In reality, Lending Home has hundreds of vendor integrations. We've seen everything. We have vendors for moving money, for ordering appraisals on people's homes, a literal API where you send an API request and someone leaves their office, takes pictures of a house, writes up a report and sends it back to you, those kinds of APIs. And when I say we've seen everything, I really mean that in the technological sense. A majority of our API and vendor integrations are through standard, restful JSON APIs. Basically, a lot of you will probably be familiar with this. You have a JSON request, you get a JSON response, maybe you have some web hooks if the thing is an asynchronous call. We've seen this type of thing before. This is pretty normal for us. But when I say we've seen everything, I mean everything. This is an anonymous employee at a vendor, scaring one of our product managers. API, we have a server. And this is kind of a common response that we get back from some of the vendors that we talk to. And it's easy to sort of make fun of our vendors for this. But it's kind of important to recognize where our vendors are coming from. In their world, a FTP file transfer API is their definition of a modern technology where their clients will actually use it. So it's kind of important to recognize that that is what is standard in the financial services industry. And that's what we have to integrate with. Berating them or talking negatively about them won't help you build an integration any faster. It won't help them build an API. So really, you have to meet them where they are. It's important to have compassion about these vendors and understand where they're coming from. And so this is really the hard part about what Lening Home does, is integrating with this more legacy APIs that these vendors provide. And that's really what this talk is gonna be about, our learnings and understandings that we've developed over the years from integrating with a multitude of legacy API vendors. So if I had to break it down into maybe three distinctive points, I'd say that these are the three lessons we've learned from legacy APIs. The first one is build the interface you want. And I'll talk about each of these points individually, but at a very high level, build the interface you want, plan for failure, and be efficient when reading and writing. These are very important. So let's start. Build the interface you want. And I've underlined you here. You can mean you as an individual, but generally if you're working in a larger company, you means your team. Build the interface your team wants or to even put it a different way, build the interface you wish your vendor had built. And this is important for a variety of reasons. You don't wanna build, you don't wanna teach your teammates to build directly to a vendor's API. It's actually much, much simpler to build a internal API or to build some kind of abstraction layer. We are engineers, of course, that kind of abstracts away the notion of generating files and vendor-specific formats. So we've developed kind of a list of four different points that we at Leningholm sort of follow every time we're integrating with a distinctive vendor. Kind of words of wisdom as well. Clean interfaces benefit people. Machines don't care. Really, machines will integrate the way you tell them to integrate. They'll do all the messiness, they'll do all the communication. The clean interface, the internal API, that's really a benefit for you. That's really a benefit for your teammates. You're actually helping out other people on your team when you build an internal API. This can either be in code or separate through the use of a microservice. But you basically wanna carve out a very distinctive internal API when integrating with these legacy vendors. And the reason you'd wanna do that is because it makes it easier for your teammates to understand how to interact with the vendor without needing to understand the very specific file format that they require. You're trying to build up compassion for your teammates. You're trying to see where they're coming from. They've never heard of this vendor. They don't know how to integrate with them. If you're kind of tasked with doing this, the best thing you can do, especially if this vendor will see a wide range of use, is to make it as simple as you can possibly be by building the interface you wish your vendor had built for you. And then finally, make sure to use technologies that match the vendor's synchronous, asynchronous interfaces. This is something that I see a lot of, especially when the internal APIs are separated out as a microservice. You wanna actually use technologies that match kind of the synchronicity. And what do I mean by that? A lot of file-based legacy vendors are asynchronous by nature. We drop a file into the vendor's FTP server. They see the file. Maybe they give us a response in five minutes. Maybe they give us a response in an hour or even at the next day. You don't really know when it's gonna come back at you. So you wouldn't graft a synchronous HTTP microservice interface on top of what is otherwise a asynchronous interface by nature. You need to understand how the whole system works and to actually use technologies that match that. We at Leningholm are on AWS, and so SQS is a great asynchronous messaging format. So a lot of these microservices that integrate with FTP vendors use SQS to communicate. So we took all of these teachings and around 2015, Leningholm is funding a lot of loans. We're sending a lot of money to people. We're receiving money from borrowers. Money's flying all over the place. But we did it all by hand. We logged into the making portal. We manually entered in numbers. We checked the numbers to make sure they were right. That was the process. And at a certain scale in 2015, that wasn't gonna fly. That wasn't gonna be something that was reliable. We needed programmatic interactions with our bank. And we went to one of our banks and we said, hey, can we set this up? And they're like, yeah, of course. Here's the thing though, our interface is over FTP. Here's all the documentation. Here's what you need to know, but we don't have an API. And Leningholm and a lot of other companies, you just kind of have to bite the bullet and say, yeah, I totally understand that. That makes sense. I need to integrate with you immediately. I can work with this. So what we did at Leningholm was we built a microservice called Rainmaker. And essentially what Rainmaker does is it exposes a very simple internal API for the platform, essentially an amount, a direction, credit or debit. Where's the money coming from? Where's the money going to? Some very simple fields. But on the back end, inside of Rainmaker, that actually transforms it into a proprietary XML based file that we then drop into the FTP folder of the bank. And then kind of on a set schedule, we receive responses. And Rainmaker parses those files and sends messages back to the platform. So this actually works pretty well. We built the interface we wanted. We have an asynchronous SQS-based microservice. It's connecting directly to our vendor. Life is pretty good. But this doesn't scale, especially when you consider multiple FTP vendors, especially when you consider that our bank is not the only FTP based vendor in the entire ecosystem. So we needed to build something that actually worked with a variety of FTP vendors. And we didn't want to duplicate the logic of actually connecting two FTP servers in whether it's a distinctive microservice or putting all of that logic in the platform itself. So we wanted to ask ourselves, well, what interface do we want here? Let's iterate on this and come up with a really good solution. So we spun out a separate microservice, which we call Grand Central. Again, build the interface you want. Grand Central's interface is that it pulls a S3 bucket, it pulls a specific folder in an S3 bucket. And it looks for files that the platform drops in there. And if it sees a new file, it takes that, processes the file, and then sends it to the correct FTP vendor integration. Similarly, it pulls all the FTP vendor integrations, reads files that it thinks are new, takes them into Grand Central, processes them, and sends them in the S3 bucket, which the platform is then listening on. This is the interface that makes the most sense for us. It's all file-based. We're matching the technologies that are expected of these kinds of different integrations. We still have Rainmaker, but it no longer needs to learn how to directly connect to FTP and neither does the platform. We have one point of abstraction for what FTP is and what the actual underlying file connection details are. These platform and Rainmaker and any other microservices we have in the future are just worried about the specific proprietary vendor format. And kind of going along with the theme of build the interface you want, it's important to remember that UI and UX is interface as well. You want to build clean interfaces, not just at a technical level, but it's important to have relatively good design, but also make these things user-focused and be able to be done from a graphical user interface. This is a screenshot from Grand Central. Specifically, this is the page where we create what we call a file transfer. And a file transfer is just a distinct FTP integration. And you can see here, it's actually really simple. We can do this now in five minutes. Lending Home actually now has 15 distinct FTP vendor integrations, and each one of them can be set up in just a couple of minutes with just a little bit of information. You give it a name. You say what protocol it's going over. A host, a port, a username is usually mandatory. And then you usually have a password or a secret. Maybe you have a proxy you're going through. And then you specify direction. Is it an inbound file connection? Do I need to keep reading the FTP folder or an export? Do I need to keep reading the S3 bucket for new files to send the FTP vendors? So this is cut the time of creating a new FTP vendor integration to five minutes is kind of what I said. And that's really all it takes. So now when people tell us, hey, yeah, we want to integrate with you. We only have this FTP file integration. You as engineers no longer have to say, oh man, this is going to be a lot of work. This is going to be a huge pain. When you build the interfaces you want and you build the right abstractions, this is very, very simple. So the next point I want to go over is planning for failure. And this can kind of come up in a couple different ways. My favorite example of this, the NMLS, essentially the National Body, which regulates mortgage companies, where you need licensing. Their website has office hours. And not only does it have office hours, but for some reason the office hours are different on Saturday and Sunday. I bring this slide up to kind of illustrate this is the industry that Leningholm is working in. Things close. They interpret regulations in a very specific way. A lot of government websites also demonstrate this. They interpret it to mean they can't take any visitors. They can't take any new processes. You can't file any new applications.  And it's kind of important to be aware of these kinds of failure modes. Sometimes the server that you're connecting to will just be off. Temporarily, it'll come back, but it might just be off. You might not be able to connect with it. Make sure that you can catch those things. With file-based transfer APIs, there are a lot of opportunities for failure.  This is an engineer who shall remain anonymous, lamenting a vendor that we integrated with. We have a vendor where every morning when they get into the office, they turn on the server on their desk.  And if you have files to send them, make sure they do it before they leave for the office for the day. So this is kind of also what you have to think about. You have to think about scheduling. Like I said before, you might have to worry about the server being off. But remember that this is the world that we're working with. This is where we have to have compassion. This is totally normal from the perspective of the vendor. And that's totally fine. We understand that. We recognize that. We want to work with you. We just need to build our abstractions to have compassion or empathy for vendors like this and kind of be better in our systems so we can make up for perceived deficiencies in theirs. The way to sum this up, everything will go wrong. So make your system robust. And I have a couple of different points here that I think everyone could use and Lending Home does use to make integrating with file-based APIs much, much simpler. Number one, log everything. Every time you connect to an FTP server, log that interaction. Every time you disconnect, log that. Every time you see a new file in an FTP folder, log the file name and time. Every time you drop a file off in an FTP folder, log the time and date. This will help you immensely with debugging. It'll also help you figure out kind of periods of problems and periods of relative stability. Logging everything is cheap and easy. And it doesn't cost you anything. And when you're dealing with these things which fail a little bit more often than we would like, this helps out a ton. Save a copy of every file or message you send and receive. Don't expect that your vendor will save every file you send them, and don't expect them to archive the files they send to you. Really, what you want to do is save a copy somewhere. Please do it in a secure S3 bucket or your equivalent object storage. But do save a copy. This is going to help you debugging enormously. I can't stress this enough. If you save copies of the files, you know exactly what was sent. And because of the logs, you know at which time it was sent. This makes it much, much simpler to recreate different scenarios and to also prove like, no, no, I sent you guys this file. I have this audit trail, and I have this file. If you want me to send it again, I can send it again for you. Make sure you save a copy. A static IP is almost always required. We, in a lot of these FTP vendor integrations, no one uses vanilla FTP that's unencrypted. Everyone uses FTPS, that's FTP over SSL, or SFTP, FTP over SSH. And both of these are relatively secure. But a majority of our vendors actually require one more step of security, which is having a static IP address from where you connect to them. And normally, I wouldn't bring this up, but because this is RailsConf and a lot of us use Heroku or other cloud providers, we may have ephemeral IPs. And this may not always be easy. So what you want to do is you want to make sure that you can use a cloud provider, use some kind of system where you have a permanent static IP of the system that's doing the actual important export of files. Learn the exact transport system required. Is it FTP? Hopefully not. No one in our industry uses just vanilla FTP, but it could be in yours. Is it FTPS, SFTP? Is it a proprietary file-based format? Is it one of those proprietary IBM software that costs you to license it? Make sure you learn exactly what they're talking about when they say file transport protocol. Make sure you actually dig into the exact protocol definitions, the exact port, the exact host. Do I need to connect over a proxy? Just learning that upfront and asking these vendors these questions will save you hours, hours of headaches in the initial integration and setup. Use good libraries. And importantly, verify that they actually work. Ruby's FTP libraries are not wonderful. They fail in a lot of mysterious ways. We know because we tested them exhaustively. We verify that they would actually work for our specific vendor integrations. And some of them do, but others don't. And some of them fail in mysterious ways, especially around socket timeouts and connection timeouts. We at Leningholm actually found that the Java FTP libraries are actually exceptional. And so Grand Central is actually a JRuby application that uses the Java FTP libraries to do its file transmission. Remove files you've read or let your vendor do it. This is kind of along the lines of learn the exact transport. Understand who's responsible for removing files because every vendor has a sort of different way of doing this. Usually, you will not be dropping a file in a folder full of other files. These drop boxes are regularly cleared out. And they do this in a couple different ways. As soon as you drop a file, their system will recognize that, take the file, and delete it from the server. Or they might require you to do that because the next time you drop a file, they might take both files and see them as two new files. So be sure you understand with your specific vendor who's responsible for removing these files. Whose job is it to do this? You don't want to get messed up on this, or you will receive duplicates, or they will receive duplicates. This is extremely important. A lot of people don't realize that this is actually necessary. And finally, don't read files into memory. I'll talk a little bit more about this in the third part of this presentation. But we're dealing with files here. We should treat them as files. I'm trying to build this theme of compassion. We want to have compassion for the computer itself. We don't want to read a five gigabyte file in the memory and blow our memory and have the process killed. Let's treat the file as a file. Maybe we process it in a very efficient way. But don't read it all in the memory. And especially, don't store it in the database. It's a file stored in either network attached storage or put it in an object store. A lot of cloud providers provide those now. Make sure it's secure. And finally, when dealing with failure, it's not all technical ability. Soft skills will definitely save you in this area. Kind of as an anecdote here, I locked us out of a FTP vendor on a Friday night at 7 o'clock. Most of the office had gone home, not only at lending home, but at the vendor. And so it was very much a scramble for me to, OK, let's think about this. I've done all I can do technically. I'd now need to call someone and figure out what's going on and understand if I can get this back. So this was kind of a concerted effort, but I called up all the people at the vendor, tried to get in touch with the right people, apologized profusely. Oh, I'm so sorry. This was totally my problem. But being deferential, kind of showing them that, hey, I messed up, but I'm willing to work with you to fix this, that soft skill saved us. Only an hour later did we have the integration re-enabled and working again. Soft skills will save you at every aspect of dealing with legacy vendors. So finally, I want to go into the kind of the last part of this talk, which is to be efficient when reading and writing. This is extremely important when you're dealing with file transfer-based APIs because they're dropping files to you. These are relatively large or in a specific format. You don't want to just read it all in the memory. That's what I was saying before about plan for failure. You want to be practical and efficient. And I'll kind of go over some tips and tools for doing that, as well as some very specific code examples. Computers are pretty good at files. Files are a pretty good abstraction. It's just kind of a blob on disk. FTB is a great abstraction for just transferring files between servers. There's no reason to read the file entirely. There's no reason to store the contents in a database. Computers are pretty good at dealing with files in their native ways. In a lot of legacy vendors, you will receive files in either an XML format, perhaps a fixed-width format, or even sometimes CSV. And there are also other proprietary binary formats, too, but I'm not really going to get into that so much. But be efficient when reading and writing. When you're dealing with XML files specifically, you want to use what are called streaming parsers and streaming writers. Essentially, you want to read the input that you're given, either one line at a time or one token at a time, depending on which file you get. And for XML, Nokogiri actually has a wonderful streaming parser for XML. It essentially reads a XML token at a time, yields that to you, and you kind of builds up a linear parsing view of that XML file. And it's a little complicated, and it's a little bit of work, but this saves you, especially when you're given a giant file that you know will blow out the memory stack. And it even is more efficient on the much smaller files as well. So be sure to do stuff like that when you're dealing with files that you know to be large. When dealing with streaming writers, for Ruby, it's actually very interesting. Out of every same Google Ruby XML library, almost all of them are parsing-oriented. Very few are write-oriented of the ones that are write-oriented. Only one has a streaming writer. And that's libxmlRuby. Every other Ruby XML library builds a in-memory representation of the document that you're just about to serialize. So it builds it up in memory, and then when you call 2S on it, it's going to serialize it all out. And that's going to be expensive. Even just holding the in-memory representation is expensive. It may actually blow out your memory allocation. LibxmlRuby just writes a token at a time, and they have a very nice interface for doing this. You just have to be responsible for write start tag, write end tag, write text. It is a little bit more work, but again, if you're dealing with large files, it's going to save you. And there are kind of equivalents in fixed-width and CSV file formats as well. For fixed-width, the streaming parser could just be each line method. Each line essentially reads one line at a time from the underlying file structure. It doesn't buffer the whole file into memory, so you're not going to blow out your memory allocation. Each line will yield one specific line for you, and when you're done processing that, it'll move on to the next line. This is an extremely efficient way of reading fixed-width file formats. And streaming writers, it's funny to think of puts as a streaming writer, but that's exactly what puts does. If you call puts on an IO object, you're passing it some data that it's immediately going to flush out to the file and write it to it.  Very, very efficient for writing out these fixed-width file formats. And then when you're dealing with CSV files, a little less common, but the CSV libraries have really good abstractions for the streaming parser streaming writers. If you call shift on a Ruby CSV standard library object, that'll yield one parsed CSV line at a time while reading from that underlying file one line at a time. Similarly, streaming writers, the double shovel. I'm not actually sure how to pronounce this symbol here. I call it double shovel, but if you call that with an array of objects, the CSV writer will serialize that, write that out to disk, probably using puts on the internally. But this is a streaming writer, and again, this won't build up any kind of in-memory representations of large files. So, I do recognize that this is RailsConf, and I have been talking very abstractly. I kind of want to dive down into a few code examples in Ruby, specifically because I think this illustrates the point a little bit better. This is how the standard Ruby documentation teaches you to read a line-based file format.  The magic function is essentially your business logic. Whatever you need to do with that line to transform it or parse it, whatever it is, that's your magic function. The problem with this is the problem that I've been repeating over and over. This loads the whole memory, excuse me, the whole file into memory. This is a problem if io.readlines test file, test file's five gigabytes, this isn't gonna work right, and this is actually gonna kill your process faster than you think. What you wanna do is what I keep reiterating here is something like each line, and what you wanna do is you kind of wanna build an abstraction function over it, I've called it each row here, and essentially what this does is it takes each line from the input, reading it one line at a time, you call your magic function on that line, and then if you need to do further processing, you can actually yield that object, and so as you call each row and you parse it on an argument, you're processing the file one line at a time, but you're doing all your magic on each line. You're not taking the full memory, the full file into memory, doing all the magic on it, and then doing something else with it. This is very sequential, very iterative, and very memory efficient. This is gonna be faster and better, and sysadmin's everywhere, well, thank you. So kind of just to wrap things up here, I want to kind of reiterate that a lot of what this talk is trying to get at is having compassion or understanding for various points of the business and various points of the systems that you integrate with. For build the interface you want, it's really important to have compassion for your fellow teammates, to understand where they're coming from, and to actually anticipate what the problems might be, and heading them off, and making sure that you've actually built a good abstraction layer for those problems. Similarly, plan for failure. That's kind of compassion for your vendor directly. You're trying to build a system that's robust for failure because you're trying to make up for things that they haven't built yet or can't build.  And when it comes to debugging and making sure that things are working correctly, it builds a better relationship if you're able to say like, oh, I have this actually detailed audit log, like I know that I did this at this time, like what did you guys see on your system? If you have the full story there, that's gonna be a much better vendor relationship. And that's really what you want, is you wanna have compassion and understanding for where they're coming from. And then finally be efficient when reading and writing, the thing we just talked about. This is really compassion for the computer. This is making sure that you're not doing too much at once, this is making sure that processes don't get killed. This is making sure that everything is running smoothly and that you're not creating chaos for other people and specifically for the machines themselves. You wanna make sure that everything goes as smoothly as possible and being really efficient when parsing and writing files, that really helps out a lot. So yeah, just wanna reiterate that lending home is hiring. Again, San Francisco, Pittsburgh and remote. And if you guys have any questions about the talk that I just gave, I can answer any questions that you guys have. Thank you very much. Okay, so the question was, should you log either to a database or log to your standard logging interface? That's actually a really great question and funny enough, when we were building Grand Central, we decided to actually log to a database. So each kind of interaction with the FTP vendors themselves is logged as a database row and it's given a standardized format, all the columns are there. The reason why we decided to do this was in Grand Central itself, if I can actually go back to the screenshot, let me try to find it here. I apologize for this, it'll just be right here. You can actually see activities and activities is a user representation of these logs and the easiest way to do that is to just store the logs in the database and then when you click on activities, you have a full human readable log of everything that happened. And so actually I would recommend logging out to the database and making a standardized format for logging. That's gonna make querying much simpler, but remember, UI UX is interface, we wanna have compassion for our teammates. Building activities is gonna help a lot. That's a great question. So how do we implement testing when testing in a lot of these environments is hard or we have poorly defined specs? The engineer who actually built Grand Central primarily when we're dealing with the vendor who shuts off their server every night, that is actually lending homes only FTPS integration. And so essentially doing the connection part, we kinda were testing in production, so to speak. We were just testing, connecting to that live server. And because we would work a lot later than the vendor would work, the employee who monitors the server, what we decided to do was to spin up our own FTPS server. And this actually is a good strategy when dealing with poorly defined specs or poorly defined FTP integrations.  It's very cheap and very easy to spin up these things, use different server libraries, use different connection libraries. I can really only recommend testing by spinning up your own mock instances and doing it that way. I hope that answers that. How do you handle monitoring and intermediation for failures on our end? So whenever we experience a failure, we not only log it on that activities page, but we also send it directly to Slack. For lending home, a lot of our very important error messages go directly to Slack. So they hit Century first and then we actually have a system that reads Century continuously for various keywords or new errors. And those get routed directly to we have a specific grand central Slack room and they show up immediately and say, hey, this thing failed. We've never seen it fail before. This is a different error. It needs someone's immediate attention. That's the best way I can kind of describe that. You should always be logging errors to something like Century doing that kind of thing. But if it's with an FTP integration, I forgot to mention this in the talk, but sometimes there's a high correlation between the importance of the vendor and how legacy their interface is. And so for when things fail on the file transfer side, you really wanna know about it. So I do recommend something like page or duty Slack, an immediate notification that actually gets the attention of the engineer. All right, thank you guys very much.


Welcome back. Now to talk about the Naira as we already advertised the Nigerian currency has weakened to new lows of between 700 and 710 Naira to the dollar. The parallel market as the US dollar demand pressure from retail and end users persists. The Naira closed last week at 630 to the dollar and has stayed within the 620 to the dollar ban for weeks before the current low of between 700 and 710 to the dollar. Now findings this is on the black market finding showed that although many black market dealers are asking for between 700 and 710 Naira to the dollar, actual transactions have stayed within the 700 Naira to the dollar ban. Now the Bureau of the Change or Forex Bureau operators have cited the lack of effects that's foreign exchange and the surge in demand for the recent uncontrolled uptrend recorded in the market, the foreign exchange market. In the same vein some bank users who have effects in their domiciliary account have told us that they have not been able to withdraw their funds from the bank due to tightened liquidity. They have not been able to withdraw their funds from the bank due to tightened liquidity. In the same vein the exchange rate of the official market has also witnessed a downward trend in recent times depreciating to 430 Naira to the dollar despite recording an average rate of 416 Naira to the dollar in the previous year. This is following more tightened liquidity in the investors and exporters window which is what where the Nigerian authorities perched their exchange dispensation at some time ago. Now to help us unpack this we're joined by two very very erudite guests. Professor Kenifer is a development economist and the lead consultant with ECOWAS and Mr Dominic Rume Uriere is a certified Metabes expert. He joins us from Delta State while Professor Kenifer joins us from Abuja. Gentlemen you're welcome to the breakfast thanks for joining us. Thank you very much. Let's start with you. What are your thoughts on the macroeconomic policies of the central bank of Nigeria? Of course we've heard from some FX dealers and those who are also customers in this report that there have been some demand pressure rather on the Naira because of the high and increased demand. We've had policies you know for instance moving the exchange rate dispensation from where it was before to the importers and exporters window that happened either last year or the year before that and several other policies by the central bank of Nigeria led by Gordon Mayfield. What are your thoughts do you think he's gotten wrong and that's where we are today? No not at all. The central bank is doing the best that it could under the current circumstances. Let me explain that the current pressure this in the last few days are actually coming from United States that have revalued their dollar. The dollar has gone up in value by about 12 and half percent and that you know just imagine dollar and euro are just a parity right now. It used to be 20 percent in differential and also powers are coming so it's almost every currency that has to be dollar or denoted in dollar or it's all affected. Now added to that is the very high speculation in our economy and then you see when you have speculation in your economy the speculation is to the extent that they want to think that the Naira is going to be different. So what we have is borrow money, get what in every month and a half purchase dollar. So can you imagine if you expect that by the end of next month the Naira will drop to about 800 to one dollar. So they will just buy the dollar that I hold it. End of next month they will sell and they will make 15 percent to 20 percent just by doing nothing. So that pressure is there. Thirdly this is summer. People are practically looking for money to travel abroad for all kinds of things for medical treatment, for leisure, for holiday and then also children's school fees are coming. People are also looking for the Naira for settling the school fees of their children abroad and you know we have them in hundreds of thousands abroad and then you have the politicians that are looking for that to settle their political stuff and that is we already know that. That's been playing out in the last six months. Then we also have the demand, the spurious demand for dollar to import from China and all other places and look at the dream balance between Nigerians. It's over two trillion. That is alarming, that people are importing all frivolous items because that is the only way they can make money on the current circumstances in their view. So they bring everything they can and then they pass through, inflation pass through to the consumers and you're going to have to find a way of taping these appetites. She even tried by delisting 41 items but it didn't ban the import of these items. They just said that I haven't got the foreign exchange to give you but these guys are still active in the market sourcing money and there's also dollarization of how I can. If there are some places who go and see prices, who pay the dollar and when you ask them they say well this is the only way I can sell it so that I can find the thing because I'm not sure about the fund next month. So you have all these cumulative effects. Now let me put it that way. There are four x pricing mechanism, four x interest rate, monetary policy rate, inflation. There are all prices and when you come to price, you demand a supply for the item placed because you try to find where you resolve demand and supply. Where are they likely to meet? In the case of $90 and Naira, we don't have any point right now. What it is is that about 80 percent of our foreign exchange to come from crude oil sales and CBN has been waiting for this money last year. About three billion dollars would have been going from NNPC to CBN every month. They haven't seen it. Not last year, this year. They haven't seen it and that's why you saw the JP Morgan clamping down on nitrogen and all of that. So what it is done is that NNPC is doing a direct crude swap with refiners abroad, sending them the crude and then receiving the PMS in return and then when they do their arithmetic, they say, oh wait a minute, that the price of the ribbon, what the potential revenue from the export of the crude is outweighed, far outweighed by the cost of transportation refining and bringing it back to Nigeria to a government where your exclusive agent go and find a balance and they call that balance under the cover. And that balance is now 500 billion naira every month. That is what you are calling subsidy. They are now telling government to go and borrow four to five billion naira to subsidize the price of the PMS. That is where we are. And now you can now look at the impact of that on debt borrow on the debt and debt financing and then the government's removing the possibility for government to spend money on the capital projects and then deflation. So that is the question. Now so what happens in reality is that CBN is acting a 20% room that it has to get more forex from remittance which is dropped from about 26 billion to 100 million a week, which is about five or something billion a year. It dropped. Foreign direct investment is not there. It's only about 200 million. We used to be about 8 to 10 billion. Foreign portfolio investment is not there, but all heading back to America where interest rates is going up and all that. So it's very, very tough. CBN doesn't print dollar. It's very, very tough out there. But let me tell you something. 93% of forex demand and supply is actually the translation is going on in the official window. 93%. It's only 7% that is going on in the black market where all this whole noise and all this power is coming from. Only 7% of the forex. So that's the story. Interesting. One may be worried that the market that gets the, to get the, to hug the headlines and grab the headlines almost every day, you know, in the newspapers is the parallel market, not the official rate. One wonders why that is. But I'll come over to you, Mr. Uri Rie. What are your thoughts on the policies of the Central Bank of Nigeria? Monetary policies bring in mind that I think in September 2021, the Central Bank of Nigeria accused Abuki FX, Webster that collates black market exchange rates of the Nigerian Naira against major international currencies of carrying out illegal activities undermining the Nigerian economy, in particular, you know, bringing the Naira under pressure. Well, Abuki FX saying sister shut down its Naira, you know, updates and the Naira has also gone down with Abuki FX. Well, thank you very much. It is sad that we not yet realize that currency is the lifeblood of every economy and that the power of a strong and stable currency cannot be over-emphasized because when you look at this particular statement that you just said now that the, it is because of a website. You can imagine a CBN governor that has a lot of certifications from some UK university and saying is because of the website that displays a Naira to dollar rate that is costing some of this particular nose dive in the value of Naira. And that is a very, very, very big question to start looking into because when you look at things, you look at like in the past three years Nigeria printed about one trillion Naira and they were able to use, they shared about 100,000 to people during COVID and then send some offshore and then took the currency to about 18% in inflation. But that's not what we should even first of all focus on because if you look at some countries like say South Korea, today the Naira is officially pegged in the bank at $411 to $111. If you look at like South Korea, they have their currency pegged at $1,177 to a dollar. But does that mean that Nigeria having a lower value is our economy better than that of South Korea? No.  Today, we have the Naira being pegged at about $710 to a dollar, but that is not the end of it. We can start looking at things that cost this particular inflation in the first place, which number one, we have that particular money printing that I've just said. Then we have some kind of, then we have debt currently that we have. Okay, so Nigeria currently is running like a debt financing structure, not a capital type of financing structure and have I mean, Nigeria borrows debt to be able to finance what it needs. It's not generating enough revenue that is able to settle its debt. Like what Prof said, for example, when he was talking about the petroleum industry, on a yearly basis, we saw Nigeria bringing in products of up to $6 billion, because that also coincided with the CBN's reports over the last five years that were virtually imported about $36 billion worth of PMS products into this particular country. And you see that we can then go to come to the rescue because this particular $36 billion have this hard currency supply that has gone out. But that particular revenue is not out yet. So that particular hard currency supply that is going out on a constant basis, being able to service the petroleum sector will not yet be solved because we don't still have a way to fix that particular refining problem here. So you see that just coming out to say one website actually dropped that particular value is a very, very, very wrong move in the first place. Then we see KLS statement coming from the CBN governors until like what he said a few weeks ago that if you exchange your NERA for dollar, they would arrest you. I mean, if you know that if you sell dollar because of NERA, why would you now want to bring out your dollar to sell it so that they will arrest you? I mean, you start holding your dollar to ensure that what you don't get caught. And that actually now causes a demand on the supply problem, which Prof actually said earlier. And you see, because of this particular thing, it causes us to have something like an arbitrage. And how do I mean by arbitrage? You see the official dollar rate in the CBN is about 411. You see the black market price coming at about 700. Some people, they have access to gain this particular dollar or get access to the treasury and they get this particular dollar at 411. And then they go back to the black market use ATM or maybe in another country to withdraw it. And they trade it at a higher price, which is actually destroying the structure of the NERA to dollar economy. Then we see something like abused by the allies, just like a professor. Some people, they want to just hold their money in dollar and start dollar rising their economy, why they're in Nigeria. You can see that if they printed about one trillion NERA for that particular COVID time, where did that particular money go into? Maybe some of them went to buy dollar again, thereby ensuring that the demand for dollar continues to go high. And then not as if we're diversifying the economy so that we're not saying, okay, we're using other sectors of the economy to be able to produce more things that can be exported. And it's not as if foreign direct investment is also coming into Nigeria, because from the statistics we got, foreign direct investment has actually been on its low in the last six years. We have not had, because of the insecurity problem, because of the epileptic power, nothing is actually coming into this particular system to ensure that we are making that particular lookup produce that we can be exporting that can increase our supply in terms of effects revenue. And then you see something like a border closure that happened. You can see that that particular border closure enables us to start producing rice locally and stop the way we were spending dollars in terms of exporting rice, which actually now increase some of the internal supply for that particular dollars for us. But we need to ensure that these particular things are sorted out, else we cannot rely on just one civilian government telling us that there will be one particular website when there are major internal problems. All right, because of time, my brother, let's quickly, because of time, let's quickly cut it short. And just a quick one from you, Prof, do you think that the current exchange rate direction of the central bank, or let's say the monetary policy committee, last month they moved it from 13% to 14%, do you think that they're getting it right with these tweaks, the way they're going about it, with the monetary policy rate or the exchange rate? Very shortly, please, sir. No, do not, it's not an option. The increasing it is in line with this international practice right now, and it's the right thing to do for them. The TBN is focusing on generating more foreign oil revenue with the ROT $200 billion revenue drive, which over the next three years could solve this kind of problem, and people will start looking for the dollar in the way we're looking for it. So there is a demand side and a supply side action from the authority. But it seems from fair that everybody thinks that CBA should solve every problem in the economy, and we are glad that it's doing the best that it could, but there are also fiscal aspects that could also augment. If you raise the, if you use instruments, what you call levy instrument to increase the effect on those that want items, or even extend them, to bring more pressure on those who are important, to pay more tax. Okay, all right. And also, please demand. All right, Prof, we have to go. Interesting. Gentlemen, thank you very much for your time. Dominic Rume-Riri, thank you so much for your time. And of course, Professor Kenneth Fearswell, we're grateful to have you gentlemen with your analysis, and I hope to have you soon. Thank you, gentlemen. Thank you very much. All right, that's, thank you, thank you. That's the size of our package. This morning on the breakfast, we return tomorrow with more analysis and interesting discussions. Please follow us across social media, plus TV Africa. Good morning.


In this video I'm going to tell you three things to never do in lucid nightmares and if you stick around for this whole video I will tell you the most kind of important warning or the thing that you should never do at the end. So you've got to bear in mind that lucid nightmares don't happen that often but they do affect a significant amount of people so let's just get right into it. The first thing you should never try and do in a lucid nightmare is to try too hard to regain control. So what happens when you have a lucid nightmare is that you lose control of the dream you're often lucid to begin with maybe you do a reality check you spin around and you stabilize the dream to some degree but then what happens is something will happen in the dream that will cause you to lose control maybe it's something entering the dream scene a dream character something happens to you or maybe it's even a sleep disturbance in real life that translates into the dream and this has happened to me many times especially if you're traveling or in a noisy room if you're in a noisy room or if there's a sudden burst of light or something right maybe somebody starts a car at 2am and the headlamps shine through into your room it doesn't quite wake you up but it can distract you enough or interrupt your sleep enough that you will lose lucidity and so you need to make sure that you don't try too hard to regain control of that dream and the reason for that is that when you try too hard there's a subconscious kind of pushing back that happens where your subconscious mind almost persists your intention to try and regain control and it makes it even harder to gain control it's almost like trying to catch something that's constantly flying away in order to catch it you need to kind of relax and let it come to you this is very much true with lucidity and it's a really good analogy so don't try too hard to regain control of the dream step number two is don't become scared or wonder what's going to happen next like i've explained in many other videos your lucid dreams and your dreams in general are made up of your subconscious so if you lose control of the dream but you're still lucid what a lot of people contend to do and i've done this a few times when i was starting out is i would lucidly wonder what's going to happen next i'm lucid enough to have that thought but i'm not lucid enough to have control over the dream and so what happens is your subconscious mind ends up surprising you and that surprise can be either good or bad but usually when it's left to your subconscious mind to decide what's going to happen it might not always be a good thing and that's what can make lucid nightmares so scary is that you don't know what's going to happen next and when something does happen if it's not something you want or like it can be a scary experience because you're going to feel like you're trapped in the dream that's the definition of a lucid nightmare you're almost feeling like you're trapped in the dream and no matter what you do you can't escape that dream so really try and focus hard when you lose control of the dream but you still have lucidity focus a lot on making sure that you don't wonder what's going to happen next try and decide what's going to happen next and expect it to happen instead of wondering you know i wonder what other scary things are going to come around the corner that's a recipe for disaster before we get on to the last one which is probably the most important one just try and subscribe to the channel right now turn on notifications because i post videos one to two times a week about lucid dreaming and also make sure to scroll down and leave a comment letting me know what your scariest lucid nightmare was and also i'm actually really curious about something so settle this debate in my head that i've been having going on what is better a normal nightmare or a lucid nightmare and why leave a comment down below okay so the last and probably the most important thing you should never do in a lucid nightmare is to try and wake yourself up and you might be thinking surely if it's a nightmare the the best thing you can do is to try and wake yourself up to end the nightmare absolutely not and i say this was very high degree of confidence because whether the nightmare is lucid or whether it's a normal nightmare nightmares and bad dreams are often the most important dreams in terms of messaging and your what your subconscious mind is trying to tell you so if you wake yourself up you're completely wasting the opportunity to learn more about the dream learn the message behind it and what your subconscious mind is really trying to tell you so the last thing you should do is try and wake yourself up instead try and regain control or regain lucidity to the point where you truly know and believe that nothing bad can happen nothing can harm you and at that point it doesn't matter if you wake up or if something bad happens because you know it's a dream so and i've had many lucid dreams or lucid nightmares like this where i've been aware so deeply that it's a lucid dream but i've not necessarily had control over the dream and what that means is i can just allow myself to watch what happens without any attachment to it it's a very interesting way of understanding your dreams and of getting like a deeper meaning from them so please if you didn't do it before make sure to subscribe to the channel and leave a comment telling me whether you think it's better to have a lucid nightmare or just a normal nightmare or maybe even no nightmare at all and let me know why