POPULARITY
As Sara Chipps delved deeper into the world of open source and moved up into senior engineering and management roles, there was a specific skill she learned about how to work with and manage engineers. "This is something you never get taught in school. This is something we don't stress to junior developers. This is something that senior developers learn late in their careers, is that the ability to influence the opinions of others without conflict is a superpower. "By conflict, I don't mean not disagreeing. I'm more mean in this case, conflict of like a, a public fight or, or people getting angry or upset, like to be able to coach people through what you think is an incorrect opinion to a place where you're in agreement. It's hard, it's sometimes you're impossible, but it's an incredible skill to have. "I love of bureaucracy and open source because that's a place that I've learned that I can be effective. "My responsibility is identifying when people have a limiting mindset of you know, things should be this way and helping them to see the possibilities. What I've learned is that it takes time. Sometimes you have to say the same things 50 times in a row. Sometimes it doesn't work, but growing that muscle of having a message, staying on that message, learning who to identify as allies and to talk through things, that has been a really cool learning as part of my work here." Resources mentioned in this episode https://www.linkedin.com/in/sarajchipps/ (Sara Chipps), Engineering Manager, Flagship Infrastructure, LinkedIn https://jewelbots.com/ (JewelBots), Craft Kits for Budding Inventors https://girldevelopit.com/ (Girl Develop It), women and non-binary adults learn software development skills https://girlswhocode.com/ (Girls Who Code), the world's largest pipeline of female engineers https://www.linkedin.com/in/rginn206/ (Robin Ginn), Executive Director at OpenJS Foundation https://openjsf.org/ (OpenJS Foundation), driving broad adoption and ongoing development of key JavaScript solutions and technologies
Sara shares the story of a developer conference that was smoke bombed by an Arduino bot gone haywire. It was this chaos that inspired her to dig deeper into Arduino, which would eventually play a big role in helping her to found her company, Jewelbots. Paul unravels the mystery of what's really inside the Goonie Box: a timepiece, puzzle, and mechanical wonder that Guido uses to test his house guests. This week's lifeboat goes to Terminator17, who helped solve a problem around object detection using a Tensorflow-gpu.
Sara shares the story of a developer conference that was smoke bombed by an Arduino bot gone haywire. It was this chaos that inspired her to dig deeper into Arduino, which would eventually play a big role in helping her to found her company, Jewelbots. Paul unravels the mystery of what's really inside the Goonie Box: a timepiece, puzzle, and mechanical wonder that Guido uses to test his house guests. This week's lifeboat goes to Terminator17, who helped solve a problem around object detection using a Tensorflow-gpu.
In this episode, we talk about the history of IRC and the evolution of other community building tools with Sara Chipps, co-founder of Jewelbots and director of public Q&A at Stack Overflow, and Jason C McDonald, CEO and Lead Developer at MousePaw Media. Show Notes DevNews (sponsor) Triplebyte (sponsor) CodeNewbie (sponsor) RudderStack (sponsor) Slack reddit PHP IRC Jewelbots Stack Overflow MousePaw Media C# ASP.NET JavaScript Where in the World Is Carmen Sandiego? (1996 video game) The ClueFinders Reader Rabbit Python Visual Basic .NET ham Radio Usenet Discord DEV HTTP Freenode Nickname Registration The Great Split IRCnet DALnet PSF Code of Conduct K lined Eternal September Git Tracy Chou Block Party app Winamp C++ Introducing "Dead Simple Python"
In this episode of The Work Item, we interview Sara Chipps, Director of Public Q and A at Stack Overflow. Sara is also the founder of JewelBots, a company that provides electronic building kits for young inventors. We chat with Sara about community feedback, engineering management career tracks, and building tools for STEM inclusivity.
Part 1The crew chats about how Paul and Sara made the transition from individual contributors to managers overseeing teams of engineers. Sara used to see this transition as a form of selling out, but has a new perspective after having made the shift. Paul admits he still doesn’t feel like a “CEO” and how he approaches his role as the co-founder who focuses on creating signal instead of operations. OF course, we argue about Bitcoin, and finally we examine the role luck plays in life, especially for The Rock. Interview - Kent C DoddsKent admits that when he first tried programming, he just couldn’t understand strings, and decided the career path wasn’t for him. He ended up on a track that would have made him an accountant or business intelligence analyst. From that perch, however, he began to find ways to automate and improve his workflows. Not only did this help him stand out at work, it reawakened his interest in coding, which is now his full time career. Part 2 Sara talks about the difference between writing code for software applications, and writing firmware, which she got into while helping to launch and run Jewelbots. Paul and Sara recall what it was like working in tech during the 90s, when they had to constantly worry about how to conserve RAM. We also talk about the days before Git, when folks passed a hard drive around from hand to hand. The kids today have no idea how good they have it.
Part 1The crew chats about how Paul and Sara made the transition from individual contributors to managers overseeing teams of engineers. Sara used to see this transition as a form of selling out, but has a new perspective after having made the shift. Paul admits he still doesn't feel like a “CEO” and how he approaches his role as the co-founder who focuses on creating signal instead of operations. OF course, we argue about Bitcoin, and finally we examine the role luck plays in life, especially for The Rock. Interview - Kent C DoddsKent admits that when he first tried programming, he just couldn't understand strings, and decided the career path wasn't for him. He ended up on a track that would have made him an accountant or business intelligence analyst. From that perch, however, he began to find ways to automate and improve his workflows. Not only did this help him stand out at work, it reawakened his interest in coding, which is now his full time career. Part 2 Sara talks about the difference between writing code for software applications, and writing firmware, which she got into while helping to launch and run Jewelbots. Paul and Sara recall what it was like working in tech during the 90s, when they had to constantly worry about how to conserve RAM. We also talk about the days before Git, when folks passed a hard drive around from hand to hand. The kids today have no idea how good they have it.
Podcast Description “The thing that I keep coming back to is to not speak for or to make decisions or to pretend that I represent anyone that has a different experience or different affinity than I do.”Sara Chipps, is a JavaScript developer based in NYC who has been coding since the adolescence of the web. As user number 4140, she's been avid member of the Stack Overflow community since it was in Beta. As Director of Community there her focus is on inspiring developers to build features that appeal to all coders. Outside of Stack she is the co-founder of Jewelbots, a company focused on inspiring girls in STEM through play. Additional Resources An Open Letter to the GDI Board Timeline Twitter Sara Chipps Become a #causeascene Community Sponsor because disruption and innovation are products of individuals who take bold steps in order to shift the collective and challenge the status quo.Learn more >All music for the #causeascene podcast is composed and produced by Chaos, Chao Pack, and Listen on SoundCloud Listen to more great #causeascene podcasts full podcast list >
Today’s show is all about getting started: taking the steps to turn new ideas into living, breathing (and sometimes even money-making) projects. Our guest this week is the totally rad Sara Chipps—the co-founder of Girl Develop It, and now the CEO of Jewelbots, which makes smart, open-source friendship bracelets that girls can code. (We want some for all our BFFs.) > Just start with those baby steps. It’s going to take a thousand baby steps. Everyone has a good idea, right? Everyone. Ideas are worthless unless it’s something that gets made. So you know, if it’s going to take a thousand baby steps, then if you start today, you only have 999 left. But if you don’t, then it’s never going to happen. > > —Sara Chipps, CEO of Jewelbots and co-founder of Girl Develop It Here’s what we covered (and as always, you can find the full transcript below). Show notes First up, we talk about all the URLs we’ve purchased—and how sometimes, spending $5 is just what you need to take your own idea seriously. Jenn shares her love for David Allen’s _Getting Things Do_ne method (and explains how it helped us GTD for our first episode). Katel tells us why “Write Book” is maybe not the best item to put on your to-do list. Sara recounts her love for Jenn’s web series, Cook Inside the Box—where Jenn and our friend Sequoia made recipes from the sides of boxes. Sara’s favorite episode? The one about hot dogs rolled in cornflakes. Mmm hmmm. Then, we fangirl out during our interview with Sara Chipps, who not only created Jewelbots, but also co-founded Girl Develop It. We talk about: Why Sara C. has made it her mission to get more girls and women into coding. The joy of friendship bracelets—no matter how old you are. How to bounce back (and learn something!) when a bunch of kids tell you your idea sucks. Highway1, the hardware accelerator that helped Sara prepare to launch Jewelbots. The importance of finding a co-founder who gets you—like Brooke Moreland, Sara C.’s cofounder at Jewelbots. Why you don’t actually need to be good at math to be a programmer—and how our industry has done newcomers a disservice by pretending otherwise. How Girl Develop It went from a single class in New York City in 2010 to a nonprofit operating in 58 cities and serving 55,000 members (and counting) nationwide. Also in this episode: Woohoo! It’s now light out till, uh, 5:15pm here in Philly, and we can’t be happier about that. We’re already dreaming about two of Philly’s best summertime hangouts: front stoops and beer gardens. Yes, please. Being, like, a totally cool adult. No, really. Ask the kids. Sponsors This episode of NYG is brought to you by: _CodePen—a social development environment for front-end designers and developers. Build and deploy a website, show off your work, build test cases, and find inspiration. _ _WordPress—the place to build your personal blog, business site, or anything else you want on the web. WordPress helps others find you, remember you, and connect with you. _ Transcript Sara Wachter-Boettcher Today’s show is brought to you by CodePen. Ever want a place where you can write and share front-end code with others? CodePen is that place. It’s full of awesome inspiration and projects with a great community. And speaking of community, the CodePen World’s Fair is happening in May. We’ll talk more about that in a bit, but be sure to sign up for an account at codepen.io. That’s [spells out codepen.io]. [Intro music] Jenn Lukas Hey! And welcome to No, You Go, the show about being ambitious and sticking together. I’m Jenn Lukas. Katel LeDû I’m Katel LeDû. SWB And I’m Sara Wachter-Boettcher. On today’s show we’re excited to talk about getting started. We’ll discuss how we come up with new ideas and then, once we’ve got ‘em, how do we actually take them to fruition? We’re totally pumped today to talk to Sara Chipps, who has taken two of her amazing ideas, Girl Develop It and Jewelbots, and made them into reality. But first on the agenda, let’s talk about how five bucks turned into a new podcast. Getting started with just $5 [1:20] KL So a couple of weeks after we started talking about the podcast, uhhh, got an email from info@noyougoshow.com and saying that we’re paying five dollars a month for the email address and now we really have to do the podcast. And at that moment I really think it became real and like this thing was really going to be real. So we kind of wanted to start there and talk about how that happened. JL Five dollars is all it takes. Five dollars and a dream. SWB [Laughs] yeah, so I was the one who sent that email and I was like, “Well, I got a credit card! I got five dollars a month. I spend five dollars a month on a lot more dumb shit than [others laugh] email accounts.” So for me it was a really low investment to also look at it and be like, “Dude, we are going to take this seriously. And I think that that’s how most anything I’ve ever done sort of came to be—by figuring out something that was small, but really concrete. And the concreteness is what helps it feel real and feel like something that you’re seriously going to do. KL And a little skin in the game. I mean, I know it’s not much, but you know when you kind of feel like you’re putting some actual cash to it, you’re like, “All right.” [Chuckles.] SWB That’s like a whole latte I can’t buy now. KL Absolutely. JL Yeah, I think that there’s definitely been a couple nights where, you know what? Maybe I’ve had a few glasses of wine and that helped make the appeal of certain domains sound good [laughs]. I’ve been known known to buy a domain or two. SWB I can’t relate to this at all. KL No, me either [all laughing]. JL After an exciting night out. But, you know, there’s one thing, you know, you’ll be at the bar with a friend, you’ll be at the coffee shop with a friend, you’ll be at the house with a friend, and you’ll be like, “Oh I have this idea,” and you’re sorta joking around and you’re like, “You know what? Lemme—lemme just pull that trigger and buy that URL,” and the next thing you know: you’ve got a URL and you’re on your way. SWB Yeah, I’m curious, Jenn, you had Cook Inside the Box a couple years ago, this web series little episodes where you and our friend, Sequoia, would cook recipes from the sides of boxes. I loved this series so much, everybody please go Google this right now if you haven’t seen it [laughter]. So I’m curious: how did that start? JL So I do remember how that happened. Oh my god, so many years ago at Converge in South Carolina, one of my favorite conferences. I think I was with Val Head and Chris Coyier and maybe a couple of other people and we were walking to go get some food. And I was telling them about how I was eating a box of Nilla Wafers and um you know those delicious cookies? And there was a recipe on the side of a box for Nilla Wafers which didn’t make any sense to me because a Nilla Wafer is just like a cookie. You just— KL You just eat it. JL You just open up the box and eat it, right? [KL chuckles] But they had this recipe and I was like, “This is amazing.” We talked about, like, what other boxes could possible have recipes on them and then I became a little bit obsessed with figuring out [laughter] that, and I thought it was really funny. And then one day a few weeks later I was telling Sequoia about this conversation and she was like, “I would totally do that with you.” And I was like, “Really?!?” I was like, someone else— KL This is a good idea. JL —someone else is in invested in this?! That’s amazing! And then that was it. We went to the grocery store and started our user research. SWB What was the first recipe you made? JL It was the Nilla Wafers’ Nilla Yogurt Freeze, which was a mix of strawberry yogurt, frozen with Nilla wafers, and the serving size was: one [laughter]. KL Was it as delicious as it sounds? JL It really actually was. It was just a little bit sad. SWB I think my favorite episode was the one where you rolled hot dogs in ketchup and then rolled them in— JL Cornflakes! Yes, cornflakes. [5:00] SWB Yes! And baked them for…not long enough? And that was a treat. Mm hmm. JL Yeah I heard that was quite—that was when I was a vegetarian so I had an easy out of not eating that, so I avoided that one. KL Yeah, you were like, “That’s all you.” JL Yeah. But yeah, you know, all of a sudden you take this thing that just happens in casual conversation, next thing you know you’ve got a YouTube web series [laughs]. SWB You know something I always think about is that one of the challenges is anything that feels big. Like there’s a lot of steps, there’s a lot of moving parts, there’s a lot of pieces to it. And so some of the biggest stuff that I’ve needed to take all the way from end to end is book stuff. And I don’t consider myself necessarily a like typical writer, just because I think everybody has a different process. But the way I do it tends to be, like, I need to have some kind of outline that’s enough structure, enough substance to it that I can imagine it coming together. And then I have all these weird tricks to actually getting it done where it’s like I pick off the easy chapters first, so then I feel like I have something of substance, all of these different things. But I don’t know a lot about techniques or process for getting something big like that done, just sort of what I’ve cobbled together and made up. Katel, running a publishing company, do you feel like you have developed some of those tools or techniques for people to kind of tackle big things? KL I was actually just talking to an author recently who had [chuckles] told me that for the past couple of months a “to do” on her list had been “write book.” And I was like, “No!” [Laughter] “Don’t do that.” I was like, “That’s too big. You’re never going to get to check it off and that’s going to feel terrible.” So along with looking at kind of how she could break things down and sort of structure them and, just like you said, pick off some things that were a little easier. You know, get a framing set up first and kind of plug in the meatier bits. One thing that we’ve started doing is just having check-ins during the writing process and I think that’s helped a lot because it’s a bit of accountability. So folks don’t feel like they’re just off in the ether writing and writing and not knowing whether they’re going in the right direction. So I think just having some tetheredness helps a lot. JL One of my favorite books of all time is Getting Things Done by David Allen, and he’s got a really, for me, approach that really resonated well, which is, you talk about what the next step is that you have to take. And you don’t worry about, like, what’s the 20-step-ahead step? It’s, what’s the next thing I want to do for this exact thing? So if it’s something like, you know, I want to write a book. Well, I was like, “Well, what’s my next step? Maybe it’s get in touch with someone who I know, like Katel, who publishes books. So my next step is to email Katel.” Just that. Not even, like, come up with an idea, not write it, not find a publisher, it’s just write someone I know. And then the other thing that I really liked about the getting things done approach is if it’s something that it’ll take less than two minutes, to do it right away. So if I can write you an email that just says, “Hey Katel, I want to talk to you about books. Let’s grab dinner sometime this week,” and that’ll take me less than two minutes, then I’d send that email. KL Yeah, I think breaking things down to as small as possible so that you can actually start checking things off your list is—it feels better than anything. SWB You know something that you just said, Jenn, about “if it takes two minutes, just do it.” I totally noticed that when we were working on starting this podcast. So you know one night we’re sitting, talking about lots of different things we needed to do, like all these macro to-do lists, right? Like, “we need to figure out microphones,” and like themes, and guests, and schedules, and like—you know it was very, very broad. And one of the things that we knew we needed to do was start recruiting a few people who could contribute to our first episode where we wanted to have these short snippets. And Katel and I, I think, both had kind of the same reaction, like, “Okay, let’s make a list of those people and assign each of us a list of those people to contact. And then, you know, we’ll do that after this meeting,” and meanwhile Jenn is literally over there like, “Okay, I sent all my emails to my people!” [Laughter] And you know that doesn’t obviously work for everything. It works for those short things though, and I think that that really gave us some momentum, and that momentum at that particular moment was really, really important and helpful, and got us all the way here where we are today! [Laughter] JL GTD, man! KL That’s right [music fades in]. Thanks to our sponsors SWB Hey Katel, do you know what I love getting done? KL Um, nails? Snacks? SWB I mean yes, and also yes. But more than anything, I love thanking our sponsors, because I’ve realized that starting a podcast is just a lot of work. There’s so many little details to take care of and so many pieces that have to fall into place. Getting some support from wonderful sponsors has made that so much easier. One of those great sponsors is wordpress.com! WordPress is the first place I went to create our site: noyougoshow.com. It’s also how I run my personal site, sarawb.com. [10:00] Whether you’d like to build a personal blog, a business site, or both, creating your website on wordpress.com helps others find you, remember you, and connect with you. I love WordPress because it’s easy. You don’t need any special skills to create an amazing site fast. You can just pick up a template and go. But it’s also super customizable. So if you’re working with an awesome developer like our co-host Jenn, you can turn your WordPress site into pretty much anything you want. Plus they have 24/7 support and plans that start at just four dollars a month. Go to wordpress.com/noyougo to get 15 percent off your website today. That’s wordpress.com/noyougo. KL We’re also so excited to have CodePen as our sponsor. CodePen is the place to write and share code with the front-end community. You can share your code with others and explore what they’ve created by browsing all sorts of Pens. And this spring, the CodePen community is coming together in real life for the first time ever with a CodePen World’s Fair, taking place May 30th through June 1st in Chicago. Three radical days of hanging out with people who love CodePen as much as you do. Day one is an expo with art exhibits and interactive installations, day two will be amazing conference talks about front-end dev, and day three will feature fantastic workshops! Sign up at codepenworldsfair.com to hear more. That’s codepenworldsfair.com. [Interstitial music fades in and out] Interview: Sara Chipps [11:15] JL So though I’ve had a slew of my own ideas, some better than others, I’ve also been fortunate enough to be part of other projects that were the creation of others. One of these was teaching for Girl Develop It, a non-profit organization that provides affordable programs for adult women interested in learning web and software development in a judgment-free environment. I met Sara Chipps over six years ago. She co-founded GDI in New York and was looking to expand it to Philadelphia. I can’t begin to explain how flattered I was when Sara had asked me to teach the first class here in Philly, which was an intro to HTML and CSS class and, to this day, I can say that it’s been one of my favorite parts of my career. She has since embarked on new feats in robotics and wearable technology, and is the CEO of Jewelbots. I am so, so excited to have Sara here today to talk about the opportunity that she has given people to join in some of these projects with her and hear more about her current adventures! So, welcome to No, You Go, Sara! Sara Chipps Thank you so much for having me! That was the best introduction I’ve ever gotten in my life! JL [Laughs] yay! I’m fangirling here a little bit to have my friend on the show. So I’m super pumped! So, Sara, tell us about Jewelbots. SC Yeah, so Jewelbots is a project that I’ve been working on for the past almost four years. You know, I polled a lot of my male peers about how they got started in programming and how old they were, and what I heard from them is often they were, like, middle school years was apparently the prime time for people to get started programming, and often it was because of gaming or something that is traditionally masculine, which might help explain why there is such a big gender gap. So we set out to make something that was more traditionally feminine and open source. And so we met with about 200 young girls in that demographic and we talked to them about what we could build for them, what would be exciting. And what we heard from them is that their friendships and their friends are the most important thing to them at this point in time. Do you guys remember being that age? JL Oof. Yes [laughter]. SC So, yeah, so what we did was we made smart friendship bracelets. And the way they work is they detect your friends when they’re nearby and they light up when you’re together, and you can use them to send secret messages and things, and they’re also open source. So girls can program them to do all kinds of things, like go rainbow colors when all their friends are in the same place, or one girl made a metronome. They can do all kinds of animations in really cool colors, they can make games, that kind of thing. So it’s been a lot of fun. JL That’s so neat. We did, like, a beach trip a couple of years ago and we made friendship bracelets on the beach and it was the best [laughter]. SC That’s so great! JL So I don’t think that joy of friendship bracelets has faded. SC That’s so awesome. JL Knowing you from Girl Develop It and knowing a bit about Jewelbots, I think that it’s quite obvious you want to encourage women in the STEM field. For this one, would you say that you were thinking more about wearables, like were you really into that? Or were you thinking, like, “Okay, well, I’ve worked with adults. How do I get into younger girls and women getting into this?” What was your inspiration for getting this project started? SC Really it was hearing from adult women things like, “I didn’t know what an engineer was until I got to college.” And just stuff like that made us say, “Okay, when are people learning about this stuff that are getting involved in this field, and how can we make sure that that is something that they know about?” And so that’s kind of how we settled on this age group, is, you know, it’s when a lot of men are typically exposed to programming. JL Right, yeah, so you had this idea and you mentioned you know you got together with about 200 girls that gave you this feedback. How did you decide to sort of start with this? I mean it’s user research, right? How was that the next step you took? [15:00] SC So I started with an idea. So I knew I wanted to do a wearable. I knew it needed to be a bracelet just because you know if you’re doing notifications or anything like that and it’s around your neck you don’t see it, and if it’s on your—if it’s like a ring, it has to be a huge, huge ring. Yeah it’d just be like this monster. JL I would wear it probably—[laughter]. SC That’s great. So my idea was that we would make a bracelet and you could change the color based on your outfit, right? So like I wanted to wear blue today, I would make my bracelet blue. That would be like my look for the day. And I thought this was a great idea. I also thought I had remembered what it was like to be 12. So myself and a friend at ITP, which is a program here at NYU, made a prototype and brought it to schools to see what girls thought, and they were like, “That’s a dumb idea.” Well, they saw it and they’d be like, “This is cool! What is it?” And we’d tell them and they were like, “Oh, I’d never use that.” [laughs] like, “Okay, god!” [Laughter] I know, it was really rough. Because you think you remember, right? I found myself in front of classrooms, like, explaining that I was a cool adult [boisterous laughter]. Like, “I know most adults are lame, but I’m not.” And I was like, “Oh my god, I am, I really am.” [Laughter.] SWB So what did they tell you that they actually wanted to use? Like after they told you that your idea was lame, how did you get out of them some good ideas that would be things they would want to use? SC So instead of saying, like, “What’s your idea?” We asked them more about their lives and their day-to-day and the things that they enjoy using. And just every conversation went back to friendship. You know, like, they all still wear the friendship bracelets—like the ones that we used to make, either the thread ones or those like plastic lanyard type ones, and they still make those, they still wear them, sometimes they’ll wear ‘em like all the way up their arms. So one day when we had compiled some of this feedback and started talking about, “What if we made like a real friendship bracelet?” And we started talking to them about that. That’s when they started really freaking out. Like their whole faces would light up and they’d be like, “Oh my god! I would have to have that!” SWB It’s so refreshing to see people really take their user research seriously, because I think so often user research gets like straight up ignored. So I think that that’s such a huge difference and I think it also speaks to what makes this valuable for actually hitting that mission of encouraging girls to enter STEM because you know you didn’t like accept kind of a shallow answer to that and you really looked at what was going to make it meaningful and connect with them at that deeper level. SC Like we didn’t even think about this until we actually did a hardware accelerator in San Francisco called Highway1. This was my first foray into hardware and so it was a really big help getting into Highway1 where you know what they do is they kind of incubate your company and they have experts there that can help you and guide you through the design and development prototyping process. And our first I just heard some nightmare stories about like, “Here’s something that we built and we didn’t talk to anyone. And here’s how we wasted like millions of dollars for this company because we built this thing that either doesn’t work or there’s this huge error we didn’t foresee or the people just don’t want it.” And so after hearing those stories I was like, “You know what? Um we should probably go talk to some people.” That’s one thing about my job and what we do is that girls in this age group are so fun. They’re so fun. They’re so opinionated and like fierce and hilarious and independent. And so it’s definitely the best part of my job is just meeting these girls and hearing about their lives and just being so impressed. I’m like constantly impressed by girls in this age group and like the cool stuff that they’re doing. JL How did you break into that? Like, how did you get access to being able to talk to these girls and finding out what they wanted? Was it through one of the incubator programs? Was it through NYU? Was it through something else? SC So there’s a statistic like 94 percent of parents in the US want their kids to be exposed to more you know programming and programming resources. And not even 40 percent of schools have computer science programs, and what is called a computer science program in most schools is like not something that we would consider programming. One thing that this has really exposed me to is just what a huge gap there is. Like we tried to like visit the entire demographic of you know socioeconomic classes uh in this age group. So if you go to a private school they will have a computer science program taught by a programmer and if you go to most public schools they have like a typing program taught by a teacher that doesn’t know anything about programming and – if they even have that, you know, sometimes there’s like a computer for an entire classroom to share. [20:00] So what we did is we volunteered to teach some classes. We were like, “Hey, we’re programmers. We’ll teach, you know, some beginner programming classes to your students in exchange for them answering some of our questions.” So that was kind of how we got in there. And it was a pretty neat thing to be able to meet girls and talk to them. JL Yeah, that’s so smart! So you work with a co-founder, Brooke Moreland, on Jewelbots, right? How did you come together? How do you find that you’ve surrounded yourself with people to help make your vision come true? SC Brooke was—when I moved to New York—one of the first people I met. She had a company called Fashism with an ‘s-h’. It was kind of like Instagram before Instagram, where people would upload pictures of their outfits or like fashion and people would like rate their fashion. And it was really popular with teenagers. Like hugely popular. And so with her background, you know, her skillset is just really complementary to mine in the way that she has fashion and business in her background, and I’m more focused on the technology side of things. And so when I started working on this, I reached out to Brooke and was like, “What do you think?” And she’s like, “This sounds awesome.” JL And for me sometimes, I have the problem of like how do you hold an idea that’s like so precious to you and then like trust others? Or like even be brave enough to first mention the idea to someone else? SC Yeah, yeah, I had been working on it for a few months already. And it’s so funny like when you first start prototyping something, it looks like garbage. Right? Like you’re always like—and when I was first working on this I was using Arduino and things were, like, taped together and falling apart and all this stuff. And so I just kind of showed her this thing. And she’s like, “Oh this is cool!” And then you have to find people that I think are like…can see past the tape. KL [Laughs] yes. JL So once, you know, you showed Brooke the idea and she was like, “This is great.” Were you both like, “Okay, we’re going full-time on this”? How did you sort of build up to what Jewelbots is now? SC At the time it was just me and I was full-time on it. And going full-time on a side project is really hard. I wouldn’t have been able to do it without getting into Highway1, as they give you seed funding for your business. So I had already been full-time on it for a few months and then she had just left her job. So we kind of both just jumped in. JL Monetary blockers I think are tough when people have ideas. You know, do you have any advice for people that are sort of like, “Well, what do I do? I have this idea. I’m not sure how to take it to the next level.” SC Before that I had a full-time job and it took me – I had been working on it for maybe about eight months or so part-time before we got into Highway1, before I was able to quit my job, and I’ve definitely been there. You know, Girl Develop It, I always had a full-time job. And it’s really difficult and one thing I learned fairly early in is even if you make the smallest bit of progress at night—you know, like, you get home, you’re exhausted, you don’t feel like working on anything—and you just spend five minutes writing one email, right? If you can get that one email out, or do that one thing that will push things forward, you know you’ll just keep going. The place where you get lost is when there’s, like, three weeks and you didn’t work on it and you’re just procrastinating because you’re like, “I have hours and hours of work to do.” But if you just make sure to take a little time every day, or you know just a few times a week, making sure you’re spending 15 minutes, 20 minutes, you can make sure that things keep growing. JL I like that a lot. Because things can feel overwhelming. You know you take a break from something and all of a sudden there’s so much to do versus a little. So I think that makes total sense. So before Jewelbots, you know as I mentioned, I know you through GDI, Girl Develop It. Can you tell us a little bit about Girl Develop It and how that got started? SC Yeah! So we never set out to make the company that it is today which is a really awesome, big non-profit. So one thing that happens to female developers is you will meet—like someone will be like, “Oh it’s so cool that you’re like a female developer! I know another female developer. You guys should be friends.” [Laughter] And you’re always like, “I mean, thank you, but like [laughs] I have work, I have a job.” SWB And like there’s more than two of you out there. You know, like, “Oh gosh, you have to know this one other person who they happen to have the same job.” It’s like, do you say that every time you meet somebody who’s an accountant? [Laughter] “I also know an accountant!” No, you don’t. SC “Do you know them? Do you know this other accountant?” [Laughter] Yeah so when—so someone had done that to us, and it was actually fortunate because we were talking about how in our computer science classes often we felt like we were afraid to ask questions because we were afraid that, you know, sometimes you feel like you ask a stupid question, it’s something you should know. Like, people in the class are going to be like, “Oh god! Of course the girl doesn’t know this!” [Chuckles] and, like, start throwing batteries at you or something. I dunno [laughter]. JL Huh, Philadelphia style [laughter]. [25:00] SWB But that sounds frustrating, right? It’s like you feel like you can’t just hang out and focus on learning and getting the most out of your class because you have to sit down and be like, “Oh I’m also somehow like a representative for my gender here.” It’s like, that’s a lot of extra pressure and a lot of bullshit. SC It is. It is and so having both shared that experience, we were like, “Wouldn’t it be great if there was a place where you know like people could learn and they could ask every stupid question that they think of?,” you know, and not be afraid of having to know that? Because also learning as an adult…like, kids are so fine not knowing things, you know? Like, because kids: you’re not supposed to know. But as an adult, you know, it can be scary asking questions because, you know, you’re supposed to know. So we scheduled just one class, one HTML/CSS class. This is in 2010 when there wasn’t a lot of these boot camps and things like that teaching. And we didn’t know how people were going to come or if they would be into it or anything like that but it ended up selling out, you know, in the first day. And then we planned another class and another class and then people in other cities were like you know, “We want to do this. This sounds cool.” So finally you know it started growing and it kind of like grew like a weed. Like it just kind of—yeah, it was pretty wild. JL So in a lot of teaching for Girl Develop It, I know a lot of times the students they want to make a change in their career and they’re ready to try something new. Do you have advice for people that would want to start a new career, how they get started in doing that? SC Programming isn’t hard. Like, you know, we’ve done this disservice as a community to say that you have to be good at math to be a coder, or you have to be some kind of genius to be a coder, and it’s so not true unless—I mean, yeah, there are, like, people that work—there are like quants that work in finance, and they have very specialized degrees. But most, you know, development jobs where you’re doing web development, it’s not rocket science. You know, it’s not anything that the average person can’t understand if they put in the work. So I think that, first of all, don’t be daunted by it—don’t think it’s not for you or you’re not smart enough, because I promise I’ve yet to meet the person that can’t understand how to, like, do an HTML/CSS page after like you know sitting down for a bit and working to understand it. And also, you know, be ready to put in the work, because it’s definitely hard work. SWB That really brings me back around to thinking about Jewelbots and how powerful it is to bring that to girls who aren’t getting that message, right? Who are like getting far too many messages about technology being something complicated and foreign and sort of you know being kind of alienated from it already at a young age and not even knowing you know what an engineer does. I really like the idea that you’re making it feel accessible and relatable because you’re totally right, this isn’t something that normal people can’t do. It’s not just for special people. And so I’m curious, like, as Jewelbots has grown and developed like, where do you see that going? SC We’re on target.com, we’re on our own website, we’re in a lot of places and it’s grown a lot, which has been very cool. We also were in the Wired store, and I think that the way we see things going is a good question. We’re about to make some big announcements for Jewelbots and kind of ask our audience and our community what they want to see from us in the future. You know, this community has come together of young ladies and they’re building things and sharing with each other and the coolest thing I think is the tiny speaking careers that are launching because of these eight-year-olds—eight-, nine-, 10-, 11-year-olds—that are going out there giving conference talks about programming their Jewelbots, which is so adorable. Like, I cry every time. I really do. And that’s not a joke. I’m just like sitting there crying [laughs]. JL That’s so amazing! SC I know! SWB Yeah, that’s super cool. SC Yeah. But so we’ve shipped 10,000 of them now, and we’re working to figure out what’s next and what we should be working on next. So we’re about to announce some big stuff and then ask the community what they want to see from us. JL Oh I can’t wait to hear more about that. Speaking of speaking, I know that you cut back on speaking to make time for Jewelbots. How’d you come to that decision? SC I don’t know about you, but when I was younger I didn’t really travel. Like my family, like we went to Disney once and my family was very like we drove 20 hours to see family members and that was our vacations which I loved them for. Like [laughs] I’m not complaining. But getting older like being able to travel the world to give conference talks was such a cool experience because I got to see so many different places. But what I started realizing that even though it was fun and glamorous and things it was getting in the way of work, it was getting in the way of like getting things done. And so now when I do talks or when I get you know asked to do talks, I evaluate like, what will this do? Will this help the business? You know um or will this be you know a distraction? [30:00] JL That’s great and then, Sara, have you ever felt blocked or in a rut? And if so, how have you gotten out of it? SC Yeah. And that’s a really good question. Focus can be hard, because there’s just so much going on, and often you feel like you’re doing the same thing every day. I usually focus on my personal life then, or, like, what habits I can bring to my life in general that will be beneficial because often it’s not work, often it’s work affecting life, right? So if in work I need to be doing the same thing every day for a while, that means my other time I should try to do something fun. So I usually focus on adding a new habit or, you know, something in my life that can distract me from the the rut, the day-to-day. JL And then before we wrap up, do you have any final advice for anyone that’s got an idea and wants to get that idea to a product? SC What I say all the time is, just start with those baby steps. It’s going to take a thousand baby steps. Everyone has a good idea, right? Everyone. Ideas are worthless unless it’s something that gets made. So you know, if it’s going to take a thousand baby steps, then if you start today, you only have 999 left. But if you don’t, then it’s never going to happen. So it can be really daunting. You know, I look back and I can’t believe we have like a manufactured product. Like I never—it’s just insane. I never would imagine I could do something like this. But, it just took a thousand baby steps. JL I love it. Sara, thanks so much for joining us on No, You Go today. SC Yeah! [Music fades in] JL You’re so awesome! SC Thank you for having me. [Music fades out] Fuck Yeah of the Week [31:45] JL You know when you’re so excited about something that you just start going google wild and you have like one million tabs open and you can’t wait to read them all? That’s our next segment: the Fuck Yeah of the Week—where we get super excited about someone or something that we just want to google the shit out of. Katel, who’s our Fuck Yeah this week? KL I’m gonna go ahead and say it’s daylight, because this morning when I was making coffee I looked up and I realized that it’s now light out in the morning a little earlier, which is so awesome, because you know just a few weeks ago it was like dark when I was making coffee, which is just really depressing. So I’m just really excited that our days are getting a little longer and I feel like we can get a little bit more light and a little bit more time back into our lives. SWB And a little more energy, right? KL Yeah, definitely. JL I love that. I mean I know when I you know I work on sites so when I’m leaving work when it starts getting dark at four, I’m like, “Okay, well,” you know it’s hard to sort of keep in that mind set where like I’m still at work because then it feels like daytime is work— KL Yeah. JL —and nighttime is home. And so when like the day starts pushing more forward, then I’m like, “Okay, look, I still have this crossover.” It’s not such a hard line between like work and home. It’s just like, “Oh, here’s just my day.” Instead of like, “Here’s work. Here’s home.” It feels so versus each other— KL Yeah! You’re totally right. JL —when it’s day versus, you know? KL It feels like there’s a much crisper line. SWB Plus, every day is one step closer to it being summertime stoop beer season, and that is something that I look forward to saying, “Fuck yeah” to very soon. KL Me too. And beer garden weather. So, fuck yeah, daylight! [Music fades in.] SWB Fuck yeah, daylight! Outro [33:25] JL Well that’s it for this week’s episode [music fades out] of No, You Go, the show about being ambitious—and sticking together. No, You Go is recorded in our home city of Philadelphia, and our theme music is by The Diaphone. Thank you to Sara Chipps for being our guest today [music fades in]. We’ll be back next week with another episode [music ramps up to end].
Tracy Lee: @ladyleet | ladyleet.com Ben Lesh: @benlesh | medium.com/@benlesh Show Notes: 00:50 - What is This Dot? 03:26 - The RxJS 5.5.4 Release and Characterizing RxJS 05:14 - Observable 07:06 - Operators 09:52 - Learning RxJS 11:10 - Making RxJS Functional Programming Friendly 12:52 - Lettable Operators 15:14 - Pipeline Operators 21:33 - The Concept of Mappable 23:58 - Struggles While Learning RxJS 33:09 - Documentation 36:52 - Surprising Uses of Observables 40:27 - Weird Uses of RxJS 45:25 - Announcements: WHATWG to Include Observables and RxJS 6 Resources: this.media RxJS RX Workshop Ben Lesh: Hot vs Cold Observables learnrxjs.io RxMarbles Jewelbots Transcript: CHARLES: Hello everybody and welcome to The Frontside Podcast, Episode 91. My name is Charles Lowell, a developer here at The Frontside and your podcast host-in-training. Joining me today on the podcast is Elrick Ryan. Hello, Elrick. ELRICK: Hey, what's up? CHARLES: Not much. How are you doing? ELRICK: I'm great. Very excited to have these two folks on the podcast today. I feel like I know them… CHARLES: [Laughs] ELRICK: Very well, from Twitter. CHARLES: I feel like I know them well from Twitter, too. ELRICK: [Laughs] CHARLES: But I also feel like this is a fantastic company that is doing a lot of great stuff. ELRICK: Yup. CHARLES: Also not in Twitter. It should be pointed out. We have with us Tracy Lee and Ben Lesh from This Dot company. TRACY: Hey. CHARLES: So first of all, why don't we start, for those who don't know, what exactly is This Dot? What is it that you all do and what are you hoping to accomplish? TRACY: This Dot was created about a year ago. And it was founded by myself and Taras who work on it full-time. And we have amazing people like Ben, who's also one of our co-founders, and really amazing mentors. A lot of our friends, when they refer to what we actually do, they like to call it celebrity consulting. [Laughter] TRACY: Which I think is hilarious. But it's basically core contributors of different frameworks and libraries who work with us and lend their time to mentor and consult with different companies. So, I think the beautiful part about what we're trying to do is bring together the web. And we sort of do that as well not only through consulting and trying to help people succeed, but also through This Dot Media where it's basically a big playground of JavaScripting all the things. Ben and I do Modern Web podcast together. We do RX Workshop which is RxJS training together. And Ben also has a full-time job at Google. CHARLES: What do they got you doing over there at Google? BEN: Well, I work on a project called Alkali which is an internal platform as a service built on top of Angular. That's my day job. CHARLES: So, you've been actually involved in all the major front-end frameworks, right, at some point? BEN: Yeah, yes. I got my start with Angular 1 or AngularJS now, when I was working as a web developer in Pittsburgh, Pennsylvania at a company called Aesynt which was formerly McKesson Automation. And then I was noticed by Netflix who was starting to do some Angular 1 work and they hired me to come help them. And then they decided to do Ember which is fine. And I worked on a large Ember app there. Then I worked on a couple of large React apps at Netflix. And now I'm at Google building Angular apps. CHARLES: Alright. BEN: Which is Angular 5 now, I believe. CHARLES: So, you've come the full circle. BEN: Yeah. Yeah, definitely. CHARLES: [Chuckles] I have to imagine Angular's changed a lot since you were working on it the first time. BEN: Yeah. It was completely rewritten. TRACY: I feel like Angular's the new Ember. CHARLES: Angular is the new Ember? TRACY: [Laughs] BEN: You think? TRACY: Angular is the new Ember and Vue is the new AngularJS, is basically. [Laughs] CHARLES: Okay. [Laughter] CHARLES: What's the new React then? BEN: Preact would be the React. CHARLES: Preact? Okay, or is Glimmer… BEN: [Laughs] I'm just… CHARLES: Is Glimmer the new React? BEN: Oh, sure. [Laughs] CHARLES: It's important to keep these things straight in your head. BEN: Yeah, yeah. CHARLES: Saves on confusion. TRACY: Which came first? [Chuckles] BEN: Too late. I'm already confused. CHARLES: So now, before the show you were saying that you had just, literally just released RxJS, was it 5.5.4? BEN: That's right. That's right. The patch release, yeah. CHARLES: Okay. Am I also correct in understanding that RxJS has kind of come to very front and center position in Angular? Like they've built large portions of framework around it? BEN: Yeah, it's the only dependency for Angular. It is being used in a lot of official space for Angular. For example, Angular Material's Data Table uses observables which are coming from RxJS. They've got reactive forms. The router makes use of Observable. So, the integration started kind of small which HTTPClient being written around Observable. And it's grown from there as people seem to be grabbing on and enjoying more the React programming side of things. So, it's definitely the one framework that's really embraced reactive programming outside of say, Cycle.js or something like that. CHARLES: Mmhmm. So, just to give a general background, how would you characterize RxJS? BEN: It's a library built around Observable. And Observable is a push-based primitive that gives you sets of events, really. CHARLES: Mmhmm. BEN: So, that's like Lodash for events would be a good way to put it. You can take anything that you can get pushed at you, which is pretty much value type you can imagine, and wrap it in an observable and have it pushed out of the observable. And from there, you have a set of things that you can combine. And you can concatenate them, you can filter them, you can transform them, you can combine them with other sets, and so on. So, you've got this ability to query and manipulate in a declarative way, events. CHARLES: Now, Observable is also… So, when Jay was on the podcast we were talking about Redux observable. But there was outside of the context of RxJS, it was just observables were this standalone entity. But I understand that they actually came from the RxJS project. That was the progenitor of observables even though there's talk of maybe making them part of the JavaScript spec. BEN: Yeah, that's right. That's right. So, RxJS as it stands is a reference implementation for what could land in JavaScript or what could even land in the DOM as far as an observable type. Observable itself is very primitive but RxJS has a lot of operators and optimizations and things written around Observable. That's the entire purpose of the library. CHARLES: Mmhmm. So, what kind of value-adds does it provide on top of Observable? If Observable was the primitive, what are the combinators, so to speak? BEN: Oh, right. So, similar to what Lodash would add on top of say, an iterable or arrays, you would have the same sorts of things and more inside of RxJS. So, you've got zip which you would maybe have seen in Lodash or different means of combines. Of course, map and ‘merge map' which is like a flattening sort of operation. You can concatenate them together. But you also have these time-based things. You can do debouncing or throttling of events as they're coming over in observable and you create a new observable of that. So, the value-add is the ability to compose these primitive actions. You can take on an observable and make a new observable. We call it operators. And you can use those operators to build pretty much anything you can imagine as far as an app would go. CHARLES: So, do you find that most of the time all of the operators are contained right there inside RxJS? Or if you're going to be doing reactive programming, one of your tasks is going to be defining your own operators? BEN: No, pretty much everything you'd need will be defined within RxJS. There's 60 operators or so. CHARLES: Whoa, that's a lot. BEN: It's unlikely that someone's going to come up with one. And in fact, I would say the majority of those, probably 75% of those, you can create from the other 25%. So, some of the much more primitive operators could be used… TRACY: Which is sort of what Ben did in this last release, RxJS 5…. I don't know remember when you introduced the lettable operators but you… BEN: Yeah, 5.5. TRACY: Implemented [inaudible] operators. BEN: Yeah, so a good portion of them I started implementing in terms of other operators. CHARLES: Right. So, what was that? I didn't quite catch that, Tracy. You said that, what was the operator that was introduced? TRACY: So, in one of the latest releases of RxJS, one of the more significant releases where pipeable operators were introduced, what Ben did was he went ahead and implemented a lot of operators that were currently in the library in terms of other operators, which was able to give way to reduce the size of the library from, I think it was what, 30KB bundled, gzipped, and minified, to about 30KB, which was about 60 to 70% of the operators. Right, Ben? BEN: Yeah. So, the size reduction was in part that there's a lot of factors that went into the size reduction. It would be kind of hard to pin it down to a specific operator. But I know that some of the operators like the individual operators themselves, by reimplementing reduce which is the same as doing as scan and then take last, implementing it in terms of that is going to reduce the size of it probably 90% of that one particular file. So, there's a variety of things like that that have already started and that we're going to continue to do. We didn't do it with every operator that we could have. Some operators are very, very common and consequently we want them to be as optimized as possible. For example, map. You can implement map in terms of ‘merge map' but it would be very slow to do so. It might be smaller but it would be slower. We don't want that. So, there are certain areas we're always going to try to keep fairly a hot path to optimize them as much as possible. But in other spots like reduce which is less common and isn't usually considered to be a performance bottleneck, we can cut some corners. Or ‘to array' or other things like that. CHARLES: Mmhmm. TRACY: And I think another really interesting thing is a lot of people when learning RxJS, they… it's funny because we just gave an RX Workshop course this past weekend and the people that were there just were like, “Oh, we've heard of RxJS. We think it's a cool new thing. We have no plans to implement it in real life but let's just play around with it and let me learn it.” I think as people are starting to learn RxJS, one of the things that gets them really overwhelmed is this whole idea that they're having to learn a completely new language on top of JavaScript or what operators to use. And one of our friends, Brian Troncone who is on the Learning Team, the RxJS Learning Team, he pulled up the top 15 operators that were most commonly searched on his site. And some of them were ‘switch map', ‘merge map', ‘fork join', merge, et cetera. So, you can sort of tell that even though the library has quite a few… it's funny because Ben, I think the last RX Workshop you were using pairs and you had never used it before. BEN: Yeah. TRACY: So, it's always amusing for me how many people can be on the core team but have never implemented RxJS… CHARLES: [Laughs] TRACY: A certain way. BEN: Right. Right, right, right. CHARLES: You had said one of the recent releases was about making it more friendly for functional programming. Is that a subject that we can explore? Because using observables is already pretty FP-like. BEN: What it was before is we had dot chaining. So, you would do ‘dot map' and then call a method and then you get an observable back. And then you'd say ‘dot merge' and then you'd call a method on that, and so on and so forth. Now what you have is kind of a Ramda JS style pipe function that just takes a comma-separated list of other functions that are going to act upon the observable. So, it reads pretty much the same with a little more ceremony around it I guess. But the upside is that you can develop your operators as just higher-order functions. CHARLES: Right. And you don't have to do any monkey-patching of prototypes. BEN: Exactly, exactly. CHARLES: Because actually, okay, I see. This is actually pretty exciting, I think. Because we actually ran into this problem when we were using Redux Observable where we wanted to use some operators that were used by some library but we had to basically make a pull request upstream, or fork the upstream library to include the operators so that we could use them in our application. It was really weird. BEN: Yeah. CHARLES: The reason was because it was extending the observable prototype. BEN: Yeah. And there's so many… and that's one way to add that, is you extend the observable prototype and then you override lift so you return the same type of observable everywhere. And there are so many things that lettable operators solved for us. For example… CHARLES: So, lettable operators. So, that's the word that Tracy used and you just used it. What are lettable operators? BEN: Well, I've been trying to say pipeable and get that going instead of lettable. But basically there's an operator on RxJS that's been there forever called let. And let is an operator and what you do is you give it a function. And the function gives you the source observable and you're expected to return a new observable. And the idea is that you can then write a function elsewhere that you can then compose in as though it were an operator, anywhere you want, along with your other dot-chained operators. And the realization I had a few months ago was, “Well, why don't we just make all operators like this?” And then we can use functional programming to compose them with like a reduce or whatever. And that's exactly what the lettable operators are. And that's why I started calling them lettable operators. And I kind of regret it now, because so many people are saying it and it confuses new people. Because what in the world does lettable even mean? CHARLES: Right. [Laughs] BEN: So, they are pipeable operators or functional operators. But the point is that you have a higher-order function that returns a function of a specific shape. And that function shape is, it's a function that receives an observable and returns an observable, and that's it. So, basically it's a function that transforms an observable into a new observable. That's all an operator. That's all an operator's ever been. It's just this is in a different flavor. CHARLES: Now, I'm curious. Why does it do an observable into an observable and not a stream item into an observable? Because when you're actually chaining these things together, like with a map or with a ‘flat map' or all these things, you're actually getting an individual item and then returning an observable. Well, I guess in this case of a map you're getting an item and returning an item. But like… BEN: Right, but that's not what the entire operation is. So, you've got an operation you're performing whenever you say, if you're to just even dot-chain it, you'd say ‘observable dot map'. And when you say ‘dot map', it returns a new observable. And then you say ‘dot filter' and it returns another new observable. CHARLES: Oh, gotcha, gotcha, gotcha. Okay, yeah, yeah, yeah. Yeah, yeah. BEN: So, this function just embodies that step. CHARLES: I see, I see. And isn't there some special… I feel like there's some proposal for some special JavaScript syntax to make this type of chaining? BEN: Yeah, yeah, the pipeline operator. CHARLES: Okay. BEN: I don't know. I think that's still at stage one. I don't know that it's got a lot of headway. My sources and friends that are in the TC39 seem to think that it doesn't have a lot of headway. But I really think it's important. Because if you look at… the problem is we're using a language where the most common use case is you have to build it, get the size as small as possible because you need to send it over the wire to the browser. And understandably, browsers don't want to implement every possible method they could on say, Array, right? CHARLES: Mmhmm, right. BEN: There's a proposal in for ‘flat map'. They could add zip to Array. They could add all sorts of interesting things to Array just by itself. And that's why Lodash exists, right? CHARLES: Right. BEN: Is because not everything is on Array. And then so, the onus is then put on the community to come up with these solutions and the community has to build libraries that have these constraints in size. And what stinks about that is then you have say, an older version of Lodash where you'd be like, “Okay, well it has 36 different functions in it and I'm only using 3 of them. And I have to ship them all to the browser.” CHARLES: Mmhmm. BEN: And that's not what you want. So, then we have these other solutions around tree-shaking and this and that. And the real thing is what you want is you want to be able to compose things left to right and you want to be able to have these functions that you can use on a particular type in an ad hoc way. And there's been two proposals to try to address this. One was the ‘function bind' operator, CHARLES: Mmhmm. BEN: Which is colon colon. And what that did is it said, “You can use this function as a method, as though it were a method on an object. And we'll make sure that the ‘this' inside that function comes from the instance that's on the left-hand side of colon colon.” CHARLES: Right. BEN: That had a bunch of other problems. Like there's some real debate I guess on how they would tie that down to a specific type. So, that kind of fell dead in the water even though it had made some traction. And then the pipeline operator is different. And then what it says is, “Okay, whatever is on the…” And what it looks like is a pipe and a greater than right next to each other. And whatever's on the left-hand side of that operand gets passed as the first argument to the function on the right-hand side of that operand. CHARLES: Mmhmm. BEN: And so, what that means is for the pipeable operators, instead of having to use a pipe method on observable, you can just say, “instance of observable, pipeline operator and an operator, and then pipeline operator, and then the Rx operator, and then pipeline operator and the Rx operator, and so on.” And it would just be built-in. And the reason I think that JavaScript really needs it is that means that libraries like Lodash can be written in terms of simple functions and shipped piece-meal to the browser exactly as you need them. And people would just use the pipeline operator to use them, instead of having to wrap something in a big object so you can dot-chain things together or come up with your own functional pipe thing like RxJS had to. CHARLES: Right. Because it seems it happens again and again, right? Lodash, RxJS, jQuery. You just see this pattern of chaining, which is, you know… BEN: Yeah, yeah. People want chaining. People want left to right composition. CHARLES: Mmhmm. BEN: And it's problematic in a world where you want to shake off as much unused garbage as possible. And the only way to get dot chaining is by augmenting a prototype. There's all sorts of weird problems that can come with that. And so, the functional programming approach is one method. But then people look at it and they say, “Ooh, yuck. I've got to wrap things in a function named pipe. Wouldn't it be nicer if there was just some syntax to do this?” And yeah, it would be nicer. But I have less control over that. CHARLES: Right. But the other alternative is to have right to left function composition. BEN: Right, yeah. CHARLES: But there's not any special syntax for that, either. BEN: Not very readable. CHARLES: Yeah. BEN: So, you just wrap everything. And the innermost call is the first one and then you wrap it in another function and you wrap that in another function, and so on. Yeah, that's not [inaudible]. But I will say that the pipe function itself is pretty simple. It's basically a function that takes a rest of arguments that are all functions. CHARLES: Mmhmm. BEN: And so, you have this array of functions and you just reduce over it and call them. Well, you return a function. So, it's a higher function. You return a function that takes an argument then you reduce over the functions that came in as arguments and you call each one of them with whatever result was from the previous. CHARLES: Right. Like Tracy mentioned in the pre-show, I'm an aspiring student of functional programming. So, would this be kind of like a monoid here where you're mashing all these functions together? Is your empty value? I'm just going to throw it out there. I don't know if it's true or not, but that's my conjecture. BEN: Yes. Technically, it's a monoid because it wouldn't work unless it was a monoid. Because monoids, I believe the category theory I think for monoid is that monoids can be concatenated because they definitely have an end. CHARLES: Right. BEN: So, you would not be able to reduce over all those functions and build something with that, like that, unless it was a monoid. So yeah, the fact that there's reduction involved is a cue that it's a monoid. CHARLES: Woohoo! Alright. [Laughter] CHARLES: Have you found yourself wanting to apply some of these more “rigorous” formalisms that you find out there in the development of RxJS or is that just really a secondary concern? BEN: It's a secondary concern. It's not something that I like. It's something I think about from time to time, when really, debating any kind of heavy issue, sometimes it's helpful. But when it comes to teaching anybody anything, honestly the Haskell-isms and category theory names, all they do is just confuse people. And if you tell somebody something is a functor, they're like, “What?” And if you just say it's mappable, they're like, “Oh, okay. I can map that.” CHARLES: [Laughs] Right, right. BEN: And then the purists would be like, “But they're not the same thing.” And I would be like, “But the world doesn't care. I'm sorry.” CHARLES: Yeah, yeah. I'm kind of experiencing this debate myself. I'm not quite sure which side I fall on, because on the one hand it is arbitrary. Functor is a weird name. But I wish the concept of mappable existed. It does, but I feel like it would be handy if people… because there's literally five things that are super handy, right? Like mappable, if we could have a name for monoid. But it's like, really, you just need to think in terms of these five constructs for 99% of the stuff that you do. And so, I always wonder, where does that line lie? And how… mappable, is that really more accessible than functor? Or is that only because I was exposed to the concept of mapping for 10 years before I ever heard the F word. BEN: Yes, and yes. I mean, that's… CHARLES: [Laughs] BEN: Things that are more accessible are usually more accessible because of some pre-given knowledge, right? What works in JavaScript probably isn't going to work in Haskell or Scala or something, right? CHARLES: Mmhmm. BEN: If someone's a Java developer, certain idioms might not make sense to them that come from the JavaScript world. CHARLES: Right. But if I was learning like a student, I would think mappable, I'd be thinking like, I would literally be thinking like Google Maps or something like that. I don't know. BEN: Right, right. I mean, look at C#. C#, a mapping function is always going to be called select, right, because that's C#. That's their idiom for the same thing. CHARLES: Select? BEN: Yeah. CHARLES: Really? BEN: Yeah, select. So, they'll… CHARLES: Which in Ruby is like find. BEN: Yeah. there's select and then, what's the other one, ‘select many' or something like that. [Chuckles] BEN: So, that's C#. CHARLES: Oh, like it's select from SQL. Okay. BEN: Yeah, I think that's kind of where it came from because people had link and then they had link to SQL and then they're like, well I want to do this with regular code, with just using some more… less nuanced expressions. So, I want to be able to do method calls and chain those together. And so, you end up with select functions. And I think that that exists even in Rx.NET, although I haven't used Rx.NET. CHARLES: Hmm, okay. ELRICK: So, I know you do a lot of training with Rx. What are some of the concepts that people struggle with initially? TRACY: I think when we're teaching RX Workshop, a lot of the people sort of… I'll even see senior level people struggle with explaining it, is the difference between observables and observers and then wrapping their head around the idea that, “Hey, observables are just functions in JavaScript.” So, they're always thinking observables are going to do something for you. Actually, it's not just in Angular but also in React, but whenever someone's having issues with their Rx applications, it's usually something that they're like nesting observables or they're not subscribing to something or they've sort of hot-messed themselves into a tangle. And I'm sure you've debugged a bunch of this stuff before. The first thing I always ask people is, “Have you subscribed?” Or maybe they're using an Angular… they're using pipes async but they're also calling ‘dot subscribe' on their observable. BEN: Yeah. So, like in Angular they'll do both. Yeah. There's that. I think that, yeah, that relates to the problem of people not understanding that observables are really just functions. I keep saying that over and over again and people really don't seem to take it to heart for whatever reason. [Chuckles] BEN: But you get an observable and when you're chaining all those operators together, you're making another observable or whatever, observables don't do anything until you subscribe to them. They do nothing. CHARLES: Shouldn't they be called like subscribable? BEN: Yes. [Chuckles] BEN: They probably should. But we do hand them an observer. So, you are observing something. But the point being is that they don't do anything at all until you subscribe to them. And in that regard, they're like functions, where functions don't do anything unless you call them. So, what ends up happening with an observable is you subscribe to it. You give it an observer, three callbacks which are then coerced into an observer. And it takes that observer and it hands it to the body of this observable definition and literally has an observer inside of there. And then you basically execute that function synchronously and do things, whatever those things are, to set up some sort of observation. Maybe you spin up a WebSocket and tie into some events on it and call next on the observer to get values out of your observable. The point being that if you subscribe to an observable twice, it's the same thing as calling a function twice. And for some reason, people have a hard time with that. They think, if I subscribe to the observable twice, I've only called the function once. CHARLES: I experienced this confusion. And I remember the first time that that… like, I was playing with observables and the first time I actually discovered that, that it was actually calling my… now what do you call the function that you pass to the constructor that actually does, that calls next or that gets passed the observer? TRACY: [Inaudible] BEN: I like to call it an initialization function or something. But the official name from the TC39 proposal is subscriber function. CHARLES: Subscriber function. So, like… BEN: Yeah. CHARLES: I definitely remember it was one of those [makes explosion sound] mind-blowing moments when I realized when I call my subscribe method, the entire observable got run from the very beginning. But my intuition was that this is an object. It's got some shared state, like it's this quasar that I'm now observing and I'm seeing the flashes of light coming off of it. But it's still the same object. You think of it as having yeah, not as a function. Okay. No one ever described it to me as just a function. But I think I can see it now. ELRICK: Yeah, me neither. CHARLES: But yeah, you think of it in the same way that most people think of objects, as like, “I have this object. I have a reference to it.” Let observable equal new observable. It's a single thing. It's a single identity. And so, that's the thing that I'm observing. It's not that I'm invoking this observable to observe things. And I think that's, yeah, that's a subtle nuance there. I wish I had taken y'all's course, I guess is what I'm saying. ELRICK: Yeah. BEN: Yeah. Well, I've done a few talks on it. CHARLES: [Laughs] BEN: I always try to tell people, “It's just a function. It's just a function.” I think what happens to a lot of people too is there's the fact that it's an object. But I think what it is, is people's familiarity with promises does this. Because promises are always multicast. They are always “hot”. And the reason for this is because they're eager. So, by the time you have a promise, whatever is producing value to the promise has already started. And that means that they're inherently a multicast. CHARLES: Right. BEN: So, people are used to that behavior of, I can ‘then' off of this promise and it always means one thing. And it's like, yeah, because the one thing has nothing to do with the promise. It wasn't [Chuckles] CHARLES: Right. BEN: This promise is just an interface for you to view something that happened in the past, where an observable is more low-level than that and more simple than that. It just states, “I'm a function that you call. I'm going to be able to do anything a function can do. And by the way, you're giving me an observer and I'm going to do some stuff with that too and notify you via this observer that you handed me.” Because of that you could take an observable and close over something that had already started. Say you had a WebSocket that was already running. You could create a new observable and just like any function, close over that, externally create a WebSocket. And then everyone that subscribes to that observable is tying an observer to that same WebSocket. Then you're multicast. Then you're “hot”. ELRICK: [Inaudible] CHARLES: Right. So, I was going to say that's the distinction that Jay was talking about. He was talking about we're going to just talk about… he said at the very beginning, “We're just going to talk about hot observable.” ELRICK: Yup. CHARLES: But even a hot observable is still theoretically evaluating every single time you subscribe. You're getting a new observable. You're evaluating that observable afresh each time. It just so happens that in the lexical scope of that observable subscriber function, there is this WebSocket? BEN: Yeah. So, it's the same thing. Imagine you wrote a function that when you called it created a new WebSocket and then… say, you wrote a new function that you gave an observer object to, right? An observer object has next, error, and complete. And in that function, when you called it, it created a new WebSocket and then it tied the ‘on message' and ‘on close' and whatever to your observer's next method and your observer's error message and so on. When you call that function, you would expect a new WebSocket to be created every single time. Now, let's just say alternately you create a WebSocket and then you write a new function that that function closes over that WebSocket. So, you reference the WebSocket that you externally created inside of your function. When you call that function, it's not going to create a new WebSocket every time. It's just closing over it, right? So, even though they both are basically doing the same thing, now the latter one of those two things is basically a hot observable and the former is a cold observable. Because one is multicast which is, “I'm sharing this one WebSocket with everybody,” and the other one is unicast which is, “I am going to create a new WebSocket for each person that calls me.” And that's the [inaudible] people have a hard time with. CHARLES: Right. But really, it's just a matter of scope. BEN: Yeah. The thing people have a hard time with, with observables, is not realizing that they're actually just functions. CHARLES: Yeah. I just think that maybe… see, when I hear things like multicast and unicast, that makes me think of shared state, whereas when you say it's just a matter of scope, well then I'm thinking more in terms of it being just a function. It just happens that this WebSocket was already [scoped]. BEN: Well, shared state is a matter of scope, right? CHARLES: Yes, it is. It is. Oh, sorry. Shared state associated with some object identity, right? BEN: Right. CHARLES: But again, again, it's just preconceptions, really. It's just me thinking that I've had to manage lists of listeners and have multicast observers and single-cast observers and having to manage those lists and call notify on all of them. And that's really not what's happening at all. BEN: Yeah. Well, I guess the real point is observables can have shared state or they could not have shared state. I think the most common version and the most composable version of them, they do not have any shared state. It's just one of those things where just like a function can have shared state or it could be pure, right? There's nothing wrong with either one of those two uses of a function. And there's nothing wrong with either one of those two uses of Observable. So, honest to god, that is the biggest stumbling block I think that I see people have. That and if I had to characterize it I would say fear and loathing over the number of operators. People are like… CHARLES: [Chuckles] BEN: And they really think because everyone's used to dealing with these frameworks where there's an idiomatic way to do everything, they think there's going to be an RxJS idiomatic way to do things. And that's just patently false. That's like saying there's an idiomatic way to use functions. There's not. Use it however it works. The end. It's not… CHARLES: Mmhmm, mmhmm. BEN: You don't have to use every operator in a specific way. You can use it however works for you and it's fine. ELRICK: I see that you guys are doing some fantastic work with your documentation. Was that part of RxJS 2.0 docs? TRACY: I was trying to inspire people to take on the docs initiative because I think when I was starting to learn RxJS I would get really frustrated with the docs. BEN: Yeah. TRACY: I think the docs are greatly documented but at the same time if you're not a senior developer who understands Rx already, then it's not really helpful. Because it provides more of a reference point that the guys can go back and look at, or girls. So anyways, after many attempts of trying to get somebody to lead the project I just decided to lead the project myself. [Laughter] TRACY: And try to get… the community is interesting because I think because the docs can be sometimes confusing… Brian Troncone created LearnRxJS.io. There's these other visualization projects like RxMarbles, RxViz, et cetera. And we just needed to stick everybody together. So, it's been a project that I think has been going on for the past two months or so. We have… it's just an Angular app so it's probably one of the most easiest projects to contribute to. I remember the first time I tried to contribute to the Ember docs. It literally took me an hour to sit there with a learning team, Ember Learning Team member and… actually, maybe it was two hours, just to figure out how the heck… like all the things I had to download to get my environment set up so that I could actually even contribute to the darn documentation. But with the Rx, the current RxJS docs right now is just an Angular app. You can pull it down. It's really easy. We even have people who are just working on accessibility, which is super cool, right? So, it's a very friendly place for beginners. BEN: I'm super pleased with all the people that have been working on that. Brian and everybody, especially on the accessibility front. Jen Luker [inaudible] came in and voluntarily… she's like the stopgap for all accessibility to make sure everything is accessible before we release. So, that's pretty exciting. TRACY: Yeah. ELRICK: Mmhmm. TRACY: So funny because when me and Jen started talking, she was talking about something and then I was like, “Oh my god, I'm so excited about the docs.” She's like, “I'm so excited, too! But I don't really know why I'm excited. But you're excited, so I'm excited. Why are you excited?” [Laughter] TRACY: I was like, “I don't know. But I'm excited, too!” [Chuckles] TRACY: And then all of a sudden we have accessibility. [Laughs] ELRICK: Mmhmm. Yeah, I saw some amazing screenshots. Has the new docs, have they been pushed up to the URL yet? TRACY: Nah, they are about to. We were… we want to do one more accessibility run-through before we publish it. And then we're going to document. We want to document the top 15 most viewed operators. But we should probably see that in the next two weeks or so, that the new docs will be… I mean, it'll say “Beta, beta, beta” all over everything. But actually also, some of our friends, [Dmitri] from [Valas] Software, he is working on the translation portion to make it really easy for people to translate the docs. CHARLES: Ah. TRACY: So, a lot of that came from the inspiration from the Vue.js docs. we're taking the versioning examples that Ember has done with their docs as inspiration to make sure that our versioning is really great. So, it's great that we can lend upon all the other amazing ideas in the industry. ELRICK: Oh, yeah. CHARLES: Yeah, it's fantastic. I can't wait to see them. ELRICK: Yeah, me neither. The screenshots look amazing. I was like, “Wow. These are some fabulous documentation that's going to be coming out.” I can't wait. TRACY: Yeah. Thank you. CHARLES: Setting the bar. ELRICK: Really high. [Laughter] CHARLES: Actually, I'm curious. Because observables are so low-level, is there some use of them that… what's the use of them that you found most surprising? Or, “Whoa, this was a crazy hack.” BEN: The weirdest use of observables, there's been quite a few odd ones. One of the ones that I did one time that is maybe in RxJS's wheelhouse, it was just that RxJS already existed. So, I didn't want to pull in another transducer library, was using RxJS as a transducer. Basically… in Netflix we had a situation where we had these huge, huge arrays of very large objects. And if you try to take something like that and then map it and then filter it and then map it and then filter it, we're using Array map and filter, what ends up happening is you create all sorts of intermediary arrays in-memory. And then garbage collection has to come through and clean that up. And that locks your thread. And over time, we were experiencing slowness with this app. And it would just build up until eventually it ground to a halt. And I used RxJS because it was an available tool there to wrap these arrays in an observable and then perform operations on them step-by-step, the same map, filter, and so on. But when you do that, it doesn't create intermediary arrays because it passes each value along step to step instead of producing an entire array and then doing another step and producing an entire array, and so on. So… CHARLES: So, will you just… BEN: It saved garbage collection and it increased the performance of the app. But that's just in an extreme case. I would never do that with just regular arrays. If anything, it was because it was huge, huge arrays of very large objects. CHARLES: So, you would create an observable our of the array and then just feed each element into the observable one at a time? BEN: Well, no. If you say ‘observable from' and you give it an array, that's basically what it does. CHARLES: Okay. BEN: It loops over the array and nexts those values out of the array synchronously. CHARLES: I see, I see. BEN: So, it's like having a for loop and then inside of that for loop saying, “Apply the map. Apply the filter,” whatever, to each value as they're going through. But when you look at it, if you had array map, filter, reduce, it's literally just taking the first step and saying ‘observable from' and wrapping that array and then the rest of it's still the same. CHARLES: Right. Yeah. No, that's really cool. BEN: That was a weirder use of it. I've heard tell of other things where people used observables to do audio synchronization, which is pretty interesting. Because you have to be very precise with audio synchronization. So, hooking into some of the Web Audio APIs and that sort of thing. That's pretty interesting. The WebSocket multiplexing is something I did at Netflix that's a little bit avant-garde for observable use because you essentially have an observable that is your WebSocket. And then you create another observable that closes over that observable and sends messages over the WebSocket for what you're subscribed to and not subscribed to. And it enables you to very easily retry connections and these sorts of things. I did a whole talk on that. That one's pretty weird. CHARLES: Yeah. Man, I [inaudible] to see that. BEN: But in the general use case, you click a button, you make an AJAX request, and then you get that back and maybe you make another AJAX request. Or like drag and drop and these sorts of things where you're coordinating multiple events together, is the general use case. The non-weird use case for RxJS. Tracy does weird stuff with RxJS though. [Laughter] CHARLES: Yeah, what's some weird uses of RxJS? TRACY: I think my favorite thing to do right now is to figure out how many different IoT-related things I can make work with RxJS. So, how many random things can I connect to an application using that? BEN: Tracy's projects are the best. They're so good. [Laughter] TRACY: Well, Ben and I created an application where you can take pictures of things using the Google Image API and it'll spit back a set of puns for you. So, you take a picture of a banana, it'll give you banana puns. Or you can talk to it using the speech recognition API. My latest thing is I really want to figure out how to… I haven't figured out if Bluetooth Low Energy is actually enabled on Google Home Minis. But I want to get my Google Home Mini to say ‘booty'. [Inaudible] [Laughter] CHARLES: RxJS to the rescue. [Laughter] BEN: Oh, there was, you remember Ng-Cruise. We did Ng-Cruise and on there, Alex Castillo brought… TRACY: Oh, that was so cool. BEN: All sorts of interesting… you could read your brain waves. Or there was another one that was, what is it, the Microsoft, that band put around your wrist that would sense what direction your arm was in and whether or not your hand was flexed. And people… TRACY: Yeah, so you could flip through things. BEN: Yeah. And people were using reactive programming with that to do things like grab a ball on the screen. Or you could concentrate on an image and see if it went blurry or not. ELRICK: Well, for like, Minority Report. BEN: Oh, yeah, yeah. Literally, watching a machine read your mind with observables. That was pretty cool. That's got to be the weirdest. TRACY: Yeah, or we had somebody play the piano while they were wearing one of the brainwave… it's called the OpenBCI project is what it is. And what you can do is you can actually get the instructions to 3D print out your own headset and then buy the technology that allows you to read brain waves. And so with that, it's like… I mean, it was really awesome to watch her play the piano and just see how her brain waves were going super crazy. But there's also these really cool… I don't know if you guys have heard of Jewelbots, but they're these programmable friendship bracelets that are just little Arduino devices that light up. I have two of them. I haven't even opened them. CHARLES: [Laughs] TRACY: I've been waiting to play with them with you. I don't know what we're going to do, but I just want to send you lights. Flashing lights. [Laughter] TRACY: Morse code ask you questions about RxJS while you're working. [Laughter] CHARLES: Yeah. Critical bug. Toot-toot-toot-too-too-too-too-toot-toot. [Laughter] CHARLES: RxJS Justice League. TRACY: That would actually be really fun. [Laughter] TRACY: That would be really fun. I actually really want to do that. But… CHARLES: I'm sure the next time we talk, you will have. TRACY: [Laughs] Yes. Yes, yes, yes, I know. I know. we'll do it soon. We just need to find some time while we're not going crazy with conferences and stuff like that. CHARLES: So, before we head out, is there any upcoming events, talks, releases, anything that we ought to be, we or the listeners, ought to be aware of? TRACY: Yeah, so one of the things is that Ben and I this weekend actually just recorded the latest version of RX Workshop. So, if you want to learn all about the latest, latest, newest new, you can go ahead and take that course. We go through a lot of different things like multiplex WebSockets, building an application. Everywhere from the fundamentals to the more real world implementations of RxJS. BEN: Yeah. Even in the fundamentals area, we've had friends of ours that are definitely seasoned Rx veterans come to the workshop. And most of them ask the most questions while talking about the fundamentals. Because I tend to dig into, either deep into the internals or into the why's and how's thing. Why and how things work. Even when it comes to how to subscribe to an observable. Deep detailed information about what happens if you don't provide an error handler and certain cases and how that's going to change in upcoming versions, and why that's changing in upcoming versions, and what the TC39's thoughts are on that, and so on and so forth. So, I try to get into some deeper stuff and we have a lot of fun. And we tend to be a little goofier at the workshops from time to time than we were in this podcast. Tracy and I get silly when we're together. TRACY: It's very true. [Laughter] TRACY: But I think also, soon I think there are people that are going to be championing an Observable proposal on what [inaudible]. So, aside from the TC39 Observable proposal that's currently still at stage one, I don't know Ben if you want to talk a little bit about that. BEN: Oh, yeah. So, I've been involved in conversations with folks from Netflix and Google as well, Chrome team and TC39 members, about getting the WHATWG, the ‘what wig', they're a standards body similar to W3C, to include observables as part of the DOM. The post has not been made yet. But the post is going to be made soon as long as everybody's okay with it. And what it boils down to is the idea of using observables as part of event targets. An event target is the API we're all familiar with for ‘add event listener', ‘remove event listener'. So, pretty much anywhere you'd see those methods, there might also someday be an on method that would return an observable of events. So, it's really, really interesting thing because it would bring at least the primitives of reactive programming to the browser. And at the very least it would provide maybe a nicer API for people to subscribe to events coming from different DOM elements. Because ‘add event listener' and ‘remove event listener' are a little unergonomic at times, right? CHARLES: Yeah. They're the worst. BEN: Yeah. CHARLES: That's a very polite way of putting it. BEN: [Chuckles] So, that's one thing that's coming down the pipe. Other things, RxJS 6 is in the works. We recently tied off 5.5 in a stable branch. And master is now our alpha that we're working on. So, there's going to be a lot of refactoring and changes there, trying to make the library smaller and smaller. And trying to eliminate some of the footprints that maybe people had in previous versions. So, moving things around so people aren't importing stuff that were meant to be implementation details, reducing the size of the library, trying to eliminate some bloat, that sort of thing. I'm pretty excited about that. But that's going to be in alpha ongoing for a while. And then hopefully we'll be able to move into beta mid first quarter next year. And then when that'll be out of beta, who knows? It all depends on how well people like the beta and the alpha, right? CHARLES: Alright. Well, so if folks do want to follow up with y'all either in regards to the course or to upcoming releases or any of the other great stuff that's coming along, how would they get in touch with y'all? TRACY: You can find me on Twitter @ladyleet. But Ben is @BenLesh. RX Workshop is RXWorkshop.com. I think in January we're going to be doing state of JavaScript under This Dot Media again. So, that's where all the core contributors of different frameworks and libraries come together. So, we'll definitely be giving a state of RxJS at that time. And next year also Contributor Days will be happening. So, if you go to ContributorDays.com you can see the previous RxJS Contributor Days and figure out how to get involved. So, we're always open and happy and willing to teach everybody. And again, if you want to get involved it doesn't matter whether you have little experience or lots of experience. We are always willing to show you how you can play. BEN: Yeah. You can always find us on Twitter. And don't forget that if you don't find Tracy or I on Twitter, you can always message Jay Phelps on Twitter. That's important. @_JayPhelps. Really. TRACY: Yeah. [Laughter] BEN: You'll find us. CHARLES: [Chuckles] Look for Jay in the show notes. [Laughter] CHARLES: Alright. Well, thank you so much for all the stuff that y'all do, code and otherwise. And thank you so much Ben, thank you so much Tracy, for coming on the show. BEN: Thank you. CHARLES: Bye Elrick and bye everybody. If you want to reach out to us, you can always get in touch with us at @TheFrontside or send us an email at contact@frontside.io. Alright everybody, we'll see you next week.
Chad is joined by Sara Chipps, cofounder of Girl Develop It & CEO of Jewelbots, to discuss integrating with custom hardware, building a community of young coders, working with retailers, and branding. Sara on Giant Robots Jewelbots #JewelbotsBuild First Lego League Radical Candor Podcast Zero to One- Peter Thiel Robot Conference Room Signage Sara on Twitter Become a Sponsor of Giant Robots!
Rob and Jason are joined by Sara Chipps to discuss Jewelbots, Arduino and getting girls interested in STEM fields. Sara Chipps is a JavaScript developer based in NYC. She has been working on Software and the Open Source Community since 2001. She’s been obsessed with hardware and part of Nodebots since 2012. She is the CEO of Jewelbots, a company dedicated towards drastically changing the number of girls entering STEM fields using hardware. She was formerly the CTO of Flat Iron School, a school dedicated to teaching people of all ages how to build software and launch careers as software developers. In 2010 she cofounded Girl Develop It, a non-profit focused on helping more women become software developers. Girl Develop It is in 45 cities, and has taught over 17,000 women how to build software. News The C++ Annotations, a free up-to-date learners book/reference manual Choosing "Some C++" Over C GCC's move to C++ PacifiC++ Sara Chipps @SaraJChipps Sara Chipps' Blog Links Jewelbots Jewelbots Support Jewelbots is a friendship bracelet that teaches girls how to code Johnny Five Girl Develop It Flat Iron School Sponsors Incredibuild JetBrains
Chatting with Sara Chipps, CEO at Jewelbots. Music edited from 'Something Elated' by Broke For Free. freemusicarchive.org/music/Broke_Fo…mething_Elated From the Free Music Archive. CC Attribution 3.0 Produced by Rachel James. Positively Gotham Gal is proud to be made in NYC.
Friendship bracelets that teach girls to code! Carl and Richard talk to Sara Chipps about her experiences bringing Jewelbots to life. Sara talks about her idea to get girls more interested in coding by creating something programmable that girls will like - a friendship bracelet! Sara and her team put together a kickstarter in 2015 to raise $30,000 and ultimately raised $167,000 - the product was a hit right from the beginning. The story digs into the challenge of actually making a physical consumer product (as opposed to software), especially how much slower everything takes. But alls well that ends well - the product is shipping and people love it! Check it out!Support this podcast at — https://redcircle.com/net-rocks/donations
Friendship bracelets that teach girls to code! Carl and Richard talk to Sara Chipps about her experiences bringing Jewelbots to life. Sara talks about her idea to get girls more interested in coding by creating something programmable that girls will like - a friendship bracelet! Sara and her team put together a kickstarter in 2015 to raise $30,000 and ultimately raised $167,000 - the product was a hit right from the beginning. The story digs into the challenge of actually making a physical consumer product (as opposed to software), especially how much slower everything takes. But alls well that ends well - the product is shipping and people love it! Check it out!Support this podcast at — https://redcircle.com/net-rocks/donations
In this week's episode... Dogs and cats living together! Mass hysteria! Microsoft has now joined the Linux Foundation; Google has joined the .Net steering committee; and Visual Studio is available for Mac. The end times are here. Luckily, our good friend and Jewelbots founder Sara Rey Chipps stops by to make us feel better about the world.
In this week's episode... Dogs and cats living together! Mass hysteria! Microsoft has now joined the Linux Foundation; Google has joined the .Net steering committee; and Visual Studio is available for Mac. The end times are here. Luckily, our good friend and Jewelbots founder Sara Rey Chipps stops by to make us feel better about the world.
We talk to Brooke Moreland, co-founder of Jewelbots, about building smart, programmable friendly bracelets to teach girls and boys how to code. Also on the show, Internet celebrity Casie Stewart on the importance of full disclosure when working with brands in the online space. Plus, how the Myo armband, a wearable gesture control and motion control device, plans to build the future of mouse-free computing. In socially speaking, we discuss the impact of fake news on Facebook.
Arturo introduces himself and shares how he and his family left Venezuela for Miami. He then talks about how he got started in technology with the CS50x course. Cecil inquires what CS50x is and how Arturo got involved with it. The pannel then chats about the Internet of Things and the Kickstarter project Jewelbots. Arturo then shares about working at Harvard and what it's like being there everyday. Links Arturo on Twitter Arturo on Instagram Arturo on the Web America Verde CS50x Miami CS50 VRinc Webseries Sh*t Miami Girls Say...and Guys Richie Watches the Cubs Win the World Series Bio Arturo J. ...
George Stocker (@gortok) spoke with us about software, Jewelbots (@Jewelbots) and learning embedded systems to ship the product. Elecia's book is Making Embedded Systems. George also recommended Getting Started with BLE and Programming Pearls. The processor we talked about was the Nordic nRF51, a BLE system on a chip.
Sara Chipps, the creator of Jewelbots, and George Stocker, the VP of Engineering at Jewelbots joined the show to talk about connected wearables for kids, keeping UX simple, building a business on open source, and influencing young girls through the possibilities of coding.
Sara Chipps, the creator of Jewelbots, and George Stocker, the VP of Engineering at Jewelbots joined the show to talk about connected wearables for kids, keeping UX simple, building a business on open source, and influencing young girls through the possibilities of coding.
Amanda shares thoughts on CES 2016 from a fashion tech perspective and sits down with two companies reinventing the friendship bracelet to empower young girls in different ways. Gemio is a social wearable inviting girls to connect to one another through technology. Jewelbots is a friendship bracelet for the smartphone era that teaches girls to code.
Get your JS Remote Conf tickets! 02:10 - Peter Hoddie Introduction Twitter 02:36 - Kinoma 03:28 - Embedded Development in C; Approachability 05:24 - IoT = Internet of Things; Embedded Devices and Systems 08:59 - Mesh Networking 10:41 - IoT and JavaScript XS6 Duktape luvit Lua Jewelbots 20:08 - Getting Started & Electrical Engineering 22:42 - Testing 24:56 - Security 31:07 - Bootstrap 34:16 - Community Resistance 35:56 - Where is IoT heading as far as applications go? Scriptability 41:57 - Preparing Today for the Future Picks Let’s Encrypt (AJ) The web accessibility basics (Jamison) readthesource (Aimee) Drip (Chuck) Twilio (Chuck) JS Remote Conf (Chuck) All Remote Confs (Chuck) Standard ECMA-262 (Peter) The Future of the Internet--And How to Stop It by Jonathan Zittrain (Peter) Software Freedom Conservancy (Peter)
Get your JS Remote Conf tickets! 02:10 - Peter Hoddie Introduction Twitter 02:36 - Kinoma 03:28 - Embedded Development in C; Approachability 05:24 - IoT = Internet of Things; Embedded Devices and Systems 08:59 - Mesh Networking 10:41 - IoT and JavaScript XS6 Duktape luvit Lua Jewelbots 20:08 - Getting Started & Electrical Engineering 22:42 - Testing 24:56 - Security 31:07 - Bootstrap 34:16 - Community Resistance 35:56 - Where is IoT heading as far as applications go? Scriptability 41:57 - Preparing Today for the Future Picks Let’s Encrypt (AJ) The web accessibility basics (Jamison) readthesource (Aimee) Drip (Chuck) Twilio (Chuck) JS Remote Conf (Chuck) All Remote Confs (Chuck) Standard ECMA-262 (Peter) The Future of the Internet--And How to Stop It by Jonathan Zittrain (Peter) Software Freedom Conservancy (Peter)
Get your JS Remote Conf tickets! 02:10 - Peter Hoddie Introduction Twitter 02:36 - Kinoma 03:28 - Embedded Development in C; Approachability 05:24 - IoT = Internet of Things; Embedded Devices and Systems 08:59 - Mesh Networking 10:41 - IoT and JavaScript XS6 Duktape luvit Lua Jewelbots 20:08 - Getting Started & Electrical Engineering 22:42 - Testing 24:56 - Security 31:07 - Bootstrap 34:16 - Community Resistance 35:56 - Where is IoT heading as far as applications go? Scriptability 41:57 - Preparing Today for the Future Picks Let’s Encrypt (AJ) The web accessibility basics (Jamison) readthesource (Aimee) Drip (Chuck) Twilio (Chuck) JS Remote Conf (Chuck) All Remote Confs (Chuck) Standard ECMA-262 (Peter) The Future of the Internet--And How to Stop It by Jonathan Zittrain (Peter) Software Freedom Conservancy (Peter)
Brenda talks with Sara Chipps on the desire to educate in code, her inspiration to work on hardware, and the troubles of manufacturing. Upcase: 50% Off Your First Month For Giant Robots Listeners! Jewelbots CSS Dev Conf Girl Develop It Mesh Networking FIRST Robotics Programs Web Summit Barbie, You Can Be Anything Campaign NodeBots Highway1 Sara on Twitter Sara on Medium
Brooke, Sara and Jenna discuss how Jewelbots bracelets teach girls how to code, why being feminine and loving technology aren't mutually exclusive as well the two most important lessons they've learned in their careers.
This week on Awesomecast 257, we talk awesome things in technology, including: Katie shows us you don't need to be high-tech to be a techie. And, Mike joins us to show that hippies can be hip to tech, too! SaveFrom.net allows you to grab videos from the net. We don't condone stealing video but we want to be able to access it offline. Checking out Jewelbots - programmable friendship bracelet that teaches coding (including flying a drone!). Great geek tech for girls. Yes, we are talking about The Grateful Dead on this week's episode. Tune in to find out how they fit into tech talk. Katie is showing us Hop Skip Drive - Uber for kids that parents can track with GPS and a camera. Solution for the busy parent? It's Amazon Prime Day. How have you celebrated the day? Wired article talks about the Grateful Dead wall of sound and tech pioneering http://www.wired.com/2015/07/grateful-dead-fare-thee-well-tech-pioneers/ Shoutout to our Patreon supporter: @ThistleSea! Katie shares a CMU-grad-developed app Witness, an app that broadcasts location, audio and video to protect with a touch of a button. We're also talking about a similar app, the ACLU Mobile Justice. With all the public situations going on, it's good to utilize tech. For the price of HBO Now, you can finally get some cable free TV through Comcast's Stream. (Sorry, you need Comcast service to subscribe.) Did you know Microsoft updated Xbox Music with free streaming for tracks stored on OneDrive? Looks like Amazon Echo now supports wink-controlled smart home hardware! Chilla discussing home automation with Siri and Alexa. Scary just HOW easy it really would be. Tomorrow is Amazon Prime Day. But, the competition is stepping up. Black Friday in July. Presidential candidates on SnapChat. Tee hee. We're discussing the privacy talk at DEF CON canceled under questionable circumstances. After the show remember to: Eat at Slice on Broadway if you are in the Pittsburgh area! It is Awesome! (sliceonbroadway.com) Follow these awesome people on Twitter: John Chichilla (@chilla), Katie Dudas (@kdudders), Mike Pound (@unclecrappy), and Mike Sorg (@sorgatron). Also, check out sorgatronmedia.com and awesomecast.net for more entertainment; and view us livestreaming Tuesdays around 6:30 PM EST!
This week on Awesomecast 257, we talk awesome things in technology, including: Katie shows us you don't need to be high-tech to be a techie. And, Mike joins us to show that hippies can be hip to tech, too! SaveFrom.net allows you to grab videos from the net. We don't condone stealing video but we want to be able to access it offline. Checking out Jewelbots - programmable friendship bracelet that teaches coding (including flying a drone!). Great geek tech for girls. Yes, we are talking about The Grateful Dead on this week's episode. Tune in to find out how they fit into tech talk. Katie is showing us HopSkipDrive - Uber for kids that parents can track with GPS and a camera. Solution for the busy parent? It's #AmazonPrimeDay. How have you celebrated the day? Wired article talks about the Grateful Dead wall of sound and tech pioneering http://www.wired.com/2015/07/grateful-dead-fare-thee-well-tech-pioneers/ Shoutout to our Patreon supporter: @ThistleSea! Katie shares a CMU-grad-developed app Witness, an app that broadcasts location, audio and video to protect with a touch of a button. We're also talking about a similar app, the ACLU Mobile Justice. With all the public situations going on, it's good to utilize tech. For the price of HBO Now, you can finally get some cable free TV through Comcast's Stream. (Sorry, you need Comcast service to subscribe.) Did you know Microsoft updated Xbox Music with free streaming for tracks stored on OneDrive? Looks like Amazon Echo now supports wink-controlled smart home hardware! Chilla discussing home automation with Siri and Alexa. Scary just HOW easy it really would be. Tomorrow is Amazon Prime Day. But, the competition is stepping up. Black Friday in July. Presidential candidates on SnapChat. Tee hee. We're discussing the privacy talk at DEF CON canceled under questionable circumstances. After the show remember to: Eat at Slice on Broadway if you are in the Pittsburgh area! It is Awesome! (sliceonbroadway.com) Follow these awesome people on Twitter: John Chichilla (@chilla), Katie Dudas (@kdudders), Mike Pound (@unclecrappy), and Mike Sorg (@sorgatron). Also, check out sorgatronmedia.com and awesomecast.net for more entertainment; and view us livestreaming Tuesdays around 6:30 PM EST! MP3 Download From this show:
02:32 - Julian Cheal Introduction Twitter GitHub Blog 02:49 - Julian’s Background with Robots and Drones Arduino AR.Drone 03:32 - NodeCopter Events 04:31 - Traveling with Robots 05:35 - Julian’s Collection and Projects Julian Cheal: Dancing with Robots Raspberry Pi BeagleBone 07:46 - Giving Demos 09:12 - What Makes Robots? Sinon.JS MQTT Protocol 10:21 - Where is IoT (Internet of Things) Heading? Security 13:11 - Programming Languages NodeBots 14:15 - Tools and Protocols The MIDI Protocol Spark Core voodoospark 17:31 - Programming Challenges Around Hardware Hacking Artoo celluloid 18:49 - Barrier to Entry 20:41 - Getting Kids Started Kids Ruby Arduino Starter Kit 22:09 - Wearables EL Wire (Electroluminescent Wire) 23:18 - LEGO Robotics Mindstorms LabVIEW National Instruments 25:01 - Issues with Hardware Hacking 28:22 - Rubyists and Hardware Julian Cheal: Dancing with Robots JRuby Rubinius 29:45 - Interfacing with Humans iBeacon OpenCV 33:27 - [Kickstarter] CHIP - The World's First Nine Dollar Computer 34:01 - Connectivity Sphero Carin Meier: The Joy of Flying Robots with Clojure @ OSCON 2013 36:55 - More Interesting Projects Aaron Patterson: Using chicken scheme to read sausagebox values Oscilloscope Picks Jacob Kaplan-Moss Keynote @ Pycon 2015 (Jessica) Kobo Aura H20 (Avdi) Liz Abinante: Unicorns Are People, Too (Re-Thinking Soft and Hard Skills) @ Madison+ Ruby 2014 (Coraline) littleBits (Julian) Jewelbots (Julian) Ruby Rogues Episode #156: Hardware Hacking with Julia Grace (Julian) The End of Mr. Y by Scarlett Thomas (Julian)
02:32 - Julian Cheal Introduction Twitter GitHub Blog 02:49 - Julian’s Background with Robots and Drones Arduino AR.Drone 03:32 - NodeCopter Events 04:31 - Traveling with Robots 05:35 - Julian’s Collection and Projects Julian Cheal: Dancing with Robots Raspberry Pi BeagleBone 07:46 - Giving Demos 09:12 - What Makes Robots? Sinon.JS MQTT Protocol 10:21 - Where is IoT (Internet of Things) Heading? Security 13:11 - Programming Languages NodeBots 14:15 - Tools and Protocols The MIDI Protocol Spark Core voodoospark 17:31 - Programming Challenges Around Hardware Hacking Artoo celluloid 18:49 - Barrier to Entry 20:41 - Getting Kids Started Kids Ruby Arduino Starter Kit 22:09 - Wearables EL Wire (Electroluminescent Wire) 23:18 - LEGO Robotics Mindstorms LabVIEW National Instruments 25:01 - Issues with Hardware Hacking 28:22 - Rubyists and Hardware Julian Cheal: Dancing with Robots JRuby Rubinius 29:45 - Interfacing with Humans iBeacon OpenCV 33:27 - [Kickstarter] CHIP - The World's First Nine Dollar Computer 34:01 - Connectivity Sphero Carin Meier: The Joy of Flying Robots with Clojure @ OSCON 2013 36:55 - More Interesting Projects Aaron Patterson: Using chicken scheme to read sausagebox values Oscilloscope Picks Jacob Kaplan-Moss Keynote @ Pycon 2015 (Jessica) Kobo Aura H20 (Avdi) Liz Abinante: Unicorns Are People, Too (Re-Thinking Soft and Hard Skills) @ Madison+ Ruby 2014 (Coraline) littleBits (Julian) Jewelbots (Julian) Ruby Rogues Episode #156: Hardware Hacking with Julia Grace (Julian) The End of Mr. Y by Scarlett Thomas (Julian)
02:32 - Julian Cheal Introduction Twitter GitHub Blog 02:49 - Julian’s Background with Robots and Drones Arduino AR.Drone 03:32 - NodeCopter Events 04:31 - Traveling with Robots 05:35 - Julian’s Collection and Projects Julian Cheal: Dancing with Robots Raspberry Pi BeagleBone 07:46 - Giving Demos 09:12 - What Makes Robots? Sinon.JS MQTT Protocol 10:21 - Where is IoT (Internet of Things) Heading? Security 13:11 - Programming Languages NodeBots 14:15 - Tools and Protocols The MIDI Protocol Spark Core voodoospark 17:31 - Programming Challenges Around Hardware Hacking Artoo celluloid 18:49 - Barrier to Entry 20:41 - Getting Kids Started Kids Ruby Arduino Starter Kit 22:09 - Wearables EL Wire (Electroluminescent Wire) 23:18 - LEGO Robotics Mindstorms LabVIEW National Instruments 25:01 - Issues with Hardware Hacking 28:22 - Rubyists and Hardware Julian Cheal: Dancing with Robots JRuby Rubinius 29:45 - Interfacing with Humans iBeacon OpenCV 33:27 - [Kickstarter] CHIP - The World's First Nine Dollar Computer 34:01 - Connectivity Sphero Carin Meier: The Joy of Flying Robots with Clojure @ OSCON 2013 36:55 - More Interesting Projects Aaron Patterson: Using chicken scheme to read sausagebox values Oscilloscope Picks Jacob Kaplan-Moss Keynote @ Pycon 2015 (Jessica) Kobo Aura H20 (Avdi) Liz Abinante: Unicorns Are People, Too (Re-Thinking Soft and Hard Skills) @ Madison+ Ruby 2014 (Coraline) littleBits (Julian) Jewelbots (Julian) Ruby Rogues Episode #156: Hardware Hacking with Julia Grace (Julian) The End of Mr. Y by Scarlett Thomas (Julian)
Sara Chipps, co-founder of JewelBots, talks with us about the endeavor into building a hardware company, after spending so many years just focused on the software side. Learn more about your ad choices. Visit megaphone.fm/adchoices