Sam here with late in sports cards from 23 tops gilded collection 22 TC sapphire 3 box mix number 1 random team style To look again at your random results as always you can find those on the website under the results tab as well as the link in chat So good luck everybody. We had Brian s picking up a spot We had Brian R 2 in the full gilded case 33 and 2 in 10 box Tony W picking up a 10 box and a spot in sapphire and then Brian s with the Guardians in a case of gilded I believe or you know one or the other seven to go everybody seven to go To go in the next mixer again forty three dollars a spot on this To TC sapphires. Good luck everybody start with these gold Tommy Edmond to 50 More him or forty key NLE's division smiles one two three left four five six right on all of these dual cards that have no team of multiple players That will be a five. It'll go to the right. So I'll go to the right with Lindor. I'll go to the right with Lindor Linnae's Miguel snow and base again. We might have another dice roll if we have a triple card We will see that is an orange of AJ Alexi rookie for the Rangers Good time to get that congrats. I'll then yeah, I just saw that one too. Whoa a lot of words there A lot of words. I'm unfamiliar with Taiwan Walker and future stars of Bates We got a red. We got a red That is a Yankee Geo Urshela. I miss you buddy. I miss you a lot One of five congrats. Yanks nice one there That is pay in a slap. Let's go slap.  I believe 11. They start Season yeah, it starts with the He starts with a poem in Chrome you right? Yeah, gold Austin hedges to 50 Nice one there. You got a little house and Jeremy Payne on the roof Pretty solid a box of TC Sapphire there. Yeah, holy cow. Jake Rogers sighting. Oh boy Yeah, Washington, they're up one your 16 teamer Gold Trey Turner nice one there Fly in Hawaiian chain Victorino. He was the man dude really good Philly really good red sock Plays a couple other places. I believe as well awesome meadows Yeah, still no choice for flux.  Oh, yeah. So yeah shout out No flux checklist. Yeah better go up today. Oh, yes. Yes. Here's some fader Padres Kevin B. Gio Purple is Gregory Soto for the Tigers nice one there Detroit Spencer's boy Dave with a spot in the next mixer Tyler with a spot in 10 box basketball. Thank you guys appreciate that Uh down to six to go in the next one everybody six to go the y'all grew on as well one box and he'll just See it everybody come out. Have you noticed this too?   It was only good when it didn't matter God I love pulling former and current former and current bad Tigers. It's so funny Like a Wikipedia page Ryan G with three in the next one. Thank you Ryan We've got a wave Yvonne Rodriguez to 75 nice pledge going it to the Rangers congrats Rangers God Corey Siga it's one there to 99 for the Rangers Walk rate was ridiculous Yeah, that's not a good one to have That walk rate Francisco Alvarez to 50 on the rookie mini diamonds for the Mets Rats Mets 10 of 50 or not 30 of 30 of 50 and then auto going to the Nationals to 99 is Joey Manessus. There you go Alvin rats buddy Alvin hitting two of the four cards inside which was nice with the Seeger and now the Manessas Bruce Bochi Yeah, yeah, I would definitely lane definitely Love seeing bad Yankees with you in socks. Yeah, bad Yankees bad Ravens is really got to be going dude Nice one here going it to the Padres Dave Winfield congrats on that eight of 25 on the gold framed on card auto for the like I said Padres very nice feel quick recap. We'll start off with some of our TC sapphire color We had a gold to 50 Trey Turner gold Austin hedges gold Tommy Edmund to 25 AJ Alexi to 10 Gregory Soto and to five Geo or shell of Joseph Mitchell red socks. Yeah, I don't think anything big Francisco Alvarez to 50 Corey Seeger to 99 Pudge Rodriguez to 75 that's Dave Winfield to 25 and Joey Manessas to 99 That'll do it for the break guys. Thanks again for the film up next is the second


Oh yeah, what's up guys, this is CursePipe, my friends call me Big C. I'm back in action today, we're in HitFilm Express, it's the free video editing tool, and we're continuing our series where I show you how to be the best video editor you know for free using free software. Yeah, it's awesome, guys, here we go. You'll see here that on the right side I've got this lady, I've loaded up some footage, and this is basically what I call the Sin City Effect. They would call it, you know, Selective Color is what they technically call it, but this is what you do to get a Sin City type look to your footage, and this looks really cool, especially in the production value side of things, because you can see here on the left side where you've got all of the colors, and then on the right side here we've got this lady just with only her cool blue hair colored, and everything else has gone black and white. How do we do it? Very simple, let's start from scratch, I'm going to go ahead and delete all of this stuff here in the timeline, so we're gonna start right from the beginning, so Select, and let's go Remove. Okay, so we've got nothing in our timeline. The first step is you wanna get some footage. I've got some stock footage from Pexels, and I'll put the link to it in the description below, so you can download it if you wanna follow along. Drag and drop it onto Video Track One, and you can do this with any type of footage because we're gonna select for a specific color. So, we've got the footage on Track One. The second step is you wanna grab the same footage, and now drag and drop it onto Track Two right on top of each other, so it's basically duplicated because we're gonna be working on both of them. So, the next step, if you're following along, and you've got Video Track One, left click on Video Track One like this, and go to Effects, and Under Effects, type in HUE. You're gonna see two things here, you're gonna see Hue and RGB key, or I mean you're also gonna see Hue, Saturation, and Lightness for the bottom layer, making sure you're selected on the bottom layer, or Video Track One, click on Hue, Saturation, and Lightness, drag and drop it onto Video Track One like that. When you do that, it will open up the controls, you'll go to Effects, and you're gonna see Hue, Saturation, check mark beside the box, and you're also gonna see the Master. We're gonna left click on the Master Chevron here, or the downward triangle, so to speak, and we're gonna drop the Saturation to zero. This is gonna show no effect on your video timeline so far, nothing to worry about. Just make sure that it is selected and dropped down to zero. You can close it up if you want. We're gonna go back to Effects, and now we're gonna get to Hue and RGB key, so you'll just, if you've typed in Hue, you'll see both of these on top of each other, so Hue and RGB key, left click on that, drag and drop it onto Video Track Two. When you do that, presto, you're gonna see that it is already done basically what I am looking for it to do, but that's partly out of luck, and partly because I had the, it already set up from my previous video, so if you don't get the exact match and you probably won't, you wanna left click here first off, and you wanna select the color, left click and hold down on that eyedropper, and then just hover over top of where you think the color is you wanna select. So I selected the blue. Okay, good, now it's gone back to regular and it's not what you want. What we wanna do now, and this is very important, is left click on this little invert box, pardon me, when you do that, then we're in business. Now you can adjust the tolerance all the way to zero, which is not what you want, or you can go all the way up here, which is also not what you want. So you wanna make it so that the background color is basically black and whitish, but the foreground or the color that you're trying to select for is, yeah, is there. So in this case, 20% tolerance, which was its default, is pretty good. You can adjust softness as well, you wanna up and down a little bit. It doesn't really do too much in my opinion. And there you go, guys. Now if I hit play over here, you got this lady, she's doing her thing, and presto. This is Sin City Effect, and this works great, and this is all using free techniques, free software, free everything, guys. Thanks for watching this tutorial. I have a ton more stuff coming up.


So a quick round of introductions. We're going to be talking about evolution of JavaScript frameworks. I think that's kind of in line with the topics that we've been talking about today, evolution versus revolution, and also the quirks about existing frameworks, et cetera. So let's see what we have for today. Before that, a quick round of introductions about ourselves. So this is Hari Krishnan, my colleague at Mavenhag. Over the past couple of years, over his career, he has built a lot of applications, most of which involved a significant amount of JavaScript in one form or another. He usually likes to talk about concurrency and performance and such serious stuff. But today, he's pairing with me on JS Talk, sparing you all the headache. And this is Dharampal. So for today, I thought this would be a better introduction for him. This particular book, it's his proud position. He claims that this was his second programming book that he bought. It's about JavaScript. It's 15 years old, by the way.  And this is his real collection of headphones. So let's talk about why we wanted to present about this topic today. Very quickly, it's like about two months ago, we were starting a new project. And we were contemplating which framework to start using. And as we already know, we have a plethora of frameworks to choose from. And we were completely flabbergasted at the choices. And we were going at what kind of frameworks were available five years before and eight years before and 10 years before when both of us started programming. It kind of gave us a very good insight into the evolution. And it was a good story to the entire timeline. As a developer, I always am interested in understanding the history and the context of things in which it is done so that I know where I'm going. So I thought that's a good story to share. And we put this presentation together. If that does not convince you, I thought we should put some Chinese props in here. This is a good one. Those who don't know history, I don't repeat it, which I guess might be happening right now. And another one that says, you can't know where you're going until you know where you've been. If that still doesn't convince you, we should probably definitely listen to Douglas Crockford. And in his talk, Crockford and JavaScript highly acclaimed. He says, understanding the context in which stuff happens is very, very important. If you haven't seen the stock, highly recommend it. Definitely watch it. It's a two-part series. OK, with that, before we start, this topic was presented in a different format. It was called Evolution of JavaScript in a different meetup. It went on for two hours, so we didn't want to do that here. We've kind of cut it short to JavaScript frameworks pertaining to web applications and tried to give context in that angle. And the categorizations that we've done are purely for ease of understanding the context. So don't go by exact dates and all that. So we are not professional historians. So quick show of hands. I know we're all users of Angular, Ember, and all that. How many of you have used CryptoKillers? Show of hands, please. OK, prototype? Dojo? GWT? DWR, anyone? OK, there's still one hand. That gives me some confidence this talk will be relevant. OK, so let's get started then. Right. So we all know the story of how JavaScript started in about two weeks. It was built in about two weeks at Netscape. The thing is, it was never really designed for building big applications. Or initially, at least, it wasn't designed for building big applications. You couldn't really design something that lasts in about two weeks. So the initial intention behind JavaScript was to enable web developers to build something like this. This is Apple HyperCard. What it is is a list of icons, widgets, just icons on a screen. And each icon, it had this little script, a little automation that runs when you click on the icon. That's pretty much it. And that was the intent for JavaScript. Netscape wanted the developers to be able to do something like that. And this is, again, a quote from the book that we showed earlier. This is a really old book, as I said. And one of the things that the author says is it's designed for simple, small programs. I know it's not visible to the back, so I'll just read it out. So he goes on to say it's well suited to implement simple, small programs. And goes on to give an example of what a program like that would be. For example, a unit conversion calculator between miles and kilometers or pounds and kilograms. And he goes on to say one more thing which is kind of interesting. Set programs can be easily written and executed at an acceptable speed using JavaScript. So the key thing to notice first thing, it wasn't designed for anything big. And it wasn't expected to perform. This is how JavaScript began its life. And this picture is, again, from the same book. It shows the kind of DOM API that developers back then had access to. So what it has is a document and a couple of very specific elements. So back then, on the document, there were these arrays of specific things. You had, for example, an array of forms. You had access to an array of images. You had access to an array of anchors. And even an array of plugins, but I have no idea what that was for. So under the form, you got access to a specific list of HTML elements again. And a typical enterprisey usage for something like this was, you'd use it to write form validations. Very simple form validations on the client side. And back then, it was usually to avoid an extra call to the server rather than from any thought about UX. So don't bother reading the code. I'm just gonna highlight the stuff that's relevant. So if you see, the form over there is being accessed using a hard-coded index. It forms of zero, find me the first form. And then we go over every element in the form. Check if it has a value. If not, gather whatever doesn't have a value. And then use an alert box to display the message. And the result of that would look something like this. So that's a page. That is showing an alert box telling you which form, which fields you haven't filled yet. I mean, that's an alert box. Horrible, right? But this was acceptable back then. This was the state of affairs. This is how we did things. And this is, again, not that far back also. I mean, this is around 2000s, 2001. And then on top of it, if you took all that effort to write your scripts, client-side validation, so whatever else that was, at the end of the day, you couldn't rely on functionality being provided by JavaScript. By default, browsers didn't necessarily enable scripts. And it was a fairly common thing to disable scripts. This screenshot is kind of a little recent. I mean, this is from IE seven or eight or something like that. But this was still the old dialogue was something similar. In the high security mode, it would just disable JavaScript. So end of the day, you had to plan for JavaScript not being run on the client-side browser. And basically JavaScript wasn't important. That was the key thing. And again, yeah, the picture isn't showing well because we had to zoom out a bit. But I'll just show you what Hari is pointing to. So this was an era when there was a debate over whether JavaScript really was an object-oriented language. If you looked around the internet, particularly people coming from popular languages of the day, something like C++ or Java or even C-sharp at that point, but JavaScript itself is pretty weird, right? Like you can feel some of that even today. But for somebody coming from a traditional language, it was absolutely baffling. There was no way to, it just wouldn't make sense. It was just not right. So the thing that Hari is pointing to is a word that says object-based. So people categorized JavaScript as this language that was object-based. And as far as I know, that's the only language that ever was categorized under that category. I can't think of another language that was called object-based. So, and of course, frameworks. I mean, if JavaScript itself isn't important, why would you need frameworks, right? All right. So now comes the era of Web 2.0 and rich internet applications. This is essentially like, you know, brought to the fore by Gmail coming out in 2004, with this particular UI. I don't know how many of you remember. It was the first time there was a desktop-like interaction on a web application and the full-player page reload was not happening, right? This caught on quite well with a lot of the people and everyone wanted to use Ajax essentially at that point. And XHR, even though it was around since 97, really only got leveraged from this point onwards. But that's, it's not very easy, right? You look at XHR code. It's intentional that I put a lot of code in there. It's not meant to be read, but that just gives the idea of the amount of boilerplate in there. Even if I highlight the most important ones, still quite a bit. And the first, I saw is the fact that you need to do an if check between ActiveX and XML HTTP request based on the browser. And if you got past that, you still had this problem, which is on ready state change. Ready state four is for data ready. And that's not very readable, is it? There were still more issues, right? One was the browser checking for features, which was slightly alleviated once you got to feature checking. Feature detection was enabled. You could actually check if XML HTTP request existed. But even then, the if checks were not going away. It's just the conditional itself was changing. Well, even for this particular era, frameworks, we were kind of crying out for it because we started writing a lot of JavaScript and things were getting out of hand. But maybe at this point, we still did not have many frameworks. So around this time, people started taking JavaScript seriously a bit. I mean, people started writing more and more JavaScript and filled the pain of not having good abstractions and all of that. Just to reiterate, one of the major issue was, of course, brotherhood and compatibility. I don't know how many of you remember seeing a bat like that on a website. There were badges that said, we are best with IE, we are best with Nescape. And the badges kind of remained on until initial versions of Firefox came. I mean, I have seen badges that said, we are best with Firefox, which was kind of ridiculous. So the problem was, of course, all the brothers had their own way of things. These incompatibilities, they haven't gone away. They are still around. Just that it was a lot worse back then. And so this, for example, is, if you had to select some text in our text box, you had to focus on selecting Nescape, but you could just select in IE. So you had to account for both of them. And Nescape had layers, IE had divs. And if you're writing any code that used any of that, you had to check for it if you wanted your page to render correctly on this thing. And here's a more recent snippet. So this, okay, let me remove the highlighting. Don't bother reading again. But the thing is, that's the jQuery ready function. This is what gets run. If you're writing jQuery, you may be used to putting your JavaScript in a closure that make sure that your JavaScript is run after the DOM is built, right? And the jQuery ready basically does this in order to determine when the DOM has been loaded. Of course, this is all standardized now, but this code is still around. And I'm just highlighting some of the comments over there. The comments basically talk about differences in the browsers and stuff. Look at the last one. It says, if IE and notaframe continually check to see if the document is ready. I have absolutely no idea what that is. But, well, that's a little funny. Okay, the next set of issues were to do with the JavaScript syntax. Just the fact that JavaScript was not familiar to a lot of them, a lot of the people. Or it didn't fit in with the existing patterns, people that were used to. This happens with any new language, but with JavaScript, people that were using JavaScript to write simple script, they almost never had to go and do OO or even to learn that JavaScript could do OO. So for them, starting with OO for the first time, it would still feel weird. So this is, for example, one way to create a class in JavaScript. I mean, I myself remember feeling the first time I saw a code like this. I was like, why would I use a function to create a class? I mean, again, back then I wasn't even thinking in terms of JavaScript. I was just retrofitting everything back into the languages that I knew. So, using a function to create a class, weird. And then, of course, there was another way to do that. You attach your methods to your prototype instead of defining it in your constructor function. You could define object singletons, which you could then use as types. I mean, it's a singleton, I know, but back then at least I couldn't distinguish the difference. This was like a long time ago. Similarly, one more. So basically, at least four ways in which you could define your types in JavaScript, which was, again, a bit baffling. And, of course, the biggest culprit of all. This is determined by the color context. I mean, in just about any other language, right? This is kind of, I mean, you guys already know this, so I don't necessarily have to say this out again, but the fact that in an event handler, this could change to the window because that's where the call is originating from.  So, this is what the initial set of frameworks tried to address. Right, and considering these were the factors in the environment, a few frameworks came out to address the issue. First one being Dojo. I remember having done this kind of UI without any frameworks, right? And that's really, really painful. And when Dojo came out with all the widgets, especially this particular widget I really like, it just worked, and it was much more simpler to use this. It had its quirks. It did not perform well if the list got really long and all that, but who cares? It was much better than what was already available. It was a very good step forward. Dojo also started doing something about the class declaration and object creation aspect. To standardize it, they started giving like some level of abstraction around it. And of course, the XHR, Ajax code, we started getting a little bit of abstraction here. At least it reads more like business right now in the sense that you don't really worry about the ready state, et cetera. So, some improvement, right? Prototype, of course, again, another way of abstraction around creating classes. And prototype was obviously most famous for Ajax.request, really, really intuitive and simple at that point in time. If you guys remember, prototype also was in philosophy very similar to Ruby, which is why if some of you are like Rails developers from back then, you would recollect that prototype was the first JavaScript framework packaged with Rails. However, just to summarize this particular era, the focus of the frameworks that came out was mostly on creating abstractions over inconsistencies. It was not about better code organization. Code was still dirty, still non-maintainable, not extensible, little difficult, right? Also, there was another school of thought at that point in time, which is, people are like really, really getting frustrated around writing JavaScript with all these inconsistencies. So what do you do? Stop writing JavaScript. Instead, use stuff like GWT, right? Cross-compile to JavaScript. It was an interesting idea, but I mean, it was like kind of weird writing HTML, I mean, Java, and then cross-compiling it into something else. It worked for some time, but not sure if it caught on really well. And then direct web-remoting was an interesting approach to abstracting out the Ajax details itself, wherein a DWR would allow you to call server-side Java functions as if they were local to you in the JavaScript file, right? It was interesting at the most, we can say. And then this happened. The ubiquitous dollar, right? I mean, just to give you a tidbit, dollar was first used in prototype, but it became more associated with jQuery later. So two things that jQuery offered was easier DOM manipulation and CSS electors. Absolutely cannot deny it. It's like, even to this day, like the gold standard of how you can abstract things out, right? However, it did not solve the code structuring problem. Still were writing, you know, largely ad hoc scripts. jQuery plugins were also quite, you know, it's just like JS code, right? It's not like modules or anything. It did not really fit in a very good way. With that, that's the next era. So the next era was when we started tackling the code structuring and stuff. By the way, if you've been noticing, we've been putting all these pictures of creatures over there and all that on our title slides. So that's in theme with the evolution theme that we have picked for the talk. And we call this, we picked an amphibian for this because, at least in our minds, this was a really big step up. Like, just the way an amphibian had to crawl out of the water and figure out how to stay on land, which was a pretty steep jump. At this point, you started organizing code better. Again, we're not saying that nobody wrote good code at this point. We are mostly talking about, you know, the typical affairs back then. Because I remember seeing Selium code back then and this was, again, after prototype and stuff, but that was actually a really good code base. That was on that, initially, got me started with proper over in JavaScript. So, yeah, with MVC frameworks, amphibians, this gave us some interesting frameworks. But before that, going with our biology theme, biology 101, whenever a change happens, it's because of a mutation. And mutations are largely categorized into two groups, endogenous and exogenous. Endogenous being something that's inherent and exogenous is an external factor. So, let's look at some of the factors that drew JavaScript framework evolution around this time. So, one was the JS engineers. So, there was V8 and this had a pretty big impact. I mean, this started off node and everything. But the thing about V8 was it proved that JavaScript, you know, didn't have to be slow. It proved that JavaScript, you could run pretty serious. You could write a big code base and expect it to perform and write it all with JavaScript. That was, I think, pretty impressive. And obviously, everybody else caught on and, again, I don't know the internal timelines. It's possible that everybody else was trying to achieve this. But in my mind, V8 sticks because that was the first one to roll out because very shortly after, Spider-Man Key came out with its performance numbers and they kind of mapped V8, P2V8 and whatnot. And then there was Chakra that mapped the performance again. But I remember V8 and that kicked off Node.js. So, in general, this was the era when we started seeing very performant browsers, JS engines. You could write very serious code with JS. And the other thing was, of course, the notion of a single-page application started getting prominent with Gmail and stuff. The idea being giving a desktop-like experience to your web application users. There were also ideas like rich internet applications, which was basically a mishmash of online or offline modes storing local state and making online calls only when required and all of that. But, essentially, the web was taking the center stage. This was the point when you kind of thought twice about whether you really need to build a desktop application. So, all of these factors resulted in the initial set of MVC frameworks. So, I'm picking Backbone here because that's what I like, again, personal preference, not to say that anything else was bad or anything. I remember using Bit of Knockout and there was even this thing called SamJS and stuff that I used. And there were a lot more. There were like absolutely a lot more. But I'll just show you a little example from Backbone. This is the canonical to-do from Backbone. And the key thing to notice is... Okay, so there is like a to-do collection to handle a collection of to-dos, which refers to a model, which is a single to-do with a couple of attributes. And your collection points to a URL and all you have to do in order to fetch your to-dos is say collection.fetch. Notice how I'm not making any Ajax requests. I don't care about the details anymore. This is a significantly higher level of abstraction from making raw Ajax requests, processing it and then parsing JSON and creating objects, whatnot. All of that is handled. Could be magical, but I think this was kind of the right level of abstraction. And of course, this Backbone also had its views with the templating system, again, a very basic templating system that could be fit out if you wanted and stuff. But see how events are... The view declares events. It declares events. It doesn't bind to them. It's not imperative. And so, and there's a little bit of two-way binding going on over there. Like the view fires an event to update the model and whenever the model changes, it fires events that the view listens to and then updates itself. So, this was like, yeah, this is how we wrote code in this era. So, a couple of other things that happened around this time were there's HTML fire and everything, but we won't get into that. We are trying to focus only on the web development aspects, web applications, the typical enterprise applications. So, the other thing that was interesting was modular JavaScript. This was around the same time frames and there was a specification called asynchronous module description. I remember using ReactJS that did this. So, this is essentially the same as what is getting into ES6 now as modules. Essentially, the idea being you have well-defined modules that expose, you have control over what you expose to the people that depend on the module and proper dependency management. All nice things from, if you've used something like maybe not something, people would be familiar, but this was the first time this kind of got into JavaScript. And, yeah, of course, packet management. Again, thanks to V8 and the node, we had NPM and now we have board and stuff. The strange thing is JavaScript being as old as that is. It's very strange to think that I didn't have proper package management for a really long time. I mean, Ruby had gems, Python with pip, you and Perl had like Cpan and stuff. But JavaScript for a very long time, I really find this bit strange. Right, so with that, we evolved to apes, right? Client-side application frameworks. We thought apes might fit this because the amphibians came out of the water, went onto the land, now the apes have climbed the trees, but that was the analogy here. So with that, I'm just picking AngularJS and Kin here. I'm not going to go into code here because most of us know how to do it. But what I find a little strange is sometimes when someone asks me about AngularJS and what is it, the first answer probably comes out as like it's an MVC framework. But it's a little bit more than that. What we've seen is Angular bringing in the declarative aspect of things to JavaScript programming and also around data binding, which all of us know very well. The part I really was impressed about with Angular is the dependency injection. The reason DI is really important is because it lets you write more maintainable code and extensible code. And by design, dependency injected code is testable, right? I think the most JavaScript code I've written with test coverage with Jasmine specs is probably with Angular till date. I have to check out the others, but this was very, very significant for me. Services, another concept which is coming down from server side programming into the client side programming aspect, right? So these are all good ways of writing maintainable and extensible code. And it's good to see that they're coming into the JavaScript framework side. And more concepts, of course. However, where are we headed next? We do not know, right? Like the previous talk, which was brilliant and we just saw the amount of difference we have between us, right? We still want to explore other frameworks. And the probable reason why we have so many such a plethora of frameworks is because we probably haven't hit that right card till now. And we have to get to that point. So which is why I thought I'd label this a missing link. And I'm just hoping that we are headed in the direction where we get to libraries which lets us write more extensible and modular code and focuses more on the code organization itself other than just abstractions, really. So with that, thanks a lot for listening to us and we hope we have wound up fast enough for lunch to be served at the right time.


is dedicating. I'm back again to show you how to win and get dividends. So anything about to go get these dividends, baby, we are going to make $550 and about four or five hours about to lift that money shower. Now, in this video, we do have our highest paying deliver order we've ever had. And we also have another low. Now, we're going to do the low first, but not first, we're going to pick up the low first, then we're going to do the deliver order, and then we're going to drop off the low. But we went into a lot of problems today, so I'm just let you guys know that right now. Now, this low is 25 deadhead miles, 86 miles loaded. So 111 miles for $200. I don't know about the go ahead and pop my collar. Let's go. And just like that, we are here at the pickup location. As you guys can see is snow and snow. It is snow wind, baby. We are early. So we're going to see if they let us get this joint early or not. I don't know. Hello. How are you doing, sir? I'm doing great. I woke up this morning. Happy Halloween. Happy Halloween. I have an order to pick up to go to Chicago from you guys. Yep. We're actually just prepping right now. Okay. So if you just want to hang tight right here, I'm going to get the paperwork and then I'll get you loaded. All right. Thank you. I guess we're picking up this right here. So I'll be picking up the container. Let's see if that's all. Time for us to ball this gold. Y'all see what's going on? She about to get us right so we can get our pockets tight. I can't believe they give me the big old deal with these little pieces of floor mats in it. That's it. That's all. I'm talking about making it nice and easy before they can cheat and cheat. You can just leave it right there. Thank you. And just like that, it is game time. Let's go out here and get on the grind and shine. Let's climb to the top. Swing or never stop. Let's go. So as you guys just saw, we are delivering a floor mat. That's it, baby. A floor mat for an SUV or like a car or something, baby.  We don't keep on skating and being great. Now we are going to do our D L I V R DB, but the pull up right now. So you can get this cheese delivered app. We are going to do our order on the deliver app. The pickup location is cozy Italian. We are picking up listen to this $3,750 worth of food. We're going to drive 1.82 miles and we will receive a payment of 350 R. I P Nipsey. Let's go. Just like that, we are here and cozy so we can get this dough. Gee, I got to go to this door. We're here at this place called close. I've never been here before. Um, is looking like a lot of stuff. That's probably us, baby. Good morning. I have an easy catering order to pick up. What's the name? Um, yeah, easy catering. It's a huge order. Yeah. They're working on it right now. Okay. What's the number? Right there. Yeah, 64. 644. So we got. Okay. So these are the bags over here. Yeah, all of those back right there. Okay. Okay. Appreciate it, boss. Man, number one and two. Get this money is what we're about to do. Three. Oh, this door about to be filled. So they got a lot of stuff filling up, baby. Hopefully this is the last bag. I'm not sure I'm going to see. Is it the last bag? Nope. This can't do it like me. No, it's not the last bag. Get to this bag, baby. Y'all see what's going on, baby? We got this joint filled up. Now it's time for us to go ahead and get these bucks. If you hate it, so what? Let's go. And we are here to drop off, baby. I'm talking about just confusing. We are in Chicago, of course. Hello. How you doing? Can you tell me where sweet 1100 is? I have some food to drop off, but I'm not sure if I should park here or down there or do you have any ideas? You just have some food to drop off, right? You just park further down there. Got a lot. So you basically have to go around and park like near the Michigan side, not really, but like in the corner? Yeah, on the edge of Michigan and yeah, like on the corner right there, going through the Equinox doors. Equinox. Talk to the security right there.  Y'all see what's going on, baby? Check it out. We still have like three or four more bags in the van, but it's time for us to get these bins. Let's go. I have a question for you, sir. Have you been in here before? Yeah. Does this elevator take you to number 13? It got a 12 out of 14. I don't know if there's a 13th floor in this building, so sometimes they don't call it 13. He told me, he specifically said go to 13. We just loaded all this stuff. I hope we're in the wrong building. I hope we don't. We're not from here or so. Well guys, you guys would not believe what's going on, baby. So we're actually lost. Again, this is why I'm not like I'm from Chicago. I tell you guys, this is every single time, but we have to put the food back in here. We do have it in the dolly and also the wagon wagon. We got that wagon. Turn the light on. Okay, we're back and we also have the wagon wagon wagon. We got the wagon. So I'm standing in the back of the van while we drive up on the corner and see if we're going to the right place this time because I do not want this food to move. So I have to stay back here with it, baby. I can't play games. Okay, I do. I did put the deal on the strap right here. So hopefully it doesn't move, but I got to be safe. I'd rather be safe than sorry, baby. I'd rather be safe than sorry. This has been a disaster and we do not have to drop that order off until we do not have to drop that order out to 1230, but they have been in me. I'm like, where are you waiting on that stuff? So it's ugly, baby. We're taking a chance. We are taking a huge chance and hopefully everything works out for us. We're getting some footage of the actual food. So I'm just going to hold on with my fingers in here. Just break the legs just in case you got to stop. This is a disaster. What? I tell y'all, baby, what are we going to do? We got to do so we can borrow and not stall. Let's go. A few moments later. Oh, hold on. Hold on. Are we close? Which way are you turning? Oh, you got to have some good upper upper body strength for this. I would tell you right now. How you doing, sir? I have a order, a food order drop off for floor 13. The place is called GCM. They say that they reached out to you guys so I can get in. Yes. Are you just dropping off the food and you're not doing any kind of catering service? Yes, it's catering. Oh, you're doing catering. Okay. We still have a few more bags, so I'm going to have to run back down there and grab the rest of them. Yes. No, I got lost because the elevator, I went to G, right? Because I didn't know where I was going. And then once I got, first of all, it took like three minutes to get for the elevator to come. Then I pressed G, then it would take me to G. And that's like the ground level. It's not the actual loading dock, which I didn't know. Yeah. So then, guess what? The elevator went back up and picked up like three people. So if somebody finally told me, I thought the door was closed. At least they helped me. Oh, that's how you were doing it. Oh, yeah, these are all the same. Okay. Well, thank you very much. It was nice to meet you. As you guys just saw, that was a complete disaster. We did get it done. We all think got those funds. And guess what? We about to run to our next location. We are going to the floor plant right now, but to pull up and get busy, I'm glad you guys are with me. Let's go. Sorry about that. He said, he said yellow doors, not yellow docks. We got, we got lost. Yep. We got lost in the sauce. Yes, sir. I'm ready now. You would not believe us in here. I say you would not believe us in here. I'm going to show you. I'm sure you've seen it all though. This. Yes, sir. All that for that, huh? Yep. But hey, they're going to pay me to do it. So I ain't complaining about it. You can just sign right here. That's fine. Sign? Yeah, just sign. Hey, yeah, sign there. That's your pen. Yeah, keep my pen. I love my pen. And that's a good pen. That's a nice pen. I see, I see how smooth. Yep. Thank you very much. You have a great day, sir. Yes, sir. And just like that, it is the end where I think I got those dividends. Y'all saw us win. Y'all saw the good, bad, and the ugly baby. Y'all saw us get lost down to Chicago. It was all type of stuff going on. I'm going to give you guys a breakdown on the reason why I took that first hold in the first place. So yesterday, I did get to deliver order for 350 dollars. I like, I got to take this joint, baby, but I already knew it was going to be in Chicago. And I do not like going down there. So I need to cover a little bit of deadhead mouse. And I figured that since this low popped up going from Wisconsin to Chicago, that it'd cover some of that.  So I just go, I'm like right in the middle. I said, I told you guys before. So I took that low for 200 dollars.  So I might as well get paid two times while I'll be up there on the grind. Y'all saw us shine. So that's the reason why I took that order. But I hope you guys enjoyed this video. Again, if you're not subscribed, make sure you subscribe and also give me a thumbs up. And don't forget to throw them seeds up in the comment section.  If you are not, and you would like to be, you must first be subscribed and you must then hit the like button and you must then throw them seeds up in the comment section. And also before I go, make sure you guys click the link in the description for the Amazon affiliate store. If you would like anything that I use on the video, that's about GoPro, the dash cam, anything that I use in these videos, the wagon, you ain't bragging about the wagon, the wagon, the dolly, anything that I use on these videos is in the description. Shout out to everybody who hated and missing. I hope you guys enjoyed this video. I see you guys on next one. Be cool and be cool and be fun. You already know what it is, DDK and I'm on my way.


Hello, I'm Kyle, and this video is brought to you by the Old Road Zine. It's a collection of maps, and if you'd like to learn more, check the description below for a link. Today we're talking about a form of dungeon layout and dungeon design called Jekweying the Dungeon. I first heard about this on a YouTube video that pointed me to the origin of this term, which is on TheAlexandrian.net. Check the description below for a link to the articles talking about this. It is named after a dungeon designer and adventure designer, a map maker named Janelle Jekwe. There are many different principles to this. I tend to just focus on the three that I find most helpful. I use this consistently in all of my map work, and it helps me make sure that I'm making an intriguing and gameable space, whether it's a dungeon or an overland map or an area map or whatever. The number one thing is to make sure there are multiple entrances or multiple ways to interact with the space. Number two is looping paths through the space, so avoid spaces that just have one route that goes straight through, and secret paths, so the idea that you might be able to discover more information or a different way through the dungeon or the area by being clever or utilizing some kind of hard to spot feature. Now, most of the maps I'm doing right now are overland maps and they're not really dungeons. So I am going to take a look at one of my favorite dungeons, the dungeon from the Beginner Box for Pathfinder 1st Edition. I have a lot of fondness for that map. It was like the first time I felt like I was really being like a dungeon master and I just had a great fun time opening up this map from the Beginner Box and just basically running it cold, following the instructions along, and I think it's a great introductory adventure to the hobby. Even if Pathfinder and Tactical Combat isn't your thing, I think it's a great dungeon. Now, for editing purposes, I am just going to make an isometric copy of this map and really, if I am running a game, if I am prepping a game, this is kind of more the level of detail that I'm looking at just for my own note-taking. So you might get the impression that if I'm running games, I'm constantly making these overly elaborate things, but that is kind of more for the zine, for the product, and for the profession, and not so much something that I would do for a home game. So this is it. This is Black Fangs Dungeon. It is named for the dragon at the end, but you start there in front of the vines in front of the cave. You move through the goblin guards that are waiting to ambush you, and then you move into the magic well room where you can split off into one of two directions. You can kind of go the hard route to get all of the treasure and fight all the mini bosses, or you can head over the other way. You can go through the magic well and kind of take the short route through a deal with the goblin king and then climb up the cliff into the crypt and onto the boss. That is the basics of it. There's basically only two paths to this, but that's all we really needed. Now, if I was going to play this in a game today, I would make some changes. The first change I would make is add a second entrance. I think the crypt at the top of that hill is a really interesting place to put a second location. It's a place that you could maybe have like a locked door, so maybe the rogue could, you know, apply some lock picks and get in there. And it gives you a completely different way to approach the goblin king room. Suddenly you have the drop on them. You have the high ground and you might be able to pick a couple of them off and then run out and re-approach the situation, having kind of reduced the enemy numbers. Now, because we're adding the possibility of basically starting out at the very end of the dungeon, I would make a little locked door on the other end of the crypt and just put the key somewhere else in the dungeon, maybe over by the water guard or give it to the spider or put it in the treasure trap or something like that. Just a way to make sure that you don't only have two doors in between you and the boss. Speaking of the boss, I think it would be fun to make a little crack in the wall over on the other side of that little water trap there and maybe some of that smoke from the dragon is seeping out of it. You know, kind of like a scene from The Hobbit where Bilbo sneaks in and sees the weak point on Smog. This will give your players a way to, a reason to explore something else to be rewarded with besides just treasure to give them that advantage. If they know something extra about the dragon, they have some information about it, they can, they feel more prepared and more ready to take on the boss at the end of the dungeon. The second thing I would change is to extend that spider room into yet another entrance into the dungeon. So you can add just an extra corridor and a whole extra room where maybe you can really foreshadow it, maybe fight some smaller spiders and then the big one is kind of waiting for you in the dungeon proper. But this gives us yet another option for how to approach this space, this dungeon. Now we have three entrances into it. One with a locked door, one that has some, you know, snickering goblin guards on the other side of some vines that are overhanging the main entrance. And then we have, of course, all of the cobwebs over this other kind of like crumbling cave entrance. And if you tell people, hey, there's an old crypt, there are these vines and there are these cobwebs, that gives players some information that they would need to come up with a plan of action and decide which one they feel like going, which challenge they feel like taking on. Multiple entrances are great, but they have to each be flavored differently to make those decisions on which entrance to use meaningful. Now speaking of meaningful, we can integrate this brand new room that we've added to our brand new entrance and connect it into the guard room. Maybe there is a narrow crack in the wall or a little crawl space that you could kind of get the drop on these guards, maybe set up a pincer maneuver or just spy on them. You don't know what is behind those vines in the original entrance, but you can use this to maybe send your halfling through to get some extra information on what is there. And that rewards their choice to take the spider route. Now that we've added some new entrances and kind of created these other loops and hidden passages and hidden crawl spaces, we can kind of see how much this can change the approach to the dungeon. As you go from room to room, you can pick your path and make meaningful choices to get to the end of this. It offers a way for players to feel like they have the opportunity to be coming and they're not just going through a fun house, kind of dealing with obstacles in a set order, in which case the DM could have just rolled everything for them. Oh, you triggered the trap, roll a dexterity save. Oh, now you have to fight a monster, roll to hit. Roll for damage, roll to hit, roll for damage, roll to hit. Okay, the monster is dead, right? This will allow people to come up with different solutions to these problems. Every time they get more understanding of the space, they see that they have more options and they can fill out those blank spaces with knowledge and with meaning, and that meaning will allow them to make different decisions that they feel empowered to make. Now the fun part about this is it is a way of reevaluating a dungeon space or a game space as a meaningful decision space, a meaningful possibility space for player interaction. Notice that we really didn't need to change that much, just add a couple of things here and there. That's it for this video. There's a lot more to talk about with Jacque and the dungeon, but if you want to know more about that, go ahead and check out the link to TheAlexandrian.net. If you liked this video, if you heard something useful, leave me a like. If you want to see more of these videos, hit the subscribe button, and maybe one day I'll see you on the old roads. Farewell.


My dream's starting five. Can I be in it? I'm gonna put myself in there just because I wanna play with these players. Barondo at the dot. Steph Curry. I put Kobe at the two. Jordan. Bron or Katie at the three, four. They're three, four. And then I'm gonna go Bron and Will. Am I five? I got a T-Mack, I just have a T-Mack and Mike come up the bench. Sorry, Mike, I was like, hey, listen man, I wasn't born when he was playing it, all right? I was like, it's my five. I'll go check it. I gotta go D's my five. Do you think McCulloch will pull the top away that he's not in your dream starting five? He's coming off the bench. I mean, he's a good team. He can play the team too. You're swapping it out. Your twin Cam put himself in the starting five and put you on the bench. Coming off the bench. I'll put Cam. I need a shooter.