RR Developer Environments
- Published on:
02:05 - Developer Environments 02:40 - Standing desks
- Health benefits
- Physical fitness
04:51 - Exercise balls
- Keeps core engaged
- Prevents slouching
06:29 - Uses for a Mac Pro
- Telepresence machine
- Main development machine
08:40 - Multiple monitors 11:25 - Background noise
15:42 - General noise 17:43 - Working from different environments
- Coffee shops
22:02 - Knowing what works for you and adapting your environment 23:18 - Office environments versus home environments 25:35 - Desks: cluttered/uncluttered 29:08 - Ergonomics
Posture and positions
35:46 - Software and programs that contribute to productivity
41:08 - Light
Screen brightness & keyboard backlighting
48:50 - Contrast/color themes
Molokai for Vim
Molokai for Emacs
JOSH: As everyone watches the Presidential Debates tonight and gets despondent over the state of national politics, I want you to contrast that with the terrible state of affairs here in San Francisco, where our huge political issue this week is the fact that one of the supervisors wants to ban public nudity to stop the old naked dudes from hanging out in the town square of Nicastro.
AVDI: Why is that a problem? [laughter]
DAVID: All I want to know is are they going to do anything about the roller-skating hat cocker on the Embarcadero?
[Hosting and bandwidth provided by The Blue Box Group. Check them out at bluebox.net]
[This episode is sponsored by JetBrains, makers of RubyMine. If you like having an IDE that provides great in line debugging tools, built in version control and intelligent code insight and refactorings, checkout RubyMine by going to jetbrains.com/ruby.]
[This podcast is sponsored by New Relic. To track and optimize your application performance, go to rubyrogues.com/newrelic.]
CHUCK: Hey everybody and welcome to episode 74 of the Ruby Rogues Podcast. This week on our panel we have Josh Susser.
JOSH: Hey, good morning everyone!
CHUCK: We have Avdi Grimm.
AVDI: Hey, this is Avdi, Head Chef at rubytapas.com.
CHUCK: We also have James Edward Gray.
JAMES: We have had complaints about our jokes, so I am not opening with a joke this time.
CHUCK: We also have David Brady.
DAVID: I just want to start with a warning, [unintelligible]
CHUCK: I am Charles Max Wood from devchat.tv. I am actually working on an introduction to CoffeeScript webinar or online training that I am going to be doing. You can get it at introtocoffeescript.eventbright.com. Alright, well so let’s get this started. So, we are going to be talking about our Development Environments.
JOSH: Do you mean IDEs? [laughter]
CHUCK: Yeah, we have already had that fight.
JAMES: It is more of a topical question like hookers and blow. You know, that kind of thing.
CHUCK: So, yeah, so we have a development environment. Are we talking about hardware or the software we use?
DAVID: I think the answer is “yes”.
CHUCK: The chair we sit in?
JOSH: It's full stack, starting at the carpet up.
JAMES: How many toys are on your desk, what do they do?
CHUCK: Ooh, this could be really fun.
DAVID: Actually, starting at the carpet up, I have a pair of foam cushion-y pads. My good gel pad hasn’t shown up yet because I now work in a standing desk.
JAMES: I do not work in a standing desk.
CHUCK: Why not James?
JOSH: I would like to work in a standing… That’s just, oh God! [laughter]
DAVID: Chuck, that’s just how he rolls. [laughter]
JAMES: Alright, so how come you don’t, Josh?
JOSH: I picked a bad week to give up coffee. [laughter]
CHUCK: So much for the jokes, right?
JOSH: Yeah, yeah thank you. I would like to work on a standing desk, I was actually at Pivotal office yesterday and saw that Sarah Mei has this really nice set up where, she has a standing desk and a tall chair so, you don’t have to swap between standing and sitting. You don’t have to do anything with adjusting the height of the desk. You can just pull the chair and sit down and be at the right. So, that’s really interesting.
JAMES: That’s kind of a bar stool kind of chair, almost?
JOSH: Yeah, although it is a very fancy chair, so.
JOSH: I think the only thing I could dislike about that setup is that I would need a very tall ball to sit on.
JAMES: What are the arguments for a standing desk? Why do people do it?
JOSH: What I have heard about it is that it is a little… it is not like completely conclusive about the health benefits of a standing desk, but there is definitely a high correlation between the amount of time you spend on your feet everyday and overall physical fitness. And you know, contrary wise the amount of time you spend sitting highly correlates with obesity. So, a lot of people are doing standing desks because it is better for their health. Definitely, some people with spinal issues do better standing than sitting in a chair all day.
CHUCK: I was gonna say, it seems like some of the stuff that I have read on it, it has more to do with the detriments of sitting as opposed to the benefits of standing. But I have seen stuff the other way too.
JOSH: So I know many people have probably seen, I used to have a photo on Twitter about me sitting on a ball at my desk and that’s really how I prefer. I like sitting on those big bouncy exercise balls because it keeps my core engaged and it is not like I am just sitting slouching on a chair all day.
AVDI: I was doing that for a while, I am not sure why I stopped. I think actually it was a little tiring.
JOSH: It is because it takes physical effort. That’s the whole point. I don’t wanna be a slouch all day.
CHUCK: There is a direct relation to the odds of your ball going flat and the number of kids you have. That’s what would happen around here so. [laughter]
AVDI: You have to get like the industrial strength kind that gyms use. Because we had the cheap kind and they pop pretty fast when you have kids around.
CHUCK: You get the kind that you can put a Bowie Knife in and it kind of bounces off, right?
AVDI: (laughs) Exactly.
JOSH: Yeah whatever you don’t get the Hippety Hop. [laughter]
CHUCK: So I have to say my wife, I think it was for Christmas and she got me a really nice chair from Office Max, I think she spent like 80 bucks on it.
CHUCK: (laughs) I really want a better chair, but I’ll take what I can get and she doesn’t listen to the show, so I am not in trouble. Yeah, but I did get yesterday…
JAMES: That is not entirely true Chuck; won’t I be meeting your wife next week?
CHUCK: I am sure I will get a way to get even James.
CHUCK: Anyway, I had my Mac Pro under my desk for quite a long time and I just got tired of crawling under there every time I had to get access to it, so I moved it up to the top of my desk and by doing so I lost access to a foot rest because I would put my feet up on it.
JAMES: This is an interesting question; who uses a Mac Pro anymore?
CHUCK: Dave ?
DAVID: I have one. I am actually Skyping from it; I use it as a telepresence machine so that I can work from my laptop. And I guess it’s a part of my work environment. Yeah, I’ve got an extra monitor with webcam and microphone and all the big cheese grater under the desk right now is handle telepresence.
CHUCK: Oh wow. So, that is interesting. I use it as my main development machine. And I have got three monitors on it, yeah and I am just sitting on my chair this that I ordered to replace my Mac Pro as where I put my feet.
JAMES: I am just a laptop guy these days. I am kind of over the desktop thing.
JOSH: I gave up the real state, you know the screen size, I love the 27 inch iMac that I have. It is gorgeous and I love being what I have just tons of source codes and Windows all over the place. I have a MacBook Air 11 as well and I liked it for a while until I started using it for core development, then I realized that I can’t do the webpage design as well in it. It is too tiny.
CHUCK: Yeah, that it makes sense. I almost wound up buying a 27 inch iMac when I was having issues with the Mac Pro due to the power settings and I don’t know if any of you followed that. But anyway, so yeah, I have a funny feeling that my next dev machine would probably be an iMac.
JOSH: They are really great especially if you get SSD option in them. They are just blindingly fast.
DAVID: Yeah, I’d get the SSD and I’d upgrade the RAM and I probably get a thunderbolt monitor or something to go off to the sides so I have two or three monitors that I can... Because I like having multiple monitors just so I can divide up the different things that are going on. So, I can do dev on one screen, I can have Skype up on the other screen and I can put the web browser on the third screen and see what is going on.
JAMES: I am not a multiple monitor guy. I use just virtual screens, I can put like Internet stuff in one that I can ignore when I am working basically and stuff like that. But yeah I don’t know, maybe it is not as comfortable for me to look at two different screens, I guess, or something, so I just stick to one.
JOSH: For me as a matter of focus, I don’t like having the screens. Physiologically, the stuff that happens in your peripheral vision gets higher priority to your brain. It is like a survival thing; that if you know some lion is sneaking up on you over of the corner of your vision, you really notice it because it could be a threat. So, that stuff is really distracting. And if I am trying to focus on the thing in front of me, having something slow by in the terminal or my e-mail pop up on the side or whatever, is really distracting and keeps me from focusing on what I am doing.
DAVID: That is really interesting, because I am the opposite. I’ve got exactly 2 meters of monitors, I have had to go via special swing arms stands because my monitors, I’ve got to 5 ½ foot IKEA desk and I have got two 27 inch monitors and my laptop across the thing. And my personality and my psyche are wildly different that Josh’s. I have RAM ADD and if I don’t give my ADD something to do, it will come get my main thread of focus and say, “Hey! What are you doing?” And so, having three screens up so that I’ve got a reference document, I have got code in front of me but got reference off the side, I have got telepresence to the other side and it puts the baby to sleep kind of. That’s what helps me focus on the thing on the center, is having things that are not bad distractions. You know what I mean? They are like distractions that guide, that little extra thread of brain back to the main task at hand.
JOSH: So you are happiest when you are spinning a lot of plates?
DAVID: Yeah, literally. And it varies like some days it is not. And I think everybody does it, it’s like because our core CPU power varies because we are biological creatures. There are days when, yeah, I kind of wanted to switch on one monitor and run think so that I can only see one app at a time. But yeah, most of the time, if I don’t get my brain in seven plates to spin, it will go crazy; it will chew its own leg off, you know, trying to get out of the trap.
CHUCK: So I find it interesting because when I am sitting and coding, I know a lot of folks like to listen to music and stuff to kind of bleed off some of those spare cycles and kind of half listen and get into a groove. I listen to podcasts when I am coding, which a lot of people think is crazy but for me …
JOSH: That’s because *it is* crazy. [laughter]
DAVID: I have heard so many people go, “How can you listen to podcast and code?” and for me it is just you know, it is kind of relaxing for one because I can just sit and you know, I get into the cadence of the verbal thinking of the podcast. But the other thing is that you know I feel like I am kind of picking up and I don’t catch everything in every show that I listen to, but I still pick up things here and there about whatever they are talking about. And so, I don’t know it is just kind of interesting thing for me and I am not sure why it works for me so well but if I can’t have that going then I have to have music going. I have to have some kind of something that will kind of bleed off some of that spare attention. The interesting side effect of that is that having multiple monitors, I don’t get side tracked. Like if somebody says something to me one Skype or something, I don’t even see most of it until I get a break and start looking around what else is going on.
JAMES: The music, I think I am like somewhere between the two polls here because it depends on the kind of programming I am doing that day. So, like if I'm just throwing out a pretty typical controller with the normal actions and hooking it pup to some HTML we got or something like that. Then I would take Chuck’s route and I will listen to a podcast as something to keep my brain busy. Because doing that is just work to me. So, I don’t have to think about it. But if I am doing any kind of programming that I have to think about or a design or whatever as I go, then I would typically listen to music but I prefer no words music for that, or at least very low words.
DAVID: I have a staggering collection of techno and Dubstep and Trans music and yeah it is completely, it has to be lyric free or I listen to it.
JAMES: Yeah. I have also found that techno, electronic, trans is great. I use that quite a bit. Sometimes I will just do instrumental guitar things like that.
JOSH: Yeah, I haven’t looked far lately, but quite a few years ago, I saw a study that reported on how much of your brain’s background processing playing music took up while you are doing a task that required concentration. Actually, listening to classical music burns more CPU cycles, because it is such complicated music.
JOSH: I really tone down the music playing and it is really stuff that I can essentially tune out so that I can concentrate on the work that I am doing. I will almost never play music while I am programming. Unless it is to like drown out other sounds that would be more distracting. So, when I am pairing with somebody, you know you can’t have your headphones listening to music because you ought to talk to your pair. But having a pair next to me to talk, means like if you are in a party and you are talking to your friend standing next to you, you don’t get distracted by all the other conversations going on around you unless somebody says your name.
JAMES: Yeah, pairing is one of those great hacks for like getting you off Twitter and stuff like that.
JOSH: Yeah. It is the best way for me to be productive.
JAMES: Yeah, it’s really good about that. I don’t do it quite often, but the times I have spent doing it is really productive time.
JOSH: But if I am in an office where there’s people talking all over the place and I am soloing and I need to concentrate, then I would definitely put on the head phones and listen to some chill music or some fun music or something.
DAVID: Yeah. Let’s talk about noise for just a second. Like the inadvertent music, not music, well maybe music but… So I worked out in San Francisco early this year and Josh, you inadvertently demonstrated this just a second ago while you were talking, because your mic was open and we had the fire engine go by and San Francisco is a noisy city. JOSH: Yeah, I am in Market Street and that is the street car.
CHUCK: I thought I heard a siren.
JOSH: Oh, you heard a siren? I just tuned it out. (laughs) [laughter]
DAVID: That’s exactly my point. [laughter]
JOSH: Also, I have my window open because it is so freaking hot in the city today and I can have it closed [laughs]
JAMES: I’d been in a sleepy little town in Edmond, Oklahoma and I lived in Cul-de-Sac, where cars don’t come down unless they have a reason to be here and stuff like that. So, really quiet city and a lot of times I will go out on the porch if it is nice, especially in the afternoon, and I just program out there for a while. My wife wired it with power for my birthday, so now I sit out there be plugged in and stuff like that.
JOSH: Well, San Francisco is pretty… well, I am jealous of your quiet James; I have been working in the Rock Health Office in China Town for the last few months. We’re like in the main drive in China Town and there is this old Chinese guy who sits across the street, by the church playing the… What is it… It’s like an Erhu, it’s those Chinese violins and he will play that like all day long, but apparently he doesn’t know any actual Chinese music, he plays like Auld Lang Syne and Oh! Susanna for hours. [laughter]
JAMES: I think after a while, that would drive me pretty ---.
JOSH: So, I definitely got to put my headphones on when I am programming there.
DAVID: You got to go teach him Stairway to Heaven.
JOSH: (laughs) Oh yes! [laughter]
CHUCK: One of the things that I want to bring up regarding noise is that sometimes, I have to get out of the house. I mean, I work in one of the bedrooms in my house, and I just you know, I get tired of staring at the same four walls and so.
JAMES: Do we all do that? I do I also work in my house.
JOSH: I work from home half of the time now. I am actually really excited that I am going to be in a fairly large co-working space starting next week and will have tons of other developers to hang around with, so I am excited.
CHUCK: Yeah, so sometimes I wind up going to this restaurant over here that has free Wi-Fi and working there. And so yeah I usually put my headphone and deal with thing that way because there is constant noise, there is music playing and overhead, things like that.
JOSH: Do any of us who have experience working on coffee shops? Have people done that?
DAVID: A little bit. It preys on my ADD in all the bad ways. So, I can’t do it very often. I’ll do it when I desperately need a change of pace, but for me, the perfect coffee shop experience is actually to go down town to the city library and sit at one of the tables in the quiet and work there.
CHUCK: We have done that a few times, haven’t we Dave?
CHUCK: You know me and several of the other Rubyists out here, we all ping each other and say, “Hey!”
AVDI: Yeah. Actually, I have got a ton done that way.
JAMES: At coffee shops?
CHUCK: It really depends for me on you know, like Dave said, you know, whether or not I need that change of pace. You know, sometimes that just is enough to kind of jump start the creativity and get things going.
JOSH: I find it really distracting. I have tried it a couple of times I can write when I’m sitting in coffee shops but I have a really hard time writing code.
JAMES: Yeah, even like in conferences, now you see lots of developers in the open areas programming and stuff. I love to program with other people and stuff but those environments for me, every time a person walks by, I catch him in out of my eye and I look at who they are. I just can’t keep a good flow going, doing it that way. So, when I am at the conference and I actually need to program, I sneak into the hotel room. (laughs)
CHUCK: I think it is so funny that you can’t focus, because I can hyper focus on something. Like, when reading a book, I mean my kids can be jumping on the same chair I am sitting in and I am oblivious.
DAVID: We know. [laughter] I am kidding.
AVDI: [laughs].I guess I am really lucky in my coffee shop because… Yeah, I can be tough when it is really busy coffee shop but I have got those place up the road that is actually a farm market, well it is an orchard so actually this place has an orchard and they have got this big store where they sell all kinds of orchard stuff and big goods and general farm market-y stuff, apple cider, that sort of thing. And they have a café attached to it and it is large and has plenty of power and it is out on the Boondocks of Pennsylvania, so it’s got a beautiful view. Since it is attached to a farm market in the middle of nowhere instead of being in the middle of a town, it is actually reasonably quiet. The only problem with it is that, all they play is the serious radio coffee shop station, which apparently consists of the same 10 acoustic versions of 90’s pop songs on constant repeat. [laughter]
AVDI: So, I am not aware of too many things, I know what I know, and I know when that song is freaking annoying! [laughter]
DAVID: 90’s pop tunes and acoustic. So, what does Kurt Cobain sound like when you can understand him? [laughter]
JAMES: So, next week, the intro music to Ruby Rogues has changed to I know what I know. [laughter]
JOSH: I can get you a recording of Oh Susana on Erhu.
CHUCK: Awesome. [laughter]
AVDI: someday you are going to be the guy that walks up to him and breaks his instrument over his head and everybody is going to think that you are a horrible person. [laughter]
JOSH: There is always a breaking point.
JAMES: You know, I think this whole discussion, even though we have very different tactics it has been very interesting. I think what it says is that, you know there’s a lot of jobs you can do without really needing to be able to concentrate intensely, but programming is not one of them. While we all have our different tactics and we all have different things that bother us, it is obvious we all put a large amount of effort into considering those are and arranging the environment to be in favor to us.
JOSH: Nicely put James. The other thing that is interesting about it is that, there is not a lot of appreciation for that from people who don’t have this sort of requirement for their work. And you can see that in the popular culture where if you watch TV shows where people are programming, they can program by sort of wiggling their fingers over the keyboard while they are engaged in a really intense conversation with somebody.
DAVID: In an open plan office that is actually a cube firm with low height walls, so that you can’t really communicate with anybody but you can overhear everything? Yeah.
CHUCK: So, I have to ask, I believe most if not all of us have worked in kind of the office environment whether it is the cubicles, you know, they give you a desk and a room with the rest of the dev team, how do your work environment differ now that you are working from home or working from co-working space as opposed to working in that corporate environment?
AVDI: It’s less distracting.
CHUCK: But, were there different things you did there to cope with that?
JOSH: Head phones.
DAVID: It is interesting. I think this as a dynamic, because like now that I work alone I find myself starved for interaction and I find myself starved for that high bandwidth communication of being able to turn to the person that knows the answer and engage in a casual conversation with them. But then, when I work with the team when I am embedded and I am actually in that open plan, by the end of the third day, I am desperate for quiet time. And so I wonder if it ebbs and flows based on the task or based on my brain chemistry of the day or a combination of both.
JOSH: The grass is always greener.
JOSH: No matter what you have, you want it to be different.
AVDI: I think it is nice to have an option you know to do either, I think it is nice to spend a lot of my time at home, but certainly occasionally, I like to get into an office with other people.
JOSH: I got to tell you, the most productive I have ever been for a sustained period of time was when I was in a huge, crazy, chaotic, open plan office with at Pivotal because I had a pair who was sitting next to me all the time and we kept each other focused. To the extent that all that stuff going on around us really wasn’t an issue at all.
AVDI: I guess I should be the one to note that if you work from home, you can still pair.
JOSH: That’s true.
CHUCK: Dave and I can both attest to that with the project we are working on right now.
DAVE: Yep. We have full time telepresence as a requirement.
CHUCK: It is actually been nice though I need to change pairs because I feel like I'm starting to get into a rut and I want to get a challenge again with maybe somebody else’s expertise on it.
AVDI: Is that the Seven Week Itch? [laughter]
DAVID: They make a cream for that. Don’t they?
CHUCK: (laughs) So, somebody mentioned the stuff that you have on your desk. I am curious as to like, what kind of office toys you guys are just kicking around your offices. AVDI: Scotch. [laughter]
JAMES: Not that kind of programming.
JOSH: Your fridge?
JAMES: I am a very open space kind of guy, and I like uncluttered things, so actually there’s very few things on my desk and most of them are just to look like, pictures or strange Lego collections that I enjoy, or things like that.
AVDI: I don’t know if I can trust you anymore. [laughter]
AVDI: I don’t know. You know, I guess some people can do it, but I was always a little leery of those desk form shots that would show up in like life hack or something like that. I was like you know, look at my incredibly minimalist desk with nothing going on it. I was thinking, “That is not a desk for a real person who does real work!” [laughter]
DAVID: It is a sterile environment.
JAMES: If you view my desk from the front to the back, about the first two thirds of it are almost completely open. My laptop is in there, I have a phone on it and whatever book I am currently reading. So right now it’s book on Service Oriented Design but…
AVDI: Josh, I wanna hear the end of that sentence.
JOSH: I was saying, “A clean desk is a sure sign of a sick mind”. [laughter]
DAVID: Somebody at an office put up “A cluttered desk is a sign of a cluttered mind” and two days later somebody had magic mark it underneath it, “And an empty desk means…?” [laughter]
AVDI: Yep, it is the unavoidable conclusion. I have known a lot of engineers that had very messy desks and very clean code so…
DAVID: I have to say that if my desk is ever clean, it just means I am not busy enough. [laughter]
AVDI: So true.
JOSH: Well Chuck, I remember you talking months ago about sending out an archaeological expedition to search through the stack of papers on your desk.
CHUCK: Yeah, I did get through that, but it is starting to pile up again. It has been three weeks since I cleaned my office so I it is definitely due, but it is nowhere close to as bad as it has ever gotten.
JOSH: I am getting to the point where I am going to like scan everything and throw away all the papers.
CHUCK: Yeah, I have this tendency to take a picture of my desk before and after and I always get comments on the before. Holy Cow!
DAVID: Yeah, I just bought a new desk and I made a rule that it has to be kept absolutely clean, nothing on the desk at all. In fact I bought monitor stands so that my monitors wouldn’t even sit on the desk. And the only thing allowed to be on my desk is a keyboard, a mouse and the speakers for my sound system. And that was a week ago, and there is about six square inches of desk visible now.
CHUCK: (laughs) I have been in your office before Dave and I have seen whether it was really six square inches of office available.
DAVID: Yeah, exactly. And I am standing in it.
AVDI: Why would we have a flat surface if not to put stuff on?
DAVID: Exactly. Are you familiar with the Heap Data Structure or not?! [laughter]
CHUCK: So do you guys go for any ergonomics in your set ups? You know like monitor height and you know Dave mentioned the gel pad that he is going to be walking on and stuff like that?
JAMES: Nobody does the split keyboard thing right?
JOSH: I have seen people use that, there is this kinetics keyboard?
DAVID: Yeah, the dual grapefruit holder?
JOSH: Yeah! I have seen people use it and I don’t know if it is just the people who are really hardcore about typing by these things or that there is some inherent advantage to the geometry of the keyboard that lets people fly on it but…
DAVID: I had a co-worker who had Carpal Tunnel Syndrome like full blown surgery on both wrists and he had one of those keyboards and it was the only thing he could type upon. I am a big fan of Microsoft, just over the counter, the natural wave 6000 or whatever it is. And I am like I handed it over to Brett and I am like, “What do you think about this?” and he says, “Seriously I can type on that for about three minutes and my wrist will cramp up and a flat keyboard, I can’t even twist my wrists down to get my thumbs on the keyboard”. So, it is absolutely that Kinesis Keyboard is absolutely an ergonomic thing. But if you look at the positioning like of the control keys and what not, I almost bought one about two, three weeks ago and I ended up buying a Razer BlackWidow instead of this really loud key board and because it’s got nice key switched in it. And yeah, I have to watch myself and stretch my wrist because I am not used to pronating. Pronation is when you twist your thumb down and your pinky towards the sky. I’m not used to pronating my thumb so much because I used to use the lumpy keyboard that would raise your thumb a little bit, and I may have to break down and get one of those Kinesis’ and try to use that with Emacs is going to be a nightmare. CHUCK: (laughs) Yeah, I started to develop Carpal Tunnel Syndrome and it was because I would sit forward and then I would have my wrist bent up and then reach down with my fingers to type and it was putting pressure on my wrists, whereas now when I code I tend to lay back in my chair and I am laying almost all the way back. So, I am literally… my arms are just straight to the keyboard, and I haven’t had problems since then and I am using one of those little aluminum Mac Bluetooth keyboards but yeah that was a problem for a while. Unlike the contoured keyboards like the Microsoft ones that kind of have a little big swell in the middle of them, those worked okay for me, but it was still a problem and I would sleep with The wrist things on every night to help my wrists.
DAVID: Interestingly, sitting back kills me and I think you and I probably have different… Well it’s very likely that we have different wrists geometry because we are different people, sitting back increases pronation. Pronation doesn’t get you in the wrist, it gets you in the elbow, on the outside like on the tendons, and that’s what I have to watch.
JOSH: The only thing I only care about for my ergonomics is that my spine is upright, you know, I am not slouching.
JOSH: And I find myself in a number of odd positions just because I am a Yogi and I can assume my positions pretty easily. So, like right now I am sitting on my feet on the seat of my chair, I have my feet tucked underneath me, because that is a very comfortable position for me. And so it is like my chair is just a platform that raises the floor up a few feet. One of the coolest office set ups I saw, was that of a friend at Apple reconfigured his cubicle, so that all of the desks surfaces were about a foot off of the floor, he covered the floor with Tatami mats, he had a little shoe rack at the entrance of his cube so he had to take off his shoes when in his cubicle and sat on a cushion like he was in meditation posture and it was just awesome. I loved it.
AVDI: I have thought of doing that, I thought of it for a little while when I had work outside I would like stack a board on something, like some really low blocks and you know and just sit on the ground in front of it.
CHUCK: Yeah, I actually worked with a guy that his cubicle, he went in and he took the desks out except for one off at the side where he could just put whatever. And then, he brought in his own chair which was kind of like one of those salon chairs that reclines, you know that they put up in the sink and stuff and then he got one of the rolling laptop stands and he jacked it all the way like four and a half feet and then he put his monitors up there. And so he was literally like laying back at a forty five degree angle and it just positioned his neck, I mean he didn’t have to crane his neck or anything, he just positioned him so that he was looking directly at the monitor and then he had one of those scooped keyboards we were just talking about, that he just held in his lap and he just typed there.
JOSH: So, I have seen set up like that and I have seen professionally produced equipment for that. Like you will see like some big circle with a chair on the lower half of it and then you have the monitor and the keyboard attached to the other half of the circle. And sure it looks like you could get in there and your body would be perfectly positioned and I would be able to do that for maybe five minutes or ten minutes and then I would want to shift to another position, and I would be stuck. So, I like to be able to have my spine upright and then I like to be able to shift around. So, if I were having a standing desk, it would be I’d have to be shifting between sitting and standing very often or whatever. I just think moving around is the best thing that you can do rather than just staying in a fixed position.
DAVID: That’s what I am finding as the huge win for me for standing desk is, it helps my concentration because I can walk away. I am already stood up and ready to walk away from the project. If I hit a tough thing I need to think about it I am like, I am already standing up. [laughter]
JOSH: So you just hit the escape key?
CHUCK: We have talked about ergonomics, we have talked about our physical set ups, we have talked about machines we are working on. I am a little bit curious, besides your text editor or IDE, what other software do you use as part of development practice?
JAMES: I was going to ask basically the same thing and the way I was going to say it is, not just starting editor war or anything like that, but what are the programs that actually contribute to your productivity?
JOSH: Some of that depend on the task at hand. If I am doing UI heavy stuff… I think I have mentioned this as a pick a couple of months ago, the work flow that I had was I would do stuff in Balsamiq to mock stuff up and then I would use Skitch to grab a section of that and then drag it from Skitch into Pivotal Tracker which would attach it to the story. And that work flow was really tight for me. I really liked that, so, Balsamiq, Skitch and Pivotal Tracker, those two things work together really well.
CHUCK: Anyone else? I am mean I am thinking about things along the line like Tmux and Guard that kind of help out in I don’t know just keeping track of things.
JAMES: One of the things I do is, if I am just programming, say I don’t need to look at it in a web browser or something like that, then I like to take my terminal full screen and just get rid of all the distractions and program that way. I have used Tmux quite a bit in the past, these days I have gotten Emacs and I don’t really need it anymore because Emacs does all that. That’s how I like to do it and I will bring multiple pains and stuff and split the terminals of course and have the code I am working on beside the task or besides some shell I am running some tests for or playing with something interactively and I will bring up full screen. But then when I am programming lot of page and I need to see a browser at the same time, then I will I hit the keyboard shortcut to unmaximize my terminal so that it is in the corner of my screen and then I will have the browser on the other side or whatever I am interacting with while I am programming. So, again yeah definitely by the task that I started up where I can easily go totally end of that or have it alongside something else.
DAVID: On a related note, but coming from the opposite direction of what I like to have multiple monitors and you know like registered and approved distractions, one of the pieces of software that I just need in my development environment and we just got it on our project with Chuck and I were working at, we just got it today, is a CI Monitor (Continuous Integration Machine), I live and breath by having this big green screen or big red screen somewhere telling me that stuff is working or stuff isn’t working. And one of our guys was saying, “Well, if it breaks it will send out an e-mail.” and I am like, “That’s not good enough. I need a green light somewhere to kind of stroke my inner OCD fur” and okay it’s Hudson, so by default it is a blue screen, I wish it was green but we can work on that later. Perhaps that’s something that I would like to have up and running somewhere is a visible CI machine that is always up and in my peripheral vision.
JOSH: Have you ever tried the CCMenu?
DAVID: Yeah, it was too small. The green light wasn’t big enough to trigger that little heroine release in my brain or whatever hormone it is. And there was a day when it failed and it turned red and I didn’t know what it was for like half an hour and so when that happened I am like, “Okay, I am uninstalling this. This is not an approved tool for David Brady any more”.
JAMES: And those menu bar widgets? It’s interesting because it is like everything has a menu bar whether your Twitter client or whatever. All that. I shut all of those off. I don’t like any of those bothering me if I am working on something else. I go through and shut off noises that programs make or when little events happen and badging and all kind of stuff. I shut all that off, so that that way I can work on virtual screen off to the side and when I want to get into that stuff…
JOSH: James, I haven’t upgraded to Mountain Lion yet. I think you just did recently. Have you been playing with the notifications centre to help control of that stuff?
JAMES: I mostly shut that all off because again I find it distracting. Some other things in it are helpful and I do like having, but yeah you know, for the most part of it pops out the thing up and so I shut mostly that off.
DAVID: So, I have a question, this is another piece of software that I use, but it ties back into… I love the fact that somebody said, “What’s your environment?” and we kind of went on this develop thing like sound and temperature and all that stuff.
JAMES: It’s kind of telling though right? Because what is going on in your head is actually more important than what is going on.
DAVID: So, yeah I don’t want to steer us back to the ecology thing but I would like to talk about this a little bit. I want us to talk about light. I use flux. I think it’s “fl.ux” I think is the name of the tool or flux.app. This is a thing that cools off the monitor temperature at sundown. The human brain is designed to release whatever the waky chemical… it is not the dopamine, it is the other one but basically they are counteractive to the melatonin or hormone whatever. Your brain is designed to wake up at sunrise when the sun comes up. So when the optic nerve is exposed to blue light, you wake up. And this has a hold over effect of like or five hours and so if you are programming late into the night, and you are going to go to bed, you don’t want to be coding into this LCD bright blue light shining in your eyes, because you are going to lie down and your brain is just chemically wired to awake because you have been staring into the sunlit things. So I like F.lux because it will start to clue the monitor off but I am having trouble with it, I get up in the morning and I am working in the East Coast time. So I get up and it is dark and I turn my monitors on and they are almost brown, I mean they are dark, they night time colors and like, “You should be asleep” and I am like, “No, no, I need to be awake!” So, I got to I turn on the lights, I turn on f.lux, I have got to turn my monitors up to maximum brightness to try and wake myself up. I want to ask you guys about light, how that affects you and I also want to ask, I find myself unable to program outside because it is just too bright and my monitor is too dim and my laptop is too dim, how do you guys cope with that?
JAMES: Mac display. Don’t get the glossy.
CHUCK: So one thing that when I was working in an office, I would always get up and turn off the fluorescent lights above me. And it was the same kind of thing, it was just too much with the monitor and the lights and everything else. But at the same time, I am not really keen on programming in the dark. In my office, I actually have the blinds open and I just go off of the sunlight, now it is not direct sunlight because I am on north facing wall of my house, but it is plenty of light during the day and then at night I can turn the overhead light on if I really need it.
JOSH: I am a big fan of natural light. I despise fluorescent lighting and technology has improved a lot in the last couple of decades, in the 80’s when I worked at office and they had fluorescent lighting everywhere the monitors were these, yeah they were these old CRTs which were pretty cutting edge back then, the beat frequency of interaction between the like 60Hz current for the fluorescent lights and 75Hz frequency of display would just drive my brain insane. So, I would just turn off all the fluorescent lights in the room and use the desk lamps that were fine. My ideal set up in my office at home is that I have my iMac and my desk is up against the wall, so I have a little Halogen desk lamp that I have put on the desk behind the iMac, and when just the natural light through the Windows isn’t enough I will turn that light on having the Halogen light behind the monitor means that I have the light reflecting off the wall behind the monitor, and that’s actually a really good way to raise the level of ambient lighting in my area without having it shinning in my eyes or reflecting off the screen or whatever. And it I did it kind of by accident one day because my desk was too crowded and discovered how awesome it was. So, I definitely would recommend that kind of set up.
CHUCK: I kind of like that idea it. It sounds good.
JAMES: I like programming outside like I said. But I would say a lot of times I would go to the porch and program there, if they did get good until I switch to Mac display. If you have a glossy display, especially Apple’s, when you go outside your computer is just a sheet of black glass. So, there is no way you can do that.
JOSH: Did you get a sticker thing that you put over your screen or did you order the matte screen option with your laptop?
JAMES: No, I have the matte screen option. On the latest Mac Books they have it.
JOSH: Do you find it hilarious like ten years ago, the glossy screen was the extra cost option and not the other way round.
JAMES: Yeah. That was the matte and now it is got to be the matte and now you can really tell, because right now my wife has the glossy laptop, I mean if you take them outside, it is dramatic difference. So, I had to do that and I have kind of played around with the outside programming a little like and a couple of hacks. Like, a lot of times, in heat of the summer and my wife and daughter would go over and swim at the pool at my father-in-laws house, so I will go over there with them and just sit poolside and program while they do that and I really enjoy that because I get sunshine and every now and then I can take a break and watch the girls playing and stuff. And so programming poolside has been a lot of fun for me.
DAVID: That’s cool.
CHUCK: Yeah, for me the big thing is just programming outside is the temperature, you know if I get too warm or too cold then it just wouldn’t work. But the fresh air and stuff is really nice. I have done it a few times but I haven’t really made it work unless you know, it is kind of ideal situation outside so.
DAVID: I had forgotten the fluorescent, the beat frequency thing, I remember having it be so bad in one office twenty years ago, if the lights were on, the text on the screen would actually wiggle. [laughter]
CHUCK: Are you sure it wasn’t some of your medication Dave?
DAVID: Well, that could have been. [laughter]
JAMES: You know I have a love-hate relationship with Apple’s feature where they detect the lighting in the room and they adjust the screen brightness and the keyboard back lighting based on that.
DAVID: Yeah, they always get it wrong, yeah.
JAMES: I love the keyboard back lighting and stuff like that especially if I'm programming on the porch, we have some warm evenings especially in the summer and I will stay out there on into the night and as it gets started, I love it when it brings the keyboards backlighting and that’s almost perfect, but then as I sit down and program over time, I noticed that like, “Wow, why can’t I read the screen anymore?” It’s because the screen brightness is just so you know regarding that feature. I wish I could separate the screens from the thing. I would do that.
DAVID: Yeah, I find that Apple, the automatically adjust the brightness won’t go dark enough. If I am in a room with no other light except for the laptop. And it is interesting because twenty years ago… or twelve years ago, I got the nick name “basement troll” because I would come in, I had an office down stairs of the building, it was mandatory in our office, there were just two of us and we both agreed that we were called basement trolls. There were no lights in our office. The only light was coming from the CRT and you had to work, [this leads to my next question] you had to have a black background and you know light text and you wanted the contrast turned down, and the brightness turned down. And we worked with it just as dark as possible and we found that very, very relaxing. Now that I am forty one, I have to have it the other way round. I need the room filled with light, I need white background with black text, I am curious how much contrast and how much ambient light you guys prefer to work in.
JOSH: It depends on how angry or depressed or whatever.
JOSH: Sometimes I need to compliment my emotional state; sometimes I need something to lift me out of it.
DAVID: To counter it. Yeah.
CHUCK: Yeah. I don’t know, as far as… I mean, it has to be high enough contrast obviously that you can use it but I am good on either light on dark, or dark on light and I just switch depending on whatever I feel like.
JAMES: I definitely prefer dark background with lighter text. I use a the tomorrow theme these days and it is the dark one I prefer, kind can’t remember there’s few variations of it but I like the dark one.
JOSH: If you have a lamp to that, that would be cool. I am always looking for a good dark background color theme.
DAVID: Yeah, if there is an inverse of it I would like to see it and…
JAMES: That’s what I love about it. Because when I do slides or something, then I want the opposite, I want light background with the dark text and what I do is just switch to the inverse theme.
DAVID: Nice. Yeah, I am just going to come out and say this, I don’t like the solarized theme. It is not high enough contrasts and I hate the colored schemes, light or dark.
DAVID: I think I tried it and I think I found out that the things that I liked better. I didn’t hate it but...
AVDI: I don’t think the colors are solarized.
JAMES: I had the exact reaction. I did not like that theme, I really appreciate like how they built it and stuff and I thought that was awesome, but I didn’t like the colors on it and tomorrow to me is like solarised but with good colors. I’ll put a link in the show notes.
JOSH: Yeah, I just found it really looked really nice.
AVDI: I have actually been using the Zenburn for a while one in Emacs and it is pretty nice as low contrast theme goes. I find it colorized and I find it attractive. Now for rubytapas I have been using I think I have been using Molokai variant, which is not as low contrast but it is similar to the theme that I saw a bunch of people using it Hash Rocket and it is nice for like showing something to somebody else because it is kind of pops.
JOSH: The main objection I have with most themes is the selection highlight color is not high enough contrast and then if I am doing something like finding something in a buffer or a tab, and I can’t see the single character or the two characters, because the only highlight of them is the selection color around them. It is terrible; it is like what the hell is it on that screen.
JAMES: That is a chronic problem with a lot of themes.
DAVID: Yeah, I need like to be able to just like have a spring loaded button, like I hold down the function key and the highlighted color will pop. That will be great, just something so I can find it.
CHUCK: Yeah, I have been using night lion in my terminal. I’ll put a link in there as well. This is the one I’m stuck with the longest. We are running low on time and there is another thing that we didn’t mention, I want to talk about before we move on along to picks and that is Mac vs. Linux.
JAMES: Wait, no Windows?
DAVID: We all agreed that we are just not going to be considering Windows?
JAMES: Yeah, what the heck?
CHUCK: Do any of us actually use Windows on a regular basis?
DAVID: I just want to point out that Sandy Metz uses Windows.
CHUCK: That’s it I am switching.
JOSH: What would Sandy Metz do?
DAVID: I am switching to Windows; it is time to think different! [laughter]
AVDI: I use Windows on a regular basis because I do my video editing in Windows VM
CHUCK: What about just coding? I remember it was a world of pain when I started coding in Ruby and that was four or five years ago.
AVDI: I have been using Ubuntu for that for years.
JOSH: Yeah, so the common wisdom, my understanding of it is that, if you have the option to program on a flavor of Unix, Including Mac then doing web development or Ruby development is much better in that well than it is on Windows. If you have to use Windows, there are things that you can do and I am not familiar with much of them. But I know that there’s a lot of people who are putting effort into that. Engine yard I think is continuing to support tooling for doing Ruby development on Windows.
JAMES: Yeah, I think that is true and obviously, people do it and it works fine. Programming is largely about manipulating quantities of texts and that is very much at the core of what Unix just does. Since basically the entire Operating System is controlled by text files, trying things on and off and stuff like that so, just having a shell and all those various command line utilities that are just built around, carrying that stuff up, to me that is so invaluable.
JOSH: Yeah, I hated doing development on Windows but that was just because it was Windows. [laughter]
AVDI: It has a terrible terminal for one thing.
JOSH: Yeah it is, you know, the shell sucks. And anyway, we don’t need to have that religious war today.
AVDI: I get all kinds of reminiscing but...
JAMES: It is probably worth stating too that Ruby grew up in a Unix C environment and I know they go through Herculean efforts to try to keep the Windows side as good but I really think it probably fall short in some areas.
DAVID: Because it takes a Herculean effort to keep that up to date.
CHUCK: Alright. So we have kind of beat on Windows, you could generally make it work with a little bit of effort, a little bit of extra effort where it seems to work seamlessly or more seamlessly on Mac, or Linux or some other mix. So, as far as working in Linux versus Mac OS are there any major differences, any major draw backs of using one or the other?
JAMES: I have used a Mac for a long time and played with Linux at various points of the time line. Ironically, I think now I could probably use Linux pretty comfortably and not be too hurt by it, just in that most of the things I do, programming-wise are very Unix C, but I think the main reason I stick with the Mac, although this is changing, is it makes everything else so much more comfortable. In my opinion like when you do need fire up Skype or whatever, it’s generally as pleasant an experience as it can be considering Skype or if I have to edit some video there is some excellent tool or audio or stuff like that. Organizing photos and things like that. So, I really like all that. I suspect I could be pretty comfortable on Linux these days for most things.
JOSH: I have been using a Mac since the original Mac and I am incredibly proficient with all of the power moves in the UI. So I can just fly through stuff on the Mac. So, it would take a very large crow bar to pry me away from my Mac.
JAMES: I felt that way in the past too. I too have been a Mac user for like 17 years or something. I feel like recent changes in the operating systems that Apple’s kind of sliding some of those pro moves like the recent switch from two dimensional set of virtual screens to one dimensional set and things like that. The way they are doing app launching or the check box you know that, you have to check that says “please allow me to download files from the internet”
JOSH: So there are those kind of issues, on the other hand the use ability of the UI itself I think is the best out there. Just the fact that if you are trying to open a file and you get the file open dialogue, and you have to find a window or any other kind of window sitting around and you can just go to the title bar on that window and drag the mini icon for that file or folder into the file open dialogue and that instantly changes the contents, the positioning of the file dialogue to point at that folder or that file.
JAMES: Yeah, I agree with you.
JOSH: So like that amount of polish is just so valuable to me, that you can learn that. So it literally takes me like a second to do that rather than like clicking around and navigating all over the place. I am just really used to that, that is a big power advantage for me, I can’t even consider anything else. So I am not the right person to ask about this stuff.
JAMES: I am just concerned that Apple has maybe leaving some of us behind and they are okay with that.
AVDI: So as the next representative around here… [laughter] I guess somebody else wants to take that hat.
CHUCK: There are some things I could say but I am curious of what you will bring to this conversation.
AVDI: So, I actually wrote all my thoughts on that on a blog article while back. I spent about two years on the Mac and I was actually at the beginning of that, I was all set to basically just completely switch my lifestyle over to the Mac. And at the end of it, I was running an excellent virtual machine that wound up once I moved on from the job that bought me that Mac. I went back to Linux and for me it was a matter of which things I wanted to spend time maintaining. Linux of course is famous for having hardware support issues but once you get your hardware support issues ironed out, they tend to stay ironed out, in my experience anyway. Occasionally, this is not true, but most of the time it is. Whereas I was having endless trouble package management. At the time it was MacPorts, I would wanna use packages that didn’t exist for Mac Ports or were poorly maintained. And then there would be like endless compile cycles as I was waiting for it for my system to be update and by the end of the compile cycle, I’ll be greeted with a scroll of hundreds and hundreds of errors because those package are poorly maintained and has conflict with another one. Didn’t specify all dependencies or something stupid like that and I just didn’t have time for that and my experience on Debian based Linux distribution base has been… First of all, there is a package for anything. There is like 40,000 packages or something. And if there is a package for it, it will install quickly and it will work. It will be up and running and configured in a sensible way by the time you come back with your cup of coffee. And for me, dealing with software packages was taking more time out of my life on the Mac than dealing with hardware issues on Linux.
AVDI: The packages, that is the thing, I knew a lot of people that did not have the same experiences as I did and I would ask them so what packages are you using and they were basically using the golden path of Ruby, Rails, MySQL and Apache and that it. So, if that’s you, then it is not really an issue.
JOSH: How does that contrast with homebrew on the Mac?
AVDI: I don’t know off hand, because I have only been able to watch homebrew in a distance. The reports that I am seeing suggests that it has even tinnier set of maintained packages than Mac ports. And it is still resource based package management system. It doesn’t have policy. The thing about Debian, is Debian has a policy which I describe as basically like Leviticus for package management. It tells you everything, it is a sledge hammer of exactly how the package must be laid out to work well with an Ubuntu or Debian system. And packages don’t make it in until they are set up to be very, very compatible so you just don’t have to worry about conflict in the system like that.
JAMES: So, in defense of homebrew slightly, I think it’s quite a bit better experience that MacPorts and I just have some policy. For example, one of the things I think Homebrew gets very right compared to any other packages, that generally, the homebrew philosophy is don’t replace a package that comes on Mac OSX and is in usable order. So they just don’t do those and they properly link again in Mac OSX whereas the MacPorts view of that is that they just build their own and bring that in and then you have all these different versions and the problem always comes when something links against the wrong one and whatever.
JOSH: I remember trying to install PostGres through MacPorts a couple of years ago and it installed its own implementations of Perl and Ruby. So that it could link to them.
JAMES: In homebrew when it really does have to violate that, say for example, it really needs re line for this thing because of the --- that ships with Mac OSX isn’t quite the same. It will do that, but it will build, reline and tuck it away in its private… I can’t remember what they call it… the formulas or whatever, library maybe. In the user local and it will build the version of it there but it will not link that version to places where it would be found globally and then just for the things that it needs, it would link that manually. So, in my opinion it has been a much superior experience and a lot better as far as package coverage. If Avdi said it's level compared to Linux, I’d totally buy that.
AVDI: Does homebrew has an equivalent of PPAs (Personal Package Archives)?
JAMES: I don’t know what that means.
AVDI: So, of course you know the package coverage is huge already but occasionally there are obscure things that haven’t made into the official repos yet.
CHUCK: Or there are newer versions that haven’t made it.
AVDI: Exactly, some people maintain that the Ubuntu and Debian are pretty stable, sometimes people have newer versions that they maintain. And so it is very easy to add a selection of people’s personal package archive. You just add the line basically; there are some tools for it, like I have a special repository from all versions of Emacs.
JAMES: Homebrew does have that. Recently, there is a way to get the OSX command line development tools without going the whole x code route and stuff. And it is maintained in a different place and you can just put the line into Homebrew to get that.
AVDI: It all place well as far as dependencies.
JAMES: Yes, as new as I know. Yes, they will work with dependencies and stuff like that. I believe it is superior experience. I have only ever looked for one thing in Homebrew that isn’t in there and when I looked for it, it had an entry that told me why it is not in there and how to go install it. But I am sure I use significantly packages like these.
JOSH: The one thing that I really like about Homebrew and it might make some people cringe and scream in terror is that the process of building the package is very easy to understand. It is quite transparent and the times when I have run into issues trying to solve the package and got some error, it was pretty simple to take a look at the output at the log and debug what was going on just modify whatever was the problem in the package and get it to work.
JAMES: Yeah, there was a really good example of that with the move to Mountain Lion. There was a tool that a lot of people use with Tmux to re-attach OSX’s GUI to access the board and that tool had a slight issue on Mountain Lion and the Homebrew thing wasn’t up to date but because it is so transparent, it’s just a little Ruby code in the build and stuff, I think it was Heinrich that did a very simple gist of just going edit this file and his gist really well done because he even showed you like, here is how to check if it’s been fixed in home brew yet, if it has, just do that. Otherwise make this one line change and run this and it’s going to work fine.
AVDI: By the way Josh, I was you got me curious about that file dragging to that file open dialog trick, so I tried out on Ubuntu and it worked just fine.
CHUCK: Alright, we are pretty much over our time. I think an hour and ten minutes into this episode and we haven’t even picked yet, are there any critical things that we need to talk about before we move on to the picks?
JOSH: We can probably do a whole episode on sort of like work flow time management procedures, things like that. The one thing I want to end on is talking about stuff like the Pomodoro Technique, have people heard about that? It is like you divide your day up to this half hour blocks and then you work for twenty five minutes focused on your task and then you allocate five minute break at the end of that period to deal with all the things that would otherwise distract you in the middle of things and so that really keeps you very focused on your work. And I mentioned this when Kent Beck was on and talking about drinking tea during the day, but I am a proponent of the Teamodoro Technique [laughter].
JOSH: You drink a lot of water and then you are forced to take frequent breaks. [laughter] But in all seriousness, it is good to get up and just move your body on a regular basis. And sitting there hunched over your screen for two or three hours on end without moving, is actually not good for your brain. Getting up and moving around and shifting your input and getting your heart moving a little bit is often a really good thing to do for breaking through the log jam.
JAMES: I have used this Pomodoro Technique in the past and really liked it, I use kind of my own system now based on some put together on Emacs, but I do like the Pomodoro Technique, there’s a really good book on in called Pomodoro Technique Illustrated that I highly recommend and there is also a really good widget that goes in that Mac menu bar and it is really good. It was one of the widgets I actually made an exception for tab in my menu bar, it’s good.
JOSH: We have got to hurry this up; I have been drinking tea so… [laughter]
CHUCK: Alright, let’s get to the picks then.
JAMES: My pick is a raging waterfall. [laughter]
JOSH: Oh, I hate you James.
CHUCK: Yeah let’s find some ocean noises or river noises play over the show. Let’s do picks. David, do you want to start us off?
DAVID: Sure, Vitamix blenders, just got one last week, just really love it, I thrown in five frozen strawberries, one banana and two cups of apple juice or white grape juice is even better, set it on the smoothie setting, blend it, walk away, come back thirty seconds later and then you’ve got an amazing food drink and given our time, that’s my picks.
CHUCK: Okay, Avdi, what have you picked?
AVDI: So, Xiki is one of my picks, it builds itself as a shell console with GUI features. It is sort of a combination of shell and a wiki and it is completely indescribable. You just have to watch the videos to kind of get an idea what it is. Somebody was asking me at Ruby DCamp what does it replace and I was at a lost because it’s like, it didn’t really exist before as far as I know anyway.
JOSH: So Avdi, the thing that it reminds me most of is the work space window in Small Talk.
AVDI: Yeah, that’s a good comparison.
JOSH: So, it is like this Small Talk work space with structure.
JAMES: Interestingly, it’s what it feels like to use Emacs to me and it is based on Emacs. AVDI: Well, it has an Emacs UI anyway. Anyway, I had the pleasure of meeting the guy responsible in developing for me at GoGaRuCo and I was suitably blown away. I am looking forward to having sometime to play with it more myself. And also I will pick the Twitter account “tng_s8” which is Start Trek: The Next Generation Season 8. It’s basically capsule descriptions of episodes in a mythical eight season Star Trek, the next generation and it is pretty hilarious.
JOSH: I love the ones with worth. [laughter]
CHUCK: James what are your picks?
JAMES: I have got two, I am going against the grain and not recommend Sandi’s book, just so that I can recommend something different, Sandi. She did these two Lunch and Learns when she was at Hash Rocket recently and I have already recommended one of them, it’s really good. But this one is on Defining Object Oriented Design. And it is a great, really great video discussion of her going through and talking about why we do object oriented design and stuff. And there’s great points in it, like how good design is how we hide bad code and then it actually doesn’t matter that we wrote bad code because it is so easily replaced or dealt with or things like that. So, that concept… also she has great questions in there which she addresses like, when she is talking about dependency injections, she says the rule that she uses to get it right all the time is never hard code a class name in another class. It is how you can avoid doing that right? If your class is making other objects, then there is some kind of dependency there, whereas if you would just pass that in through the method and then make whatever is passed, it’s so much better for testing and all that kind of stuff. So, really great video, it’s about an hour. And for a non-tech pick, I haven’t upgraded to Mountain Lion and all that recently. I’m checking out some other Apple stuff and I’m using iTunes Match now which is Apple’s paid service. In my opinion, it’s ridiculously cheap. It’s $25/year or so about $2/month I guess. Basically what it does is, they scan through your music library, they match everything, they already have in the iTunes music store and then upload the rest. So, in my case, I had like 8,500 songs and I had to upload about a thousand. And the cool thing about that is, a lot of the old stuff is probably like MP3s ripped off CDs, (It was in my case) So the quality was so-so because I got it like 10 years ago or whatever. But whatever they match, you get it in top iTunes quality great sounding stuff. So, first off all, it’s a cheap way to upgrade your music and then second of all, the reason I looked into iTunes match is I was running out of hard drive space in my laptop, so they matched all the songs and they just go through and select them in iTunes and delete, literally. And it takes a lot off the hard drive. I had about 70 Gigs of space back doing that. And then when you wanna play something, you just stream it from the cloud, directly as you are playing it. So there’s a little bit of pause you get there and of course you have to have the internet. But if you are going to a place where you know you won’t, for any individual playlist or song, or whatever, there is download buttons on all of it. You can just hit that button and it will download it all to your Mac and then you’d have it on there while you are out and then you can take it off later if you want. And so you can bring it down on to your computer if you need to and obviously it works great if you have like an iPad, an iPhone, they can all use the same account and stream music from it. The only catch there is the streaming for iOS devices really came in on iOS 6 so, if you have a first generation iPad (like I do), that won’t upgrade to iOS 6. It can still work with the service, but when it plays a song, it downloads it literally so, every now and then, you may have to go through and clean off what’s been downloaded on it. Or if you are delaying the upgrade on the iOS 6, maybe because of the maps fiasco, then you probably won’t have a very good experience with it but, so far I'm really liking having my music in the cloud and I'm using iTunes Match to do that. Those are my picks.
CHUCK: Holy cow James. Did you take over for David? [laughter]
JAMES: He was too short.
CHUCK: (laughs) I couldn’t resist, sorry. All right, Josh let’s hear your picks.
JOSH: Cool, okay so, I have been enjoying educational content on YouTube lately and I found a really cool set of videos by this guy named CGP Grey. Is he any relation, James? Anyway, his tagline is like complex things explained. He actually does these great educational videos about all sorts of topics. He definitely has a political vent on some of these things. His very much like a… I don’t wanna call him rationalist because that is bordering on --- or something, but he really takes complicated subjects and breaks them down. And some of the links to his video on talking about why the electoral college is broken, where he demonstrates very simply how someone can be elected the president of the united states with 22% of the popular vote. So, that one is really good. I like the one about coffee, which was sort of some nostalgia since I was once again given up coffee, but it's fun stuff. His Death to Pennies one is also a lot of cool. So, there’s that. Then, the other thing following on that, I'm going to pick the National Popular Vote Interstate Compact. Given how broken the electoral project is, in terms of democratically electing a president, there’s this thing going on which is, a bunch of states have signed up how to change how they select the electors and a bunch of states is basically saying were are going to assign all of our electors whoever wins the popular vote.
CHUCK: That’s more --- now right?
JOSH: No, not the national popular vote. They assign them based on who wins the state.
CHUCK: Yes. That’s what I meant.
JOSH: So, if you get enough states, like states with the majority of the number of electoral college votes, to say, okay, no matter how our state votes we are going to sign our electors based on whoever wins the popular vote nationally. And if the majority of the electoral votes state sign up for that, then it doesn’t really matter anymore and just the national popular vote will select the president rather than getting in... There’s like 5% failure rate, CGP Grey says on his video. 5% of our elections have resulted in the loser of the popular vote becoming president and that is a pretty high failure rate for such an important process for our country’s government. I'm picking this because there is a number of states that has legislation going through about this and if you live one of the states and you are listening to the show, I would encourage you to interact with your state legislators to encourage them to support this compact. Those are my picks.
CHUCK: Alright, so I have a couple of picks; one is related to the topic that we talked about today and I'm going to save it for just a minute so that I can pick my other pick first and this is this book that I just downloaded. I need to put it on my kindle. It’s called Practical Object-Oriented Design in Ruby by Sandi Metz [laughter]
JAMES: Wait, what?
CHUCK: I'm really looking forward to doing this.
DAVID: Is that a book or a talk?
CHUCK: It’s a book, yeah. (laughs) Anyway, in all seriousness, I really am looking forward to reading it, so I thought I would promote it again. I think it’s been picked by just about every one of us. That being said…
JAMES: I'm going to pick it after we do the Book Club episode.
CHUCK: Oh yeah. So then, the other pick that I have, I have this Ergotron monitor stands and they are adjustable. You can move them pretty much in any direction. And I really, really like them. I am actually looking at building something that sits on my desk that will turn it to sort of a standing desk just to see how that works. And so if I do that, then I will just be able to move these monitor stands up on to there and then set things up so that I can arrange it so that it’s down on my level if I'm sitting and up of my level if I'm standing. So, I’ll put a link to those in my show notes. They are around between $100-$150 but they are really, really nice to have. Anyway, those are my picks. Now that we are at the end of the show, we neglected to do The Best of Parley; does anyone have something they wanna share? I kind of been busy and I haven’t really looked at Parley this week.
DAVID: You know; given as far overtime we are, maybe let’s just tease people for next week.
CHUCK: Yeah and then the other thing that I wanna mention is that, this will go out in about a week which gives you about a week to read our current book club book which is Service Oriented Architecture on Ruby and Rails by Paul Dix. So, if you haven’t the book and you haven’t read it, just be aware that you have about two weeks to read it from when you get this to when that episode will be released. So, go pick it up. You can get it on Amazon and give it a read. We’ll put a link to that in the show notes as well.
JOSH: Do we wanna remind people about Ruby Nubie Project?
CHUCK: Yes, I actually got the, well, I being my assistant got the post up today. So, if you go to rubyrogues.com, it should be in the list of posts, but you can also just access it in the side bar and I'm going to get to put it on the top menu so you can just find it there too. But, we are looking for noobs, people who are new to Ruby. You can be new to programming or you can also just be new to Ruby from another programming language. We are trying to get a handle on your experience there since we are all been doing Ruby for quite a while and don’t quite remember all of the hardships that we may or may not have gone through learning Ruby. So go check it out and beyond that, thanks for listening and we’ll catch you next week!