060 JSJ Development Environments

Download MP3



01:09 - Mac, Windows or Linux?


Next Week

Reactive Functional Programming in Javascript with Juha Paananen and Joe Fiorini


CHUCK:  Are you un-indisposed? MERRICK:  Oh, yeah. I’ve been un-indisposed for years now.[Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]  [This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]  CHUCK**Hey everybody, and welcome to Episode 60 of the JavaScript Jabber Show. This week on our panel, we have AJ O’Neal. AJ:  Yo! Coming at you live from roughly an hour outside of Philly. CHUCK:  Awesome. We also have Joe Eames. JOE:   Hey there. CHUCK:  Merrick Christensen. MERRICK:  Hey guys. CHUCK:   And I’m Charles Max Wood from DevChat.tv. This week, we’re going to be talking about our development environments, setups, desk space, chairs, whatever. I’m really curious to see what way you guys have and what wisdom you have to offer. Yeah, let’s get into it. The first thing that I want to ask is, the semi-holy war between Windows machines and Macs and Linux machines. What are you guys all using for your development? MERRICK:  I use Mac. I feel so lost anytime I’m on a Windows machine and set. AJ:  I only use operating systems. So, the only two that I know of that are readily available are Mac and Linux. CHUCK:**[Laughter] How about you, Joe?JOE:  I use both, significantly. CHUCK:  Both, meaning both Windows and Mac? JOE:  OSX and Windows. I don’t use Linux. CHUCK:  Awesome. I mostly use Macs. And I kind of feel the same way as Merrick, to a certain degree. I used to do tech support for Windows and I also used to be a sys admin for Windows servers and a lot of the tricks that you could use on the servers, you could use on the desktops. But since about Windows Vista, I’m completely lost. I just go into the Control Panel like everybody else and hope I find the right thing. So yeah, I’m mostly Mac. I do some stuff on Linux. In fact, and we’ll probably talk about this a little bit, but I’ve actually recently purchased a VPS in the cloud that is going to be nothing but a development environment. And I’m seriously considering moving all of my development into the cloud. AJ:  Interesting. MERRICK:  What online editor would you use? Ace or what? CHUCK:  So, I’d SSH into the box, fire up tmux. I have Emacs open and tmux and then go from there. MERRICK:  That sounds pretty hardcore. CHUCK:  I did it for a client. We did mostly pair programming and so we used tmux so that we could both connect to the session. And it was really a convenient way to go. I’m a little bit leery of it in the sense that I don’t control the machine or the data. But if all I’m using it for is code, then I have the source control manager like GitHub or something to make sure that if it disappears for any reason, I don’t lose anything other than any configs. And even my configs, I commit to source code repositories. It worked out pretty well for them and it’s kind of nice because then I can get a nice consistent thing. The other thing that I’m considering it for is the fact that I have a client right now that I’m working with. They’re using Backbone and Marionette but they want everything tabs instead of spaces for their indentation. And so, I’m considering just setting up another user on that same box and then just tweaking Emacs config on that other user and then I can just connect to a different tmux session to work on their stuff. MERRICK: [Chuckles] It feels like a conversation you’d be having in the 80’s, you know?**AJ:  You can set it in your git config as well. CHUCK:  Oh, really? AJ:  Yeah. That way, if you happen to accidentally check out a file, you can have it so that when you push it, it automatically resaves it. I think. Wait, maybe I’m thinking of newlines on Windows versus operating systems. MERRICK: **Yeah. It’s like you’re putting git attributes, core gate global config and it’s like whitespace auto or something like that, whitespace impact, I don’t know. But I’m terrified of that because I’ve seen it jack up multiple people’s Homebrew. [Chuckles]**AJ:  Oh, you can do it per project. You don’t have to do it in your global. CHUCK:  Yeah. The problem is, is that Emacs doesn’t give you the option of doing it in your, you can either do it globally or you can set a minor mode or something in your, per file in the buffer. But there’s not a good way of doing it per project. And so I figure, if I just have my Emacs config set differently for a different user, I can just do it over there. The only problem I have with that is that if I change anything in one Emacs config, I’m going to want to change it in the other. But yeah, it worked out pretty well. I’m using Ubuntu 12.10 64-bit server, so I don’t have any graphical interface on it whatsoever. And then, the other thing that I’m doing with it, I’m hosting it at DigitalOcean. And I’ll put a link to all those in the show notes. But DigitalOcean is the least expensive VPS I found and it looks like they’ve got pretty good specs on their machines. And I haven’t had a problem so far with them. AJ:  I tried them out a little while ago just for their 12-hour trial. By the way, if you’re ever doing a course with people, like a classroom setting, anything where you’ve got to teach people, DigitalOcean is great because you can get everybody setup in three minutes with their 12-hour trial, which is enough for you to do your lab. CHUCK:  That’s good to know. MERRICK:  Yeah, the reason I think I like Mac OS X so much is it seems like a lot of the tooling these days tested Mac first and then it starts to leak into the Windows realm. We use, obviously, Linux for all of our continuous integration machines as well. CHUCK:  Right. And what do you use for continuous integration if I can ask? MERRICK:  Yeah. We have some set up with Jenkins and we also have TeamCity for other stuff. Our setup has several machines that pull from TeamCity. Some projects we’re using Jenkins. And we just have compatible agents that can build certain code. CHUCK:  Yeah. That makes sense. And JetBrains is also a sponsor of the show so shout-out to them with TeamCity. MERRICK:  I actually love TeamCity. So simple to set things up. So simple to update things. We have, in terms of JavaScript, we have all of our JavaScript unit tests, hinting, code coverage, all of that gets pulled beautifully into TeamCity. JOE:  Yeah. And what’s funny about TeamCity is it seems like tools that are multi-platform work really well on their kind of like source platform and then when they migrate them to the other platforms. So something that works really well on Linux and OS X, you take it over to Windows and it’s like a half. MERRICK:  It’s a second-class citizen. JOE:  Yeah. MERRICK:  Ruby had some problems that I remember. Node, I think, did something really amazing and that’s they made Windows a first-class citizen, and then rolled back to supporting Linux and UNIX wholeheartedly. And I think it really worked out well for them. JOE:  Yeah. But TeamCity’s one of those things that, I mean on Windows, there is no doubt, if I was going to do any CI, I’d go right to TeamCity. It’s so much easier to run than anything else. And then, you come over to Linux and it’s still just as great. I think that’s an amazing thing about TeamCity. MERRICK: **I just love continuous integration servers. I have an old Mac Pro tower that I turned into a continuous integration server at home that just does continuous integration for my personal projects, which is ridiculous because I’m not integrating with anybody. [Laughter]MERRICK:  But there’s just something so cool about them. CHUCK:  Yeah. The machine that I’m using right now to record this is a Mac Pro. MERRICK:  Oh, awesome. CHUCK:  So anyway, back to your workstations. So, it sounds like pretty much everybody’s a Mac or sometimes Linux user. What editor or IDE do you guys use to edit code? AJ:  Since I already have an operating system, there’s no need to use Emacs. I use Vim. CHUCK: [Laughter] I am a former Vim user. [Chuckles] And I made the switch to Emacs. For me, it’s, I don’t know, a lot of people have this religious war between them, but I like them both. I can use them both. I used Vim for a long time. I wound up using Emacs for about nine months straight and didn’t really want to try and switch back.AJ:  So, I’m curious, was there any particular advantage to Emacs that you really enjoy that you didn’t enjoy with Vim? CHUCK:  Yeah. Nine months’ worth of reprogramming my muscle memory. AJ:  Oh, I mean for those of us that maybe are jack-Vimmers. We don’t go to church every Sunday to the Vim synagogue but we just use it. CHUCK:  I think, really, whatever fits your workflow. I don’t see a major advantage of one over the other for any particular type of development. MERRICK:  My setup is totally schizophrenic and bipolar. I drive people crazy because I’m switching editors so much. I like certain things about different editors. When I’m doing Java, basically I have a hard time doing Java without an IDE. Same thing is true of Objective-C with Xcode. To write iPhone apps outside of Xcode is ridiculously hard. And for text editing, like JavaScripts, for the past few months I’ve been using MacVim with Alloy’s fork. It gives you a native file browser so you don’t have to use NERD tree. NERD tree’s cool too, but I like the native file browser. And I’ve also played around a lot with Sublime Text and Chocolat app is the most beautiful. I was a long time TextMate user and I was one of those people holding for the future of TextMate. And then when it came, it felt like, I don’t know, man, it felt so bombed and depleted. It was just so heartbreaking. And Chocolat was kind of like my rebound, if you will. It was that beautiful OSX editor. And the cool thing about Chocolat is the entire editor is scripted with Node.js so you can write Chocolat extensions in JavaScript. So, for JS developers, it’s an interesting editor. Only problem is it’s been relatively buggy up to this point for me. And I’m just hoping they can get that together, because Chocolat has so much potential. AJ:  All I heard was the extensions are JavaScript and I think I switched. CHUCK: [Laughter]**MERRICK:  Really cool, yeah, UI-level extensions. So, they have some Cocoa bindings to Node. It’s really cool. It’s really cool. CHUCK:  Is this the online IDE? MERRICK: **No, no, no. So, it’s Chocolat. I’m going to paste a link. To me, like I said, it was my rebound from TextMate. I was hoping TextMate 2 would be everything and then it was like a kid who never got to meet his father and then when he did meet his father he was like, “Oh, man. Why did I want to meet this guy? He’s kind of a jerk,” you know? [Laughter]**MERRICK:  And that’s what TextMate 2 was for me. And Chocolat was the kind stepfather that steps in. AJ:  So, Chocolat is just on OSX though, right? MERRICK:  Yeah. Yeah. Their tagline is ‘combines native Cocoa with powerful text editing tools’. And it’s just like, I’m a sucker for aesthetics. I’m the kind of person who when I download Vim, I’ll have to change the icon to something better that I find on Dribbble, or I won’t use certain apps because they’re just hideous, no matter how functional they are. It’s totally superficial. But I’m just a total sucker for aesthetics. And Chocolat is just the most beautiful app. So even though I’m way productive at MacVim because I’m just more well-rehearsed and practiced with those commands, Chocolat has Vim mode, but it’s exceptionally buggy. I believe if they can get the Vim mode down pat, it would be just amazing. CHUCK:  Yeah. That’s one thing that I’ve seen a lot of people say about their IDE or text editors, that, “Gee, I wish it had key bindings for Emacs or Vim,” whichever one they’re used to. AJ:  So, I also want to give a shout-out for Sublime Text because it runs on Windows, Mac, and Linux. So, I use it a lot when I’m doing tutorials or presentations because not everybody wants to make the jump into Vim or Emacs because the learning curve is a little bit high on those. You got to be willing to say, “Yeah, I’m okay with this.” Where Sublime Text, because it’s graphical, doesn’t require as much determination to get started with. And it runs on Windows, Mac, and Linux so it’s nice to be able to use something that’s going to work in multiple places. CHUCK:  Joe, we haven’t heard from you yet. What are you using? JOE:  Well, for my open source development, I use both on my Mac and my Windows box. For work, I just use my Mac, pretty much exclusively. But when I’m doing side-projects or stuff, I’ll go back and forth between the two boxes quite a bit. So, I use WebStorm just to keep the experience concise, plus I like WebStorm. It’s a really great IDE. I do use Sublime for a little bit here and there but mostly just for plain text editing. I’m not cool enough to take Sublime, add 30 plugins to it to make it like an IDE but it’s not being an IDE. So, I stick with WebStorm on both places and that works out pretty well for me. CHUCK:  Nice. I’ve been using WebStorm for this project that’s using Backbone and Marionette like I said before and I kind of like it. It’s been a little bit easier to reason with some of the stuff than maybe Emacs or Vim, depending on what I’m looking at and being able to browse through things. But the real reason that I’m using it is because it has a feature in here where you can select a file and say, “Turn all of my indentation to tabs.” So, I turn it all to tabs and then I commit it. MERRICK:  Yeah. It’s funny though, because when you do that, like on a large team, some people will go absolutely ape because git blame becomes irrelevant when you do a master reformat like that. CHUCK:  Yeah. Does it actually give me credit for changes to the whole file, even if it only changed the lines I put in? MERRICK: **No, it wouldn’t, only the line set it changes, right? We had somebody, and I’m so happy they did this, but they did an IntelliJ like convert four spaces and tabs to two spaces. And it must have been, it was definitely over 100,000 lines of code. And now, when you run git blame, it’s always kind of like that guy. [Laughter]**MERRICK:  And so, we always love to blame him for everything, even though it was probably your code, you can go, “Ah no, that wasn’t my code. Nah, no. That would be Steve’s.” Run git blame. CHUCK:  Yeah. I don’t quite have that problem because when this went through its last refactoring, the developer that did the refactoring converted everything to tabs. So, it’ll only reformat the stuff that I’m putting in, thankfully. But yeah, that’s a good thing to be aware of. AJ:  Again, you can use a git attributes file to be able to run an external filter. It doesn’t have the built-in tabs to spaces things, but you can run a filter, like some sort of command that would just switch them out for you. I would think that would probably be a good thing to try if you’re working on that kind of environment where that’s important. You don’t want to have that accidental 100,000-line commit. MERRICK:  Well, it was definitely intentional. And it was beautiful. But it’s just funny how that occurs. CHUCK:  Yeah. AJ:  Okay. So, you were saying? CHUCK:  So, are there any other pieces of software that you guys absolutely have to have to get good JavaScript work done? MERRICK:  So, it’s hard because I’m diving into the realm of JavaScript libraries and tooling. But Grunt is a huge part of my workflow. I really like Grunt.js. AJ:  Amen. MERRICK: **If you’re from Ruby, it’s kind of like the Rake of JavaScript. I guess you could use Rake with JavaScript, but I just love Grunt. It’s one of those indispensable things. I also like RequireJS. It’s just a great way. Most projects I start, if they’re sizable enough in demand and module system, I really like RequireJS. And then, obviously, Test Runner, like Mocha. I use Karma. Either Karma or Testem, both of those are excellent for running unit test and also being able to run them on the continuous integration servers. So, you can get meaningful [inaudible], which uses istanbul. So, that’s where you get your code coverage. This kind of tooling, it becomes indispensable even though it’s not software on your box. And I just love Compass. I think it’s just the most amazing CSS preprocessor that exists right now. And those are kind of my staples. Obviously, Chrome. Definitely Chrome.AJ:  Where was JSHint in all of that? CHUCK: [Laughter]**MERRICK:  You know, I actually don’t value linting as much as everyone else. I think linting is awesome and we lint all of our code, but it’s not like an indispensable thing to me. CHUCK:  It depends on how important the coding style is to you. MERRICK:  Yeah. And I’ve just found that it is really difficult on a big team to not have people endlessly fight about coding style. And so that’s why, like I said, I try to lint all my code, but when you get to a sizable enough team, it’s hard to make an objective case for certain code styles. And objective cases are usually what you need to make changes happen in an organization. CHUCK:  Right. MERRICK:  It can’t be, like, this is the current dogma of the JS community to do comma first, even though tomorrow it’ll be whatever else. And so, because it’s not completely objective, you can’t make a strong case for it. There are certain lint things that we do have on because they’re actually meaningful metrics like reduplicating variables or unused variables. We love that because it’s a huge indicator of when you deleted code but you didn’t delete all the code. So, there are certain JSHint rules and properties that are totally objective. And we have those enabled here at work. And I have a way more strict coding standard on my personal projects that I like to lint against. But it’s not like indispensable. CHUCK:  Yeah. One tool that I want to bring up that’s pretty handy is Git Tower. It’s a graphical interface for Git. Now for the most part, I just use the command line. But every once in a while, if I’m dealing with a merge conflict or something, Git Tower is an easy way to settle with your merges. MERRICK:  Oh, so true. CHUCK: **Because sometimes you get the funky <<< head =====. [Chuckles] By the time you’re done, you’re just like, “Okay, so what am I merging again? What’s the problem?” Sometimes, it’s something dumb like whitespace or something. And so, if you have something like Git Tower, or one of these others, it really just makes things a whole lot easier to reason about. The other thing that I found is that sometimes I want to do something that’s not quite the push/pull/commit workflow that I usually use. So I want to use a rebase or something. And if I’m doing something that I’m not completely familiar with or comfortable with, then a graphical interface helps a lot with that too because then you can figure out how to tell it what you want it to do and then it’ll do it for you.**MERRICK:  Yeah. I love Git Tower. I’m so glad you said that. It’s beautiful, too. And I really like Kaleidoscope for merge. Actually merging Kaleidoscope from, it used to be Sofa but they got bought and murdered by Facebook. And then, they turned and they sold the project to some other company, but Kaleidoscope is just awesome for merges and diffing. CHUCK:  Yeah. Some of these are a little bit pricey, but they give you free trials to check them out. Are there any other tools that you use on your Macs or Windows machines that make coding JavaScript just awesome? MERRICK:  So, I’m curious about people’s terminal setup because I like the stock terminal. I know that people all the time are using, like, iTerm2, or tmux or just some other terminal emulator. Do you guys use an aftermarket terminal emulator? CHUCK:  I use iTerm2. MERRICK:  You do? CHUCK:  Yeah. It gives you a whole lot more options than the Mac terminal. MERRICK:  Yeah. CHUCK:  And some of the syntax highlighting and stuff just seem, not syntax highlighting but command line highlighting and return results highlighting and stuff like that, is a little bit better there. And I’ve already mentioned that I use tmux and it just makes things a whole lot easier. The nice thing about tmux, I’ve used tmux on my local machine, and I can take it or leave it, because I can just open another terminal window to do what I want to do. But up in the cloud and stuff, it’s really, really nice because what you do is you setup your windows or your panes, I guess is what you call them. But you set them up the way that you need them and then you could just disconnect from the session and then when you reconnect you just attach back to your tmux session and you could pick up right where you left off. MERRICK: **That’s awesome. To that note, on tmux, I don’t know if you’ve heard of it, but I really like this tool called tmuxinator. And if you don’t use iTerm2, I don’t use iTerm2 just because I can’t get over the look of it for some reason. [Laughter]**CHUCK:  Hey, to each his own, right? MERRICK: **Yeah. No real reason why I don’t, just something about it doesn’t look right to me. It’s just totally [inaudible]. But tmuxinator lets you do workspaces. Like, you have an iTerm2 so you use YAML to describe a project, so your panes, what to do, before the project starts, et cetera, and then you can just launch straight into a project. It’ll create a tmux session for you with all the panes and tabs and commands running.CHUCK:  Yeah. Another one that I’ve played with a little bit and I really, really dig it. It’s call oh-my-zshell, or oh-my-zsh. And I want to get into it a little bit more, but my terminal really isn’t my top priority for this kind of upgrade or whatever. But basically, Z shell is an alternative to bash. And then oh-my-zsh basically is a collection of a whole bunch of configurations and commands that make dealing with your Z shell a whole lot easier. And it looks really cool, and I’ve worked with some other people either coaching or as coworkers where I’ve logged into their machine where they were using it and it looks like it’s really powerful. So, if you’re looking to upgrade your terminal experience, I’d definitely give that a look. MERRICK:  Yeah. And to that note, bash-it, if you prefer not to switch to Z shell, bash-it’s kind of a similar project. CHUCK:  Oh cool, I’ll have to check this one out. I had heard of it. MERRICK:  Yeah. Also, in terms of tooling for my box, obviously using nvm for node managements and rvm for Ruby management, et cetera and then Homebrew for a package manager, the first thing I always do when I get a new machine, because it’s kind of the foundation, is get Xcode and the compilers installed and then installing Homebrew because from there you can install anything in a consistent way. CHUCK:  Yeah. Homebrew is definitely a must for me. On my laptop, I actually have MacPorts and Homebrew installed and that’s a headache, so don’t do that. MERRICK: [Chuckles] Sounds like such a cheerful road.**CHUCK:  It is. Well, I started out with MacPorts because back when in initially got my Mac, that was what everybody was talking about. And then things moved to Homebrew. And anyway, so I wound up installing Homebrew on there and I sort of crippled MacPorts. Anyway, I’ve uninstalled MacPorts off of that machine five times and it’s still there. Their whole process is broken. But it is a handy way to get something, so I’m not going to bash them too hard because it is a handy tool. But if you’re looking for a package manager for OSX, Homebrew is definitely the way to go. MERRICK:  Yeah. Homebrew is indispensable. I love it. CHUCK:  As far as databases go, I used to install Postgres through Homebrew and that’s what made me think of this. But any more, you can get away with using Postgres.app and it’s actually, you just manage it like any other apps. You just turn it on when you need a database on your dev machine. And then when you’re done, you just stop it. MERRICK: **Plus, it has just a beautiful icon. [Laughter]**MERRICK:  Sorry, I’m a sucker for aesthetics. And then, I just switched to Google Music yesterday, but having like Rdio or Google Music or something that’s streaming music is something that I actually have to have. CHUCK:  Yeah. Let’s talk about that for a minute. So, do you guys listen to music while you do your dev? AJ:  Yes. MERRICK:  Totally. CHUCK:  So I have to ask, what type of music? Maybe you can name a few bands or something or albums that people should go check out? MERRICK:  So, I could start. I feel like I’ve talked most of this episode. But when I really want to buckle down and focus, I’ll listen to post-rock music, like Explosions in the Sky or Sigur Ros or Album Leaf. But for the most part, when I’m just casually working, it’s just, I think I’ve picked a musician almost every pick at the end of this thing. And so, it’s pretty like from acoustic to hip-hop or whatever. I really like words. CHUCK:  Nice. How about you, Joe? JOE:  I listen to a lot of Christian rock. But when I get really intense and I need to really focus, I find that it’s a little distracting. Lately I’ve been just kind of instrumental stuff. Lately, I’ve been listening on Spotify, open up a star wars, all the episodes in a playlist and just randomly go through songs. Is that incredibly geeky or what? CHUCK:  That sounds awesome, to be perfectly honest. JOE: **It’s anti-hipster, but it’s pretty geeky. [Laughter]**AJ:  So, I’ve mentioned this before, but there’s OverClocked ReMix. And I’m kind of ADD, so I really like listening to music while I’m working because it distracts that part of my brain that needs a distraction so that the other part of my brain can focus. And I like OverClocked ReMix because it’s video game music. So, there are no words. There’s nothing to distract the logical part of my brain. It just envelops the abstract part of my brain and lets the rest go to work. You know what I’m saying? CHUCK:  Yeah. I found that, so I kind of do this, whenever I say this people are like, “Oh, no! You can’t possibly work that way.” But a lot of times when I’m working, I’ll have podcasts playing. And so, I’ll just… MERRICK:  What?! CHUCK:  Yeah. MERRICK:  That’s hard, man. CHUCK: **And so, I’ll just sit here and I’ll listen to the podcasts and write my code. Sometimes, it does get distracting and so I’ll just stop it. But most of the time, I just have a podcast going. Every once in a while, I am in the mood for just music and like you guys and oddly enough, since I listen to podcasts all the time, I can’t listen to music that has words to it while I’m trying to focus. [Laughter]CHUCK:  Yeah. My brain is broken. Anyway, so what I wind up doing is I’ll either go with classical music, and there’s a terrific collection of a hundred classical pieces on iTunes that you can get and I’ll put a link to that in the show notes. The other one that I’ve gotten into is Joe Satriani. I don’t know if I said his name right. MERRICK:  Beautiful guitar. Yeah. CHUCK:  Yeah, great stuff. And then there’s another one that I’ve listened to and I’m trying to remember what his name is. I’m actually looking at my music collection here. But anyway, there’s some terrific stuff that you can listen to. I have a whole bunch of Disney music too, and I can’t listen to any of that while I’m working. JOE: [Laughter] So speaking of listening to odd things while working, sometimes I’ll listen to a soccer game while I’m working because even though I love soccer, you can go a long time before anything important happens in a soccer game. So, it’s almost like white noise.**MERRICK:  And then, when you hear a guy get more excited, JOE:  Yeah. MERRICK:   Woooooo! Then it’s like, “Oh, I better flip the tab.” JOE: **Yeah, it only happens like two or three times a game so it’s all good, right? [Chuckles] If you want to keep up on your EPL but you don’t have time to just sit down and watch the game, you store it in the background and then get to watch the goals and that’s it. The other funny thing that I like to listen to is open up Arrested Development in Netflix in a background tab and just listen to it, because it’s hilarious.CHUCK: [Laughter] Nice.**MERRICK:  Yeah. I listen to comedians sometimes, too, like Louis C.K. or something. JOE:  So, I was really surprised to hear that Merrick doesn’t know about this. But there’s a website called Aurgasm and it’s A-U-R as in aural. And it’s done by Paul Irish where he goes out and finds eclectic music and brings it, talks about it or whatever. I’ve actually never been there, just heard about it. I thought Merrick would be all up in its grill, but apparently he hasn’t found this. So, I’m going to pick… MERRICK: **I don’t want to have an interaction with HR and they’re like, “Hey, we notice you’ve been going to a-u-r-gasm.com.” [Laughter]**JOE: **Yeah. It’s those future [inaudible] now, right?**MERRICK: **Getting testacular at work was hard enough. [Laughter]**CHUCK: **Oh, man. [Chuckles] Awesome. So, do you have special headphones that you like to listen on? I guess you can’t do a speaker in the office.**MERRICK:  It’s QuietComfort. I love those things. I love those things. And I also have to give a shout-out to the Performance revolution mouse, the Performance MX from Logitech. I’ve had all the iterations of that mouse. I just love that mouse. JOE:  I really wanted to pick me up a pair of those Bose, what do you call them? MERRICK:  QuietComfort. JOE: **QuietComfort headphones, but I couldn’t find a time machine that would take me back in time to when I was single and had no kids, so. [Laughter]**MERRICK:  They’re expensive. That’s true. CHUCK: **What, the headphones or kids? [Laughter]JOE:  The headphones. MERRICK:  Both. [Laughter]CHUCK:  The answer is yes. JOE:  Not the kids, just the headphones. AJ:  So, I’ve got some Ultrasones and the thing that I like about them is the sound is really roomy. It doesn’t feel like the sound is right there in your ear. It sounds like it’s further away. And they supposedly protect you from loudness, a little bit, the way that they project the sound is supposed to be able to give you that feeling that it’s louder without actually putting decibels into destroying your eardrums. MERRICK:  Oh. CHUCK:  Yeah. When I’m listening, I’m usually either listening on my earbuds on my iPhone or I also have this, it’s the BlueSYNC OR3, which is a Bluetooth speaker. Because I work at home, in an office, it’s in one of the bedrooms of my house. So something like this works well. I actually just bought my wife a JAMBOX, which is another Bluetooth speaker. She listens to audio books a lot. MERRICK:  Is that from Jawbone? CHUCK:  Yes. MERRICK:  Those guys are doing such cool stuff that has such a cool look. It’s so like stark, you know? CHUCK:  Well, but the other thing is, is it Jawbone that makes it? Anyway, they just sound terrific. They sound so good. MERRICK:  They just look amazing, too. CHUCK:  Yeah, they look great. So, I got her one of the little round ones. I guess they have another JAMBOX that looks more light an earpiece and stuff. Yeah, they’re great. MERRICK:  I’m going to mention something that’s totally obvious to everybody, but GitHub is becoming way more valuable because I’ll just make private gits and share them with people all the time to discuss questions or work around ideas and iterate on them. And then, that doesn’t count all the learning ability. I honestly feel so blessed we live in a time where I can upload code to something like GitHub and just be totally educated and made an idiot because it’s just amazing. The amount of education you can get by just producing GitHub and trying to be involved. CHUCK:  Yeah, it is. It’s pretty awesome. And they’re always coming up with new stuff. MERRICK:  Oh, yeah. Those guys, I would love it if they did -- I know they do a little bit, but I would love it if they did even more discussion about their development process because they iterate so much. And their uptime is pretty good. I’m just curious how they’re producing so many features, even as they scale up because usually, as a company gets bigger, they produce less, sadly. It’s this weird paradox that I’ve seen. And GitHub just seems to keep cranking, and I want to know how. CHUCK:  Yeah. Well, I know that some of it is that they let their developers do more or less whatever they want as long as it’s in the best interest of the company. I think that kind of freedom and stuff does well. But I agree, it’d be awesome to go, like sit in their office for a week and just see how it goes. MERRICK:  Exactly. CHUCK:  What kind of desks or chairs do you guys have? Do those make much of a difference for you in your setup? JOE:  Merrick sits on a stool. MERRICK: [Chuckles] No, actually, I did buy a chair recently that I love. Everyone else go first because I’m going to have to try to see if I can find this in my history.AJ:  I definitely have to have the table and the chair at the right height because I’m really tall. I think I’m always compromising and never quite sitting the way that I want to. But I definitely know that if that height ratio is off by just an inch or two, my wrists will start to hurt really bad after a few days. CHUCK:  So, what kind of desk and chair do you get? Or do you just get cinderblocks and stuff? AJ:  Actually, you know what works best for me? My favorite position is actually just to lay down on the couch and code with the laptop in my lap and my head, not resting on the armrest but kind of like have my back propped up a little bit. That is my least painful position, for sure. I generally don’t like working at a desk if I have the option of working on a couch. MERRICK:  So, I found that order. It’s the Mirra Chair by Herman Miller. And I love it. It’s awesome. It’s my home office chair and it’s terrific. JOE:  Did you pay that for it? MERRICK:  I absolutely did. JOE:  Oh, my gosh. MERRICK:  Yeah. But it’s totally awesome. Totally worth it. CHUCK:  Nice. It looks a lot like mine. Probably because my chair is a Herman Miller Aeron. MERRICK:  Oh, nice. CHUCK:  And, oh my gosh. I cannot even tell you. Of course, what convinced my wife to let me buy it was that the chair that she had bought me for Christmas a year before or something, whenever she got it, which was like a $100 chair from OfficeMax, it broke. And it broke while I was sitting in it. And so it totally dumped me on the floor on my back. And it was just totally busted because it was one of those that has the cheap armrests that screw into the base and then into the back. And because there’s a hole there, it creates a weak spot. And yeah, it broke. But this is, it’s been awesome. And the thing is they come with a 20-year warranty or something, something crazy like that. So you make sure you register the chair with Herman Miller. And oh my gosh, I love this thing. I also bought the headrest for it. And that’s really nice, too. So, I could prop… MERRICK: [Inaudible]**CHUCK:  What was that? MERRICK:  Looks like Stephen Hawking’s style. It’s awesome. CHUCK:  Yeah. It sticks out enough to where I can totally prop my head up. And so, I’m pretty well-relaxed sitting in it. The other thing that I got, and I’m going to have to look it up, but I have a little footrest. It’s a little ottoman footrest. It cost me $15, I think, on Amazon. And it totally collapses and you could just put it away. So, I prop my feet up and everything while I’m coding. So my feet are propped up, I’m leaning back in my Aeron, I’ve got my headrest, putting my head at a comfortable but right angle for seeing this. And it’s terrific. AJ: **Guys. I think I got everything that you’ve got with the couch. [Laughter]**CHUCK:  Almost. I have one more thing that I want to share and that is that I’ve got these, I spent about $150 a piece on the arms that hold my monitors up and so I can adjust them to any, well not any height, but within a few feet, I can adjust them to any height, any position. You can basically turn them facing all the way down or all the way up so that they’re basically flat. And that’s made a lot of difference too, because then I can adjust it and put my monitors wherever I want them so that I can get the development done. And so, that’s really nice. I’ll put a link to those in the show notes, too. I just have to find them on Amazon. MERRICK:  And lastly, my laptop bag is one of my most favorite things that I have. It’s from Saddleback Leather. It’s like this satchel. Originally, I got it because it makes me look like Indiana Jones. JOE:  It makes him look like a boss. Not even kidding. I love his satchel. MERRICK:  Thank you. Thank you. JOE: **I thought about stealing it. Then you’d know who had it when you saw it next. [Laughter]**MERRICK:  Yeah. I really like it. It’s just a cool, cool leather satchel. I’m a fan of looking like Indiana Jones. I strive to get that appearance. CHUCK: **Yeah. Mine is -- I’m trying to remember. Because mine actually is made by a luggage company. And so, it gets classified with the luggage companies. I’ve heard a lot of good things about Saddleback Leather though, and I love the stuff that they come out with. It looks terrific. But mine is Samsonite or something. I’m trying to find the marking on it. But anyway, I actually had to look to find it because a friend of mine had one. I really liked his. But anyway, I’ll figure out where to get it. But it’s got, like, a million pockets on it. And it has two pouches, one for your laptop and one for everything else. It’s really nice. I really like it. So, I’ll put a link to that too. But dang, Merrick, I’m a little bit jealous. [Chuckles]**MERRICK:  Yeah. I really like it. Also, I’m a sucker for aesthetics, though. CHUCK:  Yeah, it looks nice. Speaking of which, are there any things that you take with you when you travel that make development a little bit easier? So, I know Joe travels a little bit for speaking and stuff. JOE: **My Kindle. [Laughter]**JOE:  No, I don’t necessarily really have anything that I use. I travel a lot between work and home and that’s basically my same setup other than I have another bag that has some clothes in it. My backpack that I use to carry my laptop has everything in it already. CHUCK:  So, if you go to work at a coffee shop or anything, there’s nothing special you take with you? JOE:  Exactly. I’m setup to work anywhere. MERRICK:  So I want to make, this isn’t a travel one, so totally ignore this if it’s something you don’t care about. But I really, really like Vagrant. Just, you know, virtual machines. And to run virtual machines and VMware Fusions. So those two things are wonderful. And I really like provisioning local virtual machines with Puppet or chef, because then the virtual machine and what it takes to run a project is actually version controlled with the code. So, if older code in the project runs on an older version of Node or Ruby or whatever, it gets versioned with the code. But you can also use those same provisioning scripts to setup your continuous integration servers and your deployment servers, if you’re hardcore enough. But it makes working on big teams wonderful. At least, it’s a little bit easier than trying to have a readme and everybody installs things their own crazy ways. CHUCK:  So, are you using Vagrant with VMware Fusion or with VirtualBox? MERRICK:  For free, you can use it with VirtualBox. And then, they have a paid VMware Fusion license. It comes back to the aesthetics. I probably sound superficial, but VirtualBox is just hideous to me. So, I actually paid for the VMware Fusion. CHUCK:  Nice. AJ:  But VirtualBox works really well. And they’ve got snapshot features that are better than Parallels or VMware. CHUCK:  Yeah. I have to say that I really like Parallels, but I haven’t seen the latest version. And the version that I had doesn’t work on Mountain Lion. So, I either have to pay to upgrade or get something else. AJ:  That’s what I hate about Parallels. You can’t just buy a version and have it work. Anytime a new Ubuntu comes out, you have to buy the new Parallels. Anytime the new OSX comes out, you got to but the new Parallels. So, you have to buy it for your host operating system as well as for your guest operating system every time either one of them changes. And that just killed me. That turned me off. MERRICK: **Yeah. The trick is to work for a company that values good software enough to pay for those upgrades for you. [Chuckles]**AJ:  It’s just ridiculous. It’s too much of a hassle for me to have to upgrade to get my work done. I hate that VirtualBox, every single time I open it, is like, there is a new upgrade. But it doesn’t stop me from being able to get work done, to force me to do the upgrade. That’s not worth money to pay for a product that does that to you. MERRICK: **I think you’re making one of those crazy assumptions again, with all due respect, kind of like the jQuery assumption. [Laughter]CHUCK:  You’re never going to live that down, AJ. MERRICK:  You’re just making it sound like the project invalidates itself when an update is lost. So, that’s just simply not true. CHUCK:  Yeah, well it is obnoxious that VirtualBox every time I open it up is like, there’s a new version. But it is nice that I can just click it away. Done. But yeah, I totally see what you’re saying. The interface looks like it’s 20 years old and starting to rust. One other thing that I really like when I’m out, if I’m working in a coffee shop or something, or if I’m traveling, is my little Anker Battery backup. It’s just so handy to have. Whenever I’m going anywhere, it’s one of those things where I can just plug it in and it charges my phone up within a half hour. I mean, that’s it. It’s so awesome. JOE:  Yeah. That’s so nice. MERRICK:  That sounds really cool. JOE:  I need to get me one, for sure. CHUCK:  Yeah. I’ll put a link to that in the show notes, as well. One other thing when I’m traveling, and this is something that I bought recently and I tried out when we went to Denver this last weekend. It’s a D-Link SharePort Go Mobile Companion. So basically, what you do is you can plug it in and it’ll charge up, so it’s got a battery in it. And then you can either plug an Ethernet cable into it or you can tell it to use another WiFi as its source. And then all of my devices are setup to have this WiFi in their preferred list. And so, it takes up one IP address on the wireless. So, if you’re only limited to one, if you’re in a hotel that only lets you connect one device, things like that, you connect this device and you connect all your other devices to it. The other thing is you can set it up to use a VPN or encrypt the data that it’s sending back. So, if you’re on an open WiFi, then you can use this to secure things up so that you’re not sending stuff in the clear, across the open WiFi. MERRICK:  That’s cool. That’s really cool. CHUCK:  But other than that, traveling yeah, I just take the stuff that I usually take with me anyway. MERRICK:  And obviously, Chrome developer tools. Hard to forget that one. JOE:  Yup. CHUCK:  Oh, man, how do we live without Chrome developer tools? MERRICK:  Yeah. AJ:  Firebug, back in the olden days. CHUCK:  I remember that. And Firebug works okay if you have to do stuff in Firefox. JOE:  Ouch! If you have to do stuff in Firefox. Not that anyone would want to, but if you have to. CHUCK: [Laughter] I’ve just gotten so used to Chrome. And I’ve got all the plugins I want in it. But yeah, that’s sort of how I feel.MERRICK:  Ultimately, I’ve learned that people are just productive in whatever their own individual setup is. It’s so much more subjective than the holy wars try to make it seem. CHUCK:  Yeah and in a lot of cases, one isn’t necessarily better than the other, just fits better into those folk’s workflow. MERRICK:  Exactly. CHUCK:  Yeah. So yeah, the only other software that I really want to mention is the software that I use to get stuff done and keep up with my social media. So, that’s Tweetbot and OmniFocus, are the other two that I use. MERRICK:  So, explain OmniFocus. It seems like something that’s awesome, but it’s just a little expensive. So, I’ve always wondered how I can justify the cost. What do you do with it? CHUCK:   So, it’s set up sort of around GTD, Getting Things Done, which is the book. And so, you have projects, you have contexts, and then you have tasks that you put into both. So then, you can look at things in the context of work, you can look at things related to a specific project. You can also, it’s got plugins so that you can pull in webpages, if you’re on your desktop anyway. You can also pull in Emails, so you can put Emails into your to-do list. I do that sometimes, if I need to reply to an Email, things like that. But the real handy thing for me beyond that is that it has its own syncing service and then I can sync it to my phone or my iPad. So, when I’m out and about and something comes up then I can just put it in. Or if I think about it, I always have my phone with me so I can just add a task to OmniFocus and then it’ll show up on my desktop. And then in particular, with running my business, a lot of times then I can come in, I have a prioritized list of the projects I’m working on. And so, I can go and see what the next steps are on the top couple of priorities and decide what I need to do next. MERRICK:  I like that. CHUCK:  So, it works out really, really well. Another one that I’ve used, if you’re collaborating with people, it’s called Asana.com. And that’s strictly online. So, that’s both a blessing and a curse, is that it’s available everywhere but you have to get online or open a browser to use it. And with OmniFocus, the nice thing is that it’s just on all of my devices. So, it’s with me everywhere anyway. And that all works out real well. The other thing is, with OmniFocus, is that it gives you one context that’s normal, that’s part of GTD, and that is waiting. So, if you’re sitting around, waiting for something, like if you’re at the doctor’s office or if you’re waiting in the carpool line to pick up your kids from school and you’ve got ten minutes, you can pull up that context and then you can say, “Oh! Well, I needed to call so and so,” or, “I needed to send this Email off.” And so yeah, you’re punching it in with your thumbs on your phone, but you’re getting crap done while you would otherwise just be sitting there waiting for something to happen. MERRICK:  Yeah. That’s awesome. I really like Trello for collaboration, too. CHUCK:  Yeah. MERRICK:  It’s like a Kanban board. CHUCK:  Yeah. And again, it all depends on what works for you and what you will use. The thing about the collaboration that I like about Asana and some of these other ones, Trello or whatever, is that it’s really easy for people to use. And usually, the hardest part of any of these systems is to get people to use them. MERRICK:  Yup. CHUCK:  It’s not whether or not they can get the stuff done in it. Most of them are functional that way. It’s okay, well can I get somebody to use it. And Asana is pretty user-friendly and it’s pretty. MERRICK:  It’s gorgeous. It’s absolutely gorgeous, yeah. CHUCK:  So anyway, that’s kind of where I’m at there. But other than that, it’s just my phone and a few websites that I know where to get stuff. And you’ve heard pretty much everything I use. Is there anything else that you guys want to add? Joe? AJ? I know Merrick and I have talked a lot. AJ:  So, when we were talking about satchels and whatnot, I failed to mention my deep and abiding love for the blue Novell laptop bag. I don’t believe it’s available at any retailer. But if you’ve got some extra that you’d like to send to me, I will take them. CHUCK: [Chuckles] Nice. I had a red Novell bag and I upgraded to the one I have.AJ:  Is it the other gray one now? Or do you have the blue one? CHUCK:  I had one that had gray and it got red lettering on it, but I think I threw it away or gave it away. AJ:  Okay. Yeah, I had the gray one at first and I switched over to the blue one and I wore it slam out until the zipper started breaking and the threads were coming undone at the seams. And then at OpenWest, somebody was gracious enough to dig one out of their closet and give it to me. So, I’m looking to get another one because I bet this’ll only last me three or four years. CHUCK:  [Chuckles]**AJ:  Maybe I’ll upgrade to a real satchel by then. JOE: **Nice big leather one that’s bullet proof. [Laughter]**AJ:  Yeah. CHUCK:  Like Merrick’s. I have to tell you, Merrick, that one is gorgeous. Oh my gosh. MERRICK:  They give you a lifetime warranty on it, too. CHUCK:  Yeah, I’ve heard that about Saddleback. MERRICK: **Yeah, it’s one of those lifetime bags. I’m hoping my grandchildren will cherish it rather than sell it on eBay or whatever eBay is. [Laughter]**CHUCK:  So, is it lifetime you can pass it down to your kids, or is it lifetime until you kick the bucket? MERRICK:  Exactly. Until I die and then they put it on eBay. JOE: **Or is it lifetime as in for the life of the product? Because those are the weirdest warranties. Okay, when it’s like this product is guaranteed to last for the lifetime of the product. [Laughter]**JOE:  When the product breaks, it’s no longer under warranty? MERRICK:  That’s awesome. CHUCK: **I’m going to have to write a guarantee like that. Make it sound terrific, but it really isn’t. [Laughter]**AJ:  Seriously. Pick up a cheap pair of headphones at Walmart and look at the warranty for them. CHUCK:  Speaking of which, I actually went and bought, the headphones that came with my iPhone, they were actually shorting out in a way to where it was skipping ahead 15seconds when I was listening to a podcast. And so, I stopped at BestBuy and I bought the headphones. I’ve had these headphones for less than a year that came with my iPhone. And so they’re like, “Do you want a two-year warranty on those headphones?” And I’m like, “Uhuh,” because I know I’m going to kill them. MERRICK:  Yeah. So, I lied. It’s not a lifetime. It’s 100 years, 100-year warranty. CHUCK:  Oh, there you go. MERRICK: **And they have awesome videos of sharks and alligators eating the bags and then the bags are just totally okay afterwards. It’s pretty awesome. [Laughter]JOE:  I’m really worried my bag might get eaten by a shark. So, what can I get? MERRICK:  Oh, they have this picture of an elephant stepping on it. JOE: [Chuckles] Well, I think my bag would handle that.**MERRICK:  I know, it’s just so funny. CHUCK:  I’ve heard the guy that started that company interviewed a few times and he actually sounds like the kind of guy that would do that. Yeah, we’re going to see if it’ll take being tore up by some animal you would never ever encounter in real life. MERRICK:  Exactly. CHUCK:  Yeah. Anyway, so should we get to the picks? MERRICK:  Sure. CHUCK:  I guess this show has kind of been all picks. MERRICK:  It’s a giant pick show, yeah. JOE:  Yup. CHUCK:  Anyway, Joe, do you want to start us off with picks? JOE:  Sure. So, I’m going to pick that aurgasm site, even though I have never used it because I’m not really that much into eclectic music, but I do like Paul Irish and I respect him. And so, I’m going to pick his site, aurgasm. It’s aurgasm.us, it’ll be in my show notes. And then, I’m going to pick MLS live. It’s a service over at, you can find it at MLS Soccer. And what’s really cool about it is it shows all the soccer games that happen in the US in the major leagues soccer every week. And you can watch basically a condensed 10/12 minute version of the game, of every game. And they do that every week for every game and it’s really awesome. It costs like $50 or $60 a year, although we’re partway into the year so there might be a discount. But it’s just a great way to watch awesome soccer and have it condensed down into a much shorter time format so you watch more games. And the game is more exciting. So, I’m going to pick that. And the last pick is going to be the Michael J. Fox Show. I saw a preview ad for this and I was so excited because I love Family Ties, I love Alex P. Keaton. And when Michael J. Fox did other stuff, I was really excited. He’s going to be back on the air on a new sitcom this Fall called The Michael J. Fox Show where he plays a newscaster who developed Parkinson’s and left newscasting and then decided to go back to work. So, he’s basically playing himself. And the previews make it look freaking awesome. So, go Google the preview and watch it. I’m really excited for that coming out this Fall. CHUCK:  Awesome. AJ, what are your picks? AJ: **I forgot what I was going to pick. I’ll try to remember. [Laughter]**JOE:  Is it a backpack? Was it a blue Novell bag? AJ:  Well, I already kind of picked that in the show, you know. JOE:  You should pick it twice. Three times. AJ:  I pick my nose. CHUCK: **AJ’s picked his memory exercises. [Laughter]**CHUCK:  Alright. Merrick, what are your picks? MERRICK:  So, I have one pick. And I work for a business intelligence company. CHUCK:  They sell intelligence? MERRICK: **Yeah. That’s our goal. Really, it’s to just. [Laughter]**MERRICK:  No, we’re not Google. But we do a lot of visualization and talk about understanding data. And there’s this video from Brett Victor, the guy that did that interactive IDE editor kind of rehash, rethink video a while back. And this guy just has such an ability to think abstractly and creatively. And he’s basically talking about merging the freedom and the flexibility of drawing by hands with the dynamicity of using code. And he built a little tool to try and, a proof of concept if you will, just a starting place. Anyway, the video is very inspiring and for someone like me who tries to work on these kinds of problems as part of my job, as what I do, it was totally enlightening and inspiring to see someone think so differently about the subject. JOE:  Cool. CHUCK:  Awesome. Alright. AJ, did you think of your pick? AJ:  No, it never came back to me. I’m sorry, bro. CHUCK:  That’s okay. Alright, well I’m going to do a couple of picks then. The first one is something that actually does fit in with this episode that I didn’t even think about, and it’s this Rabbit Mini Portable Stand for iPhone. And really what it is, is it’s just two pieces of plastic with some rubber on them so that your iPhone doesn’t slide off real easily. It was like $10 on Amazon and totally worth it. And what it is, is really just a convenient place for me to put my iPhone when I’m sitting at my desk and then when I’m playing podcasts or music or whatever. I can just plug it in, set it on this thing and hook it up with my Bluetooth BlueSYNC OR, which I didn’t put a link in the chat yet. And it’s really, really handy. The other pick that I have is a pick that’s something that I’ve been using on and off for a while. I really like The Pragmatic Programmer’s books. And just the way they do things over there. They basically will give you DRM-free copies of all of the books that you buy from them. So, whenever they get it Emailed to me, I can get it in pdf, epub or mobi. So basically, if I want it in pdf or I can play it on the Apple devices or the Kindle, it’s really super. And anyway, I love a lot of the books that they put out. So, I highly recommend you go check them out. They’re at PragProg.com. So AJ, did you remember? AJ:  I did. I remembered. So, I was going to pick Raspberry Pi because there are a lot of these small boards but Raspberry Pi somehow just managed to build an awesome community and put things together in a really simple way. It’s probably the least difficult platform out of the embedded Linux or arm Linux, I guess, because embedded weenies don’t like it when you maybe call something that’s this powerful and capable embedded. But of the ARM Linux boards, I think Raspberry Pi is probably the easiest to get started with, the most straightforward. Perhaps followed closely second by Pandaboard and then there’s the Linaro project that is kind of really helping drive all of that community as well. So yeah, I’m picking those three things but Raspberry Pi most of all, because it’s just so doggone simple. Love it. CHUCK:  Nice. Alright, well that was an awesome episode, guys. I really, really enjoyed it. And definitely some things that I’m going to go try out. MERRICK:  Yeah, that was fun. CHUCK:  Alright. So, I think we actually have a guest next week. We’re going to have Juha Paananen and Joe Fiorini talking about reactive functional programming in JavaScript. So, it should be really cool. I’m really excited about it. MERRICK:  That sounds awesome. CHUCK: ** Alright. Well, we’ll wrap the show up. Don’t forget to go and contribute to the Indiegogo campaign for DevChat.tv. And we’ll catch you all next week.

Sign up for the Newsletter

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