Thank you guys for coming for this talk. So today we're going to learn something about talks mainly but Before I learned it's actually a tool which has the bold aim to actually standardize testing inside Python And we already have tests you may say everyone heard about pie test But if you like a lot of the one of the guitar repositories for example for the pie to source with itself You see that by down there. There is a touch that any file meaning it pytas itself uses stocks Or you can go it if similarly does that or there are other tools such as for the example request also does Similarly uses stocks So if you come and start want to contribute to this project you might get the question So why is this talks all around and what actually this purpose is? Hopefully by the end of this session you will have a good understanding of what stocks tries to do why it's needed And what can it do for you? How can you use it how it works? Okay? So let's start with the first question why it is needed Yeah, just to brighten up the mood ever so often I put in a few pucks here and there so That's for that. Okay, so let's start with like generally you have a your Python application. What kind of parts Python application nowadays has so first and foremost you have your business logic This basically boils down to your actual source files This is what your manager writes for you to actually or pace for you to do Okay, then we have the test which are basically for yourself So you can actually ensure that whatever your manager asks actually doing whatever you wrote Then you have some packaging because usually whenever you create an application or even like a library You actually want to package it and deploy it to the where it will run or to the other users So you need to have packaging then you need to also have documentation Because someone else when comes back still need to understand the project then you have nowadays also Quite popular type checks for example my pipe. I try to actually check if anything's okay or not in your source code And then you have also like stated code analysis. This is think of tools such as flake or pep8 or piling and Finally usually when if you especially if you're writing the library This is true. You want to support that library for more than one Python versions so that everyone can Be happy and start using it and therefore you actually want to test that you whatever you're creating Works under multiple pythons occurs and then there's another Another dimension which is mostly used for example the Django world where you have multiple versions of Django So if you write a Django plugin you want to ensure that it runs with all types of Django versions Okay, so these are basically Complications which means that instead the like beforehand you maybe had to write one test now You're that one test instead now you have like basically 10 tests or 12 tests or similar a lot more tests which you want to basically run and Additional thing which is all usually nice whenever someone comes to your project and they want to like quickly Get started with the project. They don't want to read two pages of how to get started developing They usually would be nice if they can just have a single comment which they can use to actually set up the entire developer environment, so to say and Obviously you want to ensure that all this kind of configuration and all these kind of Steps and all these kind of checks in your application actually pass after each commit So the next people who come and start contributing something to your project It's actually you can start with a clean slate and doesn't have to first appear whatever is broken in the project Luckily, we live inside the great ecosystem of python This means that we have a lot of people who are eager to open source their solutions for various solutions for various problems And what this means that for example, we obviously have a tool for everything for test We have pie test knows test for packaging now this is quite for libraries there is setup tools fleet or Poetry but for applications like pex or ser or things which are now this quite popular Or the documentations both things and make docks is widely used inside the python ecosystem As I said before and the static analysis tile checks like black Piling flint also make it Then we have all the ways we can create parts of a virtual environment Which basically have to test multiple python versions and then you also have we can use this also to test the virtual Dependency types for example, you want to test again Django one and Django two in the same time Okay, so now basically You can set up for your project use one of these tools and make sure and you use one of these tools and basically Once you use that tool everyone can be sure after every comment that everything runs Okay, but the downside is that now basically you introduce to your project 10 tools and Everyone who wants to basically just maybe Contribute even a little might need to actually on all those 10 tools and understand how they need to be used to actually Be able to work with the project. Okay, so This is not really a Good place to be because basically now you mean that whoever comes to your project You will have a really steep learning curve to actually join the project and actually understand why all is why all these tests are Needed and making basically you will have some really sad users when they want to contribute to the project because they Will not actually understand why something for example my field some checks my feeling in the CI For which he locally did not fail for example stat Quite common example is that for example He messes up the formatting or some static checking and even to locally test past It will still mean that the CI will broke on the remote and this generally leaves Contributors needing to come back all the time to whatever they started to create so The idea would be that it would be nice if you could somehow Bring down the bridge or build the bridge between the CI and the local development environment And somehow we could basically be possible to run the same thing that we're on the CI run also locally. Okay, so As I said beforehand GitHub Advertisers creating the contributing file which basically means someone has to read it and understand it and then actually use it Then you have the option you may probably at one point you will get fed up with Copying around comments. So you will start writing shell scripts to actually contain all this kind of test Or if you're really hardcore you go and write a make file, which basically does the simp. It's more like an advanced shell script. Okay So here's just a good example how one of the shelves could look so you basically you want to basically start with Just checking that if anything fails stop don't continue and then basically start to packaging your project installing it creating a Virtual environment running your test and if everything wants all these comments are run You probably everything will also pass on the CI side. Okay now As I said beforehand this in this example It's only for one python which is like a system python would be nice to add virtual environments Because what if you need to support both for python 3.7 and 3.6? so also You want to run all checks regardless and actually print maybe at the end of the report because they're on profile here I did not end that I did not actually address the point of maybe would be nice in the end we would print out all the things which failed and because that's what the usual actually will need to address and Would also be nice if you could actually run this in parallel Because basically a money many of these tools can run in parallel because they're not depending on each other okay, so as far as going to actually testing multiple pythons, you can use the virtual amp or the VM which is added to python core libraries and Basically, you can create your own lightweight Side directory and then keep installing your package into it We this you can use basically by activating but you don't have to actually activate it if you really want you can and you can Spell out the full path you can use the full path to actually run Things inside a given virtual environment. Okay, obviously this now requires you to actually remember. What is the pet for virtual environment or? This basically Once we had this just for one virtual moment this kind of our best trip now becomes this 10 lines which makes All still does not actually do any reporting when also just hand there's one single python versions. You probably want more than that So one can see that this point that this kind of writing this kind of magic scripts Which run every test basically every kind of tools starts to be hard to actually maintain It also looked error prone because if you can do anywhere and type of the other if you want to add another environment It's like you have to type a lot of other it probably will Incorporate a lot of copying around so this sort of seems like There must be a better way with this and And what we want is happy users. We want them to be jumping around in our project So let's try to do something like that and this is the the talks of dream Talks was actually started out by the same developers who started out pie test They envisioned to the testing the test runner more or less to be talks and pie test to be actually the test frame the testing framework, but you can they Isn't those to be the tool which actually drives which People start interacting with Okay So how can we achieve merging the CI and shell based testing? Okay So the idea is that we should be able to run locally everything which we run on the CI This is all especially important because in anything breaks on the CI You want to be able to reproduce it locally because that's how you that's where you can actually For example start debugging interaction understand what's happening. Okay? So Talks is basically a lot for a Python project to define all tools in one place Meaning that all kind of tools that you may use you may add checks for it You can define it in one single configuration file with their actual configurations Furthermore you also have a central way of invoking them when we talk about central way of invoking them think of it like make targets that's probably the best approximation or generally just build targets and Finally should be ensuring should be creating an environment which is isolated and reproducible So to say so when you are and then it should be and by isolation. We don't just necessarily mean virtual environment You also mean for example shielding you from whatever you have in your user operating system environment Okay so It is basically a CLI tool meaning if you actually to actually use to talk you don't need anything You just need Python pip and then just install it and Then you can invoke it with for example pi to minus and talks and that if the user should work it and should be able to run All the testing without actually remembering. What are the comments? Okay? And it basically manages creates and runs the repressible environment So this is what talks actually does for you it basically will ensure it has the has a look at your configuration It will try to recreate your old your recreate a Testing environment for a given target exactly as you defined it. Okay, so let's see how it actually works This is like a flow diagram which shows what talks actually does it initially has like a simple configuration phase So this is basically just putting together everything you have in your configuration file And whatever you passed in from the command line plus whatever may be inside the operating system environment Then there is does Some of the steps are optional So you don't have to do all the tabs for example the packaging is an optional if you have a library You also want to for example package your library because when you want to test it You actually want to test the package version whatever the end user would use not what your local file system contains. Okay, and But as I say this is basically packaging so you can also use it for your applications So once the packaging is done it will for each of your targets it will Define a virtual environment and this virtual environment will face of a three phases It will have an environment creation install phase and finally it will have a run comments face and Once all the comments have run it will have a reporting. Okay, so this is for example a simple configuration I'm not sure how good it is try to do me Shows a bit better. So for example here is a simple project. I defined the Three environments for example one of my environment is basically just running the test on their pike in 2.7 For example here, and then I have a linting a documenting and a publishing target also this target For example the linting because you can use a spiling 2.0 requires python 3 plus So I specify to you like python 3.7 my documentation does the same because maybe inside my conf pi I actually want to use the fancy f strings and all that things So it is possible to specify that for the documentation is a different python environment or a different version and then I also Defined in the end a publishing for example, I don't have to actually remember how to publish everything. I go just define there that For me publish basically means have an environment which has both setup tools and wine and then just basically run The setup pi as this baby still and then use twine to actually publish it Okay, so this means that now basically whenever I need to do publish I don't have to anymore remember whatever I just call the publish target and it will work And it will create for me and make sure that I have the correct twine versions and that kind of things, okay? The first thing which I have there in like the first time when I see embolist that is basically the ambulance Which will run always so the user doesn't specify what should run it will run those environments in dent order more or less But as I can see things which I don't need to run always I can define it as an additional one and they are for me to be run as on demand For example the publishing is something we probably don't want to do it after every comet So that's something that is not actually defined inside the default environment so to say which are run by default. Okay So Yeah, yes, you can see each of them are like separately defined They have their own section where you can define not just the dependencies You can also define their actual Arguments that you want to pass on to those kind of configurations and this allows you for example You can now have all your configuration in one file because most of the tools provides command line environment flex and you don't no longer necessarily need to have Custom configuration files laying around like five four in your project for each a different kind of project. Okay For example, this will be the actual documentation building and you can see it even generates a Unique build directory for it will the user can actually then see the output if they want to see it and Yeah, now, let me Okay, so Let's go the next one the packaging so the packaging is basically It creates an installable package. This is the only that's when you have a library the build dependencies as At the moment they are not actually Meaning that from wherever the environment you're actually invoking tools needs to have all the build dependencies now, this is a temporary thing because Long I wrote your long term, but probably is more like in three months or so the plan is that one's people will have PEP 517 and for 518 support we will actually be able to specify our project or build dependencies inside those files and We'll be able to actually ensure also that you can actually install like people insh ensure that you have all your build Dependencies like build dependencies are for example the setup tools that you want to use But also like additional ones which are next actually doing the build but are required to do the build for example setup tools SCM is one of the popular switch you can use to like automatically version your project. This is also like Build dependency, but it's not actually a build. Okay So The next step environment creation It basically wants to be optimized meaning that if the environment already exists you already run the comment beforehand It will not recreate it from scratch. It will reuse it Now as I just you can remember beforehand like here I had here at the start section where I defined what kind of Python I want so this means that there must be a way somehow the application or the tool needs to figure out What pythons do you have on your computer and what actually interpreter where it lives? so for this one we actually use the System path on linux. So basically we try to see if there is a python 3.7 executable in your system Okay, obviously this doesn't work on Windows on Windows. You need to use the py exa for this kind of Interpreter discovery. There are two peps which is basically detail how Python discovery should work on different platform basically like a Unix and Windows and the tool follows basically those two's ideologies and We use virtually of the create virtual environments for the given version and Then at the end of it there is an install dependencies meaning that you basically we just whatever you specify You can specify explicitly dependency one of the things we install the dependency specify here This supports whatever pep 440 supports meaning that we can also specify like requirements takes the file They're basically just get forwarded your installer, which by default is peep but for example someone can use peep amp or whatever other they might want to use and Then there are those other dependencies after we install the project dependencies or the ones that specify this for the tool Then there's another set of dependencies the project itself and this also means everything specified inside the Insta requires you'll also be you installed in the second phase. Okay Now there is a slight Yeah, the difference is a peep but can be changed real tools Okay So once you installed your project you have it available in a fresh environment Just as it would be installed basically at the user end if they would use it You then the following things you actually run your comments. Okay, so for this kind of comments for example here We do tea things or three things. They are tea comments to be run. The first comment is basically Let's just build the documentation. The second thing is basically Let's see if all the links are valid inside the documentation And then the final one is just print out for the user where he can find the documentation and view it. Okay One of the important things that we do for running the comments as that we basically strip away most of your operating system environment variables And this is quite Helpful in a lot of the cases especially when you're relying on some environment variables or your project has some environment variables Which drives its functionality. It is often the case that you set it locally But then forget it that on the other users machine that not maybe set so this ensures that you can already fail on this kind of Environments not set case locally and not have to actually wait until other users reported that by the way on my system That doesn't work. Okay, and basically the chain of comments to run it one after another and whenever one fails We stop and if any of the comments fail that the environment is marked as being a failure Okay, and We Stream basically whatever your tool puts out on the Output this can be configured basically but by default we stream out this allows you to actually see What the tool output was so you can then take a take action based on that? Okay So and the final thing is we just printed nice report For example in this case you can see that two environments failed Basically the test and the linting but the documentation generation finished with success Okay So basically this is like the workflow of tux. This is what it does you it basically ensures you that you have a virtual environment Which is as specified inside your configuration it automatically sets it's up it will package your project It will in the end Allow you to actually print out whatever happened when you run it the idea is that for example If some new user joined the project They don't have to say like so how do I run the test basically they can just invoke tux and that will print out And that will do everything for them and basically have a local CI if they need it Okay, let's see some use cases or how it actually works in practice Okay, so for example, this is a default angle you can see that this actual column might take some Time because this is creating it on a fresh state you can see that we have three Targets we have basically the same the testing the linting and the documentation phase And we will start creating this phases one by one once we just invoke the tux And it will invoke pythons with the correct argument It will ensure that the environment has been created and whenever any error happens We immediately displayed for the users so they can act on it. Okay now the thing is This usually takes a lot faster the reason why it now it is a bit slower is because basically we have create operations there And creating a virtual environment installing dependencies because network is involved and I was involved is not as fast as many of the things So at first time it could takes longer But for example in a when you invoke it the second time then basically we don't have to do anything Then just re-invoke the comment that you have because all the dependencies has already installed and are in place Okay So it is obviously possible that you can run also just substitute environments For example the cases you might only want to test what actually modified the source code for example documentation generation You don't really care what you actually developing or for example another popular use case of this is that you want to run your if you have for example testing against two Python environment and You want to ensure that for example you run the test for Python 2.7 and 3.6 and then you want to have another step after it which basically Calculates the aggregated coverage report that you can do we are this kind of way because you can specify that run these two Python environments And then display an aggregated An aggregated coverage for those two, okay Okay, another thing that Is quite nice is that you can actually document whatever the targets are so the users don't have to actually guess So you can add descriptions to it and then the user run for example, this is for our own Toxin if I'll basically when someone says okay, what can I do with this project? They can just list whatever the possible targets are and they can read if they want to run any of them or not Okay, you can see that there are default environments, which I'll always run and then additional ones which are on demand basically another option is that you We support the pause arcs So basically if you testify for your comment that you want to pause our guns and this means that if you use the double dash and After double-dash you can basically forward arguments to our underlying tool This is very helpful for example in this case I wanted to run the test under Python 2.7 and if anything fails I wanted to enter into the debugging for example PDB Okay, so I did not I could basically just pass them on to the invocation After the double dash as additional arguments and they automatically get forwarded This is also a nice way for example You can have more verbose test reports and all this kind of things Which are basically more like you want to understand more deeply what something broke and not just run the default test It's so to say Okay Another option Which we have there is basically we have another a project which is like detox is basically there to run Things in parallel for example, it is possible to run all the environments in parallel and then display an aggregated output Now obviously the limitation of this is that we can no longer stream the output in real-time Because if you do basically you would mean that five environment five tools running parallel and all five tools would Print the character on the screen. It would be quite hard to actually see what's on the output. Okay So another quite to you can actually create a developer environment When I say developer environment and this is especially true for libraries It means that we don't actually install your package as the user would install it but we install your package using PPS in developer mode, which basically means that people not actually install your package by Putting it into the site package but creates a sim link and say that the source code lives in your wherever you're developing and then the Whenever Python is running it will actually pick up your local files and not the remote another site package files. Okay Okay Now just one thing once you start creating this kind of environment or generally it is quite healthy for example in your Environment you can quickly select one of the environments to be the one for developer Ecosystem to use for example in this case for Python There is this pymb managed plug-in, which is quite nice Which allows you to basically just right click on any of the environments We may talk for any other virtual environment and say but by the now change the Interpreter package to this Python, which is inside this in this folder Okay So another thing gives is quite popular is like obviously Especially like big projects care about 45 Python versions you might not have all the Python versions locally on your machine So it doesn't make sense to force failing those environments with you. You don't have pythons. You can specify that only you run environments, which For which we can actually find the correct Python version for example don't try to run Python 3.5 if that's not on the system because it will fail But it's not actually a failure that the test field is just that we could not we have dependently missing for it Okay Another helpful thing is and this is especially helpful for like Bigger projects or like a Django project is that Django projects Historically have like a lot of versions and you want to check a lot of Combinations and ensure that all the combinations actually work It allows you to build equally specified and you can see in three lines all that kind of Django combinations And there for example, you can see that for example the Django master actually you can specify even like github links And it will install the latest from github and try to test it again that okay, so as you can see basically we just 10 lines of configuration now you can test against like 12 combination of Dependently that your users might run into okay now obviously you might not necessarily want to run all this locally when you develop But this can work something in the CI and whenever something blocks in the CI You locally you don't have to manually recreate the environment. You can just say by the way on the CI I saw that the pi 37 Django master field Let me just recreate that and run the test only in that and try to debug what actually is the underlying issue for that Okay So CI integration as I said the whole concept of it is that We would prefer to not be to be CI agnostic meaning that we want the CI to basically don't have to actually Specify all these the CI should basically just invoke the same thing as the user would locally basically just invoke talks And this means that your CI configuration if you use stocks beside the user actually having the option to easily set up Locally any kind of environment now the CI you don't have to use the property CI environment But you can basically just say that oh by the way make sure that I have these pythons in that in that CI and then finally installed in with Install for example my talks and then just run talks and that's the entire CI configuration Okay So Let me sum up a bit what I Try to present here today and what we learned So the first thing is obviously there are weaknesses of all the tools the biggest fitness is or what people often get confused is that dependency updates the way people works if you say to peep that install peep 11 and Unless you specify that by the way, please make sure that you upgrade if you have any things the package is not there If you'll actually not install it this will say I have peep it doesn't even check what version it is It says I have my version peep is already there. I do not actually evaluate that you wanted peep 11 So that if I you need to specify the dash Capital you which basically means to upgrade and then it will force make sure that it Upgrace whenever installs that peep version another thing It is which but this is not the true for example dependencies For example, if you install a library and the library's dependency is already there people not actually upgraded and because we use peep we have this kind of Mistake on our side or like this kind of vulnerability on our side, which bottom line falls down to that whenever you add new dependencies to your project Talks will not actually upgrade your or pull in your new version of the dependency it will add new dependencies But we'll not actually if you just bomb the version requirement. It will not actually ensure that the bigger version is installed okay, so The work around for now is actually just force the recreating the environment You can pass in the dashboard flag and this basically means by the way you recreate the environment from scratch and that ensures it the medium plan goal for that is that once peep will actually support Installing or like having dependency graphs and evaluating that kind of things this should be also solvable okay Another thing is that the build dependency I said beforehand this probably should have some solution in the next few months and Let's see what strengths we have so what we can use basically you can make sure that you can add new tools to your project and To do users can run those projects locally without actually needing to teach them the new tools Only if they actually want to run those or like they actually want to debug those new tools Then they have to learn about it It allows you to run your test it under multiple Python versions without having to manually create all the virtual environments for the Python versions Plus it allows you to run locally exactly what would run on the CI Okay, so this means that if and as I said before like if anything breaks on the CI, it's easy to reproduce it locally and Finally, it is just a Python package meaning is runs on any environment So forever your contributor or a user may be it's easy for them to get on board because now they for example Compared to make they don't have to install something which only works on unit system okay, and It has a hopefully a readable Configuration instead of some ugly only configuration, okay So finally one thing which we have like similar as py test has we also have a plug-in system So if you want to do anything which doesn't Work out of boxing talks you can do it by having the plug-in for example, you can see that They are plugins out there and quite popular which basically swap out The Python setup I think for example to using CMake to build in the project or use the run you running ducker as a To as an environment where you can have virtual environments So ducker is also kind of like a virtual environment So it's easily to plug in those kind of things, but there are a lot other things for example There's also in development the package You should allow you to use conda if you're more like a conda developer and Use the environments from there Okay, thank you very much, and now I'll take your question What tools do you have any thoughts about SQL integration or integration with databases? Or is it just a purely Python specific thing can you just write your own tool to go off and populate your postgres database with Test data, etc. And how do you extend it? I guess the question is the broad question Depends on what you're using. I would say probably the easiest what you're speaking about is basically I suppose database dependencies I Would say probably what you're looking for is you can set Create different kind of fixtures which set up different kind of databases and then you can specify for example That different environments generated use different kind of fixtures which set up the database and That could I think fairly reasonably work and you can do like that for example if you want to test both with Oracle and MySQL That would make it possible I'm not sure that you could probably also do it without having the texting direction You could probably also just have parameterized stress in PyTest Depends I think it's personal preference which you prefer I Thanks for the talk Would you know if during the environment creation stage? Would you be able to specify requirements.txt file or something like that? Yeah, I feel like in the dependencies you can actually specify both the requirements takes the or constraint takes the which is another Thing which we introduced as opposed to what's in setup.py. Sorry as opposed to what's in what's specified in setup.py So setup.py is only required if you have a library Usually for libraries, I think the best practice is to use setup.py to the specified dependencies Requirements takes is more popular for applications like the requirements takes were developed for applications If you have an application, then you don't have a build process You only have the dependent environment creation in that case you can specify the requirements takes it easily Just pass it on as instead of dependently I think I think at one point you mentioned running things in parallel Doing multiple environments at once. I don't remember seeing talks do that before. How do you it's So at the moment it's not built in meaning that you need to run detox Which is also lives under the tax organization, but it basically is just a driver which Allows you to run multiple text environments in parallel. It's an higher abstraction So, yeah, it's not built in but if you look up detox should be what you want Will detox go as far as running a couple projects in parallel or is it still strictly one project at a time? It is one project at a time mostly because your different projects might have different configurations That means say there is no real reason why You we could not like have parallel Configuration parsing and running. I don't think anyone actually raised the need for that So strongly that they actually wanted to develop Thank you for that Just a question you mentioned you can make a variation on the jungle dependency in your project there In our case, we have dozens of dependencies Usually we ship with every dependency has been fixed to a specific version and what is interesting is to see for Many of those can we upgrade Because they're fixed in time and we realize three months or six months later You know, maybe we should upgrade to the latest and not be stuck in the past and we want to explore the Versions we can now use How could we leverage that kind of tool to explore how we can upgrade our dependencies without breaking completely? Because sometimes they you know, they collide and it doesn't work anymore so So in my view that would be a Requirement that is fixed to specific versions and one other requirements that would be more flexible and say okay Yeah, I mean if you can see this example, for example, you can see that Django 1.8 is actually fixed to Django 1.8 But for example, the master is actually master. I could easily just specify Django latest which would be like What I have without any dependency specification and I need to install the latest. Oh I Mean technically speaking you could do it with similar like like this kind of factor expressions That because we called in factor expression. They're at the top They are put there even like the dependencies you can put it in So it allows you to do even more deeper kind of this kind of specifications But just a word of caution if you have like 10 dependencies, you're talking about factorial of 10, so I'm not sure you would actually Run that in real time probably usually like in practice what we saw is usually People want a few major things and maybe over latest and then when that breaks the according to that you may be altering your Like for example specifying that by the way our Package no longer works with because it broke on the old when I installed all the latest It broke with this packages latest So I'm just pinning that to a given version until someone takes up the task of fixing what why it doesn't work now with the latest Because otherwise you just have too many the space is too big and even if your test run five seconds You're already looking at like Probably next year when one of the running finishes Okay, any more questions, so we don't want to wait the next year, so we have break now and have lunch


This study examined the effects of climate, soil type, and groundwater systems on hydrological droughts. It found that droughts are more common in certain climatic zones, such as the equatorial and temperate climates, compared to other climates like the arid and polar climates. Additionally, the duration of more severe droughts is shorter in the equatorial and temperate climates due to higher recharge rates. Soil type also plays a role in determining the frequency and severity of droughts. Permanently grassy soils have little effect while quicker responding groundwater systems have a greater effect. Finally, groundwater systems have a strong influence on hydrological droughts, especially in wetter climates where they can control the duration of more severe droughts. This article was authored by H. A. J. Van Lenen, N. Wonders, L. M. Talikson, and others.


So, I just want to start things off here today by saying that I am beyond relieved that the noose concern around Bubba Wallace's garage stall in Talladega wound up not being targeted. It was still a noose and NASCAR was right to investigate it and the fear and the anger that Bubba likely felt after being informed of it was still very real, but I legitimately felt sick when I heard the report of it on Sunday night and I would hope that you did too and to later find out that it wasn't something targeted at Bubba just made you feel relief. You know you have concern for the safety of that driver and it's still not good that the noose was there. It wasn't in any other garage stalls throughout the entirety of NASCAR and there are a whole heck of a lot of other ways to tie a knot for a door pull. Going forward hopefully people who do see anything like this will flag it to NASCAR, flag it to officials and do literally any other knot that does not symbolize death and the terrorization of black people. We can avoid that very easily and that should be avoided, but at least we have the relief of knowing it was not targeted. The people on Twitter making bad faith arguments about Bubba partially nullify that relief. There are a lot of bad actors out there for sure, but I'm glad NASCAR reacted. I am happy with how transparent they have been throughout all this and how much they had Bubba's back and I hope that energy from NASCAR and its drivers continues. This may not have been a targeted attack, but people have still been terrible to Bubba the past few weeks on Twitter and everywhere.  So Bubba still needs support. I hope that NASCAR and its drivers continue to support him against those who try to bring him down, but overall just relief. This is not a terribly heinous, racist attack. I am relieved that was not the case, but still hoping that NASCAR and its drivers continue to support Bubba going forward. Now, let's turn the page and move to Pocono. Welcome on into the Heat Check Fantasy podcast powered by Number Fire. That's right here on the FanDuel Podcast Network and NumberFire.com. My name is Jim Sonis. I am a senior writer and analyst for NumberFire here to break down a double header in Pocono this weekend with the Pocono Organics 325 and the Pocono 350. We will be going through both races, at least in a sense here, on the podcast for today. First race is Saturday at 3.30pm Eastern time. The second one is it's Sunday at 4pm Eastern time. So you will have until the afternoon for each day because there are races beforehand on both those days, the Truck Series and the Accinity Series. So a little bit later lock. We're going to go through strategies for both those races within the podcast today. The tier by tier breakdowns will mostly focus on the Saturday race because we know where drivers are starting there, but the Sunday one will at least touch on some drivers I like who depending on where they start for Sunday. As a reminder, we do have a lot of stuff going down here on the Number Fire Daily Fantasy podcast feed right now. We've got PGA podcasts every Tuesday, myself and Brandon Cadulla. We have our NASCAR podcast, of course, probably going to be Friday going forward just because of the way the scheduling has worked for NASCAR, when they release starting orders, stuff like that. Just makes more sense to record those on Fridays. We know where each driver is starting and when applicable, we'll have USC podcast as well. USC podcast this weekend is already posted with Austin Swain and on that same line, the USC continues to roll on and there is no better place to get in on the action than on FanDuel. For just $8 and 88 cents, enter FanDuel's 150k USC Octagon for this Saturday's event and compete for your share of the $150,000 prize pool, including a $30,000 first place prize. Take your pick of Justin Poirier, Mike Perry, Jordan Griffin and so many more and follow along using FanDuel's live scoring as the fights unfold. Someone is going to win $30,000 or at least a tie of it and it might just be you. For more details, visit fanDuel.com or download the FanDuel app today. Eligibility restrictions apply. Let's take a look at the track breakdown here for Pocono and the big thing to know for both Saturday's race and Sunday's race is that they are going to be short races. It's 130 laps on Saturday, 140 on Sunday and for shorter races in NASCAR DFS, our emphasis is always going to be on finding drivers who can get place differential points. It's the same line of thinking as Talladega. Talladega and Pocono could not be more different from a track composition perspective and from a racing style perspective, but in this sense, they are the same. There is less upside for drivers who start at the front via laps led when the is shorter race, but drivers starting further back have the same upside as usual because there are the same number of drivers in the field. So in general, our process is going to be to target drivers starting a bit further back who can finish well and get place differential points. Our routes for getting there will just be different on Sunday from where they are on Saturday. Saturday starting order will be set the exact same way it has been for recent races. The top 12 cars and owner points are starting in the top 12 spots in the race. They drew last night for the order of those 12. The same procedure was taken for the drivers ranked 13th through 24th and 25th to 36th. So in general, the best cars in this race are starting up at the front. That does complicate things. In order to get place differential points, you've got to move up through the field. When the cars ahead of you are better, that makes it tough to make those passes. But we should still be actively trying to find drivers who can finish better than where they're starting. And to me this leads to a pretty clear strategy for DFS. I want a driver up front who can win the race. I am not targeting them because they're up front. I'm just targeting them because the winner is likely going to be in that front group and they are going to be good for DFS regardless of where they start because winning bonuses matter a lot. After that, I want to go with a balanced lineup that allows me to target drivers who are starting near the middle of the pack. These are the drivers who aren't in the top 12, but they've also clearly at least been competitive this year from an overall standpoint. They might be outside the top 12 due to inconsistency, due to bad luck, but they have the ability to get a top 10 finish. And I want as much exposure to that group as possible. A balanced lineup also keeps me from using drivers whose equipment won't be competitive in Pocono. So it actually does serve two purposes. So for Saturday, I want a driver I think can win. I will go with two drivers sometimes starting towards the front if things break the right way, but I don't think you necessarily even need to. Scoring will be flat, so it's not as important to pay up for the studs, meaning you can go with a single stud approach, which is not something I do all that often in general. Then I want to go balanced from there on out and load up on the drivers starting between starting around 20th or so. And there will be competitive drivers there. And there will also be competitive drivers starting outside the top 24. And we'll talk about them later on in the podcast. So that's the strategy for Saturday, going balanced, getting a winner, and then going balanced from there. For Sunday, it'll be a lot easier to find place differential. The top 20 finishers from Saturday's race will be inverted for Sunday. So the driver who wins will start 20th. That is obviously going to make it super easy to find good place differential options. Then the driver who finishes, the drivers who finish outside the top 20 will basically start where they finish, unless there are driver changes, car changes, etc. That's where they're going to start on Sunday. So if a driver is fast, but has issues, they could be another outlet for place differential. That's going to do two things for us. The first thing is it's going to make it really easy to find place differential drivers for DFS. In the two races this year that have used NINVERT, there has been only one driver in a perfect lineup who started inside the top 15. That is out of nine drivers, only one of them started inside the top 15. And those races were both 68 laps longer than the one we have on Sunday, meaning the drivers starting at the front have even less upside this Sunday than they had in those races. So that's why we want to skew towards the back. Second, the other implication of the way the starting order is said is that scoring will be higher, will have better place differential options, which is going to make the ceiling for scores go up. When that happens, when there is a gap between the highest scores and the rest of the field, that's going to make us or allow us to be a bit more top-heavy with our rosters than we otherwise would be. I'm not saying I am going to punt necessarily, but I will likely be getting two place differential studs in most of my lineups, even if it does lower the salary floor of my lineup a bit. You will want to watch Saturday's race if you can. That way you can pinpoint the drivers who were fastest in that race and target them on Sunday, even if they didn't get a good finish to show for that speed. All drivers who do not wreck will have the same car for both races. So things should be pretty even from one race to another, and we can learn a lot from what we see on Saturday. So the two races are pretty similar between Saturday and Sunday, but in both we're going to want to emphasize place differential when we can find it. That's the big similarity between both these races. Because they're short, you want to try to identify drivers who will finish better than where they're starting. The differences between the two races are noteworthy. On Saturday we will want to go more balanced and live in the middle tier, load up on drivers starting between 13th and 24th who can finish well. On Sunday it'll be okay to be a bit more top-heavy as we'll have more studs in position to get a ton of place differential points. So just always be looking for drivers who can rack up place differential points, but keep the roster construction differences between the two days at the front of your mind as you're building lineups and make sure that you are doing that and differentiating things because the public may not do so with their lineups. We want to make sure we are reactive and fitting our lineups to the unique circumstances for these two races. With that said, let's dive into our tier by tier breakdown of Pocono. Again, focusing mostly on Saturday, but we'll give some thoughts on Sunday as well. The elite tier on Fandle is Kevin Harvick at $14,000 through Joey Logano at $12,000. In this tier we have all three of the big Joe Gibbs racing cars and Kyle Busch, Denny Hamlin and Martin Truex Jr. I am confused about how to handle them. I will have a lot better of an idea on Sunday, but for Saturday we're kind of going in here with a lot of without a lot of good info. The Toyotas have been awesome at Pocono in the past. They have won five straight races here. That's a good. The bad is that these cars haven't always had the same speed this year. When I look at just the current form segment of my model, Hamlin is the highest ranked guy in this group. He is seventh and that is ahead of both Busch and Truex. So it is a legitimate question for me about how to handle it. If I want to dive into the JGR cars this week, my favorite route for doing so is with Truex, at least for the Saturday edition. Truex is starting 11th, so there are there's some more place differential juice there and he's been pretty fast so far this year. So I would likely rank Truex second in this tier despite my concerns about JGR. They're going to be a team to think long and hard about. Do you want to buy into the track history or do you want to fade them based on the current form? My inclination for Saturday is to likely be a bit underweight on guys like Hamlin and Kyle Busch relative to the field. The guy I think ahead is ahead of Truex in this tier is Kevin Harvick. Harvick is starting ninth, so again a tiny bit deeper in the field and he's been the one guy who can hang with Jogins racing at this track and that's worth it's that's something saying something because Harvick has never won in his entire career at Pocono. He's won like basically everywhere else but not in Pocono. He does have five top fives in the past seven races here. He has led 30 or more laps in three of the past four races so Harvick leads my model straight up by just a bit. He is number one in my model. So with him starting ninth, he will be my favorite driver for Saturday in this tier and I feel okay saying that. Ranking them from a Sunday perspective without accounting for starting position because then we don't know where people are going to start Sunday. Denny Hamlin will be ranked higher. He will be in the same tier for me as Harvick and Truex then. He is awesome at this track. This is his age 39 season which is a driver's statistical peak according to David Smith of motorsportsanalytics.com and Denny has had better form than the other JGR cars so far this year. So Hamlin is high on my list for Sunday depending on where he starts but a bit lower on Saturday because he is starting closer to the front so Hamlin a Sunday guy for me whereas Truex and Harvick are definitely drivers I want for Saturday. The second tier on Fandall is Ryan Blaney at $11,800 through Eric Jones at $10,000 and this tier has two drivers starting outside the top 15 and I like both of them. Those guys are William Byron and Eric Jones. Byron is starting 16th and in four career cup series Pocono races Byron has three top 10s. He has a top five finish and that top five came while Hendrik Motorsports wasn't performing as well as it is right now and what's interesting is that Byron actually led 25 laps from the pole in this first race last year. He also won here in the truck series during his age 18 season which weirdly was not that long ago because he is still super young. Byron does not have a top five finish yet this year but he's had the speed to get one and he doesn't necessarily need to get a top five to pay off when he's starting 16. So Byron is one of the better plays for Saturday's race. The same is true for Eric Jones who is starting in 19th. He actually checks a lot of the same boxes as Byron does. Like Byron, Jones has been awesome at Pocono in his career. He has 10 total races here between NASCAR's top three series, the truck series, Xenity series, the cup series and Jones has three runner-up finishes in those 10 races. In the cup series specifically Jones has four top fives in six races. So the form for Jones has not been good and we discussed the struggles of J.G. earlier. Those have applied to Jones for sure but he's cheaper than the other guys. He is starting further back so both William Byron and Eric Jones will be core plays for me on Saturday and I haven't felt about a cash game lineup yet but I would not be surprised at all if those two drivers were to wind up within it. Looking forward to Sunday, I desperately want Ryan Blaney in a position to get plays differential points because Blaney rakes second in my model behind only Kevin Harvick. He has six top fives in the past seven races and those have all come on different track types. In Fontana, which is the only other race at a non-drafting big track on the schedule this year, Blaney had a third place average running position, was running second late in that race, cut a tire but had race winning speed. I think that Blaney can win on Saturday so even though he is starting second, if I'm filling out a good number of lineups, I am going to have exposure to Blaney because if he wins from second, leads a lot of laps, he can still pay off for DFS. But the big one for me will be trying to be overweight on Blaney for Saturday or for Sunday assuming he's not directly at the front once again. I would also kind of flag Alex Bowen as someone who interests me for Sunday and maybe Saturday? He's running 10th Saturday and at that spot I'd rather jump down to guys like Byron or Jones but Bowen did finish third at Pocono in 2018 and he wiped the field in Fontana. So I prefer Blaney between the two but both he and Bowen are guys high on my radar for Sunday depending on where they start. Just two guys I want to flag so you have them on your radar for that Sunday race. The mid-range on Fandle is Kurt Busch at $9,800 through Matt DiBenedetto at $8,100. This range is Kurt Busch, Jimmy Johnson, Eric Almerola all starting the top 12 and that's going to lower them for me but they could work for Sunday depending on where they start. Johnson is highest on my list straight up for Sunday followed by Busch and then Almerola. For Saturday my favorite guy here and this will shock you regular listeners out there is Matt DiBenedetto. Once again, DiBenedetto is effectively a Penske car so the speed should be good. He had a 12th place average running position in Fontana but most importantly DiBenedetto is starting 21st. That is perfect for our strategy. He doesn't have past success in Pocono but again that all came in a different car so it doesn't matter honestly. So DiBenedetto is a really good option for Saturday's race. I also really did Clint Boyer in 18th and Tyler Redick in 15th. Redick is starting a little bit high and he grades out but he does grade out super well in my model. I like him as a win bet at 75 to 1 F. Andrews Sportsbook and he will be in a lot of my line-up Saturday still. My Saturday line-ups but I think that if he were to start a bit deeper Sunday I would love him. So I'd rank this tier DiBenedetto, Boyer, Johnson and Redick. All of them would be solid options for Sunday too if they start low enough. I've been tinkering around with making projections. I don't feel super comfortable with it so I'm not going to release them or talk about them very much but I would say in the tinkering I've done Clint Boyer grades out really really well for Saturday's race. I'm not sure how much I buy into it but he's starting 18th, got good equipment, decent history of Pocono so I'm going to definitely go towards him. I'm just not going to talk about the projections yet because I don't know if they're good enough to actually discuss. So just you know worth mentioning that he does grade out well in a hypothetical projection-centered world. The value plays on FanDuel for Saturday are Christopher Bell at $8,000 through Ryan Newman at $7,200. This value tier is all starting between 13th and 24th except for one driver. That guy is starting all the way back in 36th and he is a cash gameplay for Saturday and that guy is Christopher Bell at $8,000. Bell's main appeal is that he's starting 36th but the equipment has also looked a lot better for him recently. Bell has had a top 16 average running position in five of the past seven races and you will definitely take a 16th place finish out of a driver starting 36th. It might now win tournaments but it will definitely help you cash and there is always the upside for Moore too given the talent that he has. As with William Byron Christopher Bell is a former winner here in the truck series so Bell is a cash gameplay for Saturday, he is a core play for tournaments and among the lower salary drivers Christopher Bell may be your top option on FanDuel for Saturday's race. The other guy I like quite a bit for Saturday is Chris Buscher. Buscher, former winner here that was a fluke with rain. It should not impact your process. I would not count that as a positive for Buscher just worth noting. What does help though is that Buscher has been much improved recently. He's had a top 17 average running position in three straight races. He also had a 17th place average running position in Fontana starting 24th. That'll work. He's not as high as Bell for me but he will be second on my list. Austin Dillon is third followed by Ricky Steadhouse Jr. Moving down to the punting tier on FanDuel this is Bubba Wallace at $7,000 on down and there are some drivers here with equipment I would deem lively enough to consider though I'd rather live in the tier above this with guys like Buscher and Christopher Bell. The two guys I like most here are Bubba Wallace and Cole Custer. Bubba is starting 23rd. Custer is starting 25th and Wallace had a really scary crash here two years ago and it was pretty frightening to watch. He's never finished better than 21st at this track but it seems like the equipment is less of a hindrance this year than it has been in the past. Wallace finished 13th in Homestead. That is an equipment heavy track. He has a top 18 average running position in three of the past or five of the past six races so I think that Bubba and the equipment are getting better from where they were. With Wallace starting 23rd that will definitely work though again I'd rather get up to the bell and the Buscher range but Bubba's definitely a value play at $7,000. With Custer the equipment is not a question. He drives for Stewart Haas Racing that's definitely a plus. The results for Custer this year have not been good despite that. Custer did win here in the Xfinity series last year though. He's led 14 or more laps in all three Xfinity series races. He ran at this track so between the two I would go with Custer by a bit over Wallace. Custer has a better track record in the lower ranks. He has a better equipment but both those drivers are at least options especially with how well Wallace has run recently. Even at tracks that do require good equipment. Outside of Custer and Wallace I would be okay with John Hunter Nemechek or Ryan Priest but again I'm mostly looking for balance on Saturday and I think that if you can if you could set like a salary floor and try to get to guys like Christopher Bell and Chris Buscher as their cheapest drivers that could be pretty enticing for Saturday's race. Balance is balance tends to be key and I think that I'm trying to get there but if you need to come down here Bubba works Custer works Nemechek and Priest at least in consideration as well. Let's close up shop here with picks to win and because there are two races I'm going to do two picks to win one above $10,000 one below for both Saturday and Sunday. The ordering of the two is kind of random I don't honestly know but for Saturday's race my pick to win above $10,000 will be Ryan Blaney starting second tremendous current form. He has won here in the past I think that Blaney is going to win on Saturday. He's 12th one on Fando Sportsbook. I love that number go bet Ryan Blaney right now. For Sunday I'm going to go Denny Hamlin. I think that I have faith in the Joe Gibbs racing cars to get better as the weekend progresses and that to me says I should buy into them more on Sunday than I do on Saturday and Denny Hamlin again at his statistical peak good at this track one here last year was good in the other race as well so my picks to win in the upper range are Blaney Saturday Hamlin Sunday in the lower range below $10,000. I'm going to go with Jimmy Johnson on Saturday he's starting 12th that is a little bit high from a DFS perspective but from a race winning perspective he grades out pretty well in my model and again that is even including track history when Hendrick Motorsports has not been as good as they are right now so I'll go Johnson for Saturday and I am going to pick Tyler Redick on Sunday once again 75 to 1 to win over a Fando Sportsbook. I think that is longer than it should be so I'm going to go Johnson and Redick for the value plays Blaney and Hamlin for the stud tier my win picks for this weekend that is all that we have for today I will not be doing an extra podcast between the Saturday and the Sunday races but hopefully the information discussed will be enough for you to fill good lineups look at the data from Saturday or watch the race try to find drivers who had a lot of speed even if it was not reflecting their finishing position and target those drivers aggressively for Sunday's race that is all that we have for today once again though we are back into pretty much a full swing here on the Number Fire Daily Fantasy podcast feed PGA podcast on Tuesday NASCAR podcasts on Wednesday UFC podcast when the card is good enough so make sure you are subscribed to the Number Fire Daily Fantasy podcast feed wherever you get your podcasts and if you like what you hear please leave a rating and review as well the PGA and the NASCAR podcasts are going up on the FanDuel YouTube page as well so make sure you are subscribed to that big thank you to Calvin Theobald our video producer for recording the video side of things chopping up some clips and putting those up on YouTube thank you cow as always and finally thank you to everyone for tuning in forward today hopefully things go well for you both on Saturday and on Sunday we can come back next week a little bit richer and talk some more DFS this has been the heat check fantasy podcast powered by Number Fire


I'd like to welcome everybody back to the independent investor channel. My name is Ryan. We're gonna jump into my Roth IRA account This is Roth IRA account number two. This is of a self-directed nature. This is just shy of a hundred and twenty six thousand In the account to a chronicle the holdings and show how I deploy my wealth I enjoy doing these for a couple different reasons. It actually gives a nice backdrop To when I'm explaining why I do what I do. Okay, it's not necessarily so important for you to understand what I do in way of the actual holdings within the account By all means if you want to copy the account you're welcome to do so but I would stress the importance of understanding the portfolio fundamental aspect of my investing thesis What that means is I try to deploy multiple strategies. I put multiple elements to work in that strategy and to meet those strategic goals I put different products to work within the portfolio that fill that need for different strategic application and For new investors, this is a great way to sit back and you know watch a real portfolio How it performs how the dollars do fluctuate? What a real portfolio looks like? This is dollars at work. So you're gonna see some red. You're gonna see some, you know, down three hundred and seventy five dollars I don't want somebody to look at this and say wow. This is crazy I I could use all kinds of stuff for the three seventy five now this account has been maturing for many many years and I have taken a lot of trading profit and the ability to enter a $10,000 bill Into a company like Apple computers I don't focus on this three seventy five whereas a new investor may look at that and say, yeah, I don't know man You know Ryan's not a very good investor. You know, he's down a dollar and thirty cents in Citigroup or he's He's down sixteen dollars in Google What you what you fail to see is the amount of trading profit that I've been able to render off of Google Over the over the last few years. It's made me a small fortune and a lot of those dollars are Float into new opportunities. We're just waiting for those two to mature and Turn into good investments over time and they and they will I have conviction on the stock market I love stock market investing, but I'm mature enough to understand and I can share with you guys that Not every position that you enter into is gonna work out right away when you expect it to so matter of fact It's probably gonna humble you in teaching you that it does not work out when you expect it to and it does not Go up when you expect it to it will probably do the opposite of what you expect it to do It's funny how that happens a lot of the time in stock market investing But if you stay true to your program over time It usually pays off quite nicely as as indicated here by the portfolio that you see in front of you 126,000 in the tap into work in this portfolio Don't know how many total total holdings There are about four or five elements just like the other accounts that I've chronicled through the channel through the evolution of the channel and what I share and where I find value in For those visual learners that can tune into a message like mine and see a real portfolio work where I'm putting my dollars Why I'm putting my dollars to work that way and and it can help you really relate with the idea of What invested dollars actually look like not not dollars in a savings account Not dollars in your wallet not dollars in a checking account These are invested dollars within one of the most sacred if not the most sacred of all accounts And that is the Roth IRA account in other words. I've been able to fund this up over the years Doing what I could when I could up to the maximum caps. Remember, we can only Contribute up to six thousand dollars a year on this as of late Into this account to put to work year over year. Okay, so it's not as if I can just take Hundreds of thousands of dollars and put it to work in this account. It doesn't work that way It has to be grown up over time and that's the real benefit to you is understanding what you're looking at here Is in fact unique in nature? And and how I deploy money in the stock market. So the passive I always start with first I think it's super important to earmark the passive I have three elements of passive product to work in this portfolio The first is the VYM. This is a nice 50 share position. This pays a nice 3% dividend just over 5,000 In this I've got the VNQ here Just a twenty five hundred dollar twenty five share position in VNQ, which is the real estates REIT in this to work to add a little bit of real estate exposure in this portfolio and Having realty income in the other portfolio There really wasn't any other REITs that I wanted to invest in from a single perspective So I just bought the whole sector put it in there. That's fine And that'll work going forward the final is the NASDAQ and the triple Q's exposure here 10 shares They really nice to build this up over time as I do have some long-term strategic goals For each of these holdings as the account grows and matures as certain speculative positions mature grow and provide some house money I'll have some drop points to rotate some of those profits into and Invest house money That's the whole game here is to render as much house profit as you possibly can With the real dollars that have flowed in here over time and and it becomes a lot easier To invest in the manner that I do with house money When you know that those are profits that weren't earned dollars on the onset when they float into this account Very very important take away. So that's it for the passive element for the dividend growth It'll be the largest element of this portfolio or pillar that you guys could relate with see an example of Invest like this or not. That's really the key here is to understand. Okay dividend growth What does it look like Ryan? Well, it looks like on the top end with Apple computers That we've got a pretty good technological name here that helps embolden that dividend and healthcare with Abbie right below it I have liquidated my city group position. I'll probably come to regret that who knows But we were up nicely in the position. It was a multi-year position for me And I just wanted to take some profits and that roll it elsewhere and that's what I did and that's fine We'll skip over some of these Large growth and we'll go down to IBM in the old tech category Johnson and Johnson and healthcare Kimberley Clark and Staples Coca-Cola in Staples McDonald's I've liquidated out and I've shifted over to the other portfolios. This was a big profit-taking initiative here Took this profit and then rolled over Five more shares of what this 20 share position was in this account. So just like climbing a ladder I Invest like climbing a ladder very very simple. I don't make this more difficult than it needs to be. It's a lot of fun I render a lot of successes within the portfolio. I have a few missteps. The only difference between this and Gambling is that gambling is an all-or-nothing game? In other words, if I invest if I put a hundred dollars down on the blackjack table, I could lose it all right Investing I could be down But I choose when I call my chips and that's the important part to understand about investing is that just because you're down With a paper loss doesn't mean you're always out It means that you just control your hand and you need to continue to feed that investment the key element to making that a successful investment and that is usually time Okay, Merck a Dow component here and health care Nice big position here at 50 shares. It's just shy of 4,000. This was the spin-off from Merck Oregon here with a hundred shares. That's nice Royal Dutch Shell in the energy space Raytheon technologies we've emboldened that position up to 50 in industrials and Finally Exxon mobile in the energy space. So a couple big oil majors here within this to kind of round out the energy sector exposure large cap growth in here starts with Alibaba in the Discretionary space. So that's a nice big position. That's a run-up nicely last couple days that man I was down $300 just a couple days ago So if you heard that and you're looking at some of these positions, they're down at the time of filming this I have no doubt that within a couple days On the short term or medium term that these will come back to positive positions It happens Alibaba boom just swung to the upside went from 210 to 230 in a matter of a couple days So where we were down 300 bucks in the position now we're up 111 2% nothing to shake a stick at This is a great name and sales force here 25 $6,000 bill here In cloud computing a nice technological large cap growth Dow component. I might add so nice there Large cap growth in Google So that kind of rounds out my large cap growth in this portfolio. So we've got some really nice big names in here Really glad to see those in there really good anchoring that large cap growth element in this portfolio and then finally the The little bit of speculation that I've got in here With so five not going to talk about that. That's just a thorn on my side right now highly on very very encouraged on this position here as we look to embolden get a little bit of Appreciation to the upside there We'll continue to monitor that we're long this speculative name both of them We only own two nothing to nothing to get too crazy on But 2,500 shares there in highly on In the Roth IRA that rounds out the portfolio review To provide you guys awareness on the elements that the actual fundamental strategy That I deploy within the portfolio is the important takeaway for you guys If you're going to try to mimic this and duplicate it overnight You're probably going to have a hard time. Okay, this has been built up over many many years But it doesn't mean that you can't take $1,500 right which is 10% of the portfolio. I just disclosed to you and start the exact same account It's relative. It doesn't matter. It's not a mark of an individual Everybody's got to have their starting place I did and I started the very account that I just disclosed to you guys with that very same $1,500 guys if you appreciate the message coming through You want to make sure and subscribe to the channel leave your comments at the bottom of the video Hit the thumbs up for me notification bell most importantly need to share this message Google doesn't do it for me. So I expect you to do it if you resonate with my message The fact that I separate Opinion from fact in the stock market Recommend the channel bring them on would be glad to have them will empower one investor at a time Until this message starts to catch on an understanding that investing Isn't so crazy after all It can be accessible to the masses out there And the more we foot stump this message The more we can validate that fact guys appreciate you tune in and with me Good luck in your investment future


The right of the people to be secure in their persons, houses, papers, and effects against unreasonable searches and seizures shall not be violated and no warrants shall issue but upon probable cause supported by an oath or affirmation and particularly describing the place to be searched and the persons or things to be seized. Hey everyone, Dylan Schumacher, Citadel Defense. Today we're going to talk about the Fourth Amendment. If you're unfamiliar with those words that I've read, that is in fact the Fourth Amendment. We talk about these amendments a lot, but it's important sometimes to go back and actually read the literal text and the words. It helps us ground us in what reality is. So the Fourth Amendment of course exists so that you are not subject to unreasonable searches and seizures. I consider the Fourth Amendment of course one of the most important amendments in the Constitution. It's number four for a reason. I always think it's funny that number three is the one about not having to house soldiers in your house, and that was the third most important thing that the Founding Father has wanted to put in the founding legal document of our country. We're not doing that again. We're not hosting those soldiers in our house. I just think that's funny of course, because that feels so far from reality now. However, it's in there. So the fourth most important thing that we have is the protection against searches and seizures. This comes before the Fifth Amendment, which guarantees you, of course, your right to a fair trial, not having to testify against yourself, et cetera, et cetera, et cetera. So that's how important the Fourth Amendment is. Unfortunately, it has been degraded in several facets in our country, TSA, anyone. However, it still exists. We still use it, and you still need to call upon it often, or I should say at least when necessary. Some examples of the Fourth Amendment are as if of course you ever get pulled over in your car and a police officer asks to search your vehicle, always say no. Talk about that in a second. However, the reason I'm making this video is because there was a story posted below where a kid was on school online, right, doing school online, and he had a BB gun on the wall behind him, you know, just like somewhere back here, whatever. Anyway, the school of course saw this. This was in Baltimore and thought this was concerning. And so they sent a police officer to search the house. Now, God bless America, police officer can't show up and search your house simply because they saw a picture of a gun. I'm sure some people would like it that way. However, that's not reality. So when the police officer got there, and I will post the link to this story below, they asked the homeowner whether or not they could search the premises. And the mother consented and allowed the police officer to come in and search their house. Of course, they didn't find anything illegal, and then they left, right. Now, you could say, what's wrong with that? Just let them in, no big deal, whatever. The Fourth Amendment exists to protect your right to privacy.  That's basically what that's called. We call that governmental harassment. And the Fourth Amendment exists to protect from that.  So, because they violate the Fourth Amendment. What I would like to remind you, this is your daily reminder, that the Fourth Amendment exists that you should never consent to a search of any kind ever. The reason being that when you consent to a search, it's either a tie, meaning you're right back where you started, they search, they didn't find anything, it's a tie. Or they find something that you didn't know was incriminating, that you did not leave there that was incriminating. Or some other thing that they can nickel and dime you with, that could be a problem. So I would never consent to a voluntary search under any circumstances ever. I took a class this spring in Ohio, I'm in Minnesota. And so it was a little bit of a trek to get there. My buddy and I went and we got pulled over in the state of Indiana. My buddy was driving my truck. We got pulled over for going too slow. We were doing like 65 and a 70 or 65 and a 65. But we were in the left lane. He said, you got to be doing at least 70, something like that. It was bizarre.  What are you doing? Whatever. Told my buddy is just going to give him a warning for driving and asked him to come back to the squad car. And I thought, oh boy, here we go. So we asked him to go back to the squad car. And of course, he gave him the whole rigmarole and asked if he was carrying. My buddy said, yeah. And he's like, well, you didn't want to tell us all these other things.  How are you going to be there? Blah, blah, blah. Comes back up to the squad car to me as I'm sitting or excuse me, come back up to my truck as I'm sitting in the passenger seat a couple of minutes later and asked me the same questions, right? Where are you going? How are you going to be there?  Indiana is not a duty to inform state, so we didn't break any laws by that stretch. And so he's asking us all these things. And then he asked me, do you have any drugs in the car? He said, this is your truck, right? And I said, yep. He's like, do you have any drugs in the car? I said, no. And he's like, do you have any marijuana? Or he said, drugs even just a little bit, like even for personal use. And I said, no, marijuana, no, meth, no, cocaine. And I said, absolutely not. I'm thinking, we just told you we're going to take a shooting class. I don't, I don't have drugs in the car. So anyway, then I thought the next question was going to be, and I was, I was preparing to have to say, no, well, can I search the vehicle? I thought that was going to be the next question. And so he said, okay, great. I'll go get the warning. I'll be right back. And that was it. And we got on. It was, it was a really, it was the weirdest police pull of our very experience in my life. Point being that you need to always say no to a voluntary search. I don't know what that could possibly gain you. In my personal opinion, a good cop would never ask. They would either have probable cause and search you or they don't have it. And so they move on with their day. Asking is something that a, I would say less than optimal police officer would do. So that's my opinion. You can hate it if you want. But I would say stand by your Fourth Amendment rights. We need to use our rights. Rights are much like muscles. If you don't use them, they atrophy over time. So use the Fourth Amendment, embrace the Fourth Amendment, know your Fourth Amendment.  And you say yes, because you're not thinking clearly.  You can withdraw your consent at any time. You can say, excuse me officer, I have changed my mind and I no longer consent to this search. That includes anytime you volunteer for a search, that's what you're doing, you can always withdraw that consent at any time. So I would invite you that even if you make the initial mistake of saying yes, because for whatever reason you weren't thinking you're being dumb, withdraw your consent at the earliest available opportunity. Open your mouth and say, excuse me officer, I've changed my mind, I withdraw my consent for this search. And then anything that happens thereafter, of course, is their choice. And if they're going to obey the law or not, and you can deal with that accordingly. So this is my reminder to you, like I said, never consent to a voluntary search. Embrace the Constitution. Love the Fourth Amendment. Do brave deeds and endure.