Lacey Williams gave a talk yesterday on the intersection between humanities and technology, specifically how her lessons as an English major influenced and helped her life in the tech world. I'm an English major as well, and as soon as I saw her abstract, I knew there was going to be a pretty big intersection between our talks. So we talked and plotted things out, and the core lesson that I kind of want to take from her is that there are soft problems, soft in technology, that we can use lessons from writers, lessons from your English professor, lessons from your high school English teacher to make us better programmers. If you didn't catch your talk, please put it at the top of your list of two rewatch once the videos on demand go up. It was a wonderful talk. I think people both from humanities majors and people who from sort of more technical backgrounds have a lot to learn from it. But again, the core lesson I want to take away is that there are hard problems in computer science that are maybe not solved, but aided by some lessons we can take from humanities. And the problem that I want to talk about is names. Names of variables, names of methods, names of projects, like the stylistic guides that Lacey covered yesterday, names are important because they're what we leave behind as sign posts to fellow developers. Both current developers, people who are current coworkers, people who may work with you later, and you, one year from now, you will want yourself, your old self, to have named things correctly. If you do not, future you will be mad at you, and that is how time travel movies start. And you do not want to be the protagonist in that movie. I promise you. Now, there are other reasons why you want to have good variable names other than to avoid being killed by yourself and causing some sort of conflict, but we'll go into those kind of when we get into the actual advice later in the talk. Speaking of names, my name is Jacob Birch. The name of the company I work for is RevSys. The name of my title is developer, I guess, and the name of this talk is the other hard problem. A lot of you probably know what the name of the talk is referring to. There's a quote that gets battled around. I used it in a talk here at DjangoCon three or four years ago when I gave a talk on cash invalidation and caching within Django with my Cobra's inner no-assilus. So here's that quote. There are only two hard things in computer science, cash invalidation and naming things. Now, there are other sort of jokie versions of this, but this is the one that matters. And it's funny in its own right, right? Because you have this super, super technical thing, cash invalidation, hard CS grads have a really hard time with it, and you have this super soft problem in naming variables. And that's why it's kind of funny that the two polar opposites of our discipline still are the highest in difficulty, at least according to this quote. I'm grateful for that because that means my American literature degree was not gone to waste. I can use it in my professional life, even if it's just to give this talk one or two times. So let's go over what I'm going to be talking about. This is a novice level course, so a lot of things I'll be saying may seem self-evident to some seasoned developers here, but I kind of want to stress, and I'll be restressing this throughout, that a lot of the mistakes here are not mistakes of ignorance, they're mistakes of laziness. It's easy to do the easy thing and just move on with your life, even if you know it's better. That said, I do think this is sort of a step two talk in that it's not, I expect you to have a little bit of background on Pepe. Maybe you went to Lacey's talk, maybe you've read the Pepe talks. That said, I'll cover Pepe a little bit. We have a special guest instructor that I'll introduce in a little bit who's going to give us some tips on naming our variables. And then I have a few notes just on how we can take these lessons and apply them to our tests and documentation. So to start up summing up Pepe, I want to actually quote verbatim from Lacey's talk, she's talking about the elements of style, the English style guide by Strunk and White. The broader point about Strunk and White, though, is that this is a guide written to help people write clear, more concise, more consistent, more readable English. Pepe is a guide for helping people write clear, more concise, more consistent, and more readable code. And that bears repeating because it works exactly the same for names. The point of our names are these sign posts, and we want them to be clear, more concise, more consistent, and more readable. So I'm going to, like I said, really breeze through Pepe and what it has to say about naming variables. Even if you haven't read Pepe, I think a lot of these are apparent if you just read a little bit of Python code that's been written in the last few years or less decade. We all upper camel case our class names. We lower case and underscore our variable names and our method names and our function names. And we shout at the top of our lines our constant names. There's a few slightly lesser known advice as well. We add a one underscore when we want to kind of suggest that this is a private method that may or may not get maintained. We can add a double underscore to really enforce the idea that it's a private method and Python will invoke some name mangling. Again, I read Pepe to learn more about that. And if you're sort of hugged by double underscores and I know it's a magic method that's used somewhere else in the life of the class. This is our guest host, Mark Twain. So I picked Mark Twain for a reason. Let me just move the mic. So Lacey had Jane Austen helping us guide us through tests and through Pepe and through the importance of style guide. And I picked Mark Twain for a number of reasons. First is he's an American master to kind of compose, go against the juxtapose, the British nature background of Jane Austen. He is a known for his simple, elegant, straightforward style. So I think we can all appreciate as Pythonistas, he has a really mean face. I do not know if there's a picture of him smiling. There's pictures of him as a baby, he is not smiling.  Like this is a guy, he will have vengeance on you if you have a bad variable name. But the main reason I picked Mark Twain is he hated Jane Austen. I'm not kidding about this. And I'm not going to say any of the mean things that he said about Jane Austen because I would just be mean and cruel and I'm above that. But I kind of want to try to fix this. There are more if you Google Jane Austen, Mark Twain, he's not a fan. But I want to fix this. I want in real Jane Austen style, I want to marry off mean old Mark Twain to Jane Austen arm in arm and have them guide us to a nirvana of Python naming and have them both help us in both aspects of it. So the first bit of advice that Mark Twain has for us is, use plain simple language in short words. It is easy, right? Like we can directly use this as advice in naming our variables. Yesterday at the, there was a comment at the end of Lacey's talk because I was trying to think of an example to show like what not to do, what violates this. And there was a comment about not using doc strings as your method name which is brilliant. That's exactly how I want to put it. So this is a good example of that. So this is a hyperbolic example. You see this and you think, oh, I would never do that. That's not me. I know better. I use nice concise descriptive language. And that's true. Like this is a very silly example. But I think there's another bit of advice where maybe we do fall into that trap and we don't even notice it. So this is one of the more well-known Mark Twain writing devices which is when you catch an adjective, kill it. Nouns, verbs, these are the building blocks and very, very sparsely should be using adjectives. And we read this and like, well, this doesn't translate to programming, right? We don't use really adjectives. Maybe properties, maybe arguments. But for the most part, nouns and verbs is kind of what we stick to. But I disagree. So look at this model name. And that's noun, noun, noun in this case. But we're using user and vote as adjectives. And it would be so much better if we just had one word to convey this. And there's a couple of techniques I want you to use when it comes to fixing this. I guess three, because the first is when you notice that you're doing this, you're just shoving words together to create a new class.  Does it mean you need to fix it? Does it mean there's something wrong? It doesn't mean it's a bad variable name. But it means there's an opportunity here to be better and to be more concise. The first technique we can use to actually fix it is what if we just got rid of one of the words? Do we lose any actual meaning? I find this happens a lot within models and especially with the user model. So many things are related to the user, so we add user to it. But there's no such thing in this case as a non-user vote collection. So if we just get rid of the user, we have just as valid, just as descriptive, but a little bit shorter. And it matters when you start adding manager to things and view to things. Really helps the code stay concise. There's another technique that's not quite as easy as just chopping something off. And that's if you can combine two or more words to mean to one single word, different word, somewhere in the dictionary, of all the thousand and thousand in English words, that means the same thing. Now this is harder because it's a problem vocabulary. Sometimes you can't just Google that there's a new word and even if there is a different word, doesn't mean you should use it. If it's a word that's not kind of widely understood by the people you're coding with, you still shouldn't use it. Luckily for us, vote collection in this mythical model that we're using, there's another word. You can just call it ballot. I think this is probably of all the examples I have. I think this is a thing that the most people don't do because it's hard. You don't even have to think that much. You have to put in the effort to Google, is there a domain word that I'm not thinking of that I could be using? So I want to go back to that last bit of advice that Toyn had for us because this is actually not the complete quote. When it gets quoted, this is usually all you see, but it's not the complete one. This is the complete one. When you catch an adjective, kill it. No, I don't mean that utterly, but kill most of them. The rest of them will be valuable. And this is sort of a Toynian way of saying context matters. Don't apply the rule universally. Don't be combative. You have to balance things out. You have to balance concises with descriptiveness.  It's not universal. Another bit of advice that we definitely have to take context with us is do not omit necessary details. This comes up, I'll kind of give the silly example, when you use really vague words because maybe you're not sure at the time what the arguments are actually gonna be. So you just use vowel and you forget it. I mean, most of us know not to use something like this, but maybe there's a method like this that you've written before. And in this case, maybe there's one line after this where you return the response of a request. So why bother? Why bother calling it, trying to figure out what D actually is? Because it's kind of weird. It's parts of URL, URL prams. There's no kind of nice concrete word so why bother, I'll just call it D. And that's fine until you notice that maybe this method needs to get worked on by someone else. And in that case, D is only the second worst variable name that will be contained in this function because the worst variable name is D, too. And you can see how this just starts to compound and this, I can almost guarantee every one of us has done this, maybe not recently, but we've done this and it's really tempting to do. It's really tempting to do in test code and I'll get to that in a little bit because it's the second example of something. I don't want to think about how it's changed or how it's different, so I'll just move on. So what does Mark Twin have for us next? Don't let fluff and flowers and verbosity creep in. So we need all this that don't get cute variable, right? They're a variable rule. It's saying variable all day long. So it can be really tempting to make a play on words or a pun or a cultural reference with our variable names. This is really common, maybe not super common, but most common in application names, right? You have your project and maybe that's acutely named and that's fine. You kind of want your project name to be marketable, to be searchable, to be unique. Says the guy at a conference named after an Egyptian guitarist. But beyond that, keep it boring. Don't be cute. If you need to show your creative energy, show it when you name your project. Think of it, you have a beautiful baby boy and you name him Mark. And that's it, maybe it's a family name, but you don't go out of the way to name his hair or his mustache, there's just his hair and his mustache. You don't need to get cute beyond that. So there's one last advice that Mark has for us and it kind of encompasses everything, which is use of the right word, not its second cousin. This kind of comes up everything. Use the correct word, like as descript as it needs to be, as brief as it can be, use the right word. But I think this has another sort of anti-pattern that comes into play and that comes up with consistency. Maybe, again, you think, oh, I wouldn't do this. I have a name for URLs and that's the one I use. But maybe you're in a project where they were using URI when they really meant URL. And you're like, well, you're like, I don't want to change the other code and it might break things. So I'm just gonna start using the correct one. And then someone down the line says, well, now we're using URIs and URLs. So let's just start using address. But again, I'm too lazy. I don't want to fix the old code. And we'll just keep it going on now. Now you have code that's harder to parse. You have code that's harder to refactor because you have to search for all three of these. And it's just not as pleasant as just saying, this is what we're using when we see what someone else used before and that's what I'm gonna keep on using. So I've also been talking about application code in this talk. And, should we do that again? Sorry. Okay. And it's important that test and documentations are different. We should treat them a little differently. And I think for both cases, verbosity is less of a sin. This is actually, I think, a completely fine test name. It's super verbose. You would never have a method in an actual class or a view named this. But I'm quite all right with it as a test name because you're never really invoking this everywhere else or I can't imagine a place where you are. So the only place you're using it, it's sort of a chapter title when you're reading your test or someone else is reading your test. And if the test fails, it points to you exactly to what's failing. Now that said, because we kind of get a break the rules in our test names, it's really easy to just use R and S and just short, short little names because who's ever gonna read this, ha ha ha. But people will. People will need to change the test. Maybe they'll need to introduce another variable that starts with an R. So just be explicit when you can. It doesn't take that much more time. And it's just worth it to not use something like foo and bar and baz. So about foo and bar and baz, stop using it. Stop it, stop it, stop it, stop it. I own fozero.net. So I love the sort of lineage and the connection that makes me with programmers but stop using it. Especially, especially stop using in documentation. There are so many bad examples in documentation where it's written by a developer who knows the code so well and they know something is frivolous and they just wanna show some implementation detail and it doesn't matter what the context is. And there's also class foo, define bar and it munges a strain or something. Stop doing it. Someone will come along who doesn't isn't as experienced as you, doesn't know why you would wanna do this. And once a really good concrete example, the Djingodux are incredible at this. They have common motifs, the track title artist thing that are common throughout the documentation is concrete, it's universal, it's something that's really well-known. So the only other things I kinda wanted to add is that this has been very sort of general advice. The Martin quotes I think are awesome. They help you categorize a lot of other nitty gritty advice on how to write good variable names. Chapter two of Kling Code by Uncle Bob Robert Cecil Martin is really, really good at this. Has a laundry list of rules that you can follow. I highly recommend buying the book and reading it. I'll also be linking to a source when I publish this talk on GitHub that kinda summarizes that chapter to kinda get you started, but you should support the man by the book. And that's all I have. Are there any questions? So we have five minutes for questions. Okay, so I just, one comment and one question. My comment is in regard to the example used of ballot versus vote collection. And that's simply that, I mean, I love words. I love what they mean. I love the subtleties of them. But like in common North American parlance, when you say ballot, what people think of is they think of that piece of card stock with the bubbles that you have to fill in with the black ink pen. With the, you know, with the candidate names on it. So it's like there's an actual, I think there's a clarity in vote collection that unfortunately is a lowest common denominator type target.  I completely agree with you, but then I also understand why that final transition doesn't occur very often. The other thing, the actual question was, there are times, I mean, because you know with the ORM, you can chain, you know, method calls to the end of the screen and beyond.  But sometimes you literally do have a variable. It's just a throwaway variable. It doesn't mean anything other than, I want to assign this blob of stuff someplace such that I can then do additional work on it and add clarity in the separation of what's being done, but it's not necessarily carried over in the variable names. I mean, so I'd like to hear your feedback on that. Sure. On the comment first, I would defend even though a ballot may not be representing an actual physical ballot, and maybe there's another word for it, but as long as that is, our models tend to be our sort of, our starting blocks for nouns thereafter views and managers are named after the model. I think it's okay, I don't wanna say, again, don't get cute, but it's okay to be a little metaphorical when it comes to naming those things because if you're gonna be using ballot everywhere, you can kind of introduce, this is what a ballot is. For us, it is a collection of votes and you can kind of set that stone and hopefully your documentation can say that's what a ballot is. Sure. And just to get it on the microphone for the video, he was saying that there is such a thing as a ballot is a physical thing and it means something. I would say it depends, again, it depends, it's contextual, if you don't ever care about that physical thing, you know you're never actually gonna be talking about ballots, it's fine on that. On the question itself, I would say do your best when you do those throwaway variables, still name them contextually. You may end up using that variable in an edit later. It's also really important when you're debugging of test breaks and you throw in a PDB, you know what you're like, well what was this before I did select related or prefetch related and then you know what, you can actually help it out. Prepare for edits and prepare for debugging later. Thanks for a great talk. It goes to the sort of ballot example as well for like we work in a community with a lot of non-native speakers as well. What are your thoughts around that sort of thing, clarity for non-native speakers that maybe don't have that level of vocabulary? Sure, this is, I'm gonna say, a hard problem and it depends entirely on your audience. I think open source, it's especially hard and I think you do end up just using those compound names that are hopefully avoided but that said, you know, I also don't think it's necessarily in the world if you say you're like, we're gonna use ballot even though it's not a physical ballot, we're gonna use ballot and I would say if you document it well, both within the code and within your documentation, that this is a metaphorical term we're using so we can keep things concise and concrete and easy to parse. A big problem with user vote collection is you kinda have to read all three words before you know what you're talking about versus once you see ballot, you can kind of contextualize it like that. But again, it's hard. Sometimes you just have to give up the coast and not use a word like that. I wonder if you might have words of wisdom on commit messages. So this is gonna be completely due, as I say, not as I do. I am until literally two months ago, I was probably the worst commit writer because I largely worked on projects by myself and I was like, who cares? So when I talk about future me, that is literally in the back of my mind.  There's a really good blog post that came out a month or so ago and I really like that. Keep your subjects super short. I think the get recommendation is 50 characters. I go a little over that and then space, space and then a huge, as huge of a body as you need. And again, it's context dependent. If you're just fixing a bug, maybe the subject's fine. But if it's a merge, a feature branch merge, write as much as you can. Like even if you're copying, pasting docs or you copy and paste your commit message in the docs, it's not, more information commit messages isn't a bad thing. I'm sorry to have a comment, but it's not my comment. Okay. It's get absolute URL is poorly defined and poorly named. It is too late to fix it for JNK 1.0, but we should rethink it for JNK 1.1. I knew, I must say it's Jacob here. Yeah, I'll let the other, or the real Jacob, I guess. Comment on that whenever he wants. Okay, that's all the time we have. So stick around for the Microsoft winners being announced.


Okay fellow buddies I had to come back and do a separate intro because literally something just sold with my buy one get one 25% off promotional offer. I sent that out to I think I sent that out to my followers and BAM! I got this sale right here. So coupons do work. I'm excited to see where this goes. Definitely send these out to your buyers and your followers, past buyers and followers and I show you how to do that in this video. I also show you how to create different types of coupons. So stay tuned super excited let's get started. Okay fellow buddies in this video I am going to teach you how to create an eBay coupon. Fantastic feature if you're not using it you definitely should be and I just created three today. I don't know what I've been waiting for. I've done it in the past but it's been a long time since I've actually created coupons. So let's get started. Hey fellow buddies thanks for watching. Amazing right? All right let's get started. Okay are you ready for a how to increase sales with coupons? Okay fellow buddies so I wanted to create a store coupon for all of my viewers. So anybody that uses code Bolo Buddies when they check out in my eBay store will get 20% off. So at checkout just put Bolo Buddies there where it asks for the coupon and you should be good to go. Now if you use best offer or if I send you an offer that coupon does not work. So you also have the option to just make me an offer and if you do just put in the notes of the offer Bolo Buddies so that I know you're from the channel. But what I want to do in this video is teach you how to set up a coupon I set up three separate codes today and I'm going to show you how I'm going to use those coupon codes in different areas. So let's get started here. I'm going to screen share and I am on my overview page and you're going to go to marketing promotions and you're going to click on that.  I have three different codes going on right now but let's just I can make up a pretend when actually you know what yeah let's just do a pretend code. Let's go with Bolo Buddies Rock and we are going to make this let's go down here let's see some other options are buy one get 120% off okay let's do buy one get 120% off and I already have this going on right now but that's okay I think I have buy one get 125% off so I am going to go over here and I'm just going to make this easy and I'm going to hit copy and I'm going to put it right here. Okay so now I can make this a private coupon anyone can use this code but it won't be posted on ebay it's yours to share however you'd like so what I'm going to do with this is I am going to make a code specifically for my Bolo Buddies users and I already did this and that code is Bolo Buddies this one is different a public coupon this will show up on your ebay and I'm going to show you that here in a second also I'm not going to finalize this coupon I'm just giving you an idea of what you can do if you just want to do an extra 20% off you can do that but whatever you end up doing put that offer name right here. I then went in and made like a little template so when I added a photo I picked like this one here 20% off with code Bolo Buddies and that's going to show up right here I'm also going to copy this extra 20% off and I am going to put at checkout with code and then you can see over here this is what people are going to see Bolo Buddies Rock which is really going to be Bolo Buddies for this one all inventory okay you can decide do you want to do specific ebay categories do you want to do your store categories so what I do is I go in and I click all the boxes except for my husband's items because I don't want to put his stuff on sale because he has his separate stuff so he has 29 items listed that is under special fines so I'm not going to click that box and those will be excluded so 29 items are not involved in the sale that's it I don't want somebody to see these brawls I want them to see this code so then you can set maximum savings you can there's lots of little options here and then it gives you your coupon summary right here okay at the bottom you can set your start date which you know most people are going to pick current and then you can click an end date what I did is I just went as far as I could go and that will be how long my coupon is good for okay so then you hit launch coupon and your coupon is active now I don't want to say this I'm going to go in and show you here my coupons so if you look here I'm going to hit edit this one right here is bolo buddies 20 off so this is a private coupon for my subscribers or Facebook members anybody that watches my channel they will know to use this private code bolo buddies all one word at checkout to get 20 off their ebay purchase okay so there's one of them I have to tell people about that one the next one is right here it's 15 off now this is coupon bolo with olo which is the name of my ebay store so I have it right here extra 15 off and I made my little picture and then what I can do is um I filled out all the special item specifics and stuff like that who gets to see it what items are a part of it and then if I hit update it's just going to go back to the screen now here's the next one I did now this might be something that you all want to do because those two um was that one private yeah the 20 percent off or the I'm sorry the 15 percent off bolo with olo I can send that out to my followers and um people who have purchased from me in the past now this one right here let me show you this this is if you want it to show up in your store the coupon code is bolo coupon buy one get one 25 percent off this is a public coupon okay so again I put in my store categories to exclude my husband's items I made my little thing this is good until 412 of 24 so update right there now let me show you I am going to go into um let's see my store here and when I click on this item right here you are going to see buy one get one at 25 percent off with code bolo coupon they will click on see all eligible items and then it is going to take them into my store and they are going to know that all of these listings can be applied to that when they add them to their cart so that is a great way to drive customers into your store to buy more than one item this can be anything you could have 25 percent off with a purchase of two or more items you can have 20 off with code bolo coupon whatever you decide to do is completely fine you can tweak it however you want now let's go back and I am in my seller hub you are going to go to markdown manager and once you are in markdown manager you are going to go over here to buyer groups okay so I want to send this coupon to my followers so I'm going to hit get started now it says who do I want to send it to length of time following new or any duration I want to do any duration so that is anybody that has clicked that heart on my ebay store I can send them a special offer any buying status haven't purchased have purchased I don't care any doesn't matter if they follow me I'm going to send them this coupon group name I would just put followers here I already did this so save buyer group I can do it again I suppose and then it's going to pull up this buy one get one 25 person off bolo coupon and it's going to tell them that this offer is valid from this time to this time and then you can tweak this this is the message that ebay puts we appreciate your support as I thank you of being a customer here's a store coupon just for you I put um I don't know what I put but I sent that coupon you hit send coupon and that is going to go out to all of your followers okay so I think I have yeah right here your followers 2,361 and I probably have more followers because I've had an account since 2005 and I also have a youtube channel so people have a tendency to probably watch what I'm listing now increase your base of repeat customers with targeted coupons get started so more than 31 days um more than six months ago so most recent purchase let's see more than six months ago less than 31 days so I would want the most select categories so I would go with specific categories and I'm gonna oh no wait that's not what I want to do cancel I don't know what this means we'll just leave that alone all inventory group name so I guess I could just put buyers here I have not done this yet so I'm kind of checking it out now buyers last purchase more than six months ago actually I want this to be less I don't know I'm trying to figure out what that means last purchase less than 31 days so do I want old customers or new customers I really want any any customer more than 31 days more than three months okay so I'm going to go with more than 31 days and then category all inventory and I'm going to hit save buyer group now it says buy one get 125 person off volo coupon so um these are going to go to people who have purchased from me so um thank you for your past purchase use coupon olo coupon oops check out to let's do this actually let's just copy this this makes more sense um thank you for your purchase paste come on didn't work let's try that again there we go I'll put special offer and I think I already sent out the other offer I'm not going to send this coupon because I already sent out uh volo with olo extra 15 percent off to my buyers so I don't want to be annoying and send two in the same day even though they are different offers but that's how you would set it up and then you would just hit send coupon and then hit done so those are three different types of coupons and then you can also manage your groups right here um of different things that you have done in the past and you can create different buyer groups it's really really a great feature to bring back repeat customers or engage with your followers so I hope you guys found this helpful please let me know in the comments if you have any questions again I wasn't planning on making this video but I was like you know there's some things that I didn't know about and I probably should have done this a lot sooner I did link um my ebay store I'll link those down in the description of all my videos and I'll also include that coupon code reminder it's just bolo buddies all caps and that gets you 20 percent off again if you want to use the make offer you can use that instead just put bolo buddies in the notes section if you want to offer um like a deeper discount than the 20 percent that has always been available to my viewers um no pressure to buy I'm just wanted to teach you guys this and I wanted to offer that coupon in case there is something in my store that you would like to purchase I appreciate all of the support thank you all so much for watching go check out one of my bolo buddies videos where I talk about bolo items items to be on the lookout for items you can buy low and sell high thanks for watching


In today's video, I was sent a mystery box from the EX Gamer. What's up, guys? We are back with the summer of EX Gamer. If you guys remember last year, he sent us four large boxes to open up. There's somewhat of mystery boxes. We're opening these up for him. Last time we pulled an ancient fairy dragon, Ghost Rare. I don't know what the goal will be this time. Last time he had a whole like thing we were trying to achieve. So we're going to open this up and find out if that's the case this year. All right, we do have an intro card here. Let's see it. Literally a card. It's literally a gift card. Thanks. Thanks, EX Gamer. All right, let's see what he said. Hello, everyone in the Ruxen 34 community. It's good to be back today to bring you this year's card opening. Unfortunately, there will be three openings for me this year. I know I feel like I'm letting you down. But this year, we are facing no ghosts from the past three. Yeah, big side. But hey, three openings is going to be amazing. We have three different videos. Considering this, I feel obligated to make these three openings bigger. So sorry to the editor. It's going to be a long one this year as a special opening. I've made a big surprise this year with special events in each one of the openings. However, the last opening I will reveal that it is a PSA grade reveal and it holds a special meaning to be for this community. If you think you know what it is, take guess the comment section and same to you, Ruxen, make a guess. I think that he graded the ancient fairy dragon ghost share that we pulled last year and that's probably what he sent in that third box. So I'm pretty confident about that one. I will tell this a hit. It is not a ghost card. Never mind. There goes my guess. I thought that it was a ghost card. It is not for the giveaway. Just hit the like button and be subscribed to the Internet to the giveaway. Thank you, EX Gamer. There will be a giveaway in this. This year's card search will be wider because we'll be looking for the secret ultimate ghost rare and finally the newest edition at a Starlight Rare. So let's hop right into the opening, you guys. He's like talking like me. All right. So special event one. Here we go. Let's find out what it is. Let's get through these and we can get to the opening. It is going to be a longer video based on what I've seen. We have another note. Okay. Welcome to the first event, which is the ghost pepper challenge. Whoops. Sorry. Rux and auto correct meant to say is Ferris challenge. Okay. Yeah. No, no ghost peppers for me. I'll pass. Don't worry, Rux. And I wouldn't give you a ghost pepper this year. Oh, I'm going to watch out for next year. Today we'll be faced with the toughest challenge that even the community will have a hard time deciding who will win this match. Bag A will be ruxen and bag B will be reveal your opponent. Okay. There's an opponent to reveal now. This is insane. All right. Final card before we get into the opening, my opponent find out what this means. I don't know what he means by my opponent, but we'll find out. Who am I battling? I guess. Okay. We have Sir Ruxen. Oh, Sir Ruxen has returned. So prepare this open. What does it say exactly? That's right. Your opponent is going to be none other than Sir Ruxen at night. So prepare this opponent. Couldn't be more poetic. Wow. Sir Ruxen versus Ruxen in this battle. It's kind of like Yu-Gi versus, I guess he fought Yami Yu-Gi at the end. That's what's happening here. Okay. Here is the giveaway he's sent. It feels like a special edition. I think it's a little bit too big though. So I don't know. It can't be a special. I don't know what this is. Oh, it's a magnificent Maven's mini box. And then we have something that is rubber banded together. It is some singles. Uh-oh, they're falling out. Then we have a promo. Elements will hear a wild heart. The error, no secret rare foiling. And then a cash tier of finnerier. That's a nice dabble ultra rare. So that's a very good giveaway. Just enter this by liking the video, be subscribed to my notifications. Let me know down below. What do you think about EX Gamer's box and who will win? Sir Ruxen or Ruxen? Okay. Here we have bag A. This is for Ruxen. And then we have bag B, which is for Sir Ruxen. Okay. So we're going to start off with bag A. Well, I guess we'll probably look at every, no, no, maybe we'll just go Ruxen first. See how he does. Okay. Let's see what is inside bag A. Oh, is this mystery packs? He sent us our own mystery pack. Ruxen pack 2.0 if situation. Ooh. Oh my gosh. EX Gamer does it again. He sends us back our own mystery packs to open for him. Let's see. Golden ticket for auction series ticket. What in the world is this? And the off chance you pull a golden ticket, I'm giving it to any mods of any platform, take them. If multiple want them, they're going to master duel with Ruxen as an observer. He's giving away. If you get the guess that price thing or if we pull the guess that price thing, that would be insane. These are not mine. EX Gamer sent me these. He bought them. Okay. So because they're mystery packs, let's just see what's inside bag B. Okay. What is, what is Sir Ruxen going to be opening up? So Sir Ruxen also has, wait. These are the OGs. He has the OG mystery packs. He's been saving these. What a legend. These are the first mystery packs. He's got 1.0 and 2.0. And then he's got a ton of 25th anniversary dark crisis packs. Oh my goodness. This is an interesting battle we have here. This might be a lot of fun. What are they wanting out of here? A dark crisis. Trying to pull that Zodian Necrus EX Gamer? He also put a bunch of other boxes in here that we're going to save for either another video, maybe even a live stream will open those up for him. Cause this is already going to be a super long video. So we're just going to do this and save those for later. Okay. So I guess what we do is we break into the first mystery pack 2.0. Dude, this is going to be fun. Oh, we got a purple. Wait, is purple good or bad? I can't remember. I can't remember. Let me look. It's my own mystery bag. It's not good. Okay. I should probably know that. Why was I thinking purple was good? There's so many of these mystery packs out there, but ours are the best, obviously. Okay. Let's see what packs we got and if they are awesome. Let's see if we can get any free booster boxes for EX Gamer either. Cause that's something that you can get in the Ruxen 34 2.0 mystery packs. Rage of Raul, we have Bowser Legend Crystal Revenge. We got amazing defenders, which got a lot better. Megaton 2021, not the best Megaton, but it's okay. Ghost of the Past 2. We do have some EX Gamer. We have Ghost of the Past 2. Not three though. All right. First pack. Can we make our money back out of my own mystery pack? Let's see if we can do it. We're not going to do any crazy pack tricks today. We want to pull a Starlight Rare and Ultimate Rare. We're trying to pull all the Rarities for EX Gamer. This is super rare, first super rare pulled. We have officially done that for him. Good stuff. We have a Rage of Rock. Ghost Rare could be pulled right here. Could be pulled right here. Let's make it happen. We have a Jynzo. We have a Jynzo Jector holding arms. Here we go. Wing Dragon of Raul. No, but an Ultra Rare, our first Ultra Rare. So we've knocked that one off the list. Very nice. All right. Topaz Tiger. This is the best chance of winning the Starlight in terms of ratios. It's one every case. So you could actually get one here. G Golem Rockhammer. We have the Samoon, the Poison Wind. Fusion Destiny's Secret Rare. That's a beautiful secret. Okay. Good stuff right there. Amazing defenders. So far nothing insane. We've had some decent pulls. We got the Tithe Flowsion. We got the Map. I think it's next. Oh, no, wait. Oh, oh, we got something. We got the Ancient and Ascended. And rescue ace, Hydrant. Very nice, Hydrant. Okay. Cool stuff. So that's actually pretty hard to pull those out of collector rare packs. So pretty good, 2021. So far we're doing pretty well in these openings. Nothing insane, but a lot of like, you know, foil pulls. Fury, we have AIQ. Raid Raptor. We have Soldier Gaia. Speed Road Block and Roll. The Drytron Gamma, El Tenin. Super Rare. Another Super Rare. We have a Uriah, Lord of Scenery and Flames. Very nice. A Ghostmourner, Moonlet Chill. And Trabrogate Shurig. Okay. Honestly, pretty nice stuff there. And finally we have a Ghost from the past too. So far, I don't know if we're up yet on the score, but we might have a few dollars added so far. Advanced Virtual Art. Doom King, Balderock.  So no Ghost are out of there. That feels like a, is that a Euro Ghost from the past year pack? I think it is. Okay. Let's open a couple of these Dark Crisis before we go to the purple pack here. Purple pack could be epic. Let's see if we can get something. We have, let's get an Exodia Necross. Spell Vanishing. So actually, this is the rarest of the 25th Anniversary's because they didn't get a booster box. So you only get these out of Legendary Collection. So Dark Crisis going up, right? You know what I'm saying? A little bit harder to get. Contract with Dark Master. Maybe that's what EX Gamer was thinking. Our purple packs, by the way, can have Tune Chaos and they can have Battles of Legend Armageddon. So could you get the 10K Dragon? I know somebody actually did pull a 10K Dragon out of one of our Mystery Packs. They also got a gold pack in the same thing. So it was pretty insane. Earn their same purchase, I think, because then they would have to be in the other ones. But here we go. Let's see. What can we get out of purple? Give us Tune Chaos. I would prefer Battles of Legend Armageddon, I think first, and then Tune Chaos. And then there's others as well, but those are the big ones. Doesn't, no, no. Oh, Dark Illusion. That's pretty cool. First edition? I don't know if I've really opened very much at all of this at first, Dad. I've opened some Unlimited, but it's kind of a hard set to find. Let's see. We've got Paleozoic. I don't know where the foil's gonna be here. Totem 5, very, that's kind of a cool looking card. I like that. We have Empowerment and Jitsu. We got a Triment Pulse. Oh, and a Pot of Desire Secret Rare. That's actually a crazy card. It has had a lot of reprints, so this is the original Pot of Desires first edition. This is probably the best card in the set.  That looks insane. What an awesome pull. Pot of Desires, Ruxen 34 Mystery Packs and Saseado. What an epic collab right there. That is a heck of a pull. Wow, that is, I think, the best card in the set. Incredible Pot of Desires. That is nice. So it looks like Ruxen is beating Sir Ruxen. I'm getting confused which side I am. You know, the multiple personalities is getting to me at this point, but I'm pretty sure that's a Terri King Archfiend. So everything on this side is Ruxen. All right, one more Dark Cry... We're actually gonna need to open a lot. There's a lot of Dark Crisis Packs. There's a lot of them. So we're gonna probably have to open a few more of those. You have Dark Scorpion, cool. Let's open a couple more and try and get Exiledian Aircross. This is a lot of Packs. EX Gamer also has another five booster boxes that he sent in this box. So if we did that, it would be like an hour long video. So we're gonna save those. One of them is actually an older box, so we're definitely gonna open it at some point for EX Gamer. Here we go, morale boost, but we're gonna do the idea. Oh, it's Exiledian Aircross! We did get it! I was like, oh, maybe we want the Aircross. Well, if he did want it, he now has it. Exiledian Aircross, ultra rare. Shout out to Ex Gamer. By the way, if you don't know Ex Gamer, he is a frequent member of the YouTube livestreams of the Twitch livestreams. See if we got anything crazy. Okay, purple again. Okay, so it's gonna be 2016 to 2022. Unfortunately, we didn't get anything above that, but last time we got a secret pot of desire, so we went pretty well. All right, what packs do we get? Let's see how much different 1.0 is from 2.0. They are very similar, you know, because we used a lot of the same packs, but we have a 2021 Megatheback, Magical Hero, Ghost of the Past 1, Synchro Storm, Blazing Board Dex. Two is better. I mean, we improved it.  I mean, based on these two sets of packs, the 2.0 is just better. Which is good to see. That's what we want it to be. We want 3.0 whenever that happens to be even better than 2.0. So hopefully it will happen. We have a Ataman-Spader, Melthy, Resonator Command. We have a Battle Survivor, Uprising, Goki Guts, Magical Hound, Infernoble, Triburgate, Farage at the Baron Blossom. Not bad. We have a Mahama and a Reshadal Windy with Brigham, the Glory Dragon. Okay, good stuff there, Jack O'Bolen. Good stuff for SirRoxan. SirRoxan34 is here. We're just opening it in honor of SirRoxan because honestly, I mean, SirRoxan, if he was here, you know, you would be able to tell, but this is in honor of SirRoxan34. We have a Geertown, we have Mindmull, we have Emergency Teleport, very nice. Time Thief, Chrono Quarter, and Orbstrader Return, very cool. Nothing too crazy there, Synchro Storm. Look, the good side about this, you can pull a Ghostrare. Baron has been reprinted at this point though, so his value is not gonna be as good. Didn't get it anyway, so no big deal. Speaking of pots, we got Pot of Desire. Let's get that pot of prosperity real quick. Let's see if we can get that Starlight Rear. Come on, we have a Warrock Gapdos. And finally, King's Court. Look, he never said Secret Pharaoh's Rear is as part of what he wants, but I'm sure he wouldn't be disappointed. Let's find out. We have a Magnet Induction. Okay, yeah, the 1.0 pack didn't do nearly as well as the 2.0. Let's open a couple more Dark Crisis, then we'll get into our purple pack right there. Here we go, we have a Morale Boost. We have a Contract with Dark Master. Second pack, see what we can get for EX Gamer. We've already pulled some pretty good stuff for him. Exodian Nekross, there's a Madura. Not bad at all, the Pot of Desires was sick.  Literally never pulled it. So that was the first time ever. Dark Flare Knight, good stuff for Dark Crisis. I feel like he gave Sir Ruxen a huge advantage, giving so many Dark Crisis packs. He had like 24 Dark Crisis packs. So he got two packs plus 24, two Mystery Packs. So he gets seven each and then 24. So he ends up with 38 packs. And regular Ruxen only gets 21 packs. Just throwing that out there, regular Ruxen getting screwed again. Here we go, just like Guess That, Price with SEMA, Battle Scarver and a Battle Scarver. We have Outstanding Dog Marin. One more Dark Crisis, we're gonna open this Purple Pack so we can get, if we even get a Silver Pack, I'll be happy. One in five, we have five here. So I guess ratio would on average give us one. We have a Tsukiyomi, but you know how ratios work. Purple Pack, here we go. Give us something big. I mean, that Pot of Desires was sick. It's gonna be hard to top, but I'm down to attempt to do that. Finally got it open. Oh, there we go, Armageddon. Can we get that 10K Dragon? Imagine if EX Gamer has just had a 10K Dragon sitting in his Mystery Pack for this long. Here we go. Let's see what we can do. Come on. Invoked colleague. This feels like a Euro Pack. Plancer, which it is. If it wasn't a Euro Pack, it would have been at the front. I just realized that. It's all man great, sunlight wolf. We have a number four and an armored white bear. Okay, not that cool, but hey, cool pack too. All right, time for Mr. Ruxen to return to the stage. That looks like Purple again. We're getting purpled out. It's Purple Central here. Oh, we got something. Congratulations, you won a factory sealed booster box of the newest Yu-Gi-Oh Core set. Please email us with a picture of this coupon and get a box sent to you. EX Gamer, you won a free box. So that's pretty cool. Got a free booster box included. Well done, EX Gamer. So we've added more value in the Mystery Packs. I love that, I love that. Let's see what we can get out of 2022. This is a much better one. Much better than 2021. There's some really good stuff in here. We have a, I mean, they're all pretty good, but this is much, much better. We have Oda, Damishi, Damashi. We have Arm Dragon, Level 10, and Lincoln to the Brains. Okay, nothing too crazy in that pack. It is a good pack, but we didn't get anything there. Ghost from the past one, no ghost so far. I believe we can do it though. I believe we can pull something crazy. It is not a ghost. What is EX Gamer's PSA card that he's sending back? Laval Archer, okay. I'm wondering what it is. I'm guessing it's something else we pulled. Gotta go back and review the footage, see what we pulled.  That was also a ghost, I think, wasn't it? All right, here we go. We have Batch, okay, Dark Magician. No, no Dark Magician. Okay, that would have been cool. Power of the Elements, Unlimited. Okay, Power of the Elements, Unlimited. Haven't opened this before. We have a Sprite Jet Super. We have a Sprite Pixies, okay, Sprite Stuff. And finally, Ancient Guardians. There's some cool Collector Raising here. Get that Skullmeister. That'd be pretty sick. Let's see what we can get. Okay, the Odoa to Grimnet. Okay, so nothing crazy pulled out of that one, but before we get into this, we do have a couple of Dark Crisis. Can we get Double Exodia Necrosse? That was one of my early videos that I was super hyped about where we got Double OG Exodia Necrosse. It was really cool. Battle Scarf with Geometryia. All right, let's see. What else can we get? We have a nothing, Sakuretsu Armor. Good stuff, good stuff. Few more DCR packs. Let's see what we can get. No Secret Rare yet, just sayin'. No Secret Rare, which it seems like they might actually have increased the Secret Rare rates based on what I've seen recently. Percent Dragon, nice. That would be the only change, I think. Maybe the Ultra's a little bit. Here we go. Can we pull a Secret Rare? Not judgment. We're gonna pull the Vampire Lord. Give us that Vamp. All right, after this one, we're goin' for the Purple Pack. Let's see what we can get. We have a Token Thanksgiving, a Sook. That's a good card. Arsenal Robber and Sakuretsu Armor. All right, Purple Pack. So far we've gotten a Dark Illusion. We got Battles of Legend Armageddon. And finally, what else will we get? Ooh, another Armageddon. That's cool. So we got one out of the 2.0, one out of the 1.0. If this is Euro, I hope it's Euro. Let's check the back. It looks Euro. I'm gonna trust it. We have Junk Archer, very nice. Number two, Numerangate.DBE. We have a, at number one, we have a Mecha Phantom Beast, O'Lion, and Dark Spell Regeneration. So, within' out on those Battles of Legend Armageddon. But maybe next time. Okay, time for 1.0. I can't believe he has some of these. Sealed. That's crazy. Hang on to it. We have a Purple. Okay, more Purple. We're gettin' purpleed out. Let's see what else we can get out of these packs. We have 2021. We have Magical Hero. We have Ghost of the Past 1, Synchro Storm, Secrets of Eternity. Interesting. That's kind of an older pack. And then a Grand Creator. So a little bit of variance there. We changed up a little bit. 2021. We have Magical Broker, Curse Dragon. Curse of Dragon, the Curse Dragon. Very cursed. We have Chaos Summoning Beast. Super. We have Titanicider. Tribegate Fractal, very nice. We have a National Aerial and a Reshidal Windy Shari. Rookie for hire. Okay, a lot of cards in there. None of them are too crazy. Fractal is not a bad card. Magical Hero is his first dead. It is first dead. Oh, cool. Let's get that Soul Servant. Let's pull it. We have a Jet Synchron. We have a Satellite Synchron. That is not a Soul Servant. But we tried. We tried. Not bad. First dead Ghost of the Past 1. Can we get a Legendary Dark Magician? That would be absurd. Here we go. We have Fair Tales. Starry Night. Starry Night Balefire. Okay. No big deal. Get a Ghost Girl right here. And Synchron Storm. Synchron to the Storm. Stardust. We have Necro. We have Flulet De Flue. Okay, super rare. Let's do these Grand Creators. Let's try to pull Water Enchantress right. Any of the punk stuff. They're all pretty good cards still. Oh, never mind. Pick a Felina. Which we did use in the Picaniel Maltek. So, hey, this card's not bad for insects, aka Picaniel Malturbo. Secrets of Eternity. Here we go. What can we get? Super Heavy Samurai Ritual. Raid Raptor. We can get a Ghost right here. Or Ulti. Infernoid. It's a way of night. We got nothing. We didn't even get a foil because they're not guaranteed. But, hey, Secrets of Eternity. Old pack. That's fun. Let's save those Dark Crisis for after this. Let's reveal what this is. Will of the Tomb Chaos. That's one we haven't seen yet. These are kind of hard to open. We have a, ooh, Flames of Destruction first add. So we could get a Infant and Permanence or we could get a Ghost Bell in here. Which are both pretty awesome secretaries that I've never pulled. Oh, I'm just throwing that out there. Let's see if we can pull it here. FA, Dead Heat. We have a space. Iron Dragon. Tiamaton. I didn't know that was gonna come up soon. So soon. Very nice Ultra Rare. All right. I don't think it's worth a lot because it's pretty old set, a lot of reprints, but some really cool cards to pull in there. Dark Crisis. Then we're gonna go to Mystery Pack 2.0. See who is gonna win. I don't know if Ruxin or Sir Ruxin is winning at the moment. Cause with the pot, he has the Exodian Necroth. So it's gonna be interesting. Sukiyomi, all these Sukiyomi's though, we're actually adding up. Looks like a two or three dollar card. And let's all these reprints have, I guess there's no booster box at Dark Crisis. So it won't kill it too bad, I guess. Oh, a secret rare, Vampire Lord. Yes, we asked for it. We said no judgment of the numus. We won the Vampire Lord. We got it. We got the best two cards, Vampire Lord and Exodian Necroth. Wow, Dark Crisis is really, really being good to us. I don't think it's worth a ton, the Vampire Lord, but still a really cool card. No way. Back to back secret rares. We got the judgment. We said we don't want it. We got it anyway. We got both secret rares in two packs of Dark Crisis. That is insane. All right, one more pack of Dark Crisis. Then we go on to the Ruxen Mega Mystery Pack 2.0. Here we go. Ray of Hope. We have a different dimension dragon. That's a super, very cool. So Ruxen is done. That's where Sir Ruxen scores right here. Ruxen, if you're behind, you gotta make a comeback right now. If you're ahead, you're just rubbing it in. Oh, it's all purple packs for Ruxen. You know what? I mean, it's for EX Gamers. So technically we wanted to pull something, but you know what? EX Gamers is a generous guy. I'm sure he's happy to let everybody else pull the good stuff. Not that we haven't pulled them good stuff so far. We're gonna save that for the end. Let's get our last few packs. This is gonna be a long video either way. So shout out to EX Gamer for episode one. If you guys are interested in the rest of EX Gamers boxes, they will be coming up soon. So make sure to subscribe to the channel. Let's see what else we got. Imagine you're gonna do a list. We got Brows of Legend, cool. And then 2022, very good. Bows of Chaos, let's go. Let's get that Dark Magician or a Starlight Rare. Here we go. We have a Vision with Eyes of Blue and nothing. Okay, we did not pull anything out of that one. Go Sharp, Rage of Ra, here we go. We have, boom, we have Mech Lord. We have a Psychic Shockwave. Okay, nothing too insane, nothing too insane. Amazing offenders, let's get a Collector Rare. Ken Ruxen defeats Sir Ruxen. That is the question. We have a Overlay Regen, that is, that's not gonna help right there. Let's see if we can get Dragoon. Dragoon is a Starlight Rare in here. Ice Mirror, Summon Storm, we have Left Hand Shark, Plyancer, and a number four, still the Kraken, okay. Still searching, last two packs, 20, 22 Megaton. Can you give us a pot of prosperity right here? Dragoon's also pretty good in here as well. Let's see, we have a, okay, a bunch of comments here. I'm trying not to spoil it. Sun Avalon Daphne, we have a Ghost Reaper. We have the Revived Sky God, we have Dark Honest, and Ready Fusion, pretty good card. But I don't think the value's really there at the moment, but still pretty solid. We're ending with a Ghost Share right here. Ghost Share in the past second on it, here we go. Send some luck to EX Gamer in the comments. Shout out to him. Make sure to subscribe to the channel if you want to see more content coming up. There's some good stuff. We have Crimean Attack Megafleet, Martell, Visionary Gravito, Ultra Guys Fileover, and a Crimson Knight Vampire Bram. I don't remember this card at all, not gonna lie. Purple Pack, final chance at something crazy. Will it be awesome? It is a Bowser Legend, so it's our third chance. Third try out of the Purple Packs.  Here we go, Dragon Buster, Artifact Sanctum. This would be a crazy ending. We have Penguin Torpedo. Number one for EX Gamer. Here we go. An Artifact Ignition, Secret Rare. Well, this was a fun opening anyway, and I hope you guys enjoyed it. Shout out to Tomeflow Show, Daxer, JT Show, Puffins of Doom, Ernesto D'Andem, Missycle, America Doyster, Supreme Stage 21, another Thai show, Ian Musa, Junior Barting, and Mimic Echo. Thank you guys for supporting the channel, and I'll see you guys in the next one. Peace.