I don't know What's up money gigs mr. V here welcome to another video guys so in today's video I want us to talk about ticket symbol arcade t rocket company So last week their IPO went live and I didn't hear a ton of buzz either here on youtube or even online for some reason But um, this is a company that has a wonderful reputation and has been in the market space for years and years And now they finally went public And so I'm surprised that they went public and there wasn't a ton of noise about it So but I just want to cover it if you give my perspective and just see if this is a company that I want to invest in or Or not so but before we get started guys if you're new to the channel We talk about how to earn money how to save money how to invest and build wealth So if that's something that interests you go ahead and hit that subscribe button Any notification bell so you don't miss out on new content. So again, like I said, um, this company went public last Week and there was there wasn't a ton of noise About them for some reason. Um, there was like a few articles online talking about it Like this one, you know talking about them being the amazon of the financial services Based on their products and so But again, I didn't see way too many Articles really breaking down This company so, um, I kind of like this one right here So let's take a look here. This one talks about the five things that you need to know. Um, and just kind of went through Explained before you invest, you know What it is. So, um, again, I can put the links in the description below You can definitely go check out these articles talking about it I think uh, one that I like here is that investors shouldn't expect to receive dividends So right off the bat letting you know that this is not a dividend paying stock I I found it a little bit interesting Um, but again, this is this is it. So let's look at what happened when the stock initially went public So if you can see here, um, august 8th, you know, or They are out there opened up at about 21 dollars and some change um, and then they since um hit a high of Uh, $26 and 85 cents and then ever since then it's just been pulling back until um, when I was doing this video They were trading at about $18 and 18 cents. So, um, yeah, it's it's one of those things where It means they come out to get really really hot and then just start pulling back But so a lot of people don't even know about this company or don't even understand the business model But I think it's the company that has a really good history has a good reputation Has been in the market space for a lot of years and they are working To really change the way the market the mortgage process works Um, and so they they're trying to simplify the process So if you are let's say a realtor or even just somebody that says you bought a home, you know that You know applying and getting a mortgage and doing the paperwork and everything is very very tedious And so they are coming in and trying to simplify that process for realtors as well as for just home buyers Which is awesome. And one of the key products that I read about in their filings was um, they call it the rocket logic Rocket logic. It's supposed to really um, digitize the process of Really applying for a loan and get just getting a loan and get all that paperwork out of the way Won't they're trying to make it as easy as possible for you So instead of you going through thousands of pages and stuff, I got they want to simplify that process for you Using the rocket logic. I think that would be really really good for realtors and for home buyers. So um, again, uh, right now the way these things stand, um, I personally Um, I'm not gonna jump in and buy it. Um, because I'm I'm so really really heavy in in I'm really really heavy in in the tech space. So even though this company really looks, uh, nice and enticing I know we didn't go into, um, a lot of their their their finances But so far, uh, I mean some of the finances that I looked at they don't look too bad Um, but again, I can put the link in the description if you want to go check them out I personally I'm not going to be buying is I'm going to watch this from the sideline. I I'm heavy into the tech space, uh, which I understand and and really love better Compared to the finance the financial space. Um, so this is not going to be a buy for me But if you are somebody that's in the financial space and understand and notice Let me know in the comment section. What do you think are you going to buy or you're going to wait and see, uh, This pullback before you can jump in Again, guys, if you're new to the channel talk about how to earn money how to save money how to invest and build wealth So if that's something that interests you go ahead and hit that subscribe button Any notification bell and youtube tells me that 90 of you guys watching haven't already subscribed So go ahead and hit that subscribe button and as always Stay motivated


The Manjoh Nami has taken responsibility for Sunday's airstrike that left many villagers killed in several orders injured at Toodunbiri Village in Kaduna State. This development was confirmed by Samuel Aruan, the Kaduna State Commissioner for Internal Security and Home Affairs at the end of an emergency security meeting on Monday. The Kaduna State Government convened an emergency security meeting chaired by Deputy Governor Dr Hadidza Ballarabey to discuss the incident. The incident was unintended and unfortunate as the Nigerian Army trips were on a routine mission against terrorists in the area. Set and rescue operations are still ongoing and those injured have been rushed to Baraudiko Teaching Hospital for treatment. In the meeting, which was presided by Her Excellency, the Deputy Governor, Dr Hadidza Sabwa Ballarabey, which had in attendance heads of security agencies, religious and traditional leaders, the Nigerian Army explained the circumstances which led to the unfortunate and unintended attack. The GEC-1 Division, Nigerian Army Major General V.U. Okuru explained that the Nigerian Army was on a routine mission against terrorists, but unfortunately some members of the Toodunbiri community were affected. Such and rescue efforts are still ongoing as dozens of things have been evacuated to Baraudiko Teaching Hospital by the government. We have been briefed by the government exactly what happened and it is purely as dental and it was not a deliberate issue and it has been explained. So we heard what the government said and the government has apologized on behalf of the security personnel that carried out the exercise.


We are back at Everton's training ground for Sure Pressure Series, Beat the Stat. I've worked with Opta and Sure and created a series of finishes based on Opta statistics, which will test whether the league's best can find the back of the net when the pressure is on. As always, a goal is three points and failure to hit the target is minus one. Today we're with Davies, Balasi and Nias, can they cope with pressure and beat the stat? First up, a shot from outside the box. The player will need a good preparation touch under pressure to guide the ball into the net. Only 8% are scored in the league. Now we have a 1v1, the ultimate test of a player's nerve. Only 50% are scored and after a 1-2 can the player find the composure to finish. Third is the first time finish. Only 15% of shots in the area are converted into goals. I will deliver a range of crosses which they will have to guide on target to score under pressure. Bonus round, time for double points. I've worked with Opta to identify the hardest chance scored this season. Using their XG rating, we've identified Wayne Rooney's strike from the halfway line versus West Ham as the most difficult. Do the players have what it takes to score? The scores finished Tom, five, we've done Omar, nine, and Yannick the winner with 12 points. The bonus score at the end, double points. Score where it matters.


C'est un grand plaisir d'être ici avec autant de leaders fantastiques d'organisation du Canada et de l'ensemble du G7. Je veux commencer par remercier chacun et chacune d'entre vous pour votre travail sur les enjeux les plus importants auquel notre monde fait face aujourd'hui. La société civile est au coeur du processus démocratique. Vous donnez une voix au plus vulnérable et vous vous assurez d'inclure ceux qui trop souvent sont laissés pour compte. Let me begin by thanking each and every one of you for your tireless efforts in speaking up for the issues that you care about. You help to ensure that we as leaders hear from people in all corners of society including at the very margins. People that wouldn't otherwise have a voice. So thank you for your advocacy and for your ongoing commitment to justice. The folks in this room know that the only way to address the interconnected issues facing our communities is to bring people together because after all so many of our goals are shared. Climate change doesn't care about jurisdictions. Humanitarian crises spill over borders. Economic growth is une equal within and between countries. These are uncertain times and only by working together can we overcome the multitude of challenges we face. Let's build on the successes we've jointly created like the pan-Canadien framework on clean growth and climate change. You and indigenous communities help make that happen and I know there are lots of people in this room who make sure we do even better. Together we can make the future brighter. Every time one engages a woman in the democratic process you amplify her voice and empower her to transform the norms and institutions that have historically excluded her. Her voice and those like it inspire us to work with other G7 countries to invest in women and girls including in places of conflict and crisis. My government is committed to amplifying the voices of all people which is why we're finding new ways of connecting with folks over social media and through the internet. It's about having conversations with young women and men about how the G7 can break down barriers to create opportunities for the world's most marginalized people. I'm proud that one of the primary initiatives we hope to achieve at this year's G7 is a meaningful commitment to and investment in girls education, especially in crisis and conflict affected states. We've heard from so many of you about how important it is that girls have access to 12 years of free, safe and quality gender responsive education. Working with civil society partners and other G7 countries, we hope that investing in education will be one of the legacies of this year's G7. My friends, just as so many of you give a voice to women and girls, many of you also advocate for an economic growth that works for everyone. We see it around the world. People are nervous of getting left behind in an ever changing job market. People are worried about not even being able to access an ever changing job market. I hear those concerns. I know that we have to support economic growth that strengthens the middle class here and around the world so that our citizens can have a bright future and those who aspire to joining the middle class someday can feel there's a path for them. We're negotiating progressive trade deals that put the protection of workers and minority rights at their core, but I know that isn't the end of what we need to do. You remind us that governments must take action to help workers develop the skills they need for the jobs of the future, a future that includes women as empowered participants. The numbers are there. Si nous parvenions à l'égalité des sexes partout dans le monde, nous pourrions faire augmenter le PIB mondial de plusieurs milliers de milliards de dollars en une dizaine d'années seulement. En tant que fiers féministe, l'autonomisation des femmes est la bonne chose à faire. En tant que dirigeant qui veut faire croire notre économie, c'est aussi la chose intelligente à faire. Et dans ce long périple qui nous mènera à une plus grande égalité et de meilleures opportunités, je sais que travailler avec la société civile n'est pas une option, mais bien une nécessité. You're our allies as we seek to implement a more progressive agenda both at home and abroad. When you defend the rule of law, you stand up for equal treatment for all citizens. When you call on governments to invest in development and humanitarian relief, you remind us of our responsibilities as one of the world's most advanced economies. By implementing Canada's feminist international assistance policy and by investing in our women's voice and leadership program, we're investing in you. We need you to help us deliver grassroots results that protect women and girls' rights and ensure their security. Currently, one in three women worldwide has experienced gender-based violence. That is unacceptable. No matter where they are in the world, everyone has the right to live free from violence. As I said to the W7 and the Gender Equality Advisory Council last month, keep pushing us to be bold in meeting the targets you've set for the G7. We need that. We need your voices challenging the status quo, bringing discussions of gender, LGBTQ2 rights, the environment and economic security into the mainstream. During our G7 presidency, Canada appointed the Gender Equality Advisory Council, outstanding leaders who will put gender equality at the very core of G7 decisions. This has already begun to transform the work of the G7. To achieve real equality, we need to reimagine our social, economic, political and legal structures. So I'd like to ask everyone in this room to keep going, to keep redefining the agenda. Et avec vous, comme partenaire, nous réaliserons des progrès pour tous les Canadiens. Et en travaillant avec la société civile de tous les pays du G7, nous allons faire une vraie différence dans le monde et dans la vie des gens à travers ce monde. Merci encore d'être ici cet après-midi. Je sais qu'ensemble, on va accomplir beaucoup. Merci beaucoup.


Okay, so let's start doing the nitrogen in this hydrogen cyanide molecule. So we just did carbon, so you can watch that last video. Now we're going to do nitrogen, the same thing, okay? So what do we have to do first when we're doing this hybridization, showing the hybridization? First we have to show the what? The valence. Atomic orbitals, so the valence electrons in the atomic orbital, right? And what do we say we want to do nitrogen, right? So what are the valence orbitals? We have five. Five electrons, but what are the orbitals themselves? Two s. How many? One. One. Two p. How many? Three. Three. And then you said valence electrons? Five. Five. They're going to fill together. They're very good. One. Two. Three. Very good. Okay? One, two, three. That's five. Everybody cool with that? No. Okay, so we can do this in a number of ways, but we've drawn out the structure here. What is the hybridization for that nitrogen? SP. It's going to be SP, right? So we know it from the electronic geometry. We know it that it's a triple bonded nitrogen. We can think of it a number of different ways, okay? We know that it's making two sigma bonds. That's probably the best way to think about it going forward from here, okay? But if you need to go backwards, you can do it the other way, kind of the check off ways. Okay? So what are we going to do? We're going to mix them up or hybridize. What did we say we're going to make over here? SP. SP. So how many SP orbitals are we making? Two. Two. How do we know there's two of them? One S and one P. Yeah, because it's SP means that the one S and one P got mixed up, right? So how do we depict that over here? Remember, we like to draw the box around them, like that. So we're having the one S and the one P. So let's go ahead, put those there, and what happened to our other two P's over here? Nothing happened to them, right? Did they get stuck in the blender? Uh-huh. Okay, so we're just going to put the P up here, and if you want to write two P, that's fine too. So now what are we going to do? Let's draw our electrons in. Okay? So, one, two, three, four, five, okay? These are relatively close in energy. I know we're drawing them far apart, so that's how they're going to feel in this thing, okay? So if you look at this, how many SP bonds should nitrogen be able to make? One. One. Does it make one SP bond? With what? Carbon. The carbon, right? What orbital and carbon is it making it with? The SP orbital and carbon, right? Do we have an overlap there? It's an SP. We're going to show that, and if I have enough room on camera, we'll show it. Maybe I'll erase this side, if I don't. So this is the SP carbon orbital overlap, right? What is this here? It's the lone pair, okay? And what would these two do, that we're going to make the pi bonds, okay? So now I want to show that orbital system, kind of like what we did in class earlier today. Is everybody okay with us doing that? Okay, so it doesn't look like I'm going to have enough room to put it over there. So would anybody be too displeased if I erase this side? Okay. You would be displeased? What's up? If you don't know there are triple bonds, you know there's triple bonds, so you put the SP. If you don't know that, how can you know it's SP? How many sigma bonds is the carbon making? The carbon itself, how many sigma bonds? Two. Two. So you know you're going to make two sigma bonded bonds. And everything else is a pi bond. Okay, that's how to do it. Okay, so think about that, try some, and then come back and see if you're having trouble with it. Okay? Okay, so now let's draw the entire orbital system. Okay, or at least around the... Well, we could draw the entire one because this is small. Hydrogen? Hydrogen? So we're still... Should we say hydrogen has what orbital is it making the bond with? The SP of carbon. The SP of carbon, but what is the... The S orbital. The S orbital, right? So it looks like that, right? The SP orbital, remember, it kind of looks like a little bit S character, a little bit P character. So I'm going to kind of draw it. And you don't have to be super exact with these things. So this is what kind of a bond would you call this, say? Well, it's a sigma bond, right? That's a sigma bond. Okay? Then we're going to show the next one, right? So the next sigma bond is made up of a what? Two SPs. Two SPs. SP from a carbon and SP from a nitrogen. So remember, the little lobe is the anti-bonding orbital. That's another sigma bond. That's another sigma bond, yes. A little between the carbon and the nitrogen. So we made a sigma bond here. And a sigma bond here. And then, of course, we've got the other SP. What's it doing? Here. The lone pairs. Yeah, the lone pairs are over here. And then what else do we've got between these carbon and nitrogen? The two high bonds. Yeah, the two high bonds. And we get those from the what orbitals? The P orbitals. So... Oh, sweet. Yeah. And then there's the other P orbital. So it gets kind of cumbersome. So now we're going to say, OK, so remember, that's a half and a half pi bond. So half, half pi bond makes one full pi bond, right? Right. Yes? Are you going to ask us to draw this one? So a scan tron? Not on a scan tron, no. But if it were a multiple choice, you may see something that looks like this, OK? This is in a very easy multiple choice question to actually put a bunch of different structures on the piece of paper. Yeah. Are you going to have bonus questions? Potentially. Don't count on it, though. OK, Kim, should we show the other pi bond? Do you have any questions? Those are the two pi bonds? Those are the two pi bonds. Yeah. So it's not four bonds. It's two and two, but they're each half bonds. So two pi bonds are two sigma bonds. Yeah. And the whole of the structure, right? Of between the carbon and nitrogen, there's only one sigma and two pi bonds. So a question you're asking about atomic orbitals would be strictly just what we pulled from the periodic table. Yes. Like the orbital would be the hybridization. Uh-huh. Yes, you have to show the hybridization or the rehydration. Depending on if it went from, like, what we were talking about. Yeah. Something like that. Any other questions? OK. So that's a pretty detailed one. And we did really well. I like those questions. We cool? OK.


So, one thing you need to know about futureology is that it always starts or must start with a solid core. So all of the tools and techniques and all the things I'm going to talk to you about now, I've been applying it across all sorts of industries for a long period of time. And I'm agnostic to the situation I find myself in. So when I work with an organization that's at the cutting edge, I start with a core of what their cutting edge is. And then I start to follow the clues out to particular scenarios on the future. And when you find yourself out on a limb like that, as often as I do, you realize that you can't mess with the scenarios. You can't just find yourself in a place, so I don't have a picture of the future. I have a tool kit that allows me to follow a path to a particular future, but you can't mess with it. You can't go look at other scenarios. When you find yourself out on a limb like that, what you need to do is track back to the core, take on board the new information, and follow the logic again to its natural conclusion. And a very small change in input data can leave you in an entirely different space on the spectrum. And by the time you have identified a number of these scenarios, what will happen is you'll start to understand some of the key characteristics of the future and where you need to go. When you understand the key characteristics, you can set up early warning systems. You can identify that if it's going towards scenario two, these are the things to look out for. If it's going towards scenario five, these are the things that we're more likely to see coming down the line. That allows us to validate or eliminate scenarios as time goes on. So in looking into the future, you're not looking for a hard point to chase down. You're looking to be more aware of what's happening. The other thing that looking into the future allows you to do is drop some of your sacred cows. If you think there is an alternative in the future, then I think the point was made. You can treat certain things that you do more like cattle than like pets. I'm going to use that one again. So you're continually redefining the focus. I'm going to take one scenario on the softer side of the spectrum and I'm going to run through a thought experiment on that.


What's going on guys? It's your boy DPJ here today with another Destiny video and today I'll be new top 5 Sniper in Plays of the week. If you guys do enjoy the video hitting that like button is much much appreciated. Let's aim for 4000 likes that'd be absolutely epic but guys I hope you do enjoy the video. Submit any baddest clip you've got to the email or just link to the top of the video description and I'll catch you guys on that next one. Heavy ammo inbound. Heavy ammo available. Fuller? Yeah. Ready? Last one. That's two. Oh my god. Four kills, four kills, four kills. I knew it was coming. Supremacy. Alpha team. One kill. One crest. Make it happen. Double kill. Triple down. Look at them fall. Firefight like that since Twilight Gap.


House of Representatives Speaker called U.S. President a liar. His actions are shameful. U.S. President Joe Biden used the country's migrant crisis as a bargaining chip to reach agreements with Congress and misled the American people for months. Speaker of the House of Representatives Mike Johnson wrote on X. For months, the President and his White House have claimed they need a new law to take any action on the border. That was patently false and they knew it all along. They have clearly misled the American people, he wrote. It is now apparent the President kept the border open as a bargaining chip against Congress and lied about it for months. His actions are as shameful as they are dangerous. As I've said for months, in public and private, communication with the White House and the American people, the President has ample authority to take a range of actions to stem the flow of illegal immigration. He has a moral and legal responsibility to do all he can to try to reverse the catastrophe he has created. The House Gop Leader's blatant questioning of Biden's ability to serve as President shows how the report could be a gift to Republicans even though it does not recommend charges as the 81-year-old Biden battles voter discontent regarding his age while facing re-election this year.


Naval Air Station Sigonella's fleet mail center has been preparing for the high-volume, fast-paced workload that comes with the holiday season. They handle not only the mail of the Sigonella community, but serve as the hub for the postal needs of the Mediterranean. Mr. Smith, Naval Air Station Sigonella's postal officer, explains the holiday rush from his perspective. Well, you know, it's like a football game is the way I like to compare to it. Throughout the years are regular season, but now it's playoff mode leading up into the Super Bowl. And Super Bowl being Christmas Eve, that's our big thing, and that's the opportunity that we have to continue to provide that morale support to the community. Sergeant Stephen Brown, a clerk at the post office, understands the personal and emotional importance of mail delivery for service members overseas during the holidays.  From Naval Air Station Sigonella, I'm Petty Officer Luke Askew.


Juarez, Mexico, July 28, 2019. In a parking lot, a group of Mexican and Indo-Hispanic men strap long pink teeter-totters onto a pickup truck. One of the men climbs in with them. My name is Romulo Arell. I am a partner in Studio Arell San Patello. We are the designers of the teeter-totter wall project that we installed on the West Mexico border near El Paso in Juarez. The three teeter-totters vibrate as they drive down a long road. We saw several sites where there were communities along the wall. We looked for places where we could insert a teeter-totter into the wall. We also tried to do this, asking permission by Homeland Security and Border Patrol agents working with arts organizations. And none of it really came to fruition. And then in the summer of 2019, we had the teeter-totters constructed in Juarez. We invited friends on the U.S. side. There was a village and community that we were very familiar with on the Mexican side and this is how an event happened that day. Raelle and the others carry the teeter-totters down a dirt road, hurrying toward the slatted steel border wall. With people gathered on both sides of the wall, Raelle slips a teeter-totter between the slats and sets it into place. People quickly climb on and joyously move up and down. Immediately, I don't think there was one second that passed and then all the kids jumped on these teeter-totters. They play on three teeter-totters, as others look on. Supported by an adult, a young Mexican girl beams. You know, when you think about a teeter-totter in a park, it can be an animal, you could be riding a tiger or a caterpillar or something, but they also vibrate colors. They're meant to be like you're imagining yourself riding on something and so we're imagining what that would be. We've also talked about this wall being simultaneously a space of joy and a space of horror. Two armed soldiers in desert camouflage walk past Raelle as he bounces on a teeter-totter. Moms and kids playing created a different kind of space, right? Once we were in a space of violence and then we were in a sanctuary and so the play just continued. Kids and adults bounce up and down, sharing teeter-totters through the border wall. What does it mean to walk into the spaces of violence and to understand that within those spaces of violence, life must continue and what is life without joy? The wall stretches into the distant mountains, next to a village on the outskirts of Juarez.


The long awaited Samsung Galaxy S8 has arrived at Appalachian Wireless. Get yours for the introductory price of just $149.99 with a two-year service agreement. Better service, bigger savings. That's today's Appalachian Wireless, an East Kentucky network company. This morning, more than 220 senior citizens gathered at the Knot County Sportsplex for the 2017 Kentucky River Area Development District Senior Games. Seniors from eight counties competed in several categories from the softball throw to basketball to cheerleading just to name a few. And organizers say it's all about keeping them moving. The games are important to keep the seniors active and let them know that we support them, that we want to keep them moving and going and that we're there for them. The majority of officials running the games today were actually Kentucky Power employees from around the region. Kentucky Power has been a sponsor of this event for about 15 years and it's something that our employees enjoy. They volunteer their time to participate here. We help set up, we help run the games. You know, they just really enjoy it. It's a good chance for us to be a community partner and give back. The oldest man competing today is 89 and the oldest female competitor is 92. But don't let the ages of these athletes fool you. The competition in every category today was fierce. If you don't set out to win, it's not as much fun. Reporting from Knot County, I'm Shannon Deskins for EKB News.


Here we are talking about what kind of validity issues can be seen in assessment, so first of all talking about the types of validity. Validity is not a single static, it is a body of the research that demonstrates the relationship between the test and its behavior, whatever we are intended to measure. So there are basically three main types of validity, the first one is content validity, then construct validity and then criterion related validity and overall there comes a face validity. So content validity assess whether a test is represented of all aspects of its construct. If we are talking about construct then construct is something which has an additional meaning to the concept. Now concept could be the same, just if the chair concept is the same across the world but construct can see an added meaning like we can say its shape can change, its dimension can change. Similarly if we talk about the justice, the concept of justice is same, the construct of justice could have an additional meaning and in every society or culture, the construct of justice can be different that what kind of justice we are talking about. So to produce the valid results the content of a test, survey or measurement method could cover all part of the subject which it is relevant to measure. So our content if it is claiming that it is going to measure aggression, it should only measure aggression yet not any other content or just its items are measuring the same dimension. Then the construct validity, construct validity as I say that when we talk about construct then it has an additional meaning because it can change from society to society from culture to culture. So basically what we are going to measure is specifically we are measuring it. It is central to establish the overall validity of the method like it is not that we are making a scale of eating disorder and we are also looking at dieting beliefs. It should strictly retain to the DSM criteria which is based on eating disorder items. Criterion related validity is a general term to describe how well scores are being measured either they are predictive or they can be criterion. So the two different types of the criterion validity is predictive validity and concurrent validity. So criterion validity means that there should be a certain criteria and how we will use it by saying that this is predictive validity or that is concurrent validity which I will explain to you. Predictability, when we talk about that there is a certain criterion available and predictive validity what will happen is that when the criterion may be obtained at a time after the test. Like we have a certain criteria and we say that in this test all the students above 100 will cross that students will be intelligent students in our academic program. So this is our criteria or we say that if an individual is scoring above 120 on IQ test it will be a very genius individual. Similarly we can predict different types of predictive validity that these students will pass or fail in the future. This individual will be an intellectually good genius individual and this success will happen in different assignments. So we can determine this with predictive validity. Concurrent validity occurs when criterion may be obtained at the same time at the test score. Like we have a criteria and we say that at a certain level we can say that this is mild depression. When scores go up in that criteria we say that this is moderate depression and then this is high depression. So in this way we can assess different things using criteria on the basis of that criteria and that is called concurrent validity. Now the overall important thing is face validity. Another method which is used although it is used rarely but it is very very important because first of all face validity is very important. It means that if you have developer question it should look like a question. It should not look like MCQs. It should not look like multiple choice items. It should not look like two falls. It should look like a questionnaire as you have developed it. So when we are talking about this component the test of the happiness appears to actually mayors level of happiness. If you are giving a happiness test and you read it then its items are claiming that it is measuring different levels of happiness. So it should measure what it looks like to be measured. This is called the face validity.


Hello, everyone, and welcome to today's Byte Cestok. I'm happy to introduce to you Julia and Nicolas, and they're going to talk about NF Validation. So I'm handing over now to you, Julia. Thank you. So hello, everyone. We're going to explain this new plugin that we implemented in next load. It's called NF Validation. And we use it for pipeline parameter validation. And for this, we use JSON schema. So first of all, before starting, why is it important to validate parameters? So you may know that next-flow pipelines can accept different parameters, either through command line or through all the config files. And this is not validated by next-flow. So if, for example, your pipeline expects a string and the user provides a number, all your pipeline will run until this value is used, and then it will fail. So that's why it's important to have some previous steps to validate parameters and avoid possible errors. This in NF Core was already implemented using this JSON schema. And actually, all the NF Core pipelines have these validation steps in the template. Because if, as a pipeline developer, you would have to validate these things manually, it would be a huge chunk of code. And yeah, and so we use JSON schema, as I said. And this JSON schema looks something like that.  It has some formatting. And then under these definitions, we have groups because you can organize your parameters by, for example, input parameters in a list, like organize them in different groups. And then inside properties you have, for example, in this case, foo, it should be string or bar, which should be string. This is, like this file can get very long. So the advice is to never edit it by hand. So in NF Core, I think there's another bite size talk about that. But in NF Core, you have this common NF Core schema build, which will open a web tooling, which helps edit this JSON file, this JSON schema. And it's like a drag and drop. So it's very easy to edit it. And you don't need to be careful with the formatting and so on. And then another thing that is new from this plugin is that you can also, so this JSON schema can be used for different things. For example, we also use it in NF Core website. But it can also validate other kinds of files. For example, sample sheets, which usually they are used in pipelines to provide inputs. So it's usually CSV or DSV file, where you have your sample ID. And if you provide files, you can have each column providing one file and maybe some metadata from samples or things like that. So you can also have a sample sheet. Sorry, a JSON schema to validate this sample sheet. The format is more or less the same as the one that I already showed. And the structure, where every, so you have, it's tiny bit different, but you also have properties. And inside properties, you would have the name of each column in your CSV or DSV. And it can also validate YAML files. So in this case, you would have the name of every entry. And then you can also have type. And you can validate different things. Like for example, in the case of being string, you will validate that the provided value is a string. Or you can also provide a pattern if it has to end with dot faster or things like that. So we'll go now. This was a little bit fast. But so I think we have other websites about JSON schema, which are more in detail. But for time now, I'm going to talk about the NF validation, the plugin itself. So this plugin takes all the code that it was started in NFCore. So if you have checked the NFCore template at some point, this is how the pipeline template looks. And you have here a lead directory. And then here we store some group code. And for example, this file is the one that validates next row parameters. So this was taken from here from the NFCore template. And based on that, we started the development of this plugin. So how to use it is very easy. Like all next row pipelines work, you can add in your nextload.config these plugins. And then you add the name of the plugin you want to use and the latest version. With this, that's all what you need. Then this will be installed with your nextload. And then in this case, it contains different functions that can be imported in your main.NF or in your nextload script. And you only need to use include the name of the function that then you can use in your script and from plugin NFValuation. Then these functions we have here, we have different ones. And so I will quickly go through them as a kind of summary. We have Params help, which is used to bring the help message for a pipeline. So just to show. OK, so you would use. Now I'm using launch.sh because the last latest, latest version is not released. So that's running my local copy. But usually it would be nextload run. And then if you have this in your nextload.config, you don't need it anymore. The name of your pipeline. And then we can run help. This uses JSON schema that I talked about to print the help message of the pipeline. OK, doing something again. If it's not working. Yes, perfect. Yeah, so here you see the help message with the usual command and then the parameters. Those are the sections where they are organized. And then you see the name and some description. Also the type of value. Then we also have Param Summary log on Param Summary map. This to work very, very similar. And they are used to print. So usually if you want to run a pipeline in NFCore, at least we print a summary of the parameters that change from the default at the beginning of every run. In case a user needs to check what they provided. This is generated with this function, Param Summary log, which provides this list of parameters in text format. And Param Summary map works exactly the same. But instead of returning a text format, it returns a map. And then we also have validate parameters, which is maybe most important here, which is the one that does the actual validation of the parameters. So in your main NF, you can use the function validate parameters. And then if you use this function before starting the execution of the workflow, it will fail in case there's some error before starting all the execution. And for example, here it says the parameter that you provided called input. It's sample sheet text, and it doesn't match the pattern CSV, DSVOM. And also it's a file that doesn't exist. It's also validating that this file should exist. So I'm going to show as an example how this looks. So that's the current template without using the plugin that we have in NFCore. And as you see, we use this chunk of code, which is initializing and also validating all the parameters. And then here I have the same template but modified in order to use the plugin. So here I imported the functions. And instead of... So before I had this initialized, which was using all the code inside lib. In this case, this has been modified and we don't have any more in the NFCore schema.gruby. And I have the code to print a help message and here the function to validate parameters. So if I run this pipeline again, the test, for example, it should validate all the parameters. And now we will see first the summary of parameters that I mentioned before. OK, so as you see, because I didn't provide the outdoor parameters, which is required, I get this error before starting any execution. So now I provide this parameter. And yes, so that's the description of the parameters that are different from the default. For example, you can see which input file you provided. And then now the validation passed and our pipeline started. Good. So and then the last function that we have is from sample sheet, which is creating, is reading the sample sheet, the input sample sheet and creating a channel. And I will leave this for the end because Nicholas worked on that, so he will explain about this. Also this thing, so that's also a new thing that we have now with this plugin. You can have schemas inside schemas. What does this mean? Is that in your original Nexlo schema file, for every parameter which is a file, you can have this new key called schema. And this one references to a path of another JSON schema. In this case, it's a JSON schema which will validate the input sample sheet. And this will also, now you'll see it when Nicholas explains more in detail, but so it's automatically whenever it detects that there's this schema key in a parameter, it will try to read the file provided by this parameter and then validate it using this JSON schema. And I also have a different example here for Erwin Isik if we see the main code. And that's exactly the same that I showed before where I import the functions. Also bring the help message and validate parameters. And Erwin Isik was one of the first pipelines that got this input schema. It was just like a proof of concept. And this is pretty old, like it started implementing this sometime ago. And now we have it implemented with a plugin so all pipelines can use it. And so basically here you have the columns of your sample sheet. In this case, sample ID, FASTQ1, FASTQ2, and Strandness. So this will automatically validate the content of the input. And if I go... Okay, I was gonna try to run this pipeline but maybe I'm talking too much and it's a bit long. So that's it. That you know that you can now automatically validate. And that's what works for sample sheets but also for any other kind of CSV or YAML file that you would like to validate. It doesn't have to be the input specifically. It will validate any of these files. Yeah, so now I will hand over to Nicholas if he wants to show this from sample sheet. Yes, let me share my screen. Okay, so I'm gonna show you a real quick example of how to use the from sample sheet function. As you can see, I have a simple pipeline here which validates parameters and then converts the input parameter sample sheets to a channel. I'm going to run it real quick. As you can see, I also use the non-sochelle bash script because the version is not released yet. So if I'm running this, you can see I get some outputs which is the channel inputs. This output has been made from the sample sheet CSV. As you can see, it has the name, surname, the likes and pictures from certain persons. For example, the first line Harry Potter, the full path to a text file, which has his likes in it and a full path to a directory which has pictures in it, which correspond to his likes. I use this sample sheet to validate the schema to validate the sample sheets. As you can see, all properties are inside of an items section. And you can see the name, surname. I had an ID number which isn't in the sample sheet but you see if it isn't in the sample sheet that the automatic key go to no. Then it has the likes which has a format file path and it checks if the file exists and also pictures which is directory which also contains the key dependent required. So if likes is not given but pictures is given the sample sheet validation will fail. I'll show an example of this. So for example, if I remove Harry Potter's likes and rerun the codes, you'll see an error which says that the likes fields should be defined when pictures are specified. And then it also shows which fields are not defined because you can also add way more fields to it. And yeah, I think it's a very nice error message. You can also specify the unique which will can take a Boolean or a list. If it's Boolean it will only look at the field itself. So all names should be unique if it's true. If you give a list to it, for example, surname all fields should be unique together with the surname. So for example, I can't specify Harry Potter twice. So you can see this. Oh yeah, it also gives the error for the likes fields which is not specified but as you can see the combination of name with field surname needs to be unique. And you see which combination is the one that clashes with not being unique. Okay, so this is a real small example of how the from sample sheet works. One small thing to note is that the unique and dependent required field parameters actually only validates if you run the from sample sheet because these are specific for the sample sheet conversion won't be validated using validate parameters. All the other schema fields will be validated using validate parameters. One other nice thing with from sample sheet is that it will create meta fields which are immutable from start. So I have a bit of code here to show you this. So if I try to change the name of every character to Voldemort it will fail because it cannot change the value in a meta fields. Oh, of course I have to make sure my sample sheet passes first. So as you can see cannot put items into an immutable map. This can cause problems though and some pipelines which are already built around this concept. So you can disable it using the optional key immutable meta by defining false. The default of this is true as you can see. If I define this and run it again I will be able to change the name of every character to Voldemort or it should do that. Apparently it does not. I don't know why. You can also do it with a parameter. Let's see if that works. It does not work. Okay, so normally that should work. I think I made it type or somewhere or something. You can find this all in the documentation of the validation plugin. Okay, and you can also specify from default this from sample sheet function will go to the assets schema input to the JSON schema file to convert sample sheets to a channel. You can also specify which schema to use by using schema then path to schema. It's weird that it's not working. So I'll try it again. Yeah, okay. Weird. Yeah, that's it for the from sample sheets conversion. Any questions? Thank you very much.  I just wanted to share the last slide. I'm so sorry. No, no, it's fine. And just to share the point, why am I sharing now? So just a quick thanks to Phil and Kevin, Kevin started this code in NFCore and also to everyone on NFCore who contributed to this either by testing or reviewing documentation especially. And yeah, just to share some important things that you may want to check. So the repo of NF validation is in next flow. And here you have these documentation that I have been also using. It's a very nice documentation and pretty extensive. And also we have this Slack channel which is shared in NFCore and next flow called NFValidation. And also last thing to mention is that this will be coming soon in NFCore template in the next release. The parameter validation and also optional, not mandatory, but optional, obtaining this simple channel from sample sheet. And I think that's everything. Thank you. Thank you again. There was someone who had a question, I think, who wanted to join, but you can now unmute yourself, also start the video if you have a question. Hi, thank you for this presentation. It was very nice. I was wondering, Julia, will you be adding a schema built command for the sample sheet too? A schema, what sort of, can you say it again? And NFCore schema built command for the sample sheet. Okay, yes, exactly. That's not existing right now. So now we have this tooling to create the next flow sample sheet for parameters, sorry, the next flow schema for parameters but not for sample sheets. And yes, there's the plan to add it and highly probable to move all this tooling out of NFCore and make it also as a standalone. But I guess I can't actually estimate the date because that's quite a bit of work. So we'll see. All right, thank you. Are there any more questions from the audience? It doesn't seem so. In that case, I would like to thank both of you and of course the audience for listening. And as usual, the John Zuckerberg Initiative for funding our Bitesite talks and just a very small thing. This will be the last Bitesite talk before our summer break. And we will let you know when we commence after summer. So thank you very much, everyone.