un

073 JSJ React with Pete Hunt and Jordan Walke

Panel Pete Hunt (twitter github blog) Jordan Walke (twitter github) 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:34 - Pete Hunt Introduction Instagram Facebook 02:45 - Jordan Walke Introduction 04:15 - React React - GitHub 06:38 - 60 Frames Per Second 09:34 - Data Binding 12:31 - Performance 17:39 - Diffing Algorithm 19:36 - DOM Manipulation 23:06 - Supporting node.js 24:03 - rendr 26:02 - JSX 30:31 - requestAnimationFrame 34:15 - React and Applications 38:12 - React Users Khan Academy 39:53 - Making it work Picks Ben Mabey: Clojure Plain & Simple (Jamison) JSConf 2013 Videos (Jamison) Kittens (Jamison) PBS Idea Channel (AJ) Free Trial SSL (AJ) OSX Wifi Volume Remote Control (AJ) js-git (Merrick) vim-airline (Merrick) MLS LIVE (Joe) Seraphina by Rachel Hartman (Joe) ng-conf (Joe) Hire Chuck (Chuck) GoToMeeting (Chuck) ScreenFlow (Chuck) syriandeveloper (Pete) jsFiddle (Pete) Hotel Tonight (Pete) Green Flash Brewery Beer: Palate Wrecker (Jordan) All Things Vim (Jordan) Next Week Grunt.js with Ben Alman Transcript JAMISON:  Joe is Merrick’s personal assistant. CHUCK:  [Laughter] MERRICK:  No, we’re just in this little room and he had, he was like, “Yeah” JOE:  Want me to freshen up your coffee, sir? [Chuckles] JAMISON:  Feed me some tacos, Joe. [Laughter] [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 front end 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 atJjetBrains.com/WebStorm.] CHUCK:  Hey everybody and welcome to episode 73 of the JavaScript Jabber Show. This week on our panel, we have Joe Eames. JOE:  Hey there. CHUCK:  AJ O’Neal. AJ:  Live again from Provo. CHUCK:  Jamison Dance. JAMISON:  Hey friends. CHUCK:  Merrick Christensen. MERRICK:  Hey guys. CHUCK:  I’m Charles Max Wood from DevChat.TV and we have two special guests this week. Pete Hunt. PETE:  Hey guys. CHUCK:  And Jordan Walke. JORDAN:  Hi. CHUCK:  Since you guys haven’t been on the show before, do you want to introduce yourselves? We’ll have Pete go first. PETE:  Sure. So my name’s Pete. I work on general React stuff these days. But my day job is building the Instagram web experience. If you go to Instagram.com, we have a bunch of frontend stuff you can play with and a bunch of backend infrastructure that supports all that. That’s what I mostly work on. We’re big users of React at Instagram so I ended up contributing a lot to the React core as well. JAMISON:  So did you come from Instagram or from Facebook and then to work on Instagram? PETE:  Well it was actually a pretty good story just in terms of the integration of the two companies. I was originally at Facebook for a couple of years and we acquired Instagram and they came in and they wanted to build a web presence. Facebook’s core competency is definitely web technologies and Instagram hasn’t historically focused on that. So we were able to take the Facebook web expertise and get Instagram up and running really quickly. I came from the Facebook side but the team is still very much a separate team, their own building, that kind of thing. So that’s my background. CHUCK:  Awesome. JAMISON:  Sweet. CHUCK:  And Jordan?




un

074 JSJ Grunt with Ben Alman

Panel Ben Alman (twitter github blog) AJ O’Neal (twitter github blog) Jamison Dance (twitter github blog) Ryan Florence (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:34 - Ben Alman Introduction Bocoup 02:54 - “Cowboy” Cowboy Coder 06:53 - The Birth of Grunt Ender make rake jake 14:34 - Installing Globally & Plugins JSHint grunt-cli lodash async 20:43 - Managing the project and releasing new versions 22:32 - What is Grunt? What does it do? jQuery libsass SASS stylus 26:39 - Processes & Building Features node-task guard grunt-contrib-watch node-prolog 35:29 - The Node Community and reluctance towards Grunt 41:35 - Why the separation of task loading and configuration? 46:18 - Contributions and Contributing to Grunt 55:18 - What Ben would have done differently building Grunt Ease of Upgrade Picks Web Components (Ryan) Eliminate Sarcasm (Ryan) Bee and PuppyCat (Jamison) MONOPRICE (AJ) AJ O'Neal: Moving to GruntJS (AJ) The Best Map Ever Made of America’s Racial Segregation (Chuck) Clean Off Your Desk (Chuck) Polygon (Ben) My Brother, My Brother and Me (Ben) Echofon (Ben) Bocoup (Ben) Next Week Maintainable JavaScript with Nicholas Zakas Transcript RYAN:  We’re potty training my son right now. So, I was up like eight times cleaning poo off of everything. [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 74 of the JavaScript Jabber Show. This week on our panel, we have AJ O’Neal. AJ:  I’m eating beef jerky. CHUCK:  Jamison Dance. JAMISON:  Hello. CHUCK:  We have a special guest. I guess you’re a guest in filling in for Merrick and Joe and that’s Ryan Florence. RYAN:  Hey, how’s it going? I don’t know if I can fill two shoes, but I will try. CHUCK:  Well, you have two feet, right? RYAN:  Okay. Well, that’s four shoes. CHUCK:  [Chuckles] I’m Charles Max Wood from DevChat.TV. We also have another special guest and that is Ben Alman. BEN:  Yo! What’s up, everyone? CHUCK:  So, do you want to introduce your self, Ben, since you haven’t been on the show before? BEN:  I’m Ben Alman. Oh, okay. [Laughter] AJ:  That’s not conceited. RYAN:  That’s really all he needs. BEN:  That’s it. The show’s over, roll credits. So yeah, I’m Ben. You can find me online as @cowboy on Twitter or GitHub and I’m at BenAlman.com. And if you Google me, I have finally got enough SEO juice to beat the other Ben Alman who’s the Orthopedic Surgeon for sick children in Canada. So screw you, guy who helps sick kids. [Laughter] BEN:  No, it’s cool. It’s cool, right? But for a while, I was like, “Damn this guy.” But I can’t do anything because he helps sick children. So there’s another Benjamin Alman out there doing things for society and me, I just code. So, I work at Bocoup. We’re at Bocoup.com. Our logo is a rooster, Bob the Rooster, and we make a lot of cool web and open web and open source stuff. And so, I do training there. I teach people JavaScript and jQuery. But I also work on open source tools. I spend a lot of my time, actually, behind the scenes in Node writing JavaScript, experimenting, R&D, writing tools, et cetera. CHUCK:  Awesome. So,




un

076 JSJ Meteor.js with Marcus Phillips and Fred Zirdung

Panel Marcus Phillips (twitter github) Fred Zirdung (twitter github) Jamison Dance (twitter github blog) Joe Eames (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:30 - Marcus Phillips and Fred Zirdung Introduction Hack Reactor 03:31 - Experience with Meteor 05:45 - Intro to Meteor Client-side Environment Tethered Queries minimongo 09:56 - Websockets 11:29 - Deployment Support 14:51 - The Cloud 16:43 - Meteor and Server-side JavaScript Engines Meteor Devshop 7 - LIVE 19:48 - Meteor and Windows 22:43 - Package Management System 23:49 - Building Meteor Apps 29:04 - Meteor Methods 33:02 - Open-Source Meteor Apps 34:15 - Hack Reactor Education Training Developers Removing Complexity Picks ng-conf (Joe) Ben Kamens: “Shipping Beats Perfection” Explained (Jamison) Evan Goer: Writing for Developers — Some Rational Techniques (Jamison) BOXEN (Chuck) Book Yourself Solid Illustrated: The Fastest, Easiest, and Most Reliable System for Getting More Clients Than You Can Handle Even if You Hate Marketing and Selling by Michael Port (Chuck) meteor / packages / deps / deps.js (Marcus) Underscoreboard (Marcus) actionHero.js (Fred) Satellite (Fred) Tilden (Fred) rethink-livedata (Marcus) Next Week Monacle with Alex MacCaw Transcript JAMISON:  Speaking of single and [working] 30 hours a week after your job, is Merrick there?   [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 76 of the JavaScript Jabber show. This week on our panel, we have Jamison Dance. JAMISON:  Hello friends. CHUCK:  Joe Eames. JOE:  Hey there. CHUCK:  I’m Charles Max Wood from DevChat.TV. We’ve also got two special guests and that is Fred Zirdung. FRED:  Hello. CHUCK:  Did I totally butcher that? FRED:  Yeah, you got it right. CHUCK:  Okay. And Marcus Phillips. MARCUS:  Hi everybody. CHUCK:  Since you guys haven't been on the show before, do you want to introduce yourself? We’ll have Marcus go first. MARCUS:  Sure. I'm Marcus Phillips. I'm a JavaScript enthusiast. I've been in it for a long time. Really excited about framework architecture and lately, all about teaching what I've learned over the course of time that I've been working in the Bay Area and working on the frontend of Twitter and things like that. Nowadays, I teach at Hack Reactor full time which is an immersive school for learning to become a developer over a period of three months. JAMISON:  Cool. CHUCK:  And which technologies do you teach at Hack Reactor? MARCUS:  We use JavaScript as our teaching language. Fundamentally, what we’re trying to do is teach people software engineering principles. So, JavaScript just turns out to be one of the most useful languages we can use to do that. But from there, we kind of want to give people practical skills that they can use immediately on the job. So, we definitely drive the entire curriculum out of GitHub repos and teach them some practical things like Backbone and Node and deployment strategies. So yeah, we kind of cover the gambit from frontend to backend with a focus on JavaScript in particular. CHUCK:  Awesome. That sounds really cool. JOE:  Yeah, it does. MARCUS:  It’s a lot of fun. CHUCK:  Fred,




un

085 JSJ Huxley with Pete Hunt

The panelists discuss Huxley with Pete Hunt




un

113 JSJ Community Dynamics with Reginald Braithwaite

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




un

135 JSJ Smallest Federated Wiki with Ward Cunningham

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




un

136 JSJ TrackingJS with Eduardo Lundgren

The panelists discuss TrackingJS with Eduardo Lundgren.




un

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)




un

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)




un

162 JSJ ESLint with Jamund Ferguson

02:15 - Jamund Ferguson Introduction

02:47 - Lint (Background)

04:48 - Keeping ESLint Up-to-date

08:09 - Abstract Syntax Tree (ASTs)

13:28 - Using Lint Tools

20:42 - Are there a downsides to linting?

  • The Social Problem

23:40 - Establishing Rules

25:12 - Cool ESLint Features

30:45 - How ESLint Works Internally

40:07 - Getting Started with Linting

43:03 - Autofixer

44:41 - Plugins

46:47 - Linter Feedback From the Panel

Picks

Mozilla (AJ)
We Will All Be Game Programmers (Aimee)
Search Inside Yourself: The Unexpected Path to Achieving Success, Happiness (and World Peace) by Chade-Meng Tan (Aimee)
Good Mythical Morning (Dave)
Salt Lake City (Dave)
BB King Calls This One Of His Best Performances (Jamison)
json-server (Jamison)
Austenland (Joe)
Supergirl (Joe)
A Short History of Nearly Everything by Bill Bryson (Jamund)
The Book of Mormon (Jamund)

 

 

 

 

 




un

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)




un

193 JSJ Electron with Jessica Lord and Amy Palamountain

Get your JS Remote Conf tickets!

Freelance’ Remote Conf’s schedule is shaping up! Head over here to check it out!

 

02:17 - Jessica Lord Introduction

02:40 - Amy Palamountain Introduction

03:14 - Electron

04:55 - Cross-platform Compatibility

05:55 - Electron/Atom + GitHub

07:16 - Electron/Atom + React ?

07:57 - Use Cases for Electron

15:09 - Creating Electron Apps on Phones

17:25 - Running a Service Inside of Electron  

19:46 - Making an Electron App

24:09 - Sharing Code

27:40 - Plugins for Functionality

31:08 - Keeping Up-to-date/Adding Features

33:14 - Pain Points

36:22 - Using Electron for Native

39:48 - What is a “webview”?

42:12 - Getting Started with Electron

43:28 - Robotics/Hardware Hacking with Electron

Picks

Autolux - Future Perfect (Jamison)
Move Fast and Break Nothing (Aimee)
[egghead.io] Getting Started with Redux (Dave)
Destructuring and parameter handling in ECMAScript 6 (Dave)
JS Remote Conf (Chuck)
Freelance Remote Conf (Chuck)
React Remote Conf (Chuck)
Pebble Time Steel (Chuck)
UglyBaby Etsy Shop (Amy)
Jimmy Fallon: Kid Theater with Tom Hanks (Jessica)

 

 




un

201 JSJ Security with Troy Hunt

02:32 - Troy Hunt Introduction

04:12 - Why should people care about security?

06:19 - When People/Businesses Get Hacked

09:47 - “Hacking”

11:42 - Inventive “Hacks”

13:24 - Motivation for Hacking/Can hacking be valuable?

17:08 - Consequences and Retribution

19:10 - How to Build Secure Applications

20:47 - Weighing in UX

22:50 - Common Misconceptions

  • Password Storage
  • Encoding
  • Cookies

31:27 - Passwords (Cont’d)

33:16 - Justifying the Importance of Security

35:24 - Client-side Security

44:10 - Resources

45:27 - Routing

47:21 - Timeouts

51:36 - Cached Data

Picks

awesome-react (Aimee)
Edsger W. Dijkstra Quotes (Jamison)
Sam Newman: Telstra, Human Error and Blame Culture (Jamison)
Infinite Jest by David Foster Wallace (Jamison)
T.I.M.E Stories (Joe)
We Are Anonymous: Inside the Hacker World of LulzSec, Anonymous, and the Global Cyber Insurgency Paperback by Parmy Olson (Troy)
The Have I been pwned Project (Troy)




un

225 JSJ Functional Programming with John A. De Goes

03:08 - John A. De Goes Introduction

04:07 - PureScript

JavaScript Jabber Episode #189: PureScript with John A. De Goes and Phil Freeman

04:58 - “Purely Functional”

09:18 - Weaknesses With Functional Programming

14:36 - Organizing a FP Codebase

17:54 - Beginners and Functional Programming; Getting Started

  • Learning About the History of Functional Programming
  • Hiring Junior Devs to do FP

28:20 - The Rise of Functional Programming in JavaScript-land

32:08 - Handling Existing Applications

36:03 - Complexity Argument

41:53 - Weighing Language Tradeoffs; Alt.js


Picks




un

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




un

232 JSJ GunDB and Databases with Mark Nadal

03:45 What makes the Gun database engine special

07:00 Defining a database

12:58 The CAP Theorem

22:56 What Graphs are and how they function (circular references)

30:32 Gun and rotational disk systems

32:08 Gun’s optimizations for performance in ensuing versions

39:55 The prevalence of open source companies

42:45 Further discussing the CAP Theorem and its nuances

50:33 Gun’s purpose and design

52:13 What a Firebase is

54:22 How to get started with Gun - Visit Gun Tutorial,  Gun's Github Page, and

Gun Node Module

QUOTES:

“I think the database should bend to your application’s demands, rather than you having to bend to the database’s demands.” –Mark Nadal

“…The protocol that GUN defines is something that can be implemented in any language. Because GUN is in the language, you don’t have the context which latency of having to make an HTTP call or socket request…” –AJ O’Neill

“Let’s demystify the black magic of CAP.” –Mark Nadal

PICKS:

Dan North’s Deliberate Learning Video

8Tracks Internet Radio

Pokemon Indigo League on Netflix

Daplie Personal Cloud

Young Frankenstein Movie

Mystic Vale Card Game

JS Remote Conference

React Remote Conference

Farm Heroes Super Saga Game App




un

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!




un

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





un

JSJ 272: Functional Programming and ClojureScript with Eric Normand

JSJ 272: Functional Programming and ClojureScript with Eric Normand

This episode of JavaScript Jabber features panelists Aimee Knight and Charles Max Wood. Special guest Eric Normand is here to talk about functional programming and ClojureScript. Tune in to learn more!

[00:1:14] Introduction to Eric Normand

Eric works for purelyfunctional.tv. The main target market for his company is those people who want to transition into functional programming from their current job. He offers them support, shows them where to find jobs, and gives them the skills they need to do well.

[00:02:22] Address that quickly

Functional programming is used at big companies such as Wal-Mart, Amazon, EBay, Paypal, and banks. They all have Clojure but it is not used at the scale of Java or Ruby.

So yes, people are using it and it is influencing the mainstream programming industry.

[00:3:48] How do you build an application?

A common question Eric gets is, “How do I structure my application?” People are used to using frameworks. Most start from an existing app. People want a process to figure out how to take a set of features and turn it into code. Most that get into functional programming have development experience. The attitude in functional programming is that they do not want a framework. Clojure needs to be more beginner friendly. His talk is a four-step process on how to turn into code.

[00:05:56] Can you expand on that a little?

There are four steps to the process of structuring an application.

  1. Develop a metaphor for what you are trying to do. Developing the first implementation. How would you build it if you didn’t have code?
  2. Develop the operations. What are their properties? Example: will have to sort records chronological.
  3. Develop relationships between the operations.
  4. Run tests and refactor the program. Once you have that, you can write the prototype.

[00:13:13] Why can’t you always make the code better?

Rules can’t be refactored into new concepts. They have to be thrown away and started completely over. The most important step is to think before beginning to write code. It may be the hardest part of the process, but it will make the implementation easier.

[00:17:20] What are your thoughts on when people take it too far and it makes the code harder to read?

He personally has written many bad abstractions. Writing bad things is how you get better as a programmer. The ones that go too far are the ones that don’t have any basis or are making something new up. They are trying to be too big and use no math to back up their code.

[00:20:05] Is the hammock time when you decide if you want to make something abstract or should you wait until you see patterns develop?

He thinks people should think about it before, although always be making experiments that do not touch production.

[00:23:33] Is there a trade off between using ClojureScript and functional JavaScript?

In terms of functional programming in JavaScript don’t have some of the niceties that there are in Clojure script. Clojure Script has a large standard library. JavaScript is not as well polished for functional programming; it is a lot of work to do functional programming it and not as much support.

[00:27:00:] Dave Thomas believes that the future of software is functional programming. Do you agree?

Eric thinks that it seems optimistic. He doesn’t see functional programming take over the world but does think that it has a lot to teach. The main reason to learn functional programming is to have more tools in your toolbox.

[00:31:40] If this is a better way to solve these problems, why aren’t people using it?

There is a prejudice against functional programming. When Eric was first getting into it, people would ask why he was wasting his time. Believes that people are jaded. Functional programming feels foreign because people are used to a familiar way of programming; they usually start with a language and get comfortable.

[00:40:58] If people want to get started with it, is there an easy way in?

Lodash is great to start replacing for loops. It will clean up code. There are other languages that compile to JavaScript. For example, Elm is getting a lot of attention right now. It is a Haskell like syntax. If you want more of a heavyweight language, use TypeScript or PureScript. ClojureScript is into live programming. You are able to type, save, and see results of the code immediately on the screen in front of you.

Picks

Aimee:

Eric

Charles

  • Ionic Framework

Links




un

JSJ 313: Light Functional JavaScript with Kyle Simpson

Panel:

  • AJ ONeal
  • Aimee Knight
  • Joe Eames

Special Guests: Kyle Simpson

In this episode, the JavaScript Jabber panelists discuss light functional JavaScript with Kyle Simpson. Kyle is most well-known for writing the books You Don’t Know JS and is on the show today for his book Functional-Light JavaScript. They talk about what functional programming is, what side-effects are, and discuss the true heart behind functional programming. They also touch on the main focus of functional programming and much more!

In particular, we dive pretty deep on:

  • You Don’t Know JS
  • Functional-Light JavaScript
  • From the same spirit as first books
  • JavaScript
  • Documents journey of learning
  • What does Functional Programming mean?
  • Functional programming is being re-awoken
  • Many different definitions
  • History of functional programming
  • Programming with functions
  • What is a function?
  • “A collection of operations of doing some task” is what people think functions are
  • What a function really is
  • Map inputs to outputs
  • What is a side-effect?
  • Side-effects should be intentional and explicit
  • The heart of functional programming
  • Refactoring
  • Can’t write a functional program from scratch
  • What functional programming focuses on
  • Making more readable and reliable code
  • Pulling a time-stamp
  • Defining a side-effect
  • And much, much more!

Links:

Picks:

Aimee

AJ

Joe

Kyle




un

MJS 063: Fred Zirdung

Panel: Charles Max Wood

Guest: Fred Zirdung

This week on My JavaScript Story, Charles speaks with Fred Zirdung. Fred is currently the head of curriculum at Hack Reactor, where he essentially builds all of the tools and learning materials for the students there. He is also an instructor and has been there for five years. Prior to that, he worked for multiple companies such as Walmart Labs as well as many small startups. He first got into programming with the Logo programming language in the 6th grade and he had always been interested in working with computers since a young age. They talk about what got him into web programming, what enthralled him about JavaScript and Ruby on Rails, and what he is proud of contributing to the JavaScript community.

In particular, we dive pretty deep on:

  • JavaScript Jabber Episode 76
  • Fred intro
  • How did you first get into programming?
  • Coding professionally for 20+ years
  • Coding prior to college graduation
  • Logo programming language
  • QNX operating system
  • Were you always interested in programming?
  • Always interested in computers
  • Commodore 64
  • Basic programming in high school
  • Programming didn’t click for him until high school
  • In college when the web became popular
  • Computer engineering degree in college
  • What was it that appealed to you about software over hardware?
  • Software vs hardware
  • Embedded systems software
  • How did you get into web programming?
  • Dolby Laboratories
  • What technologies got you excited?
  • JavaScript, Perl, and Ruby on Rails
  • Loved the flexibility of JS and Rails
  • Found something he could be productive with
  • What are you proud of contributing to the JavaScript community?
  • What are you working on now?
  • And much, much more!

Links:

Picks

Charles

Fred




un

MJS 064: Troy Hunt

Panel: Charles Max Wood

Guest: Troy Hunt

This week on My JavaScript Story, Charles speaks with Troy Hunt who is from Australia. In this episode, Troy and Charles talk about web security and how Troy got into the field. Troy writes a blog, creates courses for Pluralsight, and he is a Microsoft Regional Director and an MVP who travels the world speaking at events and training technology professionals.

In particular, we dive pretty deep on:

  • Web security
  • This show is not about code or technology, but about the person.
  • How did you get into programming, Troy?
    • 1995 Troy started at the university.
  • Book: HTML for Dummies
  • How did you get into web development and JavaScript in general?
  • What have you done with JavaScript that you are particularly proud of?
    • At the time, I was proud of my work with the Pizza Hut application.
    • Fast-forward – I still use JavaScript but also framework.
  • How did you get into security?
  • What are you working on now?
  • E-mails and Passwords breached
    • Have a program that tells you to do something different instead.
    • Try to find a balance.
    • Do most people think about web security? Probably not.
    • Bring awareness about this.
    • Make systems usable
    • Give people enough advice.
  • Service
  • Troy’s Real-Life Stories
  • How do you stay current with all of this web security information?
    • Having a healthy following in Twitter.
    • Stay on top of the mentions.
    • Interesting spread of people within this field.

Links:

Sponsors:

Picks

Charles

Troy




un

JSJ 325: Practical functional programming in JavaScript and languages like Elm with Jeremy Fairbank

Panel:

  • Aimee Knight
  • Joe Eames
  • AJ ONeal

Special Guests: Jeremy Fairbank

In this episode, the JavaScript Jabber panel talks to Jeremy Fairbank about his talk Practical Functional Programming. Jeremy is a remote software developer and consultant for Test Double. They talk about what Test Double is and what they do there and the 6 things he touched on in his talk, such as hard to follow code, function composition, and mutable vs immutable data. They also touch on the theory of unit testing, if functional programming is the solution, and more!

In particular, we dive pretty deep on:

  • Jeremy intro
  • Works for Test Double
  • What he means by “remote”
  • What is Test Double?
  • They believe software is broken and they are there to fix it
  • His talk - Practical Functional Programming
  • The 6 things he talked about in his talk
  • Practical aspects that any software engineer is going to deal with
  • Purity and the side effects of programming in general
  • Hard to follow code
  • Imperative VS declarative code
  • Code breaking unexpectedly
  • Mutable data VS immutable data
  • The idea of too much code
  • Combining multiple functions together to make more complex functions
  • Function composition
  • Elm, Elixir, and F#
  • Pipe operator
  • Scary to refactor code
  • Static types
  • The idea of null
  • The theory of unit testing
  • Is functional programming the solution?
  • His approach from the talk
  • And much, much more!

Links:

Sponsors

Picks:

Aimee

AJ

Joe

Jeremy




un

JSJ 328: Functional Programming with Ramda with Christine Legge

Panel: 

  • Joe Eames
  • Aimee Knight
  • AJ O'Neal
  • Joe Eames

Special Guests: Christine Legge

In this episode, the JavaScript Jabber panel talks to Christine Legge about functional programming with Ramda. Christine is a front-end software engineer and just recently got a new job in New York working at Google. Ramda is a utility library in JavaScript that focuses on making it easier to write JavaScript code in a functional way. They talk about functional programming and what it is, using Ramda in Redux, and referential transparency. They also touch on why she first got into Ramda, compare Ramda to Lodash and Underscore, and more!

In particular, we dive pretty deep on:

  • Chirstine intro 
  • Works as a front-end software engineer
  • What is Ramda
  • JavaScript
  • Utility library like Lodash and Underscore
  • Lodash and Underscore VS Ramda
  • Functional programming
  • Ramda and Functional programming as a mindset
  • Ramda at ZenHub
  • Ramda with Redux and React
  • What is referential transparency?
  • Why would you use Ramda VS Lodash or Underscore?
  • Why she first got into Ramda
  • Didn’t always want to be a programmer
  • Background in Math
  • Learning functional programming as a new programmer
  • Erlang
  • DrRacket and Java
  • Ramda makes it easy to compose functions
  • Creating clean and reusable code
  • How do you start using Ramda?
  • And much, much more! 

Links:

Sponsors

Picks:

Charles

Aimee

AJ

  • Goat’s Milk

Joe

Christine




un

JSJ 342: Aurelia in Action with Sean Hunter

Panel:

  • AJ O’Neal
  • Joe Eames
  • Jesse Sanders

Special Guest: Sean Hunter

In this episode, the panel talks with Sean Hunter who is a software developer, speaker, rock climber, and author of “Aurelia in Action” published by Manning Publications! Today, the panelists and Sean talk about Aurelia and other frameworks. Check it out!

Show Topics:

0:00 – Advertisement: KENDO UI

0:38 – Joe: Hello! Our panelists are AJ, Jesse, myself, and our special guest is Sean Hunter (from Australia)! What have you been doing with your life and what is your favorite movie?

1:45 – Guest talks about Vegemite!

2:20 – Guest: I was in the UK and started using Aurelia, which I will talk about today. I have done some talks throughout UK about Aurelia. Also, the past year moved back to Australia had a baby son and it’s been a busy year. Writing a book and being a new parent has been hard.

3:22 – Panel: Tell us the history of Aurelia, please?

3:31 – Panel: Is it like jQuery, React, Vue or what?

3:44 – Guest: Elevator pitch – Aurelia is a single-page app framework! It’s most similar to Vue out of those frameworks; also, similarities to Ember.js.

4:30 – Guest goes into detail about Aurelia.

6:15 – Panel: It sounds like convention over configuration.

6:42 – Guest: Yes that is correct.

7:21 – Panel: Sounds like there is a build-step to it.

7:39 – Guest: There is a build-step you are correct. You will use Webpack in the background.

9:57 – The guest talks about data binding among other things.

10:30 – Guest: You will have your app component and other levels, too.

10:37 – Panel: I am new to Aurelia and so I’m fresh to this. Why Aurelia over the other frameworks? Is there a CLI to help?

11:29 – Guest: Let me start with WHY Aurelia and not the other frameworks. The style that you are using when building the applications is important for your needs. In terms of bundling there is a CUI and that is a way that I prefer to start my projects. Do you want to use CSS or Webpack or...? It’s almost a wizard process! You guys have any questions about the CLI?

14:43 – Panel: Thanks! I was wondering what is actually occurring there?

15:25 – Guest: Good question. Basically it’s that Aurelia has some built-in conventions. Looking at the convention tells Aurelia to pick the Vue model by name. If I need to tell the framework more information then...

17:46 – Panel: I think that for people who are familiar with one or more framework then where on that spectrum would Aurelia fall?

18:20 – Guest: It’s not that opinionated as Ember.js.

19:09 – Panel: Talking about being opinionated – what are some good examples of the choices that you have and how that leads you down a certain path? Any more examples that you can give us? 

19:38 – Guest: The main conventions are what I’ve talked about already. I can’t think of more conventions off the top of my head. There are more examples in my book.

20:02 – Panel: Your book?

20:10 – Guest: Yep.

20:13 – Panel.

20:20 – Guest. 

21:58 – Panel: Why would I NOT pick Aurelia?

22:19 – Guest: If you are from a React world and you like having things contained in a single-file then Aurelia would fight you. If you want a big company backing then Aurelia isn’t for you.

The guest goes into more reasons why or why not one would or wouldn’t want to use Aurelia.

24:24 – Panel: I think the best sell point is the downplay!

24:34 – Guest: Good point. What does the roadmap look like for Aurelia’s team?

25:00 – Guest: Typically, what happens in the Aurelia framework is that data binding (or router) gets pushed by the core team. They are the ones that produce the roadmap and look forward to the framework. The core team is working on the NEXT version of the framework, which is lighter, easier to use, and additional features. It’s proposed to be out for release next year.

26:36 – Advertisement – Sentry.io

27:34 – Panel: I am going to take down the CLI down and see what it does. I am looking at it and seeing how to teach someone to use it. I am using AU, new command, and it says no Aurelia found. I am stuck.

28:06 – Guest: What you would do is specify the project name that you are trying to create and that should create it for you. 

28:40 – Panel.

28:45 – Panel.

28:50 – Panel: Stand up on your desk and say: does anyone know anything about computers?!

29:05 – Panelists go back-and-forth.

29:13 – Panel: What frameworks have you used in the past?

29:17 – Guest: I was using single-paged apps back in 2010.

31:10 – Panel: Tell us about the performance of Aurelia?

31:17 – Guest: I was looking at the benchmarks all the time. Last time I looked the performance was comparable. Performances can me measured in a number of different of ways.

The guest talks about a dashboard screen that 20 charts or something like that. He didn’t notice any delays getting to the client.

33:29 – Panel: I heard you say the word “observables.”

33:39 – Guest answers the question.

35:30 – Guest: I am not a Redux expert, so I really can’t say. It has similar actions like Redux but the differences I really can’t say.

36:11 – Panel: We really want experts in everything! (Laughs.)

36:25 – Panelist talks about a colleagues’ talk at a conference. He says that he things are doing too much with SPAs. They have their place but we are trying to bundle 8-9 different applications but instead look at them as...

What are your thoughts of having multiple SPAs?

37:17 – Guest.

39:08 – Guest: I wonder what your opinions are? What about the splitting approach?

39:22 – Panel: I haven’t looked at it, yet. I am curious, though. I have been developing in GO lately.

40:20 – Guest: I think people can go too far and making it too complex. You don’t want to make the code that complex.

40:45 – Panel: Yeah when the code is “clean” but difficult to discover that’s not good.

41:15 – Guest: I agree when you start repeating yourself then it makes it more difficult.

41:35 – Panel: Chris and I are anti-framework. We prefer to start from a fresh palette and see if a framework can fit into that fresh palette. When you start with a certain framework you are starting with certain configurations set-in-place. 

42:48 – Joe: I like my frameworks and I think you are crazy!

43:05 – Panel.

43:11 – Joe: I have a love affair with all frameworks.

43:19 – Panel: I think I am somewhere in the middle.

43:49 – Panel: I don’t think frameworks are all bad but I want to say that it’s smart to not make it too complex upfront. Learn and grow.

44:28 – Guest: I think a good example of that is jQuery, right?

45:10 – Panelist talks about C++, jQuery, among other things.

45:34 – Guest: Frameworks kind of push the limits.

46:08 – Panelist talks about JavaScript, frameworks, and others.

47:04 – Panel: It seems simple to setup routes – anything to help with the lazy way to setup?

47:35 – Guest answers question.

48:37 – Panel: How do we manage complexity and how does messaging work between components?

48:54 – Guest: The simple scenario is that you can follow a simple pattern, which is (came out of Ember community) and that is...Data Down & Actions Up!

50:45 – Guest mentions that Aurelia website!

51:00 – Panel: That sounds great! Sounds like the pattern can be plugged in easily into Aurelia.

51:17 – Picks!

51:20 – Advertisement: Get A Coder Job!

END – Advertisement: CacheFly!

Links:

Sponsors:

Picks:

Joe

AJ

Jesse Sanders

Sean




un

MJS 091: Jamund Ferguson

Sponsors




un

JSJ 369: Azure Functions with Colby Tresness LIVE at MIcrosoft BUILD

Sponsors

Panel

  • Charles Max Wood

Joined by Special Guest: Colby Tresness

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Colby Tresness. Colby is a Program Manager on Azure Functions at Microsoft. Azure functions are the serverless functions on Azure. Colby explains what the Azure functions premium plan entails, then talks about KEDA – Kubernetes-based event-driven autoscaling, a Microsoft and Red Hat partnered open source component to provide event-driven capabilities for any Kubernetes workload. One of the other cool features of serverless functions they talk about is the Azure serverless community library.

Colby and Charles discuss the best way to get started with Azure functions, as well as the non-JavaScript languages it supports.

Links

Picks

Colby Tresness:

Charles Max Wood:




un

JSJ 370: Azure Functions Part II with Jeff Hollan LIVE at Microsoft BUILD

Sponsors

  • Triplebyte offers a $1000 signing bonus

  • Sentry use the code “devchat” for 2 months free on Sentry small plan

  • CacheFly

Panel

Charles Max Wood

Joined by Special Guest: Jeff Hollan

 

Episode Summary

Coming to you live from the podcast booth at Microsoft BUILD is Charles Max Wood with Jeff Hollan. Jeff is a Sr. Program Manager for the Azure Functions cloud service. Continuing from where Colby Tresness left off in Adventures in Angular 241: Azure Functions with Colby Tresness LIVE at Microsoft BUILD, Jeff defines what “serverless” really means in developer world. Jeff also talks about various scenarios where Azure functions are extremely useful and explains what Durable Functions are.

Jeff and Charles discuss creating and running an Azure function inside a container and the upcoming capabilities of Azure functions they are currently working on.

Links

Picks

Jeff Hollan:

Charles Max Wood:




un

JSJ 384: FaunaDB: Support for GraphQL and Serverless Development with Evan Weaver

Sponsors

  • Sentry– use the code “devchat” for $100 credit 

Panel

  • Charles Max Wood

  • AJ O’Neal

  • Joe Eames

  • Aimee Knight

With Special Guest: Evan Weaver

Episode Summary

Evan Weaver is the CEO and cofounder of FaunaDB, a serverless database and a great way to get started with GraphQL. Evan talks about what went into building the FaunaDB and his background with Twitter. FaunaDB arose from trying to fix Twitter’s scalability issues, and the panel discusses scalability issues encountered in both large and small companies. They talk about the difference between transient and persistent data. They discuss how to develop locally when using a serverless database and the importance of knowing why you’re using something. Evan talks about how developing locally works with FaunaDB. He addresses concerns that people might have about using FaunaDB since it is not backed by a tech giant. Evan talks about some of the services FaunaDB offers and talks about the flexibility of its tools. He talks about how to get started with FaunaDB and what the authentication is like. Finally, Evan talks about some well known companies that are using FaunaDB and what they are doing with it. 

Links

Follow DevChat on Facebook and Twitter

Picks

Charles Max Wood:

Aimee Knight:

Joe Eames:

Evan Weaver




un

JSJ 388: Functional Programming with Brian Lonsdorf

Sponsors

Panel

  • Aimee Knight 

  • Chris Buecheler

  • AJ O’Neal

With Special Guest: Brian Lonsdorf

Episode Summary

Brian Lonsdorf works for Salesforce, specializes in functional programming, and wrote a book called Professor Frisby’s Mostly Adequate Guide to Functional Programming. Brian talks about when he got into functional programming and when in their career others should be exposed to it. He talks about the fundamental tenets of functional programming (static mathematical functions), how it differs from object oriented programming, and how to manipulate data in a functional environment. The panel wonders if it is possible to use functional and object oriented programming together and discuss the functional core imperative shell. Brian talks about what is ‘super functional’ and why JavaScript isn’t, but includes methods for making it work. He shares some of the trade-offs he’s found while doing functional programming. Brian defines a monad and goes over some of the common questions he gets about functional programming, such as how to model an app using functional programming. The show concludes with Brian talking about some of the work he’s been doing in AI and machine learning. 

Links

Follow DevChat on Facebook and Twitter

Picks

Aimee Knight:

Chris Buecheler:

AJ O’Neal:

Brian Lonsdorf:




un

JSJ 394: SMS Integration with Dominik Kundel

Episode Summary

Dominik Kundel works as developer evangelist at Twilio. Dominik talks about the history of Twilio, which actually started with integrating phone calls into apps and then moved to SMS integration. 

Today Charles and Dominik are talking about how the SMS message approach can augment your user experience. Since many people are not familiar with implementing SMS, Dominik talks about how Twilio can help. Twilio created was a supernetwork where they work with carriers and gateways around the world to ensure that they provide reliable services. They also focus heavily on making sure that the developer experience is great.

Uber and Lyft are two of the companies that use Twilio, and Dominik shares some of the interesting things that they’ve accomplished. He is particularly excited about phone number masking to support privacy. Uber and Lyft use phone number masking so that your driver doesn’t see your real number and you don’t see theirs. Instead, each of you sees a Twilio number. This use case is becoming more common. 

Twilio recently introduced Flex, which Dominik explains is their contact center solution. Flex is designed to keep with their philosophy of everything should be programmable and configurable, and take it on to a software shipment. This is their first time shipping software instead of just APIs. Flex is highly customizable and flexible, allows you to build React plugins that let you change anything you want.

Charles asks Dominik about some of the gotchas in telephony. One major issues is spam calls, which Twilio is trying to work with some providers on a ‘verified by Twilio’ list. This list lets companies get verified, and they’re working on ways to let you know the reason why they’re calling without having to answer your phone. This can be difficult because each country has different regulations.

Dominik talks about what it would take for someone who wanted to build an SMS gateway themselves. They would have to work with carriers and learn SMS protocols. It’s important to note that SMS and phone calls have different protocols

Dominik talks about some of the unique use cases they’ve seen their system. Some examples are contextual communications, account verifications, and codex creation. There are other fun examples, such as a drone controlled via text message, a fake boyfriend app, and a dog that was taught to take selfies that are sent to his owner. 

Charles asks about ways to get started with Twilio. If you want to explore this and don’t know where to get started, try Twilio Quest, a game to teach you how to use Twilio. There is also documentation, which is good if you know exactly what you want to achieve, or if you just want to explore possibilities then download Twilio Quest. 

They delve into a more specific use case for Twilio to send text to subscibers of DevChatTV. Dominik talks about ways of dealing with sending notifications to people outside of the US. You can send with a US number to any country code, or you can personalize it, so that people in the UK receive it from a UK number and so on through automatic geocode matching. They talk about Twilio’s billing. 

Finally, they talk about security within telephony in light of recent hacks. They discuss the security of two factor authentication.Two factor authentication and security, especially in light of recent hacks. Dominik talks about the API called Authy, where you can implement different ways of doing two factor authentication, such as push notifications, time based one time password, sms, and phone calls. For most people in the world two factor authentication is very safe, unless you’re a very important person, then you’re more at risk for targeted attacks. They conclude by talking about Twilio’s acquisition of Sendgrid.

Panelists

  • Charles Max Wood

With special guest: Dominik Kundel

Sponsors

Links

Follow DevChatTV on Facebook and Twitter

Picks

Charles Max Wood:

Dominik Kundel:

  • Enable a setting called javascript.implicit

  • Follow him @dkundel




un

JSJ 408: Reading Source Code with Carl Mungazi

Carl Mungazi is a frontend developer at Limejump in London. He is a former journalist and switched to programming in 2016. Today the panel is discussing the benefits of reading source code. Carl began reading source code because he came into programming late and from a different field. His first project was with Mithril, and he read the source code and documentation to help him understand it. The panelists discuss how reading the source code has helped them and others to improve their coding. They compare reading and understanding source code to learning a foreign language, and discuss  different methods. 

Carl gives some suggestions for reading source code effectively. He advises people to be patient and step through the code. Accept that you will probably take a wrong path at some point or another, but the more you read, the more you will see patterns in how libraries are structured. He also encourages listeners to approach the authors, as they are often happy to lend a hand. Reading source code is an active approach of stepping through, debugging, putting in break points, checking the stack, and so forth. It’s also important to do outside research. 

Since he has been reading source code, Carl has come to prefer plain JavaScript and libraries with as little code as possible. The panel discusses the benefits of small, simple libraries. Carl gives examples of techniques that he learned from reading a library source code and how he applied it to his own coding style. Reading source code has made him more careful about mixing logic and UI, and now he separates them. He also is more confident in seeing a problem, going to a preexisting library, and just importing the fix for that problem rather than the whole library. Reading source code is really about understanding the code you use in your project. It may slow you down, but you’ll be thankful in the long term because it will help you solve future bugs more efficiently. Carl talks more about his debugging process. He still relies on a debugger, but reading a library helps you to see patterns and guess the output of a function. These patterns persist in other libraries as well. Once you can guess correctly what will happen, you go back to reading the code and find instances where the output is unexpected, and fix it. Carl’s closing thoughts are that through reading source code, he has learned that although code is used differently in each library, they are all written in the same language, and therefore interrelated. This gave him more confidence in reading code because they’re all fundamentally the same. When a bug is discovered, he encourages listeners to look at the source code before googling a solution. 

Panelists

  • AJ O’Neal

  • Dan Shapir

  • Steve Edwards

  • Charles Max Wood

Guest

  • Carl Mungazi

Sponsors

Links

Picks

AJ O’Neal

Dan Shapir

Steve Edwards

Charles Max Wood

Carl Mungazi




un

JSJ 411: Unit Testing Jest with Daniel Caldas

Daniel Caldas is calling from Singapore. He currently works as a software engineer for Zendesk and has also worked in Portugal and Germany. He has worked primarily on the frontend with Node and JavaScript. He talks about his experience testing JavaScript, how he got started with Jest, and why he likes it. Daniel finds Jest very easy to use and straightforward. He likes that  Jest has a single reference page for documentation. He feels that Jest is largely complete out of the box and has only made a small add on to get rid of Boilerplate in some tests.

Daniel explains what a snapshot, how they work, and why he prefers fixtures over factories. He gives tips on how to set up your tests so that they are easy to follow. He finds it helps to structure your scenarios in the fixture description. He talks about gotchas in Jest. While Jest is largely easy to use, Jest has been around for a while and breaking changes do happen. It’s important to check what version your code base is using. While there are a lot of free sources around Jest online, he advises listeners to stick as close to the official documentation as possible, or to people associated with Jest, and to read recent stuff. As for conventions, Jest has pretty much everything out of the box and the built in conventions make it easy to navigate any project that uses Jest.

Daniel talks about some of the features available in Jest, converting observables into promises, and tricks he has used to make tests easier to put together. He talks about his method for keeping his mocks and stubs straight. He advises listeners to have some organizational rules, such as starting the imports alphabetically, and to always follow those rules. He talks about how he runs tests and what environments he uses. While Jest is normally used for unit testing, Daniel has also used it for end to end tests, and he talks about his experience with an open source project doing both types in Jest. Daniel concludes the show by advising listeners starting with JavaScript and frontend, don’t think too much about the library you’re going to use because you’ll probably end up using Jest. It’s more important to have unit tests and a proper testing framework at the beginning than anything else. He also invites listeners to check out his open source work on Github.

Panelists

  • Aimee Knight

  • AJ O’Neal

  • Charles Max Wood

 

**To receive your 40% OFF coupon for Manning Publications (good for all our products in all formats) visit us on Facebook - click on "Send A Message"and type "YES"**

Guest

  • Danile Caldas

Sponsors

  • Sentry | Use the code “devchat” for $100 credit

Links

Picks

Aimee Knight:

AJ O’Neal:

Charles Max Wood:

Daniel Caldas:




un

MJS 138: Carl Mungazi

Carl is a developer from Zimbabwe currently living in London. He explains how he started out as a journalist and wound up doing web development to keep track of news stories coming out in his local area. He leveled up by attending meetups and talking to other developers. He currently works for LimeJump, an energy startup which is creating a virtual power plant by connecting together different power assets

Host: Charles Max Wood

Joined By Special Guest: Carl Mungazi

Sponsors

______________________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

______________________________________

Links

Picks

Carl Mungazi:

  • React Dev Tools

Charles Max Wood:




un

JSJ 422: CSS and Houdini with Una Kravets

Una Kravets talks to the panel about CSS and its future. We dive into what Houdini is and how much of it is implemented in the browsers. She explains how the changes outlined in Houdini will improve the user experience on the web and developer experience for web developers.

Panel:

  • Aimee Knight
  • AJ O’Neal
  • Charles Max Wood

Guest:

  • Una Kravets

Sponsors:

____________________________________________________________

 

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links:

Picks:

Aimee Knight:

AJ O’Neal:

Charles Max Wood:

Una Kravets:




un

Agritech start-up Brainwired raises funding

Agritech start-up Brainwired, which provides livestock health monitoring and tracking solution has raised undisclosed funding from Mumbai Angels. The




un

Yellow future [electronic resource] : oriental style in Hollywood cinema / Jane Chi Hyun Park

Park, Jane Chi Hyun




un

Yes Africa can [electronic resource] : success stories from a dynamic continent / editors, Punam Chuhan-Pole and Manka Angwafo




un

Yeshiva fundamentalism [electronic resource] : piety, gender, and resistance in the ultra-Orthodox world / Nurit Stadler

Stadler, Nurit




un

Yoritomo and the founding of the first Bakufu [electronic resource] : the origins of dual government in Japan / Jeffrey P. Mass

Mass, Jeffrey P




un

York University [electronic resource] : the way must be tried / Michiel Horn ; colour photography by Vincenzo Pietropaolo

Horn, Michiel, 1939-




un

You did that on purpose [electronic resource] : understanding and changing children's aggression / Cynthia Hudley

Hudley, Cynthia




un

You failed your math test, comrade Einstein [electronic resource] : adventures and misadventures of young mathematicians or test your skills in almost recreational mathematics / edited by M. Shifman




un

You gotta deal with it [electronic resource] : Black family relations in a Southern community / Theodore R. Kennedy

Kennedy, Theodore R., 1936-




un

You, the people [electronic resource] : the United Nations, transitional administration, and state-building / Simon Chesterman

Chesterman, Simon




un

Young adult literature and culture [electronic resource] / edited by Harry Edwin Eiss




un

Young adult poetry [electronic resource] : a survey and theme guide / Rachel Schwedt and Janice DeLong ; foreword by Mel Glenn

Schwedt, Rachel E., 1944-




un

Young adults deserve the best [electronic resource] : YALSA's competencies in action / Sarah Flowers for the Young Adult Library Services Association

Flowers, Sarah, 1952-




un

Young adults with serious mental illness [electronic resource] / David O. Sullivan, editor




un

Young America [electronic resource] : land, labor, and the Republican community / Mark A. Lause

Lause, Mark A