CppCast - Jewelbots
Episode Date: April 7, 2017Rob 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)
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.
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,
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.
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
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.
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.
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.
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
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.
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,
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.
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,
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
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
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,
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.
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.
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,
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
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.
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,
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.
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.
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,
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.
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.
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.
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,
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
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.
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.
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.
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
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
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.
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
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
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,
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.
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
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.
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
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.
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,
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,
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.
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,
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
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.
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.
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
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?
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.
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
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
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.
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,
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.
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
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.
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.
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
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
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.
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,
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,
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.
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,
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
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
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?
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
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,
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.
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,
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,
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
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
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
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.
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
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
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.
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.
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.
Theme music for this episode is provided by podcastthemes.com.