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(734)

TanStack: A Deep Dive into Server Functions and Routing with Tanner Linsley - JsJ 667

TanStack: A Deep Dive into Server Functions and Routing with Tanner Linsley - JsJ 667

In this episode of JavaScript Jabber, host Steve Edwards is joined by panelists Dan Shappir and AJ O'Neil, along with special guest Tanner Lindsley, to explore the innovative world of TanStack, a collection of open-source libraries designed to enhance web development. Tanner shares insights into the origins and evolution of TanStack, highlighting its journey from simple libraries like React Table to a comprehensive toolkit including TanStack Query, TanStack Virtual, and more. The discussion delves into the nuances of building framework-agnostic tools, the challenges of server-side rendering, and the rise of remote procedure calls (RPCs) as a modern development approach. With intriguing debates on the future of meta frameworks and the role of server components, this episode provides a deep dive into the cutting-edge technologies shaping the development landscape. Whether you're a fan of React, Solid, or just curious about the direction of web frameworks, this conversation offers valuable insights and expert opinions on the current and future state of web development. Tune in to discover how TanStack is influencing the way we build and manage applications in the ever-evolving JavaScript ecosystem.Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

6 Helmi 1h 29min

What's New in JavaScript: Latest Language Updates and Features - JSJ 666

What's New in JavaScript: Latest Language Updates and Features - JSJ 666

Hey, everyone. Welcome back to another exciting episode of JavaScript Jabber, part of the Top End Devs Network. I'm your host, Charles Max Wood, joined by our amazing panelist, Dan Shappir. In this episode, we dive into the latest developments in the world of JavaScript as we kick off a new year. You might recall we covered this topic about a year and a half ago in episode 590.  Today, we're revisiting the updates to see what's progressed and what's newly introduced in the JavaScript standard.Dan Shappir offers his expertise as we explore features that have recently been added to the language. From promise.allSettled, a feature that's been around for about five years but often underutilized, to array method enhancements like .at and Object.hasOwn, there's a ton to unpack. We'll also delve into exciting new library additions like findLast for arrays, efficient array copying methods and improvements in set operations that make JavaScript more powerful and developer-friendly than ever.The episode isn't just about the features that have already landed; we'll also touch on what's in the pipeline with proposals in various stages of development, including exciting concepts like temporal for better date and time handling. Whether you're a JavaScript pro or just keen to stay updated on the latest trends, this discussion is packed with insights to level up your coding game.So, grab your headphones, stay tuned, and let's explore the exciting world of new JavaScript features together!Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

22 Tammi 1h 26min

Reflections on Technology Trends, AI Impact, and Memorable Episodes - JSJ 665

Reflections on Technology Trends, AI Impact, and Memorable Episodes - JSJ 665

Welcome to another riveting episode of Top End Devs! In today's "Year in Review" special, hosts Charles, AJ, Dan, and Steve Edwards take you on a retrospective journey through their most memorable moments and thought-provoking discussions of the year. From the amusing and insightful exchanges with influential guests like Rich Harris and Kyle Simpson to their deep dives into emerging tech trends like Svelte 5 and AI integration in development, this episode has it all.They also explore Charles's experience transitioning from a Mac to a high-performance System76 machine, Dan's favorite and least favorite tech trends, and AJ's admiration for profitable and customer-focused approaches in the industry. Expect a blend of technical expertise, humor with those beloved dad jokes, and personal reflections that make this podcast uniquely engaging.So, get ready as we reflect on the year's highlights, laugh at the dad jokes that have become fan favorites, and look forward to exciting developments in the tech world with your favorite panelists.PicksAJ - 100 Days of Rejection (Therapy)AJ - https://www.youtube.com/playlist?list=PLamouX6QxWIuTHuaArIOzdorWoYaF6cU5AJ - John Sonmez: Eye Contact & SmirkingAJ - John Sonmez: How to Become a ManAJ - EvalPlus LeaderboardAJ - OllamaCharles -HeatCharles - Heat: Pedal to the MetalCharles - Hit Refresh by Satya NadellaCharles -  American Icon by Bryce HoffmanCharles - System76Charles - Wizard's First Rule (Sword of Truth, Book 1) (Sword of Truth, 1)Dan - A Man on the Inside (TV Series 2024Dan - The Best Syria Breakdown You'll Ever Hear - Thomas SmallDan - Master of the Five MagicsBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

7 Tammi 2h 5min

Innovation and Framework Adoption - JSJ 664

Innovation and Framework Adoption - JSJ 664

In this episode, Charles, AJ, and Dan explore the intricacies of team dynamics, technological choices, and the challenges of web development with our distinguished panel. Joining them is a very special guest, the legendary Uncle Bob Martin. They delve into team collaboration and decision-making, with Uncle Bob emphasizing the importance of reasonable debates and team buy-in when it comes to mental models and project directives. Dan discusses how, in startups, the initial developer often ends up making key decisions.They also touch on technological choices, including the complications of inheriting decisions from previous team members and the ever-topical debate on relational databases influenced by marketing pressures. Uncle Bob shares his seasoned insights into React Framework inconsistencies and the philosophy behind state-driven design.They tackle the separation of business logic from frameworks to maintain purity and independence in code. There's also a lively discussion about starting with functional prototypes, and the influence of Apple’s focus on UI on their success.Additionally, they explore Uncle Bob’s controversial stance on web frameworks, the dynamics of framework adoption, and the role of technical decisions in hiring. There are fascinating comparisons between framework popularity and historical tech stories, including the evolution of Apple’s innovations and the contributions from Xerox PARC.Finally, as they wrap up, they have insightful pick recommendations from the panelists, covering everything from the NBA season and engaging TV series to board games and book recommendations—a little something for everyone.Join them for an enlightening journey through the nuances of modern development practices, historical tech anecdotes, and personal insights from some of the industry's top minds. This episode promises to be a treasure trove of knowledge and experience for any developer. Let's get started!SocialsLinkedIn: Robert MartinPicksAJ - How to Start a Startup - A course Y Combinator taught at StanfordCharles - MLEM: Space Agency | Board GameDan - NBA SeasonDan - The Day of the Jackal (TV Series 2024Uncle Bob - 'The Cloud Fugitive' | David Heinemeier Hansson | NTK # 001Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

31 Joulu 20241h 45min

Revolutionizing API Syntax and Schema Management with Jazz Framework - JSJ 663

Revolutionizing API Syntax and Schema Management with Jazz Framework - JSJ 663

In today's episode, Charles and AJ are joined by Anselm Eickhoff, a trailblazing full-stack software engineer. Anselm delves into the world of "Local First" software development and the innovative tool he’s developed, "Jazz." They explore how Jazz leverages schema information for type inference and runtime validation, enabling real-time collaboration and seamless offline functionality. They dive into the simplifications brought by Jazz's API changes, the flexibility offered through open protocols, and the local-first approach using CRDTs.They also tackle Jazz’s impressive backend infrastructure and its shift to direct disk storage, along with insights into the challenges and emerging support structures faced by early adopters. Anselm shares real-world applications, advanced analytics capabilities, and the future outlook for Jazz, emphasizing performance, resilience, and data privacy.Plus, stay tuned for a lighthearted detour into board games and TV recommendations, as well as updates on Charles’ AI Dev Boot Camp and exciting developments on the Top End Devs platform. This episode is packed with cutting-edge insights and practical advice for developers looking to integrate advanced real-time features and streamline their app development processes. SocialsLinkedIn: Anselm EickhoffPicksAJ - Dune 2-Film Collection (Blu-Ray + Digital)Charles - Imperial Miners | Board GameBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

24 Joulu 20241h 25min

Painting Roses, Eating Marshmallows and Network Protocols - JSJ 662

Painting Roses, Eating Marshmallows and Network Protocols - JSJ 662

Welcome to another insightful episode of the JavaScript Jabber podcast, hosted by Charles alongside our expert panelists Dan and AJ. Today, they are thrilled to be joined by Avishai Ish-Shalom a seasoned technologist with an eye for challenging conventions in the tech world. In this episode, Avishai takes us through fascinating discussions comparing industrial food products to technological abstractions, including his unique perspective on the “marshmallow effect” and the evolving complexities of virtualization.They delve into the challenges of backward compatibility in modern tech, using real-world parallels like AWS virtual storage options, and discuss the impact of technologies like Docker and cloud services on our understanding of underlying infrastructures. Charles shares his upgrade journey from an aging Mac laptop to a powerful System76 desktop for AI tasks, reflecting the changing demands on development environments.Listen in as they explore the nuances of binary vs. textual protocols, the importance of future-proofing legacy systems, and Avishai's compelling arguments in his articles "Don't Paint the Roses" and "The Marshmallow Effect." Plus, they discuss Avishai's career evolution and the intellectual challenges faced by today’s engineers in the rapidly advancing tech landscape. Whether you’re a casual listener or a tech enthusiast, this episode promises to offer valuable insights and thought-provoking discussions. Stay tuned!SocialsLinkedIn: Avishai Ish-ShalomPicksAJ - Deku Deals Avishai - marimo | a next-generation Python notebookCharles - Challengers! Beach Cup | Board GameDan - The Penguin (TV Mini Series 2024)Dan - BlueskyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

17 Joulu 20241h 33min

Structuring Node.js Applications Part 2: Dependency Management, Package Managers, Proper API Usage, etc.- JSJ 661

Structuring Node.js Applications Part 2: Dependency Management, Package Managers, Proper API Usage, etc.- JSJ 661

This is the second part of the deep dive into the essential practices and principles for successful Node.js development. Our esteemed guests, Michael Dawson, James Snell, Matteo Collina, and Natalia Venditto, bring their extensive expertise to the table, discussing key topics like how to manage dependencies in a Node.js project.SocialsLinkedIn: James SnellLinkedIn: Michael DawsonLinkedIn: Matteo CollinaLinkedIn: Natalia VendittoPicksCharles - Gnome Hollow | Board GameCharles - Reacher (TV Series 2022Michael - MakerWorld: Download Free 3D Printing Models Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

11 Joulu 20241h 22min

TypeScript Success: Integration, Type Checking, and Generics  - JSJ 660

TypeScript Success: Integration, Type Checking, and Generics - JSJ 660

In this episode, Dan sits down with TypeScript expert Matt Pocock to dive deep into the world of TypeScript migration, learning curves, and developer challenges. They explore why having a TypeScript "wizard" is crucial for teams transitioning from JavaScript and how TypeScript's integration with development environments like Visual Studio Code has been a game changer.Dan and Matt discuss the importance of real-time typechecking, the community's role in TypeScript's success, and practical strategies for migrating large codebases to TypeScript. You'll hear about Matt's journey from drama school to becoming a DevRel expert, his contributions to the XState library, and his philosophy of type-driven development. Together, they highlight TypeScript's advantages, such as enhanced code reliability and the nuanced benefits of explicit vs. inferred types.Whether you're a seasoned developer or just starting with TypeScript, this episode offers valuable insights and actionable advice to help you harness the full power of static typing in your projects. Tune in for a fascinating discussion that underscores the value of "boring" code, the need for continual learning, and the ongoing evolution of software development practices. Stay with us as we unravel the intricacies of TypeScript and share practical tips to elevate your coding journey.SocialsLinkedIn: Matt PocockBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

3 Joulu 20241h 20min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
psykopodiaa-podcast
rss-rahapodi
mimmit-sijoittaa
ostan-asuntoja-podcast
pomojen-suusta
rss-lahtijat
rss-bisnesta-bebeja
rss-sisalto-kuntoon
inderespodi
taloudellinen-mielenrauha
yrittaja
rss-startup-ministerio
rss-seuraava-potilas
rss-paasipodi
pari-sanaa-lastensuojelusta
bakkari-tarinoita-tapahtumien-takahuoneista
rss-markkinointiradio
rss-lindholm-savolainen
rss-podcast-podcasteista