 Hi, I'm AnalyticalD, stickin' in the entertaining and educational coding drag queen, and I'm so excited to join you at OpenJS World. I am a tech education content creator, and I basically just make videos with entertaining code examples. I share my programming journey and help others on theirs. And occasionally I have very snarky tweets about things that bother me in tech. I am so excited to present to you a sickening code example today, but before I start, this might be many of your first time seeing drag. And drag is just a way to play with self-expression, subvert gender, and for me, be very extra and really think into my full personality. It's a staple of the LGBTQ plus community, which I am a part of happy pride, but anyone can do drag regardless of their gender or orientation. I know that was a long spiel, but if the first bidder or so be speaking has grabbed your attention, be sure to stay up to date with all of my glamorous coding content on Twitter, YouTube, Instagram, and TikTok. You can find me at The Analytical, and you can also just Google Coding Drag Queen, and I will come up. I wanted to give you all an opportunity to learn something new through a lens that might be familiar. We're going to do some coding, but then we're going to do some makeup, and we're really going to do them together. Once we get through that, I think you'll have a pretty good idea of my style of content, and we can talk a little bit about the broader scope of content creation, how to not be intimidated by it, and how to bring your own personality into it. I'm going to show you how I made this gorgeous purple eye shadow look today. This is the plan. So I got to go take it off so we can get started, but be right back. Hi, I'm back. You know what? I bet all of you think JavaScript is so powerful. Well, it has nothing on eyeshadow and eyelashes for a drag queen. With any program, we need our packages. We need the materials, and this is really going to be whatever you can get your hands on if you want to follow along. So we'll need an eyeshadow palette, ideally very colorful. I actually have two that we're going to use today, some brushes, some like fluffy ones. If you can get like a flat, more like a flat one, concealer, eyelashes, these are really going to make everything pop. We need the lash glue to adhere them, a liner, and mascara. If you think this is a lot of packages, you know, you don't want to see everything it takes to get this full fantasy, even just up to this point. But through all the materials and the imports for the eyeshadow palette, ideally, if you're going to go try to find one, you can find one that's really colorful. This one's really colorful. Sometimes you got to import a second package to get that one function. And it's like, I really like this one because that's this really nice. There's really nice purple in here. But this other one I have has all these really nice glitters. So it's like, you know, you just got to import both of them with code or with makeup importing another package has its costs with code, you know what it could make your app slower or larger or more confusing to contribute to. And with makeup, I don't know that much room in my New York City apartment to keep everything. There is definitely a cost. And also, you know, to import a package can be kind of free, but like, these are not free. So when I like to represent things in the real world with code, I love to make a class. So this is my eye. Well, it's not my eye. It's an eye. I googled an eye and it has all these parts nicely labeled already. So we're going to stick with it. There's like a grid around like the main area that kind of captures most of the points. But then there are a few points like in the inner corner or maybe up here or like below that aren't captured so they're labeled separately. Let's just focus on some of the grid for now. I made a class for an eye. I threw a 2d array in there for that main eye grid. And then I added a few individual variables just to indicate if the lashes are applied, the liners applied and then a lower lash line color. The grid is obviously very helpful because you know the precise location for where you're going to put everything. But a real eyeshadow tutorial isn't going to be saying, okay, go to index 00 of your eye and apply pink very gently with a small brush. No, no, no. They say, put some color like in your crease or your outer V. So there are a few common areas I've added. So there's the lid outer V inner corner crease in the outer area. Now that we've got the basics of our grid and the areas within that grid and even outside there, let's add a function apply color that will take in a color and an area and use a for each loop to just apply the color to that whole area. We might also want to get the color for that area. So I added a getter here. One last thing before we actually start putting the makeup on. I know we are excited. We just need a print function so we can see what's going on. Check our progress. We're going to keep things fairly simple. We're just going to use the standard print for our 2d array is a template string to print out the lower lash line color and conditionally print if we've applied our liner and our lashes. Oh my God, it's makeup time. I'm going to start out by just making a new eye object. I got two right here, but we're just going to work on one for now. We're going to grab some of this light purple color and just get it all over this like fluffy brush. And then we're just going to take it and apply it all around this lighter area. Now once this is done, we can go in. I'm going to go in with like a bit more of a dense brush. I'm going to go and get this like really the really vibrant purple. I definitely want to be careful with it because otherwise it could get really messy. So I'm just going to kind of stamp that in and I know I said I was going to do this on the whole crease, but I kind of like to do it just on the sides. Now we could leave it like this, but to get a more natural look natural. Well, I guess to get a more polished look, we want to blend these out. So it's time for a new function. We're going to take the two areas in our function. They'll be our inputs. We'll get their color and then again, because it's kind of rudimentary, we're just going to add the strings. Nothing too fancy. So I'm going to grab a new brush and really start to blend this out there. And now that is so much better. It's just so soft and all the edges are really blurred. Now we need to add just a little bit more in depth. I'll pull the darker one from in here. So and I'm going to just apply that to my outer V. It's just being very precise of where where I'm putting things. But like, you know, in the end, if you've got purple over your eye, you're going to look great. You're going to feel great. I will then just blend the crease and the outer V. Now this is looking great. We could stop here, but I am a drag queen. I mean, I've got purple all over my face and purple hair. So I want to go bigger and bolder. And one way to do that is with glitter. But right now there's kind of a lot of stuff going on my eye. So we're going to do a cut crease. It sounds super fancy and it's like a very hot and trending makeup term, but it just means we're going to reset some of our areas. Once the reset, we can apply glitter and have it really pop. We're going to need to add a new area for where our cut crease will be. So it's basically like kind of the edge of the lid and then maybe in the inner corner a little bit. And then we just reset that to an empty string. With makeup though, you just grab your concealer and you can put it directly on your eye or grab your angled brush or any kind of flat brush. And you just basically carve it out and get all that free new realism. There is so much more space and it's so much sharper and defined. Now onto my favorite part, the glitter eyeshadows. You don't even really need a brush or glitter. I kind of mentioned this earlier. You can just take your finger and you get a lot more color and vibrancy when you do it like this. So I just kind of take my finger and tap it on gently. And for a smaller area, you could just grab it on your pinky and it'll be great. Now the final colors that we need to add is just the lower lash line. So I can take, I kind of like to use like a more like firm brush or this doesn't get everywhere. And then I'm just going to go drag it around there. I'm going to go apply my lashes and liner off camera. Do any finishing touches for my completed look. And I'll also obviously do the other eye, but I will be right back. Hi. Hi. I'm back and beautiful. The completed look is here. We just cleaned up things a little bit. I really didn't even do that much on this eye. It's like the power of the lash. But other than that, I just duplicated it on the other eye through on some nails. Here we've also got the final code. And I'm sure you are eagerly awaiting to find out what the output of all of this is. And here you go. I think, you know, it's a tough call of who wore it better. But as long as we're both feeling beautiful, it's fully a win in my books. But yes, I'm feeling my purple fantasy. And I'm also feeling my teaching fantasy. Thank you so much for letting me teach you a little bit about makeup or maybe a little bit about code. And this is what I do. I take something that people know. Maybe it's makeup, maybe it's drag, comedy. For most of you watching this video, it's probably JavaScript code. And I combine it with something new. I take all the things that I love and help people draw connections to things that they love and show that, you know, makeup and code aren't that different. Coding can be creative and there isn't a specific kind of person that can be an engineer. You know, I view the path as to becoming a great engineer or even helping someone become a great engineer as a ladder. Each step might be clear, you know, but sometimes the rungs seem really far apart or maybe the ladder seems really taller. You know, maybe you left your ladder in the shed and don't even know where the shed is. This might be the typical ladder into tech. It's a very easy one or not easy, but it's, you know, a very standard path there. Maybe start with interest CS, maybe do some data structures, maybe an algorithms course, some kind of software engineering or web development course and then get a job. But you know, that only works if you have all the knowledge and the resources available to take that path. You may not even know about some of those courses that you need to take and might get left out. This might be the ladder for someone who's just getting into coding. Maybe they know about, you know, some of the free online resources like free code camp. They think maybe they could take a class, but you know what, maybe they're even too intimidated to sign up for that class because they think they don't have the right knowledge to go into it. And even, even in the intro CS class, the rungs could be really far apart just to get through each lesson. It might feel like you're stretching so far beyond what your arms reaches. And that's really scary. So this is where my content comes in. I fill in the gaps and I help people see a way to keep moving on, keep climbing and also just have fun with it because there's a lot of fun to be had with coding and I don't want people to forget about that. I just fill in the gaps. I don't try to cover everything because it, you know, it would take me forever if I wanted to try to disseminate all of my computer science and coding knowledge in the perfect way. I just pick bits and pieces and help people up that ladder. Even with the tutorial I gave you today, you know what, my code probably wasn't perfect. And maybe you didn't get all the eye shadow tips and the blending and all of that, but it actually got you exposed to the subjects in a way that's interesting and engaging. And I find that it actually gets people to want to ask more questions if it isn't perfect. Someone might say, what if we wanted to do the whole face? How would we represent that? Or could we output an image instead of just that text of the array? Or could we even do the reverse? Take a picture of eye shadow and turn it into code. By bringing in more interesting examples, there are more complex problems, but people are more willing to engage and will also go deeper with their questions. I've helped thousands of people continue on their coding journey and I plan to keep reaching as many as I can. But you know what, not everyone's into drag or makeup or my communication style. You know, my partner and I always say, everyone's different. And you just have to have something special you could bring to the space. But I think all of you have that. Maybe it's a hobby. Maybe it's a point of view, a specific culture, or even it could just be a language that you speak. And I really want to encourage you to try making some form of content and bringing yourself into it. And it doesn't have to be what a standard coding tutorial looks like. It could be a 30 second TikTok about your favorite JavaScript framework or a drawing of different web tools working together and post that on Instagram. We've seen plenty of existing tutorials. I know I've gone through so many and it's really easy to think that they have to be a certain way, but really you could do it however you want. My drag is pretty different than most drag. A lot of drag queens will go into a bar and lip sync, but I make coding tutorials and I don't even do those in the traditional way. At its root drag is subversive and I've taken that into my technical content creation too. So I really want you to see that your uniqueness can connect with people and encourage them to feel welcome and unintimidated by coding. Also, selfishly, doing the work to put together some kind of content really forces you to dive deeper and understand the nuances and explain it well. This is really valuable if you're looking for some leadership opportunities at your job, because if you can teach someone something, that's a really valuable skill. To me though, I'm just sharing how I see the world. I'm not even teaching anything that complex. I look at my eyeshadow palettes and I just see arrays and I want to open people's eyes up. I've been coding for a decade. I've been working as an engineer for about six years and I've been creating this content as analytical for two and a half and I really think I learned the most from making this content. It's taught me to be a better engineer, better communicator and has given me incredible opportunities like being able to give the keynote at this worldwide JavaScript conference and talk about makeup. Thank you.