So, I will get straight into it, I have just 30 minutes and open source project that is you can consider this as a backdoor open source project because I work out of backdoor office it may not be obvious from here, as you can see I work for Intuit and I have been there for 5 years and this is a project that I started on the site around 2 years back and as I hopefully demonstrate it is taken on a life of its own, it is reasonably popular and I in fact met a couple of happy Karate users right now so that is amazing to see. What I hope to do in this session is talk about how Karate can be used for API testing, I am sure all of you know what APIs are and I am sure everyone uses APIs and we in Intuit use a lot of APIs and we have this need to test them which is where Karate came from. So, I hope to put them also I am going to be a little brave and I think a big takeaway for you is that Karate is 3-in-1, it is not only a functional testing tool and you may have used functional testing tools already or you can also act as a mock server for APIs. A very new capability which I personally found very exciting, which I hope for those of you who haven't seen this because you can reuse your functional tests as performance tests which actually not many other tools can do. Q&A but I will try depends on how we progress, this is a marketing slide I want to spend too much time on it but obviously you expect from any good framework, it should be easy and fast. One thing that really strikes people who use Karate is the maintainability, very stable and as I will again try to prove if you write test using some competing framework or if you use Java or some programming language then there will be more lines at home and I will try to explain that in a moment. Little bit of background, open source as I said you know I am the primary contributor this is one and half years old as of now, it is a domain specific language and we do a deep dive into it in a moment and it is based on QCumber, how many of you have kind of used QCumber, you are aware of it. In fact at this point how many of you have the need to do API testing right now, this might get a pulse. And what are the tools that you are using, is it rest assured, how many hands, postman so that most of you have used. Are you using postman for automation of your test cases as well like using that human man and all that, probably not right. So this is where actually Karate comes in and kind of competes with postman and it is in my opinion easier and better but you can really touch on that. We are close to 1,000 GitHub stars which I think is a very proud thing again for a project that only did not exist more than one and half years back. You can see already a lot of people have come forward as contributors so your take away is that this is showing every side of being a reputed, popular, healthy open source project. And then again please do contribute if you can, at least use it. I would love for you to go back to your organizations and your friends and really spread the word because hopefully as you see Karate is pretty compelling. One data point before I get into the code and all that again, why should you care about Karate? This was almost 6 months after Karate was released. It was actually rated by one of the prominent test evangelists that it is up there with grapes. You can see all the usual suspects of automation there which was pretty special for all for Karate. So we are getting into code and this is a hello world example of Karate. So for those who haven't seen Karate, I think the first thing that should strike you doesn't look like any programming language that you are used to. This is not Java but that to me is actually one of the selling points of Karate. And for those who used to cover or are aware of BDD, there is this testing theory where you start your scenarios with given where then you have the three phases of testing. You set up something, you do something and then very important, you need assert what has happened is what we are expecting. Json. So again to repeat Karate is a framework for testing web services. All of us have heard of REST. Karate can test XM also we can talk about that. But when you have a lot of Json and most companies I am sure all of you are just dealing with lots of Json nowadays. The beautiful thing about Karate when you compare it with how would you do this in Java? You would have to put double quotes, escape all the other double quotes, put quotes around one of the keys. It's really, really hard to do. You will see examples of that. You can see Karate's design decision to kind of base itself on cucumbers, format, file structure is amazing because you just work with, it's not just Json. This is an immediate Json. That's what I call it, right? This is Json the way that JavaScript program was write Json. No double quotes needed, no quotes around the keys. It's very clean and it's very readable. I keep saying that Karate is a DSM, it's the main specific language and you can see here the thing. Look at the second word on each line.  It should immediately make sense to anyone who is working with REST. Totally make sense and that is what I like about Karate. It's self-descriptive. I'm very crisp. Another thing I like about this file is that there's no character which is extra, which is unnecessary. Everything makes sense, everything has a reason. And I keep repeating this. One of the biggest drawbacks of most of the testing tools that I have seen out there is the capability to do assertions. This is the most important thing you need to do as someone who is testing something. You need to validate data. This line is very special for two reasons. Again, this is pure Json. You can validate the entire data in one line and this is a hello world I know, but here's your take away. Even if you have this very complicated Json with a lot of nested elements, it's going to work. Karate built to a deep equal. You see the non-null? This is one of the biggest pain points for anyone testing web services. There is a lot of dynamic data that comes back, UU IDs, timestamps, random numbers. You can ignore only those things and test everything else. And that is one of the superpowers of Karate. A lot of people love this. Last but not the least, you never test one API in isolation. You will be always making a sequence of requests. Most typically, your first request is going to be authentication, right? You sign in somewhere, get a token and use that token for all your next requests. And you can see this, even though it's a simple example, it's already calling two web services, right? It's making a request for posts on the third line. And at the end, it's doing a get. And when it's doing a get, it's using data that came from the previous response into the next request. You need to do this all the time if you're testing API. And those that help you do that are needed. So how many of you don't like Java? You guys are going to love this, right? So what you see here is Json, right? Json is great. One of the things as a Java programmer that you envy about JavaScript programmers is that they just put one curly brace and they are working in pure data. Whereas this is what Java programmers are used to. This is a pojo or a class. All those getters and setters. You really need that much code in order to express that data. It's so beautiful in Json. And it gets worse. You're not there yet. You need to instantiate the class and then populate the data. Then only would you reach where you're trying to reach. This line is actually valid karate script. And it's actually doing something pretty complex if you ask me, right? It's testing whether the getters array contains a particular complex object. Not a primitive.  And this is actually a quick and dirty example. If you're writing an enterprise version of this method, you would have to accept the generic cat parameters and all that. And you can see, I'm pretty sure I've made some mistake in this code. And you know, right? And this honestly is what a lot of people do to take for testing web services. Karate came out of the pain I experienced seeing people do this using the rest session and the competition to Karate. So hopefully that makes sense. Some smart Java programmers come, they get very upset when I show them the slide. And they say, you know what, if I implement equals and hash code, I'll be there. But then I show them this. And this is something else that Karate can do. It's actually checking. Not only am I trying to find one kitten, but you're trying to find any kitten whose ID is greater than 25. That is a mathematical expression that Karate supports. I'll talk more about that. And when I show people this, they're kind of, you know, I don't get very convincing answers at this point. So you already noticed that Karate has some special capabilities. It's not, it takes JSON and kind of extends it to these macros or fuzzy matching is what I call it. You can see it already handles a few types. And I'll show you some examples. You can check whether an array contains particular elements. You can check for data types, like number or Boolean string and all that. I think it's one of my favorites. You can imagine this is really, really powerful when you have very complex data coming back. And this is a twist. You know, that's the JavaScript function. And in the next slide you're actually reusing the JavaScript function as part of fuzzy matching. This is really powerful because you can actually define all your JavaScript functions abstract. And then reuse them all across your tests. And that's pretty powerful. Keep that in mind. You've already seen that one of Karate's, I think the thing that really makes Karate special compared to the other solutions out there, the way that it embeds a JavaScript engine. That is something you should really think about. It's pretty cool. For those of you who may be unfortunate enough to be still dealing with XML, again Karate has one of the few tools that actually supports XML almost at the same level as JSON, right? So XPath expressions are no problem. One thing that surprised me personally after I created Karate was a lot of people using Karate out there or are using it for SOAP testing. So clearly there is a gap in the industry for a free alternative to maybe SOAP UI for testing SOAP and a lot of people very happy with it. I won't spend too much time on this slide but again the take away for you and something that I keep saying, Karate is really, really good at assertions on complex JSON. It has a whole lot of special constructs to assert whether an array contains this, whether an array contains partial JSON. So instead of going through all of this, I just show you one example and the documentation of Karate is pretty top notch. You should be able to figure this out. But let's say you have a JSON that is an array with two objects. You only worry about this key value there. You don't want to worry about all the other bloat that you may have on the JSON. The last line allows you to say that that array I don't find any object that has only that key value. Seriously if you had to do this in Java it's going to take you at least 20 lines of work. So it's something that you should really think about. When people see a new framework like Karate, they can get a little worried because yet another framework, I know it works for halloween use cases but you know when you really hit some complex problems but fail and you be stuck, here's the thing. Because of the way that Karate uses the JavaScript engine, it actually allows you to pull any Java code from either the JDK or a class that you wrote and then start working methods and constructors and what not on that class. And this is the amazing part. If redraws in this case returns a hash back on the Java side when it comes back into Karate it becomes a JSON. That's really powerful because what it means is that once you have JSON, Karate is one of the best engines on the planet that can assert the game of JSON. So, yes you have ready reports, if you want parts, ready reports and I can start trying to do a demo. This is intelligent so you will notice we have syntax coloring, that's a good thing. Although Karate is an alien format that is not a programming language because we have based on Cucumber Cucumber has pretty good support in many tools and you can even right click and run a test and you get that same experience like green bar, unit testing reports down that. But let me do one thing, let me show you the parallel test. Parallel testing is really really important for API's. API testing takes much more time than unit tests, we all know that we call some remote API and we wait for the response to come back. Typically, your test suite if you are doing a lot of API testing would be taking minutes, right? Karate is probably one of the few tools that allows you to start multiple threads and run all your tests. It's built into the framework you don't need to fool around with Maven or Jenkins or any other tool it's all built in and people love it and I'll just quickly show you the report. And one of the great things about Karate is that you can see the HTTP requests in line with the report. This is beautiful. Now reports are not very useful when everything is green so let me demo a report failing so I'm going to introduce a typo for the validation, refresh the report you saw by the way you know the log is pretty, the script it tells you hey there's a spelling mistake and all that if I oops yeah, it's refreshed there's one test that failed you can see which test failed very quickly zoomed in and you immediately see what failed all the reasons. You can even look at the HTTP request a percent before this it's all there. Again, I repeat not many tools actually develop this level of flexibility where you see such a good report along with the HTTP papers. And it works even when you run it in parallel. So far we've seen Karate's functional testing capabilities. You can call a service, you can get something back, you can do some 30 good assertions against what you get back. One of the things I love about the Java ecosystem is that thing in the middle it's called NASCon. Some of you may know this is a JavaScript engine that is embedded in the JDK since Java version 8 onwards. It's an amazing place of technology that is what brands the JavaScript, you know, integrating capabilities of Karate and the seamless interlock between Java and JavaScript I just love it. Without that Karate wouldn't exist to be honest. Now, I'm going to talk about two things that are surprises. To me myself, when I started Karate I thought I would end here. It's just good to have functional testing great lot of people use it. But then Karate has an ability to mock an API server. I won't show you that in a minute. And the last thing which is very, very new and really this is something you should be telling people about. There is no other open source tool that does this. And I repeat, if you are a QE person you really, if you haven't heard of this before, this should be pretty compelling. It's something I have been personally wanting in the industry for many years. And it is this. I have an existing functional test case. I want to reuse that same test case as a performance test. And Karate actually takes a design decision to just leverage Gatling for that. And most of you have heard of Gatling. I'm sure in the Java world it's written in Scala. It runs on the chain. It's a very, very good tool for performance testing. The reports are pretty awesome as well. I'll show you that. Mocking is all about it. Some of you have used wire lock. I'm sure if you are in the Java space. And I've already given you an idea that Karate has this amazing ability to express JSON in a clean way. And not just express JSON. You have this. If you see that UUID call there you can inject some dynamic nature into JSON in a very, very powerful way. That works. Because of the lack of time this demo is explained in detail in a blog post that you can find from the Karate documentation. The last two lines are using state which has been set up. The depth catch is a variable that takes a JSON. It's an empty JSON to start with. As and when post requests are coming in, that happens. And at the end when you make another call to this mock you will see the state of anything that has happened. This is very difficult to do. And here's another shocking thing which I will dare to say here. What you're looking at is actually almost like a replacement for Toncat for Node.js and Express and all that. It's a very strong statement to make. We don't care about maybe performance to that extent. But if you want to create a horrible service and reuse some complicated JSON in a few minutes this is going to work really well for you. Okay. Mock is important because in many times all the QE people will identify this. You don't have control of somebody's test environment. That service is not available. It is flaky. That's when you use this mock. You stand up the mock in your local service, all your integration against it and you know there's not more I can talk about this but in the interest of time we would stop here do quick demo so you can see what the mock looks like and let's see how that goes. And there's a mock.feature that we're going to run. Before this let me stop one of these servers I have started for a demo because that's running on port 8080. What I'm doing is I'm invoking a Karate.jar and that is a single binary X20MD that has entire Karate bundled into it. So if you are part of a team that doesn't want to touch Java you can use this way of using Karate. Alright. That's the world's fastest startup of an HTTP server and if I open in you let me know one thing. Let me open this HTML file something. You can see it's actually making requests and if I open a new tab to look at a get request to the server you're seeing all the JSON come back. It's just working. I just want to show you one more thing before I go to Katrin which is the Karate UI you can actually run a test from this interface but I'm going to show you something very very cool if you are again someone who is testing web services let me reset and introduce the type or here. What I'm going to do is something you cannot do even in Java when you debug which is I'm going to fix the test case and I'm going to re-run that step. I'm actually going to go one step back and replay it and all the state is maintained and it's green right and then I can go to the end and continue my test. This is super huge because if you are testing web services one of the biggest things you keep doing is that you would be working in the last part of your test case and you would be re-run everything from the start where you can log and sign in and you just save time here. I have 5 minutes so the last thing to demo is the Katrin demo that's going to be quick with no Katrin you know that you have to write performance test scripts in Scala and it's actually quite complex you need to know Scala really well in order to write some reasonably good test cases but you can see this performance test is actually re-using 100% two existing Karate test cases and you can run them in parallel you can define the number of users content in the world what not so this is set up and I'm going to run this right now maybe clean tests it's something the Java programmer does for a lifetime and yes it's actually kicking off a Katrin test Katrin is a separate framework but again I repeat it's one of the world's best frameworks for performance testing and I'm going to show you the reports in a moment and we are re-using Karate tests I have deliberately introduced one of the errors because remember Karate is great at assertions one of the test steps is designed to fail the way Katrin works is it prints the file of the URL at the end to the browser is a pretty beautiful port because of the Karate integration it actually tells you the line number of what failed new Katrin test and what their message was yes if you haven't used Katrin you should check it out it's pretty awesome you can drill down to all kinds of things you can see which was the slowest call and all that alright so I just did the demo my last slide again your take away is that please do go and spread the word to your teams all of you must be using web services in your organizations this is a new tool but I think as hopefully I've demonstrated this this actually a tool that shows great promise and again a plug this is a Bangalore open source project so you have every reason to contribute and you know make us proud in a sense comprehensive STTP support functional testing mocks which are very useful if you really came in for advanced testing and performance testing I have one minute to take questions or we can certainly meet after this I'll be around for some time how should you compare it with your postman compare it with postman very quickly two things assertions postman is not as good right if you have a big chase one coming back and you want to do assertions and ignore fields and if you have this complex arrays and contains things very difficult to do in postman number two reason if you wanted to automation of postman if you want to run them under Jenkins and especially to parallel testing Karate is forward thank you very much


Welcome back to the videos for chi-square testing in this lesson. In this video, we're going to go over another way that you might encounter chi-square testing. So in the previous set of videos, we had a deck of cards that was all that had equal proportions across each of the suits. And oftentimes our populations won't have equal proportions across all groups. And so in this video, I'm going to show you how you can do a chi-square test where we have different populations across groups. So here in this code, I'm calling it chi-square test part two. We've got some data on undergraduate enrollment in the College of Earth and Mineral Sciences in the fall of 22. And our goal is to compare the enrollment in the whole College of Earth and Mineral Sciences to the enrollment in one of the courses we taught during the academic year. And no hypothesis is that it's just each proportion based off the total enrollment on EMS. So we can see that each major EBF, Energy Engineering, Environmental Systems, and so on has a different proportion of students. And then our alternative hypothesis is that at least one of these is not as specified. And so we can go ahead and run the code that I've already got set up, which is essentially to read in the first week survey data. We can see that we've extracted just the majors from that survey. And then we can start by figuring out the count. So before we were doing cards, so we already knew the count right off the bat. But in this case, we need to actually extract the count. So we use this dot value counts command to do that. And we can see that we've got some other data. And we've got this energy engineering other data that we that isn't going to work with our existing data set because we don't have any proportion specified for the other or for dual majors. And so we can go ahead and update this first. We're going to account for this one dual major here. We still want them to count towards the energy engineering count, but we don't need their other dual majors so we can say dot replace. And so essentially we're just going to replace comma other with nothing empty quote open close quotation, nothing there. So we can do that. And then we also need to remove these other majors. We don't know what major they are. So we can't count them towards any of the existing majors. So we can just say that we want only the majors that are not equal to other. So that ran, and then we can recount the data this time storing it in counts variable. So we can say majors needs to be plural there dot valued counts. Go ahead and print the counts. So here we can see how our counts actually work. Now that we've removed the other and added that dual major into energy engineering. So this is our observed counts. The next step in our high script procedure is develop the existing or the expected counts. So counts exp is just counts dot some so this is our sample size of our observed data times the array of proportions. Now before our array of proportions was just four times point two five. But now that our proportions up here are different for each category. We now need to manually import each of those. And a very critical point here. The order has to be the same as the order up here. Because we ultimately are going to be comparing these two values. And so we need to make sure that the order is the same across both observations and expected count. And so I've listed the order here that is based off of this order. So we can do point 493 repeat PNG points 172 0.163 and 0.04. And these values also match what we have up here in our null hypothesis. So we can run that we get our expected counts and then we can run the chi square test. And for this purpose, I'm just going to do the one liner. So we already know how to do the randomization procedure. But in this case, we'll just do the one liner. So we say stats dot chi square, our observation we called counts, our expected values we called counts exp. And then we can print P value, which is just results dot P value.  And so we can write our conclusion. P value is less than 0.05 our significance level. So we reject the null hypothesis in favor of the alternative that at least one of the proportions is not as specified. However, this chi square test doesn't tell us which one is different. It just tells us that at least one, at least one is different. And so in order to actually get an idea about which one is different, we can just subtract our expected counts and our observed counts. And so here we can see that the most extreme difference is P, G, N, E, which had 11 more actual attendance than expected. Since the value is negative, that means observation is greater than expected. Meanwhile, the environmental systems group had nearly six less than expected. And so we can then start to make some have a discussion about which of these majors are primarily responsible for the rejection of our null hypothesis.


So today's show, I'm going to be taking callers live. If you would like to call in live and ask a question, the number is 414-897-286. Nope, 69. That is my private number, please. I, the number to call in for the show, to ask a question live on the show is 845-277-913, one. The other number is actually not even my private number, it's my business number that you call if you'd like to schedule a reading. Yeah, it's that kind of morning, isn't it? Yeah, it just is. Okay, so before I get started, I wanna say I will never reach out to you to give you a reading or ask you if you'd like a reading. So please, if somebody reaches out to you, report them, block them, mess with them. I don't know, I'll do what you want with them, but don't give them your money. Anyway, I am going to be taking callers in a moment. Callers, I will call out your area code. And my first two callers have the exact same area code, which is 216, so that's awesome.  And then also any, and then whatever question you have or connection, meaning if you wanna connect to somebody on the other side, please. I don't, you know, just the way I work, and whether you like it or not, whether you want this or not, it's not my problem if you don't want me to work this way, whatever, especially on the show, you're calling in for a reason. You're, there's something, some question or relative or loved one you wanna connect to. Have a very specific question available. Have a very specific relative you wanna connect to.  Not because I can't do that, I can. I can give you whatever. But for the sake of the show and helping the show go quickly and helping me to get through as many people as possible, just have a specific question or connection ready. If you want me to spend time going through your energy and finding whatever you need, that's fine. We'll just book a private session. And since I started working, I've always worked based on what people want and need from me as far as questions. Because I found as a child, when I just blurted things out that needed to be blurted out, I would get into a bit of trouble. Because apparently not everything is supposed to be said. And even like some people I know outside of my work life, when I tell them just what comes through, it just causes chaos and problems because people don't really want to hear what they need to hear, especially if they're not asking and I get that. I really do get that. Alrighty, I wanna say hi to a couple of people I never get to say hi to. Hey, Mario, hey, Todd. Hey, Scott. I think I do get to say hi to Scott every once in a while. I remember to do that. Hey, Scott. And of course, hi, Stevie Oliva. I hope you're having a good day at work. I think Steven's at work right now or he's just getting done with work. So for those of you who are new, Stevie's my little brother and he's 40. Yeah, 40 and nope. Yep, 40 and he has downs.  And I'm like my 40 year old brother with downs works. I don't wanna hear it. Not that I'm unsympathetic. I'm just, was not brought up that way. Like we were brought up like you work and that's just it. So yeah, so I don't know. I'm not whatever. Let's see what else. So what else do I need to say before I get started? I am on every, on most social media. If you would like to check me out on TikTok, Instagram or Facebook, I'm there. There's plenty of clearings. I did not get to my clearings this morning. I'm gonna do that next right after the show. I'm gonna put some clearings and healings up on TikTok and then share them to the other venues. I know there was something else and I can't think of it right now. Okay, let's go to callers. 216-650, you're the first caller. What's your name and where are you calling from? Hi, hello there, my name's Sharon. I'm calling from Ohio. Hi, Sharon, how are you? How can I help you today? I'm doing wonderful, been a while, so okay. I'll get right to the direct question. This is Wednesday, today is a vacation day. But Wednesday, I have my semi-annual review. How is it gonna go for me? I love my job. I hope it's gonna go well like the last one. Yeah, it's gonna go. It's honest, yeah.  I feel like everything is... I get so neurotic. I know, oh, come on, sorry. It's okay, I feel like everything's gonna flow. It's gonna be in, it's gonna go really well. I just feel like it's gonna go good. You don't have anything to worry about. I think they really like you there. I feel like everything is just gonna be good. Very, very good. And okay, so, okay, this is something, there's a woman that just stepped in. So if this happens, it doesn't happen for everybody, but if it does happen, I will do it. And my throat is starting to get froggy, or like I can't talk as well. Like, so maybe this woman, there was something with her voice or her talking toward the end, but she is a little bit more mature in yours. And I feel like she was either a mother or a grandmother, toward the end, shorter hair. And, well, the point is what she wants to say, and then I'm hearing... And grandma. Oh, thank you, thank you. And I don't know if this is someone you know or somebody else who's watching might know this person, but this might be two separate things, but we have the person who just stepped in here, grandma, and then I'm hearing the name Marjorie. So if Marjorie is not for you, or, and this doesn't have to be grandma's name, it can be somebody else's name on the other side or somebody here, but the name Marjorie's coming through. So if that's not you, it's somebody else listening, and I'll get to that in a second. So grandma, grandma, this is so weird, but grandma is saying, look both ways before you cross the street. Now this can be something that is literal or figurative. So literal means like literally look both ways before you cross the street. Figuratively means like be very careful with your choices and decisions or maybe that's just something she used to say and that's a confirmation for you.  Okay, this is just fricking ridiculous. It's not, it's not ridiculous. I've just never, it's cute. I'm going to use the word cute. She's helping you get to the other side. She's helping you cross the street. So I feel like maybe there's something going on in your life right now and it's like a busy street with a lot of traffic that you're trying to navigate. So whatever is, if there's something going on in your life right now and you're trying to navigate it or get through to the other side or sometimes we can say if I can just get through this then everything, I can't wait until this is done or if I can just, that's what she's referring to whatever that is for you.   She's helping you get through over the hump and she's saying whatever this little, this little situation is that you're trying to like navigate.  So whatever this is, please know that she is working diligently to make sure that you are looking both ways before you cross the street. Okay, that's just that message. That's what I need to say about that from Marjorie.  It could be a Marjorie, but her name, Merriam sounds a lot like Marjorie, but it doesn't matter, her name is Merriam, but it doesn't matter. Marjorie, who knows a Marjorie? It could not be for me, I don't know. But there is one little thing at work. Yeah, and you're right, it's just one thing I had, it's a particular person I'm trying to harmonize with and you're right, it's a little thing, but I see what she's saying, be cautious. Thank you so much, because I feel like there's something unexpected about to come out and if her name is Merriam, sometimes out my brain, my mind will go to the familiar name, but there could also be two women here, one named Marjorie that is also waiting for somebody else. Or it could have been an aunt, uncle, whatever, who knows. I know. But this is her, this is definitely your grandmother. And she's saying there's something unexpected that might pop up that you're going to have to kind of navigate. So kind of tread lightly is the message that I'm getting in moving forward with this situation and you'll be really, really happy that you did. I know what you mean. Excellent, thank you so much for confirming that and thank you so much for calling in and asking this question and I'm thanking Merriam, thank you for coming in and giving her this follow-up message. And thank you for giving me a response to my review, thank you, thank you so much. I needed that today. I get myself worked up, thank you. Absolutely, it's gonna go very, very well, okay? Very, very well and thank you again so much for calling in. Thank you, thank you, you have a, I wanna listen to your other readings, okay? Yeah, please stay on and do, I'm gonna be doing some clearings as the show goes on so it'll be good. You'll also be part of the clearing so that'll be perfect love, okay? Thank you, sure, no problem. Excellent, excellent. And actually, let's do the first clearing for harmonious work relationships and I get to know we don't have that so let's clear that to a yes and I know that can be a difficult situation. Let's go to two, one, six, four, oh, four. Where are you calling from? What's your name? Hey, Bernard, how can I help you today? Close, we work together too, but like every time, closer and in due time. Okay, so what I'm gonna say, Bernard, is I don't think she's afraid of getting hurt. I think that this might not be what you think it is.  You guys, I absolutely adore when this happens. I love when loved ones step in and they're so like here and let me know they're here. So this older woman was a little bit fuller. I feel like she might not have been really tall and then the man next to her had like, he wasn't full. Especially towards the end of his life, he was not full. He was maybe a little more, I don't wanna say thin, but he didn't have a big frame or big body towards the end of his life where this woman was a little bit fuller. She was at a little bit fuller. So what, and what I'm gonna say is I think that they were at one point together because they're standing next to each other and they're dressed fairly nice, okay? So I don't know why these things are important but they're descriptors and they want me to tell you these things Bernard.  That kind of cover, like the record cover, okay? And it says move on and it's like a groove. I hear it was like a groove song, but there's basically, okay, we're going through all of this just to say. You might wanna consider moving on to someone new or someone else because I feel like you are trying to win a situation that might not be winnable, okay? I do feel like, and I don't know this woman and I don't like to, this woman might not have the best intentions for you or with you. I do feel like you should keep your work relationship with her very professional and back off a little bit and find somebody outside of work. And I do feel like you are going, you have the potential to meet somebody outside of work in a month, between a month and a half. So in four to six weeks, which puts us where are we? We're in the middle of August, September, October. Middle of September, beginning of October, you have the potential to meet somebody brand spanking new.  You have never met this person before. When they say brand spanking new, brand spanking new. Somebody you have never met before. I do feel like this person coming in is, has a sassy, funny personality. Like they can do those one offs and make you laugh. They kind of catch you off guard with that. I'm gonna tell you, the person coming in is a much better fit. They are actually ready for a relationship. They're not about that push-pull game. Not that the woman at your work is playing a game. I'm just saying what I'm saying. It's somebody that knows what, the person coming in knows what they want and they're not afraid to go for it. And the person coming in actually really likes, is gonna like you and the two of you will have a good connection. So if you can let go of this thing that's going on, I feel like you will be in a really good place moving forward and the next person will be a better person. Does that make sense, Bernard? And I just, I do wanna say for you and anybody else listening, I don't think, you know, sometimes people are afraid to get hurt, but I do feel like if somebody is, I feel like you just need to really back off of this woman and get into a situation that is more authentic and that's, I'm just gonna leave that there. Okay, love. Thank you so much and your grandparents are also, I think they're your grandparents. I'm gonna say grandparents. They really want you to know that they are trying to navigate or guide you in a different direction also, okay? Thank you so much, Bernard, for calling in. I hope you have an amazing rest of the week. You are welcome. Okay, everybody, if you're interested in a private reading, T-O-N-I-G dot I-N-F-O is my website and I'm gonna go to the next caller. If you wanna call in today to have a question or a connection, the number is<PHONE_NUMBER>. I'm going to go to 305-205. How are you today? Hi, Tony, thank you. I'm doing, I had a little injury to my hand. My name is Ileane, by the way, Ileane. I had an injury to my hand and it's slowed down because I'm an artist and I can't use my right hand as well but I have the appropriate cuff on it and all of that kind of stuff and I just put a splint in my thumb. Do you see it healing fine? I have four more weeks to wear this thing. Yeah, I, you know what?  Don't push it, don't try to, just don't push it. Don't do anything you're not supposed to be doing at this time, really baby this injury. I do feel like it's a very intrinsic. Now, I feel like they're using that word because maybe where this injury is, it's very tricky and you need to really baby this injury. So please don't push it. Please be very careful with this and allow it to heal the way it needs to without being, without pushing it. That's just the word I keep getting. I hope that makes sense to you, love. I'm not lifting anything. I'm using my elbow. I'm using my left hand. I'm having other people do things to me. I think the biggest part is cutting vegetables up.  I'm working with my left hand on the computer. I'm painting with my left hand. I'm brushing my teeth with my left hand as best as I can. Yeah, so that's good.  Yeah, okay. But I feel it's healing. Yeah, it is. And again, I'm just getting, don't push it. Baby it, don't, just don't push it because I think, and you don't wanna do more damage or you don't wanna prolong the healing process. So please go very slow and don't push anything. And I hope that was helpful for you, love. Yeah, yeah. And my knee, there's nothing with the wrong with the knee either, right? It's just the knee. Okay, so I'm gonna move on to the next person and thank you so much for calling in. But everybody gets one question or one connection and please do call back next week and I'll be happy to help you with that. I'm gonna go to 347. 347, it's funny. I love, I love, oh yeah. 347, what's your name? How are you today? Hi Tony, I'm fine. How are you? This is Tanika. I'm calling from Long Island, New York. Hey Tanika, how can I help you? I actually have a question about someone that I'm interested in and I know if you could look into our situation for me. Absolutely, first name of the person you're interested in? Sure, his name is Aris. That's spelled A like Apple, R is in Randy. I is in Ingrid, S is in Sam. And I have a birth date. Nope, I don't. And he's still funny, his birth date. I don't need that love. Okay, so let's talk about it.  It's good. I'm hearing three months. I don't know if that's how long you've been together or how long until the next thing. Do, okay. So the one thing I am getting that might be a little bit something to think about. And I have to say this carefully so that you hear the whole thing. But the one thing that I am getting is that there might be the potential for other people or another person to interfere with this relationship. Now, I know the first thought that most people have is, is it another woman or another? No, no, not in the, I'm not feeling that in this case. But sometimes when you start a relationship with someone or you're in a relationship, either if your friends and family or their friends and family might carry a lot of weight in their decision. And what I would say is before you really, okay, if I'm gonna say this the right in a good way, what I wanna say is make sure that the two of you have taken the steps to make sure your relationship is very secure and you both know what you want and where you're going before you really involve other people in this situation. I think with some people, there are just certain family members that are, or friends that are never gonna want them to make somebody else their priority or give them their attention or whatever it is, okay? So whatever this is with the, and it might be on your side, it might be somebody on your side that is like feeling that way, whether it's a friend, a sister, a family member, whatever it is. But what I'm getting is this is a good connection. It has the potential to be a very solid connection. The two of you have to work very diligently on not letting other people interfere with this connection. Now what that means also is you don't go to your friends and tell them every good thing or every bad thing or sometimes anything because friends can be, and siblings sometimes can be full on haters that want what you want and are jealous of what you have and be on their own even knowing they can do things or say little things to try to dissolve this situation. I don't know what it is, but I just get that there's the potential for a little bit of outside interference here. Okay, thank you so much. I will be back Wednesday at noon for a minimum of 30 minutes until then have an absolutely amazing, absolutely amazing rest of the week.