Yeah, we should just do a quick overview of what is it we are trying to do. So there is this fuzzy logic tool application. There is already a similar example running on the website. Go check it out if you haven't done so already. It's over here. You can play with it. That's a human alone and has no noise options. So currently we are adding fuzzy logic features to it and it looks like this. You can add the noise level to the ECG waveforms. There are some preset waveforms generated in JavaScript. Just using basic math functions. You can turn the noise all the way down. You have the human score, so you can click on it yourself. There is instructions at the bottom. Go check it out on the website. You can play it. This one is a normal ECG waveform. So when I do not click on it, I get a reward in the shape of points. It can't give you any other rewards. So that was a hit because that was abnormal ECG. This one also missing a bit. So when I click on it, I get a hit and 10 extra points. Same with this one. I'm not sure. It's the same one. I think there is a 60-40 ratio between abnormal to normal. That's a normal one. So I do not click on it and I get another 10 points. Click on it as well. Every 50 points, the speed will go up. And on the right side here, this is the new thing, is a machine learning what our fuzzy logic algorithm is doing the same task. So it's not cheating. It doesn't have the labels. As I said, the waveforms are being generated in JavaScript. The fuzzy logic is actually running in the back end Python code. So it doesn't have the labels. It's only getting the raw data in the same way as you see it on the screen. It gets the numbers for the waveform raw values. Now, it's currently not doing very well, as you can see. That's because we just changed that earlier today. Removed one of the features that we were looking at. So we're looking at frequency, amplitude and peaks, positive and negative peaks. And the abnormality score down the bottom here is the output of the fuzzy logic system. We decided to get rid of frequency. Well, mainly there's two reasons. So first is that it wasn't actually doing much. Second, we only look at a single PQRST complex. So there's no frequencies. So there's no, for example, peak to, it was at the R to R distance for continuous waveforms. We're looking at each complex, QRS complex individually. So frequency didn't make sense. We are still looking at amplitude, but we give it a low priority, mainly looking at positive and negative peaks. And now we also added R peak sharpness value. But we still working on that. So originally we just had normal and abnormal values. And we had just arbitrary, assuming it's normalized between zero and one, it would take below 0.5 and above 0.5. But now that didn't work quite well. I'll go into details in a bit here. These live streams, it's all about the details. So beware. So now instead of just two membership functions, we're adding three, low, normal and high. We are probably not normalizing it. So the R peak sharpness, it's actually the distance halfway through the peak. So this sharp peak gives an sharpness of 26. And there is another example of not so sharp R peak that should give a larger number there. And it's not coming yet, this one. And that didn't work. Okay. So and obviously we've noise, the whole idea is that we have noise thing should become worse. So then even if the algorithm is performing well without noise, then you can add noise to it and see how performance drops. One of the rules for us is not to use any magic numbers. So all these membership functions, if there are two, we just divide that 0.5. If there are three, we do a three way split equals split. So for example, in this case, it's wrong. We'll get the bots doing the coding for us. And start in a sec. So we get GPT4 and GitHub co-pilot. GitHub co-pilot normally doesn't have much context. So it's making a lot of mistakes. Whereas GPT4 tends to be generally much better for us. Popping the code quickly. This is the waveform generation. There is only a bunch of them that's four or six. There's essentially two variations for QRS complex, a regular waveform. And examples of where one of the other waveforms in the ECG signal is missing. So no P wave, no S wave, no T wave. And later we might be adding more examples as we go. So that's another thing. You can never increase noise and see how the algorithm is performing performance drops. Or you could add more waveform examples and see how it affects performance as well. We have the game logic actually does all the scoring, measuring the score and everything. So all the measurement of the score is done in front end. And all the fuzzy logic done in the back end. So the fuzzy logic to port doesn't have the labels. So they isolated from one another, as you would expect. So when you play against the robot, you would not be complaining that the robot is cheating or something. Okay, so this is the end of the Python script. Okay, so we shared all the code with you. We would like to, we would like to fix a few things. The big sharpness is not working well. We get a value of 27. We always get a value of 27, and it doesn't change much. Sometimes it's 25. We need to check how that a function is doing, we'll need to improve on it. Now also the peak sharpness value is not being normalized. Yes, all of a sudden it went all the way up to 85. So there's something wrong with that calculation. Have to check it out, improve the code, a go over the membership functions. Also the peak sharpness, we want it to be three levels, a low, normal, high, instead of just the normal and abnormal, we'll have to modify the a fuzzy logic rules to reflect that change. Hopefully we don't get a time out from a GPT or anything. Yes, we have two main concerns. The R peak sharpness calculation is not varying as expected and needs to be refined to provide a dynamic range of values. Okay, that's one. The R peak sharpness values need to be normalized and the membership functions in the fuzzy logic system need to be adjusted to reflect three levels, though normal and high, rather than just normal and abnormal. Okay, I mean, yeah, we could normalize it. That will be easier. I think yeah, normally normalize between zero and one, don't you? So I think that's reasonable. The R peak sharpness is intended to measure how sharp or pointed the R wave is on the ECG waveform. The calculation seems to be using the width of half maximum as a proxy for sharpness, but if it's always around 27 or 25, that suggests the calculation isn't sensitive enough to changes in the waveform. Yeah, that's right. So we need to improve this. We should look at the calculator underscore R underscore peak underscore sharpness function. The issue could be due to the way the half max crossings are identified or due to the filtering process. A more robust approach might be to examine the slope of the waveform at the R peak or to find a more sensitive measure of the peak's narrowness. Yeah, we can look at that straight away. We will need to sort it out a calculate. Yeah, we have to calculate our peak sharpness function. Just find it in the code. No, where is where is it? The line 400. We already have like too many. There's a lot of the code is commented out. We'll get rid of it in a sec. So we're doing, yeah, so we're applying a basic filter to reduce noise. It's a basic butter wharf. I have to check it might not be working correctly. Yeah, in this sense, the port is cheating, isn't it? Because it can filter signals. So I'm thinking for the human and also overlay the filtered version of the signal. We might do it later. So it's finding the R peak and then doing the distance between the right and left crossing. So it's going halfway through the peak should be fine. Then the, yeah, so I'm getting 24 for this sharp R peak and 25, 24. Okay, that's, you know, the noise could add the variability and then I'm getting 97. So it's actually working pretty well. I don't know what, I don't know if it's changing over time, essentially becomes better over time. Is there any overtime changes that are being made? I don't think so. You have to check that filter. We'll have to check that filter. Yeah, I have people, there's always someone saying, you know, when you're working on ECG, someone will say, I'm not interested in EEG. When you work in EEG, someone say, you know, they want the other one, maybe we should do both at the same time. But then someone will say they want the PPG something, which is also something we are interested to look into. But this is mainly just an example of how fuzzy logic works. Instead of doing like a general, you know, like a textbook example, we actually apply it onto this synthetic data, onto this EEG scoring game that we already have running. Okay, so let's just, we want to fix it and make it available for you to try out on the website, essentially compete with the robot. Let's do that quickly. R peak sharpness issue. We want to normalize it as well. Just go with the board. It's normally does not do mistakes in the beginning of the development session. So we might turn sharpness score. I just comment it out and use the new one. Normalize as well. Yeah, the numbers are now very low. 0.03, 0.04. And that's expected to be the same. And then 01. Okay, why? F doesn't go. This function calculates the sharpness based on the width at half the maximum height of the RP, which is inversely proportional to the sharpness. If the RP is very pointed, this width will be small, and the sharpness score will be high. Yeah, but it's way, like, well, first the numbers generally are way too small. Next, for normalization, you can use min max scaling based on the observed range of sharpness scores or standardize it based on the mean and standard deviation if the data is roughly normally distributed. Yeah, so it's not normalizing it yet, is it? The membership functions can then be adjusted in the fuzzy logic system to reflect these three levels. You need to define the universe of discourse for the RP sharpness and set appropriate trapezoidal or triangular membership functions based on the normalized scores. Once you integrate these changes, you should see more dynamic and realistic sharpness scores and better performance from your fuzzy logic system. If you need more specific guidance on the normalization process or fuzzy logic adjustments, please provide additional details about the range of RP sharpness. Okay, sometimes GPT4 goes into this error generating response state, and you can actually continue. So you can have a regenerate the response, which I'm happy to do. I'm just not sure it's gonna work. I'll just refresh the page quickly to continue generating. See if it's still on topic. Maybe, maybe not. Yeah, I was saying GPT4 is better in this case because it's more because we're doing more general stuff. We can edit the last prompt as well. Now it got stuck on us. Yeah, that interface is not great, is it? At least when we refresh the page it lets us continue with the chat. So I might do that. Okay, 0.4, 0.3. There should be one that gets something else. Let's do this one. Then we have the 0.1 or something. Yeah, this one. Okay, so with these two examples, it is not behaving as expected. Or is it? Can you double check? Also, the numbers are very low. How can we fix this? Yep. Yeah, I think it's broken. Yeah, that's another thing you cannot do in the Github copilot, can you? That's thinking forever. Doesn't look promising. Don't let us fix, try and fix the code manually. It's not gonna be fine. Okay, it's really stuck, is it? Right, now it's working. Based on the images you've uploaded, it appears that the R-peak sharpness calculation is producing very low values. The R-peak sharpness is intended to give an indication of how pointed the R-peak is on the ECG waveform. A value that is not very much or is too low may not be providing useful information for distinguishing between different waveform shapes. Yeah, that's right. How can we fix it though? Review the calculation method. The calculation of R-peak sharpness should be reviewed to ensure that it correctly identifies the R-peak in its sharpness. If you're using a width at half maximum as a proxy for sharpness, make sure that this is the most appropriate measure. You might need a more sensitive measure, such as the derivative of the R-peak to measure the slope or other morphological features that could be more indicative of sharpness. Yeah, I thought the distance between the two should be fine. What's wrong with that? So it's finding the maximum peak and taking half-way distance. I'm pretty sure this... Yeah, can we get rid of these two? Sharpness, cool. I need that. Don't wait, wait a sec. So not do the one over. Just do the width. Yeah. Right, so we get 97. Yeah, the rules are not working because that 97 is way outside the 0 to 1 range. That's fine. Okay, we get 97 and 91, which is not much of a difference. Is it 24? Yeah, there's something wrong with it, isn't it? Maybe there's something wrong with that filter. We should display the filtered data. I mean, we could do it for... You know, if the bot having access to filtered data, then the human should have it as well. And yes, that could make your labelling, human labelling more a bit easier, depending if how well the filter is working. Consider the scale of the measure. If the sharpness values are too low, it might be due to the scale of the waveform data or the calculation method. Ensure that the units of measurement for the waveform data are appropriate and consider scaling or transforming the sharpness values to a more useful range. Okay, if we're scaling, why do we need to transform? Normalization. Normalization is crucial to ensure that the sharpness values are comparable across different waveforms. Normalization should be done based on a known range of sharpness values observed in the data. For example, if sharpness values typically range from 0.01 to 1, you can normalize these values to a range of 0 to 100 for better interpretation and use in the fuzzy logic system. Well, ideally we would not even need to normalize. Adjust fuzzy logic membership functions. Once you have a proper range of sharpness values, you can adjust the membership functions in your fuzzy logic system to reflect three levels, low, normal, and high. Make sure that the universe of discourse for the R-peak sharpness includes the entire range of observed values after normalization. Implement debugging statements in your code to print out intermediate values used in the calculation of R-peak sharpness. This can help identify where the calculation might be going awry. In case we have some suggestions. Remember, these are conceptual sketches and will need to be adjusted based on your specific data and the range of values you observe. The key is to ensure that the measure of sharpness is sensitive enough to reflect the actual variation in the sharpness of R-peaks across different ECG waveforms. We're using the epsilon 4. It sounds a bit... it's just a constant number, is it? No, I'm not talking about the message. I'm talking about the actual A sharpness score to avoid division by 0. I don't think that's the problem. All just marks. We have a scaling factor. No, we don't want to do that. Get rid of that. Normalization. Yeah, for this, we need to know the mean and max values. Okay, the first suggestion wouldn't work. We don't have an issue of dividing by 0 as it is. So that's fine. A normalization. I don't want to do specific normalization. Isn't doing a 1 over the value is, in a sense, normalization. The other main question is why the numbers do not make sense. Or maybe they do. Okay, in the normalization function, the sharpness values have to be saved somewhere. Is that correct? Yes, in the normalization function, the range of sharpness values across your dataset needs to be known. This range is used to scale the individual sharpness values so that they can be compared on the same scale. The normalization process typically requires knowing the minimum and maximum sharpness values observed across all waveforms you're analyzing. So do we need to use the back end for storing these numbers, do we? Well, because it's simulating eventually a situation where you just connect the device. So in an ideal sense, you'll be just taking your ECG recording device and connecting it online. So it uploads the data, streams the data onto, well, obviously, bionicchaos.com, not any other website. If the sharpness values are low and not varying as expected, it could be due to the method used to calculate them. Since you've mentioned that division by zero is not an issue, we should look at the calculation itself. If the width at half maximum is consistently producing similar values for different waveforms, it might not be the best measure of sharpness for your application. The ECG waveforms you've provided show significant r peaks, and the sharpness calculations should reflect the differences in these peaks. If the sharpness values are not varying, it suggests the measure is not sensitive to the changes in the waveform that you're interested in capturing. Let's consider another approach, calculating the sharpness based on the slope of the waveform and the r peak. The slope will give us an indication of how quickly the signal rises, which is a direct measure of sharpness. Here's a revised concept for calculating r peak sharpness using a derivative. No, I mean, that number actually works, now that that's suggesting a major change. I'm starting to defend the previous algorithm. Yes, so with these values, what should we be scaling? What should we be scaling the... Wow, keep pressing F9 instead of print screen. I already have this one. Anyway, those two should be enough. No, I mean, maybe we can do both later, but just continuing with the previous approach of the distance at the half height of the peak, looking at the current examples that I added. What should the scaling be like? All right, if we're sticking with the half max width as a measure of sharpness for the r peak and not changing the fundamental approach, then scaling is our next best step to make the values more interpretable. Looking at the examples you've provided, the r peak sharpness values are consistently low, and this is after the inverse operation which theoretically amplifies differences. The scaling factor will be used to expand the range of these values so that they can be more easily distinguished when used in the fuzzy logic analysis. To determine a proper scaling factor, you will ideally analyze a range of ECG waveforms, calculate the r peak sharpness for each, and observe the distribution of these values. Given that you may not have access to a broader range of data for this analysis, you could consider a heuristic approach. For example, you could determine what you consider to be a sharp peak in clinical terms and what value of width of half max height corresponds to this. Once you've established a benchmark, you can define your scaling factor relative to this benchmark. Yeah, we don't want to have a magic number for the scaling. Set a target range that you wish your sharpness values to fall into. For example, if your current range is from 0.01 to 0.05, if you want the values to span from 1 to 100, then your target range is 1 to 100. For example, if the largest sharpness value you currently observe is around 0.05, and you want to scale this up so that similar peaks reach a value of 100, your scaling factor would be 100 divided by 0.05 equals 2000. Now we don't want the 2000. We potentially can do 10. Let's just do 10 over there. Right, 0.38. Those numbers are more like it. And 0.4. 0.41. Okay, that's fine. 0.4, 0.1. Here I have 0.4 and 0.1. These do the trick. Okay, we just changed the code to this to have 10 instead of 1. Now the values seem to be correct. I get a 0.4 for a normal waveform and 0.1 for a wider peak. Can you adjust the membership functions accordingly? Yep, that quickly. With this change, a sharp R peak that has a narrow width at half maximum will yield a higher sharpness score after applying the scaling factor. Now, for the fuzzy logic membership functions, if you're getting sharpness values around 0.4 for normal waveforms and 0.1 for wider R peaks, you need to define your membership functions to reflect this. Here's a possible setup for your membership functions. We have it suggesting this simpler, a calculate R peak sharpness. Let me try it quickly. 0.4, 0.1. It's actually, it's cleaner. Yeah, I want to see how it works with more waveforms. So we get a 0.1 for this and 0.4 for normal one. That should be fine. Now, for the fuzzy logic membership functions, if you're getting sharpness values around 0.4 for normal waveforms and 0.1 for wider R peaks, you need to define your membership functions to reflect this. Here's a possible setup for your membership functions. Okay, we have those membership functions. Oops, no. This bit sharpness. Not called that, but okay. In this setup, the low category captures the wider R peaks, medium, captures the normal range, and high captures the very sharp R peaks. The triangular membership functions overlap, meaning that a sharpness score could belong to both low and medium categories to different degrees, depending on its value. This is typical in fuzzy logic, where crisp distinctions between categories are not made, and elements can partially belong to multiple categories. Okay, this to be normal. Make sure that you define these membership functions within the context of your fuzzy logic system, and then adjust your fuzzy rules accordingly. For example, a rule might be, it should have a rule using this thing, rule seven, the all low. If to this control, I, it's actually doing that. So then the OR operate abnormality likely with the rules. We need Egypt to have all the code anyway. That error before didn't make sense. Now it's gone away. What? It's weird. We have low, normal, high. Yeah, check those rules. Yeah, this one. What do we do up normal? That's wrong. This is wrong as well. Yeah, because we changed the code. Let's see if... The error message you're receiving indicates that there's an inconsistency in the definition of membership functions for R underscore peak underscore sharpness. In the code, you're trying to access a membership function named abnormal, which does not exist. To correct this, you should ensure that the membership functions you reference in your rules are the same as those you defined. As per your request, you've changed the scaling factor for the sharpness calculation to 10, which seems appropriate. Now let's make sure the fuzzy logic rules align with the membership functions you defined, low, normal, and high. Here's how you should define the fuzzy logic rules based on the membership functions. Okay, so we have this, what is it? Seven rules now. Rule one was if peaks too few or too many and the amplitude is not high, could be just the amplitude is low, which will be different. The abnormality is likely too few, normal, likely. Yeah, those two rules probably could be combined, couldn't they? Okay, normal, normal isn't likely. Rule five, let's read this. We are now using the correct labels for the R underscore peak underscore sharpness membership functions. We use high and low to denote abnormal sharpness, assuming that both very high and very low sharpness values could indicate an abnormality. Adjust these conditions based on what constitutes an abnormality in the context of your application. Make sure that your fuzzy variable abnormality also has the correct membership functions defined, unlikely, possible, likely, and they're being used consistently in your rules. After making these changes, your fuzzy logic system should work without throwing errors related to undefined membership functions. Remember to test your system with a variety of input values to ensure that the rules and membership functions are behaving as expected. A couple of things aren't rules and five are essentially the same. Please confirm so I can get rid of one of them. Now rule six, the two suggested is the same as rule seven that I already had. Please confirm. Yep. You can safely remove one of them. Here's the combined rule. Rule two checks if there are too few negative peaks and not a normal amount of positive peaks, then it's likely to be abnormal. Rule seven, the old one, checks if the R underscore peak underscore sharpness is either too high or too low, then it's likely to be abnormal. They're not the same because they check different conditions. Rule two is about the number of peaks, while rule seven is about sharpness. However, if rule seven is intended to flag any sharpness extremes as abnormal, it is similar to the new rule six, which uses the updated membership function names, high and low. You should keep rule seven if it contributes to the decision making in a way that is distinct from the new rule six. If they effectively represent the same logic with the updated membership function names, then you can replace rule seven with rule six. Ensure that the rules you set up are capturing the distinct scenarios you need to evaluate in your fuzzy logic system. Each rule should correspond to a unique combination of conditions that you consider important for the analysis. The error message you're receiving indicates that there's an inconsistency in the definition of membership functions for R underscore peak underscore sharpness. In the code, you're trying to access a membership function named abnormal, which does not exist. This error would be an easy fix. You always say that and then spend another hour. Based on the area you're encountering, it seems that there may be a set of input values for which none of the rules are firing. This can happen when the input values do not sufficiently activate the term set in the antecedents of any rule. In fuzzy logic, it's important to cover the entire input space with your rules to ensure that any possible input will result in some degree of activation. Review the membership functions, make sure they cover the entire range of possible inputs. There should be no gaps between the ranges covered by the membership functions. Review the rules, ensure that all conceivable combinations of inputs will trigger at least one rule. If there are any gaps in coverage, add rules or just existing ones to fill them. Default rule, consider adding a default rule that catches any input combinations not covered by the other rules. This rule would typically have a lower confidence level and would serve as a fallback. Here's an example of how you might implement a default rule. Now, considering the updated rules and membership functions, let's ensure they're correctly set up. After making these changes, test your system thoroughly with a variety of input values to confirm that every possible input scenario results in some rule activation and that the system no longer produces the sparse system error. Hash ensure that the input ranges for the fuzzy variables cover all possible values. Amplitude, AutoMF, 3, hash this automatically creates low, medium, high membership functions. Okay, I didn't know you can do that. Enable to resolve rule execution, order. There's two more rules that depend on each other. So if I, that's automatically generating rules, automatically populate the universe with membership functions. Number of membership functions to create the fully automated use supply 3, 5 or 7. Any number may be generated if you provide an appropriate size list of names. Quality, Quantity, Variable is essentially a default for impedance circles that the error, what's up with that window? It's not great. The error message you're encountering unable to resolve rule execution order suggests there's a circular dependency in your rule definitions. This can happen if the antecedents of some rules are consequence of others in a way that creates a loop, which makes it impossible to determine the order in which the rules should be evaluated. Get the sharpness now works. Okay, so we can get rid of all the rodent type functions. Check for circular dependencies, review your rules to ensure that there's a clear cause and effect direction. Each rule should have a distinct antecedent, cause, and consequent effect, with no loops back to the cause. Rule graph visualization, if your fuzzy system library supports it, you can generate a graph of rule dependencies. This visual representation can help you identify where the circular dependency might be. That would be nice. Simplify rules, simplify the rules to break dependencies. You may need to refactor some rules to prevent any one rules outcome from directly influencing its own activation in a loop. Simplify rules, simplify the rules to break dependencies. You may need to refactor some rules to prevent any one rules outcome from directly influencing its own activation in a loop. Order of rules, define rules in an order that ensures that the output of one rule is not immediately used as input to a rule that would affect the first rule's input. Let's look at the rules you've defined and try to identify any potential circular dependencies. From the rule definitions it's not immediately clear where the circular dependency might be. All rules have distinct antecedents and consequence. However the default underscore rule is using the negation of the abnormality consequent as its antecedent which may create a circular dependency if it affects the inputs to other rules in a way that wasn't intended. To resolve this you can modify the default rule to only consider the inputs rather than the outputs of other rules. This rule is very silly. Suggested by the pot it was a hallucination was it? Positive peak if not normal. Positive peak is not normal and the amplitude is not medium. Abnormality is possible. It sounds more likely. If the issue persists after revising the default rule you may need to look at other parts of your code where the fuzzy variables are used to ensure that there are no other unintended dependencies. Big sharpness. Normal doesn't exist. We don't actually use normal or abnormal. Should get rid of it. No, we are using it for the decision but not for this. Here we have low normal high. That's right. GitHub co-pilot can do something useful. It's great. Not actually running the app. It's a good idea to run it. Now it's working again. Anyone wants to test it for me? That's not correct. That's cool. No, it's not correct. Getting false admis for that. It's getting better over time or something. I don't think so. It should be normal. It's not doing great. Check the rules again. Please do let me know if there's any questions about viability. chaos.com is meant to be in the interactive session. Ideally you would have tried their website already. Any comments? More than welcome. Yeah, don't particularly care for likes or subscriptions or clicks or whatever. I do want the comments. Your feedback would be greatly appreciated. Yes, it will be great to have a better way to visualize the fuzzy logic detection, how the fuzzy logic algorithm making decisions. That would be awesome. Now, can you wrap up this session? If you want to be funny, go for it. But not too funny. Also, you can touch on the following. Yes, we're currently working on ECG today. But if I'm more interested in EEG, we were using fuzzy logic or trying to use fuzzy logic before to detect the seizure in a clean EEG. But we're also curious about using it to ignore noise in real-time. Yeah, real-time should be much faster than neural networks anyway. So real-time is actually a good use case for fuzzy logic, I would think. Let me know what you think and maybe a comparison to a component analysis method, which, yes, in terms of what assumptions are required for EEG, and then finding the pattern against the specific course of action. Not sure what that means, but yeah, maybe the bot has some ideas. Give some overall stuff as to how to improve what we did today. So we will do this tomorrow and then any overall statements as to how this tool might be used. Yep. Yep. Yep. Yep. Yep. Wrapping up our session in a not-too-funny but light-hearted biomedical engineer manner. So, we've been diving deep into the EEG's squiggles today, haven't we? It's like trying to interpret an abstract art piece where every line could mean normal or code red. But seriously, the fuzzy logic system we're tweaking is like that friend who doesn't overreact to every little thing. It's calm, it's collected, and it only raises an alarm when it's truly warranted, a valuable trait in both friends and algorithms, if you ask me. Now, if you're interested, shift from the heartbeats to brainwaves, moving over to EEG, that's a whole new ballgame. Seizure detection in EEG data is like finding a needle in a haystack, especially with all the noise. But you're right, fuzzy logic could shine here since it's all about handling uncertainty and imprecision, perfect for stormy seas of EEG data. And speed. Fuzzy logic is Usain Bolt compared to neural networks, which can be more of a marathon runner. Comparing fuzzy logic to principal component analysis, PCA, it's like comparing an improvising jazz musician, fuzzy logic, with a classically trained pianist, PCA. Fuzzy logic rolls with the punches, making decisions on the fly based on the vibe of the data. PCA, on the other hand, is all about rehearsal, finding the perfect linear combination of variables that best explains the data, given its assumptions about linearity and statistical distribution. As for finding the button against this specific course of action, let's assume it means challenging the status quo. In that case, fuzzy logic doesn't just push the button, it writes a whole new instruction manual. Improvements. We're on the right track with scaling and refining the membership functions. Tomorrow, we can look at tweaking the rules further, maybe consider other input variables, or bring in new data to fine-tune the system. In terms of broader applications, this fuzzy system can potentially be a game changer for real-time monitoring in clinical settings or wearable tech, providing quick, interpretable feedback without the computational heft of deep learning. It's about making smart, fast decisions, which, let's face it, is a universal good, whether in medicine or choosing what to binge watch next. Alright, let's call it a day. And remember, in the world of biomedical engineering, the only constant is the pulsing line of a new challenge. Keep your senses tuned, and let's crack it tomorrow. Okay, yeah, the pot could be a much better YouTube channel host than myself. Let me know. If you want to co-host a YouTube channel, I'll see it more. Bye.


Hi and welcome to the session. Let us discuss the following question, question says, find magnitude of A vector cross B vector if A vector is equal to i minus 7j plus 7k and B vector is equal to minus 3i minus 2j plus 2k. First of all, let us understand that if vector c is equal to c1i plus c2j plus c3k and d vector is equal to d1i plus d2j plus d3k then cross product of vector c and vector d is equal to determinant of vector i, vector j, vector k, c1, c2, c3, d1, d2, d3. This is the key idea to solve the given question. Let us now start with the solution. Now we are given A vector is equal to i vector minus 7j plus 7k and B vector is equal to 3i minus 2j plus 2k. Now cross product of A vector and B vector is equal to determinant of vector i, vector j, vector k, 1 minus 7, 7, 3 minus 2, 2. Now expanding this determinant with respect to R1 we get vector i multiplied by minus 14 minus minus 14 minus vector j multiplied by 2 minus 21 plus vector k multiplied by minus 2 minus minus 21. Now this is further equal to vector i multiplied by 0 minus vector j multiplied by minus 19 plus vector k multiplied by 19. So we get vector A cross vector B is equal to 19j plus 19k. Now we will find out magnitude of A vector cross B vector it is equal to square root of 19 square plus 19 square. Now simplifying further we get square root of 361 plus 361 we know square of 19 is equal to 361. Now this is further equal to 19 multiplied by square root of 2. So we get magnitude of A vector cross B vector is equal to 19 multiplied by root 2. This is our required answer. This completes the session. Hope you understood the solution. Take care and keep smiling.


What's going on everyone? Sam here with late in sports cards ripping one box of 21 Panini mosaic football hobby for Scott G. So good luck here Scott. See what we got in here for you buddy. 21 mosaic.  John L. Way mosaic man of the year. Red, Tom Brady nice one there. Fields debut rookie. Ellinger Palmer. Oh yeah got it. Got it? Oh god. Turned it up. Curt Cousins. Pink nice one there. 249. Hey happy birthday Vivian. Short's his daughter. Happy birthday. Hope you had a great day. I know you ripped some Pokemon with your dad yesterday. It sounds like fun. Joe Montana. There's Damian Harris. It's actually first box 259. Zach Wilson, rookie. Travis Kelsey. Of course of course. Tyler Wallace Silver. Blue Chip Silver, Trey Lance. Trey McKinney. Patrick Sartan. Funkadelic man that's awesome. Glad it's catching on unfortunately. There is Tony Rookie Mosaic for the Giants. Collard Murray. That was Forrest yesterday. Yes it was. The video from Forrest yesterday. Blue Chip's T-Law. Whoops. Center stage, Ryan Tannehill. Hunter Longs. Simi Fahoka. What is wrong with you first? He wanted to jump it on the front. Yeah of course. Who doesn't? Jaylen Phillips on the Mosaic autograph. Not numbered. Nice one there for the Dolphins. Josh Jacobs Mosaic. Silver Patrick Mahomes. Nice one there. Wilson debut. Collins, Noah Gray. DK Metcalf. There is Ben Skarnik on the red Mosaic for the Rams. There's Cam Acres. Nice one there. On the Overdrive. Smith Marseille. Ben Skarnik. Patrick Sartan debut on the Mosaic for the Broncos Rookie Buddha Baker Red. Silver Montage Dub and Cook. Not really. That's Patrick Sartan. I don't really, I don't buy boxes very often. Like once in a great while. Trey Lance. There's Aaron Jones Mosaic. Little Herbert Rookie Mosaic. Tom Brady. We got a blue Baker Mayfield Straight Fire. Four of 99 for the Browns. Devonta Smith. Trey Nixon. Aziz Ojalari. I'm shopping I'm sure like they would cut me a deal if I wanted a box but very rarely. I buy a lot of singles from the shop though. I like doing that. That's my favorite. I'm a stack of singles I gotta take home tonight actually. They've left here since Tuesday. Marcus Allen. Silver Russ is Meta Mastery Tom Brady. Nice one there. On the Mosaic. Marseille's debut. Audienbeau. Javonset-Williams. Should have an auto in this pack I believe. Should be. Blue Peyton Manning. Nice one there. That is $2.99. Silver Justin Fields debut. In it to win it. Malcolm Butler. Fierce Ann and Scridge. I think we might have gotten shorter in auto. Do we get two or one? I think we get two for box. Hold on a sec. We're just gonna run through it Scott. Yeah it wasn't another one right? Think so. Updates here. I believe we do. Yeah Virgo. Update Jumbos or Hobbies or whatever. I think we may have gotten shorter in auto so I do apologize on that one. Scott we'll send you the empty box and wrapper just in case. It does say on average. We'll send it to you just to be sure. So thank you again there Scott. We'll get that right out.


Hi, I'm Zor. Welcome to Unizor Education. Today we'll talk about a particular kind of refraction through a prismatic lens. Okay, now first of all, let me just make this standard introduction. This particular lecture is part of the course, which you can get from the Unizor.com website. The course is called Physics for Teens. There is a prerequisite course, which is called Math for Teens on the same website. The website is completely free. There are no ads, no strings attached and well, each course contains a set of lectures organized in certain parts, in certain topics, in certain individual lectures. There are some exams also on the website. What's very important, every lecture has a textual part. Basically, it's like technical notes, but it's like a textbook. So you basically have both. You have the video presentation and the piece of a textbook, which is related to this particular lecture. Now, yeah, that's it. So let's talk about refraction. We did define two very important properties of light, reflection and refraction. Reflection we started before. Now this lecture about refraction and the previous lecture basically defined what a refraction actually is and in two words, that's a change of direction, change of trajectory of the ray of light when it goes through a border between different media. What's very important is that the speed of light in one media is not equal to speed of light in another media, for instance, air and glass. So whenever the ray of light goes from the air to the glass and then from the glass to the air, it changes direction on each border and each boundary between two different media. Now, this is used very extensively in lenses. So everybody knows what lenses is and I will talk today about one particular type of lens. Well, probably the simplest one. It's a prismatic lens. So what is a prismatic lens, triangular prismatic lens? So let's just use this. Okay, let's say you have a right triangle and you have another right triangle and you have this. So this is a right triangular prism. Okay, now when I will talk about changing of the direction of the light propagation, I will use the ray of light which is perpendicular to one of the either the back side or the bottom side. Anyway, the side which actually is connected to one of the catheters. Not this one. But whenever the light goes, let's say through the back, from the back it's perpendicular to the plane and then whenever it reaches the front plane of the prism, that's actually when it goes at the angle to the surface of the prism. So the surface of the prism is inclined and the light goes straight. So there is an angle here. And if there is an angle which is not equal to 90 degrees, not perpendicular, then there will be a change of direction. Now we did talk about the perpendicular to a surface ray of light. It does not change the direction, just change the speed. But when there is an angle not equal to 90 degree between the surface and the ray of light, surface means the boundary between two different media like glass and air. Then the light actually is changing the direction. Now, whenever I will do all these calculations in this lecture, I will obviously use much, much easier presentation instead of three-dimensional one. I will just cut the whole thing which is by the plane which is parallel to the side. And if this is the point where the ray of light actually hits the back surface, I will use this particular section. So I will basically investigate only what's going on within this section because the light doesn't leave this section. And I will consider obviously the two-dimensional picture. So the next thing is to draw a nice picture. Now I did draw a nice picture on the website and I will use the same letters to the points. Okay, here it is. So let's assume this is my y-axis and this is my x-axis. So this is all. Now my prism would be positioned this way and the light goes down. This is the direction of the light. Now what happens with the light after it hits the plane which is perpendicular? It does not change the direction, just the speed. So now the light goes with the speed within, well, let's say this is a glass and this is air. So this is the light going through the air and its speed is, well, almost the same as in the vacuum. But then when it goes to the glass speed reduced. Okay, now here we have already a non-right angle between the light and the plane, between the two media, between the glass and the air. So it's supposed to change trajectory according to law of refraction. So you know the law of refraction, that was a previous lecture. Now i is incidence, r means refraction. Now n i is equal to c divided by vi, speed of light in the vacuum, speed of light in this particular medium. So this is air, this is air and this is glass and obviously nr is equal to similar thing. Now the speed of light here is speed of light in the air and that's basically vi. Now speed here is dr and speed in this air is again the same as before which is vi. But now what is theta i and theta r? Well these are angles with, angles which trajectory of the light makes with the normal to a surface it hits. So this is a normal to this particular surface and it's called mn. Okay, this is the point b, this is the point e and now what happens with the light? Well this is angle theta i. Now the light is supposed to make an angle theta r with this normal. Now let's just think about the speed of light in the air is greater than the speed of light in the glass which means that corresponding refraction index in the air would be less. So this one incident light would be the glass should be less than this one so this will be greater. So the trajectory of the light is here and here and this one will be theta r. So this is an incident and this is the refraction. Now I have two different tasks here. Number one I have to find out by how much the trajectory of the light is changing after refraction by how much angle is deviated. So this would be my delta. So delta is deviation from the original direction. So that's number one which I have to determine. Number two I would like to know what's this particular distance. Let's call it y and let's call it x. So I would like to know what's the dependency of the distance from the point when refracted light hits the y axis this distance from this distance. So I'm thinking about if I will change the location will this location change as well. Well the answer is yes questions by how much. So these are kind of calculations which I would like to basically make. And before I may call the calculations let's just think about the following. Now first of all we have to define our prism I define it by angle alpha. It's basically the property of the prism right. So alpha is given because the prism is given which means everything else is given. It's the right angle. So this is 90 degrees minus alpha. Now what's also given also given these guys these are characteristics of the environment. So I know what's the refraction index of air and what's the refraction index of glass. So whenever my incident is within the glass I know what the glass is and refraction is the refraction index of the air. So I know these characteristics it's physical characteristics. So based on this what's my variable. Well the only variable is x basically. So it depends on how far from the let's say base of the prism let's call it base. How far from the base of the prism the rail light hits this particular prism and how much location at this point depends on location of this point. Okay let's start with an angle. Now first of all first statement alpha is equal to data y. This is theta i this is alpha. Now this is perpendicular to this and this is perpendicular to a normal right it's normal it's perpendicular. So these are two angles with with mutually perpendicular angles that's why they're equal. Now the second observation this thing this angle is equal to qi as well. Why because they are vertical. This is continuation of the normal and this is continuation of the trajectory as it would go without refraction. So that's why I immediately see that my delta is equal to theta r minus theta i delta is equal to this angle which is theta r minus this angle which is equal to qi which is equal to alpha. All I have to know to find delta is to find qr and qr I can find from here knowing qi and knowing and one and r and qi not q that theta i sorry theta i I know what it is. So from this particular equation I see that theta r this one is equal to well not theta r sine of theta r is equal to ni divided by nr theta i or ni divided by nr alpha because alpha and theta i are the same thing alpha is given because the prism is given and ni and nr in this particular case ni would be the incident with the refraction index of the glass and and r would be refraction index of the air. This is the this is the glass this is the r. Now the glass has by the way has a refraction index something like I don't know 1.7 or something like this. So it's 1.7 times slower than in the vacuum air on the other hand is almost the same as 1. I mean it's greater than 1 but just a little bit. So that's why this is greater than 1 and that's why this particular angle is greater. Now I made a mistake here it's not again it's not theta it's sine of theta sorry about that sine of theta i is equal to ni divided by nr sine alpha. Okay so that's how we get the qr now qr is equal to arc sine of ni divided by nr of sine of alpha. So knowing ni and nr and knowing alpha I know theta r and that's why I have the delta. Now what's very important right now to notice that this delta which is this minus alpha so let me just change this delta deviation minus alpha so deviation from the original direction. So if this is the original direction this is continuation where the light is not going light goes this way so delta is deviation of the angle. It does not depend on the position of this particular point x. So all the parallel lines of trajectories of light propagation if they are parallel they will be parallel here because the angle of deviation will be the same so parallel lights are reflected refracted to parallel rays of light. Okay so this one will go straight and then parallel to this one but obviously further down the further down I go along the x along this particular side of the prism further from the from the base the further from this point will be the intersection of my ray with y axis. So parallel lights are refracted by the prism this particular prism into parallel. Now let's define actually what let's determine what exactly this value y is. Well basically everything it depends on the fact that I know delta I know this angle right. Now this which is called let's put it letter c here and d here. Now what's obvious is that oc is equal to this particular what's the letter which I'm using e okay this is letter e this point. So we can say that oc is equal to ed oe is equal to x angle is equal to alpha because these are two parallels and this is the intersecting one so it's opposite angles with two parallel and and intersection. So I can determine lengths of oc which is y as a difference between bd and ed. Now cd is also equal to x obviously right this is all x oe is x cd is x because this is perpendicular to this parallel to y. So this segment be I can find from this triangle obe knowing it's a right triangle so I know one cactus and the angle and this lengths bd I can find from bcg triangle again knowing angle and this side and the difference between bd and be will give me y okay so let me just do this way so y is equal to oc is equal to bd minus ed now bd from this triangle bcd okay what is bd divided by cd is cotangent of delta so that's why bd is equal to cd which is x times cotangent of delta now be now that's my bd right now um bd minus no I'm sorry that's again that's wrong be so bd I have determined now be from this triangle that's x this is opposite category so it's tangent so it's x times tangent alpha from which follows y is equal to x times cotangent delta minus tangent alpha alpha is known this is the angle and delta is related to alpha and and the indices of refraction like this so this is the final formula now as you see it's proportional to x which means if I will double the x my y will be double so that's why actually it represents the parallelism preservation of parallelism of the rays of lights which are coming into this type of prison perpendicular to this particular surface after they refracted by that surface so y is proportional to x this is coefficient of proportionality rather complex coefficient I mean just imagine cotangent of this minus tangent of alpha it looks ugly but nevertheless it's some kind of a number number which depends only on the qualities of the glass air and angle of the prison now obviously you understand that the direction would change exactly the same way regardless of the fact how this part of the prison looks so what's important is this angle and this angle so as long as it's perpendicular to this one then we can count only on this one if the original light is not perpendicular then what well it's very easy actually if the angle is something like this what we do is first we can do proportional to we can do parallel okay let's do this I can always split a prison in two if I have something like this and the light goes at the angle I can always split the prison in two right so first it would be one particular this is from air to the prison which means from faster to slower and the angle would be less then it goes within the glass this way and perpendicular to this it would be even greater increasing so the light will go so it's basically two different prisms right triangular prisms attach to each other and that's why you can just calculate first the deviation here using this formula and then deviation here and then the sum of these two angles would be the total deviation of the angle by this particular prism if the light is at the angle but what I did was kind of easier just I just considered only one particular prism only this one and did it once so for different kind of angles which are following on the surface of the prism not perpendicular to this surface you just have to split prism in two and calculate twice the deviation on one particular surface and then deviation on another surface exactly using exactly the same formulas obviously but obviously you will have incident and refraction reversed the first time it would be from air to to the glass so it will be air and glass and secondly it will be glass to the air so this will be glass this will be air so that's why the change of the okay that's it basically that's all I wanted to talk about prisms now what's interesting about the prism is that it retains the parallelism now what we don't actually need well in most of the cases we need to focus the lights the ray of lights into one particular point so I would like to change the geometry so instead of having this prism when this light goes to this and this goes to this different points I would like somehow to make it the same point how can I make it the same point well I'll probably have to have different I have to have different angle here and then it will be this way so if this would be let me just make it a little bit better so if this is one angle and it goes to this point and this is a different angle which actually makes the angle with the with the normal this is normal so this angle will be greater than than than this one so deviation would be greater so this deviation would be greater than this deviation and that's why I can expect they will focus in the same point so that's why we have uh convex lenses but that would be the subject of the next lecture okay thank you very much I suggest you to read the notes for this lecture the notes have much better picture than I was just trying to to draw and in colors and all the formulas are basically there obviously so it's like a textbook very useful so read that thing and the next lecture would be about the curved lenses convex lenses thank you very much and good luck


Okay, this one right here. This little thing attaches to the toys. It's like a body armor, but I could not find one like it. So I went ahead and priced this kind of high. And you know what? It sold really quickly for my sale price. Hey, fellow buddies. Thanks for watching. On my little pony. Amazing, right? All right, let's get started. Hey, fellow buddies. Thanks for watching. All right, in this video, we are gonna talk about my bread and butter bolos items that I source cheap and flip for a profit. I'm gonna tell you where I got it, what I paid for it and what it sold for it. My channel is all about bolos. I've got big money bolos. I've got bread and butter bolos. I've got featured members. I've got category videos where I gear in on a specific category. So if you guys want to learn about items you should be looking for to resell, definitely check out some of my other videos. Let's get started. There we go. All right, the first item I sold here is this dollhouse. It's a black and white octagonal flooring for a dollhouse. How cute is this? I did pick this up at an estate sale. I paid up a little bit for it. I paid $4 and for me, that's paying up. I ended up selling this for $35 and the buyer was all in for $44.35. So it's two sheets here. One of them was missing the top. Definitely a vintage item and very, very hard to find, I would say. And somebody was just looking for it. Can you imagine your little dollhouse bathroom floor? How cute would that be? The next item I sold is this Ronkenbach trail, I'm sorry, train monorail. So I have sold these before. If you can find the Ronkenbach, it is definitely, definitely a bolo. I found a huge set at a garage sale probably a year or two ago and I sold it pretty quickly and for big money. Now, this one I picked up at the Goodwill Benz and I had no way to test it. So I just marked it as untested. Somebody made me an offer of $10.30 and I went ahead and took it because it was untested. Hoping it worked for them, but if it would have been tested, I could have gotten a lot more for this. So definitely be on the lookout for that vintage brand. The next item is this lace. This is just a mixed lot of lace. I'm guessing some of its vintage looks like kind of applique type deal. I don't know where I even got it. I can't even remember. I just threw it together in a little bundle and somebody offered me $10 and I went ahead and took that the buyer was all in for 1727. When I say the all in price, that is with tax and shipping. I don't always say that, just so you know. All right, this is a little Maxim Ruby tie beanie baby plush. So this is Max the bunny and he has no tag. He was picked up at a garage sale for 50 cents. He's got his tush tag. He just doesn't have the little TY or tie tag at the top that's attached to like the ear. So I got it at a garage sale for 50 cents and I sold this for $12 plus shipping. The next item is these go-bots machine robo spoons, Taiwan variant, I don't know. I used a Google lens to figure this out. These are definitely not something that I was familiar with and I did not write down where I got it and what I paid for it. So I apologize. I wanna say maybe these came out of a mystery box because I had not seen them before but I do remember looking them up. They sold for 22.75 plus shipping. The next item here, I almost just donated. They're stencils and they're creative memories. And I was like, you know what? They're creative memories and everything that I have that is creative memories has been flying out of my store. So I listed them.  So I probably have about a dollar in these, all four of them. And I sold these for $14 and 30 cents plus shipping and they sold pretty quickly. This item here is a Christmas on the beach dimensions. Now this is a gold collection, which is something you definitely wanna be on the lookout for. Some of the gold collection can be a big money bow low. I actually have a video on cross stitch kits that sell for big money if you wanna check that out. This one, however, is a petite. It's very, very small and it is not a big money bow low. I ended up selling this for $10 and 50 cents plus shipping and I picked it up at a thrift store for $2. So I knew that it would sell. I thought it would actually sell for a little more but still made a profit. The next item is this Fisher Price Loving Family Dollhouse picnic table and I sold this for $6 and 50 cents plus shipping and the buyer was all in for $12. But somebody reached out to me the other day and they're like, what do you think about the Loving Family Dollhouse stuff? And I said, I feel like the market is kind of flooded and prices are down. I feel like people are selling it too cheap which I sold this for $6 and 50 cents which normally I would like to get more than that but this one didn't comp out high. So I have two huge totes of Loving Family and I'm just kind of holding off on it for now because I feel like eBay is flooded. So kind of wait and see how that goes and eventually I'll get it listed. The next item here is this Jazz Wears Laura Ashley Room by Room Dollhouse. Now, I believe I picked this up in a dollhouse lot like a Loving Family lot. I can't remember for sure. It could have been in actually, you know what? It might have been in a little garage sale bundle. Yeah, it was a bundle of toys at a garage sale, 50 cents. I ended up taking a best offer on this little guy for $12 and I used Google Lens to figure out who he was. He is not a Loving Family. He is Jazz Wears. So super, super cute and I wasn't familiar with it. So Google Lens. And if you don't know how to use Google Lens I do have a video that teaches you how to do that. It is free. You just download the app to your phone and it will help you identify things. It's incredible. This Barbie here, I just wanna say that I am super impressed with my photo. This photo was taken on my porch on concrete. And I used photo room and I'm like, oh my goodness, this looks like a stock photo from a store. I just thought it turned out incredible. But you guys, if you're not using photo room, what it does is it whites out your background. And I have laid stuff in my driveway, like big huge blankets. I used to have like a white board that I would lay on my floor that my husband made me. Now I can just lay things on the carpet, take my pictures and you would never know that stuff was laying on the carpet. It's incredible. And it's really not that expensive if you pay for the year. And you can get 10% off the year if you use my link in the description of the video. So that link will give you 10% off but you have to buy the yearly subscription to get that discount. But it's worth it. And if you do YouTube, it's also great for thumbnails. All right, let's move on here. Okay, so where did I get this? I got this at the Goodwill Benz and I sold it for a best offer of $16. The buyer was all in for $24.22 and it sold really quickly. So you can see here, you can even white it out when you're holding it in your hand. I do have some photo room videos if you guys wanna check out how it works but you can edit your photos and bulk, which is incredible. This is a plush dog that I picked up at a garage sale for a buck and it was in the original packaging. So that's how I took the picture. I wasn't gonna take it out of the packaging. It's an Aurora Mayoni stuffed plush toy. And it's a dog and I sold this for $15 best offer plus shipping. This right here, I pulled out of the Goodwill Benz and there is another brand. I can't think of what it's called. It's vintage but some of these go for big money. When I first saw this, I got kind of excited because I've sold one of these before for big money but this one was not a big money one. I ended up selling it for $19.50 plus shipping. It's still good. I think the big money one is by Toomey or Tommy, T-O-M-Y. This one is just Waterful's Kahoot's toys. So the brand does make a difference but they will still sell if you find the generic and this is pretty big. It's about eight inches. So it's a water toy. The next item is this teeny tiny vintage Polly Pocket Doll Petland Bunny from, it's a bluebird, Polly Pocket. So bluebird is the vintage. This is from 2000. This came out of a thrift store mystery box and I sold this for $7.80 plus shipping and you can see it's got like some paint loss and it's not perfect. It's old and played with. This here came from a garage sale. It was in that garage sale video I did. I sold this for $22.75 plus shipping. She is a Barbie clone. Peggy Ann Burnett and she says Hong Kong right here. I think, or wait, right here, right here. It even says Peggy Ann. So this one was really easy to identify. The next item here are these Disney figures and these came from a garage sale. I paid $1 for them. I got a whole bunch of little toys at this garage sale. That's really all I left there with. I remember exactly which sale it was. And I sold these for $19.50 plus shipping. Okay, this one right here. This little thing attaches to the toys. It's like a body armor. But I could not find one like it. So I went ahead and priced this kind of high and you know what? It sold really quickly for my sale price of $16.25 plus shipping. This is ImagineX. It comes from the T-Rex Tribal caveman and I was able to figure that out from Google Lens. But here's the best part. I got it at the bin. So I've got like a quarter or something in it. I dig to the bottom of the bins. If you guys watch my Goodwill Bins videos, you will see me digging, digging, digging for small toys like this. I love it. The next item is this vintage 1990 Mars Halloween pumpkin candy bucket.  I got this at a garage sale for $1 and I took the best offer of 12 plus shipping. The next item here is the Sugarloaf Betty Rubble cartoon Flintstone stuffed animals. Got this at a thrift store for $1 and I took a best offer of $10 plus shipping. Vintage Fisher Price Little People. I've got a clown and a cowboy. And these came from a garage sale and I sold these for a best offer of $19 and the buyer was all in for $26.25 on those. This is Disney High School Musical School Spirit. It's a doll right here. This is what she looks like. And when I picked her up, I remember looking it up and thinking, oh, I'm probably gonna have this a while. And it actually sold much quicker than I expected. I paid a dollar for it and it sold for $22.75 plus shipping. Okay, do you guys remember the wig? So I did a video on these wigs and I actually received an offer for this exact wig for $15 and I was kind of like, should I have taken it, you guys? I didn't take it and I had several comments that were like, you should have taken the $15. And I was like, I just feel like when I looked up comps that person, they charged not enough for this.  So I could have sold it quicker for $15 but I was patient and I ended up selling it for $20. We're talking a $5 difference, not a big substantial difference but pretty cool that it worked out for me. But I was starting to think, oh my goodness, did I mess up? Am I gonna have this wig forever? It's Vintage Global Dolls Curly Mary Frances Doll Wig and it's strawberry blonde there. The next item is this Hallmark Charlie Brown Christmas display, 50th celebration. They're like little ornaments here.  It's really a cute set. This came out of a thrift store mystery box and I ended up taking the best off for a $15 for this and the buyer was all in for $22.75. Probably had about a dollar in that. The next item is this another vintage clone doll. Now this one is only seven and a half inches. She is not as big as a traditional Barbie and she just says Hong Kong on her back. So I wasn't really sure what to call her. But somebody found her, they offered me nine bucks and I went ahead and took that and I got her to garage sale for 50 cents and the buyer paid shipping. These right here are the motorized trains. They are from 2009, they're by Mattel Percy and Thomas the train and friends. They go with the Trackmaster set. Tested and working batteries not included. I got these at a garage sale for 50 cents and I sold them for $26 plus shipping. The next item is this 1957 Whitman color kit children's color and paint set used. This took forever to sell. I mean, it's kind of a hot mess honestly but I just couldn't leave it behind. I'm like somebody is gonna want this. And they did, it just took about four years to sell maybe longer, I don't remember. I don't even remember where I got it or what I paid for it but I just, I couldn't leave it behind obviously because it's in my eBay store. I sold this for a best offer of $9 plus shipping. This here is so cute. It's a handmade wood log pumpkin fall decor kind of has that rustic look. I got this in a thrift store mystery box. Also took best offer of $14 plus shipping. The last item here is this Apple. It's a Bath & Body Works Slat Kenning company scent bug. It's a fragrance oil diffuser and I've done really good with this Slat Kenning company brand. So whenever I see it, I definitely pick it up. I found this at the Goodwill Benz actually and I sold this for a best offer of $15 and the buyer paid shipping. All right, you guys. Those were my bread and butter bolos. Tell me which one was your favorite, the most unexpected and thank you for being here. Check out another video. They're gonna be popping up here and here and down below and a subscribe button. So if you're not subscribed to the channel I would greatly appreciate it. Leave me an emoji of an owl or just write the word hoot in the comments. Thanks for watching.