ni

Guntur bracing up for massive community testing

PHC, village secretariats identified for quarantine facility




ni

Vizag gas leak: unions blame officials for not taking timely action

Vapour began leaking after midnight but help came only at dawn, they allege




ni

VSP fire personnel play key role in containing gas leak

They also helped evacuate people from the affected area




ni

Panic at midnight: residents flee area fearing second leak

Will take action against those spreading rumours, say police




ni

New Zealand Veterinary Association (NZVA) Special Interest Branch Proceedings [electronic resource].

Publisher New Zealand : New Zealand Veterinary Association
Location World Wide Web
Call No. SF605




ni

Lab animal [electronic resource].

Publisher New York, N.Y. : Nature America Inc.
Location World Wide Web
Call No. SF405.5




ni

012 JSJ Design Patterns in JavaScript with Addy Osmani

The panelists talk about design patterns in JavaScript with Addy Osmani




ni

026 JSJ Code Organization and Reuse

The panelists talk about code organization and reuse.




ni

027 JSJ The JavaScript Community

The panelists discuss the JavaScript community at large.




ni

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,




ni

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.




ni

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,




ni

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.




ni

061 JSJ Functional Reactive Programming with Juha Paananen and Joe Fiorini

Panel Juha Paananen (twitter github blog) Joe Fiorini (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 Rails Ramp Up) Discussion 01:20 - Joe Fiorini Introduction Interaction Developer at Designing Interactive in Cleveland, OH 01:42 - Juha Paananen Introduction Software Developer at Reaktor in Helsinki, Finland 02:30 - Functional Reactive Programming (FRP) vs Functional Programming 057 JSJ Functional Programming with Zach Kessin 04:25 - Declarative Programming 05:55 - Map and Filter 07:05 - bacon.js Flapjax 09:10 - Mapping and filtering event streams 10:40 - Asynchronicity and Promises 14:28 - Using FRP ReactiveCocoa Complex UIs TodoMVC with Bacon.js, Backbone.js and Transparency.js by pyykiss 20:02 - Ember.js and FRP 22:04 - MVC frameworks and FRP Juha Paananen: FRP, Bacon.js and stuff: Chicken, Egg and Bacon.js 24:35 - Learning FRP 25:49 - Where did FRP come from? What is (functional) reactive programming? - Stack Overflow Conal Elliott: Composing Reactive Animations Haskell Reactive-banana - HaskellWiki 29:07 - Going beyond visual media substack/stream-handbook 32:18 - Wrappers 33:31 - How to build things with FRP libraries Juha Paananen @ MLOC.JS: Functional Reactive Programming in JavaScript using Bacon.js Picks SlideShare: Functional Reactive Programming in JavaScript (AJ) Valve: The AI Systems of Left 4 Dead by Michael Booth (Jamison) programming is terrible (Jamison) Simple Made Easy: Rich Hickey (Jamison) AngularJS Fundamentals (Joe's Pluralsight Course) (Joe) Open Source Bridge (Joe) That Conference (Joe) Star Trek: Into Darkness (Joe) ServerBear (AJ) rainwave (AJ) rwbackend (AJ) Mesa Boogie Lone Star Guitar Amplifier (Merrick) backburner.js (Merrick) messageformat.js (Merrick) Digital Ocean (Chuck) Emacs (Chuck) emacs_libs (Chuck) Tmux (Chuck) GitLab (Chuck) Flight by Twitter (Joe F.) Ember.js (Joe F.) CodeMash (Joe F.) fantasy-land (Juha) The Bacon.js postings featuring Phil Roberts (Juha) Iron Sky (Juha) Reaktor Dev Day (Juha) Next Week Dojo with Dylan Schiemann Transcript MERRICK:  How come nobody acknowledges when I talk? What about that? JAMISON:  That’s a deeper problem than a microphone. [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 61 of the JavaScript Jabber Show. This week on our panel, we have AJ O’Neal. AJ:  Yo, yo, yo. Coming at you live from Iowa. CHUCK:  Again? AJ:  Oh, I guess I was there last time, huh? It’ll be New York soon. CHUCK:  We have Jamison Dance. JAMISON:  Howdy, guys. CHUCK:  Joe Eames. JOE E:  Hey there. CHUCK:  Merrick Christensen. MERRICK:  What’s up? CHUCK:  I’m Charles Max Wood from DevChat.tv. This week, we have two special guests. We have Joe Fiorini. JOE F:  Hello everyone. CHUCK:  And Juha Paananen. JUHA:  Yeah. Hi everybody. Juha Paananen. CHUCK:  Thank you for straightening that up for me. We’re going to have you guys introduce yourself real quick, since you haven’t been on the show before. Joe, why don’t you start us off? JOE F:  Sure. My name is Joe Fiorini and I am an Interaction Developer at Designing Interactive in Cleveland, Ohio. I do a decent amount of JavaScript development every week. I’ve discovered Functional Reactive Programming three or four months ago and it’s changed my world. CHUCK:  Awesome. And Juha, do you want to introduce yourself as well? JUHA:  Yeah, why not? I’m Juha. I’m from Finland. Helsinki.




ni

066 JSJ Transitioning to JavaScript

Panel Joe Eames (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:10 - Making the transition from one primary language to JavaScript 01:30 - Merrick’s Experience ActionScript 03:32 - Joe’s Experience .NET Microsoft 07:46 - Moving from C# to JavaScript Misconceptions 09:25 - JavaScript Misconceptions 10:59 - Chuck’s Experience Ruby on Rails 14:25 - Rails and JavaScript Avoidance 15:25 - Microsoft and JavaScript Avoidance 16:58 - JavaScript Development in General Browsers and Problems 23:38 - Libraries and Tools 044 JSJ Book Club: Effective JavaScript with David Herman Effective JavaScript by David Herman 24:45 - Code Structure 27:03 - node.js 28:00 - Learning core concepts behind JavaScript 29:11 - Understanding Clojures, Scoping & Context 29:53 - Testing 31:35 - Deviating off the common path 33:10 - Idiomatic JavaScript Picks Dart (Merrick) ES6 Plans (Merrick) Defiance (Joe) America's Got Talent (Joe) StarCraft II World Championship Series (WCS) (Joe) Continuum (Chuck) Fringe (Chuck) CleanMyMac (Chuck) Book Club JavaScript Allongé with Reginald Braithwaite!  He will join us for an episode to discuss the book on August 1st. The episode will air on August 9th. Next Week Testem with Toby Ho Transcript CHUCK:  Yeah, I can pretend I’m getting better at JavaScript. [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.]  [This podcast is sponsored by JetBrains, makers of WebStorm. Whether you’re working with Node.js or building the frontend of your web application, WebStorm is the tool for you. It has great code quality and code exploration tools and works with HTML5, Node, TypeScript, CoffeeScript, Harmony, LESS, Sass, Jade, JSLint, JSHint, and the Google Closure Compiler. Check it out at JetBrains.com/WebStorm.] CHUCK:  Hey everybody, and welcome to Episode 66 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames. JOE:  Hi there. CHUCK:  And Merrick Christensen. MERRICK:  Hey guys. CHUCK:  I’m Charles Max Wood from DevChat.TV. And this week, we’re going to be talking about, I think it’s kind of a blend of making the transition from one primary language to JavaScript, it usually happens through web development, and some of the mistakes that people make when their primary language is not JavaScript. Let’s go ahead and get started. Merrick, you’re kind of the expert guy that I always look at and go, “Man, he’s awesome at JavaScript.” So, I’m wondering, did you start out at JavaScript or did you come in from somewhere else? MERRICK:  Oh, that’s really nice of you, man. I actually started out with ActionScript. I really loved Flash developments, but it’s the same thing, really. They’re both based off of ECMAScript. So, I guess you could say I’ve always done JavaScript. JOE:  So, ActionScript is nearly identical to JavaScript? MERRICK:  Well, not anymore. ActionScript 3 developed classes and they typed it and they did some interesting things to make it more of a full-featured language. It’s got more [inaudible] than JavaScript now, I think. But I ended up getting into JavaScript when I was like 17 or so. I came across the MooTools framework and ever since then, it’s been all JavaScript all the time. CHUCK:  You’re pretty young. Wasn’t that last year? [Laughter] MERRICK:  Close. No, about six years, five years of JavaScript. JOE:  You’re also, though, like a real student of languages. You love studying other languages. MERRICK:  I love programming languages, yeah. JOE:  I think you’re a pretty funny, not necessarily unique,




ni

075 JSJ Maintainable JavaScript with Nicholas Zakas

Panel Nicholas C. Zakas (twitter github blog) Joe Eames (twitter github blog) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Merrick Christensen (twitter github) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:24 - Nicholas Zakas Introduction Box Maintainable JavaScript by Nicholas C. Zakas High Performance JavaScript (Build Faster Web Application Interfaces) by Nicholas C. Zakas Yahoo 02:19 - What Makes Maintainable JavaScript? Code Layout Clever Solutions (“Chicken Blood Solutions”) 04:39 - Formatting Thinking, Fast and Slow by Daniel Kahneman Broken Window Theory 07:33 - Architecture aura Nicholas Zakas: The Scalable JavaScript Application Architecture Feature Encapsulation 14:11 - 'High Performance Javascript' and the balance between short-term and long-term knowledge 19:17 - Important conventions for a team to follow Styles Mini Design Patterns Readability 26:14 - Tools & Techniques Style Guide 28:31 - Breaking the continuous integration build 31:14 - Linting JSLint 32:35 - Developing skills for architecting things Experience Personal Trait of Curiosity Component-based and Systems-based software engineers 37:52 - Architecture and Maintainability Testability Backbone.js 43:28 - Creating common conventions that will apply across projects Picks Domo (Joe) Pluralsight (Joe) Game Dev Tycoon (Joe) The Star Wars (Joe) Foundation Actionscript 3.0 Animation: Making Things Move! by Keith Peters (Merrick) ng-conf (Merrick) Kveikur by Sigur Rós (Merrick) makemeasandwich (AJ) Sleep (AJ) Jekyll Themes (Jamison) Growing Object-Oriented Software, Guided by Tests by Steve Freeman (Jamison) A Canticle For Leibowitz by Walter M. Miller Jr. (Jamison) DevChat.tv (Chuck) Thinking, Fast and Slow by Daniel Kahneman (Nicholas) StePhest Colbchella '013 - Time to Dance (Nicholas) Evolution of Music - Pentatonix (Nicholas) Next Week Meteor.js with Marcus Phillips and Fred Zirdung 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.]  [This podcast is sponsored by JetBrains, makers of WebStorm. Whether you’re working with Node.js or building the frontend of your web application, WebStorm is the tool for you. It has great code quality and code exploration tools and works with HTML5, Node, TypeScript, CoffeeScript, Harmony, LESS, Sass, Jade, JSLint, JSHint, and the Google Closure Compiler. Check it out at JetBrains.com/WebStorm.] CHUCK:  Hey everybody and welcome to episode 75 of the JavaScript Jabber show. This week on our panel, we have Joe Eames. JOE:  Hey, everyone. CHUCK:  AJ O’Neal. AJ:  I can hit unmute. I'm here. CHUCK:  Jamison Dance. JAMISON:  Hello, friends. CHUCK:  Merrick Christensen. MERRICK:  Hey, guys. CHUCK:  I’m Charles Max Wood from DevChat.TV. This week, we have a special guest, that’s Nicholas Zakas. NICHOLAS:  Yup, you got it. CHUCK:  So, since you haven’t been on the show before, do you want to introduce yourself? NICHOLAS:  Sure. I'm a software engineer that is working for Box currently. I think a lot of people probably know me from the books that I've written, mostly on the topic of JavaScript and the talks that I've given also on that topic. And a lot of that relates back to my work when I was at Yahoo. I was there for about five years and was the lead on the Yahoo homepage redesign. And a lot of what I do is really just try to solve problems in real life and then share what I did with everybody else in whatever way I think is most appropriate - writing or speaking or coming on podcasts. CHUCK:  Yes, you're being modest. You have a book,




ni

080 JSJ - Impact.js with Dominic Szablewski

Dominic Szablewski joins the Jabber gang to talk about Impact.js, game development, html5, and strategy.




ni

088 JSJ Lazy.js with Daniel Tao

The panelists talk to Daniel Tao, maintainer of Lazy.js.




ni

093 JSJ The New York Times and JavaScript with Eitan Konigsburg, Alastair Coote and Reed Emmons

The panelists discuss The New York Times and JavaScript with Eitan Konigsburg, Alastair Coote and Reed Emmons.




ni

100 JSJ Centennial Episode Celebration

The panelists celebrate their 100th episode!




ni

104 JSJ Hypermedia APIs with Steve Klabnik

The panelists discuss hypermedia APIs with Steve Klabnik




ni

105 JSJ JSConf and Organizing Conferences with Chris Williams

The panelists discuss JSConf and conference organization with Chris Williams.




ni

113 JSJ Community Dynamics with Reginald Braithwaite

The panelists talk to Reginald Braithwaite about the dynamics of the JavaScript community.




ni

119 JSJ Chrome Apps with Joe Marini

The panelists talk about Chrome apps with Google's Joe Marini.




ni

126 JSJ The Ionic Framework with Max Lynch and Tyler Renelle

The panelists discuss the Ionic Framework with Max Lynch and Tyler Renelle.




ni

135 JSJ Smallest Federated Wiki with Ward Cunningham

The Panelists talk to the creator of the Smallest Federated Wiki, Ward Cunningham.




ni

151 JSJ Getting Started with a Career in Web Development with Tyler McGinnis

02:21 - Tyler McGinnis Introduction

03:23 - Getting Started at DevMountain

04:38 - DevMountain Conception

05:37 - How Do I Learn How to Code?

  • Struggle. Fail. Tears.
  • [Confreaks] Tyler McGinnis: What I’ve Learned about Learning from Teaching People to Code

08:03 - Resources => Consume ALL THE Information

11:16 - Two Camps: Art (Creators) and Technicians <= Does DevMountain Cater to One or the Other?

13:08 - Repetition as a Way to Learn

15:23 - Letting People Struggle vs Helping Them    

17:14 - Training/Finding Instructors / Teaching Teachers to be Better Teachers

21:08 - Why Is JavaScript a Good Language to Learn?

24:11 - DevMountain Mentors

26:30 - Student Success Stories

28:56 - Bootcamp Learning Environments

34:11 - Oldest and Youngest Students (Success Stories Cont’d)

37:18 - Bootcamp Alumni (Employment Rates and Statistics)

Picks

Costco Kirkland Brand Peanut Butter Cups (Dave)
[Confreaks] Tyler McGinnis: What I’ve Learned about Learning from Teaching People to Code (Dave)

[YouTube] Katya Eames: How to Teach Angular to your Kids (Dave)
[YouTube] Misko Hevery and Rado Kirov: ng-conf 2015 Keynote 2 (Dave)
Mandy’s Fiancé (AJ)
[YouTube] Katya Eames: How to Teach Angular to your Kids (Joe)
ng-conf Kids (Joe)
Salt (Joe)
[YouTube] Dave Smith: Angular + React = Speed (Tyler)
[YouTube] Igor Minor: (Super)Power Management (Tyler)
React.js Newsletter (Tyler)
Dave Smith’s addendum to his talk (Joe)




ni

152 JSJ GraphQL and Relay with Nick Schrock and Joe Savona

02:25 - Nick Shrock Introduction

02:40 - Joe Savona Introduction

02:49 - Facebook and Open Source

04:10 - GraphQL and Relay Overview

  • React for Your Data” / Component-based Data Fetching

06:11 - Unique to React? Passing Down Through the Hierarchy

10:09 - Queries

  • Tooling
    • Graphical
  • Pulling Definitions

14:13 - Why Do I Care? (As Someone Not Working at Facebook)

15:21 - Building Applications with GraphQL and Relay

19:01 - GraphQL and Building Backends

21:42 - Drivers and Client Software

  • Synthesize => Code Generation
  • Flux
  • Container Classes

30:58 - Reusing Components

31:50 - Data Management

34:25 - Open Source

36:40 - Reflecting Backend Constraints? (Optimizing the Backend)

43:02 - Relationships => Logs

46:24 - Security

47:16 - Replacing REST (Adopting New Technology)

  • “The Progressive Disclosure of Complexity”

52:14 - What You Wouldn’t Use GraphQL or Relay For

  • Games

Picks

Another Eternity by Purity Ring (Jamison)
JT Olds: What riding a unicycle can teach us about microaggressions (Jamison)
OCReMix (AJ)
Duet Display (Chuck)
Summoners War (Chuck)
Thinking, Fast and Slow by Daniel Kahneman (Joe)
Learning a new language (Joe)

Other People: What Kind of Man (Nicolas Jaar remix) - Florence & the Machine (Nick)
Boosted Boards (Nick)
The Onion: Succession Of Terrible Events Fails To Befall 33-Year-Old Riding Longboard To Digital Media Job (Nick)




ni

153 JSJ Careers for Junior Developers with Aimee Knight

02:26 - Aimee Knight Introduction

02:48 - Figure Skating => Programming

  • Persistence
  • Balance Between Mind and Body

05:03 - Blogging (Aimee’s Blog)

06:02 - Becoming Interested in Programming

08:43 - Why Boot Camps?

10:04 - Mentors

  • Identifying a Mentor
  • Continuing a Mentorship

13:33 - Picking a Boot Camp

16:23 - Self-Teaching Prior to Attending Boot Camps

20:33 - Finding Employment After the Boot Camp

26:27 - Being a “Woman in Tech”

30:57 - Better Preparing for Getting Started in Programming

  • Be Patient with Yourself

32:07 - Interviews

  • Getting to Know Candidates
  • Coding Projects and Tests

41:05 - Should you get a four-year degree to be a programmer?

Picks

Aarti Shahani: What Cockroaches With Backpacks Can Do. Ah-mazing (Jamison)
Event Driven: How to Run Memorable Tech Conferences by Leah Silber (Jamison)
The Hiring Post (Jamison)
Kate Heddleston: Argument Cultures and Unregulated Aggression (Jamison)
Axios AJAX Library (Dave)
Unbroken: A World War II Story of Survival, Resilience, and Redemption by Laura Hillenbrand (Dave)
[YouTube] Good Mythical Morning: Our Official Apocalypse (AJ)
Majora's Mask Live Action: The Skull Kid (AJ)
The Westin at Lake Las Vegas Resort & Spa (Joe)
Alchemists (Joe)
Valerie Kittel (Joe)
The Earthsea Trilogy: A Wizard of Earthsea; The Tombs of Atuan; The Farthest Shore by Ursula K. Le Guin (Chuck)
Traction: Get a Grip on Your Business by Gino Wickman (Chuck)
Freelancers’ Answers (Chuck)
Drip (Chuck)
Brandon Hays: Letter to an aspiring developer (Aimee)
SparkPost (Aimee)
Exercise and Physical Activity (Aimee)




ni

154 JSJ Raygun.io Error Reporting and Workflow with John-Daniel Trask

02:35 - John-Daniel Trask Introduction and Background

04:57 - Raygun.io

06:23 - Crash Reporting The Right Way

  • Error Grouping
  • Suppress Notifications

10:06 - Most Common Errors

12:05 - Source Maps

19:16 - Managing Error Reporting in Gross Environments

22:17 - Determining Where The Issue Is

24:45 - Do People Write Their Own Errors?

26:23 - Frameworks Support

28:28 - Collecting Data: Privacy and Security

30:01 - Does working in error reporting make you judgemental of others’ code?

  • “DDOSing Yourself”

32:42 - Planning for Rare Exceptions

33:36 - Tactics to Cut Down on Messages

35:53 - Gathering Basic Debugging Information

37:58 - Getting the BEST Information

42:24 - The Backend: Node.js

43:24 - “Creating an Application”

Picks

LDS Connect (AJ)
LDS I/O (AJ)
TED Talk About Nothing (Dave)
OlliOlli 2 Soundtrack (Jamison)
Jurassic Park (Joe)
 
ng-vegas (Joe)
WASD CODE 87-Key Illuminated Mechanical Keyboard with White LED Backlighting - Cherry MX Clear (Chuck)
Grifiti Fat Wrist Pad (Chuck)
Thank You
Rails Clips Kickstarter Backers! (Chuck)
Mastery by Robert Greene (Chuck)
Ready Player One by Ernest Cline (Chuck)
The Pirates of Silicon Valley (John-Daniel)
littleBits (John-Daniel)




ni

173 JSJ Online Learning with Gregg Pollack

Check out Angular Remote Conf!

 

02:55 - Gregg Pollack Introduction

05:19 - Code School

06:49 - Course Content

09:42 - Plots & Storylines

11:40 - Code School vs Pluralsight

14:09 - Structuring Courses

18:21 - JavaScript.com

22:47 - Designing Exercises & Challenges

30:31 - The Future of Online Learning

34:01 - Teaching Best Practices

Picks

Mr. Robot (Gregg)
#ILookLikeAnEngineer (Aimee)
Why we Need WebAssembly An Interview with Brendan Eich (Aimee)
Raspberry Pi 2 Model B (AJ)
Periscope (Chuck)




ni

178 JSJ Tech Education and The Business of Running Front End Masters with Marc Grabanski

03:01 - Marc Grabanski Introduction

03:35 - The jQuery UI Datepicker

04:29 - Frontend Masters

07:26 - The Live Streaming Phenomenon

09:17 - Scalability

11:25 - Value, Feedback Cycle

14:43 - Structuring Courses and Workshops

16:09 - Online vs In-Person

  • Prerequisites

18:11 - Booking Workshops

19:02 - Scaling (Cont’d)

20:00 - Online Education (eLearning) in General

21:40 - The Business Model

  • Licensing

24:12 - Hot Sellers

25:28 - Technical Setup

27:27 - Selecting Topics

29:41 - Future Topics / Topics in Production

30:38 - Individual / Company Attendees

31:45 - Upcoming Plans for Frontend Masters

32:32 - Advice For Starting Something Like Frontend Masters

34:23 - Keeping Content Up-to-date

36:14 - eLearning Experiments

39:30 - Giveaways

40:07 - Getting Started with Programming

43:03 - Marketing

45:20 - Teacher Compensation

Picks

Jessica Kerr: Functional Principles In React @ React Rally 2015 (Jamison)
thought-haver (Jamison)
[Frontend Masters] Angular Application Development (Aimee)
[Frontend Masters] JavaScript the Good Parts (Aimee)
LÄRABAR (Aimee)
Taking time off (Chuck)

The Man from U.N.C.L.E. (Joe)
BB-8 by Sphero (Joe)
ng-conf (Joe)
The Tim Ferriss Show (Marc)
CodeCombat (Marc)
Untrusted (Marc)




ni

184 JSJ Web Performance with Nik Molnar

Submit a talk or buy a ticket! Check out JS Remote Conf!

 

02:30 - Nik Molnar Introduction

02:50 - What Microsoft’s Cross-Platform and Open Tooling Team Does

03:41 - Microsoft and Open Source

05:25 - Performance

08:15 - Is good, clean architecture at odds with high-performance code?

09:41 - Latency and Bandwidth

20:23 - Hierarchy of Needs for Users of Software

24:36 - Controlling Performance

  • “Performance Budget”

26:21 - The Cost of Performance (ROI)

31:57 - Speed Index

41:50 - Avoiding the “It feels fast on my machine” Syndrome

45:03 - RUM = Real User Monitoring

  • Navigation Timing
  • Resource Timing
  • User Timing

46:24 - Synthetic Testing

47:50 - Performance Audits

50:39 - Do Less

More From Nik

Picks

UtahJS 2015 (Dave)
ES6 Overview in 350 Bullet Points (Jamison)
Saturday Morning Breakfast Cereal (High Frequency Training) (Jamison)
Chris Zacharias: Page Weight Matters (Jamison)
React Rally Talks (Jamison)
MONEY Master the Game: 7 Simple Steps to Financial Freedom by Tony Robbins (Chuck)
Rush Revere and the Star-Spangled Banner by Rush Limbaugh (Chuck)
Visual Studio Code (Nik)
High Performance Browser Networking by Ilya Grigorik (Nik)
Nik's Pluralsight Courses (Nik)




ni

190 JSJ Web Performance Part 2 with Nik Molnar

There’s still time! Check out and get your JS Remote Conf tickets!

 

JavaScript Jabber Episode #184: Web Performance with Nik Molnar (Part 1)

 

02:04 - Nik Molnar Introduction

02:58 - RAIL (Response, Animation, Idle, Load)

06:03 - How do you know what is being kicked off? How do you avoid it?

08:15 - Frame Rates

16:05 - Scrolling

19:09 - The Web Animation API

21:40 - Animation Accessibility, Usability, and Speed

27:14 - HTTP and Optimization

35:25 - ES6 and Performance

40:46 - Understanding the Scale

43:30 RAIL (Response, Animation, Idle, Load) Cont’d

46:15 - Navigator.sendBeacon()

47:51 - Memory Management and Garbage Collection

Picks

Hardcore History Podcast (Jamison)
Static vs. Dynamic Languages: A Literature Review (Jamison)
TJ Fuller Tumblr (Jamison)
Pickle Cat (Jamison)
WatchMeCode (Aimee)
Don’t jump around while learning in JavaScript (Aimee)

P!nk - Bohemian Rhapsody (Joe)
Rich Hickey: Design, Composition and Performance (Joe)
Undisclosed Podcast (AJ)
History of Gaming Historian - 100K Subscriber Special (AJ)
15 Minute Podcast Listener chat with Charles Wood (Chuck)
JS Remote Conf (Chuck)
All Remote Confs (Chuck)
Clash of Clans (Chuck)
Star Wars Commander (Chuck)
Coin (Chuck)
The Airhook (Chuck)
GoldieBlox (Chuck)




ni

219 JSJ Learning JavaScript in 2016

Check out Newbie Remote Conf!

 

02:44 - What it Takes to Learn JavaScript in 2016

04:03 - Resources: Then vs Now

09:42 - Are there prerequisites? Should you have experience?

20:34 - Choosing What to Learn

28:19 - Deciding What to Learn Next

31:19 - Keeping Up: Obligations As a Developer

34:22 - Deciding What to Learn Next (Cont’d)

42:01 - Recommendations

 

Picks




ni

223 JSJ WebStorm with Dennis Ushakov

React Remote Conf and Angular Remote Conf

 

03:18 - Dennis Ushakov Introduction

03:54 - Writing an IDE in Java

04:50 - Specs

05:43 - WebStorm Defined

06:19 - IDEs vs Text Editors

08:31 - Building an IDE

13:00 - Code Reuse

15:07 - Prioritizing Features

17:11 - Why is IDE tooling important?

  • “Code is read a lot more than it’s written.”

19:57 - Refactorings

  • The Dynamic Nature of JavaScript
  • TypeScript-specific Refactorings

23:35 - Next Versions of Webstorm

25:07 - Framework Support; Usage Data

28:12 - Other Technology and Framework Support

31:12 - Working for JetBrains

32:17 - Release Cycles and Procedures

34:39 - Java Source Code Contribution

 

Picks




ni

227 JSJ Fostering Community Through React with Benjamin Dunphy, Berkeley Martinez, and Ian Sinnott

03:08 - Benjamin Dunphy Introduction

04:07 - Berkeley Martinez Introduction

04:19 - Ian Sinnott Introduction

05:19 - The React Codebase

12:38 - Other Important Parts of the React Ecosystem

14:22 - The Angular vs the React Ecosystem and Community

22:07 - Community

Developer Experience

26:56 - Getting Connected to the React Community

29:34 - Conferences

33:28 - Technology From the Community

40:19 - The Future of React

42:39 - Starting More Communities

 

Picks




ni

236 JSJ Interview with Mads Kristensen from Microsoft Ignite

TOPICS:

4:00 Things that make web development more difficult

7:40 The developer experience with Angular

10:40 How cognitive cost affects the user experience

16:52 The variety of users for whom Mads’ software is built

22:14 Creating accessible javascript tools that aren’t immediately outdated

28:20 Why people shouldn’t be using dependency installers

34:00 Node updates

QUOTES:

“The massive introduction of new tools all the time is a big part of what makes web development harder.” -Mads Kristensen

“I’m not a pretty pixels person, I’m a code and algorithms person.” -AJ O’Neill

“I’m not hearing hype about people using HTTP2 to get those benefits, I’m only hearing hype around tools that Static built.” -AJ O’Neill

PICKS:

Death Note Anime Show

JS Remote Conference

The Alloy of Law Book by Brandon Sanderson

Zig Zigler Books on Audible

Mr. Robot TV Show

RESOURCES & CONTACT INFO:

Mads on Twitter

Mads’ Website

 




ni

MJS #006: Dennis Ushakov

On today's episode of My JS Story, Charles Max Wood welcomes Dennis Ushakov. Dennis is a team lead of WebStorm and RubyMine at JetBrains. Tune in to My JS Story Dennis Ushakov to learn more about his programming experience in Java and JavaScript.




ni

JSJ 252 The 20th Anniversary of Visual Studio with Bowden Kelly

Javascript Jabber is hosted this week by Joe Eames, Aimee Knight, AJ O'Neal, Cory House, Charles Max Wood and their special guest Bowden Kelly. Bowden is a program manager at Microsoft and he shares some insight into the new features in Visual Studio 2017 RTM with Bowden Kelly.




ni

JSJ 253 Gomix with Daniel X Moore

On today's JavaScript Jabber Show, Aimee Knight, Cory House, and Charles Max Wood discuss Gomix with Daniel X Moore. Daniel is a Software Developer at Fog Creek Software, and has been in the industry for 10 years. Their company currently offers an amazingly convenient way to build apps. Tune in to learn about it!




ni

MJS #009: Joe Fiorini

Welcome to the 9th My JS Story! Today, Charles Max Wood welcomes Joe Fiorini. Joe has been into programming since his teenage years. He discussed about functional reactive programming in episode 61 of JavaScript Jabber. Get to know him better at My JS Story Joe Fiorini.




ni

MJS #019: Aimee Knight

On today's episode, Charles Max Wood features My JS Story Aimee Knight. Aimee first appeared in episode 153, where talked about her career as a Junior Developer. She eventually became one of the awesome panelists of JavaScript Jabber. Tune in to learn about her journey in programming!




ni

JSJ 263 Moving from Node.js to .NET and Raygun.io with John-Daniel Trask

This episode features Moving from Node.js to .NET and Raygun.io with John-Daniel Trask. John-Daniel is the Co-founder and CEO of Raygun, a software intelligence platform for web and mobile. He's been programming for many years, and is originally from New Zealand. Tune in and learn what prompted them to move to the .NET framework!




ni

JSJ 267 Node 8 with Mikeal Rogers, Arunesh Chandra, and Anna Henningsen


JSJ 267 Node 8 with Mikeal Rogers, Arunesh Chandra, and Anna Henningsen

On today’s episode of JavaScript Jabber we have panelists Joe Eames, AJ O’Neil, Amiee Knight and Charles Max Wood and we are talking about Node 8. To help us we have special guests Mikeal Rodgers, Arunesh Chandra, and Anna Henningsen. It’s going to be a great show. Tune in.


[1:56] Is Node 8 just an update or is there more?
  • More than just an update
  • Two main points:
  • Improved Prana support
  • Native API
  • Native APIs are helpful for Native Add-ons. For both the consumer and the developer side.
  • Prior to update these Node Native modules ran in C++ and bound to specific to Node 8 APIs.
  • Causes these modules to be updated or reconciled every time these modules are rereleased.
  • Creates burden for module maintainers.
  • Creates friction in upgrading Node versions in production departments.
  • If you have a deployment depending on a certain Native module, some of the modules may not get updated in time when updating your Node versions. Keeping people from updating Node.
  • Creates compatibility issues with Node users not using Node 8
  • Experimental support for a Native layer in Node 8 to eliminate these issues as much as possible.
  • Important milestone for the module ecosystem.
  • You can write extensions for Node in C++ and it decouples V8 so you can use something else on the front.
  • Modules takes dependency on V8 API specific to a particular version. So if V8 changes your module will be extracted from that.
  • As a side benefit, you can have another VM to take advantage of that.
  • Major version upgrades mean updating Native modules and usually some of those modules haven’t updated to the newest version of Node and be complicated.
  • Deep dependency wise, about 30% depends on a Native module somewhere
  • In the future, with the Native API, you’ll be able to update Node without breaking modules.
[5:51] What kind of work went into this?
  • Most of the work was in C++
  • First thing that was done was, they looked at the top dependent Native modules in the ecosystem.
  • Looked for what kind of V8 exposure they had and cataloged it
  • Looked at how these APIs and what their purposes were
  • Looked for a way to extract them so that they are part of Node Core
  • Created neutral APIs, now part of the Node core.
  • All C APIs
  • Also has a C++ wrapper to improves usability of the API.
[7:17] What’s an example of what you can do with these APIs?
  • Native modules allows for tighter integration and better module performance
  • Specific APIs that you can use in V8 that isn’t available through JavaScript
  • If you have a C++ variable code and you want to expose a variable into JavaScript, that is V8 API note a Node 8 API
  • Having it bound directly to the VM was something they wanted for a long time
  • Google controls V8 and they bind to V8
  • Created a better relationship with Google starting in IOJS
  • Also worked with Microsoft with their Node Shocker work.
  • Same with SpiderMonkey
  • SpiderNode is in the works
[9:23] Have you guys done any testing for performance?
  • Some. There is a performance working group.
  • There is a need to stay on top of V8
  • V8 team has focused on new language features
  • Many features have been added over the years
  • Many didn’t come in optimized
  • The performance profile has changed with these features
  • If you’re using new language features, you will see a performance boost
  • In core, still tracking down code that was specific to the old optimizer and rewriting i to work the new optimizer
  • Turbo C compiler hasn’t landed yet, but is to come.
  • Will have a completely different performance profile
  • In most real world applications it will be faster
  • Waiting on the release to take a version of V8 to make it easier to upgrade features in the future
[11:28] Are the new features picked up from V8 or implemented in Node?
  • It’s all in V8
  • Better longterm support
  • Promises are made better in Node as a platform
  • Added new method called util.promisify()
  • Implementation comes from V8
  • Allows for more optimization for promises in Node core
  • Promise support for the one-deprecated domains module.
[13:02] Is there anything more than NMP 5?
  • First off, delete your NMP cache.
  • It’s in your home directory usually with a .npm extension
[14:09] What are the new features in V8?
  • Unlimited heap sizes, previously had a 4gb limit. No fixed limit.
[14:09] Will you see things like chakra come out tuned for servers?
  • Profiles of a server for application process are getting smaller
  • Getting cut into containers and VMs and micro services
  • Vms that have cold boot time and run quickly in a strained environment is looking more like what we will see in the future
  • Yes, especially if you’re using cloud functions
  • V8 is optimized for phones, but Chakra is even more so
  • Looking for opportunities for VMs can be solely optimized for a device target
  • Node take advantage of that VM
  • VM neutrality is an interesting concept
  • VM Vendors trying to optimize it based on workloads of a server
  • Opens opportunities for Node
  • Node Chakra has been proved to iOS. You can cut off jitting off which was a requirement to be able to be in the Apple App Store
  • Node is not just for servers anymore
  • Node doesn’t take a long time configuring it
  • When a developer runs code on an IoT or a mobile app they don’t control the VM that is bundled, they run it on top of Node and it just works.
  • VM neutrality gives a new vector, so you can swam a whole different VM
[18:44] When running different engines like iOS vs Android, does the profile change?
  • What it comes down to is if it’s eventive programming
  • The browser is an eventive environment, is very efficient waiting for things to happen before it does something
  • The way that we program servers and nodes are the same as well
  • the basics are the same generally
  • environmental differences exist but the programming model is usually the same
  • What does impact it is memory and processor and hardware and things like that
  • That is where tuning the VM comes into play
[20:29] What is the new Async Hooks API used for?
  • Node has been lacking for automated inspection of Async Hook
  • No way for Node to tell you when scheduling and beginning of an Async operation. Hook helps with that
  • it’s a way for developers to write debugging features
  • Node tells the application that it’s working with Asynchronous way.
  • The embedded inspector has been embedded since Node 6
  • Now has a JavaScript API to use it
  • You can use things like Chrome debugger inside the running node process
  • Old debugging protocol has been removed
  • VM.run is still there but in the process of being deprecated
[22:34] How like is the experimental Node API will change?
  • Marked as experimental because it’s the first time in the open
  • Hopefully out of experimental soon
  • Soon can port API to the existing LTS
  • Looking for more people to participate with the new API and give feedback
  • Fix any concerns before it goes to LTS
  • Some other experimental things are in the works like ASync Hooks and how it interacts with promises
  • Renaming some features
  • Another new feature - serializer and deserializer that comes with V8
  • experimental but will most likely stay
[25:31] what is your standard for going to LTS?
  • Major releases every 6 months
  • Next Oct Node 9 will come out and then Node 8 will be LTS
  • Documentation, updates, additions etc will be ready then
  • Plan to do it for 2.5 years
  • Every even releases come out to LTS as the odd release comes out
  • Helps keeps a current line while having something new in the release line
  • Node 6 is the current LTS version
[27:26] What are you taking out or deprecating in Node 8?
  • Use the word deprecate sparingly
  • If many people use features, it’s hard to get rid of
  • Security issue with Buffer, constructor argument was ambiguous
  • Had added APIs that were more explicit over time and pushed those
  • Now it will be deprecated
[28:43] 21% - 33% Performance increase with some Node updates
  • Someone online updated their React app to Node 8 and found an 21% - 33% increase
  • Benchmarking group tests to make sure things are getting faster
  • V8 is always getting faster as well
  • Code changes fast and so there is a chance performance slows down so they have people to check
  • Benchmark test are all automated by a team
[30:47] Is it safe to just switch to Node 8?
  • For front-end, yes
  • clear your NPM cache
  • Back use cases will usually wait until LTS
[31:28] Where any of the features hard to implement?
  • The API work took about a year
  • It was a collaboration which made it interesting
  • IBM, Intel, Google were involved
  • The collaboration took a while
  • Also Async hooks took at least a year.
  • Async hooks used to be called async wraps and has been in the work for almost 3 years
  • many of the changes were the accumulation of small chances
[33:07] It’s the little things
  • Letting people get small changes in accumulate into a big difference
  • the product gets much better that way
[33:57] What versions of Node are you actively updating?
  • Current releases of Node 8 for a half of year
  • Node 6 is LTS
  • Additional year of maintenance of previous LTSs.
  • Schedule is at http://github.com/node8js/lts in a chart
  • Support for Node 4 with only critical updates, Node 6 minor updates, and Node 8
  • Node 7 doesn’t get much support unless it’s vital security supports.
  • If you’re running 0.10 or 0.12 stop. Those do not get security fixes anymore
[35:42] Where do you see things going from here?
  • Mostly still working out Async hooks
  • Maybe add some web worker or worker support for Node JS
  • ES module support
  • Working to make promises better
  • Working on the performance profile and internal systems
[20:29] What is the adoption like of Node 8?
  • Node team gets better at getting people to adopt quickly
  • but about 5% - 6% will not upgrade
  • community doubles each year at 8 million users right now
  • Here is a graph on Twitter posted by NPM
  • Limiting breaks and softly deprecating things makes it’s easier to upgrade
[40:11] How can people contribute and get involved?
  • NodeToDo.org shows how to make contribution
  • Occasionally major conferences have information on how to contribute
  • Test it out and help make it stronger
[42:08] If people install Node 8 and have issues what can they do?
  • If it’s an NPM problem check with them
  • clear cache!
  • install newest version with: npm install -g npm@latest
  • Report problems to either NPM or Node
  • If you’re not sure where the problem is, check github.com/nodejs/help

Links

Node8 Node’s Twitter Node’s Medium Node Evangelism Group

Mikael on Twitter and GitHub Arunesh on Twitter Anna on Twitter


Picks

AJ

Overclocked Remix Super Mario RPG Window to The Stars

Amiee

Blogpost RisingStack on Node 8
2 Frugal Dudes

Charles

Homeland
House of Cards

Joe

Shimmer Lake

Mikael

Blake2b-wasm

Aremesh

Current Nightly News





ni

JSJ 275: Zones in Node with Austin McDaniel

JSJ 275: Zones in Node with Austin McDaniel

The panel for this week on JavaScript Jabber is Cory House, Aimee Knight, and Charles Max Wood. They speak with special guest Austin McDaniel about Zones in Node. Tune in to learn more about this topic!

[00:01:11] Introduction to Austin

Austin has worked in JavaScript for the past ten years. He currently works in Angular development and is a panelist on Angular Air. He has spent most of his career doing work in front-end development but has recently begun working with back-end development. With his move to back-end work he has incorporated front-end ideas with Angular into a back-end concept.

[00:02:00] The Way it Works

NodeJS is an event loop. There is no way to scope the context of a call stack. So for example, Austin makes a Node request to a server and wants to track the life cycle of that Node request. Once deep in the scope, or deep in the code, it is not easy to get the unique id. Maybe he wants to get the user from Passport JS. Other languages – Python, Java – have a concept called thread local storage. They can associate context with the thread and throughout the life cycle of that request, he can retrieve that context.

There is a TC39 proposal for zones. A zone allows you to do what was just described. They can create new zones and associate data with them. Zones can also associate unique ids for requests and can associate the user so they can see who requested later in the stack. Zones also allow to scope and create a context. And then it allows scoping requests and capturing contacts all the way down.

[00:05:40] Zone Uses

One way Zone is being used is to capture stack traces, and associating unique ids with the requests. If there is an error, then Zone can capture a stack request and associate that back to the request that happened. Otherwise, the error would be vague.

Zones are a TC39 proposal. Because it is still a proposal people are unsure how they can use it. Zones are not a new concept. Austin first saw Zones being used back when Angular 2 was first conceived. If an event happened and they wanted to isolate a component and create a scope for it, they used Zones to do so. Not a huge fan of how it worked out (quirky). He used the same library that Angular uses in his backend. It is a specific implementation for Node. Monkey patches all of the functions and creates a scope and passes it down to your functions, which does a good job capturing the information.

[00:08:40] Is installing the library all you need to get this started?

Yes, go to npminstallzone.js and install the library. There is a middler function for kla. To fork the zone, typing zone.current. This takes the Zone you are in and creates a new isolated Zone for that fork. A name can then be created for the Zone so it can be associated back with a call stack and assigned properties. Later, any properties can be retrieved no matter what level you are at.

[00:09:50] So did you create the Zone library or did Google?

The Google team created the Zone library. It was introduced in 2014 with Angular 2. It is currently used in front-end development.

[00:10:12] Is the TC39 proposal based on the Zone library?

While Austin has a feeling that the TC39 proposal came out of the Zone library, he cannot say for sure.

[00:10:39] What stage is the proposal in right now?

Zone is in Stage Zero right now. Zone JS is the most popular version because of its forced adoption to Angular. He recommends people use the Angular version because it is the most tested as it has a high number of people using it for front-end development.

[00:11:50] Is there an easy way to copy the information from one thread to another?

Yes. The best way would probably be to manually copy the information. Forking it may also work.

[00:14:18] Is Stage Zero where someone is still looking to put it in or is it imminent?

Austin believes that since it is actually in a stage, it means it is going to happen eventually but could be wrong. He assumes that it is going to be similar to the version that is out now. Aimee read that Stage Zero is the implementation stage where developers are gathering input about the product. Austin says that this basically means, “Implementation may vary. Enter at your own risk.”

[00:16:21] If I’m using New Relic, is it using Zone JS under the hood?

Austin is unsure but there something like that has to be done if profiling is being used. There has to be a way that you insert yourself in between calls. Zone is doing that while providing context, but probably not using Zone JS. There is a similar implementation to tracing and inserting logging in between all calls and timeouts.

[00:17:22] What are the nuances? Why isn’t everybody doing this?

Zone is still new in the JavaScript world, meaning everyone has a ton of ideas about what should be done. It can be frustrating to work with Zone in front-end development because it has to be manually learned. But in terms of implementation, only trying to create a context. Austin recommends Zone if people want to create direct contacts. The exception would be 100 lines of Zone traces because they can get difficult.

Another issue Austin has is Node’s native basic weight. Weight hooks are still up in the air. The team is currently waiting on the Node JS community to provide additional information so that they can finish. Context can get lost sometimes if the wrong language is used. He is using Typescript and doesn’t have that problem because it is straightforward.

[00:21:44:] Does this affect your ability to test your software at all?

No, there have not been any issues with testing. One thing to accommodate for is if you are expecting certain contexts to be present you have to mock for those in the tests. After that happens, the tests should have no problems.

Picks

Cory:

Aimee:

Charles:

Austin:

Links




ni

JSJ 278 Machine Learning with Tyler Renelle

Tweet this Episode

Tyler Renelle is a contractor and developer who has worked in various web technologies like Node, Angular, Rails, and much more. He's also build machine learning backends in Python (Flask), Tensorflow, and Neural Networks.

The JavaScript Jabber panel dives into Machine Learning with Tyler Renelle. Specifically, they go into what is emerging in machine learning and artificial intelligence and what that means for programmers and programming jobs.

This episode dives into:

  • Whether machine learning will replace programming jobs
  • Economic automation
  • Which platforms and languages to use to get into machine learning
  • and much, much more...

Links:

Picks:

Aimee

AJ

Joe

Tyler




ni

MJS 035: John-Daniel Trask

Tweet this Episode

John-Daniel Trask is the CEO and developer at Raygun.io.

JD and Chuck talk in this episode about learning to program as a kid, the arc of JD's career, and entrepreneurship.

Links:

Picks:

JD:

Chuck:




ni

JSJ 283: A/B Testing with Nick Disabato

Panel:

Amy Knight

Charles Max Wood

Special Guests: 

Nick Disabato

In this episode, Java Script Jabbers talk with Nick Disabato. Nick is a newbie to JavaScript Jabber. Nick is the founder of Draft, an interaction design agency where he does research driven A/B testing of E-commerce business.

This is a practical episode for those who are running a business and doing marketing for the products and services. Nick talks about A/B testing for a number scenarios within the company, such as for websites, funnels, and various marketing mechanisms. Nick further goes into how this helps companies strategically increase revenue by changing things such as websites design or building funnels.

In particular, we dive pretty deep on:

  • Testing of changes of Copy, Websites, etc.
  • What does it mean of changes, Tools, Framework, Plugins, etc
  • Does it matter what tools you use? Framework that works within your stack
  • How do make we company money
  • Researching for the next test
  • Testing for conversion rate to decide which design to go implement - Variant
  • Responsibility for the designs
  • Feature and getting pay for the service
  • Learn more about the resources and Copy Hackers
  • Large organization or developers, or a QA department
  • Optimization teams
  • Usability tests and coming up with A/B tests
  • Expertise
  • Why should be care?
  • And much more!

Links:

Draft

Nick Disabato

@nickd

ConversionXL

AB Testing Manual

Wider Funnels 

Copy Hackers

Picks:

Amiee

Charles

Nick




ni

JSJ BONUS: Cloud Services and Manifold with Matthew Creager and Peter Cho

Panel:

Amiee Knight

Charles Max Wood

Joe Eames

Special Guests: 

Matthew Creager and Peter Cho

In this episode, JavaScript Jabbers speak with Matthew Ceager and Peter Cho. Matthew and Peter are part of the team at Manifold. Manifold is a marketplace for developer services. Matthew takes care of growth and relations, and Peter oversee products at Manifold.

The panel discusses with Peter and Matthew what Manifold does and the benefits of a Cloud Service. Matthew gives perspective on how developers can get their cloud product on the market compared to open source.  Further discussion goes into how this will help the developer to get their products or services turned into a business quicker and save time  Also learn about when it is the ideal time to move to cloud services vs. running a server yourself.

In particular, we dive pretty deep on:

  • Different kinds of definition of Cloud Services
  • Anything you would rely on as a third party service
  • What is the cloud service ecosystem - Services that connect to an application
  • Independent market place -  because it is difficult to turn a product into a business
  • Where are people using cloud services or running their own server
  • Spinning up a version of it is easier.
  • Time verses doing it yourself?
  • Experts running the services
  • Focusing on your product instead of managing the server and such
  • Where does the data live and who has access to that?
  • Lock In’s?
  • Tourist - Credentials management
  • How do I get this setup? Command Line or register online
  • And much more!

Links:

Manifold

https://github.com/mattcreager

@manifoldco

@etcpeter

@matt_creager

blog.manifold.com

Picks:

Amiee

  • Ryan McDermott

Charles

Joe

Matt

Peter