Everybody forced here ripping pristine baseball four box number 18 find the random results any time of late in sports cards calm Let's get started Let's do it. You guys just three to go on that elite football God case pristine next see where 15 minutes back right now We'll get through that pristine case a little quicker than 45 minutes though. I Can go into X games mode Don't bow Craig B. Geo. You got the ash or George Fracture of Brett and Nick Vespy Orioles backwards base Rikki refractor Kodai Senga Purple Stanton a 99 for the Yankees Dude Ryan is definitely Ryan's definitely a bot. He bet on North Texas. Yeah, Chris Bryant. Oh snap That'd be cool join a bride Gold bat relic Auto Met stalling Marta to 50 I don't even know Brian have you added either one of us? I don't see you don't know my list of people I have on there It's kind of long now. Yeah, I don't go through. I just see who's online Josh young It's in Sam and blue refractor to 75 McCubby Giants Yeah, never forget never forget swings of summer Padres Juan Soto short-printed insert DM you got DMS blog. I'll get you on I'll get you on IG Ryan. I'll message you at some point Rikki refractor Parazza probably if I remember tonight, if not, it'll be one the next couple days Oh, yeah, yeah, you're not still on his name right Helsley orange Freeman a 25 Dodgers Who's on who's on first So first what what oh? It's happening everyone's got that They're a little too little One of the influence Don't want to go to work tomorrow. We got Cal Mitchell Rikki out of for the Pirates Aranola got gold Rikki Josh Smith to 50 for the Rangers. Oh Gold that's a sick color match to going going on auto Padres, Manny Machado 42 of 50 refractor Iván Rodriguez Marlins and Rikki blue refractor Miguel Vargas Dodgers to 75 Tim and the mustache and the people in the back. What is that your photo? On what is that you're talking about Instagram? Hey, there you go Cameron, that sounds nice You tell you have to like go next like allow you have to like see you can see like hidden requests or whatever We don't we don't got time for that Sean's busy doing whatever he's doing Eddie Murray got purple Devin Williams out of a 99 for the Brewers Two minutes in a wired jaw one-on-one Oh snap Mike trout Fractor Chris Bryant. We got Jersey auto Jonathan India for the Reds Kodai Senga fresh faces Yeah, Peter pot Padres are pretty good in this There's a lot of vet autos that the Padres have in this Totsies Machado and Bogarts all signed so I'm not sure about Soto, but he has number cards and stuff Burleson Rikki to 75 blue refractor for the Cardinals orange coming up here and It is Salvador Perez going going on for the Royals three of 25 Vlad Pulse Blackburn Ryan Howard purple Dave Winfield out of 99 for the Padres Now the rushman fresh faces Rikki Otto Max Meyer for the Marlins Rendon refractor a blue refractor to 75 is Libertor for the Cardinals Rikki Otto Morel for the Cubs Fractor a Piazza and that is a red to five Padres again here. You Darvish You Darvish to a five red refractor Padres doing well Like does it kind of product where there's a lot of every team has at least some chases There's like some products like tops karma like cause we can feel kind of narrow because there's not a lot of vet autos But the pristine checklist is good this year Like even the rays have like bogs and canceco autos for the devil for them Kind of like it when they space it out a bit like a Rosarena Falcon type train Yeah, they might they might win like seven games Might win like six or seven games got semi-interfractor Lars Newport they could probably get hired to clean the Patriots equipment Got them. Oh, same with the same with dolphins though You're on refractor purple to 99 gonsolin Dodgers Falcons really silly could we could win could win double-digit games though NFC South is kind of a crapshoot. There's teams all those teams could be good all those teams could be bad so It's pretty unpredictable in my opinion But the Falcons they make some good moves to shore up their defense a bit. Oh snap lindor Yeah, that division stinks right now, but I do think there's gonna be at least one pretty good team out of it at least These rise refractor Jersey Auto Nesta Cortez for the Yankees. I do think the Bucks come in last place though Riley Green fresh faces. I think I think they do I think they do Think Bryce young is alright Panthers roster is pretty pretty solid Saints defense a little older, but their experience. They also have Derek Carr who's you know decent and Then the Falcons defense got better I just I just think the Bucks are in the worst shape hunter brown there gold with 50 Ted Williams Red Sox now Yeah, now the Falcons need someone that can actually call offensive plays rather than whatever they were doing last year Gonsolin India Jake oh Jake there he is 3 Not a big praise on red or no, I just think the Falcons are a solid roster I feel like if their coaching is up to it this year. That's a super fractor in my hand Super fracture time Pull some heat tonight Pirates Andrew McCutcheon That's awesome Heck yeah Pittsburgh Pirates Super Cutch Mark H Heck yeah mark Cutch super in the house Love it love it. How do you make your tacos meter sour cream first? Well Sour cream is not at the bottom of the taco. Whatever. Where do you go in? I do well? No No, it's soft. You could just sour cream smear than me Pro move is you got to get the room temp sour cream and mix it with the meat and the seasonings and stuff That's what you got to do depending on the meat if it's like beef. Yeah Buddy Kennedy rookie out of diamondbacks Matthew batten Golda 50 class a for the guardians rookie auto bread baby to 99 for the Mets nice baby DL Hall refractor and Ruth to 75 Yankees baby Ruth Subdetroit sour cream and guac on first that's a little strange Next time I'm doing like I'm doing like tacos at home. I might I might give that a shot I like one taco and see what's up with that That's madness. I don't I'm not gonna say it's the most insane thing ever as it's tacos it's like a variation of a sandwich it's all just one thing together But I'm curious. Let me go to I'm gonna go to Epcot tomorrow. I'm gonna go like can you give me a taco with The meat on top Because they're like no Like you know what we're not even gonna serve you anymore get out of here Just don't have time to make to do tacos like that. I'm okay with like the sour cream and the meat really close together But I mean just make a burrito Cameron said his wife puts sour cream and guac on the taco before me Rikki refractor will hop a angels morano diamondbacks My defense on for her is though it's kind of like a sandwich it's just all together like It's just like an open-faced burrito I'm gonna finish it in two bites anyway to be fair Like if someone served me that I would legit not say word is eat it So, yeah I don't know Fractor eat your oh gold rikki vr for the Giants the 50 as long as it tastes good, right? Michael Harris oh snap Give me that good slow cooked beef or something like that or slow cooked chicken Yeah, deal hall rikki refractor Orioles Albert Pujols popular demand jersey auto go into the Cardinals great hits The machine The machine Was Pujols the machine before Bert Kreischer? I feel like he was Well, I guess People didn't know about Bert Kreischer at the time He's a lot younger purple to 75 larry walker Cardinals are the 99 start 99 Because his story is that he was called that and like what is on that? Russian fuel trip or something Gold oh snap Michael Harris for Atlanta Noice rikki there 24 50 Shohei going going going all I know is one thing I do want some tacos now Sour cream on the bottom or not Sounds pretty good rather green refractor tigers Gonzalez guardians trout JD Martinez blue refractor gold schmidt out of 75 cardinals And Yoshida You're seeing that dumb joke where it's like take my girl the red sox game Because Yoshida won or something like that. I tell her Yoshida won or something So don't Rookie auto market Pelfillers.  That's that goes Yankees.  Yeah All right tonight and now we got Larry Walker Gonsolin, Winfield, Stanton, Devon Williams to 75, Burleson, Goldschmidt, Ben and Tendi Libre Tour Vargas, Babe Ruth McCovey Oranges Freeman, Gold as Ted Williams Classe, VR Harris Josh Smith Orange 25 bucks then Salvador Perez Red to 5u Darvish Swings of summer, Soto Padres On the short print Yeah, we have one more break available Two to go on elite football full case All the autos now we had Mark Appel Jersey Auto Pujols Cardinals congrats Got Brett Bated in 99 Buddy Kennedy base Nestor Cortez Christopher Morel Max Meyer Jersey Auto India Gold Jersey Auto Martata 50 or Bat-Rolling Auto rather Mets Cal Mitchell Gold Machado going going going Super pretty card there at the color match and everything It's out of 50 Gold is 50 Oscar Gonzalez for the Guardians And Pirate Superfractor Andrew McCutchen Congrats 2D Pirates The one of one All right, thanks to get everybody moving on now to Full Case Pristine


In this presentation, we will continue putting together a statement of cash flows using the indirect method focusing in on adjustments to reconcile net income to net cash provided by operating activities. So this is going to be the information we will be using. We have the comparative balance sheet, the income statement added information. We took this comparative balance sheet to create our worksheet. Support accounting instruction by clicking in the link below, giving you a free month membership to all of the content on our website, broken out by category, further broken out by course. Each course then organized in a logical reasonable fashion, making it much more easy to find what you need than can be done on a YouTube page. We also include added resources such as Excel practice problems, PDF files, and more like QuickBooks backup files when applicable. So once again, click the link below for a free month membership to our website and all the content on it. So here is our worksheet for two time periods. This is the difference. We're basically looking to find a home for all of these differences. We have done so with cash and we've done so with a difference in retained earnings. So here's cash, here's net income, the difference in retained earnings. We will have to adjust net income shortly or at the end of the problem. We'll take a look at that. We'll make an adjustment for it. We're going to now find the difference for all the rest of these. Also note that of course cash is going to be the change in cash will be our bottom line number. We're going to recalculate this but it's nice to know where we are ending up at. So this is kind of like even though it's at the top of our worksheet. That's where we want to end up by finding a home for everything else. So now we're going to take a look at the adjustments to reconcile net income to net cash provided by operating activities. So these are going to be those types of things that we look at the income statement and we're going to say that these are non-cash activities meaning income is calculated as revenue minus expenses and the cash flow if we were on a cash basis we're looking for those things that are on the income statement which are not cash related. One of those things is always going to be depreciation. So we'll say depreciation is not cash related. Now again when we when we do that we're kind of going away from our normal setup here which is that we're trying to find a home for all of these items all of these differences and if I start going back to the income statement again and pulling up information from the income statement without recognizing how it is related to a change in the balance sheet accounts then I'm not going to be able to reconcile again. So how can we think of the depreciation in terms of a change in these balance sheet accounts? Well it should be the change in accumulated depreciation which started at 95,000 and went up to 110,750 the difference being 15,750. You would think that that then would be our change in depreciation that we would have to deal with here. Why? And notice the depreciation would do what you would think we would say the 104,500 we would have to add back the depreciation. Why would we add back the depreciation? Because it's not a cash related activity. It's included in this net income but it brought down net income and we didn't have any cash flow. Therefore it should be increased if we're going back to if we're going from net income to a cash basis. If we're starting at net income which is too low by this non-cash related thing then we need to add it back in. So we're going to add back in the 15,750. Now there's going to be a problem here and that problem is that this 15,750 is not what's on the income statement because if I check this I go back to the income statement and say the income statement is here depreciation is 38,600. That doesn't represent the change that I'm seeing but if I pick up this 38,600 right now without recognizing how it fits into this change then I'm never going to get to a point of reconciling. I'm not going to be able to figure out what the difference is. So what I'm going to do here is start with this 15,750. We're just going to put that there and say that's where we're going to start and I'm going to recognize that we're going to have to adjust something. What are we going to have to adjust? We're probably going to have to adjust that there was a sale of equipment or something like that. So we could do that now. I could what I don't want to do is put in depreciation and not reconcile the difference not get to this 15,750. I could either leave it here now which is what we're going to do and come back to it later and figure out how to break that out late at a later time when we do those adjustments. That's what I recommend because that'll be easier for us to figure out all these other homes get in balance and then make the adjustments we need or we can go through it now and figure out what's the difference between what's on the income statement and here it's probably a sale or disposable of equipment or multiple pieces of equipment and then we'll have to break this number out between multiple components. Now to do that it's going to be very it's going to be a little complex because there might be a loan involved there might be other things involved which we don't have yet laid out here on our statement of cash flows. That's another reason why I would recommend first finding a home for these the most likely home and then recognize and say I'm going to have to fix that I'm going to have to break that out rather than just putting in numbers here that are correct for depreciation but do not represent this change over here on our worksheet and therefore will not end up with the change in cash. So we need to make sure that we're representing the changes here so that we end up with the right spot. So our goal now is we're going to put this change here and we're going to recognize it's wrong and then we're going to get to the end of this and say it must have happened that we had a sale of equipment and then we'll go back and make the adjustments in a systematic type way. Now the other thing that's going to be an adjustment here oftentimes if we look at the income statement is there's often going to be a gain or loss in the sale of equipment here. Now that's going to be another item that has affected net income but that we don't want to have on the operating section. So we don't typically want to include the loss on the operating section because the cash that we received or on the sale of equipment is typically going to be in the investing activities. So again we know that we're going to take that loss out but it's another one of those components that we don't have here. We don't have as a change and so we're going to have to make that adjustment. These two are probably related. The depreciation and the loss are probably related and some disposals of equipment or some sales of equipment and we'll have to deal with those but it'll be easier to deal with those at the end. So what I'm going to do now is just recognize that there's a loss on the sale probably something that I'm going to have to go back to and make an adjustment with. It's probably going to be something that will involve the depreciation we will be adjusting at the same time and possibly some other accounts like Mike alone that we have to deal with at the disposal. So what we'll do now is just note that we'll put this line item here remind ourselves that we're going to go back. We're not going to put the amount here now because I don't know exactly how it represents these changes. I don't know exactly how it ties out to these changes. I know it has something to do with this 15,750 not matching what's on the income statement for depreciation, accumulated depreciation versus depreciation expense but we don't know exactly what that is and it's probably a little bit more complicated and affecting more components of the cash flow than we have laid out right now. So it would be easier for us to lay out all the components and then break out this change to its component pieces by looking at the journal and train the activity.


So as he said, yes, I'm from Atlanta, Georgia. The last snow craze we had was less than an inch, so this is really wild to me. Walking down to a conference, and in the time I walked down, suddenly we have half a foot of snow, completely foreign. So I told myself that I'd never do a mind-blowing style talk because I don't lie, I like to think. I never exaggerate, and I never like to do just one weird thing. But as it is, here I am, here you are, all stuck in the snow, so we're stuck with it. So before we get into the mind-blowing business, let me tell you just a little bit about myself. I'm Jonathan Martin. I work at the Big Nerd Ranch down in Atlanta, Georgia, with our Rails and Frontend Development Department. If you happen to be down in Atlanta at any time, I guarantee we will not have enough snow to prevent you from coming out to visit one of our campuses. So we'd love to have you. So everyone nowadays, when it comes to JavaScript, talks about scopes and closures. But for years, people have survived really well without this memory-intensive complication on top of the JavaScript run time.  Fortran, for example, long predated closures. It was introduced in 1957. That was back when a corrupted punch card really meant that you just got some mustard on the card as opposed to a corrupted memory. So considering we still rely on so many of these super-optimized math algorithms in Fortran, I'd say we did pretty well without closures or local variables or any of that nonsense. Then we had x86 assembly introduced in 1978. In my opinion, this was one of the first real languages because you could totally write hello world and operating systems in it without this notion of local variables or any of that nonsense. People actually used it, and they did pretty well with it. And then we had Ruby introduced in 1995. Now we all know it came as just the last ditch effort to save object-oriented programming from the closure craze that was happening during that time. And thanks to Ruby, Oop lives on very strongly and people still write things with classes instead of closures which are heavily frowned upon by Twitter. So to the point, we don't actually need closures nowadays, but spoiled developers naturally keep demanding more features of their language. Now history tells us JavaScript was invented just as a toy substitute for Pascal developers or something like that. So closures were tacked on for these Pascal devs because they were filling the impending irrelevance coming on with the closure craze. So we got closures in JavaScript. The unfortunate thing is closures are slower than a Java GUI. Now over time, developers have fixed the slowness by rewriting some parts of JavaScript. For example, React's virtual DOM tried to rewrite the DOM because of that we totally have a much faster mechanism we can use, no one uses a DOM anymore. So there's different things we could rewrite to speed things up. So to address the underlying performance problems in JavaScript as a whole, well, what better way to speed up JavaScript than to rewrite the entire underlying local variable mechanism, which is incredibly slow.  I can tell you in big O notation how long it would take to derive that. So we're going to address these problems and along the way, we'll try to fix the syntax because I mean, no one remembers the var keyword when they're typing out the code. Unless they have JS hint running with its not-so-subtle proddings. So in the spirit of IE compatibility modes, we're going to develop a polyfill for those closure-bound developers to help them get back the speed of global variables that they know and love from assembly and Fortran back in the day. And it will also help them bridge over and forget all this, they've learned about pure functions and Y-combinator propaganda. Now, there's a few rules. When we write this code that we'll use as polyfill, there's a few rules that our code will need to follow to make this efficient. After all, we're trying to speed up the underlying mechanism. First of all, we may not use the native local variables. We may not use it for assignment. We may not use it for retrieval. And we may not use parameters on our functions at all.  Second, we cannot attach any data directly to a function. Functions are objects, so a lot of people might do some memoization on that. We're not allowed to do that because that could totally lead to memory bloat, which is, we don't wanna talk about that. That could cause issues. However, there are a few things we are allowed to do. First of all, we are allowed to access one global variable, naturally. Also, we're allowed to use amnesic function bodies. These are not function bodies that have no idea who they are. It's just they don't remember things you tell it. So for example, you may not put things on that function with memoization, and it may not know anything about native local variables. So in other words, our functions are no longer going to be closures. They're just buckets of code. Now, we are also allowed to use shortcut local variables for the purpose of this demo, just to make the code a little easier to read. And with these rules, we can derive something like this. So here are the three things we might do in JavaScript. One is assigning a variable, another retrieving, and another setting up a function to be put in a local variable. We're going to replace these. So for variable assignments, we'll replace it with this mysterious s function, which will take in the name of the variable we want to assign it to, along with the value. Anytime we do a lookup, we're going to replace that with the g function, g forget. And anytime we want to assign a function expression to a variable, which is gonna be the only way we'll be allowed to use functions, we'll use f. And the f function will take in the name of the local variable to which we would like to assign this function we'll be creating. Then the list of params that it would take in, and then that amnesic function body. Notice it has no parameters. So with these substitutions in place, our task is to take a block of code that looks like this. So this is a very standard non-trivial closure example. There's an outer function that when evaluated returns an inner function, which when evaluated returns an array of x, y, and z. Now, the important thing for you to notice here is that we're going to see a few edge cases come in. One, in the inner function, we're inheriting the variable y from the outer, and x in the inner is going to shadow the outer one. And also, when we execute these functions, we'll be executing them out of order from where they were defined. So for example, we define the outer function first, but, and it will be evaluated first, but the inner function will be evaluated out of order. So we're gonna throw through a few edge cases in here. So with those substitutions, we'll end up with code that looks something like this, which will be a whole lot faster. So with those substitutions in place, all we need to do is write the S, G, and F functions. So without further ado, we are going to completely rewrite closures in 70 lines of code. So let me tell you a little bit about the project that I've set up here. Hopefully the text is large enough for you. So first thing is I'm gonna take a test-driven developer approach, which means we're going to pick aspects of clopes that we all know and love, and then write some specs to describe it. In this case, to save time, I've already written those specs. So first of all, we're going to describe a scope object. This scope object is going to be the object that handles the S, F, and G functions that we call on it. And also, just for brevity, we're going to assign those functions, get and set, in this case, to some local variables, just so we can quickly use S and G without having to do scope.get or scope.set. So the first test is going to describe how this works for a global context. So this is back to the good old days of Fortran and X86 assembly, where you didn't have a way to do some work without polluting the global environment. All you had was the global environment. So first of all, like any good test-driven developer, we should make the screen big enough to see. So first off, we should run this spec and make sure it fails. And of course, it fails. We haven't even defined the scope object. So as you'll notice, we're assuming there's an object called scope and the scope is going to have that set and get method. So let's go over here to our little JavaScript file and start writing this. So first off, we're going to define a scope object. I'm just going to use an iffy here because in our implementation of scopes, we are allowed to use some of JavaScript's handy features just for now. So first off, we're going to make sure that we isolate the scope definition from the environment just because we're good JavaScript programmers and we'll write a basic constructor. And this constructor will just keep track of one thing, a dictionary mapping from local variable names to their values. So this is very much the concept of a global context. You map from a variable name to its value. So that's all we need to remember. Now for this to be of any use, we need to define those get and set methods. So let's go ahead and do that. We'll write get and get will take in one thing, the key or the variable name we want to look up. And this is really simple. All we need to do is look up that particular key in the dictionary and return it. Get is also going to be, excuse me, set is also going to be very similar. It takes in a key and a value and then it will set the entry in that dictionary to the value and we don't need to return. So let's flip back to the test and perfect. We have our first spec passing. We've rebuilt global context, awesomeness. So we need to move on from here. However, we had quite a few more specs to satisfy. Let's see if we can find that block. All right, so now what we want to do is define a general context. So some of you may have come from graphics programming. In graphics programming, whenever you want to apply a chain of transforms, you could either compute all those transforms together with matrix multiplication and do it manually or you could let your language do something like a context push and pop. This is very common if you want to build, say, a robot, but you want to transform all the robot's parts in a particular way. You might first transform the entire environment and then start building the robot with some predefined transformations. Also, this is very common in 2D graphics where you can apply a stroke or a color fill. But as soon as you leave that context, you revert back to whatever the stroke and fill was in the parent context. Well, scopes are very similar to context in the way we can push and pop. So in fact, we're going to borrow that terminology here. Notice here in our little before block, we've added a push and pop method. And push and pop allow us to create a new context and then return to the parent context. So let's take a look at these specs first. This is what we need to get working. The first is standard in context. We should be able to isolate any work we do in inner context from the outer context. Second, by default, whenever we refer to a variable by the same name in the outer, for example here, we're referring to X from an inner context. By default, we should inherit the value from the outside. However, if we happen to have name conflicts, for example, we define X in the outer and X in the inner, then while we're in the inner context, the X in this case equal to three should continue to equal three. But as soon as we pop it, we should not have polluted the external environment. This is the whole idea of context. So let's go ahead and make this work. This will be a little bit more involved, but should still be fairly straightforward. So just to start off, just to see how good our tests were, let's just write a blank push function and we'll write a blank pop function and see what passes. All right, we have some failing tests. However, you'll notice right off the bat, we have these two tests that are actually passing. The first one is that variables by default should be inherited from the outer context. Well, of course that makes sense. We're still dealing with a global context. So even though we supposedly pushed the context on, we didn't actually, so we're still looking at the exact same variables. All right, so to make that test pass, to make sure variables are isolated, why don't we just set the dictionary to a blank object every time we do a push and we'll do the same thing for a pop. This should definitely isolate the variables, right? And in fact, it does. Now our isolation test passes. However, we broke all of the other tests in the process, all three of them. So that wasn't really a great trade off. So let's just make push work off. So whenever we push on a context, what we want to do is for our dictionary to give us a clean slate to work with, but anytime we do a variable lookup, it should default to whatever was in the parent context. Well, anytime we wanna do this sort of inheritance, we are in JavaScript, we can actually use prototypes. So let's use Douglas Crockford's prototypical inheritance method for doing this. So first let's write our push method. Our push method, what we're gonna do is we're gonna write a method called fork-dict. I'm just using a terminology fork here interchangeably with inheritance. So what we want to do is we're going to define this fork-dict method. This fork-dict method, we'll just use Douglas Crockford's pattern for prototypical inheritance to create a new object that inherits the default values that were in the prior scope object. So we'll call this fork-dict. It will take in no arguments and we'll just do the standard method here.  This is just so we can have a constructor to work with. And then we're going to set the prototype, prototype equal to object.create-dict. This is a new method available to us in many browsers. I'm working on the bleeding edge so I apologize to all of you who have always written the polyfills. I do not have a polyfill in place. So we're going to set the prototype to that new object which means that our prototype is a brand new clean object whose prototype equals our dictionary, in this case the parent dictionary. We're going to set a few methods on this just so debugging is a little bit more straightforward. We'll set the constructor to F, this anonymous function. And then when we go to pop context, we need a way to revert to the previous context or in this case, the previous dictionary object. So let's define a Dundascore parent property and we'll set it to the dictionary. And then at the end of all this, we're going to invoke our constructor and return the object created. So fork-dict is just creating a dictionary which defaults to all the values in the parent hash which means that we can create this nice lovely chain of dictionaries that all refer to their parent. That's gotta be incredibly memory efficient, right? We didn't have to copy anything over. So let's try this now. Well, we see that now that spec passes and the last spec passes as well. But we haven't yet written a proper pop method. So that means that whenever we have any variable shadowing, as soon as we set a variable in the inner context that was using the outer context as well, we're actually polluting the environment outside. So we don't want that. So let's go rewrite pop. So pop is going to be really simple. All we need to do is look up the current dictionary parent because we were so kind as to create that little chain earlier. So now if we run this, all of our tests pass. So this means that we have the essential graphics idea of push and pop working exactly. So the only problem with doing this is we're having to call push and pop. What we're all used to is doing ifs. With ifs, what we can do is just create a function as though it were a boundary and then do our work and then at the very end invoke it without polluting the global environment. So let's go and enable some specs for that. We'll enable these specs for nested ifs. So at this point, we aren't going to use push and pop manually. We're going to define this F for funk helper and that funk helper is going to allow us to create a function and assign it to a local variable in the current and space. So first off, let's make sure this test fails. And indeed it does. We haven't even defined that F helper. So let's go start defining it. So down here at the bottom, we'll write that. Now funk, as you'll recall, takes three things. It takes the name of the local variable to which we want to assign this function we're creating. It also takes in the list of params, the parameter list that the function would take, along with that amnesic function body. And that function body should not expect to have any arguments. So I know right off the bat, I'm going to have to memorize this. And then what we want to do is we want to use the set method, which we defined earlier on scope, and we want to set the local variable by name that we passed in, to a brand new function. Now we're doing it as a brand new function because we need a wrapper around our function so we can call push and pop before we execute that amnesic function body. So right off the bat, we know that we're going to have to call push, and we know that at the end we're going to have to call pop. Somewhere in here, we know we're going to have to execute that body. Now that body, as you'll recall, is not allowed to access any local variables. But because we pushed on a new context, we've given it a workplace when it calls s and g. Now I probably want to save off whatever the return value was so I can return it later on. Now there's only one thing missing here. We haven't done anything with params at all. So params are just local variables that are created as soon as a function begins executing. They're visible only in that context. So what we could do is we could loop over every single param and also grab the arguments that this anonymous function wrapper is getting and set it. But in the interest of dryness, we're going to actually define a little helper method. We'll call it args, and this args helper will take in the list of parameter names along with the parameter values, which in this case is gonna be the special object arguments that JavaScript provides to us. Get our semicolon. So let's write that little helper method. Should be pretty simple. It's basically just a loop. So it takes in the names of the variables we want to assign along with their values and it'll just loop over every single one of those names and assign it. So we'll call this.set, grab the current name, grab the current value. And with that, I think our iffy test might just pass. And indeed, now we have our little fhelper working and it's working like a proper context. It isolates changes in the inside but inherits changes from the outside by default. So now we have nested iffy's working. And if we look at our example, we see it's just the ffunction and as soon as we define a function, we retrieve it and execute it. So this is very close to the example we started the whole demo off with.  Let's move on to the next set of specs. So we're going to define the behavior for a proper closure. So when we run the spec, we see that we should have gotten the result three comma undefined comma four. Or excuse me, we should have gotten three comma two comma four but instead we got three undefined four. Now, if you worked out that example I showed you on the slide earlier because of variable shadowing, we should have gotten three comma two comma four. However, we didn't. And this is because we have a difference of scopes. We're actually dealing with an execution stack versus a lexical stack. And I'll show you exactly what that means in a moment. So if we take a look at our definition of funk, we'll see that as soon as we start calling F which basically means we're defining a new function we aren't actually executing it. Nowhere in here are we keeping track of what the current scope is. We're not asking, hey, scope. What's the current context or what's the current scope rather? Nowhere are we doing that? The only place we seem to do that is when we actually execute this function in here. Notice that when we go to do push that push method actually asks what's the current scope and then forks off of it. Which means that our scope is actually defined by when it's being run as opposed to where it was defined. Well, in JavaScript, we deal with lexical scope which means that the scope or the parent scope rather is determined by where it was defined and not by where it was executed. So we need to fix this. But first off, we should notice there's quite a bit going on in here. There's several responsibilities that we're handling in this one scope class. It's got to handle creating a scope, getting and setting variables in it. It's even got to create a function and it's got to have a global registry of sorts of all the scopes that are currently on hand. Well, that's not good design. So let's try to fix this. Whenever we talk about a closure, there's inherently the idea of a function body which is just the list of statements. It's the raw bucket of code. And also the idea of what variables do I have access to and what variables can I change? So we call that concept a closure. A closure is essentially a function plus a scope. So that means that we probably need to keep a registry somewhere that maps all functions created to their corresponding scope. So first of all, let's skip onto the next set of specs and fix something. What we're going to do is instead of creating a scope, we're actually going to migrate all those responsibilities to something we'll call a closure registry. And to do that, we'll just define this closure registry using our little iffy pattern. And we'll define our constructor. Right now our constructor won't take in any arguments or anything. All it's going to do is be initialized with a blank object. That object is going to map from functions to a scope. So right off the bat, we should ask ourselves, okay, what about our get set and args methods? Right now those are all defined on scope, but it seems the closure registry is going to be kind of our waypoint to using that. So right off the bat, we're going to use a little helper. If you guys are interested in exactly how the helper works, feel free to look it up in the repository. I'm going to borrow the delegation pattern from Ruby. I've written a little helper here called delegate.  So we want to delegate the get set and args methods that could be called on this registry, and we want to delegate them from the closure registry's prototype, which means we're going to basically define, it'll automatically define some methods, and it's going to delegate them straight over to the current scope. Now how do we get the current scope? Right now we don't have a way to really keep track of that. Well, let's assume that our closure registry keeps track of the current closure that is being executed. Not the closure that's being defined, but the one that's currently being executed. Right now, just for kicks and grins, we'll set it to an empty object. And what we'll do is this delegation helper accepts a function that gets evaluated, and we can ask what is the scope for the current closure and return that, and that's the object to which these methods will be delegated. So that means right off the bat, we need to define this method, scope for current closure. Now for now, we'll just leave that blank. Let me hide a nerd tree for you. There we go. So we'll just leave that blank for now. Now let's revisit the whole responsibilities issue. We've still got quite a few functions here in our scope class. I know right off the bat, that push and pop really don't belong in here because they manage creating new contexts and linking them together. Scopes should really just be keeping track of what variables it has set and how to update them. So let's go ahead and move those up here. I'm gonna comment out those implementations for now because they won't work in this particular context. And func as well. Func is actually a little bit of a misnomer. It should probably be called closure because it deals with both the function body and with the scope object. So I think this really belongs up in the closure registry. So we'll move that up here. We'll remember to rename the prototype it's on. All right, so this seems like it's in the right place. That looks a good bit nicer. So the next thing we probably need to do is we need, when we're defining these functions, to grab hold of what the current context is. Because as we saw, whenever we just called push before, it was just grabbing whatever the current context was at the time of execution. Well, that's not how closures work. They're based on the lexical scope when they were defined. So that means we should probably somehow memoize what the parent context is so that way this new function wrapper can access it when it goes to push on the new scope. But in fact, we'll just shorten this down a little bit. What we'll do is we'll go ahead and fork the brand new scope. That's going to be used for this function when it gets executed. So somehow we'll grab the scope for the current closure and then we're going to fork it. Now we haven't written this fork method. All the fork method does is invoke our fork dict and return a brand new scope object. So let's write that. So this fork method is going to return a brand new scope whose dictionary is initialized with a forked version of this current scoped ones. So you can just think of this as a nice, it's not a constructor method, but it creates a brand new scope for us to use in the spirit of immutability. So we'll pass in the results of calling a fork dict. Now the problem is right now our scope constructor doesn't take in any arguments to initialize it with. So we'll fix that. We'll allow it to be passed in the dictionary to start with. Otherwise it'll just default to an empty object. Now we just need to write that scope for current closure method. Now before we do that, right now I've been assuming that our registry has to be an object. It has to map from a function somehow, even though keys and JavaScript have to be strings, somehow we're going to map from functions to their scope. But we can actually make an interesting observation. Whenever we're executing code naturally there's only one scope in effect. When we're executing code. Furthermore, whenever we go to enter a new scope, as soon as we have finished executing that function we immediately pop off that scope and return to whatever the previous one was. Push and pop should sound kind of familiar. We're dealing with a stack. So unless you want the debuggability of keeping track of all functions in all scopes, our registry actually just needs to be a stack. In this case an array will do just fine. And in fact we don't even have to keep track of whatever the current closure is. Because whatever the current closure is doesn't matter. All we care about what is the current scope? Which means that we don't even really need to keep track of the closure because the current scope is just whatever is on top of that registry stack. So with that in mind we can go ahead and write some of these methods. First off let's write scope for current closure. So scope for current closure is going to be really easy now. We just need to get whatever object is on top of the stack. So let's do that. We'll return the registries and get its last element. So that gives us our scope for current closure. There's only two other things we need to define which is push and pop. Now intuitively push and pop aren't really doing anything fancy. All they're doing is pushing on a scope that's passed in. We have to pass it in because push is going to be called at a time different from when it was actually defined. So the way we would implement this is we would call registry.push. We would just use the array method and push that new scope on. And we would do the exact same thing for pop.  So that delegate helper is going to delegate all calls to push and pop from the prototype directly to that registry array. So this seems like it should just work. Let's check JSN and make sure I didn't do anything abominable like leave off a semicolon. We couldn't have that. All right, let's flip back to our specs. Let's ignore those earlier specs because naturally I've broken them. All right, now just to test that matter. All right, so first off we notice our areas. We cannot read property fork of undefined. That means that somewhere where we expected a scope object we tried to call fork but it was undefined. Well, let's go back to our code. When this closure registry first starts off, it starts off with an empty stack. Right off the bat, when we go to use the set and get helpers or push and pop for that matter, those rely on grabbing the current scope. Well, when we start out this code, the stack is empty, which means that scope for current closure down here is returning undefined. That's not what we want. Every JavaScript program starts out with a global scope to begin with. It's almost as though there were a function that wrapped around all of your code. So to fix that, we're not gonna start out with a blank stack. We'll start out with a blank scope as the first object and this will be our global scope. So anytime we do push and pop, we should never push and pop and end up with an empty array. We will always at least have that global scope. And now if we run it, that last spec passes. So congratulations in 70 lines of code, you have completely rewritten the closure implementation in JavaScript and you can nuke closures entirely from your code base because as we all know, they're insanely slow. All right, let's see if we can get back here. All right, so you may ask, should I actually use this? Or rather, let's start with something else. Can I use this and can I have my code converted over automagically? And yes, you can. There's a transpiler up. You can go to the web page now and plop in any of your code. It will actually pull in, it will transpile any substitutions, variable assignments, lookups and function expressions. It will automatically substitute those. This is online, so you can just drop it into the browser. In this case, I put in our example and it will output the much, much nicer looking code. It's even indented all properly. This makes me really happy. So this will all totally work and you can go do it right now. Hopefully you don't bombard GitHub pages too hard. Now, the question that you all are really asking is should I actually use this? And my answer to you is totally because JavaScript and JavaScript is one more way to get brownie points with your employer and to get a little bit more job security. If you drop in a custom closure implementation like this, I guarantee you'll be managing that code base for quite a while. And then since we've been talking about the future of JavaScript quite a bit this morning, you may ask is this the future of JavaScript? Is this something that isn't draft or strawman proposal because no one wants to type the var keyword anymore? And I don't know anything about proposals or anything but I think this is definitely the future. At least for now because my next talk is going to be one really weird way to rewrite prototypes. And to do that talk, my plan is to start out with local variables and use the vowel method so we can dynamically create some code, do a little transpiling, and then execute it to do prototypes. And by all benchmarks, it's looking really good. Thanks.


Save 10% with my code BOBBY10 on raw, organic, grass-fed and grass-finished, freeze-dried organ meats from grassland nutrition. Link in the description box. All right guys, welcome back to the channel. If you're new, my name is Bobby Guy's brand new video by the channel Towards Eternity. How is Prophet Mohammed mentioned in the 4,000-year-old book of Hinduism? No, this is not an old video of Dr. Zakir Naik showing us old Hindu scriptures and reciting them perfectly. No, this time, as I said, it is about the channel Towards Eternity, which is doing a tremendous job on Muslim convert stories and other Islamic content. Guys, before we start the video, just do me the quick favor. If you enjoy the content, please leave us a thumbs up and if you haven't subscribed already, please do so. With no further ado, let's have a look. It is stated in the scriptures of some ancient religions that Mohammed, peace be upon him, will come. Almost all of us have heard news related to him in the Torah, the Psalms, the Bible, or have come across it somewhere. But apart from them, there is similar news. For example, in the scriptures of Hinduism and Zoroastrianism, do not underestimate Hinduism because it is the world's third largest religion. Considering that it has almost 1.2 billion followers, approximately...  Islam is seen as something that goes directly against the culture of India. Of course, it is fear there, but nevertheless, he is correct here. 1.2 billion followers are Hindu. 15% of the world's population believes in this religion. Therefore, it is wonderful to have such news in such a religion. There is some news that I think you will be very much surprised by.  Even his name, his father's name, the name of the religion where he was born, and his different characteristics are mentioned. When a person first hears this, he is surprised and says, how come? Frankly, I was also surprised when I researched the issue. In other words, a lot of the time has been spent on this issue. There is a lot of research done by professors and there are even written books on it. It is important because 1. Prophet Muhammad, peace be upon him, could not have traveled back in time and written himself in those texts. He could not have given information about himself. 2. No human being can give information about a person to come more than a thousand years after him. It is something impossible, so it is definite proof of his prophethood, peace be upon him. Of course, the following question comes to mind. Okay, what you say is fine and good, but are you saying that Hinduism and Zoroastrianism are based on the basic fundamental truths like in Christianity and Judaism? No, I do not claim that the founders of these religions were prophets. I cannot make such a claim because there is no verse or hadith about it, but it is possible, because we all know that thousands of prophets came- I heard similar claims about Buddha and Buddha potentially being a prophet, but of course, ultimately, we will never know. Before Prophet Muhammad, peace be upon him, it is a separate issue. But, irrespective of who says it in these texts, if we see this news in one part, that part of the text is definite. Even if there are superstitions in other parts of the text, as Zarathustra or someone else may have received the revelation, that is the part that interests us. So- Sure, of course, and this wouldn't even go against Islam because Islam does not claim that there couldn't be partial truths within other religions, even from an Islamic perspective, within the Bible, you will find plenty of truths. However, the ultimate truth would be reserved for Islam. Let's take a look at such news in the texts of Hinduism in this video. Okay, let's go. According to estimates, Hinduism was founded between 2300 and 1500 BC. It is the most common religion in India and around India now. Most of the followers of Hinduism are Indians. The general name of their sacred texts is Shruti, which means what is heard in Sanskrit. They divide this text into three, Vedas, Puranas and Upanishads. It's quite amazing to see because even back in the day in the 60s or 70s, when a lot of outpouring happened coming from India, going over to the United States, and there you saw plenty of so-called self-proclaimed New Age gurus like Ellen Watts and whatnot. But what is hilarious about this is that those Westerners didn't become Hindu themselves. They didn't become Buddhist either. They took certain teachings from Buddhism, Zen Buddhism and Hinduism and mixed them together. They simply took what is beneficial to their ideology, which then in turn created the New Age movement that being said Hinduism itself is very ethnocentric and this is why you see little to no Westerners nowadays converting to pure Hinduism. It's also Brahman Granth, which is an explanation of them, but they do not regard it as divine revelation. Their clergy persons are called Pandits and each piece of their text is called a mantra. They are in the Sanskrit language. This language is one of the least known languages in the world. If I remember correctly, the last time I checked, it was stated that only about 50,000 people knew it. In these texts there are places in which very clear glad tidings about Prophet Muhammad, peace be upon him, are given. We will discuss only a few of them here. The first one is as follows. The following is stated in a part of the Bhavishya Purana. At that time, a spiritual educator known as Muhammad arose among Malikhas with his friends. So the name Muhammad is mentioned very clearly. What else? It is said that he will be a spiritual educator. Nobody has any doubts about this characteristic. Even those who do not believe in him admit that he has this characteristic. Apart from that the term Malikhas. Absolutely man, we talked about this. Even Jews that are not Muslim, obviously they are Jews, they still would admit that Prophet Muhammad, may peace be upon him, was a prophet indeed without accepting him. He will come from someone other than Hindus. Why? What would Hindus have normally said if they had written it for themselves? They would have said he will come from among us, right? Let him come and strengthen us. But on the contrary, the name Muhammad is mentioned and it is said that he will come from a foreign country. In other words, he will not be one of them is a remarkable detail. Of course it is not the only interesting detail. Because yet again talking about the Jews, the Jews assumed that there will be another prophet coming. However they thought that this prophet must be Jewish by default. And this is where they went wrong and this is why they did not accept Islam. The majority of them did not accept Islam. But here it is fascinating to see that those people, those Hindus apparently in their own scriptures said that there will be a prophet, but he will be not amongst them. Mother strange news. The second one is as follows. A little further from the previous part, in Shalokas, between mantras 10 and 27, someone named Muhammad who will come in the future is mentioned, which you see on the screen right now. His name is mentioned several times. Towards the end of this section we see the following statements. My followers will be circumcised without braids, without beards, who will make a revolution, call to worshiping aloud and assimilate all religions. They will eat animals without performing elaborate Hindu rituals. So this couldn't be any more precise. This absolutely mind-boggling man. My followers will be circumcised without braids, with beards, who make a revolution, which they did of course, call to worshiping aloud, which is of course the adhan, and assimilate all religions, which they did as well, because the claim of Islam is of course that it came for all nations. They will eat animals without performing elaborate Hindu rituals. Moreover they will eat animals because in many branches of Hinduism you have to be a vegetarian. This couldn't be more precise and this is truly mind-blowing. Extraordinary term is used in a place further on. They will be known as Musaman. No way man. Now I have goosebumps. Truly. It's amazing. But let's proceed without breaking the order. Apart from directly indicating the name Muhammad, peace be upon you. This is crazier than anything that Dr. Zuckerman Nike has found. With him are mentioned. What is stated? Beard it. Without braids. Guys let note, I have to interrupt again. Excuse me here, but this is truly mind-blowing. If you have any details or any links rather to those scriptures, please post them in the comments section. I would really love to read them myself. Now I'll stop here and ask. If I were someone who wanted to object, I mean, if I were watching the video from the beginning just to oppose, I would object at this point. Beard it. And without braids. It is a very general term. However, among all those characteristics, circumcision is emphasized. Frankly, no one can try to interpret it differently. Especially if it is stated that the person mentioned will do a revolutionary job. Prophet Muhammad, peace be upon him, changed the society he was in radically, which makes all the pieces click into place. Then the following is stated. The ones who call to worshipping allowed. That is, they will recite something to invite people to worship. Like what? Like Adan. Just a minute. Isn't the thing mentioned here, Adan? There was also this phrase. They will eat animals without performing elaborate Hindu rituals. There's something strange here. Yes, we do not perform elaborate rituals like the Hindus while eating meat. In other words, we say Bismillah is a deed of worship, but it is not the strange detail. The strange thing is this. In the Hindu text, a society is described as eating meat. Why do you think it's strange? Eating meat is not allowed in Hinduism. Hinduism leads people to a kind of diet. There is a sign in that statement, too, that this person will come from a different country, not from Hindus. We will see where that country is with a strange sign in one of the mantras. The most important one is this. They will be known as Musalman. Well, there's no need to explain it. The pieces of the puzzle keep coming together. The third one is what it means. In one part of the Rig Veda, the following is stated. Truthful and truth-loving, extremely intelligent, strong and generous Mamak, who is the truthful and truth-loving, extremely wise, powerful and generous, has favored me with his words. He, the son of the all-powerful, possessing all good attributes, the mercy for the worlds, has become famous with 10,000 companions. The word Mamak here is remarkable because the word is derived from the root Mah in the Hindu language, which means to praise, to glorify. When the prefix Mah, which adds a passive meaning as added, it becomes Mamak. Its translation turns out to be the word praised. The Arabic equivalent of this name is Muhammad. In addition, adjectives such as truthful, truth-loving, extremely intelligent, strong and generous are mentioned here. They are seen in Prophet Muhammad, peace be upon him, throughout his life with the unanimous agreement of his friends and enemies. And they are the attributes through which he is praised. In addition, remember that there was a phrase, the mercy for the worlds in the text, which reminds us of a famous title of Muhammad, peace be upon him. Verse 107 of the chapter of Al Anbiya, we sent thee not but as a mercy for all creatures. Another important detail, being famous with 10,000 people. Yes, he returned to Mecca, his homeland from where he was forced to emigrate in 630 with 10,000 of his companions. He returned and conquered Mecca with his companions who were ready to sacrifice their lives for him. I hope things are clear so far. There are two other parts that I find interesting. The age of Kali is mentioned in Hindu texts. It is possible to find a detailed definition of it in different places. In short, a period when every virtue disappears. People turn away from religion. Good books are destroyed. Kali Yuga. Many people believe that we are now in Kali Yuga, which would be the equivalent of the end times. Virtual deterioration and depression occur. An event that will take place towards the end of this period is mentioned. It is described as follows in chapter 24 of Vishnu Purana, When the practices taught by the Vedas in the institutes of law shall nearly have ceased, and the clothes of the Kali age shall be nigh, a portion of that divine being who exists of his own spiritual nature in the character of Brahma and who is the beginning and the end, and who comprehends all things shall descend upon the earth. Some details about that person are mentioned. He will be born in the family of Vishnu Yasas, an eminent Brahman of Sambala village as Kalki endowed with the eight superhuman faculties. The following is stated a little further. He will then re-establish righteousness upon earth at the end of the Kali age, which we have just mentioned. The minds of those who live shall be awakened and shall be as clear as crystal. Now, let's summarize this part in general terms and try to understand it. An age of Kali is mentioned. According to what is told, in a period when the rules and laws taught by Vedas through religious texts and practices are abandoned, a person will emerge. Some traits of this person are mentioned to be recognized. He is said to be born in a region known as Sambala. It is extraordinary that the meaning of Sambala in Sanskrit means house of trust, house of peace. When we look at the Arabic equivalent of this name, it introduces us to a region that is not very unfamiliar to us. The city of Mecca is known by the name Albalad Alamin. Can it not be a coincidence dear? If we look at the other phrase next to it, it doesn't seem so. Another detail, the family he will be born in is mentioned in the family of Vishnu Yassas. Now let's have a look at this name. Isn't Vishnu a name of a God according to them? So what does Vishnu Yassas mean? It means servant of God. When we translate this name into Arabic, we see the name Abdullah, which means servant of Allah. Wasn't the name of the father of Prophet Muhammad peace be upon him also Abdullah? Exactly at a time reported in the text in the dark age of ignorance and exactly in the area and the family that is reported, Prophet Muhammad peace be upon him appeared and re-established righteousness on earth. As is stated in the text, he led people to a serious awakening. With religion, he preached ethics, law, social norms, spirituality, and in many other fields, he taught people righteousness and enlightened their minds. He brought out his community, praised by volumes of books, like the companions of the Prophet peace be upon him from the worst form of darkness to light. Finally, we move on to the fifth part. In the last part, we will discuss something from Samaveda, in which there is some different news. Only one of them is enough. The following is stated in the text. This religious law is full of wisdom. I receive light from him just as from the sun. Ahmad acquired religious law from his Lord. The name Ahmad is mentioned so clearly, it is one of the names of the Messenger of Allah, Ahmad. Then it is stated that he acquired religious rules from his Lord and that's exactly what a holy book and religion mean. As we approach the end, it is useful to remind the following once again. We do not claim that Hinduism is essentially based on revelation. We cannot do so. That is, we do not have a verse or a hadith as evidence to prove that. Therefore, it is not possible to say that. But, we also know that thousands of prophets came before Prophet Muhammad peace be upon him. Some of them were given scriptures and religious texts, and they either disappeared or were distorted over time. So if the texts of Hinduism, namely Vedas, Puranas and Upanishads are really based on a divine revelation, they have already been distorted. However, their distortion does not mean that every part of them has been distorted. For example, the Bible has been distorted, but there are places in it that mention our Prophet peace be upon him. So what should we do? What does a logical person say when he sees this? He says, okay, even if these books have been distorted, no one can distort them in a way that will give news about the future. Think about it, you distort something or your distortion causes something that gives correct information about the future. It would be nonsensical, it wouldn't be possible. That is, even if the text itself has been completely distorted, even if the words have been changed, that news itself is true. The clergy persons of Hinduism won't put such knowledge in their books themselves because this information proves that Islam is the truth. They can't give information about the future anyway, it is nonsense. We can think of the same about these texts. In other words, whether these texts were divine revelation or not, at the time when they were first written, we all know that nobody could give information about Muhammad peace be upon him and the future in such detail. To mention his name, use an expression that means his name, his father's name, and mention so many different details, including him being circumcised. So, coincidence dear, is it possible to say that? When we look at the parts we have talked about in general, they are proofs for the authenticity of Islam. Isn't this interesting? It says Muhammad somewhere, Ahmad somewhere else, and Muhammad elsewhere yet. That name indicates exactly the name Muhammad in terms of meaning. In other words, we have such a prophet that even his name proves his prophethood. Allah shows people dozens, maybe hundreds of proofs, so they may believe in the prophets he sent. We may know very few of them, but a prophet emerged in every era. He sent revelation and evidence, one of which we have just talked about. We talked about some of them. I haven't conveyed all of them to you, but there are as many or even more signs than the ones mentioned above in the Hindu texts. I sincerely and wholeheartedly believe that as time goes on, we will see additional pieces of evidence, and we will encounter new findings. And of course, we will also encounter those who see these findings and close their eyes to the truth after seeing it. Anyway, follow us, see you in the next video. Right here. Well, at least I haven't heard it yet. My followers will be circumcised without braids with beards who make a revolution, call to worshipping aloud and assimilate all religions. They will eat animals without performing elaborate Hindu rituals. All the other texts mentioned here in this video were amazing, surely, but nothing has been so precise, so concise as this text here. This truly convinced me and usually I'm extremely critical when it comes down to claims about other religions than Islam pointing towards Islam, because I come from an Orthodox Christian background and I heard many claims of other scriptures pointing towards the crucifixion of Jesus. For example, you can always twist and turn certain words. Nevertheless, you cannot twist those words down here. Why would they be circumcised? If you think about the Sikhi religion that came out of India during the time of the Islamic Empire, those guys were opposed to circumcision. Within Hinduism you have absolutely nobody getting circumcised either, so this is so precise that it couldn't be any clearer. But to be fair, I would love to hear from my Hindu viewers what you guys think about this subject. I know we just have a handful of Hindus watching. Guys, do me the favor and share the video with your friends. Then I invite you to discuss with me. I would really love to hear your perspective on those texts. Moreover, if you have access to those texts with translation, please post them in the comment section below as well, so we can see them ourselves and discuss further. Alright guys, but this is it for today's video. If you liked it, leave a thumbs up. If you haven't subscribed already, guys, please do so. And if you want to support this channel via Patreon, all the links are in the description box below. Thank you so much for your ongoing support, guys. As always, may God bless you all. Much love and peace.


This is covering the spread part of the Fandall podcast network We are in a very fun spot in the sports calendar because right now we've got not just MLB Playoff races heating up. We've got NFL preseason cooking right now It's the FedEx Cup playoffs over on the PGA side of things. I'm excited for the NASCAR playoffs getting ready so we got the intersection a lot of fun sports going on right now and It's a great time to be a better because there's so much fun stuff to choose from no matter what your specialty may be You've probably got fun stuff going on. We're gonna go through Baseball for today and then recap so that we went through last week some good stuff over on the NASCAR side of things Hopefully you benefited from that We're gonna get you set for Mondays and they'll be slay talking money lines strikeout props and some dingers and hopefully Get you on the right way when in some cash to open off this new week in a fun time in the sports calendar Welcome on into covering the spread That's right here on the band will podcast network and number fire calm My name is Jim Sonnis. I am a senior writer and analyst for a number fire calm here to break down the MLB slate for today And like I said, we'll also go through what went down last week here on the show We kept some more bets and then if I'll preseason and the NASCAR calendar and the field of dreams game as well All that right here. We'll try to keep the covering the past segments available when we can just depends on timing and stuff like that, but We'll try to squeeze that in for today's scheduling note for this week. We have the same show tomorrow We had last week on Tuesday pitching ninja on to break down his strikeout props of the day Branding a doula on to break down this week's PGA contest as PGA event as well Wednesday and fangal be in to break down some college football I think we're talking some future stuff there That should be a lot of fun then on Thursday I'm gonna record the podcast ahead of time because I'll be out Thursday Friday I will go through the Thursday MLB slate So I'll post that overnight to hopefully get you numbers before they move. I wish I could do this every day But schedule doesn't quite allow for it So I'll put that up Wednesday night to break down Thursday's MLB slate and I'll go through some NASCAR stuff there too So if you want to get some more NASCAR stuff, I'll want to get Thursday MLB breakdowns all that Thursday No show Friday because I'm gone Similar schedule next week going to Ireland for the Northwestern versus Nebraska game, which should be a whole lot of fun So we'll have shows Monday through Thursday this week get all those buys subscribing to the Covering the spread podcast feed wherever you get your podcast and if you like what you hear leave us a rating and review as well We'll dig into some MLB money lines for today in just one second But first NFL kickoff is still a few weeks away But you can get into the action now on faddle sportsbook with the NFL Super Bowl win bonus right now Anyone who places at least a $50 Super Bowl winner bets will get $5 back for each win your team has during the regular season There are also a ton of other futures markets available like the team win totals division winners player props and so many more There's no other place to get the football season started than on faddle America's number one sportsbook and official sports betting partner of the NFL Must be 21 plus and president select states only bonus issued is non With trouble free bets that expire seven days after a seat max free bet $50 Restricts his apply see terms at sportsbook dot faddle comm gambling problem call 1-800 gambler or visit faddle comm slash RG in Arizona 100 next step or Texan except if I 3 3 4 2 in Connecticut 1-888-789-7777 or visit ccpg.org Chat in Indiana 109 with it in Louisiana one eight seven seven seven seven zero stop in New York When it's seven seven eight hope and wire text open Y in Tennessee call the red line at one eight hundred eighty nine nine seven eight nine In Wyoming one eight hundred five two two forty seven hundred in West Virginia one eight hundred gambler net Let's take into this MLB Monday slave There are two money lines right now where my numbers are showing some value Those are on the twins at minus 198 versus the Royals and on the Mariners at minus 104 Facing off of the age Let's start here with the twins because there's a slightly bigger edge on this one relative to my numbers I've got the twins at 69.7 percent to win this game. They're implied win odds at minus 198 or 66.44 They did move and you might be able to catch some minus 195 minus 190 still out there So check around to see what you can get because Fando moved Shockingly right for according to minus 198. So check to see what your best number available is in the twins But even at minus 198. I do like it the run line here is Plus 102 for the twins to cover minus one and a half and I am going to go at the run or the the money line here over the run line And it's the same discussion we had last week where I always want to bet into the lower hold market And this is still the lower hold market in this game the money line versus the run line That's one thing and second the twins offense isn't as good against lefties as righties Facing chris boobage for today That does hurt them the smidge in terms of being able to win this game Comfortably versus winning this game by just a run or less Joe ryan has had some rough outings recently for sure But I think those were against the Dodgers and the Padres when he's had plus matchups ryan's been pretty good Throughout this season and this is a plus matchup for sure this royals offense They've got some guys. I like some of their young hitters, but they're not the same lineup They were when they had ben intendee merafield, etc, etc The twins they're back at home bullpen is improved post deadline I think they're worth it at minus 198 here and if you're listening here, it shifts to minus 200 I think that even minus 205 I'd be okay with taking this one of my numbers which still still show value there So even minus 205 I'm okay with it with the twins on the money line for today versus the royals But 191 98 right now is good check around to see what the best number for you is there The meritors are popping for a couple different reasons The first one is I love louise castillo. We'll talk about him in a separate section. No spoilers, but I'm also not sure how much lee show hey, otani is going to be getting For the next couple of weeks the angels are super super out of it And they've cut back on his pitch count his past couple of stars, which makes total sense. Why would you burn? Bullets on a show. Hey, otani in a year where you're not going to the playoffs So I think the angels should do that despite the fact. I selfishly want to watch otani for as long as possible I think they probably should do it and it seems like they might be based on his recent pitch count, so That's one thing here and everything outside of otani Favors the mariners here. They have an elite bullpen. They have a better offense than the angels do right now I've got the mariners at 52.7 percent to win this game versus 50.9 it implied So it's less value than the twins but I actually feel better about this one personally than I do about the twins Uh, so the mariners minus 104. I feel good about that. I'd bet them down to minus 110 Just because the factors I mentioned my numbers are viewing otani as being a full go effectively except for his pitch count is down That's the one thing where I'm not, you know Not expecting a full otani there if I account for maybe 10 fewer pitches from otani that would skew things a bit more towards Seattle So favorite money line of the day is Seattle minus 104 But I do like the twins at minus 198 as well Again, I would go with the mariners down to minus 110 and the twins down to minus 205 or so Let's stick with that mariners game as we transition here to some strikeout props for today The one that does pop for me and I'm willing to bet is Luis Castillo And I specifically want to go to the alternate market here over on fan You can go, uh, you can bet Over three plus, you know three plus strikeouts four plus strikeouts, etc For Castillo specifically today. I want to take him to get a plus strikeouts at plus 132 And Castillo opened this morning at fan to up at seven and a half his his number was seven and a half And it went down to six and a half Once other books opened and had Castillo strikeout props at six and a half People saw the discrepancy that the undrawn fan duel pushed that number down a fan duel to six and a half I'm not really sure it should have been the case because Castillo goes crazy deep into games. He has gone 180 or more pitches in five of his past seven starts He went 103 in one of the exceptions the one game where he didn't go super deep in the game Not a hundred plus pitches was his final start at the Reds and they were trying to trade him So why would you have him go? 116 pitches when you're trying to move this guy and might get less in return if he happens to get hurt going deep in the game Basically, they just let him go as long as he wants and Castillo is racking up strikeouts He's had eight or more strikeouts in five of those seven games Despite facing the Yankees three separate times in that stretch He did go over seven and a half in two of those three starts versus the Yankees specifically I've got a projected for 8.57 strikeouts for tonight So when you put someone there He typically would get to eight strikeouts about 55 percent of the time So I should be good with plus money It's just a question of whether or not I can get a better number later on My guess is that now that fan duel is in line with other books The action should be more even here So I would not expect this number to keep on length of me But with that said I took it at plus 126. It is lengthened to plus 132. So clearly I didn't read that well there, but It's plus 132 right now. I think that again, I was cool with it at plus 126 I'd expect it to Push back that direction as the day goes along If you see it where it keeps on lengthening it over at a plus strikeouts That probably means I had a bad read on the market So proceed with caution like if it's plus 140 we notice this later on that could be a concern Maybe then you Lower enthusiasm around castillo a bit But personally I think that this number is too low and so with it being plus 132 right now I do like the the eight plus strikeouts for louise castillo for today facing the angels a high strikeout offense Gaia goes deep in games. I think all that adds up really well to make him a quality strikeout prop bet for today His over odds in my model at six and a half are pretty solid So I don't mind if you want to go that route want to go with over six and a half versus the alternate market, but I think this is a spot where Swinging for the fences is worth it. And I would like to do so via castillo for today So the official recommendation for me is over A plus strikeouts, which is plus 132 at vandal right now The other number I'm monitoring right now and have not actually Taken yet is carlos carasco five and a half strikeouts over at vandal. It's minus 112 right now I was kind of hoping this number would go the other way because I've got carasco around 57 to go over five and a half strikeouts So There is a bit of value The reason I didn't bite when it was minus 106 was because the Braves did just see carasco two starts ago So there isn't familiarity here. It's also hot in Atlanta for today. He's on the road If that number were to move the other way like let's say it gets to even money Which i'm thinking it probably won't now that it's minus 112 I might bite at that point, but You know about five percentage points of value right now on carasco versus number I think I'd want a little bit more before diving in So if you have more confidence in carasco than I do you're not worried about familiarity anything like that I think that over five and a half is very much in play I mean personally i've not done it yet because I do want to see if it'll move the other direction I want more of an edge relative to what my numbers say in order to account for some subjective concerns that I have just based on You know narratives familiarity road stuff like that So not biting yet, but this one i'll monitor and if you have more confidence in carasco I would not dissuade you from buying in there As far as home run props for today go We talked last week about the Orioles versus Yusei Kikuchi and They get a rematch in canada for today So i'm okay going back to the Orioles here the one bummer is that anthony santander Didn't go to toronto last time because of vaccination status I would bet he's probably not changed his stance since then so he's probably not going to play Santander is probably one of the guys I would turn to in theory if I were to bet the Home run prop market, but I'm assuming as of right now that he's probably not going to play for today The one guy who could be kind of interesting is Ramon Arias He's plus 450 a fandal. You can get him at six to one in some spots I would not bet him at fandal, but I would check him out other places because Arias has A 44 fly ball right versus lefties makes good hard contact as well I would probably give him the biggest sniff. I also would check out Ryan McKenna He's plus 520 at fandal, but plus 850 in some other spots. So again, you know shop around find the best number Ryan McKenna, it's probably not going to be a fandal based on what I'm seeing right now But McKenna has good numbers against lefties. He gets lead off against them or he has passed a couple of times So I do like McKenna I would say though this depends on the house rules of your sportsbook because most places fandal included Will allow the bet to stand if the guy records a plate appearance So let's say McKenna is not in the lineup, but wants to pinch hitting later on You're getting just that one plate appearance. I'd rather wait until he's officially in the lineup before biting in there You might get a worse number Slightly worse number, but that is okay. There are I believe some books where if he's not in the lineup, they'll refund it but fandal I know is um A a book where if he gets a plate appearance at all that bet will stand So know your house rules if it is a shop like fandal where the bet will stand if he is even in the lineup Then I'd hold off and see if he is in there specifically. He's batting lead off. I think then Even plus 700 600 or so would be a good number for McKenna But wait to see if he's in the lineup just to make sure he's a platoon guy and that could be a concern there Other spot. I don't mind for some home runs going back to the twins Facing off with chris bubic and bubic does let up a lot of hard contact not a big fly ball guy But a lot of hard contact So the guy i'm most into here is hosting miranda miranda Plus 480 to go deep on fandal actually think that's a pretty fair number because He's been smoking the ball recently. He's been in the ball really well versus he came back up He got sent down to triple a for like a day In may or june when rois louis came up. They sent down miranda for like a day He came back up and basically ever since then he's hit the ball really well Six home runs versus lefties this year in 89 plate appearances the batted ball numbers I think it's a 50 fly ball rate versus lefties 51 versus lefties versus 33 versus righties a lot of hard contact I think miranda's a really good hitter Plus 480. I actually would bite on again as always There's a big discrepancy and strikeout or a home run numbers from book to book So shop around see what you can find but I would buy it at plus 480 on miranda The home run for today for the twins my favorite number on the twins is miranda plus 480 I can always talk about some of the buyer bucks. We have a plus 290 a little bit short So, uh, I think miranda the guy of choice there As mentioned, I do want to try to keep going through The recaps the last week. We're gonna keep on doing that now We'll do that now go through some stuff from last week But that is all we have for baseball for today So let's go back through last week's shows on Tuesday We had brandy gajula on to talk about some golf. Uh, will zalatoris what a ride. Um I had him as my win pick over on our DFS show The heat check fantasy podcast and I'm trying to win this Season long battle versus brandon where we pick winners each week relative to their odds at fangirl sports book I was in the hole, but will zalatoris was my pick for last week 22 to 1 So I'm now ahead. There are only two events left. I'm not sure if I'll be able to hang on to that because Uh, brandon's pretty good at this. He's better at golf than I am I've just gotten lucky a couple of times which has helped me a lot His picks here on the show where scottie sheffler matt Fitzpatrick sung jam billy horschel Those are the the winners he liked for this one I like sheffler a lot too that one didn't work out, but I thought sheffler was a good pick I just picked zalatoris because like the odds better for that one there So, uh, no winners there, but hopefully I can hit a winner on the heat check again this week because I need the padding to uh to Pad my lead versus brandon in our win bets for each week The pre season dfs or pre season, uh betting show we had was with joe astrauski I can find him on twitter at joe astrauski. The first one we talked about was the cheese plus three and a half against the bears and Like close to cheese minus one and a half because of the patch from my home's news that he would play And the first half did hit so we talked to joe and he was like, hey in general you probably want to bet first halves in the pre season because You're kind of you don't really know what's going to happen in the second half You can kind of predict playing times stuff like that. So joe said bet first halves and bet the cheese Hopefully you did go that route because of the full game. The bears actually did cover so touchdown trevor simian Back in chicago back in his non native land the previous land Racking up the tutties. So touchdown trevor fully back. How dare you disrespect him joe? but If you got the first half number there you did win So hopefully you went with that one versus the full game spread But good closing line value for joe on that one joe like the cardinals plus two and a half against the bangles I don't close with plus one and a half and That one did cash both the full game and the first half So the cardinals good bet from joe there As they did do well versus the bangles there other one was dallas plus two and a half They actually closed the four and a half the wrong direction And then denver won that game. I believe 17 nothing they played really well the entire game so they won the first half one and then Held uh held court in the second half as well. So Depends on the market seat that hopefully you took joe's advice and did bet the uh The first halves for the cheese and the cardinals got in on that cheese number before I moved pretty steadily in their favor Good week from joe good to read from him with the way the markets will go even if the results weren't always Exactly what you were looking for but again, hopefully bet the first has there as far as my stuff from last week In the later on in the week on thursday We had the mlb feel the dreams game and some nascar stuff richmond. Uh, the feel the dreams game Did get the cubs money line at minus 102 Felt pretty good about that the entire time no real big sweat there The other one I had in that game was say asizuki did home run at plus 500 He had a double I think in his first plate appearance, but no home runs there So that one did not cash But we did get cubs minus 102 on the money line in that game for richmond The truck series race did not go well. I had ben rodes and grand endfinger to win both at 12 to 1 Rhodes went a lap down Been like in the third stage was really bad. He was not fast in practice didn't qualify. Well, it's bad Endfinger ran top four most of the night, but like Never really in contention. It was kind of just chandler smith versus john hunter nema check. So You know, he finished fourth. I think but like it didn't matter He wasn't it really in contention there made up for it sunday though because the bets recommended on the show were Joey Logano to win you not win, but he led 150 or six or so laps He also did finish top 10. I had that minus 135 that one cash Other bet recommended was kevin harvick to win at 16 to 1 kevin harvick won the dang race It was a lot of fun because the guys my model was highest on the entire week were kevin harvick. Joey Logano Logano dominated most of the race harvick dominated the final stage So we get the win there. I didn't have many bets on anybody not named harvick or logano For sunday's race didn't get the logano top five, which was kind of a bummer, but Still a really good week. So hopefully we can duplicate that Going forward in the show here good start with the harvick and logano bets at richman and we'll see what we can do for Watkins glade coming up this week. I think that is going to be a fun race for sure That's the way they have here for today again Check around on the mlb numbers. Make sure you're getting the best number as always have as many books as possible Of course, I'm wearing the fang will have but you know We want to preach the best practices here as always find the best number If stuff has moved to a point where I said it wasn't comfortable. I'd stay away You know, it's kind of the the deal with betting. You're not always going to get the Get in on the action before the number moves out of your favor. That's how it's going to go I'll try to get it where I can stream these mlb shows live on my twitter account I've not gotten there yet. I have to check with the tech people here at At number fire to see how I can get that going But we'll try to get that to try to get these numbers to you as soon as possible If you got any questions for me if numbers have moved in a weird way or moved to a point where you're questioning things Hit me up on twitter at gymsonus j i m s a n n e s more than happy to talk through things there and let you know If i'm okay with that number if a number has come down I did not discuss whatever it may be hit me up on twitter at gymsonus We can talk it out there. Also. Do not forget to subscribe to covering the spread wherever you get your podcast tomorrow We have brandy gadoula and pitching ninja rob freeman on talks of baseball talks of pga Gonna be a lot of fun Wednesday with that thing thursday talking mlb and nascar. It'll be a good week Looking forward to it once again. Good luck to you all tonight. We'll talk to you once again tomorrow This has been covering the spread right here on the fan duo podcast network


What is going on guys welcome back to the channel critical overlord here we can talk about screen 5 again Kevin Williamson had an interview with the independent I'll leave a link to that in the description and he has expressed like a lot of things just how Scream has been like a or at least Sydney Prescott his final girl. He created has been like a Way for him to I did something he created for himself to kind of represent his own struggles growing up as a gay kid and he also expressed his passion for the franchise went over that talked about his love for it and talked about a lot of the Turmo that went on with not a lot of it But kind of was hinting at the turmoil that went on with screen 4 how he was apprehensive to do screen 5 You know just some of the stuff we kind of have already heard him talk about But he did get into how many times he's actually seen this upcoming fifth film and How he initially of course did not want to do it But he realized he did not want this to happen without him being a part of it He I guess what also ended up happening. I would imagine is he realized, you know, he wasn't dealing with another pair of wine steens he was dealing with a plethora of people it seems like at this point that have a passion for this for this franchise and what West Craven and him helped to create back in the 90s and they want to come out and make a I would say a high-budget fan film That's officially a part of the continuity and that's that's what they're getting We have fans living out their dream because there's not a single Piece of doubt that I have within me that thinks that these people are not fans of this franchise They have everything about them just seems authentic. They they seem that they're coming from a very a very place of A place is just feeling so lucky that they were even getting a chance to do this and they they want to do it Justice they don't want to step on any toes. They don't want to of course let down anyone that they look up to because He went on to Kevin Williamson that being he went on to talk about the enthusiasm that Matt and Tyler Had the new directors for the screen film and how they were enormous screen fans We know that we know never him I like to talk about this letter They said about how they got in the filmmaking and how it was kind of related to those movies and West Craven And his work was kind of the reason that all happened So he says that he has seen the movie seven or eight times because he's a he's very critical He was he was nervous about not liking it because they were all wanting to know what I thought about it And he's saying that he just loved it He said it's really good and a lot of fun if you like the first scream I think you're gonna have a blast. So is this him saying that it's the best since the original? If anything, I think this is just him being aware of the fact that he knows There's a certain Admiration for that original more than any of the other ones scream to comes in a close second And I know scream 3 has its fans like like myself But you know, I'm one of those fans who likes to talk a little bit more about What might have gone wrong with scream 3 then all the stuff that went right? because I feel like there's more There's definitely pros that are strong enough to keep it above Being a bad film for me the pros are handled so well that all the cons with scream 3 They they don't bring it down to being a bad film or anything like that for me And then in regards to screen 4, you know screen 4 I've said this many times my problem with screen 4 because I feel that's a step up from what we got with 3 But the tone is kind of just like it's totally uneven Some of the acting yes is a bit Maybe wonky at times But then you have some incredible moments You have a motive that was way ahead of its time given everything that's going on today Lot of people were mocking it back then.   I understand your frustration same thing with Roman. I understand all of that What you're doing is still stupid So like I think honestly, he's just going off of knowing that there's a lot of admiration for that original film and people hit Considering that to be the best entry of the franchise and he's just saying, you know He's smartly marketing it by leading it with you know, if you love that first film, you're gonna love this one so Him watching it eight times or so that means I have to go out there and watch it more than that I already had plans to see it in theaters Close to ten I'll definitely gonna try to aim for something higher though Because just like him I want to be able to sit down watch this movie one time give my initial thoughts to you guys and then Afterwards see it again multiple times make multiple videos talking about different aspects of screen five while we wait for the Inevitable scream six that we hopefully deserve to get depending on how it performs at the box office and critically of course And again as far as like what the critics have to say I know some of you just mostly waiting to hear what I have to say. I do also know that a lot of you you Tend to trust what I have to say in the sense of you'll try to see where I'm coming from I know a lot of you will reach out to me and say I saw the movie I saw where you're coming from and then we kind of go back and forth talking about I like those healthy conversations Not someone who wants to jump down in the comment section and tell me I'm so wrong. I'm so wrong I'm so wrong, but then you're not Countering anything. I brought up. You don't have any counter arguments. I just like healthy conversations about Filmmaking if I say something was handled badly in a film and someone can give me a reason why it was handled good You know, you're opening my mind to reevaluating that film So I just want to be able to watch screen five a plethora of times Of course, I definitely will have seen this movie more than 20 times in this lifetime hopefully and Just want to be able to sit down evaluate the character of Sam Carpenter Determine if I think she has a longevity as a final girl to carry the franchise and carry the mantle from Sydney Prescott and How I think the the narrative should go forward with those characters And if the town of Woodsboro will be factored into a future installment after this and just going over course the killer's motives If there are any naysayers about the motive trying to reason and provide Logic as to why this motive is actually quite brilliant if it is a brilliant motive and If it's a bad motive going over reasons of why it's bad There's just not been a single motive where I've said this is bad. There's been motives where I'm just like, okay I'll accept it but I Can't wait to see this movie his enthusiasm for makes me even more excited But let me know as I think about this down the comment section below if you have already of course Make sure you subscribe turn on post notification numbers the video in the description I've linked some social media accounts on Facebook Twitter and Instagram you can message me there Of course, there's any movies news or reviews you'd like me to cover in the future with all that in my guys I will see you in the next video