Part 2 - Rachel Nabors (@rachelnabors)
Published 1/27/2016
In today’s episode, I interview Rachel Nabors, front-end developer, animator, speaker, and writer.
Today's episode is sponsored by Hired.com! If you are looking for a job as a developer or a designer and don't know where to start, head over to http://www.hired.com/developertea now! If you get a job through this special link, you'll receive a $2,000 bonus - that's twice the normal bonus provided by Hired. Thanks again to Hired for sponsoring the show!
- Rachel Nabors Online:
- http://rachelnabors.com
- https://twitter.com/RachelNabors
- http://codepen.io/rachelnabors/
- https://dribbble.com/rachelthegreat
- Web Animation Weekly
- Part One of this interview (Developer Tea Episode)
- Web Animation API (on GitHub)
- SMIL Animation for SVG
- jQuery
- Timmy Willison (jQuery Core Team Member)
- Whiteboard
- 10 Year Anniversary of jQuery
- Greensock
- You Might Not Need jQuery
- Greensock Ease Visualizer
- border-radius
- John Lasseter (Pixar) quote
- Ray tracing
- Ray tracing Disney video
- Motionographer
- "Looking Ahead and Behind" - Rachel's Blog
- Chris Coyier on Developer Tea
Today's episode is sponsored by Digital Ocean! Use the code DeveloperTea at checkout to get one month of a 1GB droplet, completely free!
And lastly...
Please take a moment and subscribe and review the show! Click here to review Developer Tea in iTunes.
Transcript (Generated by OpenAI Whisper)
Hey, everyone, and welcome to Developer Tea. My name is Jonathan Cottrell, and in today's episode, I continue my interview with Rachel Neighbors. If you missed the first part, make sure you go back and listen to it. You can find that episode at spec.fm, or of course, in the show notes for this episode, there will be a link to that first part. Today's episode is sponsored by DigitalOcean, the fastest growing cloud infrastructure provider because of their laser focus on building incredible services for developers like me and like you. We will talk more about what DigitalOcean has to offer later on in today's episode. But first, let's jump straight into the second part of the interview with Rachel Neighbors. Rachel, welcome back to the second episode. I so much enjoyed the first part of our interview, and we could have gone on for much longer, and I had a hard time figuring out. I don't know where to cut that first episode, but we cut it right when we started to talk about the Web Animation API, and I'm really excited because you let me know that you've been learning the API, but you have a fun piece of history to share. Go ahead and share that story with the listeners. The Web Animation API has actually, it's quite a funny, funny story. And this story is probably one of the reasons why I'm not as anti-Microsoft as many, many people seem to be. I actually kind of like Microsoft. I think that Edge team has kind of come in, and they're kind of the staid voice of reason now. So you might not realize this, but your browser might have up to three different engines running at it, depending on which browser and what version you're using. Three different animation engines, one for CSS transitions, one for CSS animations, and another one for Smile, SMIL. SVG animation language. So way back in the day, when Smile was there first, and all the browsers were like, come on, Microsoft, you should pick this up. Microsoft was like, hmm. So then the Safari team came over, and they're like, all right, animations and transitions, implement these now. Well, everybody fell in love with them. So, you know, Microsoft is like, all right, we're going to get them. But before we go on implementing a third, a third, a third, engine, you guys, this is getting out of hand. What we really need is an underlying framework on which all these animations can be run, like all these different APIs. Because look at this. These implementations are crazy. Firefox is doing it one way. WebKit's doing it another way. And this is out of hand. We're not moving on any more animation business until we see some ground rules. Sure, yeah. So Mozilla team. And Google team. They got together, and they started working on this unified web animation API to rule all APIs so that Edge or Internet Explorer developers could implement SMIL. Yay, right? Well, it turned out that it's a huge, huge API, much larger than something like the battery status API, which is quite small when you read its documentation. The web animation API is so large that I have read it several times. And I keep doing it to refresh my brain because it's got a timing model and an animation model and the global clock and timelines and a lot of forward-facing concepts. Right now, the timeline is set by the global clock, right? It has a starting point. But this API leaves room for setting a timeline to coincide with scroll position or something else. So it leaves a lot of doors open. It leaves a lot of room for future versions. And most of the really cool features have been moved to level two, like grouping and sequencing, which I'm so excited about. But they just couldn't go into this MVP. It's big enough already. Mm-hmm, yeah. So by the time this web animation API is shaping up, and it's in Firefox, and it's in Google's Chrome, and everything's starting to look like it's a reality, and Microsoft Internet Explorer is like, sorry, Edge team is like, all right, all right. We're moving it from the maybe we'll be interested in it if you vote on it enough pile to the we will actually get to it pile. Thank you for putting so much effort into this. All of a sudden, Google's like, we're not doing Smile anymore. And in the world. I know. But we do have an animation API out of it. So it's not all a waste. And let's face it, look at the conversations surrounding the web animation API. There are some very tough questions from a developer standpoint here, especially when it comes to dealing with time. This is not something we want to do wrong. So I understand why so much care and attention has been put into it, and it's taken so long. It's also tough because I got to say, at least my perspective has been, there aren't a whole lot of people who work in browser development or spec writing who are huge animation buffs. Mm-hmm. Yeah. So for some people who are weighing in and giving opinions, they aren't necessarily always 100% sure that that's the right way to do it. So it's moving a lot slower than if, you know, say, I guess all the old Flash guys wrote this instead. And it's kind of a pity that they didn't. But all right, whatever. It's really an amazing effort. And I just can't wait to see what it does for the future. I'm really interested in it because I do believe that, you know, animation is, you know, totally open on the web. There's so much that can be done. And so many things that we've done kind of in hacky, you know, not so great ways in the past, you know, from writing our own kind of keyframe stuff with jQuery all the way to, you know, doing really terrible versions of CSS animations, potentially, you know, destroying performance all over the place. But having a web animation API, I think gives us the opportunity to start solidifying better practices. I don't think we even have best practices really totally solidified. But I think we're moving towards better practices. You know, we have a huge number of people who are really interested right now. There's kind of a movement around SVG animation, right? This is a really common thing that people are looking into. And whether you... If you're using GreenSock or if you're doing it yourself, or maybe you're using something like Snap or whatever tool you're using, all of them are kind of created after the fact. They're created not as a part of a fundamental, you know, web browsing thing, but it's something that we've layered on top of the web browser. And I'm really, really excited about the idea of like a global timeline, for example. That's super exciting for so many reasons for the web. We've done so many things. We've done so many things with time on the web without an API for it. We use like the date API for our timing, right? It's like, that's crazy, right? It is. And it's not reliable. I mean, well, speaking of, I just wanted to give a shout out to jQuery, whose animations are going to be moving over to using request animation frame in version three. Officially, they are. Yeah, that's amazing, isn't it? Congratulations to... Actually, Timmy Willis. He's here in Chattanooga with me. And he's the one who writes all of those release notes and everything. So they just celebrated their 10-year anniversary as well. So that's a worthwhile side note. Congratulations to jQuery for making it to 10 years and still being a super thriving community and tool. I still use jQuery. Not all the time, but like sometimes it's a lot easier to use jQuery to spin a project up and use a couple. And I think that's the thing that's really cool about jQuery. It's that you can use jQuery to do a lot of things. And I think that's the thing that's really cool about jQuery. It's that you can use jQuery to do a lot of things. And I think that's the thing that's really cool about jQuery. When you only have limited people on your team, sometimes you got to take the tool that more people have built together. Oh, definitely. I mean, we use jQuery at Whiteboard on pretty much every client site because it is definitely, in terms of lowest common denominator, for junior developers, for example, most of them know jQuery. It is a very common thing to see. Most front-end developers who have been doing this for two or three years, they have learned jQuery out of necessity. And so it has become in many ways ubiquitous amongst most front-end developers. Which brings me up to an interesting comparison. You mentioned GreenSock. We're talking about jQuery and we're talking about the Web Animation API. So sometimes I hear from people, Rachel, is the Web Animation API supposed to replace GreenSock? And the truth is, it's not. The Web Animation API, it should... by passing off these animations to the browser, essentially, this should let the browser make informed decisions about how to optimize those animations for performance. Right now, we just kind of eyeball things with CSS, but if we were to just say, yo, browser, this thing here goes over there, do it like so, it offers whole kinds of room for developers to add improvements and performance. So it's a big, you know, it's a big thing. And that said, this is the API that underlies CSS animations and transitions in the future. Well, it's also been designed to underlie animation libraries. So GreenSock in the future might actually be written on top of the Web Animation API. I'm not saying this is going to happen tomorrow, but that was the intent with which the API was created so that anybody could create their own animation toolset and their own timelines. And it's really awesome that it was made with that spirit. That said, a lot of the things that people use GreenSock for today, sort of like things people use jQuery to do in the past, because browsers could not be trusted to do things the right way. Yeah. For instance, right now, you said SVG animation is hot. It totally is hot. Unfortunately, browsers don't really handle SVG objects well enough to animate them with CSS. But, GreenSock has all these optimizations and takes so much of the legwork out of it for you that it's so much easier to just be like, just slap GreenSock on it and go. It makes so much more sense than trying to do things by hand with CSS and homegrown JavaScript, of course. But I think in the future, as browsers normalize their SVG implementations and the Web Animation API gets its feet under it, I think we're going to see like, what is that? Maybe you don't need jQuery site. Oh, yeah. We might see a... Maybe you don't need GreenSock. Yeah. Maybe you don't need GreenSock. I see people using GreenSock to do some stuff that would be fairly trivial to do with the Web Animation API. And I see people use GreenSock to do stuff that I personally would never use the Web Animation API to do. So, it's my hope that people will learn the best tool for the job, and hopefully we will see some awesome new performance increases and animation libraries on the horizon. You mentioned something really interesting there, and I think it actually... We can prove this point with what jQuery is doing by moving to transitions, right? jQuery previously, you could animate things by, for lack of a better way of explaining it, resetting the CSS, the inline CSS on an item in the DOM. You would reset it a bunch of times over the course of a couple seconds, right? And that's how jQuery animation worked before. And what this provided was... A lot of people doing animation in the browser, right? It didn't set up a spec. It didn't set up a future, you know, this is how animations will work. It created a way to accomplish an effect. However you believe about the performance of those things, it still accomplished the effect. And now we have the transitions that are natively available, and jQuery was a part of that history, right? jQuery is taking... Taking advantage of the new technologies, not being replaced by them. Yes, and that's exactly what jQuery should be doing. Any good tool, really, is if they want to stick around. Presumably they're going to appreciate and take advantage of the new technology that's available. Yeah, and I expect to see the same out of the web animation libraries we use today, GreenSock included. I don't think they'll ever disappear. I think that they'll just get better, and we're going to see more and more amazing features coming out of them. Or, at the very least, we're going to see something that everybody knows how to use, and thus, whenever animating something comes up on a list of... a feature list, there won't be a hue and a cry about it. Yeah. Well, I mean, even if these animation libraries like GreenSock stick around because they provide a way of combining animations together in some interesting syntax, right? Or maybe they provide really extensive... easy functions built in so that you don't have to learn easing for yourself. A lot of this stuff likely, I wouldn't think, isn't going to make it into native browser stuff, right? And correct me if I'm wrong, will the web animation API have many built-in easing options, or is that something that you still have to kind of write your own functions for? It does not have built-in easing options. However, the spec actually has a discussion about leaving the door open for... future easing options. That's what I mean, right? I love the spec. It's so many... Like, we'll just leave this window open in case the caged bird wants to fly back, type spots in it. That's really cool. I love the idea that in the future we might have a native bounce function, or we might just have a little library of easings that we insert into pages and we call them with the web animation API as we need them. Or maybe not. But it's however you want to grow it. Yeah. And really, it becomes defined by what people are making. I really am a strong believer that the demand often drives those features, right? Absolutely. We started discussing this earlier, I think, but the idea that we create this thing, and then now the browser is going to start supporting it natively. Simple thing, for example, border radius. I was around when border radius wasn't a thing in CSS, right? Yes. Like, when you had to do the little PNGs, and you had to set them as spans inside of your div. Yes. Awful. Terrible time. Heavy markup. Heavy markup. But then browsers said, you know what? Enough people are doing this. I assume this is kind of what the discussion was. I haven't gone and read all those boards, but I assume some... Nobody has the time for that. No, I don't. I certainly don't. Somebody might. I don't know. But I haven't gone and read those boards. So the browsers decided to... Look at what people were doing, and then support it in a better way, right? Because how much better of a thing can you make than what people are already doing in their own way? If you support those techniques in an easier fashion, then people are going to take advantage of that. I am nodding my head furiously over here. And even in the Web Animation API, you can see places in discussion where it's like, well, people seem to like using a timeline like this with GreenSaw. You know, maybe that's the established norm. There's this great quote from John Lasseter over at Pixar about how art inspires technology and technology enables art and how the two are kind... They kind of chase each other in circles. Like, okay, rounded corners. Did we really need rounded corners? No. But people who are designing things knew that if they added this rounded corner aesthetic, it would make them stand out ever so slightly. from their competition. Let's just be straight up about this. It was an aesthetic choice. There was no reason, as Flat Design kind of shows us, there's no reason that people couldn't get a buttony look with square corners and gradients. Oh, my God. God help us. Sorry, I'm having flashbacks to Web 2.0 over here. Lens flares. Oh, wow. Yeah. All over the place. But these aesthetic choices to try to stand out and be different from the other crowd, they don't work. They don't work. They push us to try more and different things. Did we need gradients? Probably not, but we have them. And you know what? We do beautiful things with them now. Things that their original designers probably could never have imagined. It's the same thing with CSS filters. It's wonderful. And I love seeing how the web changes with every iteration. Yeah, that is so true. And I would say if there's any world that that is the most true, and perhaps it is in animation because so many different techniques, especially when you're talking about CG rendering, so many techniques can be used to do other stuff with. You know, ray tracing, for example. This is a super powerful thing that was enabled by somebody sitting down and saying, how do we simulate light rays bouncing off of an object in a given space? Or even just perceiving the objects in the space. Yeah, exactly. That is used everywhere now in like a million different contexts. Right? It's an incredible idea that grew out of a simple idea. So for those in the audience who don't know what ray tracing is, not everybody does. There's a really adorable cartoon from Disney that explains it. Just Google Disney cartoon ray tracing. Rays like sunset, tracing like tracing paper. The idea is that if you made a computer simulation of a 3D rendered environment with the sun shining down, you need to take a photo of that somehow. And you do that by simulating. How the light bounces off things. And you have a virtual camera that perceives that light. Unfortunately, this requires way too much computing power to be feasible. But someone got the great idea that you didn't need to measure all the light in the simulation. Only the rays that would enter the virtual camera's lens. And that's where ray tracing comes from. And it's a much more efficient way to capture visuals from a 3D rendered world. It is an absolutely amazing idea. You look at something like a Pixar film. The amount of simulation that's going on there, it really is simulating. And the same is true for many video games. Not all, but many video games. The amount of simulation, the amount of computing power that is happening there is incredible. But it's also incredible how much they have been able to reduce the amount of computing power necessary. Like, that's probably the more, the more amazing part. Because you're talking about frames, like single frames that can take up to a day to render in like a rendering farm. Which is unbelievable. It's an unbelievable amount of computing that has to go into some of these animations. But they've done an incredible amount of work around this stuff. So I say that to say, those technologies are driving so many ancillary things. Right? They're driving the expressive power, the expressive storytelling power of the animator, for example. I'm so in love with the animation community and the things that it makes. For people who are interested in learning more about motion design from the artistic perspective, they should check out this wonderful site called Motionographer, by the way. It is a candy basket full of goodies from animators to educators to 3D artists. And it's, it's well respected in the motion design community. And it is definitely a place that if you don't learn something new from visiting it, you'll definitely walk away with a smile. That's great. Great name, by the way. Motionographer. Oh my gosh. I wish I could think of names that great. I have a newsletter, but I just named it Web Animation Weekly. Oh, that's, I mean, you know, you're fitting right in with the weekly audience though. Well, and basically the newsletter started as a way for me to clean up my tabs in my browser because every time I go to a website, I'm like, oh, I'm going to do this. Every week I would find all these really cool resources on animation, not just web animation, but motion design. Always got a link from Motionographer in there and from all these great resources and places. And I never had time to read them all. And I realized that I could probably get them to people who like me wanted to learn more about animation and buff up on their motion design chops and just learn more about the world around them. So now I have a little weekly newsletter that I use to help organize my tabs. If you want to learn more about animation, you want to subscribe, it's at webanimationweekly.com. And of course, there will be a link in the show notes to that, as well as everything else that we've mentioned on today's episode, by the way. Well, today and the previous episode, we will include a link to that so you can go back and listen to that. Hopefully you've already listened to it. If you didn't, then you're probably out of the loop on some of the things we're talking about here. Rachel, I'm going to take a quick sponsor break and then we're going to come back and talk about your three themes for this year. I know we said we were going to talk about them on the last episode, and we didn't get around to it because we got caught up in conversation, but we're going to talk about it in this episode right after this quick sponsor break. Today's episode is sponsored by DigitalOcean. They are no stranger to Developer Tea, and that's because they are the fastest-growing cloud infrastructure provider, and they're focused on creating incredible tools and elegant solutions for developers just like you and for teams like the one that you may be on. Thank you. Thank you. Thank you. Thank you. Thank you. Thank you. It's easy to deploy a pre-configured droplet with open-source platforms like Node.js and Magento or perhaps Docker. They have a control panel where you can do just a few clicks, and you have root access on an SSD cloud server. It's built to scale. Of course, you can use their API to scale your applications. It's reliable and available. You can select from data centers from around the world, different regions around the world, and perhaps the most important thing is that they have straightforward pricing. You're not going to have surprise fees. You pay only for the resources that you actually use by the hour. There's no setup fee, and there's no minimum spend. Now, if you use the code DEVELOPERT, you can get a free month on a one-gigabyte droplet. That's one gigabyte of RAM, a free month on that droplet if you use the code DEVELOPERT. If you go to the show notes at spec.fm, you can find that code and click on digitalocean.com. Thanks so much again to DigitalOcean for sponsoring today's episode of Developer Tea. Rachel, thank you so much for joining me on Developer Tea. I've got a couple of questions for you specifically around, I guess this is more the soft side of the interview. You wrote looking ahead and behind, and in that article, you talked about a lot of stuff, so I highly recommend that people go and read the article. But one of the things, or I guess three of the things that you talk about are your themes for the year. Now, first, I want to applaud you on this idea of having themes for your year. A lot of people don't think about the year in depth, in my opinion. I think that's a really great idea. But I'd love for you to share your three themes for the year and kind of your thinking behind why you chose these as themes for the year. Well, first off, I chose themes over goals. I do have some set goals behind the scenes, but every time I look back at my sad year end posts, I always, I see all the things I expected to happen that didn't happen the way I anticipated them. And so I thought this year, I would try something different. I would try having some themes that they will help me anticipate and move with any changes or upheavals that might come during the next year. You really don't know what's going to happen over the year, but when challenges arise or when you have a decision to make, it's important to keep in mind the themes that you've set. And I think my first theme was gardening over gatekeeping. Gardening over gatekeeping arose out of many long conversations with Mary Williams and Patrick Nieman. These are two people I really look up to. They are professional business people, unlike myself. But that said, you have to assume that if they're professional business people, they're doing something right or they are an extremely lucky people, which may or may not be true. So anyway, Mary has been through, a lot of things. She's got a really wonderful life story. Well, horrible, wonderful, hard to say. But point is, she is a woman who has overcome and powered through. And I take her advice very seriously. And Patrick is just all around steady, smart person. The point that they were hammering home all year long for me was, I mean, I've been in web animation for a long time and now a lot of people are coming to the party. What kind of role do I want to play? What kind of role do I want to have? Do I want to play gatekeeper and say whose opinion flies and whose doesn't? And my book is the only book, my opinions are the most important opinions, rah, rah, rah. Is that what I want to do? Or is there another way? Gardening, growing the space, helping people communicate with each other, making it less about me and more about everyone. And I mean, that kind of sounds a little woo-woo. When I put it in, I put it in words like that. And for people who aren't in this position, it will definitely sound a little egotistical. That's all right. That's the right reaction. But the truth is, community is getting bigger and it needs to communicate with itself more than it needs to communicate with me. I want to make sure that this space continues to be open, continues to be safe, continues to have lots of good ideas, and that everybody gets the recognition and love and attention that they deserve. So, in the future, when I make decisions going forward, I'm going to try to ask myself, how does this grow the community? Or is this just setting me up on a higher pedestal than the next person? For instance, last year, I started Web Animation Weekly, my little newsletter, at the start of the year. That was my give back to the community. And I look back on that and it's like, yeah, but you're still the one who's curating it, Rachel. You're giving back to the community. You're just giving them your tabs. And those are the only tabs that you saw fit to publish. It's so cool. It's so easy for me to just be like, I don't like this person, so they're not in my newsletter. Trust me, that comes up sometimes. So, how could I make my newsletter more about gardening and less about gatekeeping? Well, first of all, I started by getting a features editor, somebody else's opinion in there, who's not mine. And, okay, that's still, you know, I chose a features editor. How could I do even more? Well, one of the projects I'm working at, and I've reached out to some community members to help set up the automatic, automation of it, is a Slack community for people to interact with one another. And of course, there will be a code of conduct for the community. There will be rules so people won't go in and start trolling each other. You know, I want people to be excellent to each other. That is the community we deserve. But at the same time, this way, I'm not controlling the conversation. People are having their own conversation. I'm just getting the party started. That's a really challenging goal. Because, well, for a few reasons. One, basically what you're saying is, my goal is to make my goals lesser, right? Like my personal goals in some way. And instead to cultivate, which is what you're saying, cultivating a garden. I wouldn't say my goals are lesser. Fostering a community is something like, look, my first website was a Drupal site, and I used it to build a community around the thing I loved while I was in the middle of nowhere. Japanese people, Japanese comics, manga. And I was the steward of that community. Building a community is tough, and not everyone is very good at it. A lot of people don't have the personality for it. But it has to be done by somebody. And if you can help out, it's just a matter of helping lift other people up a little bit more than you're pushing yourself up. And I'm not saying that I'm not going to continue putting myself forward. For instance, I will most likely write a book sometime. But what I'm saying is, when writing that book, I would just say my thoughts about that book have changed so much since putting this gardening over gatekeeping theme into my mind. At first, I wanted to write the tome on the animations, the tome that everyone would reference forever. You know, like the Necronomicon of web animation. And now it's like, no, I think I would want a book that would help people communicate better with their teams. Not a book that they could reference forever, but a book that could be useful to them forever. And it totally shifts the light in which you're thinking about things. One sets you up to be an expert, and the other sets the readers up to be the experts. That's great. You know, that reminds me of something that Chris Coyier actually said when he was on the show forever ago. He mentioned, I asked him, I believe I asked him a couple of things around the theme of what is the best way to do X, Y, or Z. And his response was, at first, it felt a little deflating to me. Because basically what he said was, eh, I don't know. I mean, let everybody figure their own thing out. And that was so, that was kind of like a moment of frustration. As a developer, you're looking for, you know, somebody to lead the way. But so many times, the way that that ends up playing out is we kind of create these pedestals that shouldn't really exist. And people gain that. And people gain this position, or their opinion gains a position. It becomes like, Or they're put in that position. Yeah. They're put in the position where their opinion has become a, like the scripture of that particular, that particular practice. And not only is it the only way, but it also can be hurtful in the long run because we don't update our opinions as quickly as we should. We don't update that position as quickly as we should. Oh my God. It's so true. I mean, pedestals hurt everyone. They hurt the people who are on them. They hurt the community that they're in. They hurt the people who are beneath them. There's a great saying like, you can't put someone on a pedestal without lowering yourself. And I think there's also saying you can't climb up on a pedestal without looking down on others. It's really tough, especially as we see, you've heard probably, it seems like it's the same thing. It seems like it's the same old people at every conference. But then at the other time you hear, we need a couple of anchors or else the audience won't come. I speak at a lot of conferences. I don't know if I'll be speaking at as many this year. Got a lot of work to do. But I hope I'll get out to some. So anyway, it's tough because people want that direction. Like you said, they want that figure of authority that they can look to. And it can, sometimes, even in animation, I do worry because I see misinformation like 60 frames per second is realistic being passed around. And I want to be like, no, no, it's not. I'm on the pedestal. You pay attention to me. And people can figure it out for themselves. If you're not the person who drives it home, someone else will be. The scary thing though, I think, is when people are on the pedestal for so long and they're so attached to it that they're absolutely terrified of it. And they're absolutely terrified of anything that might, I hate to use the expression, knock them out of power, but knock them down. You get so high up, you're afraid to come down. It might break. And so you cling desperately and you can get really defensive. I've seen this in people. And it's unfortunate because you shouldn't have to feel that way. You shouldn't have to feel so self-conscious. You should feel free to change your opinion. You should feel free to own up to mistakes. And we should feel free to hold other people accountable. And we should feel free to say, hey, maybe that's an old opinion. Or, you know, maybe you should step down and let someone else have the mic for a little bit. It can stagnate a community to have too many people on pedestals, suppressing new thought, as it were. And it can also be really bad for the people who are up on those pedestals. Like, you start up a JavaScript library that gets incredibly popular really fast. And before you know it, you're being treated with kid gloves because, you know, oh, it's a person who started that library. And you must know everything. And tell us, how should we do this thing for our library? And, oh man, you're just a human, you know? You just have human ideas. And suddenly the pressure is on. It's, so yeah. It's daunting. And definitely, I'm trying to check myself about this pedestal business. It's easy to do. Like, even Justin Cohn, the guy who curates Motionographer, I confess I put him up on a bit of a pedestal. It's like, he's awesome. But you gotta, you know, just rein it in a little bit. Ask yourself, am I agreeing with this person because they're right? And I think that, you know, I found similar things to be true. Or am I agreeing with them because I've always agreed with them in the past? Sure. Yeah. And that rational thought is so important. I think this is partially an issue with the permanency of our publishing. Right? So it, Oh gosh, yes. It is so common that we, that we publish and that becomes an apocryphal thing, especially if it gains traction, right? It becomes the post about, you know, Clearfix or whatever. Right? That's a reference for all eternity. Yeah. And now who is it? Nicholas Gallagher. He is known as the guy who wrote the Clearfix, you know, or normalize. I can't remember which one he wrote, but, and in a way it's like getting typecast as an actor. Yeah. Oh, I mean, not only are you the guy who wrote that thing, but now, you know, if I disagreed with the way that you wrote it, that is the way that I think you write everything. Like I, I see you in the light of that thing. And so, you know, let's say for example, you are, can't outgrow your ghost. Yeah. You were a flash animator in the nineties and you know, you haven't had a chance to publish since. Well, people are still going to see you as that flash animator from the nineties, right? It's, it is difficult to escape the things that you have published. And that's, that's actually one of, one of the interesting things about your story is you mentioned on the, in the previous episode, your comics that you posted as a teenager, those opinions have changed, right? And the ways that you, the ways that we learn, the ways that we grow, that's not easily reflected in published material. And it certainly isn't easily reflected in, in the minds of people who have read or been exposed to that published, published material in the past. So it's an interesting thing to be aware of, right? I have to be aware of it as a podcaster. For example, there's things that I've said on the show that I quite frankly, like I said previously, I forgotten them and I may change my opinion. There may be an episode that comes out that directly goes against another episode that I had, I recorded a year before, right? I'm not sure. I'm not sure. Right. But that's okay. That's an okay thing. The permanency of our publishing is, is an error in our thinking, in my opinion. It's tough. I mean, that 60 frames per second thing, which I keep talking about is an example. It got stuck in our collective minds. It, it's something that is reinforced constantly when you listen to, you know, Google developer screencasts, but it is patently not true. And if I had written a book about animation, the book to own all books about animation about a year ago, I probably would have said that, and it would be patently wrong right now. And I would have no way to take it back. And I think that's something that really terrifies me about publishing. Yeah. Which is why it took me so long to figure out, do I want to publish? Do I want to just put it all up as blog posts? What do I want to do with that? Yeah. It is daunting because you don't want to, you know, expose like in the major public sphere, and then all of a sudden, you know, a year later, that thing is totally irrelevant, right? It's a difficulty. Okay. So we've talked about that, that first theme. Let's, let's talk about the other two themes that you, that you mentioned in your post. All right. The second theme is cooperation over competition. So I actually really enjoy cooperative play. Last year I worked on this thing called DevTools challenger for, for, for Firefox developer edition number 44. It's a deep sea theme. It's a deep sea themed tutorial essentially, and how to use the developer additions, animation tools. And I had a blast making it, but early on, they made it apparent that this was a six week deadline and there was no way I could do all this work in six weeks. So I had to ask for what I needed. I was going to need some help on the JavaScript. They're going to have to pony up a developer. And I also had to hire on an illustrator to, to actually do the art. You'd think I'd want to do the art, but no, I knew I was going to have my hands full with this. I knew I was going to have my hands full with the CSS animations and just figuring out what exercises and animals we were going to need for this. And I loved it. It was such a great cooperative play. I, it was, you know, both working, working alongside people I super respect and, and adore and, you know, like leading the charge. And I loved it. And I thought I really need to do more like this. You know, early on in your life, you want to do everything yourself. You know, I'm going to make my own comic and animate my own cartoon. And as you get older, you realize there's no way that you can do that and still have everything you make turn out really well. And there's no time. If you want to make something and have it be relevant, you need to learn how to work with other people. You need to let other people take the spotlight. You need to let go of some of the control. That is a, a great lesson to learn. And I, I want to work more with other people, like setting up a Slack community. I'm not going to be in their guiding conversation. I'll probably deputize all the moderation. Yeah. And bringing in someone to help out with the newsletter. I missed an issue. I, it was supposed to have 52 issues this year. It was 51 because I got pneumonia and I was too sick to do it. That's a bad system. I should have people I can deputize the newsletter to. And so I'm just trying to bring in more people to cooperate. I'm trying to ask myself whenever I'm on a project or, or setting something new up, can I delegate? Can I bring someone else in on this? Does it have to be just me alone fighting it out like some kind of a heroic lone wolf, but it's just going to end sadly in bitter tears. And it doesn't have to be that way. It can be glorious for everyone. All of that seems very, you know, let's talk about working with other people and let's work and share together and everything will be magical and pony. So this next one's going to come as kind of perhaps a surprise. My third theme is internal work. So internal validation over external validation. So back when I got into web animation so crazy back in 2013, I realized that I didn't like working the job that I had. I had always been working for companies that didn't want to give me time off to go to conferences. So I got into speaking so that I could go to conferences and have at least some of my expenses covered, at least the ticket, right? Yeah, absolutely. That's hopefully right. And then after a while, I realized that the things I was writing about and the people I was meeting and the work that they were doing, it just all seemed way more interesting than what I was doing. So I figured I'd quit and I go do my own thing and see what came of it all. And I have been doing that for the past three years. And I look back and I just, I see that I have paid a lot of attention to what other people expect out of me, like what people think I should be doing. A lot of my tweets last year were, what do you think I should be doing? Or, you know, let me post this witty opinionated thing to see if it could get some faves. And after a while, I mean, I did a lot of work, but I didn't share a lot of work. I don't feel like I gave back half of what I learned last year. I wish I had. And maybe that was because I was too concerned with what other people were expecting. And I think this year I'm going to spend more time asking myself, does this make me feel validated from within? Or am I doing this so that other people will validate me? That's something I've struggled with probably my whole life. I think it's something a lot of people struggle with and don't own up to, but it's an important question to ask before you undertake something. Am I doing this because it's going to make me feel good? Or am I doing this because I think other people will pat me on the head and that will make me feel good? And I'm not saying that things that make you feel good are automatically things that you should do, but, you should be aware of what your motives are. If you're just doing this to score brownie points, you should at least own up to that before you engage in it. And I think for me, I notice a pattern of doing things seemingly for myself, but they're actually for other people. That's really interesting because I actually have noticed, I've noticed that this is applicable to the way that people manage relationships. For example, if you are like I am and like Rachel is, if you are married, you see your married friends around you, potentially, I guess, assuming that you have married friends, you see their relationship, right? And there is a natural comparison pattern that occurs. And, you know, if you're not careful, you will start making decisions about your relationship based on the way that other people make decisions about their relationships. This is true in a professional environment. It's true in a personal environment. It's true with friends, romantic interests, pretty much across the board, right? For example, in the professional environment, the way that we treat our coworkers or the way that we treat clients, very often the people you are around, you will act like them, right? This is the very common theme in social psychology that the people that you run with, you will act like. And so you have to be very aware of these things. Why do you want to be a part of this? Why do you want to be a part of this? Why do you want to be a part of this? Why are you going to be part of these things? Why am I choosing to treat my significant other this way, or why am I choosing to respond to my boss in this particular manner? And if you start investigating how you would do it without external influence, which may be difficult, if not impossible, to fully suss out, but if you can try to remove that kind of layer of accidental comparison between you and another person, part of my internal validation over external validation thing is I'm doing a little piece of art, some words in a picture every day. It's not necessarily a great use of my time, but it does, it is nice to see that I have this wonderful body of illustrations I can use on Twitter to reply to people with. But one of the things I thought about, because I was thinking about how I was talking with people, and I remember a conversation from some time ago where somebody told me something that was really awesome. And I very pleasantly said, oh man, I'm so jealous of you. And I realized that that made me feel bad because I felt a lot of things at that time. Jealousy was only a fraction of what I felt. I felt happy for them. I felt concerned because, you know, this went through, then they wouldn't be around anymore and I would miss them. I felt a lot of things and jealousy was only one tiny component, yet that was the one I let dominate. So I made a little piece of art where I said, instead of saying, I'm so jealous of you, try saying, I'm so happy for you. And when you say, I'm so happy for you, it completely colors how you took in that whole interaction. That's just, it's one of those things where even just how it comes out of your mouth can change how you feel. But how you were saying that people act like the people who are around them, consider that joke, that office culture. People find some things funny and some things not funny. And some office culture, some things are not funny. And some office culture, some things are not funny. And some office is, it makes a lot of people laugh if you make fun of Flash or you make fun of Microsoft Internet Explorer. That's not necessarily a charitable thing to do. I actually kind of loathe Flash jokes at conferences because they're cheap. And if there are any Flash developers in the crowd, they're obviously not going to share any knowledge with this crowd. They're probably crying in a corner somewhere. Yeah. Yeah, absolutely. Are you laughing and making those jokes because it's going to validate you because other people will laugh with you? Yeah. Is that the only reason why you're making those jokes? Do you have better reasons? Are there better things that you could do with that joke material? So it's just a way of, I think for me, it's a way of examining where you're getting your feeling of accomplishment and good vibes, which I think with all the rest of these themes being so outward facing, you do need a kind of an inside coil. That you can rely on. Otherwise it could just turn into a 2016 could turn into a year of martyrdom. Yeah. I love that. That idea of, you know, being aware and examining your inner kind of drivers, right? The, the pieces that kind of say, okay, what, you know, what was the reason that I evaluated that situation in that particular way? And language is so important. Language is something that you can rely on. And I think that's a really good point. I think language is something that you can rely on. Otherwise it could just turn into a 2016 could turn into a year of martyrdom. Yeah. I think that's a really good point. I think language is something that you can rely on. And language is such a powerful thing. We don't even realize how powerful it is. There's this phenomenon that I've experienced. I don't even know what it's called where I'm talking in the same room as another person and another person uses a word and I subconsciously hear that word and I use that word and I realize it after the fact. And it happens kind of accidentally. I don't know if you've ever experienced this phenomenon, but it shows me every time that happens, it reminds me how nuanced our brains work specifically. And I think that's a really good point. I think that's a really good point. specifically with language. We're born with a way of understanding linguistics that is kind of built into our brains. This is a proven scientific thing that linguistics is a fundamental part of our nature at this point in evolution. And so it makes sense that we don't understand the power of that because it is so viscerally imported into the way we work. It is an incredibly important part of our lives. And so it's a really good point. And I think that's a really good point. So evaluating our language, the things that we say, the way we react in a given situation, that is one of the key pieces of understanding yourself. And understanding yourself is one of the key pieces to, in my opinion, I guess, a deeper sense of purpose and happiness. And wow, I mean, how deep can a developer podcast go? But I think this is kind of the fundamental base level stuff that we have to, regardless of whatever other beliefs you have about the universe or whatever, you know, these are things that are worthwhile investigating for anyone. I agree. It's a part of being human. And I think as humans, it's our number one job. I agree with that. This has been a fantastic discussion. And I'm so thankful that you decided to join me on Developer Tea. Jonathan, it has been awesome being here. Thank you so much. I love tea and I love Developer Tea. I actually had tea tonight. Me too! I don't have it every time. But I feel like, tonight was a good one. I actually had the like Bigelow, which is the, you know, the most easily available tea out there. I had like lemon ginger with probiotics. It was really good. Oh my gosh. Yeah, it was great. Bigelow's changed. Yeah, it was great. Wonderful. Well, thank you so much, Jonathan. It's been awesome. Absolutely. Thank you, Rachel. And thank you for listening to today's episode of Developer Tea. If you missed the first part of the interview, you can find that at spec.fm. Of course, all the show notes, from today's episode can be found at spec.fm as well. You can follow Developer Tea on Twitter at at Developer Tea. You could send in questions to developertea at gmail.com. I'd love for you to join us in the spec Slack community. You can go to spec.fm slash Slack. Of course, that will always be free to listeners of the spec shows. There are plenty of other shows at spec.fm that you should go and check out as well. And of course, all of those can be found on the spec.fm website. Thank you so much for listening to Developer Tea. And until next time, enjoy your tea.