103

103 JSJ Robots with Raquel Vélez


Panel

Discussion

00:46 – Raquel Vélez Introduction

03:09 – Mechanical Engineering -> JavaScript & Robotics

09:36 – Matrices

11:04 – Kinematics

15:38 – Getting Started in Robotics

21:08 – Servo

24:28 – Getting Kids Started in Robotics

28:40 – Robotics & JavaScript

41:30 – Events & Getting Involved in the Community

45:52 – Spheros

48:22 – Raspberry Pi vs Arduino

Picks

Next Week

Hypermedia APIs with Steve Klabnik

This episode is sponsored by

comments powered by Disqus

TRANSCRIPT

JAMISON:  I’m excited too. CHUCK:  Yeah, thanks for coming. JAMISON:  This is a topic close to my heart. RAQUEL:  Yeah. Oh, yay, me too. [Laughs] CHUCK:  It’s because his heart’s a robot. [This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]  CHUCK:  Hey everybody and welcome to episode 103 of the JavaScript Jabber Show. This week on our panel, we have Aaron Frost. AARON:  Hello. CHUCK:  Joe Eames. JOE:  Hey there. CHUCK:  Tim Caswell. Jamison Dance. JAMISON:  Hello, friends. CHUCK:  I’m Charles Max Wood from DevChat.TV. And we have a special guest and that is Raquel Vélez. RAQUEL:  Hi. CHUCK:  Do you want to introduce yourself as the robot genius over the [inaudible]? RAQUEL:  [Laughs] I would not classify myself as a robot genius. But I am Raquel Vélez. I’m a senior dev at npm, Inc. And in my off time, I play with robots. I guess a little bit more background might be useful. I have a degree in mechanical engineering and I’ve built robots for about a decade or so. And recently, I left academia and robots and everything and decided to go on to the web. And then I discovered that you could actually both at the same time. And that’s what I do on the side. CHUCK:  There goes all my spare time. You can do both, huh? [Chuckles] RAQUEL:  Yeah. JAMISON:  So, I know npm, Inc. has been shipping a lot of merchandise. And have you built robots to help with that yet? RAQUEL:  So, no, not yet. Robots are kind of hard. They’re a little complex. JAMISON:  [Chuckles] RAQUEL:  But I know that some people have been wanting their packages to come in more interestingly. So, what we could do is we can package a package inside a package. JAMISON:  [Chuckles] RAQUEL:  And then we’ll have a robot deliver that package via some package service to your door. And then you can open up your package, which will have the package that has been packaged. And then you can install it yourself. I don’t know that that would really help with latency, though. [2:04 TIM]:  That’s really meta. [Laughter] JAMISON:  But it would [inaudible] so much good will that you wouldn’t have to worry about latency. RAQUEL:  Well, robots are slow. [Laughter] CHUCK:  You’ve got a contract to Amazon to build their drones, right? RAQUEL:  No. CHUCK:  Delivery drones? [Laughter] RAQUEL:  [inaudible] quickly enough. [Laughter] TIM:  They may be slow, but I’ve seen them take down helicopters, or at least NodeCopters. JAMISON:  [Chuckles] RAQUEL:  Yes. Well, you know. [Laughs] The NodeCopters, so NodeBots and NodeCopters have a little bit of a friendly rivalry. This year’s JSConf should be no different, especially when we add NodeBoats and NodeRockets to the mix. AARON:  Wow. RAQUEL:  So, yeah. CHUCK:  Yes! AARON:  Who’s doing NodeRockets? RAQUEL:  A team that I’ve not met yet. So, this should be interesting. I don’t know if they’re going to go really wild and have super explosion-y stuff, or if it’s going to be super calm and kid-friendly. I don’t know, I don’t know. We’ll see. AARON:  Right, right. JAMISON:  So, I wanted to ask about the journey from mechanical engineering which is super low-level to running JavaScript as a robotics platform, which is really high-level. RAQUEL:  Yeah. JAMISON:  How did that start out? Did you do software in your mechanical engineering degree? Or did you have background in it before? How did you make that journey? RAQUEL:  So, the world of robots, there’s a three-circle Venn diagram. You’ve got mechanical engineering, electrical engineering, and computer science. And then that cross section, that’s robotics. And when I was in school, I definitely had to play with robots for as long as I possibly can. But electrons and I don’t get along. [Chuckles] RAQUEL:  And computer science just seemed really heady, like it’s really brainy, like, “Let’s build compilers.” I was like, “I don’t really care about that.” And I saw mechanical engineering as like arts and crafts but with big machines. [Laughter] JAMISON:  That’s so cool. RAQUEL:  And that was super awesome to me. I was like, “Yes, yes, yes. Let’s do this.” So, I did mechanical engineering but the fact of the matter was that a lot of… so, engineering is cyclical. You can actually see it in the internet. For a long time, software was the big thing, because we were limited in our hardware. So, we tried to do as much as we could with software. And then eventually, our hardware started to catch up. And then we ended up having these huge server farms. Everything was hardware, hardware, hardware. And then now people are like, “Wow. Now that we have all this hardware, we can do all this really cool stuff with software.” So, you just see this cycle over and over again, like cloud, blah, blah, blah. The same thing happens in robotics. You’ve got this world of mechanics. People are trying to figure out, “Well, how do we make this lighter, stronger, and faster? And gears, et cetera.” But when I was in college, the mechanical engineering part was mostly solved. It was more of a situation where if you wanted to work on the [5:05] challenge like autonomous vehicle robots, it’d probably work to be on the mechanical engineering team as a freshman. But you could totally join as a software person. So I took AP Computer Science. I’ll try the software thing. So, I actually ended up doing a lot more software as a mechanical engineer. And then it was just like, “Okay, mechanics are cool but that’s not really the problem right now.” Right now the problems are in AI and computer vision and planning and mapping and all that cool stuff. So I was like, “Okay, I will start.” So, I basically was a software developer in robotics even though I have a degree in mechanical engineering, if that makes any sense at all. [Laughs] JAMISON:  No, that makes a ton of sense. RAQUEL:  Yeah. JAMISON:  It was basically the easiest way to get into working with robots, because the demand was higher for software? Does that sum it? RAQUEL:  Yeah, exactly, exactly. I was a freshman. I was like, “I want to be on this team.” And they were like, “Well, we have a spot open on the software team.” So I was like, “Okay, cool. I’ll do that.” And it’s just such an interesting problem. There are so many interesting problems to solve. And they’re all software-based. We’re now getting back into the realm of more mechanical stuff. Now, people are building robots like nanobots using DNA and that’s a mechanical problem. Yeah okay, so anyway, that will just blow your mind. It blows my mind all the time. CHUCK:  Star Trek. RAQUEL:  [Chuckles] Yeah. It’s really cool. Anyway, so… JAMISON:  Call me when I can run Node on DNA robots. RAQUEL:  Yeah, I will. [Chuckles] RAQUEL:  I’ll let you know. [Laughter] CHUCK:  Yeah, we’ll be invaded from San Francisco. [Chuckles] RAQUEL:  So, basically what happened was I was in the robotics industry and I realized that the only way for me to really move up was to get a PhD and write lots of papers and try to go on the academic track. But it wasn’t really what I wanted. I remember studying for the GRE to go to grad school and just being like, “This is dumb. I don’t want to do this.” [Laughter] RAQUEL:  I was like, “Okay, so why don’t I want to do this?” And it’s because I just wasn’t passionate about it. So, I meandered in different things. I ended up going to grad school for robotics and then I dropped out. I’m a grad school drop-out. I’m proud of it. AARON:  Yeah. [Laughter] RAQUEL:  Yeah. CHUCK:  That’s high-achieving underachieving right there. RAQUEL:  It really is. [Laughter] RAQUEL:  Let’s be honest. TIM:  I had six months left on my Masters and I just left for Node. So, you know what? That’s totally cool. RAQUEL:  Yeah. AARON:  It’s an elite club. You guys are part of an elite club. [Laughter] RAQUEL:  Yeah, basically. So, then eventually I found my way into Node, basically because I was like, “I’m bored and I want to have some fun. Who’s doing fun stuff?” And I found some people in my town at the time and they were like, “We’re doing Node.” And I was like, “Okay, I’ll do that, too.” And then I totally fell in love with it. And then I went to NodeConf Summer Camp 2012. So, that was back when there was a NodeConf, proper conference with speakers and then there was the summer camp where it was basically just Node core geeking out about Node core. But I didn’t know that. JAMISON:  [Chuckles] RAQUEL:  So, I was like, “I want to learn about the event loop.” And I show up at this thing and they were like, “Domains. Let’s talk about domains.” And I was just like, “Ah! What is this?” JAMISON:  [Chuckles] RAQUEL:  But I was there and I was talking to Chris Williams. And somehow he found out that I did robots and he was like, “You need to merge robotics and JavaScript and work with us on this,” because he did node-serialport. And then you’ve got Rick Waldron who does Johnny-Five. And me being more of the AI type, having more of that background, I was like, “Oh, there’s a niche here.” You’ve got node-serialport which is super low, hardware, on the metal. And then you’ve got Firmata and you’ve got Johnny-Five, which gives you that nice JavaScript jQuery-like interface for programming your robots. And I was like, “Okay. I’m going to start with building some matrix modules.” And then I started bringing in some of the more interesting kinematics and higher level of robotics theory to Node. And thus, NodeBots has become a thing. So, from there it was just like, “Oh wow. You mean any JavaScript developer can start playing with robots?” and the news just took off. [Laughter] JAMISON:  So, I got to ask for some definitions. RAQUEL:  Okay. JAMISON:  When you say matrices, do you just mean linear algebra matrix stuff? RAQUEL:  Yes, exactly. So yeah, not Keanu Reeves Matrix. JAMISON:  [Chuckles] RAQUEL:  I meant exactly that. AARON:  She [inaudible], Jamison. [Laughter] CHUCK:  I know kung fu. AARON:  Yeah. RAQUEL:  I know kung fu. Yeah. So yeah, a lot of robotics is based in linear algebra. And that’s not really something that we have very much of in Node core and in JavaScript in general. JAMISON:  [inaudible] part of the web dev. RAQUEL:  It’s not, it’s not. But I was like, “Well, could we do this with JavaScript?” And it turns out that yes, we can, sort of. And I’ve made a couple of intelligent, (maybe not so intelligent) I’ve made a couple of cuts. I cut a couple of corners in the process of making vektor, my matrix module, mainly the whole floating point issue that we have. JAMISON:  [Chuckles] RAQUEL:  kind of just hand-waving over it. It’s like, “Eh, it’s okay,” which is why when people are like, “Hey, we should totally build autonomous vehicles with JavaScript,” I’m like, “No.” [Laughter] RAQUEL:  Like I just realized no, this is a bad idea, at least not with my modules. I’m sure that at some point JavaScript’s going to get to the point where floating point issues are not going to be as scary. But for now, we’re hand-waving past it. JAMISON:  So, you also mentioned kinematics and I do not know what that is. RAQUEL:  Okay. So, kinematics is basically, think of it as movement. So, let me use words that are accessible. JAMISON:  [inaudible], you got to dumb it down for me. I’m fine with [inaudible]. [Chuckles] RAQUEL:  Yeah no, it’s cool. You know industrial robots, right? The robots that build cars and stuff. JAMISON:  Sure. RAQUEL:  Those are the ones that basically are a bunch of cylinders attached with joints. And they have a picker at the end, like a little end piece. So, you could even think about your arm as being a kinematic robot. It’s just a serial manipulator, is the official term for it. But if you think about it, you just shoot your arm out and you think your shoulder’s a joint, your bicep is a link that connects your shoulder joint to your elbow joint, and then you got your forearm which connects your elbow joint to your wrist joint. And then you’ve got your hand which is your end effector. And the whole point of kinematics is the understanding of movement in your robot. So, we have this notion called forward kinematics, which basically says if I know the angles of each of my joints, where is my hand at the end of it? What’s the location in space of my hand given the different angles of my joints? JAMISON:  So, that’s probably just some trig stuff, right? RAQUEL:  Exactly. It’s a lot of trig stuff. And it turns out that you can actually do it even faster, more interestingly, with matrices and linear algebra. CHUCK:  Cool. RAQUEL:  And then the next level up is inverse kinematics, which says if I put my hand somewhere in space, what are the angles of my joints in order to get my hand there? But if you think about it, you could easily have more than one solution to that problem. Your elbow… JAMISON:  Oh, sure. RAQUEL:  You could move your elbow in a different position but your hand would still be in the same spot. So, there are multiple solutions to inverse kinematic problems, whereas there’s only a single solution for a forward kinematics problem, if that makes any sense. Hopefully I’ve made that. JAMISON:  So, one more time. Forward kinematics is where you’re moving from one position to another? RAQUEL:  So, forward kinematics is when you know the angles. JAMISON:  Oh, okay. RAQUEL:  And you want to find the position. JAMISON:  And you’re trying to find the position. Okay. And the other one is… RAQUEL:  Right. And the inverse is you have the position. You want to know the angles. JAMISON:  Okay. RAQUEL:  One way that somebody explained it was forward kinematics is you’re using your arm. And inverse kinematics is you’re using your legs, because you know where you want to put your foot when you’re moving. But you don’t know what angles you want your knee and hip to be. But when you’re holding your arm out if you want to grab something, you know what your angles, you know what the angles of your shoulders and elbow are going to be, if that makes any sense. JAMISON:  Oh yeah, that makes total sense. RAQUEL:  Okay. CHUCK:  Yeah, I think another way to put it is that forward kinematics is I know the angles so I can figure out where I am. And the inverse is, I know where I want to be and I need to figure out the angles to be there. RAQUEL:  Exactly. JAMISON:  So, there are probably cost functions you can do with that, because it’s probably more difficult to move in certain ways with a real robotic arm than others, or something, right? RAQUEL:  Exactly. JAMISON:  So, you’re trying to optimize the best solution for it, basically. RAQUEL:  Yeah, exactly, which is… JAMISON:  Which sounds hard. RAQUEL:  It is. It’s interesting, though. If you think about the robots that put together cars, you could just easily be like, “Okay, put the steering wheel on the steering column.” Well, except that you probably already have most of the car already built at that point, so you probably don’t want to smash through the window. [Laughter] JAMISON:  It just stomps down from above. CHUCK:  What are you talking about? [Laughter] RAQUEL:  Just maybe. So yeah, it’s an interesting problem. So, that’s one of the angles that I’ve taken, no pun intended. JAMISON:  Eh oh. RAQUEL:  Yeah. [Laughs] Well, puns. They’re so awesome. [Chuckles] RAQUEL:  Yeah. So, I’m going to be exploring some other options in terms of path planning and mapping and stuff like that. I’ve tried to hit those different topics in my various talks and stuff like that, just to get people excited about the math-y part of robotics. JAMISON:  So, I feel like I’m in between, well not close to your level, but in between the person that knows nothing at all about hardware and electronics, and someone like you who has a deep background in robotics. I’ve played around with Arduino stuff. I’ve done a fair amount of just tinkering, but not with anything that moves, because that stuff all seems really hard. So, how do I get started? Does that question make sense? RAQUEL:  Yeah, absolutely. So, give me a little bit more background. So far… JAMISON:  So, I can make the LEDs blink. I don’t know. AARON:  [Chuckles] JAMISON:  I can do stuff with pins on an Arduino. RAQUEL:  Perfect. JAMISON:  And that’s the extent of my hardware experience. RAQUEL:  Okay, awesome. So, your mission, should you choose to accept it and I think you will, will be to add a servo into your system. And the benefit of using a servo is (a) servos are fairly cheap and (b) it’s pretty easy to add that into your system without actually having to do very much effort. You put your power. So, servos have red, white, and black. And so, your red is going to be your power and your black is going to be your ground. And then your white is your signal. And so, you don’t even have to worry about resistors or anything like that. Just plug those straight in using jumper cables, a breadboard, whatever you want to do. And then just start playing around. You can use Johnny-Five to start moving the servo up and down. And then start adding more servos. Start adding sticks to things. People think it’s ridiculous when we show up at NodeBots events and we have popsicle sticks and hot glue. [Laughs] That’s what we have with us. We’re like, “Here you go, popsicle sticks and hot glue. Oh and here’s a bunch of cardboard and some scissors. Have fun.” JAMISON:  [Chuckles] RAQUEL:  And it’s like, “What is this, arts and crafts time?” It’s like, “Yeah, it is,” because there’s so much about building your robot out. And I think the best thing to do, and I say this to everybody whether you’re getting into web or getting into robotics, is to just [inaudible] a project and just start playing around. Say you want to build a dog bot. So, you’ll have a chassis. That’s your body. And then you need four legs. And so, what do you need for those four legs? Well, you can start off with four servos that just go back and forth some limited number of degrees. And then see if you can program it to know, well a dog, they move their front paw and their back paw, like front right and back left. And then they move their front left and back right. And then see if you can get it to walk. And then you’re like, “Oh, but this is really janky looking robot. It’s skipping weird and it’s flopping around and looks really ugh.” So, you’re like, “Okay, obviously dogs have more joints than just the shoulder joints or hip joints.” So, let’s add more. And then you just keep playing around with it and trying to get it to balance and everything like that. It turns out that there are lots of mathematical equations for you to figure out, “Well, where’s the center of mass? And how do we make this work effectively?” and blah, blah, blah, blah. But forget all of that and just start playing, because the math stuff helps to explain stuff. But it can also get in the way of you being creative and having fun. So, I say go out, have fun. And then learn the math later if you really, really want to. JAMISON:  Aaron, you were going to say something. AARON:  No, she was talking about popsicle sticks and just silly little robots that are actually really cool to learn with. At ng-conf, we did something with the guys who do Cylon. And we used pipe cleaners and Play-Doh. And it was like, we’re making little robots with them. And it was actually really cool to see that you could play around with this stuff with a bloody pipe cleaner. RAQUEL:  Yeah. AARON:  And get feedback from a pipe cleaner. I was like, “How do you possibly get output from a pipe cleaner?” But you can. So, it’s really cool. RAQUEL:  Yeah, yeah. Did you use conductive Play-Doh? AARON:  They brought it, the guys from, I can’t remember their company. But they brought it all, so I’m not sure what kind of Play-Doh it was RAQUEL:  Okay, cool. Yeah, because there’s, if any of you have access to children… [Laughter] CHUCK:  I know where I can find a few of those. RAQUEL:  Yeah. [Laughter] RAQUEL:  Yeah, there’s this stuff called Squishy Circuits. And it’s really, really cool. You can basically have multiple types of, you basically create this Play-Doh at home and one has sugar and the other one has salt. And it’s totally kid-safe and kid-friendly where if they ate some, it’ll be fine. But what’s really cool about them is that they’re conductive. So, you can actually pop some battery power in there and then start connecting them together and you can actually make some really cool, little circuits out of Play-Doh. I say access to kids because three and five and seven-year-olds are like, “Whoa. This is so cool.” But the truth is that you use them as an excuse and then you play with it yourself. And then you have way more fun. [Laughter] RAQUEL:  Because you’re like, “Oh my god, I’m playing with Play-Doh and I can make this servo move using Play-Doh.” And the person behind that, she actually helped teach me robots. She was one of my TAs in college. And she’d make sure that you get a little bit more of that understanding of electronic principles using all this stuff. And then you can grow from there. CHUCK:  Is servo just a fancy word for motor? RAQUEL:  So, it’s different from a motor, slightly different. So, you’ve got three types of motors basically, in general. You’ve got your basic motor, which all it does is you add some power to it and it just starts spinning. And there’s no logic behind it. It just goes. Then you have a stepper motor, which basically keeps track of how many rotations you’re going. And so, you can do a little bit more fine-tuned measurements. And then you’ve got a servo, which basically has a little mechanism in there that tells you exactly where your, how much it has rotated. So, you can basically put in an angle measurement and say, “I want this to turn to 55 degrees,” and it will turn to 55 degrees and it will stay there. JAMISON:  So, I thought you had to keep track of all that yourself. RAQUEL:  No. It’s awesome. You don’t. JAMISON:  Okay. [Laughter] RAQUEL:  Yeah. It uses pulse-width modulation, which is just a fancy way of saying it puts more juice in for bigger angles and less juice in for smaller angles. And so, you say, “I want to go to 55 degrees,” and it says, “Okay, well 55 out of 180 is this much. So, I’m going to put in this much juice,” and then blah, blah, blah. And that’s all done at the hardware, firmware level. And so, you don’t have to. It’s totally abstracted for you. You can just be like, “servo.move(45)” and you’re good. TIM:  So, it’s not actually a digital signal. It’s just measuring the frequency of the flicker? RAQUEL:  I think so, yeah. TIM:  Interesting. RAQUEL:  Yeah, it depends on the servo, obviously. But I think the cheaper ones are just like, more juice more angle, less juice less angle. You also have digital servos. AARON:  So, how much is a servo? You said the prices are cheap, just to give us, people who are thinking about it, what are the prices on them? RAQUEL:  So, your super-duper cheapo servo that you’re going to get out of the inventor’s kit or something, you can get that for two or three dollars. Now granted, you get what you pay for. So, if you’re just starting out and just trying to figure out what’s going on, I highly recommend getting a Sparkfun Inventor’s Kit or similar. I know Adafruit has something similar and Maker Shed has something. But basically, you’ll get a bunch of components in a box for $100. That will give you enough to just get started and have fun and play around. And you’ll know in your head that if you bust something, it’s not going to be more than a couple of dollars to replace. As you get more familiar with how things work and how things are going and are willing to put in more money and invest, you could easily be paying, so for the robot I had at JSConf I think I paid $12 per servo for that. And those are good quality servos. If you have a chance to play Sumobots with us at a NodeBots event, those are $15 servos. But if you see some of the stuff that Rick Waldron’s doing with a biped robot and he’s got these massive servos that can allow for more torque and more power, those can be $30, $40, $50, $60, $100, depending on what you want. But to get started, it’s really reasonably priced. $100 to play around with all sorts of different ideas is a really good buy, I think. CHUCK:  So, one thing that I’m thinking about is at my kid’s school they have afterschool programs that kids can do. And I think this would be really fun with the kids, first through sixth grade. I have a daughter in first grade and a son in second grade. And I’m just trying to figure out. Okay, so this Inventor’s Kit looks really nice. I’m just trying to decide what projects would work out well for them. Some ideas or some things that I can have them do that they’ll actually look at and get excited about, because I’m not convinced that they’ll be excited about, “Oh, the light turned on,” or, “Oh, the servo turned,” or whatever. RAQUEL:  Yeah. Yeah, absolutely. So, you’ve got a couple of options. The first one is what I call the bait-and-switch maneuver, which is you play with stuff and you get excited about turning on an LED. [Chuckles] RAQUEL:  And getting a servo to turn, come in with little projects with popsicle sticks, et cetera. And then they show up and they’re like, “What is that?” And you’d be like, “Oh, I don’t know. You want to play?” And then you bait-and-switch. So, that’s one option. Word of warning: your kids are probably way more creative than you ever expect them to be and they can probably handle a lot more stuff than you probably ever expected. But you already knew this, because they’re your kids and I’m not saying anything new. So, they’ll just run with it. They’ll be like, “Oh my god, let’s make a giraffe.” [Chuckles] Just start. You’ll have one kid who’s going to be all mechanically and they’ll start building this whole popsicle monstrosity. And the other kid’s going to sit there and be like, “Okay, how do we hook this all up together?” and blah, blah, blah. And that’ll be super cool. So, that’s option one. Option two is, if there’s something that you know that they already like, maybe one of your kids really likes Legos, maybe one of your kids really likes animals or whatever. I don’t know about your kids. CHUCK:  Well, you’ve picked both of my kids. RAQUEL:  [Laughs] CHUCK:  My son loves Legos and my daughter loves animals. RAQUEL:  Okay. So, what you could do is there is a kit called the Lego Mindstorms. I don’t know if you’ve heard about this. But it’s about, this one’s a little bite more pricey. It’s $300. AARON:  They’re totally cool, though. RAQUEL:  Yeah. CHUCK:  I have been eyeing those for a year or so now. AARON:  We do a huge event with them every year. They’re lots of fun. RAQUEL:  Yeah. CHUCK:  Because I want to play with them. RAQUEL:  Yes. CHUCK:  I mean I want to get them for my kids. That’s what I meant. [Chuckles] RAQUEL:  No, of course. Of course. Fun factoid: back in, I want to say 2005-ish, I remember the first time I played with Lego Mindstorms. And I read somewhere that the average user of the Lego Mindstorms kit was a 35-year-old man. [Laughter] CHUCK:  That does not shock me. RAQUEL:  That is really funny. So yeah, get the kit. [Chuckles] Get the kit. What’s nice about the Lego Mindstorms kit is that not only is it Legos, which is really easy to play around it, but it’s also, they have a whole bunch of preset things that you could do with it. You can play around. And they have their own motors and they have different sensors and things that you can play with. And you can choose if you want to use their weird programming language that is really visual. It’s like blocks. You drop blocks together. AARON:  Yeah. It’s the Google’s App Inventor, if anyone ever used that. RAQUEL:  Right. Or LabVIEW. AARON:  Or LabVIEW, yeah. RAQUEL:  It’s just like LabVIEW. Or you can actually flash the firmware on the Lego brick and you can use C or JavaScript or all sorts of things. I don’t know if you can use Node yet. I know that, I want to say Andrew Nesbit in the UK has created a flashed option for Lego Mindstorms. Somebody did. I know that he tweeted about it once. But yeah, so I know that you can probably use JavaScript on the Lego Mindstorms as well if you wanted to just stay with that. Or if you want to do other stuff, that’s also a perfectly valid option. Personally, my first robotics competition I ever did was with the Lego Mindstorms. And I did it using RobotC which is a really simple version of C. And I did pretty well in my little robotics competition. So, that holds a near and dear place in my heart. But, yes. JAMISON:  So, we’ve talked a lot about all the different hardware and kits and [inaudible] and stuff. I want to ask, bring it back towards JavaScript, and ask, what is unique about doing this in JavaScript? Is it just because the community is very large and excited? Or is there something unique to the language? Or I don’t know, is it right place, right time? Or what do you think? RAQUEL:  Yeah. So, I have opinions. [Laughs] JAMISON:  I want to hear them. RAQUEL:  Yeah, yeah. So, traditional robotics has always been in C++ and Python. If you go online and you look at the job description for a Google roboticist, it says you need a PhD, well preferably a PhD, and at least 5 years of robotics experience, knowledge of Unix and C++ and/or Python, and blah, blah, blah, blah, blah. Snooze alert. Also, wow, that’s a lot, a lot, a lot of effort and time to put into this stuff before you get to work on these really cool robots. My personal opinion is that you shouldn’t have any barriers to being a roboticist. You should just be allowed to build a robot using whatever you want. So, for that reason, I think JavaScript is an amazing language, because so many people use JavaScript at this point. There are so many different polls out there that say what language is most popular right now. And all of them say that JavaScript is in the top five. If not the number one, it’s top five, just in terms of use, overall global use. If you’re on the web, you’ve probably touched JavaScript, even if it’s in the form of jQuery. So, the fact that it’s so easy and it’s so broad, out there, it means that you can just get started. I was watching this talk at [inaudible] JS and it’s this 15-year-old kid. It was awesome. And he talked about why JavaScript, why he decided to [inaudible] JavaScript. And it’s because you didn’t have to set anything up on your computer. You could literally just go to your browser, go into the inspector window, and start programming in JavaScript, like var a = a string, ‘hello world’, console.log(a). Boom. Done. You didn’t have to set anything up on your computer. You just needed to have a browser. So, in that sense, JavaScript usability is just incredible and widespread. And if you’re already programming in JavaScript, why should you ever be limited in playing with robots? You shouldn’t. The other thing is that in the world of robotics, there are a lot of unsolved problems. It’s hard. It’s really difficult in terms of just understanding, how do we make the mechanical world, the computer world, think in a similar way to our human world? And the perfect example is this idea called sensor fusion. So, if you’re a human, you have multiple sensors. You’ve have your eyes. You’ve got your ears. You’ve got your nose. You’ve got your mouth. Head, shoulders, knees, and toes. No, those aren’t sensors. [Laughter] RAQUEL:  But you have all these sensors to you and somehow, magically, your brain takes all of these inputs and says, “Okay, I understand where I am and what I’m doing. And I can now make a decision about what I want to do next and where I want to go next.” Robots. If you think about how you’re going to do that, that’s way more complicated a problem. Now you need some sort of vision option, which will be probably cameras or something. But then you need depth as well. So, you have to add, either have more cameras so you can have depth perception, or you need a LADAR, some sort of radar thing to say this is how far things are from me. And then for touch, you need bumpers. For sonar, if you want to hear things, now you need a microphone. You’ve got all of these different things. And then the question of how to fuse that input, all those inputs together is really hard. So, how do you do that? And if you think about it in a C++ type of environment, you’re using threads. You’ve got a threaded system, so each thread has its own proprietary sensor, or each sensor has its own proprietary thread. And then you have some machine in the background that’s saying, “Okay cameras, I have information from you. Depth information, I’ve got it from you. Microphone,” blah, blah, blah, blah, blah. But then, how do you make sure that it’s all time-synced. How do you make sure? What if you have latency? What if you have noise? So, it’s a really difficult problem. On top of that, you’re using all these threads. So, I always think about this whole notion of, what if you try to attack the problem in a completely different way? You see a brick wall and you’re like, “I need to get on to the other side.” Do you climb over it? Do you try to smash a hole through it? Do you try to climb under it? Or you just look to the left and realize that it ends and just go around it? There are so many different ways of attacking the same problem. But if you’re so embedded in this threaded ecosystem, what might you miss if you were to suddenly turn around and try to use an asynchronous ecosystem? What would that mean? What could that mean? I don’t know the answer. But from a researcher, scientist type of point of view, we got to try. So, I am kind of opinionated on this and I know. But I think that if we give JavaScript developers the opportunity to tackle this problem, we might be really surprised at what they come up with. And this is the same reason why I push so hard to get people of all different backgrounds and everything to try the stuff that we’re doing all the time, because the different perspective and the different knowledge that people have could just surprise us in ways that we never imagined. And who knows? Maybe JavaScript is the solution to our sensor fusion problem. I don’t know. JAMISON:  Huh. I [was] thinking about all that stuff. [Laughter] JAMISON:  I’m sorry. Go ahead. TIM:  I was just going to say, talking back to accessibility and getting kids into it, the thing that I had fun with last summer was getting a Chrome App or Chromebook to talk Firmata directly. And the proof of concept actually got working by the end of the hack day. And you can take in an off-the-wall Chromebook from Walmart, plug in Arduino that has been flashed with Firmata, and just download this app. And you can talk to it. You don’t have to install this thing. You don’t have to download Java or whatever these dependencies are. And what other language has that kind of accessibility than JavaScript? RAQUEL:  I don’t know. I mean right, exactly, exactly. It’s amazing how you could just so quickly get involved and just start tinkering. JavaScript is easily my favorite prototyping language. Anything I want to do, I start with JavaScript. And then if I need something else, then I’ll go to something else. But so far, I haven’t. In the last couple of years, I haven’t needed anything but JavaScript to do anything that I want, which I think is awesome. TIM:  One of the issues I had using Node for these kinds of background robotic things, is it uses a relatively large amount of RAM on these little devices. I have this TP-Link router that I got from China. And they use them as robot brains. They stick sensors to them and do weird things like locking doors, or who knows what? But these devices have 8 to 16 megabytes of RAM. And a stock Node process is 12 megs. And you still need room for the OS. RAQUEL:  Yeah. TIM:  And so, I’ve been trying over the past years to find ways to reduce the JavaScript footprint but still have this nice high-level scripting environment. RAQUEL:  Right. TIM:  And it’s a fun area to explore. RAQUEL:  Yeah, absolutely. Part of me is just like, “Eh, wait a year or two. It will get more.” [Chuckles] RAQUEL:  It’s like, whatever, the hardware situation will just, eh. [Laughs] But that’s obviously not, that’s the lazy approach. That’s the, “Oh well, if you just wait a little while, you’ll get more space for just as little money.” But yeah, it’s definitely an interesting question. I don’t know. So, the question is then do we go the Tessel approach and have a not-quite-JavaScript option that converts to Lua? Or do you go with the variety of other options that are currently out there? JavaScript on hardware, it’s an interesting problem. So far, I haven’t seen a full JavaScript, full, totally 100% legit ECMAScript option on hardware. Nobody’s done that yet. It’s always been, well we’re going to do JavaScript-like. TIM:  What do you mean on hardware? JAMISON:  Did you say Tessel? RAQUEL:  Tessel, yeah. Tessel.io. JAMISON:  Those are the boards that you can run JavaScript straight on them, right? RAQUEL:  Yeah, exactly. And there’s another one. TIM:  Those are crazy. RAQUEL:  Yeah. There’s another one. I totally forgot the name right now, but this is a thing. People are like, “Well, JavaScript is a thing and hardware’s a thing. So, let’s marry the two together. And let’s see how that goes,” and some very successful stuff so far. But the JavaScript enthusiasts who are really like, “Oh my god. JavaScript is my religion,” they don’t like it so much because it’s not “real JavaScript”. [Chuckles] RAQUEL:  But then you have the other people who are like, “Oh, this isn’t real hardware because it has JavaScript on it. Why would you [inaudible]?” [Laughter] RAQUEL:  So, there are haters everywhere. JAMISON:  Can’t win. RAQUEL:  No, you can’t win. But the people who are like, “All I want to do is I want to use this language that I know to turn the lights on and off in my house from far away,” this is perfect. This is everything I want it to be. So, I don’t know. I just say, everybody, whatever. Go have fun. [Laughs] Just have fun. I don’t care. Stop arguing. TIM:  Have fun. RAQUEL:  Go have fun. AARON:  So, AJ actually just posted in our chat here a link to Tessel.io. I guess it’s a new microcontroller that’s coming out this spring. And it’s claiming, it says, “Tessel’s a microcontroller that runs JavaScript. It’s Node-compatible.” Oh, sorry. You guys were just talking about that. [Laughter] RAQUEL:  It’s all good though. [Laughs] Tessel is promising. It’s interesting. And there’s a lot to be said for it. And I don’t know. It could be exciting. TIM:  So, have you seen the Duktape VM, the new one? RAQUEL:  I haven’t. TIM:  It looks to be a pretty fully-implemented JavaScript implementation as a very minimal VM, basically how Lua’s written. It’s a very similar CAPI and architecture. So, you get a lot of the memory footprint of Lua, but with real JavaScript. RAQUEL:  That’s awesome. TIM:  So, that sounds very interesting. When I get some time, I’m going to see about binding that to libuv and make a Node-light or something. RAQUEL:  Nice. Do it. Go for it. [Chuckles] JOE:  So, how good is Johnny-Five, though? JAMISON:  What do you mean how good is it? RAQUEL:  Yeah, define good. [Chuckles] Not evil? JOE:  Easy, usable, as a starting point. JAMISON:  Let me lay it out for you, Joe. I can do stuff with Johnny-Five. JOE:  Oh, wow. RAQUEL:  [Laughs] JAMISON:  So yeah, that’s how easy it is to use. TIM:  Johnny-Five is jQuery for Firmata. JOE:  I could probably do stuff with it then. JAMISON:  Yeah. RAQUEL:  Oh, probably. If you know jQuery, you can handle, if you’ve only played with jQuery, if you understand the general syntax of jQuery, you can do Johnny-Five. It’s literally as easy as declaring your servo variable. That is, you use the servo constructor. And then you say, var servo gets servo constructor, that’s it. And then you can basically say, servo.move and you put in a number. Or, if you want an LED, you say var led gets the led constructor on pin 13. And then you say led.on, led.off, led.strobe. There are so many options you can do. It’s really easy. It’s really, really easy. JOE:  So, at the end of this episode, we’re going to have a thousand people that are going to say, “I want to go play around with robotics in JavaScript.” What do you think is the way that they should go then? Johnny-Five? RAQUEL:  I think so. I’m partial to Johnny-Five, probably because I’m really good friends with Rick. But it’s just so easy. There are other options. There’s Cylon.js which is a different implementation. It attacks the problem differently. But I really like the jQuery-like sort of thing, just because so many of us probably got our start with jQuery. And it just flows. It just feels really natural. And you don’t need much. You get an Arduino for $20 and set of stuff. Literally, $100 to just get started, have fun. Or just come to a NodeBots event. These events are happening all over the world, literally all over the world. We’ve had events in Australia, and Columbia, and the UK, and then in so many different cities around the US. If you’re in the Bay Area, we do one once a month. And so, that’s super fun. I know in New York, they’re doing them pretty regularly as well. So, if you don’t want to even spend any money at all, just show up to one of these events and just be like, “Alright, rockbot told me you would have an Arduino for me to play with. May I please have an Arduino?” [Chuckles] RAQUEL:  And they’d be like, “Oh well, if rockbot said, then fine.” Yeah, go ahead. Use my name. It’s fine. [Laughs] JOE:  A name drop. Can we get you to give us some links to recommend, hardware that you would recommend? Like starter kits, Arduino started kits you would think are good. RAQUEL:  Absolutely. Absolutely, I’d be happy to do that. I’ll do that separately. JOE:  We’ll put those in the show notes. RAQUEL:  Yeah. JAMISON:  So, you’ve mentioned the NodeBot events. I’m sure we’ll have our link to those too. How else do you find a community? Is there a secret cabal that meets on IRC that you can sneak into? I know that the Maker scene is related to this stuff, too. RAQUEL:  Absolutely. Okay, so there’s a huge community of people out there just in terms of making stuff. So, you can always go to your local hackerspace and they’ll introduce you to Arduinos pretty easily as well. But they might not do JavaScript Arduinos. So, keep that in mind. But, whatever. On IRC, there’s the room #robotjs. It’s been pretty quiet lately. So, if people started showing up and chatting, I would chat too. So, ha-ha, now everybody has homework. [Laughter] RAQUEL:  So yeah, there’s that. But otherwise, a lot of stuff happens in the Johnny-Five repo. People are constantly putting issues, et cetera. It’s a pretty strong open source project, I think. And then just any, there are so many different conferences that are having NodeBots events now. JSConf last year was the first one to have a NodeBots dedicated event within the conference. And that was a full day thing. We just had pretty much every component under the sun. And you could just build whatever you wanted. And then that grew. We had events at NodeConf and then we had International NodeBots Day. And people are doing those all over the place, like I said. And then there was RobotsConf, which was a pretty big conference last year. It was basically we took the middle day of JSConf last year that was NodeBots for a day and we turned it into any type of bots for three days, or two days. It was a two-day event. And so, that one was language agnostic. If you wanted to do NodeBots, or RubyBots, or PythonBots, or whatever, you did that. AARON:  I was curious what language championed there, though. JAMISON:  I was there and I feel like it was JavaScript, but maybe that’s just because that’s what I used. RAQUEL:  I don’t know. Yeah, I saw. Everybody had those… you know when you go to a bar or something they give you that wristband, the plastic-y wristband? They had different colors for your language and it was just a rainbow of colors. There were people who did C and C++, C flavored stuff, and Python stuff, and Ruby stuff. JAMISON:  There were a bunch of Ruby people too, yeah. RAQUEL:  Yeah. There was a ton of Ruby people. There was a few people who were like, “I don’t do web.” [Chuckles] “I don’t do web, but I’m going to be here and play with robots anyway.” And that was really cool, super, super cool. So yeah, there’s a huge community of people out there. If you’re not specific about JavaScript, you can find an even bigger community. There are Maker Faire events all over the place. Definitely go seek out your local hackerspace. If you don’t have one, start one, or find a bunch of kids. There are so many opportunities for getting involved in the community. But definitely, if you want to do specific NodeBot-type stuff, I definitely recommend a NodeBot event. And NodeBots.io, we definitely have information on how to start a NodeBots event in your community. I think they were going to try to do another International NodeBots Day, which is basically all the NodeBots groups in the world, in a single specific day, have their event. And then we can all Skype or Google Hangout at each other and be like, “Look at my robot. It’s so cool.” It’s great fun. JAMISON:  That’s awesome. RAQUEL:  It’s pretty fun. CHUCK:  I’m excited. I’m excited to go play with this stuff. RAQUEL:  [Laughs] JOE:  I would like to ask if you’ve played around with Sphero. I’m using Cylon.js for it. RAQUEL:  So, I have seen a bunch of Spheros. They’re super cool and fun and they light up and they’re bright and stuff. I have not actually programmed them yet at all. But I have seen people using Cylon and I have seen people using a Node, Johnny-Five-ish, oh, there’s a Node Sphero module. AARON:  Yeah. RAQUEL:  That you can use. The big issue with Spheros is that if you have too many in the same space, because they’re Bluetooth-enabled, there can be a little bit of difficulty. But if it’s just you and yourself hanging out at home, it’s totally cool. A really cool game by the way, with Spheros, is to get a bunch of planks of wood or sticks or something and have, if you want to get kids involved, have them program the Sphero to solve a maze using the sticks. That’s a really fun game that is interesting but simple, a really simple setup. All you need is a Sphero and a bunch of sticks. But then, it will provide hours, days, weeks, months of entertainment, depending on how far you want to make it go and stuff like that. So, it’s a pretty exciting thing, too. AARON:  I was going to recommend that on another robot for people to get intro’d into Node-botting. Sphero’s a cool little robot. They’re super non-intimidating because it’s just a frigging ball. [Chuckles] AARON:  So, you don’t have to worry about a million moving parts. RAQUEL:  Yeah. AARON:  And at ng-conf, that was our only hack night, was a hardware hack night. And we had the hybrid group. We’re 60 at the Spheros. And there was a little bit of the Bluetooth thing that you were talking about. RAQUEL:  Yeah. AARON:  Our [inaudible] I think was a tug of war. Half the room would tweet the word blue and half the room would tweet the word red. And it would tug of war back and forth. RAQUEL: [Chuckles] AARON:  But yeah, it’s another cool, little non-intimidating robot to get started with. RAQUEL:  Yeah. TIM:  Which Bluetooth is that? Is that the older one or the new low-energy? AARON:  I think that most of the ones that we had there were the Sphero 1.0, so they had an older Bluetooth. But the new ones have the Bluetooth LE. TIM:  Yeah, I think that doesn’t conflict as bad. I’m not sure. At least, I hope. JAMISON:  I’ve had people ask me about a Raspberry PI versus an Arduino as far as ease of getting started. And my stock answer is that Arduinos are a lot easier to get started with if you’re just manipulating some pins basically. Do you have an opinion on the Arduino versus Raspberry Pi thing? RAQUEL:  I do. I think the benefit of the Raspberry Pi is that it’s a computer. It’s a full-on computer. JAMISON:  Yeah. RAQUEL:  The Arduino’s just a microcontroller. So, I think that in terms of just getting started, plugging in a USB, plugging in an LED, your best bet is an Arduino. But if you want to do more complicated things like having a wireless system that, so one thing my husband and I want to do is we want to have a button, a music button, so that when we get into the house, we can just hit a big red button and then have music start playing in our house. [Chuckles] JAMISON:  Oh man, that’s so cool. RAQUEL:  Because that’d be super fun, right? And we’re like, “Well, we can’t really do that with an Arduino because then we’re going to have to have cabling and all of this stuff.” Whereas if we just had this low, passive sort of thing like button, if we had multiple buttons around the house, then we could just hit one button and then have it send a signal to, say a Raspberry Pi, then it will be able to, it’s a computer all on its own. You don’t have to have something extra. One of the downsides of playing with an Arduino is that, especially with Johnny-Five and stuff, if you want it to do anything interesting, all the computing is done one your home laptop, or on your regular computer. The Arduino only takes the commands. And so, I’ve cut the cord by using Xbees, which are like little radios that, so instead of using a USB cable, you can use Xbee to have over-the-air communication to say, if I’m using a Bluetooth PS3 controller, then I can move a robot around with just my controller. But it’s not the Bluetooth controller talking to the Arduino. It’s the Bluetooth controller talking to the computer and then the computer sending commands to the Arduino. Whereas with a Raspberry Pi, you would basically take out the computer because it is a computer, so then you could actually have, if you have a Bluetooth-enabled piece then you could have the Bluetooth actually controlling the robot itself. JAMISON:  Sure. RAQUEL:  So yeah, it really depends on what your project is and what you want to get out of it. JAMISON:  Now, I just want to ask you other cool ideas you have for stuff to do to your house. [Laughter] JAMISON:  We’re about to move into a new house and it’ll be the first time I can rip stuff out of the walls. CHUCK:  Well, I think it’s interesting you’re talking about this. But a lot of the things that you’re talking about have been handled by a lot of the home automation stuff. So, a lot of them have motion sensors and light sensors. And you can actually not only turn on and off your lights in a room, but they’ll detect somebody walked past or is in the room and then can turn around and automate a lot of that stuff too, through your Wi-Fi. RAQUEL:  Yeah. JAMISON:  But it’s so much cooler to make it yourself. CHUCK:  Well, that’s what I’m wondering, is where is the line between home automation and robotics like what we’re talking about here? RAQUEL:  So, the line is the same as home improvement. So, if you are willing to build your own table, then you should build your own table. Similarly, if you’re willing to build your own music starter-upper button, then you should do that. If you are not willing to tear up your entire kitchen and make your entire kitchen from scratch using everything that you can find at your local home improvement store, then you probably should not go in and take out all the wiring in your house and redo everything so that you can have motion detectors, et cetera. Scope is important. [Laughter] RAQUEL:  Cost is important. And amount of time that you’re willing to spend on something is also important. So, my personal line is if I can work on something on the side and it doesn’t affect my day-to-day life, and then it just adds something fun at the end of the day, then I’m totally going to do it, because even if I don’t finish that project, it doesn’t mean that I don’t have a kitchen. [Chuckles] RAQUEL:  A stove, or something. I need my kitchen. I don’t necessarily need the music button, though it would be really awesome if I did. And then of course it’s also just, how much do you end up learning about electronics and home automation and et cetera, from building this one music button? There are so many options, learning a new API, et cetera. [Inaudible]. CHUCK:  Cool. Are there any other things that we should talk about here? Before we… JAMISON:  I wanted to last forever, but… [Laughter] RAQUEL:  Well, you can always, always, always tweet at me. I’m actually really good at responding to tweets on Twitter and terrible about responding to emails. [Chuckles] RAQUEL:  I don’t know what that says about me. But yeah, so anytime you want to chat, by all means, tweet at me. We’ll chat. I’ll share my crazy ideas. Come on to robotjs IRC and we’ll make our employers think that we’re typing very furiously on our projects. Although let’s be honest, I really have a lot of work to do. [Laughter] CHUCK:  Yeah, you’re in a startup. I think they’ll feel you back out. [Chuckles] RAQUEL:  Oh yeah, oh yeah. There are so many things I’ve got to do on my list. CHUCK:  Alright, well let’s go ahead and get into the picks.  Aaron, do you want to start us with picks? AARON:  Yeah. Yeah, so just thinking ahead to next week when this episode will go out. I’m going to pick, I have 80,000 picks. So, a lot of people like the Jamisons, they love NodeConf and RobotsConf. But there’s a lot of people who, they have one conference a year they want to go to, and that’s Google I/O. And about 80,000 people are going to get an email next week saying that they didn’t get accepted to go. JAMISON:  [Laughs] AARON:  And they’re going to get that the day after we release the podcast. So, I’m just going to pick all 80,000 of them and tell them that we love them. RAQUEL:  Aww. AARON:  And don’t be sad. There’s always next year. JAMISON:  [Laughs] AARON:  That’s my pick. CHUCK:  Alright. Tim, what are your picks? TIM:  I pick Duktape JS that I mentioned earlier because I think it’s awesome someone made a minimal JavaScript runtime that seems fairly complete. And I’ve been wanting that for years. I just never had the time to do it myself. So yeah, that’s my pick. CHUCK:  Jamison, what are your picks? JAMISON:  I have three picks. One is a music pick that I thought I had picked before but I haven’t. It’s this band called Frog Pocket. They do really glitchy electronic music. The buzzword is IDM. I’ll post a link on YouTube to one of their songs. And if you don’t like this song, then you’ll probably really hate them. But if you like this song, then you’ll really like them. My next pick is Homestar Runner, because holy crap, they just updated their website after five years. And it’s so good. Oh man, Homestar Runner is a big part of my youth. And it’s awesome to see them adding more stuff. And my other pick is a game called TowerFall. We have a PlayStation 4 at work and this is literally the only thing we’ve ever used it for. It’s this $10 indie game that you can download. It’s like Super Mario mixed with Super Smash Bros. It’s just a blast for local four-player [inaudible]. AARON:  What’s it called? JAMISON:  TowerFall. They have it on PC and on Ouya and the PlayStation Store, too. I don’t think it’s on Xbox. And it has to be local. You can’t play online, just because it’s so twitchy and fast and stuff. But if you have one of those platforms, you should totally play it. And those are my picks. CHUCK:  Alright. Joe, what are your picks? JOE:  My first pick is going to be the PC game Titanfall. I picked that up a week or a week and a half ago. And I’ve been playing it of course. I can’t imagine anybody who hasn’t heard of Titanfall because it was such a hugely advertised game. But it’s actually been really fun. I picked it up on the PC because I think that shooters on a console are retarded. [Laughter] JOE:  And I do enjoy. It’s not like, I think there are better shooters out there. But it is really quite fun. My second pick is going to be SaltCON and this is my final pick as well. SaltCON is a three-day conference held somewhere in the Salt Lake City area every year. And it’s just three days of playing board games. It’s not like an expo where you go and just go to booths. It’s just tables set up and board games you can go grab and play and meet new people and play board games. And similar type games as well, dice games and role-playing games, but primarily board games. And I got to see a bunch of really cool games that are going to be coming out in the next few months, ones that got Kickstarted or something. And I’ll be able to pick those in the future episodes. CHUCK:  Very cool. Alright, I’m going to pick a couple of things that I’ve been using lately. One of them is Diablo III. I’ve been playing that off and on. It’s just a nice little escape. It takes me anywhere from a half hour to 45 minutes to complete a series of quests, so to speak, to get one major thing done I guess. So, that’s just enough time for me to relax and then go back head-first into work. Another one that I’m going to pick is Flowdock. Flowdock.com. It’s a chatroom for teams. The cool thing about it is that you can set up multiple rooms or flows or whatever they call them. And then within each one, you can actually have different contexts. So, if you type something in, then somebody else can actually pick up the thread and reply to just that thread, comment on it. And that’s really convenient if you’re having a conversation with somebody and you don’t want the whole mess of stuff that comes through in things like an IRC channel. You get that too. You get the fire hose and then you get the filtered hose on the other side. And you can also set up notifications in it and things like that, really, really handy. And I have also been using their desktop app on my Mac and it seems to work alright. So, those are my picks. Raquel, what are your picks? RAQUEL:  Okay, so I am a huge, huge fan of The Pastry Box Project. That’s the-pastry-box-project.net. I’m a little biased because I write for them this year. But the thing I love about it is it’s just a beautiful daily look at the way people think, especially in our industry, because it’s not really very technical. But not always, sometimes it is. But there are just some really cool perspectives and stuff that are in there. And I think it’s good for the brain. My next one is CuteOverlord.com, because we all need cute things in our life, especially when there are moments where you’re just like, “I hate trolls. And I hate the world.” But oh, look, it’s a really cute bunny. [Laughs] And then it’s springtime in the northern hemisphere. And I think that is a good excuse for people to go to their local parks and to explore the outside world. I know that as developers, we have a tendency to stay inside a lot and not get as much sun as we need because work or something. But there’s probably a tree in your neighborhood. Go and just look at it. [Laughs] Just go outside and do something nice. JAMISON:  Raquel, you’re in San Francisco, right? RAQUEL:  Yes. JAMISON:  Let me tell you a little something about Utah. RAQUEL:  [Laughs] JAMISON:  It’s pouring almost freezing rain right now, 40 degrees and cloudy. [Chuckles] RAQUEL:  Okay, fine. JAMISON:  I will take your advice, but [inaudible]. [Laughter] RAQUEL:  Well then, I think I’m going to change that pick then and say that you should go find your local lab or university and go on a tour, because you need more science in your life. And just a week ago, or last weekend, I went to the Berkeley National Lab, went up the hill and learned about some of the most amazing science that is not even in magazines right now because it’s just so new. And it will completely blow your mind. And there are these grad students who are itching to talk to real human beings again instead of just their samples. [Laughter] RAQUEL:  Do yourself a favour. Go out, meet really cool people. If you don’t have a national lab, just find your local university or something. You will learn something awesome. I promise. [Laughs] JAMISON:  Now you just made me jealous of your weather. [Laughter] AARON:  Yeah. I miss San Francisco now, more than I already did. RAQUEL:  Well, you should just come out. And yeah, you’re welcome to come to the npm office anytime in Oakland. Oakland’s even sunnier than San Francisco. [Chuckles] RAQUEL:  San Francisco’s covered in fog. It’s dumb. AARON:  Will we get spray-painted if we go to Oakland now? [Chuckles] RAQUEL:  No, you won’t. You won’t. Instead, I will take you to Chinatown and you can get the most delicious Chinese and Vietnamese and Japanese and Korean food you’ve ever had in your life. And it’ll be really cheap. And unlike the rest of California, it won’t necessarily be organic and grain-fed or whatever. But it’ll be delicious. [Laughs] AARON:  That’s the important part. That’s all I really care about. RAQUEL:  I think so, too. That’s my opinion. But anyway. [Chuckles] CHUCK:  Very nice. Well, thank you for coming. It’s been really cool to talk about. And I’m excited to see what people wind up doing. So, if you wind up doing a project, this inspires you at all, let us know. RAQUEL:  Definitely. CHUCK:  And how should they tweet at you if they do something like that? RAQUEL:  I’m rockbot on Twitter. That’s the easiest thing. And then you can always find me. I have a blog, website, whatever, at either raquelvelez.com or a simpler link is rockbot without the vowels, so rckbt.me. [Chuckles] AARON:  Rckbt. CHUCK:  Rckbt, rckbt. [Laughter] AARON:  It’s Missy Elliott lyrics. RAQUEL:  Yeah, there you go. [Laughter] CHUCK:  Yeah. We had a hack night last night and there was guy that was trying to turn rabbits into frogs. RAQUEL:  Nice. [Laughs] CHUCK:  Anyway, that’s just what it made me think of, the rckbt. AARON:  Like ribbit. I get it. I got it, finally. RAQUEL:  [Laughs] CHUCK:  Alright. Well, we’ll wrap up the show. We’ll talk to you all later. [Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.]  [Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit CacheFly.com to learn more.] [Do you wish you could be part of the discussion on JavaScript Jabber? Do you have a burning question for one of our guests? Now you can join the action at our membership forum. You can sign up at JavaScriptJabber.com/jabber and there you can join discussions with the regular panelists and our guests.]

x