#​510 — November 14, 2023

Read on the Web

36 Node CLI App Best Practices — From the creator of several Node-based CLI tools comes this helpful collection of best practices for building “successful, empathic and user-friendly” CLI tools using Node, plus an appendix rounding up popular CLI framework options.

Liran Tal

👍 Note: There’s a ‘last update’ badge saying 2021, but it’s incorrect – there was a big update this month 😄

▶  Talks from the Node.js Collab Summit 2023 — If you want to stay up to date with the latest discussions within the Node project, here are the videos from the latest Node.js Collab Summit. For example, have you heard of Milo? It’s a new Rust-powered HTTP parser Paolo Insogna is working on for Node.

OpenJS Foundation

Bare Metal JavaScript: The JavaScript Virtual Machine with Miško Hevery — Learn how high-level JavaScript turns into low-level CPU instructions. Build up your mental model of JavaScript’s performance characteristics through understanding the JavaScript Virtual machine under the hood!

Frontend Masters sponsor

Can Bun Eat Node.js’s Lunch? — An experiment in migrating a codebase (a restaurant voting app called Lunch) from Node over to Bun and seeing how it fares. They’re impressed but found it to be “not production-ready as I’m still encountering segmentation faults for common tasks.”

Jeffrey Carl Faden

IN BRIEF:

Secure Code Review Tips to Defend Against Vulnerable Node Code — How do you identify vulnerable code patterns? Can you spot insufficient input validation? Enhance your Node development security with this guide to secure code review.

Liran Tal

Free Course: Introduction to Temporal Cloud — Check out our new course on the role and features of Temporal Cloud, designed for new and experienced users alike.

Temporal Technologies sponsor

Deploying Node Apps on Vultr with PM2 — I hadn’t noticed MDN was running sponsored articles till now, but they seem to do a good job maintaining the quality. The good thing about this article is you can use it with any VPS, not just those on Vultr.

Vultr / MDN

The Effects of Not Maintaining Consistency with DynamoDB

Tamás Sallai

1
git rebase

: What Can Go Wrong?

Julia Evans

How to Use Timeouts in Node

Antonello Zanini

🛠 Code & Tools

Wild Wild Path v5: Object Property Paths with Wildcards and Regexps — A ‘wild’ way to access properties in objects (which can be deeply nested) by way of string based queries that support wildcards and regexes. The examples really help to get the idea over.

ehmicky

Globby 14.0: User-Friendly Glob Matching — Give it an array of globs and it returns an array of matching paths. It even supports negations and

1
.gitignore

.

Sindre Sorhus

📰 Classifieds

Workshop: Learn how to build apps with Svelte and SvelteKit in our remote workshop – afternoons (CET) of Jan 30th to Feb 1st – only €350.

📞 Calling all devs! Sentry Launch Week is live. Tune in for new products, demos, and discussions with experts from the community. Join us.

cRonstrue: Library to Convert Cron Expressions into Natural Language — Not just English either – it supports about thirty different locales. There’s also an online demo.

Brady Holt

HyperExpress 6.14: High Performance Server Powered by uWebSockets.js — Despite the name, it’s nothing to do with Express.js, though it does have some limited API compatibility. The main draw is for folks who want to serve up WebSockets quickly.

Kartik

nve 17: Run Things With a Specific Node.js Version — Execute a file, command, or REPL using a specific version (or multiple versions) of Node. For example, you could run

1
npm test

over multiple versions at once, though note that the minimum version is now Node v18.18.0.

ehmicky

wait-on 7.1: A CLI and Node Library to Wait for Ports, Files, Sockets, etc. — For when you need to wait until files, ports, sockets, and similar resources become available (or the opposite).

Jeff Barczewski

NOTABLE QUOTABLE

“I’m not a great programmer. I’m just a good programmer with great habits.”

___
Kent Beck


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *