AJ: Okay. Let me try to figure out why I have no sound. I’m gonna quit Skype and restart it. Call me back afterwards.
JAMISON: Sucker! We’ll never call him back in.
CHUCK: [Evil laugh]
[This episode is sponsored by ComponentOne, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]
[Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net.]
AJ: Coming at you live from the German fortress of Bettendorf, Iowa.
CHUCK: You know, you say, “comin’ at you live,” every week and it’s always time delayed. I mean, that’s a podcast, right?
JAMISON: This is not, “comin’ at you dead from the zombie apocalypse,” or something.
AJ: I’m live right now, Okay? And I’m in a town called Bettendorf that sounds like it should be in Germany, but it’s in Iowa.
CHUCK: [Chuckles] Okay. We also have Jamison Dance.
JAMISON: Hi guys, I’m just still in Utah still.
CHUCK: Utah, woohoo! We have Joe Eames.
JOE: Coming at you… I guess live, from a closet at Domo.
CHUCK: Sweet. What are you doing in the closet Joe?
JOE: [Chuckles] I’m not getting … by that.
CHUCK: And I’m Charles Max Wood from Devchat.tv. So we were discussing what we were going to talk about this week because I’ve been a little bit of a slacker and haven’t had the time… so, I guess I’m not a slacker; I’ve been too busy. I haven’t had the chance to plan out episodes for the next few weeks. So we were talking and Jamison mentioned that we could talk about community and I said, “Yeah the community kind of confuses me.” And I think I got an in-chat chuckle from that. Anyway, so I thought, let’s talk about it. Let’s see if we can make sense of this thing.
Because it seems like from what I can tell, there are almost like different opinions communities out there, that’s kind of fragmented. You have the people that follow everything that Douglas Crockford says and then you have the other people that follow everything that Brendan Eich says, and you have the other people who agree with somebody else and then some people are talking about Node and some people are talking about the browser; and even within the browser, some people are talking about jQuery and some people are talking about anything but jQuery. Am I reading this wrong? Is it really kind of that messy or am I missing something?
JAMISON: Or they are designers or something.
CHUCK: Did you say, “Make a little button move” or “make a little butt move?”
JAMISON: [Chuckles] Depends on the designer.
AJ: Rephrase the question?
JOE: Yeah, rephrase the question.
CHUCK: So basically, how do I figure out essentially who’s right or who’s right for me to be paying attention to? I mean, should everybody be paying attention to Crockford or are there certain people that should become involved in the different part of the community.
AJ: I think everybody should at least watch the 8 videos that Crockford has. I mean, whether or not you subscribe to his religion or not, you should at least watch it because there’s a lot of valuable information there. Same thing with the jQuery guy; you should at least get on his blog and go through some of those popular posts he’s got because there’s some really valuable information there.
CHUCK: You’re talking about John Rezzig?
AJ: Yeah, John Rezzig. Sorry, I shouldn’t have just called him, “the jQuery guy” like that.
AJ: “The Yahoo Ecmascript guy.”
CHUCK: Who worked at PayPal, didn’t he?
AJ: I didn’t hear that yet.
CHUCK: Yeah, I mean it is and it isn’t. I think every community has the little groups out there that are doing their own thing and exploring areas that are a little bit different from sort of the mainstream in whatever language or community that’s out there. And Ruby definitely has those, but it seems like in Ruby Conf and at Rails Conf, you do tend to get more of a homogenous message from the different talks that you attend. People tend to care about the same things. And a lot of it does kind of center around good coding practices and things like that, more than certain idioms of the language or certain styles or whatever. Everybody seems to adopt the same sort of coding style.
JAMISON: Well, I see that as a plus because it’s not that there’s more “noise,” it’s that there’s more “stuff” happening.
JAMISON: Like within one language, you have really… I guess not innovative, event-driven programming on the server has been forever; but a really innovative, easy way to do event-driven programming in Node and all these other cool things that it brings streams and just sweet stuff like that, but also really advanced frontend stuff. So I think it’s cool to be able to sit in one language and do so many different things because I get bored if I stay doing one thing forever. Like if I was just a frontend guy, I would get pretty bored. So that’s a positive thing for me.
CHUCK: Yeah. I can see that. At the same time though, I think if people who are new to the community can kind of get lost its not as… not everything is available to them, I don’t think.
JAMISON: You are saying it’s not as cohesive like if you just wanna learn how to do frontend stuff, you don’t really know where to turn when you are first starting out?
Anyway, there’s not a clear path which you know is definitely both a good thing and a bad thing, but I almost feel like you need somebody who understands sort of where you wanna be at and then they can kind of point you in the right direction as opposed to in Ruby, you start looking and you tend to get referred to the same places to get started.
JOE: So I have an interesting question about Ruby, Chuck. I heard that as a whole, the Ruby community has kind of moved away from active record. Is that true?
CHUCK: I think it really depends. I still use it in Rails. There are a lot of people out there though that like some of the other ones. If you are doing NoSQL, obviously you can’t use active records, you have to use something else. I don’t know. I think a lot of people just go with what the default is in Rails.
JAMISON: You mean the “wild, wild west.”
JAMISON: Then you start rapping.
CHUCK: We are all in the wild, wild west right now, except for AJ who’s in the wild, wild Midwest.
JOE: I heard somebody once say that computer and science and astronomy are the only two sciences anymore that an amateur can make a significant landscape changing contribution to.
CHUCK: Ah, interesting.
JAMISON: Maybe with 3D printers. I don’t know.
AJ: Oh, that does sound very promising.
CHUCK: Yeah. I have to ask, Joe, you’ve been involved in the .NET community, is part of the reason why the communities are, is because it is kind of a corporate-centered or a corporate-driven product with .NET and Visual Studio? Does that change the landscape a lot or is it really the developers that are part of the community?
JOE: I really do think that the Microsoft community is dominated by the Microsoft-centric few. And people that are really active in the Microsoft community are definitely a little bit more forward thinking but the community at large, I think suffers from, “Microsoft solves this, I don’t need to worry about solving it myself.”
JOE: And that it suffers so heavily–
JAMISON: Or “Microsoft didn’t solve this; it must not need to be solved.”
JOE: [Laughs] I’ve definitely seen less of that, but certainly, there’s got to be some of that too. But as a great example as I’ve many, many times said, TFS is a whole suite. It does four different things; it does them all just okay. And so everybody is like, well, Microsoft produces products. Let’s just use that rather than let’s use that different source control, like let’s use Git instead of TFS. And let’s use a different CI system and you know, pick the best of all; were all picking just the one that’s okay and we’re not solving… so it’s hard to tie things together. Nobody is out there, “Hey, I solved the…” using Git on Windows long ago, which they have solved that. People finally have solved that using Git well. But using Git with TFS is still painful.
They don’t solve these problems because they feel like Microsoft solves this for us. So I don’t think that the community by large is thinking for themselves as far as, “I’m going to go out and solve some problem that exists and I’m going to make it open source when I publish it.” And that whole open sourced mindset, I really laud Microsoft recently for going far more open source. You know, they created this sub corporation that’s doing just open source and their whole charter is to make Microsoft products integrate well with open source products.
JAMISON: It’s also kind of a curse too. I mean there are like 30 bajillion different testing frameworks out right now and none of them have won.
JAMISON: So you do get a lot of duplication of effort.
CHUCK: Yeah, but at the same time, I mean, just to give you an example; from the Ruby community, I mean we have test unit and then we have Rspec. And somebody else came out and wrote Minitest, which was kind of a newer, faster, cooler version of test unit. And you know, they basically have built shims over the top of it so you can make your Minitest stuff look like Rspec. And some of the areas that Rspec has innovated in have trickled over into the other testing libraries.
So having that wide breadth isn’t necessarily a problem. I mean, sometimes it would be nice if you could get more of a concerted effort on something that really just rocked but at the same time, all these different people are innovating in their own way. And you know, finding different things that just really kick butt are awesome. And then the other testing frameworks will pick them up and use them and run with them. And then you wind up with something that’s a little bit better that may not have happened if all five or six guys that were working on separate things went off and did their own thing.
JOE: Yeah that’s for sure.
JAMISON: Yeah. I think you hit it on the head. AJ, said that it’s a community of amateurs a lot and I think that also kind of sums it up well that even though it’s been around for a long time, there’s lots of fresh stuff happening. I don’t know.
AJ: And Node has definitely taken that a huge step further because it brought in some smart people. People from Ruby had been invested in the language, you know?
JAMISON: There were already smart people still, though.
AJ: Well, yeah. It brought in a lot of them. Like jQuery didn’t bring in like a lot of new smart people from other languages or other background. Node brought in people that primarily worked in C. They primarily worked in virtual machines, they primarily worked in Ruby, you know? Like NPM is the result of looking at all the faults that gem has had to go through as its evolved and then solving all of them from the get go and then solving a few new ones that were found out along the way.
JOE: I’m not sure that I agree that if, say two years ago you are primarily working in C that that’s evidence that you’re really smart.
AJ: Well I guess we’ll see some flames in the comments with people like, “AJ, you’re an idiot!” blah, blah, blah, blah, blah and then we’ll know.
CHUCK: Yeah. I think part of what really drew people to Node was just that it provided an innovative way of solving the same problems that we’ve been solving for a long time. Because most of the systems out there that you use on the server are primarily procedural systems. I mean, even if you’re looking into something like Rails, where you have the MVC and all that stuff going on, when it comes right down to it, it works through the system in a procedural manner. And this is more event-driven and it’s really an interesting way of tackling some of these problems that don’t seem to fit well into the procedural area.
And so, I think what really happened was people saw it, they started experimenting with it to solve their problems and realized that it actually had a place in their ecosystem and infrastructure to build out what they needed to build. And so then people started investing in it because they wanted more power from it. They wanted to be able to do more things with it and solve the other problems that lend themselves well to it and so I think that’s how Node kind of grew into a first class citizen in the server space.
CHUCK: I was going to say they just have more time than I do.
CHUCK: Yeah. I Agree. And I think similar things have happened in the web space due to things like jQuery and stuff just kind of giving you a common denominator to work from.
AJ: Right. If you have a guide.
JOE: If you have a guide.
And then, if you are doing networking, like a chat server, there’s nothing better to start with than Node because it makes networking so dirt simple. It just takes out all the confusion and the select and the trying to understand how to manage the multiple connections. If you only get into something that’s networking, I think that NodeJS has got the best avenue of access. Because you’ll probably going to get across some good tutorials if that’s what you are coming in through. It’s just so simple. Whereas with Ruby, even building a chat server is a little bit more complicated.
CHUCK: Yeah. I can see that especially where you have things like in Ruby for example, you have event machine, but it’s not as simple, it’s not as clean as doing it in NodeJS.
JAMISON: Its abstraction built on top of a language whereas in Node, it’s in the language; it’s part of the what comes built in.
CHUCK: Yeah. It looks like Joe has to take off. Do you wanna give us your picks real quick, Joe?
JOE: Oh, yeah. Cool. My two picks for this week are Penny Arcade Expo, PAX, which is going on starting tomorrow. And if you’re hearing about it for the first time, it’s probably far too late to be there, but it’s just an awesome gaming expo with consoles and PC and computer gaming and tabletop gaming and everything put on by the Penny Arcade guys. And then my other pick is Wil Wheaton who I follow on Twitter. And he just does cool stuff; talks about lots of cool stuff. His tabletop YouTube series is really fun. And those are my two picks.
JAMISON: I don’t know who Wil Wheaton is, but he seems like some kind of like nerd god.
JOE: So sad.
CHUCK: You don’t know who Wil Wheaton is? He’s too young. He must be too young. Star Trek: The Next Generation.
JAMISON: Oh, I see that little.
CHUCK: Wesley Crusher, yeah.
JAMISON: Yeah, Okay.
JOE: That’s so sad, Jamison.
AJ: I don’t know who he is.
JAMISON: But I mean, everyone else on Star Trek isn’t worshipped by nerds all around the world. Why is he worshipped?
CHUCK: I don’t know. LeVar Burton has a pretty good following.
JAMISON: oh, that’s true. But he also has Reading Rainbow going for him, right?
AJ: Who is the Asian guy that also appears onsite at the Comic Con?
CHUCK: I’m trying to remember. He plays Hikaru Sulu, right? In the original series.
AJ: I don’t know.
CHUCK: George Takei. Yeah, he is. He’s really cool.
JOE: His Pinterest is hilarious.
CHUCK: Yeah. He’s definitely one of those interesting people to follow. But yeah, so I don’t know. I kind of off and on liked Wil Wheaton. So yeah, it just depends. But anyway, well, thanks for coming, Joe. We’ll talk to you next week.
JOE: Okay. Thanks.
CHUCK: So anyway, what were we talking about before?
CHUCK: Oh, yeah.
CHUCK: Khan Academy?
JAMISON: Do you not know what Khan Academy is?
JAMISON: Oh, now I get to make fun of you for not knowing what something is. It’s this online… it’s not as structured as like Coursera or Udacity or these university ones, but it’s just a bunch of online video tutorials for learning math or science or something.
CHUCK: Oh, Okay.
JAMISON: So I’ll post a link to this so you guys should all check it out if you haven’t seen it yet.
CHUCK: I was hoping that Khan Academy was related to Star Trek too.
JAMISON: [Chuckles] Well, maybe it’s like the six degrees of Star Trek or something.
JAMISON: Everything is related to Star Trek if you follow some chain.
JAMISON: I think it depends on your background. If you know just zero about programming, then no. And if you know nothing at all about server-side stuff or networking at all, it might be a little tough to just put it together on your own. There’s some tutorials. And it’s kind of like the to-do app version for Node that there’s just a bajillion tutorials for chat servers. So those might be good to follow along with.
AJ: I think if you don’t use anonymous functions and you use functions… yeah, if you ever do anonymous functions and you are not too familiar with programming, I think the NodeJS chat server thing can be pretty simple. But most of the examples I’ve seen use anonymous functions and I think that’s a little bit confusing to follow when you are not even familiar with the concept of function yet.
JAMISON: I don’t know what article you’re talking about.
AJ: The “Coffee Shop Doesn’t Use Two-Phase Commits” article. I’m pretty sure I’ve…
JAMISON: [inaudible] hopefully other people listening to this besides me and they might not know what you’re talking about.
AJ: Yes. So if you Google, “Your Coffee Shop Doesn’t Use Two-Phase Commits”, then you come up with this PDF which is just a beautiful explanation of event-based design. And basically you’ll see an example if you walk in to Starbucks, you order your coffee, you sit down then you get an event callback when your coffee is ready; rather than you walk up to the register, you wait and wait and wait and wait and blocking fashion until your coffee is ready; then pay, then site down.
CHUCK: I don’t drink coffee but I have been to coffee shops that function in both ways.
CHUCK: Anyway, yeah that makes sense. What about on the browser? Is there kind of a generally accepted first application that you ought to build on your browser? Or is it a to-do app? Or is that too complicated?
JAMISON: That’s like an MVC learning how to use…
CHUCK: Yeah, that’s kind of the way it struck me too.
JAMISON: That is a good question. I don’t really have an answer to that. It seems like…
JAMISON: Yeah, he’s talking about a project, not a person…
AJ: Oh, right.
JAMISON: I don’t know. Maybe you could do some really basic just DOM manipulation stuff without jQuery.
CHUCK: Right. Do something like a bingo game or something where you press a button and it brings up a number and then you click on the number to put a thing on it or something.
JAMISON: Yeah, these events somehow or something where you have to select DOM elements
CHUCK: Right. That makes sense. Huh, all right. Well, I think we’re just about out of time. I think it will be really interesting to talk about like the code exercises kind of things that we are talking about now where it’s what kind of apps do you build for practice or what kind of problems do you go out and find and solve. Do you do Conway’s Game of Life or something else? And kind of learn how to program or in some cases, learn how to learn how to program.
AJ: Hey Jamison, did you do Conway’s Game of life?
JAMISON: I did. I don’t think I ever got it hooked up to canvass though. I mean the game itself was like 5 lines of if else statement and that’s pretty much it.
AJ: Oh, wow.
JAMISON: I mean, it’s just literally, “if these squares have these designs, then do this,” kind of thing. So, it’s not very hard. But I don’t know, maybe I should put it on some canvass but I kind of abandoned that. That was the first thing I ever did in CoffeeScript though.
CHUCK: Cool. Well let’s wrap this up and get some picks out. AJ, do you wanna start us off?
AJ: Yeah. I’ll do that. First off, I have a pro tip for you: if you are ever eating a banana, eat it like a monkey. Instead of trying to peel it from the top, if you just pinch the bottom, it’ll just slip open. So when you get one of those bananas that’s a little bit too green on the top and you are like yanking at it, yanking at it, all you are really doing is like mushing the banana. Instead, if you just take the bottom and pinch it, it will split right open.
JAMISON: [Chuckles] Okay, I’m five years old; I laughed when you said, “pinch the bottom.”
AJ: Well, that’s Okay. You can do that.
CHUCK: I was thinking about when you said, “eat it like a monkey,” I’m like, “hold it with my foot?”
AJ: You did eventually do that if you have opposable thumb on your foot, yeah.
CHUCK: I’m going to get surgically altered, so I can do that then.
AJ: That’s what they did in that one movie. I don’t remember the name… Aeon Flux; yeah. It’s like a wannabe Matrix. It wasn’t really all that great.
CHUCK: It wasn’t great, yeah.
AJ: And then my other pick is a local pawn shop. It’s called, Minuteman Pawn and it’s in Orem on State St. at about 900 South. And if you want any audio equipment, there’s a guy named Alan there; with ay cool guy. Does a lot of stuff. I do a little DJing on the side so I’ve gone there to buy stuff from him and I go there a lot just to bs and kind of keep the friendship going or what not. And then it’s totally transformed since this new company bought it and rebranded it like a year ago. And I just got a MacBook Pro from there as well and I paid $1,068.50 for it. And I’m pretty excited about that.
JAMISON: Should I have it go down by 50 cents?
AJ: I had them go down by $500.
JAMISON: $500 is kind of 50 cents.
CHUCK: I know Jamison. You totally got taken.
CHUCK: All right. Jamison, your picks.
JAMISON: My first one is Counterstrike Global Offensive. It’s a version of this really old first person shooter game called Counterstrike which came out in 1999. And Valve just released a new version that’s pretty similar, but it’s just like the purest, most… I don’t know, it doesn’t have any gimmicks, which you have to unlock stuff — it’s just all about the game play. And it’s really well made and it’s pretty cheap; i think it’s only $15. I’ve been spending a lot of time with playing it a lot at work and I’ve had a great time. I think that’s my only pick. I didn’t really run across too much other stuff this week. I started doing some freelancing, so I don’t have too much time anymore. Yeah, so that’s it.
CHUCK: Awesome. So I guess it’s my turn for picks. I’ve been so busy lately; I just haven’t even had the time to think about it.
JAMISON: You can pick AJ and I.
CHUCK: Yeah. There we go. My favorite co-hosts.
JAMISON: Woohoo! Yeah, screw that Joe guy, now that he left.
JAMISON: We can talk about him behind his back.
CHUCK: So have I talked about Omni Focus yet?
JAMISON: I think so.
CHUCK: Okay. Let’s see… what am I using these days. I could talk about what I used to back up my computer because I’m really happy with it. One of them is Time Machine and the cool thing about Time Machine is its built in to the Mac you don’t actually have to do anything. I have an external drive siting behind my computer that I ordered off of Amazon. I don’t remember what brand it is. I don’t think it really makes a huge difference. But yeah, it’s just backs up my computer every day and I probably have about 30 days’ worth of backups on it. And so if I ever have to roll something back, I can — which is really what it’s there for. And then I have an offsite backup with Mozy. Now I have to put a disclaimer out there; I actually used to work for Mozy. This was back when the company had a soul.
CHUCK: [Chuckles] But anyway, I like the service, I know how it works and I’m pretty confident in the fact that it can deliver for me. So, that’s what I used to back up my work machine. And yeah, then if the machine gets stolen or my house burns down something I can just get another machine and it will restore everything off of Mozy. So I think that’s kind of the best approach for most people is to kind of have a two-tiered system at least two tiers; where one is a local backup and the other is a remote backup. I also use Dropbox and stuff to kind of store some of the stuff that I need to share between computers. And so you can think of that as kind of a backup, but it’s not the same thing.
JAMISON: Have you picked up the Amazon Glacier thing that just came out a couple of weeks ago?
JAMISON: Where it’s really key for storing tons of data, but if you want to get more, there’s some limit to how much you can get out a month; it’s like a few gigabytes a month. So it’s basically just for really long term for backups of tons and tons of data. So, if you have like a terabyte of photos or something, you can just put them on Glacier and it will be $20/year or something like that.
CHUCK: Huh, I’ll have to look at that.
JAMISON: But then if you need to download them all, you do it all like as fast as possible, it’s super expensive, so you kind of have to limit how fast you retrieve data from it
CHUCK: Right. That’s interesting. I’ll have to check that out. Anyways, so those are my picks. I don’t know that we have many announcements, so.
AJ: I did wanna pick one other thing.
AJ: Because you are talking about backup. Western Digital just released recently a 2 Terabyte, 2 ½ inch drive. And that’s pretty amazing because that’s pretty much a little bit beyond the theoretical limit of what people believed you can fit on a 2 ½ inch magnetic media. And Seagate is supposed to be coming out of something that’s … and magnet based that’s going to be able to exceed 2 terabytes but 2 terabytes is kind of like you can’t get any bigger on 2 ½. So you probably won’t see anything bigger than that for a couple of years — until Seagate gets their stuff figured out and that might take a decade.
CHUCK: CDN initiated the 2 ½ inch are the ones that goes into the laptop.
AJ: Yeah and the ones that are like the past… like the ones you can get in Wal-Mart; the “carry with you backup device” or whatever. Also, Western Digital drives, they fail, just like any other drive. Rotational media sucks. But Western Digital has the easiest, simplest, pain-free way of getting your warranty returned; you just type in a serial number online, you click “send me a new drive,” you back up your old drive and do whatever and then you send in your old drive. If you don’t send in your old drive, then you get charged like a butt load of money because they’ll charge you above retail price for their drive. But you have 30 days to send back your old drive.
AJ: And I think you have 120 days to send it in actually, but then they charge you like a $20 restocking fee, or like you send it too late fee kind of thing. But I just love Western Digital because I buy a lot of their drives and whenever they fail, I send them in and they give me a new one. And they don’t hassle me; I don’t have to run like disc diagnostics and have to like booth into Windows and all that stuff. They trust me. If I say the hard drive has failed and it has bad sectors, I check the box “bad sectors” and click send me a new one, they do it.
CHUCK: Nice. Awesome. All right. Let’s wrap this show up; thank our listeners for listening and we’ll catch you all next week!
JAMISON: See ya!