JSJ 267 Node 8 with Mikeal Rogers, Arunesh Chandra, and Anna Henningsen
JavaScript Jabber27 Juni 2017

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

JSJ 267 Node 8 with Mikeal Rogers, Arunesh Chandra, and Anna HenningsenOn 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 https://www.npmjs.com/package/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 https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey
- https://github.com/mozilla/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
- https://turboc.codeplex.com/ 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 call

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Avsnitt(735)

159 JSJ Why JavaScript Is Hard

159 JSJ Why JavaScript Is Hard

02:54 - Everyone Gets It But MeMartin Fowler04:06 - Tools You “Need” to Know06:29 - Clojures07:39 - JavaScript as “Object-Oriented” vs “Event-Oriented”Object-Oriented Programming09:30 - Code That Can’t Be Serialized or Deserialized10:49 - Clojures (Cont’d)14:32 - The DOM (Document Object Model)[YouTube] Angular + React = Speed by Dave Smith @ ng-conf 201519:52 - Math Is HardIEEE754 (Floating-Point Arithmetic)22:39 - PrototypesSebastian Porto: A Plain English Guide to JavaScript Prototypes 25:43 - Asynchronous ProgrammingDebuggingGregor Hohpe: Your Coffee Shop Doesn’t Use Two-Phase Commit How Do You Learn It?32:23 - Browser Environments34:48 - Keeping Up with JavaScript35:46 - NodeNestingContext Switching42:48 - UTF-8 Conversion44:56 - Jamison’s StackReactKoa    RethinkDBio.jsWebpackCheck out and sign up to get new on React Rally: A community React conference on August 24th and 25th in Salt Lake City, Utah!Picks Jason Orendorff: ES6 In Depth (Aimee) Cat Strollers (Aimee) Stephano Legacy of the Void (Joe) A Gentleman's Guide to Love and Murder (Joe) Gregor Hohpe: Your Coffee Shop Doesn’t Use Two-Phase Commit  (AJ) Firefox OS (AJ) Flame (AJ) OpenWest 2015 (AJ) 801 Labs Hackerspace (AJ) Stack Overflow Careers (AJ) Dota 2 (Jamison) Beats, Rye & Types Podcast (Jamison) JS Remote Conf Talks (Chuck) Workflowy (Chuck) Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

13 Maj 201558min

158 JSJ Roots with Jeff Escalante

158 JSJ Roots with Jeff Escalante

02:30 - Jeff Escalante IntroductionTwitter GitHubCarrot Creative03:15 - Roots[GitHub] roots05:20 - Static Sites vs Dynamic SitesResource: Static vs Dynamic WebsitesScaleSEO (Search Engine Optimization)13:47 - Plugins 15:48 - Multipass Compile FunctionalityJSX20:27 - Roots vs Other Static Site GeneratorsTechnical Debt22:31 - Netlify 26:22 - HTTPSMathias Biilmann: Five Reasons you want HTTPS for your Static siteLet's EncryptExtended Validation Certificate (EV Certificate)Picks ECMAScript 6 — New Features: Overview & Comparison (Aimee) Jacob Kaplan-Moss: Keynote at Pycon 2015 (Aimee) Dr. Who (AJ) Power Rangers (AJ) Marvel Digital Comics Unlimited (Joe) GoFundMe (Joe) Netlify (Jeff) accord (Jeff) Contentful (Jeff) Special Guest: Jeff Escalante. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

6 Maj 201539min

157 Moving Your Rendering Engine to React with Amit Kaufman and Avi Marcus

157 Moving Your Rendering Engine to React with Amit Kaufman and Avi Marcus

02:43 - Amit Kaufman IntroductionGitHubWix03:07 - Avi Marcus IntroductionGitHubWix04:35 - Why Move Your Rendering Engine to React?[GitHub] react 07:25 - Using JavaScriptObject-Oriented Programming09:57 - Business Process and Progression (Getting Managerial Approval)Client-Side vs. Server-Side Rendering12:46 - Manipulation15:11 - Layout and PerformanceMeasuring and Patching20:21 - Building Client-Side Applications in GeneralAbstractionMake Code Predictable and ClearHave a Goal26:00 - Events 29:30 - StorageLazy Components31:31 - Immutability 34:36 - Flux and Keeping Code MaintainablePackages38:19 - Two-way Data BindingPicks Notes on the book "Art & Fear" by David Bayles & Ted Orland (Jamison) Papers (Jamison) Dynamo: Amazon’s Highly Available Key-value Store (Jamison) LDS Conference Talks (AJ) Stephen Young: Why your code is so hard to understand (Aimee) Kombucha (Aimee) Pascal Precht: Integrating Web Components with AngularJS (Pascal) Template Syntax Constraints and Reasoning (Design Doc) (Pascal) RUNNING WITH RIFLES (Joe) [Pluralsight Webinar] AngularJS 2.0: What you need to know with Joe (Joe) Whiplash (Amit) Dan Ariely: What makes us feel good about our work? (Amit) React Templates (Amit) Esprima (Avi) Big Hero 6 (Avi) Check out and sign up to get new on React Rally: A community React conference on August 24th and 25th in Salt Lake City, Utah!Special Guests: Amit Kaufman and Avi Marcus. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

29 Apr 201552min

156 JSJ Soft Skills and Marketing Yourself as a Software Developer with John Sonmez

156 JSJ Soft Skills and Marketing Yourself as a Software Developer with John Sonmez

Check out ReactRally: A community React conference in Salt Lake City, UT from August 24th-25th!03:36 - John Sonmez IntroductionTwitter GitHub Simple ProgrammerThe Entreprogrammers PodcastSoft Skills: The Software Developer's Life Manual by John SonmezHow to Market Yourself as a Software Developer Course04:29 - Mastermind GroupsThink and Grow Rich: The Landmark Bestseller - Now Revised and Updated for the 21st Century by Napoleon Hill05:53 - “Soft Skills”Why Care About Soft Skills?People Skills FinancesFitness11:53 - Learned vs InnateLifting Limited BeliefsPractice14:14 - Promotion (Managerial) Paths The Peter Principle17:52 - “Marketing” Value: Give Away 90% / Charge For 10%Seeming “Spammy” (Resistance to Sell)Neil Patel's BlogDocumentation for YourselfAJ O'Neal: How to Tweet from NodeJS 29:53 - Get Up and CODE!#086: Figure Skating and Software Development with Aimee Knight#067: Weight Loss Plan for Charles (Max Wood)33:47 - Burnout Do the Work by Steven PressfieldThe War of Art: Break Through the Blocks and Win Your Inner Creative Battles by Steven PressfieldSystems and Habits (Routines)Methods of ExecutionGet John’s How to Market Yourself as a Software Developer Course for $100 off using the code JSJABBER Comment on this episode for your chance to win one of two autographed copies of Soft Skills: The Software Developer's Life Manual by John Sonmez Picks The Recurse Center (Jamison) Code Words Blog (Jamison) DayZ Player Sings (And Plays Guitar) For His Life (Jamison) Demon (Jamison) Mastodon: Leviathan (Jamison) Jan Van Haasteren Puzzles (Joe) Hobbit Tales from the Green Dragon Inn (Joe) AngularJS-Resources (Aimee) Superfeet Insoles (Aimee) Good Mythical Morning (AJ) The Magic of Thinking Big by David J. Schwartz (Chuck) Streak (John) The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It by Michael E. Gerber (John) Influence: The Psychology of Persuasion, Revised Edition by Robert B. Cialdini (John) Do the Work by Steven Pressfield (John) The War of Art: Break Through the Blocks and Win Your Inner Creative Battles by Steven Pressfield (John) Special Guest: John Sonmez. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

22 Apr 20151h

155 JSJ Webtorrent with Feross Aboukhadijeh

155 JSJ Webtorrent with Feross Aboukhadijeh

Support our Teespring campaign! Get your JavaScript Jabber unisex t-shirts, hoodies, ladies’-sized, and long-sleeve tees!02:01 - Feross Aboukhadijeh IntroductionTwitter GitHub Blog02:39 - Peer-to-Peer Background, Content Delivery Networks (CDNs)WebRTCPeerCDNBitTorrent09:43 - The BitTorrent Protocol and Hypertext Transfer Protocol (HTTP)[YouTube] Feross Aboukhadijeh: WebTorrent (JSConf.Asia 2014) Distributed Hash Table (DHT)13:08 - WebTorrent = BitTorrent over WebRTCTransmission Control Protocol (TCP)The User Datagram Protocol (UDP)Session Traversal Utilities for NAT (STUN)17:22 - Where Do Original Files Come From?Tracker ServersBitTorrent Enhancement Proposal (BEP)21:23 - Opposition27:26 - Where is WebTorrent Going? (Use Cases)Instant.io[GitHub] instant.io29:52 - Live Broadcasts31:12 - Progression of BitTorrent Over TimeTechnical Decentralization35:03 - Same-Origin Policy 36:33 - Firefox Hello PicksJanuary 12th, 2016: Goodbye IE8 and IE9! (Dave) js-must-watch (Aimee) Headspace (Aimee) Popcorn Time (AJ) Steelheart (The Reckoners) by Brandon Sanderson (Chuck) Teespring (Chuck) Loop Drop by Matt McKegg (Feross) SceneVR by Ben Nolan (Feross) WebTorrent (Feross) node-nat-upnp (AJ) node-nat-pmp (AJ) simple-peer (Feross)Special Guest: Feross Aboukhadijeh. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

16 Apr 201547min

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

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

02:35 - John-Daniel Trask Introduction and BackgroundTwitter GitHub BlogMindscape@MindscapeHQ04:57 - Raygun.io@raygunio06:23 - Crash Reporting The Right WayError GroupingSuppress Notifications10:06 - Most Common Errors12:05 - Source Maps 19:16 - Managing Error Reporting in Gross Environments22:17 - Determining Where The Issue Is24:45 - Do People Write Their Own Errors?26:23 - Frameworks Support28:28 - Collecting Data: Privacy and Security30:01 - Does working in error reporting make you judgemental of others’ code?“DDOSing Yourself”32:42 - Planning for Rare Exceptions33:36 - Tactics to Cut Down on Messages35:53 - Gathering Basic Debugging Information37:58 - Getting the BEST InformationPromisesStockholm Syndrome42:24 - The Backend: Node.jsThe raygun4node provider43: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)Special Guest: John-Daniel Trask. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

8 Apr 201558min

153 JSJ Careers for Junior Developers with Aimee Knight

153 JSJ Careers for Junior Developers with Aimee Knight

02:26 - Aimee Knight IntroductionTwitter GitHub BlogMessage Systems02:48 - Figure Skating => ProgrammingPersistenceBalance Between Mind and Body05:03 - Blogging (Aimee’s Blog)06:02 - Becoming Interested in ProgrammingTreehouse@treehouse Code School@codeschool Rails Girls@railsgirls RailsBridge@railsbridge 08:43 - Why Boot Camps?10:04 - MentorsIdentifying a MentorContinuing a Mentorship13:33 - Picking a Boot Camp16:23 - Self-Teaching Prior to Attending Boot Camps20:33 - Finding Employment After the Boot CampBaltimore NodeSchoolPassionInterview Prep26:27 - Being a “Woman in Tech”30:57 - Better Preparing for Getting Started in ProgrammingBe Patient with Yourself32:07 - InterviewsGetting to Know CandidatesCoding Projects and Tests41:05 - Should you get a four-year degree to be a programmer?Eliza BrockPicks 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)Special Guest: Aimee Knight. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

1 Apr 20151h 6min

152 JSJ GraphQL and Relay with Nick Schrock and Joe Savona

152 JSJ GraphQL and Relay with Nick Schrock and Joe Savona

02:25 - Nick Shrock IntroductionTwitter02:40 - Joe Savona IntroductionTwitter GitHhubBlog02:49 - Facebook and Open Source04:10 - GraphQL and Relay Overview“React for Your Data” / Component-based Data Fetching 06:11 - Unique to React? Passing Down Through the HierarchyXHPRepresentational State Transfer (REST)10:09 - QueriesToolingGraphicalPulling Definitions14:13 - Why Do I Care? (As Someone Not Working at Facebook)15:21 - Building Applications with GraphQL and Relay 19:01 - GraphQL and Building Backends21:42 - Drivers and Client SoftwareSynthesize => Code GenerationFluxContainer Classes30:58 - Reusing Components31:50 - Data Management34:25 - Open Source 36:40 - Reflecting Backend Constraints? (Optimizing the Backend)43:02 - Relationships => Logs46:24 - Security47:16 - Replacing REST (Adopting New Technology)“The Progressive Disclosure of Complexity”52:14 - What You Wouldn’t Use GraphQL or Relay ForGamesPicks 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)Special Guests: Joe Savona and Nick Schrock. Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

25 Mars 201539min

Populärt inom Business & ekonomi

framgangspodden
badfluence
varvet
rss-jossan-nina
svd-tech-brief
rss-borsens-finest
uppgang-och-fall
avanzapodden
bathina-en-podcast
rss-kort-lang-analyspodden-fran-di
fill-or-kill
rss-inga-dumma-fragor-om-pengar
dynastin
rss-dagen-med-di
rikatillsammans-om-privatekonomi-rikedom-i-livet
kapitalet-en-podd-om-ekonomi
rss-borslunch
rss-veckans-trade
borslunch-2
market-makers