 Hey everybody, this is Brian. Welcome to the 126-Q tutorial. We're going to call this one My Fill Turd, which if you've been following along, I'm sure this one's going to be pretty self-explanatory. That's why it's going to be pretty short. I'm going to follow the same principle here, actually the almost exact same user interface. Let's do this. Fill Turd. Now, you're probably wondering why you need a filter and a Fill Turd. The difference is very simple, yet the answer is actually kind of complex. Filter or map, as you know, will return, actually doesn't return, it modifies your existing collection or your existing sequence, where the pluraled version of that mapped or filtered will actually give you a new one. The reason for that is some things are a little bit intensive and you don't want to reinvent the wheel. If you want to make a new list, you call the plural version of that. It seems like common sense, but sometimes you've got to ask yourself why. It's just one of those niceties that the good developers have decided to add in. For that, I actually thank them because I hate, I absolutely despise writing code for the sake of writing code. Let's do this. Meaning if I've got to do some function over and over and over and it's got some for loop and all this other nonsense, why do I have to do that? Why couldn't they just add that into the class? I love things that have these little niceties about them. Same principle, we're going to shake things up a bit here. Let's say if name.toLower equal Bob or name.toLower equal and we'll say Heather then we'll return to. Otherwise, we're just going to return false. That's our basic filter and you can do pretty much anything inside of that filter. We're going to make a queue. Once again, I get ahead of myself here. We got to go back and add our concurrency to our project that actually adds in the queue concurrent and then add in our include. Otherwise, we're going to have all sorts of headaches when we go to build this. Now we should be in business. I think I've done that almost every single queue concurrent tutorial and it's probably driving you guys nuts. All right, so queue string list and we're going to call it people. We'll say people, say Mark then Heather and we'll say Bob and one more just for giggles Chad. Then we're going to UI, let's widget.clear and UI, let's widget to.clear. Very, very similar. I'm really trying to hustle through this because I don't want to waste your guys' time. Then we're going to just update the existing. We'll say UI, actually we can wait. Let's get to the heart of the matter here. Queue string list and we'll call this allowed. These are the people allowed to my party. Queue concurrent and we're going to call blocking filtered, the plural version of that. We want the sequence and the keep functor. The sequence of course is the people and they keep functored is. See dialogue, dialogue, here we go to filtered. Now, because we're kind of reiterating over things that we've already talked about and I'm sure this tutorial is not rocket science for many of you out there. Why do you need these? Why did these even exist? Think of it as if like you're going to make a thumbnail image for every image in directory. Well, that's going to take time. That's why the mapped function exists. You're going to give it a list of file names and then it's going to go through and actually give it a list of images, not file names, but you know what I mean. You could give it a string list and then actually make the files on the desk or whatever, but that's going to take time and you want to actually wait until it's done. So we're going to add the people in the first list and second list. We're going to just add the updated allowed list filtered. However, it would be like if you want to, you know, do some sort of processing and filter things out and I probably should have named that a little bit better. That looks like a variable for a bowling, but we could call it allowed list. Let's actually do that just because we want to want to be accurate here. And the difference of course between the plural and non-plural is, you know, one returns a list, one doesn't want. Add items. I did so good on that. I tried so hard not to misspell it. All right. Run this and boom. The only people we're allowing into our party are Heather and Bob. So that is the cute concurrent blocking filtered. Before we end this tutorial, I did get an email saying, why am I using blocking? Well, because we haven't yet really touched on the Q future or the Q future watcher, which are coming in future tutorials. That was a bit of a mismar, the future and future watcher coming in the future. That's like if you go back in time and give birth to a child, but he ends up actually being your grandfather's. Anyway, that made no sense. Be sure to visit my website voidrealms.com for source code for this and other tutorials. And it's Christmas time. So if you feel like donating, feel free to, but it's under no obligation. That's it. Thanks for watching.