js

006 JSJ Chrome Dev Tools with Paul Irish

The panelists discuss Chrome dev tools with Paul Irish.




js

007 JSJ Online Resources for Javascript Developers

The panelists discuss online resources for JavaScript Developers.




js

008 JSJ V8 and Dart with Lars Bak and Kasper Lund

The panelists discuss V8 and Dart with Lars Bak and Kasper Lund.




js

009 JSJ Testing JavaScript with Joe Eames

The panelists discuss testing JavaScript with Joe Eames




js

010 JSJ Node.js

The panelists talk about Node.js.




js

011 JSJ Can HTML5 and JavaScript Really Replace Flash?

The panelists discuss whether HTML5 and JavaScript can really replace Flash.




js

012 JSJ Design Patterns in JavaScript with Addy Osmani

The panelists talk about design patterns in JavaScript with Addy Osmani




js

013 JSJ Knockout.js with Steven Sanderson

The panelists discuss Knockout.js with Steven Sanderson




js

014 JSJ SVG and Data Visualization with Chris Bannon

The panelists talk about SVG and data visualization with Chris Bannon.




js

015 JSJ Open Discussion

The panelists have an open discussion.




js

016 JSJ SQL and NoSQL

The panelists talk about SQL and NoSQL.




js

017 JSJ CoffeeScript with Jeremy Ashkenas

The panelists talk to Jeremy Ashkenas about CoffeeScript.




js

018 JSJ Agile Development

The panelists discuss Agile development.




js

019 JSJ Browserify with James Halliday

The panelists talk Browserify with James Halliday.




js

020 JSJ Cloud9

The panelists talk about Cloud9.




js

021 JSJ Weapons of Choice

The panelists discuss their weapons of choice.




js

022 JSJ Node.js on Azure with Glenn Block

The panelists talk to Glenn Block about Azure.




js

023 JSJ Phantom.js with Ariya Hidayat

The panelists talk to Ariya Hidayat about Phantom.js.




js

024 JSJ Strata.js with Michael Jackson




js

025 JSJ Require.js with James Burke

The panelists talk to James Burke about Require.js.




js

026 JSJ Code Organization and Reuse

The panelists talk about code organization and reuse.




js

027 JSJ The JavaScript Community

The panelists discuss the JavaScript community at large.




js

028 JSJ Greenfield vs Brownfield Projects

Panel Joe Eames (twitter github blog) AJ O'Neal (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Summer Camp) Discussion Greenfield - Brand New Project Brownfield - Older Applications, Legacy Code Poopfield - PHP Development Dealing With Legacy Code Use Tests Working Effectively with Legacy Code - Michael Feathers Risk When is the big rewrite the correct answer? Picks Joseph Smith: Rough Stone Rolling (AJ) Roll Up Crepes (AJ) Calepin (AJ) Bernie (Jamison) Dota 2 (Jamison) Derrick Storm Novels - A Brewing Storm, A Bloody Storm, A Raging Storm (Joe) Castle (Joe) X-Wing Mineatures (Joe) PEX For Fun (Joe) MLG Championship - Starcraft Duel (Joe) VESA 75 to 100 Adapter (Chuck) LG Tone Bluetooth Headphones (Chuck) Transcript JOE: Listen baby, it won’t get weird. JAMISON: [Chuckles] AJ: That sounds... weird. JAMISON: [Chuckles] Too Late. [Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net.] [This episode is sponsored by Harvest. I use Harvest to track time, track subcontractor’s time and invoice clients. Their time tracking is really simple and easy to use. Invoicing includes a ‘pay now’ function by credit card and PayPal. And you can sign up at getharvest.com. Use the code RF to get 50% off your first month.] CHUCK: Hey everybody and welcome to episode 28 of the JavaScript Jabber show. This week on our panel, we have AJ O’Neil. AJ: Yo, yo, yo comin’ at you live from the second story of an office base in Orem, Utah. CHUCK:  We also have Jamison Dance. JAMISON: Hi, I’m Jamison Dance and I am super excited, because today iTV just announced that we are doing the Nintendo TV thing; and I haven’t been able to talk about it for, like, six months, so it’s a good day. CHUCK: Cool. We also have Joe Eames. JOE: Comin at you semi live from American Fork, Utah. CHUCK: And I am Charles Max Wood from devchat.tv. Tim is not with us this week because he is in China. I thought I’d point that out, because I think it’s cool. Anyway, this week we are going to be talking about Greenfield versus Brownfield projects. It was kind of funny when we were getting ready to do this, some of the panels were like, Green/Brown? JAMISON: Yeah, I have to pull Josh Susser and ask for a definition. CHUCK: So, as far as I understand it, there are some new --- to this, depending to who you talk to, but mostly, Greenfield is a brand new project with few or no decisions made and no code written for it yet. And Brownfield projects are effectively older applications usually associated with legacy code. You know, so it’s an application that already has code written toward it. Typically, it is out there in the world doing whatever it is supposed to do. JAMISON: Now, I want to put this question delicately. Are there any fecal connotations to the color ‘brown’ in Brownfield? CHUCK: Only if it’s PHP. JOE: [Chuckles]. Then it’s Poopfield Development? CHUCK: [Chuckles]. Okay, we are not gonna go down that tangent. [Laughter] AJ: Because, I mean honestly, when Mormons make jokes about crap, it never sounds good anyway. CHUCK: Yeah. So anyway, how many of you guys have actually worked on a real Greenfield project? Like been there from day one, that you have it just built yourself. JAMISON: I guess it depends on your definition. Maybe. So we have lots of services at ITV, so I've been part of spinning up completely new services that didn’t exist. We had other sort of similar things already, so some of the decisions were already made for, so we kind of had a style established. But it was still like a separate project. AJ: Do you forget us so soon, Jamison? JAMISON: [Chuckles]. AJ: You don’t remember ever working here or getting started… JAMISON: I do. I don’t remember Greenfield stuff; I remember new features, I mean,




js

029 JSJ Bower.js with Alex MacCaw and Jacob Thornton

Panel Alex MacCaw (twitter github blog) Jacob Thornton (Fat) (twitter github blog) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) Discussion Bower.js (web) Bower.js (twitter) Bower.js (github) SXSW Package managers ender-js BPM hem Benefits Small components Yeoman.io Browserify Dependencies Segmenting the community Transports Mozilla (github) Commands Building an actual package manager node.js Moving parts of a package manager Events Challenges Ember.js Mobile web application development Google Chrome apps Desktop apps in JavaScript Picks Kershaw Ken Onion Tactical Blur Folding Knife (AJ) The xx: Coexist (Jamison) Neil Armstrong’s Solemn but Not Sad Memorial Cathedral (Jamison) Collective Soul Cat (Jamison) Amazon Prime (Joe) Star Trek Original Series on Amazon Prime (Joe) Functional Programming Principles in Scala: Martin Odersky (Joe) Domo (hiring!) (Joe) Delegation in Google (Chuck) Civilization IV (Chuck) Fujitsu ScanSnap (Chuck) Bill Nye’s Twitter Account getting suspended was not cool (Jacob) Github + Twitter profile redesign (Jacob) Avoid 7/11 Hot Dog Flavored Chips (Jacob) The Big Picture (Alex) CoffeeScriptRedux (Alex) Stripe (Alex)




js

030 JSJ Learning & Teaching JavaScript with Noel Rappin

Panel Noel Rappin (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) AJ O’Neal (twitter github blog) Discussion 00:52 - Works in training and talent development for Groupon 00:56 - Author of Rails Test Prescriptions and upcoming Master Space and Time with JavaScript 01:21 - Writing a book about JavaScript 02:33 - Focus of the book Part 1: Jasmine and jQuery and the JavaScript Object Model Part 2: Extended examples of jQuery Part 3: Backbone Part 4: Ember 03:46 - Self-published authors 05:15 - Approaches and mindsets to learning JavaScript 06:04 - “Gotchas!” and bad features in Javascript 09:17 - Modeling JavaScript for beginners 11:23 - (AJ joins the podcast) 11:42 - Resources/Classes for learning JavaScript Good Parts Book: Douglas Crockford JavaScript Patterns: Stoyan Stefanov Eloquent JavaScript: A Modern Introduction to Programming: Marijn Haverbeke Maintainable JavaScript: Nicholas C. Zakas 13:54 - Hiring people with JavaScript experience at Groupon 15:12 - Training workshops 17:00 - Getting new hires up to speed quickly Pairing Mentoring Lectures Workshops 21:38 - Book Learning You can learn at your own pace But it’s hard to ask questions to a book 22:51 - How Noel gained expertise in JavaScript 24:38 - Code reading and learning to program a language 26:18 - Teaching people JavaScript as their very first language 31:55 - Classroom layout 33:42 - Online training Kahn Academy Computer Science Code Academy Starter League 40:00 - Finding a mentor Stack Overflow Picks Shrines by Purity Ring (Jamison) Learnable Programming: Bret Victor (Jamison) Mob Software: Richard P. Gabriel & Ron Goldman (Jamison) Monoprice.com (AJ) ZREO: Zelda Reorchestrated (AJ) The Official Twitter App (Chuck) Fluid App (Chuck) Try Jasmine! (Noel) Justin Searls (Noel) The Atrocity Archives: Charles Stross (Noel) Futurity: A Musical by The Lisps (Noel) Transcript NOEL: I’m trying to figure out where the chat is in this stupid Skype interface. JAMISON: Just imagine the worst place it could possibly be and that’s where it is. [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] CHUCK: Hey everybody and welcome to Episode 30 of the JavaScript Jabber show! This week on our panel we have, Jamison Dance. JAMISON: Hey guys! CHUCK: I’m Charles Max Wood from devchat.tv and this week, we have a special guest and that’s Noel Rappin! NOEL: Hey everybody! CHUCK: For the people who don’t know who you are, you want to introduce yourself, Noel? NOEL:  Sure. I currently work in training and talent development for Groupon. And I am the author of previously “Rails Test Prescriptions” and currently a self-published book called “Master Time and Space with JavaScript”, which you can get at noelrappin.com. I need to spell that out, right? N-o-e-l-r-a-p-p-i-n.com CHUCK: So I’m little curious, before we get into the topic which is learning and teaching JavaScript, how did you get into writing a book about JavaScript? What’s your background there? NOEL: You know, it actually relates to teaching and learning JavaScript. I think, I was like… a lot of long time web devs. I spent my first round as a web consultant in around, turn of the century 2000’s. I spent time trying to talk clients out of JavaScript stuff because it was such a pain in the neck. And I kind of got away from it for awhile and came back a couple of years ago to realize that basically, everything had changed and they were actually usable tools now. And last summer, I was working with a… at that time,




js

031 JSJ history.js

Panel Benjamin Lupton (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) Joe Eames (twitter github blog) Discussion 01:00 - Benjamin Lupton Introduction and Background history.js (twitter / github) Front-end and back-end developer Based in Australia Works full-time open-source 03:19 - history.js HTML5 History API Hashbang 09:26 - URL appearances 10:32 - Maintaining states 12:23 - (Joe joins the podcast) 12:30 - Framework usage 13:42 - Overriding history.js 17:33 - JavaScript community and evolution 21:10 - Particular problems that history.js is geared toward solving 22:07 - Sites implementing history.js 37signals 25:18 - Other libraries that do the same thing 26:12 - Page reloads 32:14 - Browser limitations 34:37 - Live event in jQuery 35:42 - history.js: a deep or shallow library? 37:43 - Resources for history.js Picks booq: Vyper XL2 (Jamison) Jordan Santell (Jamison) Star Wars: Red Harvest (Joe) Nitro Circus: The Movie (Joe) Arrested Development (Joe) f.lux (Chuck) docpad (Benjamin) Paulo Coelho (Benjamin) Transcript BENJAMIN: Anything important, I hear from my wife. So, I could finally have that thing where Facebook doesn’t infiltrate my mind with cat pictures anymore.  [This episode is presented to you 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] CHUCK: Hey everybody and welcome to episode 31 of the JavaScript Jabber show. This week on our panel, we have Jamison Dance. JAMISON: Howdy Doody! CHUCK: I'm Charles Max Wood from devchat.tv and this week, we have a special guest and that's Benjamin Lupton. BENJAMIN: Hello. CHUCK: He is the author of history.js and why don’t you introduce yourself? Because that's all I really know about you other than history.js and you are many time zones away. BENJAMIN: [laughs] Yeah. So, I have been doing JavaScript pretty much my entire life and been doing it professionally since about 2006, full time. And over the time, I've developed some open source project. One of them became quite popular and that was History.js it makes HTML5 History API that was compatible with like hashes and things like that. We’ll go into that late. Yeah, that became really popular. Now I other stuff with Node a lot as well. CHUCK: Ooh. A front end and a back end person. BENJAMIN: Only because I'm Node. JAMISON: You are basically like a unicorn. CHUCK: Yeah. JAMISON: You are a mystical creature. CHUCK: You are too well rounded. You are going to put us to shame. BENJAMIN: Well, it’s easier being with Node. CHUCK: Yeah, that's true. JAMISON: Yeah it’s true. Where do you work? BENJAMIN: I work for my own company right now. We’ve been doing JavaScript constancy for a few start-ups in Australia. And now, I'm looking at going completely full time with just the open source stuff. CHUCK: Oh, cool. How do you manage going full time open source? BENJAMIN: Right now, we’ve got premium support. I'm going with a few companies and we are looking into other options as well. CHUCK: Right. Yeah. I'm in the same boat with my podcast. I’d love to go full time podcast and less full time consulting. JAMISON: So the real question is, if I pay you enough money, will you put a gigantic ASCII art picture of my face in the History.js source code? BENJAMIN: Perhaps. JAMISON: Okay. We’ll have to talk after. CHUCK: I’m going to have to figure out how to do that. Let’s see... Image to ASCII art… BENJAMIN: In podcast. CHUCK: Yeah and then I’ll… JAMISON: Oh Chuck, you could do it so there’s face that shows up like in the waveforms on the sounds. CHUCK: [laughs] I don’t know about that.




js

032 JSJ Angular.js

Panel Misko Hevery (twitter github blog) Igor Minar (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Tim Caswell (twitter github howtonode.org) AJ O’Neal (twitter github blog) Discussion 01:33 - Angular.js (twitter github blog) 02:33 - Angular.js compared to other frameworks 04:03 - How does it work? 05:22 - Cost 06:06 - HTML Compiler 07:02 - Directives 10:31 - Working with browsers in the future 12:07 - Dependency injection 16:50 - Main method 18:48 - Using require.js 20:53 - How would you build a TreeView widget in Angular? 24:07 - Where data is stored 24:42 - Scope 29:47 - Syncing to servers RESTClient 31:34 - Testability & Services in Angular 39:04 - Benefits of Angular Dependency injection Directives Picks The Arrow (Joe) Font Awesome (Tim) Testacular (Igor) Plunker (Igor) The Better Angels of our Nature: Steven Pinker (Misko) XCOM (Jamison) The Foundation Series: Isaac Asimov (Jamison) Influencer: The Power to Change Anything (AJ) Transcript [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] JAMISON: Hi everybody and welcome to episode 32 of the JavaScript Jabber podcast. I'm not your host Charles Max Wood, I'm Jamison Dance. Chuck is at a conference this week. So, he is not here. We have with us Joe Eames. JOE: Hey everybody! JAMISON: Tim Caswell. TIM: Hello. JAMISON: And we have two special guests. I'm going to mangle your names, so I'm sorry. It’s Misko Hevery. MISKO: Misko Hevery. Yeah, thank you. JAMISON: Misko Hevery and Igor Minar? IGOR: Minar. Yeah. JAMISON: Great. You guys wanna introduce yourself really quick? MISKO: Sure. So, this is Misko Hevery, original creator of Angular.js. IGOR: Hi everybody! I'm Igor. I joined Misko about 2 years ago on this venture of creating better browser and better environment for creating client-side applications. JAMISON: And if you can’t tell, we are going to talk about Angular.js this week. So, I know it is kind of a Google project now. Did it start out that way? MISKO: It started out with something I was working on and eventually I've open sourced it at a product with Google internal application and just gotten such a rave reviews and new features that people actually says, “Hey why don’t you work on this full time and turn in on to a real product?” So, that's how it’s started. JAMISON: Oh, wow. So, there’s actually a team in Google who are working on Angular as their job? MISKO: Yeah. IGOR: Yes. JAMISON: That's awesome. IGOR: It’s just two of us here now, but we have a bunch of other people working full time on Angular.js and also main contributors-- JAMISON: Oh, go ahead sorry. IGOR: There is a team behind Angular.js. JAMISON: Do you think you can give an overview and kind of a comparison to contrast Angular to some of the other MVC frameworks that people like before you? I mean, Backbone I guess is what most people know.  So, what makes Angular different from Backbone? How does it work? MISKO: So, I have never used Backbone besides it’s framework. But, my understanding is that Backbone is basically you have declare model and then launch on changes on its mode. And the way it does so is that there is a model class object. And whenever you modify the models that use special getters and setters methods, the Backbone know about the changes. So, this is pretty different from Angular because we don’t require you to inherit from anything. We have special getters and setters. Basically, any JavaScript object can be a model. So, that’s one big difference. JAMISON: But you can still observe the changes on objects like that? MISKO: Right.




js

033 JSJ enyo.js

Panel Ben Combee (twitter github blog) Gray Norton (twitter) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Tim Caswell (twitter github howtonode.org) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeS...




js

034 JSJ Ember.js

Panel Trek Glowacki (twitter github Trek by trek) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) Discussion 02:18 - Ember.js (twitter, github, site) 03:17 - Based on/Inspired by SproutCore? 05:39 - The Rails of JavaScript? “Magical” 06:29 - todomvc Backbone.js    11:21 - Pulling pieces of Ember.js 12:07 - Struggles with using Ember.js Learning API can and does change frequently The applications that Ember.js targets are new New patterns 18:45 - Developer style 22:59 - Rendering 24:42 - Philosophy of Ember.js 27:00 - Ember.js router State machines 32:31 - Spending time learning Ember.js 35:06 - Frameworks and Wordpress 41:57 - Event loop 42:49 - API Object system Binding syntax Handlebars.js 46:38 - Rendering and nesting views Picks Promo Only (AJ) TinyToCS: Tiny Transactions on Computer Science (Jamison) HandBrake (Chuck) BitTorrent (Chuck) Transmission (Chuck) Presto 04213 Electronic Digital Timer (Chuck) Crafty.js (Trek) About Face 3: The Essentials of Interaction Design by Robert Reimann (Trek) Tucker Teaches the Clockies to Copulate by David Erik Nelson (Trek) Transcript  JAMISON: And I’m looking sexy. [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.] [This episode is sponsored by Gaslight Software. They are putting on a Mastering Backbone training in San Francisco at the Mission Bay Conference Center, December 3rd through 5th of this year. This three day intensive course will forever change the way you develop the front-end of your web applications. For too long, many web developers have approached front-end as drudgery. No more! We’ll help you build the skills to write front-end code you can love every bit as much as your server-side code.] [Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net] CHUCK: Hey everybody and welcome to Episode 33 of the JavaScript Jabber show. This week on our panel we have AJ O’Neal. AJ: Yo, yo, yo. Comin’ at you live from DJ sphere of Orem, Utah. CHUCK: We also have Jamison Dance. JAMISON: Oh, gosh you get to ----. I'm sorry AJ; your intro was so good. [laughs] CHUCK: [laughs] I'm Charles Max Wood from devchat.tv and this week, we have a special guest and that is Trek Glowacki? TREK: Oh, very close. Good job. CHUCK: [laughs] Do you wanna straighten it up for us? TREK: You can just call me Trek. Everyone does. CHUCK: Ok. How many generations removed are you from Poland or whatever? TREK: So I'm a first generation American. My parents are foreign. But my dad is Belgian, not Polish nationally, but of a Polish decent. CHUCK: Oh, OK. That's interesting. TREK: Yeah. My driver’s license is weird and everything is misspelled. My voter registration is spelled wrong. It’s kind of a nightmare. It’s why I just go by Trek. I try to snag @trek as a user handle everywhere. So I'm @trek on Twitter-- just makes my life easier. CHUCK: Yeah. That makes sense. I have to say that, if your voter registration is messed up, I hope you are voting for that “other guy”. And I'm not going to be specific about my --- because I don’t wanna start a firestorm on a programing podcast for that, so we’ll just leave it there. Anyway, we are going to be talking about Ember.js today. Now, I know that Yehuda and Tom Dale work on it. Do you work on it too or are you just kind of an expert user? TREK: A little bit of both. I hang out on the secret volcano base that we have, with Yehuda and Tom and my contributions are-- JAMISON: That's why your audio quality is so good. TREK: Yeah, we are at the volcano base, it’s really is beaming to a satellite in space. CHUCK: Yeah volcano net is awesome. TREK: So,




js

035 JSJ node-webkit

Panel Jamison Dance (twitter github blog) Tim Caswell (twitter github howtonode.org) AJ O’Neal (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) Discussion 01:15 - node-webkit Similar to PhoneGap Chrome native apps Chromium 05:31 - Event loops and the browsers 06:53 - Example apps Light Table app.js 07:42 - node-webkit vs app.js 10:00 - Chrome Chrome Apps: JavaScript Desktop Development 17:44 - Security implications 25:11 - Testing node-webkit applications 27:19 - Getting a web app into a native app 31:33 - Creating Your First AppJS App with Custom Chrome Chromeless Browser Chromeless replacement Picks How mismanagement, incompetence and pride killed THQ's Kaos Studios (Jamison) The Insufficiency of Good Design by Sarah Mei (Jamison) app.js (Tim) node-webkit (Tim) Macaroni Grill’s Butternut Asiago Tortellaci (AJ) JCPenney (AJ) Mac OS Stickies (Chuck) Fieldrunners (Chuck) Node Knockout Transcript AJ: Let’s talk about boring stuff. What did you eat for breakfast? TIM: I had donuts. AJ: That sounds nutritious and delicious. [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.] [This episode is sponsored by Gaslight Software. They are putting on a Mastering Backbone training in San Francisco at the Mission Bay Conference Center, December 3rd through 5th of this year. This three day intensive course will forever change the way you develop the front-end of your web applications. For too long, many web developers have approached front-end as drudgery. No more! We’ll help you build the skills to write front-end code you can love every bit as much as your server-side code.] [Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net] CHUCK: Hey everybody and welcome to episode 35 of the JavaScript Jabber Show. This week on our panel we have Jamison Dance. JAMISON: Hi guys! CHUCK: Tim Caswell. TIM: Hello! CHUCK: And AJ O’Neal. And I'm Charles Max Wood from devchat.tv. This week, we are going to be talking about ‘Node-webkit’. It seems like Tim is the most familiar with it, so why don’t you jump in and tell us a little bit about it? TIM: All right. Basically the idea is to make desktop apps using Node and then having HTML as your display layer for your widgets. And I start a project doing this several years ago from Topcube, but I failed miserably because I'm not that good of a C engineer. And since then, a few projects have taken up the idea. Node-webkit is one done by Intel and the main engineer there is Roger Wang. So on Roger Wang’s GitHub there is node-webkit. And the other popular one is called ‘app.js’ and I think there is a couple others as well. And some other people have taken over my Topcube project and they use it for some maps app. And all these projects had the basic idea of you have a desktop native app that has Node and node-webkit inside of it. CHUCK: So, is it kind of like PhoneGap or some of these other things for mobile? TIM: Yeah. It’s similar to PhoneGap in that, you get more privileges than a browser would have in a more native experience. Instead of just the PhoneGap extensions, you get all of Node -- you get the full Node environment -- which means you can use all that existing libraries and ecosystem. JAMISON: So how does this compare to the Chrome native apps thing? Because I know that they are more --- already have some like JS APIs that let you touch stuff on the server or things like that. Is this just – it’s not sandbox at all? TIM: Yeah. I mean, this is a native app. It’s not in your browser at all. It bundles its own webkit. JAMISON: Oooh. TIM: It’s more like -- what was that flash thing they had years ago? AJ: ‘Adobe Air’? TIM: Air yeah. It’s like Adobe Air that doesn’t suck.




js

036 JSJ DOM Rendering and Manipulating

Panel AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) Discussion 01:29 - Merrick Christensen is a new regular panel member CascadiaJS 2012 JavaScript Modules: AMD, Require.js & Other Wins: Merrick Christensen 03:58 - DOM Rendering and Manipulating Backbone.js Ext.js 06:49 - Differences Load times Ease of use backbone.syphon 09:49 - The Ext.js approach vs the Backbone.js approach 15:51 - Templating engines dust.js handlebars.js mustache.js hogan.js underscore jquery 16:46 - handlebars.js vs mustache.js 18:08 - Templating engines (cont’d) Mold.js Ember.js Metamorph.js Knockout.js Pure.js Plates.js 26:34 - Difference between the click handler and the delegate function 31:49 - Template engines and string generations 33:01 - Writing templates and learning APIs 35:03 - Ext.js issues 39:32 - Dojo Picks Aldo (AJ) On Being A Senior Engineer (Jamison) Joshua James: From the Top of Willamette Mountain (Merrick) sparks.js (Merrick) grunt.js (Merrick) knit-js (Merrick) Functional Programming for the Object-Oriented Programmer by Brian Marick (Chuck) New Media Expo 2013 (Discount code Wood20) (Chuck) Skyfall (Joe) LEGO Lord of the Rings (Joe) Global Day of Coderetreat 2012 (Joe) Transcript JOE: If AJ talks on JavaScript Jabber, does anybody hear it? CHUCK: [laughs] AJ: Not if I don’t have my function key pressed down. [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.] [This episode is sponsored by Gaslight Software. They are putting on a Mastering Backbone training in San Francisco at the Mission Bay Conference Center, December 3rd through 5th of this year. This three day intensive course will forever change the way you develop the front-end of your web applications. For too long, many web developers have approached front-end as drudgery. No more! We’ll help you build the skills to write front-end code you can love every bit as much as your server-side code.] [Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net] CHUCK: Hey everybody and welcome to episode 36 of the JavaScript Jabber Show! This week on our panel, we have AJ O'Neal. AJ: Yo, yo, comin' at you from the cowboy sphere of Orem, Utah. CHUCK: We also have Jamison Dance. JAMISON: I'm coming at you from bathrobe sphere of Orem, Utah. It’s much more comfortable than a cowboy sphere. CHUCK: We have Joe Eames. JOE: Comin’ at you from a cluttered office. CHUCK: And Merrick Christensen. MERRICK: Hey guys! CHUCK: So, Merrick is new. Merrick, do you wanna introduce yourself real quick? MERRICK: Sure. My name is Merrick Christensen. I've been developing JavaScript for a number of years -- big fan of it. You can find me on twitter and GitHub and all that kind of stuff. JOE: Did you just recently speak at any conferences? MERRICK: Yeah actually. [laughter] I just spoke at CascadiaJS on require.js. And actually, what's really cool is they just barely put the videos for that up today and I was so stoked at how high quality. So to the CascadiaJS team, you guys  did an excellent job. JOE: Are the videos free? MERRICK: Oh yeah. All free up on YouTube. And there’s some cool stuff -- there's stuff on like robots -- it was an amazing conference. The organizers just did an amazing job. CHUCK: Sounds like fun. Was that up in the North West somewhere? MERRICK: Yeah it was actually in Seattle. CHUCK: Nice. MERRICK: Yeah it was beautiful. JAMISON: I heard that as one of the after party things, they took everybody up to see the James Bond movie? MERRICK: They did yeah.




js

037 JSJ Promises with Domenic Denicola and Kris Kowal

Panel Kris Kowal (twitter github blog) Domenic Denicola (twitter github blog) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Intro to CoffeeScript) Discussion 02:41 - Promises Asynchonous programming 05:09 - Using Promises from top to bottom 07:08 - Domains NodeConf SummerCamp 07:55 - Q 10:22 - q.nfbind 11:15 - Q vs jQuery You’re Missing the Point of Promises Coming from jQuery 15:41 - long-stack-traces turn chaining JavaScriptStackTraceApi: Overview of the V8 JavaScript stack trace API (error.prepare stack trace) 19:36 - Original Promises/A spec and Promises/A+ spec when.js Promises Test Suite Underscore deferred 24:22 - .then Chai as Promised 26:58 - Nesting Promises spread method 28:38 - Error Handling causeway 32:57 - Benefits of Promises Error Handling Multiple Async at once Handle things before and after they happen 40:29 - task.js 41:33 - Language e programming language CoffeeScript 44:11 - Mocking Promises 45:44 - Testing Promises Mocha as Promised Picks Code Triage (Jamison) The Creative Sandbox Guidebook (Joe) Steam (Joe) Pluralsight (Joe) montage (Kris) montagejs / mr (Kris) CascadiaJS 2012 - Domenic Denicola (Domenic) Omnifocus (Chuck) Buckyballs (AJ) Transcript JOE: I can’t imagine your baby face with a beard, Jamison. JAMISON: I never thought I had a baby face. AJ: It was always a man face to me. JOE: Everybody who is 15 years younger than me has a baby face. [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.] [This show is sponsored by Gaslight Software. They are putting on Mastering Backbone training in San Francisco at the Mission Bay Conference Center, December 3rd through 5th. They'll be covering Jasmine, Backbone and CoffeeScript. For more information or to register, go to training.gaslightsoftware.com] [Hosting and bandwidth provided by the Blue Box Group. Check them out at bluebox.net] CHUCK: Hey everybody. Welcome to episode 37 of the JavaScript Jabber show. This week on our panel, we have AJ O'Neal. AJ: Yo, yo, yo, comin' at you live from the executive boardroom suite of Orem, Utah. CHUCK: Jamison Dance. JAMISON: Hey guys! CHUCK: Joe Eames. JOE: Hey there! CHUCK: Merrick Christensen MERRICK: What's up. CHUCK: I'm Charles Max Wood from devchat.tv and this week we have some guests -- and that is Kris Kowal. KRIS: Hello. Yeah, Kowal. CHUCK: Kowal. OK. And Domenic Denicola. Did I say that right? DOMENIC: Denicola. CHUCK: Denicola. DOMENIC: It’s OK I got Americanized. That's probably the proper Italian pronunciation. Hi guys! CHUCK: I speak proper Italian, so probably. KRIS: Yeah and for what it’s worth, I think that the proper Polish is Kowal or something, but yeah. JAMISON: Kris, are you from the Midwest? You have kind of Minnesota-ish accent. KRIS: No. I'm actually unfortunately from somewhere in the suburbs of Los Angeles, but I grew up indoors and did listen to Prairie Home Companion. So I don’t know. Maybe. [laughter] CHUCK: Awesome. All right. So this week we are going to be talking about… actually there's one thing I need to announce before. If you are listening to this episode, you’ll probably notice a little bit of a difference with our sponsorship message. I actually left off one important piece to one of the sponsorship messages and that is for the Gaslight software training that's going to be in San Francisco, if you wanna sign up, go to training.gaslightsoftware.com and you can sign up there. They’ve been a terrific sponsor and I feel kind of bad that I botched that. But anyway,




js

038 JSJ Jasmine with Justin Searls

Panel Justin Searls (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) AJ O’Neal (twitter github blog) Charles Max Wood (twitter github Teach Me To Code) Discussion 01:33 - Justin Searls Test Double 02:14 - Jasmine Pivotal Labs 03:42 - Testing JavaScript 05:29 - CoffeeScript 07:22 - What Jasmine is Unit testing library RSpec DOM agnostic 10:16 - Testing the DOM 14:01 - Tragedy of the commons factory_girl 18:29 - Testing 23:53 - Syntax in Jasmine 26:23 - RSpec and Jasmine 28:07 - Async support in Jasmine 32:18 - Spies mockito Conditional stubbing jasmine-stealth jasmine-fixture 37:30 - jasmine-given Cucumber 43:19 - Running Jasmine jasminerice jasmine-rails jasmine-headless-webkit Testacular testem 49:17 - tryjasmine.com Picks Running MongoDB on AWS (Jamison) The Clean Coder by Robert C. Martin (Joe) Squire.js (Joe and Merrick) Rdio app (Merrick) Square (AJ) Allrecipes.com (AJ) Jenkins CI (Chuck) Apple’s Podcast app (Chuck) lineman (Justin) StarTalk Radio Show with Neil Degrasse Tyson (Justin) To The Moon PC Game (Justin) Transcript JAMISON:  Holy cow! JOE:  That was not annoying. CHUCK:  What’s not annoying? MERRICK:  He is punching a bag of Fritos? JOE:  Yeah. [Laughter] CHUCK:  Well, I was closing it up so they don’t get stale as fast. JOE:  You’re very thorough. Those are going to be the least stale… MERRICK:  Do you have like a Frito resealer or something? [Laughter] [Shrill sound] CHUCK:  Okay, sealed. [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.] [Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.] CHUCK:  Hey everybody, and welcome to Episode 38 of the JavaScript Jabber show. This week on our panel, we have Jamison Dance. JAMISON:  Hi guys! CHUCK:  Joe Eames. JOE:  Howdy? CHUCK:  Merrick Christensen. MERRICK:  What’s up? CHUCK:  AJ O’Neal is trying to join the call. He’s here. AJ:  Yo! Yo! Yo! Coming at you live from the Rental Agreement sphere of Provo, Utah. MERRICK:  He lives! CHUCK:  I’m Charles Max Wood from DevChat.tv. And this week, we have a special guest. That’s Justin Searls. JUSTIN:  Hello. CHUCK:  So, why don’t you tell us a little bit about yourself, Justin? JUSTIN:  Okay. Well, now that I’m on the spot, my name is Justin. I’m a software developer. I live in Columbus, Ohio. About a year ago, me and a guy named Todd Kaufman started a new company called Test Double. Previously, he and I had been doing consulting for a long, long time. And we’re up to eight people now. And we have a good time building software with an emphasis on terrific interaction design which has resulted in us kind of developing a specialty for well-crafted frontend code, predominantly JavaScript. And I imagine that’s probably why I’m here today. CHUCK:  Awesome. Alright. Well, we brought you on to talk about Jasmine. Jasmine was written by, was it Pivotal Labs?  JUSTIN:  Yeah, Pivotal Labs guys. A guy names Christian Williams who I think has since moved on to Square, and D.W. Frank who’s still at Pivotal. They wrote the core library and me and a whole bunch of other people in the community have piled on with different runners and add-ons and extensions in the sort of like little ecosystem of the 25 people who write unit tests for JavaScript. CHUCK:  All 25 of you, huh? JUSTIN:  Well, it’s not a lot, right? It’s been a fun journey of being one of the very few people who really, really got excited or chose to get excited about making it easier for folks to write tests in JavaScript or as easy as it would be for whatever servers and language they’d be using.




js

039 JSJ Sweet.js with Tim Disney

Panel Tim Disney (twitter github blog) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Tim Caswell (twitter github howtonode.org) Charles Max Wood (twitter github Teach Me To Code) Discussion 01:23 - Book Club Episode: Effective JavaScript by David Herman Episode will record on January 10th and air January 18th 01:48 - Sweet.js Macros: syntactic transformations Build-your-own CoffeeScript Cleans up code 07:03 - Benefits and Disadvantages 10:37 - Using Macros Where are they needed? Where are they not needed? Why sweet.js Matters 13:10 - Pattern Matching 15:36 - Domain Specific Languages 16:48 - Hygiene 18:50 - Class Macro 20:28 - Limits 21:38 - Language Support 25:18 - Nesting 28:40 - Cool Macros Example macros 30:13 - Sweet.js: What is coming? Defining Macros Syntax Rules 33:06 - Sweet.js mailing list IRC channel #sweet.js on irc.mozilla.org Picks Google+ Hangouts (AJ) The Man from Earth (Jamison) TypeScript (Joe) Red Dawn (Joe) Creationix Innovations (Tim C.) Effective JavaScript by David Herman (Tim D.) Growing a Language by Guy Steele (Tim D.) Downton Abbey (Chuck) Rails Ramp Up (Chuck) Transcript JAMISON:  Oh, my goodness! You can like, put a beard on them and it follows their face! JOE:  Isn’t that awesome? [Crosstalk] JAMISON:  How do I get rid of it? Actually, it was really distracting. I didn’t know you guys would see that. [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.] [Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.] CHUCK:  Hey everybody and welcome to Episode 39 of the JavaScript Jabber show. This week on our panel, we have AJ O’Neal. We have AJ O’Neal on mute. We have Jamison Dance. JAMISON:  I am not on mute, I hope. CHUCK:  We have Joe Eames. JOE:  Hi everybody. CHUCK:  We have Tim Caswell. TIM C:  Hello. CHUCK:  We also have a special guest, that’s Tim Disney. TIM D:  Hi. CHUCK:  AJ, did you figure out your mute issues? That would be a no. I’m Charles Max Wood from Devchat.tv. And this week, we’re going to be talking about Sweet.js. Before we get started, there is one thing I want to announce really quickly and that is that we have scheduled a Book Club episode for January 10th and that’s going to be with David Herman who wrote ‘Effective JavaScript’. So it’s a pretty slim book, should be easy to get through. But yeah, if you want to follow along with that discussion, then by all means, join in. Alright. Let’s talk about Sweet.js. Has anyone… AJ:  Can you hear me now? CHUCK:  Yeah. AJ:  Okay, cool. CHUCK:  So, I went and looked at it. I fiddled with it a little bit. I didn’t have enough time to really get into it the way that I wanted to. It looks really cool though. What kind of gave you the idea of doing something like macros for JavaScript, Tim? TIM D:  Well, I guess it’s just something I’ve sort of wanted for JavaScript for awhile. But the main sort of impetus I guess was, I was interning at Mozilla Research this past summer. And Dave Herman who has worked on macros in the past basically said he thought that it was sort of finally possible to do for JavaScript. And so, that was a possible sort of intern project for the summer. And so, that’s what got it started. JAMISON:  So can you back up and talk about what macros are, because I’m sure there are lots of people that don’t know and lots of people that hear macros and think like CP process are macros. TIM D:  Right yeah, exactly. So, C style macros are the sort of painful and sort of limited. The macros that Sweet.js implements are much more in line with sort of scheme style macros. So,




js

040 JSJ Conferences

Panel Trevor Tingey (twitter blog) Joe Eames (twitter github blog) Tim Caswell (twitter github howtonode.org) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:16 - Conferences Attended Visual Studio Live (VS Live) (Joe) Utah Open Source (Joe & Chuck) Utah JS (Joe) MountainWest RubyConf (Trevor & Chuck) JSConf (Trevor) UberConference (Trevor) Web 2.0 (Trevor) RailsConf (Chuck) RubyConf (Chuck) Aloha Ruby Conference (Chuck) New Media Expo (Chuck) 03:24 - Preparing/Planning for Conferences 08:39 - Chatting with Others/Making Contacts at Conferences Hackathons Social Activities 14:36 - Hackathons/Code Retreats/Workshops Global Day of Coderetreat DevTeach 18:46 - Methodology Conferences Agile Roots 22:42 - Industry Conferences vs Local/Regional Conferences Multiple Tracks Networking 28:12 - Making the Most out of Sessions Taking Notes Follow Along in Code Sessions Seating Choice 33:02 - Lightning Talks Speaking Exposure 35:37 - Speaking at Conferences (Tim Joins) Veteran Speakers vs Unique Speakers 41:00 - Submitting Proposals Interesting Title 42:56 - Mistakes People Make Speaking at Conferences Underestimating Time Practice Your Talk Be Excited 45:24 - Preparing Slides Bullet Points Color/Contrast 50:03 - Watch Your Audience Picks The Hobbit (Joe) RiffTrax (Joe) Pluralsight (Joe) Blue Microphones: Yeti (Tim) Closure Compiler Service (Chuck) Headline Hacks (Chuck) Once Upon a Time (Trevor) Sublime Text 2 (Trevor) Jack Reacher (Trevor) Foo Fighters (Trevor) Transcript CHUCK:  From the meat lockers of Domo. [This episode today 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.] [Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.] CHUCK:  Hey everybody and welcome to episode 40 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames. JOE: Howdy! CHUCK:  I’m Charles Max Wood from devchat.tv and we have a special guest, that’s Trevor Tingey. TREVOR:  Hello. CHUCK:  He’s joining us from Domo. We had some folks on vacation and stuff and we were short a few people. So, Joe invited one of his co-workers. I don’t really have co-workers per se since I’m doing contract stuff most of the time. Anyway... JOE:  Is your cat your co-worker, Chuck? CHUCK:  What was that? JOE:  Is your cat your co-worker? CHUCK:  I don’t have a cat. JOE:  A dog? CHUCK:  Nope, I don’t have a dog either. I’m allergic to cats. But yeah, no cats. Anyway, we’re going to talk this week about making the most of conferences. I’m a little curious, what conferences have you guys been able to attend over the last few years or over your career? JOE:  I was a Microsoft developer before I went fully front end. So I went to several Microsoft development conferences, VS Live was probably my favorite one. Recently, I’ve been to the Utah Open Source conference and the Utah JavaScript conference, really liked those. CHUCK:  Yeah, the local conferences are fun. What about you, Trevor? TREVOR:  I’ve been to a lot of conferences. Recently, I went to the Mountain West Ruby Conference. That was entertaining. I went to the JavaScript, JS Conf and that was the first Node Conf also was kind of dependent on the end of the JS Conf and that was up in Portland. I really liked that one. Like Joe, I used to do some Microsoft stuff. So, I’ve been to Microsoft before and several other ones in between, Uber Conf, Web 2.0 in New York. JOE:  Does Comdex count? I went to Comdex once. [laughs] CHUCK:  Yeah, I didn’t really start going to conferences until I gotten into Ruby. So, most of the conferences I’ve been to were Ruby related, though I did go the Utah Open Source and some of those. Yeah,




js

041 JSJ Single Page Applications

Panel Jamison Dance (twitter github blog) AJ O’Neal (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 02:09 - Follow Up to 040 JSJ Conferences Broad Conferences vs Focused Conferences Utah Open Source/Open West Conference 2013 05:28 - Single Page Application Frameworks jQuery Backbone.js Ember.js pure.js plates.js AngularJS 15:10 - Path & Hash Routing Pushstate/Popstate sammy.js jquery.bbq localStorage == cookies history.js 22:23 - Synchronizing Your Data WebSocket Operational Transformation Lucidchart 24:51 - WebSockets cURL Socket.IO 32:44 - App Issues Memory 38:52 - When do you want a Single Page App? Jade LESS Picks Simple (AJ) Coding for Interviews (Jamison) Empirical Zeal: What does randomness look like? (Jamison) Aeron Chair by Herman Miller (Chuck) Allrecipes.com (Chuck) Book Club Effective JavaScript by David Herman Transcript AJ:  Yeah, I think I'm 26 still, for another 6 months. CHUCK:  Yeah. You have to count on your toes to figure it out. AJ:  Yeah, twice actually. Because once I'm already bent over, I just keep counting on my toes. I don't start back at my fingers. CHUCK:  [laughs] [Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.] [This episode is sponsored by Component One, makers of Widge Mo. If you need stunning UI elements or awesome graphs and charts, then go to WidgeMo.com and check them out.] CHUCK:  Hey everybody and welcome to Episode 41 of the JavaScript Jabbers show. I almost said Ruby Rogues. How tired am I? JAMISON:  Don't cheat on us, Chuck. CHUCK:  It's right after Christmas. JAMISON:  We know you have another family but we love you when we have you. CHUCK:  Oh, my gosh! Yeah, we had family here for two days and my wife panics when people are coming over and has to have the house immaculate. And then she kept getting tired or sick or having some other issues. So, I kept forcing her to go to bed and then staying up until 2:00 AM, cleaning the house. So, I’m totally worn out. Anyway, so this is JavaScript Jabber, it's not Ruby Rogues. If you want Ruby Rogues, go to RubyRogues.com and see what we were talking about over there. Last week, we talked about conferences and I know that AJ wanted to say something. I guess we usually do the introductions first. So, let's do that and then let AJ say his piece and then we’ll move onto our topic for today. So, this week on our panel, we have Jamison Dance. JAMISON:  Hi, guys! Merry Belated Christmas. CHUCK:  We have AJ O'Neil. AJ:  Yo! Yo! Yo!  Coming at you from the green Christmasphere of Virginia. CHUCK:  Oh, you're in Virginia? AJ:  Yes, I am. Visiting family. CHUCK:  Cool. And I'm Charles Max Wood from DevChat.tv. I just want to put a quick plug in for my Rails course. If you want to learn Ruby on Rails, go to RailsRampUp.com. It's kind of a guided course and you get a lot of access to me to learn it. So AJ, what was it that you wanted to chime in with, with the conferences that we couldn't get you in last week to say? AJ:  Okay. So, both Merrick and myself have had this same experience. So, we were talking about having the broad conference versus the focused conference, the broad talk or workshop versus the more focused one. And we both have come to the conclusions that having it more focused is better. With the conference, it's fun to go to a broad conference but even in that, like it’s nice to have the focused talks like the ‘Utah Open Source Conference’ which this year is ‘Open West Conference’. It's expanding out and they've got some big surprise. I'm guessing they got some nice speakers. And the call for papers for that opens on January 2nd supposedly. So, that's a really nice conference but it's broad but it’s still fun.




js

042 JSJ CSS and CSS Superset Languages

Panel Brian Turley (twitter blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) AJ O’Neal (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 02:11 - CSS Gripes Sass Scalable and Modular Architecture for CSS (SMACSS) CSS3 16:32 - Preprocessors/Compilers LESS Sass Stylus Compass Chris Eppstein 20:34 - Basic Features of CSS Preprocessors nib mix-ins 23:02 - Usefulness 27:15 - Mathematics w/ Variables Susy 28:54 - Animation Using CSS animations 31:12 - Nesting 35:40 - Build Processes grunt.js 42:20 - Distinction Prefixing 47:35 - Tightly Coupled Picks Old Man’s War by John Scalzi (Joe) X-Wing Miniatures Game (Joe) Dave Crowe (Merrick) Utah Software Craftsmanship Group (AJ) Effective JavaScript by David Herman (AJ) SD Card (Chuck) New Media Expo (Chuck) Consumer Electronics Show (Chuck) iOS Development Podcast (Chuck) Grid Systems in Graphic Design by Josef Muller-Brockmann (Brian) IFTTT (Brian) Book Club Effective JavaScript by David Herman Transcript MERRICK:  You have more technical problems than any other nerd I know. [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 42 of the JavaScript Jabber show. This week on our panel, we have Joe Eames. MERRICK:  He’s out to a phone call, terrible timing. CHUCK:  We also have Merrick Christensen. MERRICK:  That’s me. CHUCK:  AJ O’Neal. AJ:  Yo! Yo! Yo! Coming at you live from the snow sphere of Provo, Utah. CHUCK:  And we have a guest, that’s Brian Turley. BRIAN:  That’s right. I’m a designer friend of AJ’s. CHUCK:  We’re talking about CSS today so we brought in a designer to set us all straight. And I’m Charles Max Wood from devchat.tv. And like I said, we’re talking about CSS today. One of the things I think that’s interesting about CSS is that it converges with JavaScript. Well, there are a couple of things but one is systems like LESS, that kind of compile, they give you some sane options for dealing with some of the dumb stuff that CSS doesn’t include. Then the other one is, I’ve also wound up fighting designers for selectors in the HTML. And so, I thought we could talk through that a little bit as well. BRIAN:  Hey, Chuck? CHUCK:  Yes? BRIAN:  I think those are two like really good points but I think there’s even more areas we can discuss in terms of how JavaScript and CSS are coupled. Like computed styles from JavaScript and also all the CSS methods from JavaScript. And the fact that your JavaScript sometimes doesn’t work, your UI doesn’t work unless the CSS is set up. I think the two tend to be a lot more coupled than people like to think. CHUCK:  I agree. That’s fair. So, which avenue or which aspect do you want to tackle first? Should we talk about just CSS and where it kind of doesn’t give us what we want? BRIAN:  I would love to complain about CSS. I got some bitterness in that sphere. CHUCK:  I know some people consider it programming but it doesn’t have any of the things that classic programming has like variables and functions or methods or anything like that. And I think that’s where a lot of us get frustrated is that we’re used to being able to reuse things, we’re used to being able to set things up that will define the behavior that we want. And in CSS, you really don’t have that. It’s really just simple markup. JOE:  So, do we consider the CSS languages, like Sass and LESS and all those to be part of CSS because then we talk about actually having those things. CHUCK:  Yes. I don’t know if you can call them CSS.




js

043 JSJ Sinon.JS

Panel Christian Johansen (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Jamison Dance (twitter github blog) Discussion 00:45 - Christian Johansen Test-Driven JavaScript Development Sinon.JS Gitorious 01:26 - Sinon.JS 02:22 - Stubs, Mocks and Spies Mocks Aren’t Stubs: Martin Fowler Mocha 10:47 - History of Sinon.JS 12:25 - XHR, HML, HTTP 13:36 - Mocking the Clock Set Time Out 17:22 - Test-Driven JavaScript Development Andrea Giammarchi @WebReflection The Pragmatic Bookshelf Screencasts 21:43 - Test Framework Buster.JS js-test-driver 24:17 - Other Mocking Libraries mockjax 26:24 - Mocking Properties 27:22 - Matchers 30:46 - Sinon.JS Gotchas 33:10 - State of Test-Driven Development in JavaScript Strategies for Testing Picks Jack Reacher (Joe) Torchlight II (Joe) Effective JavaScript by David Herman (Merrick) Rdio (Merrick) Adventure Time (Jamison) How to implement an algorithm from a scientific paper: Emmanuel Goossaert (Jamison) Advanced Vim registers (Jamison) Emacs Rocks! (Christian) Simple Made Easy (Christian) LEGO Lord of the Rings (Christian) Testing Clientside JavaScript (Joe) Transcript MERRICK:  Classy guy. [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.] JAMISON:  Hello friends. Welcome to JavaScript Jabber. This is Episode number 43. Today, we have Joe Eames. JOE:  Howdy! JAMISON:  Merrick Christensen. MERRICK:  Hey guys! JAMISON:  And Christian Johansen. And also me, Jamison Dance. But Christian is the special guest today. Do you want to talk a little bit about yourself? Introduce yourself for those of us that don’t know you? CHRISTIAN:  Yeah, sure. First of all, hi! I'm in Oslo, Norway up in the cold north. So, I wrote a book about testing JavaScript a couple of years back called ‘Test-Driven JavaScript Development’. And I've done a few open source libraries. Perhaps the one that most people know about is Sinon.JS. And currently, I work at Gitorious.org. So, that’s the brief introduction about me, I guess. JAMISON:  Great! Chuck is gone today. He’s at CES, I believe. So, that’s why I'm filling in for him. I think we want to talk mainly about Sinon.JS today. Do you want to just give an overview of it? CHRISTIAN:  Sure. JAMISON:  For those who have never heard of Sinon.JS, what is it? CHRISTIAN:  Sinon.JS is a stubbing and mocking library which means that when you're writing automated tests for your JavaScript, Sinon provides a tool kit to help you test functions and callbacks and stuff like that, to track how they're being used throughout the system. And then, it also provides some utilities to test asynchronous stuff through timers, like Set Time Out and Set Interval and those kinds of things. And it also has a fake XMLHttpRequest implementation. So, it allows you to test your client side JavaScript completely decoupled from the server and it gives you an API to mimic the role of the server in your tests. So, you can focus a test on how the client side reacts to various kind of behavior from the server. JAMISON:  So, you talked about stubbing and mocking. And I think, that means we have to get into the hairy discussion of the difference between stubs and mocks? MERRICK:  And spies. JAMISON:  And spies, yeah. Do you want to explain that a little bit? CHRISTIAN:  Sure. I can explain my take on it because I know there are more than just mine. MERRICK:  Sure. CHRISTIAN:  I'm using the terminology pretty much like Martin Fowler did and he has a famous article called ‘Spies are Not Mocks’ or something like that. So,




js

044 JSJ Book Club: Effective JavaScript with David Herman

Panel David Herman (twitter blog Effective JavaScript) Jamison Dance (twitter github blog) AJ O’Neal (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Tim Caswell (twitter github howtonode.org) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:01 - David Herman Introduction Mozilla Mozilla Research TC39 - ECMAScript 01:45 - Effective JavaScript by David Herman 04:27 - Reader Opinions & Controversy JavaScript:The Good Parts by Douglas Crockford 09:09 - ES3 Shimming 11:25 - Code: effectivejs/code 12:50 - Parts of the Book 15:54 - Blocking Web Gestures With getUserMedia: Part1: Aaron Frost 17:28 - Book Level of Difficulty Effective C++ by Scott Meyers 20:09 - Asynchronous APIs Recursion Tail-Call Optimization 26:51 - Programming Language Academics 30:55 - DOM Integration Effective C++ by Scott Meyers Effective STL by Scott Meyers 31:50 - Advice for JavaScript Beginners Eloquent Javascript by Marijn Haverbeke JavaScript Enlightenment by Cody Lindley How to Design Programs 33:16 - Advice for Programmers in General 34:53 - Performance 38:16 - The JavaScript Language 40:45 - Primitives Vs Wrapper Classes 42:37 - Semicolons 45:24 - -0/+0 Picks Jack (Tim) Putting Constants on the Left (AJ) Getting Started with Amazon AWS EC2 (1 year free VPS web hosting) (AJ) Notes on Distributed Systems for Young Bloods: Jeff Hodges (Jamison) Hurdles getting started with Ember.js (Jamison) Grieves (Merrick) The Scala Programming Language (Merrick) Antoine Dufour (Joe) Torchlight II (Joe) Appliness Digital Magazine (Joe) Powermat Home & Office Mat (Chuck) Une Bobine (Chuck) The Rust Programming Language (David) mozilla/servo (David) Roominate Toy (David) OpenWest Conference Call For Papers (AJ) Transcript CHUCK:  The most effective way to hack is quickly. [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 44 of the JavaScript Jabber show. This week on our panel, we have Jamison Dance. JAMISON:  Hello. CHUCK:  AJ O’Neal. AJ:  Yo! Yo! Yo! Coming at you live from the living roomisphere of Provo, Utah. CHUCK:  We have Joe Eames. JOE:  Hi. CHUCK:  Merrick Christensen. MERRICK:  What’s up guys? CHUCK:  Tim Caswell. TIM:  Hello. CHUCK:  I'm Charles Max Wood from devchat.tv and this week, we have a special guest, Dave Herman. DAVE:  Hi there. CHUCK:  So Dave, you haven’t been on the show before. Do you want to introduce yourself? DAVE:  Sure. I work for Mozilla. I have sort of helped create this new department called Mozilla Research where we do a whole bunch of web platform experiments and new technology for the web. And I also am on the horribly named TC39, the standards organization for ECMAScript, working on the next edition of the JavaScript standard. CHUCK:  Cool. DAVE:  Oh, and I wrote this book. CHUCK: You did this book. TIM:  You didn’t just read it and then become an expert on the book and then talk on a podcast about it? [Laughter] CHUCK:  So, I heard about this book. I’m a little curious when you started writing the book, I mean, what was the idea behind it? What inspired it? DAVE:  To tell you the truth, I had no intention of writing a book, it didn’t occur to me. But the publishers reached out to me, I guess they heard of me through TC39, maybe ‘es-discuss’ or something. But they said, “Okay we’ve got this series, this Effective series.” And I was very familiar with Effective C++ which I think is a great book and I really like the format. And just when they approached me, I kind of thought, “You know,




js

045 JSJ jQuery

Panel AJ O’Neal (twitter github blog) Merrick Christensen (twitter github) Joe Eames (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:11 - jQuery vs Prototype vs MooTools 10:50 - JavaScript Going Mainstream Fast Browsers Firefox Web Developer Tools V8 Web Stack 13:21 - Usable JavaScript 17:05 - jQuery Pros Cross-Platform CSS Selection Chaining 20:16 - jQuery Mobile 20:48 - QUnit 21:21 - Running jQuery in Node Scraping 22:32 - CSS Manipulation 24:14 - jQuery UI 25:19 - jQuery Community 26:31 - jQuery Plugins AJ’s image Merrick’s image 29:52 - Ender & Zepto.js 33:44 - jQuery Cons Custom Selectors Plugin Documentation API is too large How to build your own jQuery 52:15 - AJ lied about jQuery Picks The Robert C. Martin Clean Code Collection (Joe) Old Man’s War by John Scalzi (Joe) Human Connectome Project (Merrick) pahen / node-madge (Merrick) Hype Machine (Merrick) Nothing to Envy: Ordinary Lives in North Korea by Barbara Demick (Jamison) Men’s Medium Tall (AJ) Ubuntu Phone (AJ) Interpreted Dance (AJ) Aaron Frost (AJ) aaronfrost / getusermedia-gestures-preso (AJ) AJ’s Blog (AJ) Hydrofarm Thirsty Light (Chuck) Powermat Power Dual 1200 Rechargeable Backup Battery (Chuck) Joe’s Pluralsight Page Transcript: MERRICK:  Do you want to see my face? [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 45 of the JavaScript Jabber show. This week on our panel, we have AJ O’Neal. AJ:  Yo! Yo! Yo! Coming at you live from the screencastosphere of Provo, Utah. CHUCK:  So, I have to ask, AJ. You realize this is a podcast and that it’s coming to no one live, right? [Laughter] AJ:  He’s got a good point. CHUCK:  We also have Merrick Christensen. MERRICK:  Yeah, I’m Merrick. CHUCK:  Joe Eames. JOE:  I’m not Merrick, I’m Joe. MERRICK:  He’s Joe. CHUCK:  Jamison Dance. JAMISON:  Hello friends. CHUCK:  And I’m Charles Max Wood from DevChat.tv. And this week, we’re going to be talking about jQuery. So, I’m assuming we’ve all used jQuery at least a little bit. JAMISON:  Yes. MERRICK:  Yup. CHUCK:  If you’re doing web stuff, it’s pretty handy. MERRICK:  Actually, the first JavaScript code I ever wrote was messing with somebody’s little jQuery stuff on a form. And I remember I couldn’t get it to all work right. So I just had to set async to false. And I was like, “Man, this JavaScript language is stupid!” CHUCK:  [Laughs] AJ:  I wish my first experience had been with jQuery because I was not using jQuery when I was first using JavaScript and it was terribad. It’s like, “This works properly in no browsers!” Because each tutorial is wrong. CHUCK:  Yeah. Well, I remember back in the day when I was using Prototype for my web app. So, jQuery was a huge step up from Prototype, I have to say. MERRICK:  Why? CHUCK:  It’s just that the interface of the API felt better to me. I can’t really quantify how. MERRICK:  That’s fair. I was a big MooTools fan and I was kind of a hate Query, if you will. AJ:  As you should be, actually. MERRICK:  I didn’t hate jQuery per se, but I really loved MooTools just because the APIs were just so beautiful. And also, all of this new age, these structural libraries like Backbone and all that kind of thing was really natural in MooTools already, right? Because everything was so class-oriented and I’m not saying classes are the only way to organize your code.




js

046 JSJ Staying Current

Panel Joe Eames (twitter github blog) Merrick Christensen (twitter github) AJ O’Neal (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 03:19 - The Future of JavaScript and ES6 es-discuss -- Discussion of ECMAScript @esdiscuss six ES6 in node.js @brendaneich (Brendan Eich) @rwaldron (Rick Waldron) 10:18 - Getting News about JavaScript @derickbailey (Derick Bailey) @tjholowaychuk (TJ Holowaychuk aka Vision Media) @substack (James Halliday) @maxodgen (Max Ogden) Peter Cooper’s JavaScript Weekly Peter Cooper’s HTML5 Weekly @badass_js (Badass JavaScript) @seb_ly (Seb Lee-Delisle) 12:43 - Blogs Ben Alman James Burke LosTechies Alvin Ashcraft’s Morning Dew The Changelog reddit 17:02 - Filtering Readability Pocket (formerly Read It Later) Instapaper three.js UTOSC 2012 Machine Learning in JavaScript Jamison Dance VIDEO0023 23:21 - The Community Airbnb Meetups Addy Osmani: Articles for Developers Utah JS Utah Software Craftsmanship Group Ruby Rogues Parley 27:33 - Podcasts and Videos The Changelog YUI Theater (Yahoo Theater) Google Tech Talks Coursera InfoQ Talks to Help You Become A Better Front-End Developer in 2013: Addy Osmani How To Stay Up To Date on Web Technology: Chris Coyier RubyTapas The JavaScript Show Wide Teams Emacs Rocks! The Breakpoint with Paul Irish and Addy Osmani NodeUp 35:53 - More Blogs HTML5 Rocks A Minute With Brendan Eich John Resig 36:16 - Conferences CascadiaJS JSConf NodeConf Picks Sherlock Holmes Consulting Detective (Joe) Might & Magic Clash of Heroes (Joe) Diet Coke (Merrick) Noah Gundersen (Merrick) Anis Mojgani (Merrick) How to create a bookmarklet (and load jQuery anywhere)! (AJ) So I installed Ubuntu Linux... Now what? (AJ) Doctor Who Sonic Screwdriver of the 10th Doctor (Chuck) Powermat Power Dual 1200 Rechargeable Backup Battery (Chuck) Next Week Monolithic vs Modular Design w/ Tom Dale and James Halliday Transcript AJ: I ate a lot of pickle chips this morning. [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 46 of the JavaScript Jabber show. This week on our panel, we have Joe Eames. JOE: Howdy! CHUCK: We have Merrick Christensen. MERRICK: Hey guys! CHUCK: AJ O'Neal. AJ: I was informed that I'm not actually live. CHUCK: [laughs] Charles Max Wood from Devchat.tv. And real quick I just want to mention...I know that most of the people who listen to this show are JavaScript developers, but if you're interested in learning Ruby on Rails, then I'm going to be teaching a course. It starts in March and you basically get unlimited access to me during the course, access of forms. It's going to be online live training and then coding and Q&A. So if you're interested in that, go to railsrampup.com and sign up. AJ: Now what is "unlimited" mean when you talk about access to you? MERRICK: [scoffs] Come on, man! CHUCK: [laughs] If I'm awake, I'm probably available to answer to all your questions. MERRICK: Do panelists get discounts? CHUCK: If you're interested, I can probably work something out. JOE: Interesting. CHUCK: In fact, I'm offering a discount for anyone who listens to the podcast. If you go and sign up and you enter the coupon code podcast, it'll give you $200 off. MERRICK: Oh nice! Nice! AJ: Panelists only get $50 off, though. CHUCK: That's right. It's like my dad when he graduated from demo school, his cousin came up to him and said "So, do we get a family discount?" and he says "Yeah, I'll charge you 50% more". MERRICK: [laughs] No, kidding!




js

047 JSJ Specialized vs Monolithic with James Halliday and Tom Dale

Panel Tom Dale (twitter github blog Tilde Inc.) James Halliday (twitter github substack.net) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Merrick Christensen (twitter github) Joe Eames (twitter github blog) Tim Caswell (twitter github howtonode.org) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:52 - James Halliday Introduction browserify 02:37 - Tom Dale Introduction iCloud Ember.js Big Data & Hadoop 04:47 - Specialized vs Monolithic github.com/tildeio Idiology Micro Libraries 14:13 - Learning Frameworks 18:04 - Making things modular 25:23 - Picking the right tool for the job 27:44 - voxel.js & emberjs emberjs / packages BPM - Browser Package Manager NPM - Node Packaged Modules testling-ci Backbone.js 38:19 - Module Systems CommonJS 41:14 - Cloud9 Use Case 43:54 - Bugs jQuery Source Code Picks jQuery 2.0 (Merrick) ECMAScript 6 Module Definition (Merrick) AMD (Merrick) Yiruma (Joe) Elementary (Joe) Miracle Berry Tablets (AJ) The Ubuntu You Deserve (AJ) Bravemule (Jamison) RealtimeConf Europe (Tim) visionmedia / cpm (Tim) Why I Love Being A Programmer in Louisville (or, Why I Won’t Relocate to Work for Your Startup: Ernie Miller (Chuck) Is Audio The Next Big Thing In Digital Marketing? [Infographic] (Chuck) testling-ci (James) voxel.js (James) CAMPJS (James) Discourse (Tom) Williams-Sonoma 10-Piece Glass Bowl Set (Tom) The Best Simple Recipes by America’s Test Kitchen (Tom) Next Week Why Javascript is Hard Transcript JAMISON:  You can curse but we will just edit it out and replace it with fart noises. TOM:  I’ll be providing plenty of my own. [Laughter] JAMISON:  Okay, good. [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 47 of the JavaScript Jabber show. This week on our panel, we have AJ O’Neal. AJ:  Yo! Yo! Yo! Coming at you not even live! CHUCK:  [Laughs] Alright, Jamison Dance. JAMISON:  Hi guys, it’s tough to follow that. CHUCK:  Merrick Christensen. MERRICK:  Hey. CHUCK:  Joe Eames. JOE:  Howdy! CHUCK:  Tim Caswell. TIM:  Hello. CHUCK:  I’m Charles Max Wood from DevChat.tv. And this week, we have two guests. The first one is Tom Dale. TOM:  Hey, thanks for having me. CHUCK:  The other is James Halliday. JAMES:  Yep. Hello. CHUCK:  Welcome to the show, guys. We were having a conversation a while back, I don’t remember if it was during another episode or after another episode. But we were having a discussion over code complexity and having like small simple libraries or small simple sets of functionality versus large monolithic sets of functionality, and how to approach those and when they’re appropriate. So, we brought you guys on to help us explore this because you're experts, right? TOM:  I don’t think that’s a fair analysis of the situation, but we can certainly fumble our way through something. [Laughter] CHUCK:  Alright. So, why don’t you guys, real quick, just kind of introduce yourselves? Give us a little background on what your experience is so that we know which questions to ask you guys. James, why don’t you start? I know you’ve been on the show before. JAMES:  Hello. I suppose I wrote Browserify which is relevant here. It’s a common JS style, bundler packager thing that just uses NPM. And I have a bunch of other libraries. And I really like doing data development as just a bunch of little modules put together. They are all published completely independently on NPM. I think I’m up to like 230-ish some odd modules on NPM now. So, I’ve been doing that and I really like that style.




js

048 JSJ Why JavaScript Is Hard

Panel Joe Eames (twitter github blog) Tim Caswell (twitter github howtonode.org) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) AJ O’Neal (twitter github blog) Discussion 00:56 - Why JavaScript is hard to learn 02:30 - This 05:30 - Bind 09:11 - Browsers 11:01 - Class-based inheritance Prototypal inheritance 16:37 - New function 18:51 - Closures 20:51 - JavaScript is asynchronous 22:14 - Variable scoping Hoisting 26:14 - Numbers and math (AJ joins the podcast) == ’s vs === ’s 32:15 - Things that make JavaScript hard after learning JavaScript Package management 35:06 - Numbers (cont’d) Crypto Bitwise operations Strings Effective JavaScript by David Herman 044 JSJ Book Club: Effective JavaScript with David Herman 40:16 - Changing/Evolving JavaScript 43:31 - Environmental reasons that make JavaScript Hard Tooling 48:25 - Few projects are primarily JavaScript 49:07 - Adolescence and the JavaScript Ecosystem 53:59 - Running JavaScript Picks Sharpie Metallic Silver (AJ) The how and why of auto-executing functions (in JavaScript) (AJ) The JavaScript Unicycle (AJ) RSA (Tim) OUYA (Tim) Borderlands 2 (Joe) MechWarrior Tactics (Chuck) Testing Clientside JavaScript (Joe) Fire Up Ember.js | PeepCode (Chuck) Meet Chef (Part 2 of 2) | PeepCode (Chuck) Next Week MooTools with Arian Stolwijk and Valerio Proietti Transcript TIM:  I’m just learning lots of math and attempting to do real math in JavaScript is a fun challenge. [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 48 of the JavaScript Jabber show. This week on our panel, we have Joe Eames. JOE:  Howdy! CHUCK:  We also have Tim Caswell. TIM:  Hello! CHUCK:  And I’m Charles Max Wood from DevChat.tv. And when this episode goes out, you’re going to have about two weeks left if you wanted to sign up for my Rails Ramp Up course. You’ll find that at RailsRampUp.com. I’ve been working hard on that. This week, we’re going to talk about why JavaScript is hard. And I think it was Tim that came on and said, “So, we’re talking about why JavaScript sucks?” And I didn’t want to call it that but at the same time, it’s one of the -- I think the reasons that people find JavaScript hard and the reasons some people say that JavaScript sucks are kind of the same thing. So, if you want to think of it that way, go right ahead. But I kind of wanted to talk about this for a couple of reasons. One was that I was at the users’ group meeting last week and they talked about some of the things that make JavaScript hard and I don’t remember what they all were. But there were a few things that, there are some concepts that are markedly different from what you find in other languages or at least some of the concepts exist in the other languages but they aren’t kind of as important or as in-your-face as they are in JavaScript. Anyway, the other reason is that I was thinking about when I first started this show. And when I first started the show, I was a web developer that was kind of like, “jQuery, whoo!” And thought jQuery and JavaScript, you know, were mostly the same in the sense that the only way to write sane JavaScript was to use jQuery. And so, I wanted to talk around some of the things that I’ve learned over the last year from the other panelists and help people who are coming into JavaScript understand the real power behind some of these other concepts. So that being said, let’s go ahead and get started. I’m a little curious as to what you guys think are some of the hard things that people run into in JavaScript, like why do they struggle with it? TIM:  Alright. So,




js

049 JSJ MooTools with Valerio Proietti and Arian Stolwijk

Panel Valerio Proietti (twitter github) Arian Stolwijk (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:08 - Arian Stolwijk Introduction MooTools Developer Symbaloo 01:39 - Valerio Proietti Introduction MooTools Creator Spotify 02:21 - What is MooTools? Github - MooTools 07:04 - The Class System mootools / prime 09:36 - Milk 10:25 - Design Goals Ghost 11:19 - Prime mootools / wrapup CommonJS 14:18 - MooTools vs jQuery 19:53 - Using MooTools and jQuery together Object Oriented jQuery with MooTools @jQuery Conference: Ryan Florence 21:08 - MooTools for Frameworks epitome neuro Github - MooTools 23:48 - Chaining MooTools Demos - Chaining 26:59 - Request API for Ajax calls 29:11 - Favorite MooTools-using Websites Spotify 9GAG 29:45 - Accomplishments Class System wrapup arian / prime-util 31:36 - The history of MooTools script.aculo.us moo.fx Picks Wasteland 2 (Joe) The Lost Fleet Series by Jack Campbell (Joe) MooTools (Merrick) People who can ride on airplanes for the first time (Merrick) ES6 Module Transpiler - Tomorrow's JavaScript module syntax today (Jamison) ajacksified / song-of-github (Jamison) Community Vote for OpenWest Conference 2013 (Jamison) walmartlabs / hapi (Jamison) Cornify (Chuck) Parade of Homes (Chuck) Dave Ramsey's Financial Peace University (Chuck) Floby / node-libspotify (Valerio) visionmedia / superagent (Valerio) kamicane / moofx (Valerio) Why Mozilla Matters: Brendan Eich (Arian) Ubuntu (source code) (Arian) Next Week QUnit with Jörn Zaefferer Transcript MERRICK:  Yeah, call me Mer-rock, I’m cool with that. [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 49 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames. JOE:  Howdy. CHUCK:  We have Merrick Christensen.  MERRICK:  Hey, guys. CHUCK:  Jamison Dance. JAMISON:  Hello friends. CHUCK:  And I'm Charles Max Wood from DevChat.tv. And I just want to remind you, if you're going to sign up for Rails Ramp Up, you have one week. We also have two special guests and that is Valerio Proietti VALERIO:  Hello. CHUCK:  And Arian Stolwijk. ARIAN:  Hello. CHUCK:  And I think I got close on those names. Okay. So, why don't we have Arian go first? I'd like you just to introduce yourself really quickly for people who aren’t familiar with who you are? ARIAN:  So, I’m Arian. I'm a MooTools developer mostly. Besides that, I work for a company called Symbaloo which is bookmark website page. Besides that, I'm actually still studying for my Master’s Degree in Embedded Systems. And that's about it. CHUCK:  Cool. And Valerio, do you want to introduce yourself? VALERIO:  Sure. Well, I created MooTools a few years ago and since then, a lot of cool people have joined the project like Arian who we have here today. I’m currently working in Sweden at Spotify. CHUCK:  Oh, cool! MERRICK:  Very cool! CHUCK:  Yeah, we like Spotify. MERRICK:  Is that the headquarters of Spotify is in Sweden? VALERIO:  Yeah, this is the where the magic happens. They have other offices but they're not as important as the Swedish one. [Laughter] VALERIO:  I'm kidding. Everybody’s important, not just the Swedish one. CHUCK:  Very nice, very nice. Alright. So, do you guys want to just take a minute and explain what MooTools is? I think people have some idea, but just to get kind of a base line for the rest of the conversation. VALERIO:  Yes,




js

050 JSJ QUnit with Jörn Zaefferer

Panel Jörn Zaefferer (twitter github blog) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:15 - Jörn Zaefferer Introduction jQuery QUnit 02:32 - QUnit jQuery Mobile Introduction to Unit Testing | QUnit 06:59 - Built-in support for HTML fixtures for your tests 08:50 - Unit Testing joshuaclayton / specit mmonteleone / pavlov 11:57 - Assertions fn:deep-equal 15:49 - Why use QUnit? unit testing - QUnit vs Jasmine - Stack Overflow stacktrace.js 023 RR Book Club: Smalltalk Best Practice Patterns with Kent Beck 26:01 - User experience for user interface 30:03 - Continuous integration setups Jenkins CI PhantomJS 023 JSJ Phantom.js with Ariya Hidayat jquery / testswarm jQuery's TestSwarm BrowserStack 36:55 - Testing in JavaScript Sauce Labs: Cloudified Browser Testing Testacular SeleniumHQ 43:35 - Add-ons Picks MYO - The Gesture Control Armband (Jamison) Mailbox (Jamison) Testing Clientside JavaScript (Joe’s Course) (Joe) DragonBox (Joe) Breeze.js (Joe) Anker Battery Pack (Chuck) App.net (Chuck) Leap Motion (Jörn) jQuery Validation Plugin Pledgie (Jörn) Next Week Finding a job Transcript JOE:  I'm really glad that I didn’t know you when Star Wars first came out....Dude! Vader’s Luke’s father. [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 50 of the JavaScript Jabber Show. This week on our panel, we have Jamison Dance. JAMISON:  Hello friends. CHUCK:  We have Joe Eames. JOE:  Hey, everybody. CHUCK:  I'm Charles Max Wood from DevChat.tv. I'm the only person on this particular episode whose name does not start with J. We also have -- I know I'm going to destroy this name. Jorn Zaefferer. JORN:  Hi! Yeah, it’s me. You should have practiced the last name too. CHUCK:  Yeah. JOE:  You should pronounce that correctly for us so we know. JORN:  Jorn Zaefferer. CHUCK:  Alright. Well, I can say Jorn. So, I’m going to stick with that. JORN:  Yeah, that works. CHUCK:  Do you want to introduce your self for the people who aren’t aware of who you are and what you do? JORN:  Sure. I'm a freelance software developer since a little bit more than two years now. I am involved a lot in the jQuery project and have been involved in that for years. So far, I'm the only person on the Board of Directors of the jQuery Foundation outside of the US. And for the jQuery project, I'm working mostly on jQuery UI and the testing tools. So jQuery UI, I'm one of the lead developers. One was Scott Gonzalez. For the testing tools, I'm leading that team. So, I'm trying to get contributions from other people so things move along evenly. There’s usually much more work to do than I can handle myself. So, I’m trying my best to get open source going there. CHUCK:  So, you work on jQuery UI and QUnit? JORN:  I’m working on the jQuery UI and the testing tools which involves QUnit and a few other things. QUnit is the one that’s actually featured in the jQuery site. We also have TestSwarm and even smaller tools that eventually should get there as well. It’s much more influx than QUnit is. CHUCK:  Interesting. So, we brought you on the show to talk about QUnit. Joe is kind of our testing guru as far as JavaScript goes. Is QUnit just a unit testing framework or do you provide other tools for integration with a backend or other libraries? JORN:  QUnit focuses mostly on unit testing. But people usually end up using it for other things as well. I heard a story where someone was using QUnit to do performance regression testing.




js

051 JSJ Finding a Job

Panel AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:02 - Panelist employment backgrounds 04:34 - Programming job market Networking 06:31 - How to get a job doing what you like BetterServers Skunkworks project 09:36 - Qualifications 11:40 - How you find jobs Being active in online and offline communities Mailing list advertisement Recruiters and job boards 15:51 - Resumes 19:27 - Interviews “I don’t know.” Pairing 24:50 - Company fit 095 RR People and Team Dynamics with Joe O’Brien Contract to hire work 30:47 - What makes somewhere a good place to work? Autonomy 40:32 - Freelancing The Ruby Freelancers Show Picks Psych Season 7 (AJ) The Fradio - MediaBox (AJ) Das Keyboard Model S Ultimate Mechanical Keyboard (Jamison) 48 Days to the Work You Love: Preparing for the New Normal by Dan Miller (Chuck) No More Mondays: Fire Yourself -- and Other Revolutionary Ways to Discover Your True Calling at Work by Dan Miller (Chuck) 48 Days Podcast (Chuck) From the Dust (AJ) Next Week Node.js 0.10 Release with Isaac Schlueter Transcript [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 51 of the JavaScript Jabber Show. This week on our panel, we have AJ O’Neal. AJ:  Yo! Yo! Yo! Chuck, did you realize that this is like our anniversary? CHUCK:  Our anniversary was in January actually. Though, we missed a handful of episodes. Otherwise, it would be. Yeah. AJ:  Yeah, whatever. I don’t know whether or not I'm alive. I don’t know when our anniversary is. I don’t know nothing. CHUCK:  [Laughs] We also have Jamison Dance. JAMISON:  Hey guys! CHUCK:  I'm Charles Max Wood from DevChat.tv. And this week, we’re going to be talking about finding a job. I'm a little curious. AJ, you're freelance now, aren’t you? AJ:  Yeah, kind of. CHUCK:  Kind of. AJ:  Mostly, I'm just working on projects that I've been wanting to work on. I haven't actually sought out a lot of work. CHUCK:  Oh, okay. And Jamison is empris -- or employed. JAMISON:  [Laughs] Or happily employed. CHUCK:  I'm freelance as well, been a freelance for a few years now. So, and I know that Tim went freelance. I don’t know if that stuck or not. It sounded like it has, at least, until he decides he wants to be somewhere else. JAMISON:  Merrick and Joe are both employed though. CHUCK:  Yeah. They both work at Domo. JAMISON:  They're like half and half, I guess, now. CHUCK:  So, how many places have you guys worked at as programmers? AJ:  I just worked at BYU and SpotterRF. JAMISON:  I have worked at four places. But one of them, I did PHP and Drupal. I don’t know if I could count that as a programmer then. CHUCK:  [Laughs] You plucked out the bad memories. JAMISON:  Yeah. Well, it was great for the time. It was [inaudible]. CHUCK:  Yeah. I did IT at BYU. I didn’t ever actually work for them as a programmer. And then, I ran tech support at Mozy and I did programming there but it wasn’t part of my job description. My job description was to run the Tech Support Department. So, people would call in with problems with Mozy and we would help fix them. But we needed an Issue Management System, our ticketing system, whatever you want to call it. And we also needed some kind of knowledge base. And the company really didn’t want to spring for it. So, I wound up building it. AJ:  Cool! [Chuckles] CHUCK:  And that’s kind of how I made the transition into programming because after working on that for a while,




js

052 JSJ Node & NPM with Isaac Schlueter

Use this link and code JAVAJAB to get 20% off your registration for FluentConf 2013! Panel Isaac Schlueter (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:33 - Isaac Schlueter Introduction NPM Node 02:33 - Node Backstory v8 SpiderMonkey Joyent 05:37 - Node and New Features Node.js v0.10.0 Manual & Documentation v8 13:30 - Language Accommodations TC39 Luvit libev libuv eventmachine @ GitHub Zedd Shaw 22:32 - C++ LibEVN - Node in C 25:19 - New Streams API 30:37 - Semantic Versioning Experimental versions 33:01 - NPM 39:30 - Issac’s Future 41:06 - Discovery Recommendation Engine Exposing Quality of Modules Code Quality 47:18 - Advice for Adopting Node Joyent The Node Firm StrongLoop Iris Couch Picks Wild at Heart Revised and Updated: Discovering the Secret of a Man’s Soul by John Eldredge (Joe) The Aquabats (Jamison) User Feedback: Isaac Schlueter (Jamison) Fluent 2013 (Merrick) Code: JAVAJAB So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love by Cal Newport (Merrick) StarCraft II (Merrick) Moving to GruntJS: AJ ONeal (AJ) Intro to JSHint: Training Wheels for JavaScript: AJ ONeal (AJ) Gimp (AJ) And Another Thing... (The Hitchhiker’s Guide to the Galaxy) by Eoin Colfer Free Music Downloads on Last.fm (AJ) Blackbird Blackbird - Hawaii (AJ) Hazel (Chuck) Mac Power Users (Chuck) Nonviolent Communication: A Language of Life (Isaac) Next Week Software Team Dynamics Transcript CHUCK:  You all ready? JAMISON:  Super ready. AJ:  So ready.  JOE:  I was born ready. MERRICK:  I was molded by ready. [Laughter] CHUCK:  Alright. [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 52 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames. JOE:  Hey there. CHUCK:  We also have Merrick Christensen. MERRICK:  What up? CHUCK:  AJ O’Neal. AJ:  How do you decide the order each week? CHUCK:  I just make it up. AJ:  Okay. It’s only random. CHUCK:  And Jamison Dance. JAMISON:  Hey guys. CHUCK:  I’m Charles Max Wood from DevChat.tv and we have a special guess that’s Isaac. I know I’m going to destroy your last name. Let me see if I can say it… You say it. ISAAC:  Schlueter. CHUCK:  Schlueter! ISAAC:  Yeah. AJ:  That’s so much easier than I’d ever imagined. [Laughter] ISAAC:  I wanted to hear Chuck keep going on that. JOE:  Yeah, it’s pretty good. CHUCK:  It has extra constantans in it, it throws me off. And then extra vowels. MERRICK:  I heard him just crying, “Shu...shu…” [Laughs] ISSAC:  I have relatives that can’t say it right and it’s their name so… [Laughter] CHUCK:  Alright. Well, do you want to introduce yourself real quickly since you haven’t been on the show? ISAAC:  Sure. I am the author of NPM and I’ve been maintaining Node for the last -- Jesus! It’s been almost a year and a half now, a year or so. CHUCK:  So just a couple small projects that nobody’s heard of, right? [Laughter] ISAAC:  Yeah, a handful of little things on GitHub. CHUCK:  Is there anything else we have to know about you? ISAAC:  I enjoy changing my Twitter avatar to things that are funny or disturbing or preferably both. [Laughter] ISAAC:  And, I don’t know. CHUCK:  Alright. Well, we really appreciate you coming on the show. AJ:  That is pretty disturbing dude. You’ve got your face on a really overweight cat.




js

053 JSJ Software Team Dynamics

Use this link and code JAVAJAB to get 20% off your registration for FluentConf 2013! Panel Joe Eames (twitter github blog) Jamison Dance (twitter github blog) AJ O’Neal (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 02:48 - External Conflicts Dealing with people outside your own team 07:04 - Areas of Expertise 08:45 - Expectations and Deadlines Multiple Layers of Hierarchy Differences in Goals 13:47 - Flatter Structure Approach 15:21 - The Search for Developers Finding the ideal people What makes an ‘A Player’? Intellectual Capability 19:47 - Team Scaling/ Scaling Agile Scaling Agile @ Spotify How Stripe Builds Software, with Greg Brockman 25:10 - Team Diversity 29:57 - Team Dynamics Attitude Different: Escaping the Competitive Herd by Youngme Moon (Joe) 35:00 - Specialization 40:08 - Dealing with someone you don’t like Circumventing Confrontation 50:52 - Dealing with a non-engaged person Picks Honest and open conversations (Merrick) Noah Gundersen (Merrick) Oz the Great and Powerful (Joe) Different: Escaping the Competitive Herd by Youngme Moon (Joe) The Gifts of Imperfection: Let Go of Who You Think You’re Supposed to Be and Embrace Who You Are by Brené Brown (Joe) King of Tokyo (Joe) AngularJS (Joe) Kiki's Delivery Service (Jamison) Local 0.2.2 (Jamison) Ciaran Jessup (AJ) Psych Season 7 (AJ) Google+ Hangouts (AJ) ScreenFlow (AJ) Jing (Chuck) Transmit (Chuck) Next Week JavaScript Parsing, ASTs, and Language Grammar w/ David Herman and Ariya Hidayat Transcript CHUCK:  So, team dynamics this week? JOE:  Sorry, is that our discussion or is that what we decided to call ourselves? [Laughter] CHUCK:  It’s our discussion topic this week. AJ:  We are Team Dynamics. JOE:  Because if we’re going with names, I would like to submit the Wolverines. CHUCK:  The Wolverines? I think it’s taken by a University around here. AJ:  Yeah, and my high school back in Virginia, and that dude from New Zealand who plays in X-Men. CHUCK:  That dude? AJ:  Yeah, that dude, Hugh Jackman. CHUCK:  [Chuckles] [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 53 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames. JOE:  Hi there. CHUCK:  Jamison Dance. JAMISON:  Hello, my mission is to bring calm to the boiling cauldron of hate that is the Internet. CHUCK:  AJ O’Neal. AJ:  Yo! Yo! Yo! Coming at you live from the pulling my hair out over Iowa. CHUCK:  Merrick Christensen. MERRICK:  What up? CHUCK:  I’m Charles Max Wood from DevChat.tv and don’t forget to use that code to get into Fluent Conf. MERRICK:  It’s a big conference. You can go to FluentConf.com for the schedule, happens May 28th to the 30th, it’s at the Hilton Union Square in San Francisco. And for our listeners, you can actually get 20% off on your ticket using JAVAJAB. And that will give you 20% off on the registration. CHUCK:  This week, we’re going to be talking about team dynamics and all the fun stuff that goes with it. To start us off, I kind of want to ask because I always get good stories from people when I ask questions like this. What is your worst team experience? JOE:  That’s quite a way to start it off. It sounds like a good way to get me to burn some bridges. AJ:  No, no, I know this one… JAMISON:  I played little league and I was scared of the ball. And I had the bat and I was really short and they wanted me to bat first because I’d be walked all the time to get on base but I just wanted to quit.




js

054 JSJ JavaScript Parsing, ASTs, and Language Grammar w/ David Herman and Ariya Hidayat

Use this link and code JAVAJAB to get 20% off your registration for FluentConf 2013! Panel David Herman (twitter blog Effective JavaScript) Ariya Hidayat (twitter github blog) Tim Caswell (twitter github howtonode.org) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:48 - David Herman and Ariya Hidayat Introduction 044 JSJ Book Club: Effective JavaScript with David Herman 023 JSJ Phantom.js with Ariya Hidayat 01:54 - Parsing JavaScript and ASTs and Language Grammars 04:44 - Semantics 06:08 - Abstract Syntax Tree (AST) Esprima: Parser SpiderMonkey 10:37 - Lexer 12:16 - Writing your own language creationix / jack The C Programming Language 17:41 - Parser Generators JavaScriptCore 21:04 - Evolving a Syntax Automatic Semicolon Insertion Post correspondence problem Halting problem 28:05 - Language Design The Rust Programming Language 30:35 - Grammar Regular Expressions (Regex) Backus–Naur Form (BNF) Recursion How to Design Programs (HTDP) 38:00 - Recursive Descent Parsers 42:48 - Benefits of knowing language internals and syntax Apache Lucene - Apache Lucene Core LPeg - Parsing Expression Grammars For Lua 48:48 - Abstract Syntax Tree (AST) Picks Mass Effect 3 (Joe) A Beginner's Guide to Irrational Behavior | Coursera (Joe) Go write a programming language to learn one (Tim) Thumbs and Ammo (Jamison) ISM by Savant (Jamison) Vimcasts (Jamison) The iPhreaks Show (Chuck) Mozy (Chuck) Tech & Go Bright Pink Micro USB Cable (David) asm.js (David) Beyond Office Politics: The Hidden Story of Power, Affiliation & Achievement in the Workplace by Linda Sommer (Ariya) gotwarlost / istanbul (Ariya) Next Week Web Developer Skills Transcript JAMISON:  I am Linus Torvalds and I pronounce Linux, Linix. [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 54 of the JavaScript Jabber Show. This week on our panel, we have Tim Caswell. TIM:  Hello. CHUCK:  Jamison Dance. JAMISON:  Hi guys. CHUCK:  Joe Eames. JOE:  Hey there. CHUCK:  Merrick Christensen. MERRICK:  Hey guys, what’s up? CHUCK:  I’m Charles Max Wood from DevChat.tv. And we have two special guests this week. We have Dave Herman. DAVID:  Hey there. CHUCK:  Ariya Hidayat. ARIYA:  Hello everyone. CHUCK:  And these guys are so smart that we brought them back. So, if you’re interested, we’ll put links to the episodes that they were on. David was on when we talked about his book ‘Essential JavaScript’ and Ariya was on when we talked about PhantomJS. JAMISON:  Effective JavaScript. CHUCK:  Effective? What did I say? MERRICK:  Essential. CHUCK:  Essential? Well, it’s an essential book on Effective JavaScript. How’s that? [Laughter] MERRICK:  Good save. DAVID:  At least, you didn’t say Defective JavaScript. [Laughter] CHUCK:  No, that’s what I write. I’m really good at writing defective JavaScript. ARIYA:  Actually, there’s a book about Essential on Defective JavaScript. CHUCK:  I also want to announce really quickly that Fluent Conf has given us a discount code. So, if you want to get 20% off on your registration for Fluent Conf, just enter JAVAJAB and you’ll get 20% off when you register for Fluent Conf. Alright. Well, let’s get started. This is going to be a really, really interesting topic and it’s something that I’ve wanted to know more about for a long time. And I just haven’t delved as deeply into it as I would like to. And that is,




js

055 JSJ Web Developer Skills

Use this link and code JAVAJAB to get 20% off your registration for FluentConf 2013! Panel AJ O’Neal (twitter github blog) Merrick Christensen (twitter github) Joe Eames (twitter github blog) Jamison Dance (twitter github blog) Discussion 00:57 - What does it mean to be a “web developer” “T-shaped skills” 11:01 - Minumum level entry skills you need to become a web developer HTML CSS JSHint Jade less.js jquery 19:39 - CSS Jade 24:24 - Mid-Senior level skills you need to become a web developer Networking HTTP Wireshark Build systems node.js NoSQL Netcat MVC frameworks Preprocessers REST Picks Prime Workers (AJ) Adobe Illustrator (AJ) Vagrant (Merrick) Puppet (Merrick) Mountain West Ruby Conference (Jamison) TXJS (Jamison) Breeze.js (Joe) edge.js (Joe) 'Arrested Development' Comes Back On Netflix On May 26, So Get Extra Sleep Now: Linda Holmes (Joe) Intro to Networking with Netcat and NodeJS (AJ) Intro to HTTP with Netcat, Node, Connect (AJ) Next Week Marionette.js with Derick Bailey Transcript [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.] JAMISON:  Hey guys and welcome to JavaScript Jabber. I’m your guest host today, Jamison Dance. Chuck is at Mount West Ruby Conference today and we have a bunch of panelists today. The first one is AJ O’Neal. AJ:  Yo! Yo! Yo! Coming at you as live as I can from Provo, Utah. JAMISON:  We’ve got Merrick Christensen. MERRICK:  What’s up? JAMISON:  And we’ve got Joe Eames. JOE:  Hey, how’s it going? JAMISON:  Today, we’re talking about just general web development skill sets, like what do you need to know to be a web developer? We should probably start off and define what a web developer is first because I think that it’s a really overloaded term. What do you guys think it means to be a ‘web developer’? I’m doing air quotes right now. JOE:  Merrick and I have had some conversations about this and it’s like I feel like his opinion of what a web developer is, is slightly different than mine. And maybe I’m coming more in line with what his definition is. So, I want to hear his first. MERRICK:  My definition? JOE:  Yeah, go. MERRICK:  So, one of the things that I see a lot of people saying as a web developer is people who come from traditional software engineering backgrounds and they come thinking that they can avoid HTML and CSS altogether. I think that’s a really dangerous approach because then you end up moving too much into JavaScript. And then, you have the opposite problem where people just don’t understand programming well and they end up with sort of jQuery spaghetti code. Which I think is okay for a lot of the brochure style sites, a lot of the maybe WordPress or content driven sites you can get by with just being really solid at HTML/CSS and then below average with JavaScript. But I think if you want to be a web application developer, you’re going to have to be solid on all three of those technologies, CSS, HTML, JavaScript and depending on the app that may include CSS preprocessors et cetera. JOE:  You said web application developer, right? MERRICK:  Yeah. I think there’s a difference. JOE:  Yeah, okay. For mine, one of the things that I feel like is I’m weak with CSS, right? And so, I kind of have this disdain about people that are like, “Oh, you don’t know CSS, huh? Well, that’s a problem.” And I want to say, “Well, yeah I’m not great with CSS.” I can tread water. But I can’t take a screen shot that some designer puts together in Illustrator and then turn it into a web page and feel like I’m doing it right. I always want to turn to an expert and say, “Hey, what do you think of this layout?