La-la-la-la-la-la! Oh my god, okay! Whoa, what is this?! Ho-ho-ho! There it is! Hello, everybody, and welcome to Hungry Dragon, where this time, Beaver has actually remembered to friggin' update the game, so he can actually play the new boss! Oh! Shark horror? How do you manage that?  So, now I've updated the game and we have a battle button! And in here, I actually don't know what this is about. We're taking on the new Octoni Boss! Um, I think we select, I mean, by the looks of it, and we'll find out, I think, how many dragons can you select? You can select any dragon? Oh, but it has to be a large dragon, okay. Right, well, I think that's only best. We start with our best dragon, apparently. The T-Rex, it's 3,000 ago. Poor clothes is in one day, 12 hours. Oh, I'm excited! So, we get exclusive skins and stuff. So, if we get to level three, we get 20 gems, skin not owned, and pet not owned. Hey! Sweet! Are you ready? I have no idea how... This is level one, so I'm assuming that it's not too hard. Oh, oh! La-la-la-la-la! Oh my god! Okay! What is this? Um, oh, do I attack his Tenties? I don't know. Oh, there's a lot of things here. There's a lot of things. Um, oh, okay! Okay, use the fire rush damage Octini's tentacles. Okay, so we need fire rush. I need to get things. I need to eat lots of things. Uh, I don't know what exactly, but we're gonna eat stuff. Oh my god, it's taking ages to get this fire rush. There we go. There we go! Yes! Do I just stay there and burn it? Oh, I don't know. I don't know.   Oh, mega rush! Get in! How long do I burn it for? I mean, if I just keep setting them on fire? Is that enough? Woo-hoo-hoo! If I just face them. Okay, okay. Oh, ah, ah! Oh, this is interesting. So I'm assuming I may need multiple different dragons for this. I can't have babies. No, what is my life? And I can't go anywhere else, I don't think. Okay, so I'm just gonna... Oh, there's the peppers! There's the chilies. Give me. Give me, lend me your energy. I like the music, this is sweet. Come on, keep going, keep going. T-Rex does normally fly, so he has a jet pack. Woo! So as long as we just don't stay on the floor, we're kind of okay. However, there are chili peppers on the floor. And that's kind of what we need, yes! So I'm just, can I just stay and burn it like that? Oh, oh! Oh no! Where did his tenties go?  What's this? What's he doing? I don't like this. He's gonna fire out in different directions, isn't it? Oh, oh, okay. It's very slow. Ah, you don't stand a chance against me.  Zoom in on that face, isn't it stupid? Okay, I got the chili. Run, run, run, as fast as you can. You can't, you can't catch me.  Ah, you're about to hit... Oh, well there you go. So if I just stand there and burn... Oh yeah, that's how it works. Brilliant! Oh, we're almost on two stars. Is he gonna switch? Oh, he's coming back. He's coming back. Oh, phase two, ah! Don't whip me.  Oh, we're getting mines now. Oh, it's getting a bit more dangerous. Oh, kid, okay. I want the little hoodlum things. Yes, the ones that look like they're from Dr. Zeus. Ah, come on, I won't try and fly. There we go. Oh, that's right. Yeah, oh, I'm gonna burn this one now. Why? Oh, look, there's a goblin in the air. I don't know what he's doing. They're kind of just stuck. This is sweet, man. This is awesome. Oh, oh, there's the red hot chili peppers. Fly away, oh, my zipper. I'm gonna make a run for it. That's not fair. I must... Oh, I'm losing health quick now. I must eat as much as I can, including the red shrimp. Oh, the jellies! Yes! Burn, baby, burn. Just going hoodlum. I'm like a little Godzilla. Oh, wait, what's he doing? What's he doing? Oh, he's summoning... He's summoning the fire. No, you can't do that. Oh, apparently you can. You've got to move through it. Oh, big brained him. Ah, frigging big brained him. Oh, wait, what's this? What's this? A fire rock? What do I do with it? Ah, oh, I'm launching rocks at him. Ah, stop it! No! I know I need to eat more. I'm... Oh, there it is. There it is. Get me health back. Hey, there we go. We go into three stars. Guys, this is legit. This is epic. My other totes. Epic. Sheesh! Oh, no! No, you don't. You don't want me. You can only want me one with one technical. Not multiples. Do you give me loads? You kind of do. Where is everything? Why am I... Why is there no food? I don't... I don't like this. There needs to be more food. Chili pepper. Oh, God! Oh, God, I can die! I can die! I can die! You know what's sad? I'm gonna save him. Now I'm gonna say he deserves it. We were so close to another... Chili rush.  And this... Oh, God. Oh, God. Oh, God. Oh, God. Oh, no, you don't. Close to a mega rush. I could have really used that mega rush, actually. Oh, it's cool how you could... You could like play normal games and just get prepared. Like, get your mega rush ready. I like the rock aspect. That was cool. Oh, he's lo... Oh, look at him. He's not looking too hot. Not looking too hot. No chili peppers! Oh, he takes a hit. But he takes one. Oh, there it is! Come on. Come on. We got this. We got this. Come on. Come on. Come on. Come on. Come on. Come on. Oh! Oh, where's the other one? Where is it all? Oh, we're gonna... I think maybe one or two more? As you got... Oh, he's doing his mystical spells. Ooh. Oh, we've got to be careful. We've got to be careful here, guys. Run! Peggy! I don't know how much damage those do, but I don't think I want to stay and find out. And we're getting close... We're getting quite close to another... Another gold rush. I'm gonna go for the chilies. Yeah, there we go. There we go. This must be it. This must be it. Come on. Come on. Come on. No, no, no. No, it's deliberately waiting. Oh, he's... Oh, he's doing the... He's doing the fire.  Oh, God. Did I just get hit by it? Whoa! Whoa! Whoa! I'm trying to eat more. I didn't realize that we're gonna come a different direction. Hit the rocks! Hit the rocks! I think we got one more. Oh, we got him! Oh, defeated! Oh, do I gotta claim all of them? Oh, do I gotta choose? Level one.  Yeah! No, that was truly epic. You have pending rewards. Mad rap. Oh, this is so... Oh, Spectre. And maybe I've got that and we get one egg. Oh, it's an epic. I think. Is it epic? I don't know. Oh, a flay pirate ship. Well, we got that already. And another one. Oh, what is? It's rare, right? I think that means rare. Oh, of course, two pirate ships. I think I cut a bit out the yesterday's episode. And each time I opened one, I got like all the same pets. I was like, what's going on? Oh, I've already got that one, too. Rubbish! Octo is now level two. So T-Rex's health is really good. Okay, okay, okay. Now I'm kind of tempted to go for the J-Dragon. Do we, does it tell us what we get? Okay, so we just, we get two epic eggs this time. Pet not owned, skin not owned, and 10 gems. I mean, we don't do it for the gems, though, do we, guys? We don't do it for the gems. Spectre, look at that, see? That's that dragon we're using, yes. Right, so I know how to do this now. I worked it, I worked it out. Now we're much quicker. And the controlling for this guy is way easier. Um, oh, we need, we need boosties. We need boosties. Oh, look at that, look at the artful dodges I can do here. Oh, yeah, you don't stand a chance. That'll do. Yeah, just burn. There it is, that's what we do. So he's got more health this time. And hopefully, yep, and then he's going to, yeah, there we go. Yes! Come on, we got him. We got him, we got him. Got him on the ropes. Got him on the ropes there. Uh, I feel like maybe I was, I was a little bit too close to him there. Ah, freaking Bellsprout Attackers! Oh, the boost is running out pretty quick on this guy. Gonna have to be a bit more careful and we'll get the grimer things. Chillies, oh, chillies, I need the chillies. Okay, so what you need to do is time it, so that when you go down for those chillies, you're basically in gold rush at that point. Or fire rush, I should say. Oh no!  Not so good, not so good. So there must be a reason why they keep giving me these worms. There must be. Okay, I'm gonna go this way, I'm gonna hit this one. Oh, that's it, that's it. What's it gonna do now? What are you gonna do? Oh, it's the mystical spells! Oh man, oh no, I'm on mega rush! No! Dammit! I mean, if I just tank these, look, just hit me, hit me, dammit. Come on, get it over with, I'm the other one. There you go. Right, there's, yes! Beautiful! Woo-hoo-hoo! What? Okay, time to get away, time to get away. This is so epic! Oh, this is a really cool mechanic. This is a really cool mechanic. I like this. I wonder if it's gonna get much harder though. And maybe like certain dragons are better for doing these boss fights. I guess only time will tell. There's not, oh, there is a timer. Oh, okay, whoop! I want the chilies! Okay, let's get all the stuff, let's get this stuff.  I don't know if those give me much. It's really the chilies down here is what I need. Oh, no! I got stuck there, run out of boost. Woo-ha-ha! Yes! That's right. All your little tendrils, just the little tendrils. Oh, what's he doing? Again? Again with this? That's fine, that's fine. So I wonder if, if it's kind of like a checkpoint system. So when I get to the two star, if, if I die, I can restart back there? Oh, god.  Okay, okay, let's get the boost back. Aha! Miss me! All right, I want to get all the boost I can. Go, go, go, go, go! Oh, I thought it would have been, thought it would have been in gold rush there. Oh, sorry, fire rush. Silly me.  How about this time? Yes! There we go. So on to two star, and there we go. Okay, what's the next one? Is this where you're going to do the, what are you going to do?  Can't touch this. Phase two of the wounds. Hee-hee-hee! Woo-hoo-hoo! Ah! I love this slide, like, whoopah! Get down.  This is so cool though. I love this. Okay, I need to get my boost back. Oh, there's a guy. Oh, no. Oh, ah! And there we go. Okay, just got a stabbing, stabbing. Do-do-do-do-do-do-do. Stabbing, stabbing. Do-do-do-do-do-do. Ah-ah-ah! How do you hit me? Okay, fair enough. So how can we lure him into a hit? I think, I think I did it there. Yeah, you can sort of lure him into a hitting you. Only problem is, it takes time. And I don't really have that, because... Oh, there it is, there it is, there it is.  I just needed a tiny bit more. And now he's going to summon the fireballs. And the fireballs. Well, I guess I can't do much to me. Since I'm in Gold Rush. What's fire- Dammit, Fire Rush, I mean. And of course, as soon as he goes out, Watch, he's going to- He's going to go and get me, aren't he? Aren't you? Aren't you? Oh-ho-ho, boy! There we go. Big chunk of damage. Hold on, give me a second. Big chunk of damage. That's right, that's right. You don't stand a chance against the might of rocks. I wonder what level three is. And whether we can do that with one dragon. No! Yeah! Yeah, I need the health though. We really need that health. Okay, okay, we're going to be close. We're going to be close to getting to the other star. Really close. Okay, uh- Oh, wait, as soon as he waxes me, Does he knock me out of Fire Rush? Ooh, maybe- Oh, what? What?  I'll buy back just because we're so close to this next one. But- There we go, there we go, there we go, there we go. I mean, we're basically there.  Oh, he's doing the fire. He's doing the fiery business. That's fine. I can- I can handle the fire. Fire's good. I am- I am the fire. We're almost there. We're almost at level two. Just need to wait for things to spawn. And there we go, with the rock. Woo-ho-ee! Woo-ho! Get this, and then- BOOST!  Oh, I missed him. Oh, he fricking vanished. Oh, he's smo- Oh, no, wait, no, that's right. Because I got him to phase three. Oh, I should have hung on to it. I should have hung on to it. No! Okay, I'm out of boost. I'm out of boost, but we're almost on another fire rush. We're almost there. I wonder if there's a hidden times bonus. So, you know, the more I eat, in quick succession, the better. Oh, yeah, there you go. That's how you do it. Oh, come on, we can do it. We can fricking do it. Level two. Look at him, he's not looking too hot now. Oh, no! Yes, he does knock you out a bit. He does knock you out a bit. Right, right, right. Okay, okay, that's not so good. We're going to find out, though. We're going to find out. Oh, I'm starving. I'm starving. Yeah, they're not looking so good for my dragon. Don't have much, don't have much.  Yeah, okay, that's fine. That's fine. Let's see what happens if we lose. Because I'm kind of curious about that. So we got a progress on phase three. Now, I wonder if he stays on that. Oh, I love a good advert. Oh, yes. Okay, so we have the heal our dragon if you want to keep using it. But let's use this guy. So fingers crossed we're still on checkpoint three. Come on, checkpoint three, checkpoint three, checkpoint three, checkpoint three, checkpoint three. Yes! Oh, that's what I like to see.  Oh, wow. I haven't used this guy in ages. He's basically a subnautica dragon. I think, yeah, I just boost and I get things. That's my fire. I mean, look at this. I mean, I don't want to get too much. That's the problem. And I think I might end up... Oh, God, we're slow, though. Oh, no. He's like a mixture between something from subnautica, the ghost Leviathan, and what is it? The thing from Legend of Zelda, that boss thing. He's not great. He's not the best. He's quite slow. There we go. Come on. Come on.  Oh, God. Oh, God. Okay. We'll keep an eye on the skies. Keep an eye on the skies. Here. Flip. Just boost near something. Yeah. There we go. Whoop! Oh! Yes! Come on, then. There's a tentacle. Here we go. The final stretch. Is he dead? Oh, my God. You're kidding me. He's like a tiny... Okay, time for rock.  You, ma'am! Ha-ha. You lose. Yes! We did it! Claim. Back to the menu. Okay, yeah, sure. I'll take it. I'll take it. I got me two epic eggs or legendary eggs. Let's see what we get. So I got me 10 gems. Oh, baby pet baby T-Rex. Oh, sweet! Any prey increases food by 10% when equipped. Oh, okay. New skin unlocked. Kai. Oh, that looks sweet. That must be an exclusive skin. Okay, these have a... Yeah, that's a legendary. Come on, something good. Something good. Something good. Come on. Come on. Oh, instantly revives the dying dragon once for free. Oh, that's... You know, that would be really good if I hadn't found a dragon combo that basically is unlimited health.  Mother clock... No! Wait, that was the epic? Okay, I think we got... Is that it? I'm the 10 gems. Okay, so we got two eggs that time. Octane is now level three. Defeat next level for better rewards. Okay, now he's got five friggin' thousand health. Ooh. Should we do... Oh, I don't know, man. Oh, I don't know. Should we... An anomalous? Let's go for... Let's go for the freezer dragon. Oh, look, we got a hoarder ability. Yay. And oh, we're almost on mega rush, though. So that's good. Hello. Me again. Ready to kill you. Okay. Okay, not bad. Not bad. We're almost on mega rush. Here we go. That'll do. And here. Oh, God, I need to get out. I need to get out of the way.  Yes, burn the tentacle. That's... Oh, there it is. There it is. There it is. Okay, get out of the way just in case. Oh, God, I can't. I'm trying to aim. It's not working too well. Don't whack me. This is it. The final boss. Can we do it? This is so totally epic. Oh, that's fine. I'm not losing too much health. I can take it. You don't think I can take it? I can dish it. I can take it, my friend. That's what sound this dragon makes when it boosts. Oh, look at all of the Wibblewaffles. That's what we'll call them. Wibblewaffle booze. Okay, we're going to go for the bonuses. Oh, wait.  Why do you do me like that? Why did you do me like that? That was horrible. Oh, God. Okay. Okay. They're going to come. But this is good because we can go slowly. Slowly trying to get my fire rush. Look at all that boost I'm getting. Look at all that boost. Okay, there's no chili peppers down there. That's fine. And the good thing is that you can, as long as you get to a checkpoint, can't touch it. No, that's right. You can't touch it. Yeah. If you get to a checkpoint, you just start as another dragon and you're all good to go. Guys, I need your energy. Give me your energy. Oh, he's coming in. Ah, stop. Oh, stop it. Here it is. All the damage. Oh, God, is the next one. Oh, I burned you a little bit. Just a wee bit. Yum. Give me the chili. Yes. Yum, yum, yum, yum, yum, yum, yum, yum, yum, yum, yum, yum. Glowy bugs, glowy bugs, glowy, glowy, glowy bugs. All the glowy bugs. Oh, yep. That's fine. That's fine. I want to at least get to the two star. I feel like this guy's got loads more health than the other ones. And this dragon's really slow. Jade was awesome. Like that dragon. I think I want to swap its load out and just get the best I can for it that gives us all of the abilities. This guy's a bit too slow for what I'm after. And the boost goes down a bit too quick. But I think, I mean, otherwise it would just be OP, I think. I mean, do I just stay up here? Can he do anything? I don't think he can. Oh, here we go. Here we go. Oh, well fine. There it is. Damages. Damages. Oh, what's he doing? Oh, he's doing the spell thing again. That's fine. You can do the spell thing. It'd be cool with the higher levels that you got. He did different things. Because at the moment, you've just got spell. And what else we got? We've got spell and the fireballs from heaven or hell, depending on your perspective. Oh, we've got a motor boost. Something, give me boost. Yay. Right, well, we've almost got a mega rush. Oh, well, sorry, fire rush. Words, words, James, words. I just want to hang out here for a second while I get my boost back. Where is everything? I don't see any chilies. I like chilies. Give me me jalapenos. Where's me jalapenos? There it is. Oh, God, I need to be careful. You need to be careful, because you can slap me straight out of it. Woo-hoo! Didn't see that coming. Okay, okay, here we go. There's another one. There's another one. That was Leeds' sexy skills. Right, go on. Just keep going. Just keep getting. Yes. Yum-yums. And that one. And all of these. And oh, God. I was going to say, can he hit in the sky? Beautiful. I think I'm a bit out of reach for the other one, so that's good. Oh, yeah, yeah. Oh, he's doing it. Yeah, that was perfect timing, that time. All right, now I've got a chance to just get it back up again. Ooh, it makes sound effects now. I've never heard that before. The kong, kong, kong, kong. Ooh, boosties. What? That's fine. It's fine. It's totally fine. Completely fine. Oh, no, it's not. I got too many chilies. There we go. Oh, phase two. Yeah, phase two. What does phase two mean? Not much really. It just goes away and comes back. Maybe we can get a phase three. Oh, yeah, we get bombs now. Bombs are part of this level. Oh, yes. Look, everything else we spawned up here as well. Brilliant. Get all of that. Don't see anything. All right, get the boost back. Get the boost back. Yeah. We can do it, guys. We can do it. We can do this. Oh, no, you hit me out of it. And maybe it's not too bad because I kind of kept my fire rush even though we knocked me out of it. I still kept it. I didn't like lose all my fire. So that's maybe not too bad. Not likely. You can't do me like that. Yes. Yes. Give me. Okay, come on. We're close. We're close. We're close. We're close. Oh, there we is. There it is. One more fire rush. And we're pretty... Always got... Okay, he's going to do a thing. He's doing the... Always summoning the fire. Oh, I see. Oh, they come behind him. I didn't notice that. Are they... Oh, where are they going? Where are they coming from is the question. Perkut! Oh, sweet. Made it. Made it look easy. Okay. Okay, we got the rocks. Rocks are good. Okay. So hold on. Hold on. Give me a second. There's a rock. One rock. Not bad. Not bad. And now to go for the other rock. Yes. I'm stopping. Oh God. Didn't... Oh, come on. We got it. We got to keep going. We got to keep going. I didn't notice. I was like, I completely forgot about that. Oh, it's a shame, right? Because we're pretty much just going to do a little bit of damage to him in this fire rush. And then we're going to get a mega rush. And he's going to do something. He's going to summon something. And that's what's going to happen here. We're going to do a little bit of damage, which isn't too bad. There we go. Over halfway. Right. Here comes the mega rush. So we keep on doing damage. Oh, he just takes all that damage when you're in mega rush. Oh, sweet. That was cool. I thought he would have like, I don't know, done something, but maybe maybe there's like a code that if you're in like mega fire rush, you can't just do something like that. Like you can't go, okay, I'm going to do a spell. I saw that. I saw that. Yeah, cheeky. You're not spanking me. Okay. Maybe you're going to get him. Get him. Oh, don't do a great deal. Yes. He's going to do things.  Yeah. Waste your time. Okay. However, when you don't, I'm going to avoid that. I'm going to avoid that. And I need the health. Now, when things fall down, you could just swim down or sorry, fly down. Okay. Here we go. Here we go. Okay. Right. So I'm going to, I'm going to do this to him. I'm just going to do as much damage as possible. Okay. Here we go. Here we go. All right. And now I'm just going to, have we come to phase three? I don't think we have. Okay. Phase three. Take made it a phase three. I'm happy. I made it a phase three. Phase three week. Sweet. Okay. We can exit the run. And let's finish it off with the amazing J dragon. Um, because that you weren't very good. Jade was awesome. Heck yeah. Fast and flabous. Don't exactly know what that gives us, but hey, oh, right. So it should be on phase three. Okay. Let's just quickly go grab some stuff while we can look at this speed. Oh, it's amazing. I love the speed. Speed is key. We just need the chilies. Oh, look at him. He's looking worse for wear. And there it is. And the fire rush for Jade lasts ages. Look at that. Okay. Yep. Just want to be a bit careful here. Oh, it's like three times as long. We could basically burn out two tentacles. Oh, Jade's amazing. Jade's the one. I mean, that's why it shows in the thumbnail or like in the loading splash that you need to use Jade. It's interesting that it don't give you anything that gives you boost. Like any of the flying thingies. Ah, stop. Why so mean? Okay. Okay. Come on. Come on. We got this. We got this. Just one more chili, please. Yeah. There it is. This might be it. I think he's going to do one more spell thing. Yep. Okay. One more spell thing. I should have burned everything.  I can't not burn things. Like I've burned a chili pepper there and that could have been good to save. Look at all that stuff. Okay. I need to be careful here because I want this fire rush, but I don't want to trigger it until his tentacles come back. Like now. I mean, sorry. Like now, like now. Oh, come on. I'm so freaking close. There it is. Oh, are you running away already? Oh, what? You're doing fire now? Oh, that's not fair. Oh, that's cheating. I'll absorb your fire. Yeah. Look at that. You can't touch this.  I'll catch your fireballs. Okay. Here we go. We're going to finish it with rocks. One rock. Fire. Okay. We're almost done. We're almost done with the rocks. Yeah.  Or it's going to be. Oh, it's close. Not quite there. Just one more chili. And it's probably in the middle. Oh, yeah. Oh, we killed him. He's actually gone. I think normally just sort of slums, but now he's defeated. Claim the middle one. Oh, I'd love to see other bosses and other ideas then come up with that. This is sweet. This is so cool. Yes. I want to collect my reward. Baby Dante.  I love the big eyeballs. Very cute. Oh, okay. New skin unlocked. Queen of the Damned. Oh, again, it's like Harlequin. Okay. Let's get the rare eggs. Wait, I get rare eggs? I thought I was getting epic eggs. Oh, hey. Well, that's one we haven't seen before, isn't it? Who? Pyrochip. That's rare. And the other one. Oh, sparrot. But it's an owl and not a sparrow. Wait, do I not? So I don't get any epic eggs. I thought I was... I'm so... Unless like... Oh, that's four friggin' times I've seen Pyrofriggin' gym. Ah, that's more like... Okay, we probably get two of these. Okay, so this is an epic. Come on. Something good. Something good. What do we got? Oh, got that one. And the other one, I think there's only one left. I don't know what I need. I think it's like holiday special kind of things like Santa Claus. Yeah, I've got that one. I don't even know what he does. So another 10 gems. And another 20 gems. Oh, look at that. I love those graphics, man. The diamonds in this game are so friggin' gorgeous. Portal is closed for now. Come back in 72 hours. Oh, is that when the next one opens? The next octeney. Well, guys, there you have it. We defeated all three levels of the boss. And if you enjoyed this video, leave a like and next time. Well, we'll take them on again, maybe. I don't know. If it may be, it'll be different. It probably will be the same one, though. But anyway, if you enjoyed it, leave a like and until next time, I'll see you cuties later. Oh, buh-bye.


Hey everyone, it's Mr. Gibson with the next lesson in cryptography and today we're going to be taking a look at how to program the tabular recta cipher here in Python. So to get it started, I opened up a new data hub page, I dropped in the code for the text clean function, our character to integer conversion function and our integer to character conversion function that we've seen before, and we're going to get to work here right away at programming the tabular recta function. So I'm going to go ahead and define that function. It's going to take in a piece of text, it's going to take in a key, it's going to take in an optional keyword argument of in cipher that will default to true, and then our letters, which will contain our 26 letter English alphabet by default. Just to get us going here. Remember the tabular recta cipher works by taking a single letter from a message and then a single letter from a running key, and then using the tabular recta to look up the either the plain text letter or the cipher text letter depending on the order you're using it. So we're going to have a goal here, we're going to document this in a documentation string is that our inputs are arguments. When we have our argument of text, which is a string, it's going to represent a single letter. And when we have key, which is a string, it to will just represent a single letter. So we're not going to try and do tabular recta here where it does the entire in ciphering or deciphering of a message for us, just a single letter at a time. We'll round out our documentation string here by saying in cipher, which is a Boolean, and then our letters, which is a string optional, just like the Boolean is optional. And the Boolean determines if in cipher or decipher decipher would be false, and in cipher would be true. And our optional is just the alphabet that the text is written in. And we'll check this typo over here. All right. And we know that it will return the idea of a tabular recta is that it's going to return some string. Okay, let's get to work on the actual code. So for the code here, if you think about it, we're going to want to make sure that we've got our single letter text, and we want to make sure that it is clean. And in this case, if it's just a single character, what that really means is we want to make sure it's capitalized. So, but we should run the text clean function because it'll also check to see is it a valid character and all those other good things you want to make sure that that are true about our text. And then I'm going to do the same thing for the key. I want to make sure that our key is formatted correctly, and that it's an appropriate letter that's in the alphabet. Okay. And we want this one function to be able to do both in cyphering and deciphering. So let's go ahead and create those two branches of code. Now, if in Cypher equals true for now, I'm just going to put a pass statement there. And then else will have another pass statement there. And then when we are done, we're going to want to return whatever output we just generated, which should be a string. So let's keep that in mind that we actually need to create that string somewhere along the way. So this function probably would run but it's not going to do anything. So let's go ahead here and actually put some meat here into this if statement. So if you think about what we want the tabular recta to do is we want it to take our text or single letter text and convert that to an integer and then do the same with the key and then add them together mod by the length of the alphabet and that will determine our new cypher text value. Remember, this is just a repeated Caesar cypher is all that the tabular recta does is that it just keeps reusing Caesar cypher over and over again. So that's what we're going to try and recreate here. This code will probably seem very familiar. So let's start by getting a numerical version of our plain text since we are in the encypher mode. We know that the text that we were given is plain text. So we'll do a character to integer conversion on that piece of text and store that to a numerical plain text variable. And now we're going to do the exact same thing with the key. We're going to take our single character key and run that through the character to integer conversion function. And then to get our numerical cypher text value, we're going to add those two together. So we're going to in parentheses do numerical plain text, add that to numerical key. And then we're going to mod by in theory 26. But let's just keep the code flexible here. Let's just say the length of letters. We know that that's 26 for us right now. But if we ever change this so that we have a different length alphabet, then this will change as well. So keeping it all at the date, very flexible. And now lastly, we want to get our cipher text character, we have the number for it. So we're going to do our integer to character conversion of our numerical cipher text value. And then that's what we're going to want to return eventually is that we're going to want to return the cipher text. So I guess we don't need that return at the bottom. All right, before we run just caught another typo, we should be doing text clean on the input value key and assigning that to key. So now we should be all set before we had texture and that wouldn't that wouldn't make any sense. So let's try this now, if we do the tabular recta function on the letter B, and we give it the letter D, we should know behind the scenes that B is one and D is three. So we add those two values together, we should get a cipher text value of E and we do. All right, so now we need to write the decipher function. So we'll go back here. And the decipher should be really similar. We're going to take our text only now when we're deciphering the text is cipher text, so we'll name that variable numerical cipher text. And that will take our character and convert it to integer of our text. And we'll do the same thing with the key numerical key equals char to int of the key. And to make our numerical plain text that we're creating through our deciphering, it's going to be very similar to what we did above. Only remember when we're deciphering, we subtract the key from the value of the cipher text plain text. And then we will still mod by however many letters are in our alphabet that we're using. So in this case, 26. And then lastly, we're going to get our plain text letter by taking the actual numerical plain text and do an int to character conversion on numerical plain text. And then that's what we'll return is the plain text back. So let's see if that's true. If we had a letter of E with a key letter of D, and we set our in cipher mode to false, we should get back to be which is correct because E is for D is three subtract the difference there and we get one and one is equivalent to B. So we have here is a functioning tabular recta code base here that takes a single character for the text a single character for the key and a Boolean to decide whether we're going to encrypt with that key or decrypt with that key. And it returns the resulting plain text or cipher text letter. So this will be a really helpful function for the rest of our tabular recta based ciphers like vision air, auto key, try themious, we'll just have to wrap this up in a larger function that is responsible for iterating through all the characters in the message one at a time. And then we can encipher each character using this tabular recta function. So it'll just be it'll do a lot of the legwork here for future functions that will write that really just need to make sure that you guys your text and your running key already ready to go and you can pass them off to this one one letter at a time and this will do all the rest. All right, that should do it. Thanks for watching. We'll catch you in the next one.


Entokin election matters now. The Independent National Electoral Commission, INEC says it will begin the online voter registration via its registration portal on June 28. INEC National Commissioner Festus Okoye announced this at the news briefing on the preparations for the Guaram by-election in Dutze. Okoye also said that INEC Chairman Professor Mahmood Yakubu would announce the time for the commencement of the physical registration at the end of the consultation with critical stakeholders. He therefore appeared to all critical stakeholders to rave up devoted education initiatives, call in uncivil society groups and the media to assist in educating Nigerians on the import of online voter registration.


Alright, so the men's draw has just come out for the Australian Open and there is some very interesting first-round, second-round matches Of course some very fun potential quarter-final clashes and semi-final clashes too Let's go through the players that are pulled out because we do have a couple of big names that are not going to be playing Alright, so jumping over and seeing, you can see we've got Strikker, he's pulled out, not going to be playing this Australian Open Unfortunately, a good young player that we're not going to be able to see Nadal, biggest name out of the tournament so far, pulled out because of the hip injury Then we've also got Opelka, he's pulled out as well with injury And Kyrieus still just can't get that wrist right out with injury as well But let's go have a look at the top of the draw and see who plays who So starting with the top seed, but we've got 32 seeds in this one No one gets to buy in the first round, everyone's going to play every match Novak Djokovic plays a qualifier How good is that if you're a Djokovic fan, you'd love to see it Winner of that's going to play in Aussie in the second round because there's two Aussies going at it Popper and Pullman, so it could be an awkward second-round for Djokovic But you know, either way, he knows how to beat Aussies in Australia For the most part Then you've got Hampton taken on Monfice, winner of that will take on either Etcheverry The 30th seed or Murray, who's unseeded Could be Murray versus Monfice's second-round winner plays Djokovic So that's a bit of a veteran section Then you've got number 20th seed Manorino taken on Vavrenko Speaking of veterans, both those guys, I think 35 plus Very, very interesting section Winner of that will take on either Shepchenko or Munah in the second round Then you've got O'Connell taken on Garin Winner of that will take on either Batista or Gu On the number 16th seed, Shelton That match is interesting Because Shelton's got the firepower, Batista or Gu's got the grind Like he's a brick wall Very fun matchup in the first round Of course, if you've projected out, it could possibly be Djokovic taken on Shelton In a fourth round, which we want that rematch We want to see who hangs up the phone this time Then the next section of the draw you've got Number 12th seed Fritz taken on Acosta Winner of that will take on either Bayana or Goyo Second round Then you've got Marijan taken on Chillich That's a fun one Winner of that will take on either a Qualifier Or the 22nd seed Serundelo in the second round Then you've got the 25th seed Muceti taken on Bonsi Winner of that will take on either Duckworth Or Van Esch in the second round Then you've got Vukic taken on Thompson Winner of that will take on possibly the best match of the first round Baratini, former semi-finalist Takes on Sinti Pass the 7th seed, former finalist That is insane Baratini a year ago was top 10 Or maybe 18 months ago was top 10 Now he's unseeded, plays Sinti Pass first round Insane first round And of course you can see there are a couple of tough unseeded players too Thompson who beat Rafa last week, of course Very tricky Chillich on the comeback, we'd love to see it Made a final here back in the day Of course the other seeds are pretty dangerous too But this section will take on the Djokovic section In a quarter-final So we might get Djokovic taking on Sinti Pass Rematch of last year's final We could be getting Djokovic taking on Fritz If you want to go with something a little bit different Or maybe even if Muceti can get his stuff together Djokovic Muceti in a quarter-final And having a good run into Slam for the first time Really in his career But really interesting section I don't think it's tough But there are some tricky match-ups there Alright, let's go to the next section The draw we've got Number four seed, Sina He takes on Van Der Zandrup in the first round That's a little awkward for Sina Winner of that will take on either a qualifier Or a cash-in in the second round Then you've got Gallon taking on Kubla Winner of that will take on either Wolf Or the number 26 seed Baez in the second round Then you've got the number 17 seed Tiyafo Taking on Charit in the first round That's five sets for me That smells like five sets Winner of that will take on either Mahatch Or the qualifier in the second round Then you've got Tabilo taking on another qualifier Winner of that will take on either Altmayer Or the number 15 seed Hashinov in the second round Of course Hashinov made the semi-finals last year Tiyafo made the semi-finals at US Open a couple years ago Very fun section Sina's got to like that though I mean, Tiyafo, Hashinov, Baez are not unbeatable There are a couple of tricky matches there for Sina But Sina would like his chances getting through He did lose to Altmayer at the French Open though So he probably doesn't want to play him anytime soon I think Sina's got a nice draw Next section of the draw, you've got Diminoy The number 10 seed Taken on Rionic Damn, okay Winner of that will take on either Naughty Or Walton The wild card in the second round Then you've got Kotov taking on Rindinish Winner of that will take on either a qualifier Or the number 18 seed Jarry Then you've got Kota, the number 29 seed Taken on Equality Winner of that will take on either Hellas Or another qualifier in this section of the draw Then you've got U-Banks taking on Daniel Winner of that will take on either Vilj Or the number 5 seed Rublev In the second round This section seems a little trickier Because you've got Kota who did well here last year Rublev, who also met the Kota finals last year Diminoy has been on fire And of course that section takes on the Sina section So it could be Sina, Rublev Could be Sina versus Diminoy If we want to go jump on the hype train And of course this section will take on the Jokovic section in a semi-final So Jokovic, Sina That's the one that I think we're all Maybe hoping for Or at least the true fans are hoping for Could be Jokovic taking on Rublev though We did see that last year in the Kota finals I mean if you want to go again Jump on that hype train It could be Jokovic versus Diminoy In a semi And you know Australia is going to go mad for that one That's going to be really interesting I feel to see who actually gets through Bottom half of the draw We've got the number 8 seed Runa He takes on Nishioca in the first round Winner of that will take on either Jera Or Kazoo in the second round Then he got Feast taken on Vessely Winner of that will take on either Sefulan Or the number 28 Grigsbor That section stacked with some really dangerous players Especially for Runa 21 seed Umbair he'll take on a Qualifier Winner of that will take on either Zong Or Korya in the second round Then he got Shapovalov taken on the Qualifier Winner of that will take on another Qualifier Or the 9 seed Hercatch Hercatch Shapo second round I mean again that kind of feels like 5 sets If Shapo's back But this section is interesting I mean Runa Nishioca can be awkward You know Sefulan We know what he can do Even though they did play last week And it was Runa's win But that could be awkward Of course Hercatch Runa fourth round I mean I'd love to see that That would be really really fun If we could get that fourth round Next section we've got The number 13 seed Dimitrov Taking on Fuchovic Winner of that will take on either Ivna or Kokonakis in the second round Then we've got Matira taken on Borgus Winner of that will take on either Lesdian or the number 23 seed Davidovic for Kina in the second round Then we've got FAA I wish you had only seen the 27 seed Taking on Domi team If you're a team fan That is the perfect first round Because FAA hasn't been good For a while now In almost 12 months Also been injured And Domi team He needs someone to Gain some confidence off And that might be the one Especially at a slam Beating FAA would be a big deal Winner of that match Takes on either Muller Or a qualifier in the second round Then we've got Kipson The wild card taken on Rusevore Winner of that will take on Either a qualifier The number three seed Mevadev in the second round Metisection is interesting Because you do have Dimitrov Who's been in great form And beaten guys like Runa and Mevadev Rusevore is in form Could be a dangerous second round For Mevadev This section will take on The Runa section in a quarter final So we could get Runa taken on Mevadev We could be getting Runa taking on Dimitrov Like we did in Brisbane Or if you want to go with Mevadev getting through Could be Mevadev her catch In that quarter final If you want to go with the Big Seeds Of course they could be Unseeded players coming through As well Bottom section in the draw now Bottom quarter we've got Svera the number six seed Taken on Coppa Winner of that will take on Either Kwon or a qualifier In the second round Then we've got McCabe Versus Mickelson Winner of that will take On either Morayas Or Lehechka The thirty second seed In the second round Then you've got the Nineteenth seed Noray Taken on Morayas Winner of that will take on Either Lyovic In the second round Then you've got Purcell Taken on a qualifier Winner of that will take on Either Ramos Van Olares Or Rude The eleventh seed In the second round I've got to be honest Rude's draw looks kind of Good until the Sverav match I mean Lehechka's Sverav third round Sucks for Sverav So that could be an Interesting section Sverav should get through But Casparude I don't know Next section in the draw The bottom section The last section You've got Tommy Paul the 14th seed He takes on Barre Winner of that will take On either Giron Or Draper in the second round Then you've got Tuky Winner of that will take on Either Hitchockata Or Struff the 24th seed In the second round Then you've got The 31st seed Brubley Taken on a qualifier Winner of that will take On either McDonald Or Jerry Song Who we all love to We have to watch him Hopefully at this round Open to the wild card From China In the second round Then you've got Evan Taken on Senego Winner of that will take On either Gaskay Or the number two seed Elkras In the second round Look Gaskay's a tough name But also Gaskay's Like 38 years old And Elkras should In this section Fourth round potentially Has beaten Elkras a few times I did beat him last year as well Of course this section Will take on The Zverev section in the quarter So we could be getting Elkras taken on Zverev In the quarter finals We could be getting Rude in the quarter finals Or if you want to Get away from Elkras And say someone else It could be Zverev Taking on Paul And of course this section Will take on the Mevvedev section So if you want to go With the big names Elkras Mevvedev Rematch of both The Wimbledon Semi And the US Open Semi Or you could be Going with Elkras Versus Runa The future of tennis Or if you want to go again A little bit random You could go Elkras Versus Hercatch Or if you want to jump On the Mediband Wagon Maybe you get Mevvedev vs Zverev The current generation If you want to call them that Maybe Mevvedev vs Paul Or Mevvedev vs Rude Man, it's going to be An interesting draw I don't think it's simple For anyone But I think it's also manageable Who's going to win chat Who do you pick For this one Because Jokovic Is the obvious favourite I think with the draw As well now It's like well There's only a couple of players If he plays bad As it looked Maybe there is a dangerous First round or second round But I think Jokovic is still The clear favourite I think Medi's section Is real awkward I don't know I just feel like That's where the awkward matches are I mean obviously Elkras hasn't got An easy first round But let me know Who do you think is Going to win the Australian Open for the men's side Of things And also Who do you think is Got the worst draw In this tournament There it is Australian Open draw Done and dusted Now let's get it On Sunday The first round


Welcome folks, we have the DAO industrials right now trading up $386, you get the Nasdaq up $306, S&Ps up $63, Gold contract trading down $13.60 and $18.55 an ounce, we have Silver down $45 cents, $23.39 an ounce, Light Sweet Crude off $365, $91.81 a barrel, notes and bonds, a 10-year note down 8 ticks, trading $125.34, 30-year off a full point trading out here at $150.23, you get the 10-year at 2.04% again, $Kingdala, $Kingdala is down at 401, trading $95.974, Euro $113, Yen $115.62 and the British pound $135 to one US dollar. We get open, we take a look at the S&P, bottom line folks okay, this market likes to bounce but guess what, this market wants to go test that high volume load that's laying out here, the contraction of volume is pretty bad today but now check it out, so what we've done is this, we came off that high last week, it basically failed at the swing point, comes down and on Friday we got some good volume but watch it happen, it contracted dramatically so you get $153 million on Friday in the spy, yesterday you got $123, rejected lower price, that's when it went into the highs of the lows, bottom line, now we're going up with light volume again, I expect we'll probably get close to the top of these swings from the last Thursday and then guess what, I suspect we're going to be right back downtown and this is the building cause, if this is, excuse me, when we get back up there, if we only come back down to where we were Friday, I mean yesterday, the bottom line is it's going to get dangerous because that would be the building cause of taking out the swing low down there, so we'll see where this baby shakes out, gold, gold contract overnight got to 1880, the bottom line, you're trading out here right now at 1855, the cool thing is we're pushing into that swing, it had good volume pushing into the swing, it's backed off which makes total sense because a lot of these equities did a hundred percent move for move, I suspect you're going to build some cause, you're going to go after that baby again and the real kick is going to be what is the dollar going to do, right now the dollar is lower by about 400 ticks, that being said, it almost looks like this thing is going to try for the highs once again, stay right there folks, come right back.


Hey friends and welcome to my channel. I am Yoshida and this is Norris Cove. So today we are in the Happy Nietzsche. No, excuse me. Happy Nietzsche or faux benichi, whichever one you like to call it. This is the last spread that I did. This was the last week of August and I have some reason thought I did a spread for last week but obviously I didn't. So we're jumping in and this is for the week of the 9th through the 15th, I believe. So yeah, I believe it's the 15th. So what I did here, I'm freestyling today kinda. Not necessarily, but I'm not really drawing any boxes or anything like that. I am in my happy memory keeping and I want to say this is the grande because everything looks so big and I believe I got this book from Ross. Not certain. Let me see. I'm not certain if I got this from Ross but anyway, we're going to move right on along. I saw some faux florals that I wanted to use and incorporate. So I'm just going to kind of line the pages with these. I'll probably fast forward through because I don't want to hold you guys and stay tuned. So this is what I've come up with. If you haven't guessed already, these are like branches. Oh, let me put those in. The days of the week will be like branches and I'm using some script stickers from my Etsy shop and I'm just going to place them right over top of the little branch and I wanted to use these because that way you can kind of still see that it is a make believe branch. So I know I wanted something kind of faux inspired. Fall is my favorite time of the year. I've ripped this one but I'm going to piece it back together. So yeah, fall is my favorite time of year. So of course, September means fall. At least it means fall to me. I still wear flip flops but still. I love when it starts to get a little cooler and you can put on a list of like sweater. I do right now. I don't like a lot of clothes on but I don't mean clothes on. You know what I mean? Like I love to have my feet out. Put it like that. So I'm ripping these stickers like I don't know what. But yeah, so fall is my favorite time of year. Let me know in the description box what's your favorite time of the year? What is like the season? What's your favorite season? My favorite seasons are fall and spring. I am a spring baby so I love spring and I love fall. Winter and summer, you can take that somewhere else but we know that we don't have anything to do with that. So anyway, but what's your favorite? Let me know in the comments what's your favorite time of the year as far as seasons go. Now my favorite holidays would be, it used to be Christmas Thanksgiving. Now it is kind of like still kind of Christmas but that's about it. Not necessarily Thanksgiving. Okay you guys, this is my complete spread for my Hobonichi. If you're new to my channel, my Hobonichi I use for my business planner and my social media planner. Well pretty much social media is kind of turning into my business planner as far as Etsy shop right now. So this is what it looks like. I hope you guys enjoyed this video. Again if you're new to my channel and you would love to see more content from myself such as what I've showed you today please hit that subscribe button. Also hit that notification bell so that you are notified whenever I upload content to my channel and I would love to have you join the cove here and we would love to welcome you to the cove. So thank you all again so much for watching and I will see you in my next video. Bye.


Greetings friends, this is Survival Doc. Today I'm going to do a test and a review of a couple of products that I just purchased for my own use. What I have here is the Kelly Kettle. I have two different sizes. This is the Trekker Kettle. The Trekker Kettle is perfect for individuals. I got this because a lot of times I go camping by myself and I don't want to carry a larger kettle. This kettle, the Trekker model, is 10.6 inches tall and it has a capacity of half a liter or 2.4 cups. Now then for when we go camping with our entire family I got the larger kettle. The larger kettle is called the Base Camp. It is 13 inches tall and it holds one and a half liters or three times as much water as the Trekker which is 6.3 cups. The great thing about the Kelly Kettle is it allows you to use natural fuel so when you're traveling you do not have to carry a fuel source. It uses twigs, sticks, leaves and things like that. We're going to show that in just a minute. Actually there are three parts to each one of these. I got the entire Kelly Kettle kit which includes three items. This is the pot support, this is the cook set, and this is the cook set for the larger Base Camp kettle and I also got a pot support and a cook set. This cook set is smaller and it is specifically for the Trekker kettle. Now there's also a medium-sized Kelly kettle that's right in between these two as far as the size is concerned, but the medium-sized one is called the Scout and it only comes in aluminum and I like stainless steel because it's durable, lasts longer and it releases less toxins into your water. So I got the stainless steel tight. Both of these are stainless steel. The Base Camp only comes in aluminum but these two come in either aluminum or stainless steel and the stainless steel does cost a little bit more but this is a product that will last a lifetime and you can actually pass down to future generations and so I think it pays to pay a little bit extra to get this stainless steel. Now you can, as I mentioned, order these separately but I found out that when you order it as an entire kit it is considerably cheaper and I bought these on Amazon.com and I'm going to leave a link right down here in the bottom of this video. I'm going to leave a link where you can click on to go to the Amazon page for one of these Kelly Kettles. What we're going to do next is I'm going to open the boxes and we're going to look at the contents and explore and use our Kelly Kettles. Now this is what you will find inside the box they're put together, as you would put them together to use them. Each one comes with its own little manual and the Kelly Kettle comes with a nice two-year warranty and it comes with these appropriately sized carrying cases. Alright let's look at the smaller Kelly Kettle first. This is the Trekker model. I put everything in here. Here's little pot support now one thing I do is I keep this little packet that the pot support comes in because I don't like when I'm carrying things especially when I'm backpacking I don't like carrying something that's clanging around a lot and so I cushion metal parts so that they don't move around, clanging around. So this little pot packet it comes in serves a very nice little carrying pouch. Alright this is the support, the pot support. Each time you use it you'll put it together like this. Alright here's the Trekker model. Again I like to cushion things so that they don't clang around a lot. This right here came with the cook set. It's a handle. Now this if you just order the Kelly Kettle by itself this is what you get right here. Alright you get the fire base and the Kelly Kettle. Now when you order the pot support of course you get this and when you order the cook set this is what you get stainless steel cook set the lid functions as a frying pan.  Now the Kelly Kettle looks like it's hollow but it is actually, this part functions as a chimney. It is a double wall container and the water goes in here. Alright and the way the Kelly Kettle works is using the chimney effect. Now whenever you put this on the heat you always want to take off the stopper. You never want to heat it unless there's water in the container here. Alright what happens is as the smoke in the heat rises it creates a chimney effect which creates a draft which pulls air in here and burns the material in here and by using this chimney effect it burns very very efficiently and very hot. The cook set fits right in the base everything fits right in the Kelly Kettle and back in the bag for backpacking. Alright now this is the way you use the pot support. You have your water in here again and the Kelly Kettle boils water in a very short period of time but if you also want to use this to cook on top because it has fire and heat coming out of the chimney here you put the pot support in there and then you can use this pot here to cook or to boil water with or the lid which functions as a frying pan. Okay now let's look this is the Trekker model which I consider appropriate for a one person and this is also small and lightweight enough to where you can take this in your backpack with you when you're traveling by yourself. Alright now here's what I call the family model the base camp. This is the one that I got to use when I'm go camping with the family here again I have the pot support in there here is the base here is the cook set specifically for the larger model. Again it fits right in the base for easy transport. Here is the handle for handling frying pan for the pot when they're hot here is the larger grid for the larger kelly kettle for when you want to use this for grilling with these again are optional accessories which you get this comes with the cook set. You get the optional accessories if you choose the complete kit and here is the large I call the family size kelly kettle. Again you have your pot support put together like this pot support goes in the top and there's a larger pot with the lid slash frying pan. Now again anytime you're using the kelly kettle you want to make sure that this is out the stopper is out the stopper is just for transport and you all always want to have water in the kelly kettle when you are burning it. And the kelly kettle also functions as a way to carry additional water when you're traveling you can fill this container with water that's what the stopper is for and then when you get to where you're going and you get ready to use it you can gather some sticks put it in here put the chimney on light it take the stopper out of course light it get the fire going and it boils the water in this double walled container and then of course you can also cook on top if you have the optional cook set. Now what we're going to do now is I'm going to actually do a demonstration where I'm going to boil water in my kelly kettle.  This particular one has a nice little belt loop so that you can carry it on your belt. Now this is an essential item that all preppers and survivalists should have this is a nice deluxe model that contains a thermometer in it I don't really see much need in the thermometer I can tell when it's hot or when it's cold but it also has a little compass in the top which can come in handy in the compass in in the water but this is the magnesium fire starter this is magnesium portion this is the spark maker and this is just a little piece of a hacksaw that came with it and what you do is you hold the striker at a 45 degree angle like that and strike down and strike down like you would strike a match but first of all what you do is you shave off some magnesium filings I'm going to demonstrate on this foil here you take the blade and you shave magnesium off of the magnesium handle magnesium is a highly flammable metal it burns very very very hot it even burns I have a little bit of a breeze here it's best to do this when you're protected from the wind but anyway you can see my magnesium filings right there alright and then you put these on the object the wood that you want to light alright then you turn it over to the striker side holding at a 45 degree angle you light the magnesium like this I've gathered some sticks and twigs and stuff here I've put it in the base of my kelly kettles here's the smaller striker version I put some twigs in there and put a leaf on top for the magnesium filings alright I've already put filled the kelly kettle full of water up to the rim here here's the larger base camp model I filled this full of water up to the rim here's the fire base I put twigs in there and a leaf on top to hold the magnesium filings and let's see if we can get this thing lit kinda hard to do this at this angle with the camera there this takes a little practice okay as you can see it's burning very hot that's the chimney effect the rising heat causes the drought pulling air in the bottom alright then you can feed this thing by dropping combustible material in the chimney and there's the striker the smaller kelly kettle it took about five minutes to boil water in this kelly kettle this is survival doc reminding you be prepared or be prepared to be pleased


Ethiopia, officially the Federal Democratic Republic of Ethiopia, is a landlocked country located in the Horn of Africa region of East Africa. It shares borders with Eritrea to the north, Djibouti to the northeast, Somalia to the east and southeast, Kenya to the south, South Sudan to the west, and Sudan to the northwest. Ethiopia covers a land area of 112,000 square kilometers. Ethiopia is the world's 28th largest country, comparable in size to Bolivia. As of 2023, it is home to around 126.5 million inhabitants, making it the 13th most populous country in the world, the second most populous in Africa after Nigeria, and the most populated landlocked country on earth. The national capital and largest city is Addis Ababa. Ethiopia's population is highly diverse, containing over 80 different ethnic groups, the four largest of which are the Oromo, Amhara, Somali, and Tigrayans. The Oromo are the largest ethnic group in Ethiopia, at 34.4% of the nation's population. The Amhara represent 27.0% of the country's inhabitants, while Somalis and Tigrayans represent 6.2% and 6.1% of the population respectively. Afroasiatic-speaking communities make up the majority of the population. Among these, Semitic speakers often collectively refer to themselves as the Habesha people. The Arabic form of this term al-Habashah is the etymological basis of Abyssinia, the former name of Ethiopia in English and other European languages. According to Glottalog, there are 109 languages spoken in Ethiopia, while Ethnologue lists 90 individual languages spoken in the country. Most people in the country speak Afroasiatic languages of the Kushitic or Semitic branches. The former includes the Oromo language, spoken by the Oromo, and Somali, spoken by the Somalis. The latter includes Amharic, spoken by the Amhara, and Tigrinya, spoken by the Tigrayans. Together, these four groups make up about three-quarters of Ethiopia's population. Other Afroasiatic languages with a significant number of speakers include the Kushitic Siddamo, Afar, Hadiyah, and Agaw languages, as well as the Semitic-Guraj languages, Harari, Siltai, and Argoba languages. Arabic, which also belongs to the Afroasiatic family, is likewise spoken in some areas. English is the most widely spoken foreign language. The medium of instruction in secondary schools and all tertiary education. Federal laws are also published in British English in the Federal Negaret Gazeta, including the 1995 Constitution. Amharic was the language of primary school instruction, but has been replaced in many areas by regional languages such as Oromo, Somali, or Tigrinya. All languages enjoy equal state recognition in the 1995 Constitution of Ethiopia. Ethiopia's principal orthography is the Ge'ez script. Employed as an abugida for several of the country's languages, it first came into usage in the 6th and 5th centuries BC as an abjad to transcribe the Semitic Ge'ez language. Ge'ez now serves as the liturgical language of both the Ethiopian Orthodox Tewahedo and Eritrean Orthodox Tewahedo churches. During the 1980s, the Ethiopic character set was computerized. Anatomically modern humans emerged from modern-day Ethiopia and set out for the Near East and elsewhere in the Middle Paleolithic period. Southwestern Ethiopia has been proposed as a possible homeland of the Afroasiatic language family. Ethiopia is Africa's oldest independent country and one of the oldest in the world. In 980 BC, the Kingdom of Deempt extended its realm over Eritrea and the northern region of Ethiopia, while the Kingdom of Aksum maintained a unified civilization in the region for 900 years. Christianity was embraced by the kingdom in 330 and Islam arrived by the first hijra in 615. After the collapse of Aksum in 960, a variety of kingdoms, largely tribal confederations, existed in the land of Ethiopia. The Zagwe dynasty ruled the north-central parts until being overthrown by Yakuno Amlak in 1270, inaugurating the Ethiopian Empire and the Solomonic dynasty, claimed descent from the biblical Solomon and Queen of Sheba under their son, Manelik I. By the 14th century, the empire had grown in prestige through territorial expansion and fighting against adjacent territories. Most notably, the Ethiopian-Adal War, 1529-1543, contributed to fragmentation of the empire, which ultimately fell under a decentralization known as Zemene Mesafint in the mid-18th century. Emperor Teodros II ended Zemene Mesafint at the beginning of his reign in 1855, marking the reunification and modernization of Ethiopia. From 1878 onwards, Emperor Menelik Thet launched a series of conquests known as Menelik's Expansions, which resulted in the formation of Ethiopia's current border. Externally, during the late 19th century, Ethiopia defended itself against foreign invasions, including from Egypt and Italy. As a result, Ethiopia and Liberia preserved their sovereignty during the scramble for Africa. In 1935, Ethiopia was occupied by Fascist Italy and annexed with Italian-possessed Eritrea and Somaliland, later forming Italian East Africa. In 1941, during World War II, it was occupied by the British Army and its full sovereignty was restored in 1944 after a period of military administration. The Durg, a Soviet-backed military hunter, took power in 1974 after deposing Emperor Hela Selassie and the Solomonic dynasty and ruled the country for nearly 17 years amidst the Ethiopian Civil War. Following the dissolution of the Durg in 1991, the Ethiopian People's Revolutionary Democratic Front, EPRDF, dominated the country with a new constitution and ethnic-based federalism. Since then, Ethiopia has suffered from prolonged and unsolved inter-ethnic clashes and political instability marked by democratic backsliding. This sovereign state is a founding member of the UN, the Group of 24, the Non-Aligned Movement, the Group of 77, and the Organization of African Unity. Addis Ababa is the headquarters of the African Union, the Pan-African Chamber of Commerce and Industry, the United Nations Economic Commission for Africa, the African Stand-by Force, and many of the global non-governmental organizations focused on Africa. Ethiopia has been invited to join BRICS and will become a full member, starting January 1st, 2024. Ethiopia is considered to be an emerging power, having the fastest economic growth in sub-Saharan African countries. Ethiopia has close historical ties with all three of the world's major Abrahamic religions. In the 4th century, the Ethiopian Empire was one of the first in the world to officially adopt Christianity as the state religion. As a result of the resolutions of the Council of Calcedon, in 451, the Myophysites, which included the vast majority of Christians in Egypt and Ethiopia, were accused of monophysitism and designated as heretics under the common name of Coptic Christianity. The Ethiopian Orthodox Tewahedo Church is part of Oriental Orthodoxy. It is by far the largest Christian denomination, although a number of Piantai Protestant churches have recently gained ground. Since 1930, a relatively small Ethiopian Catholic church has existed in full communion with Rome, with adherents making up less than 1% of the total population. Islam, in Ethiopia, dates back to the founding of the religion in 622, when a group of Muslims were counseled by Muhammad to escape persecution in Mecca. The disciples subsequently migrated to Abyssinia via modern-day Eritrea, which was at the time ruled by Ashama Ibn Abjar, a pious Christian emperor. The predominant climate type is tropical monsoon, with wide topographic-induced variation. The Ethiopian highlands cover most of the country and have a climate which is generally considerably cooler than other regions at similar proximity to the equator. Most of the country's major cities are located at elevations of around 2,000 to 2,500 meters above sea level, including historic capitals such as Gondar and Aksum. The modern capital, Addis Ababa, is situated on the foothills of Mount Entoto at an elevation of around 2,400 meters. It experiences a mild climate all year round. With temperatures fairly uniform all year round, the seasons in Addis Ababa are largely defined by rainfall, a dry season from October to February, a light rainy season from March to May, and a heavy rainy season from June to September. Ethiopia is constructing a large 6,450-megawatt hydroelectric dam on the Blue Nile River called the Grand Ethiopian Renaissance Dam. When completed, this Grand Ethiopian Renaissance Dam is slated to be the largest hydroelectric power station in Africa. Agriculture constitutes around 85% of the labor force. Many other economic activities depend on agriculture, including marketing, processing, and export of agricultural products. Production is overwhelmingly by small-scale farmers and enterprises, and a large part of commodity exports are provided by the small agricultural cash crop sector. Principal crops include coffee, legumes, oil seeds, cereals, potatoes, sugarcane, and vegetables. Ethiopia is also a Vavilov Center of Diversity for domesticated crops, including inset, coffee, and teff. Exports are almost entirely agricultural commodities, with the exception of gold exports, and coffee is the largest foreign exchange earner. Ethiopia is Africa's second-biggest maize producer. Ethiopia has 926 kilometers of electrified standard gauge railways, 656 kilometers for the Addis Ababa Djibouti Railway between Addis Ababa and the Port of Djibouti via Awash, and 270 kilometers for the Awash-Hara-Gabea Railway between Addis Ababa and the Twin Cities of Dessiae and Kombolcha. Ethiopia had 58 airports as of 2012 and 61 as of 2016. Among these, the Bol International Airport in Addis Ababa and the Abatena-Dejazmash Yilma International Airport in Dairudawa accommodate international flights. Ethiopian Airlines, a member of the Star Alliance, is the country's flag carrier and is wholly owned by the government of Ethiopia. From its hub at the Bol International Airport, the airline serves a network of 102 international passenger, 20 domestic passenger, and 44 cargo destinations. It is also one of the fastest growing carriers in the industry and continent. In 2015, the European Council named Ethiopia World's Best Tourism Destination. In 2020, the country registered 518,000 tourists, ranked 126th in the world. There are nine UNESCO World Heritage Sites in Ethiopia. Tourist destinations include Ethiopia's collection of national parks, including Semi and Mountains National Park and historic sites, such as the cities of Aksum, Lalibela and Gondar, Harar-Jugol-Wald City, Negash Mosque in Negash and Soft Omar Caves. The best-known Ethiopian cuisine consists of various types of thick meat stews, known as wat in Ethiopian culture, and vegetable side dishes served on top of injera, a large sourdough flatbread made of teff flour. This is not eaten with utensils, but instead the injera is used to scoop up the entrees and side dishes. Almost universally in Ethiopia, it is common to eat from the same dish in the middle of the table with a group of people. It is also a common custom to feed others within a group or own hands, a tradition referred to as gursha. Traditional Ethiopian cuisine employs no pork or shellfish of any kind, as both are forbidden in the Ethiopian Orthodox Christian, Islamic, and Jewish faiths. Cechebsa, Marka, Chukko, Michira, and Danga are the most popular dishes from the Oromo. Kitfo, which originated among the guragj, is one of the country's most popular delicacies. In addition, Doro Wat and Cebehi Derho are other popular dishes, originating from Northwestern Ethiopia. Tehlo, which is a type of dumpling, is prepared from roasted barley flour and originated in the Tigray region. Tehlo is now very popular in Amhara and spreading further south. The music of Ethiopia is extremely diverse, with each of the country's 80 ethnic groups being associated with unique sounds. Ethiopian music uses a distinct modal system that is pentatonic with characteristically long intervals between some notes. As with many other aspects of Ethiopian culture and tradition, tastes in music and lyrics are strongly linked with those in neighboring Eritrea, Somalia, Djibouti, and Sudan. Traditional singing in Ethiopia presents diverse styles of polyphony, heterophony, drone, imitation, and counterpoint. Traditionally, lyricism in Ethiopian songwriting is strongly associated with views of patriotism or national pride, romance, friendship, and a unique type of memoir, known as tizita. In the 1960s and 1970s, traditional infused modern Ethiopian music was revived in what is known as the Golden Age. Several notable musical artists emerged thereafter, for example, Tilahun Gesese, Alema Yehu Eshette, Bizunesh Bekele, Muluken Melese, and Mahmoud Ahmed. It also employed tradition style called tizita. During the DERG regime, these artists were prohibited to perform in the country and often forced into exile in North America and Europe, mixing with jazz and funk influences. For example, Roha Band, Wallyas Band, and Ethio Stars. By this time, Niue Debebe was critical of the DERG government. Modern music became developed shortly in the 1990s and 2000s. In this period, the most popular artists were Aster Oweek, Gigi and Teddy Afro. Ethiopian music further modernized in the next decade, employing electronic type. DJ Roffnain was renowned for pioneering EDM after releasing his debut album Reflection in 2018. The main sports in Ethiopia are track and field, particularly long distance running and football. Ethiopian athletes have won many Olympic gold medals in track and field, most of them in long distance running. Abebe Bikila became the first athlete from a Sub-Saharan country to win an Olympic gold medal when he won the marathon at the 1960 Rome Olympic Games in a world record time. Haile Gebersalassi, Kenanisa Bekele, and Tiruneesh Dibaba are all world renowned long distance runners, each with multiple Olympic and world championship gold medals. Lettacin Bet Gidei holds the world records in both the women's 5,000 meter and 10,000 meter run. Other notable Ethiopian runners are Mamo Wolda, Miruz Yifter, Derar Tutulu, Mesaret Defar, Birhane Adere, Tiki Galana, Genzebe Dibaba, Tariku Bekele, Galete Burka, and Yomif Kejelcha. Ethiopia has Sub-Saharan Africa's longest basketball tradition as it established a national basketball team in 1949. Ethiopia's role as a beacon of hope for Africa is accentuated by its commitment to regional stability and development. In a continent often grappling with challenges, Ethiopia has emerged as a leader in pursuing solutions and fostering unity. Its diplomatic efforts and participation in regional organizations underscore its dedication to the collective advancement of the African people. The grand transformation unfolding in Ethiopia is exemplified by ambitious infrastructural projects, economic reforms, and a commitment to education and technology. The nation is positioning itself as a hub for innovation and economic growth, contributing not only to its own prosperity, but also to the advancement of the entire continent. As Ethiopia strides forward, it carries with it the weight of history, the dreams of its people, and the promise of a brighter future for Africa. The tale of Ethiopia is one of resilience, aspiration, and the enduring spirit of a nation that continues to shape its destiny and in doing so serves as a guiding light for the entire African continent.


All right, it is finally coding time. We'll start by building a very, very bare-bones authentication app with our existing React app here just to show how you can use pocket-based authentication. And we won't be diving into any of the nitty gritty user interface stuff. So let's go and make our auth.js component here. And let's export default function auth. And just return auth for now in the app.js file. Let's just include the auth component here there. So auth will show up here in our app and realize that we didn't have to do .slash because we're using absolute imports now. And then here in the auth app, let's think about what we're going to do here. So first, we're going to just see if the user is logged in or not. I can make an indicator for that using H1 tags, let's say, log in. So is this true or false? And it looks like that. Let's just zoom in a little. So the way you can detect if users are logged in or not is via this pb.auth state variable. And I can just go to the documentation just to show you what I'm talking about. So pb, that's basically the handle that we just exported from our pocket-based.js file. I mean, it has a property called authStore that has all of the different properties we can use to check the user's current authentication state. So we have authStore.token, model is valid. So here, back in our code, we will import our pocket-based handle here that we've exported from pocket-based.js. So let us import that. Import pb from library slash pocket-based. And then here, we'll just do pb.authStore. You can see that IntelliSense already knows that there's this property. And we can do dot is valid. So this tells us if the current authentication state is valid or not. And this is a Boolean value. So we have to do dot toString to make it show up in the HTML. And sure enough, it tells us logged in is false. Now let's go ahead and make that input form so users can log in to our page. And so we should have two input fields and a submit button, one for email slash username and one for password. So here, I'm just going to paste a snippet here. It's just a form and has two inputs and a button. And it looks like this. So bare minimum doesn't have any functionality yet. And of course, what we could do is we could use React state and we could do something like this. This is the example that I have here. You can have two different state variables, one for username, one for password. But I'm not going to do that. Instead, I'm going to make things a little bit simpler by using a library, a framework called React hook form. So what you're going to do is do yarn add react dash hook dash form. And it's going to provide us with a library that we can use to manage forms better. And once you have that installed, you can import this hook called use form from react hook form. There we go. And once you have react hook form installed, you can restart the React server and bring that away. And you can destructure two items from the use form hook, like so. So you can get the register function and the handle submit function from the use form hook. And those are two different functions and I'll show you how to use them in just a second. Now for understanding purposes, I'm just going to, for now, just log the register function to console and to execute the register function you have to like provide it with a name. We're going to make two register functions in just a second, one for email and one for password. But first, let me log that to the console and refresh this. So you can see that the register function returns a name on blur on change. And basically, we're just going to feed all of these properties from the register hook to our input fields. So like how you would have to go and manually set the value to state variable and then use on change to set the e.target.value to the react set username hook. Now with register, it automatically does that for you. You just have to run this register function and it'll just generate all of the functions that has to be fed to the HTML component. So what you could do is you could just destructure the register function here using the three dots, just destructure, register, and just feed that to the input field. Just do the same bird. And of course, you're going to have to destructure this using ESX syntax, just save that. So now we have the two input fields here controlled in react state, but how are we going to print out the values that are in the input fields? Usually what you would do is you would go to the form and do on submit and set it to some handle submit function here, right? But remember that use form provides us with this handle submit function as well. So usually in your handle submit function, you need to have like handle submit and you have to take in an e and I have to do e.prevent default, something like that to prevent the form from refreshing the page and performing the default behavior because now we're controlling everything from react. We don't need the refresh, but because we have handle submit from use form, we actually don't need to do this. We just have to put handle submit from the use form hook and just put it here and it automatically does the e.prevent default for us and it takes in an argument here and that's going to be our own function. I had a function here called function login. You can just make a blank function for now and put login in here and login takes in like this, this custom function that you fit into the handle submit function is going to take in a parameter called data and you can just console.log data. So data is coming from the handle submit function which is also coming from use form and I can log that to the console and I'm going to refresh this. We can do some email, some password, hit login and that gives us our data object. But how do we log the users in with pocket base? Now if I head over to the documentation here, just exact line tells us how to do it which is await pb.collection users.auth with password. So I'm just yanking that line, go to our code and we're going to make this function async just paste in here and then there. So we do pb.collection and then we specify the users collection auth with password. Obviously we can just hard code username email. We just have to do data.email and here we do data.password and remember data is coming from there. It's coming from react hook form, save that and then we also want loading state so I can just make const is loading, set loading equals to use state and then we start off loading with false and then we could just do set loading true here and then once we're done we just set loading to false and that should be able, we should be able to log in this way. I'm going to just test it out, just refresh the page and I forgot to use to implement the loading state. So we do have set loading to true and false afterwards but we're not reading from the is loading value anywhere in our code. So here what you could do is you could just do if it's loading, so if it's loading then we want to just do p tags and just say loading and then here in the button let's just have disabled equals to if it's loading then we disable the button. Here we also just say if it's loading then I'm just going to use a ternary operator here. If it's loading then we just say loading if it's not then say login. So that's your ternary operator. Let's go ahead and test our code. So I'm going to just test at gmail.com. I foresee problems already because we don't really have users in our users collection. You can see that it's empty. So let's try to log in. It says loading and it gives us problems. So we have to do something like a try catch block in here. So let's just, I guess we could let me think about this. Let's just try here and just put all of this inside of it. And then let's catch e and then just console log e for now maybe or we could like prompt and then let's refresh log in. It tells us, okay, maybe not prompt maybe just alert forget the names of the JavaScript prompts. So it tells us client response ever failed to authenticate. All right, sure. So let's go and make a user here. We can have the email to be, what email user, gmail.com password. Let's have 123. Let's create the length must be between eight and nine. So if you ever get this annoying issue that it forces you to have a password of length between eight and 72 we could go and customize this by click on edit collection. Let's go to options here and username password enabled. So email slash password here. Actually, no, it's down here in general minimum password length. I think minimum requires us to have like length of five if not wrong. Yeah, it's five. So we have to do five doesn't let us go past that below that I mean. So user at gmail.com 12345. Let's create that user. So now that we have that user you can refresh the page. Just do user at gmail.com and then do 12345. Let's hit log in and you can see that logged in is now true. And so that's amazing. So instead of saying logged in is true if we wanted to let's say logged in as which user and email. So we can just print the email out by changing this dot is valid. We can change it to PB dot off store. You know what we will say if this is true if is logged in is true then we're gonna do PB dot off store dot model dot email there. So it should say user at gmail.com Let us just move this entire thing outside of this function and just say is logged in and we have to make that constant somewhere up here and we can do const is logged in is there we go. Instead of is logged in should be is valid though there. So not model is valid. So there we go. Let's find a way for the user to log out right now. So I'm gonna just say if it's logged in so if is logged in then we're gonna have to return logged in as whatever the email is and then let's just wrap this in react fragments. So if it's logged in return this and return a log on button here. Log out. If it's not then we're gonna return this. This is gonna be the login page. So here let's just change this to please log in. And there we go. The form are just making sure everything should be working fine. I go back to the page we can see logged in as this user if you click the log out nothing happens because we need our log out function. We can make that function your function log out. This log out function doesn't actually have to be an asynchronous function because it's not necessarily making an API call. It's just clearing the cookies that has the login information in the local storage. So we can do pb.authstore. Just check the documentation. So you see pb.authstore clear. It's not an asynchronous function because it's just modifying the local database, the local storage, I mean. So we do that clear. And it's gonna, we're gonna see some problems in just a while. So if I click on log out it's actually logged out right now although it still says log in, logged in. If I refresh the page though. Let's log out. That's weird. Oh, that's cause I don't have the log out function set to this log out button. So on click equals to log out. So if I click on the button, it does nothing. It still says logged in. But if I refresh the page you can see it's actually longed out. And that's, and the reason for that is because this is like I said this log out function is not clear. It's just modifying local storage. It isn't triggering a re-render in React. So React doesn't know to re-render and refresh to say that, oh, something's changed about react state and we should log out because react state didn't change, right? The local storage changed in the browser. So to fix this we're gonna have to manually force react to re-render and update. So what I could do is just make it dummy state variable. So dummy set dummy equals to you state some string. And then let's just do set dummy to, I don't know, math.random maybe. Then we can just do zero here maybe. There, there we go. So now if I go and log in here, user at gmail.com and let's click on log out. Now you can see that it refreshes and re-renders the page. And with that we're basically done with our bare bones and basic authentication app. Now I know we haven't got to doing the registration page and everything yet but that's because to register a new user we basically have to add a new row, a new record to this users table and adding a record to the users table is no different from adding a row to any other pocket base table. It's just the same procedure. And so I'm gonna be adding that in a later video. But first I'm gonna, in the next video I'm gonna show you how you can make a custom hook to perform all of the login and logout functions here because you can see that our auth app it's supposed to just contain the front end and the UI components. But we have a whole bunch of code like 50% of the code in here is react state and a whole bunch of functionality code. So I'm gonna show you how you can extract all of the code for the functionality here and refactor it into its own hook. And then after that we're gonna do the registration page.


Hi, it's Darren Marlar, and if you are a Dropbox user that is, like I am, this little tip might come in handy for you. If you have to share files with clients, for example, I'm an audio person, I do voiceovers for a living, so I'm sending audio files to clients quite a bit, and usually those files are going to be too large to email as an attachment, even if I knock those down to an MP3 because some of those projects are fairly big. So the easiest thing for me to do at that point is to send them a link so they can download it, and I usually do that through Dropbox. Well, Dropbox does have one thing, I love the program, I think it's a great service, but the one thing that irritates me is the fact that it takes every space in the title of what you're creating and puts a percentage 20 in it, and it just makes for a really, really long title. Sometimes that's required. For example, I'm the voice artist for Factsverse on YouTube, just one of my clients, and here, look at it, the title is so long it doesn't even fit onto my Adobe audition description of what the title is. Well, the title of the file itself is, let me knock this down here, discard changes, there you go, 40 celebrities who confess to having secret crushes on other stars. That's a long title. So when I was recording it, I went ahead and saved it under that title, and then I'll take a Dropbox link, here's, there it is on Dropbox. This is how I find it on Dropbox, you might access your Dropbox files in some other way, but regardless, you grab the link for whatever that file is, there it is, it gets copied, and when you create a new email, what happens is you get this, look at that mess, and you don't want to send that to a client for them to download something, but that's the name of the file, so you don't think you have a choice, right? Well, you do have a choice. Obviously, a lot of people have found out that they'll just use either bit.ly or tiny URL. I'll use tiny URL here just as an example. If I type in that really long, there you go. And so instead of this giant beast, I have this that I can share, which works just fine. All it does is it takes you forward to this URL up here. But today, I noticed that I can also, if I want to, just take this section and share that with my client. So instead of this monstrosity, all I'd have to do is send them this, and when you click on that, notice up here it takes you to the very same file, the long, the long title file, but it's still the same file. 40 celebrities who confess to having secret crushes on their on other stars. Now, why would you do it this way? You could just use the tiny URL or whatever. That's fine. I have found, however, that some people, especially in this technological age, where everybody's trying to go fishing and spam you with everything else, you have to be so careful about what you click on. And sometimes, if somebody sees a bit.ly or a tiny URL, then they're going to think that maybe it's spam rather than what they're really hoping to get in their email. So tinyurl.com. Well, who the heck is that? I hired Darren Marlar. Who is tiny URL? Well, obviously they didn't hire Dropbox, but at least they know that I use Dropbox to send my files to them. So this is obviously, of course, if you're not using your own FTP and, you know, you're fancy enough to get your own URL for that. But for those of us who don't use that particular method, and we do use Dropbox, this might work for you. Let me know if it does in the comments or let me know if it doesn't. Like I said, it works for me. I just showed that to you. But maybe that won't work for everybody. I'm curious as to whether or not it works for you. Thanks a lot. Appreciate it.