CppCast - Jewelbots

Episode Date: April 7, 2017

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 S...oftware 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

Transcript
Discussion (0)
Starting point is 00:00:00 This episode of CppCast is sponsored by Incredibuild. Accelerate your C++ build by up to 30 times faster directly from within Visual Studio 2017. Just make sure to check the Incredibuild box in the C++ Workload VS 2017 setup. And by JetBrains, maker of intelligent development tools to simplify your challenging tasks and automate the routine ones. JetBrains is offering a 25% discount for an individual license on the C++ tool of your choice, CLion, ReSharper, C++, or AppCode. Use the coupon code JETBRAINS for CppCast during checkout at JetBrains.com. Episode 96 of CppCast with guest Sarah Chipps recorded April 7th, 2017.
Starting point is 00:01:01 In this episode, we discuss choosing some C++ over C. Then we talk to Sarah Chipps, founder and CEO of jewel box. Sarah talks to us about getting young girls interested in programming for jewel box and Arduino. Welcome to episode 96 of CppCast, the only podcast for C++ developers by C++ developers. I'm your host, Rob Irving, joined by my co-host, Jason Turner. Jason, how are you doing today? I'm doing pretty good, Rob. How are you doing? I'm doing good. It is April 7th, and as I discovered this morning, today is National Beer Day, Jason. Oh, that's right. Yes. And, you know, I kind of thought it was one of those like fake holidays, like a pirate day,
Starting point is 00:02:02 but I looked into it and it's a real uh holiday and it celebrates that towards the end of prohibition uh they pass a law allowing low alcohol beer and that was done on april 7th 1933 okay so but this isn't like i mean i'm not supposed to be taking off work today right no no it's not a real holiday, but it is a real thing that we have for a reason. It's not just some made-up internet thing. So are we celebrating today? I'm celebrating. I got a local beer here. It's Aviator Brewing Company down the street from me in Fuquay Verena, Hogwild IPA. Sounds good. You got anything? I don't at the moment, but I'm going to pretend like I'm drinking my probably second favorite beer, which is Mikkler Beer Geek Breakfast Stout.
Starting point is 00:02:50 Okay, yeah, because it is still kind of the a.m. for you. It's breakfast time for me pretty much at the moment, yeah. Okay. Well, at the top of our episode, we'd like to read a piece of feedback. This week, we got a comment on our episode from a while ago with IncludeOS. This is from Olumide saying, gripping podcast. I normally work while I listen to podcasts. I could hardly work while listening to this one. Had to pay extra
Starting point is 00:03:14 attention to every word. Gonna listen again and maybe again. Keep up the good work, Fred. Seriously looking forward to the multi-threaded version. IncludeOS was a great episode. It was a while ago, but really amazing stuff they're doing with that. Yeah, I'm trying to remember. Was that back before CppCon? I believe it was right before CppCon because we met Alfred at CppCon and talked more about it.
Starting point is 00:03:37 Yeah, it sounds right. It's been a while. Yeah, it has been a while. I'm wondering if they've had any progress with getting multi-threading into there. You know, I haven't really been following the news, but I should check on it again. Yeah, well, Olamide, thanks for reaching out to us. We'd love to hear your thoughts about the show as well. You can always reach out to us on Facebook, Twitter, or email us at feedback at cppcast.com. And don't forget to leave us a review on iTunes. So joining us today is Sarah Chips.
Starting point is 00:04:04 Sarah is a JavaScript developer based in New York City. She's been working on software in 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 Flatiron School, a school dedicated to teaching people of all ages how to build software and launch careers as software developers. And in 2010, she co-founded Girl Develop It, a nonprofit 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. Sarah, welcome to the show. Hi, guys. Thanks so much for having me. That's a long bio.
Starting point is 00:04:47 It's shorter than some. It's good. It's a lot of stuff. So, I mean, we'll get into this later, but it feels like a little bit of a disconnect to be obsessed with hardware and a JavaScript developer. Yeah. Well, it turns out there's this awesome library called johnny five um like the robot do you remember the robot absolutely yeah yeah just the best um and it was made by a guy named rick waldron that allows you to compile javascript down to something that arduino can understand
Starting point is 00:05:20 uh so um that's kind of how i got into hardware it's a great first step for people because um as i'm sure you guys know uh usually when you're writing um firmware you're writing c or c plus plus um and uh so that can be difficult when it's not the language that you're used to it's definitely, you know, JavaScript syntax can be a little bit more beginner friendly. So that's how I got involved in hardware to begin with, discovering Johnny5. And then from there I kind of got deeper and deeper.
Starting point is 00:06:01 That's great. We're probably going to have to dig into Johnny5 some more later when we get to the bulk of the meat of the interview here, I think. Yeah, it's very cool. Yeah. Okay, well, we've got a couple news articles to discuss. Feel free to comment on any of these, Sarah, and then we'll start talking to you more about Jewelbots and Arduino and Johnny Five, okay? That sounds great. Okay, so this first one is the C++ annotations. And this is, it looks like it's coming from a university professor,
Starting point is 00:06:29 and it's his kind of document that he teaches off of. And it's, you're shaking your head at me, Jason. Oh, I'm just looking. I mean, it's been, she's been working on it for 23 years. That's why I'm shaking my head. Yeah, so it's pretty cool how he's been keeping it up to date with all the new features being added to the language. So it just recently got updated for 2017.
Starting point is 00:06:53 It has a bunch of features that are going to be in C++ 2017. And you can actually get a hard copy of this if you want to read it. I don't think it's available as a book but you can print it out and uh it's just um uh a good source for users of c who want to get into c++ i think is kind of the target audience but it goes all the way down variatic templates partial specialization of templates i mean i didn't seem to be leaving anything out yeah i was pretty floored by how detailed it is and you know how there's no stone left unturned it feels like. Yeah, very in-depth. Although,
Starting point is 00:07:29 I did look at some of the comments on Reddit in response to this getting posted and there were a couple people who picked it apart a little bit as being outdated. There was one comment that it talks about compiler availability on Windows and it only
Starting point is 00:07:46 talks about Sigwin and using that to compile for GCC. Obviously we have MinGW or Visual Studio these days. I can imagine as large as this is and as long as it's been maintained, it would be like
Starting point is 00:08:02 maintaining a large code base. You moved your code from C++98 to C++14, but there's still going to be pieces left behind that you didn't quite get to yet. Right. So maybe it's focused more on updating for new C++ features and not necessarily updating the entire document,
Starting point is 00:08:21 which would make sense. Perhaps. Okay, this next article we added is a post on Medium from David Strauss. And this is kind of in the same line of thinking with that last one about choosing some C++ over C. And I'm guessing this is coming from maybe an embedded developer. And he's talking about, you know, we've talked several times in the show about C developers, maybe not trusting C++ and not wanting to get into object oriented development.
Starting point is 00:08:53 And this is basically saying, you know, you don't have to use any of the features you don't want, but you should be using C++ in order to avoid some of the several deficiencies with C. Yes. Yeah. So the article says you don't have to use those features. Sure. And I think what the author means to say is you don't have to write code to the... Like, you don't have to implement your own templates. You don't have to implement your own templates.
Starting point is 00:09:27 You don't have to throw your own exceptions. But his examples are using lambdas and standard vector and things that are templates and can possibly throw exceptions and are using some of the higher-level features of C++. So some C developers might still be wary. They might be. But I like the approach that he takes,
Starting point is 00:09:48 showing how much easier it is to create a callback with a lambda instead of doing this void pointer nonsense that we're used to in C. He's using curl as an example there and talking about how you need to define a struct and pass the struct along as a void pointer, and it's just so much
Starting point is 00:10:03 easier to use a more C++ style you know way of handling this right yeah and one other thing that he pointed out at the bottom of the article which i wasn't aware of is that this is kind of what gcc does that they moved to c++ uh beginning in 2008 but they're really, you know, they started off as C and they're not using all the C++ features. They're using a subset to make things easier and avoid some of the things he talked about in this article. And so I wasn't aware of that. I kind of assumed GCC was already built in C++ or always was, but apparently it was C up until 2008.
Starting point is 00:10:42 I remember some of the news. That's interesting. Yeah. and toll 2008 i remember some of the news that's interesting yeah um next one we have a article about c++ 18 coming next year and obviously uh this was a april fool's joke i'm not sure if anyone really got tricked by this one but uh yeah c++ 18 features coming modules concepts ranges coroutines contracts and possibly transactional memory. So it's basically all the list of things that people thought were going to make it into C++17 and didn't. And yeah, so he did kind of have a follow-up saying, you know, maybe we should have done this with C++18,
Starting point is 00:11:20 but I think the committee is sticking to the three-year cycles. I think so. Okay, as someone that is not very deep in the C++ community or the development of C++, I was fooled. I was like, oh, this is so nice. Well, it is a nice feature list. Hopefully we'll get it in three years, just not next year. Yeah, sorry.
Starting point is 00:11:43 Actually, the second way i was fooled i was also fooled apparently spotify does april fools every year and i i had no idea and i told at least a dozen people that spotify was bought by google for 41 billion dollars until someone was like yeah no i was a little disappointed by april fools this year because it was on a saturday um i feel like maybe i just wasn't paying attention as much but i was a little disappointed by April Fools this year because it was on a Saturday. I feel like maybe I just wasn't paying attention as much, but I was a little disappointed by some of the things I saw. Although I did watch the Google Gnome video. That was pretty funny.
Starting point is 00:12:13 I didn't see that one. I saw Stack Overflows. I forget what it was now, but it was funny. Was Stack Overflows the dance authentication? Yeah, that's it. That was great. Yeah. It's authentication. Yeah, that's it. That was great. What Google did with Google Gnome was it was kind of like the Alexa Google Home type thing,
Starting point is 00:12:34 only it was shaped like a garden gnome. Oh, that's awesome. Yeah, and you had to ask it outdoor questions. Like it wouldn't respond to you if you tried to add something to your shopping list. It's like, no, that's an indoor thing i can't do that you know i i have no interest in a device that's listening 24 hours a day in my house like this um i'm definitely in that camp of people um but you know i might get the google gnome that sounds more interesting and you don't talk about confidential things outside. Right.
Starting point is 00:13:07 What's the weather? It can tell me stuff like that. Okay. And then the last article, which I think we talked about a little bit two weeks ago, is Pacific C++. And this is the first major C++ conference in the Asia-Pacific region. And Jason, you are going to be there as the second day keynote. Yes. And also Chandler Cruth will be the first day keynote.
Starting point is 00:13:32 It looks like they haven't announced any of the other speakers yet, right? Right. And they did a call for speakers, which the submissions close on May 19th. So if you have any interest in speaking there, get your submission submitted. Awesome. Awesome. Okay, so Sarah, why don't we start off by you telling us exactly what Jewelbots is and how you got started on the project. Yeah, awesome. So Jewelbots are smart, programmable friendship bracelets that are designed to inspire girls to code.
Starting point is 00:14:09 I got started on Jewelbots. It's been about three and a half years. And I started Jewelbots as, you know, I've always had a real passion for wanting to get a more diverse group of people to be building software because I love it. I've loved having a career in software and I feel like it's such like a powerful thing to be able to tell computers what to do. And, you know, and so I've always kind of tried to figure out how we can change that. And I really found that a lot of adult women that I would talk to that weren't engineers would say things like, I didn't even know what an engineer was until I got to college, you know, or, you know, I and when I was there, you know, I just didn't think it was something for me. And then when I talked to my male peers, you know,
Starting point is 00:15:03 that had found it earlier, what I often heard from them is that they got into programming when they were in their preteen years, because of gaming. How did how did you both get into programming? Jason, go ahead. Yeah. Well, I guess it's kind of pretty early history. but my, my brother, my family got a TI-99 and then my brother bought a Commodore 64. So we're talking eighties and my brother was interested in programming. So he, I mean, he's six years older than me. I would sit in his lap and he would teach me programming stuff. And that's just, it's just kind of always been a part of my life in some regard. That's so neat. How old were you? You must have been small if you were sitting in his lap. Yeah, that would have been... The first programming that I recall doing on my own was in second grade, and that was
Starting point is 00:15:53 probably kindergarten. Wow. Yeah. Wow. Yeah, I didn't get into it as young as Jason was, but I did take a visual basic class in high school, and I was very interested in gaming at a young age, and I think I may have done some modding tools, which was some basic programming back in the day.
Starting point is 00:16:12 Were you writing Quake mods in QuakeScript? No, not Quake mods. Never Enter Nights, I think, was what I did. But seriously, to bring up what Sarah was saying, I actually met a fair number of my friends in college who were not in computer science or engineering fields, got an interest in programming because of Quake. That's so interesting.
Starting point is 00:16:33 Yeah. That makes sense. The new Quake is Minecraft. Right. Yeah. Yeah. There's a lot of eight-year-old server admins running around. I know. Minecraft. Right. Yeah. Yeah. There's a lot of eight-year-old server admins running around right now because of Minecraft. Yeah.
Starting point is 00:16:51 So I often heard, and my story is similar. I was 11 when I got into programming. I think that there was a lot of people, maybe in our generation, sounds like we're a similar age group, that got into programming as a way to make friends. And so I found BBSs when I was young. I was a homeschool kid. And so talking to other people was very exciting to me. So I ended up helping to run a local BBS. And then I took a C++ class in college, sorry, college, in high school, actually, that I
Starting point is 00:17:23 really loved. And I was like, wait, I think like this. And you can do this as a job. This is pretty neat. So what I wanted to do is kind of like figure out if there's, because we tell, right, we tell girls to learn to code now a lot and kids to learn to code. But that's boring, you know, like, we also tell kids to learn math, and that's boring you know like we also tell kids to learn math and that's boring and you know like to find something that they love um to like build something that's something they love and that they can make better via code uh is great you know kind of like quake or i remember when i
Starting point is 00:17:57 when myspace came out and for like the first time ever it was cool to my friends that i knew how to code um up until then it was like very embarrassing, but like they were so excited because I could make them like their flashy glittery pages. And they didn't know how to do that. So we kind of wanted to make something like that. So we went to a whole bunch of schools. We talked to dozens and dozens of girls, you know, a few hundred. And we had an idea of what we were going to build. We were going to build a bracelet that you could change color to match your outfit. And we would talk to girls about that. And they were like, oh, that's dumb. Okay. And so we would talk to them about what they do like.
Starting point is 00:18:46 And it's just such a big time in their lives for friendships. It's so important to them, and they already wear friendship bracelets. And when I started talking about, like, a bracelet you could use to send secret messages to your friends, they started really freaking out. So that's what we built. It took us a couple years, but we just started shipping in November and now there are 8 year olds writing C++ which is pretty cool
Starting point is 00:19:10 that is really cool so I want to dig more into Jewelbots but just on the topic of like STEM and girls I've noticed there's like more products available these days or at least there's an effort to have more I have a young daughter and we recently got her some um goldie blocks toys are there other things like that that are kind of appealing to that you know to stem for girls type thing yeah goldie blocks is excellent um there's also something called uh ruminate that is like a dollhouse kit um for girls that age um there's a lot of what'd you say i said that sounds like fun to me yeah right yeah there's another one uh this is
Starting point is 00:19:54 more this is like more gender neutral it's called codepillar it's by fisher price um and my i have a nephew and he is uh six and he loves his codepillar that's like a programmable robot caterpillar yeah it's pretty cool it's basically logic based so like you get these like body segments for this caterpillar and it'll be like one will be the turn left segment and then you can put it before or after the go straight segment uh and then there's like a music segment and then you just set them up and then you let them go. And the, and the code,
Starting point is 00:20:29 the Caterpillar just kind of runs in a loop. And it's neat because I always get them the coding toys. I'm always like shoving it down their throat. This is the first one that he like really loves. He plays with it every time I see him. That's cool. Yeah. Reminds me. So. Go ahead, Jason.
Starting point is 00:20:48 It reminds me of some toys that I remember being around in the 80s, maybe early 90s, like cars and stuff that you could just press forward, forward, forward, left, left, right, forward, left, right, whatever, then hit run program and it would do what you did. It only had like four buttons on the entire
Starting point is 00:21:04 thing. That's interesting. And was it branded as something that would help you learn to code, or was it just like this is a car? I think it was just branded as a car. And I've never tried to find that kind of thing again, but I distinctly remember it existing. Hopefully it wasn't just in my mind.
Starting point is 00:21:26 Yeah, that makes sense. It's interesting. A lot of them are, like, learn-to-code for young ones, and they're more like learn logic, which makes a lot of sense. But it's interesting that there were ones that were like that that weren't branded that way. Okay, so one question I had about the bracelets themselves was on the website it says uh they don't have gps yet you're doing some type of location-based notifications when uh one of your friends is nearby how does that work exactly yeah so they uh they they use
Starting point is 00:21:57 bluetooth to detect each other it's the only wearable that uses bluetooth to um go from device device instead of device to phone. And it's interesting. We're not allowed to say Bluetooth on the website without paying them a lot of money. So we just kind of have to hint at it. Right. That is interesting. Go ahead, Jason.
Starting point is 00:22:21 Well, I didn't know that you could use, I'm assuming it's like some Bluetooth LE or something so that you're not sucking the battery all the time, but I didn't know you could use that to communicate between devices like that. Yeah, it does like polling, you know, just kind of every few microseconds to say like, is there a Jewelbot nearby? Is there a Jewelbot nearby? And so that's, and if it is,
Starting point is 00:22:44 it reacts and sends each other tiny messages that way too. Okay. Okay. So how exactly do, do girls interact with the bracelets? It looks like there is an iOS and Android app, but then you're also saying, you know,
Starting point is 00:22:58 you can code C plus plus with Arduino, right? Yeah. So out of the box, they can pair the bracelet. They don't need a phone. They don't need anything. Um, basically you use the button and you pair your bracelets, um, to, and you pick a friendship color. Uh, and then whenever you're near each other, your bracelets turn that color and you can send secret messages using, uh, lights and vibrations.
Starting point is 00:23:21 Um, and then if they want to get more, we wanted to make something that worked out of the box and they didn't have to code it. Okay. And if they want to code it, they can plug it into their laptops or desktops and use the Arduino programming environment to code their Joule bot to do different things. And they can code everything from, you know,
Starting point is 00:23:46 just using the lights, the button, and the vibrations to do things that they come up with or things like if I'm near these three friends, then my bracelet acts this way. When we first see each other, they go on rainbow animations, and then it does X, Y, Z. And so that's been the friendship code is something we actually just released um which is something they've been having a lot of fun with so it has a vibration motor multiple lights it sounds like
Starting point is 00:24:18 and some buttons that they can program and interact with yeah so there's one button, there's four RGB LEDs, a vibration motor, and then the microprocessor. Okay. I'm thinking four RGB LEDs, that's a lot of possibilities, actually, for what you could do. Right? There's all these colors.
Starting point is 00:24:38 Yeah, like for real. So I don't think i've ever used arduino but arduino is based on c++ um and there's a separate arduino library uh do you have any idea what version of c++ you can use when you're writing arduino programs actually that's a really good question that i don't have the answer for um and that's something i didn't mean to look up um basically what arduino does is they've written their own libraries uh to to make it a bit easier uh and i keep saying the word easy um and hard when i'm referring to c++ uh it's not i don't uh it's just i'm sure i don't know if you well i don't think it's a really beginner-friendly language. I think it's a really powerful language.
Starting point is 00:25:27 And in fact, in the way that now that I am coding C++, a lot more often than I'm doing JavaScript, I feel awesome. But basically, syntactically, it can be difficult for a beginner to jump in and get really active without messing some things up. a little more beginner-friendly by making libraries that do things like, you know, microprocessor.lights.on type of thing. So it works with the standard Arduino IDE, right? Yes. Okay, so I think that is GCC 4.9 for our listeners. So that's most of C++++ 14 but not all of it i believe okay
Starting point is 00:26:31 i just googled it and found a stack overflow post that looks like it's a bit dated but it said back in july 2014 you could specifically target c++ 11 and it was expected that by later that year, they would have C++11 by default. So maybe 11 is by default, and you can target 14 explicitly? Maybe. I haven't used it. Yeah, I'm reading the same post. Okay. So what are some of the cooler programs you've seen girls make with the Arduino C++ for Joule bots?
Starting point is 00:27:07 My number one favorite is a metronome um like a girl um for her cello lessons she uh or practicing her cello she programmed it so when she hits the button she can get some different uh cadence uh on her jewel bot and just the vibrations um so that her metronome doesn't have to be out loud it's on her jolba and just the vibrations. So her metronome doesn't have to be out loud. It's on her wrist. That's one of those things. I knew they would come up with things that we hadn't thought of, and that was one of the things that I was like, oh, wow, you can use it for that.
Starting point is 00:27:34 That's neat. A lot of the friendship stuff is cool. Well, I don't know how old your daughter is, but do you know what musically is? I do not. My daughter is five and a half yeah okay so musically i think it's something we'll all know about in a couple years it's funny because one thing i've learned about this demographic or realized that this demographic is they're the ones that pick all the stuff that we like a few years later like snapchat and instagram
Starting point is 00:28:02 and you know like the pop music that we listen to so musically for them is the new hottest thing uh and it is they just make tiny music videos it's definitely one of those things as an adult that you're like all right well why don't you just use any of the other platforms that you could do that on but no they love this musically um but so we have girls making musicallys where like the um their jewel bot lights up to their favorite song and they can they do these like little dances which is cool um so those are really fun um yeah they come up with all kinds of fun stuff which is really neat because we like stuff that we don't think about and we're always surprised by them
Starting point is 00:28:41 so how does that work do they like program in the lights and everything for the entire sequence of the song or is it somehow respond to the music that is being played? They do it for the sequence of the song. But when you have musically, it's like a six, I think it's more than six seconds. It's only a couple seconds. So they'll do like part of the song.
Starting point is 00:29:05 Okay. Okay. Okay. All right. So maybe if I could just take a step back, you were saying that you think of, you know, C++ is not terribly beginner friendly from a syntax perspective, but the tools are opened up for C++. So where do you see the role of C and C++ in like learning how to program compared to your, your history with JavaScript? Yeah, I think that... So I've learned C++ first. I think C++ is a great first language to learn,
Starting point is 00:29:37 especially as you're learning a lot of important things like pointers and a little bit about memory management and that kind of thing, which really helps you understand, um, uh, which really helps you understand how a compiler works and what it's doing for you, which a lot of the languages like JavaScript and, uh, Ruby and things like that do for you. Um, so I think people are kind of starting to lose the understanding of what happens, you know, when you're compiling code. So I think, I don't think C++ is going anywhere. I think we're doing a lot of work to make it, you know, for our age group, learning about things like that is very difficult, you know, because we're talking about 10, 11-year-olds. So at least starting with the, you know, jewelbots.led.
Starting point is 00:30:32 You know, and passing values like colors and microseconds, I think for them is a lot easier to understand. So I think like a slow getting started and then learning about more advanced concepts is, um, is the way to do it. So you think it's fair to say that C++ gives you the ability to give them that these high level constructs to work with so they don't have to worry about those details? Yeah, exactly. Exactly. Okay. And just out of curiosity, what's like some of the younger audience, like how, how young of a jewel
Starting point is 00:31:06 bots user have you seen uh programming with your arduino part of it i think eight is kind of the so playing playing with the device like five or six is you know because like it's kind it's easy to understand you could run around but eight is kind of the lowest that like the youngest we'd be able to see of actually like building something, which is pretty neat. Usually around 10, 11 is where our core audience is. Okay. And you want to tell us a little bit more about Johnny 5, this JavaScript to C++ project you were telling us about? Yeah.
Starting point is 00:31:39 So Johnny 5 has been around for a little while, and it's given birth to a movement called NodeBots. But Johnny Five, it was released in 2012, and it's used in addition with SerialPort, which is another library that allows you to communicate from using not like from terminal or something else and compile to your compile to your Arduino. and so basically it uses JavaScript as a driver and builds drivers for different either components of a board or different boards there is Johnny5 for working with all kinds of devices like drones and there are, you can work with the Microsoft Connect, which is very cool. So it's a project that's been going for a long time.
Starting point is 00:32:54 People really like it. Okay, and obviously we're glad to hear that your JewelBots users are using C++, but is that an option for them too, that they could use Johnny5 for JewelBots? Yeah, that's definitely on the timeline or definitely on the roadmap somewhere down the road is to give it a try. There's definitely not room on our microprocessor
Starting point is 00:33:20 for a compiler for something like JavaScript. In order to use Johnny-Five, it would have to be either tethered to a laptop or do something over Bluetooth. So that's something we're going to look into. I think the next step for us, so right now it's a pretty steep jump from I'm using this bracelet to send secret messages
Starting point is 00:33:43 to I'm writing C. And we want, or C++ rather. So we want to do something in the middle. And so we're talking about doing like a drag and drop interface on the app as a next step. And then they can get even deeper because the drag and drop will introduce them to important concepts. And once they understand that they can say, Oh, I can actually edit this further.
Starting point is 00:34:09 So I think that's step next. I wanted to interrupt this discussion for just a moment to bring you a word from our sponsors. IncrediBuild dramatically reduces compilation and development times with unique process virtualization technology. The tech transforms your computer network into a virtual supercomputer and lets each workstation use hundreds of vital cores across the network. Use IncrediBuild to accelerate much more than just C++ compilations,
Starting point is 00:34:35 speed up your unit tests, run more development cycles, and scale your development to the cloud to unleash unreal speeds. Join more than 100,000 users to save hundreds of monthly developer hours using existing hardware incredibles is already integrated into visual studio 2017 just make sure to check the incredible box in the c++ workload in the visual studio 2017 setup i'm kind of curious what the getting started process is like i know you said you can you can use it without having a computer or any device to pair it with,
Starting point is 00:35:07 but say I get a Jewelbot and my goal is to immediately plug it in and start programming with it. What does that look like? Yeah, I'm going to put a link. So we just revamped our docs. So I'm going to put a link into chat. Sure.
Starting point is 00:35:23 So you guys can take a look um so if you see anything wrong let me know because i coded and i i hate css i can't even tell you it's the worst okay so this is your support page and we'll definitely put this in the show notes yeah yeah great but uh if you go to under friends and pairing, you can see, so the way they pair the device is they hold down the button for two complete seconds. And if it's near, it looks for another device within two feet. So if there's another device in pairing mode that's two feet away or less, it will, they'll both understand that. They'll do like a little handshake and they'll say, okay, these two devices are trying to pair. So one goes into the color selecting mode,
Starting point is 00:36:11 which will start displaying different colors you can choose for friendship. And that user hits the button again to pick their friendship color, and then both devices start lighting up their friendship color to confirm and then from that point forward those devices are paired. Okay. And then I see there's a learn to code section here where it talks about getting the Arduino
Starting point is 00:36:35 IDE. Yeah. Yeah, so that was actually one of the... Have either of you done much Arduino coding? I've looked into it. I have not had any actually yet. So one thing that we have learned as part of this process is that the Arduino IDE is a wonderful and very powerful open source tool that a lot
Starting point is 00:37:00 of people have used. However, it's not the easiest thing to install always. There are operating systems it doesn't work with, specifically like certain versions of Mac, of OS X rather, certain versions of Windows that give it a little trouble. So as part of the process, we've kind of learned, okay, here are the common things that you run into. We've tried to cover those in our docs. Okay. Do you want to tell us a little bit about Girl Develop It, the other program you started?
Starting point is 00:37:36 Yeah. Girl Develop It is kind of what inspired this whole thing. I heard a lot from our students, things like they wish they had known this when they were younger. And Girl Develop It started as just some classes. This was in 2010. A friend of mine and I were talking about how in our computer science classes, we often felt nervous about asking questions. I think that everyone can relate to the experience when you're the only person like you in a room, right? I often think of this great picture I've seen online
Starting point is 00:38:17 of like a graduating class of nurses. And there's like all these really stoked and excited female nurses nurses obviously having a great time and then just like one guy in the middle like very straight faced like you know like I think everyone can relate to like okay I'm the only one like me here and so it's like the spotlight is on me um and so I think we often felt uncomfortable asking questions in class because we would be like, man, is this something I should know? You know, am I going to look stupid if I ask this? So we ended up not asking some questions that might have been really helpful. So we were like,
Starting point is 00:38:58 what if we could just schedule, like do a class where we like encouraged people to ask really stupid questions. So that's what we did. And we scheduled one class, it was HTML CSS, we thought we'd have to, like invite family members, because we didn't think anyone would want to come. And this is on meetup.com. And ended up, you know, we charged, I think, 20 bucks a person for the class. And it ended up selling out in under a day. And we were like, wow, this is cool. And a person for the class. And it ended up selling out in under a day. And we were like, wow, this is cool. And a lot of people came and they learned a bunch. And we were like, well, we should do more of these.
Starting point is 00:39:32 And then it very quickly grew to doing a whole bunch of classes in New York. People from other cities reached out to us and were like, you know, we want to start in our city. And so we started doing a chapter model where people could open different chapters. And now Girl Develop It has taught over 50,000 students and is in more than 50 cities in the US. So it's pretty, it's pretty awesome to see how it's growing. So I thought this was just like a user group community, but it sounds like it's a lot more than that. Yeah, it's, it's classes and it's classes for people that are adults that have jobs. So it's like after,
Starting point is 00:40:08 it's like 7 p.m., that kind of thing. And usually it's around $20 a class, and usually there's a series of four classes, so that's 80 bucks. But it's designed to be really accessible,
Starting point is 00:40:20 like really affordable and open to people that might not have time during the day to, you know, take off and do a class. Okay, so kind of the target audience is mostly women who maybe want to get into a programming career, but are doing something else right now. Yeah, so it attracts, we actually have 15 percent uh male students which i think is the biggest um compliment because they have to take a class called girl develop it so that's
Starting point is 00:40:53 really neat um and uh so so it's mostly for people in tech what we found is it really appeals to people in tech adjacent roles. So that means like product developer, like sorry, product managers or people that might be in a company that is very tech forward, that might work near developers, but not as a developer, as a way for them to understand how better to communicate with those developers. There is a percentage that start Girl Developer classes and then become a software developer, which is amazing. One of my best friends now, she took all our classes in the beginning
Starting point is 00:41:35 and now she is a design and front-end development lead at ThoughtBot, which is pretty neat. So there are a lot of people that become software developers full-time, but often I think the majority of people really just want to learn how to code and how to do the stuff that they see other people doing. Are you teaching all sorts of languages or only specific things like JavaScript or are you teaching everything? Everything. Usually the curriculum is open specific things like javascript or are you teaching everything everything um usually the thing that
Starting point is 00:42:05 is in front we have the curriculum is open source on github and usually the thing stopping us from teaching something is not having the curriculum so someone will in the city will build it and open source it and then we can teach that class kind of everywhere wow okay so if jason wanted to teach a c++ class to girl develop it, he could maybe do that? Yeah, yeah. What city are you in? Denver. Denver.
Starting point is 00:42:30 I'm sure there's a girl develop at Denver. Maybe. No idea. Yeah. But yeah, yeah, that's exactly it. When people want to teach a class, they just need to reach out to their local chapter. Huh. Very cool. Okay. Well well is there anything else maybe we haven't touched on yet with either girl develop it or or with jewel bots that you wanted to bring up only that um yes there's girl
Starting point is 00:42:57 develop at denver just so you know okay uh the um yeah the only thing is everything in jewel bots is open source. So if anyone wants to jump in, there's a lot of, all of our firmware is open and available. So people have started working on cool stuff like the ability to pass in an RGB value instead of, you know, right now we have it set up so that we've programmed a few colors. But there are some things that would definitely make things easier so if anyone has any questions pull requests are welcome and
Starting point is 00:43:34 yeah definitely feel free to reach out with any questions about what we're doing and I know we're going to be doing some worldwide hack nights, like once a month over online, over maybe Google Hangouts or another platform. So, um, if, if anyone wants to get started, that's probably an easy way to do it.
Starting point is 00:43:56 Okay. And your library that you're referring to, that's a C++ library, I'm guessing. Yep. Yep. Um, yeah, so that's, uh, on, in our GitHub, our GitHub. It's the Arduino library or the friendship library is what you'd be looking for. So if our listeners want to go buy a Jewelbot, how do they do that? So right now, you can only get them on target.com because we are sold out. We're making our next run of Jewelbots now. So target.com and then in about a month, month and a half, dualbots.com again. Very cool. Okay, well, thank you so much for your time today, Sarah. Thank you so much for having me. This has been a lot of fun.
Starting point is 00:44:35 Thanks. Thanks so much for listening in as we chat about C++. I'd love to hear what you think of the podcast. Please let me know if we're discussing the stuff you're interested in. Or if you have a suggestion for a topic, I'd love to hear what you think of the podcast. Please let me know if we're discussing the stuff you're interested in, or if you have a suggestion for a topic, I'd love to hear about that too. You can email all your thoughts to feedback at cppcast.com. I'd also appreciate if you like CppCast on Facebook and follow CppCast on Twitter. You can also follow me at Rob W. Irving and Jason at Leftkiss on Twitter. And of course, you can find all that info and the show notes on the podcast website at cppcast.com.
Starting point is 00:45:08 Theme music for this episode is provided by podcastthemes.com.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.