JAMES:
The Ruby Community has drama?
AVDI: [Laughs]
DAVID:
Wait, I've been gone for a month. You guys still program in Ruby? [Laughter]
JAMES:
No, we all use the Elixir now. Didn’t you get the memo?
JOSH:
I just read Ruby books. I don’t actually program in it.
[Laughter]
[Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]
[This podcast is sponsored by New Relic. To track and optimize your application performance, go to RubyRogues.com/NewRelic.]
[This episode is sponsored by JetBrains, makers of RubyMine. If you like having an IDE that provides great inline debugging tools, built-in version control, and intelligent code insight and refactorings, check out RubyMine by going to JetBrains.com/Ruby.]
CHUCK:
Hey everybody, and welcome to Episode 112 of the Ruby Rogues podcast. This week on our panel, we have James Edward Gray.
JAMES:
Hello from under the rainbow.
CHUCK:
David Brady. DAVID:
[Expression] You found me.
CHUCK:
Josh Susser.
JOSH:
Hey, good morning. Who wants to get married?
CHUCK:
Avdi Grimm.
AVDI:
Hello, hello.
CHUCK:
Katrina Owen.
KATRINA:
Hi.
CHUCK:
I'm Charles Max Wood from DevChat.TV. And this week, we’re going to be talking about community hacks or ways that we can make the community better. I think there's a better explanation than that of what we really want to talk about. So, if somebody wants to jump in, that’s great. Or if you want to just kick it off with one of your ideas, that would also be awesome.
JOSH:
Let’s just set some context. Was it Katrina or Avdi who started this all going? I think it was Avdi.
JAMES:
Avdi.
AVDI:
Yeah. So, you want me to lay down some context?
JOSH:
Yeah. Tell us what we’re talking about.
AVDI:
[Chuckles] The Ruby community is awesome. And I say that not just subjectively but I'm in the very lucky position to get to meet and work with a whole lot of newbies to the community, particularly with my remote pair programming efforts. I've had a whole lot of time to spend with newbies and also meeting people at conferences. And overwhelmingly, one of the things that they tell me just kind of spontaneously as they're coming into the Ruby community either from not programming or often from other programming communities is they're just blown away by the warmth of the community and the exuberance of the community and the helpfulness and just overall, niceness and greatness of the community. And this is nice to see. When I got into the language many years ago, that was one of the big things that drew me in. It was an incredibly warm community. I think, initially, based on Matz being such a nice guy. And it’s really nice to see as I talk to newbies that it’s still that way. And I just thought it would be nice to spend some time talking about the reasons why the community is so awesome and the things that make it so. And I know that once you’ve been in the community a while, you often get the urge to be more of an active part in creating the awesome. And so, I thought it would be cool to talk about some practical and concrete ways that people can do that.
CHUCK:
You mean like starting a podcast?
AVDI:
Like starting a podcast.
DAVID:
Or suggesting an episode on how we can make the community better? [Laughter]
AVDI:
Just getting tail recursive. [Laughter]
DAVID:
I am not too [inaudible] optimized. If we do this three or four more times, I'm going to blow stack. [Laughter]
JAMES:
And nobody wants that. [Laughter]
DAVID:
Nobody wants that.
JAMES:
So, give us a concrete example, someone?
KATRINA:
When Avdi suggested the episode, I started thinking a lot about who in the community do I really respect and why. And the ‘why’ being important, like, what can I do to be more like them. And a few of the things -- I'm not even sure if I should mention names or call people out. One of the things that someone I respect deeply does is that they very positive on Twitter. Like, they do not complain on Twitter as sort of an action that they do.
DAVID:
I think you should call them out for that because that person is awesome.
KATRINA:
Okay. So, "Tenderlove" Aaron Patterson.
DAVID:
Yes.
KATRINA:
Specifically chooses to be positive on Twitter. He puns, he jokes. He’s whimsical. He says nice things. He calls out good work.
JAMES:
Shows pictures of cats.
CHUCK:
[Laughs]
KATRINA:
Shows pictures of cats. And it’s truly enjoyable. DAVID: He’s the guy who did Hug Friday, right?
JAMES:
Yes.
CHUCK:
Yeah, he started it.
KATRINA:
Yeah, I think so. Yeah. And I just find that truly enjoyable. And I try to emulate that thing that he does by not complaining on Twitter, for example.
DAVID:
Wow!
JAMES:
Not complaining on Twitter?
DAVID:
That would get rid of like two-thirds of my Twitter feed.
CHUCK:
[Laughs]
JOSH:
When I was a kid, my mother established a house rule which was ‘complain to someone who can do something about it’.
KATRINA:
I like that.
JAMES:
That’s interesting.
JOSH:
Because making a complaint, registering that you have a problem with the way something is happening is how we make progress, that’s how we make things better. We have agile retrospectives where we examine how well we’re doing and then we take what we’ve learned and we continuously improve our process, right? But the thing about a lot of the “complaining” on Twitter is not complaining to anyone. It’s just, “Oh, I have a complaint. Doesn’t that make me awesome?” But there are actually ways to use Twitter to effect positive change and some of those start with complaining to somebody who can actually do something about it. But I agree that if you're just like going, “Nah…nah…nah…” all the time, that doesn’t really contribute to anything.
DAVID:
That is a really -- kudos to your mom, Josh. That is a really cool idea. Liz and I established -- this is something that can be exploited for evil really quickly. But Liz and I honor the spirit of this. And in our marriage, we have a rule that if you want to complain about something, just go fix it yourself. And obviously, if it’s something that’s out of your power, then yeah, I like that rule - complain to somebody who can do something about it. But like in our marriage, if the mess on the kitchen table bugs you, clean it up. This will work in a relationship if one person is making the mess and the other person is cleaning it up. Obviously, it’s exploitable. But our relationship is such that we care enough about the other person being in distress over something enough that all Liz has to do is start cleaning the kitchen table and I'm like, “Oh, crap! I made a mess. I’ll go get clean it up.” And then, I go fix it. And so, I think that ties nicely with the open source model of never complain, only fix.
JOSH:
Sometimes, these things are too much for you. I remember when I was getting started with Rails, there was so much about the Rails code base that was completely mysterious that I had no ability to boost up my self. But I got involved in the community a lot and learned how to do stuff.
AVDI:
And one of the most effective ways to “complain” is to say, “Here's something that’s affecting me. How can I help fix it?”
DAVID:
Yeah.
CHUCK:
Even if you can't do that, like even if you don’t feel like you can really contribute to the solution, you can yell and scream on Twitter and say, “Hey, this gem sucks and it doesn’t do XYZ.” Or you can go to the GitHub repository and file an issue and give them as much information as you can. And so at least then, it’s in the right place where they go and look at things and can do something about it as opposed to being this big negative influence on Twitter.
JOSH:
I think it’s interesting that I grew up to be a programmer when my mother was training me to submit effective bug reports as a child. [Laughter]
JAMES:
Nice. Katrina, you had something to say.
KATRINA:
Yeah. One of the other things that I appreciate about Aaron Patterson is this sense of, like whimsical. He has this beautiful sense of whimsicality that comes through often also in the code that he writes. For example, I believe he wrote the library, minitest/pride which I use always. I only use minitest these days and I always use minitest/pride. And it gives you fabulous tests. It’s amazing.
JAMES:
It’s awesome. It’s great.
AVDI:
And of course, that’s kind of in the vein of Why, who I think really contributed a lot of that whimsical culture to Ruby. I think it’s really one of our most precious things about the community.
JAMES:
I have to agree with that. Even our names for gems and stuff can almost be terrible at times. Whereas in Perl, if you want that XML parser, it’s probably under like XML::parsers or something like that, whereas for us, it’s Nokogiri which means chainsaw in Japanese or whatever. But even with the horrible names [inaudible], it’s so much fun. I just rather do it that way.
AVDI:
I should clarify for those newer to the community that when I say ‘Why’, I'm referring to ‘Why the Lucky Stiff’, who was formerly very active in the community and had a lot of amazing goof ball artistic, bizarre, hard-to-describe contributions.
JOSH:
I think that Why’s sort of life as performance art approach to interacting with the community did give a lot of people in the community permission to be whimsical.
AVDI:
I guess.
DAVID:
Yeah.
JOSH:
But I think whimsy is one aspect of it. I think what it really is, is that whimsy is how many people express themselves and that the Ruby community is really open to people expressing themselves through their work and their contributions to the community. It’s not like we all have to fit in the [inaudible] mode of behavior or dress or speech or what have you. We’re really cool with, you can be authentically yourself while you're being a Rubyist.
AVDI:
Yeah. I love how we’re having this very serious conversation about whimsy, by the way. [Laughter]
JAMES:
Let’s hit another point on somebody’s life. There are a lot of great points.
KATRINA:
It’s kind of playing off of what you started off with, Avdi, is you worked with a lot of people who are new both to programming and new to Ruby and we make a large effort to welcome them. And we do this not just by saying, “Hey, you're welcome here. Come play with us.” But we start projects like RailsBridge or we have these websites and tutorials that help people get into Ruby like TryRuby or what is it, the Zombie Tutorial or Michael Hartl’s tutorials.
CHUCK:
Rails for Zombies.
KATRINA:
Right. There are a lot of resources that are specifically designed to help people get started in the community. And not only with programming, we put on events. The Steel City Ruby last year had, as a goal, to have as many people who had never been to a Ruby conference before and make them feel welcome, for example.
AVDI:
I just went to RubyNation and I was thrilled by the number of newbies that I met there, both to programming and to Ruby. And I was just thinking, I had a conversation, while I was there, with somebody who was not new to the programming community. They're like a big corporate project manager type person who I think was at his first Ruby conference. And he was kind of quizzing me about the Ruby community and he was a little nervous about this bunch of hippies or whatever. He was talking about, “Well, this seems kind of a small conference. Is the community big enough to sustain -- is this language going to be around for long?” And being sort of so embedded in the community, I forget sometimes that it’s different outside. And I had to explain that this was one regional conference out of like dozens. We have a couple of much bigger conferences but there are these dozens of regional conferences. And they're not put on by corporations trying to hawk their wares. They're put on by people who say, “Hey, let’s throw a conference.” I don’t know if I've ever seen, honesty, a community that put on so many local events. And so, that’s one of the things that makes the community wonderful. If you're thinking about, “Hey, it’s time to start giving back,” it’s probably one of the best places to do it is to start getting involved with the people locally that are putting on events, and also putting on users’ groups. We have all these wonderful Ruby users’ groups all over the place. I'm just going to go ahead and admit, I have not been good enough to my local Ruby users’ groups of late. And I'm going to commit to getting to them more often and being more supportive of that local community because they really supported me. I mean, that’s how I got my first Ruby job when I seriously got started in the community.
JAMES:
I could definitely do better there too.
CHUCK:
Any group that Avdi’s a part of is an exceptional Ruby users’ group. [Laughter]
CHUCK:
I'm sorry, I couldn’t help it.
JAMES:
That is so cool.
JOSH:
You just had to throw that out there.
CHUCK:
I did.
KATRINA:
One of the things that I notice that I do when I'm around other nerds is that I tend to use a little of this sort of inside culture, all of these inside jokes and sci-fi references and knowing Firefly stuff by heart, and all of the stupid things that we kind of bond over. And that’s something that I think might not always be helpful around newbies, in particular, because they might not share that culture, they might not share that history. I was just wondering what you guys think about that.
DAVID:
Oh, we don’t want those kinds of newbies.
[Laughter]
KATRINA:
Problem solved.
JAMES:
There you go.
AVDI:
Let alone the ones that come in with a Windows laptop, right?
DAVID:
That’s right.
JAMES:
Ouch.
JOSH:
Katrina, I want to say the flipside of that. I agree that a lot of people can show up in [inaudible] conference and everyone’s talking about Firefly and they’ve never heard of it, that’s going to be off putting. On the other hand, people would come to the community and that’s the only thing that they hear, that they recognize and can jump into a conversation on, then that can be really helpful.
KATRINA:
I guess my point is be more aware so that if people are not participating in your inside jokes, just be aware of people might not be getting your inside jokes and bring them into the conversation.
JOSH:
Yeah.
JAMES:
Yeah. It definitely passes the point where you're like lightly throwing in a reference or joking with some people or whatever, to the point where the conversation is centered around that. And if you are not in the know, then we’re literally talking past you.
JOSH:
We’re talking about community. I have a little thing in my window here, the line that says ‘communication leads to collaboration leads to community’. And where that all start with is, the foundation for that is communication. People actually have to talk to each other, write things back and forth to each other, exchange ideas, make plans. And then, they can collaborate and work together and stuff. And the more people participate together, the more you have a community. But it’s all about talking to people. So, you meet somebody new, you talk to them, you ask questions, you get to know them.
JAMES:
Just to be clear on this point. Should you find someone who’s never seen Firefly, it is totally acceptable to lock them in a room, put it on, bring them through [inaudible]… [Laughter]
KATRINA:
I tried that. I have to admit I tried that. I tried to force my partner to watch Firefly. And we got through half the first episode and the response was like, “I can't stand the captain. Turn this off, make it stop.”
ALL:
Uh-oh!
JOSH:
Later that night, Katrina was filling up her OkCupid profile… [Laughter]
CHUCK:
I do want to say that a lot of times, people will make references to shows that I haven't seen. I really appreciate it when they're like, “You definitely need to go see…” whatever show it is. I mean, that’s how I picked up Firefly and Battlestar Galactica, I'm going to start watching Big Bang Theory. Because they come highly recommended and people seemed to really enjoy them. It’s just what Katrina said, be aware that some people aren’t in on the joke.
DAVID:
Just touching back on whimsy. The point of whimsy isn't to be a weirdo. The point of whimsy is to say, “Hey look, I'm playing. Come join me.” And if you sit down and you start playing and we do something whimsical, I think the point is to say, “Look at what I can get away with while getting paid to program. It’s exciting and interesting and funny.” If it’s off putting, then it doesn’t serve its purpose. But if it’s inviting and enticing and intriguing, then it’s a bonus and it’s a multiplier and you absolutely want to include that. And I think Katrina touches on it really well, that it can backfire or be wrong.
JOSH:
Because that’s not what our community is about. It’s a great icing on the cake that we all have this stuff in common like Firefly or whatever, but that’s not what our community is about. To the extent that it prevents people from being included or dis-interacts, then we should probably take a critical eye at it.
DAVID:
Yeah.
KATRINA:
There was actually some research done on stereotypes and whether or not people who are not programmers would be interested in studying programming based on the paraphernalia that the room was decorated in. And they found that sci-fi posters and cans of Coke and things apparently put people who were not already programmers off in sort of a significant way. And that having culture neutral posters increase the number of people who expressed interest in studying programming.
DAVID:
So, don’t make your cubicle look like a creepy comic bookstore. Is that kind of the… [Laughter]
KATRINA:
Well, in your cubicle, you're already in a work environment. You do what you want, whatever. It’s more in the situations where people might be brought into programming or might be interested but they don’t know it yet, sort of these situations, that I think be a little bit careful, be aware.
JAMES:
While we’re being careful and being aware, I have a bad habit that I do. And that’s the stories of, “Oh, when I was 13, I taught myself Basic from a book and programmed and that was how I learned programming,” and stuff. And I wasn’t aware of this problem actually, until I had a good conversation with Katrina about it recently. I'm glad she brought that to my attention. But that can be off putting in the same way, right? I can tell people that, “If you didn’t do that, if you didn’t come to programming that way, then you're a lesser programmer,” which is, of course, ridiculous.
CHUCK:
[Inaudible] party! Woot woot!
JOSH:
I do the old war stories a lot too. I never really thought of it as chest beating or asserting dominance behavior, that kind of thing. It was, “Oh well, if it was possible for me to figure out how to do this when I was young and didn’t have much in the way of instruction, anybody could do this.”
KATRINA:
This happens -- I don’t know. I'm going to try to clarify a little bit.
JOSH:
Yeah, please.
KATRINA:
I often feel left out in conversations because I came to programming at the age of 27. And it’s like there are two types of war stories and I love some of them and I feel left out of others. And the type of war story that I absolutely love is the, “I have this problem and I spent a week trying to learn how to understand the metadata format for this arcane thing.” And finally, I've realized that it was this one bit that was flipped. And magically, though I wanted to jump out of the window for most of the week, I figured it out. It was awesome. And now, I can read this format like the book, kind of. Like, it’s a story. You tell it, it was hard, it doesn’t make you sound like a genius. It makes the listeners share in this kind of amazing and difficult experience that you had. And then, there's the other thing where this conversation might start somewhere interesting and then people throw away an ‘oh yeah, remember the old whatever arcane hardware that was running the whatever arcane software’ I have never heard of or only heard of because people reference it in this kind of conversation. And I was like, “I wasn’t there. Now, I can't share in.”
AVDI:
[Inaudible] not knowing it.
KATRINA:
Yeah. It’s a completely different conversation.
DAVID:
It’s like you turned off CPM halfway through the first episode because you couldn’t stand the captain?
KATRINA:
[Chuckles] Right. [Laughter]
CHUCK:
My situation that I see that happen most of the time is because there are two people that have that context. They are talking about the way back machine. If it’s just me and one other person, usually, if they're bringing up a story like that, it’s relevant to what we’re talking about and kind of interesting. But when you get two or three guys that are all sitting there and going, “Back in 80’s when I worked on whatever,” and then there's like the ‘oh, yeah’. Then you're on the outs because ‘I was in Kindergarten in 1985’ kind of thing. [Crosstalk]
KATRINA:
Often, it’s not even a story, just a reference.
DAVID:
Everyone in the room laughs and just stares at you.
JAMES:
Sort of everyone agreeing saying, “Never do that.” It’s good to commiserate sometimes if that’s a shared thing or if you're comparing how you came to it or whatever. I think it’s more we’re saying be aware that you might be excluding people. And to say, follow it up with something like, “And of course, there's millions of valid ways [inaudible],” or whatever. Things like that, be aware of that. Is that what we’re saying?
KATRINA:
Yeah. I think that’s the summary, be aware.
DAVID:
Somebody gave me some really good advice. I actually got it from a bona fide therapist. Now, I'm telling you about it third hand so this is officially an urban legend because it’s friend of a friend.
Well, it’s a therapist of a friend.
CHUCK:
[Laughs]
DAVID:
Anyway, this person’s advice was pay attention in every interaction that you have throughout the day to see if your interaction is a one up or a one down. Like every exchange, do you put yourself one level above the person you're talking at or one level beneath the person you're talking to. I have a fantastic war story about the Sony PlayStation and how it would read 14 bits of audio off of a 16-bit format. And a friend of mine figured out how to use those extra two bits to load the level so that when you put the disc in, it would play the opening music. And then the game would start instantly because he figured out how to hide the game loader in those extra two bits. You can tell that story and use it as a way to bond with everybody but the new person in the room, and everybody just stares at the new guy. And that’s definitely a one down, right? It’s a ‘we belong and you don’t’. And there's another way to tell that story which is, you tell that story to the new guy not to show how superior you are but to say, “This is magical stuff. Isn't it so cool that we get to work?” And you can kind of pull him in and suck him in and kind of trick him into more programming. Does that make sense and do you think that’s true, Katrina?
KATRINA:
I think that’s very true.
AVDI:
There are these openers that feel wonderful to say and lead to wonderful things and one of them is, “Hey, you want to hear a story?”
DAVID:
Yeah.
AVDI:
Another one of them is, “Want to see something cool?”
DAVID:
[Laughs]
JAMES:
Ah! Can I jump in there?
AVDI:
Yes.
JAMES:
That’s my one thing I thought of for this episode. I actually have to give credit to a tweet I read recently because this is something I didn’t understand about myself until I read this tweet. Jesse Storimer, who we’ve had on before, made a tweet the other day that ‘I want my next conference talk to feel more like a cooking demonstration than a lecture’. And I realized that that’s my style. That’s how I always do everything. Sometimes people ask me to write like -- I think the term they use before is soft talk and stuff like that. And I've done it from time to time. But those take me ten times the amount of work and [inaudible] about half satisfied with them and it’s just not my thing. Whereas I can write a talk like ‘The 10 Things You Didn’t Know Ruby Could Do’, in my free time, it’s nothing. And I just find them incredibly fun and satisfying. That’s my thing. It’s a cooking demonstration. It’s a ‘hey, look at this, this is awesome’. And I don’t really tell you what to do. You deal with it. A lot of times I even include warnings about ‘you shouldn’t do anything with this’ or things like that. But it’s just that I love bringing people in that way, just by showing them awesome stuff. That is one of my favorite community hacks.
DAVID:
To make a talk like a cooking show, you should start the talk about how to chop up the code and then open the oven and pull out the finished program?
JAMES:
[Laughs] Well, no. It’s more like, “What happens is if we combine this, this, and this, oh my gosh, this is great!”
CHUCK:
I guess you have to be a little tipsy for it too.
DAVID:
There is an article ten years ago or more that basically said cooking shows are food porn.
CHUCK:
[Laughs]
DAVID:
Because they are highly sensual and they have no plot. And I wonder if that’s not actually a really valid way to present more magically, is make your talk more sensual, make your talk more intriguing and compelling. And maybe have less plot, I don’t know. The plot can be how they're going to pay for this pizza. But [expression].
CHUCK:
[Laughs]
JAMES:
I never have any plot. I've typically lost the plot.
DAVID:
Your plot is we have to get to 101. [Chuckles]
JAMES:
That’s right. I actually had to warn people who take notes at conference talks that ‘you should let this one go’ because it’s really going to make you mad. [Laughter] JOSH: Can we shift gears just slightly?
JAMES:
Yeah, sure.
JOSH:
We really had a good point for that. The first thing I have on my list of subjects here comes from -Katrina talked earlier about how she was trying to think of who she respected in the community. And so, the thing I've written down here is ‘liking versus respecting’. And I got to say, there's a bunch of people in our community who are really likeable and there's a bunch of people in our community who are respectable, and this is from my perspective. And that [inaudible] diagram has a big overlap. There are plenty of people in the community who I have a lot of respect for them but I don’t actually like them all that much. I probably wouldn’t want to have a beer with them or cook dinner for them or go camping or anything where we had to socialize a lot. But it’s totally fine to hang out with them at conferences, to correspond with them to work on issues, to review pull requests, that kind of thing. Completely okay people for me to work and collaborate with and be involved within the community. I'm not quite sure what the hack in the community is around this but I would like to see people more open to working with and collaborating with and being in community with people who are worthy of their respect even though they may not like them.
DAVID:
Yeah.
JAMES:
That’s true.
JOSH:
I hope this isn't too big of a digression but the deaf community is very much like that. I studied sign language for a while and we had to study what the deaf community was like. And for homework, one of our assignments was to watch the movie Steel Magnolias which I have never seen before. And I was like, “Oh, this is an awesome movie,” if you like chick flicks. [Laughter]
JOSH:
I mean, it was really a great movie. But the point of watching the movie was here you have this small town with a lot of very powerful and strong personalities all clashing. And a lot of these people really did not like each other at all but they have enough respect for each other that they would be there for each other and support them when they needed it.
AVDI:
Yeah, that’s a really powerful point.
DAVID:
I've never seen that movie and I think you just turned that into a pick for me. Thank you.
JOSH:
Oh, there you go. [Chuckles]
CHUCK:
There's definitely a place for empathy. And I think it’s an important thing to talk about. You don’t understand what people are going through and if you just pay attention and -- we talk a lot about some of the things that we like to do and some of the things to do and not to do. I mean, we had the diversity discussion when we talked about some of the red flags to pay attention to and stuff. But this is something that I brought up when we were discussing this on the Email and it’s something that I really want to bring up. And that is that we have these hacks and we have these things that we want to do and we have these things that we don’t want to do. But I think a lot of it really just comes down to having empathy and having a good attitude. And we’ve kind of alluded to a lot of this but I just want to put it out there. I mean, if we are focused on serving each other and helping each other and being good to each other and doing the right things for each other and just making this a terrific place for people to be, that’s really where it matters. And so, a lot of times, it’s just the little things. You see somebody that looks a little bit bothered at a conference or you hear a talk from somebody who makes themselves rather vulnerable in the way that they speak or the topic that they’ve covered. All of those things where we just reach out and let people know that we appreciated or reach out and let people know that they belong, it makes a huge difference and it just takes a couple of seconds. I really just want to put that out there. I mean, it goes well beyond being nice which I think is what MINASWAN is kind of tackles. It goes beyond being nice and actually caring. I think it’s just important that we do that.
AVDI:
Absolutely. And I think that the more that there's success and there's money in the community, the more we just need to remember to stay to the roots that it is a community and it’s a community of people who like to have fun together, who want to see each other succeed and also enjoy themselves both in code and in life. I'm really convinced after many years in the Ruby community, I'm convinced the community loves you and wants you to have fun. And that makes me want to do the same for others. And yes, we have jobs and we’re partly meeting up in being the community because we have these jobs where we get stuff done. But that isn't all of it. And we’re definitely not all here to get that great startup exit or whatever.
JAMES:
Avdi, can I ask you a question?
AVDI:
Please do.
JAMES:
I have the advantage of having Avdi’s notes so I can ask cool things. He wrote things in his notes that I cannot let this conversation go without. One of those would be ‘constructive reactions to drama a.k.a. what would Angela Harms do’. Tell me about that.
[Laughter]
AVDI:
I think this just stems straight from what Katrina was talking about. I have people that I respect. I could say gurus, I don’t treat them as gods but I look to them as like when I'm in a bad place, I look to them as what would a reaction that I would respect look like. And I think of those people.
JOSH:
I think we call them role models.
AVDI:
Yeah, role models. Thank you. I can't word today. Angela Harms, we’ve had her on the show. She's definitely one of them. She brings an enormous amount of compassion and care to the stuff that she talks about in the programming community. I always hate to stay on one personnel because there are a lot of people like this. Honestly, Matz himself has always been an inspiration to me because he is an incredibly brilliant individual who is humble. JAMES: And we spend most of our time being mean to him.
AVDI:
[Laughs] Yeah.
JAMES:
“Why did you do this? Oh my, gosh! You're killing me! [expression]”
AVDI:
That was one of the things that blew me away first coming into the Ruby community is that you could get on Ruby-talk and you could ask about something. You're like, “Why does Ruby do this stupid thing? It’s so dumb. Other languages don’t do this dumb thing.” And he would just like really patiently explain why he made the decision, what the tradeoffs were and yet, might not be the best thing in the world but it seemed like the right thing to him. And then, he would also quietly and humbly completely destroy you with his encyclopedic knowledge of all other programming languages ever.
DAVID:
Yes. [Laughter]
AVDI:
But in a really nice way. And that’s always stuck with me because like I don’t think I'm humble. I don’t think I'm nearly humble enough. And I think that the more I know, the more there's that urge to be like, “I am the winner of knowing things!”
DAVID:
[Laughs]
AVDI:
And it’s bad with me because one of my hobbies is just like reading all patterns book and stuff like that and then I want to be like, “Oh, yeah? The such and so pattern says blah…blah…blah. And Cunningham in 98 said…” It’s a bad [inaudible].
JOSH:
Avdi, I think that arrogance is sort of part of the job description for being a programmer.
JAMES:
[Laughs]
AVDI:
You know, Larry Wall said -- here I go. [Chuckles]
JOSH:
[Laughs]
AVDI:
Larry Wall said laziness, impatience, and hubris are the three virtues of a programmer. So, I think hubris is kind of like arrogance.
JOSH:
I had an old friend who I worked with in my first job. He said that arrogance is actually a requirement for being able to be a programmer because what we do in our job everyday is we take a hunk of metal and silicon that has less intelligence than the average garden snail. And we train it and enable it to do the most complicated tasks known to human kind just by explaining things very carefully.
AVDI:
Yeah. But I want to say this about arrogance. We, as programmers in general and especially in the community that we are in, we swim in an ocean of goodwill. Everything that we do is supported by this incalculable amount of goodwill in the form of the contributions of everybody that’s gone before us and put their thoughts and everything out into open source and into the public domain. More specifically, in Ruby, the language that we use, the frameworks that we use, the libraries that we use, millions of lines of open source code contributed out of the goodness of people’s hearts. Not to mention all the free educational resources and stuff like that. Yes, we do remarkable things but we do it with the support of this just ocean of kindness that has been heaped upon us. And I try to stay mindful of that.
DAVID:
Did we say on the show what Matz said to Chuck and I at Mountain West when we invited him to come on the show?
JAMES:
What's that?
DAVID:
If you want to check your humility, this is the humility test. Matz came to Mountain West Ruby Conf this year. And we of course, Chuck and I, pounced on him and said, “Please come on the show. Please come on the show.” And he thought about it for a long time. And his initial response was, “I don’t think I'm an authority on the Ruby community well enough to speak out on a podcast about it.” And Chuck and I, our jaws just hit our chests and said, “Are you kidding me?” [Laughs]
CHUCK:
[Laughs]
DAVID:
We’re just like, “Trust us. You're an authority.” Matz, if you're listening to this -- Josh, I think it was you that sat next to him and he said he listens to our show. Matz, if you're listening to this, you are an authority on the Ruby language. We would love to have you on the show. [Chuckles] But there's a humility level. If you invent the darn thing and run it for 20 years and then claim to not be an authority on it, that’s humility. Wow!
AVDI:
Yeah. But it’s good to have these role models. It’s good to have people that -- especially when you're having a bad day, they can function as reminders. And yes, they're fallible people too, they're going to have bad days too. But it’s still okay to look at their best days and say, “I want to be like that as well.” I want to sort of tack something on to the stuff that I was saying about the world of open source that we live in. I want to just say if you want a little piece of concrete homework from this episode, when the episode is done and you get through with your commute or your run or whatever, go check your gem file and pick out a gem in there that you love and that has made your life better and go thank the creator of that gem or the people that are involved in maintaining it.
Love your open source providers because they deserve it.
JAMES:
And if you haven't told Steve Klabnik how amazing he is recently, maybe this would be a good time to just throw a tweet his way. I'm pretty sure he never sleeps, though. [Laughter]
AVDI:
He wears a lot of hats.
KATRINA:
To tack something else on to that, one of the things that I think that I really enjoy about the Ruby community is that we do stuff together. It’s not just always talking. It’s we go ahead and we pair on things. We’ll throw some code out there and someone else will go, “Oh! Here's an idea? Do you want to pair on it? Do you want to work together on it?” Or we’ll get together and make a project, like the RubyFriends website that went up before RubyConf. We’re not just talking about code, we’re not just talking about our projects or our work. We’re not just whingeing over beers. We actually get together and do stuff. And I think that’s a big part of making this a great place to be.
CHUCK:
Yup.
JAMES:
Yeah. I agree. You see people at conferences that a lot of the gems like Ruby Gems itself I think was made in the hallway track at a conference. People just pulling up laptops together and, “Let’s change the world!” [Chuckles] Can we do one more point before we call it quits?
CHUCK:
That’s what I was going to say.
DAVID:
Sure.
JOSH:
At least.
JAMES:
[Chuckles] What about, Avdi has another great one in his list. More blogs, fewer tweets.
CHUCK:
No, it said ‘less tweets’.
JOSH:
[Chuckles]
JAMES:
I fixed it because Josh yelled at me. [Laughter] [Crosstalk]
JOSH:
Good grammar is sexy. That’s the T-shirt.
CHUCK:
Okay.
JAMES:
I like that.
DAVID:
I’ll have you know I speak very well grammar.
CHUCK:
[Chuckles]
AVDI:
I'm going to amend that to just say ‘more blogs’. I don’t care how much you tweet. Tweet a lot, tweet all, I don’t care. Whenever I run across a programmer blog and it doesn’t matter, that can somebody that’s totally new to the ecosystem. But every time I run across an actual blog by a human being that seems to be updated sometime in the last year, I subscribe to it in my feed reader. And it’s always nice to go through those and read things that people have reasoned out and provided code examples. It’s just really nice to have that kind of semi-long form discourse. And I've seen some really good discussions go back and forth as people put up different examples on their blogs and responded to other blogs. It feels a little like it’s tailed off. Some of it is just older bloggers have moved on and newer bloggers have come in. But I always like to see that and it’s always great to see people putting up long formed thoughts on the web about code.
DAVID:
I think you're right. I absolutely got sucked into it. Sorry, Josh. Let me finish this quick thought and then I’ll let you in. My blog frequently had 300 and 500 word posts in it and Twitter came out. And there was this rush of people complaining about trying to fit their thoughts into 140 characters. And now, everybody can fit their thoughts into 140 characters but the oxygen has been sucked out of the blogosphere in the 300 word space because people -- and I do this, I certainly do this. My short form blogs are gone because I will just tear them down to one sentence and tweet them instead. And I'm actively trying to restart HeartMindCode.com as a space for me to put stuff out on as a blog just to get away from the evil of this compression of thought that is Twitter. Sorry, Josh, I cut you off.
JOSH:
No, it’s fine. One of the big things that I think I did right when I first entered the Ruby community was I created a blog. Because I said, “Hey, open source, it’s all about collaborating. You have to go talk to people.” And this is before GitHub and we didn’t have this great platform for being able to do pull requests and issues and all that, that was really community-focused. And so, I just put up a blog and gave myself a voice. So, I think if you're going to participate in the community conversation, having a voice is crucial. It’s not just important, it’s crucial. You got to have a voice to be able to participate. Having a blog is one great way of doing that. There are definitely other ways of doing it but that’s probably the lowest cost or lowest effort way to create your self a voice in the community.
JAMES:
Avdi, is the word ‘semi-long form’ at one point in his description, it was kind of a learning point for me because I haven't blogged in a long time because when I blog, I, for some reason, feel compelled to write it in novella form. And so, it takes me like ten years to write a blog. If you go back through like my blog post on character [inaudible] or something, if you add all those up, it would actually -- I don’t even know if they could be published in a book. They're probably too big. And recently, I've learned that not everyone has this disease and it’s very refreshing and cool. My favorite shorter blog these days is The Real Adam by Adam Keys. And I love it that I just read that out there because the top post on it is one I don’t agree with. And it was just awesome and he posted it the other day. And I'm like, “No way.” And that went back and forth over and over at Twitter and it was really great. Seriously, you don’t have to write ten pages. Who knew? It can just be like a paragraph or two expanding some thought and it’s still productive and useful.
DAVID:
My [audio distortion] blogging, I have lost my 300-word voice. My three most recent posts are all a thousand words or more. And so, it’s good practice. One thing I want to add to what Josh said is if you are a newbie, getting into Ruby, this still applies to you. Please, start a blog and blog about crazy, obvious things that us greybeards are going to go, “Oh yes, I remember when I learned that back in 1972.” But put that out there because the point of a blog is not to say, “Hey, look world. I know something you don’t.” The point of a blog is to say, “Hey, I just had the joy of discovering this.” Because everyday -- what's the rule? There's 10,000 people learning a new idea and you give an idea everyday. And there's somebody out there who doesn’t know what Diet Coke and Mentos is. I’ll put a link to that xkcd in the show notes. If you're a newbie and you're afraid to speak up because you feel too new, that’s your impostor syndrome talking. We’d love to hear from you. Start a blog, get involved even if you don’t know anything. Put stuff out there, be wrong. Jump in.
JOSH:
And please, don’t wait on writing your own blog engine in Rails. [Laughter]
DAVID:
Yes. Start a WordPress blog and go. [Laughs]
AVDI:
Absolutely.
DAVID:
I've had a small little note here that I wanted to bring to the show that we never got to a point where it could be tacked on to anything. Should I just bring it up as a specific point?
KATRINA:
Sure.
CHUCK:
Yeah, go ahead.
DAVID:
Okay. So, I have a new acronym for us. And it’s MINEWWMASWAN.
JOSH:
Could you say that again?
CHUCK:
[Chuckles]
DAVID:
MINEWWMASWAN. I’ll put it in the show notes.
JOSH:
I just like hearing you say it.
DAVID:
Oh, okay. The sound byte for your voice mail, MINEWWMASWAN. And it’s spelled like it sounds, EWWM is what you inject into MINASWAN. Tenderlove gave a talk a couple of years ago where he basically said, “We don’t need MINASWAN anymore. Matz is nice and so, we are nice.” That’s great. But we should be nice because we are nice. And I completely, completely agree with that. I'm going to disagree with it on a minor point and that’s what the EWWM part gets added in. What I wanted to add to this is that we still need MINASWAN because when somebody ticks us off, when somebody really just kicks over our beehive, we’re rational creatures. And so, what MINEWWMASWAN stands for is ‘Matz Is Nice Even When We’re Mad And So We Are Nice’. Even when you're furious, Matz is still nice. And so, that’s what I wanted to add was that, I guess I should have tacked it on to Avdi’s comment about role models because that’s really what I mean here is that I'm furious about this person. Obviously, he’s done something in violation of all good taste and decorum and they really need to have [inaudible] kicked in. But Matz is nice or I have this ‘how would Angela Harms respond do this’, what are my role models? That’s what I wanted to add to that, MINEWWMASWAN.
AVDI:
I actually just want to say, I feel like I never actually explained exactly what I meant by ‘what would Angela Harms do’. And I'm going to send her into hiding for all this putting her up in the pedestal, I'm sure. But what I actually meant by that is specifically, on many occasions, I have seen some sort of little drama flare up on Twitter and tempers get really short. And over and over again, I've seen her, even though she’s clearly affected emotionally by the issue, make a concerted effort to find the point of view of the people that everybody agrees are wrong, wrong, wrong, and find some empathy for them. It reminds me to find some empathy and the thing is finding that empathy is often one of the shortest paths. For one thing, it’s like a billion times healthier to feel. It’s not going to end your life early the way constant bio will. But it also happens to turn out to be one of the best hacks for ending conflict when you are able to show a little bit of compassion for somebody else’s feelings, maybe even not their point of view but their feelings, the state that they're in right now.
JOSH:
Avdi, that is awesome and I'm going to build on that and say that -- I said before that communication is the foundation for community. And the foundation for communication is listening. And Angela’s awesome at listening and actually paying attention to what you're saying and what's behind the words even.
AVDI:
Yeah.
JOSH:
The thing about when you're angry, when you're pissed off at somebody, you're not really listening to them. You're listening to what's going on inside your own head. It’s totally okay to be angry, that’s a natural human thing. I don’t think we should all try and deny our anger when stuff happens that we freak out over. But there's a lot more to us than our anger. And it’s actually possible to listen to people even though we’re angry at them. The amazing thing about listening is that you can listen to someone really actively like you can speak and ask them questions and give back to them what they said. “Oh, you just said this.” The amazing thing is that when people get hurt and they know that you heard what they said, they don’t have to keep repeating themselves anymore. And you can actually diffuse a whole situation just by letting someone know that you heard what they said.
DAVID:
Yeah.
AVDI:
Yeah.
CHUCK:
Yup.
DAVID:
Agreed.
KATRINA:
Or babies and kids too? [Laughter]
AVDI:
It really does.
JOSH:
Almost like little people.
DAVID:
I know, right. [Laughter]
CHUCK:
Even watching my kids, “Dad? Dad? Dad? Dad? Dad?” “What!?” [Laughter]
AVDI:
[Coughs]
CHUCK:
I think I made Avdi choke. He must have kids too. [Laughter]
AVDI:
Just a few.
CHUCK:
You watch one for five minutes and you…anyway. I think we’re about ready for picks. What do you guys think?
DAVID:
Oh, sure.
JAMES:
I think so. It’s very educational [inaudible].
CHUCK:
Alright. James, what are your picks?
JAMES:
[Inaudible] never speak up, that’s awesome. [Chuckles] Fist of all, I mentioned Jesse Storimer earlier in the episode. And it turns out, he has a new workshop coming up that I didn’t know about until just recently which is the Unix fu Workshop which is just so cool. What a great idea! I don’t know about everybody else but I like [inaudible] like online workshops where it’s a couple of days, you’ve learned it. I've taken several classes this way from different people. And even if it’s over stuff I think I know, I usually pick up something new. I like to see how different people approach problems or whatever. In a Unix workshop, I'm sure I would learn lots of things I don’t know because I'm not that deep into it. So, this sounds awesome basically just showing you how Unix works and you how you can use that to your advantage. And there’s a cool video you can watch where you can kind of get an idea of that. So, I just wanted to throw that out there. And then, this weekend, I had to attend the Freethought Convention which is very good. And that’s where you see lots of great speakers, had dinner with some of my heroes, which is always cool. I saw Lawrence Krauss there, and that reminded me of his book which I finished recently. It’s actually his older book, The Physics of Star Trek. But it’s really cool because he uses Star Trek to teach you things about Physics. So, even if you're not that into Physics, if you are a little bit into Star Trek, then you use things you’ve seen in the episodes and he kind of explains those using Physics concepts and shows you how Physics works and talks about the things that get very right and things that get very wrong, of course. It’s a good book. I really enjoyed it. Those are my picks.
CHUCK:
Awesome. Dave, what are your picks?
DAVID:
I really want to pick the Humble Indie Bundle 6 but it expires in six days and six hours which means at the time this goes up and airs, it will have been over for 18 hours. So, I'm going to tweet the crap out of this, maybe tweet it at the Ruby Rogues Twitter feed and put it on the Parley List so people know about it. But if you missed that and you're just hearing about it now, I actually heard about the Humble Indie Bundle because I've been playing one of the games in it. So, those of us over a certain age played Oregon Trail on the Apple 2. And you know what it’s like to have your entire family die of dysentery or cholera.
JAMES:
Not too good times.
DAVID:
If you have watched that faithful experience of the Apple 2 emulation, the Oregon Trail rebuilt to play on your iPad as though you were setting up a Color Apple 2+ Computer and you want it to set in modern day with zombies, then Organ Trail is the game for you. It is crying-out-loud hilarious. Instead of a covered wagon, you're in this old station wagon and you're driving across country trying to get to safe haven which is in Oregon to get away from the zombie hordes. You could still get cholera and you could still get dysentery but you can also have roadside events like running over a zombie dressed in a clown suit and the [inaudible] hog as you went over his nose brightens everyone’s spirits and everyone’s health goes up. Instead of fording rivers, you have to drive though hordes of zombies. You can wait for the horde to pass, you can shoot your way through, you can try to sneak by. It’s very much in the same spirit. You have to go hunting, or in this case, scavenging. Fantastic game, lots of fun. Organ Trail. It’s like $2 in the Apps Store and another $2 to buy the expansion which is also worth it. It’s a whimsical game, you’ll get tired of it after about two to ten hours or 28 if you’ve got OCD like me. It’s absolutely worth the price tag. So, that’s my pick.
CHUCK:
Nice. Josh, what are you picks?
JOSH:
I guess I have to pick Steel Magnolias since I mentioned it on the show. And it’s a real tear-jerker. It’s not like watching an episode of Firefly. But I loved it, it was good. Other picks. I mentioned active listening just a moment ago. And I realize that would actually be something worth picking but I didn’t have any good resources. But it turns out that the Wikipedia page on active listening looks great and it has a couple of links to other good resources, looks like. But if you're on the Parley List and you have other resources for active listening, let’s [inaudible] up there. And if we get some more by next week, I can put them on the show too. So, there's that. And then, in keeping with the theory that picks are things that made our life awesome in the last week, I'm picking the Supreme Court of the United States. Thanks guys for doing the right thing.
DAVID:
For striking down the Voter Rights Act yesterday?
JAMES:
[Laughs]
JOSH:
Yeah, that was really awesome.
DAVID:
Yes. I'm waiting for The Onion to release a headline that says ‘Californians angry for VRA for exactly one day’. [Laughter]
JOSH:
Anyway, for those playing along at home, today’s Wednesday, June 26th that we’re recording this.
Anyway, that’s my picks. Thanks, guys.
CHUCK:
Awesome. Avdi, what are your picks?
AVDI:
I just have one pick bookmarked today. It’s a site called the Wirecutter.com. And it’s a pretty cool site for gadget reviews. They take the approach of ‘we’re going to pick the one thing that you should buy’. Like, in any given category, we’re going to pick one thing that you should buy. So, they do broad surveys of all the reviews on CNET or Amazon or Lifehacker or various other sites that review gadgets and gizmos. Then, they round up a few of the ones that kind of float to the top of all those reviews and they review them hands-on themselves. And then, for that category, they pick one winner. And they say, “Buy this one.” And their picks generally tend to be pretty good, at least from what I've seen so far. It’s kind of a nice metaphor. I guess where the name comes from, Wirecutter is kind of like when you're cutting the green wire in the ticking bomb or something. I don’t know. But anyway, it’s a nice way to cut through the -- what is that term when there are too many choices? The paradox of choice. And get something that is pretty much guaranteed to be a good bet. So, I've started to consult them more and more when I'm looking for a particular gadget.
CHUCK:
Awesome. Alright. Katrina, what are your picks?
KATRINA:
I've got two today. The first is not something I've discovered in the last week. I was at Cascadia Ruby in 2012 doing a talk and somebody else did the talk. Ryan Davis, also known as ZenSpider, did a talk called ‘Occupy Ruby: Why We Need to Moderate the 1%’. And so, it’s relevant to keeping the community happy and healthy, so I thought I’d pick it today. The other pick that I have today is an article that I was told about called ‘How to Talk to Little Girls’. And it sounds like it might be very, very creepy but it’s not. This is an article by Lisa Bloom that talks about why you maybe shouldn’t always talk to girls about how cute and pretty and beautiful and well-dressed and well-mentored and well-coiffed they are and how cute their dress is and, “Oh, my God! You're so gorgeous.” What you can talk to them about which is what they're interested in, what they do, what book are they reading. And it’s a really good article. Anyway, those are my picks.
JOSH:
I read that article before, it was great. I liked it. The whole like ‘what are you reading’ is just the perfect opening salvo. Also works with adults.
KATRINA:
[Chuckles] Also works with adults.
CHUCK:
Awesome.
JAMES:
It turns out kids are like little adults.
CHUCK:
[Laughs] Thank you, James. Alright, I've got a couple of picks. Katrina actually stole one of mine and that was the talk by Ryan Davis. I thought that was really good. I have two other picks. One is ‘How to Write a Non-Fiction eBook in 21 Days’. I just think that that’s a terrific option if you want to write a short eBook and put it up to community. I think that some of the authors out there that have done terrific work in the community have written short eBooks like Avdi has done or Jesse Storimer, we’ve talked about him. And a few other folks in the community have just written these eBooks that make a huge difference to community on a focused topic that makes a lot of sense to people. So, I want to pick that. And the other one that I'm going to pick is ‘Create Awesome Online Courses’. This is a little bit of a larger ticket item. I've been working through it and I'm really, really enjoying it. So, I’ll put a link to that in the show notes as well. Anyway, Josh wants to plug something and then we will wrap up the show.
JOSH:
Yeah. I need to put in a word for Golden Gate Ruby Conference. By the time you hear this, registration will be open. And the list of speakers will be announced and all the good stuff. The conference is September 20th here in San Francisco and we always sell out. Every year, I always get panic emails and tweets and texts and things a week before the conference saying, “Oh, my God! I don’t have a ticket. What can you do?” By that point, the answer is always, “Nothing, I'm sorry. I couldn’t even get my mom a ticket at this point.” So, if you want to come to the conference, just register, don’t wait. That way, you don’t have to send me that panic Email a week before the conference. And it’s going to be great and we have some really good surprises planned. That’s my plug. Thanks for the time.
CHUCK:
[Chuckles] Given our conversation, you will empathize and then say no.
JOSH:
Yes, exactly. [Chuckles]
CHUCK:
[Laughs] Well, thanks for listening. We are doing our Book Club book that is ‘Understanding Computing’.
JAMES:
Understanding Computation.
CHUCK:
Understanding Computation. I wish I had it in front of me and then I’d know that.
DAVID:
And it’s one that you, guys listening, you need to go get this book and start reading it early because it’s a brain buster. It’s short but it is heavy duty. It’s awesome.
KATRINA:
It’s intense. It’s really good.
DAVID:
Yeah.
CHUCK:
Yup. Alight. So, we’ll wrap up the show then. We’ll catch you all next week.