177 RR Creativity and Technology

00:00 4636
Download MP3

03:40 - Cartooning

Book Club

Refactoring: Ruby Edition: Ruby Edition (Addison-Wesley Professional Ruby Series) by Jay Fields, Shane Harvie, Martin Fowler, and Kent Beck

Refactoring in Ruby by William C. Wake and Kevin Rutherford


DAVID:  So, why not make the friend and take the friendship and make it awkward?[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.]**[This episode is sponsored by Codeship.io. 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.io, continuous delivery made simple.]**[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/RubyRoguesPodcast.]**[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 177 of the Ruby Rogues Podcast. This week on our panel, we have Saron Yitbarek. SARON:  Hey everybody. CHUCK:  Avdi Grimm. AVDI:  Hello, hello. CHUCK:  David Brady. DAVID:  If I had a prep joke ready, thing, grammar, shut up! CHUCK: I’m Charles Max Wood from DevChat.TV. And this week we’re going to be talking about creativity and technology. This is something that I’ve been thinking about a lot and I’ve talked to Saron a couple of times about. I’m kind if curious before we get too deep into this. Do you guys have creative outlets or ventures that you participate in outside of programming? DAVID:  I love watching Saron draw comics. [Laughter] SARON:  Wait, you’ve watched me draw comics? DAVID:  Oh, I probably shouldn’t have told that. [Laughter] CHUCK:  I was going to say, if she doesn’t know about it, never mind. DAVID:  I’ll put you in touch with my lawyer. He’s got a standard restraining form. He just rubber stamps it. It’s just easier for my lawyer to just give them out. [Laughter] SARON:  Great. I look forward to it. [Laughter] AVDI:  It sounds like you got pretty creative in order to be able to do that. DAVID:  I probably shouldn’t comment. I’m really close to the restraining orders being turned into a class action lawsuit. [Laughter] DAVID:  I like how somehow I’ve turned into the creepy guy on the show. [Laughter] SARON:  So quickly, in the first 30 seconds, too. DAVID:  And that I did it to myself. CHUCK:  I was going to say, you had very little help. [Laughter] DAVID:  Yeah, yeah. I see that now. [Laughs] SARON:  Yeah, so we can talk about cartooning. You guys want to start there? CHUCK:  Sure. SARON:  Okay. So, I feel really bad about this and I feel like I’m going to crush all of your dreams right now, because I really don’t see cartooning as a creative outlet at all. I see it as a means to an end. Usually, when I cartoon, it’s with a purpose. And I really don’t like drawing for the sake of drawing, which is why I actually don’t draw very often if it’s not for a blogpost or to explain a tech concept or for some bigger purpose. I actually don’t draw for the sake of drawing. I feel like I need to apologize for that. DAVID:  This is the sound of my dreams dying. [Laughter] CHUCK:  Yeah. Growing up, I was always doodling on something. And it wasn’t necessarily for any purpose and it wasn’t necessarily, necessarily not for any purpose. But it was just something that I did. And that morphed into writing. And writing has become that creative outlet. And sometimes I do write just to write. Does it have to be for no particular reason in order to be creative though? DAVID:  That’s a good point. SARON:  I don’t know. I feel like when people talk about creativity it’s usually you made this and it’s creative, and as long as it is interesting, then A+. And for me, I feel like when you do something creative, it being creative or it being interesting is the bare minimum. I feel like it should do more than that. So, I feel like I’ve made something creative successfully if it also connected with you, if it caused an emotional response with you, or if it explained something to you, or if it made something interesting. You know what I mean? If it does that then I feel like I’ve done a good job. But if it just stops at, “Oh, this is something interesting,” and doesn’t do more, then I just don’t feel satisfied. CHUCK:  Do you play a musical instrument? SARON:  I pretend to play the piano. CHUCK:  And when you play the piano, is that for any particular purpose? SARON:  It makes me feel really smart. So, I play the one song that I know over and over again. But that’s probably why I don’t play the piano very much. [Chuckles] CHUCK:  Yeah, and see to me, that also doesn’t necessarily serve a major purpose but it engages you in a different way. That’s what I wanted to talk about with this topic. And I know there are other aspects of it as well. But whether or not it has a purpose, I definitely see that it makes you feel really smart. And I think that is just as important sometimes. DAVID:  And I have to wonder if getting your creative juices flowing is not necessarily the same thing as relaxing. I talked about the book on ‘Becoming a Writer’ by Dorothea Brande. I may have even picked it. It’s an older book about writing. And she talks about learning what your poisons are. And what she means by this is writers will find things that inspire them and they will find things that just fill them with despair. There’s one author that literally makes me suicidal to read his work. And there’s another that, he’s so good that whenever I read his stuff I’m just like, “I will never ever write. I am an insult to the written word.” And I love reading both of their writings, but I have to be aware of the damage that they do to me. And Dorothea Brande actually points this out. She says, “What you love and what inspires you might not be the same thing. And even what you like might not be.” And so, there are people that write science fiction that don’t like reading science, which is awesome. But they’ll go out and one person said that she would sit down and crack open an organic chemistry book and just read molecule names. And it would just make her eyeballs hurt. And then when she was done, after 45 minutes of that, her brain was like, “Oh my gosh. I am so filled with factoids. I can’t wait to go write.” And she was completely filled with inspiration. She wanted to go write. She would run to the, this is an old book, to the typewriter and just start cranking out manuscript pages of science fiction. And the point of this is that maybe what you like to go do isn’t necessarily what gets your creative juices flowing. I love playing video games for example. They’re taking up a lot of my time right now and I’ll explain why Avdi’s to blame for that in the picks. But they don’t get me creatively motivated. They are a relaxation. I do them to take care of burnout and stress. But they don’t get me excited to go write a new linked list processor. That was a long ramble. I sort of circled the point there at the end. But I don’t know if I actually made the point. [Laughs] My point is that creativity and relaxation might not necessarily be the same thing. Maybe things that we do that are creative can actually be very stressful and strenuous while we’re doing them. CHUCK:  Yeah, that makes a lot of sense. And a lot of the things that I do to relax are pretty mind-numbing. And so, it doesn’t really add to the creativity. But then there are other things. And for me in particular, it really is writing fiction. It just fires up the creativity. The other thing that really fires up the creativity, I don’t know why, go figure this one out, is going for a run. I go for a run for an hour and I come back and I am good to go for hours on end. DAVID:  I love that you write fiction to relax. I hate opening up a project repo and finding out that you have written 2000 words of fiction beginning with require ‘nokogiri’ class Application. CHUCK:  [Laughs] So, I’m kind of curious with these creative endeavors or things that amp up your creativity. Do they help with coding? Do you find that there’s a crossover between them? SARON:  I’ve been surprised at how I don’t feel like there is. And I’m wondering if that’s because I’ve only been coding for a little over a year and maybe that time will come. But I was most excited about coding from the perspective of, “Great. Now I can take this and I can come up with all these ideas and spin them into apps.” And I feel like the creative part of that is still not within reach quite yet. I feel like I’m still figuring out the technical parts and trying to understand the right ways to do things or the best practices and all that. And I feel like, at least with drawing, I think that when you first start to draw you have to know just how to do stuff. And then once you know how to do stuff and you have the right technique, then you can do things that are more creative and think outside the box. But you have to get the best practices down first. And so, I feel like when it comes to coding, I’m still in the understand the best practices place and I haven’t yet transitioned into, “Okay, now I can think a little bit outside the box and make this my own.” DAVID:  I think I kind of agree than when I draw or when I play guitar or when I do other things, I don’t really think that helps my coding. If I want to work on my coding, I’ll go do Exercism or I’ll go do a code kata. But playing guitar, you can shift notes from one note to another with what’s called hammering. You can hammer on a note and hammer off a note. And it sounds really cool. It’s just this [makes guitar sounds]. The notes just shift up and down. And because you’re not strumming the keys, or the, strumming the keys… I’m really bad. CHUCK:  [Laughs] DAVID:  I’m really bad at guitar. [Inaudible] Anyway, so you grab it by the fret board, that actually is a thing on a guitar, and when you hammer on a note what you do is you put your finger on the string so hard that it actually rings the string. And so, you can actually hear the note. And so, you can actually play a guitar just by tapping on the fret board. What does this have to do with programming? Well, if you read the sheet music for this, the notes for when you’re hammering, they have little lines drawn over the top of them to indicate ligatures between the notes. And the ligature is from the Latin word meaning binding or tie and it just shows that these notes are tied together in a certain way. And it was after playing music casually for ten years or so that I started to notice that there are different ways that you can tie code together. And I started talking about code ligatures. And I would talk about this module has some ligatures to this module, or let’s review the ligatures of the entire application. And anybody that does music immediately knows what I mean. They know that I’m talking about how deeply coupled things are and how easily decoupleable they are. And it’s not just clean, precise modularity versus cohesion. It’s this fluid, creative concept about how things are tied together. And that all comes from music. Does that make sense? CHUCK:  Mmhmm. DAVID:  My point is that when you go off to do those crazy, weird creative things sometimes you come back with not things that influence your code directly but that influence your high-level code in a really weird and orthogonal way. AVDI:  In my experience, pretty much anything that really takes my mind off the code is kind of essential to being more creative once I get back to coding. It’s really just about letting the unconscious mind work for a while without the conscious mind getting in the way. CHUCK:  Yeah, one other thing that I have found is that not just the common language that David’s talking about but in a lot of cases. So, some of my other things that I like to do is I like to work on things and build things. Like I’ll go work on my car or I’ve done some woodworking in the past. So, when I come to a problem sometimes I’ll be looking at it and I’ll be trying to figure it out. And then I have a mental model of how a certain part of a car engine works or a mental model of how I would do something with different woodworking practices. So, this is similar to what David was saying except I go in and I solve the problem instead of recognizing a pattern that’s already in the code. And so, I create my own pattern based on these other things that I’m experiencing from this other pursuit that I have. SARON:  That’s interesting because when I first started to learn to code, I found that to be very frustrating. Because when I write or when I draw or when I do any of those more creative things, I start with this final picture in mind. Even if I don’t know how many paragraphs I’m going to have, I have an idea of the point I want to make. I have an idea of how I want the reader to feel at the end of reading the blogpost or the story or whatever it is. And I have this pattern, this final image in mind. And the hardest part for me about coding was that I never, I just didn’t have that final image. I didn’t know what the app should feel like or should act like or should look like, because I was so new. And I found that to be very, very painful. And over time once I got used to it then I could see how the features would work and how things would wire up and how it would work together. But not having that immediate, when you get used to creating things out of a vision and then you start to code and you can’t get to that vision because you just don’t have the experience, I found that to be very painful. CHUCK:  Yeah, that’s one thing that I’ve definitely seen with TDD, is that it at least gives me that vision. Not necessarily how all the pieces are going to stick together, but it gives me the big picture of, “I’m going to put this is in. I’m going to get this back out.” DAVID:  Yeah. SARON:  Yes, exactly. And that’s one of the reasons why I really, really, once I found testing and I used that as a process for coding, it helped so much exactly for that reason. Because now, even though I don’t know exactly what methods I’m going to use and how it’s going to work, I knew what it should feel like at the very end. And that made everything just a lot more focused and felt very purposeful. CHUCK:  Yeah. The other thing that’s interesting related to what you were saying is that with a blogpost or a program, a lot of times there’s a story arc to it, like with a musical piece there are different movement within it. And so, being able to tell the story, being able to articulate how all of the different actors within your system are going to collaborate, is a skill that I’ve seen different people pull out of the different creative pursuits that they have whether it’s music where there’s this underlying rhythm or different ways of expressing the note, or people who write. And this is something that I really identify with where you create this story. You create almost a plot for your program to follow. And it’s really interesting to see how different people formulate that based upon what they’re doing to stimulate their creativity, whether it’s writing or drawing or playing music or even just reading or listening to music. I find that very interesting. And a lot of people, they try and segregate those parts of their brains. And when they bring that back into their process is when they really come up with the solution that is both elegant and understandable. DAVID:  I think it’s important again to take these patterns that you find and actually let them inform the high level of code. You were talking about writing fiction. And there’s a fun rule of thumb in fiction that basically goes, figure out what kind of story you’re telling. Are you telling a milieu story or are you telling an idea story? Are you telling a character-based story? If you start one type of story, make sure you finish that type of story. It’s like Lord of the Rings was an event story. There was a big, bad thing that happened that messed up the whole world. And if Frodo had gotten to Mordor and then decided that what he really wanted to do was become a ballerina in the elf chorus and left the ring on the edge of the volcano and walked away, that would be a really weird ending. And that’s because that’s a character ending to an event story. And they don’t match up. And I’ve actually proposed a talk a few years back called what we can learn about coding from writing fiction. And no conference in its right mind accepted it. And I can’t blame them, really. But the point that I was trying to make was that if you start code in one style, stay in that style. If you’re starting very functional FP code, don’t switch to procedural stateful code halfway through the class. If you’ve got a read, update, and delete method on your class, you’re missing the create method. And everyone is going to expect it to be there. And so, you need to put that in there. And it seems obvious once somebody says, “Hey, you started this API. You need to finish this API.” But all it is, is an extension of the principle of least surprise. And that is that I’ve started telling you one type of story in this code file. At the end of the code file, I’m going to expect you to expect the ending to end the right way. AVDI:  Makes sense. CHUCK:  I really like that. I kind of want to change tactics a little bit and talk about one other thing that I used my creative pursuits for, and that is that sometimes I don’t feel like sitting down and writing code. I know. You’re all shocked, right? AVDI:  [Chuckles] CHUCK:  This dude is human, too. Okay. SARON:  [Chuckles] CHUCK:  So, sometimes I just don’t. I know I want to get the work done and I know that I’ll enjoy the process of getting the work done. But just getting started is hard. And so, a lot of times I will do these other things. And so, I’ll go work on the car for a half hour if it needs it. DAVID:  [Chuckles] CHUCK:  Or I’ll sit down and I’ll write a short story for a half hour or an hour. Or I’ll write the next section in a story that I’m working on. Or I’ll just sit down and doodle on some paper. And a lot of times that gets me through whatever it is that’s putting that wall up and engages the different pieces of my brain that I need to start working on the code. And so, then I can start poking at the code and pretty soon I’m fully engaged in writing code. Do you guys experience anything like that? SARON:  Yeah. For me, most of my coding these days is for the Code Newbie website. And so, I’m doing the mockups and the design in the frontend and the backend and all that. And my creative outlet when I don’t want to just make a new feature directly is I’ll spend some time thinking about the design or I’ll spend some time thinking about the colors. Or I’ll spend some time writing a blogpost for the website and being involved and touching on the product and focusing way more on things that are more creative until I get in the right rhythm. And then I’m like, “Okay. Let’s go and actually code now.” DAVID:  There’s a blogpost that I’ll have to search the interwebs for. If I can find it, I’ll link it in the show notes. But procrastination actually in type A people, we still procrastinate. I’m actually, believe it or not, a very type A person. I come across as very type B but I’m actually quite type A. And type A people procrastinate just as bad as type B. And when I say type A, type B, I’m talking about from the 60s, 70s, type A you’re the highly organized and tightly wound and type B you’re the laid back kind of people. And type A people procrastinate by doing other things. And so, I always love it when somebody says, “Yeah, I’m supposed to be working on my thesis. That’s why I’m mowing the lawn.” Or even better, “That’s why I’m changing the sparkplugs on the lawnmower.” It’s like, “I need to get some work done. Where are those yaks? I need to shave all of the yaks because I don’t want to work on this other thing.” [Laughter] DAVID:  And there’s a hack that you can use, which is that if you need to work on a thing and you’re avoiding it, find something else that you want to avoid even more. [Laughter] SARON:  I like that. CHUCK:  And then avoid them both. DAVID:  Yeah. I need to clean my house. Ugh, I don’t want to clean my house. I guess I’ll write my thesis instead. [Laughter] AVDI:  The said thing is I’d probably pick cleaning my house. [Laughter] DAVID:  Well, you need to pick something that is, housecleaning is terrifying to me. I don’t know if any of you have seen my house. But there are game trails. I am one step short of going on hoarders honestly. [Laughter] DAVID:  And it’s also on my mind because we recently just shoveled everything out of my office. And it’s actually kind of clean in here, which is really freaking me out, man. CHUCK:  I’m going to have to come see that. I’ve never seen it like that. DAVID:  It’s pretty amazing. The carpet in here is white. I didn’t know that. CHUCK:  You have carpet in there? DAVID:  I have carpet, yeah. [Chuckles] DAVID:  So, I guess it’s my duty to ask the really weird elephant in the room question. So, I have an elephant in the room question. SARON:  Go for it. DAVID:  How do you increase creativity? Can you work on your creativity? CHUCK:  I can give you an opinion. It’s not based in anything other than my own experience. But it seems like I have to find the things that amp up my creativity and then practice those or do those. And so, even on the code level, sometimes it’s Exercism.io type things. But sometimes, I just don’t feel like doing that either. And so, I’ll go out, because I want to do something that has a purpose to it. So, I’ll go build some tiny, little website that just does something simple but it feels like it has a purpose to it. But I have to figure out what those things are that make me creative or make me want to be creative. And I think it’s a game of engagement. I don’t think it’s necessarily a game of you have a certain quantity of creativity that you can either use up or fill up. DAVID:  Mmhmm. CHUCK:  And so for me, it’s a game of, “Okay, what’s interesting right now?” DAVID:  Mmhmm. CHUCK:  And then doing that or doing something related to that. All the time in the background then trying to figure out what I need to spend some of the creativity on. DAVID:  Mmhmm. SARON:  Well, that makes me wonder. What is creativity? If you increase your creativity… DAVID:  Ooh. SARON:  What does it mean to have less creativity? DAVID:  Well, if you have 7.2 creativity… [Laughter] DAVID:  And then at the end of the day you have 6.9 creativity, obviously you have less creativity now. [Laughter] SARON:  Yeah, but I don’t know. It always bothered me when people said, “You know, I’m not creative,” or, “I am creative.” I just don’t really know what that means. Is it just the ability to create a thing? Because I think anyone can create a thing. Is it creating a thing that causes me to be happy or excited? Because I feel like everyone can do that, too. So, when you rate yourself and say, “I’m not creative,” or “I’m very creative,” what exactly are you talking about? AVDI:  Yeah, I have a hard time with that, because I’ve been quiet for most of this episode because I don’t really think I am that creative. [Laughter] AVDI:  There’s that annoying, yeah, that annoying thing. [Sighs] DAVID:  No, I’m laughing at you for having said that. AVDI:  Yeah. Yeah, I know. I know. SARON:  [Laughs] Just to be [inaudible]. CHUCK:  Well, I think a lot of people when they say, “I’m not creative,” what they mean is that, “I don’t participate in the things that I see other people doing.” It’s a self-comparison thing. AVDI:  And that’s just it. I don’t, unlike everyone else on this show [chuckles] I don’t draw. And my guitar is too rusty, not rusty [chuckles], is too dusty for me to claim that I play anymore. You know, when I’m not working I’m hanging out with my family. And if I’m [chuckles] doing something fun to distract myself, it’s not drawing, making a painting, or something. It’s shooting aliens in Halo because I’m that fried. So, yeah I don’t have those easy to pick out creative pursuits that everybody else seems to have. DAVID:  Okay, so do you want something to reassure you a little bit, Avdi? AVDI:  Sure. DAVID:  Okay, number one: I haven’t picked up a pencil and drawn anything in a couple of years, other than doodles on napkins and that sort of thing. And number two, when my nephew moved out, ooh gosh, eight years ago he needed a guitar for guitar class. So, I gave him my guitar. And I haven’t been able to afford a new one. So, you at least have a guitar. I just have the dust. AVDI:  [Laughs] SARON:  At least you have one. DAVID:  Now, I consider myself a creative person. But I’m not creating Ruby Tapas every week. AVDI:  I feel like there are two different things that I think of when I think about creativity. There’s okay, so yeah, creating Ruby Tapas. I do a lot of writing. A lot of that goes into Ruby Tapas episodes. I also write books. And I think of that as creative in the sense of creating a thing. It’s work. DAVID:  Yeah. AVDI:  It’s work and you create an artifact. But I don’t think of it as terribly creative in that more artsy sense because the way I think of it, usually the way I think of it is it’s an extremely straightforward exercise. Once I’ve decided what I want to talk about, it’s just basically proceeding straightforward from beginning to end. I need to get this idea across. Okay, start at the beginning, tell the story of the idea, and then end at the end. It’s like digging a ditch, almost. But I am creating something. So, that’s one idea of creation. And there I guess there’s another concept of creativity which is, I guess I would sum up as making something novel, making something that strikes people as novel. And I guess I do that occasionally in my work. I will maybe come up with a way of illustrating an idea, which strikes people as novel and I always feel really, really good about myself when I do. And a lot of that goes into the stuff that’s totally not coding. It’s business-related but totally isn’t coding. Coming up with a novel way of selling a product or of getting the word out about something or a novel collaboration or something like that. So, that’s the other side of, the other thing I think of when I think of creativity is novelty. CHUCK:  Yeah, so I want to kind of challenge your idea of creativity a little bit because I don’t think creativity is about the output. I think creativity is about the idea or concept or inspiration or things like that. And so, you’ve done I don’t even know how many hundreds of Ruby Tapas episodes. 200 and something, I think. But I look at that and I’m like, “Man, how does he come up with a new thing every week to talk about?” DAVID:  [Chuckles] CHUCK:  Or you know, some of the things that you point out in the Ruby Tapas episode that you probably accept as just something you take for granted, I watch it and I’m like, “I never would have even thought about doing something that way.” AVDI:  Right. CHUCK:  And then having those ideas kind of drives some other work. But I think there’s a difference between the creativity of the idea and the creativity of the concept, even the concept of the video or the concept you want to teach… AVDI:  Right. CHUCK:  And then the actual output. AVDI:  And that initial spark is more on I guess the novelty side, having the idea in the first place. DAVID:  Yeah. It sounds like we’re drawing a distinction. Is this fair? We’re drawing a distinction between productivity and invention. CHUCK:  Yes. I think so. AVDI:  Yeah, and I guess the subtlety there for me is that I see some of the work that I do that I guess people would view as creative, you know writing, I don’t view it as entirely creative in that novel sense. DAVID:  Mmhmm. AVDI:  Like I said, I view it more as digging a ditch than maybe some people would. But you know, somebody asked me about where do I get all my ideas a few weeks back. And I was like, “I don’t have ideas.” [Laughter] DAVID:  People usually ask me, why do I get all of my ideas? [Laughter] DAVID:  That’s actually… AVDI:  If I… DAVID:  That’s actually a Stephen King joke, sorry. [Laughter] AVDI:  If I was actually good at having ideas, I’d be a millionaire by now. But it’s interesting. Some of what we’ve been talking about is the idea of getting ideas for programming or being energized for ideas for programming from other creative outlets. I honestly feel like it’s almost the opposite. I get ideas from input. DAVID:  Mmhmm. AVDI:  And I actually feel like I there’s a limit to how much creative output I can have. And if I was putting more of it into other pursuits, artistic pursuits or something like that, I’d probably have less of it for programming or for teaching. But for me, ideas, it’s all about diverse inputs. It’s all about reading a lot, talking to people, having conversations at conferences, pairing with people and having interesting ideas from that. And also, a lot of it is from inputs that are very tangential to programming, like these days when I run I try to listen to interesting nonfiction books which often spark from very interesting ideas and they also get my mind off of programming and give me that subconscious time. For me, it’s all about diverse inputs. I think of it as cultivating good thoughts and making sure they get invited to all the best parties and meet other thoughts and then have an opportunity to hit it off and go somewhere private to get to know each other better. And that part of it, I think of as effectively is getting enough sleep, letting those ideas roll around in the subconscious either while I’m sleeping or doing something relaxing or otherwise mind-numbing. DAVID:  Are you saying your brain is like a hotel in New Jersey for ideas? [Laughter] CHUCK:  I want to point out, the way that you’re talking about this, I’m going to use another example of Matz when he created Ruby. I think that was a creative endeavor to create a new programming language. And it was influenced by a lot of other ideas. In fact, most movements these days are either taking part of another movement or idea that people like or rebelling against ideas that they don’t like. And so, Matz had plenty of both of those when he created Ruby. And sure, the process of writing C to build an interpreter that would interpret the programming language was kind of a digging a ditch kind of thing. It was a highly technical endeavor. But the ideas that went into it, a lot of them weren’t his own and really came into, “How do I want to implement this? How do I want to, how would these work together?” AVDI:  Yeah. CHUCK:  And so, that is creativity in my opinion. SARON:  Yeah. I totally agree. And I feel like that’s why I’ve never thought of creativity as inventing or as creating novel ideas, because I don’t really think that any idea is new. I think that everything is just a remix. And actually, there’s a web series called ‘Everything is a Remix’ and I really don’t like that web series, but I appreciate the point. [Laughter] SARON:  I appreciate the point, which is… DAVID:  It’s like a clip show for everything. SARON:  Yeah, pretty much. CHUCK:  [Laughter] SARON:  But yeah, I really think that creativity’s about taking a process or something that already exists and just changing it slightly or maybe in a huge way. But I think that to your point, Avdi, it really is just about having all these inputs, which is why I mostly read nonfiction and try to keep up with different spaces and different fields so I can have this bucket of all these different ideas and inputs that simmer. And then one day in the future, it’ll come together in some interesting format. And I think that’s really what creativity is about. AVDI:  I’ve always viewed it as the process of manufacturing serendipity. SARON:  Ooh, I like that. CHUCK:  I like that. SARON:  That’s awesome. DAVID:  So Avdi, I have a creativity detecting question for you, which is at the time of this recording you have 243 Ruby Tapas released. AVDI:  Yes. DAVID:  And you’re just farting them out without letter hindrance at this point. SARON:  [Laughs] Why is he farting them out? Why can’t he [do] other things? [Laughter] CHUCK: It’s Dave. Don’t ask. DAVID:  I would come up with a more elegant metaphor but I don’t do that sort of thing. [Laughter] DAVID:  So, here’s the question for you. AVDI:  Stop stifling Dave’s style of creativity, okay? [Laughter] CHUCK:  With Dave’s metaphors, everybody does that type of thing. [Laughter] DAVID:  I have two kinds of metaphors. The silent ones… anyway… [Laughter] AVDI:  Number one and number two. DAVID:  Number one and number two. There we go. Nicely done, sir. My question for you is this. Are you afraid of running out of ideas? AVDI:  You know, the funny thing is no, not really. DAVID:  I was confident the answer would be no. Why are you not afraid of running out of ideas? You’ve done 243 of these. You ought to be out of ideas by now. AVDI:  [Laughs] Because ideas aren’t like that, I guess. I think it’s a combination of knowing that ideas aren’t really like that. Because like Saron said, nothing’s really new under the sun. Everything we do, anything that an educator of programmers does is a remix. It’s framing an idea in a new way. Heck, half of the patterns and styles of programming, et cetera, that we have are basically ways of framing the same problems in new ways. And we’re never really going to run out of ways of framing things in new ways. And that’s fine, because I think a lot of human learning and creativity is driven not by how objectively new something is. It’s by novelty. It’s by the fact that something new sparks our brain. And it doesn’t really matter so much what it is as the fact that it’s new to us that gets the old engine running. DAVID:  Yeah. AVDI:  So, there are infinite ways of restating an idea or looking at it from a new way. And it’s also the knowledge that the field that I’ve given myself is huge. Ruby itself is a big language. Then there’s patterns and there’s refactoring and there’s testing. And it’s just endless. DAVID:  I have a friend who writes a business blog. And he and I went to lunch and he was telling me that he’s terrified of running out of ideas. And he has this list of ten really good blog post ideas that he guards jealously in case he ever wakes up with writer’s block. And I let him have it with both barrels. I turned on him and I said, “Your next ten blog posts need to be those ten ideas. Get your best ideas out, because until you get rid of the ideas that you have in your head, you can’t have new ones that are any good.” So, I’m one of those people that does consider himself to be very creative. And I’m more and more convinced that whether you consider yourself creative or not is BS. It’s just a label that you stick on yourself. And it’s just a story that you tell yourself. And at the end of the day, you’re releasing a lot more episodes of anything than I am. And you’re not creative and I am. So, what does that tell us about creativity? It tells us nothing about creativity. Terry Pratchett once famously said, “There’s no such thing as writer’s block, only lazy writers.” [Laughter] AVDI:  Ooh, burn. SARON:  Nice. DAVID:  Okay. And my favorite writing quote is from W. Somerset Maugham who said, “I write only when inspiration strikes. Fortunately it strikes every morning at nine o’clock sharp.” [Chuckles] DAVID:  And the whole point of NaNoWriMo, we’re coming up on November which is National Novel Writing Month, is to sit down and crank out 2500 or 2000 words a day for 30 days straight. And generally what people find, you hear this experience of people who have won NaNoWriMo that the first week, all they did was crank out 14000 words of dreck, just random drivel. And then the ideas started coming. And so, my point of this is if you don’t think you’re creative, it might be because the ideas in your head are cramped and you’re not doing anything with them. And so, get them out of your head so that you can have new ideas. Take your best ideas and get rid of them. Get them out into the world. Get them out of your head. And that makes room for new ideas. AVDI:  Yeah, that’s a really good point. CHUCK:  I also want to just go ahead with one other thing. And that is that I know a lot of people stifle their creativity because they’re afraid that other people won’t like the output. DAVID:  Right. CHUCK:  And you know what? Crank it out. And then if it’s crap, throw it away. DAVID:  Yeah. CHUCK:  But at least then, you’re moving things through and processing these new ideas and making new connections. And eventually you’ll come up with something where you’re actually proud of it. Oh, gee, that’s pretty good. I think the point here is that just do it. AVDI:  It’s incredibly easy to underestimate the amount of clearing the pipes that needs to be done, if you either haven’t done something before or haven’t done it in a long time. There can be days or weeks sometimes worth of pipe clearing before the real ideas start to come. CHUCK:  That’s something that I have been experiencing with Rails clips. When I was doing Teach Me to Code, I’d just crank out a video in an hour. And I was like, “Oh, okay.” But I came back and I started putting these videos together. And now, yeah I have to, it’s been a grind to get the first few videos out because I’m A, out of practice. B, I think I have a better idea of what kind of quality I want to put out. But C, yeah I’ve got these videos that I want to make, these ideas that I want to put out. And I think I have to clear the pipes and grease the works a little bit before I can really have the kind of flow that I had when I was doing it before. SARON:  I think it’s just as important to put your bad idea out there, too. Because especially for me, design is really hard, and I’ll have an idea in my head and I really hate it. And I think it looks like crap and it feels like crap. But as soon as I actually mock it up and create it in Photoshop, I’m one step closer to seeing why I didn’t like it and I notice so many more things that I just couldn’t see when it was just an idea in my head. DAVID:  Yeah. SARON:  And then from there, I can say, “Oh, well this color’s a bit off,” or, “There’s not enough contrast.” And I can talk about it more intelligently and then I can work towards fixing it. And I think another really important part of being creative or trying to be more creative is just studying other people that you like. So, whenever I’m designing anything the first thing I’ll do is I’ll just look at a bunch of really great examples. And I’ll talk out loud and I’ll say, “This is why I like this website,” or, “This is why I hate this website,” and, “This is what works for me about these colors and this is what is terrible about this layout.” And then I jot down notes and say, “These are the elements that I like,” and then I try to use that to incorporate my first draft which is always terrible. And then from there, I build. So, those are the two things I think are really important. DAVID:  So, I just made a very creative mental connection here. SARON:  Uh oh. DAVID:  Taking your ideas and getting them out there and learning from them and adapting and getting new ideas and going forward, is the agile way of developing ideas and thinking and planning. Taking your favorite idea and sitting on it until it’s perfect is waterfall for creativity. SARON:  [Laughs] That’s true. Yeah. AVDI:  Robert Heinlein’s famous rules of writing start with number one, you must write. DAVID:  Yes. AVDI:  Number two, you must sell what you write. In other words, get it out there. DAVID:  Yeah. The book that I mentioned earlier, Dorothea Brande’s ‘Becoming a Writer’, her first rule is if you want to be a writer, get up and start writing for an hour every single day. Lots of people want to have written. They want to have sold a novel. But if you don’t want to sit at a computer and actually do the act of writing, you are not a writer. And you’re done. You can put this book down. You don’t have to read the rest of it. Because if you don’t want to do writing, you’re not a writer and you’re not ever going to be. CHUCK:  So, one other question I have about all of this is, are the ideas… because I think I understand this but I know I’m going to get it wrong. But it seems like ideas and concepts and that kind of thing is more right brain. And the execution details and how we’re going to implement it is more left brain. So, does creativity mostly come out of the right brain or is there some left brain mixed in? Or did I totally just say that all of that totally backward and wrong? DAVID:  So, I gave a talk at Mountain West a couple of years ago where I started out by pointing out that, I asked the audience, “How many of you understand that left brain versus right brain is bunk?” and all the hands went up. And I said, “Okay, you guys are the problem.” [Laughter] DAVID:  And I won’t go into a rehash of that talk. But again, we’re getting into this notion of invention versus productivity. And if an invention, Saron mentioned that everything’s just kind of a clip show, that everything’s a remix, and the right side of the brain generally focuses itself with broadening of focus and integration and synthesis of ideas, and the left brain tends to focus itself on narrowing of focus, elimination of extraneous context and isolation of facts. And I’m just going to skip the long rambly story, why not, and just jump right to the point which is that every interesting endeavor that humans do from working a math problem or a logic puzzle all the way up to painting a picture, we’ve put people in MRIs and studied them while doing this. And it turns out that it requires full engagement from both halves of the brain at the same time. So, put that in your pipe and smoke it. [Chuckles] DAVID:  Right? When you’re writing software and you’re really in the zone and you’re like, “Man, we’re going to do this thing,” you’re figuring out how to get Nokogiri to parse a document and you’re dealing with the XML, da-da-da-da, and you’re isolating context and you’re coming down and you’ve got to make sure that this method is decoupled. But at the same time, you’ve got this entire application architecture and the problem that it’s going to solve in the world. And it’s all floating in your head at the same time. And you have to have both of those going at the same time. AVDI:  Makes sense. DAVID:  Yeah. And it’s true of writing and painting. You think that’s very creative right brain stuff. You got this cool story idea you want to get on the page. But you have to write it in proper grammar. And that requires isolating context and making sure that you have verb and subject agreement, or if you’re painting that you’ve got the right color and the brush stroke is exactly the right size and shape on the page, on the canvas. I took a long time to skip the story and jump right to the point, didn’t I? [Chuckles] CHUCK:  Yeah, but it is kind of engaging the part of my brain where it’s like, “Oh, new idea, new connection,” and then thinking about what the implications are. And I think that’s a lot of where some of the creativity that I get comes from, too. So for example, I was watching a Ruby Tapas the other day and Avdi was talking about default parameters in Ruby. And he put yield in as the default parameter. And my mind kind of went [gasps]. [Laughter] CHUCK:  And then it was like, “Oh, I bet you could do this. And I bet you could do this other thing. And I wonder if this would work?” You know, and I think that’s just as valid a form of creativity as anything else. DAVID:  Absolutely. CHUCK:  And I like the idea that Avdi brought up earlier in that if I fill my head with a bunch of good ideas, and then it starts drawing the connections, then I’m coming up with a lot of better ideas. AVDI:  It’s frustrating though. It’s frustrating for me because I always want to go after something head on. I want to just make a plan and execute. And it’s just not something you can do for ideas. You have to sneak up on them while whistling nonchalantly pretending that you aren’t trying to sneak up on them. DAVID:  We got known knowns and known unknowns. And then we’ve got unknown knowns. Yeah. [Laughter] CHUCK:  What kind of gnomes? [Laughter] DAVID:  Oh, that’s great. I would love to watch [inaudible]. AVDI:  Okay, this just went Terry Pratchett. [Laughter] DAVID:  Yeah, I would love to watch Donald Rumsfeld saying we got known gnomes and unknown gnomes. [Laughter] AVDI:  The new threat. DAVID:  Yes. AVDI:  Gnomes. CHUCK:  And gnome knowns. SARON:  So, do you guys think that everyone should try to be creative, especially as a programmer? DAVID:  Yes. CHUCK:  Absolutely. DAVID:  I think everyone should be hammered into the same mold. [Laughter] CHUCK:  Well [chuckles] so, what I’m thinking here is that I think we all have different, as Avdi put it, different inputs. And I think we all have different experience, which is essentially past inputs. And so, I think people should take advantage of the opportunity to learn what works and doesn’t work for them and to explore what the limits are of what they can come up with. DAVID:  Yeah. CHUCK:  But yeah, so what I’m saying is that given where we are and who we are and what we take in, what we’re going to come it, our creativity so to speak, is going to be different from person to person. And I think that’s why the conversations that we have about bringing in diverse groups is so important. I don’t know that everyone’s going to buy into, at least personally or to themselves, they’re not going to completely buy into, “Well, those groups are underprivileged and so they should have a better shot.” I think if we couch it in terms of, “Hey, they bring a different set of stimulus or self-stimulus,” whatever, inputs, experience, that means that they bring a different brand of creativity that’s going to solve our problems in new and novel ways, not just for the novelty but because some of those ways are actually going to be better. If we’re having that conversation, I think we can get a lot more people on board with those conversations because there’s a clear benefit to the community, to our businesses, and to each other beyond the fairness arguments and what’s right arguments. Anyway, so yeah and if you don’t feel like you’re creative, I think you need to look at what you are able to give the world and give your employer, and recognize some of the areas where maybe you are creative. And then see if there are ways where you can push the boundaries a little bit and figure out maybe something new and novel that the rest of us are going to benefit from as well. SARON:  I think the problem is that when you hear the word creative, I think people also assume artistic. CHUCK:  Yes. SARON:  And even from this conversation, that’s not really what it is. It’s more than that. So, if you don’t see yourself as being artistic, you don’t play a musical instrument, you don’t draw, and you don’t really care to, how do you become creative? How do you work on that? DAVID:  I need another hour to answer that question. [Laughter] CHUCK:  Can you boil it down? I don’t know if I’ve got an answer to that. DAVID:  I have, can I throw out a question for the listeners to think about for a few minutes? CHUCK:  Sure. DAVID:  This is actually a creativity building exercise. So, if you’ve got a piece of paper handy, grab one, and a pencil. And I just want you to write down, imagine you’ve got a paperclip. Now, write down all the things that you can do with that paperclip. Okay, back to the show. We’ll come back to the paperclip thing here in a minute. SARON:  I wrote down my two things that I can do with the paperclip. DAVID:  Okay, so you have two things that you can do with a paperclip. SARON:  Yes. DAVID:  You can clip together paper. SARON:  I did not have that one. DAVID:  Oh, okay. Alright. SARON:  That was a good one, though. [Laughter] DAVID:  Yeah. CHUCK:  That wasn’t creative of you. [Laughter] DAVID:  You would be surprised how many people overlook that one when you ask them to come up with creative, because they immediately think, “Oh, I must come up with rebellious uses for a paperclip.” SARON:  Yes. DAVID:  Saron, what were your two things? SARON:  The first one was bend it. And the second was eat it. DAVID:  Oh, okay. I’m sorry. Things that you can make. You’re right. My bad. I said things that you can do with a paperclip. What I should have said is things that you can make with a paperclip. SARON:  Ah, okay I need a second chance. DAVID:  Alright. SARON:  Okay, start over. DAVID:  The point of this exercise is that if you give people 60 seconds to come up with things that they can make out of a paperclip, most people will struggle to come up with ten things. I did this a couple of months ago at a user group meeting and I had probably 20 people in the room. And I would say the average was five. Most people had five things. A couple of people had three. One guy had 12 things. And the point of this exercise, well I don’t want to put Saron too much on the spot. But… SARON:  Go for it. DAVID:  Roughly how many ideas have you come up with, Saron? SARON:  I came up with three. And then I could have kept going but I was just kind of, you know, not really, I wasn’t happy with my other ideas. DAVID:  Yeah. Eh. SARON:  They’re all just shapes. You know, I was going to say, diamond, square, circle. And I was like, “Those are lame. I wouldn’t want to make those.” DAVID:  Ah, okay. Okay, so this, I was hoping you would say something even better like, “Then I decided, well I was going to do a podcast today. So, why not?” [Laughter] DAVID:  That’s the ADD answer, which is I’m still writing my list of things over here because, shiny thing. [Chuckles] DAVID:  Okay. So, here’s the interesting thing. When we’re given something, we tend to focus on the shape of that creation. And everybody knows you can bend a paperclip. And so, when you ask people, what can you do with a paperclip? What can you make out of a paperclip? They will invariably come up with a list of things that involve bending the paperclip. So, things that you can do with a paperclip. You can melt them down and make earrings. You can actually bend them into earrings and just stick them in your ears. I’ve actually seen people do that, although it was high school at the time. [Laughter] DAVID:  But you can bend them down and cast them into things. You can take 10,000 of them and fill sandbags with them. You can, if you get away from the function of a paperclip as a piece of steel wire and get into its constituent elements which are, it’s a bunch of iron, right? You could make an electromagnet out of a paperclip, or out of a bunch of them. A lot of people will come up with you can make chains out of them, right? Because we’ve all done that. You find a coworker you don’t like and you chain all of their paperclips together. [Laughter] DAVID:  Because it’s fun to do and when you’re done it’s their problem, right? CHUCK:  That explains a lot, Dave. [Laughter] DAVID:  That explains your paperclip jar. CHUCK:  We’re going to talk after the show. DAVID:  Yeah, I know, I know. But as soon as you start talking about melting things down or running an electric current through them and you go, “Oh, wait a minute,” yeah paperclips are just made out of steel. Anything you can do with steel, you can do with paperclips if you have enough of them. You can build cars out of them. Okay? And now, you’re out of the silo. You’re in this thinking silo of just bend the thing. Even bending the thing is a siloed thought, because we think about, well you can bend it into a triangle. No, no, no, no, no. You can bend it into a scale model of a Dorito used for reference in a sales talk. SARON:  Ooh. DAVID:  Okay? SARON:  Yeah, I like that one a lot. Yeah. DAVID:  Can you see, that’s a completely different thing that bending it into a triangle? And the point of this exercise is to demonstrate that if you take the form and function of a thing that you are given and consider it at the subatomic level, if I melted you down and shredded you and recycled you, if I broke you up for parts, what could I build out of your parts? This then translates. And you can take programmers and you can send them off and they will, I’ve seen actually a programmer take this and then go back to a code library and for the first time, this programmer decided to open up the source code of the library that he was using and read it. And I’m like, “Why are you doing that?” And he said, “Well, I want to see what this is made of.” And he was a younger programmer and he found an interesting way of looping over collections inside this library. And he now uses that in his code. And he hadn’t thought of doing that until he thought about tearing apart a paperclip. SARON:  I like that so much. And I feel like, I think that I went through that this week actually when I was working single sign-on. And I was setting up something for Code Newbie. And when I was doing that, I felt like I was very stuck on finding a gem or a solution that already existed because there was a way to perform this function already. There was a way to do it. And I was very stuck on finding the blogpost or the article or the whatever that told me exactly how to do it. And that just wasn’t working. So I said, “Okay. I need to actually break this down into its individual pieces and understand what each piece is doing and then reuse what I already know to connect those pieces.” And so, breaking it down and getting over the, “This is how it’s supposed to be,” and more into, “Well, these are the individual pieces and this is how each unit works,” and now I can reorganize and move the units to do what I want it to do. And that was a huge… DAVID:  Yes. SARON:  Just conceptual breakthrough. DAVID:  Yes. It’s all about rules. You’ve been handed a paperclip or some source code and implicitly we assume there are some rules that come along with this that must be followed. SARON:  Yes. DAVID:  Capital M, capital B, capital F. And maybe even with a trademark at the end, Must Be Followed TM. And gosh, a big part of creativity, to quote Morpheus, is to recognize that some of these rules can be bent, others broken. SARON:  Yeah, and what you were talking about earlier, that’s called functional fixedness in psychology. DAVID:  Yes. SARON:  Yeah and there’s a very famous psychological experiment that happened where the researches gave a bunch of people, they gave them a box full of tacks. It was a little cardboard box full of tacks and they gave people a candle. And they said find a way to pretty much attach this candle onto the wall. And a box of matches as well. And so, people tried to melt the wax and stick the candle with the melted wax onto the wall. It didn’t work. They tried putting the actual tacks through the candle which obviously didn’t work. And then finally, they for a different group of people they removed the tacks out of the box and put them next to it. And all of a sudden, people figured out that, oh, I can put the candle on that box and then use a thumbtack to tack the box against the wall. And now, [inaudible]. DAVID:  [Chuckles] SARON:  And you know, eventually both groups got to that point. But the group that got there the fastest were the people who saw the thumbtacks out of the box, because they said, “Oh, this isn’t just for holding thumbtacks. I can do other things with this.” DAVID:  Yeah. Avdi mentioned earlier that you can’t just have ideas. You can’t just go have ideas really hard. AVDI:  I’m going to think so hard. [Grunts] DAVID:  Yeah. Yeah, exactly. [Laughter] SARON:  Those are also the noises I make when I have ideas. DAVID:  Yes, yes. [Laughter] DAVID:  I’ve been so good. I have removed poop jokes. CHUCK:  He really has. DAVID:  The careful listener will note that for the past hundred episodes or so, I have not done poop jokes on the show. And I apologize, oh and I apologize for this phrasing, but they’re leaking out. [Laughter] DAVID:  I apologize. I’ll be better by next episode. That was actually a conscious choice, guys. I decided to remove poop jokes from my repertoire while I was on the show. AVDI:  And then we just wouldn’t leave it alone, would we? CHUCK:  No. DAVID:  Yeah, yeah exactly. [Laughter] DAVID:  Yeah so, I can’t remember what I was going to say. Oh no, this idea that we’re going to go have an idea really hard and then we all made our constipation noise. And the point that I was going to raise is that Dan Pink in the book ‘Drive’, I don’t know if he does it in the book ‘Drive’ but he gave an interview where he was talking about ‘Drive’ and afterwards there was a Q&A. And somebody asked him, and he talked about this matchbook candle experiment, and he added a really interesting element. He said there was a follow-up study where they did the same study and a few people figured it out. They did another study where they gave people a time limit and they gave another group of people a financial reward, like $50, $500 if you can stick the candle to the wall. And the tighter the time limit, and the greater the financial reward, the fewer people came up with the solution. When you put a constraint, when you say I’m going to think really hard, you are locking yourself into left brain. You lock yourself hard into functional fixedness where you just say, “I’ve got to use what I’ve got. I’ve got to get this done. I’ve got to get this shipped. Don’t bother me with creative ideas. I’ve got to get this working.” And that’s when productivity goes bad. Sometimes, you got to ship, right? Real artists ship. But you also, sometimes real artists have to play. And I think that’s the lesson that we can take for functional fixedness, is that recognize it. If it’s two in the morning and you’re still at work because the deadline is in six hours and your stuff isn’t working and you’ve got to get it shipped, now is maybe not the time for creativity. Maybe now is the time for knuckling down and just getting the code cranked out and out the door. But if your code isn’t finished, that’s the time for functional fixedness. Finish your code. But if your code doesn’t work because it has a fundamental flaw, staying up all night and thinking really hard about it is not the way to solve this problem. You need to back off and relax and go take a nap and go play ping pong and let your brain sneak up on the problem. Because the harder you think about it, the more functionally fixed you’re going to be. SARON:  So, does that mean that being creative under any kind of stress is generally not good or is there good stress to be under when you’re trying to be creative? I don’t know if you know the answer to this. DAVID:  I don’t know the answer to that. I suspect that the answer is yes. [Laughter] SARON:  Nice. DAVID:  Right? There are times when… I love doing coding exercises. Global Day of Coderetreat, there is a rock hard time constraint. You get 30 minutes. And then you have to throw your program away. And then they change the parameters to the problem and you get another 30 minutes. And then you have to throw your code away. And that was so hard for me at the beginning of the day. I’m like, “No! No, I wrote this code. No, don’t throw it away. I wrote this code.” And by the end of the day, I was able to just let the code go. And it was really cool, because by the end of the day I no longer cared about the time constraint. I was able to escape functional fixedness while under a time constraint because in eight hours I had done 16 iterations, actually it’s more like 8 or 10. There’s talking in between. But I had thrown away code so many times during that day that I no longer worried about finishing the code under the time constraint. And I was able to relax and be creative under that stress. And so, I wouldn’t say that I would want to be under stress while being creative because I think it blocks up the pipes. But the practice every once in a while of forcing yourself to be creative while under stress can be a useful skill as well. AVDI:  I’m just wondering here, how much more creative MacGyver would have been if he hadn’t always had a ticking bomb. DAVID:  Yeah, seriously. The man would have resurrected the space program. Of course, we still had a space program back then. [Laughter] CHUCK:  Or how much less creative he would have been if he hadn’t had all the options with his pocket knife, or more creative. DAVID:  Yeah, that’s… CHUCK:  If he hadn’t been reliant upon it, I don’t know. DAVID:  That’s a good point. There’s this tradeoff between invention and productivity. And I tend to lean way hard on the invention side to the point that productivity gets neglected. If I don’t have a ticking time bomb, I’m not going to be creative. I’m not going to ship anything, because there’s a whole lot of Mass Effect that hasn’t been played in my house. [Laughter] DAVID:  And it needs to get, it needs getting played. AVDI:  Ain’t nobody else going to do it. DAVID:  That’s right. That’s right. These collectors aren’t going to wipe themselves out. [Laughter] SARON:  I would say, one thing that I do want to say as far as the putting yourself under stress thing, I find that time limits work really well for me to get that first idea out, because I find that if I know I have as long as I want to take to draw that first cartoon or write that first post, then I just spend a lot of time thinking about it. And I spend a lot of time going through it in my head. I never get it actually down. But the moment I say, “You have one hour. You’re going to write this post. You’re going to post it,” then that gets me started. DAVID:  Yeah. SARON:  And once I start, I’m usually okay. DAVID:  I have a follow-on thought to that and that is, believe it or not, here in 2014 there are still a lot of programmers, all programmers were this way back in 1997 but there are still a lot of you out there who don’t want to contribute to open source because you are ashamed of your code and you’re embarrassed to let other people look. And so you say, “Well let me hang on to it. Let me polish this.” No. Go find something in your library that you have been sitting on and publish it. Just push it up to GitHub and be done. Don’t get yourself sued. Don’t push up company non-disclosable stuff. But you’ve got a library that you want to look prettier before you push it up. And that’s not how open source works. Push up the code you have in the state that it is and then go back and clean it up out of embarrassment, or let other people take a look at it and give you feedback. But do it now. Do it right now. Shut off the pod-, well wait for the end of the podcast and then go do it. SARON:  [Chuckles] DAVID:  If anybody does this, ping me on Twitter and let me know. I want to see your project. I would love to hear about this. CHUCK:  I think it’s important too, because again it gives us a new set of inputs. We get reviews on this stuff. I just keep coming back. So, you have more ideas, more stuff in your head that you can draw on the next time that you are trying to solve a problem. DAVID:  Mmhmm. CHUCK:  Or come up with a creative answer. Alright, I don’t want this to end. It’s so good. But I think we need to… DAVID:  It’s the more ideas we have, the more ideas we’re going to have. CHUCK:  Yes. SARON:  Very true. DAVID:  We need to nip this in the butt, guys. CHUCK:  Alright. Let’s do picks then. DAVID:  [Laughs] CHUCK:  David, you hinted that you have some picks and some blame to pass around. DAVID:  I do. I do. I pinged Avdi on Friday. So, a little bit of background. I’m taking a month off to finish the Job Replacement Guide. I’m hoping I can get it finished. CHUCK:  Yay. DAVID:  In the next month. And I started by pinging Avdi and saying, “Is taking a month off to finish a book a good idea?” And he laughed and said, “That’s the only way I’ve ever been able to finish a book.” And I’m like, “Okay, I’m on the right track here.” And what I didn’t expect Avdi to do was to completely torpedo my brain. AVDI:  [Laughs] DAVID:  So subversively. We got talking and I mentioned to him that Mass Effect is my favorite game of all time. In fact, on the top ten list of games, Mass Effect takes up three slots. Mass Effect 1 gets a slot. Mass Effect 2 gets a slot, and okay, the first 98% of Mass Effect 3. [Laughter] DAVID:  Everybody that’s played Mass Effect 3 knows that the ending is awful. AVDI:  Yes. DAVID:  It’s absolutely unforgivable. And it never occurred to me, I’ve actually had, I had a professional writer, Dan Willis, I love him to death, actually tell me to my face, “Play Mass Effect until you get to the part where you beam up to the ship and then shut the game off and tell yourself you win and never finish the game or you’ll be unhappy.” That was honestly his recommended alternate ending is just shut the game off at that point. And I had completely forgotten about the whole concept of fan culture and rabid fan culture. And the thing about Mass Effect is that there’s this huge fan community and, you know when Star Trek screws up a script the fans can’t let it lie? They never say that was just lazy writing or that was just a bad script. They always come up with an excuse. They come up with what’s called head cannon which is something that’s not canonical except in my own head, to make it work. You can’t beam through shield in Star Trek but when they rescue Scotty they have to beam him through the shields or the script doesn’t work. So, in this one time they beam through, they transport through shields. And they never explain how they do it or why. But if you go to fan sites, there is somebody ready to explain how and why it happens. And Avdi pointed me to a fan generated theory called the Indoctrination Theory. And all I will say about this is that the fans have gone back to Mass Effect 3 and said, “Let’s accept that the ending really is the ending. How do we fix the way we think about the entire game in order to make the ending work?” [Laughter] DAVID:  And they put forth this theory that the secret sub-story of Mass Effect 3 is that Shepard is being indoctrinated. He’s been around Reaper technology more than anybody else. And you know that the longer you’re around Reaper tech the more indoctrinated you become. And there is about a 20 minute video that puts forth a lot of really compelling alternate interpretations. Now, I’ve looked at their evidence. I’m going to tell you this upfront. There are so many flame wars on the forums. Don’t even mess with it. Don’t mess with it. Just go watch the Indoctrination Theory video. I’ve looked at some of the things that they claimed are evidence and it’s pretty clear that it’s just an oversight on the part of the animator. I genuinely think the writers did bad writing. And because the writers themselves came out and said, the two lead writers revealed after the game was released that they were fighting through the entire writing of the final episode, and that’s what wrecked the ending of the game. But the Indoctrination Theory actually makes the ending kind of fun. And this has torpedoed my brain so hard that it’s been a week and I have in my all of last weekend and through the evenings I have played through Mass Effect 1 and 2 and I’m about to start 3 just so that I can watch this head cannon story of Shepard being indoctrinated. Anyway, this is way too long a ramble about this. There are as many videos debunking the indoctrination theory as there are videos explaining it. And the bottom line is the ending of Mass Effect 3 is so awful that you got to make something up to make it palatable. And I like this indoctrination theory. It actually makes the ending kind of satisfying. It doesn’t make it great but it makes it satisfying. And that is the one thing that the ending really, really lacked. So, I’ll stop there. That’s my pick for today. CHUCK:  Alright. Avdi, what are your picks? Your rebuttal. [Laughter] AVDI:  No, no rebuttal. I’ll just start out by saying that if you’re wondering why people would go on and on this much about a video game, I don’t play a ton of video games. But if I were asked to list my favorite science fiction movie series, I’m being dead serious, I would probably include Mass Effect in that list, the whole series. It is one of the most compelling, I actually mostly watched somebody else play it through. I’ve played it myself less. But the writing, the dialog, the fact that everything you do in it while being fun and game-y is also very cinematic. It’s one of the most engrossing science fiction stories I’ve ever watched. It’s really good. DAVID:  I think when you and I were talking, when you and I were talking last week you actually said the phrase “my favorite science fiction movie is watching somebody else play Mass Effect”. AVDI: Yeah. I actually for weeks on end, I would go up and I would sit down and I would watch the Mass Effect Show and it was my favorite show on screen. DAVID:  [Chuckles] AVDI:  It was the only thing I wanted to watch. I wanted to see what was going to happen next. DAVID:  That’s awesome. AVDI:  Yeah, so okay, picks. I don’t think I’ve done a beer pick for a while. I just got a new one which I think is a relatively new brew from one of my beloved Pennsylvania craft breweries. It’s called Fourplay IPA. It’s from Stoudts Brewery which is always a confusing one to say because it sounds like a kind of beer but it’s S-T-O-U-D-T-S, Stoudts. And it’s just a really beautifully hopped IPA. I like IPAs but I’m picky about them. I don’t like the ones that are just monster hop. I don’t mind lots of hops but they need to have good flavor. They need to have a good aroma and stuff like that. This one, it’s called Fourplay IPA because it has four different kinds of hops and they’re very nicely mixed. I recommend it if you can find it. I’ll also pick an app that I’ve been using for a while. I like to stay at least a little bit informed about what are the current news events of the world. But I always have a hard time finding good sources for that, because I find most of the news sites out there are just bloated design and they’re covered in ads and the writing style in most news sites is, it’s very repetitive. Stories are: cite the headline, then embellish on the headline a little bit, and then re-cite the headline with a little bit more embellishment, et cetera, et cetera. And it’s difficult to just get the nut of what’s the story out of that. But for a while I’ve had an app installed on my phone called Circa, Circa News. And on the face of it, it’s just a really beautifully designed app for reading news. But the real power of it is that they’ve got an editorial team which basically takes, aggregates news from other sources and they write nutshell versions for this app that distill the story down to the essentials. And they’re not really removing information in my experience. It’s more that they’re just removing the repetition and the fluff that goes on in most news writing. And they also cite the sources for each story and you can follow stories. If there’s something particularly interesting you can follow it and it’ll update you as more information comes in. It will actually show you, “Here’s the part that was updated. Here’s the part that was added,” rather than you having to read the whole thing again. So, really well-executed. Circa News. And that’s it for me. CHUCK:  Very nice. DAVID:  I like how last year you could tell an awful headline because it began with “Doctors Hate Her”. You could tell that it led to a scam. And now all of the news sites are using three or four headline templates. AVDI:  Oh my god, yes. DAVID:  And the one that makes me the angriest is, “You won’t believe what happens next.” AVDI:  Ugh. I close my browser. That’s what happens next. DAVID:  That’s what happens next. SARON:  [Chuckles] DAVID:  Yes. I won’t find out what happens next. SARON:  Cool. So, I have some picks. So, the first one because Avdi reminded me when he did his beer pick, I’d like to do my first food pick. It’s also a very important in my life. Last week I bought my first pumpkin and I felt very American. I was born in Ethiopia so that actually means something. And I tweeted it and I said, “I bought my first pumpkin. This is so cool.” And everyone replied and said, “Oh, that’s really neat. Are you going to carve it?” I was like, “No, I’m not going to carve it. I’m going to eat it.” [Laughter] SARON:  So, I baked it and then I ate it. So, everyone should buy a pumpkin and eat it. AVDI:  Agreed. DAVID:  Wait, you can eat pumpkin? [Laughter] SARON:  [Chuckles] I cut it in half, and then I took the seeds out, and then I baked it for an hour. And then I sprinkled Chinese five-spice because I didn’t have any cinnamon, and honey, and walnuts. And then I just ate it with a spoon. It was amazing. AVDI:  Nice. DAVID:  Okay, I want to challenge your functional fixedness here a little bit, Saron. SARON:  Uh oh. AVDI:  [Laughs] DAVID:  Given a pumpkin and a knife and a candle, decorate your [inaudible]. [Laughter] CHUCK:  I think she just challenged everyone else’s functional fixedness. SARON:  Yeah. DAVID:  Yeah, exactly. Exactly. You can eat that? SARON:  Surprise, I know. It was crazy. I told my mom. [Inaudible] excited. AVDI:  Did you roast the seeds? SARON:  I did not roast. Okay, so this the thing, right? I have the seeds. I’m actually looking at them. They’re in a bowl. I knew that I could eat them too somehow but I didn’t know what to do so I just kept them in a bowl and I guess I should do something with that. AVDI:  Well, I don’t have it off the top of my head, but yeah totally look up how you roast them. I think you put stuff on them like salt or something. But they’re really, really good. SARON:  Okay. DAVID:  Cayenne. They’re really high in zinc. They’re good for you. SARON:  Nice. So, my second one, it relates to our conversation today. So, it’s a blogpost called ‘Fixed Mindset vs. Growth Mindset’. And it’s a really short read, but it’s a really good reminder of just the two different ways to think about your skills and your abilities. So, the fixed mindset says, “I am not creative. I am not a creative person.” And the growth mindset says, “I can learn to be creative.” And I feel like that’s really, really important. And it’s been really, really important for me as a programmer because I never, ever, ever, ever would have thought of myself as a programmer. And I had to internalize the idea of, “No, I can learn how to do this as a skill.” So, I feel like no matter what it is that you’re approaching or you’re trying to do, understanding the difference and zoning in and focusing on your growth mindset I think is really important. So, that’s my pick. The other one is really, really cool. It’s the Spinning RGB LED Ball II. And the link that I’m going to include is both a video of it and then it also teaches you how to build it. And it’s supposed to be really, really hard to do. But it’s this incredible thing. I’m not sure how to describe it. It’s like this wooden arc thing and it has these three lasers on these three axes and it spins and makes the most incredibly beautiful mind-blowing shapes and designs. And it’s just, oh my god, it’s absolutely incredible. I have no idea why you would have it other than to just get your friends to ooh and aah. But it’s awesome. So, I wanted you guys to check that out. And the last pick that I have is the Code Newbie Discourse page which I’m really excited about. And I’m sure that by the time this airs it will be launched. But I’ve been inspired by Parley for Ruby Rogues, so I’ve built a Discourse for the Code Newbie Podcast. And so, if you are interested in supporting code newbies or if you are a code newbie, I would love for you to get on and share some of your resources and stuff. So, those are my picks. CHUCK:  Very cool. I’ve got a couple of picks. Books. Big surprise, right? I always pick books. The first one is, I picked it a couple of weeks ago but I just want to reiterate it. It’s ‘Think and Grow Rich’ by Napoleon Hill. I’m actually tempted to start a study group for it if you’re interested in business and that kind of thing, because I thought it was really good. And the other pick I have is just exercise. Just get out and be active. I’ve been running and I love it. I just feel so good afterward and I’ve been feeling a lot better lately than I have for a while. Yeah, so those are my picks. We’ll wrap up the show. Thank you everyone for listening and we’ll catch you all next week.[A special thanks to Honeybadger.io for sponsoring Ruby Rogues. They do exception monitoring, uptime, and performance metrics and are an active part of the Ruby community.]**[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.]**[End of podcast]**

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.