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)

Unpacking Core Web Vitals - JSJ 620

Unpacking Core Web Vitals - JSJ 620

Harry Roberts is a web performance consultant. They immerse themselves in the critical realm of web performance and JavaScript. The esteemed panel, including the renowned Harry Roberts, delves into the intricate details of site speed measurement and the evolving landscape of web performance metrics. The conversation sheds light on the profound impact of Core Web Vitals on businesses and the challenges they pose. Join them as they navigate the intricacies of web development, explore the nuances of user experience, and unravel the complexities of performance optimization.SponsorsChuck's Resume Template Developer Book Club Become a Top 1% Dev with a Top End Devs MembershipSocialsLinkedIn: Harry RobertsGitHub: Harry RobertsPicksAJ - ImageOptimAJ - AmeriDroid AJ - CloudFreeAJ - TRÅDFRIAJ - Aquarium Co-OpAJ - MJ AquascapingAJ - AQUAPROSAJ - Father FishDan - Apple Vision ProDan - Cache Rules Everything | Harry Roberts | performance.now() 2023Dan - GriseldaSupport 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 Helmi 20241h 19min

Mastering Back-End Functionalities and Development with AWS Amplify - JSJ 619

Mastering Back-End Functionalities and Development with AWS Amplify - JSJ 619

In this episode, Steve delves into a deep and insightful conversation with Erik Hanchett from Amazon AWS. They explore a wide range of topics, from discussing the possibilities and complexities of using multiple software services for back-end development to unraveling the benefits of using services like AWS Amplify for handling multiple tasks and integrated functionalities. The conversation also touches on the development and deployment processes, local testing environment setup, language choices, and the Vue component library with connected components and theming. Erik shares his vast expertise and knowledge in the field, and the engaging dialogue offers valuable insights and recommendations for both experienced and aspiring developers.SponsorsChuck's Resume Template Raygun - Application Monitoring For Web & Mobile AppsBecome a Top 1% Dev with a Top End Devs MembershipSocialsLinkedIn: Erik Hanchett PicksErik - Apple Vision ProSteve - Why You’ve Never Been In A Plane CrashSupport 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 Helmi 20241h 10min

Exploring AI Impact on Code Generation and Quality Metrics - JSJ 618

Exploring AI Impact on Code Generation and Quality Metrics - JSJ 618

Conor Bronsdon is the host of the Dev Interrupted Podcast and currently works at LinearB. They dive into the world of generative AI tools in software development, exploring the impact, challenges, and potential benefits they present. They engage in a lively discussion about the use of AI tools like Copilot and the implications for code generation, team efficiency, and happiness. The conversation also touches on the concerns and considerations surrounding AI integration in coding, including compliance, quality, and intellectual property. Join them as they delve into the evolving landscape of AI in software development, the quest for improved developer experiences, and ethical considerations.SponsorsChuck's Resume Template Developer Book Club Become a Top 1% Dev with a Top End Devs MembershipLinksDev InterruptedSocialsLinkedIn: Conor BronsdonConor BronsdonPicksAJ - Market Saturation = 98.9% - What Now?AJ - Mentour PilotAJ - Keychain Pin ToolAJ - Open AudibleConor - Feel-Good Productivity: How to Do More of What Matters to YouSupport 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.

30 Tammi 20241h 6min

Inside the World of React: Server Components, Unidirectional Data Flow, and Frameworks - JSJ 617

Inside the World of React: Server Components, Unidirectional Data Flow, and Frameworks - JSJ 617

Sam Selikoff is the founder of Build UI, Inc. They unpack a myriad of discussions surrounding JavaScript and its applications. They delve into topics such as RPC resurgence, React server components, and the challenges and solutions around integrating design and components. A variety of technical concepts, tools, and frameworks, including Tailwind, Redux, and Remix, are also explored. Additionally, the episode touches upon important mental health conversations, personal experiences, and the pitfalls of fragmented media subscriptions. SponsorsChuck's Resume Template Developer Book Club Become a Top 1% Dev with a Top End Devs MembershipSocialsTwitter: @samselikoffPicksAJ - No BackendAJ - Home AssistantAJ - CloudFreeAJ - AmeriDroidAJ - Chaos WalkingDan - Blue Eye SamuraiDan - Samurai JackSam - Lessons in ChemistrySupport 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.

23 Tammi 20241h 22min

Streamlining AI Integration - JSJ 616

Streamlining AI Integration - JSJ 616

Ismail Pelaseyed is the co-founder of Superagent. They delve into the world of AI technology, open-source frameworks, and the practical applications of AI assistants. The conversation covers a range of topics, from the technical and philosophical differences between AI frameworks to the importance of user-facing UI components with the power of AI. They also talk about the practical use cases of Superagent, its potential impact on the AI industry, and the challenges and considerations surrounding the deployment and monetization of open-source projects.SponsorsChuck's Resume Template Raygun - Application Monitoring For Web & Mobile AppsBecome a Top 1% Dev with a Top End Devs MembershipLinksSuperagentSocialsLinkedIn: Ismail PelaseyedPicksAJ - His & Her BidetAJ - Ollama (Installer)AJ - Home AssistantAJ - Chaos Walking (Books)AJ - Market Saturation = 98.9% - What Now?AJ - Keychain Pin ToolCharles - Disney ChronologyCharles - once.comDan - PrometheusDan - Which one is the un-React?Ismail - Fargoismail - outlinesSupport 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 Tammi 20241h 17min

Iterating on Open Source - JSJ 615

Iterating on Open Source - JSJ 615

Today the panel is discussing iterating on open source projects. Aimee and AJ recall a conversation they had in the past on this subject and AJ talks about some of his experience iterating with open source. AJ believes that we have an obligation to capture the value of what you create so that we can reinvest and create more value, though he admits that making money in open source is a unique challenge because donations only really work if you have a project that gets billions of downloads a month. As your project grows, it has to change in order to survive, and eventually you will need to get financial support from your project. The panel agrees that some of the main issues with iterating in open source are maintaining the code and getting feedback from users, financial backing, and roadmapping and integrations.The panel discusses their methods for getting feedback from their users. This feedback is valuable because it can show you things that you missed. They acknowledge that there can be conflicts of interest between those who only use the project and those who financially support it, and you have to make a choice. Unfortunately, someone is probably going to be inconvenienced no matter what choice you make. When making these decisions, you have to consider who it helps, who it frustrates, and who it may cause problems for. The panelists talk about different ways they’ve handled making these decisions in the past. The JavaScript experts talk about the importance of having data on your user base in order to make good choices for your users. They talk about different methods for notifying your users of upcoming changes and how it will affect compatibility, and some of the challenges with communicating with your users. AJ talks about an iteration he thought was a good idea but that a lot of people hated and how he noticed that the new users liked it but the old users did not. They panel agrees that people in general don’t like change. AJ talks about what he learned from this experience. Another common issue is integrating with other services. Integrating with cloud services, or at least giving people the option to integrate gives you an opportunity to reach more people and maintain the project long term. AJ gives some final thoughts to close the show, namely that most projects never go anywhere, and that’s ok. If you’ve got something that starts going somewhere, think early on about how you can better serve the community and remember that these people are mostly grateful and semi-willing to support you. He believes that if you are helping people create value, you deserve to see the fruits of your labor. He advises listeners to stay true to your open source ideals, think about your users perspective, and that the earlier you can think about this and make these choices, the better it is for your project SponsorsChuck's Resume Template Developer Book Club Become a Top 1% Dev with a Top End Devs MembershipLinksHow-npm-am-iReactVue.jsLet’s EncryptAsync/awaitNodePicksAimee - Debug Like a NinjaSteve - Jack Ryan AJ - Why I, as a black man, attend KKK meetingsCharles - It’s a Wonderful LifeCharles - Mr. Kreuger’s ChristmasSupport 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.

9 Tammi 202457min

Dev Dilemmas: TypeScript Triumphs and Quirks of JavaScript Arrays - JSJ 614

Dev Dilemmas: TypeScript Triumphs and Quirks of JavaScript Arrays - JSJ 614

AJ, Charles, Dan, and Steve dive deep into all things JavaScript and TypeScript. In this episode, they discuss the pros and cons of arrow functions and the ongoing debate about using semicolons at the end of JavaScript statements. They also explore the use of different types of quotes for strings and the rise in popularity of TypeScript among developers. Additionally, they cover a wide range of topics, including array manipulation, coding laziness, and the challenges of reading and understanding JavaScript code. Join them as they navigate through these intriguing discussions and gather valuable insights for our development journey.SponsorsChuck's Resume Template Raygun - Application Monitoring For Web & Mobile AppsBecome a Top 1% Dev with a Top End Devs MembershipPicksAJ - Chaos Walking: The Complete Trilogy: Books 1-Charles - SaltconCharles - MysteriumDan - CatanDan - Documentary about the history of Zionism and the founding of Israel: "Pillar of Fire"Steve - How archaeologists reconstructed the burning of Jerusalem in 586 BCESupport 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.

2 Tammi 20241h 33min

The Future of Authentication in JavaScript: An Inside Look into Passport JS with Jared Hanson - JSJ 613

The Future of Authentication in JavaScript: An Inside Look into Passport JS with Jared Hanson - JSJ 613

Jared Hanson is a software engineer at Okta. In this episode, they delve into the world of authentication strategies, troubleshooting touchscreen frustrations, and exploring the evolution of web application technology. They touch on the challenges of secure authentication, the complexity of JavaScript type checking, and the intersection of security and usability in technologies like WebAuthn. Join us as they discuss their experiences with Passport JS, the potential of WebAuthn, the frustration with ongoing changes in browser technology, and much more. Tune in for an insightful discussion on cutting-edge trends in the JavaScript and Node.js ecosystems!SponsorsChuck's Resume Template Developer Book Club Become a Top 1% Dev with a Top End Devs MembershipSocialsLinkedIn: Jared HansonTwitter: @jaredhansonPicksAJ - SQL <---> Types <---> JShttps://github.com/nettofarah/postgres-schema-tshttps://www.npmjs.com/package/ts-to-jsdochttps://jswithtypes.com/AJ - Creative T60 SpeakersAJ - HammerHead Metal Shower HeadAJ - Degrees of Comfort King Dual-Heated BlanketCharles - Risk Legacy | Board GameCharles - Ubiquiti: UniFi - IntroductionSteve - The DriveSteve - FigmaSupport 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.

26 Joulu 20231h 19min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
psykopodiaa-podcast
mimmit-sijoittaa
rss-rahapodi
herrasmieshakkerit
ostan-asuntoja-podcast
hyva-paha-johtaminen
rss-lentopaivakirjat
rss-paasipodi
taloudellinen-mielenrauha
rss-merja-mahkan-rahat
rss-sisalto-kuntoon
leadcast
sijoituskaverit
pomojen-suusta
rss-rahamania
rss-lahtijat
rss-huomisen-talous
rss-neuvottelija-sami-miettinen
rss-laakispodi