I believe you can answer your own data analysis questions. Do you? You should. Stick around for another episode of Code Club. I'm your host, Pat Schloss, and it's my goal to help you grow in confidence to ask and answer questions about the world around us using data. In the last episode, we used sed to write regular expressions that allowed us to parse file names and paths to make our bash scripts a little easier to use. We also tweaked our make file to take advantage of those changes by using some of make's automatic variables. Now, sed is a powerful tool for writing bash scripts and working with file names, but that episode was really a bit of a setup for today's episode. Today, I want to build some logic into our scripts. Right now, we have full-length 16S RNA gene sequences. Those sequences were extracted from full genome sequences. Sure, there are sequencing platforms that will generate those full-length 16S RNA gene sequences for us. However, the Illumina MySeq platform is far more commonly used to generate sequences that are much shorter fragments of the gene. If I want to look at how Amplicon Sequence Variants, or ASVs, perform using current sequencing approaches, then I need to extract more commonly used regions from the gene. We'll also look at full-length sequences, but I need to build some logic into a new script that will extract the coordinates of my alignment that correspond to the regions of interest. This will allow us to simulate creating ASVs for different subregions of the 16S RNA gene. In today's Code Club, we're going to use if-else statements in Bash to insert this type of logic into our scripts. We'll also see how we can use if-else statements to make sure that everything has been going swimmingly with their previous commands. Even if you aren't analyzing 16S RNA gene sequences or haven't forbid even interest in microbiology, I'm sure you'll get a lot out of today's video. Please take the time to follow along on your own computer and attempt the exercises. Don't worry if you're not sure how to solve them. At the end of the video, I'll provide solutions. If you haven't been following along but would like to, welcome. Be sure to subscribe to the channel and click on the bell icon so you know when the next episode is released. Feel free to leave a comment, even if it's just to say hi. Please check out the blog post that accompanies this video where you'll find instructions on catching up, reference notes, and links to supplemental material. The link to the blog post for today's video is below in the notes. I've already created an issue for today's episode. This is issue 12 within my repository. For today's episode, the issue that we're going to work on is going to extract the subregion out of our full-length 16S RNA gene sequences and to create simulated data sets, if you will, for different regions. The most commonly used ones for using aluminum isyx sequencing might be V4, which is about 250 nucleotides. The V3, V4 region, or the V4, V5 region. And of course, there's also the full-length. And again, what we're trying to do is simulate sequencing this part of the 16S gene from a community. And the community that we're using is kind of the collection of full genome sequences that are available and the 16S sequences that come from them as curated by the RNDB. So we're using this as our simulated test case because we know which copies of the gene go with each other. If you're just sequencing bulk DNA from a sample, you don't know which 16S sequences go together as part of the genome. And again, if you did know that, then this whole problem would be moot. But again, that's kind of what we're trying to test here. So this issue I've gone in and we wanna create a code extractregions.sh. And it's gonna take in the output file name, which we talked about doing last week. And you'll see that we're gonna create new directories for each of the subregions. So it'll be data V19, data V4, data V34, data 45. And the output of this will be a file called RNDB.align. We'll use mother's pcr.seqs function and also filter.seqs because there's a lot of extra padding in these files. It makes them quite large. We'll remove that vertical padding to make the data sets a little bit more tidy. We'll also wanna add some garbage collections, so to speak, which basically removes all those extra files that we don't really need from the mother functions. The pcr.seqs function will generate a file ending in bad.acnose. And these are the names of the sequences that didn't fully overlap the region we're interested in. And so I'm not sure that anything's gonna be generated in those files, but what we'd like to do is to put that information into a file called RNDB.badacnose in the directory for that subregion. And finally, we wanna, of course, create a rule in our make file that allows us to run this and build, run this file, the script, for any of the subregions we might possibly give it. All right, so this is our marching orders, if you will. And I will come to my directory. You can see we're in the project route of our directory. I'll go ahead and fire up Adam. So I'll go ahead and make a rule for doing this for the full length v19. And hopefully we'll see patterns there that we can then generalize to the other regions as well. So we're gonna create data forward slash v19 forward slash rrndb.align. And this is going to be dependent on code forward slash extract region. Make sure I've got the name right extract region. I guess it doesn't matter, it is what I use. So we'll use the script as a dependency. We'll also use this file, our alignment file as a prerequisite. And that's good. And then the recipe will be to run code forward slash that, the name of our script, space, and then we're gonna give it this. And so as we talked about last time, we can use this automatic variable, the dollar sign at variable. We'll save that. And that will allow us to build the rule. So if we test this out, if I do make my fingers on the right keys, make that it says no rule to make target code extract region SH. So we need to start there. We need to create our code extract region file. So we'll do new file, code forward slash extract region.sh. And we're gonna go ahead and put in our shebang line. User bin environment. I forget these sometimes so I can always go back and really copy the shebang line for my other files if I forget, but I had it mostly right. We'll wanna put in some comments here. So I'll say, what was the structure I used here? I'll just go ahead and copy that. Like to try to keep things consistent. So the input will be, actually I picked a good one. The input will be, it's not really an input. That's more of a dependency, right? That's a dependency. And the output, the input really is going to be the target name, which is really the output. And that will be, let's see, data region and then rndb.align, okay? And I'll leave some space to write notes later. Okay, so the first thing that we'll get in is our target. So $target equals $1. And I wanna extract the path and the region. So the region, as we talked about in the exercise from last episode, we'll do echo $target. And then to be safe, I'll wrap that in double quotes. In case, again, there might be spaces in the name. I can't imagine doing that, but who knows where this script may wind up. Then we will do said-e double quotes and then s. And then we need the three forward slashes. So to get the region, we will then do .star backslash forward slash. So that .star is really gonna represent data. Again, we could write data, but to be general and to practice using these fancy regular expressions, I'll put in the .star. We'll have the .star for the region and then forward backslash and then the rest of it for the path. And I'm going to save, if you will, this middle part, which will represent the region. And then my path, I will copy that down and I'll then capture the full thing to get the path. So I will test this with say echo target equals $target echo region $region echo path $path. And I'll come back to my make file, run this, and then I see permission denied. Hopefully you remember what that means. That means that I forgot to change it to be an executable, to change my extract region script to be executable. Do you remember how we do that? We can do that with chmod plus x code forward slash extract region .sh. Now let's try to run make again. Everything looks good. This is the target name. It got the region correct. And then the path for data v19. I noticed it doesn't have the forward slash at the end. I'd like to have that there. So I will go ahead and I'll put a back forward slash inside that replacement pattern, save it, run again. And now I have data v19 forward slash. So we're in great shape. One of the commands in mother that we can use summary.seqs will tell us something about the distribution of lengths and start and end positions in the alignment.  And we can run mother from the command line by wrapping the commands in double quotes and starting it with a pound sign. And we saw this previously when we ran align.seqs in that shell script. So we will do summary.seqs, forward parentheses, and then I'll do fasta equals the name of the file, which is data raw forward slash RNDB hyphen 5.6 underscore 16S underscore R RNA dot align. I think that's right. Again, I'm not gonna put this into a rule necessarily. I don't really care to save the output. It's more for me to understand what we're doing here in the analysis. So what we see in this output from running summary.seqs is the start position, the end, and the number of bases for each of our sequences. And so we see that our sequences, for the most part, start at position 1044. There's a few sequences that perhaps start after that position. And then they end most of them at 43116. And those correspond to full length sequences, but there's a few that end shorter than that. So our full length coordinates, if we took a full length, say E coli sequence and aligned it to the reference alignment, it would start at 1044 and end at 43116. And so if you recall from our issue, we see that V19 goes between those two coordinates. And if we look at these other regions, we'll see that they are all contained within the sequence data that we have. The earliest region, the V34 starts at 6428. And so 6428 is later than the, I'm gonna say the slowest sequence to start, but the sequence that starts last. And the earliest sequence end is at 32825. And all of our other regions besides the full length end before that. So we'll be in good shape, but we would expect some bad accession names for those full length sequences. So we're gonna use a similar mother command in our bash script, which will extract the region we're interested in using a function called PCR.seqs. And then we'll use the mother filter.seqs command, which will return, will remove any position in the alignment where every sequence has a gap character. Those are for padding and don't contain any real data. So do mother, code mother, mother, and we will then do PCR.seqs, FASTA equals, and actually gonna use this FASTA file. So instead of having to type this all out, I'll put that in. That's again, one of our dependencies from the make rule. We will then do start equals 1044 and equals 43116. This is again for full length sequences. And I want the output directory, which is a argument for mother and all of mother's functions to be my path. So I'll do dollar sign path. Yeah. So that will again extract the region we want. And so then we want to do filter.seqs, vertical equals true. And that should work. So we'll run this and see how far we get. For right now, I noticed that everything else looks good. Maybe something I'll do to kind of set up where we're going would be to create a variable called start. And I'll say that's 1044 and end equals 43116. And I'll replace this 1044 with a dollar sign start and this 43116 with a dollar sign end. And I'll return to our make file and I'll rerun this rule and see where the output brings us. This might take a few minutes. So I might kind of do some editing and jump ahead. So we see the final file is this data v19. So it put it in the correct directory, this root of the file. And then we've got instead of a line, we now have PCR from PCR seeks and then filter from filter seeks and ends in fast day. What we want to do is change this into rndb.align. We can do this with the mv function, use mv, which moves files and also renames it. You're basically moving it in the same place. So we'll move that file to dollar sign target, right? So we're gonna move it from data v19, this long thing to data v19 rndb.align, which again is the same as our target. And this data v19 is our path. And now I'm seeing that maybe I don't want that final forward slash, so I'll go ahead and take that out because if path has a forward slash, then it's gonna be forward slash forward slash and we don't wanna mess with that. So I'll go ahead and take that out. Again, everything's a work in progress. So that would then change the location of the file, change the name of the file. Up here from the output of pcr.seqs, let's look at what other files were made. I'm gonna go ahead and copy these into my script because if they're not needed, then I'm gonna delete them. And there was also this filter file that I'll also copy into my script. And let's see, so it's this one, this bad Acnos that I'll copy up here. And so we'll move that and we will then do what? Dollar sign path and we will move that to rndb.bad.acnos. Very good. And we'll want that probably to also be a output or a potential target, if you will, in our make rule. And if I return to my make file, I can add that here and then instead of a line, we could do bad.acnos. And because I've kind of got this running off the screen, I'll go ahead and put a line break in there. Again, using the forward slash to indicate that it's the end of the line break. That will be good. And I then wanna get rid of these other files and I can do that with RM. Now the risk of removing the files is that we might end up needing them down the road, but I feel pretty confident that we're not actually gonna need these. So I'll go ahead and clean these up with dollar sign path. Save that and that should be good. So I'm gonna go ahead and rerun this quickly and show you what the output looks like. Again, I'll do the make. Great, so it finished running. I'll do ls-lth data and data v19. And I see in my v19, I only have the align and the bad.acnos, everything else got thrown away. Now, this works great for v19, but as we've mentioned, we wanna look at these other variable regions as well. So perhaps I wanna look at v4 or 3v4, v4, v5. So we need to build that logic in here. So we have one script that can process any region we want. To do this, what we're going to need is to use what's called an if-else statement. And the if-else statement we can write using if and then a space and then pairs of square brackets like this. And here goes a logical question.  And then we finish the if-else statement with a fi. Kind of the opposite, if you will, of if. And what we'll say is if region, sorry, dollar sign region equals, and then quote v19, then echo region, dollar sign region, okay. And because we're gonna do some testing, I'm gonna go ahead and comment out the rest of these lines. And Adam, I can do that with the command forward slash to comment those out just so I'm not re-running mother, these kind of time-intensive things over and over again as we figure out the logic that we wanna use for setting our different alignment coordinates. And you know what, I'm gonna also go ahead in here and put in my start and end coordinates and I will put the region and then out here, I'm gonna put echo, start, start, echo, end, dollar sign end, that should be good. I'm gonna go ahead and get rid of these other echoes for now to kind of clean up the output and we'll rerun make on that. And we see the region is v19, the start position is 1044 and the end is 43116. Now, the spaces in here matter. I've found that if I say remove the space between the if and the bracket, that it complains, that it thinks that whole thing is a command that says command not found. Other times, you know, if you put your text right up against those square brackets, save and run that, it again thinks that v19, the bracket bracket v19 is a command, it's not, and then it doesn't know what to do. So give yourself spaces between your square brackets and what's inside and between your if and the square bracket. So this works great for v19. But we want other things, right? Like v4. So to add another statement, we can then add lif. So lif and you can see for whatever reason, Adam went ahead and helped me to flesh in what was going on. Sometimes that can be a little bit disconcerting that it knows exactly what I'm trying to do. I could then say, quote, dollar sign region equals, let's do v4. Then we want to set start equals something and equals something and we'll say echo region, dollar sign region, and I'm gonna go back to my issue to get the v4 coordinates, 13, 8, 6, 2, 2, 2, 3, 4, 4, 4. I'm gonna copy those because I can't remember that many numbers. All right. So now what I'll do is I'll try to build the v4 file. No rule, right? So we didn't put a rule into our make file to build v4. So I'm gonna copy this down and instead of v9, I'll put v4 and v19, v4. We should be in good shape now. Make that and we get region v4, start 13, 8, 16, 62, and 2, 3, 4, 4, 4. I'm gonna leave the two other regions, 3, 4, and 4, 5, for you all to work on in the exercises. But there's one last part of an if-else statement that I want to talk about is that it's always a good practice to have a final statement that is else. And so if it does if, and let's say we have, we gave it region 3, 4 right now. Well, region is not equal to v19, so it goes to the if. Region is not equal to v4. So then it would basically go all the way through and start and end would never be assigned. So what you would like to do in this else is either give a default value for start and end or to basically bomb out. And what I'm gonna do is say echo, fail, and all caps to get the tension. We don't, we don't spell very well. We don't have the coordinates for dollar sign region. If we run this, then it's gonna still keep going through. It's gonna output that line. But, and let me see what this looks like. So let's go ahead and put in a rule in our make file for region 3, 4, save that. And then we'll try making data v3, 4. And so it, as you see, it says we don't have the coordinates for v3, 4, but it then still goes to the following lines with the start and end coordinates. So what we want it to do is we want it to exit and we'll do exit one. And what that means is leave the script and return the value one. And now if I run it, you'll see we don't have the coordinates for v3, 4, and make is complaining because the rule failed on running make. This failure, though, raises an interesting question. If we look at our script, when we get into running mother, how do we know whether or not mother ran, right? Well, we could look at the output, but that's manual, it's not very automated. We perhaps wouldn't want to have to run these following steps if mother failed. So built into bash are its own automatic variables. We can do echo, dollar sign, question mark. And this tells you, gives you a code number that indicates whether or not the previous command was successful. Here we see a two. So if it's a zero, then it was successful. If I do LS and then echo, dollar sign, question mark, I get a zero, so that's successful. Maybe what we could do is we could add some logic into here now to say if this was successful, then we're going to go forward. And if it's not successful, then again, we want to bail out of running mother and we might want to send back some message indicating that it failed. What we can then do like we did earlier was with if our square brackets, then LF and then Fi to close out that. And what we're going to want to do is dollar sign, question mark. And you can use equals zero. That equal sign actually compares strings. So in this case, it'd be trying to compare a string which is numeric to the string which is zero, which is also generally numeric and probably not the best way. So what we can do is say hyphen EQ. So if we wanted them to equal, we could use EQ, not equal, we use NE, greater than is GT, less than is LT. If you look at the blog post that accompanies this video, I have a cheat sheet with a bunch of different commands that you can put in here for making these types of comparisons. I'm going to do EQ. So if it was successful, then I want to touch those files that came out of PCR seeks because what I'm concerned about is this running and they're not being a bad ACNOS file to then convert into being bad ACNOS. Also the scrap.PCR won't be generated if there's nothing that, you know, for like the V4, I suspect this won't be generated because all of our sequences will span the coordinates that we give it. It will be created for V19 as we've seen because not all the sequences span those coordinates. What I want to do is I want to go ahead and touch these two files if mother was successful so that they, they're empty, but they exist. And I'm not going to get an error when I, when I try to rename them or move them. So we'll do that. And then if it doesn't, if it's not successful, then what I'm going to say is echo, fail, mother ran into a problem. And then again, we'll do exit one. Everything that we just did here after the mother line checks to make sure that mother executed successfully. So I'll put in a comment here. So if mother executed successfully, then touch the files that might not have been generated in PCR.seqs because the sequences spanned the desired region. Regions coordinates. So that's that.  And here we're going to clean up the file names. I'm not sure why it's not graying this out like it's a comment. Trust that it's a comment. We'll get an error message if it's not. And I'll go ahead and remove this. And we're in pretty good shape. One other thing that occurs to me in this is that we're assuming that mother can generate the v19 or v4 directories. It appears that mother is doing that automatically for us when we use output dir equals dollar sign path. I'm going to force the issue just to be safe. And again, we've seen before to make directories. We could do mkdir and then dollar sign path. But if that path already exists, we're going to get an error message or a warning message. And what we can do is hyphen p to force it to create that directory. And if it already exists, then we won't get a warning message. It'll be cool. And if it doesn't exist, it'll go ahead and create that directory. So I'll save that. And we can then do make data v19 align dot, I'm sorry, rndb dot align. And I can run that. See you in a minute. So I ran it and it's complaining that on line 37 and 38, there's a syntax error near then. So I'm going to go look at that in here. Ah, and I told you about this, right? I had, I forgot to put a space after the zero. So I'll save that, I'll rerun it and we'll check back in another minute. And I seem to have another error on line 44 syntax error near unexpected token fi. I see fi, I'm not sure what that means, but I look up and I think for sure, it's probably, I had an L if and it was expecting some type of command. So let me replace that with else. Again, this is the challenges of copying and pasting or kind of thinking too quickly. So, and things take a few iterations to get right. Finally, it ran through without any errors. I'll go ahead and do LS LTH data v19 and looks like everything was just updated. I have those two files were in good shape. I'll run make-n on that target again, double check. Everything's up to date, we're in good shape. I'll go ahead and do make v4, data v4 as our task, right? So if this works, then that means the logic we added for v4 is in good shape. And again, I'm leaving three four and four five for you to work on as one of the exercises. Again, that ran. I'll again do add the hyphen n to make sure everything is up to date. LS LTH, data v4, everything looks good there. Something I do notice is that R and D, B, bad ACNOS has zero bytes. There's nothing in it as we expected. One final thing I wanna say about our make file is that as you can see, for each different region that we're creating, we're creating a separate rule. And by the time the exercises are done, there'll be another rule for four or five. We can use a percent sign to represent a common pattern that's being used. So by replacing the region with a percent sign, and again by using the automatic variable, the dollar sign at, then we will take this, whatever this is and match it there. So when I do make data v6, say, then there will be a rule here to do v6. And then I don't need all these extra rules. So again, this is another way to keep our data dry. We're at the end of this issue and I'm not ready to close it, but it reminds me that I never created a branch for the issue. So if I look at get status, I've modified these two files. So I'm gonna go ahead and create that branch now and our changes will carry over to that new branch. So I'll do get branch issue 12 and then get checkout issue 12 and get status. We still have those files. So we're on this branch, as you can see issue 12 and all our changes are there. So we're keeping our branches alive. Again, it's not the end of the world if we're not working on branches, but it's a nice organizational way to be looking at, to keep track of our work. As always, I have three exercises for you to work on now. First, we included the rules and logic to output the alignment file for the full length sequences and for the v4 region just now. And as I've mentioned, I'm leaving the logic to you to extract the v3, v4 and the v4, v5 regions. The start coordinates for those are in the issue tracker. And hey, if you have ideas on other regions you'd like us to include, go ahead and put that on my issue or leave that in the comments below. That'd be great. And we could come back and update that. Then I want you to update the code and close issue 12. For the second exercise, you may recall that way back when when we were downloading files with WGet and on zip that we used touch because the timestamp on the things extracted from our zip files corresponded to the old timestamp. And that causes problems with make because the output file is always going to be older than the script that was used to generate it. And so it'll always try to redownload it. And so our solution at the time was to touch the file that was extracted. What I'd like you to do is to create an issue and then use GitHub flow as we've been doing to go ahead and only touch that file if the extraction was successful. So if the extraction wasn't successful currently we go ahead and create that file, which is empty and that can cause all sorts of problems down the road. So go ahead, create an issue and only touch the output file from that extraction from using unzip if the unzip was successful. In the third exercise, I've noticed that we forgot to create a rule for installing mother. So we installed mother using code install mother.sh and we put mother into the code mother directory. Go ahead and create a rule and make and something you'll also recall from that installation script is that we use a touch there as well. So go ahead and make sure that that's only gets touched if the extraction is successful and also then update our other rules for where we use mother to include mother as a prerequisite. For the first exercise, we wanna add the logic for V34 and V45. And again, we of course then wanna generate those. So I'm gonna copy this block down and we wanna put in 34 and 45 and I'm gonna replace the start. Oh, not that one, this one. So the end is gonna be 2344 and the start there is gonna be 13862 because the end of 34 is the end of four and the start of 45 is the start of V4. If I come back to my issue tracker, V34 starts at 6428. So I will put 6428 there and the end of 45 is at 27659 and that should do it. So that's a pretty simple change. And again, looking at our make file because we put in that percent sign to match that pattern. Now if we do data V45 R&DB align, it should run. So let's give that a check. So make data V45 RRNDB dot align. That seems to have run without any error messages. I'll go ahead and do make dash N on that target again tells me it's up to date. LSLTH data V45 to make sure everything's there. We're good to go. And again, as we expect, the bad ACNOS file is empty. And we'll go ahead and make 34. I'm gonna talk to you in a couple of minutes. That seems to have worked great. Again, we'll double check with make dash N up to date. Look at the contents of the directory. Everything looks good there as well. Get status. We've modified our make file and we've created that new script code extract region.sh. I'll do get add make file code extract regions.sh. Get commit dash M extract variable regions from aligned sequences closes number 12. And I'll do get checkout master and we'll do get merge issue 12, get push. And our issue has closed. So I've created an issue 13 for exercise two, where again, we only want to touch the output of unzipping if the unzipping was successful. I'll again do get branch issue 13 to 13. And I will open up my get rndb files.sh. And again, what we want to do is we want to check if this last command was successful, then we want to touch the target. So again, that is stored in that dollar sign question mark variable. So we'll do kind of like we did before. If square brackets, dollar sign question mark, hyphen EQ zero, make sure we've got that space, then touch the target else, and then we'll close it with that. And otherwise, so if it's not successful, we'll say echo, fail. We're not able to successfully extract dollar sign file name and that should do it again. So if this, if it's successful, dollar sign question mark will equal zero, we'll then touch the target. If it's not successful, say like something happened and the download, the download got kind of aborted, then unzip isn't going to work. So then we'll get a fail that it wasn't able to successfully extract the file name. I can then do make data forward slash raw rndb file rndb 5.6.tsv, not retrieving archive, everything was good. Okay, so that looks great. Get status, we did modify that one file. So we'll do get add code, get rndb files, get commit dash m, and we will then say touch extracted files only if unzip is successful, closes number 13, get checkout master, get merge issue 13. So I'm waiting to rerun everything because changing those scripts unfortunately or fortunately, I think it's very cautious, will then trigger everything else to get rebuilt. The other thing that causes everything to get rebuilt is when we merge issues back into master. And so what I'm gonna try to do going forward is only run the scripts after you've merged the issue back into master. Because when we do this merge, what you're seeing here is output that this file is getting updated. And so then this file is going to be newer than the file we downloaded. If I look at this script, it was created at 10.06 and my data raw rndb files, I think it was the TSV file was created at 10.05. So because we did that merge, our script is now newer than our TSV file. So we'll need to rerun this after we've done the merge and that's kind of a hangup with using version control and using GitHub flow with everything. But that's a much more cautious and it is a better way to go. And again, we've committed it, we're ready to push it and we see we've closed the issue. For the third exercise, I've made a new issue, issue 14 to create a rule to install mother and then to use mother as a dependency in those rules that use mother. I'll now create a new branch and we'll go back to Adam and I'm not interested in this. I'll go to my install mother script. And again, if it's been successful and I'm probably going to copy the code straight over from here and put that in there, we are not able to successfully install mother. Okay, so if that's successful, then we don't want to touch the target. We want to touch code forward slash mother, forward slash mother and otherwise fail, we weren't just able to successfully install mother, that looks good. And we need to add a rule to our make file to install code forward slash mother. Mother and the dependency is code install mother.sh and the recipe is to run this. I'll go ahead and make the target, double-check that it works, everything is good. And now we need to update our rules that use mother to include it as a prerequisite. So I'm going to copy that and we used it in two places. So down here, where we generated the align file and then down here where we extracted the region for the stuff we did today already. All right, so we're ready to update these. So we'll do get add make file and code install mother.sh. And then I will say create rule to install mother and use as prerec closes number 14, get checkout master. Okay, get merge issue 14 and get push. One of the great things about what we've been doing with make is that I can now run the rule to generate these R&D be aligned files. And if it needs a prerequisite from earlier, it'll go ahead and automatically generate that. And I don't have to worry about running these rules individually. So I can do make data v4 forward slash R&D be dot align. Then I'll do that. So I'm gonna go ahead and run for the v19, v4, 3, 4 and 4, 5 and I'll catch you next time in the next episode. Thanks again for joining me for this week's episode of Code Club. Be sure that you spend time going through the exercises on your own to help reinforce your new skills using if else statements. You'll find if else statements in any programming language. Once you get the hand of how to use them in one language, they're easy to master in the others. It would be great if you could take the ideas we've worked through today and think about how they relate to your current projects. Do you ever find yourself saying, if this happens, then I want this something else to happen, that's a perfect spot for an if else statement. I'd love to see how you're adapting what I have covered in this and other Code Club episodes into your own work. Also, feel free to ask any questions you have in the comments below and I'll do my best to answer them in a future Code Club. Please be sure to tell your friends about Code Club and to like this video, subscribe to this Riffimona's channel and click on the bell so you know when the next Code Club video drops. Keep practicing and we'll see you next time for another episode of Code Club.


Floyd Mayweather is one of the most successful and highest paid athletes of all time. He's one of just three sports superstars to make more than a billion dollars throughout his career along with Michael Jordan and Tiger Woods. And when you've got money like that kicking around, you've got to find things to spend it on. Yep, that's a crazy expensive $18 million watch but that's not the only thing Floyd likes to spend his money on. He's also a huge car collector with reportedly well over 100 cars that he calls his own including a fleet of all white luxury cars in Los Angeles, a fleet of all black luxury stands in Miami, a Bugatti Veyron, a Ferrari Enzo and even a Koenigsegg CCXR Trey Vita. Never heard of that last one? Well stick around and I'll tell you all about this nearly 5 million dollar car. Floyd's love for Whips goes back to 1996 when he bought his first 600 series Mercedes. Since then he's bought and sold more luxury cars in a small town dealership including a Bentley Molesanne, a McLaren 650s and multiple Rolls-Royce Phantons. In fact during an interview with ESPN in 2015, Floyd stated that he had over 15 million dollars worth of luxury vehicles just sitting in his garage and most of these cars come from only one dealership. Tobin Motors owner Josh Tobin claims to have sold the majority of Floyd's vehicles to him over the course of about 18 years. He's even stated that Floyd usually pays for his cars in cash so he had to buy a state of the art cash counting device to handle all those bills.  So I've decided to take a look at 13 of the most powerful cars that Floyd Mayweather has bought with his prize money. What's going on guys and girls it's Kara and today we're taking a look inside one of the biggest car collections in the world, Floyd Mayweather. Here for you on Famous Entertainment. We've all sent cars towards the likes of Drake and Lil Uzi Ver and we'll link to some at the end. Let me know whose cars you'd like to see next in those comments down below and don't forget to like and hit subscribe. Follow me on Instagram if you want to chat and now let's get into this video. Most and is the most expensive Bentley you can purchase in the first one ever auctioned off was sold for 500 thousand dollars. It's powered by a 505 horsepower V8 engine that generates a humongous 752 pounds per feet of torque and considering that the car weighs almost 6000 pounds it needs all that power to get moving. It's not a typical sports car that speeds down the road it's more focused on floating down the road and basking its occupants in supreme comfort. Bentley's are all about luxury and the Mulsanne is no different. Floyd has a taste for the finer things in life and that's why he ended up buying an entire fleet of this vehicle. A Bugatti Veyron can set you back around 1.7 million but Floyd ended up loving this car so much he bought himself at least three. What does that almost two million dollars get you? Oh just a thousand horsepower out of a 16 cylinder engine and a top speed of 257 miles per hour. That's so high it's unlikely you'll ever be on a road empty enough to reach it. The vehicle is developed and designed by Volkswagen in Germany but manufactured by Bugatti in France. And you might have seen other celebrities driving one of these around because owning one has become a symbol of wealth in America. I mean even Tom Brady has one. The Veyron isn't the only Bugatti that Floyd's got in his garage. He also owns a Bugatti Chiron which is more or less an upgraded version of the aforementioned vehicle. Ownership of this car is so exclusive that only people who had already bought a Veyron were offered the opportunity to purchase one of these newer models which means the Bugatti contacted Floyd directly to see if he wanted one. What do you think he said? Of course Floyd jumped at the chance to pay 3.5 million dollars to add this car to his collection but he wasn't the only one. In fact the first 200 units of this car sold out before production had even begun. This car features a top speed of apparently 267 mph but is capable of going as fast as 288 mph. Reportedly Bugatti put a limiter on it to make sure it never reaches that top speed for safety reasons. The car features 1479 horsepower which is a type of strength not seen since the medieval times when only armies had that type of power at their disposal. This Ferrari 458 Italia isn't as fast as those two Bugattis but where this car really shines is when it takes corners. It's designed to handle like a dream and is equal parts luxurious and exotic. Floyd liked this car so much that he got two versions, the standard version and the convertible. The 458 is a successor to the F430. It inherited the Maserati V8 engine but was fully refreshed in terms of technology and a brand new design. The second Ferrari we're going to take a look at in this video is named after the founder of the company and is known as the Ferrari Enzo. It features a 651 horsepower V12 engine which pushes the car's top speed to around 220 mph. There are only around 400 units of the car ever created which means that its value is off the charts. Floyd reportedly paid around 3.2 million so this car could sit in his garage. This car was built with non-regulated F1 technologies which was a first for race cars. It features aerodynamics plus computer activated traction control which means it was designed to handle the curves of a lap track as quickly as possible. Apparently Floyd enjoys driving this vehicle so much that he's already put around 500 miles on it which considering the number of cars that he owns is a lot. The Pagani Huayra was also a car produced in limited quantities. There was only 100 of the manufactured through 2015. It features a twin turbocharged V12 engine created by Mercedes specifically for this vehicle. With its 720 horsepower it can go from 0 to 60 mph in just 2.8 seconds. Floyd paid around 1.4 million for this car and top gear named it the hypercar of the year back in 2012. When McLaren decided to build a follow up to the McLaren F1 one of the most popular cars ever made the engineers at McLaren didn't try to build a better car instead they built a different one called the MP412C a supercar that ended up being blindingly fast. While the updated version of that car is the McLaren 650S which is even more powerful, faster and dominant around the track. The McLaren 650S was first unveiled at the Geneva Motor Show back in 2014 and featured a limited top speed of 207 mph and can go from 0 to 62 mph in under 3 seconds. Now there are a couple variants to this model and Floyd owns a 650S Spyder. This version is a convertible that weighs about 40 kilos more than the coupe version. The interior uses race bred technology to give it a premium feel that provides the balance of luxury and excitement that Floyd is no doubt looking for in all of his cars. The selling price for the Spyder version starts at around 500k. While the development of a lot of supercars can leave them all looking the same, the Mercedes-Benz SLS AMG is one car that's looking to buck that trend. It's a limited two seater luxury supercar and was quoted by top gear star Jeremy Clarkson as the greatest car in the world and the thinking man's supercar. High praise like that means that a whole crowd of celebrities were looking to snatch one up including the likes of Lewis Hamilton, Christiana Ronaldo and even Al Pacino. Of course you can also add Floyd's name to that list. He would have paid over 200k for this one. The follow-up to the Lamborghini Murcia logo, the Lamborghini Aventador was designed on an evolution of the former model's look but under the skin it was all new and featured 700 horsepower with a V8 engine. Delivery of these cars started in late 2011 and there were only 12 of them sold at the time with Floyd being one of the first early adopters. The base price for this car is around 500k but can go up to as high as a million if additional features are added. Perhaps in need for something a little more practical to drive, Floyd purchases German engineered Porsche 911 Turbo Cabriolet. He bought a convertible version that has over 520 horsepower and can hit 60 miles per hour in just 3 seconds. Despite its practicality, this version of the 911 Turbo is probably one of the least expensive cars in Floyd's garage, only setting him back around 200k. This two-door luxury sports car has actually been in production since 1963. Much like with the Bentley Mulsanne, Floyd reportedly has an entire fleet of Rolls-Royce Phantoms to cruise around them. Rolls-Royce will customize their vehicles in any way that their customers want, with the only limitation being how much the customers willing to spend so you know that means for Floyd, the sky was the limit. The average Phantom costs around 400k and Floyd owns at least 6 Rolls, some of which have 0 miles on them. All of Floyd's Phantoms are custom fitted with an armored BR7-level ballistic rating and Josh Tobin of Tobin Motor said that Floyd actually owns 16 Rolls-Royce Phantoms. Our final car is the Koenigsegg CC XR Travita and I mean can anyone even pronounce the name of this car accurately? I have no idea but I gave it my best shot guys. One thing's for sure, despite the name being practically unsayable, it didn't stop Floyd from adding it to his collection. Even the astronomical 4.8 million dollar price tag didn't stop him from scooping this bad boy up back in 2015. What makes this car so special? Well it's one of only two in the entire world and Floyd owns one of them. It features a top speed of over 254 miles per hour and is powered by a 4.8 liter twin super charged flex engine that produces an astounding 1,018 horsepower. But the one thing that most people tend to notice about this car is a diamond weave in the carbon fiber finish. The 4.8 million dollar price tag makes this the most expensive car that Floyd owns and the second unit is reportedly owned by a wealthy guy out in Geneva. Alright guys I think we're gonna wrap this video up there. What did you guys think about some of Floyd's most expensive and powerful cars? Remember this is only the tip of the iceberg for him. He reportedly owns close to like 80 more vehicles so I honestly don't know how he keeps track of them all. I could barely keep 13 of them straight. Let me know which car of Floyd's you guys liked the most and don't forget to follow me on Instagram so we can continue the conversation. Alright I'll see you guys in the next video. Bye!


And all the examples that you have given are also leading me to go back to one word that you, Mr. Camel mentioned was alternative proteins. So alternative proteins is meat without cows, you know, including up to 3D printing, etc. So I know there's a lot of curiosity about this issue. And I would like to ask all of you in two minutes each whether you think this is a possible solution for the future of food, not only as a tiny niche area, but something that could really be a full-scale solution. I don't know, Mr. Cullen, if you have correctly heard me. And if you'd like to start, you know, really two, three minutes each, just giving a feeling about what is, you know, something that for everybody is absolutely beyond understanding to a certain extent. Please, if you can tell me again what is the solution you're referring to. I cannot hear you correctly. I'm asking whether you think that alternative proteins can be a full-scale solution for nutrition and not only some kind of niche scientific experiment. Sure. Okay. Look, I don't think it's the only solution that we have to look at today because the importance here is that it's not just proteins, but it's other elements that are required in the nutritious diet and healthy diet. And when we look at all congressional animals, for example, there is a diversity of micronutrients that are provided. It's very important. I think the challenge on the other side is how we are able to balance things because we have countries that over-consume proteins and countries which are completely under-consuming proteins. If we are able to achieve that balance, I think we can bring that solution which is more efficient and could record significant problems of under-consumption of proteins we have, and at the same time cope with greenhouse gas and metals, especially related to livestock production. So it's one element which could contribute, but I don't think it has a number-all solution to determine. So, there are alternative solutions to alternative proteins. Okay. Mr. Kamal, would you like to continue? Yeah. First, this is relatively in you area. I mean, it's only on the last five, six years. Think everybody tried on Possible Burger and other similar products. It's here to stay. We are still at the pre-paradigm era. We don't have a clear way of how to do it, and more important, we don't have assurance of the health and safety long-term benefits associated with it. But if you think of life on Mars, for example, and here we always say in the desert in Egypt, we are reclaiming Mars because we don't have water, we don't have soil, we don't have electricity, we don't have you. If you think of life on Mars, let's say, of course you will be using what you call food in the lab. So, I believe it's here to stay. It will grow. It's important. Definitely continuing to have more and more cows and more and more gas emissions as a source of us getting meat is not going to be sustainable, and we have to wait to see what will happen. But it will go mainstream in another couple of years, I believe. The major, major investments are done there, and we'll have to see yet the economic return. Still, there is no positive economic return on this, but I think it will continue to happen. So Kuri? Yeah. I think so as well. I think that alternative proteins would, at the moment, it is niche, and perhaps it will continue to be niche until it is no longer a niche, and perhaps what would help it to not become, not continue to be niche is technology, its research. This evokes, for example, the question that many years ago was at the point of debate with regards to technology and its genetically modified foods, for example. Before now, there was a lot of debate about the health benefits or the health implications of genetically modified foods. But today, food technology has shown us that it is not only possible, but possible to do it safely, to fortify foods with the nutrients that are required, whether they are proteins or vitamins or as the case may be. So with regards to whether alternative proteins will be able to provide at scale the kinds of benefits that we need in order to make it economically viable is still questionable. But I think what is encouraging is that it's becoming more and more possible with technology, with science, to fortify with more nutrients what we consume already. But it's definitely a very interesting topic that should be on the table of both public and private sector. Well, thanks. Mr. Park, would you concur? Yeah, I agree. Like, theoretically, almost everything is possible, right? Like, you know, the fortifying vegetables is possible and then we can also modify the taste of the vegetables. If in certain region they produce best carrot, then we can study the land and then the climate of the region and we can mimic the same condition in the indoor vertical farm and we can produce the same type of food. But you know, we still need a long way to go. But as all the technology develops, it starts with the niche and then it becomes the main technology. So, I think it's not going to solve all the problems, but it could be a big part of the solving problem of food in the future. Okay, so I understand that you're cautious, but rather positive, if I could summarize this kind of feeling now.


Mae'r gael atod eich hofod, oedda, o'r gwbl yn gweithio i fyfyniadau yma o'r sgwrs. Ond mae'r gweld yn defnyddian nhw hefyd. Yn roi, mae'n gweithio i'r bobl i'r part 3. Dyna'r fan Betsi Gель i'r part dwylo'r credu o dwylo. Yn roi'r pwlu mwylo, mae'n hoffod ar gynnwys i'r partig beth dweud o rhai o'r tablau adegun o'r partig. The vast majority of that comes from book one part three. And the later works in particular the inquiry concerning human understanding Is crucially built around the central spine of book one part thrie. So Gathering we are going to have a look at relations again, we have already seen something about relations in an earlier lecture And we will see a the root that human follows in the streopleys of the treatise. Yng Nghym sy'n gwneud y gallai gynnig wedi cyfaint a'r drwg. Y rhai twyd ddwyllwch y Llywodraeth Book 1, 3, eisiau unig a'r bwysig. Dwi'n gwybod eich trefio, mae'r ddweud yw'r gweithwyr gwybodaeth gwybodaeth, ddweud o'r gweithwyr gwybodaeth gwybodaeth. Mae'r ddweud â'r ddweud. Dyna yw'r zelfs o'r oedd ddweud. Dwi'n gweithwyr gwybodaeth, yw'r ddweud yn ddweud. y rhwng y dimonstrwynt, y gwybod yn ymddiol. Ond oherwydd, yn ddim yn cyd-dweithio, ychydig yn gweithio yn ymddiol, yn ymddiol, o'r sechshon 2, a'i ddweithio ar y cael ei gwybod yn ymddiol. O'r byd yn ymddiol? Mae'r byd yn ymddiol yn ymddiol yma y Ff1 P3 yn ymddiol o gwasiwn a'r gwasiwn. Ond yw'r cwm, fel y gallwn i, yn fawr yn cyfwyr i'w gweithio'r rŵt. Yn ystod o gyfnod y sefydliadau, wrth gwrs dywedigaeth, byddwn i'n gweithio arall, ac mae'n gwneud o'r gwneud o'r gwneud o'r gwneud, ac mae'n ddangos iawn i gael ei gweld. four constant relations and three inconstant relations. But then what he does is argue that these relations have special links to particular mental operations. So resemblance, contrariety, degrees in quality are discoverable at first sight. Whereas proportions of quantity or number are susceptible of demonstration. So, if you read these paragraphs, you'll see he's effectively arguing that only proportions of quantity or number can give rise to complex mathematical reasoning. And the other things, resemblance, contrariety, degrees in quality, they're discoverable at first sight. We've seen that's a problematic claim. There are all sorts of different types of resemblance. Some of them are discoverable at first sight no doubt, but many others aren't. They can involve considerable investigation. Moving to the other group of relations, Hume wants to say that identity and relations of time and place are matters of perception rather than reasoning. Another dubious claim. Causation remains as the only relation that can be traced beyond our senses to existences and objects which we do not see or feel. So, we get a taxonomy which looks just a bit too good to be true. It reminds me of some of Kant's stuff. Great philosophers love shoehorning everything into some neat taxonomy. And it seems to me that's what Hume is doing here. The real result he's after and this is probably a genuine result or at least it looks close to being one. Is that probable reasoning, that is reasoning beyond what we immediately perceive or remember. Reasoning from observed to unobserved does seem to have a pretty intimate connection with causation. That does seem to be a genuine truth. But the rest of it really is not terribly convincing. At least I don't find it so. So what Hume's doing, he started the treatise trying to give a very systematic account of our ideas. Amongst the ideas he comes to complex ideas. He then divides up the complex ideas, a very important subset of complex ideas of relations. He then sets out to analyse our relations and gives a taxonomy. And he knows roughly where he's heading and he finds this a neat way of leading to where he wants to go. But it's all a little bit artificial and it doesn't quite work. Fortunately, however, this doesn't vitiate most of book one part three. Okay, we want to understand reasoning to the unobserved. And here we get the real nub of Hume's interest. Now in the inquiry concerning human understanding this is completely explicit. Much more so than in the treatise. In the treatise we get this, if you like, charade of investigating all these different ideas. And the focus is on the origin of our ideas. In the inquiry, section four, Hume proceeds in a very different way. He says, well there are relations of ideas, matters of fact. Remember Hume's fork, which I mentioned in an earlier lecture is a replacement for his theory of relations of the treatise. Okay, we've got relations of ideas. That's things that are true, if you like, by definition. All bachelors are unmarried. Or things that we can know by demonstration, mathematical truths. There's not too much of an epistemological problem about how we come to know those because those are a priori. On the other hand there are matters of fact. That's a different matter. How do we come to know any matter of fact beyond the immediate testimony of our memory and senses? That's the big question. And in inquiry section four, that's the question he sets out to answer. In the treatise, he's looking for the origin of the idea of causation. He's argued that causation is intimately bound up with probable reasoning. And he twists it so that we end up discussing the basis of probable reasoning. So I think this is where his real interests lie. But he's inserting it within the context of a discussion of the idea of causation. I'm not meaning to suggest that the discussion of the idea of causation isn't also very important to him. But the theory of probability of belief plays a much larger role than you might expect if the discussion were actually principally founded on the origin of our ideas. But at any rate, the origin of ideas is how Hume structures it. We're looking for the nature of our idea of causation and the light that the origin can shed on that. So we look at causes and effects and what do we see? Do we see any uniform property that causes an effect having common? No, we don't. All sorts of things can be causes, all sorts of things can be effects. It must be some relation between the cause and the effect that makes them cause an effect. Well, what relations? Well, if we look at things, take two things that cause an effect, what do we find? We find, first of all, that they're contiguous in space and time. They're close together. We always find, Hume suggests, that causal relations act locally. You might think, hang on, what about gravity? That doesn't make an entrance at this point. One thing that does make an entrance at this point via a footnote is Hume's observation that we can have causal relations between things that are not spatially located. Later in the treatise at 145 of the Immateriality of the Soul, Hume is going to point out that many of our perceptions do not have a spatial location. So it looks like the requirement of spatial contiguity cannot apply to those. They're obviously causally active. So notice that although contiguity is signalled as a part of our idea of causation, Hume himself via this footnote is actually saying, well, it doesn't matter that much. What about priority? We find causes to be prior to their effects. And Hume gives a rather unsatisfactory argument for the conclusion that causes must always be prior to their effects. It goes a bit like this. If causes and effects could be simultaneous, then all of time would collapse. Therefore, they can't be. OK. Well, if this argument appears satisfactory, that's fine. If not, don't worry, it doesn't matter too much. It seems a slightly odd attitude to take, but there it is. So what Hume is really after, what he really does care about, is not the contiguity or the priority, it's the idea of necessary connection. Famous quotation, often misunderstood. Shall we then rest contented with these two relations of contiguity and succession as affording a complete idea of causation? By no means, an object may be contiguous and prior to another without being considered as its cause. There is a necessary connection to be taken into consideration, and that relation is of much greater importance than any of the other two above mentioned. So, Hume is saying that the causal relation is not just a matter of contiguity and priority, it involves some sort of necessary connection. And what he's now going to do over the rest of book 1, part 3, though, as I say, in a rather circumlocutory way, is to find out the origin of that idea of necessary connection. So what's Hume looking for when he's looking for the idea of necessary connection? He's looking for the extra ingredient besides what? Contiguity, priority. Just notice for future reference, he's said nothing yet at all about anything like constant conjunction. It's single instance contiguity and priority. That's all he's got so far, and he's looking for the extra thing. He'll find the extra thing when he's discussing induction, as we shall see. But for the moment, he has no idea where to go. How do I find this elusive necessary connection? Well, I might think of something like power of production. Oh, but that just seems the same thing. I want to know what this power is, this necessity that governs causes. Where am I going to find that? Oh, I haven't a clue. What should I do then? Well, I better proceed like those who are not being able to find what they want, just beat around the neighbouring fields, and just hope that something will turn up. All right, I'll do that. I'll go and hope that something turns up. Very strange way of proceeding, but that's what he does. The first neighbouring field is the causal maxim. It is a general maxim in philosophy that whatever begins to exist must have a cause of existence. Well, here's an interesting question. Why do we believe the causal maxim? Well, many philosophers say that it's intuitively certain or demonstratively certain. Hume argues that it is neither. And we've actually seen part of that argument before. Do you remember in the theory of relations, I mentioned that in drawing his dichotomy, part of Hume's aim seems to have been to show that the causal maxim can't be intuitively certain, because he says intuitive certainty can only involve the constant relations, causation is an inconstant relation, therefore the causal maxim can't be intuitively certain. More securely, he appeals to the conceivability principle. It's perfectly conceivable to have something beginning into existence without a cause. Therefore, it cannot be intuitively or demonstratively certain that every beginning of existence must have a cause. Since it's not from knowledge, remember Hume is using knowledge in the strict sense. When Hume talks about knowledge in the treatise, he almost always means demonstrative knowledge, absolute certainty. So it's not from knowledge or any scientific reasoning that we derive this opinion, the causal maxim, it must necessarily arise from observation and experience. The next question then should naturally be how experience gives rise to such a principle. How from experience do we get a belief in the causal maxim? But as I find it will be more convenient to sink this question in the following, why we conclude that such particular causes must necessarily have such particular effects and why we form an inference from one to another, we shall make that the subject of our future inquiry, twill perhaps be found in the end that the same answer will serve for both questions. Well, an intriguing passage because not only does he sink the causal maxim at this point, it sinks without trace. It never reappears, he never comes back to it. So we have the appearance here that he's interested in the origin of the causal maxim, he says, that's very interesting, I'm going to sink it in this other question, he goes off and discusses the other question, never comes back. Now many people have supposed that Hume is not a believer in the causal maxim. This does not seem to be the case. I suppose it's quite natural that people would think that because he's argued that the causal maxim is not intuitively or demonstratively certain, he's attacked various philosophers' arguments, notably those of Hobbes, Locke and Samuel Clarke, for the causal maxim, but bear in mind he's said quite explicitly that it arises from experience. Here he's saying, the next question is how it arises from experience. There are two main lines of evidence for the claim that Hume does believe in the causal maxim beside those hints. First of all, we will see that Hume seems to be a pretty committed determinist. If you're a determinist, then inevitably you're going to believe in the causal maxim. It's an interesting question why he's a determinist and whether he's justified in being one, but I think it's pretty clear that he is. I was going to say, we'll come back to that later. Secondly, we've got some letters. This is the letter from a gentleman to his friend in Edinburgh. Written in 1745, he's been attacked by the local clergy as an atheist for denying the doctrine of causes and effects. They're saying, Hume, in the treatise, denies that every event has a cause or that every beginning of existence has a cause. This is the foundation of, for example, Samuel Clarke's cosmological argument for the existence of God. Therefore, Hume's an atheist. Hume is saying, no, I didn't say that in the treatise. What I said was that the causal maxim is not founded on demonstrative or intuitive certainty. Instead, it's founded on moral evidence, probable evidence, inductive evidence, evidence from experience. It's followed by a conviction of the same kind of these truths that all men must die and that the sun will rise tomorrow. Now, if that is written sincerely, then Hume seems to be thinking out there in the country as tutor to a madman without his books. Here he is writing from memory and he seems to be thinking that in the treatise he had asserted that the causal maxim is derived from experience and is as certain as these things, as certain pretty much as anything. Again, we have a letter to John Stuart. John Stuart had written that Hume denied the doctrine of causes and effects and here he is saying, no, I didn't deny that at all, saying much the same as in the letter from a gentleman. OK, so much for the causal maxim. Hume discusses it, takes the opportunity to attack some attempts to prove it, then says, I'm going to go on to talk about causal inference and as I've suggested, I think that's where his interests really lie. So the next few sections are structured around this and it is a very systematic structure. In treatise 134, Hume argues that causal reasoning, if it's going to result in belief, must start from something that we perceive or remember. So that gives us an agenda. Here, therefore, we have three things to explain. First, the original impression, that's the thing from which we reason. Secondly, the transition to the idea of the connected cause or effect. So when we draw an inference from what we perceive to something that we don't perceive, thirdly, the nature and qualities of that idea. And we'll see. In the rest of this part of the treatise, he does discuss the original impression, the transition to the idea of the connected cause or effect, that's the argument concerning induction of the inference from the impression to the idea and then he goes on to discuss the nature of belief. So the next few sections of the treatise are all structured accordingly. 135 has an odd title of the impressions of the senses and memory. That's a bit peculiar because the memory does not present impressions. The memory presents ideas. So what's he doing here talking about the impressions of the senses and memory? Well, I think it's a slip, but it's a fairly natural slip. Because what he's doing here is contrasting the senses and memory with the imagination. And what he's saying is that the impressions of the senses and the ideas of the memory have a force and vivacity, a strength, a liveliness beyond those of the imagination. And that seems to be what enables us to found an inference from them. When we infer beyond what we have perceived or remembered to something unobserved, it seems to be that extra force and vivacity over the mere ideas of the imagination that enables us to actually draw an inference from it. Thank you.


get the net that is big oh my gosh to the biggest look up what's going on guys welcome to another video I'm actually out with Lindsay today and we're actually going to film a video on Lake Lanier she's actually looking to come to scat so we're gonna go out there hopefully smash a big spotted bass keep working that's a big one you get them I'm gonna get the net for you that's a good one these are on four pounds there you go awesome yeah there you go there you go this is a decent one you know four-pounder but he's pretty good I'm surprised not more came up there you go well we'll put them in the live well got him he's not big hmm that's one thing about these baits I lost a it's the craziest thing ever I've never like I was just coming here and I would just almost every cast but they you lose so many fish on like I hooked the other day I hooked one I hooked two or three like spots over four pounds and right when I hooked said they just stayed still and they just shake their head I couldn't even move them in just the hooks on he broke me on that was a big one too that was no joke and only how like two more of these either they broke the whole thing off because you gotta throw it on like four pound line oh my god look at that oh my gosh this one is doing in front of us too oh my god oh my god look how big get the net get the net oh my gosh I don't think this is the one that was hit me all I know is that was a big spot I've ever seen oh my gosh this is actually is a big guy there's a monster he's coming up he's not as big all right I can tell you one thing that fish that was hidden it out there how big you think that fish was like that was about a six pound spot I get how he ate that that was insane I ain't a bad one at all I wish the big one would have got it there is what that happens to me all the time all I know is that one that was hidden it was about five times that side multiple out there that's a good sign right there though that's even better sign look at him behind it look at him behind it did you see that I don't know if he so didn't kind of see it sunglasses did you see him like tailing it what is going on these fit I think that's how we're working it I really do because you could tell they're not like I mean those were kind of aggressive but God I wish I got yours on film that was crazy oh my god let him let me let him eat it let him eat it did you get him oh my god that is he doesn't just keep pressure on him that is a monster oh my god I was about to say you're directly over that pile to keep just keep keeping pressure on him that's the biggest one yet look at him barely hooked look at him just fell be careful to be strong look at his stomach that's a good one look at that one look at him God look at that just tearing that bait up finally coming up and even bait and they won't eat our get the net that is big oh my gosh this is the biggest look up give me the net bring him up to you oh my god now that is a freaking monster now that's a beast of a spot look at that one that's crazy see how fat he is I was just talking about it too wow that's what I want to say I think I'm gonna call that one it's big that big this week oh that one's well over four for a spot throw in there throw in there tell me how right there tell me how that fish it missed it that many times oh my god that was another four or five pounder that's a small one there's a big one that was a giant you see him God you're casting there but he's not bad I thought he was small oh my tell me how now I'm about to say let's leave right after that cast that is unreal those are good ones too oh my god no no God keep working and keep working and keep working it always behind it get him do you get him big neither net he came off oh my god that was it that was a four pounder right there that is a shark there's multiple what's going on guys he knows editing this video I was looking at the footage and I realized I didn't close off the video but I want to kind of explain what we did this day this is kind of something I want to incorporate in every single fishing video I want to tell you guys what we did what kind of rod I was throwing a kind of line and if you guys like that leave a comment below because I'll do it on the water and give all the details that we're doing to catch this fish how we caught this fish and what we're doing so I should get out there with Lindsey and had a great time it's actually my first time fishing with her she's possibly coming to sked on my coaches looking into recruiting her and you know we had a good time we're out there catching this fish on top water so what we're doing in those hot summer days those fish you know all those fish they they push out the go out deep especially on Lake Lanier and Lake Lanier deep structure it's not like ledges or like not that stuff like the Tennessee River alright so there's brush piles on you got those humps on the main lake they sit off on but the most of stuff I was fishing we fished a few humps so I'm here and there but we did fish a majority of brush piles alright so what we're doing this fish or tuck up all open those brush piles and Lake Lanier is very clear the spotted bass very aggressive and that top water is going over that pile misses piles around 35 foot I mean they're deep and when that top water is going over those piles they just want to come out and just destroy that thing especially if there's a little bit of current a little bit of wind but that day this day in particular this fish were very slow because it's like bluebirds guys zero wind it was just tough so the adjustment that I was experimenting with to start working my top water very very slow and those fish just start coming up finally started to commit we didn't catch many fish this day but all the fish that we caught were very quality and she actually caught her personal best spotted bass so that was perfect um I caught one that was literally around about five pounds on the video you really didn't look that big I promise you guys he was he was huge is insane it was really crazy so he had around like 18 pounds best five fish great down the water but what I was saying so throwing over this brush piles out deep this fish coming up and in that clear water they can see it so they come up and just pound away on that top water how to make small adjustments but we still stuck to the top water deal still touch stuck to the aggressive bite but just made adjustments that aggressive bite so this fish would commit which is slowing it down slowly walking that bait back and forth I was throwing a Sammy which was chrome she was throwing a spook which was a bone color spook which is completely opposite but they're actually eating both so we didn't really adjust with that overall the rod I realized I was using the rod I was using a seven foot medium heavy it has a pretty good bit of tip it's fast action and a pretty good bit of tip wasn't too heavy it wasn't too light just perfect that medium heavy rod seven foot perfect that was great the real is using was a 73 to one gear ratio reel in the line I was using I actually used braid on all my top waters so I was using I believe it was 30 pound braids that's pretty thin I'm gonna get that long good cast out there and I get that fish in the boat overall thank you guys so much for watching enjoy this video please smash the thumbs up button please leave a comment below and please subscribe if you haven't already and there's a little bell next to that subscribe button make sure you go click that thing and stay tuned for more videos I know this video might have been kind of just calm and you know I didn't really film too much and it kind of sucks it wasn't like super hyper you know it wasn't too much going on but thank you guys for watching enjoy this video do what I said like comment subscribe I'll catch you guys next videos


You don't need a million TikTok followers or a hundred thousand Instagram followers. What you really need are your 1000 true fans.  You probably can't even handle, you know, 10 inquiries in a single day would probably already kind of stress you out, right? So this is really important to understand about marketing, especially authentic marketing. There's that old saying that no publicity is bad publicity. Well I disagree, not just because we don't want people talking bad about us, but we don't just want any random people coming to our website or becoming followers or, you know, signing up to our email list. Why? Why don't I want more traffic? Because two reasons.  But more importantly, when you, next time you promote your service or your product or program, those random followers are not going to sign up. And not only that, they're not going to engage with your post, which then buries your post in the social media algorithms so that even the real people who want and need what you offer can't see the post. So this is why I am grateful about the audience size that I have. As of this recording, I have, you know, eight thousand or so Facebook fans and seven thousand Instagram followers. And honestly, that is, that's enough. Gratitude, my business is doing really well. Doing better than it's ever done in, you know, in 13 years. And I have a very peaceful life. I have a, you know, I'm able to manage everything without the kind of stress that I see others have who have a much bigger audience and, you know, staff to take care of, et cetera, et cetera. So let me share with you this idea that inspired me years ago. And you may have heard of it. It's called 1000 True Fans. And I'm going to read you a quote from, from that article. And the quote is from the article by Kevin Kelly. It's very famous. It's called 1000 True Fans. And it goes like this. It has never been easier to gather 1000 true fans around a creator and never easier to keep them near. Instead of trying to reach the narrow and unlikely peaks of platinum bestseller hits, blockbuster celebrity status, you can aim instead for a direct connection with a thousand true fans on your way. No matter how many fans actually you actually succeed in gaining, you'll not be surrounded. You'll be surrounded not by fattish infatuation, but by genuine and true appreciation. It's a much saner destiny to hope for. And you are much more likely to actually arrive there. Let's run the numbers a little bit. Okay. If you had a thousand true fans and each of them spent $100 with you a year, a year. That's, you know, less than $10 a month with you. Guess what? You have $100,000 a year, six figure income. Now, chances are most of you watching this have a product or service that costs more than $100 a year. You may be looking for clients and your clients may be paying you $300 a month. Right. So if you have clients paying you $300 a month, that's about $4,000 a year. You only need what, 25, right? 25 people to reach, am I doing the numbers right? Yeah, 25, 25 clients, right? To reach $100,000 income. And how many, how many fans do you need for 25 clients? Right. True fans, especially. 100 true fans probably will get you 25 clients or, okay, fine. Let's, let's put it out to 300 true fans will get you the 25 clients. You see what I mean? It doesn't require a lot. So let's stop like scrambling for more fame and traffic and using Instagram reels get a lot more views and all that's all that hashtags ridiculous stuff. Now I'm not saying hashtags are ridiculous. But anyway, when I have tried using them, it's either gotten me more bots and spam. Or it just hasn't gotten me the right kind of followers and fans. So let me, let me explain that where, where does true fans reside in, in this sort of universe of followers that you have? So let's, let's start with, I imagine concentric circles. So imagine this with me at the center is your authenticity, your energy and expressiveness, your creativity and talents is at the center, which then, you know, vibrates the content and the offerings that you have. So you, your authenticity is at the center right outside of you is the circle of your true fans. Again, we're just aiming for 100 people. Okay, maybe 300 people, maybe 500, maybe even a thousand is a lot. Right. It's a lot of people to, to, to, to manage. So let's just say we're aiming for the, for the 100 true fans right, right around us. If you, instead of one on one clients pay you three to $500 a month, maybe you have a group program where you charge $100, $100 a month. So that's about $1,000 a year, 1200 a year. And with the 100 true fans, again, that's six figure income, right? 100, 120 thousand dollars. So you, your authenticities at the center right outside are your true fans. Okay, maybe 100 true fans, what, what you're aiming for.  You know, you might have 300 Instagram followers. You might have, you know, 500 Facebook fans or, or whatever. You might have a thousand person email list. I don't know what the size of your follower list is, but it's greater than your, your true fans.  Now they might not always engage, but they engage on a semi-regular basis, but they're pretty consistent in seeing it. You're able to reach them that these are the reach numbers that we go for on when we are looking at social media analytics. And these followers, some of them occasionally buy your service or product. So if you had like, you know, 300 followers, right?  All right, something like that. So you've got maybe 100, you know, you're aiming for 100 true fans. And you're aiming for 500 followers, 500. Okay. And then you've got outside of that circle are your potential followers. The potential followers, who are they? They're the people who when your followers and your true fans share your content, right? Occasionally when they share your content, those people, the friends and the colleagues of your followers or your potential followers, they occasionally hear about you by seeing the content that one of your followers has shared. And your potential follower base is, you know, possibly much bigger because depending on how much of your content is being shared could be in the thousands, okay? And then outside your potential followers is the rest of the world, is everyone else. And we're not trying to reach, again, we don't, honestly, if you had a million TikTok followers or 100,000 Instagram followers, you would be so much busier just in terms of like responding to people. You would probably lose the gratitude for the engagement that you're getting now and it becomes kind of honestly stale, et cetera. It, you know, and I have some experience of that myself, but so be grateful for the true fans, the few true fans you have right now who engage with just about everything that you do and they buy much of what you create and put out there, your clients right now, for example. Be so grateful for them because if you serve them well and if you understand them well and therefore create the content that really delights them and serves them and really makes a deep fulfilling impact on them, guess what? Those true fans will ignite the passion in the rest of your follower base, right? So at the center, again, of the circle is your authenticity and your authenticity, your passion for your message and your mission ignites your true fans. And the true fans delight in your content offers, your presence and their being served by these things ignites their gratitude and their passion and helps the followers, some of the followers become your true fans and your followers occasionally share your stuff and then you gain more. So in other words, instead of thinking about getting lots of traffic and just got to get tons and tons of people to my website or to my social media, care more for your true fans. Care to understand them, to serve them, to love them well and if you are truly able to serve them through your business, your services and programs are making a deep impact on them, then guess what? And your content as well. Then they're much more likely to help you expand that way. So let me let me share with you what a true why what. OK, so I've described these numbers and the true fan stuff, but but what about on the more mindset level? OK, what why are true fans so important to focus on? And the one, remember, I said your authenticity is at the center. You can be really yourself with your true fans. You don't have to ever feel like you have to dance. If you don't want to dance, if you want to dance, wonderful, then please dance. Don't judge. You don't judge yourself because your true fans also are looking positively on your dancing or your non-dancing. In my case, it's non-dancing. But for some of you, it's dancing, right? You can be really yourself with your quirks, with your mistakes, with your faults, quote unquote, because your true fans easily overlook that. Typos, right, grammatical errors. Um, in your video, I don't edit my videos. Now you know why I don't edit my videos because I'm not talking to everybody. I don't care about getting hundreds of thousands of YouTube views. No, I just want to get a couple dozen of YouTube views. The right couple dozen, the right couple hundred of YouTube views or Facebook views or Instagram views or whatever. That's all that's all I want. I don't need to be entertaining.  OK, so the more you can dive into your authentic expression and mission of service through your business, the more you can be lit up about that. The more you are lighting up the life of your true fans. OK, so you could be fully yourself with your true fans and you don't ever have to pretend or worry about the mistakes that you make. Don't ever worry about making a bad first impression or whatever. OK, now, second point, really important. Your services are magically effective for your true fans. I don't know if you've ever experienced this. I have many, many times. You provide the same service to two people. And one person gets so much out of the service you provide. Whereas the other person, meh, they don't, you know, it didn't really affect them that much, or they might even not like it. This is the difference between a true fan and a everybody else. So you just you showing up as you are with whatever service or product you provide.  Oh, wow, your your service is life changing for me. So notice those people who benefit the most from your services. Those are your true fans. And if you get to know them better, you will naturally. So here's the magic of it all. The more you get to know your true fans individually, right? You get to know them and know their mindset and their heart set and what they need, want, are seeking, what really lights them up and what struggles they have. The more you get to know them, the more you're naturally going to create content for them. It's just a natural thing. You don't even have to do anything different other than getting to know them well from your heart, from your mind, really immersing yourself in what they're needing, what they're seeking, what lights them up, right, what keeps them up at night, so-called. What are their frustrations? What are the delights, what's their personality type? All the more you get to know them, the more you'll naturally create content and offers that align with them magically. So this is why we need to care, care, care so much for the true fans. And another signal of who your true fans are is you enjoy them. The people that, of all the clients you work with, right? The clients that light you up that you most are most excited to see or to work with or the customers that buy that that you're really, really looking forward to seeing how they use the product. Those, that's a signal that that's your true fan. So it's a really wonderful kind of two-way street.  Why wouldn't we all focus on true fans? Why are we all focused on traffic and followers, right? And just come on, let's stop the madness there and let's dive into our heart and say, let's just let's let's get to know our true fans. If I have one person right now, if I have one follower, maybe that follower is a true fan, maybe let me get to know that one follower. Yeah, you contact the one follower. You have one fan right now. You have one follower, one person who actually likes your Facebook page, Instagram, Twitter, YouTube, media, whatever. Get to know that person. There's an interest. Why? I mean, unless they're a spammer or a bot or something like that. If that's a real person, get to know them. That's that's the one you are working with right now. Now, if you have a hundred, then you need to look to see who comments more often or likes more often or buys and study that, right? So when you have enough true fans, you know, which is which is the aim now that I'm going to I hope that you will take this aim on instead of, OK, I've got to get a hundred thousand, whatever, followers or fans or 10,000 person email list. No, no, no, I've got to find my 100 true fans, my 300 true fans, my 500, depending on your business model. If it's one to one, you probably just need 100 to 250 true fans. If it's one to many, like a group program or online courses, you probably need more like 500 to 1,000 true fans. But if you aim for the true fans, to start with I start with 10 and then go to 50 and then go to 100. Right? If you just care about them, that that tends to grow. If you if you get the true fans, then all you have to do is whisper your offerings. You don't have to shout, be persuasive, use conversion tactics and persuasion psychology. No, no, no, you just whisper to say, oh, here's my new offering. Here's my new product. I'm really excited about this. And I I put this together because of my care for people like you, because I have gotten to know your needs over time and what you what what you've tried before that hasn't worked for you. And I I put this together and I I look forward to your feedback, right? So. I think this is a much just like what Kevin Kelly wrote in the original article, 1000 True Fans, which you can find by going to Google and Google 1000 True Fans, Kevin Kelly. This is a much senior approach to marketing, isn't it? A much more. Well, I always say, authentic way of expressing yourself in the world. And it's I think it's genuinely worthwhile as an effort for life to instead of seeing marketing as a means to an end. Oh, I got to do the marketing so then I could be real with my clients. Come on. The marketing itself is a. Practice of diving more into how you really express your potential. And if you see that marketing is the practice of learning how to express your potential, you know, through words, voice, art or whatever it is you put out into the world. If that's what marketing is, that is what's what authentic marketing is. It's the practice of learning to express your potential in the most authentic way possible. What's you and you're always learning about yourself. And as you more did you do that more and more, your true fans will naturally find you and get attracted to you. And as you study them and and you'll naturally do more of your content offers to meet their delight and to meet their needs.  I hope this is encouraging. I hope this is a shift of perspective that allows you to, dare I say, love marketing. I hope so, because then you'll do it consistently. And of course, then you'll you'll be on well on your way to getting as many true fans as you need. Thank you for joining me and I'll see you in the next video.


Hi there! My name is Daniela and I recently completed my 120-hour course with ITTT. I highly encourage everybody that wants to be certified in English teaching to do this course. It is a very complete course and I learned a lot of good things from it. It has all things about grammar, pronunciation, teaching methodologies, and I love it because it not only focuses on getting to learn the language in order to teach but also getting to find the perfect ways to make your students develop their receptive and productive skills which are the ones that actually makes us able to speak a second language. And you know aside from this it's a self-based course so you can complete it at your own time. I was able to complete it in about four months while having a full-time job so you know it's pretty easy to complete on your own and yeah I highly recommend it if you're looking to be an English teacher and I hope that you guys enjoy it as much as I did. Thanks so much for watching! We are ITTT, the leading provider for TEFL and TESOL training courses. If you liked this video please subscribe by clicking the button down here and click on any of the videos here on the left for more interesting teaching tips for getting certified to teach English abroad and online.