JS Party – Episode #40

LIVE from JSConf!

with Kevin Ball, Suz Hinton, Nick Nisi, and Feross Aboukhadijeh

Guests

All Episodes

In this special episode of JS Party at JS Conf in Carlsbad, Nick, Suz, Feross, and KBall talk about crazy JavaScript combinations, tips to get started speaking, being committed to diversity as a conference organizer, and much more.

Featuring

Sponsors

RollbarWe catch our errors before our users do because of Rollbar. Resolve errors in minutes, and deploy your code with confidence. Learn more at rollbar.com/changelog.

AlgoliaOur search partner. Algolia's full suite search APIs enable teams to develop unique search and discovery experiences across all platforms and devices. We're using Algolia to power our site search here at Changelog.com. Get started for free and learn more at algolia.com.

Indeed – Indeed Assessments is a remote-first team that operates like a startup within Indeed — and they're hiring. If you're looking to join a remote-first team working on really big problems that will literally impact 100's of Millions of people, head to indeed.jobs/changelog

Gauge – Low maintenance test automation! Gauge is free and open source test automation framework that takes the pain out of acceptance testing.

Notes & Links

Edit on GitHub

Transcript

Edit on GitHub

Hello, JS Conf! How are you all doing? Alright, so we are your live JS Party. Now, JS Party is a weekly podcast; we do a party about Javascript and the web every week, and we're typically doing that live on Thursdays, where folks are chiming in on our Slack channel. This week we're gonna do it live, right here, right now, so y'all better be our Slack channel, and be chiming in.

Shall we sit down a little bit...? I'll introduce myself and the panelists - I'm KBall, I will be your MC today.

I'm Nick Nisi.

I'm Suz Hinton...

And I'm Feross Aboukhadijeh...

And we've got two topics today that we wanna cover for you. The first one we're gonna do is something that as soon as I knew I had Suz and Feross on the panel, I wanted to do...

Oh, no...

I'm calling it Javascript Connections... The idea is there are so many crazy, awesome, amazing things going on in the Javascript world right now, and sometimes it feels like we're all off in our own silos. The folks doing robotics with Johnny-Five are barely talking to the folks over here doing React and Vue and all this other stuff... So what I wanna do is poll the audience for some really cool -- whether it's library, API, framework, something that you're using... We'll get two or three, and then the panelists are gonna live come up with an interesting combination that we can do with that.

Let's start out... Who's doing something really cool and crazy whacko with Javascript right now?

Oh, come on...

Nobody... Silence... Alright, we've got one, yes.

[member from the audience] VR!

VR. So we've got VR with Javascript. That will be our first thing, so we're gonna pull in VR. Anyone else?

[member from the audience] Browser extensions.

Browser extensions. Alright, this is looking good. Shall we do one more item for our first combo...? Yes.

[member from the audience] Home automation.

[00:04:05.24] Home automation, okay. So we are going to come up with a combination that's going to include VR, browser extensions and home automation. Since we're starting in home automation, Suz, do you wanna kick us off? [laughter]

Oh man, don't listen to that episode, it's weird. Okay, so we have a browser extension, we have VR and we have home automation. I don't wanna be super-boring and go with the normal things... So what if you could use a browser extension to randomly put somebody into your house in VR, and then you end up being able to control all the lights, and the air conditioning and everything? So they have the VR on, but then there are all these spooky things happening around it, but because they have the VR on, they don't really understand what's going on, and so they have to do an Escape the Room in VR... And you're using the browser extension remotely in order to kind of like tweak what's happening in their world, so you can keep tricking them as they're trying to escape. That's the best I have.

Anyone wanna jump on that and go further?

I had one idea, but it only has two out of the three, because that was pretty hard... I'm impressed that you were able to combine those three.

It's very hard... On stage... [laughs]

So for the browser extension and for VR, what I was thinking was there's this old program I installed when I was a kid that was sort of like -- it was supposed to make your Windows desktop into like a virtual world; so you could walk around, like a 3D game, and all of your programs on your computer were pictures on a wall in a house, and you could put up a web page as a picture on a wall, and stuff like that... So it'd be cool if there was a browser extension that let you maybe turn a website into a VR world, somehow... So it could figure out what to do with all the elements and just arrange them physically around you.

You could have special ways of showing each type of sites; maybe for a Reddit page it would have a certain way of laying it out for you, or you could walk around physically and look at all the posts, down like a big hallway, or something... I don't know if that's actually useful, but...

We have that on HoloLens now... So people actually do have their operating system as like a house, so I feel like you're on the right track.

To build on that, kind of, and to build on yours, Suz, maybe a browser extension -- when I think of a browser extension, I think of an ad blocker, because that's the main one that I install... So maybe an ad blocker that has to put you into a virtual reality -- maybe an augmented reality world where you have to destroy the ads in the browser yourself... [laughter] So everytime you go and you wanna just look at a news article, you have to first destroy all of the ads in there, but you have to do it before the lights in your house change colors, in different ways...

I thought you were going into more of a capture -- you know how with [unintelligible 00:07:03.23]

That's even better!

...you get thrown into a world and you have to, like, point at the painting of the Monalisa, or something...

That's so much better!

[unintelligible 00:07:11.24]

And as you do this, your lights are getting dimmer, and dimmer... So until you get it, it's getting darker and darker around you...

I've done something like that before, where I had like a chatbot, and the more you interacted with it, it would actually start turning the lights off in your room, and it would also have [unintelligible 00:07:29.24] and things like that... So I just wanna do an extension of that, really. I like your idea the best, I think...

Alright, next combination. Anyone wanna throw out something new?

Don't make it so hard... That one was hard.

Maybe we'll stick with two this time. Anyone out there? What's a cool library you've either learned about recently, you've been playing with, or something like that? Yeah...

[member from the audience] Cryptocurrency mining.

Oh, god... [laughter]

[00:07:57.02] Alright, Javascript cryptocurrency mining. That's our starter. Something else to combine it with? Yes.

[member from the audience] GraphQL. [laughter]

So cryptocurrency mining and GraphQL. Let's throw this one over to Nick.

Oh, man... What's GraphQL? [laughs] I don't know...

Anyone else wanna pick it up?

You could, for people who don't understand ledgers, and stuff, with like -- after you've actually mined the Bitcoins, you could put like a GraphQL interface in front of it and then they could just query it... Which is the most boring scenario ever, but I feel like it's easier than having to -- yeah, you could figure it out with all the local caches somehow...

I'm pretty sure there's a startup actually doing that... [laughter] It's like, a way of accessing random blockchains over GraphQL, or something.

I can't tell if you're being serious or not...

I'm being serious...

Okay. [laughs]

I know that's hard to tell...

That would actually be interesting, because you've got all of these different blockchain pieces now, and cryptocurrencies, and instead of saying "Okay, we're gonna go through an exchange to do that", you say "Well, I'm just gonna throw a GraphQL server on top of it." Apollo handles that, right? Alright...

Should we do one more?

Yeah, let's do one more... Well, maybe two more. We probably have time for two more combinations. Anyone else wanna throw out some interesting, cool libraries you're playing with?

Or browser APIs...

Or browser APIs...

[member from the audience] Mocha.

Alright, a testing framework.

Mocha?

Alright. We have an expert on that somewhere in the house... Yes?

[member from the audience] D3.

Mocha and D3. [laughter] That's pretty fun. Who wants to tackle that?

I can try... I think it would be cool if you run an Npm test on your own library, and then that triggers an Npm test on all of your dependencies, and then on its dependencies' dependencies, and then you can actually see how many tests [unintelligible 00:10:01.12] I think that would look really cool... To see overall just how much stuff is actually covered.

Is the idea behind that like if you're about to publish a new version of a package, you can see all the packages that depend on yours, you can run their tests to see if it's gonna break them, and then if so, you have to make it a major version? Is that the idea?

That's what it sounded like.

That's not a bad idea. I was just doing it for art. My stuff never has a purpose... [laughs] I just want it to look cool.

Yeah... Because I thought about this - I'm sure there's something in Npm that does it, but it'd be so cool to know... Like, if you're about to make a minor or a patch version, and then you're like "Well, wait a minute... The tests of one of the people depending on this would actually break, so let me go and see exactly what broke, and see if they're using an undocumented thing... Do I actually care that it's breaking? Or is that actually an edge case I didn't about and maybe I should make it a major version..."

I know that Node does that. Node has that list of packages, including ones with native modules, and things like that, and I sort of have that test suite... So you're saying being able to have one for your individual library?

For your own library, yeah.

I already feel enough pressure with [unintelligible 00:11:14.07]

You don't want more...

Yeah, but it's good to know. I think that's not a bad idea.

Or visualizing it with the tree thing would be cool.

Npm has started doing some of that tree stuff for security, though it's going the other way; it's saying "What do I depend on?" and traversing down each of those packages and understanding "Are there security vulnerabilities?" and things like that. This would be kind of inverting that and saying "Everything that depends on my library - let's go and run all their tests with this..." You'd need a massive server farm, essentially... Like, kick everything off; okay, go run an AWS for three hours, come back and show me pretty graphs.

Any other Javascript libraries you wanna -- I wanna throw one out... We talked about this once on an episode and I just wanna pit you two off on combining WebUSB with WebTorrents, because I think there's some really interesting things we could do there... Particularly getting around the setup problem and how do we make this something that's truly distributed, or other fun stuff. Do you have any ideas?

[00:12:17.08] I think it would be cool to use torrents to manage firmware versions of hardware, and then you can basically just download your own flavor or distribution for your hardware from WebTorrent, but then that goes straight through to WebUSB to update it on the spot. I thought that would be cool.

Yeah. My first reaction to this combination is -- because there's always people who ask me "Could I use WebTorrent for this crazy use case?" and I'm like "Why would that be better than just doing it over HTTP, other than the cool factor?" [laughter] And often times the answer is just like "Keep it simple. You're already gonna have so many problems just making this work reliably... Don't add another layer of technology." So that's my first reaction, but this sounds really cool, too... Just for the cool factor of it. And I don't know, there's probably other things we're not thinking of, too.

So there's far more distribution that's going one way. The other way I was thinking of is you were telling us when we talked about it on a previous episode how with WebTorrents you actually need sort of a centralized linking mechanism of some sort, whereas with traditional torrents you don't you can be completely distributed. So I was imagining a WebTorrents website that combines with some sort of cell phone-linked USB dongle essentially, where you just plug this thing in, it knows how to talk to it via WebUSB, does a distributed setup, and then uses that to set up your WebTorrents credentials, at which point you could unplug the dongle...

Way better than what I came up with. That's awesome.

That might be why I introduced the topic...

My job is enterprise IoT, so I'm like "Firmware and security updates..." [laughs]

Would you trust a torrented security update?

Actually, that's one place where it does pretty well, because if you know the hash - you need to know the hash - it verifies the content. So if even a single bit has changed, the hash won't verify. And if a peer sends you bad data, you just stop talking to that peer. It's actually pretty good.

The only hard part is figuring out what the hash is that you want to trust... But this is the same problem with all things. If you think about which URLs to go to that you can trust - you go to Google and you type in something and then it tells you the URL, so you have the same problem of like "How do I even discover what link to trust?" and I'm assuming for a firmware thing you probably have some trusted way of getting that update hash to the device.

Yeah, we have a new platform that validates all of that all the way down... It doesn't do it with torrents though... But it would be really cool to do that, because a lot of IoT now is done on the edge, and so being able to have something like torrents instead of traditional always-on connectivity would be really cool.

Yeah, actually -- I've just thought of something... The one case where BitTorrent is used today, a really enterprisy use case, is for doing updates to servers. For example, Facebook does this, where anytime they're pushing out a new version of their web app, it's like a compiled binary (I think) because they use this PHP fork thing that compiles to a binary, and then they need to push it out to like a thousand servers... And if the build server had to send a thousand copies of it out, it would take a while to do the deploy, so they use torrents; that way, once a couple servers get it, they can give it to the next servers and it fans out. So for devices, that actually sounds perfect - you don't wanna have a thousand random devices out there in the field, all getting the data from a single server; you might wanna just have them share with each other.

[00:15:54.11] Yeah, and that's what happens right now with a lot of enterprise IoT stuff, and it's really painful, because you can have devices that will time out, or something like that, and then they have to ask the server again... This actually alleviates that, and it means that you don't have to set several days timeouts on just one job that you're running for like 10,000 devices... So that's why the first thing I thought of was that, just because, again, with limited connectivity, being able to extend that with the torrents is a really cool idea.

Maybe not that useless after all...

Anyone looking for a business out there, it sounds like WebTorrents firmware updates... [laughter] There you go.

Break

[00:16:37.21]

The next section I wanted to do was actually kind of a meta session, talking about community, and the Javascript community in particular, the role of conferences, and a little bit about what we're doing well, because I think there's a lot of things we're doing well, but I thought it would also be really interesting to poll the audience and poll the panel about where do we still have to grow? What are we falling down on when it comes to growing our community and making it more inviting and accepting, but also in terms of how we're spreading knowledge, and that sort of thing.

I don't have a particular place to start that, except maybe JS Conf... One thing I noticed immediately coming here to JS Conf is the opening statement was the Code of Conduct, which I think is a really positive thing in our industry, that we are focusing on everyone's experience, not just the loudest and sort of more traditionally supported experiences.

Other things you all have noticed about JS Conf so far?

I really like the accessibility of things. We had young Nathan in one of the first talks this morning, and it was delightful to be able to actually have people still attend talks as parents. I think that's always been a thing that's run right through JS Conf since the very first event I was on. I didn't even go to the first JS Conf, but part of the appeal was just hearing about how it does allow people to attend who normally wouldn't have the means to be able to, and I think that's really good.

I think that we have a lot of work to do to be able to take those kinds of things back to our local meetups. I think for something like a conference it can feel like worth it to do, because it's high stakes, but I think that with things like meetups -- you know, meetups are still struggling to have the budget to pay for things like captions; meetups are still struggling to deal with parents being able to attend something after hours, which is just not always possible, and even weekends can be quite difficult, depending on whether there's soccer practice, and things like that...

So I think that the idea of JS Conf was to bring a lot of those affordances and ideas and improvements in inclusion back to our local chapters, but outside of conferences I'm still not seeing that at a lot of meetups, and that's something I'd like to see change. I'd like to see us somehow figure out how we can come up with clever ways to be able to budget for that stuff even, because I know it's a money issue as well.

[00:20:05.18] Nick, you've run a conference as well - what is your experience on handling that side of things?

It's very important to take it seriously from the beginning, and to make sure that everything that you do is clear, and the way that you're going to handle any scenarios that come up is clear. We've had scenarios come up at the conferences that I've run and other events that I've run, and in some cases we didn't publicize them because the people who reported them wished that they remain -- they didn't want to make it a big deal, but they wanted to let us know that things were happening, so that we would know what to do going forward.

In other cases we've had to write messages on mailing lists to 1,500 people and let them know something happened, this kind of behavior is inappropriate, and we can't have that at our meetups... It's important that people know who they can go to, and that they will be taken seriously in all cases.

One thing that's kind of different than what you two said - I was thinking back to when I first got involved in the Javascript community, and one big thing that I've experienced was just the fear of going up to the speakers and the big names in the community, and I was afraid to have them figure out maybe that I don't know something, or that maybe they'll think I'm stupid if I ask a certain question, or something like that... So it actually took me going to a couple conferences before I felt like I could actually walk up to people and talk to them.

I think one thing that -- we'll see actually how it goes tomorrow; I've never been to JS Conf before, but the idea of a whole day between talks, where people just get to hang out, seems like a pretty good way to make it less intimidating to come up to speakers...

Until I actually came up to speakers and talked to them, I had this sort of unhealthy hero worship around it, and I thought "Oh, this person is on another level, and I'm never gonna be like them", and that's just really not realistic. The truth was that these people had been working for a while in this area and they just got really good over time, and I could do exactly the same thing. Eventually, I've talked to them, hung out with them, and realized "Oh, cool, I can be one of them."

Having less pressure and more free time I think is good for that. We'll see how it goes tomorrow.

I think that's a really good point. I definitely think that we have a hero worship problem just in the Javascript community in general, and I'm really glad that you brought that up... Because it goes both ways; you're either put on a pedestal, so people are super-entitled and they expect so many things of you, when you're just like one human and you're fallible, and you have your own personal life that you're trying to also get on with, but you're just being constantly barraged by expectations... But there's also that feeling of exclusivity; it's like, "Well, I can't talk to them because they're author of X library, or something", but it's just not how most people wanna be seen, I'm sure, for the big Javascript celebrities. It's just not really a healthy attitude. I'm really glad that you brought that up.

I think that these conferences obviously help with this, because you get to speak to them in real life, and then you realize that they're just a person... But I think that we can do better in the community at large with this kind of stuff, especially when it comes to the Twitter conversations and dramas and things like that.

Yeah, having this face-to-face interaction with someone who you know very well through their work or through Twitter, actually being able to see them as a person instead of just a voice on Twitter or on GitHub comments... It's very enlightening and very good.

By the way, all three of these panelists are speakers, and they've just basically invited you to come talk to them.

[00:23:54.23] [laughs] I'm much more socially anxious than people give me credit for. I've hung out with these guys, so they know that I'm a freaking weirdo, but for me, public speaking gave me a lazy way out, because if I give a talk, then someone has a jumping off point to start a conversation with me, whereas... I used to be that person that would come into a circle already talking, and then just after five minutes walk away because I just didn't know how to get in. So that's definitely solved a problem for me now.

It's a huge lifehack. If you give a talk, then all of the people who are interested in whatever you're interested in will come and find you afterwards, and you have to do way less work.

It's self-selecting, yeah. [laughs]

And the same thing is true at meetups, but the pressure is even lower.

Yeah, that's true.

Definitely a lifehack. Anyone out in the audience have a topic area around conferences and community you wanna ask the panel about or have us talk about? Yeah?

[member from the audience] What do you do to select the speakers?

How are speakers selected? Great question.

That's a secret sauce that we can't discuss. [laughter] No, it's a big process... We vary how we do it, but we have -- for the conference that I run, the Nebraska Javascript Conference, there's eight organizers total, and we will put out the CFP, and then we will all come up with a list of speakers that we really want to invite to speak, and then we'll discuss those and find common ones, and then try and actually reach out to them and invite them to speak... But the last two conferences we've actually not invited any speakers and chosen completely from the CFP.

The process that we go through for that is -- it kind of varies from person to person, but for the most part we all go through the list in a blind way where we're just looking at the talk title and the description, trying to understand what the intention of the conference talk will be, and then trying to weigh that against other talks that are in a similar category... So if you're talking about React, or you're talking about accessibility, we kind of rank those individually on those different pieces. We wanna make sure that we cover accessibility and React, but we don't wanna have four React talks and four accessibility talks; we wanna have a good combination of everything.

It's especially hard for us because we're a single-track conference, so we need to make sure that we have interesting enough topics that we'll keep everyone's attention for the entire conference, and not completely isolate the Angular developers who are sitting here learning about React all day.

We try and be a little more generic when it comes to frameworks like that, but we'll come together and we'll comprise a list, and then we will talk about that -- we'll all get together physically and discuss what talks we think should be in there and why. Then we'll go through and we wanna make sure that we have a good diversity of speakers as well, so we don't want to just end up with nine white men; that would not be a very good conference. We want to make sure that we have diversity of talk ideas and diversity of speakers as well. So we weigh all of that and then come up with a list that everyone agrees on, and then we go and invite from there.

Which is so hard, that whole process...

It is, it's very hard.

Just for those who have never contributed to one of those, a CFP is a call for proposals, and it typically will state something about the topic area that the conference is open to, or the range of topic areas. It will often ask you to fill out things like a title, an abstract, who this might be good for, what level of experience is needed, and then some stuff about yourself, a bio, or things like that.

So when Nick is saying CFP, you look at the things - that's what that means; you go and you fill out a form online about what it is you wanna speak on and who you are.

[00:27:51.14] A pro tip also is apply to a lot of talks; you're gonna get rejected from like 80%. Don't feel bad, it's normal. Just keep applying. Like Nick was saying, there's so many people applying, and you might have submitted a talk on a specific topic and there was like five others, so they picked one of the other ones.

Another tip is you can submit a proposal for a talk that you've never given before, one that you haven't made yet; you just write up the proposal and submit it, and then if you get accepted, you can go and make the talk.

Conference-driven development...

Exactly. I've done it before with talks where I'm planning to demo something, and actually the code for it doesn't even exist yet. But if I know that I got into the talk, I'm like "Okay, alright... Well, the next two weeks I guess I'm working on this. I'd better finish it." It's totally fine to do that as well.

I've heard of other conferences that will open up the CFP and let everyone see who has submitted talks, and then let the audience vote on that. We haven't tried that yet... I think it'd be an interesting experiment, but I'm not sure how well it would go for a conference as small as mine.

Yeah, you might have an amazing title and description and you made it into the shortlist, and then when it came to trying to just arrange something with enough variety, yours fell out, but it doesn't mean at all that there was anything wrong with your proposal. For all you know, you could have actually been just that last one that they had to cut, and you shouldn't take the rejection as it was terrible and everyone hated it.

I know that some conference organizers don't necessarily have time to give you feedback. Some will be responsive if you reach out, and some will actually say to you "You were so close to getting in, we just couldn't fit yours anywhere and it didn't make sense, so we really want you to either apply again next year", or they'll even maybe recommend you to other conferences, because they really wanted to see that talk come out.

And to that point, for any JS Conf - for this last one that happened last month, we got 175 CFP submissions, and we can pick nine talks... So it is such a hard thing to do, but we have to reject 166 talks, which is terrible.

It's gut-wrenching, because you get so excited about some of them, and then you're like, "Aw, I wanted to see that..."

Different conferences have different balances in terms of how they will pull in speakers... Some conferences will do only invited speakers, they don't even do a CFP; some will balance... JS Conf, the AMP Track I believe was all outreach, and the B Track was all CFP-driven...

Yeah, first come, first served.

First come, first served...

Really? I applied for my talk, and I'm on the AMP Track...

Okay, so I'm misinformed. Different folks will do different balances of that, that's kind of the high-level on that. I know at one point I was a track chair for a conference that only did invited speakers, they didn't do any CFP and things like that.

Then there are conferences that will slot out either a track or a set of talks within a track and they'll say "This is only for new speakers. So if you've never spoken at a conference, apply and let us know." So there's all sorts of different balances there. If you can't find the CFP for a conference that you wanna speak at, they may not do it.

Also, be looking out 6 to 12 months, because these things fill up way in advance.

One crazy lifehack if you want to live a very unique life -- I know people who apply to so many conferences and they've gotten pretty good at giving talks, and they'll actually have talks lined up every week pretty much for the entire year, and they use the... Because once you get into a conference, that conference usually pays for your flight to the conference, and then a couple days of hotel, and then the flight back home... But you can actually set it up so that you can fly to the conference and then fly out to wherever you wanna go next, and then have the next conference fly you to there... This guy actually just travels all year round, and it's kind of a cool lifestyle.

Yeah... I think Substack was pretty nomadic for a while... Is that who you're talking about?

That's who I'm talking about, yeah... [laughter]

I would love seeing him popping up all over the world, it was great...

Yeah, pretty nice.

Yes.

[member from the audience] How do you decide when and where to host the conference?

[00:32:08.07] How do you decide when and where to host a conference? Is that the question? Okay.

That's pretty simple for me, with the Nebraska JS Conference... We just host it in Nebraska. [laughter]

Yeah, but how do you pick your venue?

We actually pick a different venue every single time. We've done it four times and have had a different venue every time, and we've had different themes. The first one was at a zoo, so we had a zoo theme. We had special guest speakers, which were a snake and a hedgehog you could come in and pet.

Then this last one we had at the Performing Arts Center in downtown Omaha, and we had a space theme... So it kind of didn't match, but we were playing with it and we had a lot of fun.

We just kind of go and figure out what venues we can fit in, what the rates are like, and the kind of experience that we can deliver, because that's the most important thing.

Yeah, there's a lot that goes in that decision. There's budget, there's how many people can be fit, can they cater for people's dietary requirements, are they ADA compliant, so that there's not just stairs, there's elevators and things like that? A lot of that can kind of come down to what kind of audience you're trying to attract, as well. Sorry I interrupted you.

No, that's exactly where I was going with that, too. I couldn't imagine doing it at a scale like JS Conf. This seems so crazy compared to the smaller conferences, but... It's really magical.

Other questions folks have out there about conferences, community or meetups? I think we have multiple folks on stage who've run meetup groups...

Is there a question over there?

Yes. How do you do talk prep? Oh, speakers...

What's that? [laughter]

The night before... Every time...

[laughs] I didn't sleep much last night.

I've done a range of things, everything from actually preparing way ahead to I'm literally tweaking my slides right before I go on stage... The best way to improve your speaking is to videotape yourself and force yourself to watch it... And gosh, is it painful. You will probably never do anything more painful in your life than watching yourself speak, but you will learn more about what you do that you don't like, and how to fix it, than anything else you ever do.

So if you can do it, tape yourself speaking, take notes about what you did like or didn't like, and do it again, do it again, do it again. The best talks I've ever given, I'd taped myself giving, and watched it 20 or 30 times before I gave it for real... And those turned out to be phenomenal. Then the ones where I do it last-minute are much more hit or miss.

I've done that not through explicit practice, because I'm not as disciplined as you, but --

I only do that sometimes... It's hard. [laughter]

If you end up giving the same talk a couple times, which I never used to wanna do, because it seems like "Oh, I shouldn't do this...", but apparently it's pretty normal and people at least give a talk a couple times... Usually, the third or fourth time you do - and it can be at a meetup, or whatever, or to your friends, or at your company, or however many venues you do... But once you get to like the third or fourth time, at least for me, it gets way smoother and you know exactly what lines are gonna cause a laugh, and when to pause... And by the end you can sort of feel like they're eating out of your hands, in a way...

It's really a magical feeling when it's like, "I'm gonna say this thing and they're gonna laugh", and then you say it, and then they laugh, and you're like, "Ah... I have the power."

That does break down when you go to different countries though, and it's like "Oh, this is an American slapstick joke, and it fell completely flat with some other country, that just that's not their sense of humor culturally..." So yeah. But if you're traveling around to places where the communities are very similar, that can be very relieving to know "Okay, my jokes are actually funny. It's gonna go okay next time."

[00:36:02.19] This is a little self-serving as a meetup organizer, but your meetups wanna hear from you, so give those talks, practice them at your local meetups... That's a good way.

And the bar to speaking at a meetup is down here; you can roll over that bar, you don't have to even stand up to get over that bar, because meetups are always looking for speakers, and they're a forgiving audience, because the bar is down here, and everybody knows they could be on that stage next time.

I can share a little bit about the actual prep, though... Because I know you shared how you rehearse, and everything. I usually start with the message that I want the audience to walk away with, and then I work backwards from there. Usually, the intro is pretty straightforward, where it's kind of like, okay, I'm obviously gonna be introducing my topic, but I need to set the agenda of what I'm gonna be talking about, and I'm not gonna know that agenda upfront, because I'm sort of working backwards from there. So usually, the intro comes last for me.

The message is written out for me in my notes, and then I sort of try to come up with an outline of high-level points that work backwards from there, and it kind of fleshes out. I'll admit, I have probably -- if I've got a couple months to prepare, I won't work on the talk for three weeks after that, because every shower that I have, I have the shower thoughts, and then I'll start coming up with those kind of key takeaway lines or those quote-worthy sort of things, and that's where the talk sort of starts trickling into my brain.

From there, I'm just meticulous about making sure that I'm done a couple of days in advance, and things like that... Because it's gonna be those couple of days leading up to the conference that all of a sudden you're gonna have these flashes of inspiration, and if your slides are complete, you can just go in and adjust them, and then re-rehearse it and see if that works.

So for me, being on a schedule helps me. I know that doesn't work for every talk... There's been one talk that I've done super last-minute, and it worked out okay, but I'm not proud of that... So for me just being over-prepared can sometimes really just make you feel like you should be there sometimes, especially if you're feeling nervous about it.

Break

[00:38:07.28]

We probably have time for one more question. Yes?

[member from the audience asks question]

Okay, so the question is what methodologies do we have experience with or recommend for ensuring a diversity of speaker line-ups? How do we fight our own biases? Anyone wanna start that?

I mean, I can start one, which is don't be the only decision-maker. If you are, for example, a member of a privileged community, a white man or something like that, make sure that you engage people from the communities that you would like to be involved, and say "Hey, I know that I have these biases. I want to overcome them. Would you be interested in helping?" And don't demand help, because you know, a lot of times we expect free labor from folks, but invite them into that process, and say "You know what, I want a diverse community... Will you co-organize this with me? Would you be willing to help make that happen?" and if they say no, respect that, because that's a lot of work... But bring other people into your process.

Yeah, I would agree. Just having as many people as possible, and as diverse of a group of decision-makers as possible as well, to make sure that you try and cover every base and make sure that the best interests of the conference are put first.

I don't organize conferences, but I do organize a lot of workshops, and a lot of the time I'm responsible for the advertising material, or just the information website, or the registration, or whatever... And I've run into this recently, where -- I mean, I realize that in robotics especially I'm a minority, but I don't feel intimidated about that subject material... Well, we hope not, because I'm usually leading the workshop, but I try and think of the people that would be intimidated, and then I think "Okay, so how can you reverse that intimidation?"

So for me, it's about reaching people who look at a topic and say "That's interesting to me, but I don't feel like I belong", and then how can you almost like turn the tables on it... With robotics, it seems really serious and really complicated and lots of bits and stuff, so I tend to just like simplify the communication about the actual workshops; sometimes I'll actually use super-friendly cartoon illustrations and things like that, just to show "This is actually friendly. If you come, you're not gonna be laughed at because you don't know anything", and things like that.

So sometimes I just try and get that out in the messaging, even though you've already reached out to communities that you're afraid that are not gonna wanna come - you reach out to them first, but also, if you're sending them that material, they're gonna use that to judge whether they actually wanna turn up or not as well.

So getting that messaging correct when they actually go to find information is key to getting people to even show up in the first place.

One other thing is to be very upfront about things like code of conduct... If you're bringing speakers in, be upfront about how much - and ideally all - that you can cover for them... Because a lot of times, folks coming from less traditional backgrounds can't afford to fly out to your conference to speak there, and if you don't say upfront "Hey, we pay travel and board for speakers", they may never apply, because they don't know if they can do it. And it's a pretty big barrier to reach out and say "Hey, do you guys fund this or not?"

[00:44:07.04] So being upfront about your code of conduct, about the fact that you actually care about diversity, and that you will provide travel, or a room, or whatever it is that you can actually afford... And realistically, not every conference can afford to do extensive childcare, as much as I really wish they would, because that is [unintelligible 00:44:22.08], but be upfront about what you can do and what you are doing, so that folks don't have to ask and they don't have to second-guess, like "Could I actually do this if they accepted me?"

I think overcoming your biases in that way, to know to do that stuff, is probably the most difficult part... So just asking yourself constant questions, like "Who are all the people that aren't like me? What are the different scenarios...?" Think about all of your friends, think about people who you've met in your life and all of their different circumstances, and try to always question the fact that your own ideal is the norm for you, but that's only for you individually... People come from all walks of life, and they're just not gonna be anything like you, at all.

I think that's still a difficult thing, but asking and constantly questioning every assumption you make about the event, such as food, or "Why do we have to have the food this way? Why if we had it this way?" Those questions will actually start smoking out all of those biases as well, which can be really helpful.

Alright, we need to wrap up because two of our illustrious panelists are actually speaking in the next slot... So, I mean, showdown... If you wanna listen to Feross talk about the most annoying website in the world, he'll be right here... Nick, you'll be talking about TypeScript, is that right?

...over in the B Track. So one or the other of them... You'll get to hear more of them, but you do have to decide. Other things, bookkeeping - if you want one of these awesome JS Party shirts, we do have some for give-away...

We have lady sizes...!

There are lady sizes and men sizes... This took me a while this morning to figure out when I was trying to figure out why my shirt wouldn't fit.

[laughs]

The way that you get one -- I'm gonna be sitting outside of Track B; give me a few minutes after to actually try to get some lunch, but for the next hour and a half, first come, first served basis - you come and show me that you've subscribed to our podcast... So you can show me on your phone, you can show me on your laptop, wherever it is that you manage your podcasts. If you subscribe to JS Party... You can find it -- can we put the slide up real quick? Changelog.com/jsparty, there is a list of all your favorite ways to subscribe... So if you're an Apple user, an Android user, what have you... You come and show me that you've subscribed, and as long as we have T-shirt supplies on your size, you can have one.

[00:46:45.01] They're so soft... They are ridiculously soft.

Yeah, they're really nice. Other than that - any other bookkeeping...? If you enjoyed this and even if you don't wanna get a T-shirt, you can still subscribe. Episodes typically come out Friday. This episode should come out this Friday (knock on wood). We generally record and broadcast live on Thursday mornings at 10 o'clock Pacific Time. I guess it's not morning if you're on the East Coast, but... On Thursdays, 10 Pacific, 1 Eastern, you can come join us; there's a Slack channel, you can chime in... We typically do include commentary and feedback from the folks who are listening live, so you can have your voice heard as well.

Yeah, some people write raps, and then sometimes we rap them.

Yeah, we have been known to rap things... I think the most amazing feedback loop I ever saw was I did a rap for somebody, and then somebody in the channel or who was live listening hand-wrote it in calligraphy and posted it in the channel, so we had this amazing artistic representation of this really dumb nerd rap that I had done...

Yeah, I think you rapped about me...

Yeah, I was rapping about Feross, and -- I don't know... It was amazing; amazing feedback.

It's a cool community.

We talk about all kinds of stuff, too... I'm hosting a show about peer-to-peer, the distributed web, and I guess it's on the sixth. But the topics are always different, it's always a new random thing, but it's always related to Javascript, so it's really fun.

Changelog

Our transcripts are open source on GitHub. Improvements are welcome. 💚

0:00 / 0:00