AARON: I think my cats are going to join us.
AARON: I don’t think they’ll say anything though.
JAMES: We want their picks.
[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on Ruby developers, providing them with salary and equity upfront. The average Ruby developer gets an average of 5 to 15 introductory offers and an average salary offer of $130,000 a year. Users can either accept an offer and go right into interviewing with the company or deny them without any continuing obligations. It’s totally free for users. And when you’re hired, they also give you a $2,000 signing bonus as a thank you for using them. But if you use the Ruby Rogues link, you’ll get a $4,000 bonus instead. Finally, if you’re not looking for a job and know someone who is, you can refer them to Hired and get a $1,337 bonus if they accept a job. Go sign up at Hired.com/RubyRogues.]
[This episode is sponsored by Codeship.com. Don’t you wish you could simply deploy your code every time your tests pass? Wouldn’t it be nice if it were tied into a nice continuous integration system? That’s Codeship. They run your code. If all your tests pass, they deploy your code automatically. For fuss-free continuous delivery, check them out at Codeship.com, continuous delivery made simple.]
[This episode is sponsored by Rackspace. Are you looking for a place to host your latest creation? Want terrific support, high performance all backed by the largest open source cloud? What if you could try it for free? Try out Rackspace at RubyRogues.com/Rackspace and get a $300 credit over six months. That’s $50 per month at RubyRogues.com/Rackspace.]
[Snap is a hosted CI and continuous delivery that is simple and intuitive. Snap’s deployment pipelines deliver fast feedback and can push healthy builds to multiple environments automatically or on demand. Snap integrates deeply with GitHub and has great support for different languages, data stores, and testing frameworks. Snap deploys your application to cloud services like Heroku, Digital Ocean, AWS, and many more. Try Snap for free. Sign up at SnapCI.com/RubyRogues.]
CHUCK: Hey everybody and welcome to episode 200 of the Ruby Rogues Podcast. This week on our panel we have Coraline Ada Ehmke.
CORALINE: Good morning, afternoon, whatever.
CHUCK: Jessica Kerr.
JESSICA: Good morning.
CHUCK: I’m Charles Max Wood from DevChat.tv. And we brought back a few of what Dave’s calling legacy Rogues. [Chuckles] We have James Edward Gray.
JAMES: Where am I and how did I get here?
CHUCK: We have Aaron Patterson.
AARON: [Chuckles] I’m not legacy. [Laughs]
CHUCK: And Saron Yitbarek.
SARON: Hey, everybody.
CHUCK: So, it’s been a while since we’ve had some of you on. I don’t think we’ve had Aaron on since episode 100.
JAMES: He’s done the 100 episodes [inaudible].
JESSICA: You need to come on more often if you want to be ‘not legacy’.
AARON: Oh. I don’t know. I don’t think I’m, I wouldn’t say I’m legacy. I’m just really well-maintained.
CHUCK: That’s right. [Laughs]
AARON: I’m done. Bug-free.
CORALINE: You have a fine public API, Aaron.
JAMES: That’s a good [inaudible].
AARON: And I’d like to keep it that way.
CHUCK: So, I was thinking that we could just catch up with some of the Rogues that we haven’t heard from in a while. I think it’s been the longest since we’ve heard from Aaron. So, maybe we’ll start with you. What have you been up to in the last, what, almost two years?
AARON: Almost two, whoa, really, it’s been two years? Huh.
AARON: Man, I don’t know. Making sausage, making bacon, stuff like that. No, I mean I guess since I was on last I got a new job. I work at Red Hat now.
CHUCK: Oh, cool.
JAMES: Wow, cool.
AARON: It’s obligatory. I have to say we’re hiring. So there, my contractual obligation is now out of the way. So, we can move on.
CHUCK: There are no other companies out there hiring. So…
AARON: Nope, no, none, zero. Let’s see. Yeah, so I’ve been working at Red Hat for I think seven months or so. I don’t know. That’s the newest thing in my life, I suppose.
JAMES: What are you doing for Red Hat, Aaron?
AARON: I’m working on a team. So, I’m working on a team called the CloudForms team. And I think that’s our name. Our team seems to have many names. I’m not sure which one’s the right one. Anyway, we build an application that’s for managing clouds. So, if you have a cloud you need to manage, just talk to me. [Laughs]
CORALINE: Are you serious?
JESSICA: Wow, that sounds even harder than managing developers.
AARON: You know [chuckles] I am serious. But it was, the whole team, we work together a lot. We have a good team. And this product is definitely a cumulous effort.
JAMES: Oh my god.
SARON: This is going to be a fun episode.
CHUCK: I just love how it’s the cloud thingy built by the team that cannot be named.
AARON: Yes, yes.
JESSICA: It’s nebulous.
CHUCK: It’s all kind of foggy, right?
AARON: Yeah. [Laughs] Yeah. Anyways, so yeah, I don’t know. It’s fun. It’s a good team. I’m trying to think of other stuff that’s not… oh, I have a new hobby now which is building mechanical keyboards.
AARON: And I’ve spent way too much money on this hobby. So, don’t get into it.
SARON: How do you learn how to build a mechanical keyboard? Do you just take it apart and try to put it back together?
AARON: No, [inaudible]…
CORALINE: [Inaudible] watching you.
AARON: [Laughs] I bought a kit. I bought a kit.
AARON: To build, it’s called an ErgoDox. And they just have instructions on the website. That was my first one. I built an ErgoDox and there was just a bunch of instructions and I followed them. Basically I was getting, I started to get RSI. My hands were hurting. So, I bought one of these little exercise balls, the gyroscope thing. I bought one of those. And I was working out with that. And then I also thought, “Well I probably ought to switch up my keyboard situation.” So, I was reading around about ergonomic keyboards and decided to go for this one. Actually, Gary Bernhardt was tweeting about how he had this keyboard and liked it a lot. So, I got one too. And it’s really awesome. It was very hard to build. I have to admit, there are, what is it, 76 surface mount diodes you have to solder. And of course…
SARON: Oh my goodness.
AARON: Yes. And then of course 76 keys. So, it was a lot of soldering. But I did it. And I’m really happy with the keyboard.
SARON: Is it one of those things where if you mess it up, it explodes?
SARON: Okay. Darn.
AARON: No, not at all.
SARON: That would have been fun. For me, not you.
AARON: My favorite thing about the keyboard though is you can program the firmware. So basically, it has an Arduino on it, essentially. So, you can program it to do whatever you want to. So for example, one thing I do is I have a key that’s for, you can have dual purpose keys. So, I’m a vim user. So, one of my keys is if you tap it, it’s escape but if you hold it, it’s control.
SARON: Wow. That’s fancy.
AARON: It’s really nice. I like it a lot. Anyway, so after I built that one, I started building more of them. And it’s become an expensive hobby.
JESSICA: Clearly because you are a vim or Emacs user, this is the next step. Build your own editor. Now you’ve got to build your own keyboard.
CHUCK: I could totally see putting one of those dual purpose keys on there and then having my wife try and use my computer.
SARON: Ooh, yeah.
AARON: When you build your own keyboard, I don’t think you ever get keys that are labeled. My keys are totally unlabeled. There’s no… it’s impossible. Nobody can use it.
JAMES: [Chuckles] That [inaudible].
CHUCK: You should switch it to Dvorak.
AARON: I actually use the Norman layout.
JAMES: Norman, really?
AARON: Yes, yeah.
JESSICA: Did you build that yourself?
AARON: No, no.
AARON: So, it’s a layout basically. It’s actually really cool. The person who made the layout, his name is Norman, basically said, “Okay.” So, I guess his theory was people who switched to Dvorak are people which… many people try out Dvorak but they don’t switch to it because the keyboard shortcuts are not there, right? You have a little muscle memory from QWERTY for your keyboard shortcuts like copy/paste and quit and all that stuff. So, what he wanted to do was take QWERTY and try to increase the efficiency of QWERTY but change as few keys as possible. So, it’s close to QWERTY but much easier on your hands.
CORALINE: Have you noticed a difference in your typing speed with all these craziness that you’re doing?
AARON: Oh. So, this is the worst. I’m extremely embarrassed to say this but before I switched I forgot to measure my speed. So, I have no idea. [Chuckles]
CORALINE: Well, having paired with you in the past I can tell you that maybe you need to slow down because you are blindingly fast and I had no idea what was going on.
AARON: [Chuckles] I think that was QWERTY time.
AARON: So, I don’t know. I’m back to what feels normal speed. But it’s definitely less effort. And my hands, I don’t have any pains anymore. So, I’m very happy.
CORALINE: That’s awesome.
JESSICA: [Inaudible] really what matters. Do you enjoy typing more now?
AARON: Oh yeah. Well, let me tell you. Typing, the mechanical keyboard, it’s not the layout. Get a mechanical keyboard. Just do it. It’s so nice to type on. It’s so nice. You can get some, there is, I was going to do this in the picks section. I recommend maybe the Ducky. There is a company called Ducky that makes mechanical keyboards. You don’t need to build it yourself. You can just buy one and it’s got all the keys labeled and whatnot. But you get all the advantages of a mechanical keyboard. So, just especially as programmers typing all day, you should definitely invest in a good keyboard. It’s worth it.
CORALINE: I remember my first computer that I owned by myself. It was a Timex Sinclair with a membrane keyboard. And it had Basic keywords printed on them so you could press a function key and make it say GOTO.
CORALINE: Not so great for typing speed.
AARON: Okay. Since it’s an Arduino on your keyboard, you could do that. You could totally do that, have a GOTO key.
JAMES: That’s amazing.
CORALINE: The key that must not be pressed.
AARON: Yes. Another cool thing it does is it does layers. Imagine you have multiple shift keys, essentially. So, I have one layer where basically my right hand is a numpad and the left hand is all symbol. So, I don’t have to go to the top row to get programming symbols or numbers, which is nice.
JAMES: That’s interesting.
AARON: Sorry. I’m probably nerding out about keyboards too much now. [Chuckles]
JAMES: I think it’s awesome. Actually, David Brady picked an ErgoDox keyboard on episode 147.
AARON: Ah. Well, I recommend it. You should get one.
JAMES: Yeah. I think he uses one.
CHUCK: I think he switched back and forth from it a few times. Because I’ve spent time with him using it and not using it.
CHUCK: So, I don’t know what he uses now.
AARON: My second one, I got an Atreus. And I built that. That’s, you might know him, technomancy.
JAMES: Oh, yeah.
AARON: Yeah, he came up with this keyboard. And he sells the kit on his website and you can buy it. And it’s a pretty nice keyboard. It’s essentially, basically what he wanted to do was and ErgoDox for travel essentially. And that’s mostly what that keyboard is. ErgoDox is too big to carry around, really. So, the one that he did is a small travel size mechanical keyboard. And I take that with me now. So, the problem with getting a mechanical keyboard in a custom layout is now I can’t use any other keyboard.
AARON: And I try to use a laptop keyboard and I’m like, “This is impossible. I just give up.” I’m like, “This is not… I can’t.” I make typos all the time. It’s too slow. I’m done.
CORALINE: That’s got to be a handy skill.
SARON: This morning for the first time I used a mechanical keyboard and it is awesome. It’s springy and loud, which is great because I get to prove to everyone in the office that I’m actually working.
CHUCK: I love it.
SARON: So, I approve.
JAMES: So, what you’re saying is the more noise the keyboard makes, the better.
SARON: The better the code is. That’s the rule.
SARON: I’m pretty sure that’s how that works.
CORALINE: I just have an mp3 that plays loud, clanking noises.
JESSICA: That’s even better.
AARON: I don’t know. When I’m looking at some code, I can tell. I’m like, “Yeah, I can really see that this was typed on a mechanical keyboard.”
AARON: I can really tell.
JESSICA: You know, in video conferences we call that strong typing.
JAMES: Look at that less than key. It’s really on there, huh?
CORALINE: So Aaron, I think I remember seeing on Twitter that you’ve been ordering keycaps by the pound.
AARON: Oh, yeah.
CHUCK: It’s for the sausages.
CORALINE: What did you finally settle on?
AARON: So that’s, one of the problems of keyboards, mechanical keyboards, is it’s really easy to replace the keycaps. So, I always see these awesome designs. I’m like, I got to have that. And I just spend way too much money on it. I haven’t settled on one. Right now, my ErgoDox has a Nyan Cat theme on it.
AARON: So pretty much, it’s basically a giant rainbow if you look at it.
JAMES: That’s amazing.
AARON: But I can’t settle. I have hundreds of keycaps. I bought three. So, I did buy a bulk set, three pounds of keycaps. But they’re a lot of more rejects. It was basically a [thing] of rejects. So, not all of them were usable.
CORALINE: Island of misfit keycaps?
AARON: Yes, exactly.
CHUCK: [Laughs] Nice.
JESSICA: So, you change your keycaps like some people change their nail polish?
JAMES: It’s so cool.
AARON: I can tell you my wife’s not a huge fan of the keycaps, or the mechanical keyboards.
AARON: It’s too loud. [Chuckles]
CHUCK: Yeah, that’s the concern that I’ve had, because I’ve looked at them for a while but I would have to switch keyboards when I’m podcasting.
JAMES: Is she upset because you’re too loud or because she can’t type on them?
AARON: Too loud.
AARON: Well, and she can’t type on it.
AARON: But she has her own computer, so it’s fine.
AARON: You can get different kinds of switches. So this is… okay, you know what? I’m just going to keep going with it. [I’m sure.] Just keep going.
JAMES: [Chuckles]. Go. You’re [the escape goat].
AARON: Just keep going. You can get, they have tons of different kinds of switches. Ones that are louder, ones that are quieter, ones that have smooth action, ones that have a bump. When you press them down, you feel a bump. And then you can also get these little rubber [O ring] things to make them quieter. So, I actually bought the quieter switches, although they’re still loud.
JAMES: Aaron, did you see the announcement Apple did recently for the new MacBook? They changed the kind of switch they’re using on their keys. Did you see that?
AARON: I didn’t know that, no.
JAMES: Yeah. I guess the current switch is like, I don’t even know how to describe it. It’s just like a catapult almost and then it just leans back. And it’s kind of wobbly and stuff. But on the new MacBooks, they have a butterfly switch. So, it goes both ways. And it’s supposed to make for a more stable key and stuff like that. It looked interesting.
AARON: Interesting. Another thing I like about my ErgoDox is instead of, so you know normal keyboards are row staggered?
AARON: The ErgoDox is column staggered. So rather than, you know when you’re typing, when you switch rows on a row staggered keyboard you have to move diagonally, right?
AARON: So, if you look at your keyboard and if you look at the keys above it, you have to move your hand diagonally to get to the next rows. Where the ErgoDox is column staggered. So, to get to the next row you move directly up or directly down. So, it’s supposed to be less effort than moving back or something.
JAMES: That’s interesting.
AARON: And that is also a huge cause of typos for me when I switched keyboards.
CHUCK: So, you’re reaching for Q and you get QW or something?
CORALINE: So, what have you been typing on this fancy keyboard, Aaron?
AARON: I don’t know. Maybe three months or four months, something like that. It took me three weeks to get back to normal speeds. But it’s, I don’t know. I like it.
CHUCK: Awesome. Well, I’m going to switch gears on us here a little bit. James, you were the next least recent I guess, person. You retired from the show on episode 174. What have you been up to these days?
JAMES: I have been doing three things. I’ve been listening to the Ruby Rogues podcast.
CHUCK: Oh, not those guys.
JAMES: Which is surprisingly awesome to be able to just listen and have all this great content delivered and not have to do anything about it. That’s awesome.
JAMES: I have been programming a bunch of games in my spare time, learning how to make games. And that’s been something I’ve been working on. And I’ve been teaching kids how to program.
CHUCK: That sounds like fun.
SARON: I have so many questions about all of those things.
JAMES: Alright. Bring it on. [Chuckles]
SARON: Okay. So, making games, like video games?
JAMES: Yes, actually.
SARON: What are you [using] [inaudible]?
JAMES: I got into programming because I wanted to learn how to make games. And then I got busy and got jobs and stuff like that. And I basically never made games. And so, I decided I was really going to sit down and figure out how to do it. And yeah, I’ve been reading tons of great books about it and stuff like that. And then as far as what I’ve been using, I’ve tried all kinds of things. I’ve used existing engines like GameSalad and stuff like that. And then I’ve gone and played with just frameworks. Ruby has Gosu, which I’ve played with a bit. And then I’ve rolled my own game engines. And well, mostly Dart actually, Google’s Dart language. A little bit in Ruby, to a lesser extent. But yeah, playing with all kinds of game stuff.
CORALINE: Did you see the Unreal License, or open up the license for their engine?
JAMES: I did see that. Yeah, I followed Unreal and Unity and stuff like that. And I haven’t gone to playing with those yet. I’m still figuring out the basics. I did read a really good book called ‘Game Programming Patterns’. It’s really awesome. It’s like a patterns book, like the Gang of Four book and books like that. But it’s nice because it all focused on games. So, the Gang of Four book is one of the amazing, great books of all time. But it really has no context. You have to take everything at an abstract level. So, the cool thing about this game book is that you can learn similar stuff. Obviously, it’s focused toward games. But with context. It’s related to this overall theme of games and stuff. So, I find that kind of thing much more palatable. And I’ve learned a ton from it.
SARON: We had a hackathon at thoughtbot two weeks ago, I think it was. And so, we built a game just to see how it worked just for fun. And we used Unity, Unity game engine. And it was just a two-day hackathon. And by the time we had finished building out very easy beginner-level game, and I was playing it, I remembered how much I didn’t like video games.
SARON: I was like, “Oh, this is really fun,” and I was playing it. And I was like, “Oh wait. I don’t actually want to do this anymore.”
JAMES: [Chuckles] I don’t like this.
SARON: So, I was, “I don’t like this.” But I was… Have you used 3D modeling software before like Blender or anything like that?
JAMES: Yeah. When I was a kid I used to love to play with ray tracers. So, POV-Ray and things like that. I’ve used Blender. And I have a 3D printer.
SARON: Oh, nice.
JAMES: So, I use CAD software to design objects that I print and stuff.
SARON: Yeah, so for Unity engine I was very surprised to find out how similar it was to using Blender. And I don’t like Blender, because Blender just is really hard to use and annoying. But yeah, I found the tools to be very similar. Is that true for all gaming engines or is that just a Unity thing?
JAMES: I think Unity’s probably, Unity and Unreal especially are probably the cream of the crop right now as far as handle a lot of things for you. And then if you drop down to something like Gosu which is in Ruby, that’s much more, you’re on your own. Here are a few things to give you a window, give you the ability to manage some sprites, and stuff like that. But more, you got to handle everything. So, that’s a much more frustrating experience if you’re trying to do a big thing and start from scratch.
SARON: Mmhmm, yeah.
AARON: What type of gas do you use in a game engine?
JAMES: The noisy kind. The kind that…
JAMES: [Inaudible], you know.
CORALINE: I thought it was Mountain Dew.
CHUCK: Yeah, but the sugar is murder on the mechanics.
JAMES: Right. It’s funny, but when you learn to program games and Saron hit on this but, it’s kind of tough.
JAMES: There’s a lot going on. And when you program web apps all day, every day which is what I do, the flow through a web app is pretty calm, pretty easy. The user’s going to hit you with some request. You have to do something and respond. Whereas to even get started with a game, the very first thing you have to do is roll a loop, an event loop, where you can continue animating something on screen while you’re paying attention to the keyboard and stuff. So I found, I’ve learned a lot of stuff just from the patterns and stuff. And even that’s helped me quite a bit in my job as far as when we’re doing asynchronous things at work and stuff like that. So, it’s a pretty valuable bit of knowledge, I think.
AARON: I love playing video games. Love it, love it. But every time I think about programming a video game, I’m like, “Oh, it sounds too hard. I’m out.” [Chuckles]
JAMES: It is really tough. So, even after you learn how to do things like roll a game loop and stuff like that, and keep track of events, that’s basically like the beginning, right? Then you have to worry about things like, okay, now you need a game. You need things like gameplay mechanics and story and stuff like that. And so yeah, it’s surprisingly involved. I’ve learned a ton.
SARON: You know, I was surprised to know that it makes sense, though. When I think of video games, it’s just this big black box of, I have no idea where to even begin to take it apart. But after spending just a day and a half, two days, using Unity engine, all the pieces were straightforward. Now actually executing on each piece and making it an enjoyable game is a whole other thing. But on a very high level, structurally, it wasn’t as insane an intricate as I thought it was going to be. I don’t know if you felt that way.
JAMES: Yeah, yeah. They have their own way of doing things, right?
SARON: Right, right.
JAMES: They have, they’re like Rails, their way of constructing things, yeah.
SARON: Exactly. Yeah, and once you understand the framework, then the details is where the hard part comes in.
JAMES: Yeah, I agree. That’s been fun.
CHUCK: So, are you targeting in-browser games or are you targeting more of the desktop style games? Or are you just playing around?
JAMES: I’ve been doing a lot more playing around and a lot less worrying about who could play this.
JAMES: Mostly it’s just been me, my friends, my wife, that kind of thing. But if I were to do a game these days, I guess it would depend on the kind I would do. But I’m not a big 3D, heavy performance kind of stuff. I’m more of a strategy gamer kind of thing. And for something like that, I would almost surely do in-browser these days. You can do pretty great stuff in the browser. And if you don’t need that insane performance and stuff, easy way to get a game to everybody. But that’s just my personal enjoyment.
AARON: How do you come up with stories and stuff for the game? Because that’s another aspect where I’m just like, “Eh, it’s too hard.”
JAMES: Yeah, so there’s a really cool answer to that question. I’ve been reading a book that basically walks you through. So, chapter by chapter it does things like, okay, so let’s talk about puzzles, or let’s talk about story. Let’s talk about characters. Let’s talk about all the various aspects of a game. And it goes through and it talks about the different things. And it gives you ideas. And it gives you systems for creating them. And then at the end of each chapter, there is a set of exercises. And it’s basically a bunch of activities they have you do to practice that kind of thing and get better at it. So, like anything, it’s a skill and you can practice it and get better at it. So yeah.
CORALINE: James, you mentioned teaching programming to kids. Are you using games as a framework for that?
JAMES: So, a little bit, yes. That’s part of the reason I’ve been playing with them a lot. And I would like to do more there and stuff. But what I’ve currently been doing mostly is using things like robotics. So, Lego Mindstorms, MiP. My daughter has this little robot called MiP that we play with a lot, and things like that. But also, in December I went to my daughter’s school and taught some classes for computer science awareness week. And we used the Code.org website where they have lots of games on there that kids play and get some of the programming basics. So, yes and no, but yes.
CHUCK: Awesome. We just had Katrina join us.
JAMES: Yay. Hi, Katrina.
KATRINA: Sorry, hi.
CHUCK: It’s all good.
KATRINA: I am in a noisy place and I don’t have a headset. So, please bear with me.
CHUCK: That’s fine. It’s kind of general noise, so it’s not a problem.
KATRINA: Alright, so what are we talking about? Sorry, totally catch me up or just ignore me and type stuff in the chat.
CHUCK: We’ve been talking to James about writing computer games.
KATRINA: That’s awesome.
CHUCK: So, what have you been doing with teaching kids, James?
JAMES: All kinds of stuff. So, I mentioned that I went to my daughter’s school and taught some classes there. I taught five classes over a week to fourth and fifth graders. And that is just crazy awesome. If you haven’t tried that, you should definitely do it. They were just, ate it up. I showed them very basic stuff using the Code.org website.
So, they’re mainly playing games, like trying to get the zombie away from the plants in Plants vs. Zombies, or get the birds to the piggies, things like that. They have an Anna and Elsa one where you’re designing these geometric shapes in ice. And it’s really just simple, algorithmic thinking, like move forward, turn right, move forward, turn right, that kind of stuff. But man, they had a blast. I had different class sizes. But I’d sit there and play with them for an hour and a half and then time would come. And we’d start putting things around and I’d be like, “You ready to get out of here?” and they were like, “No.” They wanted to keep going and learn more and just super into it. And it’s been really awesome for me.
SARON: Oh, [inaudible]
CORALINE: So, I saw a talk by Joseph Wilk at RubyConf Australia. And he talked about using music to teach kids programming. And one of the interesting things he brought up is concurrency is one of those issues that a lot of people have trouble with. And when you’re doing music, concurrency is a core to it. And it’s a great way to teach a concept like that. Do you find the same to be true in games programming?
JAMES: That’s a good question. I haven’t really thought about it much. Yeah, I think definitely it applies. Actually, my first thought when you said using music to teach kids programming, so a friend of mine has a kid that is interested in programming. And the other day I just grabbed a Raspberry Pi 2 and set it up so that when I see him later this week, I can be like, “Here. You should play around with this.” And Raspberry Pis are just perfect for that, I think. Because like, “Here, kid. Here’s $35 computer. Totally destroy it. I don’t care.” Or even if you nuke the “hard drive” I’m going to pop out the SD card, re-flash it, and we’re good to go. So, that kind of stuff is great.
But on the Raspberry Pi 2, when you load the basic OS it comes with Sonic Pi on it. And Sonic Pi is a musical programming environment that programs in, get this, Ruby. [Chuckles] So, you can sit there and write Ruby code and you’re making music, right there live. And they encourage you to do it live. So, like what you were talking about with concurrency and stuff where the sound’s going and then you make another sound and change it or change the beats or whatever, and you’re just editing it live. And it’s awesome. It’s totally great to play with big tutorials. They get into things like iteration and loops really fast, whereas usually we do that slower in programming and stuff. So, I found that to be really interesting.
AARON: When you’re doing game programming, do you ever say to yourself, “Do you think this is a game?”
AARON: Because I would do that.
JAMES: Well now, I’m going to.
JAMES: Except every time I think that, I think I’m going to tweet Aaron, and ask you if you think it’s a game.
CHUCK: Should we see what Katrina’s been up to?
JAMES: We should definitely see what Katrina’s been up to.
KATRINA: I don’t know. I’m not doing anything interesting. I just go to work and I go home again.
JAMES: What do you work…
SARON: That is so not true.
JAMES: Yeah, what are you working on?
SARON: You do interesting things all the time.
KATRINA: I work at Splice.com. So, I’m making software for music production, DJs and that sort of thing. It’s a collaboration software. And it’s really cool. I’m totally enjoying that. And there are lots of big, hard problems. But I don’t actually feel like I’m doing much talk-worthy about.
CHUCK: So, you moved from Denver to California, if I remember right.
CHUCK: And you’re not doing the gSchool thing anymore.
KATRINA: No. teaching was too rough for me. I don’t have the, what it’s called, fortitude? [Chuckles] to do teaching.
KATRINA: Lacking the constitution to do teaching. So, I’m shipping software. I’m senior minion at Splice. It’s [awesome].
CHUCK: Oh, there you go. Do you get to wear the cool goggles and overalls?
KATRINA: Sorry, no goggles.
KATRINA: Now I want them, though.
AARON: Well, so how do you get to work?
KATRINA: I walk.
AARON: Aah, okay.
CHUCK: Oh, that’d be nice. Oh wait, never mind. I work from home.
AARON: Walking to work.
JAMES: What about conferences, Katrina? Aren’t you in… are you in England right now or were recently?
KATRINA: So, I got home, I guess it’s eight hours ago now. [Chuckles]
CHUCK: Oh, wow.
KATRINA: Yeah. England was amazing. It was so good. The conference, I was at Bath Ruby with a few other people, among them Saron. And it was a fantastic conference. Really, really well put on. And then I spent the whole weekend in Bath not doing anything except hanging out with awesome people. And I don’t think I’ve done that for a long time. It was really good.
AARON: Did you [notice]…
CORALINE: Does that make your fingertips all wrinkly?
AARON: Aah, I was going to make the pun!
JESSICA: Katrina, you just named three really interesting things. You had a move, and a job switch, and you have a really interesting job that you’re working at now, making interesting software. And you went to an awesome conference and hung out with awesome people. And okay, what you do is interesting!
KATRINA: [Chuckles] Thanks. [Laughs]
CHUCK: Well, the thing I always think was funny about Katrina is she’d totally downplay what she’d been doing. And then a couple of episodes later we’d find out that yeah, she mentioned something in passing that we were all super interested in.
SARON: Oh, don’t worry. If she didn’t bring up Bath Ruby I would have definitely brought it up for her. And then I would have made her feel guilty for not bringing it up.
KATRINA: [Hey, I’m right here.] Yeah okay, so I’m totally doing interesting stuff. I guess the interesting thing to say is that I work in Go fulltime, not Ruby anymore.
AARON: How’s that going?
JAMES: Hey let’s, oh, oh, oh.
JAMES: Let’s talk about that a little though. Because actually, that came up on a really recent Ruby Rogues episode, 198 I believe, with Mark and Scott. And they talked about how the Go community was a really interesting place. What do you think, Katrina?
KATRINA: I think it is totally, absolutely a [chuckles] really interesting place. Sorry, the chat caught me up. So, Go programmers are a lot less reckless in general than Ruby programmers, which is a really interesting thing in and of itself I think. I’m a little bit curious about how that came to be. And I think it might be that Go programmers, even though the programmers themselves might not always come out of the lower, close to the metal systems programming, the culture seems to have come a lot out of there. And in that culture people are a lot more careful about things that can go wrong, things that potentially can be disastrous about being aware of what your dependencies are and managing them a lot more closely that just sticking something in a gem file and thinking it’s going to be okay. So, that’s really interesting.
And people in general in the Go community, it seems like people are a lot more willing to dive really deep into the internals of how things work. And in Ruby, a few people are like that. But the general population of I would almost say Rails programmers more than Ruby programmers are just content to accept that however it’s designed to happen, as long as I type the right thing in the right place, it’s going to work. And I don’t really necessarily need to understand that. So, that’s pretty cool.
AARON: How do you like working without exceptions?
KATRINA: I love it. [Laughs]
KATRINA: Yeah. So, I didn’t necessarily know whether I liked it or not for the first maybe half a year. And then a couple of weeks ago I went into one of my open source projects. And I had a three-line method where on every line there could be at least one nil that I was just totally ignoring. [Chuckles] And I was like, “how am I going to get the error back to the caller?”
JAMES: Okay, so that’s an interesting point. What you’re saying you like about it is that it forced you to think about the edge cases and the error cases, right? Did I get that right?
KATRINA: Yeah, and be very explicit about it so that I’m passing the error back. And then somewhere in the place where I know exactly, like in a web API I want to be dealing with the errors in the controller. I want to know exactly what the errors are because depending on what errors I got, I’m going to handle them very differently. Some of it, I might just log and move on. Other things I might actually want to create something explicit that gets sent back to the user. And in Ruby I would have to catch exceptions. And even in Ruby, I just wasn’t as aware of everything that could go wrong. And so, I was going to get nil, no method errors all over the place.
JESSICA: Ruby as a language compared to Go, Ruby makes the easy path the path of ignoring possible errors.
JESSICA: Makes the happy path look all flowery and pretty.
JESSICA: Whereas Go encourages dealing with the errors right away where you have the information for them.
KATRINA: Yeah. It’s very explicit. There’s very little just assuming that it’ll be fine. [Chuckles] Oh, it’s fine. It’s going to be fine. That’s very not Go-ish.
AARON: I’ve seen, doesn’t that mean that your code gets really littered with conditionals though? I’ve seen some Go code that’s like, if error, if error, every three lines.
KATRINA: Yup, pretty much. On the one hand, I have this visceral dislike of the conditionals. But on the other hand because it’s so explicit, it becomes, I don’t know. I feel like I can ignore it as part of reading the code. My eyes will just skip lightly past that. It’s boilerplate. I understand it.
KATRINA: And why it’s there.
JAMES: So, the reason that is, is every function in Go needs to return something of whether or not this succeeded or was an error state. So then, it’s almost always followed by a conditional to be like, if this succeeded, or if it didn’t.
KATRINA: Yeah. Not every function.
KATRINA: If [there] could be an error state, then the function is very likely to pass back two values: one for the value that you expected and one for the error state. Or if it’s just a command it would maybe just pass back an error, which might be nil.
JESSICA: I think that’s really important because in Ruby we tend to think just about the happy path. And the fact is the happy path is the boring part. Where software gets really interesting is in all those edge cases that people like to ignore but we shouldn’t.
KATRINA: Yeah. The errors always make good stories later. [Chuckles] Like, “Oh, you remember that time when you discovered how many bind variables you can have in MySQL? Hahaha.”
JESSICA: Yup, yup, been there.
JAMES: That’s an interesting point. It’s a cool thing to think about. That’s [cool].
CHUCK: Go, go, go!
CHUCK: Sorry, couldn’t help it.
JAMES: So Katrina, did you also not win a Ruby Hero award last year?
KATRINA: Yeah, but that’s a long time ago, right?
JAMES: Alright, just checking.
CHUCK: Didn’t you also do a workshop with Sandi Metz?
KATRINA: Yeah, okay, so that’s really awesome. We should totally talk about that. Sandi is teaching a class that people thought was going to be based on POODR but it’s totally not. It is a class that came out of some sort of playing around that we did a while back on the 99 bottles of beer song. Back when I started Exercism I saw a lot of solutions to the 99 bottles of beer and all of them were really, really awful. And at some point, I said to Sandi, “I don’t know if there is a good solution to this song.” It seems like everyone is just deciding which rug to sweep all the ugliness under. And of course, she took that as a challenge. And so, we went back and forth for several months trying to figure out if there was a good solution to the beer song. And we discovered a lot of really interesting things, the most important being that you can teach all of object-oriented programming using that song. So, Sandi pitched [inaudible] a course.
KATRINA: Yes. And [we] put together a course. Originally it was five days long, but now it’s three days. And she teaches it a lot in private, like companies and that type of setting. And I’ve co-taught that with her and so have a lot of other people. Sarah Mei, Avdi Grimm, Matt Wynne, a few people helped out with that. And it’s really, really interesting. Some of the concepts that have come into play here are very, very basic, very, very simple. And yet it’s, I don’t even know how to say this, there are ideas that came out of working with the beer song that I maybe had a fuzzy idea about earlier. But now I would be able to very clearly articulate pros and cons and interesting things about both TDD and refactoring and object-oriented programming, which is just completely really cool.
CHUCK: That sounds like fun.
JAMES: Are you working on a book about that?
KATRINA: Yeah, I am. [Chuckles]
SARON: I am so glad that you’re all here to remind Katrina of the awesome things that she’s doing.
JESSICA: No kidding.
KATRINA: The book is going to be awesome. It’s just really hard to write. I don’t like talking about it. [Laughs]
CHUCK: Well, when you’re web famous, remember us little people.
JAMES: That’s right.
KATRINA: Yeah, when I have my seven seconds of fame on Twitter, I’ll totally…
CHUCK: That’s right. You have a YouTube video on bottles of beer go viral.
KATRINA: That’s exactly what’s going to happen, I’m sure.
JAMES: Actually Katrina, I’ve seen your talks about, I think it was one you gave in California about the, maybe this one was the conversation with Bob, not the 99 bottles of beer, where you went through the various solutions that came in for the Bob problem on Exercism. And that is a really good talk everybody should go watch.
KATRINA: Thanks. I’ll put a link to that somewhere. I had a lot of fun, I don’t know. I really like this idea of learning deep truths from toy problems. Because it takes away the necessity of being able to understand shipping containers and term loans and all of these things that people use to describe the hard concepts in refactoring and object-oriented design. And even if you haven’t heard the beer song, even if you didn’t grow up singing it on the bus or whatever, it doesn’t take very much to understand the domain.
JAMES: That’s a really good point.
CHUCK: Awesome. Saron, what have you been up to?
SARON: So, I don’t remember exactly when I left Ruby Rogues. But in the past I guess five to six months, what have I been up to? So, I’ve been working on CodeNewbie. I got a couple of months to work on that fulltime, which is a lot of fun. And we have our weekly podcast and our discussion forum. And this month we’re actually doing a focus on hardware, which is very new to me. I don’t know anything about hardware and I’m learning. And so, doing blogposts and content and episodes and all this stuff with hardware, which is interesting.
And yeah, and I’m also a developer apprentice at thoughtbot, just finished my second month, which is just amazing. I get to just work with these amazing developers who know so much, and learning and working on client projects. So yeah, that’s basically what I’m up to.
Oh, and I also got married, which feels [inaudible] as well.
SARON: Yeah. We snuck off and eloped in San Diego on New Year’s Eve. And my mother in response decided to throw herself a small party. And so, she sent me…
SARON: Yeah, she sent me a picture of her and my immediate family with cake and champagne and a picture of me when I was a kid. And she was like, “Look what we’re doing.”
JESSICA: Well, congratulations.
SARON: Thank you.
JAMES: That’s awesome.
SARON: So yeah, that’s what I’ve been up to.
JAMES: So Saron, in playing with hardware have you looked at the Nand2Tetris stuff at all?
SARON: No, I don’t know what that is. And now, I feel like I must go look it up.
JAMES: [Chuckles] It’s interesting. A buddy of mine and I have been playing with it. But it’s this book that you can get called, I can’t remember because it’s not called the obvious thing. I’ll look it up. The Elements of Computer Systems or something like that. Anyways, it’s a book. And you go through it chapter by chapter. And it starts at the very bottom, assuming you have the NAND logic gate for NOT AND. And that turns out to be one of the universal logic gates that given that, you can build a computer.
And that’s what the book is about. It’s about, you step up so you’re building. In the first chapter you’re building the other logic gates, AND, OR, XOR, the things like that. And then you get into higher level stuff and start building chips like RAM and registers and things like that. And eventually, you’re putting all that together into a CPU with an ALU and stuff like that. Then you start writing machine language on top of that. And this is all simulated. You don’t actually solder things because I’m not as hardcore as Aaron is. But…
JAMES: But it’s all simulated. And you build all the way up. That’s the level I am now, is in machine language stuff. But it goes through operating systems and virtual machines, onto a higher level programming language. And then eventually, the goal is to write Tetris. So, the idea is you start with the NAND gate and you keep going until you get to a point where you’ve written Tetris on your own computer that you built.
AARON: So, what you’re saying is that NAND is the gateway drug?
JAMES: Oh, yeah.
SARON: No, I haven’t done anything quite that complicated yet. What I’ve been, it’s actually, it’s funny because I’ve mostly been talking to other people about their projects. So, we had the evangelist from Raspberry Pi on the show this week actually. And he was talking about his side projects. And we had Julia Grace from Tindie come on and talk about the hardware marketplace. And it’s been a lot of talking to other people about what they do more so than it is me actually doing stuff, which is how I’m going to kind of get away with not doing anything.
SARON: But yeah, at some point I’m actually going to buy a Raspberry Pi or Arduino and actually do stuff.
JAMES: I would totally recommend a Raspberry Pi. I’ve played with multiple versions now. And I’ve mentioned earlier that I got done sending one up for a friend. They are just so playable with. [Chuckles] Yeah, yeah. Whatever.
JAMES: It’s so much fun. You just mess around with them, simple computer. You got the pins right there if you want to hook it to something and figure out the basics. It’s a Linux machine, so you can use whatever language you want, like Ruby or whatever. And yeah, total blast to play with. I can’t recommend them enough.
SARON: Awesome. Oh, and yeah and of course I spoke at Bath Ruby with Katrina. Katrina, it was so awesome getting to spend multiple days with you and just hang out and talk. And I just want everyone to know how amazing you are, in case they didn’t know already. It was a lot of fun.
KATRINA: I couldn’t agree more. Just being able to talk without it being all about business or all about any…
KATRINA: I think we spent two hours in hot water just chatting about stuff.
JAMES: That’s awesome.
KATRINA: And amazing.
SARON: Yeah. It was really, really great. And we got to hang out with Sandi Metz and Ben a few other people in London and it was great. Also, British accents are amazing. They’re just so beautiful.
SARON: To be around all the time. English food, not quite as exciting.
KATRINA: English breakfast, [inaudible].
SARON: English breakfast specifically.
KATRINA: [Inaudible] ever.
SARON: Not quite as good. But I like to think that I was open to the culture. And I tried a lot of things.
JAMES: I had some good luck with English food when I would go into the pubs.
SARON: Oh, what did you get?
JAMES: You know, lots of times just really things you would think are simple dishes. Fish and chips and stuff like that. But I would be blown away. Some of the best fish I ever had.
SARON: I can believe I left without getting fish and chips. I totally forgot about fish and chips.
JAMES: Yeah, good stuff. I had the best luck in the pubs, when I went to the pubs.
CHUCK: Very cool. So, should we move on to talking about the last year or so, the last hundred episodes of Ruby Rogues? I know James is chomping at the bit to talk about a particular episode that was fairly recent.
SARON: Yeah, let’s do it.
JAMES: Yeah. Can we talk about 198? That was the one I brought up earlier that mentioned the Go community. That was a really good episode. I guess it will be two episodes ago from when this one airs.
JAMES: It was really good that there were some parts in it that were, well Scott and Mark, they were on talking about basically spreading the happiness of Ruby to other communities. And their enthusiasm and excitement is infectious and amazing. And we can only hope it spreads through the entire tech community like wildfire, because it was great. But there were some parts in there where they talked about Ruby being kind of, I don’t want to use the word superior but…
JESSICA: But they did.
JAMES: But they did, right. Thank you, Jessica. [Chuckles] Being a great community overall. And maybe, I think at least better than some of the other communities. And I would definitely just like to respond to that and just say you guys got to get out more. [Chuckles]
JAMES: There’s a lot of cool stuff out there. Having spent a significant portion of time playing around in Dart’s community, I wouldn’t say that it holds the same place for me as the Ruby community. But I have been exposed to lots of new things and some amazing things. And now, I have features that I want to beg Matz for in Ruby and things like that. And there’s a lot of great stuff out there. The hardware hacking communities, the maker communities, if you haven’t been to your local makerspace, you are probably missing something awesome. Here in Oklahoma City we have one that’s just this giant warehouse with all these machines that I’m pretty sure 90% of them would be an awesome way to lose an arm.
JAMES: And they’re just like, “I have no idea what these things do.” And so many cool people there just building stuff. And that’s a super cool community. Katrina talked about Go just a couple of minutes ago. And they did too on the podcast. But yeah, I would just say that Ruby is great and I love Ruby and I agree that we should send happiness everywhere to the four corners of the earth. But there is some seriously cool stuff out. And if Ruby’s all you’re seeing, you got to get out more.
JESSICA: I guess that’s one reason the discussions on this show have broadened.
JAMES: Yes, that’s true. The recent episode you did on Clojure testing was mind-blowing for me.
JESSICA: Oh, good.
CHUCK: That was fun.
JAMES: Yeah, that was a great episode. And I’ve noticed that you’re talking about lots of broader things and it’s awesome.
CHUCK: I think that’s one thing that I get a lot of feedback from people. They email me and they’re like, “I love Ruby Rogues.” And then it’s, I love some other show, and the some other show is what they actually do. And Ruby Rogues has enough broad topics that they listen to it in spite of the fact that it has Ruby in the name.
JAMES: I agree.
JESSICA: That’s a great endorsement.
JAMES: I think that has a lot to do with your awesome new panelists, like Jessica and Coraline.
CHUCK: [Chuckles] I can’t argue. It’s so nice to have the switch in perspective. And Jessica brings this outsider’s view a little bit because she doesn’t do Ruby regularly. And Coraline just has all kinds of interesting experience that I don’t. And so, it’s always fun to hear exactly what she’s been working on and exploring. So, I totally agree.
JESSICA: Yeah, I meet people at other conferences. I only make it to about one Ruby conference a year. And all the other ones, let’s see. I’ve got an Erlang guest coming up and another one who does F# regularly.
JAMES: That’s awesome. I was actually at one conference with you Jessica and I didn’t even get to talk to you because I was deathly ill at the time. [Chuckles]
JESSICA: Oh James, I remember that conference. That was Ruby Midwest in 2012. It was my first Ruby conference.
JAMES: That’s right.
JESSICA: It was still the most bond-forming conference that I remember. It was a small, single track. And the room was small, so everybody had to sit right next to each other. And there were two keynoters. Michael Feathers came in and basically told us what he’d been thinking about on the back of a napkin on the airplane ride.
JAMES: Which was awesome.
JESSICA: It was interesting.
JESSICA: But you, you despite being sick brought your family and gave a beautiful keynote with gorgeous slides that you clearly put a ton of thought into. And it was fantastic and you really made the conference. Thank you for that.
JAMES: [Chuckles] Thanks. I appreciate it.
CORALINE: I remember that presentation, James. That was absolutely stunning. And I have to agree that Ruby Midwest that year…
JESSICA: Yeah, Coraline was there, too.
CORALINE: Yeah. That’s where I met half of my Ruby friends, at least. And people that I’m still in touch with, that I’m still networking with, some of whom I’m working with now. It was very magical. And I really, really hope they bring it back.
JAMES: Yeah. That was a great conference, I agree.
AARON: I love networking events.
JAMES: Me too. What’s been your favorite conference you’ve been to recently, Aaron?
AARON: The reason I love networking events is mainly because of LAN parties. But…
AARON: Yes, yes!
JESSICA: [Inaudible] keyboards clattering.
AARON: I got one, I got one! [Laughs]
AARON: My favorite conference. Oh, that’s hard. I don’t know. It’s difficult to say. I’m going to have to pick, I don’t want to pick one. It’s too hard.
JAMES: [Chuckles] It’s too hard. [Inaudible]
CORALINE: Aaron, I had a great memory with you at Keep Ruby Weird, especially when we had the pun-off.
AARON: That was amazing. That was super fun. I hope that is… actually, I was going to say I hope that wasn’t recorded. But I’m very sure that it is.
CORALINE: They haven’t put it up online. And I really want to see that.
AARON: No. No, no.
AARON: Nobody needs to see that. [Laughs]
JAMES: I’m actually disappointed. I didn’t hear about Keep Ruby Weird somehow until after it had come. It’s pretty close to me. It’s down there in Austin, so not too far. I should have gone to that.
JESSICA: Yeah so, the moral of this section of the episode is find your local Ruby conference and go to it because it’s probably going to be awesome. And you may meet some of the best friends you’ll ever have in your life.
AARON: Before we get any farther, I have to say hi to my mom.
JESSICA: Hi Aaron’s mom.
AARON: Hi mom.
CORALINE: Is she a regular listener?
AARON: Well, she will be.
JAMES: Yeah, she is now.
JAMES: Pretty much contractually obligated, you know?
CHUCK: Yeah, you get a call out an hour into the podcast.
AARON: Yup, yup. Well, I’m not going to tell her what time either. So, she’ll have to listen to the whole [inaudible].
JAMES: She’ll have to go through the whole episode.
JESSICA: She’ll be like, “You spent five seconds on me and ten minutes on mechanical keyboards.”
CORALINE: So Aaron, speaking of parents, I have to ask you. Did you get your pun sense genetically or was it something that was learned?
JAMES: That’s a good question.
AARON: My family has always been this way. This is what we do.
JAMES: I was worried it was like an incredible hulk exposed to gamma radiation thing, you know?
AARON: It’s hard to say if it’s learned or… because if my parents are always punning, then…
AARON: You can’t help it. Come on.
CORALINE: You weren’t bit by a radioactive pun spider?
AARON: No, no.
JAMES: So, we said hi to Aaron’s mom and then talked about her punning and how that’s affected Aaron’s life in a positive (?) way.
AARON: Oh, very positive for me. I crack myself up.
AARON: When you work at home alone, that’s really what you need.
JAMES: It’s important.
JESSICA: Aaron, question.
JESSICA: Do you ever go back and watch yourself on video and say, “Ahaha, I’m so funny.”
AARON: No, I’m deathly afraid of watching myself.
JESSICA: Aah. So, it is just me.
AARON: I’m too [embarrassed]
JAMES: You watch Aaron on video and say, “Ahaha, that’s funny”?
AARON: Thank you. I appreciate that.
JAMES: You know, that’s actually funny, the watching yourself on video. I went and gave a talk. I think it was the one I gave at Scottish Ruby Conf. And then a local group of Ruby users, they do this lunch-and-learns where they watch a video over lunch and talk about it and stuff. And they decided to watch that one that I gave one day. So, they gave me a call knowing I was local. And they were like, “Would you come out and watch it with us?” And I was like…
JAMES: “Yeah sure, that’s weird. But I’ll do it.” And so, I went.
JAMES: And it was funny because I’m sitting there watching myself give this talk. And I traveled for I think it was 36 hours to get to Scotland. And then I slept for four. And then I woke up and I was the second talk at the conference. So, it’s hilarious watching it because I’m just sitting there watching myself. And I realized I am just beyond exhausted. I lost the plot twice where I’m just rambling and stuff. It was hilarious to watch.
JESSICA: Excellent. It is important that you can look back at that and laugh, because…
JAMES: Yeah, yeah. I was…
JESSICA: I’m sorry, that conference deserved it for scheduling you like that.
JAMES: It was comical. It was awesome.
CORALINE: Aaron, I think one of the funniest things I’ve seen you do was the Homeopathic Refactoring.
JAMES: How did I miss this?
CORALINE: Keep Ruby Weird.
AARON: [Laughs] That was fun. That was fun.
JAMES: I have to see that.
CORALINE: He basically was removing code and proving that the code still executed.
CORALINE: Down to a ridiculous level, because…
JAMES: Therefore, it did nothing?
CORALINE: The program remembered the code that had been present.
AARON: In the whitespace, yes.
CORALINE: In the whitespace.
AARON: Yeah, yeah.
JAMES: That’s amazing.
AARON: So basically, it was homeopathic optimizations. It’s like, I have a homeopathic optimizer and what it would do is remove a certain percentage of your code, dilute your code if you will. But your code would still work.
JAMES: [Chuckles] That’s awesome.
CHUCK: Did that get recorded?
AARON: I even think it makes the code faster. But…
CHUCK: Did that get recorded?
AARON: Sure it did.
CHUCK: My google skills are failing me.
CORALINE: I think that was Keep Ruby Weird, wasn’t it Aaron?
AARON: Yeah. I gave a, I talked about that at Keep Ruby Weird. I also condensed it to a lightning talk at a RubyConf last year. So, you might find it there in the lightning talks.
JAMES: That’s awesome.
CORALINE: Do you have a homeopathy button on your mechanical keyboard?
JESSICA: They all blend.
CORALINE: Or is that the delete key?
AARON: [Laughs] It’s the delete key, for sure.
CHUCK: So, anything else that we want to talk about with the show? Any particular episode, anything else, before we start wrapping up?
JESSICA: Can I ask a question generally of the four legacy rogues?
JAMES: Do it.
JESSICA: What’s your favorite thing? What changed you and improved you the most about being on the show and listening to it?
JAMES: That’s tough.
SARON: I can start with that.
JAMES: Go for it.
SARON: Jessica, you changed me in being on the show. because the very first episode that you were on and we talked about this offline and email later, but the very first episode you were on, I was so impressed and taken aback by how assertive you were and how, when I came on the show way back when I was so nervous and so self-conscious. And I felt so just out of my element. And it took me, even three months later I was still, I was getting more comfortable but I was still really uncomfortable. And it wasn’t anything anyone did. Everyone was incredibly kind and welcoming. But just, I was just very aware of who I was compared to how amazing everyone else was.
And I was so impressed by how on day one, you came in with your opinions and your thoughts and you were just so bold and so comfortable. And I remember after that episode thinking to myself, “Man, I’ve got to do that. [Chuckles] I need to be more like that.” So to me, honestly that one episode that we did together, the very first one that you were on, really changed a lot about how I carry myself and how I think about things, and to do a better job of being present when I’m given the chance to be present.
JESSICA: Wow. Thank you. And you helped me in that same episode because you emailed me later. And I had no idea that I was interrupting you and totally didn’t want to do that. And it helped me so much to learn from that, because then I realized what has become one of my favorite things about the Ruby Rogues now, is that there’s a culture on this podcast of pausing and waiting to see who else wants to speak. We don’t have indicators in this Skype recording strategy of who’s jumping at the bit to speak. So, there’s a great culture of pausing and acceptance of silence. I’ve taken that and I’ve brought it to other groups and mentioned it, that when people like me who are interrupters, not finishers, when we become comfortable with silent spots in the conversation, then more people get to participate.
SARON: That’s a beautiful way to put it.
JAMES: It probably helped when I left the show, because I was a talker.
JESSICA: And the difference…
AARON: I was just going to say, it got worse on this show and it was all James’s fault.
JAMES: See, see?
JESSICA: That’s okay. We don’t feel bad as long as David’s here.
JAMES: So, I would say what I got most out of the Rogues was that I was constantly surrounded by all these brilliant people, like Katrina who never does anything interesting and then we can sit there for 30 minutes…
JAMES: And name all the interesting things she’s done recently. She just doesn’t keep track of them apparently. The rest of us do. But I was constantly surrounded by all these smart people. And so, I felt like I had to really work hard and raise my game. Like when we would have a guest on, I would try to go look at the things they’ve done before they came on, watch one of their talks, read their blog, things like that. So that I felt like I had interesting things to talk to them about. And that was just, constantly being around Katrina and Josh and Avdi and Chuck and David, with all their great questions. I wanted to feel like I was contributing too. And so, that really, like Saron said, reminded me to be present and be prepared and know what was going on. And I feel like through that and the amazing influence of guests and stuff like that, that I just learned so much while I was here. So, it was a super valuable thing for me.
AARON: My favorite part was the picks.
JAMES: The picks or…
AARON: No, I’m serious. I love it. I love it. You get together and you’re like, “What’s everybody interested in this week?” And then you go check it out, learn some new stuff. I guess what it really boils down to is my favorite thing is learning new stuff. So, I think that’s…
JESSICA: That’s interesting, about the picks.
JAMES: I think I went broke because of the picks.
JESSICA: Aaron, do you find any value in getting picks from the same person from week to week, in addition to the guests who always have brand new things for us?
AARON: I don’t know. Everybody seems to come up with new and interesting stuff. So, whether they’re new or regular is, it’s much the same to me. The main point is that I learn something new every week. And I like the picks section because it basically, basically it’s because my attention span is incredibly short. So, [laughs] you get to the picks section it’s like, “Okay, this thing. Check it out.”
JAMES: I’ve noticed you can go back through my picks and see what I’m into at any given time. Like, I’ll have a bunch of picks that are related to something that I was focusing on. And then go on to another thing.
JESSICA: It’s fascinating to me how from week to week, it’s just no problem. There’s always something fascinating, either in the backlog or brand new. There’s always something to pick.
CHUCK: Yeah, one other thing that I think as far as the picks go, basically boils down to yeah we’re the same people picking stuff every week. But you can tell when somebody’s surging forward with their own learning. And it’s really interesting to see, okay, Jessica has been playing with this. Or that Coraline has been interested in this other thing. The artificial intelligence stuff talking to Coraline is just really fascinating. And so, all of the different things that you can learn from people. So, she’ll find some new tool or find a new book or a new music album or anything like that. And so yeah, getting new stuff from the guests is nice because you get a little bit of fresh air. But at the same time, these are people you know and they can give you a lot of context on something that is really fascinating that you weren’t exposed to before. And it’s just because they are having that experience and finding new things out. So, I think it works out nicely both ways.
CORALINE: I find that when I’m picking my picks I have to think back on the previous week to find out what have I been excited about. Because like Aaron, I have a lot of focus but I also have a short attention span. And I tend to absorb things and move on. So, it’s a time for reflection for me on what important things have I come across recently.
JESSICA: As a listener, anyone can do this. Start a blog or tweet or tumble. But maybe take, after you listen to Ruby Rogues, think about what you would pick and throw it out there for the world.
CHUCK: Yeah, let us know about it. Because it’s always interesting to see what else is out there that we’re just not finding.
JESSICA: Yeah, tweet it at Ruby Rogues and maybe Chuck will retweet.
CHUCK: Yeah, I can do that. I have the power.
JESSICA: Awesome. Katrina, we haven’t heard from you yet.
KATRINA: The Rogues gave me two very interesting things. One the one hand, it was this amazing broadening of horizons, just meeting new people, thinking new thoughts, and being exposed to new ideas. And on the other it was very, very much a personal growth thing of discovering that I had quirks and limits that I wasn’t aware of. And it became almost painfully obvious while I was on the Rogues. And that was incredibly interesting. And I started finding new workarounds for things that were difficult. And I also decided to stop doing a lot of things that were just too challenging.
JESSICA: That’s the teaching?
KATRINA: Teaching is one of them. the shift to talking less and working, doing more, more action, less talking, was one of the important insights that I had that I don’t have… I’m not very comfortable with having a lot of conversations. Part of it is because I’m not always sure who’s supposed to be talking. And it’s usually not me. [Laughs] So, I find it really, really awkward to be in a lot of conversations. But also, I find that I only have things to talk about if I’m actually doing things. And so, while I was on the Rogues I felt like every week I was talking about new things. But the time it took to prepare for that made it so that I wasn’t actually doing anything interesting. And I found that I had less to talk about in that case.
JAMES: I think you raise a really good point there. Listeners may not know this, but getting together for the Rogues is just an hour and 45 minute-ish call or something like that. It doesn’t sound like very much. But there’s guests coming. There’s planning about what you’re going to talk about. Looking into people so that you have something intelligent to say on the show. The people that give their time to this show, they’re definitely heroes in my book. They spend a lot of energy on it. Even if it’s just thinking about it while they’re doing other things. And that makes the show great. It’s a very big commitment.
JESSICA: I will say, as a fairly new Rogue it’s less time than I thought it was going to be. I usually have an hour or so of watching a video of the next upcoming guest. And occasionally I invite somebody. But between Mandy who does all of the dirty work of chopping this podcast down and allowing us to take those long pauses because she edits them out, and Chuck who’s got this down to a system, this podcast is, it’s pretty well-oiled.
JAMES: Yeah, that’s a good point.
JESSICA: It’s fantastic.
CORALINE: I am so thankful to be a part of it.
SARON: Me too.
KATRINA: I have one last thing that the Rogues gave me, kind of by accident. For the year that I was on the Rogues, this is another just insight thing. For the year that I was on the Rogues, I was always very, very deeply aware of the fact that I was the most junior developer of all the Rogues that were on the show. And I would mention that from time to time. And it wasn’t until, I think Jessica once said that it’s really a shame that we’re talking about how junior you are, because that gives the wrong impression, which is true. Because I guess a junior developer is maybe someone who has been working for a year or for two, not for 10. And so, while it is absolutely a true fact as they say in politics that I am more junior than all of the other Rogues that were on at the time, I realized that by pointing out this fact or by obsessing over this fact, I was probably giving the wrong impression, which is interesting to me.
JESSICA: I definitely observed today, Katrina, you’ve got self-deprecation down.
KATRINA: It doesn’t feel like self-deprecation. To me, it’s my reality, you know?
JESSICA: It’s humility, maybe? But to all the women listening to this show, I want to say, okay, if you think you haven’t done anything recently, think about Katrina. She thinks she hasn’t done anything interesting recently. And look at what she’s doing! It’s totally fascinating. And all of our listeners, there’s something you’re doing that’s totally fascinating, too.
KATRINA: Yeah, you’re normal is not somebody else’s normal. I think that’s really important.
JAMES: That’s a great point.
JESSICA: Thank you, Katrina.
CHUCK: I’d really like to hear what Coraline and Jessica’s experience has been over the last few months being on the show.
CORALINE: For me, I think my favorite thing is being able to have to opportunity to find the humanity behind the technology. Find out the chewy centers of who the people are on the show, what motivates them. Because I think a lot of us have online personas that are hard and have this shell around us.
JAMES: Tender lovemaking?
CORALINE: And a lot of people don’t really show their humanity in their online presence. So, trying to find that drive, find that passion, find that humanity in the people who are on the show is something that is really, really interesting to me and that I try and focus on with my questions. And that’s been really amazing and really inspiring. And I’m just, I’m also inspired just by the variety of things that people on the show and the panelists are interested in, and the perspectives that everyone brings. It’s very eye-opening and very humbling. So, I’m very grateful for the opportunity to spend time every week with such amazing people.
SARON: You know, piggybacking off that, I’m always impressed by how quickly we can shift from something really, really technical to something that is more high-level, to something that’s really just people, about people and just humanity. It’s like the fact that we can talk about humans on a very cultural, touchy-feely way but then also go right deep into something really technical, I think it says a lot about the people that we have and the audience that we have and how they like hearing that variety. Because everything we build at the end of the day is for other people. So, I like seeing that reflected in the show.
JAMES: That’s a great point.
JESSICA: My experience, I think I talked about it already. I love that this hour and a half I get to really focus my brain on something, usually something that I didn’t pick. And I never know what I’m going to learn. Last week we talked about deployment and deployment tools and the state of where those are right now. And I used that in conversation 10 times in the last week. You never know what you’re going to get and how useful it’s going to be. The hardest thing about being on Ruby Rogues is waiting a whole week to tweet the things.
CHUCK: I guess I’m the only person who really hasn’t talked about my experience on Ruby Rogues today. And honestly, for me the big thing is just connecting with people. I’ve had the opportunity to connect with all of you through the show, all of the other past Rogues and guests. And then it’s fun to go to the conferences and meet some of these folks. So, at MountainWest Ruby Conference I met Jeremy Evans for the first time. He hasn’t been on the show yet, but we’ll work that out. But I met Coraline for the second time at MountainWest Ruby Conference. And just to have these connections already when I show up is a lot of fun.
But I think the people aspect is really the important thing to me. And being able to talk to people that I care about, about stuff that I care about, is really cool. And then going to the conferences and finding out that there are a whole bunch of other people out there who have that same kind of connection, they’re not in on the conversation necessarily when we record it but they still feel a part of it. And to feel like they care about some of the stuff that we talked about and they care about the people on the show, they really can connect with a lot of the things that we talk about. And for some people, the fact that we’ve made real differences in their lives or careers, that’s another big payoff, is just that’s what it’s about for me.
And that’s what I’ve gotten out of it as well, is that most of the people I talk to here where I’m at, I have a lot in common with me. And a lot of the Rogues have very different world views than I view. And so, being exposed to that and learning that and having those conversations offline about the way that we see the world and the way that we see other people and the way that we approach problems and the way that we approach our lives, has just really been enlightening to me. And the fact that you all are so open and willing to share about your lives and your experiences is just, it really does make this more than just a podcast for me. It makes it feel like I’m part of a family, part of a group. And I just can’t thank you guys enough for just being awesome people.
JESSICA: Chuck, I totally agree. One thing that I’ve observed about you is you have a commitment and you chase after perspectives that are different from your own. And you listen. I love that about you, and I think it really makes the show. Because Ruby Rogues has a commitment to finding new voices and bringing them in and getting new perspectives and sharing that with the whole community. I love that.
CORALINE: Thank you, Chuck.
SARON: Definitely agree, yeah.
JAMES: Yeah. That’s awesome. Group hug.
JESSICA: Group hug.
CORALINE: Rubyists and our hugging.
CHUCK: That’s right.
KATRINA: Yeah. I’m not so sure about all that hugging y’all.
JESSICA: A hug is an implementation of welcome. We discussed that the other day.
KATRINA: Right. And we shouldn’t focus too much on the implementation details.
JESSICA: Exactly. So virtual group hug, that’s not threatening, right?
CHUCK: [Chuckles] I hope not.
KATRINA: [Inaudible] well…
JAMES: That’s awesome.
CORALINE: There’s a conditional in there.
JAMES: Right, right.
KATRINA: [Chuckles] Right.
CHUCK: Alright. Well, should we get some picks out of our legacy Rogues?
JAMES: Do it.
KATRINA: Pick me, pick me. Can I go first?
CHUCK: Go ahead.
KATRINA: I have two picks and they’re kind of related. Both of them are novels. Neither of them are programming related. The first is ‘The Speed of Dark’ by Elizabeth Moon. And the second is ‘The Curious Incident of the Dog in the Night-Time’. Both of these novels have as their main character in one a young man, in another an adult, who is autistic. And it’s from their perspective. And both books are very, very beautiful. And I highly recommend reading them.
AARON: I’ll go.
AARON: So, I would like to recommend the Atreus keyboard, since I’ve been talking about keyboards so much. It’s at atreus.technomancy.us. It’s a fun keyboard build. And I learned a lot building it. And it’s fully programmable just like the ErgoDox. And it’s just a super fun hobby. So, if you want to do some fairly easy electronic stuff and have a useful product when you’re done with it, I’d recommend building one of those.
JAMES: Here I go going broke again.
AARON: It’s much cheaper than the ErgoDox, too. So, there’s that.
SARON: What is much cheaper?
AARON: Half price, about? I think.
JAMES: That’s good.
AARON: The ErgoDox is about $200 if you buy it on Massdrop and that’s the cheap price. If you buy all the parts individually, it’ll be 250 to 300. And Atreus is 150 I think, yeah.
SARON: Alright. Well, I can go next. So, I have a few picks. The first one is an app called Be My Eyes. And it’s an app that helps connect blind people with volunteers around the world via live video chat. So, people who need help reading what’s on a carton or whatever the thing is, you can be a part of that network and help people read and interact with their world. And I think it’s a really great nonprofit initiative. So, check it out.
The other one is the hardware campaign that I mentioned a little bit earlier. It is called March is for Makers. So, if you’re interested in seeing some of the stuff that we’re doing and reading getting started blogposts and episodes you can go to MarchIsForMakers.com and check it out.
And my last pick is myself. So, I’m available for hire. So, if you have a really great awesome team doing Ruby on Rails stuff, I would love to hear from you. And I think my information should be available on the site. And that’s what I got.
JAMES: You should totally snatch up Saron. Do not let this opportunity go unnoticed.
SARON: [Chuckles] Yes, and I’m based in NYC but I am willing to relocate, since Jessica reminded me. I’m assuming that was for me Jessica, right?
SARON: Okay, yeah. There you go.
JAMES: Alright. So, I had about five million picks since I’ve been off for so long. And I had to trim them all down. So, I decided I’m all fun this week. No programming. So, here’s two fun picks. First of all, there is an Indiegogo campaign right now for Con Man which is a series, a comedy series from Alan Tudyk and Nathan Fillion of Firefly fame. And it’s a show about what happens to these characters after their space sci-fi show is cancelled. And one of them kind of goes on to be famous. He was the pilot. And the other one just becomes a convention, hence ‘con man’ the name. And it looks to be hilarious. The videos and all of that look awesome. And Firefly cast doing more stuff about Firefly. So, if that appeals to you at all then you’re like me and you should probably go check this out. That will have about two weeks left when this episode airs and it’s already been funded many times over. So, check that out.
Another thing, I have recently got back into comics, which comics are amazing. I’d apparently forgotten this. I used to read a bunch of them when I was a kid. And there’s tons of new stuff out there and some pretty darn cool stuff. And I’m having a hard time picking just one to recommend. But if I had to say my absolute favorite, try Alex + Ada from Image Comics. It’s a slightly futuristic story about what happens when we have sentient robots and how the populous reacts to that and stuff. Really good comic series that I’ve been reading. So, those are my picks.
CHUCK: Awesome. Well, I think that’s all we’ve got. So, thank you for coming, folks.
JESSICA: Yay, Ruby Rogues 200!
CORALINE: This was amazing. Absolutely amazing show.
CHUCK: I think we’ve missed a total of one week ever.
SARON: That’s pretty good.
JAMES: And I went through this whole episode without screaming “This is Sparta.”
CHUCK: Come on, James. Give it to us.
JESSICA: Fix that.
CORALINE: Let’s hear it.
SARON: Do it.
JAMES: Oh, I’m saving it for 300.
JAMES: I’ll come back.
CHUCK: Alright. Well, we’ll wrap up and we’ll catch everyone next week!
CORALINE: Bye everybody!
KATRINA: Take care. Bye!
[This episode is sponsored by MadGlory. You’ve been building software for a long time and sometimes it’s get a little overwhelming. Work piles up, hiring sucks, and it’s hard to get projects out the door. Check out MadGlory. They’re a small shop with experience shipping big products. They’re smart, dedicated, will augment your team and work as hard as you do. Find them online at MadGlory.com or on Twitter at MadGlory.]
[Hosting and bandwidth provided by the Blue Box Group. Check them out at Blubox.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.]
[Would you like to join a conversation with the Rogues and their guests? Want to support the show? We have a forum that allows you to join the conversation and support the show at the same time. You can sign up at RubyRogues.com/Parley.]