JSJ 266 NPM 5.0 with Rebecca Turner
JavaScript Jabber20 Kesä 2017

JSJ 266 NPM 5.0 with Rebecca Turner

On today’s episode of JavaScript Jabber, Charles Max Wood and panelist Joe Eames chat with Rebecca Turner, tech lead for https://www.npmjs.com/, a popular Javascript package manager with the worlds largest software registry. Learn about the newly released NPM 5 including a few of the updated features. Stay tuned![1:58] Was the release of node JS 8 tied to NPM5?
- Features in NPM5 have been in planning for 2 years now.
- Planned on getting it out earlier this year.
- Node 8 was coming out and got pushed out a month.
- Putting NPM5 into Node 8 became doable.
- Pushed really hard to get NPM5 into https://nodejs.org/en/blog/release/v8.0.0/ so that users would get NPM5 and updates to NPM5.
[2:58] Why would it matter? NPM doesn’t care right?
- Right you can use NPM5 with any version of node.
- Most people don’t update NPM, but upgrade Node.
- So releasing them together allowed for when people updated Node they would get NPM 5.
[3:29] How does the upgrade process work if you’re using NVM or some node version manager?
- Depends. Different approaches for each
- NVM gets a fresh copy of Node with new globals. NVM5 and Node 8 are bundled.
- For some, If you manually upgrade NVM you’ll always have to manually. It will keep the one you manually upgraded to.
[4:16] Why NPM 5?
- It’s night and day faster.
- 3 to 5 times speed up is not uncommon.
- Most package managers are slow.
- NPM 5 is still growing. Will get even faster.
[5:18] How did you make it faster?
- The NPM’s cache is old. It’s very slow. Appalling slow.
- Rewrote cache
- Saw huge performance gains
[5:49] What is the function of the cache?
- Cache makes it so you don’t have to reinstall modules from the internet.
- It has registry information too.
- It will now obey http headers for timing out cache.
[6:50] Other things that made it faster?
- Had a log file for a long time. It was called https://docs.npmjs.com/cli/shrinkwrap.
- NPM 5 makes it default.
- Renamed it to packagelog.json
- Exactly like shrinkwrap package file seen before
- In combo with cache, it makes it really fast.
- Stores information about what the tree should look like and it’s general structure.
- It doesn’t have to go back and learn versions of packages.
[7:50] Can you turn the default Packagelog.json off?
- Yes. Just:
- Set packagelog=false in the npmrc
[8:01] Why make it default? Why wasn’t it default before?
- It Didn’t have it before. Shrinkwrap was added as a separate project enfolded in NPM and wasn’t core to the design of NPM.
- Most people would now benefit from it. Not many scenarios where you wouldn’t want one.
- Teams not using the same tools causes headaches and issues.
[9:38] Where does not having a lock show up as a problem?
- It records the versions of the packages installed and where NPM put them so that when you clone a project down you will have exactly the same versions across machines.
- Collaborators have the exact same version.
- Protects from issues after people introduce changes and patch releases.
- NPM being faster is just a bonus.
- Store the sha512 of the package that was installed in the glock file so that we can verify it when you install. It’s Bit for bit what you had previously.
[11:12] Could you solve that by setting the package version as the same version as the .Json file?
- No. That will lock down the versions of the modules that you install personally, not the dependancies, or transitive dependancies.
- Package log allows you to look into the head of the installer. This is what the install looks like.
[12:16] Defaulting the log file speed things up? How?
- It doesn’t have to figure out dependences or the tree which makes it faster.
- Shrinkwrap command is still there, it renames it to shrinkwrap but shrinkwrap cannot be published.
- For application level things or big libraries, using shrinkwrap to lock down versions is popular.
[13:42] You’ve Adopted specifications in a ROC process. When did you guys do that?
- Did it in January
- Have been using them internally for years. Inviting people into the process.
- Specifications
- Written in the form of “Here is the problem and here are the solutions.”
- Spec folder in NPM docs, things being added to that as they specify how things work.
- Spec tests have been great.
[14:59] The update adds new tools. Will there be new things in registry as well?
- Yes.
- Information about a package from registry, it returns document that has info about every version and package json data and full readme for every version.
- It gets very large.
- New API to request smaller version of that document.
- Reduces bandwidth, lower download size, makes it substantially faster.
- Used to be hashed with sha1, With this update it will be hashed with sha512 as well as sha1 for older clients.
[16:20] Will you be stopping support for older versions?
- LTS version of NPM was a thing for a while. They stopped doing that.
- Two models, people either use whatever version came with Node or they update to the latest.
- The NPM team is really small. Hard to maintain old NPM branches.
- Supports current versions and that’s pretty much it.
- If there are big problems they will fix old versions. Patches , etc.
[17:36] Will there ever be problems with that?
- Older versions should continue to work. Shouldn’t break any of that.
- Can’t upgrade from 0.8.
- It does break with different Node version
- Does not support Node versions 0.10 or 0.12.
[18:47] How do you upgrade to NPM?
- sudo npm install -gmpm
- Yes, you may not need sudo. depend on what you’re on.
[19:07] How long has it been since version 4?
- Last October is when it came out.
[19:24] Do you already have plans for version 6?
- Yes!
- More releases than before coming up.
- Finally deprecating old features that are only used in a few packages out of the whole registry.
- Running tests on getting rid of things.
[20:50] Self healing cache. What is it and why do we want it?
- Users are sometimes showing up where installs are broken and tarbols are corrupted.
- This happens sometimes with complicated containerization setups makes it more likely. It’s unclear where the problem actually is.
- https://www.npmjs.com/package/cacache - content addressable cache. Take the hash of your package and use it to look up address to look it up in the cache.
- Compares the Tarbol using an address to look it up in the cache.
- Compares to see if it’s old. Trashes old and downloads updated one.
- Came out with the cache. Free side effect of the new cache.
[23:14] New information output as part of the update?
- NPM has always gave back you the tree from what you just installed.
- Now, trees can be larger and displaying that much information is not useful.
- User patch - gives you specifically what you asked for.
- Information it shows will be something like: “I installed 50 items, updated 7, deleted 2.”
[24:23] Did you personally put that together?
- Yes, threw it together and then got feedback from users and went with it.
- Often unplanned features will get made and will be thrown out to get feedback.
- Another new things ls output now shows you modules that were deduped. Shows logical tree and it’s relationships and what was deduped.
[25:27] You came up to node 4 syntax. Why not go to node 8?
- To allow people with just node 4 be able to use NPM.
- Many projects still run Node 4. Once a project has been deployed, people generally don’t touch it.
[26:20] Other new features? What about the File Specifier?
- File specifier is new. File paths can be in package json, usually put inside pointing to something inside your package.
- It will copy from there to your node modules.
- Just a node module symlink.
- Much faster. Verifiable that what’s in your node modules matches the source. If it’s pointing at the right place it’s correct. If not, then it’s not.
- Earlier, sometimes it was hard to tell.
[27:38] Anything else as part of the NPM 5 release? Who do you think will be most affected by it?
- For the most part, people notice three things:
- 1st. no giant tree at the end
- 2nd. Much faster
- 3rd. Package lock.
[28:14] If it’s locked, how do you update it?
- Run npm installer and then npm update
- Used to be scary, but works well now.
- Updates to latest semver, matches semver to package json to all node modules.
- Updates package lock at the same time
- Summary in Git shows what’s changed.
[28:59] Did Yarn come into play with your decisions with this release?
- The plans have been in play for a long time for this update.
- https://yarnpkg.com/en/ inclusion of similar features and the feedback was an indicator that some of the features were valuable.
[29:53] Other plans to incorporate features similar to yarn?
- Features are already pretty close.
- There are other alternative package managers out there.
- PMPM interesting because when it installs it doesn’t copy all the files. It c

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

Jaksot(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 Touko 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 Touko 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 Huhti 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 Huhti 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 Huhti 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 Huhti 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 Huhti 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 Maalis 201539min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
mimmit-sijoittaa
rss-rahapodi
psykopodiaa-podcast
ostan-asuntoja-podcast
oppimisen-psykologia
pomojen-suusta
taloudellinen-mielenrauha
rss-lahtijat
rss-rahamania
rahapuhetta
sijoituskaverit
sijoituspodi
rss-uskalla-yrittaa
rss-h-asselmoilanen
rss-turvacast
rss-yrittajan-mielenmatka
rss-merja-mahkan-rahat
rss-seuraava-potilas
rss-viisas-raha-podi